Quantcast
Channel: SCN : Blog List - Process Integration (PI) & SOA Middleware
Viewing all articles
Browse latest Browse all 676

Click a link in email to call RFC in ECC

$
0
0

Although it pretty straight-forward scenario, no content is present on SCN as a one-stop solution.

 

Business Requirement: Send an email to the customer with a body like with:

 

<<Dear Customer,

Click here to accept.

… >>

 

Clicking the hyperlink, the input parameter (Order ID) will be populated into the URL, and sent to the RFC in SAP ECC:

 

“htts://<server_pi>:<port>/…/zwebservice?p_order=123”

 

 

 

 

Solution: A simple HTTP to RFC scenario can help here.

Step 1: Create a HTTP_AAE sender channel in PI with ASMA properties and URL parameters checked. Since we have all our client's scenarios based on ICOs, I opted for the HTT_AAE channel.

Provide a name for the URLParamOne.


Step 2: Create a test dummy sender interface which could have a simple structure like

DataType.PNG

 

Step 3: Create a mapping between the dummy sender interface and receiver RFC. This message mapping will read the URL parameter and send it into the Order_ID field in the RFC.

For this purpose develop a UDF with no input parameters and one output parameter

 

String orderId = new String();

DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

DynamicConfigurationKey urlParameter = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System", "URLParamOne");

 

orderId = conf.get(urlParameter);

 

return orderId;

 

Step 4: Create a RFC receiver channel for the SAP ECC system.

 

Step 5: Provide the URL to be inserted in the email to be sent to the customer.

http://<pi_server>:<port>/HttpAdapter/HttpMessageServlet?interfaceNamespace=<sender_namespace>&interface=<dummy interface>&senderService=<>&qos=EO&<nameofmainpayload as configuredin_HTTP_channel>=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Cns0%3AMT_HTTP_Req%20xmlns%3Ans0%3D%22http%3A%2F%2F<interfaceNS>%2FCRM_ADAPTER%22%3E%0D%0A%20%20%20%3Cdata%3Etest%3C%2Fdata%3E%0D%0A%3C%2Fns0%3AMT_HTTP_Req%3E&<nameProvidedToURLParaminHTTPChannel=<order_id>

 

Note: Ideally, this URL will have the web-dispatcher/proxy server URL and not the actual PI server URL.


Viewing all articles
Browse latest Browse all 676

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>