SuiteScript 2.0 从 Eclipse 脚本类型函数错误部署
SuiteScript 2.0 Deploy from Eclipse Script Type Function Error
下午好。
我真的很难解决这个问题,显然它应该非常容易理解。我正在使用 Eclipse Neon.3 Release 4.6.3 来构建、编译 SuiteScript 2.0 并将其部署到我们的沙盒环境中。我已经使用工作脚本成功地管理了 1.0 部署,但是随着我们转向 2.0,现在必须解决这个问题。
错误是:SuiteScript 2.0 入口点脚本必须实现一个脚本类型函数。
这是脚本:
/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
*/
define(['N/record'],
function (record) {
function doThis(context) {
log.debug({'details': 'IN THE FUNCTION!'});
}
return {
beforeLoad: doThis
};
});
这里是用户事件 XML(因为错误指向此文件:
<usereventscript scriptid="customscript_userevent">
<aftersubmitfunction/>
<beforeloadfunction>doThis</beforeloadfunction>
<beforesubmitfunction/>
<description></description>
<isinactive></isinactive>
<name>SDF Tutorial User Event</name>
<notifyowner>T</notifyowner>
<scriptfile>[/SuiteScripts/UserEventScript_2.js]</scriptfile>
<scriptdeployments>
<scriptdeployment scriptid="customdeploy_ue_tut">
<isdeployed>T</isdeployed>
<loglevel>DEBUG</loglevel>
<recordtype>[customrecord_tutorial]</recordtype>
<status>TESTING</status>
</scriptdeployment>
</scriptdeployments>
显然,我缺少正确的 Script Type 函数,但这正是我认为 beforeLoad 实际上正在做的事情。我在这里错过了什么?
您缺少 usereventscript/beforeloadfunction 元素:
<beforeloadfunction>beforeLoad</beforeloadfunction>
好吧,答案比我预期的要简单。请注意,我来自 Visual Studio c# 背景,所以我是从这个角度来看的。
后来的 Eclipse 版本(Kepler 之后)不再支持 SuiteCloud Development Framework 插件。要么,要么您需要向已安装的 Eclipse 版本添加更多内容才能使其正常工作,但我还没有找到任何文档来帮助解决这个问题。
我们清理了 Eclipse 安装并返回到 Eclipse Kepler (4.3.2),一切正常。
我认为这对开发人员不利,因为我们应该能够通过 IDE 访问最新版本的库和插件,但这只是我的意见。最后,我们有了工作模型,可以从我们的开发机器部署到我们所有的环境中,这样我们就可以立即完成工作。
感谢您抽出宝贵时间协助解决此问题。我很感激。
下午好。
我真的很难解决这个问题,显然它应该非常容易理解。我正在使用 Eclipse Neon.3 Release 4.6.3 来构建、编译 SuiteScript 2.0 并将其部署到我们的沙盒环境中。我已经使用工作脚本成功地管理了 1.0 部署,但是随着我们转向 2.0,现在必须解决这个问题。
错误是:SuiteScript 2.0 入口点脚本必须实现一个脚本类型函数。
这是脚本:
/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
*/
define(['N/record'],
function (record) {
function doThis(context) {
log.debug({'details': 'IN THE FUNCTION!'});
}
return {
beforeLoad: doThis
};
});
这里是用户事件 XML(因为错误指向此文件:
<usereventscript scriptid="customscript_userevent">
<aftersubmitfunction/>
<beforeloadfunction>doThis</beforeloadfunction>
<beforesubmitfunction/>
<description></description>
<isinactive></isinactive>
<name>SDF Tutorial User Event</name>
<notifyowner>T</notifyowner>
<scriptfile>[/SuiteScripts/UserEventScript_2.js]</scriptfile>
<scriptdeployments>
<scriptdeployment scriptid="customdeploy_ue_tut">
<isdeployed>T</isdeployed>
<loglevel>DEBUG</loglevel>
<recordtype>[customrecord_tutorial]</recordtype>
<status>TESTING</status>
</scriptdeployment>
</scriptdeployments>
显然,我缺少正确的 Script Type 函数,但这正是我认为 beforeLoad 实际上正在做的事情。我在这里错过了什么?
您缺少 usereventscript/beforeloadfunction 元素:
<beforeloadfunction>beforeLoad</beforeloadfunction>
好吧,答案比我预期的要简单。请注意,我来自 Visual Studio c# 背景,所以我是从这个角度来看的。
后来的 Eclipse 版本(Kepler 之后)不再支持 SuiteCloud Development Framework 插件。要么,要么您需要向已安装的 Eclipse 版本添加更多内容才能使其正常工作,但我还没有找到任何文档来帮助解决这个问题。
我们清理了 Eclipse 安装并返回到 Eclipse Kepler (4.3.2),一切正常。
我认为这对开发人员不利,因为我们应该能够通过 IDE 访问最新版本的库和插件,但这只是我的意见。最后,我们有了工作模型,可以从我们的开发机器部署到我们所有的环境中,这样我们就可以立即完成工作。
感谢您抽出宝贵时间协助解决此问题。我很感激。