BADI HRPAD00INFTY Implementation

Hi,
I have a query related to BADI implementation HRPAD00INFTY. We have implemented this BADI to delimit the record and create a new one of Bank details(infotype 0009). When in PA30, we copy a record whose End date is infinite i.e. 12/31/9999. After copying the record, copied record should get delimited with the end date as last changed date, as todays date. And end date of new record should get set to infinite date as above.
New record is getting created correctly, but the delimited record's end date is not getting changed. As per analysis, when we try copying the record first time, the dates get set correctly and further not. The IN_UPDATE method of BADI is not getting called in next change sessions.
Please advise on same or let us know for any solutions if any.
Thanks,
Rupali.

Try like this
method IF_EX_HRPAD00INFTY~BEFORE_OUTPUT.
  Data: LV_WA(20) Type C Value '(MP002100)VIEW_REPID'.
Types: T_VIEW_REPID Type T582V-REPID.
  Field-Symbols: <FS_REPID> Type T_VIEW_REPID.
  Assign (LV_WA) To <FS_REPID>.
endmethod.

Similar Messages

  • Implementing BADI - HRPAD00INFTY

    Hi Experts,
    I am new to BADI (though I know the general steps for implementation - se18 and se19) and would like to know how to implement the method IN_UPDATE from the BADI - HRPAD00INFTY. I am not able to figure out what the parameters IPSPAR, OLD_IMAGE, NEW_IMAGE, OLD_PREF_IMAGE, NEW_PREF_IMAGE are for and how they can be used in coding (am looking for info in addition to what is in the documentation). According to the requirement I need to fill the supervisor ID field P0001–MSTBR and display it when the user saves the infotype record. Any sample code for implementing this method would be very helpful.
    Thanks
    Sri
    Edited by: Sri Maddineni on Mar 12, 2008 5:58 AM

    Hi Sri,
    Please check the documentation for the method below to know the purpose of the fields...
    Update Program: Call-Up During Update
    Functionality
    The method Update: Call During Update (IN_UPDATE) is called in the update task of Personnel Administration in the UPDATE form.
    Parameters
    IPSPAR
    Work fields for dialog control
    OLD_IMAGE
    Before Image: Infotype records prior to change
    NEW_IMAGE
    After Image: Infotype records following change
    OLD_PREF_IMAGE
    Before Image for assignment values
    NEW_PREF_IMAGE
    After Image for assignment values
    to view the documentation
    Go to se18 -> enter the name of the badi -> click display->
    Press on the "documentation" tab
    Athough in all cases documentation may not be available....
    in this case a pop up will come after you press "documentation"
    Scroll towards the bottom and
    click on "Method: Update: Call During Update" highlighted in blue to view the documentation
    reward if helpful
    Regards
    Byju

  • BAdi HRPAD00INFTY - Dynamically change the value of Wage amount in Infotype

    Hello all,
    I am implementing BAdi HRPAD00INFTY for infotype 0008.
    The requirement is, whenever user checks/saves Infotype 8, System should look out FTE wage type exists or not. If it exists then amount should be calculated and get updates for that wage type. If wage type not found insert wagetype FTE and amount in the infotype for the employee.
    I have calculated amount in method AFTER_INPUT of the BAdi. I am trying to reflect the updated amount on the screen using  method CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP. but it is not working.
    I also tried to use the same method CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP in BEFORE_OUTPUT method.
    Can somebody help me on this?
    Any pointer would be helpful and appreciated.
    Thanks in advance.
    Best Regards,
    Dharitree

    Added by Jeyhun Hajiyev - Azerbaijan Baku DemirBank 05.04.2010
    Function EXIT_SAPFP50M_001 INCLUDE  ZXPADU01
    DATA : lv_message_handler TYPE REF TO if_hrpa_message_handler
               , wa_0008  LIKE p0008
    FIELD-SYMBOLS: <fs_p0008> TYPE ANY.
    IF innnn-infty = '0008'.
      CLEAR : lv_plans
            , ls_hrp1005
            , lv_result
    Transfer the structure p0008 from INNNN
      ASSIGN ('INNNN') TO <fs_p0008> CASTING TYPE p0008.
      CHECK sy-subrc = 0.
      MOVE <fs_p0008> TO wa_0008.
    u201COR
    CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
    EXPORTING
    PRELP = INNNN
    IMPORTING
    PNNNN = WA_0008.
    u201CChanging in Infotype 0008
          wa_0008-trfst = '01'.
          wa_0008-lga01 = '1000'.    "FOR SEE RESULT YOU MUST ADD THAT LINE
          wa_0008-bet01 = 100. " $ Amount for Q0008-BETRG
      CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
        EXPORTING
          pnnnn = wa_0008
        IMPORTING
          prelp = innnn.
    ENDIF.

  • FM 'HR_INFOTYPE_OPERATION' & BADI 'HRPAD00INFTY'

    Hello fellow Abapers. I am experiencing problems trying to implement the following.
    We have a custom infotype (9127) that has 8 intervals of dates. We want to created an absence if any of these intervals are filled. So, after some research i have found this BADI 'HRPAD00INFTY' and specially the method 'IN_UPDATE'. This method is triggered after pushing the save button, so it's just what i needed. I have already the information i need (after converting prelp structure to pnnnn) and then i try to create a record in INFTY 2001 with FM 'HR_INFOTYPE_OPERATION'.
    I have made a small report with this FM and it works just fine, i can create a record i PA2001 just fine, but in the implementation of the BADI it isn't working. I guess it might be something to do with 'locks', not really sure, so if anyone has a suggestion i'd appreciatiate it.
    BTW, here is the code i am using :
            CALL FUNCTION 'HR_INFOTYPE_OPERATION'
            EXPORTING
              INFTY                  = '2001'
              NUMBER                 = wa_9127-pernr
              SUBTYPE                = 'L145'
        OBJECTID               =
        LOCKINDICATOR          =
              VALIDITYEND            = <fs2>
              VALIDITYBEGIN          = <fs1>
        RECORDNUMBER           = 0
              RECORD                 = rec2001
              OPERATION              = 'INS'
        TCLAS                  = 'A'
        DIALOG_MODE            = '0'
        NOCOMMIT               =
        VIEW_IDENTIFIER        =
        SECONDARY_RECORD       =
            IMPORTING
              RETURN                 = codret
        KEY                    =
    Thanks in advance, Pedro Guarita.

    In FM 'HR_INFOTYPE_OPERATION', commit work is executed after infortype was updated.  Infortype 9127 and corresponding BAdi belong to the same SAP LUW. So it leads to commit work has no effect in BAdi.
    A common solution is to call u2018HR_INFOTYPE_OPERATION' by a submit program, this will trigger another LUW in a new work process to commit your data. The pain point for this solution is that you have to pass the data to your new program (always use memory).  Also guaranteeing the success is a little bit difficult .
    Another solution is to call FM like this: CALL FUNCTION 'HR_INFOTYPE_OPERATION' DESTINATION 'NONE' in BAdi 'HRPAD00INFTY'. Help this will help u.
    Regards,
    Kevin

  • Why badi HRPAD00INFTY can't work in t-code PTMW?

    hi:
    why badi HRPAD00INFTY can't work in t-code PTMW? if I want to do enhancement about PT infty in PTMW,what should i do?

    Please refer to help document for BAPI:HRPAD00INFTY which allows you to react to specific events in Personnel Administration. If you need logic in TMW, implement BADI  PT_BLP_USER. Further information can be found in section 6.a of SAP Note 447097.
    Regards
    Chetan

  • Updation of leaves from HR to Cprojects through BADI HRPAD00INFTY

    Hi Experts,
    I want to update the leaves from HR to Cprojects.
    For that i am using BADI HRPAD00INFTY  
    mplement the method IN_UPDATE from the BADI - HRPAD00INFTY. I am not able to figure out what the parameters IPSPAR, OLD_IMAGE, NEW_IMAGE, OLD_PREF_IMAGE, NEW_PREF_IMAGE are for and how they can be used in coding (am looking for info in addition to what is in the documentation).
    According to the requirement I need to update the ENDDA, BEGDA and AVLUNIT fields in RPM_BUPA_AVL table.
    I can see in the table NEW_IMAGE having the  fields ENDDA and  BEGDA. Here Data1 field having encrypted values.Any sample code for implementing this method would be very helpful.
    Regards
    Subhaskar

    Have you checked what's in the Subtype field of table T777D for infotype 0002?
      IF t777d-namst ne space.                                  "QNOK025939
        MOVE <namst> TO <subty>.
      ENDIF.
    Usually this sentence won't be executed unless there is something in that field. Usually we don't have subtypes for IT0002.
    Also make sure that the infotype that gives the dump is 0002 and not 0105.
    Regards.

  • BADI HRPAD00INFTY is not working in ESS

    Hi Gurus,
       I have a requirement for Infotype 0006 at the time of saving or updating or deleting the infotype record. I used BADI HRPAD00INFTY for this. It is working fine if we go through PA30 T-code.
      If I enter the records into infotype 0006 through ESS then this BADI is not triggering. Tried in SDN and found that for ESS we need to use BADI HRPAD00INFTYBL. In this my problem is how can we get whether it is updation or deletion or creation mode?
      Otherwise can any one provide me another BADI is available for this scenario which will work through ESS.
    Thanks,
    SC

    If you are trying to use this BADI and you don't have access to the current operation being executed (INS, MOD, DEL etc), you can always have access by using the PSYST structure used on the main program of the infotype you are working with.
    You just have to use a field-symbol to get access.
    FIELD-SYMBOLS: <FS> TYPE PSYST.
    ASSIGN('(MP000100)PSYST') TO <FS>.
    CASE <FS>-IOPER.
    WHEN 'MOD'.
    ENDCASE.

  • How to display Error messages through BADI HRPAD00INFTY in ESS ?

    Hi,
    In ESS, I want to perform custom validation on IT1067 ( Health Plan ) and allow only specific combinations of health plans to be selected.   We are on ECC6.0 EhP4 .  This infotype is "NOT PERMITTED" in the new decoupled framework and hence I cannot use NEW BADI's for validation and I am stuck with Classical BADI - HRPAD00INFTY.
    In my classical badi HRPAD00INFTY, after validation, I want to display an error message if "Invalid Combination" is selected by the user.  
    I tried using the following code to display the error message :
              DATA badi_message_handler   TYPE REF TO cl_hrpa_message_list.
              DATA message_handler        TYPE REF TO if_hrpa_message_handler. 
              DATA msg                    TYPE symsg.
              DATA is_ok                  TYPE boole_d.
              CREATE OBJECT badi_message_handler.
              message_handler = badi_message_handler.
              msg-msgid = 'YHBN'.
              msg-msgty = 'E'.
              msg-msgno = '006'.
              msg-msgv1 = c_none_plans. "'Invalid Plan'(z09).
              CALL METHOD message_handler->add_message
                EXPORTING
                  message = msg
                  cause   = message_handler->unknown.
                  is_ok = space.
              badi_message_handler->add_messages( message_handler ).
              RAISE error_with_message.
    The message is displayed in ESS but after that the Java Trace Exception is displayed.   I  want to display the error message in a user friendly way and provide an option to correct the plans.
    Please let me know if anyone has done similar thing or have any suggestions.
    Thanks

    Hi,
    DATA badi_message_handler   TYPE REF TO cl_hrpa_message_list.
              DATA message_handler        TYPE REF TO if_hrpa_message_handler. 
              DATA msg                    TYPE symsg.
              DATA is_ok                  TYPE boole_d.
              CREATE OBJECT badi_message_handler.
              message_handler = badi_message_handler.
              msg-msgid = 'YHBN'.
              msg-msgty = 'E'.
              msg-msgno = '006'.
              msg-msgv1 = c_none_plans. "'Invalid Plan'(z09).
              CALL METHOD message_handler->add_message
                EXPORTING
                  message = msg
                  cause   = message_handler->unknown.
                  is_ok = space.
              badi_message_handler->add_messages( message_handler ).
         *-- Add following--
        Exit.
              RAISE error_with_message.

  • Issue with function module HR_INFOTYPE_OPERATION in badi HRPAD00INFTY

    Hello All,
    I have a business scenario wherein, when user saves data for infotype 0002 from tcode PA30, i have create a new record for infotype 0105 by copying existing record and just changing the date.
    For the same I am using funtion module HR_INFOTYPE_OPERATION inside badi HRPAD00INFTY method AFTER_INPUT.
    When I am running the same function module in a independent program, its running fine. But when I run it inside the badi method, it runs with sy-subrc = 0 and no error, but later in the standard program MP000200,in pai module PRE_INPUT_CHECK, it tries to execute this statement     MOVE <namst> TO <subty> and gives dump, with runtime error MOVE_TO_LIT_NOTALLOWED_NODATA and saying that "Error at assignment: Overwritten protected field.".
    Have tried all the options of function module HR_INFOTYPE_OPERATION, but nothing is helping.
    Kindly let me know if any information on the same.
    Best Regards,
    Rahul Malani

    Have you checked what's in the Subtype field of table T777D for infotype 0002?
      IF t777d-namst ne space.                                  "QNOK025939
        MOVE <namst> TO <subty>.
      ENDIF.
    Usually this sentence won't be executed unless there is something in that field. Usually we don't have subtypes for IT0002.
    Also make sure that the infotype that gives the dump is 0002 and not 0105.
    Regards.

  • Changes in custom infotypes not captured in badi 'HRPAD00INFTY'

    Hi
    I have created a custom infotype 9038 and my requirement is, any changes in the infotype have to be logged in to a custom table. Any changes in standard infotypes are getting captured in badi 'HRPAD00INFTY' - method 'IN_UPDATE' and i am able too update my custom table.  But changes in custom infotype 9038 is not triggering the badi 'HRPAD00INFTY'.
    Could any body suggest which tables should be maintained to trigger the badi or do we need to do any configuration using SPRO?
    Thanks and regards
    Badri

    I created the interface which is running successfully.
    Now i did some changes in target table(data base level).
    I reversed the updated table in model section. Till here its ok
    The table which is updated in the model section is not automatically updated in the interface.
    I have to drop the existed datastore in the interface and and re do the entire process of bringing the updated datastore, mapping,etc..
    Please tell the any alternate way.
    Regards
    suresh

  • BADI BBP_WF_LIST implementation

    Hello,
    I would like to implement a the BBP_WF_LIST BADI for confirmation (BUS2203).
    Can someone explain me all the step I have to do. I never did this before and I don't know the step to do.
    thanks

    Hi
    Implement the BADI - BBP_WF_LIST using SE18 Transaction for the filter type - BUS2203 for doing this job.
    Here is the documetation of this BADI
    <b>BBP_WF_LIST BADI</b>
    Short Text
    Display Worklists and Search Results Lists
    With the Business Add-In BBP_WF_LIST , you can tailor the
    display of worklists and search results lists for purchase order documents (and Sourcing applications) in SRM Server according to your own criteria.
    Standard settings
    The following methods are available:
    BBP_WF_LIST for purchasing documents
    BBP_WF_LIST_SOCO for the Sourcing application
    In the standard version, the following differences exist between the display of worklists and search results lists:
    Normal employees see only their own requirements and documents
    The purchaser's worklist in Sourcing and in the application for processing purchase orders is dependent on assignment to an organizational unit.
    The goods recipient and invoicing party can find all purchase orders, confirmations, and invoices.
    As standard, the system sorts the purchasing documents in ascending order by the last date of processing.
    To distinguish between the worklists and search results lists of the SRM Server applications, the BAdI is implemented dependent on the following filters:
    BUS2201
    Filter value for the worklist in purchase order processing in SAP Enterprise Buyer
    BUS2203
    Filter value for the worklist in confirmation processing in SAP Enterprise Buyer
    BUS2205
    Filter value for the search results list in invoice processing in SAP Enterprise Buyer
    BUS2121
    Filter value for the worklist in shopping cart status check in SAP Enterprise Buyer
    BUS2200
    Filter value for the search results list in bid invitation processing in SAP Bidding Engine
    BUS2202
    Filter value for the search results list in bid processing in SAP Bidding Engine
    BUS2000113
    Filter value for the search results list in contract processing in SAP Enterprise Buyer
    Activities
    Implement and activate the BAdI if you wish to adapt worklists and search results lists.
    Note that the filter value Object type (field OBJECT_TYPE) determines for which application the BAdI implementation is active.
    Example
    Using the BadI BBP_WF_LIST you can sort the worklist by document number, for example, or remove documents belonging to a particular user from the worklist.
    The implementation of the BadI using Business object type BUS2205 allows you to change the list of invoices and the purchase orders associated with these invoices independently of one another. For example, you could sort the purchase orders by purchase order number and the invoices by the name of the user who created them.
    You can exclude bid invitations from a certain product category, for example, from the purchaser's search results list in SAP Bidding Engine.
    You can exclude contracts from a certain purchasing organization or purchasing group, for example, from the purchaser's search results list in SAP Enterprise Buyer.
    Further notes
    If the BadI is used for confirmations and purchase orders, it always accesses the list of the actual document and its purchase orders.
    The purchaser's worklist contains only requirements that, according to Customizing, are to be processed in the Sourcing application. See the IMG activity Define Sourcing for Product Categories.
    Change Output List Purchasing Documents
    Functionality
    With method BBP_WF_LIST in SAP Enterprise Buyer, you can adapt the display list of the worklist for purchasing documents and search results lists according to your own criteria.
    Parameters
    Importing
    FLT_VAL
    Filter value
    I_PDLIST_NEW
    Entry list of worklist or the search results list and additional information
    Changing
    E_PDLIST
    Output list of worklist or the search results list (contains only GUIDs)
    <b>And Here is the sample Code for the BADI Implementation...</b>
    METHOD if_ex_bbp_wf_list~bbp_wf_list.
      DATA: t_header_guids     TYPE TABLE OF bbp_guid_tab,
            t_pdlist           TYPE TABLE OF bbp_pds_pdlist,
            t_messages         TYPE TABLE OF bbp_pds_messages,
            t_sc_guids         TYPE TABLE OF bbp_guid_tab,
            t_ref_doc          TYPE TABLE OF bbps_sc_refdata,
            t_itemlist         TYPE TABLE OF bbp_pds_sc_itemlist,
            t_conf_pdlist      TYPE TABLE OF bbp_pds_pdlist.
      DATA: wa_sc_guids        TYPE bbp_guid_tab,
            wa_pdlist          TYPE bbp_pds_pdlist,
            wa_ref_doc         TYPE bbps_sc_refdata,
            wa_itemlist        TYPE bbp_pds_sc_itemlist,
            wa_conf_pdlist     TYPE bbp_pds_pdlist.
        IF sy-tcode EQ   'BBPCF02'.   
    *--- First Get all the Reference documents
    *--- Get all the Shopping Carts
          CALL FUNCTION 'BBP_PD_SC_GETLIST'
            TABLES
              i_header_guids = t_header_guids
              e_pdlist       = t_pdlist
              e_messages     = t_messages.
    *--- Sort the SC based on SC number
          SORT t_pdlist BY object_id.
    *--- Get all the Header Guids
          LOOP AT t_pdlist INTO wa_pdlist.
            wa_sc_guids-guid = wa_pdlist-guid.
            APPEND wa_sc_guids TO t_sc_guids.
          ENDLOOP.
    *--- Get all the Reference Document for the Header Guids
          CALL FUNCTION 'BBP_PD_SC_REF_GETLIST'
            EXPORTING
              i_item_not_deleted = 'X'
            TABLES
              it_header_guids    = t_sc_guids
              et_refdata         = t_ref_doc
              it_logical_systems = 'R3BACKENDSYSTEM' -> Give he R/3 backend system RFC Destination name here
            EXCEPTIONS
              nothing_found      = 1
              OTHERS             = 2.
    *--- Retain only the PO (Business Object 2012)
            DELETE t_ref_doc WHERE ( be_object_type NE 'BUS2012' AND
                                     be_object_type NE 'BUS2012001' ).
    *--- Sort all reference documents based on be_object_id - Purchase Order numbers.
          SORT t_ref_doc BY be_object_id.
    *--- Loop on all remaianing POs
    *---  Use SC Guid (Header)
          LOOP AT t_ref_doc INTO wa_ref_doc.
              DELETE e_pdlist WHERE object_id = wa_ref_doc-be_object_id.
          ENDLOOP.
    *--- Here make a call to the R/3 system by using your RFC Function module
    *---- and update e_pdlist [] table which finally will contain all the
    *--- detialed confirmations starting with Document type - "EB"
    *---- based on the document type "ECDP" and "ECPO" - Add one more document type "EB" ..
    *---- so when ever BBPCF02 is called in ITS it should disply the POs
    *--- which are based on document types as "ECDP" "ECPO" and "EB".
        ELSEIF sy-tcode EQ 'BBPCF03'. " Display All PO/Confirmations
    *--- Similar code as above
        ENDIF. "if sy-tcode eq 'BBPCF02'.
    ENDMETHOD.
    Hope this will help.
    Please reward suitable points, incase it suits your requirements.
    Regards
    - Atul

  • BADI - Multiple implementation

    Hi,
    I know the how the badi multiple implementation is done and how filter usage is done. But Badi is for enhancement for standard SAP so in which kind of situation it is possible. Can any one give an example where this can be implemented multiple times.
    Regards,
    Rajesh

    Here is the software delivery process
    SAP->IBU->Partener->Customer
    So the given enhancment(Badi) can be implemented in the above process chain by the parties involved.
    ALso check http://help.sap.com/saphelp_47x200/helpdata/en/c8/1978b543b111d1896f0000e8322d00/frameset.htm
    Cheers,
    Hakim

  • PMS BADI HRHAP00_DOC_STATNAME IMPLEMENTATION ASSIGNMENT IN SPRO

    Hi PMS Experts,
    I have implemented BADI "HRHAP00_DOC_STATNAME" and I wanted to know the place in SPRO where we can assign BADI "HRHAP00_DOC_STATNAME" implementation.
    Thanks and Advance.

    hi rajat,
    i have implemnted this badi ..it definitley triggers in  preparation and in planning...
    but not in process phase...
    in any case...was it the same issue..?
    mey be its because of the std functionality Note 1306218 - Review Date not defaulted
    rgds
    gayathri
    Edited by: Gayathri on Oct 6, 2009 8:48 AM

  • Error messages through BADI HRPAD00INFTY not reflected in Portal

    Hi
         We are on ESS 6 and using web dynpro based Iviews.
         Various custom validations have been configured in R/3 via
         BADI <b>HRPAD00INFTY</b> for leave request.
         But those validations are not getting reflected when creating a leave through
         leave request Iview in portal.I need all those custome R/3 validations
         messages to appear in portal as well.
    Regards
    Mohamed Mansoor

    > In which method should I write the validations and
    > more over the BADI has already been implemented via
    > class CL_PT_ARQ_REQ.
    write your validations in SIMULATE_VIA_BLOP method. You can find current record in IM_ATTABS_TAB. after ur validations, when u want to raise an error message use follwing code.
    CALL METHOD MESSAGE_HANDLER->ADD_MESSAGE
    EXPORTING
    IM_TYPE = 'E'
    IM_CL = 'HRTIM_ABS_REQ'
    IM_NUMBER = 'XXX'
    IM_PAR1 = 'SIMULATE_VIA_BLOP'
    IM_PAR2 = 'IF_EX_PT_ABS_REQ~SIMULATE_VIA_BLOP'
    IM_PAR3 = 'BLOP'
    IM_CONTEXT = ''
    IM_SUBCONTEXT = ''
    IM_CLASSNAME = 'CL_PT_ARQ_BLOP_ADAPTER'
    IM_METHODNAME = 'MESSAGE'.
    Here, IM_CL = 'HRTIM_ABS_REQ' is important.
    This is message class created using se93. and XXX is the message number.
    this should raise an error message on leave screen.
    Cheers!!
    Ashutosh

  • BADI FTR_CUSTOMER_EXTENT Implementation for Facility creation - TM_61

    Hello Experts
    I am trying to add new tab in the create facility transaction and I feel that the right BAID to do this is FTR_CUSTOMER_EXTENT. I am not able to update the new values in the screen to the database table. I check in the forum and there are many questions for the same but there is no clear answer for the same. Request your help in letting me know how this can be achieved.
    I have also checked the same Function Group FTR_CUSTOM_BADI_SAMPLE but still I am not clear as to how I can achieve this.
    Thanks in advance
    Vijay V

    Hello Claudia,
    I finally solved the problem, and I hope my solution may suite your problem.
    The bigger problem I had was pass the data from the screen to the BADI itself, so I created a function group following the FTR_CUSTOM_BADI_SAMPLE in which I developed the objects.
    Those are the steps I followed:
    I enhanced the structure VTBFHA with the custom field I needed;
    I created an implementation for the FTR_CUSTOMER_EXTENT
    in EVT_APPLICATION_START method I called a function module (copied from the FTR_CUSTOM_BADI_SAMPLE_START) in which I started the subscreen I draw in new tab. (Please note that by doing this I now have the interface if_open_trtm_customer_data always at hand). Follow the instruction of the sample code or the http://scn.sap.com/thread/1534252 thread)
    in the PBO of the subscreen I retrivied the custom data via GET_CUST_DATA of the IF_OPEN_TRTM_CUSTOMER_DATA interface and pass the data in my screen fields. In order to do that I called a function module developed in the same function group, so that the interface is ready to be used.
    in the PAI of the subcreen, once the data is entered I pass the new data via  SET_CUST_DATA of the IF_OPEN_TRTM_CUSTOMER_DATA interface, again developing a FM within the function group of the EVT_APPLICATION_START custom function module I used.
    I am sure there must be a better solution, but it owrked pretty fine for me, so I hope this my help you as well.
    Moody

Maybe you are looking for