Google Sheets to Salesforce с OAuth2 - вопрос о сопоставлении записей - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь заставить этот код работать. Я знаю, что это немного устарело, я исправил это там, где это было необходимо. Я пытаюсь загрузить данные на объект в Salesforce. Вот сценарий, который я пытаюсь заставить работать:

function upload(object, payload) {
  var sfService = getSfService();
  var userProps = PropertiesService.getUserProperties();
  var props = userProps.getProperties();
  var name = getSfService().serviceName_;
  var obj = JSON.parse(props['oauth2.' + name]);
  var instanceUrl = obj.instance_url;
  var queryUrl = instanceUrl + "/services/data/v21.0/sobjects/" + object +"/";
  UrlFetchApp.fetch(queryUrl, {
    headers: {
      Authorization: "Bearer " + sfService.getAccessToken()
    },
    contentType: 'application/json',
    payload: payload,
    method: "POST"
  });
}

Что я не понимаю, так это формат полезной нагрузки. Например, у меня есть объект Account и я хочу загрузить в него ряд данных. У меня также есть заголовки для каждого столбца данных, которые сопоставляют его с правильными полями в Salesforce. Как я могу вставить данные в Salesforce, используя этот метод, одновременно сопоставляя их с заголовками? Могу ли я создать JSON с ним и передать его в качестве полезной нагрузки?

1 Ответ

0 голосов
/ 21 февраля 2020

Мне удалось выяснить это с помощью следующего сценария, чтобы преобразовать мою полезную нагрузку в объект JSON (а также изменив мои поля DateTime на поля Date, что вызывало некоторую проблему):

function tableJSON(arr) {
  var obj = {};
  for (i = 1; i < arr.length; i++) {
    for (j = 1; j < arr[0].length; j++) {
      obj[arr[0][j]] = arr[i][j];
    }
  }
  return JSON.stringify(obj);
}

Это форматировало мою полезную нагрузку, которая была просто моим диапазоном данных в указанном мной листе. Надеюсь, что это может помочь кому-то еще!

...