Ich verwende die UFFI-Funktion des B1 Usability Package, um eine XML-Datei zu analysieren und Bestell- und Serviceabrufdokumente zu SAP Business One hinzuzufügen. Die Bestellungen und Serviceabrufe werden beide erstellt, ohne dass Fehler ausgegeben werden, aber der Wert, den ich an die Eigenschaft „Seriennummer des Herstellers“ des Serviceabrufs übergebe, wird im resultierenden Datensatz nicht angezeigt.
Dies ist der Codeabschnitt, der den Serviceabruf hinzufügt:
Code: Select all
var servCall = B1BusinessObjects.ServiceCalls.TemplateObject;
servCall.CustomerCode = cardCode;
servCall.Subject = root.Element("RepairRequestProblem").Value;
servCall.ManufacturerSerialNum = root.Element("AssetSerial").Value;
//servCall.InternalSerialNum = root.Element("AssetSerial").Value;
servCall.CustomerRefNo = root.Element("RepairRequestName").Value;
servCall.Expenses.DocumentType = BoSvcEpxDocTypes.edt_PurchaseOrder;
servCall.Expenses.DocEntry = Convert.ToInt32(ExecuteQueryString("SELECT \"DocEntry\" FROM OPOR WHERE \"DocNum\" = " + intPO + " LIMIT 1"));
servCall.Add();
Ich habe überprüft, dass der Wert in root.Element("AssetSerial").Value einer gültigen und aktiven Ausrüstungskarte für den in servCall.CustomerCode angegebenen Geschäftspartner entspricht. Tatsächlich kann ich sogar in den Serviceaufruf gehen, den dieses Skript erstellt (am Frontend), und die Seriennummer in das Feld einfügen, das sie ausfüllen sollte, und die Aktualisierung funktioniert einwandfrei. Daher bin ich völlig ratlos, warum es nicht als Teil der Skriptausführung gespeichert wird.
Übersehe ich etwas Offensichtliches?