Show TOC

Procedure documentationEnhancing the Side Panel Locate this document in the navigation structure

 

This procedure describes how to add the side panel to transactions and create customer-specific CHIP provider pages and new CHIPs.

Prerequisites

To enhance the side panel, you require developer authorizations in your system.

Procedure

Adding the Side Panel to Transactions
  • Tagging (for SAP GUI)

    SAP delivers an extensive range of tags for the key transactions in Financial Accounting (see view NWBC_VS_GUI_TAG).

    In Customizing under   Cross-Application Components   Processes and Tools for Enterprise Applications   Side Panel for Business Suite   Define Additional SAP GUI Tags   (View NWBC_VC_GUI_TAG), you can override the standard SAP tags or add your own customer-specific tags. Note that you must always tag all key fields belonging to a business object (according to the BOR definition). For instance, for the BOR object BKPF (Accounting Document) that would be the three fields Company Code, Document Number and Fiscal Year. On the other hand, for the BOR object KNA1 (Customer), you only need to tag the customer number (Customer ID).

    If you wish to tag fields, you must call the SAP GUI transaction. Select the relevant fields with SAP GUI Property Collector and transfer them to view NWBC_VC_GUI_TAG. Manually add the tag, lifetime, package, and, if applicable, a data element for the external-internal conversion. For more information, see the documentation for the Customizing activity.

    Note the following:

    • When you select the fields with SAP GUI Property Collector, you can choose between long and short IDs (Long ID and Short ID). Long IDs are unique and must be used in conjunction with the special properties SelectedRowsData, SelectedColumnsData and SelectedCellsData. Short IDs are not unique, nevertheless they must be used in certain circumstances (see Example).

      Example Example

      You have two transactions, Display Asset (AS03) and Display Group Asset (AS23), that use the same main program and the same main screen layout. The long ID for assets is lid:/wnd[0]/usr/subKOPF:SAPLAIST:0099/ctxtANLA-ANLN1.Text and the long ID for group assets is lid:/wnd[0]/usr/subKOPF:SAPLAIST:0097/ctxtANLA-ANLN1.Text. If you wish to assign the asset and the group asset the same tag, since they are handled identically from a technical point of view, you must use the short ID: sid:ctxtANLA-ANLN1.Text.

      End of the example.

      For more information, see SAP Library for NetWeaver on SAP Help Portal under http://help.sap.com/nw703. In SAP Library, choose   SAP NetWeaver   SAP NetWeaver by Key Capability   Application Platform by Key Capability   ABAP Technology   UI Technologies in ABAP   SAP NetWeaver Business Client   6 Programming Aspects   6.7 Side Panel Programming  .

    • You can use the screen identification * instead of assigning a unique number (such as 1000). 1* would mean, for instance, that the respective entry in the tagging table applies for all screen layouts between 1000 and 1999. This may be useful to avoid having identical entries for more than one screen layout in the tagging table.

    • You can add constants for BOR object types (tag /BSSP/:BORTYPE) and application identifier (tag /BSSP/:APPID) manually as entries in the tagging table. You only require an application identifier if you specifically wish to write coding for a certain screen in a certain transaction in BAdI: Tagging Service for Side Panel (BSSP_TAGGING_SERVICE). You enter constants in the tagging table in the Property (SAP GUI Scripting) field with value: .

    Example Example

    Transaction Change Profit Center (KE52):

    The BOR object in question is BUS0015 (with key fields Controlling Area and Profit Center). You must tag the key fields Controlling Area and Profit Center if you wish to have notes and attachments displayed in the side panel (tags /BSSP/:KOKRS and /BSSP/:PRCTR). You must also add the tag /BSSP/:BORTYPE with the property value:BUS0015 in the tagging table to identify the transaction with BOR type BUS0015. If you also wish to display master data details for, say, the User Responsible field, you must also tag this field (tag /BSSP/:BAPIBNAME, BOR type USER with key field User).

    Transaction Change Sales Order (VA02):

    This transaction has a number of tab pages, and on each one the material appears as master record. If you only want to apply the special logic for this transaction so that the relevant master data details for the material of the currently visible tab page are displayed, for BOR object Material (BUS1001) you must apply the special logic in BAdI: Tagging Service for Side Panel (BSSP_TAGGING_SERVICE) for this transaction. You can restrict this special logic to this one transaction by applying an application identifier (tag /BSSP/:APPID) in the tagging table for the transaction (for instance value:VA02) and then programming this constant in the BAdI.

    End of the example.

    Note the following special features for certain properties:

    • The property IsOnScreen is used to determine whether a certain field is visible on the screen layout at runtime (see also the Section "BAdI: Tagging Service for Side Panel (BSSP_TAGGING_SERVICE)”).

    • The property SelectedRowsData of a table is used to transfer the data of the row that was just selected to the side panel at runtime.

      Syntax: xxx.SelectedRowsData[FIELD]: FIELD is a field of a table row.

    • The property SelectedColumnsData of a table is used to transfer the data of the column that was just selected to the side panel at runtime.

      Syntax: xxx.SelectedColumsData[COLUMN]: COLUMN is the ID of the column.

    • The property SelectedCellsData of a table (only available in the SAP List Viewer (ALV)) is used to transfer the data of the cell that was just selected to the side panel at runtime.

      Syntax: xxx.SelectedCellsData[COLUMN]: COLUMN is the ID of the column.

    For more information, see SAP Library for NetWeaver on SAP Help Portal under http://help.sap.com/nw703. In SAP Library, choose   SAP NetWeaver   SAP NetWeaver by Key Capability   Application Platform by Key Capability   ABAP Technology   UI Technologies in ABAP   SAP NetWeaver Business Client   6 Programming Aspects   6.7 Side Panel Programming  .

  • Tagging (for Web Dynpro ABAP)

    If your main application runs in Web Dynpro ABAP, you must set tags at the original node using interface IF_WD_TAGGING_SERVICE. For more information, see SAP Library for SAP NetWeaver on SAP Help Portal under http://help.sap.com/nw703. In SAP library, choose   SAP NetWeaver   SAP NetWeaver by Key Capability   Application Platform by Key Capability   ABAP Technology   UI Technologies in ABAP   Creating Mashups with the Pagebuilder   Implementing Side Panels   Implementing Tagging   Setting Tags for a Web Dynpro Application  .

  • Setting Tags with Application Programming Interface (API) (specific to SAP GUI)

    You can also set tags with the Application Programming Interface (API). You do this with interface IF_LSAPI_DATA_CONTEXT and method SET_TAG_VALUE.

    Setting tags in the program requires a minor change to the existing ERP coding, and it is a requirement when not all of the required key fields are visible on the screen layout. Otherwise these fields could not be tagged and the values of the fields could not be extracted at runtime.

    Example Example

    Setting the company code in the program (standard tag /BSSP/:BUKRS):

    DATA: ld_tag_value TYPE string. ld_tag_value = .... cl_lsapi_manager=>get_instance( )->if_lsapi_data_context~set_tag_value( EXPORTING name = '/BSSP/:BUKRS' value = ld_tag_value EXCEPTIONS OTHERS = 0 ).

    End of the example.
  • BAdI: Tagging Service for Side Panel (BSSP_TAGGING_SERVICE)

    You can use this BAdI to change the standard behavior of side panel CHIPs. Below you will find further important information on individual methods of BAdI interface IF_EX_BSSP_TAGGING_SERVICE:

    • Method GET_SPECIAL_FIELDS:

      You can use this method to define additional fields for tagging. Depending on the transaction, you can have different BOR objects for the same main screen layout. For this reason, to determine the correct BOR object, you must query at runtime whether a certain field is visible on the screen (property IsOnScreen in the tagging table). In method GET_SPECIAL_FIELDS, you can then add the additional tag for, say, the company code BUKRS_IS_ON_SCREEN. In method APPLY_SPECIAL_LOGIC, BUKRS_IS_ON_SCREEN is evaluated and, depending on the result, the correct BOR type is determined.

      Example: The BOR object BUS1001 only has one key field for the material number; however displaying the plant as an additional field is more useful when calling reports on the material or for the BAPIs for master record data. In method GET_SPECIAL_FIELDS, you can define WERKS (plant) as an additional field.

    • Method APPLY_SPECIAL_LOGIC

      Depending on whether certain fields are available on the screen layout (property IsOnScreen in the tagging table), the correct BOR type can be determined with this method at runtime.

      Example 1: Transaction Display Customer (XD01)

      When the BUKRS field is displayed on the screen layout at runtime, it is not the sales area data of the customer that is currently displayed but company code-specific data. Consequently the BOR object is not KNVV but KNB1.

      When additional fields appear on the screen layout, you can use method APPLY_SPECIAL_LOGIC to determine the value of a field that does not appear on the screen layout.

      Example 2: In GET_SPECIAL_FIELDS, you have defined WINDOW_TITLE as an additional field for the window title. The value for the line item in a posting transaction now appears at runtime in WINDOW_TITLE (otherwise no explicit field for the line item appears on the screen layout). With method APPLY_SPECIAL_LOGIC, the value of WINDOW_TITEL can now be converted to the value of BUZEI (line item).

      Example 3: In GET_SPECIAL_FIELDS, you have defined BUKRS as an additional field for the company code; however the field for the controlling area that is actually required (KOKRS) does not appear on the screen layout. With method APPLY_SPECIAL_LOGIC, the value of BUKRS can now be converted to the value of KOKRS by calling a function module.

    • Method ADJUST_DATA_ELEMENT

      If you use the side-by-side scenario, some data elements of BOR key fields may not be available in the side panel system (software component SAP_BS_FND) since these were defined in the software component SAP_APPL. In such cases, with method ADJUST_DATA_ELEMENT, you can define alternative data elements with the identical semantic meaning.

    • Method ADJUST_CHIP_TAG

      For master data CHIPs, you have defined a suffix for tags (see Adapting the Side Panel), however you want this suffix to be available only for certain fields. You can use method ADJUST_CHIP_TAG for this.

      Example: If you want to convert tag /BSSP/:BUKRS_1 to the standard tag/BSSP/:BUKRS, you can do so with this method and, if applicable, restrict it to the BOR object type.

      In a very generic screen layout, you will find the same fields with a different SAP GUI scripting property, depending on the transaction. The tagging table now contains multiple entries for this generic screen layout with slightly different tags (for instance /BSSP/:MATNR_1, /BSSP/:MATNR_2, /BSSP/:MATNR). For all these fields to be interpreted at runtime as the same field, along with the standard tag (/BSSP/:MATNR in the example) you can define additional tags for a field (/BSSP/:MATNR_1 and /BSSP/:MATNR_2 in the example). In the example, the CHIP to display material master data details would then also display the material master data for the non-standard tags /BSSP/:MATNR_1 and /BSSP/:MANNR_2.

    • Method GET_WEB_SERVICE_PARAMS

      You must implement this method so that the correct values for the Web service parameters BSSP_COMPANY, BSSP_ADDRESS, BSSP_STREET, BSSP_POSTAL_CODE, BSSP_CITY and BSSP_COUNTRY can be determined by BAPI call, depending on the BOR type.

    Example Example

    You will find many examples for Financial Accounting in the BAdI implementation delivered by SAP in class CL_BSSP_TAGGING_SERVICE.

    End of the example.
  • Creating a Side Panel for a Transaction Without a Side Panel

    To create a new side panel page and assign it to a transaction, proceed as follows:

    1. Create a new empty side panel.

      1. Create a new Web Dynpro component configuration for component WDR_CHIP_PAGE. The configuration context must remain empty (or the standard settings must be used).

      2. Create a new Web Dynpro application configuration for application WDR_CHIP_PAGE.

      3. Assign the new component configuration, and also the CHIP catalog BSSP_CHIP_CATALOG, to the new application configuration.

      Note Note

      The following pages are delivered by SAP with a side panel:

      All pages starting with BSSP_SP_*:

      • BSSP_SP_MASTER_DATA_*: A combination of various master data CHIPs

      • BSSP_SP_*_REPORTING: Reports displayed as charts

      • BSSP_SP_NOTES / BSSP_SP_NOTES_PROCESS: Notes / attachments

      • BSSP_SP_WEB_SERVICES*: Web services

      • BSSP_SP_DOCFLOW*: Various links (to the Document Relationship Browser, to reports, and so on)

      End of the note.
    2. Assign CHIPs to the side panel.

      1. Call the application configuration that you have just created.

      2. Choose   Adapt Page   Customizing  .

      3. Select CHIPs from CHIP catalog BSSP_CHIP_CATALOG and assign them to the side panel. Save your entries.

    3. Assign the side panel to a transaction in a role.

      In transaction Role Maintenance (PFCG), you must now assign the side panel to a transaction in a specific role. For more information, see SAP Library for NetWeaver on SAP Help Portal under http://help.sap.com/nw703. In SAP Library, choose   SAP NetWeaver   SAP NetWeaver by Key Capability   Application Platform by Key Capability   ABAP Technology   UI Technologies for ABAP   SAP NetWeaver Business Client   5 Role Maintenance in PFCG   5.10 Side Panel  .

      Note Note

      If the side panel is intended for a SAP GUI application, in the PFCG role in the configuration of the side panel Web Dynpro application WDR_CHIP_PAGE we recommend assigning value 00 to parameter CHIP_CONTENT_DESIGN. This parameter has the effect that the background color of the side panel matches the background color of the SAP GUI application.

      End of the note.
Creating Customer-Specific CHIP Provider Pages for Side Panel CHIP Catalog BSSP_CHIP_CATALOG

If you want to create your own CHIPs and organize them according to your own organizational criteria in CHIP catalog BSSP_CHIP_CATALOG, you must create your own CHIP provider pages for the CHIP catalog.

Provider pages are Web Dynpro component configurations for component WDR_CHIP_PAGE. To create your own CHIP provider page, proceed as follows:

  1. Create a new Web Dynpro component configuration for component WDR_CHIP_PAGE.

    The component configuration must follow the naming convention ZZSP_PROVIDER*.

  2. Enter the component configuration and select the CHIP Provider checkbox in the attributes.

  3. Add your CHIP usages under the context node chipUsages Variant (1).

    For each CHIP, you must add a CHIP usage under   New   chipUsages  . As the CHIP URL, enter the URL for your CHIPS (for instance X-SAP-WDY-CHIP:BSSP_COMPANY for the CHIP BSSP_COMPANY).

  4. Save your entries.

Creating New CHIPs

If you want to display more information in the side panel that is not contained in the CHIPs delivered by SAP, or format information differently, you can create your own new CHIPs. To do this, proceed as follows:

  • New master data CHIPs

    1. Implement a new feeder class with CL_BSSP_DETAIL_FORM as its superclass. Then reimplement at least methods IF_FPM_GUIBB~INITIALIZE (for initialization, say, of the BOR object type) and IF_FPM_GUIBB_FORM~GET_DATA (for data retrieval through the BAPI).

      Example: CL_BSSP_DEBITOR

    2. Create a Web Dynpro configuration for the form component FPM_FORM_UIBB_GL2 and assign the above feeder class to it.

      Example: BSSP_DEBITOR

    3. Create a Web Dynpro configuration for the UIBB CHIP wrapper component (UCW component) of FPM (FPM_UCW_COMPONENT); assign the configuration created above for the form component to the new UCW component.

      Example: BSSP_DEBITOR_UCW

    4. Create a Web Dynpro CHIP that references the configuration of the UCW component created above. You do not have to define any inport and outport parameters since these are created dynamically at runtime.

      Example: BSSP_DEBITOR

  • New POWL-based reports (displayed as charts)

    1. Implement a new feeder class with CL_BSSP_GRAPHICS_POWL as its superclass.

      Then reimplement at least methods IF_FPM_GUIBB~INITIALIZE (initialization, say, of the BOR object type), GET_CATEGORY_FIELDS (definition of categories for the chart), CHANGE_SEL_CRITERIA (change of default selection criteria), and, if applicable CHANGE_DATA (change of standard data display).

      Example: CL_BSSP_FINREP_FI_AR

    2. Create a Web Dynpro configuration for the chart component BS_ANLY_CHART_UIBB and assign the above feeder class to it.

      Example: BSSP_FI_AR_OVERDUE_C

    3. Create a Web Dynpro CHIP that references the configuration of the chart component created above. You do not have to define any inport and outport parameters since these are created dynamically at runtime.

      Example: BSSP_FI_AP_OVERDUE_C

  • New reports based on an analytic query (displayed as charts)

    1. Implement a new feeder class with CL_BSSP_GRAPHICS_ODP as its superclass.

      Then implement at least methods IF_FPM_GUIBB~INITIALIZE (initialization, say, of the BOR object type), CHANGE_SEL_CRITERIA (change of default selection criteria), and, if applicable, CHANGE_DATA (change of standard data display).

    2. Create a Web Dynpro configuration for the chart component BS_ANLY_CHART_UIBB and assign the above feeder class to it.

    3. Create a Web Dynpro configuration for the UCW component of FPM (FPM_UCW_COMPONENT); assign the configuration created above for the chart component to the new UCW component.

    4. Create a Web Dynpro CHIP that references the configuration of the UCW component created above. You do not have to define any inport and outport parameters since these are created dynamically at runtime.

  • New POWL-based reports (displayed as forms)

    1. Implement a new feeder class with CL_BSSP_DETAIL_FORM_POWL as its superclass.

      Then implement at least methods IF_FPM_GUIBB~INITIALIZE (initialization, say, of the BOR object type), CHANGE_SEL_CRITERIA (change of default selection criteria), and, if applicable, CHANGE_DATA (change of standard data display).

      Example: CL_BSSP_FINREP_FORM

    2. Create a Web Dynpro configuration for the form component FPM_FORM_UIBB_GL2 and assign the above feeder class to it.

      Example: BSSP_FI_AP_OVERDUE

    3. Create a Web Dynpro configuration for the UCW component of FPM (FPM_UCW_COMPONENT); assign the configuration created above for the form component to the new UCW component.

      Example: BSSP_FI_AP_OVERDUE_UCW

    4. Create a Web Dynpro CHIP that references the configuration of the UCW component created above. You do not have to define any inport and outport parameters since these are created dynamically at runtime.

      Example: BSSP_FI_AP_OVERDUE

  • New link lists (based on report launchpads)

    1. Create a Web Dynpro configuration for the launchpad component (FPM_LAUNCHPAD_UIBB). Specify CL_BSSP_LAUNCHPAD_LINKS as the feeder class and define a report launchpad that you have previously created.

      Example: BSSP_LPD_FI_AP

    2. Create a Web Dynpro configuration for the UCW component of FPM (FPM_UCW_COMPONENT); assign the configuration created above for the launchpad component to the new UCW component.

      Example: BSSP_LPD_FI_AP_UCW

    3. Create a Web Dynpro CHIP that references the configuration of the UCW component created above. You do not have to define any inport and outport parameters since these are created dynamically at runtime.

      Example: BSSP_LPD_FI_AP

  • Completely new CHIPs based on none of the above categories

    1. Implement an ABAP class that serves the purpose of data retrieval or as an assistance class for the Web Dynpro component.

      In this class, you must implement an event handler for interface IF_CHIP_API and event INPORT_EVENT (CHIP import event), and an event handler for interface IF_CHIP_DATA_CONTEXT and event CONTEXT_CHANGED (change of NWBC data context which contains the RFC destination of the ERP system).

    2. You can use class CL_BSSP_SIDE_PANEL_SERVICES in the ABAP class created above. This class provides the following help methods:

      • GET_INSTANCE

        Used to instantiate the class; you must specify the BOR object type and the RFC destination of the SAP GUI application or Web Dynpro application.

      • GET_TAGGING_STRUCDESCR

        Used to return the BOR key fields (or an ABAP run time type description of the fields), which are required to create a CHIP import generically.

      • GET_OBJKEY_FROM_STRUCT

        Typically called at the CHIP import event and returns the BOR key from the data of the import event.

    3. Implement a Web Dynpro component that uses the ABAP class created above as an assistance class. If the Web Dynpro component is generic and you want to specify parameters, create another configuration for the Web Dynpro component.

    4. Create a Web Dynpro CHIP that references the Web Dynpro component or Web Dynpro component configuration created above. You must define inport parameters (and, if applicable, outport parameters) if these are not created dynamically at runtime in the assistance class of the Web Dynpro component.

To list the newly created CHIPs in CHIP catalog BSSP_CHIP_CATALOG, you must assign them to CHIP provider pages of SAP (all of which use the naming convention BSSP_PROVIDER*) or customer-specific provider pages (by configuring these yourself) (see also above under “Creating Customer-Specific CHIP Provider Pages for Side Panel CHIP Catalog BSSP_CHIP_CATALOG”).

More Information

For more information, see SAP Library for SAP NetWeaver on SAP Help Portal under http://help.sap.com/nw703. In SAP Library, choose   SAP NetWeaver   SAP NetWeaver by Key Capability   Application Platform by Key Capability   ABAP Technology   UI Technologies in ABAP  :

  •   SAP NetWeaver Business Client  

  •   Floorplan Manager for Web Dynpro ABAP  

  •   Web UI Technology   Web Dynpro ABAP   Web Dynpro ABAP: Development in Detail   Advanced Concepts   Web Dynpro ABAP Page Builder