我们有一个ZAP,可在提交Zoho表单时触发。
从ZohoForm传递到ZAP的字段之一是包含一个或多个逗号分隔字符串的文本字段
例如 弦一,弦二,弦三,弦四
ZAP需要; 1.将此文本分成逗号分隔符给定的组成部分 即 弦一 弦二 弦三 弦四
ie 弦一001 弦二092 弦三011 等等
对于每个匹配项,返回关联的代码(由Col B提供),对于每个匹配项失败,返回值999999
根据步骤3的结果重新形成一个逗号分隔的字符串, 即 001,092,011,999999
因此,我们可以在上面的步骤1中使用ZAPIER的Split Text Formatter,返回“订单项”或“单独的字段”,但是似乎没有本机函数可以迭代这些内容以在Google中找到匹配项工作表。
ZAPIER产品支持说我们需要一个自定义Javascript函数。
任何帮助表示赞赏, 谢谢
答案 0 :(得分:0)
我同意Zapier产品支持,因为您将需要使用Zapier的代码模块,该模块允许您使用Python或Javascript进行编程。
格式化数据的方式可能需要更改,也不清楚在将数据返回记录在其他地方的数据后您打算如何处理它。
以下是此模板的架构示例:
要将查询值迭代地传递到Google电子表格查询Zap,您将需要设置两个单独的zap,并且对Python或Javascript有所了解。
第一个Zap将包含触发和操作步骤。触发器将“在Zoho中创建的新表单上”,操作步骤将是Python代码模块或Javascript模块,无论您选择哪个。在操作步骤中,您需要将文本字段字符串放入input_data字典中。您的代码可能如下所示(我已经用Python编写了此代码,因为这是我所熟悉的,但是在Javascript中也可以实现相同的功能):
var abc = {};
class Foo {
constructor () {
this.bar = { aaa: 123, bbb: 456 }
this.doSomething1(this.bar)
this.doSomething2()
this.doSomething1(abc)
}
doSomething1(arg) { arg.aaa = 10 },
doSomething2() {
this.bar.bbb = 0
}
}
您会注意到:
lookup_values = input_data.get("text_field")
lookup_values = lookup_values.split(",")
for value in lookup_values:
requests.post(url="zapier_webhook.com", json={"lookup": value})
这是一种发送和接收http请求的方法。在这种情况下,我将json数据(json = value)发送(requests.post)到端点url(url =“ zapier.webhook.com”)。我指定的URL只是一个占位符,您将需要设置第二个Zap来获取实际的端点URL。这将是第一个Zap的全部内容。
第二个快捷键将至少具有两个快捷键,一个触发器和一个动作。您可能需要根据数据处理方式添加其他操作步骤,但这是一个不错的起点。该触发器将使用Zapier Webhook模块的“捕获钩子”触发器。进行此设置时,Zapier将为您提供一个端点URL,您可以将数据发送到该URL。您将需要使用该网址替换第一个快捷方式中的占位符网址。该端点将要接收的数据将是从第一个Zap的操作步骤发送给它的各个字符串。设置触发器后,您可以设置操作步骤,即将您的Google工作表查找,在模板中选择适当的工作表和列,并为查找值提供此zap的触发器步骤中接收到的数据。
ZAP_1
触发步骤:在Zoho中创建新记录
输入:Zoho记录数据
输出:text_field =“ 001,092,011”
操作步骤:Zapier代码模块:
输入:text_field =“ 001,092,011”
代码输出:
requests.post(url="zapier.webhook.com", json=value)
ZAP_2通话1
触发步骤:捕获发布请求
输出:“ 001”
操作步骤:查找电子表格行
输出:行值映射
ZAP_2通话2
触发步骤:捕获发布请求
输出:“ 092”
操作步骤:查找电子表格行
输出:行值映射
ZAP_2通话3
触发步骤:捕获发布请求
输出:“ 011”
操作步骤:查找电子表格行
输出:行值映射
不幸的是,如果未找到该行,则可能会遇到一些问题,因为使用google电子表格查找调用输出中的数据的后续步骤将无法执行。也许不用为未找到的值设置标志99999,而是可以为已找到的值设置标志。希望这会有所帮助。