-
ケースのステータスをクローズする前に、スクリプトで電子メールの通知を送信する
適用 製品: NetSuite 2025.1 シナリオ ユーザーは、ケースレコードのステータスをクローズとして完了する前に、確認メールを送信する旨の通知を受け取りたい。 解決策 以下のサンプルのコードを参照し、SuiteScript 1.0のクライアント・スクリプトを作成します。 function saveRecord() { if (nlapiGetFieldText('status') === 'Closed') { if ((nlapiGetFieldValue('emailform') == 'F') && (nlapiGetFieldValue('internalonly') == 'F')) { alert('Please…
-
cipher.finalで予期しないエラーが発生
適用 製品: NetSuite 2020.2 シナリオ Suiteletで情報を暗号化されるCipherを使用すると、cipher.finalで予期しないエラーが発生されます。 解決策 Cipherを使用するには、8、16、32の文字数のみ含む厳格に必要があります。
-
クライアントスクリプト > URLパラメータを取得する
適用 製品: NetSuite 2023.1 シナリオ URLからパラメーター値を取得します。 解決策 次のコード行はユーザーがURLからパラメーターを取得できるようにします。これはユーザーがユーザーイベントスクリプトからクライアントスクリプトにパラメーターを渡すためにURLをカスタマイズする場合に役立ちます。 「for loop」とsplit()を使用する function getParameterFromURL(param) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i <…
-
SuiteQLを使用してSQLクエリを実行するSuitelet
適用 製品: NetSuite 2022.1 シナリオ 以下のスニペットコードは、SuiteQLを実行するためのSuiteletです。 解決策 /** * @NApiVersion 2.0 * @NScriptType Suitelet * @NModuleScope SameAccount */ define(['N/log', 'N/query', 'N/ui/serverWidget'], function (log, query, serverWidget) { function Abc(context) { var form = serverWidget.createForm({ title: 'Abc - SuiteQL',…
-
カスタムロールのセンターから「キュメント」タブを削除する方法
適用 製品: NetSuite 2020.1 シナリオ カスタムロールのセンターから「キュメント」タブを削除します。 解決策 解決策 * 設定 > ユーザー/ロール>ロールを管理 * カスタムロールで編集 * 「権限」タブ>リスト/サブリスト>ドキュメントとファイル>削除 * 「保存」をクリック
-
入社日フィールドが空の場合にエラーを返すようにワークフローを設定する
適用 製品: NetSuite 2021.1 シナリオ フォームで入社日を必須に設定できない場合は、ワークフローを作成して、入社日フィールドが空のときにエラーを返し、従業員レコードの送信を防ぐことができます。 解決策 * カスタマイゼーション> ワークフロー> ワークフロー> 新規作成に移動します * 基本情報: 名前:入社日の検証を入力します レコードの種類:従業員を選択します 管理者として実行:チェックマークを入力します リリースステータス:リリース済みを選択します インスタンスと履歴を保持:常にを選択します ログを有効化:チェックマークを入力します * イベント定義: 作成時:チェックマークを入力します…
-
明細書の繰越残高ラインを削除する方法
適用 製品: NetSuite 2025.1 シナリオ ユーザーは、アドバンストPDF/HTMLテンプレートを使用して、顧客明細書内の繰越残高行(最初の行) を削除したいと考えています。 解決策 カスタマイゼーション > フォーム > トランザクションフォーム 優先ステートメント フォーム:: カスタマイズ をクリック 印刷テンプレート: 名前をメモする カスタマイゼーション > フォーム > アドバンスト PDF/HTMLテンプレート 手順 3 の テンプレートで 編集/カスタマイズ をクリック 右上隅: ソースコード のトグルスイッチを切り替える ソース コード: 行項目部分に if-else タグを追加して、最初の行をスキップ 例:…
-
パートナーセンターの「マーケティング」タブを削除する方法
適用 製品: NetSuite 2021.1 シナリオ パートナーセンターで使用される外部顧客フォームをカスタマイズする場合、「マーケティング」タブを削除する方法はありません。 顧客フォームの「マーケティング」タブを非表示にする別の解決策は、入力フォームをカスタマイズすることです。 解決策 * カスタマイゼーション > フォーム > エントリーフォーム * 優先カスタマーフォーム:「カスタマイズ」をクリック * 「サブタブ」をクリック ○マーケティングタブ: ■表示:チェックボックスを外す * 「ロール」をクリック ○パートナーセンターロール: ○優先:チェックマークを付ける * 「保存 」をクリック
-
.NETサンプルアプリケーションを実行するための動的Webサービス参照URLを設定
適用 製品: NetSuite 2022.1 シナリオ .NETサンプル・アプリケーションを実行するための動的Webサービス参照URLを設定する 解決策 * Microsoft Visual C # Studioで.NETサンプル・アプリケーションNSClientCRM.csを開く * Webリファレンスを右クリック * Webリファレンスの追加をクリックして、以下のWSDL URLを追加する* https://webservices.netsuite.com/wsdl/v2019_2_0/netsuite.wsdl 本番用 *…
-
ワークフローのクライアントトリガーのアクションのビジュアルビルダーまたはカスタム計算式フィールドドロップダウンリストでは使用できないスクリプト可能なフィールドを使用して条件を作成する
適用 製品: NetSuite 2022.1 シナリオ ビジュアルビルダーまたはカスタム計算式フィールドドロップダウン リストでは使用できないスクリプト可能なフィールドで条件を作成します。例えば、注文書レコードの配送先電話番号フィールドはスクリプト可能ですが、ビジュアルビルダーまたはカスタム計算式ドロップダウンリストでは選択できません。 クライアントイベントトリガーを使用するワークフローアクションの場合、ユーザーは nlapiGetFieldValue() を使用して、代替案としてワークフロー条件のスクリプト可能フィールドを参照できます。 解決策 * カスタマイゼーション>ワークフロー>ワークフロー>新規作成に移動 *…
-
SuiteScript - SFTP接続のエラーを解決する
適用 製品: NetSuite 2025.1 シナリオ NetSuiteのSuiteScript 2.0モジュール「N/sftp」を使用する際、スクリプト開発中に問題が発生する場合があります。そのため、本モジュールを利用する際には、必要な設定および考えられる制限事項を事前に必ずご確認いただくことを強く推奨いたします。 以下は、N/sftpモジュールを使用する際にご留意いただくべき事項です。安全かつ効果的にご利用いただくためのベストプラクティスとなりますので、ぜひご参照ください。 解決策 サーバーへの接続に使用する通信プロトコル現時点では、SuiteScriptのN/SFTPモジュールによるファイル転送はSFTPのみサポートされています。…
-
出荷のトランザクションで計算ボタントリガー
適用 製品: NetSuite 2023.1 シナリオ スクリプトを介して、トランザクションページ(例:注文書とか、請求書等)での計算ボタンをトリガーする事象を添えます。 解決策 ボタンのオン・クリックの機能の「Shipping.calculateRates()」を使用できます。 追記:Shipping.calculateRates() の機能をトリガーする前に、以下のフィールドが記入済かどうか確認必要があります。 * 顧客フィールド * 配送業者フィールド * 配送方法フィールド * 出荷日フィールド(適用の場合) * 配送先住所フィールド (適用の場合) * アイテムサブリスト (少なくとも1つを追加する) 免責事項…
-
nlapiLoadConfiguration("userpreferences")のAPIは会社プリファレンスを返す
適用 製品: NetSuite 2023.1 シナリオ ユーザーは、定期スクリプトからnlapiLoadConfiguration('userpreferences')APIを呼び出します。ユーザーの期待は、ユーザーのプリファレンスが返されることですが、代わりに会社のプリファレンスが返されます。 解決策 定期スクリプトで実行された場合、定期スクリプトにログオンされるユーザーが「-System-」であるため、nlapiLoadConfiguration('userpreferences')は会社のプリファレンスを返します。
-
アドバンストPDF テンプレートを使用して、注文書で配送されていないアイテムのみを表示する方法
適用 製品: NetSuite 2023.2 シナリオ アドバンストPDFテンプレートを使用して印刷するときに、注文書の配送されていないアイテムを表示したい。 解決策 if タグを使用して、アイテムが配送されたかどうかを確認できます。 <#if item.fulfill == "0" >
-
Webサービスを用いて注文書を追加するときにクレジットカードの処理を停止する
適用 製品: NetSuite 2023.1 シナリオ ユーザーは「ccApproved」フィールドをtrueに設定して、Webサービスから入力したときにクレジットカードの処理が行われないようにすることができます。これはNetSuiteの外部で作成および処理される注文書をWebサービスにてNetSuiteへ取り込む際にに役立ちます。たとえば、顧客からの注文書を受け取る外部Webサイトなどでの使用が考えられます。 クレジットカードが既に外部で処理されている場合、NetSuite側でクレジットカード情報を再処理しないでください。 解決策…
-
権限違反のトラブルシューティング
適用 製品: NetSuite 2019.1 シナリオ エラー:「権限違反」は、さまざまなNetSuite統合APIで表示される場合があります。 Webサービス、RESTlet、Suitelet、またはGUI。 解決策 調査の最初のステップは、このエラーがどのAPIまたはインターフェースにも接続されていないという事実を思い出すことです(定義の問題かも知りません)。つまり、このエラーがWebサービスでスローされると、GUIでもスローされます。これは逆にも機能します。GUIで機能する場合は、Webサービスでも機能します。…
-
スクリプトによる送料再計算のトリガー
適用 製品: NetSuite 2022.2 シナリオ スクリプトを用いて注文書の配送コストの再計算をトリガーしたい。 解決策 現在のところ、サーバーサイドAPIや、注文書の送信時や更新時に送料の再計算をプログラムで明示的に強制する仕組みはありません。 * もしユーザーがNetSuiteに自動的に送料を計算させたい場合、ユーザーは送料に影響を与える数量や注文のあらゆる側面を変更したり、更新したりする必要があります。 * もしユーザーがNetSuiteに自動的に送料を計算させたくない場合は、NetSuiteが再び計算を実行するのを防ぐために、送料を提出する必要があります。…
-
カスタムフィールドでネイティブカスタマーフィールドを使用する方法
適用 製品: NetSuite 2021.1 シナリオ ユーザーは、ネイティブの顧客フィールドのように動作し、販売トランザクションで見つかるカスタムフィールドを作成したいと考えています。 解決策 * カスタマイゼーション > リスト、レコード、およびフィールド >トランザクションラインフィールド > 新規作成 * ラベル: ラベルを入力 例:お客様 * 種類:リスト/レコードを選択 * リスト/レコード:カスタマーを選択 * 値を保存:チェックマークを付ける * 次に適用 (a)タブをクリック ●販売:チェックマークを付ける * 「保存」をクリック
-
SuiteScript 2.0の定期スクリプトでINVALID_SEARCHのエラーが発生
適用 製品: NetSuite 2022.1 シナリオ 有効とパブリックとして設定した保存検索はSuiteScript2.0の定期スクリプトで参照する時、N/search module(e.g search.load)を実行すると「INVALID_SEARCH」のエラーが発生してしまいます。 解決策 原因は以下の2つの何れです。 * スクリプトで設定した保存検索の種類は正しくありません。 * 例:保存検索の種類は在庫残高で、スクリプトの参照でトランザクションとして設定してしまって、実行したら「INVALID_SEARCH」のエラーが発生します。 * 参照している保存検索はパブリックに設定していません。 *…
-
ユーザーイベントスクリプトを使用して、特定のロールのサブリストアクセスを制限する
適用 製品: NetSuite 2025.2 シナリオ ユーザー・イベント・スクリプトを使用して、価格設定および保管棚番号サブリストの非管理者ユーザーの表示アクセスを制限します。 解決策 サブリストを非表示にするためのサンプルスクリプトは次のとおりです。 var role = runtime.getCurrentUser(); // checks the role of the current user if(type == 'create' || type == 'edit') // triggers only on create mode and edit mode { if(role != '3') // checks if…
-
Pythonでトークンベースの認証を使用しRESTletを呼び出す
適用 製品: NetSuite 2022.1 シナリオ RESTletのトークンベース認証を使用し、PythonでHTTP POSTリクエストを送信する必要がある場合があります。 解決策 以下のサンプルコードをPythonで使用し、OAuth 1.0認証でPOSTリクエストを使用し、RESTletを呼び出すことができます。 import oauth2 as oauth import json import requests import time url =…
-
作成元フィールドを使用して、ワークオーダーの注文書からトランザクションボディーフィールドに営業担当者フィールドを追加
適用 製品: NetSuite 2023.2 シナリオ ワークオーダーは注文書から作成され、次の要件を持つトランザクションボディフィールドがあるワークオーダーの注文書の担当を表示する必要があります。 * カスタマイズ>リスト、レコードおよびフィールド>トランザクション・ボディ・フィールド>新規に移動 * 基本情報:* ラベル:営業担当者の入力 * ID:_sales_repと入力します。 * 種類:自由形式テキストの選択 * 値を保存:チェックマークの入力 * 適用先タブ:* ワーク・オーダー/アセンブリ構成:チェックマークの入力 * ソースおよびフィルタータブ:* ソース・リスト:作成元の選択 * ソース:営業担当の選択 *…
-
SuiteScriptを使用し、CSVファイルを読み取り、データを配列に格納する
適用 製品: NetSuite 2022.1 シナリオ SuiteScriptを使用し、カスタムCSVインポートを作成する 解決策 以下のスニペットは、ファイルキャビネット内のCSVファイルを読み取り、配列に保存します。 SuiteScript 1.0: var arrLines = nlapiLoadFile({fileinternalid}).getValue().split(/\n|\n\r/); SuiteScript 2.0: var arrLines = file.load({ id: {fileinternalid} }); arrLines.getValue().split(/\n|\n\r/);…
-
選択/複数選択フィールドに対するnlobjSearchFilterを使用した検索フィルタを作成
適用 製品: NetSuite 2022.1 シナリオ 選択/複数選択フィールドでnlobjSearchFilterを使用して、部門がHRまたは営業であるすべての注文書を検索します。 解決策 function SearchSOs() { var filters = new Array(); filters[0] = new nlobjSearchFilter('mainline', null, 'is', 'T'); filters[1] = new nlobjSearchFilter('department', null, 'anyof', ['1', '13']); //1 - HRの内部ID;13 - 営業の内部ID var…
-
新しい顧客レコードを作成する時に ID を割り当てる方法
適用 製品: Netsuite 2023.1 シナリオ 自動生成番号機能は必須ではありませんが、新しい顧客を作成する際に顧客 ID フィールドに手動で入力する必要があります。 解決策 * 設定 > 会社 > 一般設定 * 顧客の自動命名: チェックマークを外す * 保存をクリック * 設定 > 会社 > 自動生成された番号 * エンティティをクリック * 列を有効にする: 顧客行のチェックマークを外す * 保存をクリック
-
条件付きのアドバンストPDFテンプレートで金額とレートを除外する方法
適用 製品: NetSuite 2025.1 シナリオ ユーザーは、品目コードが特定の文字列で始まる場合に、印刷中のフィールドを除外します。 解決策 品目コードがLIC,WAR,DISで始まる場合、または小計の場合のみレートを印刷してください: <#if> (item.item?starts_with("LIC")) || (item.item??starts_with("WAR")) || (item.item??starts_with("DIS")) || (item.item??starts_with('Sub Total'))> <td style="align: right;border-top: 0px…
-
支払請求書のスクリプトで 別の支払請求書と重複するメモの入力を禁止する
適用 製品: NetSuite 2024.2 シナリオ 顧客が、仕入先支払請求書のメモ・フィールドを一意にすることを希望しています。 解決策 SuiteAnswer記事:「支払請求書の参照番号の重複をチェックし、保存を禁止するクライアント・スクリプトのサンプル | 記事ID:46183」の手順を参照します。但し、以下のサンプルコードを使用します。 function onSave(type, name) { var memo = nlapiGetFieldValue('memo'); if (memo != null && memo != '') { var filter = new Array(); filter[0] = new…
-
基本PDFレイアウトの標準フィールドのテキストを変更する方法
適用 製品: Netsuite 2025.1 シナリオ 「カスタマイズ > フォーム > トランザクションPDFレイアウト(Basic PDF設定)」では、PDF設定内でフィールドの編集や名称変更を行うことはできません。この設定は、レコード内に存在するフィールドのみをPDFに反映する仕組みとなっています。 解決策 この制限を回避する一つの方法としては、トランザクションで使用しているフォーム上のフィールド自体を変更し、その後、Basic PDF設定で印刷することで、PDF出力に反映させることが可能です。
-
SuiteScript > ワークフロー・アクション・スクリプト2.0でRender.mergeの引数エラ
適用 製品: NetSuite 2020.2 シナリオ ワークフロー・アクション・スクリプトをトリガーすると、エラーが返されます「誤ったパラメータタイプ: options.customRecordはオブジェクトとして期待されています Wrong parameter type: options.customRecord is expected as object」 解決策 render.mergeEmail(options) で上記エラーが発生した場合、IDが整数であることをご確認ください。
-
Suiteletの外部URLからのページが表示されない
適用 製品: NetSuite 2023.2 シナリオ ユーザーは外部URLにてSuiteletにアクセスしますが、正しく画面はレンダリングされません。 解決策 Suiteletは外部URL によってアクセスされると、レンダリング時に現在優先される SiteBuilder テーマを継承します。カスタム SiteBuilderテーマは、レンダリングの問題を引き起こす可能性があります。レンダリングの問題が発生した場合は、NetSuiteの標準SiteBuilderテーマのいずれかに切り替えることをお勧めします。