You are on page 1of 124

COOL:GEN DEVELOPER’S TIPS AND TRICKS

Scott D. Lanouette & Allan James G. Rubio

“The palest ink is better than the best memory”

GETTING TO KNOW GEN................................................................................................................................. 7 NUMBER 1 TIP…SAVE OFTEN! ................................................................................................................................9 COOL:GEN MODEL DIRECTORY STRUCTURE.......................................................................................................10 IMPORTANT MODEL FILES......................................................................................................................................11 DATA FILES 11 TRANSACTION FILES 12 PDX FILES 13 DNX FILES 13 MODEL INFORMATION.............................................................................................................................................13 MODEL REPORTS.....................................................................................................................................................14 COOL:GEN MODEL PATHS......................................................................................................................................15 WINDOW DESIGN TIPS.................................................................................................................................... 17 FIELD DESIGN LIST..................................................................................................................................................19 SPECIAL ACTIONS FOR MENU ITEMS.....................................................................................................................20 GETTING RID OF HELP AND WINDOW MENU ITEMS ...........................................................................................21 RESIZING LISTBOX COLUMNS.................................................................................................................................21 THE SELECTION CHARACTER.................................................................................................................................22 WINDOW MAPPING..................................................................................................................................................24 SPECIFYING COMMANDS.........................................................................................................................................25 IMPORTING BITMAPS TO THE MODEL DIRECTORY...............................................................................................27 DIFFERENT BITMAP STATES....................................................................................................................................28 VIDEO PROPERTIES..................................................................................................................................................29 POSITIONING WINDOW OBJECTS............................................................................................................................29 TABBING SEQUENCE................................................................................................................................................31 DESIGNING WITH GRID ON OR OFF........................................................................................................................31 RABBIT TEST…OOPS, RAPID TEST........................................................................................................................32 ACTION DIAGRAMMING TIPS...................................................................................................................... 35 OPEN WINDOW LIST PUSH BUTTON.......................................................................................................................37 ACTION BLOCK SYNTHESIS.....................................................................................................................................37 TIREVENT..............................................................................................................................................................38 ADDING OBJECTS COMMON TO A BUSINESS SYSTEM...........................................................................................40 CAN I USE THIS FUNCTION?....................................................................................................................................41 DETERMINE WHERE AN ACTION BLOCK IS USED..................................................................................................41 VIEW MATCHING: DATA PASSING..........................................................................................................................42 VIEW NEIGHBORS....................................................................................................................................................44 READ EACH PROPERTIES.....................................................................................................................................44 DOUBLE-CLICK OF BRACKETS IN AN ACTION DIAGRAM......................................................................................45 KEYPRESS EVENT.....................................................................................................................................................45 CHANGED EVENT.....................................................................................................................................................46 CUSTOMIZING THE POP-UP MENU(S).....................................................................................................................47 SINGLE ADD VS. MULTIPLE ADD............................................................................................................................48 CONVERTING NUMBER TO TEXT AND TEXT TO NUMBER.....................................................................................48

.................................................ICO 56 BUILD TOOL PARAMETERS: THE WIN32ITM............................................................................................................................................................................................ RESEND VS...........................................................................................................................................................................................................................................................................74 GENERATE NEW MODEL.......................................................................101 FINDING SQL IN C AND COBOL PROGRAMS...71 RESEND LAST UPDATE.................................................61 HOW TO CHECK WHAT’S REGISTERED................. 67 NON-SEAMLESS CHECKOUT....................................................................................................REG FILE......................64 IMPORTANT FILES TO DEPLOY AFTER GENERATION...............81 ELECTRONIC BOOKS / INFORMATION BASE......................................................................................................................................................................................................................................................................................................................................................................48 DIALOG FLOW DESIGN.70 UPDATE WITH OR WITHOUT CHECKIN....1 WEB CLIENT APPLICATIONS ON A WINDOWS NT WEB SERVER...........................................................................................................................................................................................73 COMPARING UPDATE VS............................................ 79 FUNCTION KEY F1...........................................................55 DEFAULTW.............................................................................................76 PROTECTION CONFLICT TABLE.........................................50 OTHER TIPS............................................. VERIFY................................................................................................................................................................................................................................................................................................................................................................TGT FILE 56 DIALOG FLOW TRANCODE AND CLEAR SCREEN TRANCODE 57 EXPAND ALL VIEWS 59 REGISTRATION OF COOL:GEN FUNCTIONS...................................................................................................61 WHAT TO DO WHEN USING OLE/OCX CONTROLS...........91 DEPLOYMENT OF COOL:GEN 5..........64 INSIDE THE LOAD MODULE...............69 CHECKOUT SUBSET....... WINDOWS 95 & WINDOWS 98....................................................................................................................... 85 DEPLOYMENT OF COOL:GEN 4..............................................................77 WHERE TO GET HELP................................................................................................................................................................................................................................65 SUBSETTING TOPICS.............................................................72 VERIFY LAST UPDATE..................................................75 CONCURRENCY MATRIX.................................................................................................................................................................................................108 FINDING SQL IN A C PROGRAM 108 FINDING SQL IN COBOL 109 ...............................................................................................................................................................................................................................................................................82 TECHNICAL LIBRARY...............................................................1A APPLICATIONS ON WINDOWS NT AND WINDOWS 95...............REG FILE..............................63 ASSOCIATING AN EAB STUB WITH THE DESIRED EXTERNAL CODE....... 53 DEPLOYMENT ARCHITECTURE...........................................................EVENT LOCATOR...............................................................................................................87 DEPLOYMENT OF COOL:GEN 5 CLIENT APPLICATIONS ON WINDOWS NT AND WINDOWS 95...............................................................................................51 CLIENT DEPLOYMENT TOPICS.......................................................62 TIMESTAMP OF LOAD MODULE EXECUTABLES........61 INSIDE THE WROAF.....1 CLIENT APPLICATIONS ON WINDOWS NT...............................................................................95 DEPLOYMENT OF COOL:GEN 5.........83 APPENDIX...........................................................................

..........................................................................................122 ..................................................116 STEPS IN SOLVING COOL:GEN ERRORS................REGTE WITHIN A COMMAND PROMPT..............................REGISTERING THE TE AS A SERVICE ...............................112 DATABASE STATUS ERROR CODES....................................................................................................................................................114 RESOLVING DB2 –805 ERRORS .......................................

.

Getting to Know Gen 1 7 | Cool:Gen Developer’s Tips and Tricks .

8 | Cool:Gen Developer’s Tips and Tricks .

You never know what might happen. CTRL + V for Victory 9 | Cool:Gen Developer’s Tips and Tricks . As a general guideline. It is. not even advisable to have days worth of work. click on the disk icon anywhere within the toolset.Number 1 Tip…Save Often! Nothing is more frustrating than losing hours or even days worth of work. or hit the (Ctrl + V) keys on the keyboard. updates to the model must be made at least once a day. remember to save often! To save your model. In or to avoid losing hours of valuable work time. however.

1 are created when the respective proxy types are selected for generation. OLE.Cool:Gen Model Directory Structure Figure 1.ief extension. Figure 1. C. The COM and JAVA folders shown in Figure 1. if you are generating and compiling in C++ all your source code and executables will be placed in the C folder of your model’s directory.2. These folders are the location of your generated files.1 In Figure 1.ief extensions.1 below shows the basic Cool:Gen model directory structure. the Local name that you specify here will be the same name of the main model directory with an . Every time you create a model or checkout a subset. The name of your model can be no more than eight characters in length. COBOL. For example. Figure 1. 2 10 | Cool:Gen Developer’s Tips and Tricks . the basic folders BITMAP. Cool:Gen can only read model names that have . and DDL are automatically created for you.

associations. and memory management tables. Remember that when you get unhappy faces. 11 | Cool:Gen Developer’s Tips and Tricks . (please see bitmaps in Unit 2 Window Design Tips) Figure 2 Important Model files The following files mentioned below are files found in the models. IEF0000.ief directory and it would still be a valid working model. and software version.DAT. The significance of Data Files There are four data files that make-up the entire Cool:Gen model.DAT. GLOBAL DATA FILE Contains key information about the model: global variables such as long model name. some of the files are described below.The bitmap folder is where Cool:Gen points to when locating your bitmap images during window design. MAIN DATA FILE Contains model objects. you just need to check your bitmap folder.ief root directory. subset name. These files can transferred to another workstation or another . Figure 2 below shows the image and the message that are displayed when the images that you used during window design are not in the bitmap folder. IEF1200. properties.

The size of this file may influence when an update of the encyclopedia should be performed. ACTIVITY FILE Contains all the changes to the model such as add.trn contains all the objects and information necessary to create a subset or a model on your workstation. The error occurs when the IEF1200. delete. or modify object This file is the basis for the update. The accompanying message is: "Memory error: No more record structures available. Refer to the concurrence matrix for encyclopedia operations that can and cannot run concurrently. select Options.IEF0700. Always check the model retrieval status report. Caution: The checkout.trn file and upload it to the encyclopedia at least every other day.trn The checkout. source: Cool:Gen Electronic Books Transaction Files checkout. and other maintenance. the update. Periodically.DAT.trn can be checked out anytime and may seem to be an active model.'' You can also improve performance by lessening contention. When uploading changes. Do this by checking in changes on a regular.trn file which is used to update the model on the encyclopedia. This file will be sent to the encyclopedia to update the model. To play it safe. then Encyclopedia Communications). check-outs.DAT file exceeds its maximum record count. always send an update at the end of the day or whenever you have done a substantial amount of work.trn file is what will be sent to the encyclopedia.trn The update. If your model is large or transactions have been frequent. update often. It is usually wise to create this . the user has the option of updating with checkin or updating without checkin. daily basis. 12 | Cool:Gen Developer’s Tips and Tricks . How to Improve Performance To improve the performance of automatic check-in and check-out. IEF2511. select the file transfer option (found on the workstation toolset. (please see model reports in this unit) update. You may wish to designate times for check-ins. DESCRIPTION FILE Contains all textual descriptions of the objects contained in the IEF1200. check in your model to reduce the size of files and reduce fragmentation in storage.DAT. Failure to check in periodically can eventually result in a fatal error when you try to check in a model.DAT file.trn file contains all changes that have been made to the model since last checkout. The size of this file varies depending on how many objects were specified in your subset definition and included during expansion. Regardless of which option is chosen.

The format can be read only when you go into the reports menu item in the Cool:Gen toolset. It indicates the status of your model whether it’s checked-in. the developer can view important information about the subset located on the workstation. It tells you the location of your model and the local name. Figure 3 13 | Cool:Gen Developer’s Tips and Tricks . no further modification should be done until a verify has been made. It brings in a report of what objects have been added. checked-out. These files are Important in determining what type of downgrades occurred during checkout. These are used by the model for displaying the model retrieval status reports.PDX DNX Files DNX are your Duplicate Name report files.trn contains information about the status of the model in the encyclopedia.verify. Unless you do a HUGE amount of work. PDX Files PDX are your Protection Downgrade report files. (please see model reports in this unit) It has the following format: mmddhhmm. These files are used by the model to display the status of a successful checkin. Once an update has been performed. or even whether it had failed an update.DNX Model Information By selecting Model … Info from the main Cool:Gen window. the file will set the workstation model to read-only. this number will not be exceeded. If an update with checkin was selected from the model/encyclopedia option the workstation. This will cause the workstation model to become out of sync with the encyclopedia on the host. The format can be read only when you go into the reports menu item in the Cool:Gen toolset. It also indicates the maximum number of objects you can create in this subset. (please see model reports in unit) It has the following format: mmddhhmm.trn The verify.

Model Reports Each time a subset is checked out or an update of the encyclopedia is performed. It will show any conflicts or errors that may have occurred during the check-out or update process.trn that is 30 days old and not the current one you just checked out. To open the Reports window. It is very important to review the reports. click Model … Reports on the main Cool:Gen window. If a checkin was executed. you will see a Model Retrieval Status report. Cool:Gen creates a report for you based on the date and time the action was done. This is important for non-seamless checkout because you could be using a checkout. you will see an Encyclopedia Update Status report. When you do a checkout. 14 | Cool:Gen Developer’s Tips and Tricks . On the other hand if a checkout was executed. The list of reports on the workstation can then be accessed by selecting File … Open from the Reports window. a report is created. make sure that the timestamp of the report matches when you did the checkout. Figure 4 Whenever you do a checkin.

record. Output: Specifies a path for files you want to save outside of Cool:Gen. and work. Data: Specifies where the Cool:Gen executable is stored along with associated read-only files. output. It is launched by click on Options … Paths on the main Cool:Gen window. Work: Specifies the subdirectory in which Cool:Gen stores and accesses temporary work files.Cool:Gen Model Paths The Paths pop-up window lets you define subdirectories to read from or write to when storing files regarding data. models. 15 | Cool:Gen Developer’s Tips and Tricks . Models: Specifies a path for the subdirectory in which Cool:Gen stores and accesses all files that define or relate to specific models.

16 | Cool:Gen Developer’s Tips and Tricks .

