PreviousNext
Help > 流程 > 流程輸出 > SAP
SAP

使用 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;

    }

}