我试图理解zoho creator,它并不像构建应用程序…那样简单我有一个库存数据库,我调用了四个字段来填充一个名为inventory Number (Inv_Num1)的字段-
名字(First_Name)
姓氏(Last_Name)
年份(年)
Number (数字)
我有一个自定义函数脚本,我通过窗体report中的自定义操作调用该脚本。我正在尝试做的是上传一个有900个条目的CSV文件。当然,并不是所有的值都有这些值(first/last/number),所以我需要批量编辑所有这些值。但是,当我进行批量编辑时,Inv_Num1字段不会用新值更新。我使用自定义操作用其他4个字段的值填充Inv_Num1字段。
下面是我的脚本:
void onetime.UpdateInv()
{
for each Inventory_Record in Management
{
FN = Inventory_Record.First_Name.subString(0,1);
LN = Inventory_Record.Last_Name.subString(0,1);
YR = Inventory_Record.Year.subString(2,4);
NO = Inventory_Record.Number;
outputstr = FN + LN + YR + NO;
Inventory_Record.Inv_Num1 = outputstr;
}
}当我尝试运行这个函数时,我得到了这个错误
Error.
Error in executing UpdateInv workflow.
Error in executing For Each Record task.
Error in executing Set Variable task. Unable to update template variable FN.
Error evaluating STRING expression :例如,即使有名字,它仍然认为没有名字。这只发生在我使用批量编辑更改的字段上。如果我手动完成每一个操作,那么自定义操作就可以工作了--但当然,Inv_Num1已经通过我的编辑成功函数进行了更新,并使整个操作变得毫无意义。
发布于 2015-11-30 23:59:58
在不知道数据类型的情况下,很难修复,但是假设您的Inventory_Record.number是一个数字数据项,您将向数字添加一个字符串:
"+“用于字符串连接- Joiner,但它也将两个数字相加在一起,因此对于字符串考虑"a" + "b" = "ab",但对于数字1 + 2 = 3。
一切都很好,但是当你执行"a" + 2时,系统不知道是添加还是拼接,所以会给出一个错误。
发布于 2017-04-06 14:45:29
这可能晚了一年,你可能已经找到了解决方案,但为了突出显示,你面临的错误只是由于名字中的空值。
您只需在每个字段上设置一个空检查,就可以开始工作了。
您还可以在批量上传时生成inv_number,方法是在上的相同代码中添加null检查,并将代码放在Add> on Submt上(只需循环内的部分)
Better选项将使用公式字段,您只需将此公式放入公式字段中,您将自动生成inventory_number,您可以将formula_field重命名为Inv Number或您想要的任何名称。
由于您直接在year字段中使用子字符串,因此我假设year字段为string.else,您必须使用Year.tostring().substring(2,4) &而不是if(Year=="","",...)你必须把if(Year==null,null,...);
所以这就是公式
if(First_Name=="","",First_Name.subString(0,1))+if(Last_Name =="","",Last_Name.subString(0,1)) + if(Year=="","",Year.subString(2,4)+Number让我知道你的反应,如果你实现这一点。
https://stackoverflow.com/questions/30404878
复制相似问题