Window Design Tips 2 17 | Cool:Gen Developer’s Tips and Tricks .

18 | Cool:Gen Developer’s Tips and Tricks .

but not placed anywhere on it. Attributes which are defined (‘d’) can be used to manipulate disable logic within a window or dialog box. Take the situation illustrated below in Figure 6. The field may have been placed on a window and later removed. The attribute is hidden.Field Design List The field design list is an excellent way to see the ‘state’ of all of the export views in the procedure. but the mapping still exists. then it’s properties have not been defined for use by the current window or dialog box.1. The developer can define an attribute by clicking the PROPerties push button or by double clicking on the attribute. but the field has not been placed. If the attribute is not coupled with one of the three characters above.1 19 | Cool:Gen Developer’s Tips and Tricks . Figure 6. The field ‘out_return_needed ief supplied flag’ is defined to the window. The properties have been defined for the attribute. Figure 5 The character to the left of the attribute tells the developer how (or if) the field is being utilized by the current window/dialog box. ‘*’ ‘d’ ‘h’ The attribute has already been placed on the window.

Figure 6 . As Figure 7 shows. Special Actions for Menu Items When defining an item that is part of a menu structure. 2 This eliminates the need to place fields outside the barriers of the window (widen a window. that flag is available for selection by the developer. place a field on the edge. Figure 7 The special actions ‘Cut’.When setting up the disable logic for the OK button on the dialog box ‘POC Detail’. ‘Copy’. Cool:Gen takes advantage of the clipboard within the operating system to perform this function. and ‘Paste’ can be used in association with menu items only. 20 | Cool:Gen Developer’s Tips and Tricks . the developer has some additional options that are not available when defining other controls. and return the widow to its original size) in order to provide an alternate means of disabling a field or control.

Getting Rid of Help and Window Menu Items

Performing this task is as easy as clicking a checkbox.

The trouble here is knowing where to find it. Click on ‘Menu Design’ within the Window Design Tool, and highlight the top line – ‘Main Menu Bar’. Clicking on the PROPerties button will open the Menu Properties Box. It contains the checkbox which needs to be ‘turned off’ in order to prevent the ‘Window’ and ‘Help’ options from being generated.

Figure 8
As illustrated above, the user can also change the Foreground Color, Background Color, and Font Size of the menu within the Menu Properties box.

Resizing Listbox Columns

Once a list box is placed on a window, the developer can adjust the width of the columns.

This is done by placing the cursor over the column divider line until a double arrow appears. Figure 9 shows a double-headed arrow in between the columns “status” and “date-entered”. From there, it is a simple click and drag procedure.

21 | Cool:Gen Developer’s Tips and Tricks

Figure 9
There are a couple of simple, yet very important, things to remember when resizing list box columns: Even though the edit pattern characters are not running into the next column, this does not mean that user entered data will automatically fit in the space provided. Font size and the specific width of each character in the font must be considered before determining the proper column size. Resizing list box columns will affect how the data lines up with its associated column header prompt. The headers must be moved independently – their position does not change when a column width is adjusted.

The Selection Character

In order to associate a export group view with the list box control, the group view must contain a
selection character. When setting up the properties of a list box, the developer can specify which field will act as the selection character by highlighting the desired field and clicking the PROPerties button as shown in Figure 10. This action will open the ‘List Box Field Properties Box’ and the developer must then check the ‘selection indicator’ field at the bottom of the dialog box.

22 | Cool:Gen Developer’s Tips and Tricks

Figure 10
After the checkbox is ‘checked’ and the window is closed, the field designated as the selection character will have a ‘d’ next to it. This means that the field has been defined, but will not be placed on the window. For more information, see FIELD DESIGN VIEW LIST earlier in this section of the guide. Each list box must have a selection character if it is to work properly. The selection character is what Cool:Gen uses to determine if a row within a list box has been selected. The developer can see how this is done within the TRACE facility (discussed later on in this guide). If a row in a list box is highlighted, the selection character for that row will contain an ‘*’. By cycling through the members of a group view within TRACE, the developer can see which row has been selected. Note: If a list box supports ‘Extended Selection’, selection character fields might at times contain a ‘+’ or a ‘-‘. By allowing extended selection, the developer gives the user the ability to select multiple rows by holding down the shift or control keys while clicking on items within the list box. The ‘+’ is used to indicate the last row selected in the list box when extended selection is utilized. Likewise, the ‘-‘ is used to show the last field being ‘unselected’ using this method.

