Further Usage for Extension Fields in SAP ByDesign

Extension Fields are important aspects of most ByDesign systems. They provide the means to store additional data for specific use-cases beyond what is natively present in ByDesign.

Further Usage of Extension Fields can help you achieve more analytical insight with reports, more informative Form Templates for internal and external customers, and more robust integrations into your external systems.

In this blog, we will review what Extension Fields are, how you can extend their insight with the Further Usage functionality, as well as the different areas available under Further Usage.

What are Extension Fields?

Extension Fields are added to specific Business Contexts, which are a combination of both a specific business object and a specific level of data for the business object. An example would be “Sales Order – General Information”.

It’s particularly important to note the second portion (e.g. “General Information”) because that affects not only the level of detail that the Extension Field is maintained at, but also the additional areas of the system that the Extension Field can be used in.

Notice how the Business Context will vary based on the section of the screen I have highlighted when I entered the Edit Screen Mode within Adaptation Mode. In a Sales Order, for example, if I don’t have the “Items” list selected, I will only have the option to add Extension Fields in the “Sales Order – General Information” Business Context.

For this blog, we’ll be using two examples – “Example Header Field” in the “Sales Order – General Information” Business Context, and “Example Item Field” in the “Sales Order – Item” Business Context.

How do I modify Further Usage?

Further Usage can be modified by clicking the blue “Further Usage” text at the bottom of the selected Extension Field.

Further Usage consists of the following areas summarized below.

Form Templates – includes the Extension Field in generated PDF documents that are sent to external business partners (such as Sales Orders) or to internal users (such as Pick Tasks).

Data Sources and Reports – includes the Extension Field in existing business analytics content.

Enterprise Search – enables the Enterprise Search to find business objects using the values stored in the Extension Field.

Extension Scenarios – adds the Extension Field to addition Business Contexts, which can allow it to be further extended with the new Business Contexts as a basis.

Services – adds the Extension Field to the standard Web Services that can be used to create, read, or update business objects.

Additional Business Contexts – includes the Extension Field in other similar business contexts.

Further Usage Functionality

Form Templates

Form Templates can be referred to more specifically as Form Template Groups and Form Template Variants.

The Form Template Group represents a similar set of Forms that share the same source data and are used in the same context. While a single form often is the only one that you may use directly with a business object, there are often additional Form Template Groups to consider for less common circumstance, or Form Templates you may not currently use (but may use in the future).

You can tell which Form Template Variants are part of a Form Template Group based on the description in the “Form Template” column – all the Form Template Variants with the same name will be part of the same Form Template Group.

In order to include the Extension Field in the Form Data, you have to click select any of the Form Template entries for the particular Form Template Group. The Country and Language don’t matter for the purposes of just including it in the form data. However, if you use Easy Form Editor, then you’ll want to select the appropriate Country and Language if you plan on modifying the Form Template while adding the Extension Field.

Once selected, click “Add Field and Edit”. This will include the field in any form data generated after performing this action – it will not retroactively include the data in form data created prior to this step.

If you use Adobe LiveCycle for form modification, or if you plan on modifying the Form Template through Easy Form Editor later, you can simply close the pop-up window that appears.

You’ll then see that the “Field Available” box is checked for all the Form Template Variants for that Form Template Group.

Note that the box is not checked for “Order to Service Performer”, as that is a different Form Template Group. If you wanted the field to be included in the other forms as well, you’d need to also add it to the other Form Template Group.

Note that if you plan on modifying the Form Template in Adobe LiveCycle, you will need to download the Form Template again and update the data schema.

Data Sources and Reports

In order to use Extension Fields on Reports, you must start with the data sources that make up the foundation for these reports.

You can’t directly add Extension Fields to your own custom Data Sources through these reports, but you can add them to the standard Data Sources, then join or combine the standard Data Sources with your own custom Data Sources.

Note that the available Data Sources differ based on Business Context. For example, below, the Sales Order Header data source is not available in the “Sales Order – Item” Business Context.

Typically, more general data for a business object will be available for more detailed Business Contexts, but not vice-versa. In particular, Item data will not be available on Header-based reports. This is important, especially if you are using other Data Sources that reference the Data Source you’re extending.

As it relates to extensibility, the data source reference will include all the fields of the base data source within the Add Fields section of another Data Source’s associated Report.

