PowerBuilder Support Guide

Previous Next

PowerBuilder Support Guide
PowerBuilder Support Guide
This guide describes Modernization Workbench (MW) support for the PowerBuilder programming language (versions 6.5 to 10). It includes a summary of supported tools, support notes and known limitations, and reference tables that describe the PowerBuilder object (Level 1) and construct (Level 2) models created by the MW parser.
The following topics are discussed:
Supported Tools
Support Notes
Modeling Support in MW
Unsupported Statements and Known Limitations

© Copyright 2010 Micro Focus (IP) Limited. All Rights Reserved.


Supported Tools

PowerBuilder Support Guide : Supported Tools
Supported Tools
Table 1‑1 describes the Repository-level tools and HyperView panes which are supported for PowerBuilder. For details about a specific MW tool, see the workbench documentation set.
Table 1‑1
Supported MW Functionality
Area of MW Supported
Support Notes
Inventory
PowerBuilder source files are registered into workspaces with default extensions.
Verification
full support
Inventory Report
full support
Verification Report
full support
Reference Reports
Unreferred Report
Unresolved Report
Cross-Reference
Orphan Analysis
full support
Note: Orphan Analysis can be used to detect which source files do not have a correct PBL structure during the workspace build process or to check which PB Script files are not used in the application.
Executive Report
Inventory Details and Repository Statistics only.
Complexity Metrics
full support
Effort Estimation
full support
Diagrammer
Full support with predefined scopes for PowerBuilder applications.
Quick Diagrammer
full support
Decision Resolution
Boundary decisions and decisions created for dynamic calls during verification can be resolved to targets.
Hyperview Source Pane
full support
Hyperview Context Pane
full support
Hyperview Clipper Pane
Full support for syntax-based searches with predefined queries for analyzing PowerBuilder sources.
Hyperview Advanced Search
Perform searches on individual PowerBuilder files rather than project-wide searches.
Hyperview Model Pane
Includes descriptions of the PowerBuilder HyperCode constructs and their attributes.
Hyperview Bird's Eye Pane
full support
Business Rule Manager
Includes the ability to create business rules manually or from Clipper lists.
Note:
SQL Support


Support Notes

PowerBuilder Support Guide : Support Notes
Support Notes
This section contains general support information and known limitations for PowerBuilder in this release.
Note:
Be sure to check the workbench release notes for late-breaking issues not available at press time.


Boundary Decisions

PowerBuilder Support Guide : Support Notes : Boundary Decisions
Boundary Decisions
You must specify boundary decisions in the Workspace Options dialog. See Preparing Projects in the workbench documentation set for details.


Setting the PBL Search Path

PowerBuilder Support Guide : Support Notes : Setting the PBL Search Path
Setting the PBL Search Path
After registration and verification, you must set the PBL search path. This is the same library search path used to compile the application. Select the project in the Repository pane and choose Create PBL Search Path in the Prepare menu. The Create LibPath option window opens.
•
The PBLs in the Workspace pane lists PBLs registered in the workspace. Place a check mark next to each PBL you want to include in the project.
•
The PBLs in the Project pane lists PBLs included in the selected project. Place a check mark next to each PBL you want to include in the PBL search path.
•
The PBLs in the LibPath pane lists PBLs in the PBL search path. Place a check mark next to each PBL you want to include in the search path. Use the Up and Down buttons to specify the order in which PBLs are searched.


Known Limitations

PowerBuilder Support Guide : Support Notes : Known Limitations
Known Limitations
The following known limitations are found in this release:
SQL support for PowerBuilder applications
SQL support for PowerBuilder differs from support for Cobol applications as follows:
•
Level 1 relationships are created in the workbench repository to show when PB Objects and DataWindows refer to database tables.
•
HyperCode Table constructs are created for Retrieve statements. These constructs contain information on the columns and variables used in the select statement.
•
Unrecognized SQL statements will be captured as searchable SQL Statement HyperCode constructs with the Kind attribute equal to "SQLerror".
•
Full parsing for inline SQL statements is not supported. However, embedded SQL statements are analyzed for Level 1 relationships to the database table, and HyperCode constructs are created for the host variables used in the statement.


Modeling Support in MW

