RFC - Datentypen - Wie exportiere ich eine Tabelle

Integration von Systemen.

RFC - Datentypen - Wie exportiere ich eine Tabelle

Postby Isabelle601 » Fri Sep 03, 2004 11:03 am

kann mir jemand sagen,
Hallo Leute

welche Datentypen ich bei der
Entwicklung eines RFC's ich verwenden
darf ?

Also im Grunde genommen, geht es darum
dass ich am liebsten eine Tabelle an
das externe NICHT-SAP-Programm geben möchte.
Kann ich dafür einfach ein SAP-Tabelle nehmen ?
Und wenn ja, welche Datentypen dürfen die Felder
in der Tabelle sein ?
Muss ich dort alles auf Char bzw. Integer/Float runterbrechen ?
Wo kann ich eine Doku über die Datentypen finden ?

Wenn der Client sozusagen in C/C++ geschrieben ist,
wie nimmt er die Tabelle auf.
Gibt es da Datentypen aus der RFC-Bibliothek,
die der Client dafür verwenden kann ?

Vielen Dank schon mal im voraus!
Blueshape
Isabelle601
...
...
 
Posts: 346
Joined: Mon May 31, 2004 12:16 pm

Postby Philippa2744 » Fri Sep 03, 2004 1:28 pm

Moin,

das macht die RFCSDK für Dich. Hier findest Du die relevante Dokumentation und auch Beispielprogramme:

http://help.sap.com/saphelp_erp2004/hel ... ameset.htm

Mit C/C++ habe ich allerdings keine Erfahrungen, stattdessen habe ich Java/JayCo verwendet. Das ist sehr bequem. Wobei der JayCo soweit ich weiss, ebenfalls die RFCSDK nutzt und dann eben ein Mapping auf die entsprechenden Datentypen im Java, d.h. es werden Methoden zur Verfügung gestellt, um die Daten entgegenzunehmen (und ggf. zu konvertieren). Mit C/C++ läuft das ganz genauso, die RFCSDK stellt entsprechende Funktionen zur Verfügung.

Ciao, LoLo
Philippa2744
...
...
 
Posts: 303
Joined: Fri Mar 07, 2003 5:17 pm

Postby Isabelle601 » Fri Sep 03, 2004 3:38 pm

Hi!

Wenn das das RFCSDk für mich macht,
und ich dem Client eine Tabelle zur Verfügung
stelle, benötige ich dennoch irgendwelche
Variablen, die die Felder der Tabelle aufnehmen.

Verstehe nicht, was das RFCSDK damit zu tun hat.
Egal ob C/C++ oder Java.

Wenn Du jetzt eine Tabelle erhälst in Deinem
Java-Programm, mit was für Variablen nimmmst Du
denn in Deinem Java-Programm diese Felder auf ?

Danke für Deine Antwort und den Link! ;-)
Blueshape
Isabelle601
...
...
 
Posts: 346
Joined: Mon May 31, 2004 12:16 pm

Postby Philippa2744 » Fri Sep 03, 2004 3:59 pm

Moin,

Wenn Du jetzt eine Tabelle erhälst in Deinem
Java-Programm, mit was für Variablen nimmmst Du
denn in Deinem Java-Programm diese Felder auf ?


Genau dafür hast Du den JayCo. In diesem Thread ist ein Beispiel, wie das entgegengenommen werden kann:

http://www.abapforum.com/forum/viewtopic.php?t=14

Wie Du siehst, werden entsprechende Klassen und Methoden zur Verfügung gestellt, um die Daten aus der Tabelle entgegenzunehmen. Genauso gibt es Methoden um Konvertierungen durchzuführen.

Bei der RFCSDK ist es analog. Dabei handelt es sich ja ohnehin um eine C-Programmierschnittstelle, d.h. den Aufruf ins SAP-System machst Du mit der RFCSDK, die wiederum bindest Du in Dein C/C++ Client ein. Damit hast Du alle notwendigen Funktionen, um einen Aufruf zu machen, Informationen entgegenzunehmen und ggf. zu konvertieren (z.B. String in Integer oder was auch immer).

Ciao, LoLo
Philippa2744
...
...
 
Posts: 303
Joined: Fri Mar 07, 2003 5:17 pm

Postby Isabelle601 » Fri Sep 03, 2004 4:25 pm

Hey danke!

Also, Du rufst in Deinem Java-Programm gar nicht
die RFC-Methoden auf, sondern Du benutzt den JayCo und
dieser verwendet dann intern die RFC-Methoden ?

Heißt das, dass Du Dein Programm in Java programmierst,
den Zugriff aufs SAP-System machst Du über den JayCo,
von dem Du die entsprechenden Bibliotheken oder so ein-
gebunden hast und dieser verwendet dann das RFCSDK ?
Und auf der SAP-Seite hast Du eine Funktionsbaustein,
der aufgerufen wird ? Oder hat das bei Dir gar nichts
mehr mit Funktionsbausteinen zu tun ?

Ist es richtig, dass es mit dem JayCo komfortabler ist ?

Mir hat jemand gesagt, dass er glaubt, dass RFC nicht
verwendet werden kann ab Release 4.7.

Vielen Dank für Deine Hilfe.
Blueshape

