The fields included in the properties dialog vary according to the view model operator or element you select to edit. This reference table describes the fields and lists the operators each one applies to.
Property |
Operators used by |
Description |
Name |
All |
Click
in the Name field and choose a column name from the pull-down list
to change it. Column names are used in expressions to access data, so they’re bound by the same constraints as other variable names: column names must start with a letter underscore and must contain only letters, numbers, and underscore characters. Because it’s common to access column data using the column name, the name of each column in a give schema should be unique.
Note: If your schema has column names that do not conform to these norms, you must use the methods in the ResultSet object to access them by position (using a 1-based index). We suggest setting up your database operations to alias any columns with questionable names so they don’t cause difficulties in WorkSpace Data Federation.
When you add a new column, WorkSpace Data Federation chooses the next
available column from the input, which may not necessarily be the
column you want to add.
For transform definitions in Input Sources, if you use the Browse XPath button to choose the XML node for a given column,
WorkSpace automatically sets the column’s name to the name of that
node (unless you already edited the name).
|
|
|
|
Description |
All |
The description is optional. When you mouse over an operator in the view model editor, WorkSpace displays the description in a tool tip. |
Condition |
Iterator |
(Optional)
Enter a Boolean
expression. While the Boolean expression evaluates to
true, the Iterator operator continues to iterate, re-executing its primary
input. When the Boolean expression evaluates to false, the iteration
stops. If you’re using a range input, WorkSpace first checks for the
end of the range result set. If its rows aren’t yet exhausted, WorkSpace
evaluates your condition as well, and if your expression evaluates
to false, iteration stops.
|
Execute Inputs in Parallel |
Iterator |
Normally,
the Iterator operator waits to
advance to the next iteration until the result set from the previous
iteration has no more rows of data left. If you check this box,
the Iterator
will iterate until
the condition expression evaluates to false,
queuing up the result sets and passing them downstream as they
are requested. If the elements upstream of the Iterator
involve
operations external to the current data service (such as Input Source elements), they will
essentially all be executed simultaneously, generally resulting
in improved performance.
|
Expression |
Aggregate, Group By
|
Click in the
column’s Expression field to edit it. Enter any JavaScript
expression you want to pass to the aggregate function, including
simple column names from the incoming result set. Click the “...” button to open the Edit Expression
dialog if you need more room than the table cell provides. You can
also right click (either in the table cell directly, or in the Edit
Expression dialog) to show a context menu of column names, variables,
and functions that you can paste into the Expression field. The context menu is called the expressions menu.
|
Definition |
Generator |
Click in a column’s
definition field to enter an expression that will be evaluated each
time through the loop to set the value of the column. The expression
should evaluate to a value that’s appropriate for the column type
you choose. |
Direction |
Order By |
Choose the direction
in which this column should be sorted—either “Ascending” or “Descending.”
|
First Row Value |
Input Source |
This column
is not editable. It displays the values in the first
row of your file, to help you when naming the columns or
specifying their types.
|
Function |
Aggregate, Group By |
Click the Function
field and use the pull-down list to choose the function you want
to use for this column. The value of the Expression field will be
passed to this function for each row in the incoming result set.
The aggregate functions are described elsewhere. |
Generate only Distinct (Non-duplicate) Rows |
Projection,Union |
Eliminate from the output any row whose data
duplicates that of a row already in the output. |
Increment |
Iterator
|
Enter expressions
that update the variables you initialized in the previous field.
If you’re using a variable to control the iteration, increment its
value here. If you’re using any other variables that upstream operators
need to access, update their values here as well. If you’re using
a range input, you can update the variables based on the values
of the columns in the current row of the range input. You can enter any
JavaScript code here that would be valid inside a function body.
|
Initialize |
Iterator |
Enter expressions
that set up any variables you need, either to control the iteration
or to be made available to upstream operators. You can enter any
JavaScript code here that would be valid inside a function body.
|
Keep in Schema |
Group By |
Determines
whether the Group By
column in question will appear in the output schema of
the operator. To change
its value, click in the field and choose either “Yes” or “No” from the
pull-down.
|
|
|
|
|
|
|
Precision |
Aggregate, Generator, Group By, Custom
|
Precision does not apply to all types, and the meaning of a column’s Precision field depends on the type:
- For types BINARY, LONGVARBINARY, and VARBINARY, precision is the size of the column data in bytes.
- For types CHAR, LONGVARCHAR, and VARCHAR, precision is the size of the column data in characters.
- For types DECIMAL and NUMERIC, precision is the total number of digits in the column data (including digits on both sides of the decimal point).
|
Range Input |
Iterator |
If
you have connected two inputs to your Iterator,
designate one of them as the range input using this pull-down list.
If you’re using a range input, the Iterator operator automatically loops
through each row in the range result set, stopping when there are
no more rows.
You must set up other expressions to set the value
of any variables based on the range result set’s columns. However,
you need not maintain your own iteration control variables (such
as a counter that you increment). When you configure a range input,
WorkSpace automatically checks for the end of the result set and terminates
the loop under that condition. You can add an expression in the
Condition field (see above) to cause the looping to terminate while
there are still rows left in the range input, but you cannot cause
the iteration to continue after all rows in the range result set
have been used.
|
Scale |
Aggregate, Generator, Group By, Custom
|
Scale, which applies only to DECIMAL and NUMERIC types, is the total number of digits in the column data (including digits on both sides of the decimal point)
.
|
Type |
Aggregate, Custom,
Generator, Group By, Input Source
|
Specify the type of
the column’s data. Be sure to specify a numeric type (INTEGER, for example) for aggregate
columns that use the Count function.
For Input Source elements, when you create a new column its type defaults
to VARCHAR (data that can be transformed for input is by nature text-based).
If you change this, make sure that the data in the document can
be parsed as the type you choose. (For example, if the document has
the value “foo” and you choose INTEGER
for
the type, you will get an error when you execute your data service.)
Column data types in WorkSpace Data Federation
correspond to common SQL types of the same names. Types available are
- ARRAY
- BIGINT
- BINARY
- BIT
- BOOLEAN
- BLOB
- CHAR
- CLOB
- DATE
- DECIMAL
- DISTINCT
- DOUBLE
- FLOAT
- INTEGER
- JAVA_OBJECT
- LONGVARBINARY
- LONGVARCHAR
- NULL
- NUMERIC
- OTHER
- REAL
- REF
- SMALLINT
- STRUCT
- TIME
- TIMESTAMP
- TINYINT
- VARBINARY
- VARCHAR
- ORACLE_CURSOR
|
XPath |
Input Source (XML transform) |
Specify an XPath expression that defines
the node of the XML document
whose value you want to use for this column. The XPath is relative to the repeating
element you chose on the previous page of the wizard. WorkSpace simplifies the
task of setting the XPath
by providing a browser you can use to choose a node. This should
be sufficient in all but the most complex cases, requiring
a knowledge of XPath syntax
only for highly specialized applications. To access the browser, select
the column you’re defining and click Browse
XPath to choose the node. Make sure you choose the text
node (with the T
icon) if that’s what you want. |