SuiteCloud 的自定义代码模板 IDE

Custom Code Templates for SuiteCloud IDE

我计划在生成新脚本时制作自己的代码模板。由于 SuiteCloud IDE 仅为 SuiteScript 1.0 配置,我希望为 SuiteScript 2.0 创建新模板。

也就是说,我已经到了可以为我的自定义模板指定目录的部分,我已经继续创建了我的模板,但是,因为我缺少 templates.xml , SuiteCloud IDE 无法识别我的自定义模板。

NetSuite 帮助除了声明该文件存在之外并没有太大帮助。但它没有说明它应该包含什么,甚至没有说明数据的结构。

如果有人能在这里提供帮助,我们将不胜感激。 TIA.

我们很久以前就为 SuiteScript 1.0 做了同样的练习,我最近刚刚为我们的 SuiteScript 2.0 集做了同样的练习。

您可以在 P2_POOL_HOME/plugins/com.netsuite.ide.core_2016.2.0.e4.jar/templates/[=39= 中找到默认模板] 其中 P2_POOL_HOME 通常是 ~/.p2/pool/

templates.xml的一般格式为:

<configuration>
    <templates>
        <template label="TEXT YOU WANT IN DROPDOWN"
                defaultFilename="DEFAULT NAME FOR FILE"
                typesControl="radio|checkbox"
                headerFilename="PATH/TO/FILE/HEADER"
                startFilename="PATH/TO/START/FILE"
                endFilename="PATH/TO/END/FILE"
                rename="false">
            <types>
                <files label="TEXT LABEL FOR CHECKBOX" bodyFilename="PATH/TO/FILE/WHEN/SELECTED" />
            </types>
        </template>
    </templates>
</configuration>

以下是我们模板中的两个示例:

<configuration>
    <templates>
        <template label="2.0 Portlet"
                defaultFilename="360CUSTOMER_PROJECT_PL_DESCRIPTION.js"
                typesControl="radio"
                headerFilename="header.ss2.js"
                startFilename="portlet_start.ss2.js"
                endFilename="portlet_end.ss2.js"
                rename="false">
            <types>
                <files label="Render" bodyFilename="portlet.ss2.js" />
            </types>
        </template>

        <template label="2.0 RESTlet"
            defaultFilename="360CUSTOMER_PROJECT_RECORDTYPE_RL_DESCRIPTION.js"
                typesControl="checkbox" headerFilename="header.ss2.js"
                startFilename="RESTlet_start.ss2.js"
                endFilename="RESTlet_end.ss2.js"
                rename="true">
            <types>
                <files label="GET" bodyFilename="RESTlet_get.ss2.js" />
                <files label="POST" bodyFilename="RESTlet_post.ss2.js" />
                <files label="PUT" bodyFilename="RESTlet_put.ss2.js" />
                <files label="DELETE" bodyFilename="RESTlet_delete.ss2.js" />
            </types>
        </template>
    </templates>
</configuration>

对于只有一种入口点方法的脚本(例如 Suitelet、Portlet、Scheduled),您使用 radio 作为 typesControl 设置,并且在下面只有一个 <file> 标签<types>。对于那些有多个入口点可供选择的(例如客户端、Map/Reduce、用户事件),您使用 checkbox 作为 typesControl,然后使用 [=16 列出您想要的每个选项=] 标签在 <types>.

我实际上不知道 rename 设置的作用。

生成文件的基本文件结构为:

/* CONTENTS OF HEADER FILE */

/* CONTENTS OF START FILE */

/* CONTENTS OF ENTRY POINT 1 FILE */

/* CONTENTS OF ENTRY POINT 2 FILE */

/* ... */

/* CONTENTS OF ENTRY POINT N FILE */

/* CONTENTS OF END FILE */

我使用 2017 尝试过同样的事情。您会在 ide jar 文件中找到一些 js 和模板文件。我修改了 ss_2.0_suitelet.js 和 ss_header.js 文件。 只需从 jar 中选择这些文件并将其放入您自己的本地库中。然后修改。不要忘记在 preference->netsuite (eclipse ide) 中指向模板目录。 您还可以添加作者和日期。但不确定如何在注释中添加 $filename 作为变量。这是一些示例。

Version    Date            Author            Remarks
1.00       ${date}         ${author}         Initial version