Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
Masaaki
Product and Topic Expert
Product and Topic Expert
256,615

Purpose of this blog


This blog is about how to add a field in standard Fiori apps and other objects by using “Custom Fields” menu in Key User Extensibility Tools “Custom Fields and Logic”. It also intends to explain how internal objects are enhanced internally when adding a field with Custom Fields and Logic, e.g. how a field is added to a table. The tool is not only for new fields but it can add the fields already in the source table to objects like standard Fiori apps.

Custom Fields and Logic has 3 functions, Custom Fields, Data Source Extensions and Custom Logic, but this blog focuses only on Custom Fields.

Highlight of this blog:

  • Introduction of Extensibility Registry to find the target object.

  • Explain how a field is added in the relevant objects (table, CDS view, etc..) internally.


Note: this blog is mainly for S/4HANA Any-Premise and S/4HANA Cloud Extended, but I believe it should also help using the tool in S/4HANA Cloud Essentials.

It is also possible to add fields already in the table to apps using CFL. See the blog for further detail.

See the section of the blog to understand more about how to add the fields to the VDM (standard CDS View) for the standard Fiori apps. If the object you want to add is not in Extensibility Registry, it is possible to add fields to VDMs with Extend View. See the blog for further detail.

For adding fields in Universal Journal, see SAP Note 2453614 FAQ: Universal Journal Extensibility.

 

Topics:



 


Why is the tool “Custom Fields” very important?


This tool is so important for S/4HANA implementation as it is typical requirement to add fields to standard apps and objects, and this tool help reducing the efforts to add fields drastically by automate the tasks needed to add fields.

In ECC, for adding a field in a screen, firstly it has to be added in the source table using append structure with the transaction SE11, and secondary, they also have to be added in the Dynpro screen with the transaction SE51, and finally, the ABAP logics have to be added to send/receive the values of the added fields between screen and the tables using User/Customer Exit (Transaction SMOD/CMOD) or BADI (Transaction SE18/19).

However, thanks to “Custom Fields”, those tasks are automated! It takes only about several minutes to add fields to the apps and objects. In other words, when fields have to be added in S/4HANA implementation, it is expected to review if this tool could be used. It is also the case even when the screen is SAPGUI Dynpro. It is against best practice to ignore this tool and add the fields manually as it had done in ECC. Therefore, more than technical or Fiori experts, functional experts are expected to understand this tool. Don’t worry, it is not difficult. You can enjoy reducing the efforts with this magic!

In addition, this tool should contribute to making more standard Fiori apps available by adding the important custom fields in the standard Fiori apps. One of the main reasons why a standard Fiori apps cannot be used by business users is important custom Fields for them are missed in the standard Fiori apps. Thanks to Custom Fields, it could be overcome!


Background Info: S/4HANA Extensibility and Key User Extensibility tools


Key User Extensibility tools are the tools to create or enhance the objects without custom coding, and Custom Fields and Logic (CFL) is one of the main tools in Key User Extensibility Tools. Custom Field is a menu in this tool.

In S/4HANA context, S/4HANA Extensibility means creation and enhancement of the apps and objects (note: it does not mean only enhancement). It consists of In-App Extensibility and Side-by-Side Extensibility. In-App Extensibility means creation of the object IN S/4HANA and Side-by-Side Extensibility means development or enhancement OUTSIDE OF S/4HANA, mainly with SAP Cloud Platform. In-App Extensibility consists of Key User Extensibility and Classic Extensibility. Classic Extensibility means traditional custom development like custom program and Function Module. In S/4HANA, the way to create custom object with tools are provided in addition to classical ways, which is called Key User Extensibility tools. In S/4HANA Cloud (SaaS), Classic Extensibility is not available and Key User Extensibility is the only way for In-App Extensibility.

Please note that Key User tools are not only the tools for extensibility, but there are some other tools  in S/4HANA like “Manage Date Function”, I personally want to call it Key User tools. There are some other “In-App tools”. See the blog regarding “In-App tools” for analytics. In addition, conceptually, enhancement of S/4HANA using other SAP or third party tools can be included in Side-by-Side Extensibility, e.g. create analytical apps with SAP BusinessObjects or Microsoft Power BI.




Technical overview



Custom Fields in CFL


You can use Custom Fields and Logic by assigning the role in which technical catalog SAP_BASIS_TCR_T is included.

Custom Fields and Logic has 3 menus (Functions),

Custom Field: Create custom fields to the table and add it to applications and objects, or add fields already been in the source table to applications and objects.

Data Source Extension: Add fields to a data source from the source view or the CDS View already associated to the source.

