Show TOC

 Inheritance

Use

This function enables you to pass on value assignments and identifiers from one specification (source specification) to another (target specification). To do this, you create an inheritance relationship in which the source specification, the target specification, and the inheritance template are defined. The inheritance template controls the following:

  • Which identifiers and which value assignments are passed on

  • Whether the value assignments passed on may be edited and whether the changes that are then made to the data are temporary or permanent

  • Whether inheritance relationships may be deactivated and then reactivated when necessary

A specification can be a source or target specification in as many inheritance relationships as you like with any inheritance template. Each target specification can itself act as a source specification and can also pass the inherited data on again, with the result that multilevel inheritance is possible.

In the inheritance relationship, the source and target specifications are linked with each other in such a way that a background job automatically updates the data in the target specification if you create, change, or delete the data to be passed on in the source specification. The SAP system also specifies in the inheritance relationship whether the inheritance request was created by the source specification or by the target specification. Accordingly, the source specification or the target specification can have the role of requester.

You can use authorizations to ensure that only authorized employees can request and approve inheritances (see Prerequisites).

Integration

Inheritance is an extension of the existing reference. Inheritances and references differ as follows:

Inheritance

Reference

The inheritance template controls which identifiers and value assignments are passed on and which usage they must have in order to be passed on.

All value assignments in the source specification are passed on to the target specification with their usage. Identifiers are not passed on.

Individual value assignment instances of a value assignment type can be overwritten in the target specification.

Only entire value assignment types can be overwritten for the target specification, which means that if you overwrite referenced data in the target specification, the reference is deleted for the entire value assignment type.

Multilevel inheritance is possible.

Multilevel references are not possible.

Prerequisites

  • You have created the required inheritance templates as group entries (see Editing Inheritance Templates).

  • A specification cannot be a target specification in a reference and a target specification in an inheritance relationship at the same time, in other words, a specification cannot receive data via reference and via inheritance at the same time. However, other combinations are possible, for example:

    • A specification can receive data via reference and pass on this data or other data.

    • A specification can receive data via inheritance and pass it on via reference.

    • A specification can inherit data and pass it on via reference.

  • In order for data to be inherited, it must correspond to the definition in the inheritance template and fulfill the following conditions:

    • The first time that data is inherited, there cannot be a status entry that does not permit changes for the data to be passed on in the source specification (see Specification Status). If data that has already been passed on is edited subsequently in the source specification, the data in the target specification is updated regardless of the status of the source data.

    • If a usage has been defined in the inheritance template, the data to be passed on must contain this usage and the Active indicator must be set. If you have set the All usages indicator in the inheritance template, the data is passed on regardless of its usage, which means that data is passed on even if the Active indicator is not set in its usage or if no usage at all has been specified for the data (see Editing Inheritance Templates).

  • Under Specify Environment Parameters in Customizing for Basic Data and Tools, you can use the environment parameter INH_RESOLVE_STATUS_CONFLICT to specify whether the status of the target specification is to be taken into account for inheritance. If the status of the target specification is taken into account (value 0), there cannot be a status entry that does not permit changes for the data in the target specification (for example, the status RE Released in the standard system). Otherwise, the target specification cannot inherit the data. In the standard system, the value 1 is set. This means that the status is not considered during inheritance and the data is written to the target specification; even if the status prohibits changes.

  • The source specification of an inheritance relationship must belong to a specification type that was specified as a permitted source specification type for the specification type of the target specification under Specify Specification Types in Customizing for Basic Data and Tools.

  • You have processed the Customizing activity Set Up Job for Inheritance in Customizing for Basic Data and Tools and scheduled the inheritance report to be event-controlled as described there.

  • The data to be passed on cannot be locked by another user. Under Specify Environment Parameters in Customizing for Basic Data and Tools, you can use the environment parameter INH_JOB_DELAY to specify after how many minutes the background job for the inheritance is rescheduled if data is locked.

  • The source specification may not be its own target specification. For this reason, the system ensures that no endless loops can occur at all levels of inheritance.

  • You need the following authorizations:

    • To request inheritance, you need authorization to change the data to be inherited via the inheritance template for the requester (which can be the source or target specification). You also need authorization to display the source and target specifications.

    • To authorize an inheritance request, you need the following authorizations:

      • If the source specification is the inheritance request, you need authorization to change the target specification.

      • If the target specification is the inheritance request, you need authorization to change the source specification.