PowerBuilder Support Guide : Modeling Support in MW
Modeling Support in MW
MW is a model-based technology that generates information about legacy applications at two levels:
•
Level 1 (or object-level) information describes the relationships between the objects that comprise an application: program source files, header files, and so forth.
•
Level 2 (or construct-level) information describes the relationships between the abstract syntactical constructs that comprise an object: statements, conditions, variables, and so forth.
At both levels, the models are conceived as Entity Relationship Diagrams (ERDs). Each object or construct the parser generates is modeled as an entity in one of the diagrams. The models are represented in tree form to the end user.


Level 1 Modeling Support for PowerBuilder

PowerBuilder Support Guide : Modeling Support in MW : Level 1 Modeling Support for PowerBuilder
Level 1 Modeling Support for PowerBuilder
The Level 1 model for an application defines the relationships between the objects that comprise the application. These can be physical objects, like PB Script files or PBL files; or logical objects that identify abstract program elements (PB query, pipeline, etc.).


Level 1 Metamodel

PowerBuilder Support Guide : Modeling Support in MW : Level 1 Modeling Support for PowerBuilder : Level 1 Metamodel
Level 1 Metamodel
Every entity the parser generates is an instance of an entity type. The Level 1 metamodel defines these types, or meta-entities, and their relationships.
Note:
The Level 1 metamodel is also referred to, in OMG terms, as the Knowledge Discovery Metamodel (KDM).
Figure 1‑1
Level 1 Metamodel
Click image to expand


Level 1 Model Table

PowerBuilder Support Guide : Modeling Support in MW : Level 1 Modeling Support for PowerBuilder : Level 1 Model Table
Level 1 Model Table
Table 1‑2 shows the objects in the Level 1 metamodel and their relationships.
Table 1‑2
Level 1 Model Table
Object
Relationships
PBL File
Includes Application File
Includes Script File
PB Application File
Defines Application Object
PB Script File
Defines Object
Defines DataWindow
Defines Query
Defines Pipline
PB Object
Has Non-Private Method
Invokes Method
Calls System Program
Opens Window
Menu Is
Uses DataWindow
Uses Object
Uses Pipeline
Refers To Table
Invokes Method Decision
Calls System Program Decision
Opens Window Decision
Menu Is Decision
Uses DataWindow Decision
Uses Object Decision
Uses Pipeline Decision
Refers To Table Decision
Refers to Data Store
Refers to Data Store Decision
PB DataWindow
Uses Table
Uses Table Decision
PB Query
Uses Table
Uses Table Decision
PB Pipeline
Reads Table
Updates Table
Reads Table Decision
Updates Table Decision


Level 1 Relationship Projections

