Integration mit SAP ERP. Implementierung eines mobilen Preisprüfers in einem Geschäft

In unserem Beispiel für die Integration von SAP ERP in Software von Drittanbietern verwenden wir den SAP Connector für Microsoft .NET , um Daten von SAP abzurufen. Die Software für das Datenerfassungsterminal (TSD) interagiert mit dem Microsoft Internet Information Server (IIS) auf dem Server und mit jeder Client-Software wie Internet Explorer. Die zur Entwicklung der Komponente verwendete Technologie ist asp.net in der Programmiersprache C #.


Geben Sie bei der Entwicklung eines Funktionsmoduls (FM) in SAP den Parameter "Remote-Modul" an:



Die Funktion nimmt den Wert factory I_WERKS und gibt die Tabelle TAB zurück:


FUNCTION Y_GET_MATNR_PRICE IMPORTING VALUE(I_WERKS) TYPE WERKS_D TABLES TAB LIKE YSOUT_PRICE EXCEPTIONS NO_DATA NO_VKORG. 

Wir werden die Einstellungen für IIS in der SQL Server-Datenbank in einer separaten Tabelle speichern:



In asp.net-Teilen in C # verwenden wir SAP Connector für Microsoft .NET


Einrichten des SAP Connector:


  public class MyBackendConfig : IDestinationConfiguration { SaalutDataClasses1DataContext context; public RfcConfigParameters GetParameters(String destinationName) { if (context == null) context = new SaalutDataClasses1DataContext(); if ("AEP".Equals(destinationName)) { var settingsSP = (from s in context.SettingsSAPERPTbls select s).FirstOrDefault(); RfcConfigParameters parms = new RfcConfigParameters(); parms.Add(RfcConfigParameters.Name, settingsSP.SystemID); parms.Add(RfcConfigParameters.AppServerHost, settingsSP.MessageServerHost); if (settingsSP.LogonGroup != null || settingsSP.LogonGroup != "") parms.Add(RfcConfigParameters.LogonGroup, settingsSP.LogonGroup); parms.Add(RfcConfigParameters.SystemID, settingsSP.SystemID); parms.Add(RfcConfigParameters.SystemNumber, settingsSP.SystemNumber); if (settingsSP.SAPRouter != null || settingsSP.SAPRouter != "") parms.Add(RfcConfigParameters.SAPRouter, settingsSP.SAPRouter); parms.Add(RfcConfigParameters.User, settingsSP.SAPUser); parms.Add(RfcConfigParameters.Password, settingsSP.SAPPassword); parms.Add(RfcConfigParameters.Client, settingsSP.Client); parms.Add(RfcConfigParameters.Language, "en"); parms.Add(RfcConfigParameters.PoolSize, "5"); parms.Add(RfcConfigParameters.MaxPoolSize, "10"); parms.Add(RfcConfigParameters.IdleTimeout, "600"); return parms; } else return null; } public bool ChangeEventsSupported() { return false; } public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged; } 

Herstellen einer Verbindung mit SAP ERP und Empfangen von Daten von FM Y_GET_MATNR_PRICE (c #):


  RfcDestinationManager.RegisterDestinationConfiguration(cfg);//1 RfcDestination prd = RfcDestinationManager.GetDestination("AEP");//2 RfcRepository repo = prd.Repository;//3 IRfcFunction pricesBapi = repo.CreateFunction("Y_GET_MATNR_PRICE");//4 pricesBapi.SetValue("I_WERKS", werk); //5 pricesBapi.Invoke(prd); //6 IRfcTable detail = pricesBapi.GetTable("TAB"); 

Wir fügen die empfangenen Daten in die SQL Server-Tabelle ein:


  int i = 0; foreach (IRfcStructure elem in detail) { string matnr = elem[0].GetString(); double kbetr = elem[1].GetDouble(); string kschl = elem[2].GetString(); string assort = elem[3].GetString(); SAPPriceTbl np = new SAPPriceTbl(); np.MATNR = matnr; np.KBETR = kbetr; np.KSCHL = kschl; np.ASSORT = assort; context.SAPPriceTbls.InsertOnSubmit(np); if (i == 100) { context.SubmitChanges(); i = 0; } i++; } context.SubmitChanges(); 

Wir zeichnen die Schnittstelle in Visual Studio für das Data Collection Terminal (TSD). Bei der Arbeit mit einer TSD führen wir eine Barcodesuche durch, vergleichen den Preis auf dem TSD-Bildschirm visuell mit dem Preis auf dem Preisschild und fügen bei Unstimmigkeiten dem Journal Folgendes hinzu:



Formed Price Tags Magazine, drucken und ersetzen Sie Preisschilder auf dem Parkett.


→ Der vollständige C # -Code kann auf GitHub angezeigt werden


→ Vollständiger SAP-Funktionsbausteincode als Beispiel auf GitHub


Mit der Funktionalität von SAP Connector für Microsoft .NET und C # können Sie Daten auf einfache und bequeme Weise aus SAP ERP empfangen.

Source: https://habr.com/ru/post/de446964/


All Articles