How to use navigation profiles with classes
There are some enhances available with navigation profiles.
From Sap Help:
- You can use the “general” navigation profile to insert additional functions or transactions into the application toolbar or context menu of an ALV grid control or ALV tree control.
- You can create, change, save, and manage user-specific and non user-specific navigation profiles.
In navigation profiles, you can define which functions, transactions, class calls, or menus are displayed in the application toolbar or context menu.
- You can also transport or import navigation profiles.
You can use the navigation profile in the following transactions, for example:
Shop Floor Control (PP – SFC)
– COOIS – Order Information System
– COHV – Mass Processing
– CO01, CO02, CO03 – Production Order (in the Order Network Overview)
– CO24 – Missing Parts Information System
– CO27 – Picking List
Production Planning Process Industries (PP-PI-POR)
– COOISPI – Order Information System PI
– COHVPI – Mass Processing PI
Material Requirements Planning (PP-MRP)
– MDVP – Collective Availability Check for Planned Orders
– MD09 – Determine Pegged Requirements
– PKMC – Display Control Cycle Maintenance
– PDS_MAINT – Change Production Data Structure (Plug-In)
In this example, we wil enhance CO27 transaction to include a menu button and use ALV data to call a smartform print.
In CO27 transaction, click in Navigation Profile button and select “Change Navigation Profile”.
To insert a new menu button, select “Application Toolbar” row and click in add button. We will use a “Class Call”.
We need to fill button information as Text, Icon and Quick Info.
The implementing Class is what we need to create to manipulate ALV data.
This popup already show what interface we should use: IF_NAVIGATION_PROFILE.
So, we need to create a Custom Class first.
In SE24 transaction, we need to create a normal class. Here we created ZCL_CO27 class.
In ZCL_CO27 class, insert IF_NAVIGATION_PROFILE in interface tab.
This interface will make USER_COMMAND method available to code.
Inside IF_NAVIGATION_PROFILE~USER_COMMAND method, you can have your code to handle ALV Data from CO27, as the following example.
Now, that we have ZCL_CO27 class created and activated, let’s link it as Implementing Class in our navigation profile as follow.
Navigation Profile now display Print Button. We can save this profile as default, user-specific, etc.
As we run CO27 and load our recently created navigation profile, print button will be available and will handle ALV table from CO27 result with selection screen options.
Great explanation with screenshots.
Nice explanation !!!
I have a similar requirement where I need to add print button to the ALV of transaction COOIS. However I don't have authorization to create or change class calls.
Is there any other alternative?
to handle the button click you need to create a class or maybe a function module, otherwise your button will be usefull.
You can also assign to a specific transaction, but this will be kind a link and you won't be able to handle data from COOIS.