Триггер Google Apps Script onEdit не срабатывает, когда Zapier добавляет строку - PullRequest
0 голосов
/ 31 октября 2018

Возникла проблема с моим триггером скрипта Google App, который не срабатывает должным образом. Моя таблица Google состоит из двух листов. Один содержит инвентарь, а другой - количество заказов. У меня есть связь с Zapier, поэтому, когда новый заказ размещен, он добавляет новую строку на лист «Заказы». Я хочу, чтобы моя основная функция запускалась всякий раз, когда заказ размещался, и на лист «Заказы» добавлялась новая строка. В настоящее время он сработает, если я зайду на лист и отредактирую информацию вручную, но не сработает, когда Zapier автоматически добавит строку.

Вот код:

function onEdit(e) {
    var activeSheet = e.source.getActiveSheet();
    var range = e.range;
    if (activeSheet.getName() !== 'Orders') return;
    var productOrdered = orderID();
    var amountOrdered = orderQuantity();
    var productList = productArrayFunction();
    var productMatched = findMatchingProductId(productList,productOrdered);
    var rowNumber = lookup(productOrdered);
    var subtractInventory = subract(rowNumber,amountOrdered);
}

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

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Как упоминалось в Dimu Designs, вы не можете использовать простой триггер при взаимодействии API. Ссылка: https://developers.google.com/apps-script/guides/triggers/

Однако вы можете запустить свою функцию в качестве следующего шага в многошаговой функции в Zapier. Ссылка: https://zapier.com/help/code/#how-get-started-code-zapier

Итак, чтобы было ясно, я не отвечаю на ваш вопрос; Я просто предлагаю решение.

0 голосов
/ 31 октября 2018

Zapier использует API Google Sheets для обновления вашего Google. Однако событие onEdit требует, чтобы пользователь непосредственно взаимодействовал с листом; это означает, что он не будет обнаруживать обновления, сделанные API.

Я предполагаю, что вы используете Zapier в качестве посредника между сторонним API / сервисом и Google Sheets. Вероятно, вы можете подключиться к этому API / сервису напрямую, используя Google Apps Script. Это позволит вам лучше контролировать, как данные поступают на ваш лист и как ваши скрипты управляют и / или реагируют на любые изменения (вы даже можете отменить подписку на Zapier).

...