Useful purpose of IF_FPM_GUIBB~GET_PARAMETER_LIST in OIF feeder class?

Hi,
I know you can implement method IF_FPM_GUIBB~GET_PARAMETER_LIST in your OIF feeder class, to supply a list of parameters which you can then set with values against your GUIBBs.
How do you then use these parameetrs, i.e. what is the purpose, how do you exploit them, as you dont seem to have any further access to these parameters in other methods of your feeder class, for example IF_FPM_GUIBB_FORMGET_DEFINITION or IF_FPM_GUIBB_FORMGET_DATA to have some expression logic behind the setting of field lists/catalogs or data retrieval.
If anyone can indicate if/how these parameters can be exploited within the OIF feeder class I'd be most interested, as I would dearly love to use the parameters in order that I can create for example a generic feeder class for several GUIBBs on the same sub view and control the field catalog setting etc. (i.e. not create a seperate feeder class for each GUIBB).
Cheers,
JP.

Hi Thomas,
Perhaps I did not explain well my requirement.  Let's say Im configuring a main view of an OIF, and I have added subviews 1 to 5.  I add a form GUIBB to each, and can configure each in the GUIBB form editor.
When I'm in the GUIBB form editor for GUIBB 1, I specify the feeder class.  And so on, for all GUIBBs 2-5, specifiying a feeder class.  Rather than create and maintain a separate feeder class for each sub-view GUIBB (hence 5 feeder classes) I'm thinking of specifying the same feeder class, say Z_FDR_GENERIC.
When in the form editor I add a group to each GUIBB.  When I configure the group, it is the method GET_DEFINITION that supplies the field catalog to the configure group field list.  I however want that field list to be restricted to fields appropriate to the GUIBB being edited, there may be a different DDIC structure that is appropriate to define the field list for each GUIBB.
Presently I dont see any attribute available that indicates to method GET_DEFINITION what GUIBB is being edited, in order to specialise the field catalog to the GUIBB.  Unfotunately class CL_FPM_FORM_UIBB_ASSIST doesnt pass the GUIBB compoent name or configuration name when in method INIT_FEEDER calls the feeder class GET_DEFINITION.
We can add parameters in the GUIBB form editor, from the list of parameters defined in feeder class method GET_PARAMETER_LIST, but we cant access them in GET_DEFINITION to act as our rule base for specialising the field catalog.
To summarise, I'm looking at any option to enable use of a generic feeder class for multiple GUIBBs with the ability to determine the the active GUIBB within GET_DEFINITION and GET_DATA for example.  I would want the generic feeder class to handle the setting of definitions and data retrieval for all GUIBB types (i.e. implementing the appropriate IF_FPM_GUIBB_**** interfaces).
Unless there is a better solution I would be tempted to enhance CL_FPM_FORM_UIBB_ASSIST  to pass the active configuration name.
I dont know if that is any clearer??
Edited by: Jon-Paul Boyd on Jan 21, 2011 10:32 AM

