2016-11-11 5 views
2

受注で承認ボタンをクリックしたときに発注を生成します。受注記録にスクリプトをデプロイし、承認ボタンをクリックしたときにトリガーするイベントの種類を設定します。ただし、私はサブリスト項目の値に無効な項目値があるので、このコードは注文書を作成しません。受注で「承認」ボタンをクリックした後で、購買発注を作成したい

アイテムの内部IDと文字列名の両方を値として使用しましたが、同じ「無効なフィールド値」エラーが発生します。誰が何が間違っているのか分かりますか?

function beforeSubmit(context) { 
    var sRecord = context.newRecord; 
    var user = runtime.getCurrentUser(); 

    //get line count 
    var itemCount = sRecord.getLineCount({ 
     sublistId: 'item' 
    }); 

    for (var i = 0; i<itemCount; i++){ 
     var pOrder = record.create({ 
      type: record.Type.PURCHASE_ORDER, 
      isDynamic: true 
     }); 

     //get item internal id 
     var itemId = sRecord.getSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'item', 
      line  : i 
     }); 

     //get qty 
     var qty = sRecord.getSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'quantity', 
      line  : i 
     }); 

     //get vendor of item 
     var vendor = search.lookupFields({ 
      type : 'item', 
      id  : itemId, 
      columns : ['vendorname'] 
     }); 

     //add vendor to record 
     pOrder.setValue('vendorname', vendor); 

     //selects new line 
     pOrder.selectNewLine({sublistId: 'item'}); 

     //add item to sublist 
     pOrder.setCurrentSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'item', 
      value  : itemId 
     }); 

     //add quantity to sublist 
     pOrder.setCurrentSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'quantity', 
      value  : qty 
     }); 
     pOrder.commitLine({sublistId: 'item'}); 
     pOrder.save(); 

    } 
} 
+0

または承認ボタンをクリックしたときに、受注の各明細に対して「特別注文の作成」をトリガする方法がありますか? –

+0

私はPOでこれらのアイテムの1つをUIで設定しようとしましたが、それがPOに利用可能であることを確認していると仮定していますか? – W3BGUY

+0

@ W3BGUYはいUIを使用してPOを作成すると問題なく動作します。エラーは私が参照している時点で発生する –

答えて

3

entityフィールドは、発注実績にを必要とされます。明細レコードのvendornameフィールドには仕入先レコードが格納されず、それがあってもPOに対応するvendornameフィールドはありません。アイテムレコードからのこの値は、アイテム自体のベンダーの名前/コードを識別するために使用されます(名前が異なる場合)。

書かれているように、entityフィールドがPOに設定されている場合、このコードは少なくとも事実上機能します。 Preferred Vendorを設定した場合、または複数の仕入先機能で優先仕入先を設定している場合は、適切なentityフィールドをItemレコードから直接検索することができます。

販売アイテムのインベントリとノンインベントリのスクリプトを作成せずにこのスクリプトが実行しているように見えるようにするには、Drop Ship ItemチェックボックスまたはSpecial Order Itemチェックボックスを使用します。適格項目ごとにいずれかを選択すると、受注の明細に対して自動的にPOが作成されます。 NetsuiteのヘルプでSpecial Order Itemsを検索すると、相違点と設定方法の詳細が表示されます。

+0

私は参照してください。エンティティフィールドが設定されていないため、(アイテムを追加する前に仕入先を設定する必要があるため)購買発注の関連アイテムを見つけることができないと仮定しています。そうですか? 編集:それは問題だとは思えません。私はスクリプトを再配布する必要はありませんが、それは問題だと思います。本当にありがとう! –

関連する問題