![]() |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
Hi Roland,
hi misek, greift Ihr direkt per RFC auf SAP zu, oder schaltet Ihr BAPI's dazwischen ? |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
wir greifen über RFC auf die Bausteine zu.
BAPIS werden auch darüber angesteuert... Man kann ja seine eigenen BAPIS bauen. Dann klappt fast jeder Zugriff! |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
Hallo,
ich melde schon mal mein Interesse für eine SAP-Komponente an! :-D :zwinker: Hab mir schon 'nen Heißen gegoogelt und nichts Brauchbares gefunden. :drunken: |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
das selbe Problem wie bei allen anderen auch... googlen bringt bei SAP nix. Speziell bei RFC.... Da hilft nur selber bauen. Nur selbst essen macht ja bekanntlich dick :zwinker:
Meine Schulkollegen glauben mir nicht das dass eine herausforderung ist für RFC zu programmieren. Gerade in den Anfängen! |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
Zitat:
ok, "bapi-is-here" existiert nicht mehr, hatte mir aber auch nicht viel geholfen. Der Artikel im "Entwickler" war da schon erbaulicher. Zitat:
RFC hält immer wieder ein paar nette Überaschungen bereit, besonders bei Release-Wechseln, obwohl dies nicht der Fall sein solllte. |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
tja,... dann bin ich wohl gezwungen ein OpenSource Projekt zu eröffnen :bounce1:
Dann lasst uns den kram bauen. Ich hoffe, dass es in Ordnung geht, SAP seite her. |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
Zitat:
|
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
Ok ich werde das dann anstoßen. Als aller erstes bräuchten wir eine WebPlattform zur kommunikation und ein Projektmanagement tool. Ich kenne eins das findet ihr unter
![]() Ist ein Tool, was im WWW läuft. Ich selber habe es noch nicht ausprobiert. Werde aber versuchen das Ding auf meinem VServer zu knallen. Ich hoffe, der Aufwand wird nicht allzugroß. folgendes muss ich noch geklärt haben: - Hat einer eine Express Edition des R3 - Systems? - Wer könnte ein Server bereitstellen? - Wer macht alles mit...? achso @kalmi01 - ist kein Problem... Machen wir schon alles. |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
Hi Michael
Habe deine Beschreibung erhalten und gleich mal ausprobiert (Vielen Dank auch). Bei deinem Bespiel installierst du eine Struktur (RFCInstallStructure) und hängst diese dann einer Tabelle an. Ich benötige jedoch das Anhängen an die Import, Export und Changing Parameter. Das hat bei mir leider nicht geklappt (SYSTEM_FAILURE nach Aufruf der Exec Methode). Hast du dafür auch ein Beispiel gemacht ?? Außerdem verwendest du RFCInstallstructure2, das in meiner Dll gar nicht vorkommt. Welche Version der librfc32.dll verwendest du eigentlich ?? mfg Roli |
Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 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