Selection Character Values
BLANK
untouched row in the view is not highlighted at all highlighted, row selected currently highlighted row clicked (unhighlighted) unhighlighted row clicked unhighlighted top row in viewable list Item is the highlighted top row in viewable list Row is hidden via FILTER or listbox view Row is added and highlighted (applies to enterable listboxes and enterable dropdowns

* + < >
H A

23 | Cool:Gen Developer’s Tips and Tricks

when you come back into the procedure.Window Mapping Mapping is the process of assigning Import Views to Export Views. if you want to place an attribute on a window. However. For example. Figure 11 The view mapping dialog box. you need to map exports to imports as a holding area when travelling between the window and its associated procedure. If you do not map a flag. CAUTION: ADDING AN ATTRIBUTE VIEW AFTER IT HAS BEEN MAPPED WILL NOT AUTOMOATICALLY MAP IT. you place export attributes (of course). the flag will be blank. the developer can see which fields are mapped by clicking on Design…Mapping within the Window Design tool. BE SURE TO CHECK YOUR MAPPING EVERYTIME YOU ADD A VIEW. This passing of views happens once the flow through a procedure is complete and control is passed to the Window Manager. Mary Russell Computer Associates Principal Consultant 24 | Cool:Gen Developer’s Tips and Tricks . for example. The reason you do window mapping is to retain attribute values when cycling between the window/dialog boxes and their associated procedure. Also. The biggest problem with not mapping is losing a variable's value. For a given Window or Dialog box. then flow to the window. TWO REASONS to map: (1) retain "working" attribute values and (2) communicate with the window. it is always a good idea to double check the mapping once the design of a window or dialog box is complete. illustrates which export views will be moved to which import views after each execution of the procedure. SO. then those exports get passed back into the PROCEDURE AS IMPORTS TO CAPTURE WHAT THE USER ENTERS OR CHANGES ON THE WINDOW. Improper mapping will result in data being lost and/or placed in the wrong fields at runtime. The developer does not have to go into the view mapping dialog box if both an import and export view were assigned to a window field at the time it was placed. Figure 11.

2 25 | Cool:Gen Developer’s Tips and Tricks . or to request action when passed to a separate procedure. IF. or WHILE. Figure 12. This is done by clicking on the ‘Commands’ button within the Event Processing window as shown in Figure 12. or WHILE. its purpose is to request an action to be taken by the current procedure. the special attribute ‘command’ is set. the developer may interrogate the special attribute ‘command’ within an action diagram by using a such statements as CASE.1 Associating a command with an event: A command can be associated with an event action so that when the event is triggered. IF. Figure 12. it may be interrogated within an action diagram by using such statements as CASE.Specifying Commands Setting a command within Cool:Gen serves multiple functions and can be done in a variety of places with a given model. Command is (command value): When a command is set in this fashion. When a command is set in this fashion. The manner in which a command is set determines what affect it will have when the application is executed. When a command is set in this fashion. It is added as its own statement within an action diagram.2.

it also allows the developer to utilize the MARK and UNMARK GUI statements. The specified value will not show up when attempting to interrogate the command attribute within an action diagram.4 26 | Cool:Gen Developer’s Tips and Tricks .4.Associating a command with a push button or menu item: When a command is associated with a push button or menu item. Figure 12. the special attribute command is not set. In the case of a menu item. Figure 12.3 The main reason to set a command in this fashion is to allow for the enabling and disabling of the item within an action diagram using the GUI statements ENABLE and DISABLE. and therefore DOES NOT have the same effect as the command set in the event action. Figure 12. The command is set by clicking on the ‘Cmds’ button in the properties window for the push button or menu item.

The bitmap you specified will be listed in the Installed Bitmap box and is now available for placement on a window.2 It is possible to import multiple bitmaps at once. and all of the bitmaps in the specified directory will be available for selection. This is done by inserting ‘path name/*. no bitmaps have been imported. press the import button. When the user places the cursor over the push button within 27 | Cool:Gen Developer’s Tips and Tricks . the button text entered in the push button properties box still plays a role at runtime. if the developer wishes to utilize a bitmap. browse to the location where the bitmap is located (or type the path directly into Import/Export File box). Figure 13.bmp’ as shown above. This is done through the bitmap management window.1 In the example above. It can be access through both the push button properties window as well as the picture properties window.PPM (PORTABLE PICTURE MAP) file will be created in the bitmap subdirectory underneath the {model name}. Figure 13. it must first be imported before it can be placed within the application.Importing Bitmaps to the Model Directory Utilizing Bitmaps on widows will help spice up the appearance of any application. Figure 13. Click ‘Import’. In either case.1. a . To import a bitmap. By replacing the standard push button text with a bitmap. Once the location is entered into the Import/Export file box.PPM file which allows the developer to select it for placement on a window. the developer can help reinforce the action associated with that particular control. When a bitmap is imported. It is the existence of this .ief directory. Note: When a bitmap is used for the face of a push button.

The example below. the second fourth is to represent the disabled state. Different Bitmap States The Cool:Gen toolset will accommodate 4 bitmap ‘states’: enabled. and the focused state. is only utilizing two states. Figure 14.1 The Number of Pictures specified is interpreted as follows: 1: 2: 3: The entire image is to represent the enabled state. the third fourth is to represent the pushed state. pushed. the middle third is to represent the disabled state. The top half of the bitmap is to represent the enabled state and the bottom half is to represent the disabled state. the pushed state. The operating system default for focused is to be used for the focused state. The top third of the bitmap is to represent the enabled state. Operating system defaults are to be used for the pushed state and the focused state. and the bottom fourth is to represent the focused state. and the bottom third is to represent the pushed state. the push button text will pop up in the form of context sensitive help. disabled. and focused.the application. Figure 14. This helps make the application more user friendly. 28 | Cool:Gen Developer’s Tips and Tricks .1. The number of states utilized at runtime is determined by the value of the Number of Pictures filled on the Push Button Properties dialog box. 4: The top fourth of the bitmap is to represent the enabled state. Operating system defaults are to be used for the disabled state.

if a single entry field is selected.2 Video Properties The video properties option allow the developer to control the appearance of all fields and control on a window or dialog box. Menu properties must be set separately) However. if the window selected and the developer changes the font. only that field will display in the newly chosen font. (The exception is the menu structure. Figure 15 As illustrated above in Figure 15. the fonts of all prompts. The video properties box is accessed via the detail menu within the window design tool. and font settings can be controlled through the video properties box. Figure 14. and push buttons will be changed. Figure 14. fields. make sure the bitmap file contains the same number of versions of the picture to be placed on the button. For example. background color.1. foreground color.NOTE: When specifying multiple states. Positioning Window Objects 29 | Cool:Gen Developer’s Tips and Tricks . The following bitmap was used for the OK button in the previous example. The object selected at the time the menu option is chosen will determine how the changes cascade down.

30 | Cool:Gen Developer’s Tips and Tricks . Drag (don’t click yet!) the item to the desired location and then click to release the cursor’s hold on it. and position them relative to the window itself. they involve moving items relative to each other. position them relative to each other. Cool:Gen uses the first item as the ‘anchor’. and are available when single or multiple items are selected. Field Positioning dialog box: By selecting ‘Position’ from the Edit menu item within the Window Design tool. Figure 16 The two options under ‘Move’ will place the selected items relative to the entire window. and release Edit…Move: Highlight the item to be moved and click edit…move on the Window Design menu. This will open the Field Positioning dialog box. Figure 16. Objects can be moved in three ways: Click and Drag: Right click and hold the item to be moved. When multiple items are selected. The ‘Default Size’ and ‘Arrange prompts against the fields’ options are also available independent of the number of selected items. the developer can line up objects on a window. drag it to its desired location. A cross hair will appear over the selected item. and subsequently selected items are placed relative to the anchored item. All other options are available only when multiple items are selected.Proper positioning of window objects is essential when attempting to create a uniform look throughout a given application.

but it often must be altered once fields are moved around during the window design process.Tabbing Sequence By setting the sequence on a window or dialog box. Figure 17 In order to change the default sequencing. To display the Grid Definition. The default sequence will flow left to right. Figure 17. highlight the field you wish to move and click ‘Move’. the developer can specify the order in which the cursor moves from control to control when the tab key is pressed. top to bottom based on where the individual controls were originally placed. click on the field or control you want the highlighted field to be after in the new sequence order. These settings are not controlled by Cool:Gen – they are set at the operating system level. The Horizontal and Vertical coordinate boxes allow the developer to set the distance between grid lines. The selected field will then appear in its new place in the sequence order. Figure 18. This will open the Control Sequencing dialog box. 31 | Cool:Gen Developer’s Tips and Tricks . Designing with Grid On or Off The Window Grid is another tool available to the developer to aid in the placing of objects on a window. The tool will automatically determine a sequence for you. Next. The Information group box displays characteristics about the font being used. click Options … Grid within the Window Design Tool. The figures measure distance in a device independent presentation unit of measure. This order can be modified by clicking on Detail … Sequencing within the Window Design tool. Clicking on ‘Transform’ will reorder the controls to the default sequence.

The Show Grid check box determines if the grid is visible to the developer within the Window Design tool. The grid is never visible to the user at runtime.

Figure 18
The Snap Windows to Grid checkbox will force the developer to place all fields and controls along a grid line. It also restricts the sizing of objects, ensuring that all corners will fall on a grid coordinate point. This helps to ensure that fields and controls are lined up properly with one another. The Show Coordinates checkbox controls whether or not a highlighted object’s coordinates, height, and width will appear in the title bar of the Window Design tool.

Rabbit Test…Oops, Rapid Test

Did you know that when you resize the Cool:Gen Testing Tool dialog box that there is a rabbit head
rolling around and his tongue sticking out. The previous version of Cool:Gen, the race car, Figure 19, used to be a rabbit. It was so-called probably because of “rabbit testing” which sounds similar to rapid testing. It was not only later on that it was changed to a race car. But the rabbit still lives. Next time you are in Window design, go to Mode…then Test. Resize the Cool:Gen testing tool and you will see the rabbit’s head rolling around and, as always, sticking out his tongue at you.

32 | Cool:Gen Developer’s Tips and Tricks

Figure 19

33 | Cool:Gen Developer’s Tips and Tricks

34 | Cool:Gen Developer’s Tips and Tricks

Action Diagramming Tips 3 35 | Cool:Gen Developer’s Tips and Tricks .

36 | Cool:Gen Developer’s Tips and Tricks .

Figure 20. Update. This certainly is not that useful if you only have a couple of windows open.1. Figure 20. but its effectiveness increases with the number of active windows. 37 | Cool:Gen Developer’s Tips and Tricks . The developer can click on an item within the list and click the ‘Show’ button. and List.2. Figure 20. Delete.1 Clicking on this button will launch a dialog box. Create. The push button appears on top of most of windows in the toolset. which shows all open windows.2 Action Block Synthesis Selecting Action Block Synthesis from the Action Diagramming Tool displays a series of pop-up windows. These windows let you to automatically generate (100% code) detailed process logic based on the constraints set in the data model.Open Window List Push Button The open window list push button is an effective way to track the number of Cool:Gen windows you have open at any given time. The developer can choose to generate logic based on one of the five basic entity actions: Read. Figure 20. and the selected window will maximize and become active.

Figure 21 This dialog box. The action block should have one import view – a work view of IEF supplied command. Action Block Synthesis is very useful as a starting point in creating the action blocks that perform your system’s basic database functions. Although it looks like a normal EAB stub. 38 | Cool:Gen Developer’s Tips and Tricks . and therefore does not have to be compiled outside of the toolset. can be accessed by clicking on Generate…Action Block Synthesis within a Process Action Diagram (PAD). 1. In fact. Non-display procedures also have an automation technique that you could use. These are the precise steps that must be followed in order to successfully utilize this type of event. Create a new action block and name it Tirevent. it is PRE-DEFINED to the Cool:Gen runtime components. Figure 21. The only line of code should be one defining the action block as external. This is called Procedure Synthesis. TIREVENT A TIREVENT is a special external action block used to trigger user defined events in your client procedure. it is advisable to start with this action block and trim the unnecessary code afterwards.

It is the event type.2 3. create a temp view like the import view in the Tirevent stub. Create a user defined event. and set that view equal to the unique event type from the previous step. the best practice here is to associate the user defined event with the main window. Although not required. Call the newly created user defined event.1 2.3. Figure 22. 39 | Cool:Gen Developer’s Tips and Tricks . Give the event a unique Event Type. Figure 22.Figure 22. Figure 22. NOT the Action Name. Act as though you were going to create an open event on the procedure’s main window. that will be used when the event is called.2. In the main procedure.

3 Important: The code you placed within the event will be queued for execution. The Business System Defaults window is an area where this phrase is proven to be true.Figure 22. Within this window. edit patterns. the dialog box to create and exit state in the Business System Defaults window is the same one used when adding an exit state from within an action diagram. It is not executed in place like a normal action block call. The Tirevent will be executed once control is passed back to the window manager. The interfaces should be familiar. Figure 23. and delimiters. the developer can perform such tasks as adding exit states and commands. “There is more than one way to do that” is applicable throughout the toolset. For example. Adding Objects Common to a Business System The phrase. Figure 23 40 | Cool:Gen Developer’s Tips and Tricks . and setting up default function keys attributes. All of these options can be accessed by clicking on the ‘Detail’ menu option.

Can I Use this Function? There are a number of functions within Cool:Gen which will not work in the mainframe environment. Figure 24 Determine Where an Action Block is used The main purpose of the Action Block Usage tool (Figure 25) is to display where an action block is used in the model. concat) can be used. In addition. processes. DateTime) can not. However. the tool identifies all of the procedure steps that call a selected procedure step with the PROCEDURE STEP USE statement. Functions which appear in all lower case (ex. A developer can tell which ones these are by pulling up Help within the toolset and looking up the function in question. The tool identifies action blocks connected to other action blocks. there is an easier way. while those appearing in mixed case (ex. Figure 24. 41 | Cool:Gen Developer’s Tips and Tricks . In the figure below. the circled action block is being called by three other action blocks. and procedure steps through the USE command.

View Matching: Data Passing View Matching is one of the most important concepts in Cool:Gen. Sample procedure use statement: In this example Server Procedure B is being called by Client Procedure A in an event action. and USING statement. The tool can be accessed from the main Cool:Gen window under the Design menu. PROCEUDRE STEP USE. It determines which data is passed from one action block to another. Let us look at an example and Figure 26. EVENT ACTION call_server_procedure_b USE server procedure b (procedure step) WHICH IMPORTS: Entity View e_main view a TO Entity View i_main view a WHICH EXPORTS: Entity View e_main view b FROM Entity View e_main view b 42 | Cool:Gen Developer’s Tips and Tricks . In these three cases. the View Matching interface is the same. for the imports and a dialog box for the exports. The trick to view matching is to look at the CALLING and a CALLED action block as a ROUNDTRIP process. View Matching must be done as part of a USE. Just imagine that both your starting and ending point is always the workstation (client). the developer can perform a variety of functions on any of the PADS or PRADS which appear in the result set.Figure 25 From the action block usage tool. There is a dialog box.

WHICH EXPORTS: Entity View e_main view b FROM Entity View e_main view b Figure 26 43 | Cool:Gen Developer’s Tips and Tricks . The view to the right of TO is always the view of the called action block WHICH EXPORTS: This means that e_main view b is RECEIVING data FROM e_main view b of the action block you called.The same procedure step use statement: USE server_procedure_b (procedure step) server_procedure_b is the name of the action block or procedure you called. The action block you called is exporting back data you requested. The view to the right of FROM is always the view of the called action block. WHICH IMPORTS: Entity View e_calling view a TO Entity View i_called view a WHICH IMPORTS: This mean that you are SENDING whatever is in e_calling view a TO the i_called view a of the action block you called .

After selecting ‘Neighbors’ from the menu. can be accessed by highlighting a read each statement within an action diagram and clicking and clicking Detail … Properties. or by double-clicking on the READ EACH statement. only those procedures which flow to or from ‘HQ Employee Maintenance’ will appear in the Dialog Design window. READ EACH Properties The READ EACH Properties pop-up window lets you specify properties common to all database management systems supported by Cool:Gen. 44 | Cool:Gen Developer’s Tips and Tricks . To take advantage of this feature. In addition. The dialog box (Figure 28). All other procedures within the system will be hidden from view. highlight a procedure and click on View … Neighbors. Figure 27 In the above example.View Neighbors The View Neighbors option within Dialog Design is very useful for systems that have multiple procedures. the procedure ‘HQ Employee Maintenance’ is highlighted. you can set characteristics unique to a DBMS by selecting a tab at the top of the dialog box.

If you double click even with the view definition at the top of the action block. The only exception to this is the outermost bracket of an action block or procedure. 45 | Cool:Gen Developer’s Tips and Tricks . Notice that all of the attributes in the keypress work view are followed by a ‘3’. and Delete of multiple lines easier. Figure 29 describes how each of the keystroke view members is used in this process. but in the case of a keypress event. Each time a keypress event is added within a business system.Figure 28 Double-Click of Brackets in an Action Diagram Double clicking on a bracket. Simply double click on the vertical line designating the left bracket border. This is because multiple keypress events exist within this business system. the developer can trap each stroke and control whether or not it is actually displayed in the entry field on the screen. By interrogating this export view. regardless of the statement type. a special view structure is added to the exports of the action block. events. and almost any other statement bracket that exists within the toolset. condition statements. Keypress Event The Keypress event is the most unique event in the toolset. This technique works for database statements. is a neat shortcut to use in order to select the contents within the bracket. Move. making Copy. It is triggered much like a change event. The entire contents of the bracket will be highlighted. When a keypress event is created. However. all contents of the action diagram will be highlighted if that double click occurs on the bracket at a point even with or below the first action diagram statement. the code is executed each time a character is entered into a given field. What makes the keypress event unique is the ability given to the developer to trap the keystroke entered by the user. the contents of the action diagram will not get selected. a unique set of attributes are created.

Figure 29 Changed Event The Changed Event is a fairly common event. By double clicking on any event in an action diagram. Figure 30 46 | Cool:Gen Developer’s Tips and Tricks . but it has one characteristic that makes it worthy of inclusion in this guide. the developer can view the Event Action dialog box.

and the word ‘Promote’ will appear next to the menu item in the Command Menu Hierarchy box. The Changed Event is the exception . The item will then appear in the Pop Up Menu Order box. the default value should remain displayed. then the data entered in an entry field will not be automatically redisplayed. highlight the item an click the ‘Promote’ button. This option is available on any window where a click of the right mouse button opens an in place menu within the diagram. For all other types of events. Figure 31 To prevent an item from being displayed. For example. If the user makes an incorrect entry. a default value may be displayed in an entry field. the ‘Import to Export’ radio button is always set to ‘Default ’. 47 | Cool:Gen Developer’s Tips and Tricks . The developer can override the default value by choosing one of the other options in the Import to Export radio button group. the prior value in the field should be displayed instead of what was entered. The dialog box can be opened by clicking on Options … Customize Pop Up Menu. If the default selection is not changed to ALWAYS MOVE. not the entry that was made. Customizing the Pop-Up Menu(s) The Customize Pop Up Menu (Figure 31) option allows developers to select the commands they want to show. To make a hidden item visible again or to demote a promoted item. default means that import views are automatically moved to export views after the event is executed. highlight that item and click the ‘Hide’ button. Based on certain conditions. highlight the item in the Command and Menu Hierarchy box and click ‘Clear’.the views remain as they were before the event logic was executed. as well as set the order in which the commands appear on pop-up menus. There is a reason for this deviation from the norm for this event type. The most common course of action is to change the selection to ALWAYS MOVE.When an event is created. To promote an item (make it appear one level higher in the menu structure). The word ‘Hide’ will then appear next to the menu item in the Command Menu Hierarchy box.

Converting Number to Text and Text to Number Cool:Gen provides the developer with a variety of functions that perform data type conversion. the selection of Single or Multiple Adds determines how the toolset behaves when adding objects via a pop-up window. When the OK pushbutton is pressed. The important thing to remember about both of these functions is that the numeric portion of the function bases its conversion on a field length of 15. assume that the numeric field CHARSTRING = "1234" and TEXTSTRING is 15 characters long. This means that when using the numtext function. Selecting Multiple Adds causes the pop-up windows from which you are adding objects to remain displayed until the Cancel pushbutton is pressed.NOTE: Menu customization is done on a diagram level. Event Locator The Event Locator button (Figure 32. the value of TEXTSTRING would be 000000000001.1) is a very useful tool when attempting to navigate an action diagram which contains many events. The same type of logic applies to the textnum function. Multiple Add Located under Options on the main Cool:Gen window. If CHARSTRING were only 12 characters in length. without initiating the pop-up window each time. This means that if you change the Action Diagram pop up menu. Two of these functions are textnum and numtext. the primary window is displayed. Single Add vs. the receiving field must be at least 15 characters in length to ensure that no data is lost. If the target field is smaller than 15. the developer can utilize the substr function to help control the values and field lengths returned. the pop up menu launched within the Window Design tool will remain unchanged. The target field must be at least 15 characters long to ensure that nothing is truncated in the conversion. the field is zero-filled to 15 characters and only the leftmost characters are displayed. This enables the developer to add items repeatedly. 48 | Cool:Gen Developer’s Tips and Tricks . The textnum function converts a numeric value into a text string and the numtext function converts a text string into a numeric value. the value of TEXTSTRING would be 000000000001234. For example. Selecting Single Add causes the pop-up window to appear only until one add is complete. In both cases. Consider the statement: SET TEXTSTRING = NUMTEXT(CHARSTRING) In this example.

Figure 32. the locate event dialog box will open (Figure 32. the developer can jump to the top of that event within the action diagram code. Figure 32. showing all of the events contained in the current action diagram.2 49 | Cool:Gen Developer’s Tips and Tricks .1 When the button is pressed. By highlighting one of the events and clicking the ‘Show’ button.2).

the combination key. comes in handy when you cannot read the entire procedure name. you will able to see and tell which procedure are the clients and which are the servers. After pressing this. Sheila E. Ratcliff USDA National Finance Center Computer Specialist (Programmer Analyst) 50 | Cool:Gen Developer’s Tips and Tricks . CTRL + I [zoom in].Dialog Flow Design When in the Dialog Design Diagram.

Other Tips Notes in action diagrams: This point can not be stressed enough. it is much more efficient to include required field logic on the client side. If the customer wishes to offload data after a certain period of time. each relationship is defined as mandatory or optional. a developer can explain why they designed something they way they did. the more beneficial client enforcement of business rules is to a development staff. Consider enforcing mandatory relationships within the client code. The fewer client procedures which maintain data for a given entity. 51 | Cool:Gen Developer’s Tips and Tricks . as well as explain logic that may not be that easy to follow. the server must send the required field error messages back across the data line. Otherwise. As expected. Here. Notes should also be used within the body of the code. It is good practice to place a note at the top of each PAD that contains a description of what the program does. It might seem like a little time consuming at first. it is important to consider archiving strategy during initial design. the mandatory relationships that conformed to the business rules might end up making the implementation of an archiving strategy much more difficult. and the person who developed it. This note can also serve as a change log. The next person looking at your code will thank you for it. and increasing the amount of time before an eventual successful transaction is processed. The same thing can be said for enforcing restrictive delete rules in the data model. slowing down response time. Setting up Mandatory relationships: Within the data model. However. the decision on how each relationship is defined is based on the customer’s business rules. making maintenance easier for all the members of the development team. but it sure does save time in the long run! Always use notes whenever you code. Utilizing the proxies: It is a good idea to make all of the import views on the server procedures optional. Why? Well.

52 | Cool:Gen Developer’s Tips and Tricks .

Client Deployment Topics 4 53 | Cool:Gen Developer’s Tips and Tricks .

54 | Cool:Gen Developer’s Tips and Tricks .

Not deleting files may sometimes cause generation problems as well as space problems.reg load module. as generating with trace on will create larger dlls. Check OLE directory and OCX file Make sure ole file is in the model’s ole directory and is registered in its original path. always choose EXPAND ALL Generation Defaults Check target environment.dll load module. This may save you time. etc. If generating for only one environment do this “set it. Check Build Tool settings Check and Set build tool parameters. Expand all will always expand to the action block level.ocx load module. Play it safe. System test Generation Select All (highlight) window manager By highlighting all window manager modules you can be sure that everything will be expanded for generation in the next step. Full Expansion.Deployment Architecture Pre-Generation Checkout Subset Check out client procedures with Read protection.hlp Change Path of load module.sst load module. and forget it”.ico Add your customized icon file in the Cool:Gen directory.exe load module. View expand all. Trace ON / OFF Select appropriate option for your release phase. Generate Code Selected Select Generate…Code Selected Try to be selective when generating code.reg file This path should point to wherever the load module executable is located. Check elp Files Make sure that necessary help files needed to generate help are setup. You may not want to turn trace on for production releases. NOT expand Clicking on expand will only expand to the procedure step level. help in deployment. save it . Post-Generation Move Files to the application directory load module. Register Files OCX DLL REG other runtime files Include Special files You may want to create/include special files that automate the registration process. 55 | Cool:Gen Developer’s Tips and Tricks . Delete contents of C/DDL directory Delete old files instead of overlaying and empty recycle bin. Include the defaultw.

DEFAULTW.EXTERNAL_LIB c:\models\extrn This is the directory where Cool:Gen expects to find the external code [stub] used in the model during link time. Your Icon Here Cool:Gen Default Icon Figure 33 Build Tool Parameters: The Win32itm.ico file resides wherever your Cool:Gen directory is located. compile.IEF_BITMAP is not enabled within the build tool (default). you will receive this type of error during the link step of the build: fatal error LNK1120: unresolved externals OPT.IEF_BITMAP is used. 56 | Cool:Gen Developer’s Tips and Tricks . If OPT. If the bitmaps are not in the specified location.\BITMAP\<bitmap name> OPT. the token OPT.\. You can see the difference in Figure 33 below. That way.BUILD_SRC YES GUI applications require DBMS specific startup files (stubs).ico is the icon file for your application’s generated windows. If this directory doesn’t exist.. Following this practice will eliminate the need to change any icons in your window design settings.IEF_BITMAP z:\iefmodel\win\bitmaps The IEF_BITMAP environment variable set within the operating system specifies where the bitmap directory is located. You can replace this default icon with your shop’s icon. the build process will copy the DBMS specific stub source to the build directory and precompile. you will receive this type of error during link: error RC2135 : file not found: . If there is no IEF_BITMAP environment variable.ICO The defaultw.tgt File LOC. This . If OPT. then the build tool looks in the model’s bitmap subdirectory. If the stub is not in this location. It is the image that you see on the task bar when you minimize your application window.BUILD_SRC is set to YES. the module's source directory is used. your icon will automatically be associated with the system’s windows each time the code is generated.

or non-screen transaction. (please see timestamp of load module executables in this unit) Dialog Flow Trancode and Clear Screen Trancode Clear Screen Transaction Code There is one transaction code for every screen or non-screen transaction. It allows the user to execute the load module from a blank screen by entering the transaction code. the generated window manager resource file is also bound with the {Load module}. If this option is set to yes. Figure 34 57 | Cool:Gen Developer’s Tips and Tricks . IMS. The Cool:Gen dialog flow trancode is internal to the Cool:Gen-generated application – it is not defined to the teleprocessing monitor. If not (such as for server transactions). the DBMS specific stub executable will be copied into the build directory and renamed to {Load module}. Transaction Enabler) by the System Administrator in addition to defining it to Cool:Gen.and link the stub.EXE. If you want the user to be able to execute the transaction from a blank screen.g.EXE to provide the executable with the application icons. Otherwise. then you must define a transaction code. Dialog Flow Trancode There is one dialog flow trancode for every screen. This token is disabled and the default value is set to NO. The trancode must be defined to the teleprocessing monitor (e. CICS. there is no need to define the transaction code – a dialog flow trancode will suffice. Each screen/nonscreen must have the same value for its trancode and its dialog flow trancode. server. Valid values are [YES | NO].

Remember that each client procedure step is assigned a trancode. Carol Marie Cooper Computer Associates Consultant 58 | Cool:Gen Developer’s Tips and Tricks . You can then use this value after entering the procedure.exe> <trancode> <command> <command> could be up to 80 characters.exe <trancode>” The trancode would be the code entered during packaging of load modules. The value of the last parameter will be in the Cool:Gen special attributes. Other parameters could be added to the path as shown below: c:\usdanfc\nfcapps\ <load modulename.Q: A: How does the application know what window to execute first if they are all packaged in one big load module? By appending the desired TRANCODE at the end of the executable parameter “c:\usdanfc\nfcapps\pods.

Figure 35 59 | Cool:Gen Developer’s Tips and Tricks . Expand All will expand all the way down to the action block level.Expand All Views When generating. Expand would just give you the procedure step level. whether it may be window code or cooperative code. ALWAYS select VIEW EXPAND ALL when expanding load modules (Figure 35). If you don’t properly expand you may get an error stating that it cannot find the components the load module needs to successfully build.

Go to the Start menu and select Windows NT Diagnostics under Administrative Tools (Common). It will bring up different tabs and select the one for Environment.How To Verify Cool:Gen Environment Variables “Remember…MS SQL Server wouldn't work and we had to compare the environment variables? Remember how we wish we could print it out? Well. I found out how. there's the Print PB. Then at the bottom of the window. You can even print to a file…” Catherina Fuh Computer Associates Consultant 60 | Cool:Gen Developer’s Tips and Tricks .

Register the WROAF.dll (version 4.Registration of Cool:Gen Functions When functions (i.tlb (application library) and REGEDIT HKEY_CLASSES_ROOT\TypeLib\{0C8F36F1-848E-11CE-9C08-02608CDA5EE3} = COOL:Gen Application Interface Type Library HKEY_CLASSES_ROOT\TypeLib\{0C8F36F1-848E-11CE-9C08-02608CDA5EE3}\4.reg File The wroaf.0 = COOL:Gen Functions Library HKEY_CLASSES_ROOT\TypeLib\{EBD084A1-E46C-11CE-8F94-0020AF9B5FED}\4.0\HELPDIR = c:\ief HKEY_CLASSES_ROOT\TypeLib\{EBD084A1-E46C-11CE-8F94-0020AF9B5FED} = COOL:Gen Functions Interface Type Library HKEY_CLASSES_ROOT\TypeLib\{EBD084A1-E46C-11CE-8F94-0020AF9B5FED}\4. You can even register and unregister files using this utility.dll Register the RTT. etc. click on File … Register Controls to view the control registry. In the main window.REG file Register the WRU410n. for instance objects you want to be invisible are visible and the colors are not changing. try reregistering the Cool:Gen .0\0\win32 = c:\coolgen\WROF0000.0\0\win32 = c:\coolgen\WROA0000. 61 | Cool:Gen Developer’s Tips and Tricks .TLB HKEY_CLASSES_ROOT\TypeLib\{0C8F36F1-848E-11CE-9C08-02608CDA5EE3}\4. 2.reg contains pointers to two important type libraries.1) Register the OLEPRO32.) are not working properly. 3.e.0\HELPDIR = c:\ief How to Check What’s Registered In order to check what is registered. 4. SetVisible.TLB HKEY_CLASSES_ROOT\TypeLib\{EBD084A1-E46C-11CE-8F94-0020AF9B5FED}\4. To reregister the Cool:Gen Functions 1.REG Inside the wroaf. BackgroundColor.reg files that deal with the Cool:Gen function and application libraries. open the ActiveX Control Test Container (Figure 36) that comes with Microsoft C++.TLB (function library) WROA0000.0 = COOL:Gen Application Library HKEY_CLASSES_ROOT\TypeLib\{0C8F36F1-848E-11CE-9C08-02608CDA5EE3}\4. WROF0000.

the pointer to this file may be lost and will become invalid in your action diagram statement. The OCX file and SST file must be moved to the directory where the dlls are deployed. When opening the model that uses ocx controls. the SST file is going to be packaged with the executable file. This must be placed in a non-read only directory (local or network). Therefore. they have to be manually managed. like bitmap files. Otherwise. otherwise your ole/ocx will cease to function. the ocx controls added to the model during design time are not stored as object files on the encyclopedia. With Cool:Gen 5. and therefore does not need to be deployed. make sure that the ocx file is in the model’s OLE directory. The SST file is used by your ole/ocx control to access/manipulate the control. 62 | Cool:Gen Developer’s Tips and Tricks . It must be in the same path as it was when the control was added during the initial design of the window.Figure 36 What to Do When Using OLE/OCX Controls Unfortunately.0 and higher.

ico for the icon. Cool:Gen will “grab” the stubdb2n. This stub contains specific database scripts (start. the client executables generated will not have a current timestamp and it will not pickup the defaultw.Timestamp of Load Module Executables Have you ever wondered why your executables’ program date and time stamps do not change? The system’s load module.1.exe files are actually just renames of the database stubs that you selected during generation. some of the default settings have changed from 4. 63 | Cool:Gen Developer’s Tips and Tricks .exe stubsybn. This is only useful if you have an online application using a local database.exe stubxdbn. If you have DB2 as your target database. One of the default settings is the OPT.exe 27KB 64KB 25KB 28KB 82KB 28KB 8/4/97 8/4/97 8/4/97 8/4/97 8/4/97 8/4/97 6:43 AM 6:43 AM 6:43 AM 6:43 AM 6:43 AM 6:43 AM In [Cool:Gen] 5. With the default setting of NO. stubdb2n.exe stubs95n. commit) for the database you are using.BUILD_SRC in the NT build tool setup. Lowe's Companies. but if you need a custom icon and an accurate timestamp on the executable it is worth the extra work. Please see build tool setup section for more information on OPT.1a.tgt] file to YES.BUILD_SRC parameter.exe stubinfn. This does create a little more work when compiling and building executables.exe file and rename it to the name you have assigned to your load module during construction. stop. David McGrady MIS Analyst III Information Resources. Inc.exe stuboran. all you have to do is change the setting in the IT setup [win32itm. To get around this.

SST MOVE ALL THE TIME ONLY MOVE ONCE MOVE ALL THE TIME 64 | Cool:Gen Developer’s Tips and Tricks .. To create this association. Cool:Gen needs to know which EAB stubs go with which external programs. the stub will appear in the generation list. Figure 37 If your system utilizes EABs. Important Files to Deploy After Generation LOAD MODULE. go into the construction .DLL LOAD MODULE. If you double click on the stub..EXE ONLY MOVE ONCE LOAD MODULE. and action block properties dialog box will appear (Figure 37). generation and pull up the type of code you being used.Associating an EAB Stub with the Desired External Code If your system utilizes external action blocks.REG LOAD MODULE. The source name is the name that was used when the external library was built.

0) HKEY_CLASSES_ROOT\CLSID\{D74E6110-AFD9-11D2-B291-000000000000}\LocalServer32 = C:\USDANFC\NFCAPPS\PDL0.Composer. will be the path stored in the registry.LOAD MODULE.reg file contains the path information for all your executables. … When this file is registered.1 .reg File The load module.. HKEY_CLASSES_ROOT\CLSID\{D74E6110-AFD9-11D2-B291-000000000000} = Composer (Ver 4.. Figure 38 65 | Cool:Gen Developer’s Tips and Tricks .exe /Embedded HKEY_CLASSES_ROOT\CLSID\{D74E6110-AFD9-11D2-B291-000000000000}\ProgID = PDL0.OCX ONLY MOVE ONCE Inside the Load Module. figure 38.Application. the path inside this file.

66 | Cool:Gen Developer’s Tips and Tricks .

Subsetting Topics 5 67 | Cool:Gen Developer’s Tips and Tricks .

68 | Cool:Gen Developer’s Tips and Tricks .

The asterisk denotes wildcard substitution for the specific names. This is especially helpful when you do not know the model and subset name.Non-seamless Checkout When performing a non-seamless checkout. Figure 39 69 | Cool:Gen Developer’s Tips and Tricks . The local name is required to determine the directory location of your checkout. This method is much less painful than opening the checkout.trn.trn file using notepad to find the model and subset name. insert a * for both model name and subset name (Figure 39).

70 | Cool:Gen Developer’s Tips and Tricks .2.DAT IEF0700.DAT IEF2511. etc) are what you do for manual upload/download.DAT IEF1200.ief\ CHECKOUT. Seamless is kicked off at the workstation and then performs all of the other steps.TRN IEF0000.DAT mmddhhmm.PDX Model Retrieval Status Report (Protection Downgrade Report) Header 2 1 FTP NFxxx.3.TRAN %IEFDOWN Encyclopedia Model binary format Steps (1.IEF.Checkout Subset Workstation 3 Model Encyclopedia Check Out a Model Mainframe c:\models\<local name>.

IEF.DAT IEF2511.IEF.MSG S Encyclopedia Model %IEFU P 4 VERIFY.DAT Header 2 binary format FTP 3 NFxxx.not your entire subset.TRN without checkin reset to write IEF0000.DAT IEF1200.TRAN NFxxx.ief\ UPDATE. 71 | Cool:Gen Developer’s Tips and Tricks .TRN mmddhhmm.DN X Encyclopedia Update Status Report (Duplicate Name Report) FT P binary format 5 Model Encyclopedia Verify Last Update Only changes are sent to the Encyclopedia -.DAT IEF0700.Update With or Without Checkin Workstation 1 Model Encyclopedia Update and Checkin Model or Update But Do Not Check In Mainframe c:\models\<local name>.

DAT IEF2511.TRN FT P binary format 5 Model Encyclopedia Verify Last Update Only changes are sent to the Encyclopedia -.MSG S Encyclopedia Model %IEFU P 4 VERIFY.DAT IEF0700.DAT *.Resend Last Update Workstation 1 Model Encyclopedia Resend Last Update Mainframe c:\models\<local name>.ief\ UPDATE. 72 | Cool:Gen Developer’s Tips and Tricks .TRAN NFxxx.TRN without checkin reset to write IEF0000.DNX Encyclopedia Update Status Report (Duplicate Name Report) Header 2 binary format FTP 3 NFxxx.not your entire subset.IEF.DAT IEF1200.IEF.

TRN Mainframe Encyclopedia Model 1 binary format FT P NFxxx.IEF.Verify Last Update Workstation c:\models\<local name>.ief\ without checkin reset to write IEF0000.DAT IEF2511.DAT IEF1200.MSGS Encyclopedia Update Status Report (Duplicate Name Report) 2 Model Encyclopedia Verify Last Update 73 | Cool:Gen Developer’s Tips and Tricks .DAT IEF0700.DNX VERIFY.DAT *.

DNX Header FTP FTP IEF.DAT IEF0700.DAT IEF1200.MSGS %IEFUP Encyclopedia Model VERIFY.DNX UPDATE.DAT IEF1200. Resend vs.TRAN %IEFUP Encyclopedia Model VERIFY.DAT IEF0700.TRN Header FTP IEF.MSGS Encyclopedia Update Status Report (Duplicate Name Report) 74 | Cool:Gen Developer’s Tips and Tricks .DAT IEF0700.MSGS Encyclopedia Model VERIFY without checkin reset to write IEF0000.TRN RESEND LAST UPDATE without checkin reset to write IEF0000.TRN FTP IEF. Verify UPDATE/GENERATE NEW MODEL UPDATE.DAT IEF2511.DAT *.DAT IEF1200.DAT *.TRN without checkin reset to write IEF0000.TRN IEF.DNX VERIFY.DAT IEF2511.TRAN IEF.DAT FTP *.Comparing Update vs.DAT IEF2511.

ief\ UPDATE.DAT IEF1200.DAT Header binary format 2 FTP 3 NFxxx.Generate New Model Workstation 1 Model Encyclopedia Generate New Model Mainframe c:\models\<local name>.TRN X Encyclopedia Update Status Report (Duplicate Name Report) 4 FTP binary format 5 Model Encyclopedia Verify Last Update Your entire subset is sent to the Encyclopedia and new model is created.DAT IEF0700.IEF.TRN IEF0000.DN VERIFY.TRA N NFxxx.MSGS Encyclopedia Model %IEFUP mmddhhmm.IEF. 75 | Cool:Gen Developer’s Tips and Tricks .DAT IEF2511.

blank = the operations cannot run concurrently UPLOAD SUBSET OVERRIDE SUBSET RENAME SUBSET DELETE SUBSET COPY SUBSET CODEGEN RENAME MODEL DELETE MODEL PI IMPORT CRE MDL FROM SUBSET (DST) COPY MODEL (SRC) COPY MODEL (DST) TRIAL MERGE (ALL) MERGE OLD (DOM) MERGE OLD (SUB) MERGE NEW (BOTH) MERGE NEW (NEW) MODEL RESTORE REV ENG IMPORT MIGRATION (DST) ADOPTION (SRC) OBJECT RENAME OBJECT DELETE ADOPTION (DST) REPORTS Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y DOWNLOAD SUBSET CRE MDL FROM SUBSET (SRC) MIGRATION (SRC) MODEL BACKUP CONVERSION Y Y Y Y Y PI EXPORT Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y ESF EPORT Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y DOWNLOAD SUBSET UPLOAD SUBSET OVERRIDE SUBSET RENAME SUBSET DELETE SUBSET COPY SUBSET CRE MDL FROM SUBSET (SRC) CRE MDL FROM SUBSET (DST) CODEGEN RENAME MODEL DELETE MODEL COPY MODEL (SRC) COPY MODEL (DST) OBJECT RENAME OBJECT DELETE MIGRATION (SRC) MIGRATION (DST) ADOPTION (SRC) ADOPTION (DST) MODEL BACKUP MODEL RESTORE TRIAL MERGE (ALL) MERGE OLD (DOM) MERGE OLD (SUB) MERGE NEW (BOTH) MERGE NEW (NEW) PI IMPORT REV ENG IMPORT PI EXPORT ESF EXPORT REPORTS CONVERSION INTELLIGENT REGEN PACKAGING U U U U U U Y U U U U U U U U U U U U Y U U U U U U U Y U U U U U U U Y U U U U U U U Y U U U U U U Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Subset ALL = the entire model Note: This matrix shows only the concurrency matrix enforced by the Host Encyclopedia. Other types of contention.Concurrency Matrix Y = THE TWO OPERATIONS CAN RUN CONCURRENTLY U = the operations can run concurrently if the subset names are different. such as that caused by DB2 cannot be determined from this matrix. 76 | Cool:Gen Developer’s Tips and Tricks .

Bartholomew Consultant Protection Conflict Table Version 2 If the user requests an object with this protection… and the object is in a checked out subset with this protection level or the expansion is incomplete Delete Modify Access Read (only) then the user will get the object with this protection… Delete Modify Access Read read read read read access access access read modify modify access read delete modify access read 77 | Cool:Gen Developer’s Tips and Tricks .Protection Conflict Table Type Delete Modify Access Meaning to completely remove an object to change and object to add references to an object. statements in action diagram reference entity types view only How Many can get this? one person one person unlimited Others Can Get Read only Access Read Only Modify Access Read only Read Only unlimited Any Alan D.g. e.

78 | Cool:Gen Developer’s Tips and Tricks .

Where to get help 6 79 | Cool:Gen Developer’s Tips and Tricks .

80 | Cool:Gen Developer’s Tips and Tricks .

This type of help 81 | Cool:Gen Developer’s Tips and Tricks .Function Key F1 Context sensitive help is available for most all objects within the Cool:Gen toolset. can be accessed by highlighting or selecting the object and pressing the F1 key.

Electronic Books / Information base

Every workstation should have a copy of Cool:Gen’s electronic books.

Electronic Books has tons of information ranging from Component Based Development concepts, Subsetting concepts, and Infrastructure. This is another good place to obtain answers to some of the more complex issues you encounter during your design, development, or deployment efforts

82 | Cool:Gen Developer’s Tips and Tricks

Technical Library

THE TECHNICAL LIBRARY CONTAINS TECHNICAL NEWSLETTERS, ARTICLES, AND WHITE PAPERS THAT ADDRESS SOME
RATHER INVOLVED COOL:GEN ISSUES.

83 | Cool:Gen Developer’s Tips and Tricks

84 | Cool:Gen Developer’s Tips and Tricks

Appendix 7 85 | Cool:Gen Developer’s Tips and Tricks .

86 | Cool:Gen Developer’s Tips and Tricks .

LIB SDCEX.DLL WRE410N.0) OLEAUT32.DLL XFCMN.1a Applications on Windows NT and Windows 95 Last Revised: 02/04/1998 This document was developed to assist in the deployment of Cool:Gen 4.DLL (with MSVC++ 5.0) MFC40.0.0.DLL WRG410N. 4.DLL (with MSVC++ 5. In order to accomplish this deployment.DLL (with MSVC++ 2. 5.TLB Microsoft Runtime Files: from Windows System directory (NT: winnt/system32 or W95: windows/system)to Windows System directory MSVCRT10. Required Deployment Files Cool:Gen GUI Runtime Files: from Cool:Gen directory to Deployment directory CDCEX.x.DLL CSUMGN.0) MSVCIRT.DLL (with MSVC++ 2.DLL (with MS Win 95 or Win NT) 87 | Cool:Gen Developer’s Tips and Tricks .DLL MQCLX.DLL (with MSVC++ 5.DLL (with MSVC++ 5.Deployment of Cool:Gen 4.INI Cool:Gen Type Libraries: from Cool:Gen directory to Deployment directory WROA0000.0) MFC42.1a toolset.DLL WRGUIN. Deployment is the process in which an application.x. and Registry files need to be copied from the toolset workstation to the deployment workstation.DLL (with MSVC++ 2.x.DLL WRL410N.HLP RTTTRC.DLL WRU410N.DLL (with MSVC++ 5. 5.0) MSVCRT40.DLL MQSMG.0. 4.x.DLL (with MSVC++ 2.DLL MGCFBN.0) MFC42.DLL RTTTRC.0.DLL MQSVX.DLL CSUN.TIP WRC410N.DLL TRTRACE. 5.DLL (with Cool:Gen 4.0) OLEAUT32.DLL RTTTRC.x.DLL IEFMBT.DLL MGDCEN.DLL (with MS Win 95 or Win NT) SSFM1032.0) MFC40. 5.DLL WRF410N. 4.0) OLEPRO32.DLL (with MSVC++ 2.0) MSVCIRT.DLL (with MSVC++ 2.CNT RTTTRC. is moved to another workstation on which the Cool:Gen 4.0) MSVCRT40. Microsoft's Visual C++ runtime files. Cool:Gen runtime files.0.0. built on a workstation using the Cool:Gen 4.DLL (with MSVC++ 5. 4.x) MSVCRT10.1a toolset is not installed.x. The following information specifies these files and their corresponding directory locations. 5.0) MSVCRT.DLL (with MSVC++ 5.1a applications on Windows NT and Windows 95 workstations.0) MSVCRT.DLL (with MSVC++ 5.DLL MSVCRT20. 4.DLL Cool:Gen Codepage File: from Cool:Gen directory to Deployment directory CODEPAGE. 5.DLL DCEMG.DLL MSVCRT20.0) OLEPRO32.TLB WROF0000. 4.

REG and the <load modulename>.exe Note: regsvr32.REG should be changed to C:\MYAPP instead of the default which is C:\IEF. 4.dll SQL Server ntwdblib.0) OLEAUT32.REG and <load modulename>.DLL (with Cool:Gen 4.DLL MSVCRT20.dll (for TCP/IP) OCX Files: All OCX controls and OLE servers used in the application have to be installed on the Workstation.DLL (with MSVC++ 5.) Microsoft Tools for Registration: regedit.DLL (with MSVC++ 2. Required Registration Procedure File Path Changes: WROAF. 4.x.REG Database Support Files: Database System Runtime Files Oracle sql18win. (ie.REG are ASCII files containing location information for the type libraries and application respectively.dll 88 | Cool:Gen Developer’s Tips and Tricks .DLL (with MSVC++ 5.x) Application Files: from <model>/c directory to Deployment directory <load modulename>.DLL (with MSVC++ 2.x.0) MSVCRT.exe <load modulename>.SST Support Files: from <model>/c directory to Deployment directory <load modulename>.exe regsvr32.0) MSVCIRT.EXE <load modulename>.0) MSVCRT40. 5.DLL (with MSVC++ 5.exe is provided with the Microsoft C++ compiler and may be shipped with the application.0.DLL <load modulename>.DDE Registration Files: from Cool:Gen directory to Deployment directory WROAF. 4. if the application was deployed to C:\MYAPP then the paths in WROAF.REG files contain path names that must be changed to indicate the current directory in which the application is deployed.DLL (with MSVC++ 2.REG from <model>/c directory to Deployment directory <load modulename>.exe OLEPRO32.0) OLEPRO32.dll regsvr32.x.exe wroaf.dll regsvr32.HLP <load modulename>.DLL (with MS Win 95 or Win NT) SSFM1032.0) MFC40. These files must be adopted to the directory structure on the workstation before being used as input to the registry editor.exe WRU410N.exe MFC42.DLL (with MSVC++ 5.DLL (with Cool:Gen 4. 5.reg To register the Cool:Gen OLE server functionality use: regsvr32.0) MFC42. Both the WROAF.dll To register the Microsoft Foundation Class use: regsvr32. To register the Cool:Gen type libraries and applications: regedit.0.REG and <load modulename>.x) MSVCRT10. 5.SSFM1032.reg regedit.0.exe MFC40.dll INFORMIX isqlt07c.dll with dbmssocn.

the original installation procedure of the OCX supplier will have to be used.exe <controlfilename>.dll To register the OCX controls use: regsvr32.To register the Sheridan Date Format Functions use: regsvr32. if an Excel spreadsheet is placed in an OLE AREA. then Excel would have to be installed on the deployment target to activate and edit the OLE AREA contents. Required Installation of Support Applications Any applications that have been used to create the contents of an OLE AREA must be installed on the deployment target to get in-place or out-of-place activation.exe SSFM1032. on a window. For example.OCX Note: If the registration fails due to missing license information. 89 | Cool:Gen Developer’s Tips and Tricks .

90 | Cool:Gen Developer’s Tips and Tricks .

DLL CENCX. Microsoft Runtime Files for Remote Data Applications (RDA) or Distributed Process Clients (DPC): copy from Windows System directory (NT: winnt/system32 or W95: windows/system) to Windows System directory ALT.DLL SSREGS32.DLL MFC42. Deployment is the process in which an application. We recognize this may not be practical for a large number of workstations. The deployment Windows 95 and Windows NT workstations should have the same or later Service Pack as the toolset workstation. and Registry files need to be copied from the toolset workstation to the deployment workstation.INI CSU50N.DLL MSVCRT40.DLL MFC40. Client Manager and Communications Middleware is to use the installation CD on each deployment workstation.DLL Cool:Gen GUI Runtime Files for RDA: copy from Cool:Gen directory to Deployment directory CCMIDX.LIB CIENCBH.DLL SFTTV32.DLL CTUXXN.DLL CTUXWSXN.CNT RTTTRC.DLL MSVCRT.H CODEPAGE.EXE TRSERVER. Cool:Gen runtime files.LIB RTTTRC. In order to accomplish this deployment. is moved to another workstation on which the Cool:Gen 5 toolset is not installed.DLL RTTTRC.DLL CSUMG50N.EXE TRTRACE. The following is the alternate manual procedure.DLL CDCEX.HLP SDCEX.DLL RTTTRC.DLL 91 | Cool:Gen Developer’s Tips and Tricks . built on a workstation using the Cool:Gen 5 toolset. the recommended deployment procedure that uses the Cool:Gen 5 Installation CD and a alternate manual procedure. Support Files The support files require one deployment per workstation.TIP TUXMG. The recommended procedure for deploying the GUI Runtime.DLL MSVCRT20. This article contains information on two procedures. Microsoft runtime files. Windows 95 files must be deployed only on Windows 95 clients and Windows NT files must be deployed only on Windows NT clients.Deployment of Cool:Gen 5 Client Applications on Windows NT and Windows 95 Last Revised: 09/25/1998 This document was developed to assist in the deployment of Cool:Gen 5 applications on Windows NT and Windows 95 workstations.DLL MSVCIRT.DLL CENCX.DLL WRC500N.

DLL DECRE50N. Cool:Gen Client Manager Files for DPC: copy from Cool:Gen directory to Deployment directory BROWS50N.DLL MGCFBN.DLL CDCEX.EXE TRTRACE.DLL IEFMBT.DLL MQSMG.DLL MQSVX.HLP SDCEX. if the typelib was deployed to C:\MYAPP then the paths in WROAF.DLL NETTRACE.DLL CSUMG50N.REG WROF0000.DLL WRE500N.DLL CIENCBH.EXE CCMIDX.DLL MGDCEN.DLL CENCX.DLL register files WRE500N.DLL WRL500N.SRV IEFMBT.) regedit.DLL WRF500N.DLL IEFCMN.DLL WRG500N.DLL CTUXWSXN.DLL MQCLX.DLL MGDCEN.DLL ENCMG.DLL CENCX.DLL CMMSG50N.CNT RTTTRC.DLL XFCMN.DLL IEFCM50N.exe WRU500N.DLL MQSVX.DLL WRF500N.DLL NETTRACE.DLL 92 | Cool:Gen Developer’s Tips and Tricks .REG is an ASCII file containing location information for the type libraries.DLL RTTTRC.DLL MGTUXN.DLL Database Support Files for RDA: The client software from the database vendor must be installed for connectivity to the database server.HLP OLEPRO32.DLL WRGUIN.DLL WRGUIN.DLL SSREGS32.DLL CODEPAGE.DLL IOTCP50N.EXE TRSERVER.REG should be changed to C:\MYAPP instead of the default which is C:\IEF.ICO IEFCM50N.DLL MGCFBN.DLL MQSMG.HLP IEFCM50N.DLL MQCLX.DLL WRC500N.H CIF50N.LIB RTTTRC.LIB CIDE50N.INI IEFCMN.DLL DCEMG. (ie.exe wroaf.INI CSU50N.TIP TUXMG.EXE IEFCM50N.DLL ENCMG.DLL WROA0000.HLP OLEPRO32.DCEMG.DLL CTUXXN.TLB WROAF.TLB WRU500N.DLL WROAF.DLL WRL500N.reg ssregs32.DLL WRG500N. It contains path names that must be changed to indicate the current directory in which the typelib is deployed.DLL RTTTRC.DLL MGTUXN.

REG is an ASCII file containing location information for the type libraries.dll DCE MQSeries MQSeries Encina Tuxedo Tuxedo The client software from the communications middleware vendor must be installed for connectivity to the server.exe wroaf.dll xfencn.TLB WROAF. Executable and Support Files: copy from <model>/c directory to Deployment directory <load modulename>.DLL IOPP50N.REG is an ASCII files containing location information for the application.REG WROF0000.dll xftuxwsn.DLL IONB50N.reg OCX / OLE Files: 93 | Cool:Gen Developer’s Tips and Tricks .REG should be changed to C:\MYAPP instead of the default which is C:\IEF.DLL IORSC50N.REG should be changed to C:\MYAPP instead of the default which is C:\IEF. Application Files Each application requires one deployment per workstation.DLL WROAF.DLL IORSC50N.LIB register files WROA0000. (ie.HLP <load modulename>.dll xfmqsn. if the typelib was deployed to C:\MYAPP then the paths in WROAF.reg ssregs32. if the application was deployed to C:\MYAPP then the paths in <load modulename>.dll xfmqin.) regedit.SST <load modulename>.) regedit.DLL XFCMN.DLL  all DLLs <load modulename>.DLL Communications Middleware Files for DPC: copy from Cool:Gen directory to Deployment directory xfdcen. It contains path names that must be changed to indicate the current directory in which the typelib is deployed.IO6250N.exe <load modulename>.dll xftuxn.TLB WRU500N. It contains path names that must be changed to indicate the current directory in which the application is deployed.exe WRU500N.DDE <load modulename>. (ie.EXE *.REG <load modulename>.

copy from Windows System directory (NT: winnt/system32 or W95: windows/system) to Windows System directory OLEAUT32. then Excel would have to be installed on the deployment target to activate and edit the OLE AREA contents.exe OLEPRO32.DLL register files ssregs32. Refer to the installation instructions from the OCX supplier.DLL OLEPRO32. 94 | Cool:Gen Developer’s Tips and Tricks . Each requires one deployment per workstation.DLL Support Application Files: Any applications that have been used to create the contents of an OLE AREA must be installed on the deployment target to get in-place or out-of-place activation. if an Excel spreadsheet is placed in an OLE AREA on a window. For example.All OCX controls and OLE servers used in the application have to be installed on the Workstation.

In order to accomplish this deployment. NOTE: The deployment workstation should have the same service pack installed as the toolset workstation.DLL CSUVN51N.DLL ROBOEX32. Windows NT files must be deployed only on Windows NT clients.DLL CSUMG51N. Some files are listed in multiple packages depending on the options installed.DLL Cool:Gen GUI Runtime Files for RDA: • Copy from Cool:Gen directory to deployment directory CFBMO51N.DLL MFC42.1 applications on Windows NT. Windows 95 & Windows 98 workstations.1 toolset. Cool:Gen and Microsoft runtime files need to moved to the deployment workstation and the registry on the deployment workstation updated. We recognize this may not be practical for a large number of workstations.DLL CMCF51N.DLL SFTTV32. Windows 95 & Windows 98 Andy Hebert This document was developed to assist in the deployment of Cool:Gen 5.DLL CMICX51N.DLL MSVCRT40.1 Client Applications on Windows NT. built on a workstation using the Cool:Gen 5.DLL 95 | Cool:Gen Developer’s Tips and Tricks .DLL MFC40. The recommended deployment procedure is to use the Cool:Gen 5.DLL COMCTL32. Microsoft Runtime Files for Remote Data Applications (RDA) or Distributed Process Clients (DPC): • Copy from Windows System directory (NT: winnt/system32 or W95/W98: windows/system) to Windows System directory ATL.1 toolset is not installed.Deployment of Cool:Gen 5. is moved to another workstation on which the Cool:Gen 5.DLL MSVCIRT.DLL CODEPAGE.1 Installation CD to install the GUI Runtime. Client Manager and Communications Middleware.INI CSU51N. Deployment is the process in which an application.DLL MSVCRT. The following is the alternate manual procedure.DLL OLEPRO32.DLL CSEINST. Support Files The support files require one deployment per workstation. Windows 95 files must be deployed only on Windows 95 clients and Windows 98 files must be deployed only on Windows 98 clients.

reg regsvr32.TLB WRU510N.DLL IEFCM51N.IEFMBT. (ie.exe wroaf.EXE TRTRACE.REG WROF0000.HLP IEFCM51N.HLP RTTTRC.DLL WRL510N. Cool:Gen Client Manager Files for DPC: • Copy from Cool:Gen directory to deployment directory BROWS51N.DLL CIF51N.exe WRU510N.REG is an ASCII file containing location information for the type libraries.DLL WRGUIN.DLL CODEPAGE.DLL WRG510N.DLL OLEPRO32.DLL WRF510N.DLL Database Support Files for RDA: The client software from the database vendor must be installed for connectivity to the database server.INI CSU51N.DLL CMMSG51N.DLL CSUVN51N.DLL RTTTRC.EXE CFBMO51N.ICO 96 | Cool:Gen Developer’s Tips and Tricks . if the typelib was deployed to C:\MYAPP then the paths in WROAF.DLL • Register files WROAF.DLL CSUMG51N.DLL WRE510N.EXE IEFCM51N.TLB WROAF.CNT RTTTRC.LIB TRSERVER.DLL DECRE51N.) regedit.DLL IEFCM51N.DLL WROA0000.REG should be changed to C:\MYAPP instead of the default which is C:\IEF.DLL CMCF51N.DLL CMICX51N.TIP WRC510N.DLL CIDE51N.DLL RTTTRC. It contains path names that must be changed to indicate the current directory in which the typelib is deployed.

DLL MQSMG51N. It contains path names that must be changed to indicate the current directory in which the typelib is deployed.DLL • Register files WROAF.INI IEFCMN.DLL MQSCX51N.DLL WRG510N. if the typelib was deployed to C:\MYAPP then the paths in WROAF.DLL DCEMO51N.DLL ENCINA DCEMO51N.SRV IEFMBT.DLL IOPP51N.CNT RTTTRC.EXE TRTRACE.DLL MQSCF51N.DLL OLEPRO32.exe wroaf.exe WRU510N.DLL MQICF51N.DLL DCESX51N.DLL Communications Middleware Files for DPC: • DCE DCECF51N. (ie.DLL MQ Series CFBMO51N.IEFCMN.DLL DCEMG51N.HLP RTTTRC.DLL WRE510N.DLL IO6251N.reg regsvr32.DLL WRF510N.DLL WROA0000.REG should be changed to C:\MYAPP instead of the default which is C:\IEF.) regedit.DLL DCECX51N.LIB TRSERVER.TIP WRC510N.DLL MQSSX51N.DLL RTTTRC.DLL IORSC51N.LIB IOTCP51N.TLB WROAF.DLL Copy from Cool:Gen directory to deployment directory 97 | Cool:Gen Developer’s Tips and Tricks .DLL IORSC51N.TLB WRU510N.DLL IONB51N.REG WROF0000.DLL RTTTRC.DLL WRGUIN.REG is an ASCII file containing location information for the type libraries.DLL WRL510N.

DLL TUXEDO TXWCF51N.REG is an ASCII files containing location information for the application. if the application was deployed to C:\MYAPP then the paths in <load modulename>.DLL ENCCX51N. It contains path names that must be changed to indicate the current directory in which the application is deployed.REG • Register files  all DLLs <load modulename>.DLL PPCCF51N.DLL CASCADE.DLL TXMG51N.reg 98 | Cool:Gen Developer’s Tips and Tricks .DLL PPCCX51N. Application Files Each application requires one deployment per workstation.DLL The client software from the communications middleware vendor must be installed for connectivity to the server.EXE <load modulename>.DLL TCP CFBMO51N.DLL ENSCX51N.DLL TCPCX51N.DLL TCPCF51N.exe <load modulename>. Executable and Support Files: • Copy from <model>/c directory to deployment directory <load modulename>.) regedit.DLL TXCX51N.DLL ENSSX51N.DLL TXWCX51N.REG should be changed to C:\MYAPP instead of the default which is C:\IEF.DLL TCPMG51N.DLL PPCMG51N. (ie.DLL ENCMG51N.DLL TXMO51N.DDE <load modulename>.DLL <load modulename>.ENCCF51N.HLP <load modulename>.DLL TXCF51N.DLL ENSCF51N.

if an Excel spreadsheet is placed in an OLE AREA on a window. then Excel would have to be installed on the deployment target to activate and edit the OLE AREA contents.DLL • Register files regsvr32.DLL OLEPRO32. • Copy from Windows System directory (NT: winnt/system32 or W95/W98: windows/system) to Windows System directory OLEAUT32. Refer to the installation instructions from the OCX supplier.exe OLEPRO32.OCX / OLE Files: All OCX controls and OLE servers used in the application have to be installed on the Workstation.DLL Support Application Files: Any applications that have been used to create the contents of an OLE AREA must be installed on the deployment target to get in-place or out-of-place activation. 99 | Cool:Gen Developer’s Tips and Tricks . For example. Each requires one deployment per workstation.

100 | Cool:Gen Developer’s Tips and Tricks .

built on a workstation using the Cool:Gen 5. the registry of the web server machine must be updated. Please consult the Cool:Gen 5. In order to provide examples in the instructions below. Additionally. the target execution environment is a web server machine. like c:\inetpub\wwwroot\model With the new model subdirectory. To avoid errors associated with manual processes. NOTE: The deployment machine should have the same MS Windows service pack as the Cool:Gen toolset workstation. Modify these instructions according to the document directory structure on your web server machine. Web Server Document Directory Structure The Cool:Gen web client application expects to operate in a specific directory structure within your web server’s home document directory. like c:\inetpub\wwwroot\model\data and c:\inetpub\wwwroot\model\bitmap Your directory structure should now look something like  inetpub  wwwroot   <model short name>  bitmap  data Supporting Files Microsoft Runtime Files for Web Client Enablement Clients • Copy from Windows System directory to Windows System directory (winnt/system32) 101 | Cool:Gen Developer’s Tips and Tricks . For our examples. is moved to a target execution environment in which Cool:Gen is not installed.1 Build Tool has been enhanced with new target configuration tokens to automate the deployment of the web server application. the Cool:Gen 5. A new directory should be created on the web server machine to hold your application and Cool:Gen runtime files. • • • In the web server’s home document directory (c:\inetpub\wwwroot). Deployment is the process in which a client application. the recommended deployment procedure is to use the Cool:Gen 5. web server and Java servlet engine). In order to accomplish this deployment.1 Web Client Applications on a Windows NT Web Server Last Revised: 03/28/2000 This document was developed to assist in the manual deployment of Cool:Gen 5. create two new subdirectories called “data” and “bitmap”. we will use c:\myapp.Deployment of Cool:Gen 5. Cool:Gen and Microsoft runtime files must be manually copied to specific locations on the web server machine.1 toolset or CSE in conjunction with the Build Tool.e.1 Web Client applications. It is also assumed the web server machine is already configured with the required supporting software (i. For web clients. and the Build Tool to deploy the application to the web server.1 Installation CD to install the TCP/IP or MQSeries runtime.1 Service Pack 1 Technical Requirements for specific product version information. create a new subdirectory using the model’s short name. The Cool:Gen 5. we will assume the web server’s home (default) document directory is c:\inetpub\wwwroot.1 Service Pack 1 CD to install the Web Client Enablement runtime.

DLL ICG510N.EXE TRTRACE. if the typelibs are deployed to C:\MYAPP then the paths in WROAF.TIP WRC510N.DLL CMCF51N.TLB and WROF0000.DLL 102 | Cool:Gen Developer’s Tips and Tricks .DLL ICE510N.LIB SRVLTRT510N.COMCTL32.DLL MSVCRT.INI CSU51N.DLL ICF510N.DLL RTTTIC.DLL CSUVN51N.REG should be changed to C:\MYAPP instead of the default.INI COMMCFG.reg regsvr32.DLL WROA0000. (In other words.DLL OLEPRO32.DLL ICL510N.REG WROF0000.DLL RTTTRC.DLL CMICX51N.DLL CSUMG51N.HLP OLEPRO32.DLL ICU510N.TLB).DLL MSVCIRT.DLL TRSERVER.DLL Cool:Gen Web Client Enablement Runtime Files • Copy from Cool:Gen directory to deployment directory (c:\myapp) CFBMO51N. which is C:\IEF.DLL WRGUIN.DLL MFC42.) Register the supporting runtimes from the command line with regedit.HLP RTTTRC.LIB RTTTRC.DLL IEFMBT.exe ICU510N.CNT RTTTRC.REG is an ASCII file containing location information for the Cool:Gen type libraries (WROA0000.DLL CODEPAGE.exe wroaf.TLB WROAF.HLP RTTTIC.DLL NETTRACE. It contains path names that must be changed to indicate the current directory in which the typelibs are deployed.DLL RTTTIC.TLB • Register files WROAF.

Application Files • Copy from <model>/html directory on the development machine to web server’s home document directory (c:\inetpub\wwwroot) *.gif COOLGen_pageRt. already copied to your C:\MYAPP directory (see previous section “Cool:Gen Web Client Enablement Runtime Files”).DLL TCPCF51N.DLL TCP CFBMO51N.DLL TCPMG51N. the MQ client software from IBM must be installed and configured for connection to the application server. using the Cool:Gen toolset.js COOLGen_pageDn.DLL MQICF51N.html COOLGen_End.DLL MQSCX51N.gif COOLGen_pageUp.Communications Middleware Files for Web Client Enablement Clients • Copy from Cool:Gen directory to deployment directory (c:\myapp) MQ Series CFBMO51N. This method “hard-codes” the communication parameters into the generated application. Another method is to use the runtime file commcfg. See “Configuring Web Client Enablement Communications” in the Web Client Enablement Handbook for details on customizing this file. If using MQ Series.DLL TCPCX51N.DLL MQSCF51N.shtml • Copy from Cool:Gen directory on the development machine to web server’s home document directory (c:\inetpub\wwwroot) COOLGen_Default.gif 103 | Cool:Gen Developer’s Tips and Tricks . One method is to configure communications parameters before code generation.ini.DLL MQSMG51N.html COOLGen_History.js COOLGen_Make.gif COOLGen_pageLt.DLL Supporting Files (continued) • Configure client/server communications The Cool:Gen client runtime must know how to communicate with the Cool:Gen application servers.DLL MQSSX51N.

c:\myapp\Validation.reg • Configure environment Add the following to the System Classpath on the deployment machine: c:\myapp\runtimesupport.png • Copy from <model>/servlet directory on the development machine to the servlet engine’s servlet home (like c:\jrun\servlets) *.html *.gif COOLGen_rowRt.properties • Copy from <model>/bitmap directory on the development machine to the new model bitmap directory (c:\inetpub\wwwroot\model\bitmap) *. (In other words.jar.jar Validation.REG should be changed to C:\MYAPP.REG is an ASCII files containing location information for the web client application.gif COOLGen_rowUp.gif *.jar 104 | Cool:Gen Developer’s Tips and Tricks .gif COOLGen_rowLt.gif • Copy from <model>/html directory on the development machine to the new model document directory (c:\inetpub\wwwroot\model) *.) Register the application runtimes from the command line with regedit.exe <load modulename>.COOLGen_rowDn.jar • Register files <load modulename>.css • Copy from Cool:Gen directory on the development machine to the new model document directory (c:\inetpub\wwwroot\model) purge.dll *. if the application is deployed to C:\MYAPP then the path in <load modulename>.jpg *.class Application Files (continued) • Copy from <model>/c++ directory on the development machine to deployment directory (c:\myapp) *. It contains a path name that must be changed to indicate the current directory in which the application is deployed.reg • Copy from Cool:Gen directory on the development machine to deployment directory (c:\myapp) runtimesupport.js *.

gif   COOLGen_rowUp.jar Sample Resulting Web Server Directory Structure  winnt   system32   … <Microsoft supporting runtime files>  inetpub   wwwroot    <model short name>     bitmap     *.Add c:\myapp to the System Path on the deployment machine.gif   COOLGen_rowDn.HTML    *.gif   COOLGen_rowRt.jar  … <Cool:Gen supporting runtime files> 105 | Cool:Gen Developer’s Tips and Tricks .c:\myapp\Validation.jar  Validation.gif   COOLGen_pageRt.gif  jrun   servlets   *.properties   *.js   COOLGen_pageDn.dll  *.CSS    purge.html   COOLGen_End.JS    *.jpq     *.gif     *.gif   COOLGen_pageLt.reg  runtimesupport.SHTML   COOLGen_Default.js   COOLGen_Make.gif   COOLGen_rowLt.png    *.class  myapp  *.html   COOLGen_History. Add the following to the servlet engine’s classpath (within Jrun Administrator): c:\myapp\runtimesupport.jar.gif   COOLGen_pageUp.

106 | Cool:Gen Developer’s Tips and Tricks .

107 | Cool:Gen Developer’s Tips and Tricks .

If the program is more complex with many READ/READ EACH statements then you can use the following method to make sure you are getting to exactly the right SQL statement. 108 | Cool:Gen Developer’s Tips and Tricks . the . 1. do a find on: num = "0000000001" Here’s a very simple example of what you’ll find: globdata->psmgr_debug_data. Find a key word that will get you to the SQL by doing a find on the statement number of the READ statement in the action diagram. num =”nnnnnnnnnn” For the example above. Find the action diagram documented as comments in the C program using the following by doing a find on the following word: procedure statements Here’s a very simple example of what you’ll find: /* /* /* /* /* /* /* /* /* /* /* /* +-> JAMES 04/06/00 23:19 */ ! ENTITY ACTIONS: */ ! Entity View p allan */ ! id_number */ ! */ ! PROCEDURE STATEMENTS ! */ 1 ! +=>READ p allan */ 1 ! +> WHEN successful */ 1 ! +> WHEN not found */ 1 ! +-*/ +--*/ */ 2. f_28().last_statement_num = "0000000001". you can find the SQL generated by Cool:Gen by simply searching through your generated C program (i.e. Cool:Gen generates a 10-digit statement number. Bartholomew Consultant Finding SQL in a C Program For most simple cases.sqc file) looking for “EXEC SQL” until you come across the SQL.Finding SQL in C and Cobol Programs Alan D.

3. Do a find/ Refind using the 10 digit statement number found above 0000000015. COMPUTE LAST-STATEMENT-NUM = 0000000015 MOVE ‘N’ TO READ-EACH-0043647041-ESC-FLAG PERFORM PARA-0023461916-OPEN THRU PARA-0023461916-OPEN-EXIT IF SL-23461916 NOT = SUCCEEDS READ 1.ID_NUMBER FROM ALLAN ALLAN01 . static void f_28(void) NOTE: The SQL is above the line you just found. Find the SQL by using the key word on the line below the one you just found. Finding SQL in cobol 1. The figure below should be what you are looking for. 15* 15* 15* 15* 15* 15* 15* 15* ! +=>READ EACH (Cursor Hold) p applicant ! ! p appliant_grade ! ! p vacancy_announcement_grade ! ! p vacancy_announcement ! ! SORTED BY ASCENDING p applicant last_name ! ! AND SORTED BY ASCENDING p applicant first_name ! ! AND SORTED BY ASCENDING p applicant middle_name ! ! AND SORTED BY ASCENDING p applicant 2. do a find on: f_28(void) Here’s a very simple example of what you’ll find: EXEC SQL DECLARE CUR_0000001007_1 CURSOR FOR SELECT ALLAN01. Find the statement number or the READ EACH you are trying to look for in this case 15. nnnn(void) For the example above. COMPUTE LAST-STATEMENT-NUM = 0000000012 109 | Cool:Gen Developer’s Tips and Tricks .

PERFORM PARA-0000000000-TRACE THRU PARA-0000000000-TRACE-EXIT IF TRACE-RET-CD NOT = 8 PERFORM PARA-0158351222 THRU PARA 0158351222-EXIT EVALUATE SL-158351222 2. 110 | Cool:Gen Developer’s Tips and Tricks . MOVE SUCCEEDS TO SL-23461916 the SQL should be above this .

111 | Cool:Gen Developer’s Tips and Tricks .

In order to get a listing of the parameters.. Although it is not specified in the window above...... This way.) Both methods will complete the registration process.. You do not need to reboot after the 'regte' is run. The only one of the parameters that you might not recognize is 'instance' . type ‘regte ?’ at a command prompt. the developer can use a command prompt.. Type regte 4.11-1 (asynchronous daemon) and TE-UF-4.. 112 | Cool:Gen Developer’s Tips and Tricks .. If you do this on your box.Registering the TE as a Service . the funnel and daemon start up when the machine is booted. you will see two new entries under NT Services: TE-AD-4. followed by the appropriate parameters.regte Within a Command Prompt In an NT environment. This eliminates the need to bring up the funnel and daemon manually each time the server is booted. go into the Control Panel … Services and change the startup type of each new entry to automatic.11 1 .... To complete the registration process. it is possible to register the transaction enabler as an NT Services. all seven parameters must be separated by a space. To make this technique more useful..) or go to start .in most cases that is '1' . The registration is done by executing the regte command.you are only running one instance per box.11-1 (user funnel).. run and type (coolgen path)\regte 4.11 1 c:\coolgen .