P.S.: Eine bitte hätte ich noch:
Bei dem ersten Link, den Du mir gegeben hast, finde
ich keine Beschreibung/Namen/Übersicht der
RFC-Datentypen und Methoden, die man verwenden kann.
Wo finde ich das ? Wahrscheinlich bin ich zu blöd dafür ;-)
Isabelle601
...
...
 
Posts: 346
Joined: Mon May 31, 2004 12:16 pm

Postby Isabelle601 » Fri Sep 03, 2004 4:54 pm

Hallo,

die Funktionen und Datentypen habe ich gefunden.
Yes, bin doch nicht ganz sooo hohl. ;-)

Dir schon mal ein schönes Wochenende.
Blueshape
Isabelle601
...
...
 
Posts: 346
Joined: Mon May 31, 2004 12:16 pm

Postby Alva1590 » Fri Sep 03, 2004 5:00 pm

Blueshape hat geschrieben:Also, Du rufst in Deinem Java-Programm gar nicht
die RFC-Methoden auf, sondern Du benutzt den JayCo und
dieser verwendet dann intern die RFC-Methoden ?


Im Java-Programm bindest Du lediglich den JayCo ein. Der stellt eine komplette Programmierschnittstelle zur Verfügung. Verbindung zum SAP-System, Aufruf des Funktionsbausteins (BAPIs), usw.
Ich bin mir, was den internen Aufbau anbelangt nicht 100%ig sicher, aber damit der JayCo läuft brauchst Du die librfc32.dll (unter Windows). Das ist die RFC-Bibliothek (des RFCSDK).

Blueshape hat geschrieben:Heißt das, dass Du Dein Programm in Java programmierst,
den Zugriff aufs SAP-System machst Du über den JayCo,
von dem Du die entsprechenden Bibliotheken oder so ein-
gebunden hast und dieser verwendet dann das RFCSDK ?


Genauso ist es. Der Vorteil für mich persönlich ist, daß ich in Java programmieren kann und mir keinen großen Kopf um irgendwelche sonstigen Dinge machen brauche.

Blueshape hat geschrieben:Und auf der SAP-Seite hast Du eine Funktionsbaustein,
der aufgerufen wird ? Oder hat das bei Dir gar nichts
mehr mit Funktionsbausteinen zu tun ?

Ist es richtig, dass es mit dem JayCo komfortabler ist ?


Genau, auf der SAP-Seite habe ich BAPIs (oder sonstige RFC-fähige Bausteine), die ich dann über den JayCo rufe.
Es kommt immer auf den Standpunkt drauf an. Ein Profi in C/C++ wird den Aufruf über das RFCSDK vermutlich komfortabler oder besser finden.
Ich persönlich bevorzuge Java, da C bei mir einfach zu lange her ist. Mit dem JayCo finde ich es ziemlich komfortabel zu programmieren. Außerdem stellt SAP eine Java-Entwicklungsumgebung zur Verfügung (auf Basis von Eclipse). Diese Umgebung bietet einen sogenannten Proxy-Generator. Du gibst dann nur noch an, welches System und welche(n) Baustein(e) Du aufrufen möchtest, dann werden die kompletten Aufrufe mittels JayCo generiert. Du kannst die Daten dann äußerst bequem entgegennehmen und sparst eine Menge Zeit.

Blueshape hat geschrieben:Mir hat jemand gesagt, dass er glaubt, dass RFC nicht
verwendet werden kann ab Release 4.7.


Das ist mit Verlaub Unsinn! Ein 4.7 hat als Basis einen WAS 6.20 (es gibt, glaube ich, auch eine 6.40 Variante).
Beide WAS-Plattformen 6.20 und 6.40 unterstützen nach wie vor RFC. Wenn ich behaupte, daß das in Zukunft auch so bleiben wird, ist das - denke ich - keine allzu gewagte Prognose.

Blueshape hat geschrieben:P.S.: Eine bitte hätte ich noch:
Bei dem ersten Link, den Du mir gegeben hast, finde
ich keine Beschreibung/Namen/Übersicht der
RFC-Datentypen und Methoden, die man verwenden kann.
Wo finde ich das ? Wahrscheinlich bin ich zu blöd dafür ;-)


Du mußt bei dem Link schauen unter:
- Klassische SAP-Technologien
- RFC
- The RFC API
- Programming with the RFC API
Unter diesem Punkt findest Du Beispielprogramme.
- Function Reference
Der Punkt Function Reference beinhaltet die Funktionen, sowie Übergabe von Parametern, etc. etc.

Ciao, LoLo
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Isabelle601 » Mon Sep 06, 2004 10:21 am

Hallo und danke an alle,
die mir hier geholfen haben! :lol:

Ich habe noch eine Frage:
Das aufrufende System soll mir (ans SAP-System)
eine unbestimmte Anzahl von Buchungskreisen übergeben. Also z.B. 1000, 2500, 9500.
Ich weiß aber vorher nicht welche und vor allem wieviele. Was für einen Parameter muss ich als Import-Parameter in meinem FuBa nehmen ?

Eine Struktur mit einem Feld vom Typ BUKRS ?

Viele Grüße,
Blueshape
Isabelle601
...
...
 
Posts: 346
Joined: Mon May 31, 2004 12:16 pm


Return to Exchange Infrastructure

Who is online

Users browsing this forum: No registered users and 4 guests