【问题标题】:Netsuite dynamically set entry form based on record typeNetsuite根据记录类型动态设置条目形式
【发布时间】:2017-02-25 08:40:17
【问题描述】:

我想知道如何在创建项目时根据“记录类型”预设“自定义表单”,例如库存项目、序列化库存项目、批号库存项目等

我试过了:

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

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

非常感谢!!

【问题讨论】:

    标签: forms types record netsuite


    【解决方案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 之外保留了特定类型,则不会尝试重定向并且将使用首选形式。

    请注意,您将需要多次部署此用户事件脚本,针对您需要重定向的各种项目类型中的每一种。

    【讨论】:

    • 非常感谢。效果很好!!!请使用“nlapiSetRedirectURL”而不是“setFieldValue('customform','XX')”来更改表单。并在加载前在用户事件中执行,而不是客户端脚本的页面初始化。
    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 2020-01-26
    • 1970-01-01
    • 2017-03-13
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多