NetSuite SuiteScript 2.0 開発でよく使うモジュール10選とその活用方法

NetSuiteのSuiteScript 2.0での開発において、よく使用されるモジュールを10個選出し、それぞれの用途とサンプルコードを紹介します。これらのモジュールを活用することで、効率的な開発が可能になります。

頻出モジュール10選と使い方

1. N/record モジュール

用途:

レコードを操作するためのモジュールです。レコードの作成、検索、更新、削除など、NetSuiteの各種レコードを操作する際に使用します。

サンプルコード:

var record = require('N/record');

// 新しい顧客レコードを作成
var customerRecord = record.create({
    type: record.Type.CUSTOMER
});
customerRecord.setValue({
    fieldId: 'companyname',
    value: '新しい顧客名'
});
var recordId = customerRecord.save();
log.debug('顧客レコードID:', recordId);

説明:

このモジュールを使うことで、NetSuite内のレコードを簡単に操作できます。create(), load(), delete(), submit() などのメソッドで、レコードの操作が行えます。

2. N/log モジュール

用途:

ログメッセージを出力するためのモジュールです。デバッグやエラーハンドリング時に、メッセージを出力するのに役立ちます。

サンプルコード:

var log = require('N/log');

log.debug({
    title: '処理開始',
    details: '顧客レコードを作成中'
});

説明:

log.debug()log.error() などを使用して、スクリプト内で処理の進行状況やエラー内容をログに記録できます。デバッグ時に非常に便利です。

説明:

このモジュールを使うことで、NetSuite内のレコードを簡単に操作できます。create(), load(), delete(), submit() などのメソッドで、レコードの操作が行えます。

3. N/search モジュール

用途:

NetSuite内のレコードを検索するためのモジュールです。フィルタリングや集計、ソートを使用して効率的にデータを取得できます。

サンプルコード:

var search = require('N/search');

var customerSearch = search.create({
    type: search.Type.CUSTOMER,
    columns: ['companyname'],
    filters: [['companyname', 'is', '顧客名']]
});

var results = customerSearch.run().getRange({ start: 0, end: 10 });
results.forEach(function(result) {
    log.debug('顧客名:', result.getValue('companyname'));
});

説明:

N/searchモジュールを使用すると、特定の条件でレコードを検索し、結果を取得できます。検索結果を利用してさまざまな操作を実行できます。

4. N/ui/serverWidget モジュール

用途:

カスタムフォームやサブリストを作成するためのモジュールです。ユーザーインターフェースのカスタマイズに使用されます。

サンプルコード:

var serverWidget = require('N/ui/serverWidget');

var form = serverWidget.createForm({
    title: 'カスタムフォーム'
});
form.addField({
    id: 'custpage_text',
    type: serverWidget.FieldType.TEXT,
    label: 'テキストフィールド'
});
form.addSubmitButton({
    label: '送信'
});
context.response.writePage(form);

説明:

N/ui/serverWidgetモジュールは、カスタムフォームやダッシュボードウィジェットを作成する際に使用します。これにより、NetSuiteのインターフェースを柔軟にカスタマイズできます。

5. N/email モジュール

用途:

メール送信を行うためのモジュールです。レポートや通知をメールで送信する際に使用されます。

サンプルコード:

var email = require('N/email');
var runtime = require('N/runtime');

email.send({
    author: runtime.getCurrentUser().id,
    recipients: 'recipient@example.com',
    subject: 'テストメール',
    body: 'これはテストメールです。'
});

説明:

N/emailモジュールを使用すると、スクリプトから直接メールを送信できます。通知やエラー報告、レポート送信に利用されます。

6. N/https モジュール

用途:

外部のHTTPSリソースと通信を行うためのモジュールです。外部APIとの連携に使用されます。

サンプルコード:

var https = require('N/https');

var response = https.get({
    url: 'https://api.example.com/data'
});
log.debug('レスポンス内容:', response.body);

説明:

外部のHTTPSサーバーと連携するために使用します。GETリクエストやPOSTリクエストを送信し、外部データを取得したり、処理結果を送信したりできます。

7. N/runtime モジュール

用途:

スクリプトの実行環境や現在のユーザー情報を取得するためのモジュールです。

サンプルコード:

var runtime = require('N/runtime');

log.debug('スクリプトID:', runtime.getCurrentScript().id);
log.debug('現在のユーザーID:', runtime.getCurrentUser().id);

説明:

スクリプトの実行中に、スクリプトIDやユーザーID、スクリプトの残り実行時間などを取得することができます。スクリプトの状態を把握するために便利です。

8. N/transaction モジュール

用途:

トランザクションレコードを操作するためのモジュールです。販売伝票や購買伝票などの操作に使用されます。

サンプルコード:

var transaction = require('N/transaction');

var salesOrder = transaction.create({
    type: transaction.Type.SALES_ORDER
});
salesOrder.setValue({
    fieldId: 'entity',
    value: 12345  // 顧客ID
});
var orderId = salesOrder.save();
log.debug('注文ID:', orderId);

説明:

N/transactionモジュールは、販売、購入、支払いなどの取引に関連するレコードの作成、更新、取得を行います。

9. N/file モジュール

