2016-11-21 7 views
0

Netsuiteレコードの作成時に、レコードのサブリストに説明広告申込情報を追加しようとしています。Netsuite - webservicesを使用してレコードを作成すると、データベースに新しい広告申込情報を追加できません。

私はレコード提出前とレコード提出後にラインアイテムを追加するスクリプトをトリガーしようとしました。

スクリプトが起動していますが、nlapiInsertLineItem関数が行を挿入していません。

「編集」では完全に機能しますが、何らかの理由で「作成」していません。

誰かがNetsuiteでレコードを作成する際に新しい広告申込情報を挿入した経験がありますか?

このレコードはwebservicesによって作成されている必要があります。

ありがとうございました!現在のように

私のコードは次のとおりです。

function optiv_SFquote_visibility_AS(type){ 
    if(type == 'create'){ 
    var recId = nlapiGetRecordId(); 
    var recType = nlapiGetRecordType(); 
    var rec = nlapiLoadRecord(recType, recId); 
    var itemCnt = rec.getLineItemCount('item'); 
    var soVals = {}; 
    var j = 0; 
    for(var i = 1; i <= itemCnt+j; i ++){ 
     var grpNum = rec.getLineItemValue('item', 'custcol_grp_num', i); 
     if(isNotNull(grpNum) && soVals[grpNum] == undefined){ 
      soVals[grpNum] = grpNum; 
      j++; 
      var grpDscrpt = rec.getLineItemValue('item', 'custcol_sf_quote_dscrpt', i); 
      var grpName = rec.getLineItemValue('item', 'custcol_grp_sf_name', i); 
      nlapiLogExecution('DEBUG', 'group description', grpDscrpt + ' name ' + grpName); 
      var newDscrpt = ''; 
      if(isNotNull(grpDscrpt) && isNotNull(grpName)){ 
       var newDscrpt = grpName + ' - ' + grpDscrpt; 
      } 
      else if(isNotNull(grpName) && isNull(grpDscrpt)){ 
       var newDscrpt = grpName; 
      } 
      rec.insertLineItem('item', i); 
      rec.setLineItemValue('item', 'item', i, -3); 
      rec.setLineItemValue('item', 'description', i, newDscrpt); 
     } 
    } 
    nlapiSubmitRecord(rec); 
    } 
} 

答えて

0

私たちは、それが特定のフィールドの値が含まれている場合、我々は受注にラインアイテムを追加似たような状況があります。受注が登録されるとbeforeSubmitで実行されます。我々は、nlapiInsertLineItem()関数を完全には使用していませんが、nlobjRecordにあるinsertLineItem()関数を使用しています。

function addFreightLine(freightInstructions) { 
    var record = nlapiGetNewRecord(); 
    var newLineNum = record.getLineItemCount('item') + 1; 

    record.insertLineItem('item', newLineNum); 
    record.setLineItemValue('item', 'item', newLineNum, 733); // 733 is the 'CF' item 
    record.setLineItemValue('item', 'description', newLineNum, freightInstructions); 
    record.setLineItemValue('item', 'rate', newLineNum, 0); 
} 
+0

こんにちはマイク、ご返信ありがとうございます! addFreightLine関数はbeforeSubmitと呼ばれていますか? insertLineItemをnlobjRecord beforeSubmitから呼び出しても、スクリプトはまだ広告申込情報を挿入しません。あなたはこれが記録の作成に発砲していると言った。レコードが作成されている実行コンテキストを知っていますか?ありがとう! –

+0

はい、addFeightLine()は、受注の作成イベントでbeforeSubmitを呼び出しています。コードのサンプルで質問を更新できますか? –

+0

こんにちはマイク、ご返信ありがとうございます。私は自分のコードで質問を更新しました。現在はafterSubmitで実行されており、nlapiSubmitRecordを使用してnlobjRecordをデータベースに送信しています。ここでも、「編集」と「作成」ではなく作業しています。実行コンテキスト 'userinterface'では動作しますが、実行コンテキスト 'webservices'では動作しません。ご協力いただきありがとうございます! –

関連する問題