在 Netuite 中,按下标准按钮时是否可以运行套件脚本?

问题描述 投票:0回答:1

在 Netsuite 中,我想在按下事务记录上的标准按钮时运行套件脚本。商品履行中的“标记已发货”按钮示例。可以吗?

我尝试过客户端脚本,但它仅在您编辑记录时才有效。

netsuite suitescript
1个回答
0
投票

我的结论是——不,这是不可能的。当然,除非有人创建了一些非常讨厌的东西,比如直接访问 DOM(我永远不会这样做)。

所以最合理的做法是:

  • 添加一个自定义按钮,它可以满足您的需要
  • 如果需要的话,尝试隐藏标准按钮。

结论基于2个前提:

  • 我最近问了一个关于如何添加带有单击处理程序的按钮的问题在 NetSuite 中向页面添加按钮的一般步骤? 从答案中可以看出,唯一的[?]方法是在 serverWidget.button 实例上设置单击处理程序(通过

    context.form.addButton()
    方法的返回值访问),当您将其添加到部署在记录类型上的 UserEvent 脚本中时。

    /**
     * @NApiVersion 2.x
     * @NScriptType UserEventScript
     * @NModuleScope SameAccount
     */
    
    define([], function() {
      'use strict';
      return {
        beforeLoad: beforeLoad
      };
    
      function beforeLoad(context) {
        var form = context.form;
        form.clientScriptModulePath = '/SuiteScripts/foo.js';
        form.addButton({
          label: 'Foo',
          id: 'custpage_foo',
          functionName: 'fooClickHandler'
        });
      }
    });
    
  • 但是如果按钮已经存在,则 API 中无法为其设置处理程序。正如您所看到的,SuiteScript API 中没有像

    Button.functionName
    Button.modify()
    这样的内容,即使您设法通过其 id 获取按钮,如
    _back
    :

文档没有提及任何适当的内容(https://system.netsuite.com/app/help/helpcenter.nl?fid=section_N2857647.html)。

所以答案是否定的,这是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.