У меня есть файл библиотеки JavaScript, который я использую в своих скриптах при создании SuiteScripts для NetSuite. Я пытаюсь подготовить себя к работе над 2.0, начать загружать новые проекты и отказаться от SuiteScript 1.0. Итак, я расшифровал мой библиотечный файл в 2.0. Однако всякий раз, когда я создаю новый сценарий и ссылаюсь на мою библиотеку, я всегда получаю следующее сообщение:
SuiteScript 2.0 entry point scripts must implement one script type function.
Но если я удаляю ссылку из сценария, она позволяет мне загрузить его и создать запись сценария. Затем я могу вернуть ссылку и загрузить исправленный файл сценария без проблем. Я не могу на всю жизнь понять, почему это происходит. Если это имеет значение, вот заголовок JSDo c в файле:
/**
* my.library.v2.js
* @NApiVersion 2.x
* @NModuleScope Public
*/
Сценарий также будет запускаться следующим образом после собственного заголовка JSDo c:
define(['N/error', 'N/record', 'N/runtime', 'N/search', './my.library.v2'],
function(error, record, runtime, search, myLib) {
function doStuff(context) { /* do a bunch of stuff */ }
return { pageInit : doStuff };
});
По той же проблеме у меня также есть проблемы с запуском некоторых скриптов. Все отлично работает при применении этого модуля к клиентским сценариям, как только я выйду за рамки вышеупомянутой проблемы. Тем не менее, я не могу успешно получить сценарий на стороне сервера для запуска с библиотекой. Я постоянно получаю эту ошибку:
com.netsuite.suitescript.exception.NLServerSideScriptException: TypeError: Cannot call method "split" of undefined
Что меня отталкивает, так это то, что в библиотеке нет вызова String.split () внутри. И у меня нет возможности записать, откуда может происходить ошибка, как это происходит при загрузке модуля в сценарий сервера. И я знаю, что это происходит, потому что это происходит независимо от типа операции, и создаваемые мной сценарии всегда имеют условие для проверки конкретных c типов операций, прежде чем приступить к мелочам. Например, если у меня есть проверка для операции «печать», но запись открывается для «редактирования». У меня даже есть вся функция, заключенная в блок try / catch.
У меня не было особой удачи в поиске причины этих проблем, поэтому я надеюсь, что оба isues происходят от одной и той же причины. .