|
C#处理SAP的RFC总结
using SAP.Middleware.Connector;
- public class SapConnection : IDestinationConfiguration
- {
- public RfcConfigParameters GetParameters(string destinationName)
- {
- RfcConfigParameters conf = new RfcConfigParameters();
- if (destinationName == "PRD")
- {
- conf.Add(RfcConfigParameters.AppServerHost, objMESClient.SAPIP);
- conf.Add(RfcConfigParameters.SystemNumber, objMESClient.SAPSYSNumber);
- conf.Add(RfcConfigParameters.User, "MES");
- conf.Add(RfcConfigParameters.Password, "1qa");
- conf.Add(RfcConfigParameters.Client, "800");
- }
- if (destinationName == "DEV")
- {
- conf.Add(RfcConfigParameters.AppServerHost, "192.168.99.1");
- conf.Add(RfcConfigParameters.SystemNumber, "00");
- conf.Add(RfcConfigParameters.User, "ABAP");
- conf.Add(RfcConfigParameters.Password, "123");
- conf.Add(RfcConfigParameters.Client, "600");
- }
- return conf;
- }
- public bool ChangeEventsSupported()
- {
- return true;
- }
- public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;
- }
- private string GetSAPInfor(string StrWO)
- {
- string StrResult = "";
- SapConnection con = new SapConnection();
- RfcDestinationManager.RegisterDestinationConfiguration(con);
- RfcDestination dest = RfcDestinationManager.GetDestination("PRD");// 测试用DEV
- RfcRepository rfcrep = dest.Repository;
- IRfcFunction myfun = null;
- myfun = rfcrep.CreateFunction("ZMES_WO");
- //myfun.SetValue("WO", "11000058");//SAP里面的传入参数
- myfun.SetValue("ZVBELN", StrWO);//SAP里面的传入参数
- myfun.Invoke(dest);
- IRfcTable IrfTable = myfun.GetTable("ZMES_BILL");
- if (IrfTable.Count != 1)
- {
- StrResult = "NO;";
- }
- else
- {
- for (int i = 0; i < IrfTable.Count; i++)
- {
- IrfTable.CurrentIndex = i;
- StrResult = IrfTable.GetString("Z_PRNUM") + ";" + IrfTable.GetString("BSTKD") + ";" + IrfTable.GetString("WADAT_IST") + ";" + IrfTable.GetString("KUNNR") + ";" + IrfTable.GetString("AUBEL") + ";" + IrfTable.GetString("AUPOS") + ";" + IrfTable.GetString("BLNUMBER") + ";";
- }
- StrResult = "OK;" + StrResult;
- }
- RfcDestinationManager.UnregisterDestinationConfiguration(con);
- return StrResult;
- }
复制代码
|
|