A common example of this would be the addition of an Extension Field within the Customer Account business object. Once this field is extended to the “Account Master Data” and “Business Partner Master Data” data sources, you can use it on most of the reports in ByDesign that include an Account, because these have a built-in link to the Customer Account data sources that you extended. The important part of this is that you only have to add it to the original Account-related data sources, and it will automatically be included in the other data sources and reports that include Account data.

However, you are limited in some cases due to the relationship between documents. For example, within the Aging List for Receivables, you’ll see that the most specific level of detail you can include related to Customer Invoice data is the General Data / Header-level. This means that any Item-level Extension Fields can’t be referenced in this Report.

Because of this, you may need to add Extension Fields at multiple levels in order to ensure they’re available on all the results. The values can be auto-populated between these fields through customization if necessary.

Enterprise Search

Enterprise Search is straightforward. The addition of the Extension Field to Enterprise Search will display the business object in the Enterprise Search results if it contains the searched value in the Extension Field.

To allow this, select the Enterprise Search Category and click Add Field.

Note that the ability to include the field in Enterprise Search is limited. Typically, this is only allowed for General / Header-level Business Contexts.

Extension Scenarios

Extension Scenarios are one of the most useful features of Extension Fields. These can be used to make the exact same extension field available on follow-up documents and automatically copy the field values.

For most lines, the source Business Context will be displayed followed by the target Business Context. If the field within the source Business Context has a value, it will be copied automatically to the field within the target Business Context. Note that some fields do not display in this format, which means they are used in other ways, such as for pricing.

In order to extend the field, select the line of the target Business Context and click “Add Field”.

Note that if you mistakenly extend a field, you can stop the automatic copying of the field values by selecting a scenario that has been added, and clicking deactivate.

A simple example of Extension Scenario use would be to add additional product information (like color) to a Material, then extend the field to the Sales Order, and make the Extension Field appear on the Form Template output.

For a more complex example, you could create a List-type Extension Field on the Customer Account Master Data in order to classify your customers in more detail beyond Customer Group, Industry, etc. You could extend this to the Sales Order, Outbound Delivery, Customer Invoice, Receivables Ledger, and more, then use this field in Reporting.

Typically, the approach of extending the field from master data to subsequent transactional data is preferred over only adding the value to the Master Data, because if the value changes over time, then the transactions will reflect what the value was when the transaction was created. If you only make use of Master Data in reports, then a change in the value will also alter reports that look at data prior to the change being made.

There are a few important things to note in regard to Extension Scenarios.

Extension Scenarios describe a one-way extension. In this example, “Account – General Information” to “Sales – General Information” will take a value (if present) from the Account Master Data and copy it to a Sales Order for that Account. However, if the value is blank on the Account Master Data and a value is entered on a Sales Order for that Account, it will not update the Account Master Data.

The field extension should start from as early on in the process as possible, but no further back than that. While this may sound obvious, if you aren’t careful, it’s possible to make mistakes that are hard to diagnose.

For example, if there is an additional descriptive Extension Field on the Sales Order Item that is unrelated to Material, then extending the field from “Material – General Information” to “Sales Order – Item” will cause the value to be overwritten each time the Material of the Sales Order Item is changed. Normally, this may not cause immediate issues (as most users select the Material prior to filling in additional detail), but if they change the Material after entering the value of the Extension Field, the value they entered on the Sales Order Item will be overwritten (because ByDesign will re-retrieve the blank value from the Material).

The Business Context is also very important in determining which Extension Scenarios are available. Pay attention to both the original Business Context (in which you’ve entered Further Usage) and the Business Context that the field will be extended to. A more general source Business Context will often be restricted to more general target Business Contexts.

For example, in the below screenshots, we compare the Extension Scenarios for “Sales Order – General Information” and “Sales Order – Item”.

We see that most are directly related, though there are some business objects included in scenarios that are unique to only one of the Business Contexts. For example, the Purchase Request context (used in external fulfillment) is not included in the “Sales Order – General Information” scenario.

Once a field has been added, you can then continue to the other Business Contexts and extend the field further.

Note that you typically have to navigate to the user interface screens related to the subsequent Business Contexts. For example, once you’ve extended the Sales Order extension fields to the Outbound Delivery Request-related Business Contexts, you then have to navigate to Outbound Logistics -> Delivery Proposals and re-enter adaptation mode to extend the field further.

You’ll also notice that we have a different set of Extension Scenarios within the new Business Context. You will also see the original Extension Scenario present with the checkbox selected.

