对Salesforce的查询不按顺序返回列

时间:2012-07-11 12:53:28

标签: 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 

但是,我在Google电子表格中的结果按此顺序排列:

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);
 }

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

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

对于来自REST API的基于JSON的响应,JSON明确指出对象键/值是无序的,因此保留顺序的响应需要使用不同的JSON结构(键/值对象数组)更加冗长。