-
SuiteScriptでレコードの最後の編集者を取得
適用 製品: NetSuite 2022.1 シナリオ システムノート保存検索やスクリプトを使用して、トランザクションの最後の編集者を取得します。 解決策 この解決策を実行するために使用できるオプションは、以下の2つです。 * N/runtimeモジュールは、レコードを最後に編集したユーザーを特定するのに役立ちます。N/runtimeモジュールは、レコードを編集した最後のユーザーを特定するのに役立ちます。N/runtime モジュールを使用すると、トランザクション/レコードに変更が加えられたかどうかがわからなくなります。 * カスタム保存検索を使用すると、実際にレコードを変更し、それを保存したユーザーを特定することができます。…
-
ユーザイベントスクリプトにて注文書を請求
適用 製品: NetSuite 2024.2 シナリオ 注文書の請求時に生成される請求レコードは、注文書の支払方法または支払条件のどちらで請求方法が異なります。この記事では、ユーザーイベントスクリプトを使用して注文書レコードを請求するサンプルコードを示します。 解決策 以下内容のユーザイベントスクリプトを作成します require('N/record'], function(record) { var salesOrderRecord = record.load({ type:record.Type.SALES_ORDER, id: 1 }); var soPaymentMethod =…
-
エラー解決:無効なサブリストの操作または無効なライン・アイテムの操作が実行されました
適用 製品: NetSuite 2022.1 シナリオ 在庫部品(在庫アイテム)レコードで送信ボタンを押下後、デプロイされたユーザーイベントスクリプトで「無効なサブリストの操作または無効なライン・アイテムの操作が実行されました」のエラーが発生してしまいます。 スクリプト内で、ラインアイテムの「階層バージョン('hierarchyversions')」をコミットしているためです。 解決策 スクリプトで「recObj.commitLineItem('hierarchyversions')」を削除します。 サンプルコード: recObj.setLineItemValue('hierarchyversions', 'isincluded', 1,…
-
別のWebサイトにアクセスするカスタムリンクをカスタマーセンターに作成します
適用 製品: Netsuite 2021.2 シナリオ 別のWebサイトにアクセスするカスタムリンクをカスタマーセンターに作成しま 解決策 * カスタマイゼーション> センターおよびタブ> センターリンクに移動します * ラベルを入力し、URLの以下のリンクを入力します。以下の正確な文字を使用してください。 例:http://www.google.com.ph/ * 上記のリンクの一重引用符に注意してください。これにより、新しいウィンドウでリンクが開きます。 * 保存をクリックします * カスタマイゼーション> センターおよびタブ> センターカテゴリ> 新規作成に移動します 1. センターの種類:カスタマーセンを選択 2.…
-
Webサービスで注文書の確保列フィールドの設定
適用 製品: NetSuite 2020.2 シナリオ 通常、確保列フィールドを更新するときはイテムIDのみが設定して、行番号は指定しません。これにより、エラーが発生するか、フィールドが更新されない場合があります。 設定が必要な重要なフィールドはreplaceAll = falseおよび行番号となります。 解決策 サンプルXMLリクエストは以下となります。 <soapenv:Body> <update xsi:type='platformMsgs:UpdateRequest'> <record xsi:type='tranSales:SalesOrder' internalId='14457'> <itemList…
-
SuiteScriptを介してリダイレクトする場合、出る無効なURLのエラーを解決する
適用 製品: NetSuite 2022.1 シナリオ SuiteScript 1.0のnlapiResolveURL()またはSuiteScript 2.0のredirect.redirect()で生成されるURLはnlapiSetRedirectURLのパラメータとして使用すれば、「無効なURL」のエラーが出ます。 解決策 nlapiSetRedirectURL()で返した値に「&comp」が含めれば、エラーは発生します。 SuiteScript 1.0 nlapiSetRedirectURL('EXTERNAL', '/app/site/hosting/scriplet.nl?script=130&deploy=1&comp');…
-
SuiteScriptで顧客レコードに新たなアドレス帳サブレコードを作成して、アドレスラベルサブリストを設定
適用 製品: NetSuite 2022.2 シナリオ 顧客に対して新しいAddressBookサブレコードが作成されると、NetSuiteはAddressbookサブリスト(UI)のアドレスラベルを設定するためにAddress1フィールドを使用します。 あるユーザーがスクリプトで新しいAddressBookサブレコードを作成し、Address Labelサブリストに異なる値を設定したいと考えました。 解決策 以下のサンプルスクリプトは、SuiteScript 2.0のN/recordを使用して、顧客レコードに単純なAddressBook Subrecordを作成する方法を示しています。 var myRec = record.load({…
-
トランザクションアドバンスト検索を使用してメモフィールドを取得する
適用 製品: NetSuite 2023.1 シナリオ Transaction Search Basicを使用する場合、注文書のメモフィールドは列のmemoとして返されます。ただし、Transaction Search Advancedを使用する場合、メインフィールドのメモとラインアイテムのアイテムの説明は両方、memoとして返されます。 解決策 Transaction Search Advancedを使用する場合は、memoMainを使用し、メインのフィールドMemoのみを返すようにします。 免責事項…
-
SuiteTalkWebサービスにて内部IDを使用して複数の請求書にクレジットメモを適用する方法
適用 製品: NetSuite 2024.2 シナリオ Web Services SuiteTalkを使用してクレジットメモを更新し、既存の複数の請求書に適用したい。 解決策 クレジット・メモを消し込むには、クレジット・メモを消し込む請求書レコードの内部IDを使用します。この内部IDは、リクエストの5157要素内に置く必要があります。参照として、次のサンプルXMLリクエストを参照してください。 <soapenv:body> <update xsi:type="platformMsgs:UpdateRequest"> <record internalid="204162" xsi:type="tranCust:CreditMemo">…
-
企業間発注書の配送先住所を、企業間注文書のカスタム配送先住所からスクリプトで入力する
適用 製品: NetSuite 2022.1 シナリオ 関係会社間注文書により関係会社間発注書を記入する事をスクリプトで自動化したいです。 解決策 * 注文書へデプロイするユーザーイベントスクリプトを作成して、以下のロジックを応用します。 * 'intercotransaction'のフィールドは'not null'となっているチェックが必要です。 注:intercotransactionとは、「ペアの関係会社間トランザクション」のフィールドの事です。* 'intercotransaction'は空白以外となっている場合、(関係会社間発注書と紐付いている)フィールドの値を取得します。 *…
-
ワークオーダーの完了からスクラップ数量を取得し、発注書に表示します
適用 製品: NetSuite 2021.1 シナリオ スクラップ数量は、ワークオーダーレコードから直接調達することはできませんが、関連するワークオーダー完了レコードから調達できます。 解決策 その値を取得し、発注書のトランザクションボデイフィールドに設定するには、以下のガイドに従うことができます。 function userEventAfterSubmit(type) { var poID = nlapiGetRecordId(); var purchOrd = nlapiLoadRecord('purchaseorder', poID); var rec = nlapiLoadRecord('workorder',…
-
Webサービスを介してnoneOfエンティティの結果をフィルターする
適用 製品: NetSuite 2021.1 シナリオ ユーザーは、Webサービスを使用して、フィルター:entity:noneOf >を使用してトランザクション基本検索を実行したいと考えています。ただし、検索結果が、ユーザーがフィルタリングして含めないエンティティを含むトランザクションレコードをプルする場合があります。 解決策 期待される結果だけを取得できるようにするには、ユーザーは現在のエンティティの上に次のフィルターを使用する必要があります。noneOf<entityID> filter: * mainLine:true * mainName:noneOf…
-
トランザクションで使用されるカスタムフィールドの頻度と最後に使用された日付を表示します
適用 製品: NetSuite 2020.2 シナリオ 保存検索を使用して、カスタムフィールドがトランザクションで使用された回数といつ使用されたかを追跡します。 解決策 * リスト> 検索> 保存検索> 新規作成に移動します * システムノートをクリックします * 検索タイトル:カスタムフィールド検索を入力してください * 条件タブをクリックします * 標準タブをクリックします * フィルター: 注:フィールドを選択し、必要に応じて調整したら、必ず設定して追加をクリックしてください。 * 計算式(テキスト)を選択 * 計算式: {field.id}と入力します * 計算式(テキスト):「は」を選択 *…
-
時間請求の時間タイプを設定する
適用 製品: NetSuite 2024.2 シナリオ 時間請求レコードの時間タイプを設定したい。 解決策 時間請求レコードに時間の種類値を設定することはできません。レコード・ブラウザには、時間の種類が使用可能なフィールドとして表示されます。ただし、これは主に値を取得するためのもので、設定するものではありません。これまでのところ、種類が移入される唯一の方法は、標準動作を使用することです。 以下は、該当する値のリストの参考です。 1. 実際の時間:タイムトラッキングフォームからタイム・エントリが作成された時、値は「A」です。 2. 計画時間:プロジェクトのタスクレコードは作成された時、値は「P」です。 3.…
-
window.openerがSuiteScript 2.0で機能しない
適用 製品: NetSuite 2025.1 シナリオ SuiteScript 2.0を使用すると、ネイティブJavascript window.openerはSuiteScript 1.0の場合のように機能しません 解決策 requireステートメントにモジュールを参照し、関数を呼び出します。 サンプル: window.opener.require(["/SuiteScripts/Test/ps_test_client"], function (myModule) { myModule.setTestField(field1); } ); 関連 SuiteAnswers Set Field Value from Suitelet…
-
SuiteScript 1.0を介して、顧客レコードの住所サブレコードを取得する保存検索を作成する
適用 製品: NetSuite 2023.1 シナリオ 住所サブレコードにて、SuiteScript 1.0の保存検索を実行します。 解決策 顧客の内部IDを使用して、住所サブレコードの全ての値が返されます。以下のサンプルコードで果たします。 var customerSearch = nlapiSearchRecord("customer", null, [ ["internalid", "anyof", "16"] // 対象顧客の内部IDに変更 ], [ new nlobjSearchColumn("internalid", "Address", null), new nlobjSearchColumn("address",…
-
スクリプトレコード画面で表示されているスクリプトがスクリプトリストに表示されていない
適用 製品: NetSuite 2025.1 シナリオ スクリプトレコード画面で表示されているスクリプトがスクリプトリストに表示されていない 解決策 スクリプトレコード画面で表示されているスクリプトが、スクリプトのリストで表示されない場合があります。そういったスクリプトを特定するためには、以下手順を行ってみてください。 カスタマイゼーション > スクリプト > スクリプト に移動 フィルター > 種類 = - すべて - に設定 無効のレコードも表示 チェックボックスのチェックを外す すべての無効なスクリプトが表示されている新しいリストから、先ほど表示されていなかったスクリプトが表示されるようになったことを確認します。…
-
全額請求書で支払い済みを印刷するときに「全額支払い済み」を表示する
適用 製品: NetSuite 2021.2 シナリオ 請求書のステータスである場合、ユーザーは印刷された請求書に「全額支払い済み」のテキストを表示できます。 解決策 * カスタマイゼーション > フォーム > アドバンストPDF/HTMLテンプレートに移動 * 請求書テンプレートを編集 * ステータスを表示するヘッダー上の部分を見つけて、次の行を追加します <#if record.status == "全額支払済みl"> ${record.status} </#if> * テンプレートを保存
-
Suiteletからのデータをカスタムフォームに保存する
適用 製品: NetSuite 2019.1 シナリオ ほとんどの場合、Suiteletsは情報を取得するために使用されています。ユーザーがSuiteletからのデータをカスタムフォームに保存する場合のサンプルは以下となります。 解決策 function suiteletToCustomForm(request, response) { var form = nlapiCreateForm('Suitelet Form'); form.addField('text', 'text', 'Text'); form.addField('q1', 'select', 'Question 1:',…
-
トランザクションレコードのサブリストの適用でラインアイテムを適用する際のエラーを解決
適用 製品: NetSuite 2022.2 シナリオ クレジットメモのサブリストに行を追加すると、「無効なサブリストまたはラインアイテムの操作を試みています。クレジットメモのサブリストに行を追加する際に、存在しない行のフィールドにアクセスしようとしているか、静的サブリストから行を追加または削除しようとしています。」というメッセージが表示されます。この現象は、ユーザーがサブリストのリストに任意の行値を設定している場合に発生します。 解決策 動的スクリプトを有効にするか、請求書からクレジットメモに変換します。 var stNewTrans= record.create({type:'creditmemo',isDynamic:true});…
-
「借方と貸方のバランスが取れていません」というエラーを解消
適用 製品: NetSuite 2023.1 シナリオ スクリプトを使用して仕訳入力の借方と貸方の列のフィールド値を設定しようとすると、ユーザーは次のエラーを受け取る場合があります。 エラー:「入力された金額には、この通貨でサポートされているよりも小数点以下の桁数が多いため、このトランザクションでは借方と貸方のバランスが取れていません」 解決策 このエラーは、スクリプトが設定しようとしているフィールドの値に3つ以上の10進値がある場合にポップアップします。以下の関数を使用して、小数点以下の桁数を制限します。 以下のサンプルコードスニペットを参照してください。 a = 5.1233456 result = a.toFixed(2);…
-
SuiteScript1.0でタスクをユーザーグループに割当てる
適用 製品: 2019.2 SuiteApp: SuiteScript 1.0 シナリオ タスクを作成して異なる「割当先」値に直接割り当てることはできません。UIを介した「割当先」フィールドの値は1つのみです。この動作は、ワークフローとスクリプトで同じです。 解決策 この要件を満たすには、SuiteScriptを使用してタスク・レコードを作成する方法を変更します。コンセプトは、同じ詳細の複数のタスク・レコードを作成し、同じグループを持つことを条件とした保存検索の結果に「割当先」フィールドを設定することです。 以下のサンプルSuiteScript 1.0コードを参照してください。。 // Define search filters var…
-
カスタムレコードのカスタムフォームがなくなっている
適用 製品: NetSuite 2021.2 シナリオ カスタムレコードのカスタムフォームを作成した後、カスタマイゼーション> フォーム> トランザクションフォームに移動しても表示されません。カスタムフォームにはカスタムレコード自体でのみアクセスできるため、これは標準の動作です。 解決策 * カスタマイゼーション> リスト、レコード、およびフィールド> レコードの種類に移動します * カスタムフォームでカスタムレコードをクリックします * フォームをクリックします * カスタムフォーム:カスタマイズをクリックします
-
トランザクションのラインアイテムの説明を設定する時の「グループ行の最後は編集できません。 グループを削除する必要があります。」のエラーを回避する
適用 製品: NetSuite 2023.1 シナリオ 注文書で送信前でトリガーされるワークフローのサブリストアクショングループを介して、各ラインアイテムの説明フィールドを設定します。 それから、注文書を保存する時には、「グループ行の最後は編集できません。 グループを削除する必要があります。」のエラーが出します。 解決策 既述エラーは、サブリストアイテム内にアイテムグループが付いているアイテムは含んでいる場合の標準のエラーです。現在、グループ行の最後はワークフローで検出できません。…
-
SuitePromotionsが有効で、SuiteScriptで注文書を作成する時の「PromocodeおよびCouponcodeのフィールドをトランザクションに設定できません。」エラーの解決方法
適用 製品: NetSuite 2025.1 シナリオ SuitePromotions機能が有効になっている場合、「Promocode」および「Couponcode」はメインラインではなく、プロモーションサブリストで設定します。 解決策 サンプル (プロモーションサブリストの指数を選択する時): SuiteScript 1.0 var salesOrderRec = nlapiCreateRecord('salesorder'); //add logic to select line salesOrderRec.setCurrentLineItemValue('promotions','couponcode',4); //where 4…
-
顧客ごとに優先される特定のアドバンストPDFテンプレート
適用 製品: Netsuite 2020.2 シナリオ トランザクションレコードに顧客ごとに特定のアドバンストPDFテンプレートを含めることは、現在のNetSuiteバージョン2020.2では現在利用できません。 顧客ごとに異なるテンプレートを印刷するには、顧客レコードごとにそれぞれアドバンストPDF/HTMLテンプレートを使用して個別のカスタムトランザクションフォームを作成する必要があります。最後に、ユーザーはレコードの作成時にカスタムフォームフィールドを手動で更新する必要があります。 解決策 新しいアドバンストPDFテンプレートを作成する * カスタマイゼーション> フォーム> アドバンストPDF/HTMLテンプレートに移動します *…
-
レコード送信後アクションのカスタムセグメント値は空となっている
適用 製品: NetSuite 2021.1 シナリオ この記事では、部門(メイン)フィールドの値に基づいて、カスタムセグメントが予期しない動作をする理由について説明します。 解決策 カスタマイゼーション> スクリプト> スクリプトレコード> 支払請求書の編集/表示に移動して、次のいずれかに該当するかどうかを確認します。 * カスタムセグメントのソーシングでフィールド値の設定を解除する、エントリの部門(メイン)を設定するバックグラウンドで動作するワークフローが存在する可能性があります。 *…
-
SuiteTalkを使用して親子関係のカスタムレコードを作成
適用 製品: NetSuite 2020.1 シナリオ Webサービスでのカスタムレコードの作成は、注文書レコードの作成方法と異なります。 注文書レコードおよびそのラインアイテムは一つのaddオペレーションリクエストにて作成することができますが、カスタムレコードの場合はまずは親レコードを作成、その後に子レコードをaddListオペレーションを使用して作成します。 解決策 1. 親レコードをaddオペレーションを使用して親カスタムレコードを作成(SuiteAnswers ID: 10724 - add) サンプルSOAPリクエスト: <soapenv:Body> <add xsi:type='platformMsgs:AddRequest'>…
-
SuiteScriptで経費精算書を保存する際のエラー:値を入力してください: xx
適用 製品: NetSuite 2022.1 シナリオ 行を追加して保存すると、「値を入力してください:xx (必須項目)」というエラーが発生します。このエラーは、通常、サブリストの現在の行に必須項目の値がない場合に発生します。 しかし、このシナリオでは、行を追加して必須項目を入力した後も、経費レポートのレコードを保存するときにこのエラーが発生します。 解決策 fieldChangedトリガータイプを利用するクライアントスクリプトをレコードに展開し、サブリストにカスタム行フィールドを追加した場合、以下を再確認してください。…
-
Java でトークンを使用したRESTlet認証(トークンベースの認証)
適用 製品: NetSuite 2022.1 シナリオ このサンプルコードでは、認証プロセスにJavaパッケージ「Scribe」が必要です。このスニペットには、OAuthサービスプロバイダーとして機能するDummyService.javaとTokenAuth.javaの2つのJavaファイルが必要になります。 解決策 注:このサンプルコードは、NetSuiteがサポートを廃止されたHMAC-SHA1のシグネチャーメソッドを使用します。HMAC-SHA256を使用するコードに修正必要があります。次のページに参照できます: https://github.com/scribejava/scribejava/issues/986…