用途:

ファイル操作を行います。ファイルのアップロード、ダウンロード、保存に使用します。

サンプルコード:

var file = require('N/file');

// 新しいファイルを作成
var newFile = file.create({
    name: 'sample.txt',
    fileType: file.Type.PLAINTEXT,
    contents: 'これはサンプルのテキストファイルです。'
});
newFile.folder = 123;  // フォルダID
var fileId = newFile.save();
log.debug('ファイルID:', fileId);

説明:

N/fileモジュールは、NetSuite内でファイルを操作するために使用されます。ファイルの作成、アップロード、保存、ダウンロードなどを行えます。

10. N/task モジュール

用途:

スケジュールされたタスクを管理するためのモジュールです。定期的な処理やバックグラウンドタスクを設定できます。

サンプルコード:

var task = require('N/task');

var scheduledTask = task.create({
    taskType: task.TaskType.SCHEDULED_SCRIPT,
    scriptId: 'customscript_my_scheduled_script',
    deploymentId: 'customdeploy_my_scheduled_deploy'
});
scheduledTask.submit();

説明:

スケジュールされたタスクの作成と管理に使用します。バックグラウンドで定期的に実行したい処理を設定する際に便利です。

モジュール一覧

モジュール名説明
N/actionアクションの管理を行い、特定の処理をトリガーするアクションを作成・管理する。
N/authAPIリクエストの認証やOAuth 2.0などの認証情報を処理する。
N/cacheデータのキャッシュを管理し、パフォーマンスの向上を図る。
N/certificateControlSSL証明書や暗号化キーなどの証明書管理を行う。
N/commerceseコマースに関連する機能を提供し、注文管理や商品情報の操作を行う。
N/compressデータの圧縮や解凍を行う。
N/configスクリプトの設定情報を管理し、必要な設定を簡単に管理できる。
N/cryptoデータの暗号化や署名、検証を行う。
N/crypto/certificate暗号化証明書の処理を行い、証明書の生成や検証を行う。
N/crypto/random暗号学的に安全なランダムデータを生成する。
N/currency通貨関連の処理を行い、通貨の変換や通貨コードの管理を行う。
N/currentRecord現在操作中のレコードにアクセスするためのモジュール。
N/datasetデータセットの作成や管理を行う。
N/datasetLinkデータセットに関連するリンクの管理を行う。
N/emailメールの送信を行い、通知やレポートをメールで送信する。
N/encodeBase64エンコードやURLエンコードなど、データのエンコードを行う。
N/errorエラーハンドリングを行い、エラーオブジェクトの作成やエラー詳細の取得を行う。
N/fileファイルのアップロード、ダウンロード、作成などの操作を行う。
N/format日付や通貨、数値のフォーマットを行う。
N/format/i18n多言語対応で日付や数字の形式を地域ごとに変換する。
N/httpHTTPリクエストを送信するためのモジュール。
N/httpsHTTPSリクエストを送信するためのセキュアな通信を行うモジュール。
N/https/clientCertificateHTTPSリクエスト時にクライアント証明書を使用する。
N/keyControlAPIキーや暗号化キーの管理を行う。
N/llm自然言語処理や機械学習に関連する処理を行うモジュール。
N/logログメッセージを記録し、デバッグやエラーハンドリング時に使用する。
N/pgpPGP暗号化を使用してデータの暗号化や署名を行う。
N/piremovalレコードやトランザクションの削除を効率的に行う。
N/pluginNetSuiteの機能を拡張するためのプラグイン作成や管理を行う。
N/portletダッシュボード用のカスタムポートレットを作成する。
N/querySQLライクなクエリを作成して、レコードやデータの検索を行う。
N/recordレコードの作成、更新、検索などの操作を行う。
N/recordContextレコードに関連するコンテキスト情報を取得する。
N/redirectユーザーを指定したURLにリダイレクトする。
N/renderレコードやリストをHTMLやPDFに変換して表示する。
N/runtimeスクリプトの実行時環境情報を取得する。
N/scriptTypes/restletRESTletスクリプトの作成や管理を行う。
N/searchNetSuite内のレコードを検索し、条件を指定してデータを取得する。
N/sftpSFTPを使用してファイルの転送を行う。
N/ssoシングルサインオン(SSO)を管理し、ユーザー認証を行う。
N/suiteAppInfoSuiteAppの情報を取得する。
N/taskスクリプトのタスクを管理するモジュール。
N/task/accounting/recognition会計関連のタスクを認識する。
N/transaction取引(トランザクション)の作成、更新、取得などを行う。
N/translation翻訳関連の機能を提供し、ローカライズ処理を行う。
N/uisユーザーインターフェイス(UI)関連の機能を提供する。
N/urlURLの操作や生成を行う。
N/utilユーティリティ関数を提供し、共通処理を効率化する。
N/workbookスプレッドシートの作成や管理を行う。
N/workflowワークフローの作成や管理を行い、ビジネスプロセスを自動化する。
N/xmlXMLの解析、生成、操作を行う。

まとめ

これらのモジュールを活用することで、NetSuite上での開発作業が大幅に効率化されます。各モジュールの特性を理解し、適切な場面で使い分けてください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です