【问题标题】:UserEvent script running on browser?在浏览器上运行的 UserEvent 脚本?
【发布时间】:2018-03-20 22:57:51
【问题描述】:

我有几个与 NetSuite 相关的问题:

  1. 在NetSuite help page 上,用户事件脚本被声明为在服务器上执行。

    在这种情况下,如果记录在 NetSuite 中间接更新*,它仍应触发与其关联的用户事件脚本,对吗?

    *间接的意思是用户没有在浏览器中导航到记录并单击编辑和保存。一个示例用例是,当客户根据发票进行付款时,它会自动更新发票上的应付金额。但它不会触发部署在 Invoice 上的 UserEvent Script。

    如果我的理解正确,请告诉我。另外,您能否给我一种在直接和间接更新记录时执行脚本的方法。

  2. 上传文件时是否可以执行脚本(进行 REST 调用)。我无法在用户事件脚本的脚本部署下看到它。

提前致谢!

【问题讨论】:

    标签: javascript netsuite suitescript


    【解决方案1】:

    你提到的事件类型,它不会触发用户事件脚本。就像部署在销售订单上的用户事件脚本一样,当销售订单完成时它不会被执行。根据我的经验,由创建另一个事务引起的事务状态更改不会触发 UE 脚本。您也可以在客户付款记录上部署 UE 脚本,以处理正在支付的发票。

    SuiteScript 尚不支持文件记录。当我说不支持时,您无法向其部署脚本。

    【讨论】:

    • 感谢您的回复。为了跟进第 2 点,我目前正在尝试通过轮询从外部系统中提取文件数据。我正在使用基于令牌的授权,并为用户提供了“完全访问”角色。但是我看不到文件的 base64 内容。这是权限问题吗?澄清一下,我可以看到其他一些字段,如内部 ID、文件名、类型、大小等。
    【解决方案2】:

    1) 这是正确的,是的。但是,您可以在 UE 脚本上选择“在商务环境中执行”,这意味着如果从 NetSuite 外部创建销售订单,例如在与 NetSuite 帐户集成的网络商店上创建销售订单,则会触发该脚本。

    2) 您不想从 NetSuite 发送文件,而不是从其他系统轮询文件吗?

    然后您需要先在脚本中加载记录,如下所示(SuiteScript 2.0):

    var curRec = scriptContext.newRecord;
    
    curRec = record.load({
        type: record.Type.PURCHASE_ORDER,
        id: curRec.id,
        isDynamic: false
    });
    

    curRec 将包含记录的所有详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2022-11-18
      • 1970-01-01
      • 2014-08-10
      相关资源
      最近更新 更多