Hallo liebes Forum,
bin auf der Suche nach dem Fehler den ich mache.
Der Rückgabewert von SAP Lautet: „Value in field SIGN can only be I, E „
Die Beispiele auf der Seite,
http://www.joachim-lentz.homepage.t-online.de/intro.htm
Funktionieren soweit, also die Verbindung zu SAP ist OK.
Bei der BAPI Funktion „BAPI_MATERIAL_GETLIST“ stoß ich auf ein Problem.
Bei der Übergabe der Tabelle als Filter -> MATNRSELECTION wird etwas nicht stimmen.
Hat jemand einen Tipp?
Danke.
Viele Grüße
Reiner
Delphi-Quellcode:
procedure TForm1.Button18Click(Sender: TObject);
var i:integer;
txt:String;
iTabIndex,y:integer;
item,mat,funct,selPlant,itemPlant:Variant;
begin
funct := sapFunctions1.add('BAPI_MATERIAL_GETLIST');
funct.exports['MAXROWS'].value :=100;
mat:=funct.tables.item('MATNRSELECTION');
item:=mat.rows.add;
item.Value(1,'SIGN'):='I';
item.Value(1,'OPTION'):='BT';
item.Value(1,'MATNR_LOW') :='000000000006000107';
item.Value(1,'MATNR_HIGH'):='000000000006020000';
if not funct.call then
showMessage(funct.exception)
else begin
// Ausgabe Material
tab2 := funct.tables.item['MATNRLIST'] ;
if tab2.rowcount > 0 then
begin
iTabIndex := tab2.rowcount;
for i := 1 to iTabIndex do
begin
try
begin
for y := 1 to 5 do
begin
txt := tab2.value(i, y);
Grid.cells[y, i] := copy(txt, 0, 20);
end;
end;
finally
begin
end;
end;
end;
end;
// Ausgabe Fehler
tab2 := funct.tables.item('RETURN');
LN_Rueckgabe.caption := inttostr(tab2.rowcount);
if tab2.rowcount > 0 then
begin
iTabIndex := tab2.rowcount;
for i := 1 to iTabIndex do
begin
try
begin
for y := 1 to 12 do
begin
txt := tab2.value(i, y);
Grid.cells[y, i] := copy(txt, 0, 50);
end;
end;
finally
begin
end;
end;
end;
end;
end;
end;