Zapier添加行时未触发Google Apps脚本onEdit触发器

时间:2018-10-31 12:51:12

标签: google-apps-script google-sheets triggers zapier

我遇到了我的Google App脚本触发器无法正常触发的问题。我的Google Spreadsheet有两张纸。一个保存库存,另一个保存订单数量。我与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 :(得分:1)

Zapier利用Google Sheets API更新您的Google表格。但是,onEdit事件需要用户直接与工作表交互;这意味着它将不会检测到API所做的更新。

我假设您使用Zapier作为第三方API /服务和Google表格之间的中介。您可能可以直接使用Google Apps脚本连接到该API /服务。这将使您可以更好地控制数据如何流到工作表以及脚本如何管理和/或对任何更改做出反应(您甚至可以消除Zapier订阅)。

答案 1 :(得分:0)

正如Dimu Designs所述,您不能在API交互上使用简单的触发器。 参考:https://developers.google.com/apps-script/guides/triggers/

但是,您可以在Zapier的多步函数中作为下一步运行函数。 参考:https://zapier.com/help/code/#how-get-started-code-zapier

因此,很明显,我不是回答您的问题;我只是在建议解决方案。