深圳全飞鸿

标题: C#处理SAP的RFC总结 [打印本页]

作者: zhgc    时间: 2021-6-6 18:33
标题: C#处理SAP的RFC总结
C#处理SAP的RFC总结

using SAP.Middleware.Connector;



  1.        public class SapConnection : IDestinationConfiguration
  2.         {
  3.             public RfcConfigParameters GetParameters(string destinationName)
  4.             {
  5.                 RfcConfigParameters conf = new RfcConfigParameters();
  6.                 if (destinationName == "PRD")
  7.                 {
  8.                     conf.Add(RfcConfigParameters.AppServerHost, objMESClient.SAPIP);
  9.                     conf.Add(RfcConfigParameters.SystemNumber, objMESClient.SAPSYSNumber);
  10.                     conf.Add(RfcConfigParameters.User, "MES");
  11.                     conf.Add(RfcConfigParameters.Password, "1qa");
  12.                     conf.Add(RfcConfigParameters.Client, "800");
  13.                 }

  14.                 if (destinationName == "DEV")
  15.                 {
  16.                     conf.Add(RfcConfigParameters.AppServerHost, "192.168.99.1");
  17.                     conf.Add(RfcConfigParameters.SystemNumber, "00");
  18.                     conf.Add(RfcConfigParameters.User, "ABAP");
  19.                     conf.Add(RfcConfigParameters.Password, "123");
  20.                     conf.Add(RfcConfigParameters.Client, "600");
  21.                 }
  22.                 return conf;
  23.             }

  24.             public bool ChangeEventsSupported()
  25.             {
  26.                 return true;
  27.             }

  28.             public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;
  29.         }

  30.         private string GetSAPInfor(string StrWO)
  31.         {
  32.             string StrResult = "";
  33.             SapConnection con = new SapConnection();

  34.             RfcDestinationManager.RegisterDestinationConfiguration(con);

  35.             RfcDestination dest = RfcDestinationManager.GetDestination("PRD");// 测试用DEV
  36.             RfcRepository rfcrep = dest.Repository;
  37.             IRfcFunction myfun = null;
  38.             myfun = rfcrep.CreateFunction("ZMES_WO");
  39.             //myfun.SetValue("WO", "11000058");//SAP里面的传入参数
  40.             myfun.SetValue("ZVBELN", StrWO);//SAP里面的传入参数
  41.             myfun.Invoke(dest);
  42.             IRfcTable IrfTable = myfun.GetTable("ZMES_BILL");
  43.             if (IrfTable.Count != 1)
  44.             {
  45.                 StrResult = "NO;";
  46.             }
  47.             else
  48.             {
  49.                 for (int i = 0; i < IrfTable.Count; i++)
  50.                 {
  51.                     IrfTable.CurrentIndex = i;
  52.                     StrResult = IrfTable.GetString("Z_PRNUM") + ";" + IrfTable.GetString("BSTKD") + ";" + IrfTable.GetString("WADAT_IST") + ";" + IrfTable.GetString("KUNNR") + ";" + IrfTable.GetString("AUBEL") + ";" + IrfTable.GetString("AUPOS") + ";" + IrfTable.GetString("BLNUMBER") + ";";
  53.                 }
  54.                 StrResult = "OK;" + StrResult;
  55.             }
  56.             RfcDestinationManager.UnregisterDestinationConfiguration(con);
  57.             return StrResult;
  58.         }
复制代码







欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/) Powered by Discuz! X3.2