2016-04-12 8 views
1

Wenn ich eine neue Kundenrückerstattung für einen ausgewählten Kunden erstelle, erhalte ich jetzt einen Fehler von INVALID_KEY_OR_REF Ungültiger Zahlungsmethoden-Referenzschlüssel VISA. Dieser Code wird verwendet, um vor dem letzten 2016 R1-Upgrade zu arbeiten. ohne immer diese Fehlermeldung über eine ZahlungsmethodeWie erstelle ich eine Kundenrückerstattung für einen Kunden mit Gutschriften?

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

Wie kann ich eine neue Kunden Rückerstattung auf der Grundlage der Gutschriften für einen Kunden erstellen? Ich sehe nicht einmal, dass eine Gutschrift ein Zahlungsmethodenfeld hat.

Zusätzliche Informationen

Ich versuchte, das paymentmethod im Aufruf nlapiCreateRecord Initialisierung jetzt diesen Fehler Ich erhalte:

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

Wenn Sie versuchen, dieses Skript in der GUI manuell zu emulieren, z. Erstellen Sie eine Kundenrückerstattung von einem Gutschriftsbildschirm, und legen Sie dann fest, dass der Kunde derselbe ist. Haben Sie Fehler? – TonyH

+0

Keine Fehler, beim Erstellen einer neuen Kundenrückerstattung wird das leere Formular angezeigt, ich gebe die Kundennummer ein und wähle den Kunden in der Liste aus, dann werden die Gutschriften und Einzahlungen auf der Registerkarte Übernehmen aufgelistet. Dieser Fehler tritt auf, wenn ein nlapiCreateRecord aufgerufen wird, lange bevor der Nachfolger von nlapiSubmitRecord aufgerufen wird. –

+1

Ist es möglich, dass beim Aufruf von CreateRecord ein anderes Skript oder Workflow ausgeführt wird? – TonyH

Antwort

0

Für Ihre nlapiCreateRecord Anruf alles, was Sie den Kunden liefern benötigen sollten, ist InternalID wie Sie tun.

Wenn kein Benutzerereignisskript oder Worflow vorhanden ist, können Sie auch sicherstellen, dass das von Ihnen verwendete Formular keine speziellen Anforderungen enthält. In meinem Konto ist Folgendes erforderlich, um eine Kundenrückerstattung zu erstellen. Die interne ID des Kunden ist 996 und die Ziel-ID der Gutschrift ist 1189. Der Kunde hat eine Standard-Kreditkarte und die Rückerstattung übernimmt diese automatisch.

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

Rückerstattung-Methode (interne ID des Feldes ist - paymentmethod) Feld existiert auf den Kundenrückerstattungssatz unter der Registerkarte "Rückerstattungsmethode" und nicht auf den Gutschriftsdatensatz.

Da dieses Feld obligatorisch ist, müssen Sie dies einstellen. Sie können die internen IDs der verfügbaren Zahlungsmethoden in Ihrem NetSuite-Konto anzeigen, indem Sie zu Rechnungswesen> Buchhaltungslisten> Neu> Zahlungsmethode navigieren und die Werte der Liste Zahlungsmethode auflisten. Danach in Ihrem Code haben Sie Feld wie folgt festzulegen -

customerRefund.setFieldValue('paymentmethod', 1); //In my account 1 is for Visa 
+0

Ich bekomme diesen Fehler auf der nlapiCreateRecord nicht die nlapiSubmitRecord. Wollen Sie neben der Voreinstellung des Kunden auch die Zahlungsmethode in den an nlapiCreateRecord übergebenen parms setzen? –

Verwandte Themen