今日はcursorからNetsuiteに繋げてみたのでやり方アップします。vscodeは試していませんが、たぶん同じです。
NetsuiteのSuiteScriptは、ローカルで実行できないのでいちいち環境にコードをアップロードして実行確認しないといけないですが、この方法を行うとコードのアップロードが自動化できるんですね。
これは便利ということで、早速試してみました。
1. NetSuite側:基本機能と権限の設定
まずNetSuiteの管理画面(Administratorロール)で、外部接続を許可します。
① 機能の有効化
設定 > 会社 > 機能の有効化
* SuiteCloudタブ: 「SuiteCloud Development Framework」 をチェック。
* Manage Authenticationタブ: 「OAuth 2.0」 をチェック。
② インテグレーション・レコードの作成
メニュー > 設定 > インテグレーション > 統合を管理 > 新規
* Name:任意※利用管理を考えると、個人のユニーク情報(メールアドレス)がおすすめ。プロジェクトから離脱したらこれを消せばいいので。
* OAuth 2.0 セクション:
* `承認コード付与`: チェックON
* ` REST Webサービス`: チェックON
* リダイレクトURI: `http://localhost:3003` (※固定値)
* 保存後: 表示される 消費者キー/クライアントID と 消費者のシークレット/クライアントのシークレット を必ずテキストエディタ等にコピペしておく。
※画面を閉じると二度と表示されないため。
③ ロール(役割)の作成
設定 > ユーザー/ロール > ロール管理 > 新規
* 権限 > 設定:
・ `Log in using OAuth 2.0 Access Tokens`: Full
・ `REST Web サービス`: Full
※マニュアルには
SuiteCloud Development Framework`: Full
も書いてあったのですが、権限に見当たらない。で、無くてもいけました。
2. PC側:開発環境のインストール
以下の順序でインストールしてください。バージョンが重要です。
1. Node.js: [公式サイト](https://nodejs.org/)からLTS版をインストール。
* [Oracle JDK 17 ダウンロード](https://www.google.com/search?q=https://www.oracle.com/java/technologies/downloads/%23java17)から「x64 Installer」を選択。
* インストール後、ターミナルで `java -version` を打ち、17系であることを確認。
3. SuiteCloud CLI:
3. プロジェクト作成とOAuth2認証
現在のCLIは「プロジェクトの中」で認証を行う仕様です。
プロジェクトはどこでもいいので適当に作る(例えば下記はdesktop直下にns-devフォルダを作りそこをプロジェクトとする)
Nameは適当に付与。
Unit Testingは、まずは簡略化のためOFFで。
① プロジェクトの初期化
mkdir ns-dev
cd ns-dev
suitecloud project:create -i
* Type: `Account Customization Project`
* Name: `my_project`
* Unit Testing: `No`
② OAuth2接続の実行
cd my_project
suitecloud account:setup
1. Browser-based を選択。
2. ブラウザが開くのでログインし、手順1-③で作ったロールを選択して「Allow」を押す。
3. ターミナルに戻り、`dev` などの別名を付ければ完了です。
4. 開発実践(基本コマンド集)
最新のCLI(v3.1.2以降)の正しいコマンド形式です。
ターミナルに投げるだけでポンポンやってくれます。今までの苦労なんだったんだ。
| 操作 | コマンド |
|---|---|
| 接続確認 | suitecloud account:manageauth -i |
| ファイル一覧取得 | suitecloud file:list --folder "/SuiteScripts" |
| ファイルをダウンロード | suitecloud file:import --paths "/SuiteScripts/test.js" |
| ファイルをアップロード | suitecloud file:upload --paths "/SuiteScripts/test.js" |
| プロジェクト一括送信 | suitecloud project:deploy |