对Salesforce的查询返回顺序不正确的列

对Salesforce的查询返回顺序不正确的列,salesforce,google-apps-script,Salesforce,Google Apps Script,我开发了一个Google Apps脚本,用于从Salesforce中的自定义对象中提取一些数据,并按以下顺序排列我的列: SELECT Component__r.Name, Component__c, Product__c, Story_Name__c, Description__c, id , Product_Id__c, Priority__c , StoryName FROM Story__c WHERE Product_Id__c StoryName Component__r

我开发了一个Google Apps脚本,用于从Salesforce中的自定义对象中提取一些数据,并按以下顺序排列我的列:

SELECT  Component__r.Name, Component__c, Product__c, Story_Name__c, Description__c, id ,  Product_Id__c, Priority__c , StoryName FROM Story__c WHERE Product_Id__c 
StoryName   Component__r    Component__c    Product__c  Product_Id__c   Priority__c Id  Description__c  Story_Name__c
但是,我在谷歌电子表格中的结果按以下顺序排列:

SELECT  Component__r.Name, Component__c, Product__c, Story_Name__c, Description__c, id ,  Product_Id__c, Priority__c , StoryName FROM Story__c WHERE Product_Id__c 
StoryName   Component__r    Component__c    Product__c  Product_Id__c   Priority__c Id  Description__c  Story_Name__c
我被告知,SOQL查询以与查询不同的顺序返回数据并不罕见。是否有人知道使用什么方法/函数/过程来获取电子表格中按查询顺序显示的列?我希望在将列放在电子表格上之前这样做,但如果没有其他方法,也可以

我的数据在此功能中被拉回:

    function renderGridData(object, renderHeaders){
    var sheet = SpreadsheetApp.getActiveSheet();

 var data = [];
var sObjectAttributes = {};

//Need to always build headers for row length/rendering
var headers = buildHeaders(object.records);

 if(renderHeaders){  
  data.push(headers);
}

for (var i in object.records) {
var values = [];
for(var j in object.records[i]){
  if(j!="attributes"){
    values.push(object.records[i][j]);
  } else {
    var id = object.records[i][j].url.substr(object.records[i][j].url.length-18,18);
    //Logger.log(id);
    sObjectAttributes[id] = object.records[i][j].type;
  }
}
data.push(values);
}

Logger.log(sheet.getLastRow());
var destinationRange = sheet.getRange(sheet.getLastRow()+1, 1, data.length, headers.length);
 destinationRange.setValues(data);
 }

感谢您的建议。

Partner SOAP APi是唯一一个尝试将字段顺序从查询保留到结果结构的APi


对于来自RESTAPI的基于JSON的响应,JSON特别指出对象键/值是无序的,因此要保持顺序的响应需要使用不同的JSON结构(键/值对象数组)这将更加详细。

Partner SOAP APi是唯一一个尝试将字段顺序从查询保留到结果结构的APi


对于来自REST API的基于JSON的响应,JSON特别指出对象键/值是无序的,因此要保持顺序的响应需要使用不同的JSON结构(键/值对象数组),这将非常详细。

您实际如何执行sql查询?、REST API、ajax toolkit、,还有别的吗?RESTAPI。。soql下面的代码是从另一个页面传入的
function storyQuery(soql){var sql=“SELECT Component\uuu r.Name,Component\uu c,Product\uu c,Story\u Name\uu c,Description\uu c,id,Product\u id\uu c,Name from CMC\u Story\uu\uu c,其中Product\u id\uu c=”+soql+“'ORDER BY Component\uu c”;return fetch*getRestEndpoint(***+“/services/data/v”+API版本+/”+“query?q=“+sql”);}
函数**getRestEndpoint()***{var queryEndpoint=“.salesforce.com”;var endpoint=getInstanceUrl().replace(“api-”,“”)。match(“https://[a-z0-9]*”;返回endpoint+queryEndpoint;}
sql查询是如何执行的?、restapi、ajax工具包等等?restapi..soql下面的代码是从另一个页面传入的
function storyQuery(soql){var sql=“SELECT Component\uu r.Name、Component\uu c、Product\uu c、Story\u Name\uu c、Description\uu c、id、Product\u id\uu c、Name from CMC\u Story\uu\uu c WHERE Product\u id\uu c=”“+soql+”'ORDER BY Component_uuC“;return fetch(**getRestEndpoint**()+”/services/data/v“+API_VERSION++/“++”query?q=“+sql”);}
函数**getRestEndpoint()**{var queryEndpoint=“.salesforce.com”;var endpoint=getInstanceUrl()。替换(“API-”,“”)。匹配(“https://[a-z0-9]*”);return endpoint+queryEndpoint;]
不是我想听的。。。但有点像我期望的:(不是我想听的…而是我期望的:(