Features

Inheritance Relationships

The system displays all the inheritance relationships for a specification in its header data on the Relationships tab page (see Creating Inheritance Relationships Between Specifications):

  • One area of the screen contains all the inheritance relationships in which the specification is the source specification.

  • One area of the screen contains all the inheritance relationships in which the specification is the target specification.

    In both screen areas, a data record, in other words a row in the table, represents an inheritance relationship.

The following data is displayed for each inheritance relationship:

  • Whether the inheritance relationship is active

  • Whether the specification in whose header data the inheritance relationship is displayed, requested the inheritance, in other words whether it is the requester or acceptor

  • Inheritance template for the inheritance relationship

  • Status and approval status of the inheritance relationship

    The approval status only occurs in the following combinations with the status of the inheritance relationship:

    State

    Icon

    Approval Status

    Icon

    Initial

    Requested

    Ready to inherit

    Approved

    Consistent

    Approved

    Incorrect

    Approved

    Initial

    Rejected

    The statuses have the following meanings:

    State

    Description

    Initial

    Data is not passed on until an authorized user has approved the inheritance request. The status changes to Ready to inherit.

    Ready to inherit

    Data is ready to inherit and is passed on by the next background job. The status changes to Consistent or Incorrect.

    Consistent

    Data is passed on by the background job and is consistent.

    Incorrect

    Data could not be passed on.

From the Relationships tab page, you can edit inheritance relationships for the specification in the corresponding screen areas:

  • You can create inheritance relationships in which the specification is the source or target specification.

    Note Note

    You can also create an inheritance relationship between a source specification and as many target specifications as you want from the hit list by selecting the target specifications in the hit list and then specifying the source specification and the inheritance template (see Creating Inheritance Relationships Between Specifications).

    The specification from which you create an inheritance relationship in the header data or from the hit list is automatically the requester in the inheritance relationship.

    End of the note.
  • You can approve or reject inheritance requests, in other words, set the corresponding approval status.

  • You can deactivate and reactivate inheritance relationships.

  • You can delete inheritance relationships. You can decide whether to merely delete the link between the source and target specifications or whether the inherited data in the target specification should also be deleted.

An inheritance relationship is generally displayed for both specifications involved (for one specification in the target part and for the other in the source part), regardless of which specification requested the inheritance.

Only when an inheritance status is approved can the status of the inheritance relationship switch from Initial to Ready to inherit. If you create an inheritance relationship and have the required authorization for the acceptor (see the Prerequisites section), the approval is automatically set to the status Approved. If you do not have the authorization required, the relationship remains in the status Requested until an authorized user manually approves the request:

Passing On Data

The background job for the inheritance is started as soon as an inheritance relationship is assigned the status Ready to inherit. It is assigned this status in the following cases:

  • The inheritance request has been approved manually or automatically.

  • The inheritance relationship has the status Consistent and identifiers or value assignments have been created or deleted in the source specification of the inheritance relationship, or usages have been created, changed or deleted. For more information, see Effects of Changes to the Source Specification Data.

    Note Note

    For identifiers and value assignments, the background job is only run for Create and Delete. New links are created or deleted internally.

    End of the note.
  • The inheritance relationship has the status Consistent and the inheritance template for the inheritance relationship has been changed.

The background job started updates the data in the target specification if it is not locked by a user. If it is locked, the background job is repeated periodically (see Prerequisites section). If the data has been passed on, the approval status of the inheritance relationship remains Approved and the status changes to Consistent (or to Incorrect if there are errors).

Note Note

If an inheritance relationship is assigned the status Incorrect, the data is not updated in the target specification by the background job. You then receive a message in your office inbox in the system in which the error is explained.

