使用 SAP .NET Connector 3.0 可向SAP输出数据,步骤如下:

  • 添加SAP .NET Connector 3.0 dll
  • 引用dll
  • 调用RFC输出数据

通常都在企业库中封装SAP输出,再在流程中调用企业库API。

  • 添加SAP .NET Connector 3.0 dll

  • 引用dll

  • 调用RFC输出数据

添加SAP .NET Connector引用后,即可调用RFC输出数据。

//SAP.cs

using System;

using System.Collections.Generic;

using System.Text;

using SAP.Middleware.Connector;

using BPM.Server;

namespace MyBPM

{

   public class SAP

   {

       public static void DataToSap(string MCode, string MDesc, string MUint)

       {

           MyBackendConfig cfg = new MyBackendConfig();

           RfcDestination dev = RfcDestinationManager.GetDestination(cfg.GetParameters("DEV"));//SAP系统标识

           RfcRepository repo = dev.Repository;

           IRfcFunction companyBapi = repo.CreateFunction("ZRFC_CREATE_MATERIAL"); //指定RFC名称

           companyBapi.SetValue("matnr", MCode);//   "MM01"

           companyBapi.SetValue("maktx", MDesc);//   "自建物料1"

           companyBapi.SetValue("meins", MUint);//   "M"

           companyBapi.Invoke(dev); //开始调用执行

           IRfcStructure Returntable = companyBapi.GetStructure("Return");

           if (!Returntable.GetString("type").Equals("S"))

           {

               throw new Exception("回写失败,错误信息:" + Returntable.GetString("message"));

           }

       }

   }

}


// MyBackendConfig.cs

using System;

using System.Collections.Generic;

using System.Text;

using System.Configuration;

using System.Xml;

using System.IO;

using SAP.Middleware.Connector;

namespace MyBPM

{

   class MyBackendConfig :IDestinationConfiguration

   {

       public RfcConfigParameters GetParameters(String destinationName)

       {

           if ("DEV".Equals(destinationName))

           {

               RfcConfigParameters parms = new RfcConfigParameters();

               parms.Add(RfcConfigParameters.AppServerHost, "demo.smartsoft.com.tw");//SAP主机IP

               parms.Add(RfcConfigParameters.SystemNumber, "00");//SAP实例

               parms.Add(RfcConfigParameters.SystemID, "dev");

               parms.Add(RfcConfigParameters.User, "ddic");//用户名

               parms.Add(RfcConfigParameters.Password, "saperpecc6");//密码

               parms.Add(RfcConfigParameters.Client, "001");// Client

               //parms.Add(RfcConfigParameters.SAPRouter, "/H/202.82.130.200/S/3299/W/rmsap/H/");

               //parms.Add(RfcConfigParameters.Language, "EN");//登陆语言

               parms.Add(RfcConfigParameters.PoolSize, "5");

               return parms;

           }

           else

               return null;

       }

       public bool ChangeEventsSupported()

       {

          return false;

       }

       public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;

   }

}

Created with the Personal Edition of HelpNDoc: News and information about help authoring tools and software