on 09-14-2007 9:11 AM
Hi,
I'm trying to convert a preferred vendor to fixed vender using BAdI BBP_DOC_CHANGE_BADI.
I use the following coding:
LS_HEADER = ES_HEADER.
LT_ITEM[] = ET_ITEM[].
LT_ACCOUNT[] = ET_ACCOUNT[].
LT_PARTNER[] = ET_PARTNER[].
LT_ORGDATA[] = ET_ORGDATA[].
LT_HCF[] = ET_HCF[].
LT_ICF[] = ET_ICF[].
if sy-tcode = 'BBPSC08'. "Completion Workflow
item data
loop at et_item into ls_item.
Jörg Sina, IP#DDDDDDDD, TA:
Section: Put your BBP_SC_CHANGE logic here
READ TABLE lt_partner INTO ls_partner
WITH KEY partner_fct = '00000039' "Partnerfkt. '39' = wunschlieferant
p_guid = ls_item-guid.
lv_idx = sy-tabix.
if sy-subrc = 0.
ls_partner-partner_fct = '00000019'. "Partnerfkt. '19' = fester lieferant
append ls_partner to lt_partner.
modify lt_partner index lv_idx from ls_partner.
ls_msg-p_guid = ls_item-guid.
ls_msg-msgty = 'I'.
ls_msg-arbgb = 'ZEBP'.
ls_msg-msgnr = '011'.
append ls_msg to et_msg.
endif.
endloop.
endif.
*Interface: Move Local Data to Export/Changing Interface
ES_HEADER = LS_HEADER.
ET_ITEM[] = LT_ITEM[].
ET_ACCOUNT[] = LT_ACCOUNT[].
ET_PARTNER[] = LT_PARTNER[].
ET_ORGDATA[] = LT_ORGDATA[].
ET_HCF[] = LT_HCF[].
ET_ICF[] = LT_ICF[].
When the partner is changed from 39 to 19 the following message appears:
BBP:PD(144): Partner function may not be changed
I've tried out the coding given as example in several postings in this forum..
Maybe anybody can help.
Regards
Joerg
Hi,
Here is a sample code i used and it works.
method IF_EX_BBP_DOC_CHANGE_BADI~BBP_SC_CHANGE .
Constants : c_vendor type BBP_PDS_PARTNER-PARTNER_FCT
value '00000019',
c_preferred_vend type BBP_PDS_PARTNER-PARTNER_FCT
value '00000039'.
Data : ls_partner type BBP_PDS_PARTNER.
*Read Table it_partner into ls_partner With key PARTNER_FCT = c_vendor.
*
*If sy-subrc NE 0.
Loop at it_partner into ls_partner
where PARTNER_FCT Eq c_preferred_vend.
Move c_vendor To Ls_partner-PARTNER_FCT.
Modify it_partner from ls_partner index sy-tabix.
Endloop.
*Endif.
et_partner[] = it_partner[].
ET_ORGDATA[] = IT_ORGDATA[].
ET_ITEM[] = IT_ITEM[].
ES_HEADER = IS_HEADER.
ET_ACCOUNT[] = IT_ACCOUNT[].
*break ybo
*IT_PARTNER
*ET_PARTNER[]
endmethod.
Kind regards,
Yann
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I've found a solution that works.
Instead of converting the BUP Item I create a new one.
loop at et_item into ls_item.
Section: Put your BBP_SC_CHANGE logic here
READ TABLE lt_partner INTO ls_partner
WITH KEY partner_fct = '00000039' "Partnerfkt. '39' = wunschlieferant
p_guid = ls_item-guid.
lv_idx = sy-tabix.
if sy-subrc = 0.
READ TABLE lt_partner INTO ls_partner
WITH KEY partner_fct = '00000019' "Partnerfkt. '39' = wunschlieferant
p_guid = ls_item-guid.
if sy-subrc <> 0.
ls_partner-partner_fct = '00000019'. "Partnerfkt. '19' = fester lieferant
append ls_partner to lt_partner.
endif.
endif.
endloop.
endif.
thx
Joerg
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.