BADI/enhancement for CRMD_ORDER
HI,
In CRMD_ORDER transaction i want a BADI/enhancement in which i get both pricing structure and crmd_orderadm_h table .
Actuallu my requirement is that i want to update the total pricing tax data calulated at each item level in the custom field of orderadm_h table.
Iam calculating pricing tax data in PRC_DATA_SOURCE BADI.
Thanking you.
Thread closed
Similar Messages
-
Exit/BADI/Enhancement for Payroll driver
Dear Friends,
When we run transaction pc00_m10_calc for US payroll driver for an employee for a period,we can see the renumeration statement in the output screen.
I need to modify the internal table xrt to add the similar wage types in one period before it passes to form , which exit / BADI enhancement should for this purpose.
Pls. advice.
Thanks..
Regards,PrashantHi,
Please check the below.
Enhancement
HRUSRCU0 Enhancement for Customer Exit for RPCTRCU0.
Business Add-in
PC10_PAY0001 User exit for base_wages in a gross up calculation
PC10_PAY0002 Exit to determine if negative taxables should be allowed
PC10_PAY0003 Exit to determine if distribution calc should be allowed
PC10_PAY0004 Work Tax Area Override Add-In: Activation
PC10_PAY0005 Work Tax Area Override Add-In: Default proration of wages
PC10_PAY0006 User exit for additional ESS W4 (PZ10) fields; before output
PC10_PAY0007 User exit for PZ10 and IT0210 fields; after input
PC10_PAY0008 More than 99 exemptions for US payroll withholding tax calc
Regards,
Srini. -
BADI / Enhancement for WBS filtering
Hi,
I want to add my code to filter the IDOC PROJECT01 on 'Company code' via BAPI, BAPI_PROJECT_SAVEREPLICA. There are two BADIs but they are called before the standard code for filter objects.
Kindly suggest a BADi / Enhancement to satisfy the above mentioned requirement.
ThanksThere is one Enhacement Spot (ES) that can solve ur purpose : ES_SAPL2002
Hope That Helps
Anirban M. -
BADI enhancement for Enjoy PO Tcodes at "header level".
I could successfully add an item level tab to MEXXN PO tcodes. Somebody help me with the ME_GUI_PO_CUST and ME_PROCESS_PO implementations to add a customer field , say ZZ_ETYP in a separate header level tab "Expense type".
Do I need to add subscreen2 attribute to the implementing class ?
Will one structure do for both header and item level data ?
Do I need to create a separate table ( like ZMEPO_BADI_EXAMPL for items ) for the header also ?
It would be gr8 if i could get the code for the above BADIs and MEPOBADIEX's function modules.Dear Iyer,
Kindly go through the code.. hope this will help you...
<b>DETAILED DATABASE DESIGN SPECIFICATIONS</b>
<b>1. ZTPTP_HEADER</b>
Header: Expense Type
Field Name Field Type Key Information Field Description
MANDT MANDT X Client
EBELN EBELN X Purchasing Document Number
ZZ_EXPTYPE ZZEXPTYPE Expense Type
<b>2. ZTPTP_ITEM</b>
Item: Retainage
Field Name Field Type Key Information Field Description
MANDT MANDT X Client
EBELN EBELN X Purchasing Document Number
EBELP EBELP X Item Number of Purchasing Document
ZZ_RETAINAGE ZZRETAINAGE Retainage
<b>3. ZSPTP_HEADER</b>
PO Enhancement structure: Header
Field Name Field Type Key Information Field Description
EBELN EBELN Purchasing Document Number
ZZ_EXPTYPE ZZEXPTYPE Expense Type
<b>4. ZSPTP_ITEM</b>
PO Enhancement structure: Item
Field Name Field Type Key Information Field Description
EBELN EBELN Purchasing Document Number
EBELP EBELP Item Number of Purchasing Document
ZZ_RETAINAGE ZZRETAINAGE Retainage
Detailed logic
<b>LZPTP_PORETAINAGETOP (TOP INCLUDE) FG: ZPTP_PORETAINAGE</b>
persistent item data
data: git_persistent_data type sorted table of ztptp_item
with unique key mandt ebeln ebelp,
actual item data
git_data type sorted table of ztptp_item
with unique key mandt ebeln ebelp.
persistent header data
data: git_persistent_head type sorted table of ztptp_header
with unique key mandt ebeln ,
actual header data
git_head type sorted table of ztptp_header
with unique key mandt ebeln .
dynpro output structure
tables: zsptp_item,
zsptp_header.
definitions required for dynpro/framework integration
data: ok-code type sy-ucomm.
Following is a SAP include.
include lmeviewsf01.
<b>1. ZPTP_COMMIT_HEADER FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_COMMIT. In this Function module we update the database table ZTPTP_HEADER i.e. as per a change / insert or delete command at the header level. This database tables size will always be low. It just contains the PO s data just being edited or created.
The interface would look like:
TABLES
IMT_DATA_NEWHD STRUCTURE ZTPTP_HEADER
IMT_DATA_OLDHD STRUCTURE ZTPTP_HEADER
Comparing the old and new data we update 3 different internal tables and using these we can update the internal tables ZTPTP_HEADER before actually updating the database table EKKO.A similar logic is coded in the sample FM : MEPOBADIEX_COMMIT
<b>
2. ZPTP_COMMIT_ITEM FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_COMMIT. In this Function module we update the database table ZTPTP_HEADER i.e. as per a change / insert or delete command at the item level. This database tables size will always be low. It just contains the PO s latest data just being edited or created.
The interface would look like :
TABLES
IMT_DATA_NEW STRUCTURE ZTPTP_ITEM
IMT_DATA_OLD STRUCTURE ZTPTP_ITEM
Comparing the old and new data we update 3 different internal tables and using these we can update the internal tables ZTPTP_HEADER before actually updating the database table EKPO. A similar logic is coded in the sample FM : MEPOBADIEX_COMMIT
<b>3. ZPTP_GET_DATA_HEADER FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_GET_DATA. This FM is responsible for updating an internal table (git_head) which would hold the data the user has changed or created or displayed till the current point of time. It would also hold the latest customer header data that is to be displayed in case of a change transaction.
The interface would be as follows:
Local Interface:
IMPORTING
REFERENCE(IM_EBELN) TYPE EBELN
REFERENCE(IM_EBELP) TYPE EBELP OPTIONAL
EXPORTING
REFERENCE(EX_HEAD) TYPE ZTPTP_HEADER
Read expense type from git_header. If not found, get expense value from EKKO.
<b>4. ZPTP_GET_DATA_ITEM FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_GET_DATA. This FM is responsible for updating an internal table (git_data) which would hold the data the user has changed or created or displayed till the current point of time. It would also hold the latest customer item data that is to be displayed in case of a change transaction.
The interface would be as follows:
Local Interface:
IMPORTING
REFERENCE(IM_EBELN) TYPE EBELN
REFERENCE(IM_EBELP) TYPE EBELP
EXPORTING
VALUE(EX_DATA) TYPE ZTPTP_ITEM
Read Retainage from git_data. If not found, get Retainage value from EKPO.
<b>5. ZPTP_INIT FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_INIT. This FM is responsible for clearing the header and item internal tables.
clear: git_persistent_data[], git_data[],git_persistent_head[],git_head[].
<b>6. ZPTP_OPEN FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_OPEN. This FM is responsible for existing information from respective database tables.
The interface would be as follows:
Local Interface:
IMPORTING
REFERENCE(IM_EBELN) TYPE EBELN
Get Expense type and Retainage from customer created Tables and assign it to respective global internal tables.
<b>7. ZPTP_POP_HEADER FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_POP. This FM is responsible for getting header values from screen fields.
The interface would be as follows:
Local Interface:
EXPORTING
REFERENCE(EX_DYNP_DATAHD) TYPE ZSPTP_HEADER
get dynpro data
ex_dynp_datahd = zsptp_header.
<b>8. ZPTP_POP_ITEM FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_POP. This FM is responsible for getting item values from screen fields.
The interface would be as follows:
Local Interface:
EXPORTING
REFERENCE(EX_DYNP_DATA) TYPE ZSPTP_ITEM
get dynpro data
ex_dynp_data = zsptp_item.
<b>9. ZPTP_POST_HEADER FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_POST. This FM is responsible for preparing header data for posting.
Local Interface:
IMPORTING
VALUE(IM_EBELN) TYPE EBELN
prepare customers data for posting
check not im_ebeln is initial.
lit_data_newhd[] = git_head.
lit_data_oldhd[] = git_persistent_head.
lwa_head-mandt = sy-mandt.
lwa_head-ebeln = im_ebeln.
modify lit_data_newhd from lwa_head transporting mandt ebeln where ebeln is initial.
Commit data in Database ztptp_header.
call function 'ZPTP_COMMIT_HEADER'
tables
imt_data_newhd = lit_data_newhd
imt_data_oldhd = lit_data_oldhd.
<b>10. ZPTP_POST_ITEM FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_POST. This FM is responsible for preparing item data for posting.
"Local Interface:
IMPORTING
VALUE(IM_EBELN) TYPE EBELN
data: lwa_data like line of git_data,
lit_data_new type standard table of ztptp_item,
lit_data_old type standard table of ztptp_item.
prepare customers data for posting
check not im_ebeln is initial.
lit_data_new[] = git_data.
lit_data_old[] = git_persistent_data.
lwa_data-mandt = sy-mandt.
lwa_data-ebeln = im_ebeln.
modify lit_data_new from lwa_data transporting mandt ebeln where ebeln is initial.
Commit data in Database ztptp_item.
call function 'ZPTP_COMMIT_ITEM' in update task
tables
imt_data_new = lit_data_new
imt_data_old = lit_data_old.
<b>11. ZPTP_PUSH_HEADER FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_PUSH. This FM is responsible for populating header values to screen fields.
Local Interface:
IMPORTING
REFERENCE(IM_DYNP_DATAHD) TYPE ZSPTP_HEADER
set dynpro data
zsptp_header = im_dynp_datahd .
<b>12. ZPTP_PUSH_ITEM FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_PUSH. This FM is responsible for populating item values to screen fields.
Local Interface:
IMPORTING
REFERENCE(IM_DYNP_DATA) TYPE ZSPTP_ITEM
set dynpro data
zsptp_item = im_dynp_data .
<b>13. ZPTP_SET_DATA_HEADER FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_SET_DATA. This FM is responsible for keep update header information in git_header.
delete a line from git_data
delete table git_head with table key mandt = sy-mandt
ebeln = im_datahd-ebeln.
update customer data
read table git_head assigning <lf_datahd> with table key
mandt = sy-mandt
ebeln = im_datahd-ebeln.
if sy-subrc is initial.
update existing data
<lf_datahd>-zz_exptype = im_datahd-zz_exptype.
else.
make a new entry into the data table
lwa_head = im_datahd.
lwa_head-mandt = sy-mandt.
insert lwa_head into table git_head.
endif.
<b>14. ZPTP_SET_DATA_ITEM FG: ZPTP_PORETAINAGE</b>
Get the sample function module code from the standard FM: MEPOBADIEX_SET_DATA. This FM is responsible for keep update item information in git_data.
delete a line from git_data
delete table git_data with table key mandt = sy-mandt
ebeln = im_data-ebeln
ebelp = im_data-ebelp.
update customer data
read table git_data assigning <lf_data> with table key
mandt = sy-mandt
ebeln = im_data-ebeln
ebelp = im_data-ebelp.
if sy-subrc is initial.
update existing data
<lf_data>-zz_retainage = im_data-zz_retainage.
else.
make a new entry into the data table
lwa_data = im_data.
lwa_data-mandt = sy-mandt.
insert lwa_data into table git_data.
endif.
<b>DETAILED SCREEN DESIGN SPECIFICATIONS</b>
<b>screen 0002</b>
Item Retainage
ZSPTP_ITEM-ZZ_RETAINAGE DEC 5 Retainage
Screen Logic / Process before Output
call method call_view->handle_event( 'PBO' ).
Screen Logic / Process after Input
call method call_view->handle_event( 'PAI' )
<b>Screen 0003</b>
Header: Expense type
ZSPTP_HEADER-ZZ_EXPTYPE NUMC 4 Expense Type
Screen Logic / Process before Output
call method call_view->handle_event( 'PBO' ).
Screen Logic / Process after Input
call method call_view->handle_event( 'PAI' )
<b>DETAILED CLASS DESIGN SPECIFICATIONS</b>
<b>A. ZCL_IM_ME_GUI_PO_CUST</b>
Description
Imp. Class ZME_GUI_PO_CUST
Attributes
Name Level Visibility Type
SUBSCREEN1 Constant Public MEPO_NAME
SUBSCREEN2 Constant Public MEPO_NAME
DYNP_DATA_PBO Instance Attribute Private ZSPTP_ITEM
DYNP_DATA_PAI Instance Attribute Private ZSPTP_ITEM
DYNP_DATA_PBOHD Instance Attribute Private ZSPTP_HEADER
DYNP_DATA_PAIHD Instance Attribute Private ZSPTP_HEADER
Methods
Name Level Visibility
IF_EX_ME_GUI_PO_CUST~SUBSCRIBE Instance Attribute Public
IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS Instance Attribute Public
IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_MODEL Instance Attribute Public
IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_DYNP Instance Attribute Public
IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_DYNP Instance Attribute Public
IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_MODEL Instance Attribute Public
<b>1. SUBSCRIBE</b>
Description
Publisch Customer's Own Screens
Detailed logic
when lc_item.
the name is a unique identifier for the subscreen and defined in this class definition
lwa_subscriber-name = subscreen1.
the dynpro number to use
lwa_subscriber-dynpro = '0002'.
the program where the dynpro can be found
lwa_subscriber-program = 'SAPLZPTP_PORETAINAGE'.
each subscreen needs his own DDIC-Structure
lwa_subscriber-struct_name = 'ZSPTP_ITEM'.
a label can be defined
lwa_subscriber-label = text-001.
the position within the tabstrib can be defined
lwa_subscriber-position = 1.
lwa_subscriber-height = 7.
append lwa_subscriber to re_subscribers.
Header subscreen
when lc_header.
the name is a unique identifier for the subscreen and defined in this class definition
lwa_subscriber-name = subscreen2.
the dynpro number to use
lwa_subscriber-dynpro = '0003'.
the program where the dynpro can be found
lwa_subscriber-program = 'SAPLZPTP_PORETAINAGE'.
each subscreen needs his own DDIC-Structure
lwa_subscriber-struct_name = 'ZSPTP_HEADER'.
a label can be defined
lwa_subscriber-label = text-002.
the position within the tabstrib can be defined
lwa_subscriber-position = 1.
lwa_subscriber-height = 7.
append lwa_subscriber to re_subscribers.
endcase.
<b>2. MAP_DYNPRO_FIELDS</b>
Description
Build Up Field Catalog
Detailed logic
loop at ch_mapping assigning <lf_mapping>.
*Assignment of metafields to the customer fields.
case <lf_mapping>-fieldname.
when 'EBELN'. <lf_mapping>-metafield = mmmfd_preq_no_po.
when 'EBELP'. <lf_mapping>-metafield = mmmfd_preq_item_po.
when 'ZZ_RETAINAGE'. <lf_mapping>-metafield = mmmfd_cust_01.
when 'ZZ_EXPTYPE'. <lf_mapping>-metafield = mmmfd_cust_02.
endcase.
endloop.
<b>
3. TRANSPORT_FROM_MODEL</b>
Description
Data Transport from Business Object
Detailed logic
when subscreen1.
Get the item object
mmpur_dynamic_cast lif_item im_model.
check not lif_item is initial.
lwa_mepoitem = lif_item->get_data( ).
transport customer fields
call function 'ZPTP_GET_DATA_ITEM'
exporting
im_ebeln = lwa_mepoitem-ebeln
im_ebelp = lwa_mepoitem-ebelp
importing
ex_data = lwa_customer.
store info for later use
move-corresponding lwa_mepoitem to dynp_data_pbo.
move lwa_customer-zz_retainage to dynp_data_pbo-zz_retainage.
when subscreen2.
Get the header object
mmpur_dynamic_cast lif_header im_model.
check not lif_header is initial.
transport standard fields
lwa_mepohead = lif_header->get_data( ).
transport customer fields
call function 'ZPTP_GET_DATA_HEADER'
exporting
im_ebeln = lwa_mepohead-ebeln
importing
ex_head = lwa_customerhd.
store info for later use
move-corresponding lwa_mepohead to dynp_data_pbohd.
if not lwa_customerhd-zz_exptype is initial.
move lwa_customerhd-zz_exptype to dynp_data_pbohd-zz_exptype.
else.
move dynp_data_paihd-zz_exptype to dynp_data_pbohd-zz_exptype.
endif.
when others.
endcase.
<b>4. TRANSPORT_TO_DYNP</b>
Description
Data Transport to Screen
Detailed logic
case im_name.
when subscreen1 .
Pushing item data to screen fields
call function 'ZPTP_PUSH_ITEM'
exporting
im_dynp_data = dynp_data_pbo.
when subscreen2 .
Pushing header data to screen fields
call function 'ZPTP_PUSH_HEADER'
exporting
im_dynp_datahd = dynp_data_pbohd.
when others.
endcase.
<b>5. TRANSPORT_FROM_DYNP</b>
Description
Data Transport from Screen
Detailed logic
case im_name.
when subscreen1.
Getting item data from screen fields
call function 'ZPTP_POP_ITEM'
importing
ex_dynp_data = dynp_data_pai.
if dynp_data_pai ne dynp_data_pbo
or dynp_data_paihd ne dynp_data_pbohd.
If data changed we have to notify the framework
to transport data to the model
re_changed = mmpur_yes.
endif.
when subscreen2.
Getting header data from screen fields
call function 'ZPTP_POP_HEADER'
importing
ex_dynp_datahd = dynp_data_paihd.
if dynp_data_paihd ne dynp_data_pbohd
or dynp_data_pai ne dynp_data_pbo.
If data changed we have to notify the framework
to transport data to the model
re_changed = mmpur_yes.
endif.
when others.
endcase.
<b>6. TRANSPORT_TO_MODEL</b>
Description
Treatment of Function Codes
Detailed logic
case im_name.
when subscreen1.
is it an item? im_model can be header or item.
mmpur_dynamic_cast lif_item im_model.
check not lif_item is initial.
lwa_mepoitem = lif_item->get_data( ).
standard fields changed?
if dynp_data_pbo-ebeln ne dynp_data_pai-ebeln or
dynp_data_pbo-ebelp ne dynp_data_pai-ebelp or
dynp_data_pbo-zz_retainage ne dynp_data_pai-zz_retainage.
update standard fields
lwa_mepoitem-ebeln = dynp_data_pai-ebeln.
lwa_mepoitem-ebelp = dynp_data_pai-ebelp.
lwa_mepoitem-zzretainage = dynp_data_pai-zz_retainage.
call method lif_item->set_data( lwa_mepoitem ).
endif.
customer fields changed?
if dynp_data_pbo-zz_retainage ne dynp_data_pai-zz_retainage.
call function 'ZPTP_GET_DATA_ITEM'
exporting
im_ebeln = lwa_mepoitem-ebeln
im_ebelp = lwa_mepoitem-ebelp
importing
ex_data = lwa_customer.
lwa_customer-zz_retainage = dynp_data_pai-zz_retainage.
Commit changes to database.
call function 'ZPTP_SET_DATA_ITEM'
exporting
im_data = lwa_customer.
endif.
when subscreen2.
is it an header? im_model can be header or item.
mmpur_dynamic_cast lif_header im_model.
check not lif_header is initial.
lwa_mepohead = lif_header->get_data( ).
standard fields changed?
if dynp_data_pbohd-ebeln ne dynp_data_paihd-ebeln or
dynp_data_pbohd-zz_exptype ne dynp_data_paihd-zz_exptype.
update standard fields
lwa_mepohead-ebeln = dynp_data_paihd-ebeln.
lwa_mepohead-zzexptype = dynp_data_paihd-zz_exptype.
call method lif_header->set_data( lwa_mepohead ).
endif.
customer fields changed?
if dynp_data_pbohd-zz_exptype ne dynp_data_paihd-zz_exptype.
call function 'ZPTP_GET_DATA_HEADER'
exporting
im_ebeln = lwa_mepohead-ebeln
importing
ex_head = lwa_customerhd.
lwa_customerhd-zz_exptype = dynp_data_paihd-zz_exptype.
Commit changes to database.
call function 'ZPTP_SET_DATA_HEADER'
exporting
im_datahd = lwa_customerhd.
endif.
when others.
endcase.
<b>
B. ZCL_IM_ME_PROCESS_PO_CUST</b>
Description
Imp. Class for BAdI imp. ZME_PROCESS_PO_CUST
Methods
Name Level Visibility
IF_EX_ME_PROCESS_PO_CUST~INITIALIZE Instance Attribute Public
IF_EX_ME_PROCESS_PO_CUST~OPEN Instance Attribute Public
IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER Instance Attribute Public
IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM Instance Attribute Public
IF_EX_ME_PROCESS_PO_CUST~POST Instance Attribute Public
IF_EX_ME_PROCESS_PO_CUST~CLOSE Instance Attribute Public
<b>
1. INITIALIZE</b>
Description
Initializations (Invoked Once Only)
Detailed logic
initializations
call function 'ZPTP_INIT'.
<b>2. OPEN</b>
Description
Open a Purchase Order
Detailed logic
data: lwa_mepoheader type mepoheader.
read customer data
this has to be done when we open a persistent object
check im_trtyp eq 'V' or im_trtyp eq 'A'.
lwa_mepoheader = im_header->get_data( ).
read customer data from database
call function 'ZPTP_OPEN'
exporting
im_ebeln = lwa_mepoheader-ebeln.
<b>3. PROCESS_HEADER</b>
Description
Processing of Header Data
Detailed logic
data: lwa_mepohead type mepoheader,
lwa_customerhd type ztptp_header.
include mm_messages_mac. "useful macros for message handling
here we check customers data
lwa_mepohead = im_header->get_data( ).
if lwa_mepohead-loekz eq 'D'.
a physical deletion of the header was carried out.
lwa_customerhd-ebeln = lwa_mepohead-ebeln.
call function 'ZPTP_SET_DATA_HEADER'
exporting
im_datahd = lwa_customerhd
im_physical_delete_request = 'X'.
endif.
<b>4. PROCESS_ITEM</b>
Description
Processing of Item Data
Detailed logic
data: lwa_mepoitem type mepoitem,
lwa_customer type ztptp_item.
include mm_messages_mac. "useful macros for message handling
here we check customers data
lwa_mepoitem = im_item->get_data( ).
if lwa_mepoitem-loekz eq 'D'.
a physical deletion of the item was carried out. therrefor we have to
delete customer data on the level of the item
lwa_customer-ebeln = lwa_mepoitem-ebeln.
lwa_customer-ebelp = lwa_mepoitem-ebelp.
call function 'ZPTP_SET_DATA_ITEM'
exporting
im_data = lwa_customer
im_physical_delete_request = 'X'.
endif.
<b>5. POST</b>
Description
Post
Detailed logic
*Posting header data
call function 'ZPTP_POST_HEADER'
exporting
im_ebeln = im_ebeln.
*Posting item data
call function 'ZPTP_POST_ITEM'
exporting
im_ebeln = im_ebeln.
<b>
6. CLOSE</b>
Description
Closing Processing
Detailed logic
close customer data
call function 'ZPTP_INIT'. -
Hello experts,
I have a couple of queries regarding the BADI implementations ME_GUI_PO_CUST/ME_PROCESS_PO_CUST .
1. I want to add a new tab under the PO item <b>based on the PO item type</b>. E.g., If the PO item type is 'D' (service) then the new tab should be displayed otherwise not.
2. How can I disable the editing of a PO item field (say PO item number) or a PO header field (say Company code) in edit mode? I know its through fieldselection but a detailed example would be of great help.
Thanks for your help in advance.
Best regards,
YuvarajHi,
FIrst you need to implement the 2 BADIs in SE19.
The BADI ME_GUI_PO_CUST is responsible for Screen display and data exchange b/n db and the screen.
The second BADI ME_PROCESS_PO_CUST is responsible for PO upadate.
To get the screen in the Transaction you need to code in the method SUBSCRIBE of the first BADI.
Example:
ls_subscriber-name = subscreen4.
ls_subscriber-dynpro = 0700.
ls_subscriber-program = prog_name.
ls_subscriber-struct_name = structure.
ls_subscriber-label = TEST.
ls_subscriber-position = 4.
ls_subscriber-height = 6.
ls_subscriber-height = 8.
append ls_subscriber to re_subscribers.
clear ls_subscriber.
Plz go through the sample code provided by SAP for the BADIs in SE18.
Hope this will help.. -
Valuation price with user exit/BADI/Enhancement Spot (In valuation variant)
Hi all,
i am facing problem finding enhancement when creation of sales order of Valuation price with user exit/BADI/Enhancement Spot (In valuation variant)
For refferenece:
When going to t.code VA03, select one item and go to extras in the menu bar and select costing then you find some amounts calculation i.e valuation price automatically.
So when creation of sales order i am giving material and that material price automatically takes from material master and creating sales order.
My customer requirement is to get the valuation price of the input material from Z-table during the sales order cost estimate.
This Z-table contains the material code, plant , grade of the material.
Ex:
Material Plant Grade Price
A 1000 XYZ 25000
A 1000 PQR 35000
A 1000 BCD 45000
Suppose it depends on sales document type and which grade price i have to take.
So first of all i am unable to find enhancement where to change this code to get change the valuation price.
Does anybody have any idea , is there any user exit/BADI/enhancement for this.
So please help me in this issue.
Thanks & Regards,
lokeshgoudpls allow me to post the questions
-
BADI Enhancement VENDOR_ADD_DATA_CS
Hi,
I am working on a BADI Enhancement for adding Customer Sub Screen in Vendor master Data. I used standard BADI enhancements VENDOR_ADD_DATA and VENDOR_ADD_DATA_CS. Using this I am able to call the Z program and it's screens via these BADI's. Can any one help me how to pass the values from the main program ( Ex. Vendor No.(Screen field RFO02K-LIFNR)) into the called Z Program ?
Thanks in Advance,
Bala SDear Bala,
Instead of helping you i'm asking info from you. i need to implement the screen exit for the same bapi, upto now i never implement the screen exit in badi's. could you please help the how i need proceed for this.
please provide the sample code how u add screen exit and fields into screen and passing values to it.
Please provide you code or documentation for this.
you can mail me at [email protected]
Regards,
Vijaya M -
Badi / Exit / Enhancement for replacing INSMK during PO creation
Hi Gurus,
we want to default the INSMK field (stock type) during Purchase Order creation..
Can someone help me findind the right BAdI / exit / enhancement for it?
Thanks in advance,
Regards,
AlessioHi Alessio,
You may check these first:
Re: Negative postings to MVER table
Re: select stock type
Thanks,
Gordon -
BADI/Enhancement spot for VL01N (Outbound Delivery)
Hi guys,
while creating outbound deliver it needs to be change the contents of XMKPF (BKTXT), is there any BADI/Enhancement spot for the VL01n.
Kinldy provide some inputs for this one...which is very helpful to me.
Regards,
VijayHi guys,
Thanks for your valuable replies.
special thanks to Kiran Sure because my requirement is full filled by given enhancement spot/badi is LE_SHP_GOODSMOVEMENT
regards,
Vijay -
Enhancement for me53n through BADI
Hi Experts,
I need to check the Open order and closed order item in ME53N t-Code(PR) through Quantity and quantity order filed. Now the problem is Order Quantity value is exceeds than quantity.if Quantity value is equal to Order Quanity the order should be closed. If Quantity value is lesser than order quantity the order should be in open state.
Thanks
RajeshNot quite sure what you actually want to do here.
Do you want to "modify" an existing BADI or create a new one.
AFAIK there aren't any existing BADI's for ME53 so you'll have to create a new one --not too difficult so long as you follow the rules.
You will need some place also to call it from (a User / Screen exit / a user mod or whatever.)
Use code something like this.
*& Report Z_BADI_TEST
REPORT Z_BADI_TEST.
test call Badi from standard abap. (Only from rel 6.40 and above)
do the following
1) define the Badi (SE18). For Abap call test uncheck multiple use
and filter boxes
2) Implement the badi (SE19). Add any methods here in the implemntation
3) activate
4) define the standard class exithandler to the abap. This class is the "Badi caller
5) define an exit variable referring to your Badi Implementation interface
this interface will normally be something like ZIF_EX***************
You will see this in SE18/SE19.
6) Instantiate your instance of the badi (method call get_instance)
7) Now call any method(s) in the Badi.
class cl_exithandler definition load. "Declaration
data exit type ref to zif_ex__jimbotest. "Interface reference
data yes type c.
data: v_knvv type knvv. "Used in Fmod call in Badi methods
start-of-selection.
yes = ' '.
selection-screen begin of block b1.
parameters: r1 radiobutton group rad1,
r2 radiobutton group rad1,
r3 radiobutton group rad1.
selection-screen end of block b1.
parameters: p_kunnr type knvv-kunnr.
select single * into v_knvv
from knvv
where kunnr eq p_kunnr.
export v_knvv to memory id 'CUST6A'. "Save customer data for the function module
break-point 1.
call method cl_exithandler=>get_instance "Factory method call
exporting "Method
exit_name = 'Z_JIMBOTEST' "Name of your BADI
changing instance = exit.
if not exit is initial.
if r1 = 'X'.
call method exit->dispord "Add-In call
exporting kunnr = p_kunnr.
endif.
if r2 = 'X'.
call method exit->dispfakt.
endif.
if r3 = 'X'.
call method exit->dispmat.
endif.
endif.
Your badi will have different methods -- just check your quantities and if necessary close the order.
Ensure that when you call your Badi you have access to all the releveant data to close the order if required.
Cheers
Jimbo -
Enhancement/Badi/Enhancement Spot required for BP at the time of SAVE
Dear Friends,
I have a requirement to update the custom field(Created by using EEWB) in BP transaction at the time of Save, based on the condition Risk Class Category, Could any one help me in finding the solution such as BAdi/Enhancement Spot/User exit where I can find the values of Risk Class category, Credit segment category and the custom field I can change at the time of save.
Appreciate Ur help Thanks alot in advance.
Br,
NaveenHello Selva,
I tried both the options.
The SDVFX008 is getting triggered.
*if cvbrp-netwr is INITIAL and cvbrp-fkimg is NOT INITIAL.
* MESSAGE 'Not Valid' TYPE 'S' DISPLAY LIKE 'E'.
* ENDIF .
this is my logic but the values are initials.
Is there nay other method which I can use? -
User Exit/BADI/Enhancement Point in VF01 before new document no assignment
Hi Expert,
I am looking for a user exit/BADI/Enhancement point which will trigger in VF01 before the new document no (Billing document no assign).
I need to cross check few things in Billing via VF01 at billing document save and give error message accordingly. The problem is if new number assign and there is error due to my code then when user save the document next he get a new no. its mean a no skip.
Example: The invoice no is 1000. User start creating a billing document with Vf01 and he get an error message due to my code at exit , at this point of time the next number assign to billing which is 1001 but document not save due to my error message. Now after applying correction user save data and billing document created with no 1002. So there is no skip.
I tried BADI BADI_SD_ACCOUNTING but this will trigger after no assignment. Can someone provide me a user exit/BADI/Enhancement point in VF01 which trigger before no range assignment and contain at least Billing header data to use in my code?
Regards
Swati
Edited by: Swati Namdev on Nov 16, 2010 9:55 PMHI Brad and team,
BRED is right. I check few user exit normally all of us have that list or easily available on net.
BRED: my question is: I need to check the billing date VBRK-FKDAT of document should not be less than the sales order plan billing date VBAP-Oldate.
If this check fail then won't allow the user to create billing document. The problem is I used one user exit SDVFX001 already define previously that's work fine but issue is that user exit trigger after the billing no assignment. That's why when user get that error message he correct the document and create billing this time he get a new number which is skip of one no.
That why I need a User Exit/BADI/Enhancement Point which trigger at save but before document no assignment.
Please update more about your comment "Why not use a header level copy requirement routine to perform the checks and log the messages? This is the standard process." .
Suggest user exit USEREXIT_FILL_VBRK_VBRP trigger before save. I need at save the reason is VBRK-FKDAT this can be change.
Feel free to contact me back if you need more clarification.
Regards
Swati
Edited by: Swati Namdev on Nov 17, 2010 6:22 PM
Edited by: Swati Namdev on Nov 17, 2010 6:25 PM
Edited by: Swati Namdev on Nov 17, 2010 6:32 PM
Edited by: Swati Namdev on Nov 17, 2010 6:47 PM -
BADI ME_GUI_PO_CUST for PO screen
Hello,
I need to add a button to the ME21n/22/23 transaction to call my own screens. I am trying to identify some screen enhancements through which I can add my push button. I am working on ERP2005. I identified badi ME_GUI_PO_CUST, but it does not have a subscreen name in the subscreens tab. Does that mean that I need to modify the standard to include the subscreen. I am doing the screen enhancements for the first time and would appreciate your opinion. Please let me know if there is any other badi which is best suited for this requirement.
Thanks in advance.
Regards
MalthiHi Malthi
Even if you have a subscreen you cannot place a button in the subscreen. You can place only input/output fields only on a subscreen.
So, you can try for a menu-exit and from there call you own screens.
If you don't find any menu-exit you have to go for a modification only.
Regards
Surya. -
Exit/BADI/Enhancement to change GL account in SAP
Hello Gurus ,
I have requirement to change GL account based on certain valuation class during delivery after PGI is done .
Can anyone please help me exit/badi/enhancement .
Thanks
Tishacheck this exits
SAPLKAL1 Allocations: Authorization Check in Cycle Maintenance
SAPMKAL1 Allocations: Authorization Check in Cycle Maintenance
SAPMKGA2 Allocation: Execute Authorization Check for Cycle -
User Exit/BADI/Enhancement Point in VF01 after generating new billingdocno.
Hi Experts,
I am looking for a user exit/BADI/Enhancement point which will trigger in VF01 after generating the new document no (Billing document no assign). The Billing document no is generating in the FM RV_INVOICE_DOCUMENT_ADD ( NUMBER_GET_NEXT).
Now the Billing document no is generating like '0000152', i want to concatenate 'ECR' to the generated Billing document no and it should be updated like ECR0000152 in Billing tables (VBRK, VBRP).
Kindly let me know is there any EXIT/BADI to achieve this functionality.
Regards,
VenuHi Venu,,
These are the enhancements and badis for vf01, please check which will be helpful to you,,
<exit farm removed by moderator>
<points begging removed by moderator>
Warm Regards
Zulfikhar Ali
Edited by: Thomas Zloch on Oct 1, 2011 3:57 PM
Maybe you are looking for
-
I am receiving errors when trying to activate my MM. I believe the issues are in one of two UDF's. These UDF's do work in another MM without error. Below are the error's and UDF's. ERRORS: Activation of the change list canceled Check result for Me
-
Itunes download error message (-50)
I have been trying to download some purchased music and every time I get an error message (-50) to check back later. I have 3 songs that won't download and I'm afraid to try to buy anything else until this clears up. I've tried to update my Itunes so
-
Hi I have emp_ino table in oracle database 10g R2. emp_id Number(5); emp_name nvarchar2(50); I insert data through sql script its ok. In emp_name I used Arabic character. I creat A form module in oracle developer suite 10g R2 when I query record in f
-
hi, experts, there are 2 dimensions and 3 facts (measures). two dimensions are Sales Team and SKU. Quantity is by SKU and Sales Team, Point is by SKU and Sales Team. but Expected Point is by Sales Team only. Variance is (Sum of Points) / Expected Poi
-
Where or where did my birthdays go?
Does anyone have trouble with Calendars erasing, moving or deleting birthdays and upcoming events. Or, just at a whim, they will be repeated multiple times and not be able to be deleted!