SAP ERPとの統合。 店舗でのモバイル価格チェッカーの実装

SAP ERPとサードパーティソフトウェアの統合の例では、 SAP Connector for Microsoft .NETを使用してSAPからデータを取得します。 データ収集端末(TSD)のソフトウェアは、サーバー上のMicrosoft Internet Information Server(IIS)およびInternet Explorerなどのクライアントソフトウェアと対話します。コンポーネントの開発に使用されるテクノロジは、C#プログラミング言語のasp.netです。







SAPで機能モジュール(FM)を開発する場合、パラメーター「リモートモジュール」を指定します。













この関数は値I_WERKSファクトリを取り、テーブルTABを返します。







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





IISの設定を別のテーブルのSQL Serverデータベースに保存します。













C#のasp.netパーツでは、SAP Connector for Microsoft .NETを使用します







SAPコネクタのセットアップ:







  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; }
      
      





SAP ERPとの接続を設定し、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");
      
      





受信したデータをSQL Serverテーブルに貼り付けます。







  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();
      
      





Visual Studioでデータコレクションターミナル(TSD)用のインターフェイスを描画します。 TSDを使用する場合、バーコード検索を実行し、TSD画面の価格と価格タグの価格を視覚的に比較し、不一致がある場合はジャーナルに追加します。













トレーディングフロアで値札マガジンを作成し、値札を印刷して交換します。







→完全なC#コードはGitHubで表示できます







GitHubの例としての完全なSAP機能モジュールコード







Microsoft Connector for Microsoft .NETおよびC#の機能により、SAP ERPから簡単かつ便利な方法でデータを受信できます。








All Articles