Generating Implementing Applications
Generating Implementing Applications
First Edition
This documentation and related computer software program (hereinafter referred to as the Documentation) is for
the end users informational purposes only and is subject to change or withdrawal by Computer Associates
International, Inc. (CA) at any time.
This documentation may not be copied, transferred, reproduced, disclosed or duplicated, in whole or in part, without
the prior written consent of CA. This documentation is proprietary information of CA and protected by the copyright
laws of the United States and international treaties.
Notwithstanding the foregoing, licensed users may print a reasonable number of copies of this documentation for
their own internal use, provided that all CA copyright notices and legends are affixed to each reproduced copy. Only
authorized employees, consultants, or agents of the user who are bound by the confidentiality provisions of the
license for the software are permitted to have access to such copies.
This right to print copies is limited to the period during which the license for the product remains in full force and
effect. Should the license terminate for any reason, it shall be the users responsibility to return to CA the reproduced
copies or to certify to CA that same have been destroyed.
To the extent permitted by applicable law, CA provides this documentation as is without warranty of any kind,
including without limitation, any implied warranties of merchantability, fitness for a particular purpose or
noninfringement. In no event will CA be liable to the end user or any third party for any loss or damage, direct or
indirect, from the use of this documentation, including without limitation, lost profits, business interruption,
goodwill, or lost data, even if CA is expressly advised of such loss or damage.
The use of any product referenced in this documentation and this documentation is governed by the end users
applicable license agreement.
The manufacturer of this documentation is Computer Associates International, Inc.
Provided with Restricted Rights as set forth in 48 C.F.R. Section 12.212, 48 C.F.R. Sections 52.227-19(c)(1) and (2) or
DFARS Section 252.227-7013(c)(1)(ii) or applicable successor provisions.
Contents
Contents
iii
iv
1-50
1-50
1-51
1-51
1-51
1-52
1-53
1-53
1-54
1-54
1-54
1-55
1-56
1-57
1-58
1-59
1-61
1-61
1-62
1-64
1-64
1-65
1-65
1-66
1-67
1-67
1-67
1-68
1-68
1-68
1-69
1-70
1-71
1-71
1-75
1-76
1-77
1-78
1-78
1-82
1-82
Contents
vi
2-1
2-3
2-4
2-4
2-4
2-4
2-4
2-5
2-5
2-5
2-6
Contents
vii
viii
4-11
4-12
4-12
4-12
4-13
4-14
4-14
4-14
4-15
4-17
4-17
4-19
4-19
4-19
4-20
4-20
Contents
ix
7-10
7-10
7-10
7-11
7-13
7-13
7-13
7-13
7-14
Appendix B: Troubleshooting
Source Generation Errors ......................................................................
Display File and Program in Error (*ERROR) ................................................
Action Diagram Un-determined Action .....................................................
Context Not Found ........................................................................
B-1
B-1
B-2
B-2
Contents
xi
Index
xii
Chapter
Configuration Management:
Impact Analysis:
Change Control:
11
AllFusion 2E design objects such as, access paths, functions, and fields. These
are also known as model objects.
Implementation objects such as, generated source and compiled objects.
These are also known as traditional or 3GL objects.
CM has extensive capabilities for controlling your entire operation including the
following:
12
Check out and promotion of AllFusion 2E design objects using model object
lists
AllFusion 2E
Change Control
Facility
CM Change
Management
Where
Documented
Yes
Yes
This chapter,
Working with
Model Object Lists
section
Yes
This chapter,
Model Profile
section
Impact Analysis
Utilities
Yes
Yes
This chapter,
Model Audit
Information and
Impact Analysis
sections
Model Object
Change Tracking
Yes
Yes
This chapter,
Model Object
Audit Information
section
Yes
Yes
This chapter,
Model Object Lists
section
Redirect Function
References
Yes
Yes
This chapter,
Working with
Versions of
Functions and
Messages section,
Making a Version
Current section
13
14
Feature
AllFusion 2E
Change Control
Facility
CM Change
Management
Where
Documented
Versions of
Functions and
Messages
Yes
Yes
This chapter,
Working with
Versions of
Functions and
Messages section
Session List
Yes
Yes
This chapter,
Model Object Lists
section, Session
Lists section
Yes
Yes
Administrator Guide
Copying Model
Objects Between
Models
Yes
Yes
This chapter,
Editing Model
Object Lists
section, Copying
Model Objects
section, Administrator Guide, and
the AllFusion 2E
Command Reference
Check Out
No
Yes
CM User Guide
Automated
Version Control
No
Yes
CM User Guide
Access Control
No
Yes
CM User Guide
Automated
Rollback of
Functions and
Messages
No
Yes
CM User Guide
Automated
Concurrent
Development
No
Yes
CM User Guide
Authority to Model No
Object Lists
Yes
CM User Guide
Model Objects
Feature
AllFusion 2E
Change Control
Facility
CM Change
Management
Where
Documented
Promotion
Capabilities
No
Yes
CM User Guide
Analysis of
Context of Change
and Rollback
No
Yes
CM User Guide
Model Objects
Model object is another term for an AllFusion 2E design object such as an access
path, a function, or a field.
Object Type
Access Path
ACP
Application Area
APP
Array
ARR
Condition
CND
File
FIL
Field
FLD
Function
FUN
Message
MSG
Some model objects, such as external functions and access paths, have
corresponding implementation objects, namely, generated source and the
compiled object. Model objects having implementation objects are sometimes
referred to as generatable objects.
15
Model Objects
Note that it is generally more efficient to use the surrogate number when
possible. You can obtain it using the Retrieve Model Object (YRTVMDLOBJ)
command.
Model Object NameConsists of the owner, name, and type you assign
when creating a model object.
The following table shows the components of the model object name for each
of the supported AllFusion 2E model object types.
AllFusion 2E
Model Object
Object Owner
Name
Object Name
Object Type
Access Path
name'
path name'
*ACP
Application Area
*NONE
area code'
*APP
Array
*ARRAYS
name'
*ARR
Condition
'field name'
'condition name'
*CND
File
*NONE
name'
*FIL
Field
*NONE
name'
*FLD
Function
name'
name'
*FUN
Message
*MESSAGES
name'
*MSG
For example, the following shows the model object name for the Display
Product Details function that is owned by the Product file:
OBJNAM(Product 'Display Product Details' *FUN)
16
Model object name consisting of the owner, name, and type of the object
Note: Since model object lists provide an historic record, a model object list can
contain list entries that refer to objects that have been deleted from the model.
Each model list entry also contains a flag selection value that you can set and use
for filtering on model object list commands. For example, you can process only
model list entries flagged as selected or just those flagged as in error.
For more information:
On model object list commands and the flag selection value, refer to the
Commands to Manipulate Model Object Lists section in this chapter, and the
AllFusion 2E Command Reference Guide.
On commands to create, change, and delete model list entries, refer to the
Commands to Manipulate Model Object Lists section in this chapter.
17
The following diagram illustrates the model object list and its relation to the
AllFusion 2E model.
AllFusion 2E Model
FIL B
List P
FIL B
CND C
ACP D
FLD G
List Q
MSG E
CND C
FUN A
List B
FIL B
FLD G
FUN A
FUN A
FIL G
APP F
MSG
E
CND C
FUN A
FIL B
CND C
ACP D
MSG E
APP F
FLD G
Model Object Lists
As shown in the diagram, model object lists can include model objects of
different object types. You can use a model object list to group related objects
into a set in the same way application areas let you group files. This enables you
to manipulate or process a set of model objects with a single command or to
easily process a series of tasks required as a result of a change to your model.
For example, suppose you need to change the length of a key field such as
Customer number. The following list suggests a way to use model object lists to
simplify the change process and ensure that all necessary tasks are done:
1.
Use impact analysis to automatically build a list of all model objects affected
by the change.
2.
Use the list of affected model objects as a guide to making the necessary
related changes to the identified objects.
3.
Convert the list of affected model objects to a job list and submit the list for
generation and compilation.
4.
Use the same list as a release or PTF and promote it through test and QA to
the end user sites.
Note: With CM, this promotion can occur automatically; for example, to multiple
remote locations.
These steps are explained in more detail throughout this chapter.
18
Session Lists
A session list is a model object list to which all objects you change, add, or delete
during a session can be logged. Note that logging changes to a session list is
optional.
The session list persists across your model sessions; in other words, the session
list is cumulative until you clear it. This lets you keep track of changed objects
between model sessions. As a result, you will probably want to clear your
session list periodically so that it contains only recently changed objects. You can
clear your session list using option 9 on the Work with Model Lists panel.
Specify a session list name when entering your model using the Edit Model
(YEDTMDL) command. The default name is the one stored on the model
profile.
Specify a session list name on the model profile using the Edit Model Profile
(YEDTMDLPRF) command. The default name is the name of your OS/400
User Profile. Note that this change does not take affect until the next time the
model is loaded.
You activate automatic logging of changes to the session list by setting the Log
changed objects option in your model profile to Y (Yes).
For more information on the model profile, refer to the Model Profile section in
this chapter.
19
Assign the same default session list to all developers working on the same
change to the model. The shared session list will contain a record of each
model object changed by any member of the development team assigned to
the project.
Set up a separate session list for each development project. When you enter
the model, specify the session list assigned to the project on which you plan
to work.
Example
Suppose you need to regenerate all external functions that use model objects
contained in the session list. You can produce a list of these functions by using
the Display Model Usages (YDSPMDLUSG) command. The following command
creates a model object list (list-name) consisting of all model objects that use any
object contained on your default model list (*MDLPRF), up to and including the
first external function:
YDSPMDLUSG MDLLST(*MDLPRF)+
OUTPUT(*MDLLST)+
OUTMDLLST(list-name)+
SCOPE(*EXTFUN)
You can then convert the resulting output list to a job list for generation and
compilation using the Convert Model List (YCVTMDLLST) command.
110
The following are more examples of ways you can use session lists with model
list commands:
111
112
Object Type
Object attribute
Change type
113
Group surrogate
The remainder of this section groups the model object description fields by
function and provides suggestions for using them.
For more information:
Object name
Copy name
Function type
Version type
The basic information maintained for each model object uniquely identifies the
model object in the following two ways:
114
Object name
Object type
Use either of these to identify a model object on the model object list commands.
For more information on these model object identifiers, refer to the Model
Objects section in this chapter.
You can use these date fields in Command Language programs to create lists of
model objects requiring specific actions; for example, editing, generation, or
copying to another model.
Change Information
When you change a model object, the date, time, and user are logged. In other
words, AllFusion 2E automatically updates the following fields in the model
object's description:
Change user
Change type
115
On Change type and changing model objects, refer to the Model Object
Audit Information section in this chapter.
On component change processing, refer to the Impact Analysis section in this
chapter.
Change type
Press F11 from the Edit Model Object List panel to view this information for any
model object list.
You can check the Impact processed indicator to determine whether to run the
Apply Component Changes (YAPYCMPCHG) command.
The Action required indicator identifies whether a model object that uses a
changed object needs to be edited (EDT) or regenerated (GEN). You can use
model list commands to examine and filter objects in your model based on the
setting of this indicator.
For more information on component change processing, refer to the Impact
Analysis section in this chapter.
Generation Information
When a model object is successfully generated, AllFusion 2E automatically
updates the following fields in the model object's description:
Generation date
Generation time
Press F11 from the Edit Model Object List panel to view this information for any
model object list.
116
Press F11 from the Edit Model Object List panel to view this information for any
model object list.
For more information on check out using CM, refer to the AllFusion 2E Change
Management User Guide.
Job lists
Model profile
Some commands use model object lists for input, output, or both. A model object
list you specify as input must exist before you execute the command; if you
specify a model object list as output, AllFusion 2E automatically creates it if it
does not already exist.
117
The model profile contains the name of a default model object list name to be
used for commands. This list is often referred to as the default list. Whenever you
specify the value *MDLPRF for a model object list on a command, AllFusion 2E
automatically uses the model object list specified on your model profile.
For more information:
Command
Description
Create
YBLDMDLLST
YINXMDLLST
YEDTMDLLST
YEDTCPYLST
Display
YDSPMDLLST
Object Dependencies
YDSPMDLUSG
YDSPMDLREF
Clear
YCLRMDLLST
Delete
YDLTMDLLST
Filter
YFLTMDLLST
YCHKMDLLST
Copy
YCPYMDLLST
YCPYMDLOBJ
YSETCPYNME
YDOCMDLLST
Execute
YEXCMDLLST
Edit
118
Facility
Command
Description
Compare
YOPRMDLLST
Convert
YCVTMDLLST
Work with
YWRKMDLLST
Command
Description
Create
YADDMDLLE
Change
YCHGMDLLE
Delete
YDLTMDLLE
Command
Description
Change
YCHGMDLOD
YCHGMDLOBJ
Retrieve
YRTVMDLOBJ
Display
YDSPMDLOD
Impact analysis
YAPYCMPCHG
For more information on a model object description, refer to the All Objects List
section in this chapter and the appendix titled Change Control Facilities
Reference Tables in this guide.
119
Command
Description
Create
YBLDJOBLST
YCRTJOBLE
Display
YDSPJOBLST
Convert
YCVTMDLLST
YCVTJOBLST
YCHKJOBLE
Submit
YSBMMDLCRT
For more information on job lists, refer to chapter titled Preparing for
Generation and Compilation in this guide.
Command
Description
Change
YCHGMDLPRF
Edit
YEDTMDLPRF
Retrieve
YRTVMDLPRF
For more information on model profiles, refer to the Model Profile section in this
chapter.
120
Version Commands
Following are change control facilities commands that operate on versions of
functions and messages:
Facility
Command
Description
Create
YCRTMDLVSN
YCRTOBJVSN
Delete
YDLTMDLVSN
Compare
YCMPMDLOBJ
Redirect
YRDRMDLOBJ
Select
YSLTVSN
Example 1
You can use the following set of commands to compare model objects within a
model at two different times; for example, before and after a development
project:
1.
Use the Build Model List (YBLDMDLLST) command to create a list of all
objects in the model by specifying the All Objects list (*ALLOBJ) as input and
a named model object list as output.
YBLDMDLLST OBJNAM(*ALLOBJ)+
MDLLST(list-name1)
The output list contains information about each object that existed in the
model at the time you ran this command; namely, each list entry contains the
Create date and time and the Change date and time of the corresponding
model object.
At some later stage in the development cycle you can build another list of all
model objects and compare the new list with the original list as shown in the
following steps.
121
2.
Build a new list of all objects in the model, specifying another model object
list as output.
YBLDMDLLST OBJNAM(*ALLOBJ)+
MDLLST(list-name2)
3.
Compare this list with the original list and create a third model object list
containing the differences between the two input model object lists.
YOPRMDLLST MDLLSTA(list-name1)+
LSTOPR(*DIFF) MDLLISTB(list-name2)+
TOMDLLST(list-name3)+
OPRTYPE(*OBJSGT)
Example 2
You can use the following set of commands to compare model objects between
two models:
1.
Use the Build Model List (YBLDMDLLST) command to create a list of all
objects in a model by specifying the All Objects list (*ALLOBJ) as input and a
named model object list as output.
YBLDMDLLST OBJNAM(*ALLOBJ)+
MDLLST(list-name1)
2.
Build another model object list for the second model; e.g., NEWMDL.
YBLDMDLLST OBJNAM(*ALLOBJ)+
MDLLST(NEWMDL/list-name2)
3.
Copy the model object list just created to the original model and ensure that
the surrogate number of each list entry matches that of the corresponding
model object in the original model.
YCPYMDLLST+
FRMMDLLST(NEWMDL/list-name2)+
TOMDLLST(OLDMDL/list-name2)+
TOUPDOPT(*RFSSGT)
4.
Filter out any errors. This creates a list of model objects that exist in the new
model but do not exist in the original model.
YFLTMDLLST FLAGVAL(*ERROR)+
MDLLST(NEWMDL/list-name2)+
OUTLST(list-fail)
5.
Now compare the two lists in the target model and save the differences in
another model object list.
YOPRMDLLST MDLLSTA(list-name1)+
LISTOPR(*DIFF) MDLLSTB(list-name2)+
TOMDLLST(list-diffs)+
OPRTYPE(*OBJSGT)
6.
Print the output lists for a permanent hard copy record of the differences
between the two models.
YDOCMDLLST
YDOCMDLLST
122
MDDLST(NEWMDL/list-fail)
MDLLST(OLDMDL/list-diffs)
Example 3
You can use the following series of commands to form part of a nightly process
to prepare a model for the following day:
1.
2.
3.
Run the Filter Model Object List (YFLTMDLLST) command over the All
Objects list (*ALLOBJ) to select model objects having the Required action
indicator set to *EDT. Specify EDTLST as the output model list for
programmers to edit the following day using YEDTMDLLST.
4.
Run the Filter Model Object List (YFLTMDLLST) command over the All
Objects list (*ALLOBJ) to select model objects having the Required action
indicator set to *GEN. Specify GENLST as the output model list.
5.
Run the Convert Model Object List (YCVTMDLLST) command over the
GENLST model list to prepare a job list to generate objects that require
generation as a result of a change to a component object.
6.
7.
123
Select the Work with Model Lists (YWRKMDLLST) option on the Display
Services Menu.
Enter YWRKMDLLST on a command line.
The Work with Model Lists panel displays all the model object lists currently
defined in your model library. Press F11 to display the date the list was created
and the time and date it was last changed.
From the Work with Model Lists panel, for any model object list shown, you can:
124
Edit a list
Execute a list
Remove a list
Copy a list
2.
Specify the model objects to include in the new list using the selection
options provided. By default, all objects in the model are included.
For example, you can select all model objects of a specified object type, a
specific model object, or all model objects having the same Object owner.
You can also display a selection list of all objects in the model by entering
*SELECT for the Object owner option and pressing Enter.
3.
Enter the name of the new model object list for the Model object list option.
4.
Press Enter.
5.
To edit the new list enter subfile select option 2 against it on the Work with
Model Lists panel as you did for an existing list.
Note: To create an empty model object list, press F18 from the Work with Model
Lists panel to prompt the Index a Model Object List (YINXMDLLST) command.
Type the name of the new list for the Model object list parameter and press Enter
to accept the defaults and create the new list.
For more information on the YINXMDLLST command, refer to the AllFusion 2E
Command Reference Guide.
125
Multiple views of current model object list (you can cycle through these by
pressing F11.):
Check out informationChecked out date, model object list name, user,
and status
Note: This alternate view contains data only if the Change Control
(YCHGCTL) model value contains a valid library name. The data is set
by CM.
Command line
126
Capability of switching between model object lists, including the All Objects
list
Options and function keys for impact analysis (usages and references)
This panel serves as an alternate entry point into your model. You can perform
most functions available from the Edit Database Relations panel other than
editing relations and creating model objects. You can temporarily transfer to the
Edit Database Relations panel from the Edit Model Object List panel by entering
YEDTMDL or Y2 on the command line. When you finish your editing, press F3
to return to the Edit Model Object List panel.
Enter YEDTMDLLST from a command line. You can prompt the command
or accept the defaults.
Use selection option 2 from the Work with Model Lists (YWRKMDLLST)
panel.
Select the Work with Model Lists or Edit model list options on the Display
Services Menu.
The following is an example of the Edit Model Object List display for the All
Objects list:
For more information on the Edit Model Object List panel, refer to the Working
with Model Object Lists section in this chapter.
127
Many of the subfile select options and function keys shown on this panel are also
available on the following interactive panels:
Enter the name of the model object list for the List option in the header and
press Enter.
Enter one of the following special values for the List option in the header:
Display the Select Model Object List panel by entering *SELECT or *S for the
List option in the header, or press F4 with the cursor positioned on the List
option.
This panel lists all named model object lists in your model. Enter * for the
List option to also list special lists such as, *SSNLST. Type 1 in the subfile
selector to select a model object list and press Enter.
If you accessed the Edit Model Object List panel using the Work with Model
Lists panel, you can press F3 or F12 to return to that panel, select another
model list using option 2, and press Enter.
Note: If you have specified subsetting criteria for a model object list, the
subsetting is retained when you select another list.
For more information on subsetting a model object list, refer to the Grouping and
Navigation Aids section in this chapter.
128
Action
Meaning
Where Documented
Select
Edit
Copy
129
130
Option
Action
Meaning
Where Documented
Delete list
entry
Display
Details
Deselect
10
Action
Diagram
Building Applications
11
Add to
alternate list
13
Parameters
Building Applications
Edit parameters for the
selected model object. Displays
the Edit Function Parameters
panel. Applies only to
functions, messages,
conditions, or arrays.
14
Generate
source in
batch
AllFusion 2E Command
Generate the access path or
Reference Guide
external function in batch
mode. Invokes the
YCRTJOBLE command to add
the object to the job list. You
can specify parameters on the
command line; e.g., JOBLST.
Option
Action
Meaning
Where Documented
15
Generate
source
interactively
AllFusion 2E Command
Generate the source for an
Reference Guide
access path or external
function interactively. Invokes
the YCRTJOBLE command to
add the object to the job list.
You can specify parameters on
the command line; e.g.,
JOBLST.
16
Y2CALL
This chapter,
Working with
Versions of Functions
and Messages section
and AllFusion 2E
Command Reference
Guide
17
Device
design
Building Applications
18
Device
structure
Building Applications
Invoke the structure design
editor for the selected print
function. Applies only to
model objects of type FUN and
attribute PRTFIL or PRTOBJ.
19
Work with
versions
20
Access path
Building Applications
Display the Display File
and Building Access
Access Paths panel for the
selected model object. Applies Paths
only to model objects of type
FUN.
21
This chapter,
Working with
Versions of Functions
section and the
Messages section and
CM User Guide
Administrator Guide
131
132
Option
Action
22
Administrator Guide
Narrative for Display the Edit Narrative
owning
Text panel for the model object
object
that owns the selected model
object.
23
Start SEU
24
25
Document
function
Building Applications
and the AllFusion 2E
Command Reference
Guide
26
Redirect
This chapter,
Working with
Versions of Functions
and Messages section
and the CM User
Guide
28
Check out
30
Open
function
Building Applications
31
Locks for
object
Administrator Guide
32
Locks for
Display locks currently set for
object owner the owner of the selected
model object.
Administrator Guide
33
Meaning
Where Documented
Option
Action
Meaning
Where Documented
34
Compare
objects
AllFusion 2E Command
Invoke the Compare Model
Reference Guide
Objects (YCMPMDLOBJ)
command. Applies only to
model objects of type FUN and
MSG.
38
81
References
for object
82
References
for owning
object
91
Usages for
object
92
Usages for
owning
object
Building Applications
This section,
Command Line
Function Keys
The following table lists the function keys available on the Edit Model List panel.
Note that some options are not available for the All Objects list (*ALLOBJ).
Function Key Action
Meaning
Where Documented
F1
Help
Display additional
information about the
display or option
selected.
F3
Exit
133
134
Meaning
F4
Prompt
F5
Refresh
F6
Build list
F7
Position to
This section,
Positioning a Model
Object List
F8
F9
Retrieve
previous
command
F10
Execute list
Perform a specified
action on each entry in a
model object list. This
invokes the
YEXCMDLLST
command and you can
specify parameters on
the command line.
Applies only to named
model object lists.
Where Documented
This section,
Executing a Model
Object List, and the
AllFusion 2E Command
Reference Guide
Meaning
Where Documented
F11
Alternate view
1. Basic Information
2. Implementation
Information
3. Component Change
Information
4. Change Information
5. Check out
Information
F12
Cancel
Return to previous
menu or panel.
F13
Repeat
F14
Filter
135
136
Meaning
F15
Check list
F17
Subset
F18
Change model
profile
Update settings in a
specified model profile.
Invokes YEDTMDLPRF
command.
F19
Job list
commands
F20
Usages
F21
Where Documented
AllFusion 2E Command
Reference Guide
Meaning
Where Documented
F22
References
F23
More options
F24
More keys
Command Line
You can use the command line on the Edit Model Object List panel in the
following ways:
Example 1
Following is an example of overriding command parameters on the command
line. Note that when you override a parameter value you need to specify both the
parameter keyword and the parameter override value.
Suppose the functions contained in the MYMDLLST model object list have
generated successfully and just require compilation. Create a job list entry for
each model object using selection option 14, which invokes the YCRTJOBLE
command.
1.
137
2.
Press F13 to repeat the option for all list entries. Note the message at the
bottom of the panel that states that option 14 was repeated to the end of the
list.
Note: You can press F5 to undo the repeat action.
3.
4.
Press Enter.
Press F19 to display a list of job list commands and to submit the job list for
compilation in batch.
138
Example 2
This example uses the / selection option to merge model list entries with a
command not associated with a subfile selection option. This option serves as a
temporary user-defined selection option.
Suppose you want to view the model object descriptions for the owners of one or
more model objects. To do so you will use the Display Model Object Description
(YDSPMDLOD) command.
1.
Enter / against each model object whose owner's model object description
you wish to view. To select all model objects to the end of the list, type /
on the first model object you want to select and press F13 as in the first
example.
2.
3.
Press Enter.
The model object description for the owners of the selected model objects will be
displayed one at a time. In this example, the model object description for the
Customer file and the Branch file are displayed.
139
Retrieving Commands
All commands executed in the current job, whether executed from an AllFusion
2E or an OS/400 panel, are placed in a common command sequence. The F9 and
F8 function keys let you step backward and forward through this command
sequence.
140
Special Values
Abbreviations
Function
*SF or >>
*SL or <<
*F or >
*L or <
command
n/a
Special Values
Abbreviations
Function
+ command
n/a
*CLEAR
n/a
When you specify a search string, do not include * at the end of the string. You
can however specify a '?' as a wild character in any position. To repeat the last
search you entered, specify '*' instead of a search string. You can repeat the
search in either chronological or reverse chronological order. These concepts are
all shown in the following examples.
Examples
1.
To retrieve the first previous command that begins with the characters 'wrk',
type the following on the command line and press Enter.
*LAST WRK
Note that *last wrk, *L wrk, and < wrk all give the same result.
You can repeat the last search you entered by specifying '*' instead of the
search string. To retrieve the next previous command beginning with 'wrk',
type the following on the command line and press Enter.
*FIRST *
2.
To retrieve the third command from the beginning of the command sequence
containing the characters 'uuae', type the following on the command line and
press Enter.
>> 3 uuae
Note that *scanf 3 uuae, *SF 3 uuae, and >>3UUAE all give the same result.
To retrieve the next command containing 'uuae', in other words to repeat the
search, type the following on the command line and press Enter. Note that in
this case the first matching command, not the third, is retrieved.
>> *
You can also use the '*' to repeat the search in reverse chronological order as
follows. To retrieve the first previous command containing 'uuae' type the
following on the command line and press Enter.
<< *
3.
You can use one or more '?' to specify a wild character in the search string.
To find the first previous command containing 'uu' followed by any two
characters followed by 'srr', type the following on the command line and
press Enter.
<<uu??srr
141
4.
To retrieve the first previous command containing the numbers '397', type
the following on the command line and press Enter.
<< 1 397
Note that you need to include the '1' to indicate the first occurrence. This is
needed to distinguish between the optional numeric value and the numeric
search string.
Typing <<1397 gives the same result.
5.
To execute a command but not place it in the command sequence, type the
following on the command line and press Enter. This is useful to prevent
commands you will not need again from cluttering the command sequence.
dspmsg
To place a command in the command sequence but not execute it, type the
following on the command line and press Enter. This is useful to prepare
complicated or partially complete commands that you can retrieve later.
+cpyf fromfile(myfile) tofile(yourfile)
142
Notes:
If you are editing *ALLOBJ, you can also specify whether to display noncurrent versions of functions and messages.
If you select another model object list, any subsetting you specified is also
applied to the new model list.
Example
To display only Edit File functions on the Edit Model Object List panel type
*FUN for the Type option and type EDTFIL for the Function type option. Press
Enter twice. Note that the original model object list is not changed by this
operation.
143
Use the F11 key to toggle among the four positioning options. To position the
model object list, enter values in the appropriate positioner window and press
Enter. Note that you can specify partial names for all options except the Type
option.
Example
To position the model object list to the model object whose Implementation name
is UUACSRR, press F11 until the Position by Implementation name window
displays, type UUACSRR.
Press Enter.
144
You can use this, for example, to solve a problem in program applications where
you only know the implementation name of the program in which an error
occurred. You would then use impact analysis to identify all programs called by
the program in error.
Note: In this case, the Edit Model Object List panel redisplays with the alternate
view showing implementation information rather than object type, attribute, and
owner. You can switch to other views by pressing F11.
2.
3.
Type/object nameThe model objects are listed by type, and for each type
by object name, beginning with the model object that matches the values you
entered.
4.
Object name/typeThe model objects are listed by object name, and for
each object name by type, beginning with the model object that matches the
values you entered.
The following table shows how the display order will be keyed depending on the
values you enter in the positioner window. A message displays at the bottom of
the panel when the key sequence changes.
Values Entered in Positioner Window Display is Keyed by
All fields blank
Implementation name
Owner name
Type
Object name
145
This is the first of three screens of filtering options. You can also change the input
model object list and specify an output model object list on this screen. Scroll
down for additional filtering options.
146
147
Edit (option 2)A general editing option that you can use for any model
object type. The specific AllFusion 2E panel invoked depends on the object
type of the selected model object as shown in the following table:
Object Type
AllFusion 2E Panel
ACP
APP
ARR
CND
148
FIL
FLD
FUN
MSG
Action Diagram (option 10)Calls the Edit Action Diagram panel for model
objects of type FUN.
Parameters (option 13)Calls the Edit Function Parameters panel for model
objects of type FUN.
Device Design (option 17)Calls the device design editor for model objects
of type FUN.
Device Structure (option 18)Calls the structure design editor for
PRTFIL/PRTOBJ functions.
Access Path (option 20)Calls the Display file access paths panel for model
objects of type FUN.
Narrative/object (option 21)Calls the Edit Narrative Text panel for any
model object type.
Narrative/owner (option 22)Calls the Edit Narrative Text panel for the
owner of the selected object.
Open Functions (option 30)Calls the Open Functions panel for model
objects of type FUN.
149
Note: If the information for a model object list entry does not match the model
object description for the corresponding model object, AllFusion 2E sets the
Object select field for the list entry to 8 on the Edit Model Object List panel. You
can use subfile select option 33 to refresh the model object list entry.
For more information:
Enter the name of a new list in the header of the Edit Model Object List
panel.
For more information on creating a model object list using the Work with Model
List panel, refer to the Working with Model Object Lists section in this chapter.
150
Example
Suppose you want to add model list entries from model list MYMDLLST to
model list CUSTOBJ. Enter option 11 for each model object you want added to
the CUSTOBJ list. In this example, enter 11 for the Customer file and press F13 to
repeat the option to the end of the list. You can either press F4 to prompt the
command, or you can enter the MDLLST(CUSTOBJ) parameter on the command
line to specify the target list as shown:
151
Press Enter. The selected objects are added to the CUSTOBJ model object list.
AllFusion 2E displays a confirm panel for each model list entry that you selected
for deletion.
If an entry on a named model object list refers to a model object that has been
deleted from the model, AllFusion 2E sets the Object select field for the list entry
to X on the Edit Model Object List panel to indicate that the corresponding model
object no longer exists. (The Object select field is between the Subfile selector and
the Object field.)
Note: You cannot delete files (FIL) or fields (FLD) using option 24.
You cannot delete a model object if it is used by other objects in the model. Use
the impact analysis tools on the Edit Model Object List panel to determine the
usages for the model object to be deleted. For example, enter selection option 91
for the model object you want to delete; AllFusion 2E displays a list of the model
objects that use it, including an indication of the way in which it is used.
152
For more information on impact analysis tools and model object usages, refer to
the Impact Analysis section in this chapter.
Enter the appropriate menu option on the command line to prompt the selected
command. Many of the parameter defaults for the job list commands are set in
your model profile.
153
Selection option 3 on the Edit Model Object List panel lets you copy
functions (FUN) and messages (MSG). This creates a new and independent
model object. You will be prompted to enter the following information for
the new model object.
For MSG, you can change the object name and type. The following
values for type are interchangeable: INF, ERR, STS, CMP. When copying
a RTV or EXC message the type cannot be changed.
For FUN, you can change the object name, access path, and file. For
certain functions, you can also change the function type by pressing F8.
Note: If you change access path, file, or function type, you will probably
need to edit the function options, device design, and action diagram to
obtain a working function.
154
In addition, you need to explicitly select the model objects to be copied from the
input model object list. Use one of the following to select model objects:
Use the Edit Model Object List for Copy panel, which you invoke using the
Edit Copy List (YEDTCPYLST) command. This panel has many of the same
options and function keys as the Edit Model Object List panel.
Type 1 against the model objects you want to select for copying. To select all
list entries, type 1 for the first model object displayed, press F13 to repeat the
selection for all list entries, and press Enter. An '*' will appear in the Copy
Select field of each selected model object.
Use option 9 to deselect a selected model object. Option 7 lets you rename a
model list entry for the purpose of copying to avoid conflicts with objects
with the same owner/name/type in the target model.
Use the edited model object list as input to the YCPYMDLOBJ command.
Set the CPYOBJ parameter to *SELECTED on the Change a Model Object List
Entry (YCHGMDLLE)
Note: To prepare a list for copying, you should use only the model object list
commands; for example, YBLDMDLLST, and/or the YEDTCPYLST command.
The Build Copy List (YBLDCPYLST) command is available only for backward
compatibility with previous releases of AllFusion 2E and should not be used.
Selected model objects will contain a * in the Copy Select field on the Edit
Model Object List for Copy panel. After you run the YCPYMDLOBJ command,
any implicitly selected model objects will contain a ! in the Copy Select field.
To view the implicitly selected objects before copying, run the YCPYMDLOBJ
command in *PREPASS mode.
For more information on the YCPYMDLOBJ process, see the Administrator Guide.
Execute a model object list in order to perform an action on each entry of the
model list.
155
&YN
Object name
&Y@
Object surrogate
&YT
Object type
&YA
Object attribute
&YO
&YW
&YY
&YR
&YM
&YI
&YP
&YS
&YU
User name
&YL
&YG
Change type
&YF
Function type
&YZ
Assimilated file
Note: If you are unable to enter '@' into the command parameter (for example, if
it is numeric), you can either use the RQSDTA parameter on the YEXCMDLLST
command and enter the command as a string, or you can specify
RQSDTA(*USROPT) and specify a PDM user-defined option.
Enclose the &YN, &YO substitution variables in quotes since they can result in
text containing blanks.
156
Command
YC
CHGCURLIB @YL
OD
YDSPMDLOD OBJSGT(@Y@)
YS
JL
DSPJOBLOG
SL
WS
WRKSBMJOB
DF
YDOCMDLFUN MDLFILE('@YO')
MDLFUN('@YN')
Note: You can use the / option on the Edit Model Object List panel as a
temporary user-defined selection option.
For more information on the / selection option, refer to the Command Line
section in this chapter.
157
158
Example
The following is a control language program showing a method of using model
list commands, substitution variables, and the YEXCMDLLST command. Note
that this is for illustration only and Computer Associates does not warrant
usability or functionality of the program.
Computer Associates
does not warrant usability or functionality of the program.
159
160
For more information on the meaning of these audit stamps, refer to the
appendix titled Change Control Facilities Reference Tables in this guide.
Type of change
161
To view change information, press F11 on the Edit Model Object List panel until
the change information as shown in the following panel displays:
Notes:
For a named model object list, the Change date is the date the list entry was
created and may not reflect the model object's current status. You can use
F15 to update the model object list to contain current information from the
All Objects list; this invokes the Check a Model Object List (YCHKMDLLST)
command.
A model object is not considered to be changed in the following
circumstances:
The object has been copied from another model and has not been
changed since copying.
162
Following is a list of change types and their definitions. Only private and public
changes invoke component change processing.
Object Only (*OBJONLY)A change that affects only the model object and
does not require regeneration. The change has no effect on model objects that
use the changed object.
Generation Required (*GEN)A change that affects only the model object
and requires that the changed object be regenerated to effect the change in its
implementation object. This change type is used only for access paths and
external functions. The change has no effect on model objects that use the
changed object.
Private (*PRIVATE)A change to an object that requires regeneration of the
external functions and access paths that use it to effect the change in the
implementation objects.
For example, if you change a file on the Edit Database Relations panel, you
need to regenerate all external functions and access paths that use the file.
Or, if you change the action diagram of an internal function, you need to
regenerate all external functions that call it.
2.
For example, if you change the parameters of an internal function, you need
to edit all functions that call the changed function and then regenerate all
external functions that contain it.
The four change type values just presented were listed in order of increasing
significance:
1.
Object Only
2.
Generation Required
3.
Private
4.
Public
163
Impact Analysis
Impact Analysis
AllFusion 2E's impact analysis facilities let you determine the impact of a
proposed or actual change to model objects in an AllFusion 2E model and ensure
the integrity of a set of changes by identifying and including dependent objects.
AllFusion 2E impact analysis facilities include:
Introduction
This discussion of AllFusion 2E's impact analysis tools is divided into the
following sections:
164
Impact Analysis
For example:
Database fields (FLD) can be used by database files (FIL) or functions (FUN).
In turn, files can be used by access paths (ACP) and application areas (APP).
Access paths (ACP) can be used by messages (MSG), arrays (ARR), functions
(FUN), and other access paths (ACP).
Note: There is no direct relationship between fields (FLD) and access paths
(ACP). In other words, a change to a field does not directly affect the access paths
that use it.
165
Impact Analysis
For more information on the note and the possible ways a given model object
type can be used by other model objects types, refer to the AllFusion 2E Command
Reference Guide.
For example:
Database fields (FLD) can reference conditions (CND) or other fields (FLD).
Functions (FUN) can reference messages (MSG), arrays (ARR), other
functions (FUN), fields (FLD), and access paths (ACP).
For a table of ways a model object can reference other model objects, refer to the
AllFusion 2E Command Reference Guide.
166
Impact Analysis
The following discusses each of the controls and filters provided on this panel.
Note that the Object and Type fields are positioners; all other fields are record
selectors. Also, all values, including your changes, are carried forward each time
you invoke this panel.
167
Impact Analysis
Using the Exclude System Objects and Current Objects Only Specifications
If Exclude system objs is *YES, system objects will not be listed. The Current
objects only specification indicates whether to include model objects that are not
currently active in the model. Note that if you exclude system or current objects
from the display, they are still included in the Gen objs. and Total counts at the
top of the panel.
For more information on current objects, refer to the Working with Versions of
Functions and Messages section in this chapter.
168
Value
Meaning
*NOMAX
*NEXT
*GENFUN
Impact Analysis
Value
Meaning
*GENOBJ
*EXTFUN
*INTFUN
Object type
Meaning
*ANY
*DBFFUN
*ERR
*EXTFUN
*GENFUN
*GENOBJ
*INTFUN
Object type
169
Impact Analysis
Meaning
*FIRST
*ALL
Reason code
Suppose you have expanded usages for a field. Enter *ACTION in the
Reason field to display just those functions where the field is used in an
action diagram action.
Suppose you have expanded references for a function. Enter *BASED in the
Reason field to display the access path on which the function is based.
For more information on the Reason specification and a list of all Reason values,
refer to the AllFusion 2E Command Reference Guide.
170
Impact Analysis
Use option 91 to expand usages for a selected model object. The Display
Model Usages panel displays showing usages for the selected model object.
Note that the Scope field is set to *NEXT.
Note: This is the recommended method to work with usages interactively.
Example
This example demonstrates the Display Model Usage utility and the use of the
Scope specification. The concepts shown also apply to references.
1.
From the Edit Model List panel press F20 to display usages. The Display
Model Usages command is prompted from which you can specify whether
the output is to be displayed (*), printed (*PRINT), or copied to a model
object list (*MDLLST).
Note: Although this is not the recommended method to work with usages
interactively, it is included in this example to explain the converted list
displayed on the first panel. Starting at step 2, this example shows both
methods of working with usages.
171
Impact Analysis
The converted list of model objects displayed differs from the contents of the
original model object list in the following ways:
By default, only model objects that are currently active in the model are
displayed. Non-current versions are not displayed. Refer to the Working
with Versions of Functions and Messages section in this chapter for more
information on the current version.
Details from the All Objects list are displayed for each model object; for
example, if the name of the actual model object differs from that of the
model object list entry, the model object name is displayed. In other
words, the display reflects the current state of the model.
Model objects that appear on the model object list, but have been deleted
from the model, are not displayed. Any list entries that refer to the
deleted objects are ignored.
172
Impact Analysis
2.
To display all usages for the internal function, Retrieve Customer, type
selection option 91 against Employee and press Enter. The following panel
displays:
Note the values displayed in the Lvl and Reason columns for each object and
how they relate to the diagram that follows. Lvl 000 indicates the object
whose usages are shown. This object is used by the Lvl 001 objects, which in
turn are used by the Lvl 002 objects. The Lvl 000 object is included so you can
edit the originating object as well as the using objects.
3.
When a model object is used by many other model objects, it is not always
easy to determine the usage structure when Scope is set to *NOMAX, which
displays all levels of usages. Instead, you can set Scope to *NEXT to step
through the usage expansion one level and one model object at a time.
Press F15 to return to the Level 001 panel. Change the Scope option to
*NEXT and press Enter. Next, enter 91 for Employee and press Enter.
173
Impact Analysis
This panel shows only the Lvl 001 model objects that use the Employee file.
4.
174
Enter 91 for the Order file to expand usages to the next level for just that
model object. The following panel displays:
Impact Analysis
5.
To expand usages for RSQ by Employee name access path instead, press
F12 to return to panel Level 002 and enter 91 against that object. The
following panel displays, indicating that the RSQ by Employee name access
path is used only by the Display Employees by Name function.
Type 81 against a model object to expand its references. The Display Model
References panel displays references for the selected model object. The Scope
field is set to *NEXT.
Note: This is the recommended method to work with references
interactively.
For more information on the panel displayed as a result of using F22, refer to the
Working with Usages Interactively section in this chapter.
175
Impact Analysis
Example
You can use the Display Model References panel to solve problems in program
applications. Suppose you only know the implementation name of the program
in which an error occurred.
1.
Use the Edit Model Object List panel over the All Objects list (*ALLOBJ).
Press F7 to display the positioning windows. Press F11 until the Position by
Implementation name window displays:
Enter the implementation name to position the All Objects list (*ALLOBJ) to
the function in which the error occurred. Enter selection option 81 for the
function to display references for that function. The following panel displays:
176
Impact Analysis
2.
Type *EXTFUN for the Scope option to limit the expansion to include
only referenced functions down to and including the first external
function call.
b. Type *ACTION for the Reason option to include only action diagram
references.
c.
Press Enter.
The expanded references are all the functions that comprise the program in
which the error occurred. This is a useful starting place for the developers
whose task it is to fix the problem.
3.
Press F16 to build a model object list containing a list of the functions
displayed on your screen. Assign a name to the list that will be meaningful to
the development staff.
4.
To produce a printed copy of the list use one of the following methods:
Press F21 to produce a report that indents the reference levels in order to
highlight the relationships among the functions more clearly.
Press F9 for a command line and enter the following command to
produce a keyed report.
YDOCMDLLST MDLLST(list-name)
The development staff can use either the online model object list or the
printed copy as an aid to solving the problem.
From the Edit Model Object List panel or the Edit Model List for Copy
(YEDTCPYLST) panel, use the following options to display usages or
references for any model object displayed:
81=References by Object
82=References by Owner
91=Usages by Object
92=Usages by Owner
Use the following function keys from the Edit Model List (YEDTMDLLST)
panel to display usages or references for a named model object list.
F20=Usages
F22=References
177
Impact Analysis
You will be prompted to enter the type of output you want: display, print, or
to another model object list.
Use the Display Model Object Usages (YDSPMDLUSG) or the Display Model
Object References (YDSPMDLREF) command to display, print, or expand
usages or references for a named model object list. You can use these
commands interactively or in batch. If using the command interactively, you
can then use options 81, 82, 91, and 92.
Use option U on various AllFusion 2E panels; such as, Edit File Details and
Edit Function Details to display usages for a model object. This displays the
Display Model Usages panel from which you can use options 81, 82, 91, and
92.
To add all usages for all objects in model object list WRKLST (in library
MYMDL) to model object list OUTLST, including usages up to and including
the first external function, use:
YDSPMDLUSG MDDLST(MYMDL/WRKLST) +
SCOPE(*EXTFUN) OUTPUT(*MDLLST) +
OUTMDLLST(OUTLST) OUTLSTUPD(*ADD)
To print a list of access paths and external functions that are referenced by
model objects existing on model object list MYLIST, use:
YDSPMDLREF MDLLST(*MDLLIB/MYLIST)+
OUTPUT(*PRINT) FILTER(*GENOBJ)
178
Impact Analysis
A private change implies that access paths and external functions using
the changed object be regenerated in order to implement the change in
the application system objects.
b. A public change implies that first level objects using the changed object
may need to be edited and that access paths and external functions using
the changed object need to be edited and/or regenerated.
The type of change depends on which attributes of a model object are
changed and is derived internally by AllFusion 2E.
For more information:
2.
On all possible changes and the associated change type for each, refer to
the appendix titled Change Control Facilities Reference Tables in this
guide.
On change type, refer to the Model Object Audit Information section in
this chapter.
To simulate a private change, enter option 94 for the object you want to
change on either the Display Model Usages panel or the Display Model
References panel.
In this case, AllFusion 2E expands usages for the object to be changed up to
the first external function in each sequence of usages. Suppose the object to
be changed is the Change Order Detail function.
179
Impact Analysis
Note that only those objects that need to be generated to implement the
proposed change are displayed, not all usages. GEN in the Action column
indicates that the model object will need to be regenerated when you make
the proposed change.
To simulate a public change, enter option 95 for the object you want to
change on either the Display Model Usages panel or the Display Model
References panel.
As for a private change, AllFusion 2E expands usages for the object to be
changed up to the first external function in each sequence of usages. In
addition, it identifies objects that need to be edited as a result of the
proposed change. Suppose the object to be changed is the Change Order
Detail function.
180
Impact Analysis
Note that only those objects that need to be edited or generated to implement
the proposed change are displayed, not all usages. EDT and GEN in the
Action column indicate that the corresponding model object needs to be
either edited or regenerated when you make the proposed change.
3.
Press F16 to build a model object list containing a list of the model objects
impacted by your proposed change. A window displays where you specify a
model object list name and whether to replace or add entries if the model list
you specify already exists. If the model list does not exist, AllFusion 2E
automatically creates it.
Note: The entries of a model object list always reflect the current state of model
objects at the time the list is created unless you refresh them. As a result, the
Action required field for entries of the new list will reflect the results of a
previous run of component change processing and not the results of the
simulation. To get a permanent record of the simulation, press F21 to print the
results.
181
Impact Analysis
For more information on change type, refer to the Model Object Audit
Information section in this chapter.
182
Impact Analysis
For a changed object, this is the same as its change date and time.
For an object that uses a changed object, this is the date and time
component change processing was run for the change.
You can use the information recorded by component change processing to build
model object lists and to create utilities to automate the required additional
processing and to help you administer your model.
183
Impact Analysis
Examples
Since component change processing can run interactively as you make changes
or can be postponed, you can check the Impact processed indicator to determine
whether you need to run the Apply Component Changes (YAPYCMPCHG)
command.
You can use the Filter Model Object List (YFLTMDLLST) command over the All
Objects list (*ALLOBJ), specifying an output list, to build a model object list of
just those objects that require editing. You can then give the list to the
programming staff to make the required changes.
Similarly, you can build a list of the objects that need to be regenerated, convert
the list to a job list using the Convert Model List to Job List (YCVTMDLLST)
command, and use the result as input to the Submit Model Create Requests
(YSBMMDLCRT) command.
For more information and an example of a Command Language program that
uses component change processing, refer to the Running Component Change
Processing in Batch section in this chapter.
Press F11 to display alternate views. For each model object you can view the
Component change date and time, the Required action indicator (GEN or
EDT), and the Impact processed indicator.
Enter option 8 for any model object to view its current detail on the All
Objects list.
Simulating a Change
You can also use the simulation options (94 and 95) on the Display Model
References and Display Model Usages panels to view the results of component
change processing. These options let you see the impact of a proposed private or
public change on other objects in the model before you actually make the change.
The resulting display identifies which other model objects need to be edited or
generated as a result of the proposed change.
For more information on simulating component change processing, refer to the
Impact Analysis section and the Simulating Changes to Model Objects section,
both in this chapter.
184
Impact Analysis
*UNLIMITED This value lets all developers control the setting of the
Component change processing option in their model profile.
*LIMITEDThis value indicates that only developers with *DSNR authority
can change the Component change processing option in their model profile.
*GENThis value causes component change processing to be invoked
automatically during each YGENSRC job submitted for a given model. It
ensures that changes are kept up-to-date without incurring the overhead
associated with running component change processing interactively. This
value also gives *LIMITED capability to change the model profile option.
*NONEThis value turns off automatic component change processing, both
interactive and as a result of YGENSRC jobs. This value also gives *LIMITED
capability to change the model profile option.
Note: To run component change processing in this case you need to use the
Apply Component Changes (YAPYCMPCHG) command.
For more information on the model profile in general, refer to the Model Profile
section in this chapter.
185
Impact Analysis
For *DSNRs, set the model profile option to N; for *PGMRs, set it to Y.
Performance Considerations
The amount of overhead incurred by running component change processing
interactively generally depends on:
For example, a *DSNR working in a large model negatively affects the system
when running component change processing interactively. On the other hand, a
*PGMR making changes in a relatively isolated area of the model could
effectively use interactive component change processing to quickly identify
model objects affected by his changes. Both types of users can use the simulation
options to gauge the effect of changes.
Experience will show the impact of running component change processing
interactively; however, following are a few suggestions for estimating the likely
effect. The amount of interactive overhead depends on:
186
The type of the model object you are editing. Changes to low level model
objects such as, conditions, fields, and files increase interactive overhead
because the expansion process includes more objects.
Impact Analysis
Interactively and automatically as you make changes. This occurs when the
YCMPCHG model value is set to a value other than *NONE, and the
Component change processing option on the model profile is set to Y.
Using the Apply Component Changes (YAPYCMPCHG) command. If you
do not run component change processing interactively, it is useful to run this
command in batch to ensure that the effects of changes have been distributed
throughout the model.
The YAPYCMPCHG command requires *PGMR capability. By default you
can run this command only within an interactive or batch program to
prevent excessive use of interactive resources. You can change this default
using the Change Command (CHGCMD) command.
This is useful for seeing how a proposed change will affect other model
objects. Results are only displayed; the All Objects list for the model objects
affected by the change is not updated.
187
Impact Analysis
2.
3.
YFLTMDLLSTRun this over the All Objects list (*ALLOBJ), select model
objects having the Required action indicator set to *EDT, and output to the
EDTLST model list for programmers to edit the following day using
YEDTMDLLST.
4.
YFLTMDLLSTRun this over the All Objects list (*ALLOBJ), select model
objects having the Required action indicator set to *GEN, and output to the
GENLST model list.
5.
6.
7.
188
Impact Analysis
3
EXCEXTFUN1
1
EDTFIL
4
EXCINTFUN3
2
EXCEXTFUN2
3
DSPFIL
1
RTVOBJ
ACCESS
PATH PATH
2
EXCINTFUN4
The arrows indicate the usage sequence for the functions that use the access path.
The numbers in the small boxes indicate the usage level of each object relative to
the access path at level 0.
The following section shows the difference between a private and public change
to Access Path.
189
Impact Analysis
Expands all usages of Access Path until the first external function on any
given sequence of usages is encountered. These are shown with darker
borders and the word GEN.
2
3
EXCEXTFUN1
PMTRCD
GEN
GEN
1
EDTFIL
4
EXCINTFUN3
GEN
2
EXCEXTFUN2
3
DSPFIL
1
RTVOBJ
ACCESS
PATH
2
EXCINTFUN4
Note that all usage levels beyond the first external function are ignored; in
this case, PMTRCD, EXCEXTFUN 1, and EXCINTFUN 3 are not included in
the expansion.
2.
190
Sets the Required Action Indicator for the affected external functions to GEN
in the All Objects lists.
Impact Analysis
Expands usages of Access Path until the first external function on any given
sequence of usages is encountered as it did for the private change. However,
for a public change the level at which each using object occurs is significant.
2.
Sets the Required action indicator to EDT in the All Objects list for all using
objects that occur at level 1 to indicate that they require editing as a result of
the change. Specifically:
These are shown in the diagram by the letters EDT and the small box
containing a 1.
2
EDT
EDT
1
EDTFIL
4
EXCINTFUN3
EXCEXTFUN1
PMTRCD
GEN
2
EXCEXTFUN2
3
DSPFIL
EDT
EDT
1
RTVOBJ
ACCESS
PATH
2
EXCINTFUN4
191
Impact Analysis
3.
Checks the model objects at level 2. The result depends on the way in which
the level 1 object uses Access Path. In this example the RTVOBJ function uses
Access Path as the based on access path and for parameter definition.
Specifically:
These are shown in the diagram by the letters EDT and the small box
containing a 2.
4.
Repeats the process for the model objects at level 3. The private change to
EXCINTFUN 4 is a private change to the external DSPFIL function and it
needs to be generated (Required Action = GEN).
5.
Repeats this process for each usage level until an external function is
encountered.
192
Model Security
Model Security
AllFusion 2E lets you access a model as one of three user types: designer,
programmer, or user. Your user type determines the limitations placed on you
when you access and edit the model.
A designer (*DSNR) can change any aspect of the model, both data
relationships and functional specifications. If the Open Access (YOPNACC)
model value is set to *YES, multiple designers and programmers can use the
model at the same time; otherwise, only one designer can use the model.
A programmer (*PGMR) can change functional specifications, but cannot
change database files or fields. Multiple programmers can use the model at
the same time. However, a programmer cannot use the model at the same
time as a designer if the Open Access (YOPNACC) model value is set to
*NO.
A user (*USER) can only view the model and cannot change it. However, a
*USER can edit model object lists.
193
Model Profile
Model Profile
The model profile lets you define defaults for various processes and file
specifications for an interactive session. For example, the model profile contains
defaults for the following:
View-only mode
Full screen mode for the Edit Model Object List panel
There is a model profile for each user for each model. When a new user is
granted access to a model, AllFusion 2E automatically creates a model profile for
the user. The defaults for a session are taken from the model profile.
194
Model Profile
Suppose you pressed F18 or used the YEDTMDLPRF command. The following
panel displays:
These default settings establish the basic working environment for your
interactive session. You can reset these to modify your environment for the
current session; for example, to use full screen mode on the Edit Model Object
List panel or to access the model in view only mode.
Scroll down to view the second screen of the Edit Model Profile panel containing
the Submit Model Create Default Values.
195
Model Profile
These values establish the default generation and creation environment for the
current session and are used to preload job list commands; for example, the
Submit Model Create (YSBMMDLCRT) command. In addition to changing
values on this screen, you can modify the default values when you invoke the
command by specifying other parameter values on the interactive command
prompt or on the batch command.
The third screen of the Edit Model Profile panel contains the Submit compilation
option and the name of the GUI folder for AllFusion 2E Thin Client.
196
As already mentioned, you can create a default model profile suitable for
your environment by editing the model profile in the null model or by
editing the model profile associated with a particular model.
To change the model profile defaults for new models, edit the default
model profile in the null model. Note that this will be overwritten when
you receive a new version of AllFusion 2E.
To change the model profile defaults for new users of a model, edit the
default model profile in the model library.
You can tailor model profile settings for particular developers or groups of
developers using the Edit Model Profile (YEDTMDLPRF) command. Some
examples are:
You can use the Retrieve Model Profile Details (YRTVMDLPRF) command to
retrieve model profile settings for a specified user profile. As with other
change control facilities commands, you can use this within control language
programs to build utilities and model object lists to help manage your model.
Understanding Versions
Versions of the same model object form a version group. Each version in a
version group is a unique model object; the term version is used to identify them
as being related.
In any group of versions, one and only one of the model objects in the group may
be current. The current version is the version that is active in the model; it is the
model object that is used by other objects in the model and is the model object
that appears on AllFusion 2E editing panels.
If you use CM, each version also has one of the following version types. If you do
not use CM, all versions have version type DEV.
DEVDevelopment
PRDProduction
ARCArchive
197
All versions in a group have the same Copy name. This value is used to initialize
the Copy name stored on the model list that the Copy Model Objects
(YCPYMDLOBJ) command uses to copy objects between models. Initially the
Copy name for a version group is the same as the name of the original model
object. You can change the Copy name for all versions in a group using the
Change Model Object Description (YCHGMDLOD) command on any one of the
versions. New versions will automatically be given the same Copy name as the
other members of the group.
For more information:
The following diagram illustrates basic concepts relating to versions. The original
object in this diagram is the Edit Customer function; it has three versions. These
four functions comprise the version group for Edit Customer.
198
When you create a version you can assign a name to the version or you can
let AllFusion 2E automatically generate it.
The two versions, Edit Customer 1100460 and Edit Customer VSN2, were
created directly from the Edit Customer function; Edit Customer VSN3 was
created as a version of Edit Customer VSN2.
All versions in the group have the same Copy name, in this case Edit
Customer. If you change the Copy name for any version in a group using the
YCHGMDLOD command, the Copy name is automatically updated for all
versions in the group.
Each version, including the original function, is a distinct model object and
therefore has a unique:
Object name; e.g., Edit Customer, Edit Customer VSN2, Edit Customer
1100460.
Implementation name.
199
All versions in the version group are displayed in reverse chronological order;
the most recently created version appears at the top of the list of entries. The
current version is highlighted and has an asterisk to the right of the Subfile
selector and a Status of Current.
This panel supports a wide range of subfile selection options and provides
alternate views for each version. The options with similar selection values
perform the same function as those on the Edit Model Object List panel. For
example, from this panel you can:
Create a version
Edit a version
Generate a version
Delete a version
For more information on the subfile select options, refer to the Editing Model
Object Lists section in this chapter.
For more information on check out, refer to the AllFusion 2E Change Management
User Guide.
1100
Creating a Version
You can create a new version of a function or message by using the:
The new version will be a copy of the original function or message, but will have
a different object name, object surrogate number, and implementation name. The
object name for the version must be unique within the owning file; the
implementation name must be unique within 3GL object type in the model. The
new version is given the Copy name used by the version group to which it
belongs.
To create a version from the Work with Versions panel:
1.
Enter selection option 3 for the version you want to use as the source for the
new version. You can select any version listed; it does not need to be the
current version. The following panel displays:
2.
Determine the To model object name. You can either let AllFusion 2E
generate a new name for the new version, or you can override this default.
The name AllFusion 2E generates is the original name suffixed by a 7-digit
number; the original name is truncated if the new name is longer than 25characters. For example,
Edit Branch
1459353
1101
Note: You can define your own naming convention for automatic name
generation using the exit program YOBJNAMR1C.
3.
Determine currency. You can make the new version current by specifying
*YES for the Make model object current option. The default is not to make
the new version current so you can edit and test the new version before you
make it current.
If you do not make the version current at this time, you can do so later using
option 26 on the Work with Versions panel or by using the Redirect Model
Objects (YRDRMDLOBJ) command.
4.
Determine whether to transfer the object name. You can request that
AllFusion 2E exchange the name of the original function or message with the
name of the new version by entering *YES for the Transfer object name
option. As a result, the name assigned to the original object will be the name
indicated by the To model object name option. The default is not to exchange
the names.
5.
Press Enter to create the new version and return to the Work with Versions
panel.
AllFusion 2E adds the new version to your session list and creates a model object
description for the new version. The Copy name assigned to the new version will
be the Copy name currently being used for the group to which the new version
belongs.
You can view the model object description for a non-current version using
selection option 8 on the Edit Model Object List panel when editing your session
list or any named model object list containing the version. By default only
current versions are displayed when you edit the All Objects list (*ALLOBJ). To
display non-current versions, press F17 and set the Current objects only option
on the Subset Model Objects panel to *YES.
1102
You can only reference a current version, for example, in an action diagram
construct
A version group need not have a current version. In that case, the only impact is
that the function or message will not be visible on AllFusion 2E editing panels.
Since a non-current version can appear as an entry of a model object list, you can
still view, edit, and work with the versions in the group.
When you make a version current, AllFusion 2E:
Identifies the model objects that directly use (refer to) the existing current
object. These are the level 001 using objects discussed in the Impact Analysis
section.
Changes all references for the identified using objects to refer to the new
current version.
Exchanges the implementation names of the existing current version and the
new current version. This is the message identifier for a message (MSG) and
the source member name for an external function (FUN).
Optionally exchanges the model object names of the existing and new
current versions.
This process is also referred to as redirection because it redirects all model objects
that refer to the existing current version to refer to the new current version.
Example
Suppose Internal Function A2, a version of Internal Function A, has been edited
and tested and you want to make it current. This diagram shows the other
objects in the model that refer to Internal Function A. Note that no model objects
refer to Internal Function A2.
Print Customer
Edit Customer
Edit Customer
Address
Change
Customer
Internal
Function A
Internal
Function A2
CURRENT
1103
When you make Internal Function A2 current, all model objects that had referred
to Internal Function A are changed to use Internal Function A2. This is shown in
the following diagram. Note that other model objects no longer refer to Internal
Function A.
Print Customer
Edit Customer
Edit Customer
Address
Change
Customer
Internal
Function A2
Internal
Function A
CURRENT
If you find errors in Internal Function A2 you can make Internal Function A
current again using the same process.
To make a version current:
1.
1104
From the Work with Versions panel enter 26 for the version you want to
make current or execute the Redirect Model Object (YRDRMDLOBJ)
command from the command line. The following panel displays:
2.
Indicate how AllFusion 2E is to handle the object names of the two versions.
By default, AllFusion 2E exchanges the name of the original current version
and the name of the new current version.
Be sure to document the exchange of model object names since this could be
confusing to others. Also, note that model object list entries that refer to these
versions are not automatically updated to reflect the exchange of names. You
can refresh the affected model object lists by pressing F15 from the Edit
Model Object List panel to invoke the Check Model Object List
(YCHKMDLLST) command.
You can change the default if you set the Transfer object name option to
*NO.
3.
On Change type, refer to the Model Object Audit Information section in this
chapter.
On component change processing, refer to the Impact Analysis section in this
chapter.
Cautions
When you make a version current, all objects that use the previously-current
version are affected. Use this feature with care to prevent unexpected results. The
following are some points to consider:
You can determine the impact of making a new version current in advance
using AllFusion 2E's impact analysis tools to view the level 001 usages for
the existing current version. For example, use selection option 95 on the
Display Model Usages panel to simulate a public change.
If some of the using objects require the original functionality (in other words,
if they need to continue using the existing current version), you cannot
introduce your changes by making the new version current. Instead:
a.
Copy the new version to create a new model object, not a version.
b. Edit the action diagrams of the using objects that require the new
functionality to refer to the new copy.
1105
Non-current Versions
The versions within a version group that are not current:
Redirect the usages of functions and messages that are not versions if they
are both of the same type. For example, you can redirect usages from a
DSPFIL function to an EDTFIL function, but you cannot redirect from a
function (FUN) to a message (MSG).
Redirect usages to a version in another version group. In this case, both
versions must be the current version in its own version group.
The from object remains current after the transfer and the implementation
name is not transferred. This ensures that there is a current member in the
from group.
1106
Using Versions
Following is the basic process for using a version of a function or message.
1.
Create a version.
2.
3.
For an external function, generate the source and create the program object.
4.
Test the version. See the sections following this list for more information.
5.
When you are satisfied with your changes, make the version current.
6.
Use the Call a Program (Y2CALL) command. This command determines the
parameters required by an external function directly from details contained
in the model. You can provide values for all input-capable fields and you can
reuse these values for subsequent calls. This command is especially useful
when the parameter interface is complex or if it has changed. You can also
retrieve and display output parameters when the called program terminates.
You can also invoke the Y2CALL command using option 16 on the Edit
Model Object List, the Display Model Usages, and Display Model References
panels.
If the program interface is the same as for the current version, you can
rename the program object in a separate test library, add the test library to
your library list, and test the new functionality.
For more information on the Call a Program (Y2CALL) command, refer to the
AllFusion 2E Command Reference Guide.
1107
Make a copy of the version using the Copy option on the Edit Model Object
List panel. This creates a separate function (FUN) or message (MSG).
2.
Use AllFusion 2E's impact analysis tools to identify the external functions
that use the existing current version of the internal model object.
3.
4.
Change the action diagram of the version of the using external functions to
refer to the new copy of the internal model object.
5.
Test the changes using the Call a Program (Y2CALL) command to execute
the version of the using external function. You can also invoke the Y2CALL
command using option 16 on the Edit Model Object List, the Display Model
Usages, and Display Model References panels.
6.
When you are satisfied with your changes, make the version of the internal
function or message current. Also, delete the copy of the internal function or
message and the version of the external function.
Comparing Versions
Use the Compare Model Objects (YCMPMDLOBJ) command to compare two
versions; for example, to identify changes in one version in order to retrofit them
to another version. You can use this command to compare functions, messages,
or files (FIL). You can invoke this command from a command line or by using
selection option 34 on the Edit Model Object List panel.
For more information on the Compare Model Objects (YCMPMDLOBJ)
command, refer to the AllFusion 2E Command Reference Gide.
Deleting Versions
You delete versions using option 4 on the Work with Versions panel or the
Delete Model Version (YDLTMDLVSN) command. Since a version is a separate
model object, you can delete it as you would any other model object; in other
words, if it is not used by other model objects. As a result, you can always delete
a non-current version since by definition it is not used by other model objects.
Note: If you try to delete a current version that is not used by other model
objects, AllFusion 2E instead makes the version non-current. You can then repeat
the delete operation to delete the now non-current version.
1108
Chapter
Produce source from the design that you defined in your AllFusion 2E
design model.
The type of source generated depends on the object type for which you issue a
request for generation. The object types include:
FunctionProduces:
Field reference fileIf used, produces DDS for the field reference file
21
The generated source is compiled from the source file according to the object
type or HLL that you have chosen.
Functions
Device designs
Programs
Help
J or 14
J or 14
to batch
Generate Source
(YGENSRC)
Compile Source
(1 job per successfully
generated object)
22
Implementation
Implementation
Once you have generated, compiled, and tested your functions and access paths,
you are ready to set up your application and move it into production.
Implementation is the process of setting up your application for end users. Your
tasks might include the following:
Using AllFusion 2E Toolkit menu facilities, create menus for end user access
to your application.
To run your application in an environment without the AllFusion 2E product
libraries, duplicate necessary AllFusion 2E shipped objects into the library
for execution objects. Use the Duplicate Application Objects (YDUPAPPOBJ)
command or the Create Generation Objects(YCRTGENOBJ) command.
Set up test standards and verify that your application works as designed.
Using Toolkit move commands (and compile commands, as needed) transfer
source files, generated application objects, and/or data objects from your
development library to the execution library.
23
Performance Considerations
Performance Considerations
This section offers tips on efficient generation and compilation.
24
Performance Considerations
When you finish the development and system test phases, your application is
ready for final testing. Then set YPMTGEN to *MSGID if you are externalizing
the device text constants for National Language Support (NLS). You must then
generate and compile your functions.
Model Reorganization
By running the Reorganize Model (YRGZMDL) command, you can reduce the
amount of storage needed for the model library by removing old data. Use the
RGZOPT(*MDL) option on this command. Running the YRGZMDL command
regularly for a model and job lists, based on how often they change, is a good
strategy.
25
Performance Considerations
26
Chapter
Source files
Message files
You can create additional generation libraries using the Create Generation
Objects (YCRTGENOBJ) command.
If you change the model value YGENLIB using the YCHGMDLVAL command,
you must update the YMPHLBA data area in the new library. This data area
contains the name of the library into which Help text is generated. This value is
usually the name of the Generation library.
AllFusion 2E also creates an SQL collection in the SQL library (SQLLIB), if
specified by the SQLLIB parameter on the YCRTMDLLIB command.
The SQL library can be created at the same time as the model. If it was not, you
can set up an SQL library using the Create SQL Library (YCRTSQLLIB)
command. This command also updates the YSQLLIB model value with the SQL
library name.
31
32
DDS - QDDSSRC
RPG - QRPGSRC
COBOL'74 - QCBLSRC
COBOL'85 - QLBLSRC
CLP - QCLSRC
AllFusion 2E retrieves the text for the standard banner in all source types from
the messages file Y2MSG. If you want different text in the banner, you can
change the message text for these messages using the OS/400 Work Message
Description (WRKMSGD) command.
For more information on WRKMSGD, refer to the Application System/400
Programming: Control Language Reference.
33
The following table lists the messages used in the standard source banner. These
messages are stored in Y2ALCMSG in the language dependent object (LDO)
library, Y2SYVENG.
MSGID
Message Text
Shipped Values
Variable
Y2F8463
'Generated by
AllFusion 2E
generator and
version identifier
Y2F8464
'Function type
YCMPTXT
Y2F8465
'Company
:&1'
YMDLTXT
Y2F8466
'System
:&1'
Job user
Y2F8467
'User name
:&1'
Job date/time
Y2F8468
'Date
YCMPTXT
Y2F8469
'Copyright:
&1
Note: You will need to re-apply any changes to the banner after each AllFusion
2E product upgrade.
Execution Displays
AllFusion 2E provides the following model values for changing certain execution
data, using the YCHGMDLVAL command:
34
35
For Functions
The compiler overrides you select depend on the object type but might include:
Physical files, using the OS/400 Create Physical File (CRTPF) command with
such parameters as:
Logical files, using the OS/400 Create Logical File (CRTLF) command with
such parameters as:
Note: Do not override values that are already specified by access path details,
such as MAINT and TEXT. You can review these values on the Access Path
Details panel.
For more information on iSeries commands, refer to IBMs Application System/400
Programming: Control Language Reference.
36
Program
Description
QRPGSRC
Y2VLLSR
Y2VLLWR
QRPGSRC
Y2PSSRR
RPG error
handling (*PSSR)
Details
37
QRPGSRC
Y2CLMSG
CLRMSG
Clear messages
from a program
message queue.
QRPGSRC
Y2SNMGC
SNDxxxMSG
Error, status,
information, and
completion
messages.
QCLSRC
Y2EXMCC
EXCMSG
Execute a message.
QRPGSRC
Y2RVMGC
RTVMSG
Retrieve a
message.
QCLSRC
Y2BGCMC
Commitment
control
If not already
active, start
commitment
control.
Note: The message handling routines are shipped as RPG programs using
OS/400 Message Application Programming Interfaces (APIs). These replace the
original CLP routines. The names have been left with a C extension for
compatibility with old applications.
38
To focus on the job queue and routing entry descriptions, let us use, as an
example, the QBATCH subsystem for batch jobs. YSBMMDLCRT uses QBATCH
by default. You can change this default and create a different subsystem of
AllFusion 2E-related activity.
39
310
Routing Entries
Option 7, Routing entries, on the Display Subsystem Description panel defines
how AllFusion 2E is to start a job in QBATCH. When you choose option 7, the
Display Routing Entries panel displays:
AllFusion 2E compares the routing data from the job description to each
Compare Value in the list as follows:
Initially, the generation job, YGENSRC, uses the Class assigned to the routing
entry of YCRTOVR. The program YBRTPRC is associated with the routing entry
of YCRTOVR; program YBRTPRC is the pre-processor for YGENSRC. The last
step in pre-processing assigns new routing data and issues the OS/400 Reroute
Job (RRTJOB) command. This command reroutes the job, depending on the
YCRTENV model value setting. If model value YCRTENV is set to QCMD
(iSeries mode), routing data is set to QCMDB.
The subsystem compares the new routing data with the Compare Values in the
routing entries list.
311
If you want to change the run priority of YGENSRC, modify the Class associated
with each of the following routing entries.
To determine the Class, look at the details for the routing entry associated with
YCRTOVR. On the Display Routing Entries panel, enter 5 beside the routing
entry. This Display Routing Entry Detail panel displays (for this example, the
Class is QBATCH).
312
Let us return to the Display Routing Entries and enter 5 beside the routing entry
associated with *ANY. The Display Routing Entry Detail panel displays, with
Class QBATCH.
The run priority defines the job priority (1 through 99). A value of 1 for the run
priority gives a job the highest priority in competing for machine resource with
other jobs.
To display the Run priority of each program, you can invoke the Display Class
Information panel from an OS/400 command line by entering:
DSPCLS Class
where Class is the value shown on the Display Routing Entry Detail panel for
that routing entry.
313
If your controlling subsystem is QBASE and the job queue name in your
model job description is QBATCH, follow all the steps.
If your controlling subsystem is QCTL, or if you are using a job queue other
than QBATCH, begin with step 7.
Verify that QBATCH exists in QGPL at the Display Job Queue Entries
panel.
If needed, create job queue entry QBATCH2, in library QGPL, for subsystem
QBATCH. At a command line, type the following command string and press
Enter.
CRTDUPOBJ OBJ(QBATCH) FROMLIB(QGPL) +
OBJTYPE(*JOBQ) NEWOBJ(QBATCH2)
Note: QBASE has a job queue named QBATCH. If your job queue is also
named QBATCH (the default), the submitted job will go to the QBATCH job
queue in QBASE.
314
3.
Stop subsystem QBATCH. Type the following command string and press
Enter:
ENDSBS QBATCH
4.
Add job queue entry QBATCH2 to subsystem QBATCH. Type the following
command string and press Enter:
ADDJOBQE SBSD(QBATCH) +
JOBQ(QGPL/QBATCH2)
5.
Restart subsystem QBATCH. Type the following command string and press
Enter:
STRSBS QBATCH
Now that you have reviewed and changed your subsystem, complete steps
6-9 to make sure it works correctly in AllFusion 2E.
6.
In every model, change the job description to use the job queue name
QBATCH2. For each model, type the following command string and press
Enter:
CHGJOBD JOBD(model-library-name/QBATCH+
or your-job-description-name) +
JOBQ(QGPL/QBATCH2)
Note: You should check any job descriptions explicitly referenced in the
model profiles for the model. You can edit the model profile for a user using
the Change Model Profile (YCHGMDLPRF) command or by pressing F18
from the Edit Model Object List panel.
For more information on compiling right after generation, refer to the
Sending Generations and Compilations to Separate Queues section in this
chapter.
7.
Verify that the job description library list is correct for the model. Type
one of the following command strings, as appropriate, and press Enter to
access the Display Job Description panel:
DSPJOBD JOBD(QGPL/QBATCH)
DSPJOBD JOBD(model-library-name +
/model-job-description-name)
You should check the library list for the model using the Edit Library
List (YEDTLIBLST) command. You can determine the model's library list
using one of the following:
315
Suggested list:
Generation library
Model library
QGPL
b. Verify that the routing data value in the model job description is
YCRTOVR. To verify the value, locate it on the Display Job Description
panel. If needed, you can enter the following command string to change
the routing data value:
CHGJOBD +
JOBD(model-library-name/QBATCH) +
RTGDTA('YCRTOVR')
You should check any job descriptions explicitly referenced in the model
profiles for the model.
Note: YCRTOVR must be in capital letters.
8.
Verify that the routing entries are correct in the subsystem to which you will
submit the AllFusion 2E jobs. The subsystem must contain a routing entry
with a value of YCRTOVR to match the routing entry in the job description
the model uses. Perform the following to verify routing entries:
a.
Type WRKSBSD QBATCH (or your subsystem name) and press Enter to
access the Work with Subsystem Descriptions panel.
316
Program
Library
Compare
Value
Start
Position
1111
YBRTPRC
Y1SY
'YCRTOVR'
9999
QCMD
QSYS
*ANY
9.
If needed, change or add routing entries using either the OS/400 command,
Change Routing Entry (CHGRTGE) or Add Routing Entry (ADDRTGE), as
appropriate. Be sure to terminate the subsystem before adding a routing
entry.
Copy the job description in your model into your generation library.
2.
Change the job queue of the job description in the generation library to the
one you want to use for compilation.
3.
Note: You can execute the YSBMMDLCRT command from an iSeries command
line, by selecting option one on the Display Services Menu, or by pressing F19
from the Edit Model Object List panel to display the Job List Commands Menu.
317
The processing sequence for batch or interactive mode depends on the value of
parameter SBMCRTOPT on the YSBMMDLCRT command.
318
After submission, AllFusion 2E assigns a status to each job on the job list.
Immediately after submission, the status is *SBM.
When AllFusion 2E finishes generating the job and submits it for compilation,
the activity changes to CRT and the status changes to *JOBQ.
319
When the job is successfully compiled, AllFusion 2E drops it from the top of the
job list.
320
Batch Generation
The following diagram shows the batch generation stages for both *GENOK and
*IMMED. Notice that members have a GEN stage flag during generation, which
changes to CRT once generation is successful. AllFusion 2E automatically
submits members for compilation that have a CRT stage flag.
321
Interactive Generation
The following diagram shows the stages for interactive generation for both
*GENOK and *IMMED.
For more information on batch versus interactive generation refer to the chapter
titled Generation and Implementation: An Introduction in this guide.
322
Other job attributes, such as the Initial library list and Message logging
(Level, Severity, and Text)
You can specify separate job descriptions for generation and compilation, using
the JOBD (generation) and CRTJOBD (compilation) parameters on the
YSBMMDLCRT command. Both job descriptions default to the YCRTJBD model
value.
For compilation, the initial library list of the job description should contain the
name of the generation library, specified by model value YGENLIB, and any
other libraries containing objects required for compilation, such as the HLL
compilers.
Use the Toolkit Edit Library List (YEDTLIBLST) command to maintain both the
library list of your model and the associated job description.
Note: Your interactive library list is not used.
Edit Model (YEDTMDL) command. JOBLST names the list into which
AllFusion 2E places requests.
Submit Model Create (YSBMMDLCRT) command. JOBLST names the list
from which AllFusion 2E takes requests.
The value *USER for JOBLST specifies a list with the same name as the user
profile of the job invoking the command.
323
From the Display Services Menu, choose the option Submit model create
request (YSBMMDLCRT)
Execute the YSBMMDLCRT command from an OS/400 command line,
setting the EDIT parameter to *YES
From the Edit Model Object List panel, press F19 and select the
YSBMMDLCRT option from the Job List Commands Menu
Application area
Generic name of AllFusion 2E files that have the dependent access paths
and/or functions to be included
You can specify whether the activity status of the access path and function
entries in the list will be *GEN (require generation and compilation) or *CRT
(require compilation only). The parameters of the YBLDJOBLST command are:
324
Alternatively, you can use the Convert a Model Object List (YCVTMDLLST)
command to convert an existing model object list into a job list. You can execute
this command from the Edit Model Object List panel by pressing F19 and
selecting the YCVTMDLLST option from the Job List Commands Menu.
For more information:
On model objects lists, refer to the chapter titled Managing Model Objects
in this guide
On the YCVTMDLLST command, refer to the AllFusion 2E Command
Reference Guide.
Display Services Menu. Select the Job List Menu option and then select the
Check Job List for Model option.
Edit Model Object List panel. Press F19 and select the YCHKJOBLE option.
*RMVOKRemoves the member from the job list if the object and/or
source already exists.
*RMVERRRemoves the member from the job list if the object and/or
source does not exist.
325
326
Closedown Program
For RPG, Closedown Program settings have these results:
For example, a function that changes the value of a key field in the database has
different implementations:
327
For more information on how to change key values using a COBOL program,
refer to Building Applications.
Error Routine
For RPG implementation, if you request an error routine, AllFusion 2E generates
a *PSSR routine. AllFusion 2E generates any database files in the resulting
program, treating each file as user-controlled and specifying a *PSSR routine.
The initialization routine includes explicit file opens.
COBOL has no *PSSR routine.
Header Specification
The AllFusion 2E generator obtains an RPG header specification from the model
value YRPGHDR. AllFusion 2E uses this header to generate source for RPG
programs.
328
If you plan to create more files, fields, or functions, use the YCHGMDLVAL
command to change the following model values.
Note: If you think you might ever create objects in both RPG and COBOL, set the
model value YHLLVNM to *RPGCBL.
If your model was initially created with the naming convention set to *RPGCBL,
skip steps 2, 3, and 4.
2.
Replace the generation type data in your model library with the COBOL
generation types. To replace the data, enter:
CPYF +
FROMFILE(2E-NL-library/YGENTYPPDP) +
TOFILE(your-model/YGENTYPRFP) +
FROMMBR(CBL) TOMBR(*FIRST) +
MBROPT(*REPLACE)
3.
Replace the device format data in your model with COBOL formats. To
replace the data, enter:
CPYF +
FROMFILE(2E-NL-library/YDEVFMTPDP) +
TOFILE(your-model/YDEVFMTRFP) +
FROMMBR(CBL) TOMBR(*FIRST) +
MBROPT(*REPLACE)
329
4.
For existing functions and files, run the Convert Model Names
(YCVTMDLVNM) command before regenerating them in COBOL. This
command changes existing names to valid COBOL names and creates a
report of old names and corresponding new names. To rename function and
file names, enter:
YCVTMDLVNM MDLLIB(your-model-library)
5.
Add the AllFusion 2E COBOL library, Y2SYCBL, to your model and model
job description library lists. Be sure to exit and save the changes and update
the batch job description. To add the library, enter:
YEDTLIBLST LIBLST(your-model-library/*JOB)
6.
Delete previously submitted items from the job list for Submit Create
Requests from Model (YSBMMDLCRT). You cannot change the source type
of a function already on the list.
For more information on deleting items from job lists, refer to the Using Job
Lists section in this chapter.
7.
Change the source type of existing functions to CBL. Enter the model and
change the source type. Use either of the following methods to display the
Edit Function Details panel:
Go to the Display Services Menu and select the Display all functions
option. Zoom into each named object on the list.
On the Edit Model Object List panel specify option 2 for each function on
the All Objects list (*ALLOBJ).
If the access path format names begin with @, the RPG default, generate
and compile all access paths as well as functions. This changes the RPG
@ prefix to a COBOL prefix.
If you have created a set of access paths with COBOL compatible names,
generate and compile only the functions.
330
HLL(s) naming convention for new names, using the command string:
YCHGMDLVAL MDLVAL(YHLLVNM) +
VALUE(*RPGCBL)
Note: If you think you might ever create objects in both RPG and COBOL,
set model value YHLLVNM to *RPGCBL.
2.
Delete previously submitted items from the job list for Submit Create
Requests from Model (YSBMMDLCRT). You cannot change the source type
of a function already on the list.
3.
Enter the model and change the source type of existing functions to RPG.
a.
Go to the Display Services Menu and select the option Display all
functions.
On deleting items from job lists, refer to the Using Job Lists section in this
chapter.
On implementation names, see the Administrator Guide.
On AllFusion 2E commands, refer to the AllFusion 2E Command Reference
Guide.
331
Chapter
On setting up job lists, refer to the chapter titled Preparing for Generation
and Compilation in this guide.
On whether to generate in batch or interactive mode, refer to the chapter
titled Generation and Implementation: An Introduction in this guide.
On changing the HLL, refer to the chapter titled Preparing for Generation
and Compilation in this guide.
41
From the Display Services Menu, display all access paths or functions; if you
wish to generate:
Access paths, choose the option Display all access paths. The Display All
Access Paths panel displays.
Functions, choose the option Display functions. The Display All
Functions panel displays.
Note: For functions, ignore items with **N/A under the GEN name column.
They are internal functions and will not generate. You can filter these items
out of your display by typing *EXT in the Type column, so that only external
functions will display.
2.
Request generation:
For batch, type J beside each item you want to generate, then press Enter.
For interactive, type G beside each item you want to generate, then press
Enter.
3.
4.
Submit generations and compilations of all the source members you selected.
On the Display Services Menu, you can do this in two ways:
A job list of the source members you have requested for generation and
compilation appears on the Submit Model Generations & Creates panel.
42
5.
Review the list before confirming, make any changes desired, and press
Enter. If the list contains items you do not want, you can drop (D) or hold
(H) them. The following panel shows a sample list:
After you press Enter on the Submit Model Generations & Creates panel, the
panel re-displays with the confirm prompt set to Y for confirmation.
6.
7.
You can review the list or exit the panel for the status of members as follows:
43
Important! AllFusion 2E orders generation of physical files, logical files, and functions
automatically. If you disturb the order by moving dependent items among queues or
deleting entries, the job may fail. The logical files must be built over physical files.
Therefore, the physical files must be created first.
Each member on the job list initially has a *SBM (submitted) status. As AllFusion
2E generates a member, the status changes to *GENSRC (source member being
generated), *ACTIVE, or *JOBQ (source submitted for compilation). A source
member no longer appears on the list when its compilation is completed unless
the compilation fails and the status changes to *ERROR. For errors, you must
resubmit both the display file and RPG or COBOL members.
For more information:
Choose the option Convert model data menu from the Display Services
Menu.
2.
Choose the option Convert condition values to database file from the
resulting menu
Note: The condition values file should not be in use when running the
YCVTCNDVAL command.
44
Verify that model value YFRFVNM specifies a name. You must have a field
reference file specified for your model. If model value YFRFVNM is *NONE,
you cannot generate this file. You can change this setting from *NONE to
generate the field reference file and change it back to *NONE provided you
do not generate any other files in the interim. Changing model value
YFRFVNM has no effect on the model. To change the value of YFRFVNM,
use the YCHGMDLVAL command.
The field reference file must be in a library on the library list.
To generate DDS source for a field reference file, from Display Fields, choose one
the following:
Note: If you are adding a field reference file to an existing model, you must
generate its source before submitting functions for generation/compilation.
Two other model values are available for generating a field reference file.
YFRFTXTSpecifies which file text to use to describe the field reference file.
45
For more information on model values and the YCHGMDLVAL command, refer
to the AllFusion 2E Command Reference Guide.
Make sure the file that contains your condition values, xxVLLSP (where xx is
the value list prefix), is not in use.
2.
Note: Be sure to use the appropriate library list containing the generation
library into which you want to convert your condition values; that is, use the
appropriate model library list.
3.
46
Assign unique prefixes to the condition values list file in each model by
using the YCHGMDLVAL command for model value YVLSPFX. When you
convert the conditions, AllFusion 2E creates separate condition files and
condition display programs for each model.
If you want to create only one condition file and display program in the
common generation library, put all conditions into a common model before
conversion. To create a common model, use the Copy Model Object
(YCPYMDLOBJ) command.
Note: If you want to use the AllFusion 2E shipped default messages, such as *No
value selected, in an environment that does not include the AllFusion 2E product
libraries, use the Duplicate Application Objects (YDUPAPPOBJ) command.
AllFusion 2E-shipped default messages reside in the message file, Y2USRMSG.
User-generated run time messages reside in the file specified by the Message File
Name (YMSGVNM) model value. The YCVTMDLMSG command creates both
message files automatically if necessary.
47
Verifying Results
Verifying Results
AllFusion 2E sends completion messages for successfully generated source. If
errors occur, AllFusion 2E:
48
Missing parameters
Invalid context
Invalid domains
Verifying Results
Undefined conditions
Undefined actions
Note: On the display of errors, you can press F7 to scroll to the next error, and
type 3 for the Occurrences to process option to scroll to the prior error.
The action diagram editor only finds syntax errors in the current action diagram.
It does not find any errors present in embedded internal functions, unless you
zoom into those functions first. The action diagram editor does find errors in
hidden structures within the same action diagram.
To position to a function or message within an action diagram having a specified
source member name or message identifier, respectively, type the
implementation name in the Scan for implementation name option.
For more information on the Action Diagram Services panel, refer to the Using
Action Diagram Services section of the Modifying Action Diagrams chapter of
Building Applications.
Error analysis capability is also available outside the action diagram as follows:
Access the Source Entry Utility (SEU). On the Submit Model Generation &
Creates panel, place E in front of the program object in error.
2.
Enter an 'E* Y2' search string. On the SEU positioner line, type 'E* Y2' and
press F16. The editor goes to the line beginning with E* (message ID) on
which the error is located in the compiled source. Press F16 again to continue
the search.
3.
Look for the prior user point in error. User points are identified by the USER
comment line. You can use F16 (find) and the string USER to locate the
incomplete action diagram statement(s) that caused the error(s).
4.
Exit SEU and return to the function's action diagram to make the needed
corrections.
49
Verifying Results
For more information on the SEU editor, refer to IBM's Application System/400
Application Development Tools: Source Entry Utility User's Guide and Reference.
2.
Scroll through the file to display the point in the action diagram where
generation stopped.
3.
410
1.
2.
On the Work with Submitted Jobs panel, type 8 (Spooled files) next to the
job, and press Enter. The job will have the same name as the associated
source member.
3.
On the Work with Job Spooled Files panel, type 5 (Display) next to both the
compile listing and job log. Press Enter.
4.
On the job log, scan for errors of severity 30 or above. This may show you
what the problem is. If not, go to the compile listing.
5.
On the display of the compile listing, type B (bottom) in the Control field at
the top of the screen. Press Enter.
Verifying Results
6.
7.
Use F16 (find) for that ID (without the *) to locate the action diagram
statement in error.
Access SEU. On the Submit Model Generation & Creates panel, place E next
to the program object in error. Press Enter.
2.
3.
Display the compile listing. Select Option 2 (Spool file) and press Enter.
The compile listing displays at the bottom of the split panel.
4.
Find each error. Enter *ERR on the find line at the bottom of the panel and
press F16 (Find/Repeat find).
5.
Press Help on the message displayed at the bottom of the SEU display.
You can then revisit the action diagram to correct the error(s).
For more information on using SEU, refer to IBM's Application System/400
Application Development Tools: Source Entry Utility User's Guide and Reference.
What the library list entries are when the problem occurs.
411
Verifying Results
For an interactive job, if the logging level is not low enough to isolate the
problem, change the level and resubmit the job. To lower the job log severity
level from an OS/400 command line, execute the OS/400 Change Job
(CHGJOB) command. Suggested parameters are:
CHGJOB LOG(4 00 *SECLVL) LOGCLPGM(*YES)
For a batch job, you can change the logging level for the job description
(JOBD) using the OS/400 Change Job Description (CHGJOBD) command.
Suggested parameters are:
CHGJOBD +
JOBD(library-name/job-description- name) +
LOG(4 00 *SECLVL) LOGCLPGM(*YES)
DSPJOBLOG
SIGNOFF LOG(*LIST)
2.
Find the job (name of the program) and use option 5 (Display) to display the
spool file.
412
Verifying Results
Debug Aids
The Toolkit provides utilities to streamline debugging. These utilities are a set of
commands that allow you to change the data on a database file directly, set up
debug sessions from directives stored in program source, and take synchronized
snapshots of the contents of a list of files. These commands include:
The AllFusion 2E documentation utilities are also useful in debugging. You can
use them to identify implementation objects impacted by changes you make as a
result of debugging.
Note: If you use the OS/400 debug facilities, ensure that you end debug before
entering the model.
For more information:
On how to use the debug commands, refer to the chapter titled Debug
Aids in the AllFusion 2E Toolkit Concepts Guide.
On parameters for the debug commands, refer to the AllFusion 2E Toolkit
Reference Guide.
On using AllFusion 2E documentation utilities, refer to the Documenting
Your Generated Application section of the Implementing Your Application
chapter of this guide.
413
Impact Analysis
You can use AllFusion 2E's impact analysis tools to determine the impact of a
proposed or actual change to a model object and to ensure that all dependent
objects are edited, regenerated, and compiled. These tools include:
Automatic update of date and time for various processes, including creation,
change, copy (for example, import from another model), and generation, for
each model object.
Commands and processes to identify dependent model objects. These
include:
For more information on AllFusion 2E impact analysis tools, refer to the Impact
Analysis section of the chapter titled Managing Model Objects in this guide.
The remainder of this section provides a general overview of the idea of
dependencies between model objects.
414
Function options
The function
Device design
The function
Action diagram
The function
Note: For a non-generated (internal)
function, all functions referencing that
function must be generated/compiled.
Function message
Function parameters
Access paths
415
If You Changed
Condition value
YDATGEN
model value
Relation
416
The following table shows some examples of changes to files that determine
whether you need to generate and compile functions.
File
Format
Before
Field
Length
Format
After
Field
Length
Recompile
Function?
FLD1
3.0
FLD1
3.0
No
FLD2
FLD2
FLD1
3.0
FLD1
3.0
FLD2
FLD2
FLD1
3.0
FLD1
3.0
FLD2
2.0
FLD2
FLD1
3.0
FLD1
3.0
FLD2
FLD2
FLD3
FLD1
3.0
FLD1
3.0
FLD2
FLD2
FLD3
Yes
Yes
Yes
Yes
From the Edit Model Object List panel, enter option 91 for a specific model
object or press F20 to display the Display Model Usages panel for the model
object list you are editing.
Enter the Display Model Usages (YDSPMDLUSG) command at a command
line.
Enter U against an object where this option is available to display level 1
usages.
417
In each case, the Display Model Usages panel displays. This panel provides a
variety of controls and filters including recursion, scope, and positioning to aid
you in analyzing the effect of an actual or proposed change.
When you request usages for a model object, AllFusion 2E displays a list of
model objects that use it. Following are examples of model usages according to
model object type:
Physical (PHY) access path typeAll references to the access path by other
non-physical (built over or joined to) access paths
Other access path typesPhysical access path(s) to which the access path
refers
For more information on model usages by model object type, refer to the
YDSPMDLUSG section of the AllFusion 2E Command Reference Guide.
From the Display Model Usages panel you can request generation/compilation
of any of the listed items. You can also edit details such as access path attributes
for access paths or action diagrams for functions.
For example, to find out which access paths are dependent on the physical file
access path of a specific file in a database:
1.
From Edit File Details for the file, enter U against the PHY access path. The
Display Model Usages panel displays, listing:
418
2.
Find where the listed access paths are used. Enter 91 against each access
path.
3.
Find the functions that use an access path. Enter F against each access path.
The Display Model Usages panel displays.
For more information on the parameters for these commands, refer to the
AllFusion 2E Toolkit Reference Guide.
419
Multi-Programmer Environments
To be able to compile objects that another programmer or designer created, you
must be authorized to those objects. One way to achieve this is to use an
appropriate group profile.
For more information on setting up authority, refer to the Signing on with the
Correct User Profile section of the Creating and Managing Your Model chapter
of the Administrator Guide and the Locking Objects and the Open Access sections
of the Using Your Model chapter of the Administrator Guide.
YOLDLIBName of the library into which you want old physical files
archived.
YCPYLIBName of the library from which you want physical file data
copied during the generation process.
Note: Usually, these two model values are the same because you store data in a
library and then copy the data back from the same library.
To compile, retaining the data in a physical file:
1.
Before you compile the physical file, designate library names for model
values, YOLDLIB and YCPYLIB, using the YCHGMDLVAL command. Type
the following command strings, pressing Enter to execute each one:
a.
b.
2.
YCHGMDLVAL MDLVAL(YOLDLIB) +
VAL(old-library-name)
YCHGMDLVAL MDLVAL(YCPYLIB) +
VAL(copy-library-name)
When you execute the YSBMMDLCRT, specify the libraries for OLDLIB and
CPYLIB parameters. AllFusion 2E will use your library names as defaults.
The respective values are:
Note: When you execute the YSBMMDLCRT command from the Display
Services Menu, the default for both *OLDLIB and *CPYLIB is *NONE.
420
Chapter
Once your application is compiled, you can set it up for end users. This chapter
offers guidelines for implementation.
From the Toolkit Utilities Main Menu, enter the Design Aids option.
The Toolkit Design Aids menu displays.
3.
From the Toolkit Design Aids menu, enter the Menu Commands option.
The Toolkit Menu Commands menu appears.
4.
From the Toolkit Menu Commands menu, enter the YWRKMNU Work with
Menus option.
The Work with Menus panel displays.
51
5.
b. In the Library name field, verify that the library is the name of your
generation library (GENLIB).
c.
6.
To insert lines on your menu, from the Work with Menu Details panel enter
the Insert Mode option.
While in this mode, Toolkit inserts a blank line each time you press Enter.
7.
8.
9.
10. From the Work with Menu Options panel, change any defaults as needed.
You can invoke the command prompter by pressing F4 (Prompt), typing Z
(Details) against any option, and pressing Enter.
Notes:
In the Library field, entering *MDL enables the menu to list all functions
in the model. From here, you can select one. This automatically sets the
parameter list for the function.
In the Option to be executed field, if you enter a function, AllFusion 2E
automatically adds a return code parameter.
From Work with Menu Options, press F3 (Exit) twice. The Work with
Menu Details panel displays, followed by the Exit Work with Menu
panel.
b. From Exit Work with Menu, enter the option Exit and replace menu.
The Toolkit Menu Commands menu displays.
52
From the Toolkit Menu Commands menu, key in the option YGO Go to
Menu, and press F4 (Prompt).
The Go to Menu (YGO) panel displays.
2.
Note: To be able to execute Toolkit menu options, you must be authorized to the
program or command that the option calls.
For more information on setting up user profiles and passwords for Toolkit
menu access, refer to the User Profiles section of the User Access Aids chapter of
the AllFusion 2E Toolkit Concepts Guide.
53
Calling a Program
Calling a Program
You can execute a compiled program using:
Toolkit menus.
The AllFusion 2E Call a Program (Y2CALL) command. This command
determines the parameters required by an external function directly from
details contained in the model. You can provide values for all input-capable
fields and you can re-use these values for subsequent calls.
This command is useful especially when the parameter interface is complex
or if it has changed.
where:
ProgramIs the name of the source member for the function's program.
' ' (single quoted space)Is a required dummy parameter that
represents the standard return code parameter.
Note: Other parameters may be required. How these are passed depends on
how they are defined in the function.
For more information:
54
Calling a Program
To find the name of the program you want to execute, use one of the following
methods:
For the CALL and Y2CALL commands, go to the Display Services Menu and
use the option, Display all functions. Note the source member name of the
program you plan to execute.
From the Toolkit Work with Menu Options panel, enter the following values:
Option
Value
Option type
PGM
Option to be executed
Library
*MDL
A selection list of functions displays. Note the source member name (DDS
name) of the function you want to execute.
Note: All AllFusion 2E generated external functions have at least one parameter,
a return code. In the following logic, checking is being done to show the program
ended normally:
55
Execution Environments
Execution Environments
This section gives guidelines for preparing your application for execution.
56
Testing
Testing
As AllFusion 2E provides the structure for your application, your testing can
focus on any logic you have added to action diagrams and the relations between
functions. In developing your test plan, be sure to include:
What to Test
Critical details to test in your application:
Note: You can set up a menu, using Toolkit menu facilities, to test function
calls.
Do all the function keys work? If a function key is enabled but does not show
on the panel, or does not work and does show on the panel, go to the device
design and select the command to refresh the function keys from the action
diagram.
Does the F4=Prompt work for fields in which values should be checked?
If F4 does not work, the check values entry for the field may specify the
default *NONE. Set the value to *ALL values or an appropriate LST
condition.
57
Moving Objects
If F4 works but you do not get the right list of values, run the Convert
Condition Values (YCVTCNDVAL) command.
If F4 in a key field does not give you a Select Record (SELRCD), the
SELRCD probably did not exist when you generated the function. You
can create the SELRCD and regenerate the application that needs it.
Are before/after image errors occurring? The file definitions in the model
may differ from the compiled versions of the file. Regenerate the files and the
functions built over those files.
Are level checks occurring? Files may have been changed but the functions
were not regenerated and compiled successfully.
Is no data being returned for a Retrieve Object (RTVOBJ) function? You may
need to code a *MOVE ALL built-in function from a Database File 1 (DB1)
into a Parameter (PAR) context.
Is an error occurring although the program continues? The program is not
properly checking for and handling a return code.
Moving Objects
To carry out testing in a different library than development, move lists of new
versions of programs and their source into the test environment. There are two
approaches for moving objects with AllFusion 2E facilities.
Note: Before moving objects and source members, be sure to convert condition
values.
58
Moving Objects
AllFusion 2E CM Overview
CM, an automated change management system for the iSeries, includes features
that control access and modifications to AllFusion 2E model objects, source code,
and executable objects. CM automates and tracks the flow of source and objects
between development, test, and production libraries. You define the libraries,
including the rules by which you want CM to govern them. CM also implements
your iSeries and model object security.
CM's automatic Check Out of model objects that you intend to change protects
against conflict with the work of other developers.
The CM Check In feature supports moving objects. This feature includes the
following processes:
For more information on CM, refer to the AllFusion 2E Change Management User
Guide.
59
510
For more information on tailoring your help using additional UIM tags, refer to
IBM's Application System/400 Guide to Programming Displays.
Note: If you have Text Management (TM) help text that you have modified
outside of AllFusion 2E, you can convert it to UIM help text by using the Convert
Help Text to UIM Panel (YCVTTMUIM) command. You can then use the
resulting panel group with existing functions without the need to generate again.
For more information on the YCVTTMUIM command, refer to the AllFusion 2E
Command Reference Guide.
511
Note: The Edit Object Text panel initially shows functional text.
Two types of text are allowed for each AllFusion 2E object:
Functional text that the designer enters to describe the object's purpose; this
text may include restrictions and notes on design decisions.
Operational text that the developer enters to describe functions, panels,
fields, and conditions for end users.
Type N (narrative text) next to the item you want to document. The Edit
Narrative Text (Functional) panel displays.
Press F20 (operational text) to go to the Edit Narrative Text (Operational)
panel. AllFusion 2E incorporates the text you enter on this panel into the
help text for the generated function.
512
For fields, refer to the chapter titled Documenting Your Data Model in
the Defining a Data Model Guide.
For access paths, refer to the chapter titled Documenting Access Paths
in the Building Access Paths Guide.
Chapter
AllFusion 2E offers you more than one way to generate applications in different
national languages:
Design each panel in the target language (refer to the Changing a Model
Language section in this chapter).
61
When you specify externalized screen constants for a model, function, or field,
AllFusion 2E converts screen text literals into messages (MSGID DDS keywords).
There can be up to five messages for a literal, depending on the definitions: three
for column headings, one for right-hand text, and one for left-hand text.
AllFusion 2E puts the messages in the message file specified by model value
YPMTMSF at generation time. The generated application retrieves the messages
from the message file at execution time.
Note: The default message file is xxPMTMSG in the generation library
(GENLIB), where xx is the model object prefix defined by YCRTMDLLIB.
In order to facilitate maintenance of multi-language environments, AllFusion 2E
provides an exit program that automatically creates translated copies of prompt
messages for each supported national language when you copy an NL-enabled
device function.
For more information:
62
All application objects, such as programs, display files, and printer files,
should go in one library
Externalized, translated objects, such as messages, menus, and help text files,
should go in several language-specific libraries
Condition values
User messages
Help text
Panel literals
63
Restore the language libraries Y1SYVnnn and Y2SYVnnn from the product
tape, where nnn is the language-specific code.
2.
If the following libraries exist on your machine, add both language libraries
above them on the model job description library list.
3.
Verify that the data area YLNGnnnSYA in library Y2SY exists and contains
the name of the national language library Y2SYVnnn. If not, create the data
area as follows:
CRTDUPOBJ FROMLIB(YLNGENGSYA) +
FROMLIB(Y2SY) OBJTYPE(*DTAARA) +
TOLIB(*SAME) NEWOBJ(YLNGnnnSYA)
4.
5.
6.
7.
Execute YCVTCNDVAL.
Note: The YAPYTRNMDL command does not change panel literals defined by
Edit Database Relations or Edit Functions such as field names and panel titles.
However, you can externalize these to messages for translation.
For more information on the YAPYTRNMDL command, refer to the AllFusion 2E
Command Reference Guide.
64
For user messages, you can use iSeries message editing utilities.
For condition names, you can use the YWRKF command on Y2VLLSP,
created by the YCVTCNDVAL command. Translate only the user-defined
condition names. You can drop all the fields on the file field, using the
YWRKF command, except Condition text and External value. Translate the
contents of these two fields to get titles and condition names in the desired
language.
65
Overview
An NL-enabled function is a device function in which screen or report literals are
generated as external prompt messages, which can then be translated into other
national languages. Prompt messages are stored in a prompt message file named
by the YPMTMSF model value. The prompt message file for each national
language is stored in a separate library. Which national language messages are
retrieved at execution time depends on which library is highest on the library
list.
To implement the exit program, the following objects are supplied in Y2SYSRC:
Database files consisting of two physical files with a logical file over each.
When these objects are compiled and the program object for YPRCMSGR1R
exists in the library list, the exit program is called automatically whenever an
NL-enabled function is copied.
66
Language code
Description
Before using the exit program, add a record to this file for each national language
you support. For example:
Use the Toolkit Work with Database File Data (YWRKF) command to add
records.
Retrieve the Y2NLSPP file into your model using the Retrieve Physical Files
into Model (YRTVPFMDL) command and design a maintenance program for
the file in your model.
New Message
Message Id
Message Id
Function surrogate
Function surrogate
Model name
Model name
Note: You do not need the Message Mapping File if all national language
message files are located on the same computer. See the Using the Exit Program
section in this chapter for more information.
67
AAPRMM Subroutine
The AAPRMM subroutine writes a record to the Message Mapping File for each
prompt message when copying an NL-enabled function. You can use this to log
data for processing later; for example, if your NL prompt message files are
located on different computers.
BAADMS Subroutine
For each new prompt message created during copy of an NL-enabled function,
the BAADMS subroutine creates a translated prompt message in each NL
prompt message file. In other words, BAADMS iterates through the NL support
file and creates a duplicate of each new base-language message, already
translated into the corresponding national language, and stores it in the NL
prompt message file. As a result, the new function is immediately prepared for
use in multiple national language environments.
To create a new prompt message in the NL prompt message file, BAADMS
internally calls a copy program (YCPYMSGR3I) that:
1.
2.
Creates a new prompt message in the NL prompt message file that consists
of the message id allocated for the new base-language message and the
retrieved translated message.
68
Compile the physical files, the associated logical files, and the exit
program.
Comment out the call to the BAADMS subroutine so only the AAPRMM
subroutine is called. AAPRMM adds records to the Message Mapping
file (Y2MSMPP) but does not copy the prompt messages to the NL
prompt message files.
Add Y2MSMPP, Y2MSMPL0, and the new program object to the library
list on the target computer.
d. Run the new program on the target computer to copy the prompt
messages to the correct prompt message files.
Following are two suggestions for using the exit program with the
YCPYMDLOBJ command. Experiment to determine the best method for your
needs.
Place the Y2NLSPP and Y2MSMPP files and the associated logical files in
the library list for the source model.
Create a prompt message file name for the target model using the
YPMTMSF model value. This name can differ from that specified for the
source model. Store the NL prompt message files for the target model in
the same libraries as used for the source model.
For more information on the exit program and the two physical files, see
comments in the exit program source.
69
Creating Applications
You can create applications for both single byte character set (SBCS) and DBCS
from the same model or from separate models that you maintain in parallel. For
either approach, in creating a DBCS application, AllFusion 2E provides the
model value YIGCCNV for Ideographic Character (IGC) support in DDS.
If model value YIGCCNV is 1 and the display includes an input-capable, IGCtype field, AllFusion 2E:
610
Bi-directional Languages
Changing any data in lowercase English to upper case, using the following
Toolkit commands:
Note: If you use the YCPYMDLOBJ command to copy from the source to
another model, convert text fields needing the IGC attribute.
System defaults are set to create all source, device files, and database files
with ideographic character (IGC) enabling, assuming that you specified
database fields with DBCS data types.
The system value QIGC is set to 1, meaning the system expects to process
IGC data. You cannot change this value.
You can restore source and database files created with the IGCDTA
parameter on an SBCS machine. However, you cannot restore source or
database files containing ideographic data.
Bi-Directional Languages
Bi-directional languages are languages from the Middle East, such as Arabic, in
which text is read from right to left and numbers are read from left to right.
AllFusion 2E allows you to specify right-to-left cursor positioning for inputcapable text fields.
This is done by setting the Field Exit option to R for the field details on device
designs.
611
Chapter
What Is DRDA?
DRDA is IBM's SAA architecture that provides access to data distributed across
various systems and platforms. DRDA provides the user, via a high-level
programming language, access to relational databases on different systems and
platforms and the files that reside on the systems. DRDA is implemented using
SQL/400 and the SQL CONNECT statement. Used with embedded or interactive
SQL, the CONNECT statement defines the relational database (machine) to be
accessed.
Note: While DRDA is implemented using SQL statements, these statements can
also operate on DDS access paths, with the exception of Span access paths. To
use DRDA with a DDS file only requires that the function be set to generate SQL.
This permits most functions to use DDS access, while only those that require
DRDA functionality will be generated as SQL COBOL or SQL RPG.
DRDA support at the Remote Unit of Work (RUOW) level is available with
OS/400 Version 2 Release. This phase of IBM support allows for connecting an
application requester (the system executing the program) to an application server
(the system where data is being accessed).
As supported in AllFusion 2E, DRDA allows the user to specify that a file is
distributed and allows AllFusion 2E functions to access the distributed data.
DRDA has the constraints applied to the DRDA level of RUOW implemented
under OS/400 Version 2 Release 1.1. The application accesses data on a single
machine at a time. At present, support for DRDA is provided for DB2 and
OS/400 platforms.
RUOW restrictions and constraints should be reduced as IBM releases the two
higher levels of DRDA, Distributed Unit of Work (DUOW) (OS/400 Version 3
Release 1) and Distributed Request (DR).
71
What Is DRDA?
Within a single unit of work, users or applications can read and update one
system at a time using multiple SQL statements.
There is one Relational Database Management System (RDBMS) per unit of
work.
Within a single unit of work, users or applications can read and update data
on multiple systems. Each SQL statement can access one system.
Distributed Unit of Work (DUOW) permits the same capability and functionality
as RUOW, but allows the system connections to take place on an implicit basis.
In other words, the SQL CONNECT statement is not required. The program still
controls commit and rollback, and you must still make provisions for them at the
program level.
72
Distributed Request
For Distributed Request:
Using a Distributed Request (DR), you will be able to access multiple RDBMSs
at the same time. The systems update the files. A DR allows the user to perceive
all files across all systems as being part of one unified database.
73
Shipped Defaults
In keeping with AllFusion 2E's implementation independent design capabilities,
you do not have to modify the design of a function to use DRDA. To generate a
DRDA application from an existing design, you set generation options and
regenerate the functions, but the design remains the same.
AllFusion 2E ships the default values for the new model values, file options, and
function options. You explicitly set DRDA functionality. If you do not specify
distributed processing functionality for your model, DRDA functionality does
not affect it.
By setting certain flags, you can choose how you wish to generate and implement
your distributed applications. The shipped defaults for the options that drive
AllFusion 2E distributed function creation are:
Distributed flag: Distributed - N (No); flag for each AllFusion 2E file in the
model
Function option: Distributed File I/O control - M (MDLVAL); YDSTFIO
model value
2.
74
If you specified S (AllFusion 2E) control for the function, enter the file
locations in the Distributed File Configuration Table. This entry associates
the file with the name of the application server and, optionally, the collection
name in which it is located, allowing a different configuration at each
location on which the application is implemented.
First create RDB entries in the RDB Directory, using the OS/400 Work with
Relational Database Directory Entries (WRKRDBDIRE) command. The only
entry required for one machine is the local RDB name. This same RDB name
should be used as the model value for YGENRDB.
2.
3.
4.
75
*SYNONSynon Control
*USERUser Control
Distributed Flag
A new field, Distributed, on the Edit File Details panel, allows you to flag a
AllFusion 2E file as distributed. The field can have the following values:
76
NNo. Default.
YYes.
This flag affects the creation of the Distributed File Configuration Table. Entries
for access paths built over AllFusion 2E files are either added (Y) or removed (N)
from the table. To do this, execute the Convert Distributed Files to Configuration
(YCVTDSTFIL) command.
The entries in the Distributed File Configuration Table can then be modified
using the Work with Distributed Files (YWRKDSTFIL) command.
Use of these commands is described in detail later in this chapter.
Note: If you generate a program with DRDA-distributed code but compile it
using the model value YGENRDB set to *NONE, the program compiles.
However, at execution the program will be unable to perform the connects.
Appropriate error messages will be issued. You can override the YGENRDB
value for a specific program by using a compiler override to specify a different
value for the RDB keyword on the OS/400 commands, Create SQL RPG/400
Program (CRTSQLRPG) and Create SQL COBOL/400 Program (CRTSQLCBL).
For functions to be distributed with S (AllFusion 2E) for Distributed File I/O
Control, the default action diagram of those functions will show the availability
of the *Change RDB function and, depending on the function type, the *Previous
page function. For example:
Function Options
This section outlines how to use the Distributed I/O option.
77
78
79
With U (User) control, connects are still generated. The application user can
modify the RDB by placing values in the PGM.*Next RDB parameter, but there is
no F22 support, nor is there any rollup/rolldown support for functions with
subfiles. Users receive a message to let them know the connection failed.
Functions such as PRTFIL and EXCEXTFUN, which have no panels, can only be
specified as having User Distributed I/O control. Specifying S (AllFusion 2E)
control is accepted but ignored and U (User) control is used.
Referential Integrity
Due to an RUOW constraint, AllFusion 2E does not generate CONNECT
statements prior to referential integrity checks and therefore validates relations
on the RDB to which the user is currently connected. The OS/400 is unable to
switch connections to another RDB in the middle of an SQL FETCH routine. This
is fully consistent with the RUOW assumptions that each RUOW is constrained
to a single RDB. If a user attempts to switch to another RDB in the middle of a
SQL FETCH loop, DRDA closes all cursors and the application fails.
If the file is distributed and has an entry in the Distributed File Configuration
Table, no new entry is required.
If the file is distributed and there is no entry in the Distributed File
Configuration Table, an entry is created with the YGENRDB model value as
the default RDB name.
If the file exists in the Distributed File Configuration Table and is not
Distributed, all entries for that file are removed from the Distributed File
Configuration Table.
The YCVTDSTFIL command creates the physical file and logical files required
for the Distributed File Configuration Table if they do not already exist in the
named generation library. It uses the OS/400 Create Duplicate Object
(CRTDUPOBJ) command and copies the template objects from Y2SY.
710
The YCVTDSTFIL command can be run outside of the model. To access the
Display Convert Model Data Menu from the Display Services Menu, select the
option Convert condition values to database file. From the Display Convert
Model Data Menu, you can select the option to run the YCVTDSTFIL command.
Note: There are two approaches to removing distributed functionality.
711
To begin to use the shipped configuration table editor, generate and compile the
following:
Physical fileY2DSTFP
Update indexY2DSTFL0
Retrieval indexY2DSTFL1
*DSTFNM/*TYPE/*TABVIEWNMY2DSTFL2
Functions:
Physical fileY2CFGTP
Update indexY2CFGTL0
Retrieval indexY2CFGTL1
*TABVIEWNM/*SEQ/*RDBNMY2CFGTL2
Once you generate and compile these objects, run the YCVTCNDVAL (Convert
Condition Values) command, then the YCVTMDLMSG (Convert Model
Messages) command for your model.
You can then use the YWRKDSTFIL command to invoke the configuration table
editor. This command displays a list of the access paths enabled for distribution.
These entries are created with the YCVTDSTFIL command and displayed on the
Work With Distributed Files panel. On this panel, files are identified as tables or
views. A table in SQL is equivalent to a physical file, and a view is similar to a
logical file.
You can work with the tables and/or views from this panel. You may wish to
define the distributed nature of data at the table level (physical file) or to
differentiate the distribution of that at the view (logical file) level.
While you are not required to do so for DRDA support, you can reference the
access paths by any valid AllFusion 2E functions.
Note: You cannot remove any of the distributed file table entries, except by
running the YCVTDSTFIL command.
712
RDB Name
You can add or remove RDB locations for a table. Each RDB name must be
unique for a table, regardless of sequence number. You can only add a new RDB
for a table. Once you add an RDB, it is propagated to all the views based on the
table.
Once you remove an RDB, it is removed from all the views associated with that
table. This ensures referential integrity in the configuration table database.
Note: You can only add RDBs directly for views if the RDB exists as an entry for
the corresponding table. This prevents any view from being specified on an RDB
when its corresponding table is not specified.
Once you add an RDB entry, modifying it at the table level will not cause the
views to be updated, as you may have customized certain views.
Seq
The Sequence Number (Seq) on the Work with Configuration Table Entries panel
indicates the order in which to process the locations for that particular access
path.
The Work with Configuration Table Entries panel automatically resequences in
increments of ten. RDBs are initially ordered by the allocated sequence number,
then alphabetically within sequence number. This is the order in which the RDBs
are retrieved and cycled through in the generated applications which you specify
for Distributed I/O control.
Collection
The Collection is optional and serves as a reference. Its presence is compatible
with expected enhancements in OS/400 DRDA support.
713
714
Appendix
A1
Obj Type
Obj Att
Description
Cmp
Y2I#DSP
*FILE
PF
Cmp
Y2I$DSP
*FILE
PF
Cmp
Y2IUDSP
*FILE
PF
Cmp
Y2I1DSP
*FILE
PF
Cmp
Y2PGDSP
*FILE
PF
A2
Type
Obj Type
Obj Att
Description
Cmp
Y2IOPEN
*FILE
PF
COBOL
Cmp
Y2IDSPFIO
*FILE
PF
Cmp
Y2IPRTFIO
*FILE
PF
Cmp
Y2IMAJMIN
*FILE
PF
COBOL Major/Minor
codes (DEV)
Cmp
Y2PGDSPK
*FILE
PF
Obj Type
Obj Att
Description
Exc
Y2USRMSG
*MSGF
Exc
Y2CLMSC
*PGM
RPG
Exc
Y2CPMSC
*PGM
CLP
Exc
Y2EXMGC
*PGM
CLP
Exc
Y2EXMSC
*PGM
CLP
Exc
Y2EXMCC
*PGM
CLP
Exc
Y2RVMGC
*PGM
RPG
Retrieve a message
Exc
Y2RVMSC
*PGM
CLP
Exc
Y2SNMGC
*PGM
RPG
Send a message
Exc
Y2SNMSC
*PGM
CLP
Exc
Y2VLLSR
*PGM
RPG
Exc
Y2VLLWR
*PGM
RPG
Exc
Y2BGCMC
*PGM
CLP
Begin a commitment
control
Exc
Y2RCRSC
*PGM
CLP
Reclaim resources
Exc
Y2QLNMR
*PGM
RPG
Exc
Y2RTDAC
*PGM
CLP
Exc
Y2RTJBR
*PGM
RPG
Exc
Y2RVCNR
*PGM
RPG
Exc
Y2RVCNR
*PGM
RPG
Exc
Y2WSTOC
*PGM
CLP
Exc
Y2WSTOC#
*FILE
DSPF
Exc
Y2WSTOM
*MSGQ
Default messages
(Y2xnnnn)
A3
Type
Obj Type
Obj Att
Description
Exc
Y2PSSR
*PGM
RPG
Exc
YCMDEXEC
*PGM
CLP
Platform-independent
user command execution
Exc
YWRTLCI
*PGM
PLI
Exc
YWRTLCI2
*PGM
PLI
Exc
YWWDDRR
*PGM
RPG
Exc
YWWDCKI
*PGM
RPG
Exc
YWWDDR#
*FIL
DSPF
A4
Object
Type
Text
YDDSHPC@
*PGM
YDDSHPR
*PGM
YDMNGOC
*PGM
YDMNGOC@
*PGM
YDMNGOI
*PGM
YDMNNSR
*PGM
YDMNSOI
*PGM
YSRTOLC@
*PGM
YYCKAUC
*PGM
YYCVBNR@
*PGM
YYQLN2R
*PGM
Qualify a name
Object
Type
Text
YYRCMSC
*PGM
YYRTMGC
*PGM
Y1PGMSC
*PGM
Y1USRMSG
*MSGF
Y1
Y1USRPMT
*MSGF
YDDSHPR#
*FILE
YDMNGOI#
*FILE
YDNMWKR#
*FILE
Y1USRTXT
*FILE
Y1 LDO ENG P1
Execution messages
Help Text
Members:
YDMNGOI
YDMNNSR
YCVTBIN
*CMD
YDSPHLP
*CMD
YGO
*CMD
YGO Go to a menu
YMHPFLA
*DTAARA
YMHPLBA
*DTAARA
YYSLV1A
*DTAARA
A5
Appendix
Troubleshooting
This appendix covers some of the most common source generation errors.
2. Zoom into each *SFLSEL field, and make the Spaces before equal to 1.
Troubleshooting
B1
Scan through the generated source to find the comment line containing !!!.
2. From the Submit Model Generation & Creates panel, invoke the source
editor, STRSEU, by placing E in front of the program object in error.
3.
To find the incomplete action diagram statement, at the SEU positioner line,
enter the search string !!! and press Enter.
4. Return to the action diagram for the function to correct or remove the
incomplete statement.
You changed the access paths on a function and did not revisit the action
diagram to re-verify user statements.
You removed function fields from the device design and did not revisit the
action diagram to re-verify user statements.
You changed parameters on called functions and did not revisit the action
diagram containing the call to re-verify the parameters.
You copied sections of code between user points or between action diagrams
containing contexts that are not valid at the target.
Solution: Use the Find Error facility in the action diagram editor, or find the
errors by looking for ??? in the source listing. You can roll backward to identify
both the function that is called and the user point in which the function is
located.
When you revisit the parameters for a statement or a function, always prompt
the field and reselect the values. AllFusion 2E does not automatically perform the
validation on the statement shown if you do not make a change to the displayed
parameter values.
B2
Appendix
C1
Information Displayed
Examples
ACP
Attribute
Source Member
Source Details
Date/time of last
successful generation
Auxiliaries
Implementation object
name and description
APP
Three-character name
ARR
CND
Attribute
VAL, LST
FIL
Attribute
REF, CPT
FLD
Usage
Attribute
Implementation Name
DDS name
Function Type
CRTOBJ, EXCINTFUN
Access Path
Source Member
Source Details
Date/time of last
successful generation
Auxiliaries
Implementation object
Attribute
Implementation Name
Message identifier
FUN
MSG
C2
On model objects, model object lists, and model object list commands, refer
to the chapter titled Managing Model Objects in this guide.
On retrieving model object description fields, refer to the YRTVMDLOBJ
section of the AllFusion 2E Command Reference.
Field
Meaning
ACP
APP
ARR
CND
FIL
FLD
FUN
MSG
C3
Field
Meaning
FILFormat prefix
FLDDDS name
C4
Field
Meaning
PUBPublic
PVTPrivate
GENRegenerate
OBJObject only
C5
Field
Meaning
C6
GENGeneration required
EDTEdit required
Field
Meaning
DEVDevelopment
PRDProduction
ARCArchive
CHKTME)
C7
Field
Meaning
C8
Change
Change Type
Query physical
name
*PRIVATE
Query physical
text
*OBJONLY
Query program
name
*PRIVATE
Query program
text
*OBJONLY
Sequence number
*GEN
Field
*GEN
Condition
*GEN
*OBJONLY
Override
*PRIVATE
Source member
name
*PRIVATE
Source member
text
*OBJONLY
Duplicate
sequence
*GEN
Unique key
*GEN
Maintenance
*GEN
*OBJONLY
Format name
*PRIVATE
Assoc. retrieval
access path
*PRIVATE
Sequence number
*PUBLIC
*DELETE
C9
Panel
Change
Change Type
Key number
*PUBLIC
Ascending/desce
nding
*GEN
Alt. Coll.
Sequence
*PRIVATE
Display Access
Path Formats
Sequence
*GEN
DDS name
*PRIVATE
Type
*PRIVATE
Length
*PRIVATE
Add/remove
relations
*PUBLIC
Referenced access
path
*PRIVATE
Select record
function
*PRIVATE
Select/omit
details
*GEN
Sequence
*GEN
Text description
*OBJONLY
Add/remove
virtual fields
*PUBLIC
No Panel
Default access
path creation
program
C10
Override
*PUBLIC
*CREATE
Change
Change Type
Edit Application
Areas
D=Delete
*DELETE
Edit Application
Details
Create
Application area
*CREATE
Application area
code
*OBJONLY
Text
*OBJONLY
Override
Arrays - ARR
Panel
Change
Edit Array
*CREATE
Delete Array
Delete array
*DELETE
Number of
elements
*PRIVATE
Sequence
*PRIVATE
Unique
*PRIVATE
File/field
*PRIVATE
Access path/field
*PRIVATE
Sequence
*PRIVATE
Array name
*OBJONLY
*PRIVATE
*PRIVATE
Key number
*PRIVATE
Change Type
Override
C11
Conditions - CND
Panel
Change
Change Type
Display Field
Domain
Conditions
Delete condition
*DELETE
Edit Field
Condition Details
Create condition
*CREATE
Condition name
*OBJONLY
Relational
operator
*PRIVATE
Internal value
*PRIVATE
External value
*PRIVATE
Override
*CREATE
*PRIVATE
'-' Remove
condition
*PRIVATE
Change condition
name
*OBJONLY
Panel
Change
Change Type
Define Objects
New file/field
Files - FIL
Replace field
*PUBLIC
File name
*OBJONLY
Attribute
*OBJONLY
Document
sequence
*OBJONLY
C12
Override
Panel
Edit Database
Relations
Change
Change Type
Distributed
*PRIVATE
Assimilated
physical
*OBJONLY
*PRIVATE
Record exists
MSG
*PRIVATE
*OBJONLY
*OBJONLY
Override
Delete 'Defined
by' relation
*DELETE
Delete other
relations
*PUBLIC
Object
*PUBLIC
Relation name
*PUBLIC
Sequence
*PUBLIC
Referenced object
*PUBLIC
For text
*PRIVATE
Sharing
*PUBLIC
*PUBLIC
*PUBLIC
C13
Fields - FLD
Panel
Change
Change Type
Field name
*OBJONLY
Document
sequence
*OBJONLY
Type
*PUBLIC
Ref type
*NONE
Ref field
*PUBLIC
Field usage
*OBJONLY
Internal length
*PUBLIC
Internal decimals
*PUBLIC
Data type
*OBJONLY
Gen name
*PUBLIC
K'bd shift
*PRIVATE
Lowercase
*PRIVATE
*OBJONLY
Text
*OBJONLY
C14
*OBJONLY
Column headings
*OBJONLY
Default condition
*OBJONLY
Check condition
*OBJONLY
Mandatory fill
*OBJONLY
Valid system
name
*OBJONLY
Modulus 10/11
*OBJONLY
*OBJONLY
Screen O/P
*OBJONLY
Report
*OBJONLY
Override
Panel
Change
Change Type
Translate
condition values
*OBJONLY
External Length
*PUBLIC
External decimal
*PUBLIC
DDS name
*PUBLIC
Prompt function
*OBJONLY
*OBJONLY
NPT height
*OBJONLY
NPT width
*OBJONLY
Display
Unreferenced
Fields
Delete
unreferenced
fields
Field Mapping
Function
Parameters
Ctx
*OBJONLY
Field
*OBJONLY
Permit override
*OBJONLY
Panel
Change
Change Type
Display All
Functions
Change access
path
*PRIVATE
Edit Functions
Function
*OBJONLY
Function type
*OBJONLY
Access path
*PRIVATE
Function name
*OBJONLY
Source name
*GEN
Target HLL
*GEN
Text
*OBJONLY
Override
*DELETE
Functions FUN
Edit Function
Details
No panel
Default functions
for a new file
Override
*CREATE
C15
Panel
Change
Change Type
Override
*PRIVATE
Edit Screen
Constant
*PRIVATE
Lines before
Spaces before
Screen text
Length
Constant
*PRIVATE
Source context
*PRIVATE
Source field
*PRIVATE
Create Model
Version
From & to
functions
Edit Function
Options
Subfile select
*GEN
Header/Footer
*GEN
File/field
*PUBLIC
Access path/field
*PUBLIC
Passed as
*PRIVATE
Sequence
*PRIVATE
Edit Function
Parameters (see
note below)
*OBJONLY
Note: The changes to the Edit Function Parameters panel apply also to arrays
(ARR) and fields (FLD).
C16
Messages MSG
Panel
Change
Edit Message
Function
Add message
*CREATE
Change message
*PRIVATE
Delete message
*DELETE
Copy Message
New message
*CREATE
Edit Function
Parameters
File/field
*PUBLIC
Access path/field
*PUBLIC
Passed as
*PRIVATE
Sequence
*PRIVATE
Create Model
Versions
From & to
messages
Change Type
Override
*OBJONLY
C17
ACP
*PUBLIC
ARR
*PUBLIC
CND
FIL
FLD
*PUBLIC
FUN
MSG
*PUBLIC
*PUBLIC
*PRIVATE
ARR
CND
*PUBLIC
*PRIVATE2
*PRIVATE
*PRIVATE
*PUBLIC
*PRIVATE
*PRIVATE *PRIVATE
FIL
*PUBLIC
*PUBLIC
*PRIVATE2
*PRIVATE
*PRIVATE
*PUBLIC
*PUBLIC
*PRIVATE *PRIVATE
FLD
*PUBLIC
*PUBLIC
*PRIVATE
*PUBLIC
*PRIVATE
FUN
*PUBLIC
*PRIVATE2
*PRIVATE
*PRIVATE
*PRIVATE *PRIVATE
*PRIVATE
MSG
*PUBLIC
*PRIVATE *PRIVATE
*PUBLIC
*PRIVATE
*PRIVATE
*PRIVATE
Notes:
C18
1.
The using access path is flagged *PRIVATE only when you change a physical
access path.
2.
If the change affects the parameters of the using function, the using function
is flagged *PUBLIC instead of *PRIVATE.
Index
*ALLOBJ
All Objects list, 1-7
A
action diagram errors, 4-8
All Objects list, 1-12
basic information, 1-14
change information, 1-15, 1-61
check out information, 1-17
component change processing information, 1-16,
1-83
date/time information, 1-15
generation information, 1-16
model object lists, 1-7, 1-12
model objects, 1-7
versions, 1-102
viewing, 1-49
COBOL
conversion to RPG, 3-31
command line
Edit Model Object List panel, 1-37
merging entries and commands, 1-37
comments
suppressing in source code, 2-5
Index1
compilation
after changes to objects, 4-14
compile listing cleardown, 2-6
convert commands, 4-19
displaying compile listing, 4-11
finding errors, 4-10
job description for batch, 3-22
job list, 3-18
multi-programmer environment, 4-20
preparations, 3-1
recreating physical files, 4-20
separate gen queue, 3-17
compile listing, 4-11
compile pre-processor, 3-5
compiled program, 5-4
current version
defined, 1-102
example, 1-99, 1-103
on *ALLOBJ, 1-102
versions, 1-102
D
data area YLNGnnnSYA (NLS), 6-4
data objects, 3-17
DBCS applications
DBCS machine to create for SBCS, 6-11
on SBCS machine, 6-10
compiler overrides
access paths, 3-6
functions, 3-6
component
defined, 1-82
delete
authority, 1-12
model object, 1-52
model object list, 1-11
model object list entry, 1-52
versions, 1-108
Index2
default
source file names, 3-2
design objects
model objects, 1-5
Display Services Menu
finding compilation errors, 4-10
requesting generation, 4-2
Distributed File Configuration Table
creating entries, 7-11
distributed flag, 7-7
for tables, 7-13
for views, 7-14
documentation
generated applications, 5-12
DRDA, 7-11
commands, 7-11
control fields, 7-10
development environment, 7-5
distributed flag, 7-7
function options, 7-8
introduction, 7-1
model values, 7-6
referential integrity, 7-10
Remote Unit of Work (RUOW), 7-2
shipped defaults, 7-4
F4 prompt
testing, 5-7
G
generatable objects, 1-5
generation
after changes to objects, 4-14
batch diagram, 3-21
batch or interactive?, 2-4
COBOL to RPG, 3-31
converting condition values, 4-4
DRDA objects, 7-12
field reference file, 4-5
from Display Services Menu, 4-2
in another national language, 6-2
interactive diagram, 3-22
job description for batch, 3-22
job list, 3-18
levels, 2-1
library setup, 3-1
many-at-a-time, 2-4
message IDs (NLS), 2-4
multi-programmer environment, 4-20
preparations, 3-1
requesting, 4-1
separate compile queue, 3-17
suppressing Help text, 2-5
troubleshooting, B-1
UIM Help text, 5-10
using YBLDJOBLST, 4-4
verifying results, 4-8
Index3
job description
batch gen/compile, 3-22
library list, 3-15
Help text
operational narrative text, 5-12
regenerating in another language, 6-5
suppressing generation, 2-5
UIM, 5-10
YGENHLP, 2-5
HLL implementation, 3-26
converting a model, 3-28
HLPARA keyword (UIM), 5-10
HLPPNLGRP keyword (UIM), 5-10
I
impact analysis, 1-64
accessing, 1-77
batch processing, 1-78
change type, 1-62, C-8
component change processing, 1-62, 1-82
example, 1-71, 1-75
expansion, 1-65
filter, 1-69
interactive, 1-67
level, 1-67, 1-73
reason option, 1-70
references, 1-66, 1-75
scope, 1-68
simulating, 1-78
usages, 1-65, 1-82
implementation
features in RPG not in COBOL, 3-26
introduction, 2-3
implementation objects, 1-5
model objects
compared to, 1-5
interactive generation, 3-22
Index4
job list
build generic list of objects, 3-24
checking names, 3-25
commands, 1-53
deleting items in converting to RPG, 3-31
edit from Submit Model Generation & Creates, 324
Edit Model Object List panel, 1-53
for generation, 3-18
multiple lists, 3-25
one per developer, 3-23
reorganizing, 3-26
sample, 3-19
setup, 3-23
status, 3-18
job list for generation
stage flag, 3-18
job log
accessing an interactive log, 4-12
finding compilation errors, 4-11
output queue, 4-12
resetting severity level, 4-12
job queue
entries, 3-10
moving items among queues, 4-4
QBATCH2, 3-15
reviewing/changing entries, 3-14
routing entries, 3-11
separate gen/compile queues, 3-17
K
keyword
HLPARA (UIM), 5-10
HLPPNLGRP (UIM), 5-10
MSGID (NLS), 6-2
L
library
GENLIB contents, 3-1
job description list, 3-15
language-specific objects, 6-3
message file names, 3-5
names in recreating physical files, 4-20
source file name defaults, 3-2
SQLLIB, 3-1
Y2SYSRC, 3-7
list entry, 1-12
contents, 1-7
defined, 1-7
flag selection, 1-7
M
menu
calling a program, 5-4
creating for applications, 5-1
displaying (YGO), 5-3
setting up color, 5-3
merging entries with commands, 1-37
message file names, 3-5
model
changing HLLs, 3-28
message conversion, 4-7
reorganization, 2-5
model list for commands, 1-18, 1-94
model object cross references
accessing, 1-77
impact analysis, 1-64
usages and/or references, 1-64
model object description, C-2
commands, 1-13, 1-19
overview, 1-13
viewing, 1-49
model object lists
*ALLOBJ, 1-12
adding entries, 1-50
All Objects list, 1-7, 1-9, 1-12
authority, 1-12
copying entries, 1-54
creating, 1-25, 1-50
deleting entries, 1-52
Index5
model values
comments in source code (YGENCMT), 2-5
generate help text (YGENHLP), 2-5
YCMPCHG (Component Change Processing), 185
YGENCMT, 2-5
YGENHLP, 2-5
moving objects, 5-8
multi-programmer environment, 4-20
O
objects
language-specific (NLS), 6-3
moving, 5-8
required for compile/execute, A-1
UIM generation, 5-10
where used, 4-17
open access, 1-93
operational text, 5-12
names
HLL compatibility, 3-29
job list, 3-25
narrative text
functional, 5-12
operational, 5-12
NLS
biddirectional languages, 6-11
changing model language, 6-3
choosing implementation level, 6-2
DBCS applications, 6-10
external message IDs, 6-1
language-specific object library, 6-3
message ID generation, 2-4
multi-language environments, 6-6
regenerating Help text, 6-5
translating user-modified data, 6-5
YPMTGEN model value, 2-4
YPRCMSGR1R exit program, 6-6
performance considerations
batch or interactive generation?, 2-4
help text generation, 2-5
many-at-a-time generation, 2-4
message ID generation (NLS), 2-4
model reorganization, 2-5
source and object libraries, 2-4
source code comments generation, 2-5
PGM fields
*current RDB, 7-10
*local RDB, 7-10
*next RDB, 7-10
physical file
retaining data when recreating, 4-20
preparing to generate
changing message file names, 3-5
defining source file names, 3-2
program call exception monitoring, 3-26
program execution, 5-4
Q
QBATCH subsystem, 3-11
QBATCH2 job queue, 3-15
QCMD environment, 3-11
QIGC system value, 6-11
Index6
RDB, 7-3
session list
activating, 1-9
clearing, 1-9
defined, 1-9
model profile, 1-94
naming, 1-9
using, 1-10
RDBMS, 7-2
redirection
cautions, 1-105
defined, 1-103
example, 1-104
uses of, 1-106
references
defined, 1-66
example, 1-75
model object type, 1-66
referential integrity
DRDA, 7-10
SQL
DRDA, 7-1, 7-5
T
Text Management help text
TM help text, 5-11
TM help text
converting to UIM help text, 5-11
translating
generated model, 6-2
troubleshooting, B-1
Index7
UIM
generation objects, 5-10
User Interface Mananger (UIM), 5-10
usages, 4-17
defined, 1-65
example, 1-71
level, 1-73, 1-89
model object type, 1-65
redirection, 1-106
using objects, 1-82
User Interface Manager (UIM), 5-10
generation objects, 5-10
help text, 5-10
panel groups, 5-10
tags, 5-10
user source
considerations, 3-28
user-defined actions
command language programs, 1-55, 1-58
defining, 1-57
example, 1-57, 1-59
model object list entries, 1-55
model profile, 1-94
subfile select options, 1-33, 1-55, 1-57
substitution variables, 1-56
W
where used, 4-17, 4-18
impact analysis, 4-17
work environment
gens and compiles to separate queues, 3-17
job queue entries, 3-10
management, 3-9
routing entries, 3-11
verifying your setup, 3-14
Y
Y2CALL (Call a Program), 1-31, 1-106, 1-107, 1-108, 54
Y2MGFLA model value, 3-4
Y2SYSRC library, 3-7
YALCPHYR1C program, 3-7
YAPYTRNMDL command, 6-3
YBLDJOBLST command, 3-24
YBRTPRC (pre-compiler program), 3-11
versions
benefits of, 1-97
cautions, 1-105
commands, 1-21
comparing, 1-108
creating, 1-54, 1-101
current, 1-97, 1-102
deleting, 1-108
example, 1-98, 1-103
group, 1-97, 1-103
non-current, 1-106
on *ALLOBJ, 1-102
overview, 1-97
redirection, 1-103, 1-106
testing, 1-107
using, 1-107
viewing, 1-100
working with, 1-99
Index8
YEDTMDLLST
Edit Model Object List panel, 1-27
YFRFPFX model value, 4-5
YFRFTXT model value, 4-5
YFRFVNM model value, 4-5
YGENCMT model value, 2-5
YGENHLP model value, 2-5
YGENLIB model value, 3-1
YIGCCNV model value, 6-10
YLNGnnnSYA data area, 6-4
YMOVY1DTA command, 3-17
YMSGVNM model value, 3-5
YOLDLIB model value, 4-20
YPMTGEN model value, 2-4, 6-2
YPMTMSF model value, 6-2
YRGZMDL command, 2-5, 3-26
YRPGHDR model value, 3-28
YSBMMDLCRT (Submit Model Create Requests)
performance considerations, 2-4
source and object libraries, 2-4
YSBMMDLCRT command
separate gen/compile queues, 3-17
YSQLLIB model value, 3-1
YWRKDSTFIL command (DRDA), 7-12
Index9