Zitat von
Misek:
Nun habe ich aber zwei Felder mit dem selben bezeichner, jedoch in unterschiedlichen Tabellen wie mache ich dem importParameter klar in welcher Tabelle sich dieses Feld befindet?
Du musst die Schnittstelle des BAPI anders befüllen.
Zuerstmal die Schnittstelle instanzieren:
l_func := a_SAPFunctionsObject.Add('BAPI_REPO_XYZ_F4');
Parameter füllen, die für einzelne Werte stehen:
Delphi-Quellcode:
// werte Importieren
l_func.exports('I_OBJECT_TYPE'):='GC';
l_func.exports('I_MULTIPLE_SELECTION'):='X';
Strukturierte Parameter füllen, d.h. unter dem Namen des Struktur
sind nochmal einzelne Felder ansprechbar:
Delphi-Quellcode:
// einzelnes Feld einer Struktur füllen
l_importstructur := l_func.exports('IS_STRUKTUR_MATERIAL');
l_ImportStructur.Value[1] := _matnr;
Tabellen-Parameter füllen, d.h. unter dem Namen der Tabelle
müssen Zeilen (Rows) angelegt werden, deren einzelne Felder sind ansprechbar:
Delphi-Quellcode:
// Struktur-Tabelle auslesen
l_IT_STRUCTURE_IDS:= l_func.tables.item('IT_STRUCTURE_IDS');
// alle Einträge löschen
l_IT_STRUCTURE_IDS.rows.removeall;
/ neue Zeile anhängen
l_eintrag:=l_IT_STRUCTURE_IDS.rows.add;
// einfügen der TestID
l_eintrag.Value['STRUCTURE_ID']:=_task.TestID;
Gruß,
Christoph