Lookup设置的是“值”而不是“记录”
在kintone的标准页面中使用Lookup时,是在页面上选择要复制的记录。这相当于向kintone发出“请从这条记录中复制所需的值”的指示。
而在插件、自定义JavaScript或API中,向kintone发出的指示有所不同。程序能够发出的指示不是“从这条记录复制”,而是“我把这个值放入Lookup字段,请查找相符的记录并复制其内容”。
也就是说,需要将自定义中的Lookup操作理解为输入作为搜索键的值,而不是选择记录。
通过插件或自定义JavaScript为Lookup设置了值,却再次显示记录选择页面。要添加或更新记录时,出现未勾选“值为唯一”的错误。本页面解说自定义时容易出现的这些现象的原理和解决方法。
在kintone的标准页面中使用Lookup时,是在页面上选择要复制的记录。这相当于向kintone发出“请从这条记录中复制所需的值”的指示。
而在插件、自定义JavaScript或API中,向kintone发出的指示有所不同。程序能够发出的指示不是“从这条记录复制”,而是“我把这个值放入Lookup字段,请查找相符的记录并复制其内容”。
也就是说,需要将自定义中的Lookup操作理解为输入作为搜索键的值,而不是选择记录。
如果引用源应用中有多条与输入值相符的记录,kintone就无法判断应该复制哪条记录。其结果会出现以下情况。
两者都是因为kintone无法将对象记录缩小到一条,判断无法安全复制而中止处理所致。
要解决此问题,需要确保根据“要复制的字段”的值一定能确定唯一的一条记录。方法有以下两种。
只要采取其中一种方法,值和记录就会一一对应,即使从自定义中也能正确执行Lookup。