SuiteScript 2.0 优势

SuiteScript 2.0 优势

SuiteScript 2.0 是 SuiteScript 模型的完全重新设计。此主题讨论 SuiteScript 2.0 优于 SuiteScript 1.0 的几个优势。

复杂性管理和直观的代码组织

SuiteScript 2.0 以模块化结构构建。现代 SuiteApp 需要通常包含许多代码行和许多文件的复杂脚本。模块化为用户提供内置的复杂性管理。还增加了封装,提供直观代码组织,并确保不会出现全局变量或方法命名冲突。

SuiteScript 2.0 随带包含在模块中的整套新 API。这些模块根据行为进行组织和命名。例如,当您需要在 NetSuite 中使用文件时,您可以使用文件模块。脚本仅加载需要的模块。使用 SuiteScript 1.0,所有 API 均包含在同一全局命名空间中。各 SuiteScript 1.0 脚本均使用整个命名空间,而无论实际使用的是哪一 API。

SuiteScript 2.0 还可让您创建自己的自定义模块。您可以使用这些自定义模块组织您的代码(替代 SuiteScript 1.0 库)。此外,您还可以向 SuiteApp 添加自定义模块,并向第三方公开这些模块。

有关其他信息,请参阅以下主题:

注意

SuiteScript 2.0 实现异步模块定义 (AMD) 规格。AMD 用于定义和加载 JavaScript 模块及其依赖关系。有关 AMD 的其他信息,请参阅 http://requirejs.org/docs/whyamd.htmlhttps://github.com/amdjs/amdjs-api/blob/master/AMD.md


自动依赖关系管理

SuiteScript 2.0 为您提供内置依赖关系管理。通过 SuiteScript 2.0,您可以定义必须在脚本执行前加载的 SuiteScript 2.0 模块和自定义模块。模块加载程序自动加载这些模块的依赖关系、依赖关系的依赖关系等。自动依赖关系管理可让您专注于逻辑,而非依赖关系和加载顺序。

有关其他信息,请参阅以下主题:

现代编程语法和行为

SuiteScript 2.0 的基本设计原则是 SuiteScript 2.0 === JavaScript。这降低了经验丰富的开发人员的学习曲线。语法是简单明了的 JavaScript。不同于 SuiteScript 1.0,该行为具一致性。语法和行为增强包括以下内容:

  • 第三方 JavaScript API 支持: SuiteScript 2.0 旨在支持所有标准 JavaScript。通过提供的 SuiteScript 2.0 API,您能够对 NetSuite 功能进行编程访问。对于通用逻辑,使用自定义模块加载首选第三方 JavaScript API。

  • SuiteScript 1.0 nlapi/nlobj 前缀停用:对 SuiteScript 2.0 进行建模后,其外观和行为类似于现代 JavaScript。为了实现该目标,SuiteScript 2.0 方法和对象不使用 nlapi 和 nlobj 作为前缀。这一改变还反映出 SuiteScript 2.0 的模块化组织。SuiteScript 1.0 方法和对象分别属于 nlapi 和 nlobj 命名空间。SuiteScript 2.0 方法和对象封装在多个模块内。

  • 属性和枚举的使用: SuiteScript 2.0 采用属性和枚举。大部分 SuiteScript 1.0 getter 和 setter 方法替换为属性。枚举封装常用常量(例如,标准记录类型)。

    注意

    JavaScript 不包含枚举类型。SuiteScript 2.0 文档利用术语枚举(简称为枚举)来描述具有类似于映射的平面结构的纯 JavaScript 对象。在此对象内,每个密钥指向一个只读字符串值。


  • 更新的子列表和列索引:开发领域中的标准惯例是从 0 开始索引。在大多数编程语言中都可观察到此行为。SuiteScript 1.0 从 1 开始子列表和列索引。为了使 SuiteScript 与现代 JavaScript 接轨,SuiteScript 2.0 中的子列表和列索引从 0 开始。

有关其他信息,请参阅以下主题:

功能性增强

以下增强功能专用于 SuiteScript 2.0:

Map/Reduce 脚本类型

SuiteScript 2.0 引入了基于 Map/Reduce 模型的新服务器端脚本类型。Map/Reduce 脚本为处理大量记录的服务器端脚本提供结构化框架。此外,SuiteCloud Plus 用户还可使用 Map/Reduce 脚本并行处理多个处理器中的记录。用户从脚本部署记录中手动选择要利用的处理器数。

有关其他信息,请参阅SuiteScript 2.0 Map/Reduce 脚本类型

异步客户端侧处理(承诺)

Promise 是 JavaScript 对象,表示某个异步过程的最终结果。创建这些对象后,其可用作表示以后操作成功或失败的占位符。在 Promise 对象在后台等待期间,脚本的剩余段可执行。

在 SuiteScript 2.0 中,所有客户端脚本都支持使用 Promise。借助 promise,开发人员可编写直观高效的异步代码。SuiteScript 2.0 提供选定模块的 promise API。此外,还可在所有客户端脚本中创建自定义 promise。

有关其他信息,请参阅Promise 对象

SFTP 文件传输 API

SuiteScript 2.0 支持 SFTP(安全文件传输协议)。此功能可让您在 NetSuite 和外部 FTP 系统(文件传输协议)服务器之间安全传输文件。SFTP 是用 SSH(安全外壳)封装过的协议。它与 FTP 类似,但文件通过安全连接进行传输。服务器授权需要密码 GUID(全局唯一标识符)以及 DSA(数字签名算法)、ECDSA(椭圆曲线数字签名算法)或 RSA(密码系统)主机键。

有关其他信息,请参阅N/sftp 模块

缓存 API

通过 SuiteScript 2.0 缓存 API,您能够将数据加载到缓存中,并使其可用于一个或多个脚本。此功能减少了检索数据所需的时间。

有关其他信息,请参阅N/cache 模块

搜索分页 API

通过 SuiteScript 2.0 搜索分页 API,您能够通过搜索结果导航到页面。此增强功能提高了脚本性能并使您能够以直观方式高效浏览搜索结果数据。

有关其他信息,请参阅N/search 模块

平面文件流 API

使用 SuiteScript 1.0,您无法轻松访问超过 10MB 的文件的内容。您必须将文件划分成更小、单独的文件,以在内存中读取、写入和添加文件内容。

通过 SuiteScript 2.0 平面文件流 API,您可以更有效地处理和流式传输大的 CSV 和纯文本文件。通过此增强功能,您能够将每行内容加载并编辑到内存中,然后再将这些行重新添加到内存中。平面文件流 API 仅对单个内容行强制执行 10MB 的限制。

有关其他信息,请参阅N/file 模块

对 HTTP 内容类型标头的扩展支持

SuiteScript 2.0 添加了对所有 HTTP 内容类型的支持。此增强同时适用于客户端请求和服务器响应 HTTP 标头。

有关其他信息,请参阅N/http 模块N/https 模块

新的加密/编码功能

SuiteScript 2.0 通过 N/crypto 模块添加增强的加密、解密和哈希功能。附加编码功能在 N/encode 模块中公开。

posted @ 2019-12-30 17:16  Bruce-Hu  阅读(771)  评论(0编辑  收藏  举报