AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi von Delphi 2006 aus Datensätze zu SAP R/3 senden
Thema durchsuchen
Ansicht
Themen-Optionen

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

Offene Frage von "Misek"
Ein Thema von Mandi Nice · begonnen am 10. Okt 2006 · letzter Beitrag vom 5. Apr 2007
 
Benutzerbild von Misek
Misek

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

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

  Alt 20. Feb 2007, 10:21
die RfcInstallStructure2 ist die aktuellere Variante. Einige Sachen in der älteren Dll werden von SAP bald nicht mehr supportet.

Das liegt daran, dass es nur ein Beispiel Code dazu war. Wahrscheinlich gibt es diese Tabelle in deinem SAP System gar nicht. Lass dir direkt nach dem Failure eine Exception anzeigen lassen.

Zum anderen Problem:
das Anhängen von Daten als Importparameter ist ein wenig einfacher. Du brauchst einfach nur eine Funktionen aus der DLL Laden (CallReceiveEx)... im code ganz unten.
Nicht verwirren lassen bei "SetRFCInputParam"... dort wird nur ein Array gefüllt, welches beim Execute hochgeladen wird.

Ich hoffe ich konnte helfen! Ich weiss wie mühselig der kram ist!

Delphi-Quellcode:
procedure EingabeEintragen();
var

   sIEingabe1 : I_EINGABE1;
   sIEingabe2 : I_EINGABE2;
   errorinfo :
begin
   sIEingabe1 := 'Test';
   sIEingabe2 := 'Test Eingabe 2';
  
   SetRFCInputParam( 'I_EINGABE1', sizeof(sIEingabe1), @sIEingabe1,0);
   SetRFCInputParam( 'I_EINGABE2', sizeof(sIEingabe2), @sIEingabe2,0);
   
   if RFC.Execute <> rcRFC_OK then
      begin
      errorinfo := rfc.LastErrorInfo;
      end;
   
end;



procedure SetRFCInputParam(ParamName: string; Paramlength: integer; pParamValue: pointer;
                           ParamType: integer);
var
   iIdx: integer;
begin
   iIdx := 0;
   while (iIdx < SAPRFC_Maxparameters) and (FExporting[iIdx].name <> nil) do
      inc(iIdx);

   if iIdx = SAPRFC_Maxparameters then
      begin
      raise exception.create('Max params exeeded!');
      Exit;
      end;

   FExporting[iIdx].Name := PChar(ParamName);
   FExporting[iIdx].NLen := Length(ParamName);
   FExporting[iIdx].AType := ParamType;
   FExporting[iIdx].Leng := Paramlength;
   FExporting[iIdx].Addr := pParamValue;
end;


function TSAPRFC.Execute(): TRFC_RC;
begin
   result := Connection.FRfcCallReceiveEx(Connection.ConnectionHandle, PChar(FRFCName),
                                          @FExporting, @FImporting, @FChanging,
                                          @FTables, @pException);
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz