<form action="ARIBA URL" name="jump"method="POST">
<input type="hidden" name="EmailAddress" value="runtime">
<input type="hidden" name="~returntarget" value="as maintained in SPRO">
<input type="hidden" name="PunchinPassword" value=" as maintained in SPRO ">
<input type="hidden" name="PunchinId" value=" as maintained in SPRO ">
<input type="hidden" name="SupplierDomain" value=" as maintained in SPRO ">
<input type="hidden" name="User.Address.UniqueN" value="as maintained in SPRO ">
<input type="hidden" name="realm" value=" as maintained in SPRO ">
<input type="hidden" name="FullName" value=" runtime ">
<input type="hidden" name="UniqueName" value=" runtime ">
<input type="hidden" name="~caller" value=" as maintained in SPRO ">
<input type="hidden" name="~target" value="as maintained in SPRO ">
<input type="hidden" name="~OkCode" value=" as maintained in SPRO ">
<input type="hidden" name="ModifyURL" value=" as maintained in SPRO ">
<input type="hidden" name="BYPASS_INB_HANDLER" value=" as maintained in SPRO ">
<input type="hidden" name="BYPASS_OUTB_HANDLER" value=" as maintained in SPRO ">
<input type="hidden" name="HOOK_URL" value="URL where the catalog must return">
<input type="hidden" name="OCI_VERSION" value=" as maintained in SPRO ">
<input type="hidden" name="OPI_VERSION" value=" as maintained in SPRO ">
<input type="hidden" name="returntarget" value=" as maintained in SPRO ">
</form>
CALL METHOD request->get_form_fields
CHANGING
fields = gt_myattr.
LOOP AT gt_myattr INTO DATA(lwa_attr).
CONCATENATE lv_string lwa_attr-name lc_equal lwa_attr-value lc_ampersand INTO lv_string.
ENDLOOP.
CALL FUNCTION ’TEST’ DESTINATION lv_rfcdest
EXPORTING
iv_string = lv_string
IMPORTING
ex_json = gv_json_c.
Data : lt_str TYPE TABLE OF swastrtab.
DATA :cnht_post_data_line(256) TYPE c.
DATA : cnht_post_data_tab TYPE TABLE OF cnht_post_data_line.
*Split string in required internal table format
CALL FUNCTION 'SWA_STRING_SPLIT' EXPORTING
input_string = iv_string
max_component_length = 255
TABLES
string_components = lt_str
EXCEPTIONS
max_component_length_invalid = 1
OTHERS = 2.
LOOP AT lt_str INTO DATA(ls_str).
cnht_post_data_line = ls_str-str.
APPEND cnht_post_data_line TO cnht_post_data_tab.
ENDLOOP.
*Pass this to the FM for mapping
DATA : ltr_fields TYPE TABLE OF savwctxt.
CALL FUNCTION 'WSI_MAP_REQUEST'
EXPORTING
it_request = cnht_post_data_tab
TABLES
et_its_fields = ltr_fields.
LOOP AT ltr_fields ASSIGNING FIELD-SYMBOL(<lwa_fields>).
TRANSLATE <lwa_fields>-fieldname TO UPPER CASE.
ENDLOOP.
LOOP AT ltr_fields INTO DATA(ls_fields).
CHECK ls_fields-fieldname(17) EQ 'NEW_ITEM-LONGTEXT'
OR ls_fields-fieldname EQ 'NEW_ITEM-DESCRIPTION'
OR ls_fields-fieldname EQ 'NEW_ITEM-VENDORMAT'
OR ls_fields-fieldname EQ 'NEW_ITEM-MANUFACTMAT'.
REPLACE ALL OCCURRENCES OF:
lc_html_amp IN ls_fields-fieldcont WITH lc_amper IN CHARACTER MODE,
lc_html_equ IN ls_fields-fieldcont WITH lc_equal IN CHARACTER MODE.
ENDLOOP.
* This FM maps the data as per the DDIC structure
CALL FUNCTION 'WSI_IMPORT_DATA'
EXPORTING
iv_structure_name = 'MMPUR_OCI_CAT_RETURN_TYPE'
TABLES
it_form_fields = ltr_fields
et_ws_item_data = lt_items
et_longtext = lt_text
EXCEPTIONS
no_webservice_active = 0
no_ddic_info = 0
import_error = 0
OTHERS = 0.
Map these lt_items & lt_text to your required output table structure that needs to be sent to UI for display. For ex :
LOOP AT lt_items INTO DATA(lwa_items).
CLEAR : lwa_pritems.
lwa_pritems-preq_item = lwa_items-line.
lwa_pritems-currency = lwa_items-currency.
lwa_pritems-quantity = lwa_items-quantity.
lwa_pritems-unit = lwa_items-unit.
lwa_pritems-preq_price = lwa_items-price.
lwa_pritems-short_text = lwa_items-description.
LOOP AT lt_text INTO DATA(lwa_text) WHERE line = lwa_items-line.
CONCATENATE lwa_pritems-itemtext lwa_text-text_line INTO lwa_pritems- itemtext SEPARATED BY space.
ENDLOOP.
APPEND lwa_pritems TO lt_pritems.
CLEAR lwa_items.
ENDLOOP.
*Convert the internal table to JSON Object
DATA(lo_json_writer) = cl_sxml_string_writer=>create(
type = if_sxml=>co_xt_json ).
CALL TRANSFORMATION id SOURCE = lt_pritems RESULT XML lo_json_writer.
ex_json = cl_abap_codepage=>convert_from( lo_json_writer->get_output( ) ).
BSP Layout:
<%@page language="abap" %>
<%@extension name="htmlb" prefix="htmlb" %>
<SCRIPT language="JavaScript">
function displayPopup()
{
var id = document.getElementById('tv2');
var value = id.value;
window.opener.CallParent(value);
}
</SCRIPT>
<htmlb:content design="design2003" >
<htmlb:page title = "Welcome"
onLoad = "displayPopup()" >
<htmlb:form>
<htmlb:gridLayout columnSize = "1"
rowSize = "2" >
<htmlb:gridLayoutCell columnIndex = "1"
rowIndex = "1" >
<htmlb:textView id = "tv1"
design = "HEADER1"
text = "Do not close this window. Your shopping cart is being transferred to your procurement application..." />
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCell columnIndex = "1"
rowIndex = "2" >
<htmlb:textEdit id = "tv2"
text = "<%= gv_json_c %>"
disabled = "FALSE" />
</htmlb:gridLayoutCell>
</htmlb:gridLayout>
</htmlb:form>
</htmlb:page>
</htmlb:content>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
10 | |
9 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 |