Einzelnen Beitrag anzeigen

Benutzerbild von Misek
Misek

Registriert seit: 19. Okt 2006
Ort: Bottrop
22 Beiträge
 
#18

Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden

  Alt 19. Okt 2006, 14:57
was ist l_func für ein Typ? Kann es sein, dass du die BAPIS mit ActiveX ansteuerst?


Im Moment sieht es bei mir noch so aus:

Hier werden die Inputparameter gesetzt. Bitte nicht verwirren lassen... der name FExporting ist das, was an das SAP raus geht. trotzdem verwende ich den Namen "setRFCInputParam" als Funktionsaufruf.

Delphi-Quellcode:
procedure TSAPRFC.setRFCInputParam(paramName: string; paramlength: integer; pparamValue: pointer;
  paramType: integer);
// Setzt Eingabeparameter für den RFC
var
  i: integer;
begin
  i := 0;
  while (i < SAPRFC_Maxparameters) and (FExporting[i].name <> nil) do inc(i);
  if i = SAPRFC_Maxparameters then raise exception.create('Max params exeeded!');
  FExporting[i].name := pchar(paramName);
  FExporting[i].nlen := length(paramName);
  FExporting[i].atype := paramType;
  FExporting[i].leng := paramlength;
  FExporting[i].addr := pparamValue;
end;
Und nun wird das ganze abgeschickt mit folgendem Code...
Delphi-Quellcode:
function TSAPRFC.execute: string;
var
  funcres: integer;
begin
  result := '';
  funcRes := connection.FRfcCallReceiveEx(connection.fconnHandle, pchar(fRfcName),
    @FExporting, @FImporting, @FChanging, @FTables, @pException);
  if funcres <> 0 then begin
    result := pchar(pException);
    // Wenn wir keinen Klartext-Fehler bekommen, geben wir den Fehlercode aus
    if result = 'then result := 'Error ' + IntToStr(funcres);
  end;
end;
  Mit Zitat antworten Zitat