Netsuite根据记录类型动态设置输入表单

时间:2017-02-25 08:40:17

标签: forms types record netsuite

我想知道如何预先设置" 自定义表单"在创建项目时,基于"记录类型",例如库存物料,序列化库存物料,批号库存物料等

我试过了:

  • nlapiSetFieldValue(' customform'' 2')/record.setFieldValeu()in" beforeLoad "用户事件--->但是不起作用
  • 检查记录类型并重新设置"自定义表单"在" 页面初始化"客户端脚本--->系统将首先加载首选表单然后重新加载。但改变了#34;自定义表格"将触发调用"页面初始化"再次。需要打破死循环的条件。但是性能很糟糕,因为我需要先预设多个字段,然后需要加载2倍的表格。

所以我想知道是否有办法根据不同的项目记录类型预先设置表单?

非常感谢!!

1 个答案:

答案 0 :(得分:1)

这是在我的SDN帐户中测试并运行的:

function beforeLoad() {
    var formByType = {
        "serializedinventoryitem": "33"
    };

    var recordType = nlapiGetRecordType();
    var currentForm = nlapiGetFieldValue("customform");
    var desiredForm = formByType[recordType];

    if (desiredForm && (currentForm != desiredForm)) {
        nlapiSetRedirectURL("RECORD", nlapiGetRecordType(), nlapiGetRecordId(), true, {"cf":desiredForm});
    }
}

只需填写formByType对象,其中键是记录类型,值是每个类型应映射到的表单。

如果您从formByType中删除特定类型,则不会尝试重定向,并且将使用首选表单。

请注意,您需要多次部署此用户事件脚本,每个项目类型需要重定向一次。