Hi All,
I have a requirement to create RFC connection in BODS for SAP ECC connectivity. While testing the RFC, I was getting 'Program ID not registered' at SAP ECC side and 'Registration of RFC Program ID on <SAP ECC> system from <BODS Host> is not allowed'. I googled for the solution and found three solutions for my issue. Though I tried the simplest one and it worked, I just wanted to verify if other two solutions are correct and more appropriate and I couldn't think of any place other than SCN . So here are the three workarounds/solutions that I found:
1. At SAP ECC System Level:
Direct Method
Execute rfcexec command in relevant SAP work directory (from SAP Server) to register the PROGRAM_ID
Command: rfcexec -a <PROGRAM_ID> -g <SAP ECC Server> -x <SAP Gateway Service Name e.g. sapgw00>
Alternative Method
Modify the configuration file saprfc.ini (classic RFC library) or sapnwrfc.ini (NW RFC Library).
Command: rfcexec -D DS_RFC_EC6_THANE
If the saprfc.ini file is not contained in the current directory, then one might have to specify the path to this file in the environment variable RFC_INI. For sapnwrfc.ini, we have to set the path via API RfcSetIniPath().
Verification of the solution
In transaction SMGW choose GOTO-> Logged on clients. There should be an entry for the server program in the screen that is displayed with system type Registered_TP.
2. Altering Security Settings at SAP side:
By making an entry in the security file, we are allowing BODS to register the RFC Program ID while creating and testing the RFC connection at BODS side.
Create/Modify the security file secinfo.DAT in <SAP installation directory>\data\ location with following content:
P TP=* USER=* USER-HOST=local HOST=local
P TP=* USER=* USER-HOST=internal HOST=internal
P TP=* USER=* USER-HOST=* HOST=*
P TP=* USER=* HOST=*
P TP=<RFC PROGRAM_ID> USER=* HOST=<BODS Job Server>
Create/Modify file reginfo.DAT in <SAP installation directory>\data\ location with following content:
P TP=* HOST=local CANCEL=local ACCESS=local
P TP=* HOST=internal CANCEL=internal ACCESS=internal
P TP=<RFC PROGRAM_ID> HOST=<BODS Job Server> CANCEL=<BODS Job Server> ACCESS=*
P TP=* HOST=* ACCESS=*
3. Modify Security Parameter at SAP side:
I tried this one and it worked for my case. By default the value of this parameter gw/acl_mode is 1. In order to allow registration of external server program, it needs to be set as 0. Along with this, an entry, for SAP Gateway service, in services.dat file also worked for me.
Any inputs on the usage of these methods are more than welcome. It would help me in my and other's understanding.
Thanks Much,
Purnima