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).