TE-AD-4. To do this using regedt32: Select the line for the funnel Select the menu option Edit and Add Value Enter in the name "DependOnService" without the quotes. Run regedt32 and go to the HKEY_LOCAL_MACHINE hive (like a folder). leave the data type as REG_SZ and select OK Doubleclick on the new entry in the right panel and enter in the value for the daemon as it appears in the key (ex.11-1) and select it. To do this you need to go into the registry. Expand to SYSTEM\CurrentControlSet\Services. If you happen to be using regedit instead: Select the line for the funnel Select the menu option Edit. TE-AD-4. Look for the user funnel service (something like TE-UF-4. New and String Value Enter in the name "DependOnService" without the quotes in the New Value entry in the right panel Doubleclick on the new entry in the right panel and enter in the value for the daemon as it appears in the key (ex. You'll want to put the dependency on the funnel which states that when the daemon is stopped also stop the funnel and when the funnel is started also start the daemon.“Here's one that always annoys me:” If you've set up the TE on your workstation as services and you start and stop them from the services applet you may want to create a dependency between the funnel and daemon. Be VERY careful.11-1) and select OK The next time you reboot the dependency will be there.11-1) in the Value data field and select OK Sam Glaser Computer Associates Principal Consultant 113 | Cool:Gen Developer’s Tips and Tricks .

A record with the current identifier already exists on the database. This is detected before a database access and is always followed by message 40. the ME code is set. or has gone out of scope. checks are generated to assure that mutually exclusive relationships do not exist in the database. Add exception logic to the PAD. IA Data retrieved from the database is unusable because it does not match the permitted values for the field. The SQL code and supporting information follows this message. This can be caused by one of several different errors: DB DE DF DU In a READ qualified by a WHERE clause that uses CURRENT OF views. and the CT code is set.Database Status Error Codes BP BT CT Data is unusable because it does not match the permitted values for the field. This is only detected if "Enforce Data Modeling Constraints" was selected as a generation option. all mandatory relationships are created as well. and the transaction aborts. When the Enforce Data Modeling Constraints option is selected for code generation. 114 | Cool:Gen Developer’s Tips and Tricks . DISASSOCIATE or TRANSFER. NF Not Found. This is detected after a database READ. An error was encountered in the SQL statements. If any one member of the mutually exclusive set exists. An action block reads A and attempts to ASSOCIATE it to B. and the action block attempted to use the view in a READ. If any mandatory relationship is missing. MU Mutually exclusive relationships were found to exist in the database after an ASSOCIATE or TRANSFER. An action block that uses a persistent view was called without the view being populated. ASSOCIATE. and is always followed by message 41. Exception logic was not included in the previous read and the current action is invalid based on the read results. These checks are generated at the exit from the action block that includes the CREATE verb. If the constraint is violated. ME When the Enforce Data Modeling Constraints option is selected for code generation. the transaction is aborted. usually an SQL error or database integrity problem. UPDATE. Non-numeric data was detected in a numeric field before a database access. The following example illustrates this: A is related to B and to C in a mutually exclusive set. One or more of the views in an ASSOCIATE or TRANSFER statement has not been populated FE A non-recoverable error was encountered. An error was encountered in the supplied date or time duration modules. and the "when duplicate found" clause was not included in the CREATE statement. This is always followed by message 45. the view that should be CURRENT has not been read. none of the other members are allowed to exist. The generated code ensures that no ASSOCIATE action violates a defined mutually exclusive constraint. A view for an UPDATE has not been populated and locked. EI An error was encountered in one of the supplied functions. checks are generated to ensure that whenever a row is added to the database.

Q2. If the foreign key is not null and also not the same value as the requested key. RE An error was encountered in the processing of a DELETE or DISASSOCIATE statement. Q4 This series of status codes indicates an internal processing error. the transaction fails. This constraint concerns the effect of overlaying the value in a foreign key when an ASSOCIATE action is applied to a one-to-many relationship. An action block that uses a persistent view was called without the view being populated. Both ends of the relationship are checked before an ASSOCIATE is permitted. Further research will be required to pinpoint the exact cause of the internal processing error. or so many cascade deletes that the processing could not handle them. and the transaction aborts. If this constraint is violated. the effect is the same as a DISASSOCIATE action. Contact support if you receive any of these status codes. and the action block attempted to use the view in a READ. QD When the Enforce Data Modeling Constraints option is selected for code generation. the OO code is set. or has gone out of scope. the view that should be CURRENT has not been read. the QD code is set. VU A view was not populated under one of the following conditions: In a READ qualified by a WHERE clause that uses CURRENT OF views.OO When the Enforce Data Modeling Constraints option is selected for code generation. ASSOCIATE. A view for an UPDATE has not been populated and locked. The generated code ensures that before an ASSOCIATE action is performed the attribute on which the foreign key is based is null. This is called a quiet disassociation because it executes without performing any database integrity checks. One or more of the views in an ASSOCIATE or TRANSFER statement has not been populated 115 | Cool:Gen Developer’s Tips and Tricks . Q1. The association is said to exist if the value of the foreign key equals the value of the attribute on which it is based. UPDATE. The error can be caused by several conditions. If this constraint is violated. If the foreign key is populated and no cascade delete logic is performed. This prevents the foreign keys of several different rows from pointing to the same related row. checks are generated to enforce one-to-one relationships. Database referential integrity would be compromised if the statement was permitted. DISASSOCIATE or TRANSFER. the association requested must match the one that already exists. checks are generated to prevent quiet disassociations. Q3. such as a request for more memory which could not be fulfilled. If not. and the transaction aborts.

Example 1 . The NCAL member is linked into the load module using the PDA3108 action block. research the more common reasons for the error. At generation time. For this example the collection id is PODSCCAUDB90. In this first example the error message shows a DBRM token 167B2F34195D9880 for action block PDA_3108U_HOLD_REQUEST. Figure 1 116 | Cool:Gen Developer’s Tips and Tricks .DBRM member not bound to the DB2 collection This give a couple of examples on how to You just received the error message below (Figure 1).Resolving DB2 –805 Errors Lawrence Joseph Barreca USDA National Finance Center Computer Specialist (Programmer Analyst) There are many reasons for an -805 DB2 error message. This is the version of the DBRM that is linked into load module PD25. Cool:Gen will generate a DBRM and an NCAL member with the name PDA3108 for this example. The PDA3108 DBRM module is bound to the DB2 collection for this application.

Figure 2 117 | Cool:Gen Developer’s Tips and Tricks . of course. is different from the above. The token in the DB2 packaging shows 1674C76801ED11C8 which. In this example. we used Platinum tools to view the CONTOKEN for the DBRM.Our next step is to view the token (Figure 2) in the DB2 package for this member.

In column 25 of the first line is the token for the DBRM module.We can now verify the token in the DBRM that was generated by Cool:Gen (Figure 3). In this example the appropriate collection id is PODSCCAUDB90 shown in Figure 1. Figure 3 Conclusion:The error message (Figure 1) shows token 167B2F34195D9880 and it matches the token in the generated DBRM (Figure 3) but does not match the token from the packaging in the DB2 database (Figure 2). If this member was used in the DB2 bind. This can be found by browsing the generated DBRM member. then the token here should match the token in the DB2 packaging. Run a bind for the PDA3108 member to the appropriate collection id and the problem is solved. Then display Hexadecimal characters (Command ===> hex on) and turn columns on (Command ===> Cols). 118 | Cool:Gen Developer’s Tips and Tricks .

of course. The token in the DB2 packaging shows 167B52ED091E53BC (Figure 5) which.Example 2 . 119 | Cool:Gen Developer’s Tips and Tricks . is different from the above. Figure 4 Our next step is to view the token in the DB2 package for this member. you have a load module that worked perfectly ten minutes ago and now you are getting the error message below (Figure 4). This is the version of the DBRM that is linked into load module PD50. In this example the error message shows a DBRM token 167D013A1E2C14F0 for action block PDA3304.Shared Action Blocks Ok.

Then display Hexadecimal characters (Command ===> hex on) and turn columns on (Command ===> Cols).Figure 5 We can now verify the token in the DBRM that was generated by Cool:Gen (Figure 6). This can be found by browsing the generated DBRM member. Figure 6 120 | Cool:Gen Developer’s Tips and Tricks . then the token here should match the token in the DB2 packaging. If this member was used in the DB2 bind. In column 25 of the first line is the token for the DBRM module.

and binding the PDA3304 DBRM to the DB2 database. we see that the token in Figure 5 and Figure 6 are the same. Run an install for load module PD50 to link in the latest version of PDA3304 and the problem is solved.Conclusion: The error message (Figure 4) shows token 167D013A1E2C14F0 and it does not match the token in the generated DBRM (Figure 6) or the token from the packaging in the DB2 database (Figure 5). This is the result of someone generating a new PDA3304. However. that is shared among multiple load modules. 121 | Cool:Gen Developer’s Tips and Tricks .

1. Please see figure below. 122 | Cool:Gen Developer’s Tips and Tricks . Warnings are okay they will not stop you from generating code. depending on your development phase. b. select Consistency Check Level and decipher the appropriate level. Browse through the Cool:Gen toolset Help menu for runtime error codes The Cool:Gen toolset Help is very helpful when figuring out runtime error codes.Steps in Solving Cool:Gen Errors Some of the problem encountered in Cool:Gen. 2. In either Analysis or Design menu items. Run a consistency check report The consistency check report tells you if you have any errors in your code. From the Options menu in the main Cool:Gen window. Select Check. To run the report: a. nor give you problems during runtime. Errors are what you have to watch out for. They have a list of error codes that you can look up by categories. may it be development time or runtime. may be resolved by following the steps below.

It displays tickets and issues associated with the retrieved data.sterling.trn. It takes about 2 to 3 days to obtain your password. Linkfaqs is an inquiry system that lets you type in keywords to search for a particular issue.) that you want to send. the File Upload option on this page is very useful.htm Chances are your error has already been encountered by someone else. This is also helpful in finding out if you need to apply PTFs (Program Temporary Fixes) to solve your particular problem.com/support/cses1. In order to use Linkfaqs. 123 | Cool:Gen Developer’s Tips and Tricks . you must register on-line. checkout. If you have a file (model.3. etc. Visit Linkfaqs at http://cool2.

4.246. Finally when all else fails. give the experts a call. 124 | Cool:Gen Developer’s Tips and Tricks . They have a more complete list of problem tickets reported than linkfaqs. They also have staff that can address your problems and even recreate it.5151. Call customer support 1.800.