There is a similar set of Business Contexts when a General/Header-type source Business Context is related to a General/Header-type target Business Context, and Item-type to Item-type source/target. However, note that we have an Item-type Business Context in our Header Business Context – this would copy the Header value to each Line Item. The transfer of Header-level to Item-level data is present in some Extension Scenarios, but it isn’t common. The transfer of Item-level data to Header-level data simply isn’t possible through Further Usage (though it can be achieved with customization).

At this point, you continue the process of navigating to the user interface screens and extending the field to subsequent Business Contexts.

It’s often worth fully extending the fields past where you expect you’ll presently need them, just in case you could see them being used in the future. For example, you may only need a field on the Sales Order to Outbound Delivery at the present. However, if at some point in the future you want to use it for reporting on Customer Invoices, if you don’t extend it from Outbound Delivery to Customer Invoice when you first add Extension Scenarios, then all the Customer Invoices created prior to your addition will have blank values for that field when you extended in the future.

Lastly, make sure the scenarios you use are the actual ones that are relevant to your purposes. For example, if you want to have the value of a field from the Sales Order extend to the Customer Invoice, if you’re using Material type products, you can’t just extend the field from Sales Order to Invoice Request (as the relevant Invoice Request isn’t based off the Sales Order for material products, but instead the Outbound Delivery). So, for a Material type product, you must extend in the following order.

Sales Order -> Outbound Delivery Request -> Outbound Delivery -> Customer Invoice Request -> Customer Invoice

Services

Services refers to the natively available ByDesign Web Services. These are useful in a few major scenarios.

Each Operation and Communication Direction combination is displayed as a separate item in the list, so you may see an operation appear more than once.

Note that the Service is the main component for the integration, whereas Operation is a more detailed usage of that Service. For example, the ManageSalesOrderIn Service has two Operations – a “Maintain” operation to actually create or update data, and a “Check” operation to determine if data can be created or updated prior to actually attempting to do so.

First, for system integration through web services, such as integration to an e-commerce site. This would allow you to send specific e-commerce-related data when using the web services to create the Sales Order, such as the identifier for the order in the e-commerce site.

Second, this enables your extension field to be used in the standard data migration processes.

Third, because the Excel upload files make use of these Web Services, they also enable you to include the extension fields in your Excel uploads. See the ByDesign Help Documentation for how to do this.

In order to include an Extension Field in any of the Web Service Operations, select the row within the list and click “Add Field”

There are two Communication Directions and three main Operation types.

Communication Direction refers to whether the Extension Field is included in the inbound data (messages sent from another system to ByDesign) or outbound data (messages sent from ByDesign within the response to another system).

Some Services will support the addition of the element in both Inbound and Outbound directions – for example, some Query services will let you search by Extension Field value (the Inbound Direction) and also include the Extension Field value in the search response (the Outbound Direction).

The Operations that start with “Maintain” are typically used to create or update business object instances, such as Sales Order or Account creation. These are the Operations you’ll want to add the Extension Field to if you plan on sending ByDesign the data for the Extension Field.

For example, if you want to include the E-commerce specific Order ID in the data you pass to ByDesign to create the Sales Order, you’d add the Extension Field to the “MaintainBundle” Inbound service. Your ByDesign Sales Order would then contain the Order ID, which you could make use of within other Further Usage options, such as adding it to the Enterprise Search to allow easy lookup.

The Operations that start with “Find” are used to look up data for one or many business object instances in ByDesign. This is typically what you’d use to look up data from ByDesign.

For example, you could use a Find operation to look up the Outbound Delivery information for a ByDesign Sales Order – this would make use of the Find operation because a Sales Order could have multiple Outbound Deliveries.

The Operations that start with “Read” are used to look up detailed data on one specific business object instance. You need to have the determined the identifier you will use to look up the instance beforehand (like the specific Sales Order ID). Typically, an Extension Field can be added to the “Read” operation even if it can’t be added to the “Find” operation.

Note that not every Business Context will have all three types of operations. Often, if you can’t extend a Find operation, you’ll have to extend the Read operation and use the two in combination.

Additional Business Contexts

This is used to make the Extension Field available on a similar business object. For example, you may add a field to a Material, but also want to include it on Service products as well. Instead of adding a separate field, you could instead just add it to the Additional Business Context.

Further Usage of Extension Fields and your business

Further Usage of Extension Fields truly allows them to fit directly into your business processes, taking the fields beyond simply storing internal informational data. By making use of Extension Fields, you can achieve more analytical insight with reports, more informative Form Templates for internal and external customers, and more robust integrations into your external systems.

Connect with us below!