SuitScript介绍
前言
为了跟好的学习NetSuite开发,在这里对SuitScript进行简单的总结
一、SuitScript是什么?
SuitScript是进行NetSuite二次开发的一种普遍方式,SuitScript针对不同的应用场景为我们提供了不同的脚本类型,而不同的脚本类型又对应了至少一种入口点作为我们脚本执行的入口。不仅如此,SuitScript还将所有的Api模块化,让我们按需加载,符合单一职责原则。
二、一些重要概念
- 入口点: 脚本获得NetSuite应用程序控制权的入口
- 脚本类型: 不同的脚本类型对应了不同的开发应用场景
- 模块: Api被分派给不同的模块
三、脚本类型
1.1 Bundle installation script 在bundle安装的时候执行的脚本,主要用于数据清理入口方法
1.2 client script
用于NS界面上响应用户操作,如输入框值变化,提交,行添加等
1.3 Map/reduce
对数组,saveSearch,文件或其它批量数据进行批量处理,可按固定周期,多线程执行
1.4 Mass update
用于对指定search的数据进行统一处理,可按固定周期执行或马上执行,单线程执行
1.5 Portlet
用于开发Dashboard控件
1.6 Restlet
提供给NS外的系统调用进行接口集成
1.7 Scheduled
开发定时执行的程序,与Map/Reduce, Mass Update功能类似,单线程执行
1.8 Suitelet
用于开发NS的界面
1.9 UserEvent
用于响应数据加载,数据提交等数据库事件。
1.10 Workflow Action
四、常用模块
record:用于数据的创建,更新,删除
search:用于数据的查询
五、SuiteScript模板
/**
*@NApiVersion 2.0 //suitescript版本
*@NScriptType ClientScript //脚本类型
*/
define([ 'N/error' ], //define对象,又叫入口点函数
//;[ ] 是SuiteScript中指定要加载的模块数组(即,可以加载很多模块),'N/error'是众多模块中的一种,不同模块有不同的功能。
function(error) { //回调函数
function pageInit(context) { //回调函数中定义的函数
if(context.mode == 'create') {
alert(1);
jQuery('#inpt_entity2').attr("disabled", true);//可以直接界面上使用jquery
}
return true;
}
function saveRecord(context) {}
function validateField(context) {}
function fieldChanged(context) {}
function postSourcing(context) {}
function lineInit(context) {}
function validateDelete(context) {}
function validateInsert(context) {}
function validateLine(context) {}
function sublistChanged(context) {}
return { //return用来规定不同入口点对应的函数逻辑
pageInit : pageInit, //例如,如果入口点是pageInit类型的,那么就执行pageInit函数;
fieldChanged : fieldChanged,
postSourcing : postSourcing,
sublistChanged : sublistChanged,
lineInit : lineInit,
validateField : validateField,
validateLine : validateLine,
validateInsert : validateInsert,
validateDelete : validateDelete,
saveRecord : saveRecord
};
});
引用
转载自:https://juejin.cn/post/7031124498476695588