Show TOC

App Extensibility: My Opportunities Locate this document in the navigation structure

Extensibility information for SAP Fiori app.

You can extend the app according to your business needs for different aspects. For this purpose, the following extensibility options are available:
  • You can display or hide standard fields in the list view (S2 view), extend controls or change or replace the standard content. You can, for example, change the default attributes displayed (opportunity title) for items in the opportunities list.

  • You can add new customer fields and controls to the detailed view (S3 view) of opportunities or change or replace the standard content.

  • You can add new fields in the creation view (S5 view).

  • You can change the default buttons and actions in the footer toolbar or add customer-specific buttons and actions to this toolbar.

Extensibility of the List View (S2 View)

To extend the list view, the following extensibility entities are available on the different layers. You have to extend each of these entities according to your specific business needs:

UI

Back End/ABAP

View

Extension Point

Design Time: Gateway Entity

Design Time: Extension Include

Run Time: Superclass and Method to Be Redefined

S2.view.xml

opportunityItemExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

opportunityItemAttributeExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

opportunityItemStatusExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

Extensibility of the Detailed View (S3 View)

To extend the detailed view, the following extensibility entities are available on the different layers. You have to extend each of these entities according to your specific business needs:

UI

Back End/ABAP

View

Extension Point

Design Time: Gateway Entity

Design Time: Extension Include

Run Time: Superclass and Method to Be Redefined

S3.view.xml

opportunityHeaderExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityHeaderAttributeTopExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityHeaderAttributeBottomExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityIcnTabBarLeftExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityTabBarItemFirstExtension

Customer-specific entity

Customer-specific structure

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml opportunityInfoTabContentTopExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityInfoTabContentBottomExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

salesAreaInfoTabContentTopExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

salesAreaInfoTabContentBottomExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityProductTabContentExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityProductTabContentExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityProductTabColoumExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityProductTabCellsExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunitysalesTabContentExtension

OpportunitySalesTeam

CRMT_ODATA_OPPT_SALESTEAM_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunitysalesTabColumnExtension

OpportunitySalesTeam

CRMT_ODATA_OPPT_SALESTEAM_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunitySalesTabCellsExtension

OpportunitySalesTeam

CRMT_ODATA_OPPT_SALESTEAM_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityCompetitorTabContentExtension

OpportunityCompetitor

CRMT_ODATA_OPPT_COMPTITOR_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

competitorListContentExtension

OpportunityCompetitor

CRMT_ODATA_OPPT_COMPTITOR_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityDocHistContentExtension

DocumentHistory

CRMT_ODATA_OPPT_DOC_HIST_INCL

CRMT_ODATA_OPPT_DOC_HISTORY

S3.view.xml

opportunityDocHistTabColoumStartExtension

DocumentHistory

CRMT_ODATA_OPPT_DOC_HIST_INCL

CRMT_ODATA_OPPT_DOC_HISTORY

S3.view.xml

opportunityDocHistTabColoumEndExtension

DocumentHistory

CRMT_ODATA_OPPT_DOC_HIST_INCL

CRMT_ODATA_OPPT_DOC_HISTORY

S3.view.xml

opportunityDocHistTabCellsStartExtension

DocumentHistory

CRMT_ODATA_OPPT_DOC_HIST_INCL

CRMT_ODATA_OPPT_DOC_HISTORY

S3.view.xml

opportunityDocHistTabCellsEndExtension

DocumentHistory

CRMT_ODATA_OPPT_DOC_HIST_INCL

CRMT_ODATA_OPPT_DOC_HISTORY

S3.view.xml

opportunityTabBarItemLastExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S3.view.xml

opportunityIcnTabBarRightExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

Extensibility of the Edit View (S4 View)

To extend the edit view, the following extensibility entities are available on the different layers. You have to extend each of these entities according to your specific business needs:

UI

Back End/ABAP

View

Extension Point

Design Time: Gateway Entity

Design Time: Extension Include

Run Time: Superclass and Method to Be Redefined

S4.view.xml

opportunityEditContentTopExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S4.view.xml

opportunityEditContentBottomExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S4.view.xml

opportunityEditProductTabColoumExtension

OpportunityProduct CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S4.view.xml

opportunityEditProductTabColoumendExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S4.view.xml

opportunityEditProductTabCellsExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S4.view.xml

opportunityEditProductTabCellsEndExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

Extensibility of the Creation View (S5 View)

To extend the creation view, the following extensibility entities are available on the different layers. You have to extend each of these entities according to your specific business needs:

UI

Back End/ABAP

View

Extension Point

Design Time: Gateway Entity

Design Time: Extension Include

Run Time: Superclass and Method to Be Redefined

S5.view.xml

opportunityCreateContentTopExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml

salesAreaCreateContentTopExtension Opportunity CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml salesAreaCreateContentBottomExtension Opportunity CRMT_ODATA_OPPT_HEADER_INCL CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml

opportunityCreateContentBottomExtension

Opportunity

CRMT_ODATA_OPPT_HEADER_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml

opportunityProductTabColoumExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml

opportunityProductTabColoumendExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml

opportunityProductTabCellsExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml

opportunityProductTabCellsEndExtension

OpportunityProduct

CRMT_ODATA_OPPT_PRODUCT_INCL

CL_CRM_OPPORTUNITY_DPC_EXT

S5.view.xml

opportunityPartnerTabColoumExtension

OpportunitySalesTeam

CRMT_ODATA_OPPT_SALESTEAM_INCL

CRMT_ODATA_OPPT_SALES_TEAM

S5.view.xml

opportunityPartnerTabColoumendExtension

OpportunitySalesTeam

CRMT_ODATA_OPPT_SALESTEAM_INCL

CRMT_ODATA_OPPT_SALES_TEAM

S5.view.xml

opportunityPartnerTabCellsExtension

OpportunitySalesTeam

CRMT_ODATA_OPPT_SALESTEAM_INCL

CRMT_ODATA_OPPT_SALES_TEAM

S5.view.xml

opportunityPartnerTabCellsEndExtension

OpportunitySalesTeam

CRMT_ODATA_OPPT_SALESTEAM_INCL

CRMT_ODATA_OPPT_SALES_TEAM

Extensibility of the Footer Toolbar

To extend the footer toolbar, the following extensibility entities are available on the different layers. You have to extend each of these entities according to your specific business needs:

UI

Back End/ABAP

View

Extension Point

Design Time: Gateway Entity

Design Time: Extension Include

Run Time: Superclass and Method to Be Redefined

S2.view.xml

Extensibility of hooks delivered with the standard system — see section UI Controller Hooks

S3.view.xml

Extensibility of hooks delivered with the standard system — see section UI Controller Hooks

S4.view.xml

Extensibility of hooks delivered with the standard system — see section UI Controller Hooks

S5.view.xml

Extensibility of hooks delivered with the standard system — see section UI Controller Hooks

Further Extensibility Entities

Business Add-Ins (BAdIs)

The following Business Add-Ins are available for extensibility purposes:

  • CRM_OPPORTUNITY_ODATA_DB in enhancement spot CRM_OPPORTUNITY_ODATA_ENH.

    You can use this BAdI to define your own logic for reading, creating, or changing opportunities. This is necessary if, for example, you want to add your own fields, or use different processing logic for existing fields.

    You can find the BAdI in Customizing for SAP CRM under Start of the navigation path Customer Relationship Management Next navigation step Transactions Next navigation step Settings for Opportunities Next navigation step BAdI: Extension of Opportunity OData Service End of the navigation path

Extension Includes

In addition to the extension includes described above, the following extension includes are available:

DDIC

Extension Include

Use

CRMT_ODATA_OPPT_CURRENCY

CRMT_ODATA_OPPT_CURRENCY_INCL

Allows you to extend the Currency entity for opportunities

CRMT_ODATA_OPPT_ATTACHMENT

CRMT_ODATA_OPPT_ATTACHMNT_INCL

Allows you to extend the Attachment entity for opportunities

CRMT_ODATA_OPPT_CHANGEDOC

CRMT_ODATA_OPPT_CHANGEDOC_INCL

Allows you to extend the Change Document entity for opportunities

CRMT_ODATA_OPPT_NOTES

CRMT_ODATA_OPPT_NOTES_INCL

Allows you to extend the Note entity for opportunities

CRMT_ODATA_OPPT_STATUS

CRMT_ODATA_OPPT_STATUS_INCL

Allows you to extend the Status entity for opportunities

CRMT_ODATA_OPPT_PRIORITY

CRMT_ODATA_OPPT_PRIORITY_INCL

Allows you to extend the Priority entity for opportunities

CRMT_ODATA_OPPT_PROCESS_TYPE

CRMT_ODATA_OPPT_PROC_TYPE_INCL

Allows you to extend the Process Type entity for opportunities

CRMT_OPPT_ODATA_PRODUCT

CRMT_ODATA_OPPT_PRODMASTR_INCL

Allows you to extend the Product entity for opportunities

CRMT_ODATA_OPPT_SALES_STAGE

CRMT_ODATA_OPPT_SALESTAGE_INCL

Allows you to extend the Sales Stage entity for opportunities

CRMT_ODATA_OPPT_USER_STATUS

CRMT_ODATA_OPPT_USER_STAT_INCL

Allows you to extend the User Status entity for opportunities

For more information about extension includes, see the extensibility documentation for the respective SAP NetWeaver release on your front-end server at http://help.sap.com/fiori_implementation Start of the navigation path Extensibility Information for SAP Fiori Next navigation step Extending the UI Layer Next navigation step UI Extensibility Workflow Next navigation step  Next navigation step Checking the SAP-Enabled Extension Options Next navigation step Extension Includes End of the navigation path.

Extension Points

For <business case>, for example, the following extension points are available:

View

Extension Point

Use

<DDIC>

<Extension point>

If there are additional fields available in the OData service, you can display these fields on the UI. For more information, see the extensibility documentation for the respective SAP NetWeaver release on your front-end server at http://help.sap.com/fiori_implementation Start of the navigation path Extensibility Information for SAP Fiori Next navigation step Extending the UI Layer Next navigation step UI Extensibility Workflow Next navigation step  Next navigation step Checking the SAP-Enabled Extension Options Next navigation step Extension Points End of the navigation path.

UI Controller Hooks

To plug in and execute custom code, the following hooks are available in the controller code:

Controller

Hook

Use

S2.controller.js

extHookGetHeaderFooterOptions

Allows you to extend the footer toolbar functions in the list view.
Example Allows you to extend the sorting of the list using the attribute oSortOptions

S3.controller.js

extHookHideAccountImage

Allows you to hide or show all the business partner images

S3.controller.js

extHookHandleOpen

Allows you to extend the Follow Up pushbutton.

S3.controller.js

extHookSelectedTab

Allows you to extend the newly added custom tabs.

S3.controller.js

extHookSkipTab

Allows you to decide if the standard delivered code has to be executed when a tab is selected

S3.controller.js

extHookGetAdditonalCustomizing

Allows you to fetch additional customizing values from the backend during the launch of the application. You can use the controller hook extHookHandleBatchResponses to handle the responses.

S3.controller.js

extHookGetDataForDetailScreen

Allows you to fetch additional data and bind it in the detail screen.

S3.controller.js

extHookHandleBatchResponses

Allows you to handle the response of additional customizing fetch during launch of the application.

S4.controller.js

extHookBindAdditionalFields

Allows you to set values for additional fields that can be modified in the edit screen, from the detail screen. You can access the data of the detail page by calling the getDetailController function.

S4.controller.js

extHookCheckDeltaAndFrameRequests

Allows you to send additional update requests to the backend with the delivered updates which are on the header, status, employee responsible, and the product basket.

S4.controller.js

extHookAddCustomHeaderFields

Allows you to add additional fields that are part of the opportunity header.

S4.controller.js

extHookAddCustomColumnsForProductDelete

Allows you to add new columns during deletion of products from the product basket.

S4.controller.js

extHookCheckDeltaOnProductEntry

Allows you to check fields that have changed in the product entry.

S4.controller.js

extHookAddCustomColumnsForProductModify

Allows you to add new columns while modifying products in the product basket.

S4.controller.js

extHookAddCustomColumnsForProductCreate

Allows you to add new columns while creating products in the product basket.

S4.controller.js

extHookHandleResponsesForCustomUpdates

Allows you to use this for custom handling of the responses for the custom updates. The oResponses argument contains the responses for all the requests that are framed. The specific response can be identified by using the changeSetMapping number as an index in the oResponses array.

S4.controller.js

extHookValidateAdditionalFields

Allows you to implement custom validations to validate additional fields.

S4.controller.js

extHookExtendProductEntry

Allows you to add extra fields to the product entry.

S5.controller.js

extHookCustomLogicForAttachRouteMatch

Allows you to use custom logic for newly added extension points.

S5.controller.js

extHookOnSave

Allows you to validate the extended data before saving.

S5.controller.js

extHookEnableSaveBtn

Allows you to decide if the Save pushbutton is to be enabled for the fields that you have added to the new opportunity page

S5.controller.js

extHookExtendProductEntry

Allows you to extend pushObject. This enables modification of the product entry that is being updated.

S5.controller.js

extHookExtendSalesItemEntry

Allows you to extend pushObject. This enables modification of the sales item entry that is being updated.

S5.controller.js

extHookSaveOentry

Allows you to extend oEntry. New Attributes can be defined in addition to the existing oEntry attributes.

S5.controller.js

extHookExtendProductEntryOnAdd

Allows you to add extra fields to the product entry for the product basket.

If there are additional UI controller hooks available in the controller code, you can add own code. For more information, see the extensibility documentation for the respective SAP NetWeaver release on your front-end server at http://help.sap.com/fiori_implementation Start of the navigation path Extensibility Information for SAP Fiori Next navigation step Extending the UI Layer Next navigation step UI Extensibility Workflow Next navigation step  Next navigation step Checking the SAP-Enabled Extension Options Next navigation step UI Controller Hooks End of the navigation path.

Display of UI Controls

As an example, the following UI controls can be hidden from the app UI:

View

Control ID

Use

<View>

<Control ID>

For more information about hiding UI controls, see the extensibility documentation for the respective SAP NetWeaver release on your front-end server at http://help.sap.com/fiori_implementation Start of the navigation path Extensibility Information for SAP Fiori Next navigation step Extending the UI Layer Next navigation step UI Extensibility Workflow Next navigation step  Next navigation step Checking the SAP-Enabled Extension Options Next navigation step Hiding UI Controls End of the navigation path.

More Information

For a general description of the extensibility options and procedures of SAP Fiori apps, see http://help.sap.com/fiori_implementation Start of the navigation path Extensibility Information for SAP Fiori End of the navigation path.