This chapter explains how to add and update components in the Component Tree. This chapter contains the following sections:
The Component Tree represents a library of defined components which can then be added to Component Sets or Flows that specify a test instance. A Component in the Component Tree contains a set of lines of code, which will perform a unique functional action at a given point of time. The lines of code are specified in the component using keywords and parameters that define how to test a particular component in the application under test. A Component should be a single entity. It cannot contain multiple complex dependent functionality.
Components have the following general types:
Functional Components: Components that perform application specific functionality. Validations may or may not be part of these components based on the developed component's requirement.
Validation Components: Components that perform comparison of expected and actual values. These types of components can also be referred to as check points. Validation components return a Boolean value after the validation is performed.
Generic Components: Components that perform application tasks regardless of the product family.
The Component Tree on the Components page has the following structure:
An administrator defines the Release, Product Family, Product, and Feature structure of the Component Tree. Users add Components to the tree and define the keywords and parameters that will be used to specify Component Sets and Flows that generate the OpenScript scripts used to test the application under test.
Clicking the Components link at the top of the main window shows the Component Tree and Search Component options. The default Component Tree includes two releases, Generic and R12.1.3, as follows:
Generic components consist of those components that are functions that can be used across all product families. Expanding the Generic tree shows the list of products and features contained in the Generic tree:
Release and application specific components are listed below the Release(s) listed in the Components Tree. Expanding the tree shows the list of products and features in the release tree:
Note that the list of available product and features may vary based upon your specific installation.
The Search pane of the Components page lets you search for specific components:
You can select the Release, Product Family, Product, Feature, and Component to narrow the search criteria. You can also use the % wildcard character in the Component field to narrow the search:
Figure 3-6 Search Component Options with Search Criteria
This section explains the procedure for adding components to the Component Tree. Components can be added to the Component Tree in the following two ways:
Creating/uploading component one at a time under each feature. Components can be created directly in the application UI or uploaded from a pre-defined Excel file.
Using the bulk upload tool to add multiple components.
This section explains how to use the Component Tree to add an individual component to a product feature.
To add a component to the Component Tree using the application UI:
Expand the Component Tree to the product feature where you want to add the component.
Right-click the Feature name and select Create Component from the shortcut menu.
Figure 3-7 Create Component Option of the Feature Shortcut Menu
In the Component header pane, enter a Component name, Tags and Description.
The component name should be between 5 and 30 characters. The Component Name is available to create check mark appears if the name does not currently exist in the database.
Click Attach Code. The Component Code pane opens for specifying the keywords, objects, and attributes to use to test the component.
Define the component code by selecting keywords from the Keywords list and specifying any objects, attributes and parameters required for the each keyword added to the component code.
You can also download an Excel spreadsheet template file and specify the component code in the Excel spreadsheet. You can then upload the Excel spreadsheet to the component code pane. See Section 3.2.2, "Uploading Component Code from a Spreadsheet" for additional information about uploading component code from an Excel spreadsheet.
Click Save when finished. Any syntax errors will be highlighted.
Fix any errors and submit the component for approval by clicking on Submit or Submit for Approval. If your User Role privileges include Approve privileges, the Submit button is displayed instead of Submit for Approval.
The component submitted for approval should be approved by respective Product Family owner before it can be used in a flow.
Click Save and Unlock to save and exit the Component Code pane.
This section explains how to upload component code specified in an Excel spreadsheet. The Oracle Flow Builder includes a template Excel spreadsheet file that can be used to specify keywords, objects, and attributes to use to define a component. The Excel spreadsheet can be uploaded to the component code for a component defined in the Component Tree.
Expand the Component Tree to the product feature where you want to add the component.
Right-click the Feature name and select Create Component from the shortcut menu.
In the Component header pane, enter a Component name, Tags and Description.
The component name should be between 5 and 30 characters. The Component Name is available to create check mark appears if the name does not currently exist in the database.
Click Attach Code. The Component Code pane opens for specifying the keywords, objects, and attributes to use to test the component.
Click Download Template.
Specify a location and save the Excel file.
Open and edit the Excel file to define the product information, keywords, objects, attributes and parameters required for the each keyword added to the component code.
Save the Excel file as a new name.
In the Component Code pane, click Upload and Populate.
Figure 3-10 Upload Component Code Dialog Box
Click Browse and select the Excel spreadsheet file.
Click Start.
Click Save. The system displays syntactical errors, if any.
Fix any errors and submit the component for approval by clicking on Submit or Submit for Approval. If your User Role privileges include Approve privileges, the Submit button is displayed instead of Submit for Approval.
Click Save and Unlock to save and exit the Component Code pane.
You can copy an existing component to a new component with a new name.
To copy an existing component:
Expand the Component Tree to the component that you want to copy.
Right-click the component name and select Copy Component from the shortcut menu. The component is copied to the clipboard.
Expand the Component Tree to the product feature where you want to add the copied component.
Right-click the Feature name and select Paste Component from the shortcut menu.
If you are pasting to the same Product Feature tree or a component with the same name as the copied component exists, enter a new name for the new component and click Create.
The component is added to the tree with an In Progress status.
Existing components can be updated to add or remove keywords or change attributes.
To update an existing component:
Select the component to update using the Component Tree or the Search Component options.
If using the Component Tree, right-click the component to open the shortcut menu:
Figure 3-11 Component Update Shortcut Menu
If using the Search Component options, the update options appear at the top of the search results pane:
Figure 3-12 Component Search with Update Options
The update options are as follows:
Update Component Header: opens the Update Component pane for updating the component header details such as Component name, Tags, and Description.
View: opens the Component Code view in read-only format.
Update Code: opens the Component Code view for editing keywords and attributes. Component code can be updated in two ways:
Update code without versioning: only Attribute Value, Mandatory, Re-runnable and Display Name fields can be updated. The component modified with Update code without versioning option does not require approval.
Update code with versioning: allows full component updating for add, delete, modify, surround, and insert rows with various options. The component modified with Update code versioning, it must be submitted for approval.
Find Usage: lists all the flows in which the component has been used.
Delete: deletes the component from the Component Tree.
Add to Favourites: adds components that are frequently used in Flows to the Favourites Tree.
Copy Component: copies the component to a new component.
Detach: opens the table in a larger view.
Select the update option.
To update the header information for an existing component:
Expand the Component Tree to the component to update.
Right-click the component and select Update Component Header from the shortcut menu.
Update the component header information as needed and click Save.
To view component code for an existing component:
Expand the Component Tree or use the search options to select the component to view.
Select View from the Component Tree shortcut menu or the search pane.
Use the View menu options to re-order columns and select specific columns to view.
Click Detach to open the component code in a larger view.
Click the [X] button to close the component code view when finished.
To update component code without changing the component code version:
Expand the Component Tree or use the search options to select the component to update.
Select Update Code without Versioning from the Component Tree shortcut menu or the search pane.
Figure 3-15 Update Component Code without Versioning Pane
Only Attribute Value, Mandatory, Re-runnable and Display Name fields can be updated in this pane.
Click Save or Save & Unlock after necessary modifications are made. Click Back to Search to exit without saving changes.
To update component code and change the component code version:
Expand the Component Tree or use the search options to select the component to update.
Select Update Code with Versioning from the Component Tree shortcut menu or the search pane.
Figure 3-16 Update Component Code with Versioning Pane
This pane allows full component updating for add, delete, modify, surround, and insert rows with various options.
Adding rows: specify the number of rows to add in Rows to Add and click Add Rows. The specified number of rows are added to the end of the table.
Deleting rows: select the checkbox for the row to delete and click Delete or click the Trash can icon at the end of the row.
Inserting rows: select the row where you want to insert a new row before or after. Click the Insert Before or Insert After icon in the Insert column of the row.
Inserting a structure before or after a row: select the row where you want to insert a new structure. From the View menu, select Insert Structure, select Above or Below, then select the type of structure: Start Optional, Start Group, Start Iterate.
Surrounding a row with a structure: select the row that you want to surround with a new structure. From the View menu, select Surround With, then select the type of structure: Start Optional, Start Group, Start Iterate.
Click Save or Save & Unlock after necessary modifications are made. Click Back to Search to exit without saving changes.
To find the flows in which a component is used:
Expand the Component Tree or use the search options to select the component to find usage.
Select Find Usage from the Component Tree shortcut menu or the search pane.
Use the View menu options to show or hide columns, detach the report to a separate view, or reorder the columns.
Use the Export to Excel option to save the data to an Excel spreadsheet file.
Click the window close button when finished.
This section provides guidelines for developing component code.
The data sheet that is created in the flow will contain the columns which when populated will generate the code for execution for each component.
One component cannot be called from any other component.
Input and output parameters must be specified using GET and SET keywords.
Any looping construct must be created in generic functions and not in the components.
The Component Code defines the keywords, objects, and attributes that define the test actions for the component.
This section provides guidelines for using Keywords to specify component code for Web components.
Setting Application Type and Window
Component creation in the UI should begin with setting the Application Type and Window using the SETAPPTYPE and SETWINDOW keywords to specify the type of application and the window name. The following table shows an example of the component code steps:
Table 3-1 Keywords for Setting Application Type and Window
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
Web |
||
2 |
SETWINDOW |
Login |
Login |
Step 1 sets the application type as a web application.
Step 2 sets the window to the window with the display name Login and attribute value Login.
Statements in component code must be defined within STARTGROUP and ENDGROUP keywords in the following scenario:
Statement 1
Statement a
Statement b
Statement c
If all statements a, b, c need to be executed only if input is provided to Statement 1. The following table shows an example of the component code steps:
Table 3-2 Keywords for Grouping Statements
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
Web |
||
2 |
SETWINDOW |
Login |
Login |
|
3 |
STARTGROUP |
|||
4 |
SELECT |
List |
Actions |
Actions |
5 |
FUNCTIONCALL |
GENLIB |
Refresh List Box |
|
6 |
ENDGROUP |
Step 1 sets the application type as a web application.
Step 2 sets the window to the window with the display name Login and attribute value Login.
Step 3 defines the start of the statement group.
Step 4 specifies a SELECT action which requires Test Data to select a value in list box.
Step 5 specifies a FUNCTIONCALL. This step does not require any Test Data to be provided, but is a mandatory step or code to be generated if Test Data is provided for Step 4.
Step 6 defines the end of the statement group.
Components that have multiple tabs/pages in the application (a simple set of pages, for example, train) should be placed within STARTTAB and ENDTAB keywords in the following scenario:
Statement 1
Statement 2
Statement 3
Statement 4
If input is provided for any of Statements 2, 3, or 4, then only Statement 1 will be executed.
The STARTTAB and ENDTAB Keyword set can contain any other Keyword combinations. For example, in between STARTTAB and ENDTAB can have a STARTGROUP and ENDGROUP Keyword set or a STARTITERATE and ENDITERATE Keyword set.
The following table shows an example of the component code steps:
Table 3-3 Keywords for Setting Tab Pages
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
FORMS |
||
2 |
SETWINDOW |
Purchase Order |
PO_HEADER |
|
3 |
STARTTAB |
Lines |
||
4 |
CLICK |
TAB |
Lines |
TAB_LINES |
5 |
SETTEXT |
EDIT |
Item Description |
Item_Description_0 |
6 |
SETTEXT |
EDIT |
Promise Date |
PROMISEDATE_0 |
7 |
ENDTAB |
Lines |
||
8 |
STARTTAB |
More |
||
9 |
CLICK |
TAB |
More |
TAB_MORE |
10 |
SETTEXT |
EDIT |
Amount |
AMOUNT_HEADER |
11 |
ENDTAB |
More |
Step 1 sets the application type as a FORMS application.
Step 2 sets the window to the window with the display name Purchase Order and attribute value PO_HEADER.
Step 3 defines the start of the Lines tab.
Step 4 clicks the Lines tab if a value is provided for either "Item Description" or "Promised Date". Otherwise it will be skipped.
Steps 5 and 6 set the text for the edit boxes "Item Description" and "Promise Date".
Step 7 defines the end of the Lines tab.
Step 8 defines the start of the More tab.
Step 9 clicks the More tab if a value is provided for "Amount". Otherwise it will be skipped.
Steps 10 sets the text for the edit box "Amount".
Step 11 defines the end of the More tab.
Components that have multi-page Next/Submit options for further navigation use the STARTOPTIONAL and ENDOPTIONAL Keyword set. Figure 3-18 shows an example of a component with Next/Submit options:
Figure 3-18 Component with Next/Submit Navigation
The STARTKEY and ENDKEY Keywords are required within the STARTOPTIONAL and ENDOPTIONAL Keyword set. Only one statement is required within the STARTKEY and ENDKEY keyword set.
The following table shows an example of the component code steps:
Table 3-4 Keywords for Optional Navigation
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
Web |
||
2 |
SETWINDOW |
Create Transaction |
||
3 |
SETTEXT |
EDIT |
Field 1 |
FIELD_1 |
4 |
SELECT |
LIST |
Field 2 |
FIELD_2 |
5 |
STARTOPTIONAL |
|||
6 |
STARTKEY |
|||
7 |
CLICK |
BUTTON |
ClickNext |
SUBMIT_NEXT |
8 |
ENDKEY |
|||
9 |
WAIT |
WINDOW |
Page 2 |
Login |
10 |
ENDOPTIONAL |
|||
11 |
STARTOPTIONAL |
|||
12 |
STARTKEY |
|||
13 |
CLICK |
BUTTON |
ClickSubmit |
SUBMIT |
14 |
ENDKEY |
|||
15 |
WAIT |
WINDOW |
Page 3 |
Page 3 |
16 |
ENDOPTIONAL |
Step 1 sets the application type as a web application.
Step 2 sets the window to the window with the attribute value "Create Transaction".
Step 3 sets the text for the edit box "Field 1".
Step 4 selects the list box "Field 2".
Step 5 through 10 define the STARTOPTIONAL and ENDOPTIONAL Keyword set for the Next button click.
Step 11 through 16 define the STARTOPTIONAL and ENDOPTIONAL Keyword set for the Submit button click.
Components that have UI with line items use the STARTITERATE and ENDITERATE Keyword set with the MAXVISIBLELINES and SETLINE Keywords. Figure 3-19 shows an example of a component with line items.
MAXVISIBLELINES and SETLINE are required within STARTITERATE and ENDITERATE.
The MAXVISIBLELINES keyword specifies the maximum number of rows visible in the form of the component. The value is set in the "Attribute Value" column. There is no input parameter for this keyword.
The SETLINE keyword specifies the current line using one input parameter as the "Display Name".
All lines item functionality UI components that have Attribute value changes such as _0, _1, etc. must be between the STARTITERATE & ENDITERATE Keywords.
The following table shows an example of the component code steps:
Table 3-5 Keywords for Setting Line Items
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
STARTITERATE |
|||
2 |
MAXVISIBLELINES |
4 |
||
3 |
SETLINE |
PO Line Number |
||
4 |
SETFOCUS |
EDIT |
Item Description |
ITEM_DESCRIPTION_0 |
5 |
SETTEXT |
EDIT |
Type |
ITEM_TYPE_0 |
6 |
SETTEXT |
EDIT |
Category |
ITEM_CATEGORY_0 |
7 |
ENDITERATE |
Step 1 starts the STARTITERATE/ENDITERATE Keyword set.
Step 2 sets the maximum visible lines in the form.
Step 3 sets the current line to the PO Line Number.
Step 4 set the focus to the Item Description.
Step 5 and 6 set the text in the fields.
Step 7 ends the STARTITERATE/ENDITERATE Keyword set.
Setting Line Items with Column Search
Components that have UI with line items where column are searched using the STARTITERATE and ENDITERATE Keyword set with the MAXVISIBLELINES and SEARCHCOLUMN Keywords. Figure 3-20 shows an example of a component with line items with searchable columns.
Figure 3-20 Component with Line Items and Columns
The following table shows an example of the component code steps:
Table 3-6 Keywords for Setting Line Items with Column Search
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
STARTITERATE |
|||
2 |
MAXVISIBLELINES |
4 |
||
3 |
SEARCHCOLUMN |
Requisition |
REQUISTION_NUM_0 |
|
4 |
SEARCHCOLUMN |
Line |
REQ_LINE_0 |
|
5 |
CHECK |
CHECKBOX |
Select REQ Line |
SELECT_REQ_LINE_0 |
6 |
SETFOCUS |
EDIT |
Item |
REQ_ITEM_0 |
7 |
ENDITERATE |
Step 1 starts the STARTITERATE/ENDITERATE Keyword set.
Step 2 sets the maximum visible lines in the form.
Step 3 searches the Requisition column.
Step 4 searches the Line column.
Step 5 checks the check box.
Step 6 set the focus to the Item field.
Step 7 ends the STARTITERATE/ENDITERATE Keyword set.
Component code that causes a page navigation action (for example, clicking on a link, image, or button) should include a WAIT Keyword on the new page to provide better stability of the script.
The following table shows an example of the component code steps:
Table 3-7 Keywords for Setting Wait for Window
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
CLICK |
BUTTON |
Login |
Login |
2 |
SETWINDOW |
Oracle Applications Home page |
Oracle Applications Home page |
|
3 |
WAIT |
WINDOW |
Oracle Applications Home page |
Oracle Applications Home page |
Step 1 clicks the login button.
Step 2 sets the new window.
Step 3 waits for the new window.
Component code for form tabs uses the "Display Name" column to specify the visible text on the tab and the "Attribute Value" to specify the @name attribute of the tab.
The following table shows an example of the component code steps:
Table 3-8 Keywords for Setting Actions on Form Tabs
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
TAB |
Include Function |
REGIONS |
Step 1 clicks the Include Function tab.
Components that have UI with an HTML/OAF table are specified using the SETTABLENAME Keyword with the STARTITERATE/ENDITERATE Keywords set and the SETLINE Keyword. SETTABLENAME should specify the first row, first column value. If not available, any column in the table.
The HTML/OAF table should be a separate component. Figure 3-21 shows an example of a component with an HTML/OAF table.
Figure 3-21 Component with HTML/OAF Table
Display Name: should be the column name of the table.
Attribute Value: should be the column name of the table.
Note: if there is more than one table named "Details", specify the table attribute value as "Details", "Details;1" or "Details;2" depending on the sequence. By default "Details" is Details;0 (index starts from zero).
The following table shows an example of the component code steps:
Table 3-9 Keywords for Setting Table Name
Step # | Keyword | Object Type | Display Name | Function Name | Attribute Values |
---|---|---|---|---|---|
1 |
SETTABLENAME |
Details |
Details |
||
2 |
STARTITERATE |
||||
3 |
SETLINE |
Item Line Number |
|||
4 |
FUNCTIONCALL |
GENLIB |
*Item Description |
WEBSELECTLOV |
Search for Item Description |
5 |
SETTEXT |
EDIT |
*Quantity |
quantity |
|
7 |
ENDITERATE |
Step 1 sets the table name.
Step 2 starts the STARTITERATE/ENDITERATE Keyword set.
Step 3 sets line number.
Step 4 calls the WEBSELECTLOV function from the GENLIB function library.
Step 5 sets the quantity text.
Step 6 ends the STARTITERATE/ENDITERATE Keyword set.
Setting Table Name and Column Search
Components that have UI with an HTML/OAF table are specified using the SETTABLENAME Keyword with the STARTITERATE/ENDITERATE Keywords set and the SEARCHCOLUMN Keyword. SETTABLENAME should specify the first row, first column value. If not available, any column in the table.
If a combination of search columns is unique, 2 search columns can be specified, For example:
SETTABLENAME
STARTITERATE
SEARCHCOLUMN 1st column name as display name
SEARCHCOLUMN 2nd column name as display name
CLICK LINK
ENDITERATE
Figure 3-22 shows an example of a component with an HTML/OAF table with columns.
Figure 3-22 Component with HTML/OAF Table with Columns
Display Name: should be the column name of the table.
Attribute Value: should be the column name of the table.
Note: if there is more than one table named "Select", specify the table attribute value as "Select", "Select;1" or "Select;2" depending on the sequence. By default "Select" is Select;0 (index starts from zero).
The following table shows an example of the component code steps:
Table 3-10 Keywords for Setting Table Name and Column Search
Step # | Keyword | Object Type | Display Name | Function Name | Attribute Values |
---|---|---|---|---|---|
1 |
SETTABLENAME |
Select |
Select |
||
2 |
STARTITERATE |
||||
3 |
SEARCHCOLUMN |
*Member |
|||
4 |
SEARCHCOLUMN |
Position |
|||
5 |
FUNCTIONCALL |
GENLIB |
*Item Description |
WEBSELECTLOV |
Search for Item Description |
6 |
SETTEXT |
EDIT |
*Quantity |
quantity |
|
7 |
CHECK |
CHECKBOX |
Approver |
approver |
|
8 |
ENDITERATE |
Step 1 sets the table name.
Step 2 starts the STARTITERATE/ENDITERATE Keyword set.
Step 3 search for *Member column.
Step 4 search for Position column.
Step 5 calls the WEBSELECTLOV function from the GENLIB function library.
Step 6 sets the Quantity text.
Step 7 sets the Approver checkbox.
Step 8 ends the STARTITERATE/ENDITERATE Keyword set.
Components that have UI with Form treelist objects are specified using the SELECT Keyword specifying the object as TREELIST. Figure 3-23 shows an example of a component with a Form Treelist.
Figure 3-23 Component with Forms Treelist
The following table shows an example of the component code steps:
Table 3-11 Keywords for Form Treelist
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
STARTITERATE |
|||
2 |
MAXVISIBLELINES |
4 |
||
3 |
SEARCHCOLUMN |
Requisition |
REQUISTION_NUM_0 |
|
4 |
SEARCHCOLUMN |
Line |
REQ_LINE_0 |
|
5 |
CHECK |
CHECKBOX |
Select REQ Line |
SELECT_REQ_LINE_0 |
6 |
SETFOCUS |
EDIT |
Item |
REQ_ITEM_0 |
7 |
ENDITERATE |
Step 1 starts the STARTITERATE/ENDITERATE Keyword set.
Step 2 sets the maximum visible lines in the form.
Objects specify the type of object on which to perform the keyword action. Specific keywords have specific object types. The list of object types for a keyword will appear in the Object list when the keyword is specified in the component code window. See Appendix A for additional information.
The Display Name column specifies the text that displays in the UI of the component. The Display Name is mandatory for all action related statements. For example, SETTEXT, CLICK, etc.
The Attribute Values column specifies attribute name-value pairs. For Form objects the default is its name attribute. For example, id=usernamefield, name=USERNAME_0 for web.
If name-value pairs are not provided, the following default attributes are used for each UI component.
Table 3-12 Default Attributes for Object Types
Object | Attribute Defaults |
---|---|
Web: id, Form: not required |
|
id |
|
id |
|
id |
|
name |
|
name |
|
alt |
|
text |
|
id |
|
id |
|
Web: alt attribute of the torch icon in the web page, Form: name attribute of the text field on which the List of Values needs to be invoked. |
|
id |
|
name (display name is mandatory with the visible tab value or you can record and get the text) |
|
all tables are handled through first cell value or first non blank header. |
|
id |
|
none |
|
Web: need to check, Form: name |
|
none |
|
none |
|
Web: title, Form: name |
Specifies the name of the function to call when the Keyword FUNCTIONCALL is specified.
Specify Yes in this column for all mandatory fields. A No value is the default if this field is left empty.
Specify Yes for fields where the value entered should be unique. Specifying Yes for the Rerunnable column for any field appends a random variable to the data passed. The random variable will be preceeded with question mark. For example, fields such as Username or Item name, etc. should be unique. There cannot be two users or items with same name.
The Component Code defines the keywords, objects, and attributes that define the test actions for the component.
This section provides guidelines for using Keywords to specify component code for PLSQL components.
Component creation in the UI should begin with setting the Application Type using the SETAPPTYPE keyword to specify the type of application. The following table shows an example of the component code steps:
Table 3-13 Keywords for Setting Application Type
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
Step 1 sets the application type as a PLSQL or Open interface.
Select component is used to retrieve the data from the database using simple query. Statements in component code must be defined between STARTQUERY and ENDQUERY keywords as specified in the following scenario:
Table 3-14 Keywords for Select Statements
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
||
2 |
STARTQUERY |
|||
3 |
SELECT |
TABLE |
Table Name |
|
4 |
STARTROWITERATOR |
Enter Number of Columns |
||
5 |
SELECT |
COLUMN |
Column Details |
|
6 |
ENDROWITERATOR |
|||
7 |
STARTROWITERATOR |
Enter Number of Where Conditions |
||
8 |
SET |
CONDITION |
Where Condition |
|
9 |
ENDROWITERATOR |
|||
10 |
ENDQUERY |
Step 1 sets the application type as a PLSQL or Open Interface.
Step 2 defines the start of the statement keywords STARTQUERY.
Step 3 specifies a SELECT action which requires to provide Database table name
Step 4 defines the start of the statement STARTROWITERATOR, This is used to specify number of column to retrieve from database.
Step 5 specifies the column name to retrieved from the database.
Step 6 defines the end of the statement ENDROWITERATOR.
Step 7 defines the start of the statement STARTROWITERATOR for specifying number of conditions for database query.
Step 8 specifies the conditions to be provided for simple database query.
Step 9 defines the end of the statement ENDROWITERATOR.
Step 10 defines the end of the statement ENDQUERY.
Refers to stored procedure driven interfaces, where a call to stored procedure is made to perform an action within an Oracle Module, and the data from the external application is passed through the stored procedure's parameters.
Every PL/SQL constant, variable, parameter, and function return value has a data type that determines its storage format.
PLSQL procedure component is a data structure that can hold all the parameters of a PLSQL procedure. These parameters can be of different data types such as Standard data types (Number, Boolean, Varchar etc.), record type, object type, varray type, and table type.
These parameters can be of INPUT, OUTPUT and INOUT and those are defined with the keywords SETVARIN, SETVAROUT,SETVARINOUT.
Variable should be defined for OUTPUT and INOUT parameters. These variables can be considered for further usage/verification.
Procedure component should be defined between BEGINBLOCK and ENDBLOCK, BEGINCALL and ENDCALL keywords.
If a procedure is only defined between BEGINCALL and ENDCALL, then that procedure is called as part of another main procedure execution.
Figure 3-24 Example PLSQL Procedure Statements
Table 3-15 Keywords for PLSQL Procedure Statements
Step | Keyword | Object | Display Name | Attribute Values | Output Parameter | Function Name |
---|---|---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
||||
2 |
BEGINBLOCK |
@udt=GMD_ACTIVITIES _PUB.GMD_ACTIVITIES _REC_TYPE |
L_ACTIVITY_REC |
|||
3 |
BEGINCALL |
GMD_ACTIVITIES_PUB.INSERT_ACTIVITY |
||||
4 |
SETVARIN |
NUMBER |
Api Version |
P_API_VERSION |
||
5 |
SETVARIN |
BOOLEAN |
Init Message List |
P_INIT_MSG_LIST |
||
6 |
SETVARIN |
VARCHAR |
Commit |
P_COMMIT |
||
7 |
SETVAROUT |
VARCHAR2 |
Return Status |
X_RETURN_STATUS |
L_X_RETURN_STATUS |
|
8 |
SETVAROUT |
NUMBER |
Message Count |
X_MESSAGE_COUNT |
L_X_MSG_COUNT |
|
9 |
SETVARINOUT |
VARCHAR2 |
Resp Appl Name |
M_RESP_APPL_NAME |
L_M_RESP_APPL_NAME |
|
10 |
SETVARINOUT |
NUMBER |
Resp Appl Id |
M_RESP_APPL_ID |
L_M_ RESP_APPL_ID |
|
11 |
SETVARIN |
RECORD_TYPE |
Service Request rec |
P_SERVICE_REQUEST_REC,@udt='CS_SERVICEREQUEST_PUB.SERVICE_REQUEST_REC_TYPE' |
||
12 |
SETVAROUT |
RECORDTYPE |
Sr Create Out Rec |
X_SR_CREATE_OUT_REC,@udt='CS_SERVICEREQUEST_PUB.SR_CREATE_OUT_REC_TYPE' |
L_X_SR_CREATE_OUT_REC |
|
13 |
SETVARINOUT |
RECORDTYPE |
Service Request rec |
M_SR_CREATE_OUT_REC,@udt='CS_SERVICEREQUEST_PUB.SR_CREATE_OUT_REC_TYPE' |
L_M_SR_CREATE_OUT_REC |
|
14 |
SETVARIN |
TABLE_TYPE |
Contacts |
P_CONTACTS,@udt='CS_SERVICEREQUEST_PUB.CONTACTS_TABLE' |
||
15 |
SETVAROUT |
TABLE_TYPE |
Notes |
P_NOTES,@udt='CS_SERVICEREQUEST_PUB.NOTES_TABLE' |
L_X_SR_NOTE_OUT_TABLE |
|
16 |
SETVARINOUT |
TABLE_TYPE |
Contacts |
M_CONTACTS,@udt='CS_SERVICEREQUEST_PUB.CONTACTS_TABLE' |
L_M_SR_NOTE_OUT_TABLE |
|
17 |
SETVARIN |
OBJECT_TYPE |
Assign |
P_ASSIGN,@udt='CS_SERVICEREQUEST_PUB.ASSIGN_OBJECT' |
||
18 |
SETVAROUT |
OBJECT_TYPE |
Assign |
X_ASSIGN,@udt='CS_SERVICEREQUEST_PUB.ASSIGN_OBJECT' |
L_X_SR_ASSIGN_OBJECT |
|
19 |
SETVARINOUT |
OBJECT_TYPE |
Notes |
M_NOTE,@udt='CS_SERVICEREQUEST_PUB.NOTES_OBJECT' |
L_M_SR_NOTE_OBJECT |
|
20 |
SETVARIN |
VARRAY_TYPE |
User Id |
P_USER,@udt=WF_PARAMETER_LIST_T |
||
21 |
ENDCALL |
|||||
22 |
FUNCTIONCALL |
gENAPILIB |
Error Handling |
GetErrorHandlingBlock |
||
23 |
ENDBLOCK |
Step 1 sets the application type as a PLSQL application.
Step 2 defines the start of the statement BEGINBLOCK.
Step 3 defines the start of the statement BEGINCALL.
Step 4 thru step 6 defines INPUT standard data type parameters.
Step 7 thru step 8 defines OUTPUT standard data type parameters.
Step 9 thru step 10 defines INOUT standard data type parameters.
Step 11 defines INPUT record type parameter.
Step 12 defines OUTPUT record type parameter.
Step 13 defines INOUT record type parameter.
Step 14 defines INPUT table type parameter.
Step 15 defines OUTPUT table type parameter.
Step 16 defines INOUT table type parameter.
Step 17 defines INPUT object type parameter.
Step 18 defines OUTPUT object type parameter.
Step 19 defines INOUT object type parameter.
Step 20 defines INPUT varray type parameter.
Step 21 defines the end of the statement BEGINCALL using keyword ENDCALL.
Step 22 defines the GENAPILIB function to handle the message in block.
Step 23 defines the end of the statement BEGINBLOCK using keyword ENDBLOCK.
A record component is to represent a PLSQL Record Data type to hold single database record. The fields of a component can be of any PLSQL data type.
Record Component is defined between STARTRECORDTYPE and ENDRECORDTYPE.
All the fields of the record are to be defined with SETVAR keyword and corresponding data type as OFB component object.
A variable should be defined for the Record Component.
Figure 3-25 Example PLSQL Record Statements
Table 3-16 Keywords for PLSQL Record Statements
Step # | Keyword | Object | Display Name | Attribute Values | Output Parameter |
---|---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
|||
2 |
STARTRECORDTYPE |
PLSQL_OI |
@udt=GMD_ACTIVITIES _PUB.GMD_ACTIVITIES _REC_TYPE |
L_ACTIVITY_REC |
|
3 |
SETVAR |
NUMBER |
Transaction |
TRANS_CNT |
|
4 |
SETVAR |
VARCHAR2 |
Delete mark |
DELETE_MARK |
|
5 |
SETVAR |
VARCHAR2 |
Text Code |
TEXT_CODE |
|
6 |
SETVAR |
VARCHAR2 |
Activity |
ACTIVITY |
|
7 |
SETVAR |
VARCHAR2 |
Cost Analysis Code |
COST_ANALYSIS_CODE |
|
8 |
SETVAR |
VARCHAR2 |
Activity Description |
ACTIVITY_DESC |
|
9 |
ENDRECORDTYPE |
Step 1 sets the application type as a PLSQL application.
Step 2 defines the start of the statement STARTRECORDTYPE.
This keyword will hold the record name along with the package in the attribute field.
Variable should be provided in the output parameter field.
Step 3 thru step 8 defines variable of standard data type.
Step 9 defines the end of the statement STARTRECORDTYPE using keyword ENDRECORDTYPE.
An Object component is to represent PLSQL Object Data type. The fields of an Object component can be of any PLSQL data type.
Object Component is defined between STARTOBJECTTYPE and ENDOBJECTTYPE.
All the fields of the object are to be defined with SETVAR keyword and corresponding data type as OFB component object.
A variable should be defined for the Object Component.
Table 3-17 Keywords for PLSQL Object Statements
Step # | Keyword | Object | Display Name | Attribute Values | Output Parameter |
---|---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
|||
2 |
STARTOBJECTTYPE |
Wf Event |
@udt=WF_EVENT_T |
L_WF_EVENT_T |
|
3 |
SETVAR |
VARCHAR2 |
Error Stock |
ERROR_STOCK |
|
4 |
SETVAR |
DATE |
Received Date |
RECEIVED_DATE |
|
5 |
SETVAR |
NUMBER |
Priority |
PRIORITY |
|
6 |
ENDOBJECTTYPE |
Step 1 sets the application type as a PLSQL application.
Step 2 defines the start of the statement STARTOBJECTTYPE.
This keyword will hold the object name along with the package, if exists in the attribute field.
Variable should be provided in the output parameter field.
Step 3 thru 5 defines variable of standard data type.
Step 6 defines the end of the statement STARTOBJECTTYPE using keyword ENDOBJECTTYPE.
Note:PLSQL OBJECT Component supports only Standard type parameters.
Table of Standard Types Component
A table component is to represent a PLSQL Table Data type to hold a set of database standard type rows. The fields of a table component is of PLSQL Standard data type.
Table Component is defined between STARTTABLETTYPE and ENDTABLETYPE.
Number of rows to be passed to the table is to be defined between STARTROWITERATOR and ENDROWITERATOR.
All the fields of the table are to be defined with SETVAR keyword and corresponding Standard data type as OFB component object.
A variable should be defined for the Table of Standard Type Component.
Table 3-18 Keywords for PLSQL Table of Standard Types Statements
Step # | Keyword | Object | Display Name | Attribute Values | Output Parameter |
---|---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
|||
2 |
STARTTABLETYPE |
Activity Table |
@udt=GMD_ACTIVITIES _PUB.GMD_ACTIVITIES _TBL_TYPE |
L_ACTIVITY_TABLE |
|
3 |
STARTROWITERATOR |
No of Rows |
|||
4 |
SETVAR |
VARCHAR2 |
Activity Id |
ACTIVITY_ID |
|
5 |
ENDROWITERATOR |
||||
6 |
ENDTABLETYPE |
Step 1 sets the application type as a PLSQL application.
Step 2 defines the start of the statement STARTTABLETTYPE.
This keyword will hold the table name along with the package in the attribute field.
Variable should be provided in the output parameter field.
Step 3 defines the start of the statement STARTROWITERATOR. This keyword is used to specify number of Rows to passed to table.
Step 4 defines standard data type field.
Step 5 defines the end of the statement STARTROWITERATOR using keyword ENDROWITERATOR.
Step 6 defines the end of the statement STARTTABLETYPE using keyword ENDTABLETYPE.
Table of Record Type Component
A table of Records component is to represent a PLSQL Table Data type to hold a set of database record rows. The fields of a table component are of PLSQL Record data type.
Table Component is defined between STARTTABLETTYPE and ENDTABLETYPE.
Number of rows to be passed to the table is to be defined between STARTROWITERATOR and ENDROWITERATOR.
All the fields of the table are to be defined with SETVAR keyword and RECORD Type as OFB component object.
A variable should be defined for the Table of Records Component
Figure 3-26 Example PLSQL Table of Records Statements
Table 3-19 Keywords for PLSQL Table of Records Statements
Step # | Keyword | Object | Display Name | Attribute Values | Output Parameter |
---|---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
|||
2 |
STARTTABLETYPE |
Activity Table |
@udt=GMD_ACTIVITIES _PUB.GMD_ACTIVITIES _TBL_TYPE |
L_ACTIVITY_TABLE |
|
3 |
STARTROWITERATOR |
Number of Records |
|||
4 |
SETVAR |
RECORD_TYPE |
Activity Record |
@udt=GMD_ACTIVITIES _PUB.GMD_ACTIVITIES _REC_TYPE |
|
5 |
ENDROWITERATOR |
||||
5 |
ENDTABLETYPE |
Step 1 sets the application type as a PLSQL application.
Step 2 defines the start of the statement STARTTABLETTYPE.
This keyword will hold the table name along with the package in the attribute field.
Variable should be provided in the output parameter field.
Step 3 defines the start of the statement STARTROWITERATOR. This keyword is used to specify number of Rows to be passed to the table.
Step 4 defines the record data type field.
Step 5 defines the end of the statement STARTROWITERATOR using keyword ENDROWITERATOR.
Step 6 defines the end of the statement STARTTABLETYPE using keyword ENDTABLETYPE.
A table of Objects component is to represent a PLSQL Table Data type to hold a set of database object rows. The fields of a table component are of PLSQL Object data type.
Table Component is defined between STARTTABLETTYPE and ENDTABLETYPE.
Number of rows to be passed to the table is to be defined between STARTROWITERATOR and ENDROWITERATOR.
All the fields of the table are to be defined with SETVAR keyword and OJECT_TYPE as OFB component object.
A variable should be defined for the Table of Object Component.
Table 3-20 Keywords for PLSQL Table of Object Statements
Step # | Keyword | Object | Display Name | Attribute Values | Output Parameter |
---|---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
|||
2 |
STARTTABLETYPE |
Activity Table |
@udt=GMD_ACTIVITIES _PUB.GMD_ACTIVITIES _TBL_TYPE |
L_ACTIVITY_TABLE |
|
3 |
STARTROWITERATOR |
Number of Objects |
|||
4 |
SETVAR |
OBJECT_TYPE |
Wf Event |
@udt=WF_EVENT_T |
|
5 |
ENDROWITERATOR |
||||
6 |
ENDTABLETYPE |
Step 1 sets the application type as a PLSQL application.
Step 2 defines the start of the statement STARTTABLETTYPE.
This keyword will hold the table name along with the package in the attribute field.
Variable should be provided in the output parameter field.
Step 3 defines the start of the statement STARTROWITERATOR. This keyword is used to specify number of Rows to be passed to the table.
Step 4 defines var object data type field.
Step 5 defines the end of the statement STARTROWITERATOR using keyword ENDROWITERATOR.
Step 6 defines the end of the statement STARTTABLETYPE using keyword ENDTABLETYPE.
VArray component is to represent PLSQL VArray Data type. The fields of a VArray component can be of any PLSQL standard data type.
VArray Component is defined between STARTVARRAYTYPE and ENDVARRAYTYPE.
All the fields of the object are to be defined SETVAR keyword and corresponding data type as OFB component object.
A variable should be defined for the VArray Component.
Table 3-21 Keywords for PLSQL VArray Statements
Step # | Keyword | Object | Display Name | Attribute Values | Output Parameter |
---|---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
|||
2 |
STARTVARRAYTYPE |
Wms Epc TagId Type |
@udt=WMS_EPC_TAGID_TYPE,@index=false,@size=100 |
L_WMS_EPC_TAGID |
|
3 |
STARTROWITERATOR |
||||
4 |
SETVAR |
VARCHAR2 |
Varray of VARCHAR2 |
@size=260 |
|
5 |
ENDROWITERATOR |
||||
6 |
ENDVARRAYTYPE |
Step 1 sets the application type as a PLSQL application.
Step 2 defines the start of the statement STARTVARRAYTYPE.
This keyword will hold the VArray name in the attribute field.
Variable should be provided in the output parameter field.
Step 3 defines the start of the statement STARTROWITERATOR. This keyword is used to specify number of Rows to be passed to the table.
Step 4 defines Standard data type field.
Step 5 defines the end of the statement STARTROWITERATOR using keyword ENDROWITERATOR.
Step 6 defines the end of the statement STARTVARRAYTYPE using keyword ENDVARRAYTYPE.
Note: Oracle Flow Builder PLSQL does not support Nested Records (Record within a Record) and Table within a Record. |
This section provides guidelines for using Keywords to specify component code for Open Interface components.
Component creation in the UI should begin with setting the Application Type using the SETAPPTYPE keyword to specify the type of application. The following table shows an example of the component code steps:
Table 3-22 Keywords for Setting Application Type
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
Step 1 sets the application type as a PLSQL or Open interface.
This interface is used as an integration point between external application and the Oracle module. These components are used for loading data and data validations.
Insert Component is used to insert data into database table.Statements in component code must be defined between STARTQUERY and ENDQUERY in the following scenario:
Table 3-23 Keywords for Insert Statements
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
||
2 |
STARTQUERY |
|||
3 |
INSERT |
TABLE |
PO Lines Interface Table |
PO_LINES_INTERFACE |
4 |
SET |
COLUMN |
Interface Line ID |
INTERFACE_LINE_ID |
5 |
SET |
COLUMN |
Line Number |
LINE_NUM |
6 |
ENDQUERY |
Step 1 sets the application type as a PLSQL or Open Interface application.
Step 2 defines the start of the statement STARTQUERY.
Step 3 defines the start of the statement INSERT. This keyword is used to specify database table name.
Step 4 specifies a SET action which specifies database column name.
Step 5 specifies a SET action which specifies database column name.
Step 6 defines the end of the statement STARTQUERY using keyword ENDQUERY.
Open Interface Concurrent Program Component
Concurrent program component is to represent the concurrent program which needs to be executed after inserting data into temporary tables. The concurrent program is a PLSQL procedure call. Statements in component code must be defined between STARTBLOCK and ENDBLOCK in the following scenario:
Table 3-24 Keywords for Concurrent Program Component Statements
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
PLSQL_OI |
||
2 |
STARTBLOCK |
|||
3 |
BEGINCALL |
WIP Mass Load |
FND_REQUEST.SUBMIT_REQUEST,@returntype=NUMBER |
|
4 |
SETVARIN |
VARCHAR2 |
Application Short Name |
application |
5 |
SETVARIN |
DATE |
Start Date |
Start_date |
6 |
SETVARIN |
BOOLEAN |
Sub Request |
Sub_request |
7 |
SETVARIN |
VARCHAR2 |
Print Report |
Print_report |
8 |
ENDCALL |
|||
9 |
ENDBLOCK |
Step 1 sets the application type as a PLSQL or Open Interface.
Step 2 defines the start of the statement STARTBLOCK.
Step 3 defines the start of the statement BEGINCALL.
Steps 4 thru 7 specify a SETVARIN action which are all the parameters required to execute concurrent program.
Step 8 defines the end of the statement BEGINCALL using keyword ENDCALL.
Step 9 defines the end of the statement STARTBLOCK using keyword ENDBLOCK.
This section provides guidelines for using Keywords to specify component code for Webservice components.
Component creation in the UI should begin with setting the Application Type using the SETAPPTYPE keyword to specify the type of application. The following table shows an example of the component code steps:
Table 3-25 Keywords for Setting Application Type
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
WS |
Step 1 sets the application type as Webservice.
XML based protocols and standards used for exchanging data between applicants.
Webservice Structure Component
Webservice payload structure statements in component code must be defined between WS-STARTSTRUCTURE and WS-ENDSTRUCTURE keywords as specified in the following scenario:
Table 3-26 Keywords for Webservice Structure Component
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
WS |
||
2 |
WS-STARTSTRUCTURE |
|||
3 |
WSDL URL Static Part |
https://{{HOST}}:{{PORT}}/webservices/AppsWSProvider/oracle/apps/rrs/site/service/SiteService?wsdl |
||
4 |
Envelop |
soapenv:Envelope,@xmlns:ser="http://xmlns.oracle.com/apps/fnd/ServiceBean",@xmlns:ser1="http://xmlns.oracle.com/apps/rrs/site/service",@xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" |
||
5 |
Operation Name |
SiteService_CreateSite |
||
6 |
||||
7 |
WS-ENDSTRUCTURE |
Step 1 sets the application type as a Webservice.
Step 2 defines the start of the Webservice structure statement WS-STARTSTRUCTURE.
Step 3 specifies the Webservice WSDL URL Static Part.
Step 4 specifies the attributes of the payload root node.
Step 5 specifies the operation name for the xml payload.
Step 6 specifies to process the xml payload request
Step 7 defines the end of the Webservice structure statement WS-STARTSTRUCTURE using keyword WS-ENDSTRUCTURE.
Payload Request Node Definition Component
All the nodes in Webservice payload, having elements which require input data, is defined as a component.
Table 3-27 Keywords for Payload Request Node Definition Component
Step # | Keyword | Object Type | Display Name | Attribute Values |
---|---|---|---|---|
1 |
SETAPPTYPE |
WS |
||
2 |
NODE |
soapenv:Body |
||
3 |
WIP Mass Load |
ser1:SiteService_CreateSite/site |
||
4 |
SiteNumber |
SiteNumber |
||
5 |
WS-SETXMLELEMENT |
SiteName |
SiteName |
|
5 |
WS-SETXMLELEMENT |
SiteType |
SiteType |
|
5 |
WS-SETXMLELEMENT |
SiteStatus |
SiteStatus |
Step 1 sets the application type as a Webservice.
Step 2 specifies the Parent node.
Step 3 specifies the node name of the payload.
Steps 4 thru 7 defines the xml elements of a particular node.
Webservice Response Definition Component
All the nodes in Webservice response, having elements with data is defined as a component.
Table 3-28 Keywords for Webservice Response Definition Component
Step # | Keyword | Object | Display Name | Attribute Values | Output Parameter |
---|---|---|---|---|---|
1 |
SETAPPTYPE |
WS |
|||
2 |
NODE |
@outXpath=soapenv:Envelope/soapenv:Body/ser:SiteService_CreateSite_Response/Message |
SS_CST_Message |
||
3 |
Code |
Code |
|||
4 |
WS-SETXMLELEMENT |
Type |
Type |
||
5 |
WS-SETXMLELEMENT |
Text |
Text |
||
6 |
WS-SETXMLELEMENT |
DataSourceName |
DataSourceName |
Step 1 sets the application type as a Webservice.
Step 2 defines the node path from root to current node.
Steps 3 thru 6 specifies the elements of a particular node in Webservice response.