C#のインターフェイスは、RFCインターフェースチュートリアルシリーズ2は、この2.0インターフェイスの使用を呼び出します。ハハ、世界は常に武術を学び、技術のうちエクササイズは同じです。
文字列 str111 = "" ; // マテリアル文書番号 文字列 str222 = "" ; // 年間 IDestinationConfiguration ID = 新新RfcConfig(); RfcDestinationManager.RegisterDestinationConfiguration(ID); RfcDestinationのPRD = RfcDestinationManager.GetDestination(" PRD_000 "); // 公式環境領域000 RfcDestinationManager.UnregisterDestinationConfiguration(ID); RfcRepositoryレポ = prd.Repository; IRfcFunction companyBapi = repo.CreateFunction("ZM_PURCHASE_GOOD01 "); // 调用函数名 試みる { IRfcTable tableSAP = companyBapi.GetTable(" IT_POGOを"); // 表体 のための(int型 i = 0 ; iは<gvlist1.Rows.Count; iは++) // 1 sapdt.Rowsを.Count { // テキストボックスtxtnum =(テキストボックス)gvlist1.Rows [I] .FindControl( "txtnum"); のHiddenField hfQYA24 =(のHiddenField)gvlist1.Rows [I] .FindControl(" hfQYA24 " ); IRfcStructure ST =tableSAP.Metadata.LineType.CreateStructure(); st.SetValue(" EBELN "、gvlist1.Rows [I] .Cells [ 9。 .Text.Trim()]); // 購入のみ番号"3020092357" st.SetValue(" EBELP "gvlist1.Rows [I] .Cells [ 10 ] .Text.Trimは()); // PO単一の項目番号" 10 " st.SetValue(" Mengeは」、gvlist1.Rows [I] .Cells [ 7。 ] .Text.Trim()); // 発注番号"1" st.SetValue(" REF_DOC_YR "、lblQY23.Text.Trim())。 // 樹液收货单号 st.SetValue(" REF_DOC "、lblQY22.Text.Trim()); // 樹液收货年度 st.SetValue(" REF_DOC_IT " 、hfQYA24.Value)。 tableSAP.Append(ST); } companyBapi.SetValue(" I_BWART "、" 105 " )。 companyBapi.SetValue(" I_BUDAT "、DateTime.Now.ToString(" YYYYMMDD ")); companyBapi.SetValue(" ZFORM "、" 800 " ); companyBapi.SetValue(" ZOABH "、model.QY02)。 // 单号 companyBapi.SetValue(" IT_POGO " 、tableSAP)。 companyBapi.Invoke(PRD)。 // 执行函数 str111 = companyBapi.GetString(" E_MBLNR " ); str222 = companyBapi.GetString(" E_MJAHR " )。 IRfcTable OPTIONS= companyBapi.GetTable(" RETURN ")。 // 返回表格值 ブール IsFail = 偽; StringBuilderのstrMsg = 新しいStringBuilderの(); 以下のために(int型 i = 0 ; I <OPTIONS.RowCount; iは++ ) { OPTIONS.CurrentIndex = I。 もし(OPTIONS.GetString(" TYPE ").Equals(" E " )) { IsFail =trueに、 strMsg.Append(OPTIONS.GetString(" MESSAGE " )); strMsg.Append(" <BR> " ); } } IF (IsFail) { SystemTools.displayTips(" 例外:!にSAP導入詳細" + strMsg。 ToStringメソッド()、0 、lblInfoMsg); 返す; } } キャッチ(RfcAbapException EX)は // この例外は、具体的には、ユーザ定義の例外情報を取得するように構成されました!!!! { twMsgbox.AjaxAlert(companyBapi.Metadata.GetAbapException(ex.Key).Documentation); } キャッチ(RfcAbapRuntimeException EX) // 実行RFC中に演算例外を取得するに捧げ、この例外!!!! { TwMsgbox.AjaxAlert(companyBapi.Metadata.GetAbapException(ex.Key).Documentation); } キャッチ(RfcBaseException EX) // キャッチが複数存在する場合、これは総例外例外クラスでは、すべての例外を取得し、置くことができません最初に!!!! { TwMsgbox.AjaxAlert(「次のように:!作業順序番号がデータベース接続エラーメッセージが存在するかSAPない」 + Ex.Messageが); }