AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu SAP-iDoc

Ein Thema von SarDGer · begonnen am 10. Mai 2011 · letzter Beitrag vom 13. Jun 2011
Antwort Antwort
SarDGer

Registriert seit: 19. Mai 2005
55 Beiträge
 
Delphi 7 Professional
 
#1

AW: Frage zu SAP-iDoc

  Alt 10. Mai 2011, 15:03
Zitat von BlackbirdBerlin:
Ist die Übergabe nach SAP denn schon definiert?
Wie sind die Partnervereinbarungen? tRFC oder Dateiport?
Ich weiß leider nicht was Du meinst

Ich hab ein Programm geschrieben das die untenstehenden Felder füllt und sich dann verbindet.

Delphi-Quellcode:
procedure TForm3.btn_1Click(Sender: TObject);
begin
  (* Verbindung und deren Parameter definieren *)

  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 *)

  begin
    ShowMessage('Logon successfull.');
    btn_1.Enabled:= true;
  end
  else
  begin
    ShowMessage('Logon did not work :-(((');
    SAPLogonControl.Enabled:=true;
  end;
end;
Und jetzt würde ich gerne
iDoc := Connection.CreateEmptyIdoc('ORDERS01','');
ausführen um dann die Segmente zu füllen.

Wenn ich ein Record zB TiDoc definiere klappts natürlich nicht.
Inkompatible Typen TiDoc und Variant. Wenn ich iDoc : Variant oder OLEVariant lasse
kommt "... 'Die Methode 'CreateEmptyIdoc' wird vom AutomatisierungsObject
nicht unterstützt..."

Gruß,
Sar D'Ger
  Mit Zitat antworten Zitat
BlackbirdBerlin

Registriert seit: 15. Okt 2009
Ort: 10318 Berlin
91 Beiträge
 
Delphi 7 Architect
 
#2

AW: Frage zu SAP-iDoc

  Alt 10. Mai 2011, 15:20
...
Ich weiß leider nicht was Du meinst

...iDoc := Connection.CreateEmptyIdoc('ORDERS01','');
ausführen um dann die Segmente zu füllen.

...
Gruß,
Sar D'Ger
Hi Sar D'Ger,

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
Tim
  Mit Zitat antworten Zitat
SarDGer

Registriert seit: 19. Mai 2005
55 Beiträge
 
Delphi 7 Professional
 
#3

AW: Frage zu SAP-iDoc

  Alt 10. Mai 2011, 16:21
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
  Mit Zitat antworten Zitat
BlackbirdBerlin

Registriert seit: 15. Okt 2009
Ort: 10318 Berlin
91 Beiträge
 
Delphi 7 Architect
 
#4

AW: Frage zu SAP-iDoc

  Alt 10. Mai 2011, 16:50
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
Tim
  Mit Zitat antworten Zitat
SarDGer

Registriert seit: 19. Mai 2005
55 Beiträge
 
Delphi 7 Professional
 
#5

AW: Frage zu SAP-iDoc

  Alt 10. Mai 2011, 17:38
Na Hauptsache ich hab sie gesendet

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 von BlackbirdBerlin:
Ein IDoc kannst Du ohne Probleme in ein SAP-System reindängeln.
Echt jetzt? Wie??
Für den ersten Step würde mir ein "totes" iDoc völlig reichen.

Gruß,
Sar D'Ger
  Mit Zitat antworten Zitat
BlackbirdBerlin

Registriert seit: 15. Okt 2009
Ort: 10318 Berlin
91 Beiträge
 
Delphi 7 Architect
 
#6

AW: Frage zu SAP-iDoc

  Alt 10. Mai 2011, 20:20
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

Viele Grüße,
Tim
Tim
  Mit Zitat antworten Zitat
SarDGer

Registriert seit: 19. Mai 2005
55 Beiträge
 
Delphi 7 Professional
 
#7

AW: Frage zu SAP-iDoc

  Alt 12. Jun 2011, 12:43
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:
<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>
.
.
.
Sind ja soweit alle verbindungsinformationen, so wie ich
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:
  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 :-(((');
* Danke an dieser Stelle Joachim Lentz Quelle

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
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:05 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