on ‎2011 Apr 12 8:04 PM
Hi Expert
How we can add/ Modify data for XML PO Which sending for external system Via PI .
we need to add additional data to the XI system in XML format in PO . How we can add the code to this.
One more issue is like we are not able to debug the BADI BBP_SAPXML1_OUT_BADI.
Request to reply for this
Request clarification before answering.
Hello sharad,
Please find the sample coding.
METHOD if_ex_bbp_sapxml1_out_badi~purchaseorder.
DATA: l_str(40) TYPE c,
ls_partner TYPE bbps_pdext_partner,
ls_item TYPE bbps_pdext_po_item_d,
ls_proxyitem TYPE bbpx1_purchase_order_item,
ls_partner_item TYPE bbpx1_po_ship_to_location,
ls_fdspartner TYPE bbpx1_po_ship_to_location,
ls_telephone TYPE bbpx1_address_telephone,
ls_check TYPE BBPX1_ADDRESS,
ls_fax TYPE bbpx1_address_facsimile,
ls_email TYPE bbpx1_address_email,
l_index TYPE i,
lt_table TYPE TABLE OF ztest_db,
ls_table TYPE ztest_db,
l_flag TYPE c,
ls_dfkkbptaxnum TYPE dfkkbptaxnum,
lt_telephone TYPE bbpx1_address_telephone_tab,
lt_check TYPE BBPX1_ADDRESS,
lt_email TYPE bbpx1_address_email_tab,
lt_name TYPE bbpx1_person_name,
ls_name TYPE bbpx1_person_name,
lt_street TYPE bbpx1_address_physical_address,
ls_street TYPE bbpx1_purchase_order_party,
ls_details TYPE bbpx1_purchase_order_item,
lt_ship TYPE BBPX1_PO_SHIP_TO_LOCATION,
ls_ship TYPE bbpx1_po_ship_to_location.
LOOP AT cs_purchase_order_message-purchase_order-item INTO ls_proxyitem.
l_index = l_index + 1.
LOOP AT it_item INTO ls_item WHERE number_int = ls_proxyitem-id-value.
LOOP AT it_partner INTO ls_partner WHERE p_guid = ls_item-guid.
IF ls_partner-partner_fct = '00000712'.
ls_proxyitem-zzxyz = ls_partner-zzxyz.
ls_proxyitem-zzxyz = 'Test'.
ls_fdspartner-buyer_id = ls_partner-partner_id.
concatenate ls_partner-NAME ls_partner-NAME_2 into l_str separated by space.
APPEND ls_partner-name TO ls_fdspartner-address-organisation_formatted_name.
APPEND ls_partner-name_2 TO ls_fdspartner-address-organisation_formatted_name.
ls_fdspartner-ADDRESS-ORGANISATION_FORMATTED_NAME = l_str.
ls_fdspartner-address-physical_address-country_code = ls_partner-country.
ls_fdspartner-address-physical_address-region_code-list_id = ls_partner-region.
ls_fdspartner-address-physical_address-street_postal_code = ls_partner-postl_cod1.
ls_fdspartner-address-physical_address-city_name = ls_partner-city.
ls_fdspartner-address-physical_address-street_name = ls_partner-street.
ls_fdspartner-address-physical_address-care_of_name = ls_partner-c_o_name.
ls_fdspartner-address-physical_address-district_name = ls_partner-district.
*-- Populate telephone number
ls_telephone-number-subscriber_id = ls_partner-tel1_numbr.
ls_telephone-number_default_indicator = 'true'.
ls_telephone-number_usage_denial_indicator = 'false'.
APPEND ls_telephone TO ls_fdspartner-address-communication-telephone.
*-- Get Fax details
ls_fax-number-subscriber_id = ls_partner-fax_number.
ls_fax-number_default_indicator = 'true'.
ls_fax-number_usage_denial_indicator = 'false'.
APPEND ls_fax TO ls_fdspartner-address-communication-facsimile.
*-- Get Email details
ls_email-address-value = ls_partner-e_mail.
ls_email-address_default_indicator = 'true'.
ls_email-address_usage_denial_indicator = 'false'.
APPEND ls_email TO ls_fdspartner-address-communication-email.
ls_proxyitem-zfinal_destination = ls_fdspartner.
MODIFY cs_purchase_order_message-purchase_order-item INDEX l_index FROM ls_proxyitem.
CLEAR ls_fdspartner.
ENDIF.
IF ls_partner-partner_fct = '00000027'.
ls_proxyitem-zzcxyz = ls_partner-zzcxyz.
MODIFY cs_purchase_order_message-purchase_order-item INDEX l_index FROM ls_proxyitem.
l_flag = 'X'.
ENDIF.
ENDLOOP.
IF l_flag IS INITIAL.
READ TABLE it_partner INTO ls_partner WITH KEY partner_fct = '00000027'.
IF sy-subrc = 0.
ls_proxyitem-zzclxyz = ls_partner-zzclxyz. " custom field
MODIFY cs_purchase_order_message-purchase_order-item INDEX l_index FROM ls_proxyitem.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
Edited by: S Neelima on Apr 14, 2011 11:17 AM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Which message are you using in the BADI BBP_SAPXML1_OUT_BADI?
S_PO - Message Type for SUS Purchase Order Messages??
Try to use the method PURCHASEORDER_SUS
Rgs,
Pedro Marques - SRM Solution
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.