Der folgende Abschnitt zeigt, wie Sie ein Konsolenprogramm schreiben, das ein IDoc vom Typ STATUS sendet.
Der STATUS-Nachrichtentyp wird verwendet, um den Status eines anderen ausgehenden IDocs anzupassen, z.B. wenn ein Subsystem IDocs empfängt und den Empfang durch eine Status-Anpassung quittiert. Das STATUS-IDoc enthält nur einen Datensatz und ist somit sehr einfach aufgebaut.
Hinweis: Stellen Sie sicher, dass Ihr SAP-System konfiguriert ist, IDocs zu empfangen, siehe Einrichten des Empfangs von IDocs.
Ein STATUS IDoc senden #
- Bauen Sie mit der R3Connection-Klasse eine Verbindung zum R/3 System auf.
- Fragen Sie die IDoc-Nummer des zu manipulierenden IDocs ab und lesen Sie die Eingabe aus.
- Erzeugen Sie mit der Methode CreateIdoc ein IDoc Objekt.
“SYSTAT01” ist der entsprechende IDoc-Typ für den Nachrichtentyp STATUS.
static void Main(string[] args) { using (R3Connection con = new R3Connection("SAPServer", 00, "SAPUser", "Password", "EN", "800")) { con.Open(false); Console.WriteLine("Which IDocnumber would you like to manipulate?"); string IdocNo = Console.ReadLine(); Idoc i = con.CreateIdoc("SYSTAT01","");
- Geben Sie Angaben zum Empfänger und Absender für den Kopfsatz des IDoc-Objekts ein.
// Fill Message Type i.MESTYP = "STATUS"; // Fill Information about IDoc Reciever i.RCVPRN = "PT4_800"; // Partner number i.RCVPRT = "LS"; // Partner type // Fill information about idoc sender i.SNDPOR = "ERPCONNECT"; // Partner port i.SNDPRN = "ERPCONNECT"; // Partner number i.SNDPRT = "LS"; // Partner type
- Fügen Sie die folgenden Daten Segment E1STATS hinzu: Zielstatus (STATUS), Datum und Uhrzeit (LOGDAT, LOGTIM) und die zu manipulierende IDoc-Nummer (DOCNUM).
- Senden Sie das IDoc mit der Methode Send.
// Fill the right fields in the segments i.Segments["E1STATS",0].Fields["LOGDAT"].FieldValue = "20210901"; i.Segments["E1STATS",0].Fields["LOGTIM"].FieldValue = "152301"; i.Segments["E1STATS",0].Fields["STATUS"].FieldValue = "12"; i.Segments["E1STATS",0].Fields["DOCNUM"].FieldValue = IdocNo; i.Send(); Console.WriteLine("IDoc sent"); Console.ReadLine(); } }
- Führen Sie das Programm aus und prüfen Sie in SAP den Status des manipulierten IDocs.
Der Status ist von 3 (an Subsystem übergeben) auf 12 (Versand OK) erhöht worden.