In this section: |
For each object the server will access, you create a synonym that describes its structure and the server mapping of the data types.
How to: |
The SUFFIX attribute in the Master File identifies the adapter needed to interpret a request. Use the SUFFIX value SQLC9 to identify the Adapter for C9 INC.
FILE[NAME]=file, SUFFIX=SQLC9 [,$]
where:
Is the file name for the Master File. The file name should start with a letter and be representative of the table or view contents. The actual file must have a .mas extension, but the value for this attribute should not include the extension.
Is the value for the adapter.
How to: Reference: |
Synonyms define unique names (or aliases) for each object that is accessible from the server. Synonyms are useful because they hide the underlying data source location and identity from client applications. They also provide support for extended metadata features of the server, such as virtual fields and additional security mechanisms.
Using synonyms allows an object to be moved or renamed while allowing client applications to continue functioning without modification. The only modification required is a redefinition of the synonym on the server. The result of creating a synonym is a Master File and an Access File, which represent the server metadata.
To create a synonym, you must have previously configured the adapter. You can create a synonym from the Applications or Adapters pages of the Web Console.
The Applications page opens.
The Select adapter to configure or Select connection to create synonym pane opens.
The first of a series of synonym creation panes opens.
The Status pane indicates that the synonym was created successfully.
The synonym is created and added under the specified application directory.
Note:
The following list describes the synonym creation parameters for which you can supply values.
Restrict candidates for synonym creation based on the selected object type(s): Tables, Views, External SQL Scripts, and any other supported objects.
Choosing External SQL Scripts from the drop-down list enables you to represent an SQL Query as a synonym for read-only reporting. A Synonym candidate can be any file that contains one (and only one) valid SQL Query and does not contain end-of-statement delimiters (";" or "/") and comments.
Depending on the adapter, you can further restrict your search by choosing check boxes for listed objects.
Selecting this option adds the Owner/Schema and Object Name parameters to the screen.
If you specify External SQL Scripts in the Restrict Object type to field, these additional fields are displayed.
The following standard naming conventions apply for UNIX:
During synonym generation, the adapter issues native API calls to obtain a list of elements in the select list and builds the Master File with a field for each element. The generated Access File references the location of the SQL script in the DATASET attribute, which contains the full path, including the name and extension of the file containing the SQL Query. For example,
DATASET=/ul/home2/apps/report3.sql
When a WebFOCUS report is created, the SQL Query is used to access data.
Select the Cardinality check box to reflect the current cardinality (number of rows or tuples) in the table during metadata creation. Cardinality is used for equi-joins. The order of retrieval is based on the size (cardinality) of the table. Smaller tables are read first.
If the cardinality of the tables to be used in the application are dynamic, it may not be beneficial to choose this setting.
To specify that the Master File created for the synonym should not contain column information, select the Dynamic columns check box.
If this option is selected, column data is retrieved dynamically from the data source at the time of the request.
Only available when External SQL Scripts is selected from the Restrict objects type to drop-down menu. When selected, a SUBQUERY keyword is added to the Access File of the generated synonym. If the corresponding SQL string has valid syntax that can be used in the FROM statement of the generated SQL (what is known as a Derived Table), then the SQL SCRIPT will be processed as a subquery embedded into a FROM clause. This usage allows for more flexibility. For example, the synonym can be used as a target for a JOIN.
If the SQL SCRIPT has parameter markers, such as ? or :, or the syntax contains constructs that are invalid for a derived table, for example ORDER BY, then this keyword should not be selected. At runtime, if SUBQUERY=Y is present and it is determined that the SQL SCRIPT cannot be used in the FROM statement, the setting will be ignored, and a FOC1782 warning message will be issued. The default is selected (SUBQUERY=Y).
Select an application directory. The default value is baseapp.
If you have tables with identical table names, assign a prefix or a suffix to distinguish them. For example, if you have identically named human resources and payroll tables, assign the prefix HR to distinguish the synonyms for the human resources tables. Note that the resulting synonym name cannot exceed 64 characters.
If all tables and views have unique names, leave the prefix and suffix fields blank.
To change the data type mappings from their default settings, select this check box. The customizable mappings are displayed.
For information about customizable mappings, see Data Type Support Report.
Select Create to overwrite any existing synonym with the same fully-qualified name, or Update to synchronize the metadata with an existing synonym. If you select Update, the next screen will show a list of attributes from the DBMS catalog that you can check to allow attributes from the DBMS catalog to override attributes from the existing synonym.
To specify that this synonym should overwrite any earlier synonym with the same fully qualified name, select the Overwrite existing synonyms check box.
Note: The connected user must have operating system write privileges in order to recreate a synonym.
This column displays the name that will be assigned to each synonym. To assign a different name, replace the displayed value.
The user account that created the object or a collection of objects owned by a user.
Is the name of the underlying object.
The object type (Table, View, and so on).
Select tables for which you wish to create synonyms:
An Adapter for C9 INC synonym comprises a Master File and an Access File. This is a synonym for the table account.
Master File account.mas
FILENAME=ACCOUNT, SUFFIX=SQLC9 , $ SEGMENT=ACCOUNT, SEGTYPE=S0, $ FIELDNAME=ID, ALIAS=Id, USAGE=A256V, ACTUAL=A256V, MISSING=ON, $ FIELDNAME=ISDELETED, ALIAS=IsDeleted, USAGE=I11, ACTUAL=I4, MISSING=ON, $ FIELDNAME=MASTERRECORDID, ALIAS=MasterRecordId, USAGE=A256V, ACTUAL=A256V, MISSING=ON, $ FIELDNAME=NAME, ALIAS=Name, USAGE=A256V, ACTUAL=A256V, MISSING=ON, $ FIELDNAME=TYPE, ALIAS=Type, USAGE=A256V, ACTUAL=A256V, MISSING=ON, $ FIELDNAME=PARENTID, ALIAS=ParentId, USAGE=A256V, ACTUAL=A256V, MISSING=ON, $ FIELDNAME=BILLINGSTREET, ALIAS=BillingStreet, USAGE=A256V, ACTUAL=A256V, MISSING=ON, $ . . . DEFINE DAILY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND=DB_EXPR(INTERVAL '1' DAY); TITLE='Daily Trend', $ DEFINE WEEKLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND=DB_EXPR(INTERVAL '1' WEEK); TITLE='Weekly Trend', $ DEFINE MONTHLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND=DB_EXPR(INTERVAL '1' MONTH); TITLE='Monthly Trend', $ DEFINE QUARTERLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND=DB_EXPR(INTERVAL '1' QUARTER); TITLE='Quarterly Trend', $ DEFINE YEARLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND=DB_EXPR(INTERVAL '1' YEAR); TITLE='Yearly Trend', $
Access File account.acx
SEGNAME=ACCOUNT, TABLENAME=ads.Account, CONNECTION=CON01, KEY=ID, $
This chart describes the keywords in the Access File.
Keyword |
Description |
---|---|
SEGNAME |
Value must be identical to the SEGNAME value in the Master File. |
TABLENAME |
Identifies the C9 INC table. The value assigned to this attribute can include the name of the owner (also known as schema) and the database link name as follows: TABLENAME=[owner.]table |
CONNECTION |
Indicates a previously declared connection. The syntax is: CONNECTION=connection Absence of the CONNECTION attribute indicates access to the default database server. |
KEY |
Specifies the column that participates in the primary key. The value is always ID: KEY=ID |
WRITE |
Specifies whether write operations are allowed against the table. |
KEYFLD IXFLD |
Supply the names of the primary key and foreign key fields that implement the relationships established by the multi-table Master File. Together, KEYFLD and IXFLD identify the field shared by a related table pair.
KEYFLD and IXFLD must have the same data type. It is recommended, but not required, that their lengths also be the same. Note: An RDBMS index on both the KEYFLD and IXFLD columns provides the RDBMS with a greater opportunity to produce efficient joins. The columns must have the same data type. If their length is the same, the RDBMS handles the join more efficiently. |
The adapter supports C9 Temporal Analysis by generating fields with temporal properties in the Master File.
For example, by default, CREATE SYNONYM adds the following five fields to the Master File that enable the use of Temporal Analysis supported by C9:
DEFINE DAILY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND = DB_EXPR(INTERVAL '1' DAY); TITLE='Daily Trend', $ DEFINE WEEKLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND = DB_EXPR(INTERVAL '1' WEEK); TITLE='Weekly Trend', $ DEFINE MONTHLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND = DB_EXPR(INTERVAL '1' MONH); TITLE='Monthly Trend', $ DEFINE QUARTERLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND = DB_EXPR(INTERVAL '1' QUARTER); TITLE='Quarterly Trend', $ DEFINE YEARLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND = DB_EXPR(INTERVAL '1' YEAR); TITLE='Yearly Trend', $
By using one of these fields the user can perform temporal queries against the base tables. For example:
The AS OF time itself can be added to the resulting report by referencing the same field in a BY clause. For example:
TABLE FILE OPPORTUNITY WRITE AMOUNT WHERE DAILY_TREND EQ '2014-01-01'.
The resulting SQL query is the following:
AS OF DATE '2014-01-01' SELECT SUM(T1."Amount") FROM ads.Opportunity T1.
TABLE FILE ibisamp/OPPORTUNITY WRITE AMOUNT BY QUARTERLY_TREND WHERE QUARTERLY_TREND FROM '2013-02-01' TO '2015-03-31'
The resulting SQL query is the following:
TREND FROM DATE '2013-02-01' TO DATE '2015-03-31' BY INTERVAL '1' QUARTER SELECT CAST(TrendDate() AS DATE), SUM(T1."Amount") FROM ads.Opportunity T1 GROUP BY CAST(TrendDate() AS DATE) ORDER BY CAST(TrendDate() AS DATE)
Please note that instead of DATE constants in the WHERE clause above, you can use DATE expressions based on Dialogue Manager variables such &DATEYYMD, and simplified functions such as DTRUNC and DTADD.
You can specify a trend interval that is different from the five predefined in the synonym, and use it as in the following sample code:
DEFINE FILE ibisamp/OPPORTUNITY BIWEEKLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY TREND = DB_EXPR(INTERVAL 2 WEEK); END TABLE FILE ibisamp/OPPORTUNITY COUNT ID BY BIWEEKLY_TREND ...
The following is an example of a Direct SQL Passthru temporal query:
SQL SQLC9 /*QUERY*/ TREND FROM DATE '2013-01-01' TO CURRENT_DATE BY INTERVAL '1' QUARTER SELECT CAST(TrendDate() AS DATE), SUM(T1."Amount") FROM ads.Opportunity T1 GROUP BY CAST(AsOfDate() AS DATE) ORDER BY CAST(AsOfDate() AS DATE); END
Note: In order for a query against a C9 synonym with a temporal field (a field with TEMPORAL_PROPERTY TREND) to make business sense the following restrictions apply.
Boundaries assumed by default, if not specified by a single-point EQ or FROM-TO test, are as follows:
The lower boundary is the start of the UNIX epoch, that is, 01/01/1970.
The upper boundary is the current date.
Once you have created a synonym, you can right-click the synonym name in the Adapter navigation pane of either the Web Console or the Data Management Console to access the following options.
Option |
Description |
---|---|
Open |
Opens the Master File for viewing and editing using a graphical interface. If an Access file is used it will be also available. |
Edit as Text |
Enables you to view and manually edit the Master File synonym. Note: To update the synonym, it is strongly recommended that you use the graphical interface provided by the Open option, rather than manually editing the Master File. |
Edit Access File as Text |
Enables you to view and manually edit the Access File synonym. Note: This option is available only when an Access File is created as part of the synonym. |
Sample Data |
Retrieves up to 20 rows from the associated data source. |
Data Profiling |
Data Profiling provides the data characteristics for synonym columns. Alphanumeric columns provide the count of distinct values, total count, maximum, minimum, average length, and number of nulls. Numeric columns provide the count of distinct values, total count, maximum, minimum, average value, and number of nulls. |
Refresh Synonym (if applicable) |
Regenerates the synonym. Use this option if the underlying object has been altered. |
Impact Analysis |
Generates reports on procedures, synonyms, and columns that provide information on the flows/stored procedures available on a particular server, and the synonyms and columns they use. These reports enable you to evaluate changes before they are made by showing which components will be affected. See the Server Administration manual for details about Impact Analysis reports. |
Copy |
Copies the synonym to the clipboard. |
Delete |
Deletes the synonym. You are asked to confirm this selection before the synonym is deleted. |
Cut |
Deletes the synonym and places it on the clipboard. |
Properties |
Displays the properties of the synonym, including physical location, last modified date, description, and privileges. |
How to: |
SQL Data Type mapping options are available in a report available from the Web Console.
To access the Data Type Report:
The Filter Data Types Report page opens, as shown in the following image.
The Filter Data Types Report is displayed, as shown in the following image.
Note: You can also display the report as a PDF by selecting the Show Report in PDF check box.
WebFOCUS |