Ein einfaches STATUS-IDoc senden Deutsch

From Theobald Software

Jump to: navigation, search

English Version: Send a simple STATUS IDoc


Das folgende Beipiel ist ein Konsolenprogramm, das ein Idoc vom Typ STATUS sendet. Dieser Idoc-Typ ist dazu gedacht, den Status eines anderen (ausgehenden) Idocs anzupassen, z.B. wenn ein Subsystem Idocs empfängt und den Empfang durch eine Status-Anpassung quittieren möchte. Das Status-Idoc ist im Gegensatz zu anderen Idoc-Typen sehr einfach aufgebaut. Aus diesem Grund eignet es sich gut für ein Beispiel.

Zunächst wird mit Hilfe der R3Connection-Klasse eine Verbindung aufgebaut, die zu maniuplierende Idoc-Nummer vom Benutzer abgefragt und das Idoc-Object mit Hilfe der Methode CreateIdoc erzeugt. Als Übergabe-Parameter erhält CreateIdoc "SYSTAT01", der Idoc-Typ.

[C#]

static void Main(string[] args)
        {
            R3Connection con = new R3Connection("hamlet",11,"Theobald","pw","DE","800");
            con.Open(false);
 
            Console.WriteLine("Which Idocnumber would you like to manipulate?");
            string IdocNo = Console.ReadLine();
 
            Idoc i = con.CreateIdoc("SYSTAT01","");

[VB]

Sub Main(ByVal args() As String)
        Dim con As R3Connection = New R3Connection("hamlet", 11, "Theobald", "pw", "DE", "800")
        con.Open(False)
 
        Console.WriteLine("Which Idocnumber would you like to manipulate?")
        Dim IdocNo As String = Console.ReadLine()
 
        Dim i As Idoc = con.CreateIdoc("SYSTAT01", "")

Jetzt muss das Idoc-Objekt i mit verschiedenen Infos im Kopfsatz versorgt werden. Dazu gehören Angaben zum Empfänger und Absender sowie der zugehörige Nachrichtentyp STATUS.

[C#]

// 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

[VB]

' 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

Jetzt müssen noch schnell die Nutzdaten gefüllt werden. Diese befinden sich im Segment E1STATS. Dazu gehören der Zielstatus (STATUS), Datum und Uhrzeit (LOGDAT, LOGTIM) und die zu manipulierende Idocnummer (DOCNUM). Danach ist das Idoc bereit, mit Send gesendet zu werden.

[C#]

// Fill the right fields in the segments
            i.Segments["E1STATS",0].Fields["LOGDAT"].FieldValue = "20060101";
            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();

[VB]

' Fill the right fields in the segments
        i.Segments("E1STATS", 0).Fields("LOGDAT").FieldValue = "20060101"
        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 sended")
        Console.ReadLine()

Die beiden Abbildungen zeigen das Konsolenprogramm in Aktion, sowie die Idoc-Anzeige im SAP. Der Status ist von 3 (an Subsystem übergeben) auf 12 (Versand OK) erhöht worden.

DeutschEnglish
Personal tools
XtractQL Provider
Xtract RS