Skip to Content
          View Sundeep Sethi's profile on LinkedIn    

Before I begin this blog I want to thank SDN for all the new looks and features, which has inspired folks like me to contribute more on the community. Great job by the SCN team. Being a SAP Portal expert it amazes and delights me how SAP has used the SAP Netweaver Portal and built this world class Community Site. (Hope my knowledge that SCN runs on SAP Portal is correct).

This is the third of the “Demystify…” series blog I am writing. The other two are Demystify FPM for T&E and Demystify UWL.

Now coming back to the main business. In this blog I would write about some frequently used operations when working with POWL, and also talk about Feeder Class and how we can enhance them to achieve more complex custom requirements.

Personal Object Work-list or POWL is used in Travel Management Traveler Work Center. The Traveler Work Center has five tabs by default as shown in the screenshot.

We did some custom changes in the POWL to adapt it to our requirement. I will enlist the learning’s I got while working with POWL in Travel Management.

1) Where do I find POWL related objects for Travel Management?

All the POWL objects for Travel Management can be found in the package “PTRM_WEB_POWL”. The Traveler Work Center is based on the component FITV_POWL_TRIPS.

 

2) What is a Feeder Class and how is it related to POWL?

Definition of Feeder Class as per SAP Documentation:

“All properties of a POWER List can be specified via one central, standardized class called Feeder Class.

The feeder class communicates with the database selecting specific data, forwards the data to a POWER List’s internal cache and refreshes the POWER List  on the user’s client on demand. Moreover the feeder class includes the handling of actions initiated by the user while pressing a button.”

In simple words for each Standard POWL Type a Feeder Class needs to be assigned which will take care of rendering the POWL and determines the content of the personal work-list.

3) How do I know the Feeder Class of a POWL?

For each standard POWL its corresponding Feeder class can be found using transaction POWL_TYPE.

e.g. For Traveler Work Center POWL “FITV_POWL_TRIPS” the Feeder Class is “CL_FITV_POWL_FEEDER_TRIPS” as shown in the screenshot of the transaction.

  

4) Tell me more about Feeder Class?

Feeder Class for a standard POWL has to implement the interface “IF_POWL_FEEDER “. The interface contains methods which should be implemented by the Feeder Class to define the field catalog to be displayed in the POWL, and determine data for the displayed object type.

Details of the methods in the interface can be found in transaction SE24. In the case of Traveler Work Center these methods are implemented by the Feeder Class “CL_FITV_POWL_FEEDER_TRIPS”.

 

5) How can I hide tabs in Traveler Work Center?

This is a very common requirement. This can be achieved by following SAP Note 1124779 – ESS EHP Deactivate unused POWL queries in Travel Management.

This Note provides a solution to control the visibility of tabs through Authorization by creating custom roles.

6) Can I hide the links “Filter” and “Settings” which appear on the top right corner within the tabs?

 

In order to hide these links launch the Application Configuration “FITV_POWL_TRIPS” and go to the Component Configuration “FITV_POWL_TRAVELLER“. Select “confData” and scroll down to the attribute “hideSettingsLink”. Check the tick box next to this property. This will hide the links from your traveler work center. One should make these changes in a copy of the Application and Component Configuration’s to avoid changing the standard configurations.

 

7)Are there any other useful transactions related to POWL I should be aware of?

Other useful transactions to be aware of when working and customizing POWL are”

POWL_COCKPIT: This is the POWL Administrator Cockpit. It can be used to configure parameters for Standard POWL, Reporting POWL and Easy POWL

POWL_TYPER: This transaction is useful for role assignment of POWL. This is useful when trying to hide tabs. Covered in SAP Note 1124779.

POWL_TYPEU: Define Visibility of Work-list Type (or tabs) at User Level

POWL_CAT: Assign Queries to Categories. Queries that are assigned to a category appear together in the same block in portal.

POWL_QUERY: Used to maintain POWL queries and define POWL types and their description.

POWL_QUERYR: Define Query Visibility at Role Level.

POWL_QUERYU: Define Query Visibility at User Level

8) This is all standard, what about the custom development I was promised at the start of the blog?  🙂

Scenario:

My requirement was to change the text of the links that appear in “Recommended Actions” column of the “All My Trip”s tab in the Traveler Work Center.

Solution:

In order to implement this we need to do an Enhancement to the Feeder Class. Following are the steps:

