Die Mappingfunktion LoadDocumentByOid() ermöglicht den Zugriff auf einen anderen Dokumenttypen1) innerhalb der gleichen Nachricht der gerade geladenen Entität. Theoretisch kann ein beliebiges Dokument aus eBiss heraus geladen werden2) um Beispielsweise Daten, die aus mehr als einer Quelle kommen, in ein Zieldokument zu schreiben.
LoadDocumentByOid(['Oid'])
Hinweis: Als Parameter muss eine gültige DocumentOid3) verwendet werden. Die Funktion liefert anderenfalls <null>.
Eine Nachricht4) beinhaltet ein File mit der Lieferung, und ein File mit den Preisstammdaten. Dies werden von einem Empfangskanal geholt und automatisch entpackt. Im EIngangsmapping können nun die Preise zu den Lieferungsdaten nachgeschlagen werden.
Die Oid5) ermittelt man mit Hilfe der GetMessage() Funktion.
In Beispiel Fall will man das Dokument das innerhalb derselben Nachricht und vom Typ LSB ist.
Man ermittelt also zunächst die Oid mit:
GetMessage()/Documents[ @DocumentType = ‚LSB‘ ]/@Oid
und schreibt den wert in eine Variable, z.Bsp. $oid Dann kann man mit
LoadDocumentByOid($oid)
das zweite Dokument in eine abstrakte Variable z.Bsp.: $$refDoc instanziieren und die richtige Zeile aus der Variable refDoc zur Preisermittlung ermitteln:
//hinweis: Variable wird mit nur einem "$" aufgerufen $refDoc/Lines[ @ArtNr = $artNr ]/@SuggestedRetailPrice
und in das Zielelement, hier z.Bsp.: SuggestedRetailPrice wegschreiben.
Hinweis: Die Funktion kann interaktiv im Debugger ausgeführt werden. Eine zuvor ermittelte Oid kann man als Konstante verwenden. Das Funktionsergebnis wird als Baum im linken Fenster des Mappingeditors wie gewohnt im Tab Ergebnis ausgegeben.