更新子表单指定字段

更新子表单指定字段

1、使用场景:单独更新子表单中指定的字段,不需要全量更新子表单中的所有字段。

2、实现方法:赋值的时候将子表单行id插入map()中。

3、函数样例:

//定义集合
sub = list();
//获取当前模块数据
xj = zoho.crm.getRecordById("CustomModule64",id);
//获取子表单
subforms = xj.get("LinkingModule39");
for each  sbf in subforms
{
//8-BOM代码
BOM = ifnull(sbf.get("BOM"),"NA");
//如果BOM不为空获取产品信息
if (  BOM != "NA" ) 
    {
products = zoho.crm.searchRecords("Products","(Product_Name:equals:" + BOM + ")",1,200);
for each  p in products
{
//成本价
field9 = ifnull(p.get("field9"),0);
//库存单位重量
field45 = ifnull(p.get("field45"),0);
//一级分类(九段) 
field332 = ifnull(p.get("field332"),"0");
//产品类别(十段) 
field33 = ifnull(p.get("field33"),"0");
//规格(一段) 
field1 = ifnull(p.get("field1"),"0");
}
                //将获取的产品信息赋值到子表单对应的字段中
ms = Map();
                //下面的put是关键点,这一行决定了可以指定更新子表单中的某些字段,而不需要全量更新所有字段
ms.put("id",sbf.get("id"));
ms.put("BOM1",field9);
ms.put("BOM2",field45);
ms.put("BOM4",field332);
ms.put("BOM3",field33);
ms.put("BOM5",field1);
sub.add(ms);
    }
}
//将子表单的集合更新到主表字段中
m = Map();
m.put("LinkingModule39",sub);
info m;
//更新整条数据
res = zoho.crm.updateRecord("CustomModule64",id,m);
info res;