如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2005年3月15日

使用ABAP/4呼叫外部程式-相關設定

SAP與外部程式整合的方式有很多, 常見的有 :
1. Java Connector(Jco) or Java Resource Adapter(JRA)
2. .NET Connector
3. RFC Library
4. Business Connector
其他還有
1. OLE automation/ActiveX Control
2. ALE and IDOCs
3. SOAP Processor
4. SAP Data Tranfer Program
5. ITS
6. Netweaver XI
當然各種整合方式適用範圍不同, 視整合的目的與策略來決定使用的整合方式

在Window環境與VB, C#等整合可以考慮.NET Connector的整合方式(其他如ActiveX Control也可以)

Steps:
1. .NET Program : 在SAP Gateway host註冊
2. .NET Program : 被呼叫的程式功能X, 必須與SAP中的呼叫(caller)者,傳遞的參數互相匹配
3. SAP Program : 包含Call Function X Destination Y
4. .NET Program : 執行程式並傳回結果到SAP
程式不詳細說明了, 請找到SAP .NET Connector的文件好好Study就會了

而SM59設定的方式:
方法一 : 在SAP Gateway註冊RFC Server (就是要被呼叫的程式)
建立Destination參數如下 :
Connection Type : T
Activate type : Registering
Program ID : 被呼叫的程式名稱
Gateway host : host_x (就是SAP Application Server的host name)
Gateway Service : sapgw

方法二 : 有SAP Gateway啟動RFC Server
建立Destination參數如下 :
Connection Type : T
Activate type : Start on explicit host
Program : ../rfcsdk/bin/srfcserv
Target host : host_y (.Net program所在的host name)
Gateway host: /H/host_xGateway Service : sapgw
除SAP端, .Net program端也有些設定要注意這些設定你也可以找到RFCSDK Guide的文件, 用力看一看

不用設定SM59就可以註冊RFC server的方法 :
在RFC server端 :
在saprfc.ini中設定
DEST="xyz"
TYPR=R
PROGID=要執行的程式
GWHOST=sap gateway host
GWSERV=sap gateway service name...
然後在RfcOpenEx的參數中設定DEST="xyz"

或(.NET connector)用RFCServerConsole 選擇 Properties → Configurationproperties → Debugging → Command Line Arguments :
rfcserv–aMYPROGID –gLOCALHOST –xSAPGW00 (例)
在SAP端的RFC call要呼叫RFC_SET_REG_SERVER_PROPERTY export parameter : EXCLUSIVE = 'Y'
然後用SM59測試連線,
用SMGW顯示註冊狀態

沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)