Custom Logic: Add logics to fill/display the value of the custom fields.

See SAP Help in detail.

Focus of this blog is on Custom Fields.




Business Context and the target objects


In Custom Fields in CFL, a field is added to “Business Context”. “Business Context” is a business object in S/4HANA like Material, Business Partner, Product or Billing Document, Journal Entry Item. After that, the fields in the Business Context is added to Fiori apps which uses this business context, e.g. a field is created in the Business Context PRODUCT can be added to Manage Product Master Data (F1602).

There are 2 ways to find the Business Context and the target objects: 1) Extensibility Registry and 2) Detail of each Business Context in Custom Field in CFL (Transaction SCFD_EUI). See the blog in detail.


1. Extensibility Registry


You can find which Business Contexts are in S/4HANA and which objects can be enhanced in Extensibility Registry (Transaction SCFD_REGISTRY). If you want to add a field to business object or apps in S/4HANA, it is expected to check if it is possible with CFL in Extensibility Registry before adding it manually. In other word, if the objects you want to add a field are not in Extensibility Registry, there are no other ways but to add it manually. In case something is not available here, a customer can request it via https://www.sap.com/about/customer-involvement/influence-adopt.html.

 

Business Context tab:



Click a entry (PRODUCT_PLANT) and the detail info is displayed.



Relevant for structural enhancement: The business context is relevant for field extensibility.

Relevant for logic enhancement: The business context is relevant for BADI registration

Persistence Include: This “ddic include” is a part of the database tables that are extended by the Custom Field. It must also be used in the structures that transport the field contents in the ABAP. The “persistence include” is extended by an append, when a new custom field is published.

Transient include: This include is part of the binding structure of an OData service. It contains additional fields (e.g. for descriptions and field control) that are not persisted.

Change indicator include: This include is extended when the application uses change flags to indicate that field content should be transferred (e.g. in a BAPI).

Field Suffix: To prevent name conflict, the custom fields get business context dependent name suffixes.

Quota definition: Here the application defines how many fields with how many bytes a customer may define in this business context.

 

Relationships between the Business Context and the source tables might be explained in some SAP Notes like SAP Note 2590603. This Note is about the relationship between MARC and PRODUCT_PLANT. Or, you could find it with the SELECT statement like below.
SELECT a.business_context, a.persistence_include, b.tabname
FROM cfd_w_bus_ctxt AS a
JOIN dd03l AS b
ON a.persistence_include = b.precfield
JOIN dd02l as c
ON b.tabname = c.tabname
WHERE b.precfield LIKE '%_EEW_%'
AND c.tabclass = 'TRANSP'
AND c.APPLCLASS <> ''
ORDER BY 1, 2, 3

