![]() |
AW: Frage zu SAP-iDoc
Zitat:
erstmal ist ORDERS01 der falsche IDoc-Typ. Den richtigen sollte Dir die SAP-Truppe nennen. Dann muss eine Partnervereinbarung (SAP-Terminus. Beschreibt, für welchen Kommunikationspartner, welche Datenpakete ein- und ausgehend definiert sind...) bestehen, um mit einem eingehenden IDoc überhaupt was passieren zu lassen. Das sollte Dir die SAP-Truppe nennen. Wenn Du hier mit Details aufschlägst, kann ich Dir ggf. weiterhelfen. Grüße, Tim |
AW: Frage zu SAP-iDoc
Schonmal Danke für die Hilfe.
Also anstelle von ORDERS01 muss ich wohl Z1ZCONFPROD setzten. Aber wofür die Partnervereinbarung (Partneragreement??) gut ist, ist mir nicht ganz klar. Bin davon ausgegangen das ich ja eine Verbindung habe, die funktioniert ja. Und wenn ich es dann mal hinbekomme üner "Connection" eine iDoc zu kreiren das ich die dann mit iDoc.Send() lospeitsche. Schätze da muss ich noch ein paar Details erfragen, da die Jungs kaum englisch sprechen wird das mal so richttig Spass machen... ;) Gruß, Sar D'Ger |
AW: Frage zu SAP-iDoc
Hi nochmal.
Ein IDoc kannst Du ohne Probleme in ein SAP-System reindängeln. Nur, wenn Du keine Partnervereinbarung hast, die da sagt: SendePartner, Empfangender Partner, Welches IDOC, ( weitere Details) -> was damit machen! Dann wird dieses IDoc dort rumliegen und nicht weiter beachtet werden. Transaktionen WE21 und WE20 sind hier gefragt. Grüße, Tim |
AW: Frage zu SAP-iDoc
Na Hauptsache ich hab sie gesendet :P
Also das ist so ziemlich alles was ich habe: Client 500 System R3Q Release 700 Lang. E Transaction WE60 Transaction WE60 hat mit nichts gesagt. Muss mal schauen wo ich die dann noch mit reinflansche. Zitat:
Für den ersten Step würde mir ein "totes" iDoc völlig reichen. Gruß, Sar D'Ger |
AW: Frage zu SAP-iDoc
Hi nochmal.
WE60 ist zur IDoc-Dokumentation. D.h. Du kannst Dir damit die Struktur, des zu erzeugenden IDocs ansehen, wobei Dir nicht nur die Struktur sondern auch die Felder und ggf. mögliche Festwerte angezeigt werden. Die Transaktion kannst Du nicht an die Daten ( das IDoc ) mit dranflanschen. Du solltest schon ein ganz kleines bisschen wissen, was Du da tust bzw. tun sollst. Ein totes IDoc gibt's nicht. Es wird auf jeden Fall eine Syntaxprüfung durchgeführt, wo z.B. überprüft wird, ob alle Muss-Segmente vorhanden sind und keine weiteren Restriktionen verletzt werden. Das passiert noch, bevor das IDoc einem "Verarbeiter" übergeben wird. Und dieser "Verarbeiter", der wird durch die Partnervereinbarung bestimmt. D.h. Du hast Beratungsbedarf! Alles Weitere zu Konditionen und Time-Line per PN :-D Viele Grüße, Tim |
AW: Frage zu SAP-iDoc
So hab jetzt einiges zusammen gebastelt.
Leider bin ich für SAP anwendungen offenbar zu dämlich... Ich ein "iDoc Simulat" im xml format zusammen getippselt.
Code:
Sind ja soweit alle verbindungsinformationen, so wie ich
<ZCONFPROD01>
<IDOC> <EDI_DC40> <TABNAM>"EDI_DC40"</TABNAM> <MANDT>"500"</MANDT> <DOCNUM>"0000000005632233"</DOCNUM> <DOCREL>"700"</DOCREL> <STATUS>"53"</STATUS> <DIRECT>"2"</DIRECT> <OUTMOD>"</OUTMOD> <IDOCTYP>"ZCONFPROD01"</IDOCTYP> <MESTYP>"ZCONFPROD"</MESTYP> <SNDPOR>"SAPWMP"</SNDPOR> <SNDPRT>"LS"</SNDPRT> <SNDPRN>"WMSWMP"</SNDPRN> <RCVPOR>"SAPR3P"</RCVPOR> <RCVPRT>"LS"</RCVPRT> <RCVPRN>"QASCLNT210"</RCVPRN> <CREDAT>"20100101"</CREDAT> <CRETIM>"033604"</CRETIM> <SERIAL>"20100101033325"</SERIAL> </EDI_DC40> <Z1ZCONFPROD> <POST_WRONG_ENTRIES>"2"</POST_WRONG_ENTRIES> <Z1BP_PP_HDRLEVEL> <ORDERID>"000001109701"</ORDERID> <POSTG_DATE>"20100101"</POSTG_DATE> <EX_CREATED_DATE>"00000000"</EX_CREATED_DATE> <EX_CREATED_TIME>"000000"</EX_CREATED_TIME> <CONF_QUAN_UNIT>"CS"</CONF_QUAN_UNIT> <YIELD>"144.000"</YIELD> <SCRAP>"0.000"</SCRAP> <REWORK>"0.000"</REWORK> <EXEC_START_DATE>"00000000"</EXEC_START_DATE> <EXEC_START_TIME>"000000"</EXEC_START_TIME> <EXEC_FIN_DATE>"00000000"</EXEC_FIN_DATE> <EXEC_FIN_TIME>"000000"</EXEC_FIN_TIME> <PERS_NO>"00000000"</PERS_NO> </Z1BP_PP_HDRLEVEL> </Z1ZCONFPROD> <EDI_DS40> <MANDT>"500"</MANDT> . . . das so verstanden hab, vorhanden. Ich hab in meinem test projekt die units: SAPLogonCtrl_TLB, SAPFunctionsOCX_TLB, SAPBAPIControlLib_TLB eingebunden und kann hiermit eine verbindung zu SAP aufbauen:
Delphi-Quellcode:
* Danke an dieser Stelle Joachim Lentz
Connection := SAPLogoncontrol.NewConnection;
Connection.System := edt_System.Text; Connection.Client := edt_Client.Text; Connection.ApplicationServer := edt_AppServer.Text; Connection.SystemNumber := edt_SystemNumber.Text; Connection.User := edt_Username.text; Connection.Password := edt_Password.Text; Connection.Language := edt_Language.Text; if Connection.LogOn(0,chk_1.Checked) = true then (* Parameter "true" : SilentLogOn *) ShowMessage('Logon successfull.'); else ShowMessage('Logon did not work :-((('); ![]() Soweit so gut, jetzt hab ich zig Seiten durchforstet und kenne die offiziellen SAP-pdfs fast auswendig (kleiner Scherz - wacka wacka). Aber an dieser Stelle hege ich den Verdacht das ich schlichweg zu doof bin. Ich finde einfach keine Möglichkeit an SAP was zu senden. Sondern nur die BAPIs aufzurufen. Hier die Frage: Wie bekomme ich meine Infos rüber? Danke schonmal, Sar D'Ger |
AW: Frage zu SAP-iDoc
Zitat:
Selbst einfache Aufgaben kosten einen SAP-System-Besitzer viele tausend Euro. Ein "normaler" Programmierer kann viele Dinge für ein Zehntel der Kosten auf einem normalen PC lösen. Das Problem ist nur, wie man mit SAP spricht. Und hier kommen die SAP-Berater ins Spiel. Ohne SAP Berater hat man fast keine Chancen an Wissen zu kommen. Diese Leute vermitteln Wissen nur gegen Geld. Ich habe über ein Jahr gebraucht, bis ich mir das Know How erarbeitet habe auf SAP beliebige RFC-Bausteine aufzurufen. Du bist also nicht zu doof, sondern du kämpfst gegen ein System das Methode hat.:zwinker: |
AW: Frage zu SAP-iDoc
Liste der Anhänge anzeigen (Anzahl: 1)
Habe mal ein Schnittstelle zu SAP gebastelt - richtiger Ausdruck, da der Kunde mich nur tröpfchenweise mit Infos versorgt hat. Die Aufgabe war, Rechnungsdaten in das SAP-System zu bringen.
Aus unseren Buchungsdaten musste eine grauenhafte Textdatei erzeugt werden (hab mal ein Beispiel angehängt) die das SAP dann als Massendatenimport einliest. Nennt sich REL 620. Hier ein Auszug aus der Beschreibung: "Schnittstellenbeschreibung: Zum Einspielen der Buchungssätzen von extern Systemen ins SAP-System wird die Standard-Batch-Input-Schnittstelle von SAP, der Report RFBIBL00 verwendet. Die Buchungssatz-Schnittstellen-Datei wird vom Subsystem im Textformat bereitgestellt. Die Schnittstellen-Datei besteht aus 3 verschiedenen Satzarten BGR00 (Mappenvorsatz), BBKPF (Buchungskopf) und BBSEG (Buchungsposition), die den SAP Tabellen für die Batch-Input Schnittstelle entsprechen. Aufbau der Schnittstellen-Datei Die Schnittstellen-Datei beginnt mit der Satzart BGR00 beginnen. Danach folgt ein Buchungssatz bestehend aus der Satzart BBKPF und danach mindestens 2 Sätze (Soll und Haben) der Satzart BBSEG: BGR00 BBKPF BBSEG BBSEG ... BBSEG Struktur der Satzart Jede Satzart beginnt mit einem eindeutigen Satztyp und endet mit dem ASCII-Zeichen 13 („Carriage Return“). Der Feldaufbau der Satzarten ist aus den folgenden Tabellenbeschreibungen zu entnehmen. Die Felder haben eine feste Länge und sind stets mit Leerzeichen aufzufüllen. Wird das Feld nicht belegt (NULL-Wert), ist das No-Data-Zeichen „/“ an die erste Stelle zu setzen. Der Rest der Feldlänge ist wieder mit Leerzeichen aufzufüllen." Die angehägte Datei enthält einen Kassenbon mit drei Artikeln. Jeder Artikel muss als Soll und Haben kommen, deshalb scheinbar doppelt. Bei Interesse kann ich noch weitere Infos liefern. |
AW: Frage zu SAP-iDoc
Hallo,
danke schonmal :) Worum es mir an erster Stelle mal geht ist folgendes: Irgendwo muss ich sowas wie "Connection.Send(myStuff)" haben. Oder "MyHeader := ...GetHeader(HeaderInfos)" oder irgendwas. Zur Zeit habe ich nur:
Delphi-Quellcode:
Um Daten zu ziehen aber eben nicht um was zu senden.
SAPFunctions1.Connection := Connection;
Funct := SAPFunctions1.add('RFC_READ_TABLE'); Funct.exports('QUERY_TABLE').value := Edt_Tabelle.text; if not Funct.call then showMessage(Funct.exception) Die Struktur von dem was ich zu senden habe ist da ja wieder was anderes. Gruß, Sar D'Ger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 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 by Thomas Breitkreuz