cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Addition data send in XML po to external system In SRM 7

Former Member
0 Likes
217

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

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Likes

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

pedro_santos6
Contributor
0 Likes

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