Similar Messages

  • IF_FPM_GUIBB~GET_PARAMETER_LIST, use of  MV_LIST_STRUC_NAME attribute

    Hi experts
    I'm modyfing some OIF standard application , i added two tab pages.
    I need to manipulate the records showed in these tab pages, so i created a Z feeder class and i added a parameter in order to each UIBB configuration tells the feeder class wich one tab page is being executing.
    Tab Page 1 , FPM_LIST_UIBB  with configuration z1 -> call  z feeder class with parameter 'TAB1'
    Tab Page 2,  FPM_LIST_UIBB  with configuration z2 -> call  z feeder class with parameter 'TAB2'
    Tab page 3,  FPM_LIST_UIBB  with configuration z3 -> call  zfeeder class with parameter 'TAB3'.
    So i did next steps:
    a) I implemented IF_FPM_GUIBB~GET_PARAMETER_LIST method for fill  RT_PARAMETER_DESCR  with my new parameter (name = 'TAB_ID' , type = my Z_TYPE ) . Here my Z_TYPE is a predefined list of values ('TAB1'  tabdescription1,  'TAB2' tabdescription2, etc.)
    b) I implemented IF_FPM_GUIBB~INITIALIZE and i read from  IT_PARAMETER the TAB_ID value received.
    c) i go to my UIBB configuration and i change the feeder class by my  z_feeder_class  (it sends mw a warning message), press 'Edit Parameters' button and it askme for my parameter value.  It shows ok my description parameter and at input field shows ok a dropdown list with possible vales (it does not shows values 'TAB1', 'TAB2' but shows the descripcions 'tabdescription1' , 'tabdescription2', etc.) 
    So i choose some parameter value , the problem is when i fiil parameter and press ok, it sends an error because some object is NULL.  I debbug and the parameter TAB_ID is filling right with value i choose,  but finally the error is because configuration application calls the method Z_FEEDER_CLASS->GET_DEFINITION and this method is not filling  EO_FIELD_CATALOG parameter , and this is because the class attribute  MV_LIST_STRUC_NAME   is empty  (method has a 'check mv_list_struc_name is not initial' at begin)
    I really don't know wich is the use of this MV_LIST_STRUC_NAME class attribute or with wich value i must fill it,
    does somebody knows how can i fill this attribute ?
    Any help will be usefull.  Excuse the long thread.
    Thanks and Regards
    Frank

    Hi
    I was checking and solution is next:
    Adittional to do the already steps:
    a) I implement  IF_FPM_GUIBB~GET_PARAMETER_LIST dor add new parameter
    b) I implement  IF_FPM_GUIBB~INITIALIZE and i read from IT_PARAMETER the TAB_ID the parameter value received.
    I must do also:
    c) In INITIALIZE method , also to my new code, i must keep the code from original superclass method:
         (in my case is CL_HRPIQ00MB_MAIN_LIST_GBF) :
                 init_component( ).
                 set_list_struc_name( ).   <- this method fills the attribute MV_LIST_STRUC_NAME  wich was causing the error.
    d)  Implement new method  INIT_COMPONENT , by copying the original code from superclass.
    With these steps the FPM configurator allow now to set the z feeder class and assign the parameter for each UIBB , also i tested running the application and it works ok, it sends to z feeder class the current tab page being executing in parameter .
    Thanks & Regards
    Frank

  • I think to bye imac for graphic design use purpose. kindly guide me. Is iMac best for me ?

    i think to bye imac for graphic design use purpose. kindly guide me. Is iMac best for me ?

    Hello artistsagar,
    The word best is always subjective.   It is all a question of your needs, your working practice, your available space; I could go on.
    A Mac (probably a 27"one) may well be perfect.  Good size screen, easily understood basic functions and a huge number of recommended programs.   Just Google Mac graphic design to see what is available.

  • Adding custom fields in FPM_FORM_UIBB using feeder class

    Hi,
    We have requirement to add custom fields in form uibb using feeder class in Health and safety module at incidents report.
    Please provide me some usefull documents and reference links.
    Thanks
    Murali Papana.

    Hello Murali,
    1. Copy the Feederclass to customer namespace (ZCL_HRESS_PER_DETAIL_XX)
    2. Create a new TYPE in you class; e.g. S_CUSTOM_FIELDS
    3. Add a type definition
    Example:
    private section.
    *"* private components of class ZCL_HRESS_PER_DETAIL_XX
    *"* do not include other source files here!!!
    "--- BEGIN - Enter here your type definition
      types:
        BEGIN OF S_CUSTOM_FIELDS,
          YOUR_FIELD       TYPE STRING,
        END OF S_CUSTOM_FIELDS .
    "--- END - Enter here your type definition
      constants CV_ACTION_CODE_REFRESHFVALUES type FPM_EVENT_ID value '_REFRESH_VALUES_'. "#EC NOTEXT
      constants CV_ACTION_CODE_ON_CNTR_SELECT type FPM_EVENT_ID value '_ON_COUNTRY_SELECT_'. "#EC NOTEXT
      constants CV_ACTION_CODE_SELECTCOUNTRY type FPM_EVENT_ID value '_SELECT_COUNTRY_'. "#EC NOTEXT
      constants CV_DATA_SHARING type STRING value 'DATA_SHARING_TEXT'. "#EC NOTEXT
      constants CV_COMP_BOL_ATTR type STRING value 'BOL_OBJECT_ATTR'. "#EC NOTEXT
      constants CV_DATA_SHARING_SPACE type STRING value 'DATA_SHARING_SPACE'. "#EC NOTEXT
      constants CV_ADDRESS_COUNTRY_SPACE type STRING value 'COUNTRY_SPACE'. "#EC NOTEXT
      methods GET_INFTY
        returning
          value(RV_INFTY) type INFTY .
      methods CREATE_ADDRESS_ENTITY
        exporting
          !ET_MESSAGES type FPMGB_T_MESSAGES
          value(EV_RESULT) type FPM_EVENT_RESULT .
    4. Edit method IF_FPM_GUIBB_FORM~GET_DEFINITION
    Add the following:
    DATA lt_component_tbl TYPE ABAP_COMPONENT_TAB.
    DATA LS_CUSTOM_FIELDS TYPE S_CUSTOM_FIELDS.
    DATA ls_new_component TYPE ABAP_COMPONENTDESCR.
    DATA lo_new_component TYPE REF TO CL_ABAP_typeDESCR.
    DATA lo_new_component2 TYPE REF TO CL_ABAP_STRUCTDESCR.
    FIELD-SYMBOLS <ls_new_field_descr> TYPE FPMGB_S_FORMFIELD_DESCR.
    FIELD-SYMBOLS <fs_wa_mand_field> TYPE FPMGB_S_FORMFIELD_DESCR.
    APPEND INITIAL LINE TO ET_FIELD_DESCRIPTION ASSIGNING <ls_new_field_descr>.
          <ls_new_field_descr>-NAME = 'YOUR_FIELD'. "Enter here your field
          <ls_new_field_descr>-LABEL_BY_DDIC = 'X'.
          <ls_new_field_descr>-VISIBILITY = '02'.
          <ls_new_field_descr>-DEFAULT_DISPLAY_TYPE = 'IN'.
      " Get table of all fields, visible in GUIBB
      CALL METHOD EO_FIELD_CATALOG->GET_COMPONENTS
        RECEIVING
          P_RESULT = lt_component_tbl.
      " Describe data in LS_CUSTOM_FILED
      CALL METHOD CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA
        EXPORTING
          P_DATA      = LS_CUSTOM_FIELDS
        RECEIVING
          P_DESCR_REF = lo_new_component.
      lo_new_component2 ?= lo_new_component.
      " Add custom fields to field catalog
      ls_new_component-name       = 'LS_CUSTOM_FIELDS'.   "type string,
      ls_new_component-type       = lo_new_component2.    "type ref to cl_abap_datadescr,
      ls_new_component-as_include = 'X'.                   "type abap_bool,
      ls_new_component-suffix     = ''.                   "type string,
      APPEND ls_new_component TO lt_component_tbl.
      TRY.
      CALL METHOD CL_ABAP_STRUCTDESCR=>CREATE
        EXPORTING
          P_COMPONENTS = lt_component_tbl
    *      P_STRICT     = TRUE
        RECEIVING
          P_RESULT     = eo_field_catalog
       CATCH CX_SY_STRUCT_CREATION .
      ENDTRY.
    5. In your GUIBB you have to replace the feeder class to your new customer feder class.
    Hope, I could help you.
    Best regards, Christian

  • I've downloaded PhotoShop Elements 12, and apparently am supposed to download also PhotoShop Elements 4.0   What is the use/purpose of the latter?

    I've downloaded PhotoShop Elements 12, and apparently am supposed to download also PhotoShop Elements 4.0   What is the use/purpose of the latter?

    apparently am supposed to download also PhotoShop Elements 4.0   What is the use/purpose of the latter?
    That is not necessary. Where are you being asked to do that?
    Have you bought an upgrade version of PSE12? Are you upgrading from PSE4?

  • What is the use of feeder class ? & can we create feeder class ?

    i have the fpm developer guide , more detail of feeder class ?

    Dear Madhukar.
    Your can see class assinment for feeder in transaction POWL_TYPE.
    Of course, you can create feeder class by yourself and assign it to feeder.
    Your should to imlement IF_POWL_FEEDER interface in your class.
    The best way for feeder class creation is to find fider with close behavior in transaction POWL_TYPE and make copy.
    For FPM applications there is the separate forum in sdn called Floorplan Manager for WebDynpro Abap,
    your should post your question there/.

  • Same Feeder Class for 2 GUIBBs

    Hi All,
    I have created one feeder class for 2 GUIBBs (List UIBB and Form UIBB) by implementing respective interfaces for them. These GUIBBs have been included in the same user screen. I have also setup parameter for this feeder class (No meaningful purpose, but just to try out). Here are my questions:
    1. I was expecting a single instance of this class when user enters the screen which would then become basis for sharing data between these UIBBs. However, I noticed that 2 instance were created for each UIBB. Is it the normal behaviour? I also tried giving same value or no value to feeder class parameter but for no help.
    2. To get rid of above problem, I declared feeder class attributes that were part of sharing as static attributes. But now the problem was, my Form data was dependent on List data. So I wanted that GET_DATA method of List UIBB should be called before GET_DATA method of Form UIBB. However, Form method is getting called first. Since it always happen, I wanted to know how the system decides on the sequence of calls and is there any way to program /change that sequence.
    Thanks!
    Bhaskar

    So this is what I am trying to do:
    When the user enter Pernr and hit 'Search',
    - all the related records should get updated in the list.
    - Details section should get updated with the 1st index record
    - On selection of other records from list, the related data should get update in details section.
    Now the problem is, as I mentioned, the GET_DATA method of Form UIBB is getting called before List UIBB. Due to this, there is a lag in the details section data update. As earlier noted, I am using the same class for both UIBBs.
    Advice please.
    Best Regards,
    Bhaskar

  • How to replace a field's search help of DDIC in FPM feeder class?

    Hi All,
    I want to replace a field's search help in DDIC structure, for an example, in structure HCMT_BSP_PA_XX_R0009, the field BANKL(Bank Keys) has a search help named 'H_BANKL', I want to replace this search help with other one such as 'H_BANKEY' in the FPM feeder class CL_HRESS_PER_DETAIL, I redefined such method:
    method if_fpm_guibb_form~get_definition.
    field-symbols: <fs_field_description> like line of et_field_description.
    call method super->if_fpm_guibb_form~get_definition
    importing
    es_message = es_message
    eo_field_catalog = eo_field_catalog
    et_field_description = et_field_description
    et_action_definition = et_action_definition
    et_special_groups = et_special_groups
    ev_additional_error_info = ev_additional_error_info.
    read table et_field_description assigning <fs_field_description> with key name = 'BANKL'.
    set search help name of field 'bank key'
    if <fs_field_description> is assigned.
    <fs_field_description>-ddic_shlp_name = 'H_BANKEY'
    endif.
    endmethod.
    I test it and found the search help window was replaced indeed, but all the value of import/export parameters in the new search help was lost, it means, the value of import paramer BANKS(Bank country) and the export parameter BANKA(bank name) were lost. Only the value of BANKL itself can be returned by the new search help window. Can you give me some suggestions about how to maintain the link( value exchange) between structure HCMT_BSP_PA_XX_R0009 and dynamically defined search help 'H_BANKEY' in FPM feeder class?
    I tried to use sap memory ID but it doesn't works well.

    This question was answered at [Webdynpro Forum|how to replace a field's search help of DDIC in FPM feeder class?;:
    That is because for the import and export of DDIC Search help values to work in WDA, not in FPM layer.Feeder Class can do nothing about it.

  • Message handling in feeder class for component under FPM_FORM_UIBB

    Hi,
    I have created a component configuration under the component FPM_FORM_UIBB. The feeder class used is CL_HRESS_PER_DETAIL_0021_10.  I have modified the method IF_FPM_GUIBB_FORM~GET_DATA to report an error message using the FPM message manager(code is hown below) if the field state is not filled.
    The problem is that i get the error message below along with the standard success message that 'Data is Saved'.(and the data is actually saved on the back end)
    Is there a way that i can stop additional processing after I report the error message?  I
    IF io_event->mv_event_id EQ 'FPM_SAVE'.
          IF <lv_data_country> = 'US' AND <lv_data_state> IS INITIAL.
            DATA: lv_message_manager TYPE REF TO if_fpm_message_manager,
                       lv_fpm TYPE REF TO if_fpm.
            "Get handle to the IF_FPM interface
            lv_fpm = cl_fpm_factory=>get_instance( ).
            "Get handle to the FPM Message Manager
            lv_message_manager = lv_fpm->mo_message_manager.
            CALL METHOD lv_message_manager->report_message
              EXPORTING
                iv_message_text              = 'State is mandatory'
                io_component                 = me
                iv_severity                  = 'E'.
          ENDIF.
        ENDIF.
    Thanks in advance,
    Reddy

    Hallo reddy,
    i think you need to append the error message to the et_messages exporting parameter. Further you cannot stop the processing of the instructions followed by the your logic.
    Runtime is not going to stop when it encounter report-error-message. You have to do it yourself using if ..else construct.
    You can also program it in process_event method and return ev_result as failed. In this way the fpm event phase model stops further processing.

  • Some newbie POWL feeder class questions

    Hi,
    I'm just working with POWLs resp. the associated feeder class. At the moment I have two question that hopefully could be answered by someone:
    1) Is it possible to modify the UI layout of the selection criteria in a way that they will be displayed in a configurable number of columns and not just one below the other?
    2) I declared some criteria with "ls_seldef-kind = c_type_param.". The user should be able to work with wildcards for these criteria (option "CP"), but the criteria values given to the GET_OBJECTS method always do have the "EQ" option. This is not really useful for e.g. description fields. How can I change this?
    Many thanks in advance for any help.

    I also hope I can know how to do .
    Pleae tell me if you have solved the problem .
    Best regards ,

  • Exception handling in  Data feeder class

    Hi All,
    I have written some code in the DATA class feeder.  there i am catching some exception and i am displaying the exception using the message manager.
    So after catching the exception , its going for dump because , the mo_message , the attribute of the data class has NULL values ,
    But i can able to display the exceptions in form and list feeder classes . because i have referred the data class in both form and list attributes .
    So its getting the instance , but i need to display the exceptions in the data class, how to get the instance of the message interface.
    Please share !
    Thanks,
    Pradeep.

    Hi,
    throw a new JBOException
    Frank

  • POWL-Feeder-Class is called twice by class CL_POWL_MODEL

    Hi all,
    we are running sap erecruiting and there's an application called "dashboard" that uses the POWL-Technologie.
    Now we noticed, that our feeder class is called twice when one particular "query" is called via dashboard:
    once within method "handle_refresh_async" and twice within method "refresh_current" (methods of class "CL_POWL_MODEL").
    As we don't want to have double runtime, does anyone know why the feeder class is called twice and how to prevent it?
    Thanks in advance
    Regards
    CHRIS

    Hi Kris,
    thanks for your reply.
    I think the forum message you suggested does not apply to me. They talk about a refresh after an action.
    In my case once the dashboard-query is requested by the user the feeder-class is called twice before the result is displayed.
    Regards
    CHRIS

  • How to add feeder class to component configuration in fpm

    Hi
           I am using form guibb and list guibb into my wdapplication. Here i required to provide feeder class to component configuration. I don't know how to provide feeder class to component configuration. Kindly provide the steps to
    how to provide feeder class to component configuration.
    Thanks&Regards,
    Chiru.

    Hi,
    What i would do is the following.
    1. Create a feeder class by Copying  the existing Feeder class .
    2. Go to the FPM_LIST_UIBB component and select a component configuration->Start configuration.
    3. An explorer window is opened->copy the configuration
    4.Fill in the new configuration details.
    5.Press the change button (in your new configuration ).
    6.When you are in the configuration screen->press Edit feeder button
    7.Enter your new feeder class which you have created in step-1.

  • Feeder class of MDGM

    Hello all,
    We are modelling QM data in MDG and want to refect the same navigation used in ECC (when hit inspection setup, need a pop-up).
    Which FPM form can be used?? and also want to for custom currency which Feeder class could be used.
    BR, Srihari Mandapati

    Popup option is a standard option which is already SAP has done for Add Copy/Copy etc..you can take it as a reference to build your own popup if you need to....in webdynpro we can do this easily as it supports on the fly...effort is more in FPM and classes.
    Other Options I would try is -
    I would do below steps:
    1. Create a F4 with list of values (If fixed values else skip this and refer last step 4), Create a suitable data element and attach the F4.
    2. Create a UIBB with QM entity and the field Inspection type and a dropdown, Add wiring suitably.
    3. Enhance feeder class  - CL_MDG_BS_MAT_FEEDER_FORM/LIST to get the inspection type on reading the QM entity data model
    4. check if inspection type is selected, then activate the F4 field dynamically or read from the table dynamically.
      ...effort is more in both options.

  • Using static .values() method of Enum in Generic Class

    Hi *,
    I tried to do the following:
    public class AClass<E extends Enum<E> >  {
         public AClass() {
              E[] values = E.values(); // this DOESN'T work
              for (E e : values) { /* do something */ }
    }This is not possible. But how can I access all Enum constants if I use
    an Enum type parameter in a Generic class?
    Thanks for your help ;-) Stephan

    Here's a possible workaround. The generic class isn't adding much in this case; I originally wrote it as a static method that you simply passed the class to:
    public class Test21
      public static enum TestEnum { A, B, C };
      public static class AClass<E extends Enum<E>>
        private Class<E> clazz;
        public AClass(Class<E> _clazz)
        {  clazz = _clazz;  }
        public Class<E> getClazz()
        {  return clazz;  }
        public void printConstants()
          for (E e : clazz.getEnumConstants())
            System.out.println(e.toString());
      public static void main(String[] argv)
        AClass<TestEnum> a = new AClass<TestEnum>(TestEnum.class);
        a.printConstants();
    }

Maybe you are looking for

  • DML on a view

    Hi I created a view as below create or replace view emp_dept(ename,empno,deptno,dname) as select e.ename,e.empno,e.deptno,d.dname from emp e, dept d where e.deptno=d.deptno; then i wanted to insert one record insert into emp_dept(ename,empno) values(

  • Create organization structure in WD ABAP

    Hi I want to use table UI element displaying the organization structure hierarchy. as displayed in PPMDT or in any other HR transaction. How we can do it ??? Thanks Vishal Kapoor

  • Photo Library in iPhone

    Is it safe to remove my Photo Library in my iPhone if I already have all my photos in my Mac's iPhoto? Since I am looking for ways to free some space in my iPhone. Thanks....

  • ORA - 12514 ----- Urgent

    I am trying to access Oracle using the third party tool(Datastage-Datawarehousing tool). The Datastage server doesn't identify the Oracle instance running on the same machine. When I try to access oracle it gives me the error ora - 12514. Both the to

  • Thailand TAX ID and Social Security infotype

    Dear Expert, I have 2 question regarding Thailand TAX social security infotype. 1) I am using the infotype 0364 to capture my Thailand employee Tax information i.e. TAX ID. However the TAX ID that user provide me is 13 character but when i check on t