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 #

  1. Bauen Sie mit der R3Connection-Klasse eine Verbindung zum R/3 System auf.
  2. Fragen Sie die IDoc-Nummer des zu manipulierenden IDocs ab und lesen Sie die Eingabe aus.
  3. 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","");
    
  4. 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
    
  5. Fügen Sie die folgenden Daten Segment E1STATS hinzu: Zielstatus (STATUS), Datum und Uhrzeit (LOGDAT, LOGTIM) und die zu manipulierende IDoc-Nummer (DOCNUM).
  6. 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();
             }
     }
    
  7. 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.
    SAP-Send-IDoc-001