2016-04-12 40 views
1

選択した顧客で新しい顧客払い戻しを作成すると、INVALID_KEY_OR_REFというエラーが表示されます。無効な支払い方法参照キーVISA。このコードは、最新の2016 R1アップグレードの前に動作するために使用します。クレジットメモを持つ顧客の顧客払い戻しを作成するには?

// create the Customer Refund record    
var customerRefund = nlapiCreateRecord("customerrefund", { 
    entity: creditMemo.getFieldValue("entity") // preload with customer credits 
}); 

どのように私はお支払方法についてこのエラーを取得せずに顧客のクレジットメモに基づいて、新たな顧客の還付を作成することができますか?クレジットメモに支払い方法フィールドがあることさえわかりません。

追加情報

私は今、私はこのエラーを取得しています、nlapiCreateRecord呼び出しでPAYMENTMETHODを初期化しようとした:

INVALID_RCRD_INITIALIZE You have entered an invalid default value for this 
record initialize operation. 
+1

このスクリプトをGUIで手動でエミュレートしようとすると、クレジットメモ画面から得意先払い戻しを作成し、得意先を同じに設定します。エラーはありますか? – TonyH

+0

新しい顧客払い戻しを作成するときに空白のフォームが表示され、顧客番号を入力してリストで顧客を選択すると、クレジットと預金が[適用]タブに表示されます。このエラーは、nlapiCreateRecordが呼び出されたときに発生します.nlapiSubmitRecordが呼び出される前の途中で呼び出されます。 –

+1

CreateRecordを呼び出すときに別のスクリプトやワークフローが実行されている可能性はありますか? – TonyH

答えて

0

をあなたが供給する必要があるのすべては、あなたがやっているように、顧客がinternalidです。

ユーザイベントスクリプトやワーフフローがない場合は、使用しているフォームに特別な要件がないことを確認することもできます。私のアカウントでは、顧客の払い戻しを作成するために必要なのは以下のすべてです。顧客の内部IDは996であり、目標クレジットメモIDは1189です。顧客はデフォルトのクレジットカードを持っており、払い戻しは自動的にそれを選択します。

var ref = nlapiCreateRecord('customerrefund', {entity:996,customform:41}); 
for(var i = ref.getLineItemCount('apply'); i>0; i--){ 
    if(1189 == ref.getLineItemValue('apply', 'doc', i)){ 
    ref.setLineItemValue('apply', 'apply', i, 'T'); 
    ref.setLineItemValue('apply', 'amount', i, ref.getLineItemValue('apply', 'due', i)); 
} 
console.log(
i +' '+ 
ref.getLineItemValue('apply', 'doc', i) +' '+ 
ref.getLineItemValue('apply', 'apply', i) +' '+ 
ref.getLineItemValue('apply', 'amount', i) + ' '+ 
ref.getLineItemValue('apply', 'total', i)); 
} 
console.log(nlapiSubmitRecord(ref, true)); 
0

返金方法(フィールドの内部IDがある - PAYMENTMETHOD)フィールドが存在しますクレジットメモレコードではなく、[払い戻し方法]タブの[顧客払い戻し]レコードで

このフィールドは必須なので、これを設定する必要があります。 [会計管理]> [会計リスト]> [新規]> [支払方法]に移動して、支払方法リストの値を一覧表示することで、NetSuiteアカウントで利用可能な支払方法の内部IDを表示できます。あなたのコードでは、この後には、次のようにフィールドを設定する必要があります -

あなたnlapiCreateRecord呼び出しの場合
customerRefund.setFieldValue('paymentmethod', 1); //In my account 1 is for Visa 
+0

nlapiSubmitRecordではなく、nlapiCreateRecordでこのエラーが発生しています。顧客を事前に設定する以外に、nlapiCreateRecordに渡されたparmsのpaymentmethodも設定する必要がありますか? –

関連する問題