ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
クライアントスクリプトでトランザクションの各アイテムをループし、最初のアイテムで停止したフィールド値を設定する
適用
製品: NetSuite 2024.2
シナリオ
注文書トランザクションで、プライマリセクションのカスタムセグメントフィールドカスタム場所を変更した後、クライアントスクリプトを実行して各ラインアイテムをループし、カスタム場所という名前のカスタムラインアイテムカスタムセグメントフィールドを設定するシナリオを考えてみます。
カスタム場所ヘッダーフィールドを設定した後、カスタム場所はラインアイテムに設定されますが、最初の行にのみ設定されます。次に、[OK]ボタンをクリックしても機能しません。
解決策
これは、Trueの値を返さない行検証の単純なケースです。
- クライアントスクリプトを編集します
- スクリプトレコードでライン検証関数として設定されている関数を探します
- returntrueがあるかどうかを確認します。これは、ラインアイテムのコミットアクションを検証するために必要です。
以下は、内部の条件が満たされない場合にreturn true呼び出しが欠落し、ラインアイテムの編集がスタックする原因となるサンプルコードです
/*** Client Script Version 2.0*/function clientValidateLine(scriptContext){ var currentRec = scriptContext.currentRecord; var custloc = currentRec.getValue({ fieldId: 'custbody_cust_location' }); // Let's say that the value is "Location 1" if (custloc == "Location 2") { // some logic here return false } // notice that a "return true" statement is missing on this line}
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。