Transaktion von extern rufen und halb bearbeiten - geht das?

Integration von Systemen.

Transaktion von extern rufen und halb bearbeiten - geht das?

Postby Rico1255 » Thu Aug 25, 2005 10:25 pm

Hallo Experten,

ich würde gerne die Transaktion VA01 von extern rufen (also von außerhalb SAP), halb bearbeiten und dann dem Anwender zur Weiterbearbeitung anbieten. Geht das?

Konkret bedeutet das: Wenn der Anwender in einem anderen, externen Programm auf einen Knopf drückt, dann soll sich ein SAP-Fenster öffnen und zwar direkt in der Auftragsbearbeitung. Bestimmte Daten, wie Auftragsart, Vertriebsbereich etc. sind von außen vorbelegt. Und außerdem sollen aus dem externen Programm Adressdaten übergeben und in dem Auftrag hinterlegt werden (z.B. indem der Auftragsgeber ein fest verdrahteter CPD-Kunde ist und die Adresse direkt im Auftrag individuell angepaßt wird.). Der Anwender ergänzt dann noch die Auftragspositionen, Auftragsgrund und solche Sachen und sichert den Auftrag.

Ist sowas überhaupt möglich? :roll:

Vielen Dank schonmal für jeden Hinweis!! Hoffnungsvoll: Gast
Rico1255
.
.
 
Posts: 6
Joined: Mon Aug 08, 2005 5:57 pm

Postby ewx » Sat Aug 27, 2005 10:37 am

Hi Dummi,

das geht: Batchinput aufzeichnen bis zu der gewünschten Stelle und dann Abspielen mittels Call Transaction ... mode 'E'.

Gruß,
Enno.
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Rico1255 » Sat Aug 27, 2005 2:12 pm

Hallo Enno,

vielen Dank für Deinen Tip!!! Ich schätze, so kann ich das "halbe" Anlegen des Auftrags im SAP regeln, das ist schon mal gut. Aber kann ich sowas dann auch aufrufen von außerhalb SAP? Also z.B. diesen BI in einem Funktionsbaustein kapseln - und dann? Was für eine Technik muß man da anwenden und wie flexibel kann ich die Daten übergeben? Ich kenn mich da leider gar nicht aus...

Gruß, Dummi
Rico1255
.
.
 
Posts: 6
Joined: Mon Aug 08, 2005 5:57 pm

Postby ewx » Mon Aug 29, 2005 3:59 pm

Hi Dummi,

du kannst einen Funktionsbaustein basteln, ihn als remotefähig kennzeichnen und dann kannst du ihn aus VisualBasic, Windows-Batchdatei, aus einer Website (mit phprfc zb) oder irgendwie mit BSP (???) aufrufen.

Die Daten kannst du dann so flexibel ausgeben, wie das andere Programm es dann zu lässt, bzw. wie der Funktionsbaustein es zuläasst. Du kannst ganz normale Tabellen übergeben.

Bevor ich weiterscrheibe, sag mal, was dir als Anwendung vorschwebt.

Gruß,
Enno.
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Rico1255 » Wed Aug 31, 2005 5:49 pm

Hallo Enno,

ich möchte in einem Nicht-SAP-Programm auf einen Knopf drücken und dies soll meinen Dialog im SAP starten. Der Anwendungsbetreuer von dem Nicht-SAP-Programm sagte mir, er könne alles an Befehlen absetzen, was auch über eine DOS-Eingabeaufforderung aufgerufen werden könnte.

Der Anwender, der das Ganze dann mal später nutzen soll, hat im fraglichen Moment vielleicht gar kein SAP offen und erkennt dann in dem Nicht-SAP-Programm, daß er einen SAP-Kundenauftrag erfassen muß. In der Regel ist der Auftraggeber im SAP nicht als Kunde angelegt. Deshalb soll dann auf Knopfdruck

a) SAP geöffnet und die VA01 angesprungen werden

b) mit fest voreingestellter Auftragsart, Vertriebsbereichdaten und einem CPD-Kunden ein Auftrag begonnen und die Adressdaten aus dem rufenden Programm in dem Auftrag hinterlegt werden (mit dem halben BI).

Dann kann der Anwender den Auftrag im SAP fertig bearbeiten und abschließend sichern.

Ich war mir sehr unsicher, ob sowas überhaupt geht, aber Du hörst Dich ja eigentlich ganz zuversichtlich an. Kann man einen remotefähigen SAP-Funktionsbaustein über die DOS-Eingabeaufforderung rufen und dabei auch Parameter übergeben? Dann könnte ich das ganze ja mal testen.

Man, ich fühl mich dumm!!

Schöne Grüße und herzlichen Dank für Deinen Rat, Dummi
Rico1255
.
.
 
Posts: 6
Joined: Mon Aug 08, 2005 5:57 pm

Postby ewx » Thu Sep 01, 2005 11:59 am

Hi,

folgendes (ich gehe von einem Windows-Client aus):
Wenn dein Sapgui komplett installiert ist, dann hast du ein Verzeichnis ../sapgui/rfcsdk/bin. Da gibt's das Programm startrfc.exe

