Developer Guide | PUBLIC
Document Version: 1.0 – 2019-09-11
Developer Guide
SAP Product Lifecycle Management for Insurance 4.0 SP05
AP affiliate company. All rights reserved.
Content
1 Understanding Business Objects. . . . 3
1.1 Extended Business Objects. . . .3
1.2 Example: Extending the Form Business Object. . . 4
1.3 Custom Business Objects. . . .7
2 Understanding XML Definition Tags for Business Objects. . . . 8
2.1 <BusinessObject> XML Tags. . . .9
2.2 <Definition> XML Tags. . . .9
2.3 <Attributes> XML Tags. . . 12
2.4 <Relationships> XML Tags. . . .15
2.5 <Dimensions> XML Tags. . . 17
2.6 Sample: Business Object Definition. . . .19
3 Extending Business Objects. . . . 21
3.1 Exporting Business Object Definitions. . . .21
3.2 Adding a Definition ID to the Existing Business Object. . . 22
3.3 Add a Definition ID to the Parent Business Objects. . . .23
3.4 Importing the Updated Business Object Definitions. . . .25
4 Creating Custom Business Objects. . . .27
4.1 Copying an Existing Business Object Definition. . . 27
4.2 Modifying the Business Object Definition. . . 28
4.3 Extending the Parent Business Objects. . . .29
4.4 Importing the Business Object Definitions. . . .31
1 Understanding Business Objects
Business objects transfer product data from Product Configurator to tools or repositories that need the information. The data transferred includes attribute names, values, and relationships between objects and components.
Business objects are categorized by types (for example, coverage, coverage group, form, and so on). You associate objects and components with business objects to indicate which components to retrieve product data from.
Product Configurator is installed with SAP business objects. Each business object is defined using an XML definition. You can extend these business objects or create custom business objects.
Note
For more information about business objects, how they map to product objects, and how to configure them, see the Product Configurator User Guide.
Related Information
Extended Business Objects [page 3]
Example: Extending the Form Business Object [page 4]
Custom Business Objects [page 7]
1.1 Extended Business Objects
In Product Configurator, you can create different implementations of objects that are categorized under one business object type. For example, FS-PRO provides a form object as part of the reference object. Suppose that you want to add local attributes to a form object. You can create a new form object with modified attributes.
Your environment would include the following two form implementations:
● The form object that you created with local attributes.
● The out-of-the box form object provided with FS-PRO.
Note
For more information, see SAP Product Lifecycle Management for Insurance Installation Guide.
To transfer data from all the form objects, extend the Form business object by modifying the business object definition. This configuration involves the following:
Extend the business object
In the business object definition, add a definition ID for the new object.
Extend the parent business objects
All definition IDs must belong to a unique Product Tree structure defined in the business object definitions.
By extending the parent business objects, the definitions provide a mapping of the Product Trees configured in Product Configurator. Product Configurator can traverse the Product Trees based on the relationships defined in the definitions.
Note
These extensions are preserved during FS-PRO upgrades.
1.2 Example: Extending the Form Business Object
Suppose that you configured the Commercial Property (CP) and General Liability (GL) lines of business in Product Configurator. You store information that is common to the marketable products in the reference objects by country and state. The following figure shows the reference objects in the ISO Commercial P and C Library:
These reference objects inherit from the ISO Company Reference Base and contain the form object.
For the CP reference objects, you use the form object that is provided with FS-PRO. For the GL reference objects, you need to store GL-specific reference data, so you add a local attribute in the form object in the GL reference object.
The following figure shows the relationship between the objects:
Suppose that you want users to be able to search all form data in your marketable products.
To pass all form data, you must configure the form business objects as follows:
● Extend the form business object by adding a <Definition id=...> section for the modified form object.
● Extend the modified form's parent business objects. These extensions define a unique Product Tree structure in the XML definitions. Based on the relationships defined in the XML definitions, Product Configurator traverses the Product Tree to the modified form to retrieve product data.
The following figure shows the extended XML definitions:
Note
For more information about object types, see the Object Modifier Type Manager topics in the Product Configurator User Guide.
1.3 Custom Business Objects
You can create custom object types in Product Configurator by using the Object Modifier Type Manager. These object types are user-defined and derive from the SAP base object types (product, component, and
questionnaire). You can create instances of the custom object types in Product Studio and assemble those custom objects in products.
To use business objects to transfer information from custom objects, create new business objects. You create a new business object by creating a definition using XML.
Note
For more information about custom object types, see the Object Modifier Type Manager topics in the Product Configurator User Guide.
2 Understanding XML Definition Tags for Business Objects
Each business object is defined using an XML definition. The XML definitions specify the attributes to get product data from, whether to index or display the information, and how Product Trees are configured.
Business objects are defined using the following XML structure:
<BusinessObject type="type">
<!-- Specify at least one definition. -->
<Definition id="id" source="source">
<Description>description</Description>
<Mapping type="Object|Row|Table">
<ModifierCode>code</ModifierCode>
<ContainerModifierCode>modcode</ContainerModifierCode>
</Mapping>
<Attributes>
<!-- Required attribute lines. -->
<Attribute name="Object_Name" mapTo="objname" />
<Attribute name="Object_Version" mapTo="objversion" />
<Attribute name="Object_Description" mapTo="objdescription" />
<!-- If <Mapping type="Object|Row">, specify zero or more additional attributes. -->
<Attribute name="name" mapTo="attname" path="path" key="key"
index="Y|N" display="Y|N"/>
<CompositeAttribute name="name" attrList="item1,item2,..." />
</Attributes>
<Relationships>
<!-- Specify zero or more Child or Uses relationships -->
<BusinessObject relationship="Child" type="type" id="id" />
<BusinessObject relationship="Uses" type="type" locatedIn="Studio|
Product">
<Component name="name">
<ObjectNameColumn>namecolumn</ObjectNameColumn>
<ObjectVersionColumn>versioncolumn</ObjectVersionColumn>
</Component>
</BusinessObject>
</Relationships>
<Dimensions>
<!-- Specify zero or more dimensions. -->
<Dimension>dimname|ALL</Dimension>
</Dimensions>
</Definition>
</BusinessObject>
Related Information
<BusinessObject> XML Tags [page 9]
<Definition> XML Tags [page 9]
<Attributes> XML Tags [page 12]
<Relationships> XML Tags [page 15]
<Dimensions> XML Tags [page 17]
Sample: Business Object Definition [page 19]
2.1
<BusinessObject>XML Tags
Use the <BusinessObject> section of the business object XML structure to start the business object type definition.
This is a required section.
Example:
<Definition id="id" source="source">
<Description>description</Description>
<Mapping type="Object|Row|Table">
<ModifierCode>code</ModifierCode>
<ContainerModifierCode>modcode</ContainerModifierCode>
</Mapping>
The <BusinessObject> section has the following attribute:
type="<type>" Defines the business object type.
This is a required attribute.
Do not use spaces. To separate words, we recommend that you use underscores.
This value is case-sensitive. For example, <BusinessObject
type="Coverage_Group”> and <BusinessObject type="coverage_group">
create two business object types.
Related Information
Understanding XML Definition Tags for Business Objects [page 8]
2.2
<Definition>XML Tags
Use the <Definition> section to start the definition for an implementation of the business object type.
For example, suppose that the Coverage business object type has two implementations of coverages. The implementations can be defined using the following two definition sections:
<Definition id="cat1” source=”Camilion">
<Definition id="cat2” source=”myCompany">
Each definition can include different attributes and relationships.
This is a required tag.
The <Definition> section is structured as follows:
<Definition id="id" source="source">
<Description>description</Description>
<Mapping type="Object|Row|Table">
<ModifierCode>code</ModifierCode>
<ContainerModifierCode>modcode</ContainerModifierCode>
</Mapping>
</Definition>
The <Definition> section has the following attributes:
id="<id>" Defines a unique identifier for the definition.
This is a required tag.
Do not use spaces. To separate words, we recommend that you use underscores.
source="<source>" Specifies any value that describes the source.
This is a required tag.
If you extend a business object type or create a custom type, we recommend that you specify your company name.
Do not use spaces. To separate words, we recommend that you use underscores.
Note
SAP business object types are set to source "Camilion".
The
<Description>tag
The <Description> tag describes the definition. If you do not want to add a description, specify
<Description />. This is a required tag.
The
<Mapping>tag
The <Mapping> tag starts the mapping specification. This tag describes how to map the objects in Product Configurator into business objects.
The <Mapping> tag has the following attribute:
type="Object|
Row|Table"
Specifies how the object information is mapped to a business object.
The following options are available:
● Object—Specifies objects that do not contain attributes within it. For example, coverages do not have any attributes defined in the Attributes tab.
● Row—Specifies that each row in the component is a separate business object (for example, forms and rules).
● Table—Specifies that the component has a table of values associated with it (for example, rate tables and domain tables).
This is a required attribute.
Note that the entire table will not be indexed. Only the name, version, and description will be indexed. Product Configurator will retrieve the rest of the details from the Product Configurator database.
The
<ModifierCode>tag
The <ModifierCode> tag specifies the identifier for the object type. This value must match the modifier code displayed in the Object Modifier Type Manager.
To find the modifier code in Product Configurator, right-click the object and note the Component Type value in the Component Properties dialog. Click Tools Object Modifier Type Manager , find that component type, and note the Modifer Code value.
Example: <ModifierCode>PROD_BAS</ModifierCode>
The
<ContainerModifierCode>tag
The <ContainerModifierCode> tag specifies the modifier code of the container. This value must match the modifier code displayed in the Object Modifier Type Manager.
If the object does not have a container, specify <ContainerModifierCode />.
To find the container modifier code in Product Configurator, search for the object in Product Studio, and note the Type value in the Search Result tab. Click Tools Object Modifier Type Manager , find that component type, and note the Modifer Code value.
Example: A Form Edition object is assembled in a Form object. Therefore, the ContainerModifierCode is FORMS_LIB_OBJECT.
Related Information
Understanding XML Definition Tags for Business Objects [page 8]
2.3
<Attributes>XML Tags
Use the <Attributes> section to start the attribute specifications. This tag maps object information to business objects.
This is a required tag.
The <Attribute> Tag
Specifies an object or component attribute.
Note
If <Mapping type="Object|Row">, define an <Attribute> tag for every attribute in the object or component.
To specify whether a particular object attribute will be indexed or displayed, use the index and display XML attributes.
If <Mapping type="Table">, define only the following three <Attribute> tags:
<Attribute name="Object_Name" mapTo="objname" />
<Attribute name="Object_Version" mapTo="objversion" />
<Attribute name="Object_Description" mapTo="objdescription" />
Example: In the Form Edition component, define an <Attribute> tag for all its attributes. If you want to index the EditionNumber and EditionDate values, you must also specify index="Y" in the <Attribute>
tag.
The <Attribute> section is structured as follows:
name="name" Defines the name to store the information under, in the business object.
This is a required attribute.
Do not use spaces. To separate words, we recommend that you use underscores.
Note
You must define the following three tags:
<Attribute name="Object_Name" mapTo="objname" />
<Attribute name="Object_Version" mapTo="objversion" />
<Attribute name="Object_Description" mapTo="objdescription" /
>
Object_Name and Object_Version are always indexed and displayed.
Object_Description is displayed only and never indexed.
mapTo="<attname>" Specifies the Internal Name value in the Attributes tab of the object.
This is a required attribute.
Example: mapTo="SelectionRule"
The following syntax only applies to the required Object_Name, Object_Version, and Object_Description attributes:
● mapTo="{<name>}"—Maps the attribute to the name of the object displayed in the Product Studio. To specify any other Name field in the object, do not use the { } characters (for example, mapto="Name").
● mapTo="{<version>}"—Maps the attribute to the object version number. If the object does not have a version number, specify mapTo="1".
● mapTo="{<description>}"—Maps the attribute to the Description field in the Manual tab. To specify any other Description field in the object, do not use the { } characters (for example, mapTo="desc"). If you do not want to retrieve any description, specify mapTo="".
Note
You cannot specify the index="Y|N" attribute with the mapTo="{<description>}" attribute.
path=”<path>” Specifies the relative path to the assembled object to get attributes from.
This attribute is a required attribute if <Mapping type="Object">, and
<Attribute name="name"> is not Object_Name, Object_Version, or Object_Description. In all other cases, this attribute is optional.
Example: A coverage has attributes in the Coverage Id component that is assembled under the Identification folder . Therefore, specify
path="Identification/Coverage Id".
Note
If the attributes that you want to retrieve are in the current object, you do not have to specify path="path".
key=”<key>” Specifies the sort setting for the row. This value must be a unique integer.
This attribute is optional.
We recommend that you specify a complete sequence of keys. For example, specify keys 1, 2, and 3. In contrast, keys 2, 5, and 6 do not form a complete sequence.
For more information about keys, see the topics about setting key columns in the Values tab in the Product Configurator User Guide.
index=”Y|N” Specifies whether to index the information in a data mart. Indexed information can be searched.
The following options are available:
● Y—Indexes the information in the data mart. If index is set to Y, display is automatically set to Y.
● N—Does not index the information in the data mart.
This attribute is optional.
If you do not specify this attribute, index is set to N by default.
display=”Y|N” Specifies whether to display the information.
The following options are available:
● Y—Displays the information. This setting only displays the information. To be able to search for information, set index to Y.
● N—Does not display the information. However, if index is set to Y, display is always set to Y, even if you specify display=N.
This attribute is optional.
If you do not specify this attribute, display is set to N by default.
The <CompositeAttribute> Tag
Creates a table column that contains values that are concatenated object attributes.
Example: Use this tag if the consuming tool needs to access values that consist of concatenated attributes (for example, form number and expiration date as one returned value).
Note
Composite attributes are automatically indexed in the data mart and displayed.
This is a required tag.
The <CompositeAttribute> section is structured as follows:
name="<name>" Specifies the name of the table column for the composite attribute.
Do not use spaces. To separate words, we recommend that you use underscores.
This is a required attribute.
Example: name="CMIS_Key" creates a table column named CMIS_Key.
attrList="<item1>,<item2>,..." Specifies the list of attributes to be concatenated as the column value.
Separate the attributes with a comma.
The attribute names must be defined in the <Attributes> section of the XML definition.
Do not use spaces.
The list order of the attributes determines the concatenation order.
Product Configurator concatenates and stores the list of attributes with the delimiter
|&|.
This is a required attribute.
Example: Supposed that you specify the following values:
name="CMIS_Key"
attrList="Form_Number,Expiration_Date"
Product Configurator creates a table column named CMIS key and stores the values using the following format: "Form_Number|&|Expiration_Date"
Related Information
Understanding XML Definition Tags for Business Objects [page 8]
2.4 <Relationships> XML Tags
Use the <BusinessObject> section of the business object XML structure to start the relationship specifications.
This tag defines the relationships between the business objects types. All the relationships specified in the XML definitions create a mapping of the Product Trees.
If the business object type has no relationships, specify <Relationships />.
This is a required section.
The <Relationships> section is structured as follows:
<Relationships>
<!-- Specify zero or more Child or Uses relationships -->
<BusinessObject relationship="Child" type="type" id="id" />
<BusinessObject relationship="Uses" type="type" locatedIn="Studio|Product">
<Component name="name">
<ObjectNameColumn>namecolumn</ObjectNameColumn>
<ObjectVersionColumn>versioncolumn</ObjectVersionColumn>
</Component>
</BusinessObject>
</Relationships>
The <BusinessObject> Tag
The <BusinessObject> tag specifies one of the following values:
● A business object type that is assembled in the current type (for example, coverages are assembled under coverage groups)
● A business object type that is used by the current type (for example, marketable products use reference objects).
Note
You only need to specify the assembled or used business object type if you want to get data from those objects.
This is a required tag.
The <BusinessObject> tag has the following attributes:
relationship="Child|
Uses"
Specifies how the business object type is related.
The following options are available:
● Child—Specifies that the related object type is assembled in the current object type.
● Uses—Specifies that the current object type uses the related object type.
This is a required attribute.
type="<type>" Specifies the business object type of the related business object. This value must match the <BusinessObject type="type"> value for that object, and an XML definition must be defined for that type.
Within a <Definition> section, you can only define one relationship for a specific type. For example, you can only define one Coverage relationship in that definition, as follows:
<Relationships>
<BusinessObject type="Coverage" id="Coverage1"
relationship="Child" />
</Relationships>
You cannot define multiple relationships for the same object type. For example, if you have two coverage object types, the following tags are invalid:
<Relationships>
<BusinessObject type="Coverage" id="Coverage1"
relationship="Child" />
<BusinessObject type="Coverage" id="Coverage2"
relationship="Child" />
</Relationships>
id=”id” Specifies one of the definition IDs of the related business object type.
This value must match the appropriate <Definition id="id"> value.
This value is only required for relationship="child".
This is a optional attribute.
locatedin="Studio|
Product"
Specifies where the related object is located.
The following options are available:
● "Studio"—Indicates that the related object is a standalone object in Product Studio.
● "Product"—Indicates that the related object is assembled in a product structure.
This value is only required for relationship="Uses".
This is an optional attribute.
The
<Component>Tag
The <Component> tag specifies the name of the related component in Product Configurator.
This is an optional tag.
The <Component> tag has the following attribute:
name="name" Specifies the name of the component.
This value is only required for relationship="Uses".
Example: <Component name="Reference Object Link">
The <ObjectNameColumn> Tag
Specifies the column in the related component that contains the object name.
This value is only required for relationship="Uses".
This is an optional tag.
Example: <ObjectNameColumn>ReferenceObjectName</ObjectNameColumn>
The <ObjectVersionColumn> Tag
Specifies the column in the related component that contains the object version.
This value is only required for relationship="Uses".
This tag is optional.
Example: <ObjectVersionColumn>ReferenceObjectVersionNumber</ObjectVersionColumn>
Related Information
Understanding XML Definition Tags for Business Objects [page 8]
2.5 <Dimensions> XML Tags
Use the <Dimensions> section of the business object XML structure to start the dimensions specifications.
This tag specifies the dimensions available for the business object type.
If the business object type has no dimensions, specify <Dimensions />.
This is a required section.
The <Dimensions> section is structured as follows:
<Dimensions>
<!-- Specify zero or more dimensions. -->
<Dimension>dimname|ALL</Dimension>
</Dimensions>
The <Dimension> Tag
Specifies the available or configured dimension to map to at the product level. The following options are available:
● <dimname>—Specifies the name of the configured dimension to map to. For example,
<Dimension>Filing Number</Dimension>
● ALL—Specifies that all the dimensions will be mapped. For example, <Dimension>ALL</Dimension>
For more information about dimensions, see the Dimension Manager topics in the Product Configurator User Guide.
The <Dimension> tag has the following attributes:
inheritProductDim="Y|
N"
Specifies whether to apply product-level dimensions to the business object, if dimensions are not applied at the object level.
The following options are available:
● "Y"—Product dimensions are applied to the business object. The data is only applied to objects that do not have dimensions configured at the object level in Product Configurator.
● "N"—Dimensions are not applied to the business object.
If you do not specify this attribute, inheritProductDim is set to Y by default.
Example: Suppose that you configured a marketable product with State dimensions, AK, NY, and OH, at the product level. You apply dimensions to the following form objects:
● Form1 – NY, OH
● Form2 – None
You can specify the following tag in the business object type XML definition:
<Dimension inheritProductDim="Y">State</Dimension>.
The inheritProductDim attribute only applies product-level data for objects that do not have dimensions set in Product Configurator.
In this situation, Form2 has no configured dimensions. Therefore, the inheritProductDim=Y setting applies the product-level dimensions for Form2 but maintains the object-level dimensions for Form1, as follows:
● Form1—NY, OH
● Form2—AK, NY, OH
Suppose that you specify the following attribute in the XML definition:
<Dimension inheritProductDim="N">State</Dimension>
The inheritProductDim=N setting does not apply product-level dimensions for Form2, as follows:
● Form1—NY, OH
● Form2—None
Related Information
Understanding XML Definition Tags for Business Objects [page 8]
2.6 Sample: Business Object Definition
The following XML definition defines the Coverage business object:
<BusinessObject type="Coverage">
<Definition id="Coverage_MO_1_0" source="Camilion">
<Description>Camilion Coverage Definition Model 1.0</Description>
<Mapping type="Object">
<ModifierCode>COV</ModifierCode>
<ContainerModifierCode />
</Mapping>
<Attributes>
<Attribute name="Object_Name" mapTo="{name}" />
<Attribute name="Object_Version" mapTo="{version}" />
<Attribute name="Object_Description" mapTo="{description}" />
<Attribute name="Code" mapTo="Code" path="Identification/Coverage Id" index="Y" />
<Attribute name="Display_Name" mapTo="Name" path="Identification/
Coverage Id" index="Y" />
<Attribute name="LOB" mapTo="LOB_CD" path="Identification/Coverage Id" index="Y" />
<Attribute name="Associated_Risk" mapTo="AssociatedRisk"
path="Identification/Coverage Id" />
<Attribute name="Selection_Rule" mapTo="SelectionRule"
path="Identification/Coverage Id" />
<Attribute name="Rated_At_Level" mapTo="RatedAtLevel"
path="Identification/Coverage Id" />
<Attribute name="Rollup_Indicator" mapTo="RollupIndicator"
path="Identification/Coverage Id" />
<Attribute name="System_Attribute_Table" mapTo="SYSATTR_TABLE_NAME"
path="Identification/Coverage Id" />
<Attribute name="Effective_Date" mapTo="effective_dt"
path="Identification/Coverage Id" />
<Attribute name="Expiration_Date" mapTo="expiration_dt"
path="Identification/Coverage Id" />
</Attributes>
<Relationships />
<Dimensions />
</Definition>
</BusinessObject>
For every coverage object that matches the Coverage definition ID, Product Configurator retrieves the following attribute information according to the XML tags:
● Object name and object version
● Object description
● Information from the Identification Coverage Id object
● Effective date and Expiration date—These attributes do not display in the Attributes tab of the object in Product Configurator, but they are automatically included in every object. To specify these attributes in the XML definition, use the following Internal Name values:
<Attribute name="Effective_Date" mapTo="effective_dt" path="path" />
<Attribute name="Expiration_Date" mapTo="expiration_dt" path="path" /
>
3 Extending Business Objects
You can extend business objects to include all the object implementations. For example, if you use two implementations of Coverage objects to configure your marketable products, extend the Coverage business object by specifying a definition ID for each coverage implementation.
To extend business objects, perform the following tasks:
1. Export a business object definition.
2. Add a definition ID to the existing business object.
3. Add a definition ID to the parent business objects.
4. Import the updated business object definitions.
After you extend business objects, you can associate objects and components with these types. For
information about associating objects, see the configuring business objects topics in the Product Configurator User Guide.
Related Information
Exporting Business Object Definitions [page 21]
Adding a Definition ID to the Existing Business Object [page 22]
Add a Definition ID to the Parent Business Objects [page 23]
Importing the Updated Business Object Definitions [page 25]
Extended Business Objects [page 3]
3.1 Exporting Business Object Definitions
Context
Business objects are already defined for the SAP objects provided with FS-PRO (for example, coverage, coverage group, form, and so on). You can export the definition for an existing business object and update it with the specifications of a new object implementation.
To export a business object definition, perform the following steps:
Procedure
1. Log in to the Product Configurator on the source environment.
2. Go to Tools Business Object Definitions . The Business Object Definitions Manager opens.
3. Choose the business object type that you want to update from the Business Object Type pane.
The definition displays in the Business Object Details pane.
4. Choose Export.
A dialog opens, prompting you to open, save, or cancel the file export.
5. Save your changes.
The Save As dialog displays.
6. Browse for a location to store the definition, and choose OK.
Results
The definition is exported to the specified location. The file extension is .xml.
3.2 Adding a Definition ID to the Existing Business Object
Context
After you export the definition of an existing business object, you can extend it to add the specifications for the new object implementation.
To add a definition ID to the existing business object, perform the following steps:
Procedure
1. Open the exported XML file in an XML editor.
2. Copy the following section:
<Definition id="" source="">
...</Definition>
3. Paste the copied text at the end of the file before the </BusinessObject> tag.
The tag structure looks similar to the following:
<BusinessObject type="">
<Definition id="" source="">
...</Definition>
<Definition id="" source="">
...</Definition>
</BusinessObject>
4. Modify the copied <Definition> section by defining the specifications of the new object.
5. Save your changes.
Results
A definition ID is added to the business object.
Related Information
Understanding XML Definition Tags for Business Objects [page 8]
<Definition> XML Tags [page 9]
3.3 Add a Definition ID to the Parent Business Objects
Context
To retrieve product data, Product Configurator traverses the Product Trees based on the relationships defined in the business object definitions. Product Configurator starts by reading the definition for the marketable product or reference object business object. Product Configurator reads the <Relationships> tag and finds the objects that are associated with each related business object. This process iterates through the
relationships defined in every business object definition.
Therefore, if you extend a business object, you must also extend its parent business objects to define the correct Product Tree mapping.
To add a definition ID to the parent business objects, perform the following steps:
Procedure
1. Export the definition for the immediate parent of the business object that you extended.
If you extended the Coverage business object, export the definition for its parent, the Coverage Group business object.
2. Open the exported XML file in an XML editor.
3. Copy the following section:
<Definition id="" source="">
...</Definition>
4. Paste the copied text at the end of the file before the </BusinessObject> tag.
The tag structure looks similar to the following:
<BusinessObject type="">
<Definition id="" source="">
...
</Definition>
<Definition id="" source="">
...
</Definition>
</BusinessObject>
5. In the <Relationships> section of the copied definition, modify the <BusinessObject> line that specifies the relationship to the child (assembled) business object that you extended.
The XML looks similar to the following example, where Coverage2 is the definition ID that you added in the Coverage business object:
<BusinessObject type="">
<Definition id="" source="">
...</Definition>
<Definition id="" source="">
<Mapping type="">
</Mapping>
<Attributes>
</Attributes>
<Relationships>
<BusinessObject type="Coverage" id="Coverage2" relationship="child" />
</Relationships>
<Dimensions />
</Definition>
</BusinessObject>
6. Save your changes.
7. Repeat steps 1-6 for each parent object in the Product Tree, up to the marketable product or reference object business object.
Results
The definition IDs are added to the parent business objects.
Next Steps
After you extend the Coverage and Coverage Group business objects, the next parent business object to extend is Marketable Product.
3.4 Importing the Updated Business Object Definitions
Context
To save the updated business object definitions in Product Configurator, import them using the Business Object Definitions Manager. After you import the definitions, the business objects are available when you select
to create a new object. The values are displayed in the Business Object Type field in the New Object dialog.
The business objects are also available when you modify an existing object’s properties. The values are displayed in the General tab of the Component Properties dialog.
These fields let you associate objects with a business object.
To import the updated business object definitions, perform the following steps:
Procedure
1. Log in to the Product Configurator.
2. Go to Tools Business Object Definitions . The Business Object Definitions Manager opens.
3. Choose Import.
The Import Business Object Definition dialog opens, prompting you to select a file to import.
4. Select Browse.
The Browse dialog displays.
5. Browse for the definition file that you want to upload, and select OK.
The file must have a .xml extension.
6. Choose Import.
Results
The definition is validated. If the file is valid, the updated definition is imported to Product Configurator and overwrites the existing definition.
A copy of the original SAP business object definition is always stored in Product Configurator as a backup.
If the file is not valid, the definition is not imported. A dialog opens, displaying the validation errors. To see the XSD, click Camilion XSD.
Note
XML schema errors are displayed one at a time because the structure must be valid before values can be parsed for validation.
4 Creating Custom Business Objects
You can create custom object types in Product Configurator by using the Object Modifier Type Manager. To use business objects to transfer data from these custom object types, create new business objects.
To create custom business objects, perform the following tasks:
1. Copy an existing business object definition.
2. Modify the business object definition.
3. Extend the parent business objects.
4. Import the business object definitions.
After you create custom business objects, you can associate objects and components with them. For
information about associating objects, see the configuring business objects topics in the Product Configurator User Guide.
Note
You cannot create a custom business object for a marketable product or reference object. Instead, extend the SAP Marketable_Product or Reference_Object business object by adding a definition ID for your custom object.
Related Information
Copying an Existing Business Object Definition [page 27]
Modifying the Business Object Definition [page 28]
Extending the Parent Business Objects [page 29]
Importing the Business Object Definitions [page 31]
4.1 Copying an Existing Business Object Definition
Context
Business objects are already defined for the SAP objects provided with FS-PRO (for example, coverage, coverage group, form, and so on). You can export the definition for an existing business object and use it as a template to create your custom business object.
To copy an existing business object definition, perform the following steps:
Procedure
1. Log in to the Product Configurator on the source environment.
2. Go to Tools Business Object Definitions . The Business Object Definitions Manager opens.
3. In the Business Object Type pane, click the business object that you want to use as a template.
The definition displays in the Business Object Details pane.
4. Choose Export.
A dialog opens, prompting you to open, save, or cancel the file export.
5. Save your changes.
The Save As dialog displays.
6. Browse for a location to store the definition, and choose OK.
The definition is exported to the specified location. The file extension is .xml.
7. Rename the exported definition to correspond to your custom business object.
Example: myCustomObject.xml
Results
The business object definition is copied.
4.2 Modifying the Business Object Definition
Context
After you make a copy of an existing business object definition, you can modify it to correspond to your custom object type.
To modify the business object definition, perform the following steps:
Procedure
1. In an XML editor, open the definition file that you renamed.
2. Modify the following line: <BusinessObject type="type">
type="type" defines a name to represent the custom object type that you created in Object Modifier Type Manager.
3. In the <Definition> section, specify the ID and modifier code information for the custom object type.
4. In the <Attributes> section, specify an <Attribute> line for each attribute in the custom object type.
5. In the <Relationships> section, specify a <BusinessObject> line for each child (assembled) object of the custom object type and for each object that the custom object type uses.
6. Save your changes.
Results
The business object definition is modified to match your custom object.
Related Information
Sample: Business Object Definition [page 19]
Understanding XML Definition Tags for Business Objects [page 8]
4.3 Extending the Parent Business Objects
Context
To retrieve product data, Product Configurator traverses the Product Trees based on the relationships defined in the business object definitions. Product Configurator starts by reading the definition for the marketable product or reference object business object. Product Configurator reads the <Relationships> tag and finds the objects that are associated with each related type. This process iterates through the relationships defined in every business object definition.
Therefore, if you create a custom business object, you must also extend its parent business objects to define the correct Product Tree mapping.
If the parent business object is also a new custom business object, instead of this procedure, copy an existing definition and modify it accordingly.
To extend the parent business objects, perform the following steps:
Procedure
1. Export the definition for the immediate parent of the custom business object that you created.
If you created a custom business object and assembled the object in a Form Library, export the definition for the Forms Library business object.
2. Open the exported .xml file in an XML editor.
3. Copy the following section:
<Definition id="" source="">
...</Definition>
4. Paste the copied text at the end of the file before the </BusinessObject> tag.
The tag structure looks similar to the following:
<BusinessObject type="">
<Definition id="" source="">
...</Definition>
<Definition id="" source="">
...</Definition>
</BusinessObject>
5. In the <Relationships> section, modify the <BusinessObject> line that specifies the relationship to the child (assembled) custom business object that you created.
The XML looks similar to the following example:
<BusinessObject type="">
<Definition id="" source="">
...</Definition>
<Definition id="" source="">
<Mapping type="">
</Mapping>
<Attributes>
</Attributes>
<Relationships>
<BusinessObject relationship="child" type="myCustomObject"
id="CustomObject1" />
</Relationships>
<Dimensions />
</Definition>
</BusinessObject>
6. Save your changes.
7. Repeat steps 1-6 for each parent object in the Product Tree, up to the marketable product or reference object business object.
Results
The parent business objects are extended.
Next Steps
After you extend the Forms Library business object, the next parent business object to extend is Reference Object.
Related Information
Modifying the Business Object Definition [page 28]
Exporting Business Object Definitions [page 21]
4.4 Importing the Business Object Definitions
Context
To save the updated business object definitions in Product Configurator, import them using the Business Object Definitions Manager. After you import the definitions, the business objects are available when you select
to create a new object. The values are displayed in the Business Object Type field in the New Object dialog.
The types are also available when you modify an existing object’s properties. The types are displayed in the General tab of the Component Properties dialog.
These fields let you associate objects with a business object.
To import the business object definitions, perform the following steps:
Procedure
1. Log in to the Product Configurator on the target environment.
2. Go to Tools Business Object Definitions . The Business Object Definitions Manager opens.
3. Choose Import.
The Import Business Object Definition dialog opens, prompting you to select a file to import.
4. Choose Browse.
The Browse dialog displays.
5. Browse for the new definition file that you created, and select OK.
The file must have an .xml extension.
6. Choose Import.
Results
The business object definition is validated. If the file is valid, the new definition is imported to Product Configurator.
If the file is not valid, the definition is not imported. A dialog opens, displaying the validation errors. To see the XSD, click Camilion XSD.
Note
XML schema errors are displayed one at a time because the structure must be valid before values can be parsed for validation.
Important Disclaimers and Legal Information
Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:
● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your agreements with SAP) to this:
● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.
● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this information.
Videos Hosted on External Platforms
Some videos may point to third-party video hosting platforms. SAP cannot guarantee the future availability of videos stored on these platforms. Furthermore, any advertisements or other content hosted on these platforms (for example, suggested videos or by navigating to other videos hosted on the same site), are not within the control or responsibility of SAP.
Beta and Other Experimental Features
Experimental features are not part of the officially delivered scope that SAP guarantees for future releases. This means that experimental features may be changed by SAP at any time for any reason without notice. Experimental features are not for productive use. You may not demonstrate, test, examine, evaluate or otherwise use the experimental features in a live operating environment or with data that has not been sufficiently backed up.
The purpose of experimental features is to get feedback early on, allowing customers and partners to influence the future product accordingly. By providing your feedback (e.g. in the SAP Community), you accept that intellectual property rights of the contributions or derivative works shall remain the exclusive property of SAP.
Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of example code unless damages have been caused by SAP's gross negligence or willful misconduct.
Bias-Free Language
SAP supports a culture of diversity and inclusion. Whenever possible, we use unbiased language in our documentation to refer to people of all cultures, ethnicities, genders, and abilities.
www.sap.com/contactsap
© 2021 SAP SE or an SAP affiliate company. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice.
Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors.
National product specifications may vary.
These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies.
Please see https://www.sap.com/about/legal/trademark.html for additional trademark information and notices.