Beruflich Dokumente
Kultur Dokumente
DISCLAIMER
All sample code is provided by Siperian for illustrative purposes only. These examples have not been
thoroughly tested under all conditions.
Siperian, therefore, cannot guarantee or imply reliability, serviceability, or function of this sample code.
This is provided to you "AS IS" without any warranties of any kind. The implied warranties of non-
infringement, merchantability and fitness for a particular purpose are expressly disclaimed.
Prerequisites
The implementation guide requires familiarity with the Siperian Hub architecture
and understanding of all of the Siperian Hub solution components.
BDD Concepts
This section describes core concepts that are useful for working with the BDD.
BDD Application
A BDD application is the main configuration and deployment unit for BDD
deployments. A BDD application consists of a BDD configuration file that describes
all of the configuration elements of the application, as well as other auxiliary files
(internationalization message bundles, help, and so on).
Subject Area
The Subject Area is a core organizing concept for a BDD application. Other terms or
concepts that are related to, or similar to, the Subject Area include: business
object, composite object, and hierarchical entity. BDD uses the Subject Area
definition to determine how to treat each foreign key relationship in an ORS.
The Hub Store maintains detailed metadata about tables and relationships defined
in an ORS. This metadata includes relationships between base object tables that
can represent:
• references to lookup tables
• links between a parent and related child data
• links between top-level entities
Relationship Description
One:Many The list of child records will be displayed in a tab below the primary data.
Logical The expectation is that there should be only one child record for each
One:One primary object. The data is shown in the form with the primary object.
If there is more than one child, BDD provides a means to resolve this.
Relationship Description
Part Of The child record belongs to the primary object. When adding a child, both
the relationship and child records are added.
Reference The child is another Subject Area. When adding a child, only a relationship
record is added. The BDD user must search for the Subject Area child to be
related. In order to edit the child data, the Subject Area for that child must be
opened.
Base Objects
In Siperian Hub XU SP2, the SIF APIs that operate on Packages were extended to
also allow operation directly on base objects. Column-level security is now
configured in SAM by defining role-based access to base objects and their columns.
BDD directly references base objects for all get and put operations. BDD uses
packages only for displaying search results.
Match Paths
The child relationships in BDD are defined using match paths. Before BDD, match
paths have been used strictly for defining match columns. The match path definition
works equally well for defining the child relationships in BDD.
In order to add a child to a Subject Area, it may be necessary to create a new
match path for that child (if data in the child is not used for matching). No
additional performance overhead is incurred by defining such a match path.
Note: The searchQuery API has been extended to allow advanced searching against
a base object based on data in its child records – also referenced via match paths.
Search
Search for data in a Subject Area can be based on either of our search APIs
(searchQuery or searchMatch). In both cases, a display package is used to show
the search results.
Relationship Description
primary data Cleanse is invoked when Save is selected. Save continues only if cleanse
(main form on succeeds and there are no validation errors.
the screen)
child data Cleanse is invoked for add/edit child when Apply is selected on the child
data dialog box. The dialog closes only if cleanse succeeds and there are no
validation errors.
Note: The cleansePut API poses problems for an application such as BDD. The
reason for this is that, when using cleansePut, the interface for a record is a
mapping, while the interface for reading data is a package or base object. An
application such as BDD needs a consistent record interface for reads and writes.
Validation
A cleanse function can be used to perform custom data validation. Validation results
are processed if the cleanse function has a validationStatus output parameter. If
this parameter is blank, there are no validation errors and the process can
continue.
If there are validation errors, the validationStatus parameter will include a series
of validation messages that include the inputParameter name and a message. Each
validation error is then associated with an input value on the BDD application UI.
Note: The Resource Kit contains the ValidationCleanseLib sample, which provides
an example of a cleanse library with functions that perform validation.
Trust
A BDD application uses a specified source system for all of its operations. Data
entered and updated through a BDD application follows all the standard trust rules.
The data entered in a BDD application is applied to the base object record based on
the trust and validation rules configured in the Siperian Hub.
When viewing cross reference data, the user can choose to promote the value of a
field from a specific cross reference record. This results in a trust override for that
field.
Siperian Hub Business Data Director Implementation Guide 8
Hierarchy Manager
If Hierarchy Manager (HM) is configured for an ORS, BDD can be configured to work
with this configuration according to the following rules:
• Each HM entity must be configured as a Subject Area. HM is used to model
the relationships between Subject Areas.
• A BDD application operates against a single HM configuration
(profile/sandbox combo). BDD uses the SAM access control configuration,
rather than different HM configurations, to manage user access control. The
HM configuration used by BDD should include all HM entity and relationship
types to be supported in the BDD application.
Data Security
SAM does not provide row-level data security (restricting users from seeing certain
records based on the contents of those records). BDD, however, provides a simple
data security model. Within the search configuration of each Subject Area, security
filters can be defined. A security filter specifies a filter that is to be applied for all
searches by users assigned to a specific role.
For example, a security filter can specify COUNTRY_CODE = ‘US’ , which can apply
to users with the US Data Steward role. Each filter can apply to multiple roles. Any
number of filters can be created for a Subject Area.
In-Flight Data
In-flight data is business data that can go through different states (ACTIVE,
PENDING, or DELETED) while progressing through a workflow. BDD provides
support for in-flight data using the state management features introduced in
Siperian Hub XU SP1 and in its task management features.
Data can be added or updated and ‘Submitted for Approval’ rather than saved. The
data changes are stored as PENDING changes – the data is not applied to the base
object. A task is created for another user to approve this change. Once approved,
the PENDING data is promoted to ACTIVE and is then applied to the base object.
History
BDD provides a Subject Area view of the history of changes for each record (history
must be enabled on the Base Objects). BDD shows a timeline view of events for the
record and its child records. A point-in-time view of the data can also be shown.
Exclusions
Dependent Objects
Dependent Objects are a deprecated feature of the Siperian Hub and are not
supported by BDD.
Configuration Process
The BDD configuration process involves the following steps. Bear in mind that this
is an iterative rather than simply a linear, one-time process.
BDD uses Siperian cleanse functions for all cleanse and validation in BDD.
The validation functions use the outbound parameters to communicate
validation status and validation error messages to BDD.
a. Create the validation function library using the ValidationCleanseLib
sample in the Siperian ResourceKit as a template.
b. Deploy the created cleanse library into the ORS.
c. Create the regular cleanse functions and mappings to be used by BDD.
d. Add the cleanseFunction element for all BDD objects that require
cleanse and validation.
Deploy and test cleanse and validation functions by creating a new Subject Area
entity with all the children for which you added the cleanse/validation functions.
Verify that all fields are properly validated.
ORS Binding
A BDD application configuration declares one or more ”logical ORS databases.” All
Siperian Hub objects that are referenced in a configuration are always in the
context of a specific logical ORS. For a BDD configuration to be valid, the objects it
references must exist in a physical ORS.
When a BDD application is added or imported, the logical ORS databases it declares
must be bound to a physical ORS that is registered with the Siperian Hub. This
binding is used:
• to validate the configuration
• by the BDD Configuration tool to fetch metadata about the ORS, and
• as the ORS for the running BDD application to connect to
Add Application
The Add command is used to create a new application from scratch. The Import
command can be used to create an application by importing an existing
configuration. A new BDD application is defined by its name, display name,
description, and list of logical ORS databases.
After adding the application, choose the Edit command to make changes to the
application configuration.
Import Application
The Import command provides the following three import options. Two options are
for importing a full application, and one option is for importing a component into an
existing application.
Parameter Description
valid_ind Contains the most recent validation status for the application.
The validation status is a single value that represents the
highest (most severe) error that has been found.
active_ind Managed directly by the user to reflect the intention for
deployment of the application.
Validation
BDD configuration is loosely coupled with the metadata in an ORS. The
configuration contains references to an object in an ORS. However, changes to an
ORS (addition, modification or removal of base objects, columns, cleanse functions,
and so on) are not automatically reflected in the BDD configuration. For this reason,
the BDD validation process is necessary and must be repeated periodically.
Validation is run in the following circumstances:
• when requested by the user in the BDD configuration tool
• when importing a BDD configuration
• before deploying an application when the application server is started up
Available validation levels are similar to those used for the Metadata Manager, with
the addition of the Not Validated and No Errors levels.
Application State
The application state is controlled by the user in the BDD Configuration tool. It
stores the intended deployment for the BDD application.
Note: A BDD application can be deployed even if the configuration contains errors.
Only fatal errors (as described above) will prevent a BDD application from being
deployed. It can be useful to deploy a BDD application that contains errors when
building out an application, allowing the implementer to test parts of the
configuration while other parts are incomplete.
Deployment
Deployment is the process of taking a BDD configuration and making it available as
an application. An application is not deployed if active_ind is -1.
Deployment occurs in response to the following events:
Event Description
Application All applications with active_ind that is not -1 are first validated. If the validation
Server level is not Fatal Error, then the application is deployed. At this time, only a
Startup partial validation is run to check for fatal errors.
Import / Any time an application is imported or saved, it is also deployed unless its
Save active_ind is -1.
Button Description
Save Saves the latest changes to the database. If the application state is anything
but Not Deployed (-1), the BDD application is redeployed after it is saved.
Validate Runs validation on the current BDD application configuration and displays
the validation report.
Bind ORS Used to change the ORS binding.
Subject Areas
The lower portion of the screen provides a tree that shows how the Subject Areas
are configured. The levels in the tree are: 1) BDD Application, 2) Subject Area
Group, 3) Subject Area and 4) Subject Area Child.
XML Tools
The Siperian Hub Resource Kit includes an XML schema for the BDD configuration
file. This is very useful when working with XML editors. It can guide you in editing
the file and, most importantly, is used by the editor to verify the correctness of the
XML in the BDD configuration file. The BDD configuration file should pass this test
before being imported into the BDD Configuration tool.
While a simple text editor can be used to modify the BDD configuration, there are
many XML editing tools that make working with XML much easier, including:
Editor URL
XML Copy Editor http://xml-copy-editor.sourceforge.net/
XML Spy http://www.altova.com/products/xmlspy/xmlspy.html
oXygen http://www.oxygenxml.com/
The BDD sample in the Resource Kit contains the following components that can
help with manual configuration.
Items in this XML that are not currently managed by the BDD Configuration tool
(and therefore require manual editing) are bolded.
In some cases, as with the cleanseFunction element (which is optional), the BDD
Configuration tool will not place this element in the XML. It is necessary to add the
element.
In other cases, as with the editStyle and horizontalStyle column attributes, the
items are already in the XML with default values that can be edited.
Refer to the HTML documentation for the XML schema for details on the elements,
attributes, and allowed values.
BDD Application
The top-level element in the XML is the bddApplication. All but one of its one
attributes are managed by the BDD Configuration tool.
If you want to change the session timeout from its default of 5 minutes, you can set
the sessionTimeoutMinutes attribute. as shown in the following example (set to 30
minutes).
<bddApplication xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="AppName"
displayName="Application Name"
defaultLocale="en"
sessionTimeoutMinutes="30"
xsi:noNamespaceSchemaLocation="./siperian-bdd-config-1.xsd">
...
</bddApplication>
Subject Area
The BDD Configuration tool creates a more complete template for this area of the
configuration file. The items described in this section might need modification
directly in the XML.
Label
The default label element is included in the XML export file. This shows the Subject
Area name in the label. It can be customized by specifying the columns from the
Subject Area that should be used in the label, and the format patterns. For
example, you can specify a label that will show the name for a Person Subject Area.
In the following example, the label for an existing Subject Area will be
“<LastName>, <FirstName>”.
<label existsFormat="{1},{2}">
<column columnUid="C_PARTY|LAST_NAME"/>
<column columnUid="C_PARTY|FIRST_NAME"/>
</label>
<primaryObject hmEntityTypeUid="Person">
<cleanseFunction cleanseFunctionUid="BDD Cleanse and Validation Library|CVPerson">
<cleanseInput>
<cleanseColumn columnUid="C_PARTY|FIRST_NAME" parameterName="firstName"/>
<cleanseColumn columnUid="C_PARTY|MIDDLE_NAME" parameterName="middleName"/>
<cleanseColumn columnUid="C_PARTY|LAST_NAME" parameterName="lastName"/>
</cleanseInput>
<cleanseOutput>
<cleanseColumn columnUid="C_PARTY|FIRST_NAME" parameterName="firstName"/>
<cleanseColumn columnUid="C_PARTY|MIDDLE_NAME" parameterName="middleName"/>
<cleanseColumn columnUid="C_PARTY|LAST_NAME" parameterName="lastName"/>
<cleanseColumn columnUid="C_PARTY|DISPLAY_NAME" parameterName="displayName"/>
</cleanseOutput>
</cleanseFunction>
</primaryObject>
Note: Each columnUid in the configuration above must also be included in the
associated layout for the primary object or child.
Lookup Localization
BDD automatically populates a dropdown list of acceptable values for columns that
are configured in the Schema Manager as lookups, as described above in “Lookup
Tables”.
BDD also supports the localization of the lookup display values. The following
example shows how to configure a base object to support this.
In a normal ORS, the tables C_PARTY and C_LU_SALUTATION would exist as shown
here. The only change is the addition of C_LCL_SALUTATION.
To generate the list of values for a particular user’s locale, BDD first looks for a
lookup name in C_LCL_SALUTATION based on the locale (language and / or
country). If a name is not found, then the lookup name (SALUTATION_DISP) from
the lookup table is used.
The values for LANGUAGE_CODE and COUNTRY_CODE are two-letter ISO codes.
For more information, see “Appendix B: Locale Codes” later in this document.
Search
Match Columns
Extended search uses the searchMatch API with matchType=NONE. In the default
configuration, all possible match columns get generated on each searchMatch
request.
The matchColumns element can be used to fine-tune the searchMatch operation.
For example, if the telephone number column is used for both exact and fuzzy
match columns, you might not want both of those to be used in the search. When
the matchColumns element is specified, only the specified columns are used in the
searchMatch request.
<matchColumns>
<matchColumn matchColumnUid="C_PARTY|Person_Name"/>
<matchColumn matchColumnUid="C_PARTY|Organization_Name"/>
<matchColumn matchColumnUid="C_PARTY|Ex_Party_Type"/>
<matchColumn matchColumnUid="C_PARTY|Address_Part1"/>
<matchColumn matchColumnUid="C_PARTY|Address_Part2"/>
<matchColumn matchColumnUid="C_PARTY|Postal_Area"/>
<matchColumn matchColumnUid="C_PARTY|Telephone_Number"/>
</matchColumns>
Data Security
As described previously in “Data Security”, row-level security filters can be
configured for each Subject Area. By default no security filters are defined. In the
following example, multiple securityFilters are defined for each Subject Area. Each
securityFilter can apply to multiple roles.
<dataSecurity>
<securityFilter columnUid="MATCH_PATH_COMPONENT.C_MT_ADDRESS|STATE_CD" filterValue='CA'>
<securityRole roleUid="Customer-CA"/>
<securityRole roleUid="Customer-US-West"/>
<securityRole roleUid="Customer-US"/>
</securityFilter>
<securityFilter columnUid="MATCH_PATH_COMPONENT.C_MT_ADDRESS|STATE_CD" filterValue='NY'>
<securityRole roleUid="Customer-NY"/>
<securityRole roleUid="Customer-US-East"/>
<securityRole roleUid="Customer-US"/>
</securityFilter>
</dataSecurity>
For each user, all securityFilters that apply are joined by a logical OR (someone in
the Customer-US role would see results where state=’CA’ or state=’NY’). If a user
Match
Find Duplicates uses the searchMatch API with the match rule set and match type
configured in the match element. In the default configuration, all possible match
columns get generated on each searchMatch request.
The matchColumns element can be used to fine-tune the searchMatch operation.
For example, if the telephone number column is used for both exact and fuzzy
match columns, you might not want both of those to be used in the search. When
the matchColumns element is specified, only the specified columns are used in the
searchMatch request.
<matchColumns>
<matchColumn matchColumnUid="C_PARTY|Person_Name"/>
<matchColumn matchColumnUid="C_PARTY|Organization_Name"/>
<matchColumn matchColumnUid="C_PARTY|Ex_Party_Type"/>
<matchColumn matchColumnUid="C_PARTY|Address_Part1"/>
<matchColumn matchColumnUid="C_PARTY|Address_Part2"/>
<matchColumn matchColumnUid="C_PARTY|Postal_Area"/>
<matchColumn matchColumnUid="C_PARTY|Telephone_Number"/>
</matchColumns>
HM Configuration
If an HM Configuration has been set in the BDD Configuration tool, an
hmConfiguration element is set up in the configuration XML file. The optional
hmOneHopLimits and hmManyHopLimts are not included, but they can be added
with appropriate values, as shown in the following example.
<hmConfiguration hmConfigurationUid="Default|Master">
<hmOneHopLimits totalRels="1000"/>
<hmManyHopLimits hops="20" relsPerEntity="50" totalRels="1000"/>
</hmConfiguration>
Tasks
For more information, refer to the Siperian Hub Business Data Director Workflow
and Tasks Configuration Guide on SHARE.
Charts
The Configuration tool does not provide any support for charts. For more
information, refer to the Siperian Hub Business Data Director Charts Configuration
on SHARE.
Generic Help
When a BDD application is created, the generic help (BDDHelp.zip) is added to it.
Implementer can modify this file if desired. The contents of this file can also be
localized to provide multi-language support. Each localized version of the file must
be named BDDHelp_XX.zip, where XX is a two-character ISO language code.
This ZIP file must contain a file “bdd_help/bdd_help.htm” to provide the entry point
to the help system.
Help files can be added to the application either by including them in the application
ZIP file that is imported, or by importing the help ZIP file into an existing
application.
Custom Help
Custom help can be added to a BDD application that provides users with
information specific to that implementation – details about the Subject Areas and
other information about the application usage.
Custom help is also added as a ZIP file named CustomBDDHelp.zip or
CustomBDDHelp_XX.zip for localized help, where XX is a two-character ISO
language code.
This ZIP file must contain a file “bdd_help/bdd_help.htm” to provide the entry point
to the help system.
Help files can be added to the application either by including them in the application
ZIP file that is imported, or by importing the help ZIP file into an existing
application.
Localization
As described in “Application Components” later in this document, four sets of
resource bundles contain the strings that are displayed in a BDD application. Each
set includes the default file, a placeholder English language file (this file can be
empty), and localized versions of the file (there do not need to be any). For
example, for the MessageBundle set, there the default file
MessageBundle.properties and the placeholder English language file
MessageBundle_en.properties.
Each resource bundle file is a UTF-8 encoded properties files. Each entry in the file
is a name/value pair like <name>=<value>. A few examples:
‘Name’ is a fixed value that is referenced by the BDD application. <Value> is the
part that can be localized.
Message bundle files can be added to the application either by including them in the
application ZIP file that is imported, or by importing them into an existing
application.
Parameter Value
CPU Minimum: 1.6 GHz
Recommended: 2 GHz
Memory Minimum: 1 GB
Recommended: 2GB
Effective network bandwidth to the MRM Minimum: 10 MBit
Application Server Recommended: 100 MBit
wo Wolof ARGENTINA AR 32
xh Xhosa ARMENIA AM 51
yo Yoruba AUSTRALIA AU 36
za Zhuang AUSTRIA AT 40
zh Chinese AZERBAIJAN AZ 31
zu Zulu BAHAMAS BS 44
BAHRAIN BH 48
BANGLADESH BD 50
BARBADOS BB 52
BELARUS BY 112
BELGIUM BE 56
BELIZE BZ 84
BENIN BJ 204
BERMUDA BM 60
BHUTAN BT 64
BOLIVIA BO 68
BOSNIA AND BA 70