BSAO – Mapping – How to add an url link to an extrinsic field
On the Ariba Network Integration for SAP Business Suite AddOn (BSAO), it is possible to add url links to extrinsic fields. This is supported on Ariba Network message standards (cXML).
This would be useful for Buyers that need to send out dynamic terms & conditions or further documentation that is available online. The Supplier will receive the Purchase Order with a description and a link for the external information. The Buyer is responsible for hosting the links, as Ariba does not provide this service.
Here is how to do it:
- When creating the extrinsic on the ABAP code, populate the url only the X_CONTENT field. Name and Content fields must be blank.
- The X_CONTENT field must contain the whole <Extrinsic> tag.
- e.g. X_CONTENT = ‘<Extrinsic name=”Terms & Conditions”><URL name=”Link”>http://www.sap.com”</URL></Extrinsic>’
- When using the <url> tag inside the <extrinsic>, if the url contains parameters (meaning that it have the ‘&’ character).
- You must use the HTML code ‘&’ instead of the ‘&’. Or else the transformation will fail.
- X_CONTENT is a RAWSTRING type of data, so you must also convert the STRING data to RAWSTRING
- You can do this by implementing class CL_ABAP_CONV_OUT_CE.
The snippet bellow can be used on the PO mapping BADI to add an url extrisic [BADI ARBERP_OUTBOUND_MAPPING, method MAP_BUS2012_TO_ORDR_OUT].
* Adding a url link on an extrinsic field. DATA: ls_ext TYPE ARBERP_XORDR_S_EXTRINSIC, lc_tag TYPE string VALUE '<Extrinsic name="Technical Specifications"><URL name="Purchase Order specification">http://www.sap.com</URL></Extrinsic>', lo_conv TYPE REF TO CL_ABAP_CONV_OUT_CE. * convert the string to XSTRING lo_conv = CL_ABAP_CONV_OUT_CE=>CREATE( ENCODING = 'UTF-8' ). lo_conv->RESET( ). lo_conv->WRITE( lc_tag ). ls_ext-X_CONTENT = lo_conv->GET_BUFFER( ). * Insert the new extrinsic to the cxml structure APPEND ls_ext TO CS_ORDR-REQUEST-ORDER_REQUEST-ORDER_REQUEST_HEADER-EXTRINSIC.
The url link will be displayed as following on the Ariba Network PO (the url link is clickable).