Add checkbox on header level Tab Org.data

Dear All,
My requirement is I need to add checkbox on header level Tab Org.data in ME21n or ME21.
And if checkbox is checked in the tab Org.data, it should display Terms and Conditions in the print preview.
Please suggest how to write code? Is there any user exit for transactions ME21N or ME21.
Thanks,
Rana.

hi praveen,
search this forum on how to implement a badi if you haven't done one before. also, go to transation SE18 and read the documentation on badi_fdcb_subbas01 which clearly says that its used for FB60... see the example how they have used it by going to menubar Implementation->Overview then choose FI_FDCB_SUBBAS01_EX (Example for Screen Enhancement 1 on FDCB Basic Data Screen)...you should look at the method PUT_DATA_TO_SCREEN_OBJECT and tab Subscreens where the screen exits are available to use.
In FB60, if you go to menubar System->Status and check the Program (Subscreen) and Screen Number, you'll see it'll match the program name and screen no. provided in the Subscreen tab of the BADI.
Hope this helps.
Cheers,
Sougata.

Similar Messages

  • Custom field at Header level in Additional Data B tab of VA01/VA02

    Kindly help me out , I have a requirement to add a custom field at Header level in Additional Data B tab of VA01/VA02.
    Program: SAPMV45A
    screen 8459
    This can be done only through access key or not. Can any body tell me procedure to do that.
    Appreciate your response.Thanks in advance

    Please help me out this

  • WCTL Transaction - Add Custom Field Header level

    Hi All,
    Here at my client's place guys are doing PoC on WCM (PM being used for last couple of years) and the requirement is to have a custom field at Header level of WCTL (WC Application Change ) with F4 option.
    I have created a custom field with z table for master data to it (will be used as check table for this field) and appended it to the WCAAP - WCM: Application using append structure option.
    Now I need to add this field at the header level of the mentioned transaction. I searched throgh for any available exits, BADI's or enhancement spots with no success. Even Inforums i couldnt find any help and hence this message.
    Will appreciate any inputs in this regard,
    Thanks,
    Lakshmi Narayana.

    Hi Narasimhan,
    First of all thank you verymuch for the quick reply.
    I tried to search for the BADI definition (BADI_WCM_WAPI_001) and Enhancement Spot (ES_WCM_BADI) (se18) with no success. We are using ECC6.0 with SAP_ABA patch level 10, EA-APPL (SAP Enterprise Extension PLM, SCM, Financials) at level 7.
    Does this has any impact on why I couldnt find it or is there something that I am doing  wrong... Please guide me...
    Thank you once again for your time.
    Rgds,
    Lakshmi Narayana

  • Add AdHoc on Header Level SC within Status "In Revision" (BRF SRM 7.0)

    Hi all,
    we have implemented a n-step approval workflow within SRM 7.0 (BRF)
    If the SC is created, user can add AdHoc approvers on header level.
    Problem:
    If an approver rejects or changes the SC, SC is sent back to requisitioner and he has to accept the changes.
    But within this status (In Revision), the user is not able to add new AdHoc Approvers to the SC Workflow (Header Level)
    Button is active but when I select a process level, chosse Add Approver, select an Approver and hit ok, process levels are not updated.
    Task ID (SRM Standard) 40007994
    Question:
    Is this SRM Standard procedere?
    Is it not possible to add AdHoc Approvers when SC is in Status "In Revision"?
    Thanks and best regards
    Andreas

    Hi Andreas,
    I still have not received a response back.  I will strongly disagree with their response if that is the case.  When applying note 1508121, this disables that add approver button on the "In Revision" step.  It still leaves the add approver button enabled for the "Open" step under "In Revision", this should then allow for the approver to be added.
    If nothing else if this is how they are making it behave, they should then create a non mandatory note for those that want to be able to add approvers here as it makes no business sense to allow this functionality for 7 support stacks and then take it away.
    Regards,
    Scott

  • Checkbox in header and item level records.

    Hello Freinds,
    I have a requirment in which I need to display checkboxes in front of header as well as item level records. I am trying to make a copy of standard transaction VL37. This transaction uses the REUSE_ALV_HIERSEQ_LIST_DISPLAY for displaying header and item level data. I debugged and found that in the alv layout there is a field with name box name. If we pass the name of header internal table to that field then we can get checkbox in front of header level records and if we pass item level internal table name then it shows the checkbox in front of item level records.
    Can anyone provide some possibility of adding checkbox for both header and item level records while using the same ALV FM.

    Hello Harsh,
    I am also kind of facing the same issue. I have used the FM REUSE_ALV_HIERSEQ_LIST_DISPLAY for ALV display. And I need to add checkbox at item level.
    I have tried to add checkbox through field catalog. Following is the code I'm writing.
    l_wa_fieldcat-fieldname = l_c_flag.
    l_wa_fieldcat-tabname   = l_c_item.
    l_wa_fieldcat-checkbox  = abap_true.
    *l_wa_fieldcat-edit_mask = abap_f.
    l_wa_fieldcat-edit      = abap_true.
    l_wa_fieldcat-key       = abap_true.
    l_wa_fieldcat-seltext_m = l_c_flag.
    APPEND l_wa_fieldcat to em_it_fieldcat.
    But in this case the checkbox appears in disabled form.
    Can you please help? Could you be a bit elaborate on your answer i.e. the code snippet? Many thanks.
    Regards,
    Debapriya

  • Add a new field in the Tab Addicional data en la ME22N

    Hi,
    Please, can anyone tell me how can we add a new field in the tab Addicional data en la ME21N? I have to use the MM06E005, but I don't know which screen exit should I use and also how to add this subcreen in the tab Addicional data.
    Thanks in advance.
    Saida.

    Hi,
    using SE80 you can add your fields with subscreens
    SAPLXM06 0101 for Headerfields
    SAPLXM06 0111 for Items.
    This will add a tab in ME2..N.
    if you want your own Text on the tabstrip just edit the Textsymbols
    101 and 111 from SAPLXM06.
    At output you have to open a module asking the gl_aktyp to switch edit/display mode.
    then you must code the Exits to import/export values
    EXIT_SAPMM06E_006
    store transaction type for later modification of screen attributes
    gl_aktyp = i_trtyp.
    gl_no_screen = i_no_screen.
    store current state of customer data in ekko_ci (structure for screen)
    ekko_ci = i_ci_ekko.
    store reference document
    if i_rekko-ebeln ne gl_rekko-ebeln and
    not i_rekko-ebeln is initial and
    gl_rekko-ebeln is initial.
    ekko_ci-zzemail = i_rekko-zzemail.
    gl_rekko = i_rekko.
    endif.
    EXIT_SAPMM06E_007
    move-corresponding i_ekko to gl_ekko_ci.
    EXIT_SAPMM06E_008
    e_ci_ekko = gl_ekko_ci.
    ekko_ci contains the actual values of the Dynpro fields
    e_ci_update is only set if you really want the fields
    on the Dynpro to be saved. You must set it then to 'X'
    the field ekko_ci-zzflag will here only be saved if there
    was a change and the transaction is not in display mode
    if gl_ekko_ci-zzemail ne ekko_ci-zzemail.
    e_ci_ekko-zzemail = ekko_ci-zzemail.
    if gl_aktyp ne 'A'.
    e_ci_update = 'X'.
    endif.
    endif.
    Regards
    Kiran Sure

  • Add Custom Field in Additional Tab B in VA01/VA02

    Kindly help me out , I have a requirement to add a custom field at Header level in Additional Data B tab of VA01/VA02.
    Program: SAPMV45A
    screen 8459
    This can be done only through access key or not. Can any body tell me procedure to do that.
    Appreciate your response.Thanks in advance

    Please help me out this

  • 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 table’s 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 table’s 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'.

  • Copying Header level Billing Plan to Item Level Billing Plan

    Hi Gurus,
    I have the following Business Scenario:
    I am creating Sales Order with reference to contract. In the sales order item level detail, a check box(Copy Header level Billing Plan to item level Billing Plan) is checked. For my Business Scenario, I do not want this check.
    Could you please help me in making the configuration changes to remove this check box.
    Regards,
    Nish

    Dear
    I hope just try once
    When you assign Copy Header level Billing Plan to item level Billing Plan That header level billing plan data also will come to item level it means you can change in item level
    if you dont want this function in item level -- Billing plan ..Just remove the check box
    Then you cant find please try it and let me know
    Thanks a lot
    venu

  • Change one level tabs to two level

    Is there an easy way to change one level of tabs to two levels without re-building an application ?
    Can someone show me how to do this please ?

    My recommendation is to do the following:
    1. Navigate to Home>Application Builder>Application ###>Shared Components>Tabs
    2. "Add" a new parent level tab; or two
    3. Edit each standard tab and place it in the parent tab you wish it to appear; you do this by populating the "Parent Tab Set" attribute of the standard tab.
    4. Change your application or a given page to be some sort of TWO LEVEL TAB page template.
    Your done; you should have your application migrated from one level tabs to two level tabs. If you defined page templates at the page level you will need to adjust them accordingly.
    Mike

  • TO ADD TAB AT HEADER LEVEL IN ME21N

    Hi guys
    I have to add a tab at header level of ME21N using BADI ME_GUI_PO_CUST and ME_PROCESS_PO_CUST
    can someone guide me how to do this?
    Thanks

    Hi,
    Try with SMOD enhancement MM06E005. I know this works well for adding a tab in PO header or item level . Read OSS 407975 for implementing this screen exit
    here i am pasting OSS Notes and if you need clearly then login into service.sap.com
    Symptom
    You are using SAP customer enhancement MM06E005. There is no sample source code for this enhancement.
    Other terms
    User exit, customer enhancement, MM06E005, example, sample
    Reason and Prerequisites
    You want to activate user exit MM06E005. Note that this is a consulting note and not a correction of the user exit.
    Solution
    You can use the sample source code attached here to recognize the basic functions of the exit. This example is, however, only one of many options that are offered by the customer enhancement.
    The sample source code includes the following functions:
    Supply of an additional field on header level
    Supply of an additional field on item level
    Derivation of a field on item level from the copied reference document
    Now, in order to be able to use the sample source code, you must create field ZZFLAG on the header level of the document and field ZZFIELD on the item level.
    Double-click on Include table CI_EKKODB
    Enter the following values:
    Name    Component type DType Length DecPlace Short text
    ZZFLAG  CHAR1          CHAR  1      0        1-digit indicator
    Save and activate the include table.
    Double-click on Include table CI_EKPODB
    Enter the following values:
    Name    Component type DType Length DecPlace Short Text
    ZZFIELD CHAR1          CHAR  1      0        1-digit indicator
    Save and activate the include table.
    In order to activate the sample source code, you additionally have to carry out the following changes on screens 0101 and 0111.
    1. Screen 0101: Create the following fields:
                  "Checkbox"            Name: EKKO_CI-ZZFLAG
    2. Screen 0111: Create the following fields:
                  "Input/output field"  Name: EKPO_CI-ZZFIELD
                  "Pushbutton"          Name: BUTTON
                                        FctCode: ZZDETERMINE
    The following assignments apply to the sample source code:
    EXIT_SAPMM06E_006  -->  LXM06F36
    EXIT_SAPMM06E_007  -->  LXM06F38
    EXIT_SAPMM06E_008  -->  LXM06F37
    EXIT_SAPMM06E_009  -->  LXM06F39
    EXIT_SAPMM06E_016  -->  LXM06F41
    EXIT_SAPMM06E_017  -->  LXM06F42
    EXIT_SAPMM06E_018  -->  LXM06F40
    Copy the source code from the attachment and insert it into the corresponding function modules. Save and activate the function modules.
    Create the following variables in the corresponding TOP include in order not to get any syntax errors:
      INCLUDE ZXM06TOP
    data: gl_aktyp type c,
          gl_no_screen type c,
          gl_rekko like ekko,
          gl_ekko_ci like ekko_ci,
          gl_ekpo_ci like ekpo_ci,
          gl_ekpo like ekpo,
          gl_ucomm like sy-ucomm.
    types: begin of ekpo_tab,
              ebeln like ekpo-ebeln,
              ebelp like ekpo-ebelp,
              ekpo like ekpo,
           end of ekpo_tab.
    data:  gt_ref_ekpo_tab type table of ekpo_tab.
    Save and activate the TOP include.
    On header level, you can now store a character, X or space, via field ZZFLAG on the database with the document and read it also again.
    On item level, you can fill field ZZFIELD with a one-digit value and save it with the document. If you copy this document, the system displays an additional function button on tab page "Customer data". If you press this button, the value of the reference document is copied to field ZZFIELD.
    If you want to store the source code as sample source code in your system, start Transaction SMOD. Enter MM06E005 as an enhancement. Select "Components". Press "Change". Position the cursor on the corresponding module and choose "Sample code". Create the corresponding include and copy the source code from the note. Save the include. Note that, of course, syntax errors may occur when you check components. This is because the includes of the sample code are not integrated into a program but rather are completely independent and, therefore, do not have any relationship to each other either. For this reason, only save the include and do not activate or check it. The sample code has to be copied into the corresponding function modules in order to become active.
    If you use the user exit in the new purchase order, it is not guaranteed that the customer screen is always processed. To make sure that possible required fields are checked, include a corresponding message into the EXIT_SAPMM06E_012. This screen is always processed.
    Header Data
    Release Status: Released for Customer
    Released on: 07.09.2006  13:07:34
    Priority: Recommendations/additional info
    Category: Consulting
    Primary Component: MM-PUR-PO Purchase Orders
    Secondary Components: MM-PUR-GF-CE Customer Enhancements
    I have not done BADI for PO,so i am not sure that whether BADI will work for Screen exit or not
    Thanks
    Seshu

  • How to add user defined tab in the Header level of T-Code O4NM?

    How to add user defined tab in the Header level of  T-Code O4NM?
    I tried with BADI but I cant able to find any BADI for it and also searched for screen exit too..

    Can you check the user exits,
    OIJNOM_N and OIJTKT_N
    Cheers,
    Balaji

  • How to add a new tab to sales order header level

    Hello Experts,
    I have to add a new tab 'Billing Plan' at sales order header level.
    As per my functional person, If I modify TVAK-FPART field with some value than tab will be come.
    I tried to modify TVAK-FPART field in debug mode and was able to see the tab, BUT when I again came back to
    VA03/VA03 transaction then that tab was not there.
    Pls help me to resolve this problem..
    Rocks!!

    Hello Rock,
    I have the similar requirement, to add a new tab at the sales order item level. there are already two customer tabs but i dont want to use them, instead i want to use a new tab to be created. i searched BADIs but the BADI BADI_SD_TAB_CUST_I is for SAP Internal use only.
    Kindly suggest whay way you used to create a new tab. thanks in advance.
    Reagrds
    Sachin

  • Additional tab at header level  in ME21N through BADI ME_GUI_PO_CUST

    Hi,
    I want to have additional tab at header level  in ME21n through BADI ME_GUI_PO_CUST.  But after all effort I am not getting display of  tab.  Let me explain what i did till now
    1. Appended  table EKKO with field
    2. Create one function Group -under that
    A. Created one Include u2013Paste the code given
    DATA: call_subscreen   TYPE sy-dynnr,
          call_prog        TYPE sy-repid,
          call_view        TYPE REF TO cl_screen_view_mm,
          call_view_stack  TYPE REF TO cl_screen_view_mm OCCURS 0,
          global_framework TYPE REF TO cl_framework_mm,
          global_help_view TYPE REF TO cl_screen_view_mm,
          global_help_prog TYPE sy-repid.
    FORM SET_SUBSCREEN_AND_PROG *
    --> DYNNR *
    --> PROG *
    --> VIEW *
    --> TO *
    --> CL_SCREEN_VIEW_MM *
    FORM set_subscreen_and_prog USING dynnr TYPE sy-dynnr
    prog TYPE sy-repid
    view TYPE REF TO cl_screen_view_mm.
    call_subscreen = dynnr.
    call_prog = prog.
    call_view = view.
    ENDFORM. "set_subscreen_and_prog
    B. Created one screen  (9000)
    3. Implemented BADI ME_GUI_PO_CUST and paste the code.
    data: ls_subscribe like line of re_subscribers.
    CHECK im_application = 'PO'.
    CHECK im_element = 'HEADER'.
    CLEAR re_subscribers[].
    ls_subscribe-name = ' ZMMSCR1'.
    ls_subscribe-dynpro = '9000'.
    ls_subscribe-program = ' ZMMSCR1'.
    ls_subscribe-struct_name = 'EKKO'.
    ls_subscribe-label = text-001..
    ls_subscribe-position = 15.
    ls_subscribe-height = 7.
    append ls_subscribe to re_subscribers.
    Please help me what s going wrong .and what else I will do to get success.
    Edited by: Vishal A Vijaywargia on Jul 29, 2009 2:24 AM

    Hi Prosengit,
    I am not aure about u r BADI,
    BUt last week i have custom tab in the PO header data using this enahncement 'MM06E005'.
    IN thi senhancement u have thrre screen exits.In this enhancement
    SAPMM06E        0111 CUSTSCR1 SAPLXM06        0111 Subscreen: PO item
    u can add subscreen and u can add u r own fields here .
    and u can write u r code in 'EXIT_SAPMM06E_006'.
    if u want to change the title of the program.
    Go to program SAPLXM06 then go to text element give text symbol no as '111' and u can change the title of u r tab.
    I hope this solves u r problem.

  • To add Billing Plan at Sales Order Header Level

    Dear All,
    Our requirement is such that for a project, we need to define a billing plan at header level of sales order.
    As of now we are defining billing plan at sales order line item which are having accunt assignment to WBS elements.
    Pl. let me know whether we can add billing plan at SO header level and if it is possible then how to do it. Because right now there is no tab available for "Billing Plan" at SO header level.
    If we can add it then will it be valid for all item levels?
    Need your help.
    Regards
    Ratna Palit

    SPRO - SD - Billing - Billing Plan - the first 5 config nodes (Define Billing Plan types / Define Date descriptions / Assign Date categories / Maintain Date Proposals / Assign Billing Plan types to Sales Doc types) are applicable to you.
    this is pretty tranparent for a reference.
    What else is required?

Maybe you are looking for

  • Moved iphoto to external drive and now can't find it.

    I backed up iphoto library on Apple TV and External Hard Drive. Confirmed they transferred and then deleted the file on computer. When I try to run iphoto, it opens a screen that asks me which library I want to use. I can't find the library on my ext

  • Cannot be applied to (java.io.PrintWriter) error

    Hi guys I get the following errors when trying to compile my program and I was wondering how to solve it printPay() in PaySlip cannot be applied to (java.io.PrintWriter) slip.printPay(slipWrite) import java.io.*; public class PayApp   public static v

  • Text in template for ECC 6.0

    can i know how to enter a text in template in ECC 6.0

  • I need to know which country imei starts from 01254300

    I need to know which country imei starts from 01254300 plzz. help me

  • Program stops debugging abruptly

    Hi, I am adding some 5 user menus and if i click each menu one user form should be loaded, this works correctly but i want the sales order form to open by clicking one of the menu and that also works fine. The sales order form is loaded by clicking t