End of the note.

Recommendation Recommendation

On the Relationships tab page, you can:

  • Display detailed information about the inheritance relationship using the function with the quick info text Additional Information. You can check, among other things, whether the background job for the inheritance is scheduled and whether it is currently running.

  • Restart the background job for the inheritance manually using the function with the quick info text Restart inheritance and give the background job a higher priority. As a result, this background job is carried out next when the system is currently executing several background jobs in succession.

Furthermore, you can update the data displayed using the function with the quick info text Refresh and therefore check, for example, whether the data has been passed on after a background job that was started manually (the inheritance relationship is then consistent).

End of the recommendation.

In the target specification, the background job for the inheritance only updates the value assignments of the value assignment types specified in the inheritance template. In the same way, only the identifiers of the identification categories and types specified in the inheritance template are updated. In addition, the usage specified for the identifiers and value assignments in the source specification must match the usage specified in the inheritance template.

Note Note

Identifiers that do not have a usage are also passed on if the inheritance template has real usage details (the All Usages indicator is not set).

End of the note.

The following applies for the usage of inherited data records in the target specification:

  • If you have set the All Usages indicator, then the inherited data records have the same usage as the source data records.

  • If you do not specify any generic details in the usages in the inheritance template, the inherited data records have the usages that are specified in the inheritance template.

  • If you specify concrete ratings together with generic validity areas, the usages for the source data record are copied for these ratings.

  • If you specify generic ratings with concrete validity areas, a usage is formed for every rating given in the source data record that combines the source data record rating with the concrete validity area in the inheritance template.

    Example Example

    Usage of the Data Record in the Source Specification

    Usage (Rating, Validity Area) in the Template

    Usage of the Data Record to Be Passed On to the Target Specification

    PUBLIC/REG_EU

    PUBLIC/US

    INTERNAL/DE

    PUBLIC/DE

    PUBLIC/DE

    INTERNAL/REG_EU

    <generic>/DE

    INTERNAL/DE

    INTERNAL/REG_EU

    <generic>//DE

    <generic>//FR

    INTERNAL/DE

    INTERNAL/FR

    PUBLIC/DE

    PUBLIC/REG_EU

    Data record is not passed on.

    PUBLIC/US

    PUBLIC/REG_EU

    Data record is not passed on.

    PUBLIC/REG_WORLD

    INTERNAL/REG_EU

    <generic>//US

    PUBLIC/US

    PUBLIC/DE

    PUBLIC/US

    PUBLIC/<generic>/

    PUBLIC/DE

    PUBLIC/US

    End of the example.
Changes to Target Specification Data

You can only change or delete inherited data in a target specification in the following cases:

  • You can change inherited identifiers or value assignments if you have set the Deactiv. inheritance relationships indicator in the inheritance template and deactivated the inheritance relationship. For more information, see Deactivating and Activating Inheritance Relationships.

  • You can change inherited value assignments if you have set the Changes to target specifications or Exclusion from inher. indicator in the inheritance template. For more information about the indicators, see Editing Inheritance Templates. For information about how to change value assignment instances that contain inherited data, see Editing Value Assignments.

    Note Note

    In the property tree, all value assignment types containing data that has been inherited or passed on are marked by the following icons:

    • : Inherited instances exist; no instances are passed on.

    • : No inherited instances exist; instances are passed on to further specifications

    • : Inherited instances exist; instances are passed on to further specifications

    Identifiers and value assignment instances containing data that has been inherited or passed on are marked as follows:

    • : Data record has been inherited.

    • : Data record has been passed on to other specifications.

    • : Data record has been inherited and passed on to other specifications.

    • : Data record has been inherited and changed temporarily (only for value assignment instances).

    • Data record has been inherited and changed permanently (only for value assignment instances) or the inheritance relationship has been deactivated (for value assignment instances and identifiers).

    End of the note.

Result

You can search for specifications that are contained in inheritance relationships and that fulfill specific search criteria (see Specification Search).