1

Salesforceのカスタムオブジェクトからデータを取得するGoogleAppsスクリプトを開発し、列を次の順序で配置しました。

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

アドバイスありがとうございます。

4

1 に答える 1

1

パートナーSOAPAPiは、クエリから結果構造へのフィールドの順序を保持しようとする唯一のAPIです。

REST APIからのJSONベースの応答の場合、JSONはオブジェクトのキー/値が順序付けされていないことを具体的に示しているため、順序を保持する応答では、別のJSON構造(キー/値オブジェクトの配列)を使用する必要があります。冗長。

于 2012-07-11T23:04:44.793 に答える