我无法用另一个资源的列表操作的结果填充动态下拉列表。列表操作采用的日期来自映射到输入字段的以前的Zapier Schedule应用程序。列表操作运行时,捆绑软件的inputData具有占位符值,而不是预期的日期时间字符串。
应用程序的输入字段:
inputFields: [
{
key: 'input_date',
label: 'Date',
required: true,
type: 'datetime',
helpText: 'The date we are checking',
altersDynamicFields: true
},
{
key: 'holiday_list',
label: 'Holiday List',
required: true,
dynamic: 'holiday.id.name',
list: true,
helpText: 'The holiday name (Easter) or a static date (12/25). One holiday per line'
}
],
动态下拉列表的资源列表:
const Holiday = {
key: 'holiday',
noun: 'Holiday',
list: {
display: {
label: 'List of Holidays',
description: 'This is a hidden trigger',
hidden: true
},
operation: {
inputFields: [
{
key: 'input_date',
required: true
}
],
perform: listHolidays
}
}
};
最后,列表功能:
const listHolidays = async (z: ZObject, bundle: Bundle) => {
let holidays: Holiday[] = [];
z.console.log('querying holidays, inputData: ', z.JSON.stringify(bundle.inputData));
const date: moment.Moment = moment(bundle.inputData.date);
const response: HttpResponse = await z.request(`${Constants.API_BASE}/holidays`, {
method: 'GET',
params: {
country: 'US',
year: date.year()
}
});
if (response.json) {
let apiResponse: any = response.json;
holidays = apiResponse.holidays;
}
return holidays;
};
问题是,当使用“计划”应用作为输入日期时,列表函数收到的值类似于:
inputData: {"input_date":"{{50160528__id}}"}
但是,如果给定文字日期时间字符串“ 2019-01-01T12:00:00-06:00”,则列表功能将按预期工作。
关于该主题的最有用的文章是this,它过去对我有帮助。我认为这里的最大区别是从属下拉列表由单独的资源填充,该资源依次从原始资源中获取输入。
我已确认我正在遵循Zapier CLI模式here中列出的模式和建议。
关于我可能会出错的任何想法?非常感谢您的帮助。
编辑
事实证明,这根本不是我的应用程序出现的问题。我删除了整个Zap,再次构建了每个步骤,现在将日期作为预期值传递。