Ссылки на пользовательские модули AMD в SuiteScript 2.0 - PullRequest
0 голосов
/ 31 декабря 2018

Netsuite говорит включить идентификатор модуля при создании пользовательских модулей, например так:

define(module_id, [dependencies], function)

Однако, когда я это делаю, модуль не обнаруживается:

TypeError: Cannot read property "XPELPCenterModule" from undefined (/path/to/mysuitelet.js#35)

Когда я удаляю идентификатор, это работает ???

Hello Human Coder

Что мне не хватает.Я звоню им обоим одинаково

function (ui, email, runtime, search, record, log, render, cache, crypto, file, pcenter) {
        var p = new pcenter.XPELPCenterModule();

.....

p.helloWorld('Human Coder');

Вот примеры кода модуля:

КОД РАБОТЫ:

define(["require", "exports"],
function (require, exports) {

    var XPELPCenterModule = /** @class */ (function () {

        function XPELPCenterModule(name) {
            this.name = name;
        }

        XPELPCenterModule.prototype.helloWorld = function (name) {
            return 'Hello ' + name;
        };

        return XPELPCenterModule;
    }());

    exports.XPELPCenterModule = XPELPCenterModule;
});

НЕ РАБОЧИЙ КОД:

define('XPELPCenterModule', ["require", "exports"],
function (require, exports) {

    var XPELPCenterModule = /** @class */ (function () {

        function XPELPCenterModule(name) {
            this.name = name;
        }

        XPELPCenterModule.prototype.helloWorld = function (name) {
            return 'Hello ' + name;
        };

        return XPELPCenterModule;
    }());

    exports.XPELPCenterModule = XPELPCenterModule;
});

1 Ответ

0 голосов
/ 31 декабря 2018

Хитрость заключалась в том, чтобы использовать @NAmdConfig и добавить файл конфигурации .json для ваших путей к модулю:

/**
 *@NApiVersion 2.0
 *@NScriptType Suitelet
 *@NModuleScope Public
 *@NAmdConfig  /path/to/myModule.json
 */

.JSON CONFIG FILE:

{
  "paths": {
    "XPELPCenterModule": "/path/to/myModule"
  }
}
...