-
Suitescriptを使用して注文書が請求後に編集ボタンを無効にする
適用 製品: NetSuite 2023.1 シナリオ 標準的なシステム動作として、現在、管理者でなくても、請求時に注文書を編集できます。 これを回避するために、ユーザーは、管理者として設定されていないユーザーに対して請求された注文書の編集ボタンを非表示にすることができます。 これは、ユーザー イベントスクリプトまたはクライアントスクリプトによって実現できます。 解決策 * 以下のサンプル コードを使用して JavaScript ファイルを作成しますdefine([ 'N/record', 'N/search', 'N/runtime' ], function(record, search, runtime) { function…
-
SuiteScript1.0ではnlapiLookupFieldがNaNを返す
適用 製品: NetSuite 2022.2 シナリオ nlapiLookupFieldを使用すると、NaNという不正な値が返されることがある。 var override = nlapiLookupField('opportunity', oppid, 'custbody121'); nlapiLogExecution('DEBUG', 'Override: ', +override); 解決策 NaNを不正に返す原因は、override変数のnlapiLogExecutionの第3パラメータに「+」が付いていることです。 NaNを不正に返すことを解決するには、変数上の「+」を削除する必要があります。…
-
SuiteScript 2.0を使用して異なるタイムゾーンの日付文字列を現在のタイムゾーンの日付に変換する
適用 製品: NetSuite 2022.1 シナリオ 異なるタイムゾーンの日付文字列を、現在のタイムゾーンの日付時刻に変換したい。 解決策 以下のサンプルは、SuiteScript 2.0 の N/format モジュールを使用して、異なるタイムゾーンの日付文字列を現在のタイムゾーンの日付に変換する方法を示しています。これは、F12 Developerブラウザコンソールを使用してテストされています。 注:タイムゾーンの例については、記事44535 format.Timezoneを参照してください。 require(["N/format"], function(format){ var myDateStr = '09/22/2015…
-
ユーザーをサブリストの追加、変更、または削除できないようにする
適用 製品: NetSuite 2023.1 シナリオ ユーザーは、スクリプトを使用して、一部のユーザーがサブリストからラインアイテムを追加、編集、挿入、または削除できないようにしたいと考えています。 解決策 validateLine、validateInsert、validateDeleteトリガーを利用するクライアントスクリプトを作成する必要があります。 上記の各トリガーは、操作が続行するかどうかを示すブール値を返します。 たとえば、validateLine()関数がtrueを返す場合、新しいラインアイテムがサブリストに追加されます。 falseが返された場合、追加操作は続行できません。 以下のサンプルスクリプトを参照してください。…
-
クライアントスクリプトからRESTletを呼び出す
適用 製品: NetSuite 2022.2 シナリオ RESTletには認証が必要です。ただし、NetSuiteによってホストされているクライアントからRESTletが呼び出された場合、認証ヘッダーは不要になります。 解決策 クライアントスクリプトからRESTletを呼び出す以下サンプルをご参照ください。 var url ='/app/site/hosting/restlet.nl?script=380&deploy=1'; var headers = new Array(); headers['Content-type'] = 'application/json'; var result = nlapiRequestURL(url,…
-
SuiteScriptで在庫アイテムレコードの階層バージョンのラインアイテムを設定
適用 製品: Netsuite 2022.1 シナリオ クライアントスクリプトで既存在庫部品(在庫アイテム)レコードの階層バージョンラインアイテムを設定します。 解決策 以下の例クライントスクリプトコードは在庫部品レコードへデプロイします。このスクリプトは、バージョンに組み込み済のチェックバックスをマークして、階層ノードフィールドをノードの内部IDに設定します。 SuiteScript 1.0: nlapiSetLineItemValue('hierarchyversions', 'isincluded', 1, 'T') // ラインアイテム1のバージョンに組み込み済のチェックバックスをマーク(真)…
-
フィールドの値は英数字のみであるか
適用 製品: NetSuite 2021.1 シナリオ フィールドの値は、英数字のみに制限します。 解決策 * Notepadのアプリケーションにて、以下のコードをコピーし、貼り付きし、JavaScript (.js)のファイルとして保存します。 function validateName() { var name = nlapiGetFieldValue('companyname'); var regExp = /[^a-zA-Z0-9 ]/; if (!regExp.test(name)) { return true; } else { alert('Name can only have alphanumeric…
-
SuiteScriptを用いて国フィールドを強制的に選択した国のみを含むようにする
適用 製品: NetSuite 2025.2 シナリオ 一部のユーザーは、対応していない国やサポート対象外の国には対応しないため、国選択フィールドに他国を含めたくないと考えています。 解決策 これを実現するために、ユーザーは以下のAPIを使用する必要があります。 nlapiRemoveSelectOption("国") - これはリストからすべての国を削除します。 nlapiInsertSelectOption("国", "CA", "カナダ") - 米国を追加し直します。 nlapiInsertSelectOption("国", "CA", "カナダ") - カナダを追加し直します。…
-
APIの戻り値を演算に参照する時、結果が誤る
適用 製品: NetSuite 2023.1 シナリオ APIの戻り値を演算に参照する時、結果が誤ります。 nlapiGetFieldValueとかnlapiGetCurrentLineItemValue等のSuiteScript APIの戻り値の種類は文字列です。それぞれのAPIの戻り値は演算にて直接に使用できるが、結果は誤ることもあります。以下のサンプルコードを参照します。 var field1 = nlapiGetCurrentLineItemValue('item', 'custcol1'); var field2 = nlapiGetCurrentLineItemValue('item', 'custcol2'); var…
-
現時点では、viewCurrentLineItemSubrecordとviewLineItemSubrecordは、クライントスクリプトでサポートされていません
適用 製品: NetSuite 2023.1 シナリオ クライントスクリプトのイベントにて、住所のサブレコードのフィールドの値を基づいて、メーもフィールドの値を設定したいです。但し、現時点では、viewCurrentLineItemSubrecordとviewLineItemSubrecordは、クライントスクリプトでサポートされていません。 解決策 回避するには、クライントスクリプトからSuiteletを呼び出して、住所サブレコードのフィールドの値を取得します。以下のSuiteScript 1.0のサンプルスクリプトとコメントを参照します。…