Das kannst du verwenden, um einen Funktionsbaustein aufzurufen. Am besten schreibst du in etwa folgendes in eine DUMMIVA01.CMD-Datei (ohne {}!!):
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. startrfc -F Z_VA01_DUMMI
  2.          -E kunag=%1
  3.          -E kunwe=%2
  4.          -E auart=%3
  5.          -3         {R3-System}
  6.          -t         {trace}
  7.          -gui       {use gui}
  8.          -D SY1     {systemid}
  9.          -u dummi   {user}
  10.          -p geheim  {kennwort}
  11.          -c 001     {client}
  12.          -l DE      {language}
GeSHi ©


Mit -F definierst du den Fuba. -E sind die einzelnen Parameter des Bausteins. mit -T kannst du Tabellen angeben und auch aus welcher Text-Datei diese übernommen werden sollen (einfach startrfc mal aufrufen, es erscheint dann eine Hilfe).

Du benötigst dann noch eine saprfc.ini:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DEST=SY1
  2. TYPE=A
  3. ASHOST=/H/{routing-ip}/S/3298/H/{r3-System}
  4. SYSNR=00
  5. GWHOST=/H/{routing-ip}/S/3298/H/{r3-System}
  6. GWSERV=3300
  7. RFC_TRACE=1
  8. ABAP_DEBUG=0
  9. USE_SAPGUI=1
  10.  
GeSHi ©


Dann musst du natürlich den Fuba im R/3 anlegen (Remotefähig!!!).

Die CMD-Datei kannst du dann aufrufen mit
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DUMMIVA01 8888 8888 TA
GeSHi ©


Mehr/ andere info unter
Tricktresor

Falls dir jetzt auffällt, dass ich dir hier die SAPRFC.INI ans Herz gelegt habe und im Artikel die Datei SIDEINFO aufgeführt wird und du dann vielleicht noch fragst, warum: Keine Ahnung... :lol:

Funktioniert hat's mit beiden Varianten.

Und nun viel Spaß!!

Gruß,
_.Enno._
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Rico1255 » Fri Sep 02, 2005 5:02 pm

Hallo Enno,

vielen Dank für die ausführlichen Informationen, das ist wirklich klasse!!! Leider scheitern meine Tests mit Deiner Methode an irgendwelchen Fehlern RFC_ERROR_COMMUNICATION, aber ich hoffe, daß kann ich nächste Woche mit unserer Basis lösen. Wahrscheinlich versorge ich noch irgendwelche Parameter falsch. Aber jetzt weiß ich schon mal, das und wie es geht. Mein Funktionsbaustein ist schon fertig :D

Herzliche Grüße, Dummi
Rico1255
.
.
 
Posts: 6
Joined: Mon Aug 08, 2005 5:57 pm

Postby Emine3445 » Mon Sep 05, 2005 5:08 pm

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

Hallo Enno,

jetzt klappt es super. Alles wie gewünscht. Ich bin bei den Untersuchungen mit unserer Basis auch noch zu ein paar neuen Erkenntnissen gelangt:

1. saprfc.ini oder sideinfo
Das steuert man im Prinzip über den Destinationseintrag im Startrfc-Aufruf. Ein großes -D führt zu einer Suche nach der Destination in der Datei saprfc.ini, ein kleines -d zu einer solchen Suche in der Datei sideinfo.

Auszug aus der Doku des Programms startrfc:
-D <destination> name of the RFC destination in saprfc.ini
-d <destination> name of the RFC destination. Necessary, if you are using a 'sideinfo' file.


2. Aufruf OHNE saprfc.ini und OHNE sideinfo
Man kann startrfc auch direkt so aufrufen, daß es weder saprfc.ini noch sideinfo benötigt. In diesem Fall müssen nur der Hostname und die Systemnummer bei dem Aufruf von startrfc mit übergeben werden. Deswegen rufen wir jetzt unseren Baustein folgendermaßen:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. startrfc -F Z_VA01_DUMMI
  2.          -E kunag=%1
  3.          -E kunwe=%2
  4.          -E auart=%3
  5.          -3         &#123;R3-System&#125;
  6.          -t         &#123;trace&#125;
  7.          -gui       &#123;use gui&#125;
  8.          -h HOSTI   &#123;hostname&#125;
  9.          -s 123     &#123;Systemnummer&#125;
  10.          -c 001     &#123;client = Mandant&#125;
  11.          -u dummi   &#123;user&#125;
  12.          -p geheim  &#123;kennwort&#125;
  13.          -l DE      &#123;language&#125;
GeSHi ©


Vielen Dank für Deine tolle Hilfe!! Das ist wirklich ein klasse Forum mit sehr hilfsbereiten Mitgliedern!!

Schöne Grüße von NichtMehrGanzSoDummi

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

P.S.: Kann man eigentlich auch irgendwie die Übergabe von User und Paßwort umgehen und eine Anmeldung am System erzwingen? Wahrscheinlich geht das aber bei einer RFC-Anmeldung nicht, oder?
Emine3445
.
.
 
Posts: 1
Joined: Mon Sep 05, 2005 5:08 pm


Return to Exchange Infrastructure

Who is online

Users browsing this forum: No registered users and 3 guests