– Identify the Feeder Class which is populating data in the POWL. Here we know the Feeder Class is “CL_FITV_POWL_FEEDER_TRIPS”.

– The method “IF_POWL_FEEDER~GET_OBJECTS” in the class fetches the data and populates it in the ALV tables within the tabs.

– Create an Enhancement to this Class and create a Post Exit to the GET_OBJECTS method.

– One very important tip is that all the data shown in the Traveler Work Center is fetched by the Function Module “PTRM_WEB_TRIPS_GET_LIST”. This FM contains output table “ET_TRIPS ” which holds the data.

– The link value is contained in the field “SUPPOSABLY_STATUS_NAME” of the structure “PTRV_WEB_TRIPS_EXT” which is in the output of this FM.

– In the Post Exit Method based on your condition you can change the link text or disable the link. For Disabling the link set the field “SUPPOSABLY_STATUS_ENABLE”.

Code in the POST EXIT of GET_OBJECTS method.


DATA lt_object TYPE  PTRM_POWL_WEB_TRIPS_EXT_T.
DATA ls_ref_object TYPE REF TO PTRM_POWL_WEB_TRIPS_EXT.
DATA ls_trip_data TYPE PTRM_POWL_WEB_TRIPS_EXT.
loop at e_results REFERENCE INTO ls_ref_object.
  CLEAR ls_trip_data.
  MOVE-CORRESPONDING ls_ref_object->* TO ls_trip_data.
**Put your IF block here to check condition and set the link text (SUPPOSABLY_STATUS_NAME) or disable link (SUPPOSABLY_STATUS_ENABLE) etc.
append ls_trip_data to lt_object.
  ENDLOOP.
  CLEAR E_RESULTS.
  E_RESULTS = lt_object.



In a similar way we can achieve a lot of custom requirements by enhancing the methods of the Feeder Class.

Hope this blog helps many working on Traveler Work Center in Travel Management. 🙂 🙂

To report this post you need to login first.

9 Comments

You must be Logged on to comment or reply to a post.

  1. Lukas Weigelt

    Hey Sundeep,

    nice blog once again. I see you also found a very elegant solution concerning your recent requirement for changing the supposedly-status link texts (much better/cleaner approach than what I suggested in our discussion methinks). You might want to add one thing though at 6) if you want to change the Parameters of the Comp Conf you should create an enhancement first and tick the checkbox for hiding the settings in enhancement mode, otherwise it’s a modification.

    Keep it up!

    Cheers, Lukas

    (0) 
  2. Namsheed K S

    Hi Sudeep,

    Its a nice blog. Lots of useful informations I got from here. I have a simple query. The requests are not getting to my Traveler Work Center, but its coming to managers inbox in portal. We are using custom workflows…Do I need to maintain any more details.?

    Regards,

    Namsheed.

    (0) 
  3. Michael Speight

    Hi Sundeep,

    thanks for the blog – one question. Why do you recommend enhancing a standard SAP class? Transaction POWL_TYPE allows you to specifc a custom class as the feeder for FITV_POWL_TRIPS. You could simply copy CL_FITV_POWL_FEEDER_TRIPS to a Z version then amend this as required.

    I suppose that there are advantages and disadvantages of both approaches.

    Regards,

    Mike

    (0) 
    1. Sundeep Sethi Post author

      Thanks Mike for your comment.

      I do not recommend enhancing the standard class. This was the approach I followed.

      Yes we can copy the standard class to the Z version and change the feeder class for FITV_POWL_TRIPS in txn POWL_TYPE to point to the Z version.

      Regards

      Sundeep

      (0) 
      1. Lukas Weigelt

        Well, if you enhance the standard class you can always adapt updates from the standard which is a lot more elegant.

        If you copy the class, you have a standalone business logic which is independent from the overall process and will most likely lead to inconsistencies in the process once the dependent logic in the standard is updated/upgraded.

        So far I have never copied a class and I will never do so in the future. IMHO this is superfluous and clumsy. There are no disadvantages using the enhancement framework if you know what you’re doing.

        Cheers, Lukas

        (0) 
  4. Ricky Orea

    hello, anybody can tell me where I can find Switch Personnel Number? This is part of the JAVA version of the Travel Expense system and I don’t know if there’s any equivalent in the ABAP POWL version.

    Thanks for the help.

    (0) 

Leave a Reply