(This SELECT Statement was proposed by an expert (Daniel) who advised in the comment.

You can run the SELECT statement with transaction DBACOCKPIT > Diagnostics > SQL Editor.

Extensible CDS View tab:



Detail of I_PRODUCTPLANT



 

Extensible OData Model tab:



MD_C_PRODUCT_MAINTAIN_MDL



Support of Custom Fields tab:

Impl. Type: The implementation type shows how the OData service is implemented ( RDS: Referenced Data Source, SADL: Mapped via SADL, ' ': Manual implementation ).

Basic Search support: Shows if the OData service supports basic search for custom fields.

Filtering supported: Shows if the OData service supports filtering for custom fields.

CDS View Name: Must be filled for SADL and RDS implemented OData services. If you extend the OData service then the CDS view is extended automatically.

 

Function Module (BAPI) tab:

The FM for the business context PRODUCT_PLANT is CMD_MIG_PROD_MAINTAIN.



Some of the BAPIs are used as the source of Migration Object in Migration Cockpit. Below are the BAPIs used in Migration Object on S/4HANA1909.




























Migration Template Function Module Wrapper Function Module
SIF_SALES_ORDER BAPI_SALESORDER_CREATEFROMDAT2
SIF_MAT_CONSUMP BAPI_MATERIAL_SAVEREPLICA
SIF_GL_BALANCES

BAPI_ACC_DOCUMENT_CHECK

BAPI_ACC_DOCUMENT_POST
DMC_MIG_ACC_DOCUMENT_POST
SIF_SD_CONTRACT BAPI_CONTRACT_CREATEFROMDATA

 

Other than above, the following target objects can be checked in Extensibility Registry.

BADI tab: The listed BADIs are used in Custom Logic.

Data Transfer tab: Data transfers define the transport of the content of a custom field from a source business context to a target business context. The application has to call method

cl_cfd_data_transfer_factory=>get_data_transfer_runtime( )->transfer_data in addition to the registration. (the sample source is in Extensibility Registry)

Business Scenario tab: A business scenario is a collection of data transfers. Every involved business context must be connected to the other business contexts via a data transfer. No gaps are allowed.

SAP GUI Context

SOAP Service

IDoc

Association Target

 

The relationship of the tabs between Extensibility Registry and “Custom Field” tool is Not 1:1.

BADI is not in “Custom Fields” (but in “Custom Logic”), and Association Target is the selection list of the association to business object when selecting “association to business object”.


2. Detail of each Business Context in Custom Field of CFL


The target objects for a Business Context can be checked in each tab of “Custom Fields”.

Target objects for Business Context ”Sales: Sales Document”:

UIs and Reports tab:

In UIs and Reports tab, Data Source includes

  • CDS View (starting with C_ or I_ ) ,

  • OData created with transaction SEGW (ending with _SRV in normal),

  • Description of the OData, which is the Entity Types included in the OData, not the description of the OData itself.

  • SAPGUI screen




Email Templates:

Email Templates are only implicitly listed in the Extensibility Registry. Only the CDS Views on which the Templates are based on, can be found.



Form Templates:

Form are only implicitly listed in the Extensibility Registry. Only they CDS Views on which the Templates are based on, can be found



Business Scenarios:



OData API:



SOAP API:



BAPI:




Preparation for Custom Fields and Logic


For using Key User tools including CFL, it is necessary to activate Key User Extensibility. See the SAP Note 2283716 and 2807979 (for on-Premise).

Next, create the role in which the Fiori Catalog “SAP_BASIS_BC_EXT” is included in the menu with the transaction PFCG (in S/4HANA on-Premise). In this catalog, some Key User tools like Custom Fields and Logic are included.

Make the statuses of all authorization objects green in the authorization profile generated in Authorizations tab, and assign the role to your user.



 

After Logging in Fiori launchpad, you can find the catalog “Extensibility” is added. In the menu “App Finder”, add CFL in “Extensibility” catalog to “My Home”.



 

Now you can launch this tool from Fiori launchpad “My home” group.




Add a field to Business Context and apps



Add a field to a Business Context



Steps to add a field to a Business Context


Launching CFL in Fiori launchpad.



Select a Business Context and enter the info for the field to be added.

Push “Create” icon in top-right.

In the following case, enter as below and push “Create and Edit” in bottom-right.

Business Context: Master Data: Sales Document Item

Label: Cust Fld 90

Identifier: ZZ1_C90

Tooltip: Cust Fld 90

Type: Association with Business Object *

Business Object: CUST90 *



  • When selecting “Association to Business Object”, List for Value help can be associated to the created field. In the case above, CUST90 has already been created supposed to be associated to this field beforehand using Custom Business Object. Other than the Custom Business Objects, Views in “Association Target” tab of Extensibility Registry are prepared by default.

  • The following types are provided.




When selection Code list, Code list can be created, and internally the CDS View for the value help is generated and associated to the field.



General Information tab



BAPIs tab (the BAPI is enabled when the field is added).



  • In the screen above, the column Data Source is added with the personalization button (top-right).


 

Push “Publish” in the bottom-right of the screen.



Status is changed to “Publishing”.



Several minutes later, it is changed to “Published”.



Internally, the field is added to the source table(s) with persistent structure

(if the table of the selected business context is Compatibility View, e, the field is added to relevant CDS Views used as the Compatibility View with Extend View, e.g. business context product plant and Compatibility View MARC).

 

Fields to be added to the table:

The fields can be added in the table of the initial screen of CFL with Personalization button (top-right).

Associated Business Objects, Origin (whether created with CFL or already in the table), Created By, Created On, Changed On and Original Language are added below.



 

Custom Fields and Logic can be launched from Runtime Adaptation of the corresponding UI. This way the correct Business Context and Target Object are already pre-selected.

For most types, conversion routine is not included in the added custom fields, e.g. ALPHA conversion routine. If you use the field type “Code List based on CDS View” the key fields including their data element properties are derived from a specified CDS view. This would however require a CDS view. The other way is to add fields with Tcd SCFD_EUI.

 


How is a field added technically


In the table VBAK, the field is added via the persistent structure of this business context SDSALESDOCITEM_INCL_EEW_PS.



Function Module: The field ZZ1_C90 is added in the following Function Modules

BAPI_CUSTOMERCONTRACT_CHANGE

BAPI_CUSTOMERINQUIRY_CHANGE

BAPI_SALESORDER_CHANGE

BAPI_CUSTOMERQUOTATION_CHANGE

BAPI_CONTRACT_CREATEFROMDATA

BAPI_INQUIRY_CREATEFROMDATA2

BAPI_SALESORDER_CREATEFROMDAT2

BAPI_QUOTATION_CREATEFROMDATA2

 

How is the field added to the BAPIs:

BAPI_SALESORDER_CHANGE

BAPE_SDSALESDOCITEM is BAPI Ext structure for EXTENSIONIN in the FM BAPI_SALESORDER_CHANGE. SDSALESDOCITEM_INCL_EEW_PS is the persistent structure for the business context SD_SALESDOCITEM (Sales Document). This structure has the field ZZ1_C90_SDI is added.

 

Extensibility Registry (Transaction SCFD_REGISTRY)

Open FM BAPI_SALESORDER_CHANGE and double click BAPI Ext structure BAPE_SDSALESDOCITEM.



Double click the structure SDSALESDOCITEM_INCL_EEW_PS.



The field ZZ1_C90_SDI is there.



See the SAP help to understand how to use EXTENSIONIN to enhance BAPI.

EXTENSIONIN in FM BAPI_SALESORDER_CHANGE.

Click Associated Type BAPIPAREX.



BAPIAREX



When you use the BAPIPAREX structure, the field values have to be converted to a special format via the methods of class CL_CFD_BAPI_MAPPING, e.g. the case for Condition Contract.



How to add the field to the FMs which are not in the Extensibility Registry


It depends on the FM how to add the field to the FMs which is not in the Extensibility Registry.

Examples:

  • Field added in MARA to BAPI_MATERIAL_SAVEDATA


Add the field to BAPI_TE_MARA and BAPI_TE_MARAX and use it in Extensionin of BAPI_MATERIAL_SAVEDATA. See wiki in detail.

 

  • Field added in PO tables (EKKO/EKPO, etc) to BAPI_PO_CREATE1.


It is possible to map the new fields in principle in the BAPI using the BAdI ME_BAPI_PO_CUST-> EXTENSIONIN.

MEPOHEADER and MEPOITEM are in the signature of that method so it is possible to map the fields.

See the wiki in reference.


Add a field to apps



Steps to add a field to the relevant objects


Firstly, the custom field has to be added to the data sources. After that, it can be added by manual operation, or added automatically. For using the custom field in KPI app in the views by default, new KPI app has to be created by coping original one. "Adapt UI" is used to add in Object Page and Fiori element apps. In Webdynpro Data Grid and Fiori Design Studio, the field is added automatically in as free column,

 

The fields can be added to the data sources in UIs and Reports tab.

In UIs and Reports tab under Custom Fields tab, set to display Data Source column from Personalization icon.



Data sources are displayed.



 

Push “Enable Usage” for the following 3 data sources in this case.

  • C_SALESCONTRACTITMFLFMTQ (Analytics - Sales Contract Fulfillment Rate)

  • SD_F2583_SLSITMPRPSL_SRV 0001 (Manage Sales Item Proposals)

  • C_SALESQUOTATIONITEMQRY (Sales Quotations - Flexible Analysis)






 

After Saving, push “Publish” in bottom bottom-right.



  • The data source starting with I_ or C_ are VDM (CDS View), and others (most of which end with _SRV ++++) are OData created with Gateway Service Builder (Transaction SEGW).


 

The “Publishing” is started and will be finished several seconds later. (the status is changed to “Published”.




How is a field added technically


How to add fields in the UI depends on Fiori app type.

For KPI app, the new app must be created (copy) to add the fields in the initial screen, but if you do not have to add in the initial screen but it is enough to make it possible to add the field manually after launching the app, you do not have to copy and create new one.

For Fiori Design Studio app or Webdynpro Grid, the field is added automatically.

For Fiori Elements Object page, you can use "Adapt UI" in Fiori launchpad.

For other Fiori Elements app or Freestyle app, if the source is CDS View, you may be able to add with UI annotations by using it with Metadata Extension(for the CDS Views in which metadata extension is set to be allowed with "Metadata.allowExtensions". But in some other cases, e.g. the source is OData Project (T-cd SEGW), it might be more complex.

 

Check the internal objects in which the field is added.

KPI app: CDS View C_SALESCONTRACTITMFLFMTQ / Sales Contract Fulfillment Rates (F1905).

CDS View C_SALESCONTRACTITMFLFMTQ is used in Sales Contract Fulfillment Rates(F1905).

Open the CDS Views (Data source). The field is added with the Extend View.

Like Append Structure, by using Extend View, the field in the source can be added to the standard VDM without changing the view name.



In the Extend View, the field ZZ1_C90_SDI is added to C_SALESCONTRACTITMFLFMTQ.



In I_SalesContractItemFlfmtCube, the source of C_SALESCONTRACTITMFLFMTQ, the field and the associated view is added with the Extend View.



ZZ1_C90_SDI is from E_SalesDocumentItemBasic , the source of which is VBAP, and which has been associated to I_SalesContractItemFlfmtCube. The source of I_SalesContractItemFlfmtCube is VBAP, so in a sense, VBAP is joined to VBAP. But performance would not get worse because of the join as when the data is accessed, thanks to HANA SQL optimization, SELECT is optimized internally to retrieve the same result without joining VBAP. See SAP Note 2000002 in detail.



 

Run the app “Sales Contract Fulfillment Rates” (F1905) in Fiori launchpad.



The application is launched. Push "Setting" icon (top-right).



The field created with CFL is selectable when trying to do with the value help.

 

To use the custom field in the View, new KPI has to be created by copying original KPI app with the tool “Manage KPIs and Reports”.

Fiori Element List Report : Manage Sales Item Proposals (F2583)

The source is SD_F2583_SLSITMPRPSL_SRV 0001

With transaction SCFD_REGISTRY, you can find CDS View C_SALESITEMPROPOSALITEMTP is the source of the OData SD_F2583_SLSITMPRPSL_SRV as below.



The Extend View has been created to add the field and the associated view to CDS View C_SALESITEMPROPOSALITEMTP.

In ADT, Open C_SALESITEMPROPOSALITEMTP and jump to the Extend View.



In the Manage Sales Item Proposals (F2583), the field added with CFL is included. Launch this app from Fiori launchpad.



The application is launched, and the records are retrieved by pushing Go. Click one record and go detail.



The field added with CFL is included in the table of Materials.



Fiori Design Studio : Sales Quotations - Flexible Analysis (F4093) / CDS View C_SALESQUOTATIONITEMQRY 

CDS View C_SALESQUOTATIONITEMQRY is the source of Sales Quotations - Flexible Analysis (F4093), which is Fiori Design Studio application. When a field is added to the source CDS View, it is also added to the application automatically when the app type is Fiori Design Studio.

When a field is added with CFL, Extend Views have been created to add the field to C_SALESQUOTATIONITEMQRY and the source Interface view of this consumption view. You can find them with ADT.

Extend View for C_SALESQUOTATIONITEMQRY



Extend View for I_SALESQUOTATIONITEMCUBE_2 (source of C_SALESQUOTATIONITEMQRY)



In Fiori launchpad, launch the app Sales Quotations - Flexible Analysis (F4093).



The field is added in the application.



Note: Text of the field is not added although the field type is “association with Business Object”, as the analytics category is not set to DIMESION in the associated CDS View. It is not the case when selecting “Code List” as field type. Then Analytics category of the generated CDS View is set to DIMENSION.


Others



  • For the field type Text, master view cannot be associated to the custom field. For adding the field with associated custom master CDS View based on custom table, the field and the custom master view have to be added with Extend View manually.

  • To derive the values to be written in the standard field from the value inputted in the custom field, technically Custom Logic could be used, but it depends on the BADI provided for Custom Logic. In case of SD, it is not possible to derive the value for standard field.

  • One typical requirement is to add a field with associated master view, and the custom table must be the source of the master view. For meeting the requirement, the field has to be added manually to the source table and the master view should be created using the custom table as the source. In the transaction SCFD_EUI, add this field as Custom Field and select LIST as semantic type and set the created custom master view as the value help view. See the blog in detail. See also SAP Note 2632727 and 2660620.

  • For adding fields in BW provider for BPC Optimized for S/4HANA, please use Metadata Extension Tool with which the fields in ACDOCA/P are added to corresponding HANA Calculation View and InfoProvider, e.g. /ERP/SFIN_V01. But you have to add the fields in the BW Queries manually with BW-MT.

    • You can run Metadata Extension Tool in Customizing:Tcd SPRO > Controlling>General Controlling>Planning>Setup for Planning>Enhance InfoProvider with Additional Fields.

    • Alternatively, VDMs corresponding to BPC Optimized for S/4HANA contents could be used sepecially for the cases BPC Optimized function (Planning) is not used. See more in this section of the blog.



  • To add the fields added to the master data also to the app, firstly, enable usage to the master data in UIs and Reports tab and then go to Data Source Extensions tab and add the field to teh app.

    • e.g. Firstly, add a custom field (XYZ) to the business context Cost Center Master Data, and add (push Enablee Usage) XYZ to Data Source "Cost Center" (I_CostCenter).
      Next, go to Data Source Extensions tab and select "G/L Account Balance - Cube " (I_GLACCTBALANCECUBE) and you can find XYZ under "Cost Center" in the left side, and you can add it to the data source.
      Finally, go back to the initial screen of the Data Source Extensions and select "Trial Balance". you can find XYZ in the left side, which you can add.




Hope you enjoy more and more standard Fiori apps by adding important fields with Custom Fields and Logic!
136 Comments
islam_saleh
Explorer
0 Kudos

Hello Masaaki

Thanks a lot for your explanation actually it's a great blog and very helpful, I followed your steps but I stuck in adding custom field with type code list but in testing the field appears like text and the value help button disappeared, when I entered a value out of value range the system saved but with error that the value entered is out of range. The fiori app used for extend is Create Opportunity in customer management 

Can you guide me to solve

sakshi_sawhney
Participant
0 Kudos

Hello Masaaki ,

 

Thank you for your detailed article.

However for our requirement we are looking for deletion of the created custom fields. The custom fields were added from the Backend in CI_COBL and later published via CFL app. However when we try to disable the publishing of these fields i don't see any option in CFL app . Please can you guide. Have searched lot of articles but couldn't find any option.

We disabled the usage of this custom field in all the tabs but still the Delete option or unpublish option isnt visible. Are we missing out on any step ? Would really appreciate your inputs here.

PFB screenshots :

Unable to add screenshots

 

 

Masaaki
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Sakshi,

sorry, pls create the cusotmer incident.

regards, Masa
sakshi_sawhney
Participant
0 Kudos
Hello Masaaki ,

Thank you for your reply !

Just wanted to check , do you mean i should ask the project counterpart to raise a SAP OSS .. as it could be a potential bug with CFL ?

 

Thank you !
Sriram
Explorer
0 Kudos

Hi Masaaki,

 

Very good information way to add custom fields & logic for S4 HANA FIORI Apps.

 

I have Question:

We have requirements where need to create additional tabs in Sales Order & Quotation Item screens with few custom fields & Push button & for specific Types of Orders it should work.

- Development team is doing the functionality in SAP GUI Transactions (Classic Extensibility).

Is it the right approach to follow? - Enhancing GUI Transaction? (or) this Additional Tab, Button & Custom fields need to be added through 'Custom Fields and Logic' FIORI App. for Quotation & Sales Order standard Apps. & enable for all BAPIs, BADI etc...?

Will all these new fields & related logic/functionalities reflect in Standard SAP Delivered S4 HANA FIORI Apps. of Quotation & Sales Orders if only GUI Transactions Enhancement (Classic Extensibility) is done?

Can you provide your inputs.

Thank you in advance.

 

dkle
Participant
Hi Masaaki,

thank you very much for your detailed blog post.

In section "Relationships between the Business Context and the source tables" you posted an SQL-command, but this command only returns the database table name, and not the business context (MARC instead of PRODUCT_PLANT in your example).

I therefore want to propose an alternative SQL-statement:
SELECT a.business_context, a.persistence_include, b.tabname
FROM cfd_w_bus_ctxt AS a
JOIN dd03l AS b
ON a.persistence_include = b.precfield
JOIN dd02l as c
ON b.tabname = c.tabname
WHERE b.precfield LIKE '%_EEW_%'
AND c.tabclass = 'TRANSP'
AND c.APPLCLASS <> ''
ORDER BY 1, 2, 3

This is returning 77 rows in our S4 2021 system.

Example output:

PRODUCT_PLANT       PLNT_INCL_EEW_PS             MARC

 

Best Regards

Daniel
dkle
Participant
0 Kudos
Yes, "raise a SAP OSS" is the same as raising a customer incident.

However, if we check the official PDF, it says "deletion is not possible if a field has been transported". Did you already transport it?

https://assets.cdn.sap.com/sapcom/docs/2018/05/606d1ee8-037d-0010-87a3-c30de2ffd8ff.pdf
pooja_gupta02
Explorer
0 Kudos
Hi,

 

Nice blog, I am able to add custom field at the header level in manage and track sales order app but not able to add the field at the line item level. Added field as Sales Document line item as mentioned in the blog but some how field is not visible on the screen.
Ruthiel
Product and Topic Expert
Product and Topic Expert
0 Kudos
Thank you Masaaki for this post!
It is really helpful!
LJ1
Explorer
0 Kudos
Hi Kalyan

did this field show up in SAP GUI in any of material master transaction such as MM01, MM02, MM03? if so, could you share how you made configuration ?

Regards,

LJ

 

 

 
Masaaki
Product and Topic Expert
Product and Topic Expert
0 Kudos
Thanks Daniel!

Great!

regards, Masa
sakshi_sawhney
Participant
0 Kudos
Yes we work in agile so each sprint end transports are released
sakshi_sawhney
Participant
0 Kudos
Thank you masaaki for your replies ..

I have a question here .. can we make CFL fields ready only ?

I am using procurement business context - I wasn't able to see option to control this property now the badi for pr available under custom logic supports making CFL fields read-only. Please can you throw some light here. Is it apart of some further release or still achieveable ?
shavneet1
Participant
0 Kudos
Very nice blog Masaaki ,

i was trying to use Adapt UI method , to extend the on standard app delivered by SAP using custom field and logic app , as explained by you above. But i am getting an information message " Application is not enabled for Adaption ".

Any cue , why i get this message , and how to resolve it.

 

 

Regards ,

Shavneet
alexanderst
Explorer
0 Kudos
Hi masaaki.arai

thank you very much for this very detailed and highly helpful post.

Maybe you can support me in my situation.

I added a new field "XYZ" in the cost center master data using the business context "Cost Center Master Data". I can see this field "XYZ" in the master data field of the cost center for e.g. in the app "manage cost centers". For reporting purposes: e.g.: Trial Balance, I need to analyze not only by the cost center but also by this specific cost center master data field "XYZ".

 

Can you be so kind to advise how to make it possible? Maybe I used the wrong business context? For example when i create a field "XYZ2" with the use of the business context "Accounting: Journal Entry Item", then I can see this field in the Trial Balance, but not in the master data of the cost center.

 

I highly appreciate your response!

 

Thanks and kind regards,

Alexander
Masaaki
Product and Topic Expert
Product and Topic Expert
Hi Alexander,

Thanks for the good question.

I have added the way in the last comment of the last chapter "Others" as below.

  • To add the fields added to the master data also to the app, firstly, enable usage to the master data in UIs and Reports tab and then go to Data Source Extensions tab and add the field to teh app.

    • e.g. Firstly, add a custom field (XYZ) to the business context Cost Center Master Data, and add (push Enablee Usage) XYZ to Data Source “Cost Center” (I_CostCenter).
      Next, go to Data Source Extensions tab and select “G/L Account Balance – Cube ” (I_GLACCTBALANCECUBE) and you can find XYZ under “Cost Center” in the left side, and you can add it to the data source.
      Finally, go back to the initial screen of the Data Source Extensions and select “Trial Balance”. you can find XYZ in the left side, which you can add.




Thanks, Masa

 

 
tinegv
Explorer
0 Kudos
Hi masaaki.arai,

Thanks for a nice blog.
We have a lot of custom fields in the PO (SAPGUI) and wanted to try out the in-app extension framework in S/4 Hana using the 'Custom fields' and 'Custom logic' Fiori apps. The issue is that when we enable it for the SAPGUI version, all fields end up in a list in a new tab called 'Custom fields'. We have not found any way to change the sequence, group them, etc. We have up to 40 custom fields just in the header (today they are spread over several different tabs)  and it will be cumbersome for the user to scroll in the little frame available in the PO header.
Is this an issue SAP is aware of and will they put in any effort to solve this issue?
Still I find it much faster to create the PO in SAPGUI than in the Fiori and the Change PO redirects to the Web SAPGUI version so the SAPGUI version will be used

Best regards, Tine
Masaaki
Product and Topic Expert
Product and Topic Expert
tinegv
Explorer
0 Kudos
Hi Masa,

We haven't thought about that so this is a good idea 🙂 We will check it out.

Thanks!

Regards, tine
liberty-wes
Explorer
0 Kudos
Hi Masa,

I have ran into an issue with displaying my Custom Fields that I need help determining if it is due to a user-error or a system/app bug.

I am adding custom fields to “Manage Bank Account” (aka BAM ) Fiori app.  I have added the custom fields via “Custom Fields and Logic”, enable them for BAM, and Published.

My issue is I originally created and added custom fields to BAM for display (via “Adapt UI”) but they were of the wrong data type.  So I deleted them from “Custom Fields and Logic” and removed them from BAM display.  Then I created them with the same exact name in “Custom Fields and Logic” again but with their correct data type.  When I go back to BAM display to add the fields again, they are not available for any group in that section I originally had them.  If I try to add them to a different section that I never had tried before, then they appear as available to add.

So it appears to me that the recreated field (with the same exact name) is stuck in no-man’s-land when trying to add it back again in the same section.

Thoughts?

Thank you,

Wes
Masaaki
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Wesley,

I believe it should be bug. pls create a ticket.

regards, Masa
liberty-wes
Explorer
0 Kudos
Great thank you, I submitted a SAP Support ticket today for it.  Incident #002075129500007943772022.
raphaelwinter
Explorer
0 Kudos
Great and very informative article, thanks Masa.

The idea is to create new custom fields. First CF is for PO process and the supplier invoicing. If possible, information in supplier invoicing should be taken from PO.

Second CF is for SO process and billing document. Also here, information in billing document should be derived from CF in SO.

The fields in PO and SO can be filled with pre-delivered information (available in drop down or value help). Should that be a code list, or an associated business object?

Also, the information that is entered in PO and SO process needs to be available for reporting and analysis in apps like for example "display line items in general ledger". But what business context should I use when I create the CFs if I need the fields available during the creation but later also shown in the apps?

Thanks for any insights!

Raphael
alexanderst
Explorer
0 Kudos
Thanks Masa, you helped a lot. Your feedback was very valuable for me.

Kind regards,

Alexander
alexanderst
Explorer
0 Kudos
Hi Masa,

are you aware, if I can customize Universal Allocations also with the App "Custom Fields and Logic"?

I want to perform allocation of actual overhead cost from a Cost Center in combination with a GL account and Functional area via a secondary GL account to a different Cost Center and different Functional Area.

In the scope of using "Margin Analysis" as allocation context I can create a segment in the allocation cycle and use as a sender the cost center and add the functional area on the receiver side. But unfortunately, I cannot add a Cost Center there on the receiver side. On the other side, I cannot add a Functional Area on the sender side. Is there any chance to add the cost center on the receiver side and functional area on the sender side as well via customization of the app "Custom fields and logic"?

Summary of my question:

Is there a business context in "Custom Fields and Logic", which might give me a chance to customize Universal Allocations fields and logic?

Thanks and kind regards,

Alexander
liberty-wes
Explorer
FYI we were able to resolve this issue via updating our UI5 from v1.84.17 to v1.84.31.  Thanks.
sunilrajashekar
Explorer
0 Kudos

@masaaki.arai

Thank you for the blog. this is very helpful. I have a question - is it possible to add a field in an existing report app e.g. Supplier Line item report, GR IR reconciliation App, Supplier Line item with Account Assignment etc. These reports extract data from source standard tables. So if we want specific fields in these reports can we add custom fields and using the custom logic option? This part was not clear to me in the blog. From the blog i understand we can add fields for user entry screens. But unsure about report apps.

Masaaki
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Sunil,

you can check with Tcd SCFD_REGISTRY

.

regards, Masa
Masaaki
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Alexander,

you can check with Tcd SCFD_REGISTRY.

regards, Masa
sunilrajashekar
Explorer
0 Kudos
Hi Masa

yes i had checked the tcode you mentioned. They have limited options of the supplier line item app. There are other apps we are exploring so something should work out.

 

If we choose to use CFL app to add a custom field say to a business context - 'cost center master data' and use the data source extension option to extend to GL line item. Would this result in creating a field in table ACDOCA at the backend? curious to know where does the data get saved apart from cost center master table. would you know ?
former_member841081
Discoverer
0 Kudos
Hi,

Thank you for your blog.

 

I have a question, I created a fields with your method (extensibility ...) I need to add a routine in the SE11 domain, but I can't modify it through SE11.

Do you know how can I do it ?

Thanks a lot.

 

Adrien
rogcoimbra
Participant
0 Kudos
Great. Thanks.
cpz
Explorer
0 Kudos
Hi Masa,

In your blog, you mention re 'The tool is not only for new fields but it can add the fields already in the source table to objects like standard Fiori apps.'.....I read this as, the tool is also capable of adding fields from standard SAP DB Tables to Fiori Apps - is that correct?

I want to add field 'ERNAM' from Table 'ANLA' to the Asset History Sheet Fiori App. (F1615), but I don't see the capability in the tool do do that?

thanks,

Con.
0012anirban
Contributor
0 Kudos
Thank you Masaki San for this blog, it really helped me in setting up the custom field app.

 

Regards

Anirban
krishg
Active Participant
0 Kudos
When we add custom fields, does it add the custom tab to appropriate section (header / item , etc)?
suraj_veer20
Discoverer
0 Kudos
Hi Sakshi,

Have you got the solution for this?