The generation of program components is dependant upon the Oracle Utilities Application Framework meta-data. The meta-data used by framework consists of program variables, program locations, program elements, menu options, navigation keys, tables and fields, and many more.
The meta-data itself can be split into distinct groupings. These groupings will be covered in more detail below.
The basic principle is that a developer enters meta-data for each component to be generated. The generation process applies the meta-data to the generator templates to create the final, deployable component, along with any necessary infrastructure changes. This chapter defines the framework meta-data and its inter-relationships.
Generated UI Program Component Meta-data
Defining Generator Tools Meta-data
The following entity relationship diagram describes the meta-data related to generated tab menus.
Generated Tab Menu Meta-data ERD
Every framework user interface (UI) transaction has a tab menu, which links together the different tab pages that are available on the transaction.
The software development kit generator creates the tab menu using a specific template that is defined in the template meta-data. The tab menu’s template is maintained from the UI Program Components Object View.
The generated tab menu resides in a certain physical directory in the server’s file system. Location, the abstract name that represents the actual location of the tab menu, is entered in the UI Program Components Object View. The actual location information and the abstract name are maintained from the Locations Object View.
Tab menus may have one or more program variables that control its behavior and/or appearance. These variables are maintained from the Program Variable Collection of the UI Program Components Object View.
Tab menus also have one or more program tabs, which specify the labels and sequence of the tab pages in the transaction. These tabs are maintained from the Tab Menu Tabs Collection of the UI Program Components Object View.
The use of each tab may be restricted, based on the license key, as specified in tab module. This information is maintained from the Tab Module Collection of the Tab Menu Tabs Collection.
The following entity relationship diagram describes the meta-data related to generated UI programs.
Generated User Interface Program Component Meta-data ERD
Note. The UI program component is represented by program component in the ERD above.
Each tab that is specified on the tab menu is linked to a particular UI program component - more commonly referred to as "UI page" or "tab page".
Every UI Program Component has a type (i.e. Search Page, List Grid, etc). The software development kit generator uses this information to know how to create a certain type of program. The types are stored in the template meta-data table.
Just like tab menus, the generated tab page resides in a certain physical directory in the server’s file system. Location, the abstract name that represents the actual location of the program, is specified in the UI Program Components Object View.
Tab pages may have one or more program variables that control its behavior and/or appearance. These variables are maintained from the Program Variable Collection of the UI Program Components Object View.
Each tab page has at least one program section. Each section has at least one element of a particular type. A program element may have one or more element attributes that control its behavior and/or appearance. For example, an element attribute may specify whether or not a field is hidden. Elements may be as simple as input text fields or buttons, and as complicated as trees, grids or graphs. The latter types of elements are actually contained in their own tab page and are referenced from the calling tab page. Please refer to UI Program Components Object View to see how these components are created and maintained.
When UI program components are referred to from other UI program components, instead of referencing these programs by their physical names, pseudo names/aliases (called navigation keys) are used. The navigation keys abstract the physical name and location of the program component from the application, making it easier to change and maintain such details. The link between this pseudo address and the actual location of the program is maintained from the Navigation Keys Object View.
The following entity relationship diagram describes the meta-data related to menus and navigation.
Menu and Navigation Meta-data ERD
Transactions within framework are accessed through menus. The menu framework uses navigation options to define the information required in navigating between transactions. The most important attribute of a navigation option is the Target Navigation Key. This identifies the transaction the navigation option will navigate to.
A navigation key is a logical name/pseudo address for UI components. Its prime responsibility is to transform a logical address to a specific URL. The link between this pseudo address and the actual location of the program is maintained from the Navigation Key Object View.
The menu type defines how the menu is used. You have the following options:
· Main defines a menu that appears on the menu bar.
· Admin is a special type of Main menu as admin menu items can be grouped alphabetically or by functional group. Refer to the user documentation for more information about admin menu options.
· Context defines a context menu.
· Submenu defines a menu that appears when a menu item is selected. For example, the Main menu contains numerous submenus. Each submenu contains the navigation options used to open a page.
Table Meta-data ERD
Table information is used for various purposes. Table information is stored in meta-data. This includes which fields are on the table (table field) and business rules for the fields. Constraints define the keys of tables. Constraints also define relationships between tables. Constraint fields specify the fields involved in the keys or relationships between tables.
Multi-Language
The framework product is available worldwide. This means that the product must be able to display information in many languages.
Some field and table information is language-dependent. Table, table / field and field all have child language tables that hold descriptions specific to each supported language. When field information is retrieved, the system returns not only the base field information, but also the descriptions associated with the user's language.
This process is also used for labels (fields with Work Switch set to Y). When a label is needed by the system, the work field information is obtained and the description (from the language table) is displayed on the UI.
Note. Developers should not use plain text on the UI. All labels should be defined as work fields so that the system will recognize the field and obtain the correct, language-based description to display.
Maintenance Object ERD
A maintenance object (MO) represents a group of tables maintained within framework. These objects are primarily used by the ConfigLab functionality and by the archiving engine to process archiving or purging tasks.
MOs also provide structure from which the various program components (needed to maintain an object) can be created. To be specific, both the front-end user interface (UI) components and the back-end program components can be generated from the MO. The MO specifies the key program component, namely:
· UI Tab Menu
MOs have at least one associated table, i.e. a primary table, sometimes referred to as the root table. In most cases, there are child tables associated with the primary table. E.g. a language table, person name table (child of person table), etc. The Table Role specifies whether the table is a child or a primary.
The Compare Type indicates the comparison method that is used in the ConfigLab functionality. This field is not used for the purpose of building program components from MOs.
MO Table information is maintained from the Maintenance Object Tables Collection of the Maintenance Objects Object View.
Before generating new programs, you must create the meta-data to be used by the generator tools.
Warning! Please refer to the System Table Guide for the standard naming convention of each Meta-data object below. Compliance to the standard naming conventions is critical in ensuring the ability to upgrade.
Contents
Setting Up Foreign Key References
Setting Up Maintenance Objects
Fields meta-data is maintained via the Fields Menu Item from the Admin Menu. Fields may describe columns on a table or they may be labels or work fields that do not appear on a table.
Contents
Select Fields from Admin Menu to navigate to the Fields View. Field Metadata can be edited in the Main Tab
Field MetaData – Main Tab
Important! If you change a field’s label, the new label appears on ALL transactions on which the field exists.
Warning! A field’s label can be overridden for a specific table. If this is the case and you change the field’s name on this transaction, the change will have no effect when the field is displayed for that specific table. If you find this to be true, change the field’s label on the respective table on which it was overridden. You do this using the Table Maintenance transaction.
Properties Description
Open this page using Admin Menu, Field.
Many fields on this page are protected as only the product development group may change them. The following describes fields you may change for records that are part of the base product. Fields containing information that may be of interest are also described.
Field Name uniquely identifies this field.
Important! If you introduce new fields, you must prefix the field with CM. If you do not do this, there is a possibility that a future release of the application could introduce a new field with the name you allocated.
Owner indicates if this field is owned by the base package or by your implementation (Customer Modification). The system sets the owner to Customer Modification when you add a field. This information is display-only.
Base Field
Data Type indicates if the field will hold Character, Date, DateTime, Number, Time, or Varchar2 data.
Ext Data Type
Precision defines the length of the field. In the case of variable length fields, it is the maximum length possible.
Scale
Sign
Level
88 Cpybk
Description contains the label of the field. This is the label of the field that appears on the various pages on which the field is displayed. Note, the field's label can be overridden for a specific table (by specifying an Override Label on the table / field information).
Java Field Name
Override Label
Check Work Field if the field does not represent a database table column.
Help Text
Special Notescontains any notes or special information about the field.
Select Admin Menu, Field and navigate to the Tables Using Field tab to view the tables that contain a field.
Fields - Tables Using Field Tab
Description of Page
The grid on this page contains the Tables that reference the Field. You can use the adjacent go to button to open the Table Maintenance transaction.
This object view is used to maintain meta-data related to foreign key references. This meta-data is used by Foreign Key (compound) element types.
Select FK Reference from Admin Menu to navigate to the Foreign Key References Window. The Main tab of the FK References Window maintains the meta-data related to foreign key references on the FK References List.
FK Reference Property Editor
The FK Reference Property Editor maintains the properties of a foreign key reference record and the metadata can be edited in this Window.
Properties Description
Enter an easily recognizable FK (foreign key) Reference code and Description for the table.
Enter the name of the Table whose primary key is referenced as a characteristic value. After selecting a Table, the columns in the table’s primary key are displayed adjacent to Table PK Sequence.
The remaining fields control the behavior of the foreign key reference. See the description that appears above the page snapshot for more information about these fields.
Use Navigation Option to define the page to which the user will be transferred when they press the go to button that prefixes a characteristic value.
The Info Program Type indicates whether the program that returns the information displayed adjacent to a characteristic value is written in Java.
· If the Program Type is Java, use Info Program Name to enter the Java class name.
Use Context Menu Name to specify the context menu that appears to the left of the value.
Context Menu Name. This attribute is only applicable to user interface elements utilizing the foreign key compound element type. Report parameters that reference foreign key characteristics are an example.
Use Search Navigation Key to define the search page that will be opened when a user searches for valid characteristic values.
Use Search Type to define the default set of search criteria used by the Search Navigation Key's search page.
Use Search Tooltip to define a label that describes the Search Navigation Key's search page.
Search Type and Search Tooltip. These attributes are only applicable to user interface elements utilizing the foreign key compound element type. Report parameters that reference foreign key characteristics are an example.
Where Used
Follow this link to open the data dictionary where you can view the tables that reference CI_FK_REF.
Some special fields have values that are defined by the base-package development group. These fields are called “lookup fields” because the system has to “look up” the descriptions on the Lookup table when they are displayed on a transaction.
Select Admin Menu, Look Up to maintain lookup values.
Lookup Tables Object View
Properties Description
Field Name is the name of the field whose lookup values are maintained in the grid. If you need to add a new lookup field, you must first add a Field with an extended data type of Flag.
Owner indicates if this lookup field is owned by the base package or by your implementation (Customer Modification). This information is display-only.
Custom switch is used to indicate whether you are allowed to add valid values for a lookup field whose owner is not Customer Modification.
· If this switch is turned on, you may add new values to the grid for system owned lookup fields.
· If this switch is turned off, you may not add, remove or change any of the values for system owned lookup fields, with the exception of the override description.
This field is always protected for system owned lookup fields because you may not change a field from customizable to non-customizable (or vice versa).
Java Field Name indicates the name of the field as it is referenced in Java code.
The grid contains the look up values for a specific field. The following fields may be modified:
Field Value This is the unique identifier of the lookup value. If you add a new value, it must begin with an X or Y (in order to allow future upgrades to differentiate between your implementation-specific values and base-package values).
Description This is the name of the lookup value that appears on the various transactions in the system
Java Value Name This indicates the unique identifier of the lookup value as it is referenced in Java code.
Status This indicates if the value is Active or Inactive. The system does not allow Inactive values to be used (the reason we allow Inactive values is to support historical data that references a value that is no longer valid).
Detailed Description A detailed description for a lookup value is provided in certain cases.
Override Description Enter a value in this field if your implementation wishes to override the description of the value provided by the product.
Note. If you wish the override descriptions of your lookup values to appear in the application viewer, you must regenerate the data dictionary application viewer background process.
Owner Indicates if this lookup value is owned by the base package or by your implementation (Customer Modification). The system sets the owner to Customer Modification when you add lookup values to a field. This information is display-only.
Every time a user navigates to a transaction, the system retrieves a navigation option to determine which transaction should open. For example,
· A navigation option is associated with every menu item. When a user selects a menu item, the system retrieves the related navigation option to determine which transaction to open.
· A navigation option is associated with every favorite link. When a user selects a favorite link, the system retrieves the related navigation option to determine which transaction to open.
· A navigation option is associated with every node in the various trees. When a user clicks a node in a tree, the system retrieves the related navigation option to determine which transaction to open.
· Etc.
Many navigation options are shipped with the base package and cannot be modified as these options support core functionality. As part of your implementation, you will probably add additional navigation options to support your specific business processes. For example,
· When you set up a campaign, you can optionally indicate that a transaction should open when an order linked to the campaign is completed. You do this by specifying the appropriate navigation option on the campaign.
· A script steps a user through a business process. While a script executes, one or more transactions can be opened. You indicate which transaction is opened by specifying the appropriate navigation option on one of the script's steps.
· A user can define their home page on their user preferences. They do this by selecting a navigation option.
· Etc.
Warning! In order to improve response times, navigation options are cached the first time they are used after a web server is started. If you change a navigation option and you don't want to wait for the cache to rebuild, you must clear the cached information so it will be immediately rebuilt using current information. A special button has been provided on the Main tab of the navigation option transaction that performs this function. Please refer to Caching Overviewfor information on the various caches.
Select Navigation Options from Object Explorer to navigate to the Navigation Options Object View.
Navigation Options - Main
Description of Page
Enter a unique Navigation Option code and Description.
The Flush System Login Info button is used to flush the cached navigation options so you can use any modified navigation options. Refer to Caching Overview for more information.
Owner indicates if this navigation option is owned by the base package or by your implementation (Customer Modification). This field is display-only. The system sets the owner to Customer Modification when you add a navigation option.
Note. You may not change navigation options that are owned by the base package.
Use Navigation Option Type to define if the navigation option navigates to a Transaction or launches a BPA Script.
For navigation option types of Transaction, enter the related information:
Navigation Mode indicates if the Target Transaction should be opened in Add Mode or Change Mode. You may also specify a Tab Page if you want to open a tab other than the main tab (i.e., you can leave this field blank if you want the main tab to be displayed when the transaction opens).
· Add Mode should be used if the option is used to navigate to a transaction ready to add a new object. You can use the Context Fields at the bottom of the page if you want to transfer the contents of specific fields to the transactionwhen it opens.
· Change Mode should be used if the option is used to navigate to a transaction ready to update an object. You have two ways to define the object to be changed:
o Define the name of the fields that make up the unique identifier of the object in the Context Fields (and make sure to turn on Key Field for each such field).
o Define the Search Transaction if you want to open a search window to retrieve an object before the target transaction opens. Select the appropriate Search Type to define which search method should be used. The options in the drop down correspond with the sections in the search (where Main is the first section, Alternate is the 2nd section, Alternate 2 is the 3rd section, etc.). You should execute the search window in order to determine what each section does. When you select a Search Type, the system defaults the related fields in Context Fields. This means the system will try to pre-populate the search transaction with these field values when the search first opens. Keep in mind that if a search is populated with field values the search is automatically triggered and, if only one object is found that matches the search criteria, it is selected and the search window closes.
Finding transaction navigation keys. When populating the Target Transaction and Search Transaction you are populating an appropriate navigation key. Because the system has a large number of transactions, we recommend using the "%" metaphor when you search for the transaction identifier. For example, if you want to find the currency maintenance transaction, enter "%currency" in the search criteria.
Search Group is only visible if the Development Tools module is not turned off. It is used to define the correlation between fields on the search page and the tab page. You can view a tab page's Search Groups by viewing the HTML source and scanning for allFieldPairs.
For navigation option types of script, indicate the Script to launch. You can use the Context Fields at the bottom of the page if you want to transfer the contents of specific fields to temporary storage variables available to the script. The script engine creates temporary storage variables with names that match the Context Field names.
The Go To Tooltip is used to specify the label associated with the tool tip that appears when hovering over a Go To object. Refer to Usage grid below.
The Usage grid defines the objects on which this navigation option is used:
· Choose Favorites if the navigation option can be used as a favorite link.
· Choose Menus if the navigation option can be used as a user's home page or as a menu or context menu item.
· Choose Script if the navigation option can be used in a script.
· Choose Foreign Key if the navigation option can be used as a foreign key reference.
· Choose Go To if the navigation option can be used as a "go to" destination ("go to" destinations are used on Go To buttons, tree nodes, algorithm parameters, and hyperlinks).
· Choose Notification Upload Type if the navigation option can be used on a notification upload type.
· If you have Oracle Utilities Customer Care and Billing, you may choose Campaign if the navigation option can be used as a "post completion" transaction on a campaign. For more information refer to that product's documentation for campaigns.
The Context Fields grid contains the names of the fields whose contents will be passed to the Target Transaction or Script. The system retrieves the values of these fields from the "current" page and transfers them to the target transactionor to the script's temporary storage.
No context from menu bar. The standard followed for the base menu navigation options is that navigation options launched from the menu bar are configured with no context; navigation options launched from context menus include context.
Where Used
Follow this link to open the data dictionary where you can view the tables that reference CI_NAV_OPT.
Navigation Options - Tree
This page contains a tree that shows how a navigation option is used. Select Admin Menu, Navigation Option and navigate to the Tree tab to view this page.
Description of Page
The tree shows every menu item, favorite link, and tree node that references the navigation option. This information is provided to make you aware of the ramifications of changing a navigation option.
This object view defines the available services.
Select Admin Menu, Service Program to maintain service programs.
Services Object View
Description of Page
Define a Service Name for your new service.
Important! If you introduce new services, you must prefix them with CM. If you do not do this, there is a possibility that a future release of the application could introduce a new service name with the name you allocated.
Owner indicates if this service is owned by the base package or by your implementation (Customer Modification). The system sets the owner to Customer Modification when you add a service. This information is display-only.
Description describes the service.
Service Type indicates whether the service is a Java Based Service.
This Program Component grid shows the list of program user interface components associated with the service. For a stand-alone XAI service this list is optional.
Where Used
Follow this link to open the data dictionary where you can view the tables that reference CI_MD_SVC.
This object view is used to maintain meta-data related to a table. A table represents a database table used to store framework data or a database view.
Contents
Tables - Referred By Constraints
Select Admin Menu, Table to view information about a table, define the fields whose changes should be audited, and to override a field’s label on a specific table.
Tables Object View - Main
Description of Page
Many fields cannot be changed. You cannot change most attributes on tables that are owned by the base-package (i.e., those whose Owner is not Customer Modification).
Description contains a brief description of the table.
System Table defines if the table holds rows that are owned by the base-package.
Enable Referential Integrity defines if the system performs referential integrity validation when rows in this table are deleted.
Data Group ID is used for internal purposes.
Table Usage defines how the table is used in the application. In the current release, only tables that are part of Oracle Utilities Business Intelligence make use of this field.
Table Type defines if the table is a View or a physical Table.
Date / Time Data Type defines if the system shows times on this table in Local Legal Time or in Standard Time (Local Legal Time is the time as adjusted for daylight savings).
Audit Table is the name of the table on which this table’s audit logs are stored. Refer to The Audit Trail File for more information.
Use Audit Program Type to define if the audit program is written in Java. Audit Program is the name of the program that is executed to store an audit log. Refer to Turn On Auditing For a Table for more information.
· If the Program Type is Java, enter the Java class name.
View the source. If the program is shipped with the base package, you can use the adjacent button to display the source code of this program in the source viewer or Java docs viewer.
Upgrade controls what happens to the rows in this table when the system is upgraded to a new release:
· Keep means that the rows on this table are not touched during an upgrade
· Merge means that the rows on this table are merged with rows owned by the base package
· Refresh means that the rows on this table are deleted and refreshed with rows owned by the base package.
Data Conversion Role controls if / how the table is used by the conversion tool:
· Convert (Retain PK) means that the table's rows are populated from the conversion schema and the prime key in the conversion schema is used when the rows are converted is not assigned by the system.
· Convert (New PK) means that the table's rows are populated from the conversion schema and the prime key is reassigned by the system during conversion.
· Not Converted means that the table's rows are not managed by the conversion tool.
· View of Production means that the conversion tool uses a view of the table in production when accessing the rows in the table. For example, the customer class table would be set up using this value so that the conversion tool will use the customer classes in production when it needs to access customer class codes.
A Language Table is specified when fields containing descriptions are kept in a child table. The child table keeps a separate record for each language for which a description is translated.
Enable Data Dictionary defines if the table is to be included in the Data Dictionary application viewer.
A Key Table is specified when the prime-key is assigned by the system. This table holds the identity of the prime keys allocated to both live and archived rows.
Type of Key specifies how prime key values are generated when records are added to the table:
· Other means a foreign-system allocates the table's prime-key (e.g., the fact and dimension tables within Oracle Utilities Business Intelligence have their keys assigned by Oracle Warehouse Builder).
· Sequential means a sequence number is incremented whenever a record is added to the table. The next number in the sequence determines the key value.
· System-generated means a program generates a random key for the record when it is added. If the record's table is the child of another table, it may inherit a portion of the random number from its parent's key.
· User-defined means the user specifies the key when a record is added.
Inherited Key Prefix Length defines the number of most significant digits used from a parent record's primary key value to be used as the prefix for a child record's key value. This is only specified when the Type of Key is System-generated and the high-order values of the table's key is inherited from the parent table.
Help URL is the link to the user documentation that describes this table.
Special Notes contains any notes or special information about the table.
The grid contains an entry for every field on the table. Drilling down on the field takes you to the Table Field tab where you may modify certain attributes. The following fields may also be modified from the grid: Description, Override Label, Audit Delete, Audit Insert and Audit Update. Refer to the Table Field tab for descriptions of these fields.
Select Admin Menu, Table and navigate to the Table Field tab to define the fields whose changes should be audited and to override a field’s label on a specific table (note, you can also maintain a subset of this information in the grid on the Main tab).
Tables Object View - Fields List
Description of Page
Many fields on this page are protected as only the product development group may change them. The following describes fields you may change for records that are part of the base product. Fields containing information that may be of interest are also described.
Turn on Audit Delete if an audit record should be stored for this field when a row is deleted. Refer to How To Enable Auditing for more information
Turn on Audit Insert if an audit record should be stored for this field when a row is added. Refer to How To Enable Auditing for more information.
Turn on Audit Update if an audit record should be stored for this field when it is changed. Refer to How To Enable Auditing for more information.
The Label column only contains a value if the base-product indicates a value other than the field's label should be shown on the various pages in the system. The field's label is shown above, adjacent to the field's code.
The Override Label is provided in case you want to override the base-package's label. If specified, it will be displayed throughout the application.
Note. If you want the Override Label to be shown in the data dictionary, you must regenerate the data dictionary.
Special Notes contains any notes or special information about the table.
Field Usage defines how the field is used in the application. In the current release, only tables that are part of Oracle Utilities Business Intelligence make use of this field.
Select Admin Menu, Table and navigate to the Constraints tab to view the constraints defined on the table.
Tables Object View - Constraints
Description of Page
The fields on this page are protected as only the product development group may change them.
This page represents a collection of constraints defined for the table. A constraint is a field (or set of fields) that represents the unique identifier of a given record stored in the table or a field (or set of fields) that represents a given record's relationship to another record in the system.
Constraint ID is a unique identifier of the constraint.
Owner indicates if this is owned by the base package or by your implementation (Customer Modification)
Constraint Type Flag defines how the constraint is used in the system:
· Primary Key represents the field or set of fields that represent the unique identifier of a record stored in a table.
· Logical Key represents an alternate unique identifier of a record based on a different set of fields than the Primary key.
· Foreign Key represents a field or set of fields that specifies identifying and non-identifying relationships to other tables in the application. A foreign key constraint references the primary key constraint of another table.
· Conditional Foreign Key represents rare relationships between tables where a single field (or set of fields) may reference multiple primary key constraints of other tables within the application as a foreign key.
When Enable Referential Integrity is checked, the system validates the integrity of the constraint when a row in the table is modified.
Referring Constraint Owner indicates if this is owned by the base package or by your implementation (Customer Modification).
Referring Constraint ID is the Primary Key constraint of another table whose records are referenced by records stored in this table.
Referring Constraint Table displays the table on which the Referring Constraint ID is defined. You can use the adjacent go-to button to open the table.
Additional Conditional SQL Text is only specified when the constraint is a Conditional Foreign Key. The SQL represents the condition under which the foreign key represents a relationship to the referring constraint table.
Additional Conditional SQL Syntax. When specifying additional conditional SQL text, all table names are prefixed with a pound (#) sign.
The Constraint Field grid at the bottom of the page is for maintaining the field or set of fields that make up this constraint.
Field The name of the table's field that is a component of the constraint.
Sequence The rank of the field as a component of the constraint.
The Referring Constraint Field grid at the bottom of the page displays the field or set of fields that make up the Primary key constraint of the referring constraint.
Field The name of the table's field that is a component of the referring constraint.
Sequence The rank of the field as a component of the referring constraint.
Select Admin Menu, Table and navigate to the Referred By Constraints tab to view the constraints defined on other tables that reference the Primary Key constraint of this table.
Tables Object View - Referred By Constraints
Description of Page
This page is used to display the collection of constraints defined on other tables that reference the table.
Referred By Constraint Id is the unique identifier of the constraint defined on another table.
Referred By Constraint Owner indicates if this constraint is owned by the base package or by your implementation (Customer Modification).
Prime Key Constraint Id is the Primary Key constraint of the current table.
Prime Key Owner indicates if this prime key is owned by the base package or by your implementation (Customer Modification).
Referred By Constraint Table is the table on which Referred By Constraint Idis defined.
When Enable Referential Integrity is checked, the system validates the integrity of the constraint when a row in the table is modified.
The grid at the bottom of the page displays the Field and Sequence for the fields that make up the constraint defined on the other table.
This meta-data represents the root of a menu “tree”. A menu contains a list of menu “lines”, which, in turn, contains a list of menu “items”. Lines can define navigation keys and/or associated actions, or further submenus.
Contents
This transaction is used to define / change any menu in the system. Navigate to this page using Admin Menu, Menu.
Menus - Main
Description of Page
Enter a meaningful, unique Menu Name.
Owner indicates if this menu line is owned by the base package or by your implementation (Customer Modification). The system sets the owner to Customer Modification when you add a menu line. This information is display-only.
The Flush Menu button is used to flush the cached menu items so you can see any modified or newly created menus. Refer to Caching Overview for more information.
Menu Type defines how the menu is used. You have the following options:
· Enter Admin for the administration menu. The Admin menu is a special type of Main menu as admin menu items can be grouped alphabetically or by functional group. Refer to the description of Admin Menu Order on Installation Options - Base for more information about admin menu options.
· Enter Context to define a context menu
· Enter Main to define a menu that appears on the menu bar.
· Enter Submenu to define a menu that appears when a menu item is selected. For example, the Main menu contains numerous submenus. Each submenu contains the navigation options used to open a page.
Long Label is only enabled for Admin and Main menus. It contains the text displayed to identify the menu when the menu button is clicked.
Menu Bar Description is only enabled for Admin and Main menus. It contains the text displayed to identify the menu in the menu bar.
Sequence is only enabled for Admin and Main menus. It controls the order of the menu in the list of menus that appears when the menu button is clicked.
The grid contains a summary of the menu's lines. Refer to the description of Menu Items for how to add items to a menu line.
· Menu Line ID is the unique identifier of the line on the menu. This information is display-only.
· Sequence is the relative position of the line on the menu. Note, if two lines have the same Sequence, the system organizes the lines alphabetically (based on the Long Label, which is defined on the next tab).
· Navigation Option / Submenu contains information about the line's items. If the line's item invokes a submenu, the submenu's unique identifier is displayed. If the line's item(s) invoke a transaction, the description of the first item's navigation option is displayed.
· Long Label is the verbiage that appears on the menu line.
· Item Count is the number of menu items on the line.
· Owner indicates if this menu line is owned by the base package or by your implementation (Customer Modification). The system sets the owner to Customer Modification when you add a menu line. This information is display-only.
After a menu has lines (these are maintained on the main tab), you use this page to maintain a menu line's items.
Each menu line can contain one or two menu items. The line's items control what happens when a user selects an option on the menu.
There are two types of menu items: one type causes a transaction to be invoked when it's selected; the other type causes a submenu to appear. For example,
· The following is an example of a menu line with two items: one opens the account transaction in update mode, the other (the + icon) opens the account transaction in add mode:
· The following is an example of a menu line with a single item that opens a submenu:
If you want to display an existing menu line's items:
· Navigate to Admin Menu, Menu and display the menu in question.
· Click the go to button on the line whose menu items should be displayed on this tab.
If you want to add a new line to an existing menu line:
· Navigate to Admin Menu, Menu and display the menu in question.
· Click the + button to add a new line to the grid.
· Use Sequence to specify the relative position of the line on the menu. Note, if two lines have the same Sequence, the system organizes the lines alphabetically (based on the Long Label,which is defined on the next tab).
· Save the new line.
· Click the go to button on the new line
Menus - Menu Lines List
Description of Page
Menu Name is the name of the menu on which the line appears. Menu Line ID is the unique identifier of the line on the menu. Owner indicates if this menu is owned by the base package or by your implementation (Customer Modification). This information is display-only.
The Menu Line Items scroll contains the line's menu items. The following points describe how to maintain a line's items:
· Menu Item ID is the unique identifier of the item.
· Owner indicates if this item is owned by the base package or by your implementation (Customer Modification).
· If the menu item should invoke a submenu (as opposed to a transaction):
· Use Sub-menu Name to identify the menu that should appear when the line is selected
· Use Long Label to define the verbiage that should appear on the menu line
· If the item should invoke a transaction (as opposed to a submenu):
· Use Sequence to define the order the item should appear in the menu line (we recommend this be set to 1 or 2 as a menu line can have a maximum of 2 menu items).
· Use Navigation Option to define the transaction to open (and how it should be opened). Refer to Defining Navigation Options for more information.
· If you want an icon to appear on the menu line (as opposed to text)
· Use Image GIF Location and Name to define the location in which the icon resides on the web server. For example, you could enter /images/contextAdd.gif if you want the classic "+" icon to appear. Your icons can be located on the product's web server or on an external web server. To add a new icon to the product web server, place it under the /cm/images directory under the DefaultWebApp. Then, in the URL field, specify the relative address of the icon. For example, if the icon’s file name is myIcon.gif, the URL would be /cm/images/myIcon.gif. If the icon resides on an external web server, the URL must be fully qualified (for example, http://myWebServer/images/myIcon.gif).
· Use Image Height and Image Width to define the size of the icon.
· Use Balloon Description if you want a tool tip to appear when the cursor hovers over the icon.
· Use Long Label to describe what this menu item does (note, this won't appear on the menu because you are specifying an icon; it's just good practice).
· If you want text to appear on the menu line (as opposed to an icon), use Long Label to define the text.
· The Override Label is provided in case you want to override the base-package's label.
Note. Owner indicates if this menu line is owned by the base package or by your implementation (Customer Modification). The system sets the owner to Customer Modification when you add a menu line. This information is display-only.
A maintenance object represents a grouping of tables that are maintained together on the user interface. When you add a new maintenance transaction, be sure to add a maintenance object that specifies the tables that are maintained together.
Using a MO, you have access to the back-end program components as well as to the front-end UI program components created using the Maintenance Object. This Component allows you to easily identify the objects that are associated with the primary table when you are developing and maintaining custom transactions.
Contents
Maintenance Objects – Algorithms
Maintenance Object - Maintenance Object Tree
Select Admin Menu, Maintenance Object to view information about a maintenance object.
Maintenance Object - Main
Description of Page
Most maintenance objects are provided with the base package. An implementation can introduce custom maintenance objects when needed. Most fields may not be changed if owned by the base package.
Enter a unique Maintenance Object name and Description. Ownerindicates if this business object is owned by the base package or by your implementation (Customer Modification).
Program Com ID is the name of the program used to call the maintenance object's page program for validating constraints when objects are archived, purged, or compared. Refer to Archiving and ConfigLab for more information.
Service Name is the name of the internal service associated with the maintenance object.
The grid displays the following for each table defined under the maintenance object:
Table The name of a given table maintained as part of the maintenance object.
Table Role The table's place in the maintenance object hierarchy. Only one Primary table may be specified within a maintenance object, but the maintenance object may contain many Child tables.
Parent Constraint ID Specifies the constraint used to link the table to its parent table within the maintenance object table hierarchy.
Compare Method Either Normal or Large Table; specifies the comparison method used by the compare utility in the ConfigLab.
Owner Indicates if this is owned by the base package or by your implementation (Customer Modification).
Click the View XML hyperlink to view the XML document associated with the maintenance object service in the Service XML Viewer.
Use this page to maintain a maintenance object's options. Open this page using Admin Menu, Maintenance Object and then navigate to the Optionstab.
Maintenance Object – Options
Description of Page
The optionsgrid allows you to configure the maintenance object to support extensible options. Select the Option Type drop-down to define its Value. Detailed Description may display additional information on the option type. Set the Sequence to 1 unless the option can have more than one value. Ownerindicates if this is owned by the base package or by your implementation (Customer Modification).
You can add new option types. Your implementation may want to add additional maintenance option types. For example, your implementation may have plug-in driven logic that would benefit from a new option. To do that, add your new values to the customizable lookup field MAINT_OBJ_OPT_FLG.
Use this page to maintain a maintenance object's algorithms. Open this page using Admin Menu, Maintenance Object and then navigate to the Algorithms tab.
Maintenance Object – Algorithms
Description of Page
The Algorithms grid contains algorithms that control important functions for instances of this maintenance object. You must define the following for each algorithm:
· Specify the System Event with which the algorithm is associated (see the table that follows for a description of all possible events).
· Specify the Sequence Number and Algorithm for each system event. You can set the Sequence Number to 10 unless you have a System Event that has multiple Algorithms. In this case, you need to tell the system the Sequence in which they should execute.
· If the algorithm is implemented as a script, a link to the Script is provided. Refer to Plug-in Scripts for more information.
· Ownerindicates if this is owned by the base package or by your implementation (Customer Modification).
The following table describes each System Event.
System Event |
Optional / Required |
Description |
Determine BO |
Optional |
Algorithm of this type is used to determine the Business Object associated with an instance of the maintenance object. It is necessary to plug in such an algorithm on a Maintenance Object to enable the business object rules functionality. The system invokes a single algorithm of this type. If more than one algorithm is plugged-in the system invokes the one with the greatest sequence number. |
Information |
Optional |
We use the term “Maintenance Object Information” to describe the basic information that appears throughout the system to describe an instance of the maintenance object. The data that appears in this information description is constructed using this algorithm. The system invokes a single algorithm of this type. If more than one algorithm is plugged-in the system invokes the one with the greatest sequence number. |
Transition |
Optional |
The system calls algorithms of this type upon each successful state transition of a business object as well as when it is first created. These are typically used to record the transition on the maintenance object's log. Note that some base maintenance objects are already shipped with an automatic logging of state transitions. In this case you may use these algorithms to override the base logging functionality with your own. |
Transition Error |
Optional |
The system calls this type of algorithm when a state transition fails and the business object should be saved in its latest successful state. The algorithm is responsible for logging the transition error somewhere, typically on the maintenance object's log. Notice that in this case, the caller does NOT get an error back but rather the call ends successfully and the exception is recorded somewhere, as per the plug-in logic. The system invokes a single algorithm of this type. If more than one algorithm is plugged-in the system invokes the one with the greatest sequence number. |
You can navigate to the Maintenance Object Tree to see an overview of the tables and table relationships associated with the maintenance objects.
Maintenance Object - Maintenance Object Tree
Description of Page
This page is dedicated to a tree that shows the maintenance object's tables as well as business objects, if you have defined any. You can use this tree to both view high-level information about these objects and to transfer to the respective page in which an object is maintained.