C#の接続および[尻]生産システムとERPのSAP作業指示情報をダウンロード

生産が後に完了すると、このようなSAP、用友、金蝶やE10など、ERPが対応するインタフェースを提供するだけの内側に、あなたが直接作業指示情報スローMTSシステムズPMCに行くことができるようにERPシステム上の会社が作業指示を作成した場合、MTSは、ERPへのデータバックを完成倉庫、倉庫番号を実行するために簡単にバックルだろう、この記事では、MTSとSAPの間をインタフェースする方法について説明します。

この記事はここでは無視クラスの範囲を説明超え1.SAP着信パラメータは、必要なデータが返され、ユーザに応じて、機能、MSSQL格納された内部と同様の手順が存在する必要があり、プログラムのこの部分は、ABAPによって完成されます。

SAP、コール対応する機能に接続2.MTSは、処理されたデータを取得し、次のパラメータが必要です。

  • SAPサーバのIPアドレス
  • アクセスSAPのユーザー名
  • アクセスSAPのパスワード
  • SAPシステムのインスタンス番号
  • SAPシステムのクライアント番号

市内通話、複数のを容易にするために、コードはコードの回避重複の方法で書かコールSAPは、次の通り:

 

 
SAP.Middleware.Connectorを使用しました。

パブリック クラスSapHelper { 公共 IRfcTable GetSapData(文字列 FunctionNameは、文字列テーブル名、リスト< ストリング >キー、一覧< ストリング > 値) { 文字列サーバー= ConfigurationManager.AppSettings [ " SAPSERVER " ]。 文字列クライアント= ConfigurationManager.AppSettings [ " SapClient " ]; 文字列のユーザ= ConfigurationManager.AppSettings [ " SAPUSER " ]; 文字列のパスワード= ConfigurationManager.AppSettings [ " SapPwd " ]; ストリング SystemNumber = ConfigurationManager.AppSettings [ " SapSystemNumber " ]。 RfcConfigParameters rfcParは = 新しいRfcConfigParametersを(); rfcPar.Add(RfcConfigParameters.Name、" CON " )。 rfcPar.Add(RfcConfigParameters.AppServerHost、サーバ)。 rfcPar.Add(RfcConfigParameters.Client、クライアント)。 rfcPar.Add(RfcConfigParameters.User、ユーザー)。 rfcPar.Add(RfcConfigParameters.Password、パスワード); rfcPar.Add(RfcConfigParameters.SystemNumber、SystemNumber)。 rfcPar.Add(RfcConfigParameters.Language、" EN " ); RfcDestination DEST = RfcDestinationManager.GetDestination(rfcPar)。 RfcRepository rfcrep = dest.Repository。 IRfcFunctionでmyfun = nullを myfunはつぎ = rfcrep.CreateFunction(FunctionNameは)。 IRfcTable IrfTable = myfun.GetTable(テーブル名)。 もし(!Key.Count = Value.Count) { リターン ヌル } ためINT I = 0 ; I <Key.Count; I ++ { myfun.SetValue(キー[I] .ToString()、値[I] .ToString())。 } myfun.Invoke(DEST)。 返すIrfTableを。 } }

ユーザ入力は、作業順序番号をダウンロードする必要がある場合、システムは、SAPに接続されている関数を呼び出す始めました:

 ストリング注文依頼= [ LotName ];
                 IF.IsNullOrEmpty(オーダー))は
                { 
                    リターン; 
                }           //パラメータが強く非常に簡単に、キー値の形で通過することが推奨されます。
                リスト
      

< ストリング >キー1 = 新たな新しいリスト< ストリング > (); リスト < ストリング > =値1 新しい新しいリスト< ストリング > (); Key1.Insert(0" ORDER_NUMBER " )。 Value1.Insert(0 、注文)。 IRfcTable IrfTable_Order = 。SapHelper()GetSapData(" 機能"" テーブル" 、キー1、値1)。 DataTableのdt_Order = 新しいDataTableを(); dt_Order.Columns.Add(" LotName " ); dt_Order.Columns.Add(" 商品名" ); dt_Order.Columns.Add(" LotQuantity " ); dt_Order.Columns。お客様" ); dt_Order.Columns.Add(" 工場" ); 以下のためにINT iが= 0 ; I <IrfTable_Order.Countを、I ++ { IrfTable_Order.CurrentIndex = I。 DataRow DR = dt_Order.NewRow()。 DR [ " LotName " ] = IrfTable_Order.GetString(" AUFNR " )。 DR [ "商品名" ] = IrfTable_Order.GetString(" STLBEZ "; DR [ " LotQuantity " ] =恐らくMath.round(Convert.ToDouble((IrfTable_Order.GetString " GAMNGを"))、0 ).ToString(); DR [ " 顧客" ] = IrfTable_Order.GetString(" PSPEL " ); DR [ " 工場" ] = IrfTable_Order.GetString(" WERKS " )。 dt_Order.Rows.Add(DR); } VAR JSON =Newtonsoft.Json.JsonConvert.SerializeObject(dt_Order)。 VAR totalRecordCount = dt_Order.Rows.Count.ToString()。 JSON = " {\" \合計":" + totalRecordCount + " \"行\ ":" + JSON + " } " Response.Writeを(JSON)。 Response.Endの();

 

RFCテーブルであるSAPから得られたデータではなく、いつものDataTableには、そのデータをJSONへの出力に最終的にそこにあなたが変換を使用する前にする必要があり、ことに注意してください。

 

 

次は、SAPの内部に、便利な倉庫、倉庫番号のバックルにMTS特異完了バックの内側にどのように作品が紹介されて...

 

おすすめ

転載: www.cnblogs.com/allen0118/p/11957699.html