PowerBuilder Support Guide : Modeling Support in MW : Level 1 Modeling Support for PowerBuilder : Level 1 Relationship Projections
Level 1 Relationship Projections
The following tables describe relationships generated by PowerBuilder in the Level 1 model.
PBL Relationship Projections
Table 1‑3
PBL Relationship Projections
Format
Relationship
Entities
Example/Notes
N/A
Includes Application File
Application File
N/A
Includes Script File
Script File
PB Application File Relationship Projections
Table 1‑4
PB Application File Relationship Projections
Format
Relationship
Entities
Example/Notes
global type <app_name> from application
Defines Application Object
PB Application Name=<app_name>
global type function_test from application
PB Script Relationship Projections
Table 1‑5
PB Script Relationship Projections
Format
Relationship
Entities
Example/Notes
global type <object_name> from <parent_object_name>
Defines Application Object
PB Object
Name=<object_name>
global type w_tabs_middle from w_tabs_base
N/A
Defines DataWindow
PB DataWindow
Note: There is no code inside the *.srd file that identifies the data window. The PB script name in the workspace is assigned by source file name.
N/A
Defines Query
PB Query
Note: There is no code inside the *.srq file that identifies the query. No source code refers to the query.
N/A
Defines Pipeline
Pipeline
Note: There is no code inside the *.srp file that identifies the pipeline. The Pipeline name in the workspace is assigned by source file name.
PB Object Relationship Projections
Table 1‑6
PB Object Relationship Projections
Format
Relationship
Entities
Example/Notes
public subroutine <name>
or
public function <name>
Has Non-Private Method
METHOD
Name=<name>
public subroutine test_numbers ();
<function_name>([list of parameters])
Invokes Method
METHOD
Name=[pbl]\[object].<function_name>
of_reference_test1(ai_arg1, ai_arg5, as_arg4)
<external_function_name>([list of parameters])
Calls System Program
System Program
Name=<external_function_name>
open <window_name>
Opens Window
PB Object
Name=<window_name>
open(w_choose_test)
string MenuName=”<menu_name>”
Menu Is
PB Object
Name=<menu_name>
string MenuName="m_genapp_frame"
dataobject = “<datawindow_name>”
Uses DataWindow
PB DataWindow
Name=<datawindow_name>
string dataobject = "dw_cust"
Any object reference
Uses Object
PB Object
Name=<object_name>
global type w_subtest from w_test
dataobject = "<pipeline_name>
Uses Pipeline
Pipeline
Name=<pipeline_name>
lpipe_master.DataObject = "p_archive_master"
<inline sql statement>
Refers To Table
Table
Name = <table_name>
select name from customer;
FileOpen(<file_name>, [params])
Refers To Data Store
Data Store
Name=<file_name>
file = FileOpen ("c:\temp\dataj.txt",LineMode!,
Write!,LockReadWrite!, Replace!)
[object].<method_name>([params])
Invokes Method Decision
Decision
Decision Type=METHOD
Variable name = <method name>
function_test.dynamic f_test()
N/A
Calls System Program Decision
Decision
raise_window(h_window1)
open(<window_variable>)
Opens Window Decision
Decision
Decision Type = PB Object
Variable Name = <window_variable>
open(w)
menu = <menu_variable>
Menu Is Decision
Decision
Decision Type = PB Object
Variable Name = <menu_variable>
menu = x
dataobject = <variable>
Uses DataWindow Decision
Decision
Decision Type = PB DataWindow
Variable Name = <variable>
string dataobject = x
<type_name> [variable]
Uses Object Decision
Decision
Decision Type = PB DataWindow
Variable Name = <variable>
Occurs for any object reference when there is a missing object (type) declaration
dataobject = <variable>
Uses Pipeline Decision
Decision
lpipe_master.DataObject = l_p
Any inline SQL where table cannot be identified.
Refers To Table Decision
Decision
Decision Type = Table
Variable Name = <variable>
FileOpen(<variable>, [params])
Refers To Data Store Decision
Decision
Decision Type = Data Store
Variable Name = <variable>
file = FileOpen (s_file_name,LineMode!,Write!,LockReadWrite!, Replace!)
PB DataWindow Relationship Projections
Table 1‑7
PB DataWindow Relationship Projections
Format
Relationship
Entities
Example/Notes
PBSELECT(…TABLE(NAME=”<table_name>”)…)
Uses Table
Table
Name=<table_name>
PBSELECT( VERSION(400) TABLE(NAME="dealer"
any unparseable select statement.
Uses Table Decision
Decision
PB Query Relationship Projections
Table 1‑8
PB Query Relationship Projections
Format
Relationship
Entities
Example/Notes
PBSELECT(…TABLE(NAME=”<table_name>”)…)
Uses Table
Table
Name=<table_name>
PBSELECT( VERSION(400) TABLE(NAME="account" ) TABLE(NAME="item_order" ) …
any unparseable select statement.
Uses Table Decision
Decision
PB Pipeline Relationship Projections
Table 1‑9
PB Pipeline Relationship Projections
Format
Relationship
Entities
Example/Notes
SOURCE(name="<table_name>",…)
Reads Table
Table
Name=<table_name>
SOURCE(name="account",…)
DESTINATION(name="<table_name>",…)
Updates Table
Table
Name=<table_name>
DESTINATION(name="account",…)


Complexity Metrics

PowerBuilder Support Guide : Modeling Support in MW : Level 1 Modeling Support for PowerBuilder : Complexity Metrics
Complexity Metrics
Table 1‑10 describes the industry standard and Modernization Workbench-generated complexity metrics supported for PowerBuilder.
Table 1‑10
Complexity Metrics for PowerBuilder
Metric
Entity
Calculation
Absolute Complexity
Method
Number of Binary Decisions divided by the number of statements. DE / Statements
Average Block Depth
PB Object
Average of Max Block Depth of Methods in Class
Average Cyclomatic Complexity
PB Object
Average v(g) across of methods in Class
Average Number of Parameters
PB Object
Average Number of Parameters across all methods
Binary Decisions
Method
Number of branching conditions in the flow graph with two possible outcomes (DE). Includes statements with implicit condition evaluation (loops etc.). Each WHEN of multi-branch statements like the Cobol EVALUATE is counted as a binary decision.
Note: For every statement of the form "if cond1 then … elseif cond2 … … elseif condn" n is added. If there is an "else …" clause, another 1 is added. For each case in a Choose statement, 1 is added.
Blank Lines
PB Script File
PB Application File
Number of blank lines of source.
Comments Ratio
Method
PB Object
[Number of Comments] / [Lines of Code]
Computational Statements
Method
Number of statements performing arithmetic calculations.
Note: Counts any assignment, function call, call, or return statement where any arithmetic operator is used in any expression.
Conditional Complexity
Method
Number of Binary Decisions plus the number of Unique Operands in Conditional Statements. DE + UO
Cyclomatic Complexity
Method
v(G) = e - n + 2, where v(G) is the cyclomatic complexity of the flow graph (G) for the program in question, e is the number of edges in G, and n is the number of nodes. Quantity of decision logic. The number of linearly independent paths (minimum number of paths to be tested).
Note: A control flow graph is built for each method and e - n + 2 is calculated.
- Return statements create arcs to the function exit point.
- Continue statements create arcs to the appropriate nodes in loops.
- Exit statements create links to the exit points of loops.
Control flow arcs are created for If, For, Do, Choose, Return, Exit, Continue, and GoTo statements.
Difficulty
Method
PB Object
D = (n1 / 2) * (N2 / n2), where n1 is the number of Unique Operators, N2 is the number of Operands, and n2 is the number of Unique Operands.
Error Estimate
Method
PB Object
B = E^(2/3) / 3000, where E is Programming Effort.
Essential Complexity
Method
This metric measures how much unstructured logic exists in a module (e.g., a loop with an exiting GoTo statement).
Note: The control flow graph is computed for each method. Structured programming constructs are removed, then e - n + 2 is computed for the graph.
Extended Cyclomatic Complexity
Method
Cyclomatic Complexity plus the number of Logical Operators in Conditions. Number of all paths in the program. v(G) + LO
Fan-out
Method
PB Object
Method: Number of Unique Methods accessed by this method
PB Object: Number of objects that this type depends on
Function Points
Method
Lines of Code divided by K, where K depends on the language: PowerBuilder = 24
Inheritance Depth
PB Object
Depth in Inheritance Hierarchy
Intelligent Content
Method
PB Object
I = L * V, where L is the Program Level and V is the Program Volume. Complexity of a given algorithm independent of the language used to express the algorithm.
Lines of Code
Method
PB Object
Number of lines of code not including comments and blank lines.
Lines with Comments
PB Script File
PB Application File
Number of lines of source containing comments, including inline comments placed on lines with statements.
Logical Operators In Conditions
Method
Number of binary logical operators used in conditions. (LO)
Note: Counts occurrences of AND, OR, and NOT inside the If, Case, While, and Until expressions
Maintainability Index
Method
M = 171 - 5.2*ln(aveV) - 0.23*aveV(g1)
- 16.2*ln(aveLOC) + 50*sin(sqrt(2.46*perCM)), where

- aveV is the average Software Science Volume Metric per module
- aveV(g') is the average extended cyclomatic complexity per module
- aveLOC is the average lines of code per module
- perCM is the average percent of lines of comment per module.
Maximum number of SWITCH Cases
Method
Maximum number of Case statements in any Choose statements in the method
Nested Block Depth
Method
Maximum depth of Nesting in If, Choose, Try, Do, or For constructs in Method.
Note: 1 is added to the depth in the if and else parts of if statements, the bodies of loops, and the code in each case of a choose statement.
Number of Blank Lines
Method
PB Object
Number of lines containing only white space characters
Number of Comments
Method
PB Object
Number of lines containing only comments and not code
Number of Constructors
PB Object
Number of Constructors in Class
Note: 1 is counted for each "on <type>.create" event handler definition.
Number of Exception Condition statements
Method
Number of Catch statements.
Number of Executable Statements
Method
One (1) is added for each construct considered a statement by the grammar. This includes assignments, function calls alone on a line, calls, returns, If, Do, For, Choose, Exit, Continue, GoTo.
Number of Fields
PB Object
Number of Instance Variables.
Number of IF-like Statements
Method
Number of If statements.
Number of Loops
Method
Number of Do, FOR statements.
Number of Methods
PB Object
Number of methods defined in the class.
Number of Operands
PB Object
Method
Number of operands (N2). Operands are variables and literals used in operators.
Note: For any unary operator, 1 is added to the number of operands. For any binary operator, 2 is added to the number of operands. For an assignment, 2 is added to the number of operands
Number of Operators
PB Object
Method
Number of operators (N1). Operators are executable statements and unary and binary operations.
Note: Operators are any occurrences of =, *=, +=, /=, -=, ^=, +, -, *, /, ^, [ ], AND, OR, NOT, >, <, >=, <=, <>, ++, --, function application. The equal operator (=) is counted both in assignments and comparisons. Statements like Exit, Continue, GoTo, If, Choose, Return, Do For, Call, and Try are considered operators.
Number of Parameters
Method
Number of parameters in Method Call, between braces. The number of the method's formal parameters.
Number of Static Fields
PB Object
Number of Shared and Global Variables.
Number of Subclasses
PB Object
Number of sub-Types defined in Class.
Number of SWITCH-like Statements
Method
Number of Choose statements.
Number of Unique Operands
PB Object
Method
Number of distinct operands (n2). Operands are variables and literals used in operators. Uniqueness of literals is determined by their notation, i.e. "10", "+10" and "1.0E+1" are different; "abc" and "abc " are different.
Note: For every binary operator, a canonical form of the PowerBuilder expression for each operand is put into a set. For every unary expression, the canonical form of the operator is stored in the set. For each return statement, if a value is returned, the canonical form of the expression is stored in the set. In each case, the expression is recursively processed in case there are sub-expressions. The canonical form is basically a string representation of the PowerBuilder expression. The count is the number of elements in the set.
Number of Unique Operators
PB Object
Method
Number of distinct operators (n1). Operators are statements and unary and binary operations.
Program Length
Method
PB Object
N = N1 + N2, where N1 is the number of Operators and N2 is the number of Operands.
Program Level
Method
PB Object
L = 1 / D, where D is the program Difficulty.
Program Vocabulary
PB Object
n = n1 + n2, where n1 is the number of Unique Operators and n2 is the number of Unique Operands.
Program Volume
Method
PB Object
V = N * log2(n), where N is the Program Length and n is the program Vocabulary. Minimum number of bits required to code the program.
Programming Effort
Method
PB Object
E = V / L, where V is the Program Volume and L is the Program Level. Estimated mental effort required to develop the program.
Programming Time
Method
PB Object
T = E / 18, where E is the Programming Effort and 18 is Stroud’s Number. Estimated amount of time required to implement the algorithm, in seconds.
Response for Class
PB Object
RFC = M + R (First-step measure)
M = number of methods in the class
R = number of remote methods directly called by methods of the class
Source Lines
PB Script File
PB Application File
Number of lines of source.
Total Number of SWITCH CASES
Method
Toyal number of Case statements in all Choose statements in the method
Unique Operands In Conditions
Method
Number of distinct operands used in conditions. (UO)
Note: Only operands inside If, Case, Until, or While expressions are counted
Vocabulary
Method
n = n1 + n2, where n1 is the number of Unique Operators and n2 is the number of Unique Operands.
Weighted Methods
PB Object
Sum of the Cyclomatic Complexity for all methods defined in the class.


Level 2 Modeling Support for PowerBuilder

PowerBuilder Support Guide : Modeling Support in MW : Level 2 Modeling Support for PowerBuilder
Level 2 Modeling Support for PowerBuilder
The Level 2 model for an object defines its syntax. It shows in abstract form how the syntactical constructs that comprise the object (variables, expressions, statements, etc.) are related.


Level 2 Metamodel

PowerBuilder Support Guide : Modeling Support in MW : Level 2 Modeling Support for PowerBuilder : Level 2 Metamodel
Level 2 Metamodel
Each construct the parser generates is an instance of an entity type. The Level 2 metamodel defines these types, or meta-entities, and their relationships.
Note:
The Level 2 metamodel is also referred to, in OMG terms, as the Abstract Syntax Tree Metamodel (ASTM).
Figure 1‑2
Level 2 Metamodel
Click image to expand


Level 2 Model Table

PowerBuilder Support Guide : Modeling Support in MW : Level 2 Modeling Support for PowerBuilder : Level 2 Model Table
Level 2 Model Table
Table 1‑11 describes the relationships for constructs in the Level 2 metamodel. A construct that “inherits from” other constructs can be thought of in “child/parent” terms. The child construct inherits all attribute values and relationships of the parent.
Table 1‑11
Level 2 Model Table
Construct
Relationships
Application
Inherits from PowerBuilder Object
Array Element
Inherits from Expression
Assignment
Inherits from Statement
Block
Conditional Statement: references the parent conditional statement, if any
Branch
Variables Used: reference to a condition that includes the variable, if any
Inherits from Typefied Construction
Inherits from Block
Call
Inherits from Expression
Inherits from Typefied Construction
Inherits from Identifier Usage
Choose Statement
Inherits from Statement
Inherits from Conditional Statement
Column
Inherits from Variable Declaration
Inherits from Typefied Construction
Inherits from Identifier Declaration
Command
Inherits from Statement
Conditional Statement
Branch: references to the statement branch, ELSE block, or FINALLY block
Create
Inherits from Expression
Inherits from Typefied Construction
DataWindow
Inherits from PowerBuilder Object
Destroy
Inherits from Expression
Inherits from Typefied Construction
Do Loop
Inherits from Statement
Inherits from Conditional Statement
Expression
Port: reference to a port that transfers this item
For Loop
Inherits from Statement
Inherits from Conditional Statement
Function Definition
Implementation: reference to the function implementation
Prototype: reference to the function prototype
Inherits from Typefied Construction
Inherits from Identifier Declaration
Global Function
Inherits from PowerBuilder Object
GoTo
Target: references label to which the GoTo statement transfers control
Inherits from Statement
HTML Section
Inherits from Variable Declaration Block
Identifier Declaration
Instances: references to applied occurrences of the identifier
Identifier Usage
Declaration: references the identifier's declaration
Inherits from Expression
If Statement
Inherits from Statement
Inherits from Conditional Statement
Imported Declarations
N/A
Label
Statement: references to the labeled statement
GOTO statements: references to GOTO statements transfering control to the label
Literal
Inherits from Expression
Menu
Inherits from PowerBuilder Object
Pipeline
Inherits from PowerBuilder Object
Port
Transferred Data: reference to all arguments that are transferred by the port
PowerBuilder Object
No relationships
See the PowerBuilder Object entry in Construct Attributes for more information
Predefined Prototypes
N/A
Query
Inherits from PowerBuilder Object
Retrieve
Parents: Function definition, Typefied construction, Identifier declaration
Inherits from Function Definition
Inherits from Typefied Construction
Inherits from Identifier Declaration
Return
Inherits from Statement
Select
Inherits from Expression
SQL Statement
Inherits from Statement
Statement
Label: references to the labeled statement
Structure
Inherits from PowerBuilder Object
Table
Inherits from Variable Declaration Block
Try Statement
Inherits from Statement
Inherits from Conditional Statement
Type Definition
Type is used: reference to constructs that use this type
Child Classes: references to nested object type definitions
Parent Class: references to the parent object type definition
Derived Classes: references to derived object type definitions
Super Class: references to the parent object type definition
Implementation: reference to the type implementation
Prototype: reference to the type prototype
Type Definitions
N/A
Typefied Construction
Type Used: type of the variable
User Object
Inherits from PowerBuilder Object
Variable
Including Condition: reference to a condition that includes the variable, if any
Inherits from Expression
Inherits from Identifier Usage
Variable Declaration
Inherits from Typefied Construction
Inherits from Identifier Declaration
Variable Declaration Block
N/A
Variable Definitions
N/A
Visual Control
Inherits from Variable Declaration Block
Window
Inherits from PowerBuilder Object


Construct Attributes

PowerBuilder Support Guide : Modeling Support in MW : Level 2 Modeling Support for PowerBuilder : Construct Attributes
Construct Attributes
Table 1‑12 describes the attributes of constructs in the PowerBuilder level 2 model.
Table 1‑12
Table of Attributes for PowerBuilder
Attribute
Construct(s)
Attribute Description
Array
Column
Variable Declaration
String: dimension of the array variable.
Autoinstantiate
Type Definition
Boolean: type instantiation indication.
BranchKind
Block
Branch
Enum: the block kind: "Else", "Finally", or empty
The possible values of the attribute are:
-
Else -
Finally -
Then -
Case -
Catch -
Do -
For -
ControlKind
Visual Control
String: Type of the control: "Column", "Compute", "Header", "Footer", "Detail", "Text", etc.
CursorName
SQL Statement
String: cursor name, if any.
DBName
Column
String: column name as in the database.
Direction
Port
Enum: direction of the data flow thru the port.
Possible values:
IN
OUT
INOUT
Dynamic
Call
Create
Boolean: indication of an unknown object type or function.
EventCall
Call
Boolean: indicates whether the statement is a function call or an event call.
FunctionKind
Function Definition
Retrieve
Enum:kind of the function.
Possible values:
Function
Event (event handler)
On (“on" procedure
Global
Function Definition
Retrieve
Type Definition
Boolean: type global visibility indication.
HTMLKind
HTML Section
String: kind of the HTML section: "HTMLTable", "HTMLGen", etc.
Kind
Expression
DO Loop
FOR Loop
Call
Create
Destroy
Literal
Select
Array Element
Statement
If Statement
Choose Statement
Try Statement
Command
Assignment
Go To
Return
SQL statement
Variable
String: kind of the construct
Label
DO Loop
GoTo
Label
SQL Statement
String: the label identifier.
LoopKind
DO Loop
Enum: indicates the loop condition kind.
Possible values:
While
Until
Name
PowerBuilder Object
User Object
Application
Global Function
Structure
Menu
Window
Datawindow
Query
Pipeline
Type definition
Variable declaration
Function definition
Variable
Column
Retrieve
String: name of the attribute
PortType
Port
Enum: type of the port.
Possible values:
Call
Parameters
File
SQL
Posted
Call
Boolean: indicates whether the call is triggered or posted.
Qualifier
Command
String: set to CLOSE for the halt close variant of the halt statement which runs the close event handler.
Scope
Column
HTML Section
Table
Variable Declaration
Variable Declaration Block
Visual Control
Enum: the scope of the construct.
Possible values:
blank (no value defined)
Local
Type
Shared
Global
Param
Private
Protected
Public
Sorted
Column
Enum: sorted column indication.
Possible values:
Asc
Desc
No
TestKind
DO Loop
Enum: indicates whan the condition of the loop is checked.
Possible values:
PreCondition
PostCondition
Text
SQL Statement
String: full text of the SQL statement
Type
Branch
Call
Column
Create
Destroy
Function Definition
Retrieve
Typefied Construction
Variable Declaration
String: type of the construct.
UnitKind
Application
DataWindow
Global Function
Menu
Pipeline
PowerBuilder Object
Query
Structure
User Object
Window
Enum: PowerBuilder file type.
Possible values:
User Object
Application
Function
Structure
Menu
Window
Datawindow
Query
Pipeline
Update
Column
Boolean: a database column "Update" parameter.
UpdateWhereClause
Column
Boolean: a database column "UpdateWhereClause" parameter.
Value
Column
Literal
Variable Declaration
String: value of the construct
VarUsage
Variable
Enum: The attribute specifies whether the value of the referenced data item is read by a statement or the referenced data item receives a value.
Possible values:
IN
OUT
INOUT


Unsupported Statements and Known Limitations

PowerBuilder Support Guide : Unsupported Statements and Known Limitations
Unsupported Statements and Known Limitations
The following known limitations are found in this release:
SQL support for PowerBuilder applications
SQL support for PowerBuilder differs from support for Cobol applications as follows:
•
Level 1 relationships are created in the workbench repository to show when PB Objects and DataWindows refer to database tables.
•
HyperCode Table constructs are created for Retrieve statements. These constructs contain information on the columns and variables used in the select statement.
•
Unrecognized SQL statements will be captured as searchable SQL Statement HyperCode constructs with the Kind attribute equal to "SQLerror".
•
Full parsing for inline SQL statements is not supported. However, embedded SQL statements are analyzed for Level 1 relationships to the database table, and HyperCode constructs are created for the host variables used in the statement.


Asset Transformation Workbench Analyzer for Eclipse

Corporate Headquarters
International Business Machines Corporation
New Orchard Road
Armonk, New York 10504
Tel +1 (914) 499-1900

www.ibm.com

© 2006 International Business Machines Corporation
All rights reserved.
This document applies to IBM Asset Transformation Workbench (product number 5724-R03) and to all subsequent releases and modifications. For the latest information about this product, please refer to the Release Notes.
No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of IBM. Information in this document is subject to change without notice and is not guaranteed to be error-free.
Licensed Materials - Property of IBM.
Product Reference: IBM Asset Transformation Workbench v2.1
Document Reference: REL7.3DOC13.A

RescueWare is a registered trademark of Relativity Technologies, Inc. All other brands mentioned in this document are trademarks or registered trademarks of their respective holders.

www.relativity.com


Relativity Modernization Workbench Copyright Page

Corporate Headquarters
Relativity Technologies
2300 Rexwoods Drive
Suite 100
Raleigh, NC 27607
Tel +1 (919) 786-2800
Fax +1 (919) 786-2850

www.relativity.com

© 2005-07 Relativity Technologies
All rights reserved.
Printed in the United States of America.

RescueWare is a registered trademark of Relativity Technologies, Inc. All other brands mentioned in this document are trademarks or registered trademarks of their respective holders.

The software supplied with this document is the property of Relativity Technologies and is furnished under a license agreement. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Relativity Technologies, Inc. Information in this document is subject to change without notice and is not guaranteed to be error-free.

For the latest information about this product, please refer to the Release Notes.


Relativity Modernization Workbench Copyright Page

Corporate Headquarters
Relativity Technologies
2300 Rexwoods Drive
Suite 100
Raleigh, NC 27607
Tel +1 (919) 786-2800
Fax +1 (919) 786-2850

www.relativity.com

© 2005-06 Relativity Technologies
All rights reserved.
Printed in the United States of America.

RescueWare is a registered trademark of Relativity Technologies, Inc. All other brands mentioned in this document are trademarks or registered trademarks of their respective holders.

The software supplied with this document is the property of Relativity Technologies and is furnished under a license agreement. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Relativity Technologies, Inc. Information in this document is subject to change without notice and is not guaranteed to be error-free.

For the latest information about this product, please refer to the Release Notes.


PowerBuilder.1.9.1.html

PowerBuilder Support Guide : Modeling Support in MW : Level 1 Modeling Support for PowerBuilder : Level 1 Metamodel


PowerBuilder.1.14.1.html

PowerBuilder Support Guide : Modeling Support in MW : Level 2 Modeling Support for PowerBuilder : Level 2 Metamodel


PowerBuilder-1004259.html

The Level 1 model for an application defines the relationships between the objects that comprise the application. These can be physical objects, like PB Script files or PBL files; or logical objects that identify abstract program elements (PB query, pipeline, etc.).


PowerBuilder-1004302.html

The Level 2 model for an object defines its syntax. It shows in abstract form how the syntactical constructs that comprise the object (variables, expressions, statements, etc.) are related.


PowerBuilder-1059951.html

SQL support for PowerBuilder differs from support for Cobol applications as follows:
•
Level 1 relationships are created in the workbench repository to show when PB Objects and DataWindows refer to database tables.
•
HyperCode Table constructs are created for Retrieve statements. These constructs contain information on the columns and variables used in the select statement.
•
Unrecognized SQL statements will be captured as searchable SQL Statement HyperCode constructs with the Kind attribute equal to "SQLerror".
•
Full parsing for inline SQL statements is not supported. However, embedded SQL statements are analyzed for Level 1 relationships to the database table, and HyperCode constructs are created for the host variables used in the statement.


PowerBuilder-1092638.html

SQL support for PowerBuilder differs from support for Cobol applications as follows:
•
Level 1 relationships are created in the workbench repository to show when PB Objects and DataWindows refer to database tables.
•
HyperCode Table constructs are created for Retrieve statements. These constructs contain information on the columns and variables used in the select statement.
•
Unrecognized SQL statements will be captured as searchable SQL Statement HyperCode constructs with the Kind attribute equal to "SQLerror".
•
Full parsing for inline SQL statements is not supported. However, embedded SQL statements are analyzed for Level 1 relationships to the database table, and HyperCode constructs are created for the host variables used in the statement.