You are on page 1of 374

J Walk Developer Guide

J Walk Developer
Release 3

Information in this document is subject to change without notice and does not
represent a commitment on the part of SEAGULL. This manual could contain
technical inaccuracies or typographical errors. The software described in this
document is furnished under a license agreement. The software may be used only
in accordance with the license agreement. It is against the law to copy the
software on any medium except as specifically allowed in the license agreement.
No part of this document may be reproduced or transmitted in any form or by
any means, electronic or mechanical, for any purpose, without the express written
consent of SEAGULL.
1993 - 1999 Seagull Business Software, B.V.
All Rights Reserved.
SEAGULL, J Walk, GUI/400 and Collector are trademarks of Seagull Business
Software B.V. and Seagull Software Systems, Inc. All other trademarks and
tradenames are the property of their respective owners.

WorldWide Headquarters

Americas Headquarters

SEAGULL
Korte Parallelweg 1
3311 JN Dordrecht
The Netherlands
Tel:
+31 78 632 28 00
Fax:
+31 78 613 81 34
Email:
info@seagull.nl
Web:
seagull.nl

SEAGULL
2520 Northwinds Parkway
Suite 250
Alpharetta, GA 30004
Tel:
770 521 1445
Fax:
770 521 6772
Email:
marketing@seagullsw.com
Web:
seagullsw.com

Part No. JW011-Z10

Contents i

Welcome to J Walk
Introduction to J Walk
J Walk Features
J Walk Developer Package
Using this Guide
Contacting Customer Service

Planning Your J Walk Project

1
1
2
3
5
5

J Walk Development Roadmap


GUI/400 Package Files, Projects and Components

10
12

Transpiling GUI/400 Package Files


Converting the GUI/400 AWD for Developer
Manual Import and Conversion of GUI/400 Components
Considering J Walk National Language Support

13
13
13
14

Distributing the Developer Project Environment


Planning Date and Amount Presentation
Field Formatting
Calendar Function (*CALEND)

Planning Files for Use with Client Packages


Planning User Help
Providing Images and Other Media
Providing Open Interface Services
Deploying Data Access Server

Styling Your Package File


Referencing Images on Your J Walk GUI Controls
Referencing Individual Icons, Images and Image DLLs
Client Color Schemes

Change Management
National Language Support (NLS)
Code Pages and Fonts on Different J Walk OS Environments
Interpreting National Characters
Choosing and Displaying Fonts
Translating Your Panels Using TTT/PC
Translating System Texts
NLS Development Issues

Differences with Client Execution Environments


OIS and Client Execution Environment Differences
Client Image Differences
Client On-line Help Differences

14
15
16
20

20
21
21
22
22

24
25
27
30

33
33
34
35
38
38
42
45

47
47
47
48

ii

J Walk Developer Guide

Using J Walk Developer


Before You Begin Using J Walk Developer
Providing Developer Authorization
Using J Walk Developer Dongle

Installing J Walk Developer


Launch the Configuration Assistant

Starting the Developer


Initial Dongle Authorization

Upgrading the Developer

Exploring J Walk Developer


Exploring Supplied Car Demo Application
Terminal Editor
Activating Terminal Editor Window
Terminal Editor Interface Window
Terminal Editor Work File (JWE)
Picture Album
Screens
Pictures Versus Screens
Screen Identification
Host Fields

Panel Editor

49
49
50
50

51
51

53
54

55

57
58
59
60
60
62
62
62
63
63
65

65

Activating Panel Editor Window


Panel Editor Interface Window
Panel Editor Work File (JWA)
Panels
Menu Control Type
Message Box Control Type
Panel Fields

66
66
68
69
69
70
70

Tools Menu Functions of J Walk

73

Text File
Translation Table
Hidden Screens
Scripts
Developer OIS objects
Package File Licenses
Package File Compilation Process

74
75
75
75
76
76
76

Best Guess Process Overview

76

Applying Best Guess


Screen Templates
Panel Templates

77
78
80

Contents iii

Data Organizer
Working with the Data Organizer
Filters
Find and Action

Developer Project
Developer Project Requirements
Developer Project Settings

Building a Package File


Developer Preparation Phase
Getting Started Building Your Package File
Modifying Your Picture Album
Optimizing Best Guess Results

Developer Building Phase


Manipulating Live Screens
Modifying a Panel
Mapping Host Field Constructs to Panel Objects
Accessing Project Externalized Text Files
Applying Data Access
Mass Panel Updates
Compiling Panels

Providing Users with On-line Help


Activating Help for Panel Controls in Developer
Naming Your Help File
Adding References to the Windows Help File
Adding References to HTML Help Files

Preparing Images
Referencing an Image to a Push Button
Referencing an Image to a Title Bar
Using Image DLL Utility to Embed Bitmaps into a DLL
Convert Bitmaps to Java Enabled Format (HTTP)

Maintenance Phase
Launching the Change Management Wizard

Interfacing with Package Files


Linking with Other Applications
Data Access Scripting Methods
Creating an OIS Object
Attaching an OIS Object to a Panel
Attaching an OIS Object to a Push Button or Menu Item
Attaching Script to an Application, Panel or Field
Linking Windows Client Data to Microsoft Excel via DDE

99
99
101
101

101
102
103

105
106
106
111
113

115
115
116
117
117
117
121
122

123
124
126
126
129

129
130
130
130
131

132
132

133
133
134
135
135
135
136
136

iv

J Walk Developer Guide

Linking Clients with other Programming Environments

137

OIS Requirements
OIS API Processing Requirements
OIS General API Server Process
Linking to ActiveX Programming Environments

138
138
138
140

Applying Open Interface Services for Java

147

OIS for Java Example Resources


Calling Java classes from the J Walk Java Client

Distributing Your Package File Set

150
151

153

Replacing the J Walk Windows Client Signature with Your Own 153
Create J Walk Diskette Images
Standard J Walk Windows Client Images
Selecting Package Files for Distribution
Customizing Your Installation
Testing a Package File with J Walk Windows Client

Deploying Your GUI Product


Preparing For Customer Visit
J Walk Product Roll-out at Customer Site

Demonstrating Your Package File


Make Demonstrations to Run without the AS/400
Defining the Screen Logic in the Demo
Importing Demo Screen Logic
Creating the Demo Floppy Disk(s)
Creating Your Own J Walk Demo Icon
Creating a Self-Running Demo

Using the SEAGULL Collector


Collector Process
Collector DDS Keyword Handling
Collector Prepare Phase
Collector Extract Phase
Collector Combine Phase
Collector Work Files
Collector Collect Phase

Getting Started Collecting Your AWHOST File


Identifying the Application Libraries for Collection
Starting the Collector and Verifying the Libraries
Updating the User Options
Submitting the Collector Run
Reviewing the Collector Run Results on the AS/400
Transferring AWHOST File to the PC

154
154
157
159
166

167
167
169

189
189
190
192
192
193
193

195
195
197
197
198
199
199
200

200
201
201
202
203
203
203

Contents v
Evaluating Created Picture Album from Collected AWHOST

Influencing Collector Results


Influencing the Collector Process with User Options
Collector User Option Parameters
Collection Formats to Remove or Omit
Collection of Language Display by Indicator Settings
Collector Select Language option
Collector Program Flow
Proposals to Influence the Collector

204

205
205
206
213
214
215
215
216

AS/400 DDS Keyword Listing


Collector Work File Layouts

221
227

AWOBJD - Object Descriptions


AWMB - Member Listing
AWFMT - Format Attributes
AWTXT - Single DDS Texts

227
230
231
232

AWHOST - Layout
Collector Error/Diagnostic Messages
Collector Prepare Phase Messages
Collector Extract Phase Messages

J Walk Developer Reference


Terminal Editor Accelerator Keys
Terminal Editor Host Field Operations
Panel Editor Accelerator Keys
Panel Editor Field Operations
SEAGULL Reserved Words
Script Language Reference
Script Language Syntax Statements
OIS Provided Script Functions
@ Function
Abs Function
Cdate Function
Date Function
HostWaitForScreen Function
HostScreenSendKey Function
InStr Function
Left Function
Len Function
Ltrim Function
Mid Function
PanelUpdateEnable Function
Right Function

233
238
238
242

249
249
251
251
255
257
259
260
264
266
266
266
266
266
267
268
268
268
269
269
269
270

vi

J Walk Developer Guide


Rtrim Function
ScreenIdGet Function
Str Function
Time Function
TimeDiff Function
Trim Function
Val Function
Wait Function
FieldPut
FieldGet

Implementing OIS Functions


OIS Example Resources
Triggering OIS DLL Function Calls During Windows Client Execution

Calling Java classes from the J Walk Java Client


ChangeSession
FileCreate
FileStringAppend

270
270
271
271
271
271
272
272
272
273

274
274
281

283
284
285
285

OIS DDE Functions

286

DdeInitiate
DdeExecute
DdePoke
DdeRequest
DdeTerminate
EventNameGet

286
287
288
288
289
290

OIS Host Functions

291

HostCursorGet
HostCursorPut
HostDimensionsGet
HostFieldGetData
HostFieldGetProp
HostFieldPutData
HostScreenGetLine
HostScreenGetRaw
HostScreenGetRect
HostScreenGetString
HostScreenPutString
HostSessionQueryStatus

291
292
293
294
295
296
297
298
299
301
302
303

OIS MainSession Functions

304

MainSessionConnect
MainSessionDisconnect
MainSessionGetId
MainSessionGetWinHand
MainSessionTerminate

304
305
306
306
307

Contents vii
MainWindowSetMode
Messagebox

308
308

OIS Multimedia Functions

310

MmPause
MmPlay
MmSkipNext
MmSkipPrev
MmStop

OIS Msg Functions

310
311
312
313
314

314

MsgEventRequest
MsgWinmsgSend

314
315

OIS Panel Functions

316

PanelButtonClick
PanelFieldGetData
PanelFieldGetProp
PanelFieldlistGetData
PanelFieldPutData
PanelNameGet
PcCommand
Panel Field Types Script Constants

OIS Script Functions


ScriptCall
ScriptExec
ScriptGlobalGet
ScriptGlobalSet
SessionStartupDataGet
URLOpen
WINHelp

Data Access Scripting Methods


DataAccessReceived
DataAccessRequest
Data Access Reference Syntax
Data Access script reference example

316
317
319
320
321
322
324
325

325
326
326
327
327
328
329
329

331
331
332
333
334

J Walk API Error Codes

334

Message Event Modes


Message Event Codes
Message Send Mode

336
336
337

Using the Configuration Assistant


Launch the Configuration Assistant
Configuring Data Access with the Developer
Configuration (JWALK.INI) Settings Overview

339
340
340
341

viii

J Walk Developer Guide


Router Settings
Emulator Settings
Advanced Connectivity Settings
Signon Settings
System Settings
DBCS Settings
Control File Settings
Data Access Settings
Miscellaneous J Walk Settings

Using the Internal Emulator

Index

342
342
343
345
347
349
350
350
351

352

354

Welcome to J Walk

Welcome to J Walk
Thank you for choosing J Walk. You now have the opportunity to ignite AS/400
applications with the power of contemporary desktop technologies.
This short section provides highlights and overview information about the J Walk
product line, including:

An Introduction

Features

Components Overview.

Use of this guide and on-line documentation provide information about using
these products including interactive "Roadmaps."
And for suggestions and when you have determined there is a problem, please see
the suggested steps in contacting our Customer Service organization.

Introduction to J Walk
J Walk is a suite of development tools and enduser products for adding a
Graphical User Interface (GUI) client to existing AS/400 applications. This
solution can be implemented on a variety of desktops over various networking
environments, including Internet/Intranet implementation. The same solution
can also be delivered to a Local Area Network (LAN) environments and local PC
configurations.
The components of J Walk include:
SEAGULL Collector runs on the AS/400 and collects all screen sources from
your host application to a single file which can be read by the Developer.
J Walk Developer (also referred to as "Developer") is a tool set that runs on
your PC and helps you build, customize, and enhance GUI panels for all screens
identified by the Collector.
Once you have built your panels and compiled them, the following components
are used to deploy and manage the J Walk enhanced AS/400 application.
J Walk Server for NT is the centralized engine that serves the J Walk enhanced
AS/400 applications on demand to clients over your internal network or via the
internet using the Windows NT Server platform.
J Walk Native Server is the centralized engine that serves the J Walk enhanced
AS/400 applications on demand to clients over your internal network or via the
internet using your AS/400 to do it all.

J Walk Developer Guide


J Walk Java Client allows application users to use their J Walk enhanced AS/400
applications from a JVM Device or Java enabled Web browser connected to the
J Walk Server.
J Walk ActiveX Windows Client controls utilize the industry standard ActiveX
protocol for providing "pull" deployment of the Windows Client and associated
files using any ActiveX-enabled container (such as MSIE version 4 browser or
Visual basic program).
Your users can open a browser at any HTML startup page containing the control
(We provide examples at installation) and get a fresh installation (if necessary) or
just a refresh where required.
Deploy this control and configure it for "Server Connect" mode, to maximize
your benefits as "Served Windows Clients."
J Walk Windows Client allows application users to use their J Walk enhanced
AS/400 applications over "all flavors" of Windows environment, including
Windows NT, 95/98 and 3.11.
SEAGULL License and Message Server (LMS) is a component of the J Walk
Server that enforces client and package file licensing. The LMS also
communicates with, and starts the Data Access Server for seamless integration
into existing environments.
SEAGULL Data Access Server is the component of the J Walk solution that
provides "Real-time Integrated Data Access" (RIDA) from your host applications
to your Clients with field/user level authorization. The complete package for
development and data request services is also referred to as simply, Data Access.

J Walk Features
By adding a J Walk Solution to your AS/400 application, you extend the
application's life cycle.
Using J Walk products, you can:

Provide secured, worldwide access to your package files using J Walk


Server and Clients on your intranet web site.

Provide interactive, "Real-time Integrated Data Access" (RIDA) to all


clients.

Apply Real-time Integrated Data Access to your package solutions


referencing related interactive host queries based on your host screens, or,
opening data flow re-engineering of your panels to extend the scope of
entire applications. Read-only, field level authorization maintains
application integrity and any level of security you require.

Welcome to J Walk

Automatically collect DSPF and MNU DDS source members and objects
of your host application, using the Collector.

Automatically build graphical panels using SEAGULL's Best Guess


Templates and Mappable Template Sets.

Integrate your favorite desktop applications with J Walk using common


API, DDE or J Walk's own scripting language interface. Automate
common tasks through these same functions.

Add scripts to custom toolbars, developed by the Developer or by the


enduser with Windows Client. You can also customize other preferences
such as window size and colors.

Program to and operate over industry standard Java and ActiveX interfaces
for extensive integration possibilities.

Easily migrate from GUI/400 to J Walk using one of two approaches. You
can either directly transpile a GUI/400 package file to a J Walk package file
or you can convert an entire GUI/400 project to a J Walk project. The
choice is yours.

Add Business Graphs to your panels to display a chart based on your host
screen data. Or convert these images into Advanced Chart types and apply
real-time visualization including Data Access integration using the
Advanced Chart Editor for Developer and Windows Clients!

With J Walk products, your endusers have the distinct advantage of


operating with many package files seamless and simultaneously. And your
administrators benefit because they can "tailor" deploy a mixture of Client
types (all operating over package files deployed once).

SEAGULL products provide consistent installation/uninstall management


through the Windows 32 bit Registry.

J Walk and GUI/400 are the only products that are 100% compatible with
Graphical Access, IBM's standard solution for providing OS/400 screens
with graphical panels.

Clients also have facilities for Keyboard Mapping. Apply these settings as
administrator (for all to use) or enable the local storage of Keystrokes and
special "5250" keyboard messages for all your users.

And for those screens that are not covered by your package file or
Graphical Access, J Walk can provide dynamically transformed panels.

J Walk Developer Package


Your J Walk Developer package includes the following items.

J Walk Developer Guide

J Walk Developer Guide

J Walk Server and Client Guide

J Walk CD-ROM

J Walk Dongle

J Walk Developer License Agreement

Product registration card

The J Walk CD-ROM contains the following components that pertain to building
your package files using J Walk Developer:

J Walk Developer

Advanced Chart Editor Module

SEAGULL Collector

SEAGULL License and Message Server

SEAGULL Data Access Server

Your license rights for those components are described in the enclosed J Walk
Developer License Agreement.
The J Walk CD-ROM also contains the software components deployed when
using J Walk Server and Clients:

J Walk Servers for Windows NT and Native AS/400

J Walk Java Client (CAB and JAR files cotaining the Java classes are
included in J Walk Server install)

J Walk ActiveX Client (full size)

J Walk ActiveX Client (thin size)

J Walk Plug-in Client (full size)

J Walk Plug-in Client (thin size)

J Walk Windows Client (16 bit)

J Walk Windows Client (32 bit)

SEAGULL License and Message Server

SEAGULL Data Access Server

As a J Walk Developer you may use these components for Testing and Demo
Use only. Once you are ready to deploy Server and/or Clients for productive use,
you must purchase additional licenses for these components.

Welcome to J Walk

Using this Guide


The following points are intended to assist you when you refer to this guide.

This guide is designed to answer your questions about using J Walk.

Review sections of this guide early (especially the "Planning" sections), and
please remember refer to this guide whenever you are doing something
new with the J Walk product.

The majority of this guide is organized around "Deploying J Walk"


products. All Installation and Configuration details for each product
component are contained within.

The index provides an alphabetical reference to book titles as well as other


index entries assisting you in finding a topic(s).

Use on-line help to view contextual Overviews and Related topics; simply
press a Help button. Refer to the product "Using" sections, for a basic
introduction to use and initial activities to perform.

Note: This book is intended for your use with the J Walk Product. To achieve
faster and higher quality results, you should consider participating in formalized
J Walk training. To find out more, contact a J Walk Product supplier.

Contacting Customer Service


We are proud of our products and want to hear about any issues you experience
or any ideas you have about the product.
When you contact SEAGULLs Customer Services department or your
distributor, you will be asked to supply a Troubleshoot report, if the issue affects
program operation.
Produce the Troubleshoot report using the J Walk software. This report contains
information about your PCs configuration and J Walk environment. This
information is very helpful to Customer Services when resolving your issue and
should always be included when submitting an incident.
When contacting SEAGULL, proceed to produce this report.
Follow these steps to perform this activity.
1.

Start the software.

2.

The Troublshoot report is launched from the J Walk About box.

Using Developer, select the Help | About J Walk Developer... Menu


option.

J Walk Developer Guide

Using Windows Client, left-click on the upper left titlebar icon and
choose the System | About menu entry.

3.

Press the Troubleshoot button. This will start the Troubleshoot Assistant.

4.

Navigate through the dialogs and choose to produce the Troubleshoot


report.

5.

This opens the Notepad with the Troubleshoot report. Save this report as a
text file.

6.

Email this report to your Product Supplier or SEAGULL Customer


Services ("SUPPORT@seagull.nl").
If you can not email it, please fax the information.

Planning Your J Walk Project

Planning Your J Walk Project


"Build once, deploy anywhere."
Understanding the basic requirements and additional options when you build your
application packages can significantly improve your ability to realize this goal. As
the developer, you may be responsible for the complete realization of your
solution, including at a customer site and so on.
"Development" is the focus of this information. As you continue, the "Building"
process is broke out into "Preparation" and "Building" phases. The preparation
phase includes "Getting Started" (absolutely required steps) while the building
phase includes details on many options and features. Finally, you can "Interface"
with the package files in many ways including scripts or other programming
interfaces. Please continue with the overviews and detailed questionnaire
presented within this topic before you continue.
"Deployment" is so much a part of the overall J Walk solution, that it is the major
focus of the "J Walk Server and Client Guide" also delivered with your J Walk
components. Use that guide (at any time) to familiarize yourself with how
deployment components work with the files you build using the J Walk
Developer.
Building
The Developer can build many capabilities into your package files. These
capabilities can require different implementations per environment where they are
used. Using Developer, you build these capabilities only once, and they are
implemented in the appropriate (platform required) way at execution. So you do
not need a different "Project" (and resulting Package file) per Client
environment; however there are additional files which may also need to be
distributed and deployed.
Deployment
Plan your solution in action. Determine what must be "served" and when direct
connected Clients are useful.
Plan the need for automated updates and/or specific interfaces you intend to
utilize.
Plan for the use of required and optional files, styling of your panels and future
changes to those panels. Prepare a plan now.
"Planning" your project means considering the big picture and getting answers
for the details. Overview and Related topics provide the information concerning
many of these questions.

J Walk Developer Guide


We can not tell you how to plan, but consider the following points and
questionnaire as a starting point for this process.

Are you planning to re-use GUI/400 Package files, projects and


components?

Are you familiar with your host application on the AS/400?

Is the project large enough to divide into sub-projects?

Are style issues important to you?

Will you plan the production of additional files in parallel? Will you
implement Help? DDE? Images?

Will you also use alternative programming environments such as Visual


Basic, or C++?

Will you plan to add your own package signature (look and feel) with your
own distributor icons and bitmaps?

Do you plan to execute a Package file over a Java Client versus and a
Windows Client?

Do you envision your solution using automated Client and Package file
updating?

Are you familiar with Developer change management methods?

Follow-up with the additional questions provided with the Developer Planning
Questionnaire.
Planning a project also involves considering strategic questions toward
establishing your "preferred look and feel" as to how you want to define and style
your J Walk GUI, and how to extend it (applying additional files and applications).
With so many tools and options, planning your project will take some time, but
will save you much more time and rework!
It is important to realize that you will need to refine your panels to meet your
needs.
Remember: Best Guess Templates, Template Field Maps and Template Schemes
provide much power toward customizing and re-using your work!
Developer Planning Questionnaire
Begin by defining the market to use the application you intend to build. Secondly,
determine on what platforms you intend to run your Package file(s). Gather the
specific requirements from these decisions.
So after considering your host application and your implementation goals,
consider the following planning questions:

Planning Your J Walk Project

How do you want the Graphical User Interface (GUI) to appear? Are you
familiar with Microsoft Windows or Graphical Access look and feel?

How standardized (SAA/CUA compliant) is the host application?

What specific host-to-GUI mappings for new GUI control fields have you
considered?

What GUI colors are the organization happy with?

What national language support do you require?

In extending this application can images or other media improve the


informational or motivational aspect of its use?

When using the GUI on a desktop, what standard desktop/WWW tools do


you need to consider providing from the GUI?

Does the host application use subfiles?

A good GUI includes on-line help information to assist your users. What
help requirements exist?

What "rules of thumb" can you establish for the functionality as well as the
"look and feel" of new toolbars and menu bars?

Do you envision adding icons to your menu "actions" as many new user
interfaces now do?

What details do you require for the standard "Help | About" box (which
typically displays version numbers, etc.)?

Perhaps you want to divide the project into modules or parts?

Dynamic transformation is the J Walk process for presenting a GUI panel over
a host application in real time. Mastering selective use of dynamic transformation
can reduce the actual number of panels you will need to build!
The SEAGULL Collector requires knowledge about your host application. If
you want to improve on the collection of your display files, you may be required
to customize and apply proposals. These proposals are "templates" for actual
programs. Description of the proposals specify the functionality provided for
each. Review these descriptions with persons familiar with the host application.
If they know RPG, they can use these proposals to improve the results of the
Collector run.
For each of these planning issues, consider your requirements as you proceed
through this section.

10

J Walk Developer Guide

J Walk Development Roadmap

The following Roadmap illustrates a suggested flow between the J Walk


Components as you build your package files. Roadmap information sources are
described following the overview.
Overview of J Walk Developer Components

The Development process starts on the AS/400 using the SEAGULL


Collector to automatically analyze the AS/400 application and produce a
single AWHOST file.

This file (containing your host screens) is loaded to a Development PC


where the J Walk Developer is used to build the panel files and prepare
your package file for deployment.

Package files can provide Data Access interactive references to host data.
Package files can be used in combination and updated using various client
scenarios.

Planning Your J Walk Project

11

Deployment can be done directly to User PC's or to a centralized J Walk


Server that can be accessed by Users using a JVM Device or Java enabled
browser. Install package files on User PC's and on centralized networks (or
a configuration mix) enabling various strategies for support and control.

Deployment can additionally be performed using J Walk ActiveX Client


controls (thin and full sizes), automating software and package file
deployment resulting in "Served Windows Clients."

Roadmap Resources
Preparation and use of roadmap components are described within the following
sections, while detailed deployment information for J Walk Server and Clients is
contained in the J Walk Server and Client Guide and on-line help.
For An Overview of the Developer Tool User Interface, see "Exploring the
J Walk Developer" where by the end you are ready to explore the supplied Car
Demo package.
We recommend investigating the "Planning " sections early in order to better
understand the Developer development process as well as establish your project
requirements. Included in this area are all project setup activities.
A review of installation, configuration and upgrading activities is presented in the
"Using Developer" section.
If you want to go immediately to using Developer, then it is recommended to
review "Getting Started Building Your Package File."
For the complete description, see "Preparation phase" concerning working with
the Picture Album and Best Guess screen and panel templates as well as
"Building phase" covering refinement of the exact (final) implementation of your
Graphical User Interface field controls (resulting from Best Guess).
"Providing Data Access" as well as "Interfacing with Package Files" begin the
discussion of extending the interfaces to the desktop and/or programming
environments.
Distributing your solution is the final major activity. Replacing product signatures
with your own identification can be of great interest as well as Deployment of
your solution(s). All deployment information for J Walk Server and Clients is
provided in the J Walk Server and Client Guide.

12

J Walk Developer Guide

GUI/400 Package Files, Projects and


Components
Previous GUI/400 Projects and components can be used within the J Walk
Developer environment. Considerations for GUI/400 project conversion as well
as J Walk National Language Support (NLS) are provided in following sections.
Several different approaches should be considered prior to executing a
conversion.

First, if you have an already GUI/400 compiled package file (.AWR), all
you need to do to use this file with J Walk is to transpile. Transpiling is
provided from the Tools menu (with the compile option). The transpile
process will try to convert all found references to text, images and
additional files (like scripts). You receive a message for unfound files
during this process. Open the .AWR file and go! In minutes you will have
a new J Walk Package file (.JWR). The resulting .JWR file is not
compatible with your previous GUI/400 environment. The additional
referenced text files (.AWX and .AWM) are renamed to .JWX and .JWM.
Note: Referenced images must be converted if you plan to use the new
.JWR within the Java Client environment.
Image conversion is performed using the JWIMG utility provided on the
Tools menu. Your previous images are not affected, hence the J Walk
Windows Client is ready to go after transpiling.

The direct method for converting an entire GUI/400 project file (.AWD)
provides a complete conversion by inspecting the previous project
definition and project paths, prompting you with the selection of the
related components for conversion into a new J Walk project.
The original .AWD (and associated files such as scripts, templates and
external text files) are not changed. In any case, you are prompted for a
new project path and new project name.

Additionally, if you have created a new J Walk project definition, then you
can (manually import) selecting each type of component into your new
project using the Advanced Data Organizer. If you wish to import an entire
project (with all associated components), it is recommended to use the
direct method beginning with the .AWD file.
Otherwise, you are responsible to select all templates, scripts and other
important project files for importing into your already existing J Walk
project.

Planning Your J Walk Project

13

Transpiling GUI/400 Package Files


Transpile an existing GUI/400 Package file (.AWR) for use within the J Walk
Environment. A backup should be made prior to launching the transpiling
process.
Follow these steps to perform this activity.
1.

Select Tools | Transpile

2.

Specify the AWR file name (and full path using the requester). If the file
cannot be found (after pressing OK), a message states this and the process
will be terminated.

3.

Specify the JWR file (full path using the requester).

4.

If the JWR file already exists, you can slelect to replace the file. If the file
does not exist, it is created.

Converting the GUI/400 AWD for Developer


This method directly converts as many GUI/400 project components as possible.
Notes: Your Developer picture album must be created- hence you cannot
convert the previous Picture Album.
Also, before performing this "all at once conversion," it is recommended to make
a backup. Converted files will not function with GUI/400 ADK after
conversion.
Follow these steps to perform this activity.
1.

Open a project with the extension AWD, which is a GUI/400 project.

2.

You are prompted to go ahead with the conversion.

3.

Select Yes, to display the Convert older project settings dialog.

4.

In this panel, all the paths used in the older project will be shown. Specify
paths for all files to be converted.

5.

Press OK to copy, convert and rename the files.

Manual Import and Conversion of GUI/400 Components


You can convert individual GUI/400 project components to your Developer
environment. This process is performed using the Advanced Data Organizer.
Each component can be "imported" using the Advanced Data Organizer.
Note: In this manner, you should be aware of the project files you wish to convert
as they are not specified in advance for you. The conversion process does not
overwrite the GUI/400 component but imports and converts within your project.

14

J Walk Developer Guide


Follow these steps to perform this activity.
1.

Enter values for a new project.

2.

Select the File | Project | Import to call the Advanced Data Organizer.

3.

Press "" button

4.

In the file type requestor, choose which type of object to import.

5.

The items of the chosen file type will be shown listed in the right hand list
box.

6.

Select the items to import and press << button.

7.

The items will be copied to the new project. Nothing is done to your
originals.

Considering J Walk National Language Support


Notice: The current implementation of the Java Virtual Machine specification
(1.1) is limited to support for Single Byte Character Set (SBCS) -only. Future
enhancements using this JVM will expand Unicode options to support nearly all
languages.
If your current Packages rely on NLS, simply install a supported MRI-based file
with any J Walk Client.
In order to prepare to use NLS (Client locale) support, consider the following
requirements:

All text strings must be externalized (maximize this requirement, else limits
to use of localized text will exist).

Minimize use of embedded text within a panel (static text).

JW9TTT is a utility to capture embedded text and format it for use with
SEAGULL TTT/PC text translation product.

Distributing the Developer Project


Environment
Development of GUI panels can be split among multiple developers. If possible,
every developer should get their own Picture Album and process it completely. If
the album is too large for one developer, then you could share the album and each
developer would be assigned to develop a certain range of pictures. (Say developer
A does pictures 1 through 1000, developer B does pictures 1001 through 2000).

Planning Your J Walk Project

15

To prepare for a distributed development environment, you must provide a


"distributed project" and "global" templates. Create the main project and identify
(and place) your styling decisions into the templates. Distribute these definitions
with (portions of) the Picture Album to the development team.
A distributed project requires splitting the Picture Album (plan your use of
multiple albums). The albums can be merged together at a later time. Albums
can be split, combined to one, or re-grouped. For example, you might need to
distribute a "Financial Reporting (Inquiry)" album with all other enterprise
Packages to provide the needed financial information.
Templates (containing your specified panel attributes, etc.) can also be created
once and "shared" from a central location.
Further, there are often global screens within applications that you can isolate (e.g.
the logon screen and the main menus). Design panels for these screens and store
them in a global Terminal Editor work file (JWE) to be imported by all Developer
projects.

Planning Date and Amount Presentation


As you consider your package file requirements, keep in mind that certain fields
may be presenting dates or numerical amounts (e.g. monetary values, separated
with a decimal or comma).
When a date (or amount) is presented, your end users will probably prefer specific
local date values be presented in a familiar layout. If your package is also used in
other cultures, you may need to "build in" additional date (and amount) field
formats to allow the appropriate formats to be presented based on culture or
country.
When you decide how you want to handle your date and amount presentation,
there are several key activities that can be performed to meet your requirements.

Specifying Field Formats

Overriding the Date Window (.INI setting) for conversion of 2 digit (hostbased Year values) to 4 digit (client presented Year values)

Script date values using Cdate function (4 digit date- Date function
supports 2 digit value)

Applying the Calendar Panel Function for Date Selection

Field formatting specifies the exact layout on your client panel (as well as how to
"return" the entered value back to a host).

16

J Walk Developer Guide


Pre-defined layouts can be selected or you may specify your own (referencing
your externalized text files, applying host field breakdown technique and so
forth). Additional informational text can be inserted into the format.
Note: When you prepare and apply a field format, this format is only applied to
the displayed date or amount on the client. No change can be made with
Developer to alter your host-required usage and format layout.
Note: Please be aware that when you apply field formats, you should not also
apply Host Field Breakdown techniques to portions of the field as any portion of
the field no longer holds the "context" (field format mask) to identify the day,
month and year layouts for the date value.
Date Window conversion of host-based 2 digit "year" values to 4 digit client year
presentation is calculated from the DateWindow INI setting. The default "40"
represents the year 1940 as the start year for century counting. This value is the
same as the host default. No action is necessary unless you must change the
counting year for your specific application.
The Calendar function presents a Julian Calendar for date value selection; no
Hebrew or Arabic Calendar is currently supported.

Field Formatting
Field formats can identify both the host use of a date (or amount) as well as client
presentation (appearance) for the field.
A "Field Format" specifies the layout of the information. It is often called a
"format mask." You may specify a format mask directly at the "Appearance" tab
for a selected field. "Standard" formats are provided which work for many uses.
Additionally, because the mask expression is a textual expression, you may also
use dynamic Host Field Breakdown techniques to refer to externalized text
file(s) containing "mask expression(s)" or to refer to host fields to be used
as the format mask. In either case, a host field breakdown expression results in
a string expression which can be used to express a field formatting mask.
Note: Please be aware that when you apply field formats, you should not also
apply Host Field Breakdown techniques to portions of the field as any portion of
the field no longer holds the "context" (field format mask) to identify the day,
month and year layouts for the date value.
You can specify your own field format in the following way:
[Incoming/Outgoing AS/400 Information] Information Format Shown on Graphical
Panel

Planning Your J Walk Project

17

In order to specify a field format, you must specify the host data layout (incoming
and outgoing) and the format to apply when showing information on client panel.
You can specify field formatting directly within a selected panel field (Appearance
tab) at the "Field Format" attribute. Here, you can directly specify incoming and
outgoing formats for the host (if needed) and your resulting panel. Else, when
you are scripting, or applying external text(s) as
Refer to examples included within this topic for more details.
When specifying your own field format, you can apply host field breakdown
techniques to specify text strings to be displayed.
Note: Applying a field format does not control the way the actual host field is
represented (back on the host).
[Specifying Incoming/Outgoing AS/400 Information]
Data coming from the host can contain characters like for instance - or /.
When data is received from the host, all non-numeric characters are stripped.
Therefore data coming from the host can be seen as purely numeric.
The way data comes from and goes to the AS/400 is controlled by a formatting
string specified between square brackets. This specification can be made by
selection or typed as syntax into the field format definition.
This formatted string contains the following information:

When the field is a date, the order of the D,M and Y in the formatted
string tells you how the data, coming from the host, must be interpreted
(only numerical characters are interpreted). This information is very
important. Without it, the panel has no way to know how a date should be
interpreted.

Data will be formatted using the formatting string before being sent back
to the host.

With dates it is also assumed, that the order of day, month and year coming from
the host is the same as the data going back.
Note: When a 2-digit year is coming from the host, which has to be display
formatted to a 4-digit year, the INI file setting DateWindow=xx is used to set
the yearbase to 19xx. This will result in years to be selected between the values
19xx and 20xx - 1. The default for this setting is DateWindow=40, which is the
AS/400 default. It will also be used when the INI file entry is absent.
Characters can be used to format data going to the AS/400. In this
representation the following syntax applies:

D The day number without leading zero

18

J Walk Developer Guide

DD The day number with leading zero

M The month number without leading zero

MM The month number with leading zero

YY The year in two digits

YYYY The year in four digits

_ A blank space (an underscore MUST be specified to format a hard space)

Example Input/Output Specification on the Host:


The specified host format is in [ ]. Result of applying the format is demonstrated
following the host format.
[DMYY] Date comes in as 010364 and goes out as 1364
[DDMMYYYY] Date comes in as 010364 and goes out as 01031964
[D/M/YYYY] Date comes in as 010364 and goes out as 1/3/1964
Note: The following example (still referring to the above "date value") shows
there can be a problem when combining Host Field Breakdown technique over a
portion of a format field value. Field formatting will not do any validity checking.
In the above examples, the program will handle a day number like 64 as if it were
valid. Consequently no appropriate dayname can be found for such a day number.
This also applies when using the Host Field Breakdown technique; do not
apply host field breakdown techniques within a date field where you are applying
a field format.
Specify Information Format Shown on Graphical Panel
Data coming from the host can be shown in whatever form the Developer-user
wants.
The following effect occurs when a field format is specified.

If data is keyed in by the user, the program will try to recognize it as best as
it can.

If the program can recognize it, this data will be converted to the format
string.

If numbers or amounts become too large to fit the format string, the digits
that would not fit the format will be placed immediately before the leftmost
digit that can be shown.

The syntax for specifying information to be shown on the client panel is as


follows:

d Day number without leading zero

Planning Your J Walk Project

dd Day number with leading zero

ddd Day in short letter format (e.g. Sun)

dddd Day in long letter format (e.g. Sunday)

m Month number without leading zero

mm Month number with leading zero

mmm Month in short letter format (e.g. Nov)

mmmm Month in long letter format (e.g. November)

yy Year in two digits

yyyy Year in four digits

_ space (underscore MUST be keyed in to get a space)

text Literal text

# Digit that must be shown as a space when leading zero

0 Digit that must always be shown

CR The Credit-sign to indicate negative amounts

. Point that is shown when necessary

, Comma that is shown when necessary

The minus sign to indicate negative numbers or amounts

Table Demonstrating Information Format Shown on GUI Panel:


Value

Format

Formatted text

010364

[DMYY]dddd_d_mmmm_yy

Sunday 1 March 64

010364

[YYMD]dddd_d_mmmm_yy

Sunday 64 March 01

01-03-1964

[DMYY]the_d_of_mmmm

the 1 of March

f 100,00

f_#####0.00

f ___100.00

f 100,00

f_000000.00

f 000100.00

f 0.01

f_##0.00

f __0.01

f 105.90

$_000,00

$ 105,90

Hostfield Breakdown Syntax


To use field formatting with the hostfield breakdown technique, new syntax is
required.
The whole formatting string is used in the hostfield breakdown technique.

19

20

J Walk Developer Guide


When the format in the hostfield is not important, just two brackets are used to
indicate field formatting.

Calendar Function (*CALEND)


The *CALEND calendar function can be called from a push button or menu
item. This function is ideal for presenting uniform date selection to your end
users.
Note: The calendar function should be applied to only date selection fields. The
date selection values presented are consistent with a date type of value: Day,
Month and Year. Any date field formats are not affected by use of the calendar.
The Calendar provides today's date (default initialization) as well as control over
month and year. An enduser simply selects a date (Today button or doubleclicking a date). The value is passed to the panel field for use.
Note: The calendar is "Jullian," no Hebrew nor Arabic alternative is currently
supported.

Planning Files for Use with Client Packages


Before you build the Client package file, several other development productions
should be considered (as these files are not produced within Developer). Deliver
your Client package file empowered with additional features like

On-line help

Images

DDE links to your favorite desktop applications

Programming interfaces to custom applications

Real-time Data Access Integration

MRI-based Client locales

Presentation media

Customization of Client Installation

and much more!

Review the following associated topics in order to prepare for your planning:

Planning User Help

Providing Image and Other Media

Replacing Product Signatures

Providing Open Interface Services

Planning Your J Walk Project

Deploying Data Access Server

MRI-based Client locales

Customizing the J Walk Installation Definition File (SETUP.DEF)

Distributing Your Package File Set.

21

Planning User Help


User Help should be considered early in your project plans. To provide user help,
a panel developer and help writer must exchange necessary linking information
required in both help file and compiled panel. To call help topics or to open a
"book" requires use of provided Help calls.
Note: Client platform operation dictates the detailed requirements for each type
of help.
Help file support includes:

WinHelp (16 bit .Hlp)

WinHelp (32 bit .Hlp)

WinHelp (32 bit .Cnt)

HTML

Help producers must consider operating systems and usage differences.


Additional features are provided with Win 95 help (ver. 4.0). One such example is
the use of the .CNT file for specifying the table of contents.
You can also provide the host application help during use of Dynamic
Transformation (or anywhere you want to use host application help).
Details on help enabling within the Developer as well as example help source files
are included in the Providing Users with On-line Help section.

Providing Images and Other Media


You must provide the images you wish to use. Gather or create images and icons
for your needs. The Developer ships with icons (*.Win) for your use. You can
attach images (.ICO, .BMP, .GIF, JPEG, JPG, .DLL or .WIN) and media files
(.AVI or .WAV) as static images and panel events using the Developer.
Windows Clients can use and display all image formats (see Note). Java Clients
use only GIFs and JPEG (JPGs), and so a conversion utility is provided when
non-compliant images exist (JWIMG.EXE). Additionally, the "animated" GIF
file type is shown within Java Clients in a non-animated mode displaying the first
frame- only.

22

J Walk Developer Guide


Note: When planning your image uses, remember to follow up with the
distribution of these images. Additionally, please be aware that the JPEG (JPG)
image file format is not supported for the Windows 3.x platform.
When providing images for your packages, it is important to use a consistent
approach. You should "envision" the optimum sizing for your panels and
imagery. Here are some reminders:

Users can resize panels (and this may affect the look of your images).

Images applied to panels with dimensions less than 50 pixels by 50 pixels


are never resized.

Images larger than 50 pixels by 50 pixels are effected by panel resizing.

When providing images, please be aware that special attributes for the image can
make them "transparent" over a background, indicate the button is "Clickable"
(and therefore, a "Hotspot") and even present the "Hover hand" prior to
selection. See the presented attributes when performing the reference to specify
these types of effects.

Providing Open Interface Services


Open Interface Services allows J Walk screen and panel information to be shared
with other desktop applications. The Developer provides many functions and a
complete script language for sharing data access, also using DDE, as well as
accommodating API- level operations.
Java and ActiveX programming environments (using languages such as C/C++,
Java, or Visual Basic) are supported with J Walk and either JDK1.1 or ActiveXenabled toolkits.
OIS information is provided on-line, in the Developer Guide and in the form of
supplied example files, programs, etc. You can unpack these examples at any
time.

Deploying Data Access Server


Data Access revolutionizes how your host application file(s) can be used with
SEAGULL Clients.
Data Access services can be provided to the Developer and Clients. The Client
utilizes JWR files with Data Access references applied.
When Data Access services are being provided, an icon is displayed and
active within the toolbar (for each product).
Pressing this icon will refresh anything currently on a panel.

Planning Your J Walk Project

23

When deploying Data Access packages to your Java Clients, there are two tabs
(during configuration) which enable you to specify how Data Access is provided.
The Data Access tab specifies the actual Data Access settings including "how
you want to present" the DA icon (indicator/ data pool refresh button) in your
Java Client (located in the upper right corner next to the "running man").
To provide Data Access services, it must be installed and configured.

This diagram presents Data Access services and where they are being used. It is
an overview.
The following configuration activities must be completed. See those product
components for details.

To deploy Data Access services, the primary requirement is that the


License and Message Server, Data Access Server and your emulator session
must all be operating on the same host machine.

Collect and Promote a Data Access Server Repository.

Data Access services are enabled to Clients by specifying to use "Data


Access mode" on the Data Access tab of the Configuration Assistant.

A threshold for limiting the number of Data Access records downloaded


is provided for both development and Client environments. This
specification is stored in the INI file (DataAccessMaxRecords).

Standard Library List management provides the mechanism for managing


access to Data Access files based on session and user identification.

24

J Walk Developer Guide

The Data Access Server manages file and field authorization for each
session (and known user).

Data Access Services


Using a Data Access configured Developer, you can apply Data Access services
throughout your panels.
When configuration for Data Access services is complete, development of Data
Access enabled panels begins.
The Data Access toolbar icon is displayed when you have logged on to the
License and Message Server.
There are several different types of Data Access references that you can create for
your panels (or scripts):

single value field references (text expressions, values, lookups, script


variables, etc.)

multiple record, multiple field columnar-type presentations (graphs, combo


box and list box).

Working with the files that are referenced on your screens


Creating a GUI control using Data Access file referencing can be performed in
"Related files" mode when the emulator is located on the connected screen
(identified) as indicated within the panel you are building. When selecting
records, correct file-key assignments can be handled automatically using the
Autokey feature.
To use Data Access services, ensure you are logged on to the host machine where
the License and Message Server is running (View | Live session).
To test Data Access services, ensure the Developer is logged on to the host
machine where the License and Message Server is running (View | Live session)
connected with Data Access in ONLinemode.
Compiled panels (including Data Access references) result in a Data Access
enabled JWR file. You can check when a DA-enabled JWR file is loaded by
reviewing a Troubleshoot Report.
It is recommended to deploy the package file and Data Access environment and
test thoroughly before distributing.

Styling Your Package File


Many attributes of your J Walk user interface can be considered "elements of
style" when using your package file(s).
Some basic styling consideration must be given to

Planning Your J Walk Project

your primary font selection

use of Business Presentation Graphics and the Advanced Chart Editor

use and sizing of images

use of consistently sized panels

use of customized installation and product signature.

25

Style is your combined uses of text fonts, icons and colors to enhance a user's
knowledge of a procedure, etc. as well as, use of images. When you are
referencing textual controls, these objects include a "Style" tab for selection of
your style attributes.
Additionally, Client data values can be presented within Business graphics or
enhanced in the Advanced Chart Editor.
Referencing Images
Design the use of image-rich panels in terms of potential panel re-sizing effect.
Perhaps a National color or company logo should be placed on all panels.
Software vendors often display a logo, etc. bearing a company or application
image. The Developer provides for packaging the Clients with your marks.
Additionally, SEAGULL supplies an installation file (SETUP.DEF and
CUSTOM.DEF example) for you to customize for installation of all your
materials for a Windows Client and package file set.
Remember that some image file types remain platform-specific; so utilities are
provided to prepare your project images for the format you require.

Referencing Images on Your J Walk GUI Controls


For years, there has existed "standards" for the layout and design of Windowsbased graphical user interfaces (GUIs). These days, the standard "Menus and
Buttons" approach is not the only way to go when creating a useful GUI.
Image-based approaches suggest panel images using "transparent" text-buttons,
icons and so. Menus have become more icon-based to quickly cue users actions.
"Clickable" button states can present a "Hover hand" prior to selection.
Graphical "maps" and "Coolbars" can be created to establish a "Web-feel" for all
your Clients. Additionally, GUI controls better manage subtle interactions such
as use of listbox scrollbars, etc. (supplied attributes control these effects).
You can reference the images that you have provided (or the supplied .WIN
DLLs) using the Developer.

26

J Walk Developer Guide


One of the nice things about a graphical user interface is the ability to use images
for identification and to indicate various actions available on a panel while using a
GUI control. These images can be used on push buttons for a panel and toolbar
as well as the product logo displayed in the title bar. See the "Distributing" section
for more details about replacing the J Walk product logo with your own.
The image source may be bitmaps (BMP, GIF), compressed images (JPEG, JPG),
image DLL, or icon (ICO).
Note: Additionally, the "animated" GIF file type is shown within Java Clients in
a non-animated mode displaying the first frame- only.
When a reference is made, you can preview the image on the panel. When an
image exceeds a width or heigth of 50 pixels (e.g. 50x51 or 51x50, etc.), then you
must also consider the effect when a user resizes such a panel:

if the panel is resized significantly, it is likely to noticeably stretch the


bitmap (in that direction).

if the panel is resized (a small percentage), it is likely not to stretch the


bitmap resulting in a possible "clipping" of the image.

A number of icons are supplied with the Developer. These are stored as panel
templates and begin with the name JWICON*. You can also create your own.
Within J Walk, images can be referenced by the following GUI controls by
entering the image file or reference in the Image ID prompt of each controls
definition dialog.
Push button
When pressed, a push button performs an action. The "push" represents a trigger
which can also be represented by changing the image reference when depressed
(display states). Push buttons are also used to just display bitmaps on panels for
decoration.
Push buttons are defined as "clickable" or "non-clickable." A non-clickable push
button can not hold focus. No trigger can be attached to the field and its use is
primarily for holding a static image.
Check box
Images within check boxes are used to indicate the state of the check box,
checked, unchecked, grayed (invalid value), or if the check box is disabled.
Radio button
Images within radio buttons are used to indicate if the value is selected,
unselected, or if the button is disabled.

Planning Your J Walk Project

27

Note: Push button, check box, and radio buttons also provide a level of control
based on their display state.
Subwindow
Notebook tabs can also refer to an image.
Title bar
You can place a product (or company) logo in the title bar of the panel. This
image is displayed on all panels of your application.

Referencing Individual Icons, Images and Image DLLs


Images can be used like text "labels." In this way, the user identifies "what
happens" when an image-related control is activated.
Bitmap Image DLL files (.DLL or .WIN) contain many bitmaps (or icons) which
are displayed on button fields, subwindows and the panel titlebar. Your project
can reference up to 32 Bitmap Image DLL files.
Alternately, you can provide unlimited bitmap image format files (BMP, GIF,
JPG, or JPEG).
In styling your graphical panels, you may wonder which type of image file to use?
The following "pros and cons" about the use of Bitmap and Image DLLs is for
your information.
Conversely, text can be used like image "labels." Text can be made to appear
"transparent" over background images. Note that a text label is created using a
pushbutton. Furthermore, the text label can be "clicked" like a pushbutton (or
hyper text link).
Images can also be assigned the ability to be "transparent" over a panel (or image)
background.
And when specified, the "Hover hand" attribute can display a "Cursor Hand"
when a user performs a "mouse-over" event over fields specified as "Clickable"
controls, effectively simulating a World Wide Web "look and feel" for your GUI.
Icons
An icon is a small image file used specifically for GUI controls. This image file
type is primarily ICO, however, you may also use GIF files as individual icons.
Note: GIFs cannot be used to create an image DLL.
An icon can be used with text on a button. An example of this is a picture
followed by a descriptive word.
A bitmap cannot be used with additional text. Icons cannot be stretched.

28

J Walk Developer Guide


Note: With J Walk products for Windows, supplied icon DLLs are named with
the .WIN extension.
Images
A single image in a single file is often referred to a "bitmap." The bitmap type
image can be referenced and displayed in J Walk when created as one of these
several popular formats: BMP, GIF, JPEG or JPG.
This type of image can hold many colors and easily becomes "large." Each
bitmap type file must be managed (including distributing). This means you must
ensure that all referenced bitmaps are provided to the Client at installation. One
advantage to a bitmap file, is that you can provide use of bitmap images to your
endusers for "adding" additional images to be seen using their Client package. An
example, would be adding the personnel "image" to the new personnel record.
After "taking" the personnel picture, the image can be shown with that employee
record. Another feature to the bitmap is it can be stretched.
Note: The bitmap file type: JPEG (or JPG) is similar to a BMP type with the
ability to hold many colors and be "compressed" to reduce details and also reduce
image file sizes. Additionally, please be aware that the JPEG (JPG) image file
format is not supported for the Windows 3.x platform.
Image DLL
The image DLL is a compiled "stack" of images. These images can be of icon
(ICO) or bitmap (BMP) format. The compiled DLL contains images with
"addresses" to call the specific images. Use the image DLL when you want to
provide a finite set of images, meaning you do not expect endusers to add more
images. A perfect example is a toolbar which contains many iconic descriptions
of tools and other materials.
Note: It is not possible to create an image DLL file containing native JPEG
(JPG, or GIF) files. Convert to BMP format before attempting to create an
image DLL.
Display states can only be used with image DLLs. Image DLLs are very
convenient to ship with your Client packages because all images are selfcontained. Make image DLLs (.WIN format) using the supplied Image DLL
Creation utility (JWICON).
GUI Controls and Display States of J Walk
In the Client environment, different icons may be displayed on the same GUI
control, depending upon the state of the GUI control.
GUI control states monitored by J Walk include: In / Out of focus, Pressed /
Not pressed and Disabled.

Planning Your J Walk Project

29

Normally, each icon is a separate file. To take advantage of J Walk's ability to


monitor and reflect changing states, you must group all of these bitmaps into a
single Dynamic Link Library (DLL) file.
Note: Within an image DLL, each image is no longer identified by its file name
alone, but additionally, by an offset number, which you assign when you create
the DLL. When assigning display states to the referenced image DLL, you must
identify icon images with the offset number followed by a period (.). Icon
images are limited in responding to display states (only the default state and focus
state +1).
Bitmaps within an image DLL are able to respond to all display states.
GIF and JPEG image files do not respond to display states (as they are image file
references without an ID attribute).
J Walk Developer comes with an Image DLL utility called JWICON to build
bitmap DLLs.
Given the different possible state combinations, each GUI control can be a total
of 6 different states, which can be represented by different icons. We recommend
that you start each bitmap reference offset with a multiple of 10 for each GUI
control.
Each different state is then represented as the original offset plus a number
between 1 and 5. The following table documents which states are monitored per
GUI control and which offset is used for each state.
Offset value

Push button

Check box

Radio
button

Title bar

ID

No focus

Unchecked

Unselected

Only state

ID+1

Focus

Checked

Selected

N/A

ID+2

N/A

Unchecked,
pressed

Unselected,
pressed

N/A

ID+3

Pressed

Checked,
pressed

Selected,
pressed

N/A

ID+4

Disabled

Disabled

Disabled

N/A

ID+5

N/A

Grayed

N/A

N/A

Note: N/A= Not Applicable.


Image DLL Creation Utility
The JWICON utility delivered with J Walk Developer groups individual bitmap
files into a single Dynamic Link Library (DLL) file.

30

J Walk Developer Guide


When you run this utility, a file is created ending with the extension (.WIN ).
J Walk Developer and Clients use both .WIN and .DLL extensions. Use this
utility at a command line.
Java Client Image Conversion Utility
The JWIMG.EXE utility converts bitmaps (BMP) to GIF (when under 256
colors) or JPEG (JPG format support millions of colors) file layouts. This utility
is necessary in order for you to display graphic images on the Java Client. This
utility can be launched on the Developer Tools menu or as a command line utility.

Client Color Schemes


Setting the color scheme for the endusers of your package file is part of
developing a graphical user interface for your host application.
The Developer offers a great deal of flexibility in defining color as well as
assigning those colors to panels (and panel objects).
This flexible approach provides three types of panel object color assignment.
When considering color, consider the color resolution you want to support with
your Client package.
Today's GUIs typically run in 256 color or "High Color" (thousands of colors).
Today's richest color mode is "True Color" (16 million colors).

256 color mode means just what is described: you may manage a color
palette of 256 colors (minus the current desktop colors).

True and High color modes provide from thousands to millions of color
values.

Using color can be impressive, but you must consider the impact of such "special"
color resolutions.
What happens when a Client runs at 256 colors and you provided True color?
The answer is a desktop color effect called dithering. Dithering is a method of
"creating" colors from "known palette" colors. In this case, the known desktop
colors are used to create an alternative color combination. This combination
often results in an abnormal "flash" or strange color effects. When users run at
higher color resolutions and you have provided only 256 color images, etc, no
particular abnormal effects are encountered.
Recommendation: If possible, select one of the 16 primary colors from the
desktop palette, or select a color from the standard 256 color desktop palette. If
you must capture images beyond 256 color resolution, be aware that dithering
effects may occur when running the Client under 256 color display modes.
Reduce the color resolution in such images when running in 256 mode.

Planning Your J Walk Project

31

Color Conversion
On the AS/400, text on a screen is assigned a foreground and background color
combination from a set of pre-assigned 32 color combinations.
Since there are only 16 colors available within the J Walk internal emulator, and
there are several million colors available now for GUI controls within a graphical
environment, there is a color conversion table that lets you map a host color
combination to either desktop colors or user defined colors.
Defining the color conversion for all of the possible host field colors can be
considered one color conversion table. There are 8 such tables that can be defined
per project. This gives you the capability to set different color conversions for
different types of panel fields. For example, you could make one color conversion
table for panel fields that display data. And you could use a second color
conversion table for panel fields that group data (like group boxes, frames and
rectangles).
By using different color conversion tables for the different kinds of panel fields,
all of the panel fields could have their color based on the same host field. So that
if an error occurs and the host field changes from Green/Black to Red/Black.
The grouping panel fields could change to a highlighting color while the data
panel fields remain the same for example.
Standard (Desktop) Color Mapping
When you choose your panel objects to have Normal color, J Walk applies the
operating system colors for that type of graphic control. The table below denotes
mapping of the J Walk panel object to the operating system's color scheme class
objects (native client environments).
GUI control

Windows 95/NT

Windows 3.x

Panel
background

3D objects

Button

Panel title bar

Title bar

Title bar

Push button

3D objects

Button

Entry field

Window

Window

Multiple-line
entry field

Window

Window

Spin box

Window

Window

Combo box

Window

Window

Hover help

Tooltip

Tooltip

32

J Walk Developer Guide


GUI control

Windows 95/NT

Windows 3.x

Menu bar

Menu

Menu

Message box

Message box

Message box

Radio button

3D objects

Button

Check box

3D objects

Button

List box
header

Window

Window

List box
column

Window /Lt. yellow

Window /Lt. yellow

Graph

N/A

N/A

Group box

Blue / Gray

Blue / Gray

Frame

3D objects

Button

Rectangle

3D objects

Button

Notebook

3D objects

Button

Subwindow

3D objects

Button

Text field

Blue

Blue

Output field

Black

Black

User window

Blue

Blue

User-defined Colors
By default, J Walk assigns operating system colors to all of the GUI controls. You
can pre-define up to 40 colors in your GUI development project. These colors are
meant to be used to assign colors to GUI controls other than the standard
operating system colors.
The pre-defined 40 colors can contain your own fixed colors or reference
operating system colors. In this way, you can map (for example) push buttons to
the Window object instead of the 3D object. When you compile your panel files,
the resulting package file will store these user-defined colors and display them in
the client environment.
Then, when the enduser changes their desktop colors to their own preferences,
J Walk Windows Clients will follow these preferences.
In general, we recommend that you use these operating system colors for your
GUI controls. However, we understand that you will also want to assign some
fixed colors within your panels as well.

Planning Your J Walk Project

33

A common use for user-defined colors is to apply your company colors to the
application.

Change Management
The Developer provides tools to effectively manage changes based on changes to
the host application. Developer provides you with the ability to maintain an
existing project by offering several utilities that identify and process differences
between an existing project and a new AWHOST file or Picture Album. All of
these utilities can be operated using the Migration wizard.
Recommendations when beginning a Change Management cycle are:

Use this technique for discrete host changes

Retain a copy of your original AWHOST file for use when performing a
Change Management cycle

Carefully ensure that all backup paths (and files copied) are correctly
identified prior to launching the Change Management Wizard.

Before starting the Migration wizard, you need to run the Collector over the new
host application. You can choose to run the Collector over all of the DDS
sources or just the changed sources. In most cases, you would just want to run the
Collector over DDS sources that have changed.
After downloading the AWHOST file, you can run the Migration wizard to
manage making the changes required for your existing development project.
This process invokes the Smart Build to rebuild/adjust panel objects (based on
detected differences between new and previous Picture Albums).

National Language Support (NLS)


SEAGULL follows the path IBM takes to extend their international market by
fully enabling J Walk for AS/400's international market. This means that you can
connect J Walk to any AS/400 system in the world and J Walk will properly
display the characters of your national language within its graphical panels.
The key to controlling language support is the "matchup" of OS code pages and
Fonts.
J Walk products can display any national language supported by OS/400. As a
result, there are several parameters that you need to know when developing a
graphical user interface (GUI) for your AS/400 application when running the
client environment of J Walk.
There are a number of functions you can perform that fall under the category
"National Language Support". These functions include:

34

J Walk Developer Guide


1.

Interpret national characters from an emulator screen and display them in


several fonts within a graphical panel.
Please review the Related Topic(s): Code Pages and Fonts on Different
Operating Systems, Interpreting National Characters and Choosing and
Displaying Fonts.

2.

Support locale input methods. For example, bi-directional languages


require that characters be entered left-to-right and right-to-left. And DBCS
countries need special input methods (IME) in order to enter their national
characters, because there are more characters than can fit on a keyboard.
Note: J Walk Java Clients running JVM (1.1) currently do not support
non-Western Input Methods.
Please review the Related Topic: Enabling Multilingual I/O function.

3.

Display J Walk system texts (menus and messages) in a language other than
English.
Please review the Related Topic(s): Translating System Texts and
Translating Your Panels Using TTT/PC.

4.

Developing a GUI-ed application enabled for multiple locales.


Please review the Related Topic: NLS Development Issues.

Code Pages and Fonts on Different J Walk OS Environments


J Walk is always talking to two operating systems: OS/400 that runs on an
AS/400 system and one of the supported J Walk operating systems running on
your PC.
Certain operating systems can be acquired in many different language editions,
offering you a user interface, documentation and on-line help in a specific
language. These language editions are called locales.
During installation of a locale the international setting like country, language,
keyboard layout, date format, decimal point and currency symbol will be preset to
the correct defaults for that locale. Once you have installed the operating system
you can still change the international settings. The only fixed part of the locale is
the supplied documentation.
Changing the international settings is for each operating system limited in a
different way:

OS/400 only has one limitation, the locale is either enabled for double-byte
languages (e.g. Japanese, Chinese and Korean) or not.

Windows limits the international settings to the ANSI code page of the
locale.

Planning Your J Walk Project

35

JVM (1.1) supports most Single Byte Character Set (SBCS) languages. No
DBCS, nor BIDI support exists within J Walk.

Some international settings require a system reboot after a change has been
applied. This also depends on the operating system.
The following table summarizes those NLS aspects that depend upon operating
system.
Operating
system

OS/400

Windows 3.x
(16 bit)

Windows
95/NT (32
bit)

Java

Standard code
page set

EBCDIC

ANSI

ANSI

ANSI

J Walk system
texts language
module

ANSI

Unicode

Unicode

Unicode

Fonts used

Not
applicable

Supplied
J Walk or
Windows

Supplied
J Walk or
Windows

Supplied
J Walk or
JVM

Note: J Walk Server configuration allows you to specify use of SEAGULL


supplied fonts or JVM supplied fonts. This configuration is used by the Java
Clients.

Interpreting National Characters


Not all languages share the same alphabet. The Greek and Russian alphabet are
totally different from each other and do not resemble the English alphabet either.
On the other hand the English alphabet can be seen as a subset of the French and
German alphabet.
In a code page each character within a predefined alphabet is assigned a unique
number, or code point. There are 256 characters in each code page.
The terms code page and character set are interchangeable. The only difference being
that a character set can contain more than 256 characters. Single-Byte character
sets are code pages containing 256 characters, or code points. The term "SingleByte" comes from the fact that one byte is necessary to represent each character.
Double-Byte character sets are code pages that can contain 65,536 characters, or
code points and they often use two bytes to represent characters, instead of one.
Double-byte character sets are necessary for Far East countries, with alphabets
containing thousands of characters.

36

J Walk Developer Guide


Unicode is a double-byte character set meant to represent all national language
characters in one code page. There are 65,536 characters in a Unicode character
set.
EBCDIC Code Page Description
On the AS/400 system you find a suitable EBCDIC code page for every language
supported by the OS/400 operating system. In an EBCDIC code page the first 64
characters (0-63) are control characters that will normally not display (e.g. a line-feed
for the printer).
There are so many different possible combinations of code pages that hardware
devices (like printers, monitors, and keyboards) are built to only support a subset
of the total. Generally, hardware exists for different parts of the international
market.
To simplify the combination of supported code pages and devices the Coded
Character Set ID (CCSID) standard was established. English is a language spoken
in a number of countries. Though the characters set is the same for all those
countries, the preferred EBCDIC code page for the United Kingdom is different
from the one for the United States. One difference is that for the United
Kingdom the Dollar sign ($) is replaced by the Pound sign ().
Double-byte languages (i.e. Japanese, Chinese, Korean) require two different
EBCDIC code pages, one for the single-byte characters and one for the doublebyte characters. However, there is only one CCSID for each supported
combination.
ANSI Code Page Description
The ANSI code pages were introduced together with the Microsoft Windows
operating system. In an ANSI code page only the first 32 characters (0-31) are
control characters. The characters numbered 32 through 127 are the same for
each single-byte code page.
The ANSI code page that suites a double-byte language (e.g. Japanese, Chinese or
Korean) is built up differently than a regular code page. A number of code points
within that code page do not represent a single-byte character but a lead-byte for a
group of double-byte characters. The following example is for the Japanese code
page 932. You can see that the code point values between hexadecimal values x'80
and x'9F are reserved as lead-bytes for double-byte characters. The second table is
the 'follow-up' byte that makes the code point represent a unique double-byte
character. The 'follow-up' byte can have a hexadecimal value between x'40 and
x'FC.

Planning Your J Walk Project

37

This second table is the 'follow-up' byte that makes the code point represent a
unique double-byte character. The 'follow-up' byte can have a hexadecimal value
between x'40 and x'FC.

The above diagram indicates the follow-up byte and resulting character from leadbyte 0x82.
Unicode Description
Unicode is a double-byte table that contains code points for virtually all printed
characters of any language. Unicode simplifies character handling by eliminating
the need for different code pages for different languages. Around 35,000 code
points (of a possible 65,000) have already been assigned and there are 6,500 points
available for your own customization.

38

J Walk Developer Guide


J Walk products operating in Windows 32 bit store their system texts (menus and
messages) in Unicode format. However, texts created for the development project
(Picture Album, text message files (JWM), translation tables (JWX), and panels
(JWW)) still use the current system's code page or one assigned at system startup.

Choosing and Displaying Fonts


To present a character on a screen, an operating system (like Windows) references
a font. A font is nothing more than a set of pictures that can visualize the
characters within a certain code page. Therefore a font needs to fit the active
Unicode, ANSI, or ASCII code page.
A letter 'A' can be drawn in many ways: bold, italic, with or without serifs. Several
font types can exist for a code page, all presenting the letter 'A' in a different style.

Translating Your Panels Using TTT/PC


If you want to translate texts in your application panels, SEAGULL offers you a
simple solution that will improve the consistency of your translation and help you
see that you have indeed translated all of the texts in the application panels.
You can do this through a J Walk Developer utility that extracts all of the texts
from your application (panel files (JWW) and message text file (JWM)).The utility
is called JW9TTT.EXE. It extracts texts from your J Walk application and
prepares them for in-context translation with another of SEAGULL's products,
TTT/PC (Text Translation Tool).
JW9TTT Requirements
You will need the following to use the JW9TTT.EXE utility:

Windows 95

J Walk Developer

TTT/PC version 4.00 or higher

A copy of a J Walk project working directory (application file (JWA), panel


files(JWW) and message text file (JWM))

Knowledge of the use of J Walk and TTT.

A set of TTT sample parameter files(PAR) and a TTT project file


(TTT.PRJ) are included, however, you should adapt the files to match your
own personal requirements.

Planning Your J Walk Project

39

JW9TTT Utility General Process Description


JW9TTT is an Developer utility that extracts embedded texts and text references
from the panel files of a J Walk project. It knows what panel files to read by
prompting you for the application file (JWA) of the project. The application file
contains a list of all project panel files.
1.

Translate in context using TTT/PC


The result of the JW9TTT extraction process are two text files: GUITXT
and GUIMSG. GUITXT contains translation entries for each panel. This
includes the title, menu bar and body of each panel. GUIMSG contains
externalized text references.

2.

Import translated texts back to J Walk application


After translating all of the panels, use the JW9TTT utility again to update
the panels with the translated texts. Please note that this utility writes
directly back to the panel files, so you must make a copy of the panel files
before importing the translated texts. Otherwise, you will lose your original
untranslated panel files.

Here is a list of some general notes and guidelines to follow:

Do not start translating a J Walk project until all panels are designed. You
should use this utility for finished J Walk project applications.

The JW9TTT utility is automatically installed with the Developer.

Always make a copy of the application file (JWA) and panel files (JWW)
before beginning the translation. Otherwise you will update the sources
with the translated texts and lose your original texts.

Setting Up your TTT/PC Environment


All of the texts found in your application's panels are placed into a single text file
called GUITXT. If your application has a message text file (JWM), this
information is also extracted from the application and placed in a file called
GUIMSG.
Before extracting texts from your J Walk application, make a copy of the project
application's working directory under a backup directory.
The JW9TTT utility places the text files in the same directory as the application
file (JWA). It is recommended that you use this directory as the working directory
for TTT/PC. So GUITXT and GUIMSG files would exist in the same directory
as the panel files (JWW) and application file (JWA) that you used to create the
GUITXT and GUIMSG files.

40

J Walk Developer Guide


It will be necessary for you to update the sample PAR files. The following settings
are recommended to be reviewed and updated as required. Unless specified as
"(optional)", these settings must exist in the PAR files. For more information
about these settings, refer to the TTT/PC Setup Guide.
GUITXT parameter file (GUITXT.PAR)
CB Your company's name.
DE Short description of translation project
PU Purpose of translation
L1 Translating from language (code page)
L2 Translating to language (code page)
N1-N5 Notes (optional)
TF GUITXT including full path name
TC Working copy if GUITXT. Make this equal to TF except add the extension
".DAT".
TN File to contain notes you make
EA Index file (created by TTT) to link GUITXT to GUIMSG
EF GUIMSG including full path name
EC Working copy of GUIMSG. Make this equal to EF except add the extension
".DAT".
WD Name of the word dictionary, including full path name.
TD Name of the phrase dictionary, including full path name.
VW, LC, UC and WT Word characters, case conversion, and sort sequence for
code page 437(English)
GUIMSG parameter file (GUIMSG.PAR)
CB Your company's name.
DE Short description of translation project
PU Purpose of translation
L1 Translating from language (code page)
L2 Translating to language (code page)
N1-N5 Notes (optional)
TF GUIMSG including full path name

Planning Your J Walk Project

41

TC Working copy if GUIMSG. Make this equal to TF except add the extension
".DAT".
TN File to contain notes you make
WD Name of the word dictionary, including full path name.
TD Name of the phrase dictionary, including full path name.
VW, LC, UC and WT Word characters, case conversion, and sort sequence for
code page 437(English)
Export Panel Files (JWW) to TTT
After completing these steps, you will be able to start translating the texts in your
panels using TTT.
Follow these steps to perform this activity.
1.

Open a command line to make a copy of the J Walk panels and application
file and place it within the JWALK\JW9TTT (backup) directory. For
example:
MKDIR \JWALK\JW9TTT
MKDIR \JWALK\JW9TTT\APP
MKDIR \JWALK\JW9TTT\APP\CAR
COPY \JWALK\APP\CAR\CAR.JWA
\JWALK\JW9TTT\APP\CAR\CAR.JWA
COPY \JWALK0\APP\CAR\*.JWW
\JWALK\JW9TTT\APP\CAR\*.JWW
COPY \JWALK\APP\CAR\CAR.JWM
\JWALK\JW9TTT\APP\CAR\CAR.JWM

2.

Execute the JW9TTT utility using the command:


CD \JWALK\JW9TTT\APP\CAR
\JWALK\JW9TTT CAR
This will create GUITXT and GUIMSG in the same directory as the
application file (JWA).

3.

Check the logfile (JWTTT.LOG) for possible error messages and correct
the errors if necessary.

Import Translated Texts Back to Panel Files (JWW)


After performing these steps validate the conversion by starting the Developer
and reviewing the updated panels in the JWALK\JW9TTT directory.

42

J Walk Developer Guide


Follow these steps to perform this activity.
1.

Open a command line.

2.

Make the current directory the directory where the application file (JWA)
and GUITXT and GUIMSG files are located.
CD\JWALK\JW9TTT\APP\CAR

3.

Import the translated texts using the following command:


\JWALK\JW9TTT -i CAR
The -i option is a flag to JW9TTT that the texts should be imported from
GUITXT to the application file.
This will update your panel files (JWW) and message text file (JWM).

Translating System Texts


Besides the standard texts retrieved from any of the active operating systems,
J Walk also uses some product specific texts. You will find these texts in:

J Walk dialogs (e.g. Dynamic Transformation Settings) and menus

Error messages

Graphical Access

These J Walk specific texts are stored in a special Dynamic Link Library (DLL),
which we also refer to as a language module. During installation you can select
one or more language modules. If you do not select any of the listed languages,
you fall back to the default language which is English for the International version
of J Walk.
All the different language modules (DLL files) have the same name, constructed
with the name of the product's executable as '<EXE name>R.DLL'. Therefore
these language modules cannot be stored in the same directory.
For each installed language module a subdirectory is created under the J Walk
program directory. The name of these subdirectories read the language code, a 4
digit number, used by IBM as 'MRI<language code>'. For example, the French
module for the J Walk Windows Client is (default) installed on Windows 95 as:
C:\Program Files\Seagull\J Walk Windows
Client\MRI2928\JW9CR.DLL

Platform configuration
When you want to activate a secondary language on the AS/400 you must add the
library 'QSYS<language code>' to your library list (use the CHGSYSLIBL
command). For French this would be QSYS2928.

Planning Your J Walk Project

43

When you start a J Walk product, it looks for the native language environment
variable called "EHNL". If it finds this setting with a language code value, J Walk
will look for the 'MRI<language code>' directory under the J Walk program
directory.
If it cannot find this setting, it looks for the first MRI subdirectory under the
J Walk program directory. If it finds more than one, it loads the DLL of the first
directory it finds. The search order used depends on the PC operating system.
If no language module is detected, English is used.
J Walk command line parameter
To Control what language should be loaded you can specify a language code using
the command line parameter /M<language code>. In that case you force
J Walk to take the language subdirectory of the language code you entered in the
command line.
For example, to force French you should specify in the command line:
/M2928

The directory that is selected according to the above algorithm should contain a
valid language module. If the expected DLL file is not found in the language
subdirectory, and also not present in the J Walk directory, you will fall back to the
default language which is English for the International version of J Walk.
In Windows 95 you can specify a different language per J Walk session. On all
other PC platforms, the first session started sets the language for all sessions
following.
Creating Your Own Language Module
J Walk Windows Client is supplied with English, French, Italian, German, Dutch
and Japanese language modules. Which means that the J Walk Windows Client
system texts can be displayed in any of these languages. J Walk Developer is
supplied with English and Japanese language modules.
If you want the J Walk software system texts to be translated to another language,
then contact your SEAGULL representative and inform them that you wish to
make another language module. Your SEAGULL representative will provide you
with the J Walk system texts as an untranslated source file. It is up to you to
translate the texts.
Translating the J Walk Windows Client system texts requires about one week.
Translating the Developer system texts also requires about one week to translate.

44

J Walk Developer Guide


When you are finished translating the system texts, return the translated source
file to your SEAGULL representative. This source file is eventually returned to
SEAGULL, who then compiles the translated source file into a new language
module. This module will immediately function with existing J Walk software
versions. If you wish, the language module will be added to the base product at
the next software release.
Screen Texts Interpreted to GUI Controls
The following texts, when detected, produce special GUI control on the panel.

"More" and "Bottom" for paging buttons


These texts should always be detected because they have been translated in
national languages supported by the AS/400. The corresponding GUI
controls are push buttons with arrow down and arrow up buttons,
respectively. When pressed, they send a PageDown or PageUp key to the
host.

"Y=Yes, N=No" for check boxes


The values "Yes" and "No" (or "Y" and "N") are searched. If detected
beside an entry field, a check box will be generated.

"F4 for list" for prompt button


The way a function key is written down is determined by the selected
language module, "F4" in English can be "CMD4" in German.

Hidden or Translated Screen Texts


The following texts are detected and translated.

Hiding of redundant instruction lines, e.g. "Select one of the following:"

Translation of "ATTN" (key) to "Attention program"

Translation of "F10=Additional parameters" into "Advanced" button

Graphical OfficeVision
If you start OfficeVision text assist in a different national language than what is
supported on the PC, the following functions will not operate (they will be
disabled).

Mail indication: "MAIL", "NOTE", "REPLY" and "FORWARD"


Icons in the toolbar for REPLY and FORWARD will be disabled because
the text is not detected.

Calendar function codes: e.g. "VW" (View Weekly) and "VD" (View Daily)

Planning Your J Walk Project

45

The calendar menu items in the View pulldown menu send character codes
to the host. If the host is operating in a different national language than the
client environment, selecting these menu items will result in an error
message because the two character will be unknown to the host.

NLS Development Issues


If your host application must operate in more than one national language, you
should consider functions which will enable you to use one package file for all
national languages.
Downloading the AWHOST File
After running the Collector over your AS/400 application sources, the resulting
file (called AWHOST) must be downloaded to the PC to be developed into
pictures of the picture album for the development environment. The AWHOST
file must be converted from the EBCDIC code page to the ASCII or ANSI code
page of the J Walk development platform.
However, most Windows file transfer programs still make use of the ASCII code
pages and will not properly convert the EBCDIC code page to an ANSI code
page.
If your file transfer program does not support the EBCDIC to ANSI conversion,
it is recommended that you download the AWHOST file to the PC without any
conversion. Then use the JW9XLATE.EXE utility supplied with J Walk
Developer to convert the AWHOST file from EBCDIC to ANSI.
Screen Identification Considerations
The following considerations provide insights when performing Screen
Identification over applications which run several languages (national language
independent) and when applications with pictures containing folded sub-files are
not recognized.
If your AS/400 application operates in several different national languages, it is
important that you can make a Picture Album so that each screen is only
represented by a single picture, independent of language. Special consideration
must be taken when your host application must run on several national languages.
Follow these guidelines when running the Collector and making the Picture
Album.

In the host application, do not use static texts in the DDS sources.

When running the Album | Screen identification on a Picture Album,


be sure that the option MSGCON and MSGID can change is selected.

46

J Walk Developer Guide

If you do identify a screen manually, only use Exact rectangle contents if


the identifying rectangle contains a screen identifier that will not change
across platforms.

If an application's Picture Album contains panels holding sub-files, in order to


distinguish the unfolded and folded panels, you may need to specify a character
only appearing in one of the similar pictures.
In order to distinguish a picture from another picture, at least one of the
characters must be unique in that picture.
Each character (and identification reliability) are:

A lead attribute byte. This overlaps the trailing attribute of the 'window'
border so it may be an attribute byte in either picture. Attribute values are
never tested (for their meaning), only the presence of the attribute is
detected (note that the presence of a "default" attribute may vary based on
emulator and usage) .

A field character. This may be empty in the other picture, but an output
field can contain any value, including an empty (binary zero) value. "Entry
capable" means testing the value of a attribute byte which is not performed.

A trailing attribute byte. This can overlap the start of the next output
field, so it can be an attribute byte in either picture.

If you can only detect characters between two attribute bytes, there is not enough
to recognize (and uniquely identify) the screen. In such a case you may need to
use Screen Identification Utility parameters to better detect the attributes, or
manually edit the identified screen containing the sub-file region to be "excluded
as a field."
Externalizing Text Files Considerations
Text files, like message files (JWM) and translation tables (JWX) acquire the code
page of the related package file (JWR). If you are moving an existing development
project from one code page to another, it will be necessary for you to use the
JW9XLATE.EXE utility to convert the code pages of these files.
Keep in mind that:

Each new line represents a new text message reference or translation

These text files cannot contain lines longer than 255 characters

It is preferable to place mnemonics in the message file, so they can be


identified and detected when translated

Size corresponding panel fields as large as possible for translations that are
longer than the original text

Planning Your J Walk Project

47

Differences with Client Execution


Environments
Though the J Walk Client family is built up with a consistent set of methods, the
resulting execution of Clients can vary based on which Client and Connection
Mode are being implemented.
"Platform" differences refer to the differences between a Windows Client
(supporting .APIs, .DLLs, .WIN, .DDE links, .HLP files, etc.) and Java Client
(JVM1.1 has limited system calls, requires GIF and JPEG image formats, font
services, etc.).
The major areas of Developer that exhibit differences at this time are:

OIS

Image types

On-line Help

Browser Requirement for Java Clients (MS IE 4+, Netscape v4+)

NLS and JVM (1.1 SBCS support- only).

Upon compilation, you may select to verify conditions for both Windows and
Java Clients. Inspect the additional information logged after the compile
completes.

OIS and Client Execution Environment Differences


Open Interface Services provides a "container" for referencing (and launching)
desktop events and data exchanges. The Java Client is based on the JVM (1.1)
specification. Currently Java-based desktops (and browsers) do not provide a
standardized equivalent to a DLL, API or DDE type of relationship. It is
possible to make Java system calls to/from the Java Client.
"OIS for Java" is the equivalent of OIS for Windows.
Alternatively, ActiveX-enabled Clients can use Windows-based resources like
J Walk Windows Clients do.

Client Image Differences


The Windows Client displays all image types.

48

J Walk Developer Guide


The Java Client displays GIFs and JPGs (JPEG format) so images developed for
a Windows Client may need to be converted by the J Walk Developer (and
delivered as JPG/GIF) for the Java Client. Use the JWIMG conversion utility to
convert non-HTTP images such as BMPs, DLLs or WINs (not affecting
originals).
Note: The JPEG (JPG) image file format is not supported for the Windows 3.x
Client platform. Additionally, the "animated" GIF file type is shown within Java
Clients in a non-animated mode displaying the first frame- only.

Client On-line Help Differences


Help facilities are provided with Windows operating systems. However, a Java
Client does not natively support serving help at this time.
A Web server environment is used to call HTML topics. Refer to the "Providing
Users with On-line Help" as well as the J Walk Server and Client Guide" for
HTML implementation details.

Using J Walk Developer

49

Using J Walk Developer


The Developer is a richly featured GUI development tool. Before you can get
started with development, you must install and configure the Developer. You
must also authorize your Developer to license its use. When you decide to
upgrade your Developer refer to the Upgrading section.
Ultimately, your goal is to build a package file.
Before you start building, it is recommended to install and startup the Developer.
Using the Developer represents

Installing the Developer Dongle

Installing the Developer

Configuring

Starting

Licensing

Upgrading.

Following the "Using" section, "Exploring the J Walk Developer" provides you
with a quick tour about the Developer interface. You can explore the Developer
while exploring the supplied Car Demo application.

Before You Begin Using J Walk Developer


In order to proceed using Developer, please take note of the following topics.

The J Walk Developer requires a dongle (Hardware plug) to operate, and


there are initial actions required to activate the dongle.

The J Walk Developer is now capable of creating Data Access references


on your created panels. Creating Data Access references requires a direct
connection to the SEAGULL License and Message Server. When the
License and Message Server is started, to use Data Access services, you
must also start the Data Access Server. Additionally, use of a collected
Data Access File Repository is necessary (see on-line help on AS/400).

The SEAGULL Collector must be used to create the AWHOST file.

50

J Walk Developer Guide

When you are using this product, always remember this guide has been
created for you! It contains step-by-step instructions, planning
recommendations and reference materials to assist you throughout the
development process. On-line help also is provided for your assistance.
Finally, each product has an associated Readme file containing any late
breaking details as well as installation and configuration details.

Finally, if you have a problem, our support line is available to support


subscribers. Specific information is expected from you when contacting
SEAGULL Customer Services.

Following this section, the "Using J Walk Developer" section reviews the tools
and options when installing and starting the Developer. Included, are the step-bystep instructions for using the J Walk Dongle.

Providing Developer Authorization


When you first install J Walk Developer on your PC, the software operates for 30
day grace period without an authorization code. Request an authorization code
from your J Walk supplier. If you do not receive an authorization code from your
supplier within 30 days, the grace period will expire and the Developer will only
operate in demonstration mode. Demo mode restricts you from compiling or
saving your work.
To authorize your Developer, you must enter an authorization code from your
J Walk distributor.

Using J Walk Developer Dongle


In order to operate the Developer, it is necessary to additionally install the J Walk
dongle on one of the parallel ports of your PC. The dongle is a small connection
device which is to be installed on the same parallel port as your printer. One end
attaches to the printer port, the other remains open. To use your printer, attach
the printer cable onto the open side of the dongle. If you run Windows NT, the
SEAGULL dongle driver is automatically installed and requires re-booting for
use.
Note: A GUI/400 dongle will not operate with J Walk Developer (or other
SEAGULL Product). Also, never combine the same dongle types (v3.x and v4.x)
on ONE parallel port or dongle updates will give unpredictable results.
Initially, your new Developer requires you to specify certain authorization
information in order to validate the product for your use.

Using J Walk Developer

51

J Walk Dongle and Windows NT


Applications operating on Windows NT are not allowed to access the parallel port
directly. In order to access the dongle (in the parallel port), J Walk needs direct
access. This is accomplished using SEAGULL dongle driver. When running
Windows NT, if you do not install this driver program, then J Walk cannot detect
the dongle and will, therefore, run in "demo" mode. J Walk installation includes
options to install this driver.
Note: The driver is automatically installed when you install Developer on
Windows NT.

Installing J Walk Developer


Install the Developer on a PC running Windows 95 or NT operating system.
Installation is straight forward. Completion of this operation results in a J Walk
Developer entry in the Taskbar for Developer. You find the taskbar (containing
program group entries) with your Windows 95 Start menu.
Complete the installation process by launching the Configuration Assistant to
create specific configured entries on the Taskbar. Each configured entry,
represents a [section] of your JWALK.INI file configuration.
In order to properly operate J Walk Developer, it is necessary that you install and
authorize Developer.
The installation procedure for J Walk Developer involves loading the software.
After installing, the second step requires properly setting all of the configuration
settings. Use the Configuration Wizard to inform J Walk Developer how you
want your configuration.
Using Windows Explorer (or a command line), execute
setup.exe
found on your Developer software media. It is recommended to take the default
installation directory and pre-selection of materials to be loaded. Proceed
according to the dialog.

Launch the Configuration Assistant


If you have installed J Walk, you can start the Configuration Assistant at any time,
even if there are already J Walk sessions open. Any Configuration setting you
change will only be applied to new J Walk sessions that you open. Any already
open sessions will use their original Configuration settings. New configurations
result in new J Walk taskbar entries.
You will be given the opportunity to change the configuration of a J Walk
product during the installation process.

52

J Walk Developer Guide


Note: Choosing to start the Configuration Assistant from within the installation
procedure has the same effect as ending the installation procedure and starting the
Configuration Assistant from the J Walk folder.
Follow these steps to perform this activity.
1.

Select Configuration Assistant taskbar entry from the J Walk product


program folder.

2.

Follow the instructions in the Configuration Assistant wizard to enable


J Walk to use your favorite router, emulator, and other settings. You can
navigate between dialogs by pressing the Back and Next buttons.

3.

Continue pressing the Next button until you are at the end of the Wizard.
You will be asked to name your configuration and you have a chance to
test your connectivity with the AS/400.

Configuring Data Access with the Developer


The J Walk Developer can send and receive Data Access messages via the License
and Message Server. At any time, use the Configuration Assistant to configure
the Developer for use with Data Access. These settings are written into your INI
file.
When you begin to use Developer, switch to the emulator and log into the
License and Message Server to establish Data Access services.
Note: If you create an alternate Signon screen without containing the user
identification (as defined), Data Access will not perform correctly. Or if you
specify the Automatic signon setting, this setting forgoes the use of the Signon
screen and hence no identification of the user (as described) can occur, and hence,
Data Access will not function properly. To use Data Access, do not invoke an
automatic signon procedure. Go to the Signon tab (of the Configuration
Assistant) and ensure the user signon setting "Signon automatically at startup" is
disabled (unselected).
Follow these steps to perform this activity.
1.

Launch the J Walk Configuration Assistant via the Taskbar (or


immediately after installation).

2.

Open the Data Access tab and select a Data Access connection mode. If
you expect to "see" the repository prompter and all Data Access services,
you must select to Use ONLine mode.

3.

Specify a maximum data record download limit (threshold) if required.

4.

Continue with the Configuration Assistant until completed.

Using J Walk Developer

53

Starting the Developer


Select a J Walk Developer Taskbar entry (previously configured using
Configuration Wizard).
To override these settings, open the Developer shortcut icon's properties dialog
(or command line window) and add any of the following command line
parameters in the Target prompt (or command arguments). A description follows
each option.
Option JWALK.INI keyword
/Bfile none
Executes a batch file (JWB) of Developer menu options.
/Dfile none
Opens the Developer with the named project definition file (JWD).
/Ename WindowsApi
Name of the pre-defined configuration environment to use (stored in
JWALK.INI). Common environment names include TELNET (TCP/IP), or
INTERN (APPC router with internal emulator).
/G name [=value]
Overrides any JWALK.INI setting by entering the full or abbreviated version of
the JWALK.INI setting name. Abbreviated names are made by taking the first 3
characters of the setting name followed by all other capital letters and numbers.
For example, the abbreviated name of EmulatorTitle is EmuT. The abbreviated
name of Gothic18 is Got18. If the setting needs a value then also use the [=value]
syntax.
/H System Name System
AS/400 system name connected to for the host application screens.
/IJWALK.IMG

none

Loads the image file JWALK.IMG. The image file is primarily used when
debugging a Client environment.
/Lfile none
Opens the file as the project's Picture Album.
/Mxxxx none

54

J Walk Developer Guide


This setting is used to indicate which national language module (MRI module) to
use. This parameter is followed by a 4 digit number or full filename (including
path) (i.e. /M2924 is the only currently supported module for the Developer).
/O

none

Displays extra options in the system menu for capturing screens.


/Pfile none
Opens file as the Panel Editor work file.
/Sx SessionId
External emulator session ID. The /S is followed by a letter between A and Y.
(e.g. /SA connects to Session A).
/W

WideScreen

Indicates if the emulator screen is 28x132 (wide screen). The normal screen size is
24x80.
/Z

SwapEnter

Swaps the Enter and Field Exit keyboard mapping.


file none
Opens file as the Terminal Editor work file.

Initial Dongle Authorization


If you are installing the Developer for the first time, it will be necessary for you to
update your dongle with an authorization code.
If you have changed your Company name, you will also need to provide a new
authorization code. Any authorization code changes (or company name) require
contacting your SEAGULL distributor.
Installing Dongle Driver for Windows NT
It is possible to run J Walk over systems providing port control.
When you run J Walk under Windows NT, you must use the SEAGULL dongle
driver. This driver provides J Walk with direct port IO (called S9PORT.SYS).
Note: If you receive a warning that there is no dongle attached (but a dongle is
attached), you need to install this driver.
This driver is provided when you install a J Walk product. For Windows Client,
specify the "Customized installation" option to install this driver. For Developer,
it is automatically handled specifying the "Typical installation."
It will be necessary to reboot the PC in order to enable this driver.

55
The driver is registered in the registration database under
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services.
Note: Since this program is a driver, you must have supervisory rights in
Windows NT in order to install and enable this driver.
Enter Your Company Name
Your company name appears in all of your package files (JWR). The company
name is part of the key for your package files security code.
During initial authorization, you are given the opportunity to enter your Company
name without requiring an authorization code.
Notice the Company name displays "**********" indicating no company name
has been specified.
After you replace the "**********" with your own company name, it remains
stored in the dongle and cannot be changed without requesting a new
authorization code.
Specify your company name before you begin using the Developer.

Upgrading the Developer


Upgrade Developer to keep up with new functionality. When you perform an
upgrade, consider the following.
Every upgrade release includes information as to changes included within the
upgrade. Review the Readme file and on-line help as to the details.
Note: It is recommended to install over existing installations.
During the installation process, you will be asked if the existing JWALK.INI
should be overwritten. Potential new functionality may impact these settings. In
such a case, new functionality would perform in a "default" mode. Typically, if
you are happy with current .INI settings, you do not need to overwrite the file.
However, if you chose a new JWALK.INI, your old one is backed up. The result
of installing a new JWALK.INI is that you must re-configure. In this case, launch
the Configuration Wizard.

Exploring J Walk Developer

57

Exploring J Walk Developer


Now that you have installed and configured Developer, let's examine where you
perform your work. After examining this section, you will know your way around
the Developer. The goal of this section is to provide the details you will need to
enable you to explore the supplied Car Demo application. After you explore a
while, you will be better prepared to build your own package file.

J Walk Developer is the cornerstone of your Graphical User Interface (GUI)


development process. It contains a set of powerful tools for the complete capture
of your legacy application as well as the quick creation of GUI panels. The
SEAGULL Collector reads display file sources and creates the AWHOST file.
Transfer this file to your Developer PC and begin to build a package file from the
AWHOST file.
When you have completed this chapter you will have a good understanding of the
following Developer areas:

The Terminal Editor provides the interface for creating and refining your
Picture Album and manually created Screens.

The Panel Editor provides the interface for creating and refining your
graphical panels and panel objects.

58

J Walk Developer Guide

Best Guess sets the Screen Identification for pictures from the Picture
Album and automatically makes the graphical panels based upon those
pictures. Best Guess templates hold your specifications and influence all
panels built.

The Terminal Editor and Panel Editor Tools Menus each provide access
to powerful Developer processes that add functionality through
completion of your final graphical user interface.

The View menus (for both editors) provides access to a live session
(emulator) as well as Data Access information.

The Data Organizer provides direct access to most Developer objects


within your project.

The Developer Project and Definition contain your Developer project


paths to your components and results.

The supplied Car Demo package provides excellent examples and useful
project components. Explore the Car Demo!

Let's start with the primary frames where you perform your work: the Panel
Editor and Terminal Editor. To use these editors, you should first specify editor
settings that facilitate your work plans. For example, you could choose to use an
external editor for scripts. Select File | Editor settings to get to these settings.
Editor settings is also the place to establish your use of an external editor.

Exploring Supplied Car Demo Application


The "CAR Demo" application is a complete project. Unpack this demonstration
project to explore and practice with the Developer.
Unpacking this demo creates a working example project with components. After
unpacking, browse the demo as a "real" application and inspect the objects
discussed in the "Understanding" section. Remember, this demo contains
example uses of scripts, OIS objects, images and various panel constructs. Use
these examples "as is" and import them into your projects to apply them. You
cannot "hurt" the demo. If you can no longer use the demo (for any reason)
simply unpack it again!
From the Taskbar, navigate to the Developer program folder and select to
"Unpack Car Demo Files". When this is completed, you will have a new "J Walk
Car Demo" menu entry to launch this project. Launch this entry and explore the
demo!
Note: You can save things as you go, because you can unpack this demo again if
you make a mistake.

Exploring J Walk Developer

59

Examine each project component and inspect the details:


Picture Album
Browse your pictures. Open a picture.
Screens
Edit a screen. Save the definition.
Panels
Select a panel to view. Examine the status bar and details.
Panel Properties
Double-click on the panel. Examine the properties tabs.
Tools Menus
Go to the Tools menu and launch the Best Guess (build one panel). Examine the
effect on the Panel Editor. A new panel is showing.
Examine the Best Guess templates. Add a value to a template and then build a
panel. Examine the effect templates have on the Best Guess process. You can
begin to see how you can build specifications and styling into the creation of all
your panels using Best Guess (and templates).
Data Organizer
Many menu entries include "Organizer" as an option. Select this option and
examine the list displayed. Make note of the object type set at the lower portion
of the Data Organizer. Double-click on any panel object and change the type to
see additional object types and attributes.
Project Definition
Before you close the demo, you are prompted to save the Project definition.
Select the Files | Project settings to examine actual paths and files defined.
Save the Car Demo for future reference.

Terminal Editor
When you start the Developer, the Terminal Editor is opened.
The Terminal Editor's main function is to display (and edit) a picture screen or
live session screen (from a displayed host application) for use in building graphical
panels. The Terminal Editor saves screen information in the Terminal Editor
Work File (JWE).

60

J Walk Developer Guide

Some Terminal Editor concepts are described after examining the Terminal
Editor interface.

Activating Terminal Editor Window


The Terminal Editor window is always available when you start the Developer.
Activate the Terminal Editor window to perform operations on the host-based
screens and pictures. Several methods are available to do this.
Follow these steps to perform this activity.
1.

Choose the menu View | Terminal editor option.


Or

2.

Click on the

button from the Properties toolbar of the Panel Editor.

Terminal Editor Interface Window


The Terminal Editor window contains the following areas
Titlebar Icon and System Menu

Exploring J Walk Developer

61

Click on the icon to display menu options that affect the application operation.
Titlebar icon menu options include: Minimize (the window), Maximize (the
window), Close (the application), Hide (the window), and Print (the window).
Titlebar
The top line in the Terminal Editor window. The titlebar contains the titlebar
icon, the name of the currently opened Terminal Editor work file, and minimize
and maximize buttons.
Maximize button
Uses the entire desktop space to display the Terminal Editor window, depending
upon the font size of the emulator session. The font size is a property of the
Developer Editor Settings on the Emulator tab.
Minimize button
Minimizes the Terminal Editor application.
Toolbar
Provides quick access to common menu options. For example, the Panel Editor
icon is first in the toolbar. Use this to switch views to the Panel Editor.
Menu bar
Pull down menus for Terminal Editor functions.

File The File menu provides access to your Terminal Editor work file as
well as Project definition file and other functions like Report printing.

View The View menu provides options for viewing items. The Panel
Editor can be selected. Live session mode (emulator) as well as statistics
and log files are all located here.

Album The Album menu provides options for working with Pictures.
Open, browse, Identify Pictures are some of the selections.

Screen The Screen menu provides options to define and edit new screens
(that are not in your picture album) and override the automatic screen
identification (previously performed on Picture Album).

Field The Field menu provides field identify mode. Use this mode to add
or delete identified fields.

Tools The Tools menu provides you with access to many useful tools and
external files you will need when using Developer.

Help The Help menu launches the Developer Help file.

Terminal Editor status bar

62

J Walk Developer Guide


At the bottom of the window is the status bar. It displays the current open project
and status information about the current picture/screen combination. Included
in the status bar is indication when you are using screen or field identify mode.
Screen identification status indicator
Within the status bar, the screen identification status displays a picture or screen
name and what is related to that item.
This image shows the Screen Identifier status within the status bar. This status
indicates picture 1: maps to screen name (1). Sizing information is also provided.

Terminal Editor Work File (JWE)


The Terminal Editor work file is constantly updated as you work with the
Terminal Editor. If you have not saved this file, when you close the Developer,
you should save this file.
The Terminal Editor work file contains the following information about a project:

a list of all screen names (from picture album and manually created)

a list of all host field names (from picture album and manually created)

screen identification information (from picture album and manually


created)

scripts

Picture Album
A Picture Album (JWP) contains a picture of each application screen as extracted
by the Collector run (producing the AWHOST file).
A picture cannot be edited directly. Pictures contain a screen name, identifier,
host fields and other details to be used to produce a screen and then a panel.
A "good" Picture Album is defined as an Album containing a minimum number
of pictures to represent the complete host application displays.

Screens
Developer screens represent an alternative to your Picture Album sources. You
may want to include non-application displays as a part of your package file.
Instead of collecting these screens, simply use the Terminal Editor Emulation
mode (live session) and identify these screens. Together, your Picture Album and
several other screens provide your package file with a smooth transition to, or
from any AS/400 (OS/400 screens, etc.) and your application (example:
SIGNON screen).

Exploring J Walk Developer

63

A Screen contains the Screen name, identification, and associated host field names
and definitions. Screen definitions are saved into the Terminal editor work file
(JWE).
Inspect your screen identification by navigating through the host application and
making sure that all of the screens are identified. To do this, you must run the
host application using Live test mode (View menu). Step through your host
application and verify that the corresponding panel appears in your panel editor.
Note: You can view both editors at once.

Pictures Versus Screens


A picture is a snapshot of a host application screen as taken by the SEAGULL
Collector.
A screen is a logical named definition consisting of a unique identification and
field definitions.
Both pictures and screens have a screen identifier making them unique. Pictures
have their screen identifier set during Best Guess and they acquire a status of
having their screen be automatically identified. In most cases, this is the most
reliable method for setting screen identifier because there is more information
stored in the Picture Album than can be ascertained by examining a live screen.
In general, screens should only be manually identified when you do not have
DSPF source members or objects, for example, the SIGNON screen of the
AS/400.

Screen Identification
Screen Identification is the process of adding identified host screens to the
Terminal editor file. Several techniques can be used:

Screen Identification Utility

Best Guess on a picture

Best Guess a live screen

manual creation against live screen or picture.

This Screen identification status indicates the following;


1: indicates the picture number in the Picture Album. This would be the first
picture in the Picture Album.

64

J Walk Developer Guide


The [80x25] indicates the size of the terminal screen (80 characters wide by 25
lines). Most main screens will have this screen size, popup windows will have a
smaller size. [132x28] is also a valid size.
Example screen identifications:

[80x25] (None)

When no colon: is present before the screen size, then you are looking at a
live screen. The (none) indicates no screen identification has been
performed.

[80x25] SIGNON

When a live screen is displayed, it is identified when a screen name is


displayed (e.g. SIGNON).

1: [80x25]

When a number is followed by a colon, 1: indicates a picture is being


displayed. The (none) indicates no screen identification has been
performed for this picture.

1:

[80x25] (1)

When a picture is displayed, it is identified when a screen identifier is


displayed (1).

1:

[80x25] (many)

When a picture is displayed and the (Many) identifier is shown, the current
picture is ambiguously identified. Screen duplicates are indicated with the
(many) status.
Note: When pictures are identified using Best Guess, the picture number
automatically becomes the screen name and the identifier is set.
Best Guess performs an automatic screen identification resulting in Picture and
Screen identifier numbers (e.g. 1 or 2) being displayed in the Terminal Editor
Screen Identification status bar.
Manual creation allows alphanumeric screen names to be used and displayed (e.g.
"SIGNON ").
Screen Duplicates
When you determine you have duplicate screens, you will want to build only one
of these screens. The associated pictures may be marked "redundant" to "hide"
them from the BUILD process, yet they remain in your picture album. Select the
Album | Redundant menu option to mark a picture as "redundant." Otherwise,
you may want to override the existing automatic identification using the Screens |
Edit menu option.

Exploring J Walk Developer

65

These hidden screens are shipped with all Album operations.

Host Fields
Host fields represent the basic data unit manipulated by a host application.
Host field definitions exist after screen identification. Host fields can be
considered as "input capable" or "output." Host fields are connected to panel
fields.
Best Guess applies different constructs depending on the input or output
capabilities of a host field. Entry fields and text fields are two examples.
When Best Guess is used on a live screen, the Best Guess will examine the host
fields that appear on the screen at that moment, create host fields and set them as
either input capable or display only.

Panel Editor
The Panel Editor provides methods to design and refine panels and panel fields in
a "What You See Is What You Get" manner. The appearance of the panel and
panel fields can be viewed simulating the client environment. Individual panels are
saved to JWW files.
A list of panels, textfile and translation table belonging to the project are stored in
the Panel work file (JWA).
Note: The "Textfile" and "Translations table" are always associated with the JWA
file currently being maintained . This "logical" relationship is stored in the JWA
file which is compiled, thus generating an JWR file containing this relationship to
"Text" and "Translation table." If you do not save the JWA file (as requested
when closing the Panel Editor, selecting "Project close"), then this relationship is
not saved.

66

J Walk Developer Guide

A typical method of working with the Panel Editor is to create (using the Best
Guess) all of the panels from the Picture Album. These panels are then evaluated
for accuracy. Rather than making manual changes to the panels, make changes to
the Best Guess panel templates and re-run the Best Guess. This methodology
maximizes efficiency and automation while minimizing manual corrections.
You can also create and refine panels manually; you are not limited to only panels
connected to screens.
There are other tools in the Panel Editor for making mass updates to panels if
you decide that this would be more efficient than running Best Guess again.
There are also other tools to enhance the functionality of your panels and extend
data access and other program functionality to the Windows desktop. Some
Panel Editor concepts are described after examining the Panel Editor interface.

Activating Panel Editor Window


Activate the Panel Editor window to perform panel-based modifications. Several
methods exist to do this. When activated, a complete workbench for your GUI
panels is provided.
Follow these steps to perform this activity.
1.

Choose the menu View | Panel editor option.

2.

Click on the

button from the Terminal Editor tool bar.

Panel Editor Interface Window


The Panel Editor window contains the following areas.
Titlebar Icon / System Menu

Exploring J Walk Developer

67

Displays system menu. System menu options include: Minimize (the window),
Maximize (the window), Close (the application), Hide (the window), and Print
(the window).
Titlebar
Displays titlebar icon, the name of the currently opened Panel Editor work file,
and minimize and maximize buttons.
Maximize button
Uses the entire monitor desktop space to display the Panel Editor window.
Minimize button
Minimizes the Panel Editor application to the desktop.
Field toolbar
Contains buttons for all of the different panel field types. Clicking on one of the
buttons creates a new panel field. This toolbar is configurable.
Edit toolbar
Contains push buttons for common actions that occur during panel design. This
toolbar is configurable.
Property toolbar
Contains push buttons for field properties that are changed frequently. This
toolbar is configurable. The panel/field position coordinates are displayed in the
Property toolbar and are shown as two sets of coordinates. The first coordinate
gives the mouse's position; the second gives the width and height of the currently
selected field.
Menu bar
Contains pull down menus for Panel Editor activities:

File The File menu provides access to the Panel editor work file, project
settings and editor settings.

Edit The Edit menu provides various tools to select and modify panel
objects. Find and Action Wizard is launched from this menu.

View The View menu provides different views such as Live test/ local test
and logs and statistics.

Panel The Panel menu provides many operations with panels and
properties.

Field The Field menu provides for the creation of various fields types.

68

J Walk Developer Guide

Arrange The Arrangement menu provides field-based operations.

Tools The Tools menu includes many tools you will need to use to
complete your development project. This menu provides operations such
as compile, transpile and Security (authorization).

Help The Help menu launches the Developer help file.

Status bar
Displays the current open project and the coordinates of any currently selected
field. The Panel Editor uses a coordinate system based on the standard typeface.
Position 0:0 (i.e. the origin) is the top left hand corner of the window. All the
panel/field positions and sizes are related to the standard typeface (row:column 1:1 equals 1/8:1/4 of the system font size).

Panel Editor Work File (JWA)


The Panel Editor work file contains the following information about a project:

list of all panels in the application

color conversion tables

some settings that are placed in the package file and influence behavior in
the client environment

OIS object definitions

name of external text file

name of translation table

application main panel default size

You must save this file at the beginning of your project.


Note: The "Textfile" and "Translations table" are always associated with the JWA
file currently being maintained . This "logical" relationship is stored in the JWA
file which is compiled, thus generating an JWR file containing this relationship to
"Text" and "Translation table." If you do not save the JWA file (as requested
when closing the Panel Editor, selecting "Project close"), then this relationship is
not saved.

Exploring J Walk Developer

69

Panels
Panels represent the Graphical Interface you are building. They serve to contain
and organize your panel fields. Panels have properties controlling all aspects of
their appearance and use. Panel functions can include Open Interface Services
exchanges as well as customized colors and images. Panels are typically built
using the Best Guess process. Templates can have a major impact on the Best
Guess process. After panels have been constructed, further refinement is
possible.
Panel Properties and Objects
Each panel has four different aspects which can be customized. They are

the panel definition

menu bar

panel fields

message boxes associated with a panel.

Note: Panels can only contain up to 256 panel objects.


When designing your panels with panel controls (fields, etc.), these panel controls
sometimes have fixed position characteristics and others have the ability move
and resize. If a panel is resized, the alignment and sizing of controls varies based
on the original panel control property. Panel sizing differences can
occur(especially when a panel will be resized), so be certain how your panels will
be sized to reduce differences across Clients.
Unchecking the "resizable window" property will not "lock" control sizing nor
other attributes of the control; it limits the panel from being stretched larger, only.

Menu Control Type


Menus are used to create panel menu bars and floating menus.
It is recommended that you dedicate 1 panel for all of your floating menus.
Each individual floating menu gets its own Field ID. Reference this panel name
and the Field ID of the menu anywhere you want this floating menu to appear
when the end user clicks on the right mouse button.

70

J Walk Developer Guide

Message Box Control Type


Message boxes reference popup panels that will be automatically displayed in the
client environment whenever a named host field gets a value. The popup panel
contains the text of the host field and an indicator, denoting the severity of the
message. A message box may be a warning, an error, information, or without an
indicator.

Panel Fields
The Developer panels fields can be grouped according to properties. By
examining the properties and purpose of each panel field type, you will have a
better idea of the possibilities for field control choices. Also, this information can
assist you to make effective use of other J Walk Developer tools such as Best
Guess. Examine each field description to inspect these details.
Note: From the Panel Editor, select the Field | Create fields menu entry to
create multiple fields from text existing in the clipboard. Panel editor mouse
operations are required.
When designing your panels with panel controls (fields, etc.), these panel controls
sometimes have fixed position characteristics and others have the ability move
and resize. If a panel is resized, the alignment and sizing of controls varies based
on the original panel control property. Panel sizing differences can occur, so be
certain how your panels will be sized to reduce differences across Clients. Panel
objects can have images assigned to them which, also are influenced by resizing of
panels.
Note: Unchecking the "resizable window" property will not "lock" control sizing
nor other attributes of the control; it limits the panel from being stretched larger,
only.
Some panel control (fields) can include Data Access references as part of their
specification. Data Access can be applied to fields where "text references" can be
applied (such as output fields, listboxes, graphs over listboxes, selections, button
actions, etc...).
When available, go to the selected field's Data Access tab to specify Data Access
file (for creating field references).
These references are created using the Data Access Reference Builder or using
scripts and refer to the specified file containing the specific field. Over the host
system, this is called a "query" and is similar (in syntax) to other query languages.
A special structure is applied when you create an expression which contains a
reference to a Data Access item. See "Applying Data Access" for all details
concerning this powerful tool.

Exploring J Walk Developer

71

Panel Field Mouse Functions


The panel editor supports mouse functions when you are defining a panel field.
The functions listed below apply only when a panel field definition dialog is open.
Hover help
Move the mouse over a dialog property. After a brief moment, a small text
window will open beside the property, giving more information about what type
of action that is going to be performed when this button is selected.
Floating pull down menus
Click on a dialog property with the right mouse button. If there are functions
associated with the property, they will be displayed in a pull down menu beside
the property.
Entry Field Type
The entry field is the simplest representation of input fields. They enable free
form data entry with limited control over the entered values.
Multi-line Entry Field Type
Enables free form data entry with limited control over the entered values. This
field type is a little more complex than entry fields because a value can be
displayed on several lines.
Combination (combo) Box Field Type
Represents input fields that have multiple valid values that are expressed as a list.
Combination boxes have the option of limiting the possible values to only those
contained in the list or allowing other values to be entered manually. Open the
Values tab to define the possible values of the combo box.
Spin Button Field Type
Spin buttons are data entry fields with a limited range of values. Use of this field
type can improve user data entry performance by limiting selection from all
possibilities.
Push Button Field Type
Push buttons are multi-functional panel fields. They can be used to display
graphical bitmaps on a panel. They can be used to overlay "transparent text" over
an image. Their primary function is to initiate an action when triggered, such as
sending a function key to the host, calling a script, calling a pop-up, or activating
an OIS object.

72

J Walk Developer Guide


Radio Button Field Type
Radio buttons are used for input fields with a limited number of valid entries.
This control improves user performance by reducing error and managing possible
selections.
List Box Field Type
Displays columns of data as a table.
Business Graph Types
Any host fields can be represented using a list box. There are different graph
types you can use to best represent your data.
You can make bar charts, line charts, pie charts, area charts, 3D charts.
You can also create (or convert previous Business Graphs) to "Advanced Charts"
which are always editable using the Advanced Chart Editor (also provided with
the Windows Client) allowing more chart types and user storable edits.
Group Box Field Type
A group box logically groups panel fields, mainly text prompts and their
associated entry fields, check boxes and/or radio buttons. They are ideal for
focusing the user to sets of related fields.
Group boxes are title frames (normally) with the same background color as the
panel. Group box fields use text to describe their contents.
Frame Field Type
Frames are borders that can be colored (with a transparent area located on the
inside of the border). They are very similar to Group boxes except that text
cannot be added.
Note: A frame is similar to a group box, without the ability to be styled using
text.
Rectangle Field Type
This field type displays a color-filled rectangle on your panel. Use this field to
emphasize other panel fields.
A rectangle can display 3D thickness and color for a desired area.
Note: A rectangle field can be affected by 3-D depth settings. A rectangle fills
with color based on specified settings.
A rectangles should not be used as group box nor frame.

Exploring J Walk Developer

73

Notebook Control Type


Notebooks are made using a combination of two field types. The Notebook field
provides a frame for the different tabs or pages, which are made with
subwindows.
Notebooks are used to logically group panel fields into different pages when there
are too many panel fields to fit on one panel. Well organized notebooks manage
user performance by collecting valid fields and attributes to be seen as a whole.
Subwindow Field Type
Subwindows function as containers. They are used to contain a number of fields
as if a subwindow is a panel within a panel.
Although subwindows can be used on a panel as an independent field, their
primary use is to create pages of a notebook.
Output Field Type
Output fields are used to connect to host fields that are always display only. The
Output field and the Text field have similar uses.
Text Field Type
Displays a text expression.
Use text fields to describe a panel prompt for an input field or output field
connected to the host.
User Window Type
User window fields enable procedures placed in DLL files to be referenced in the
client environment. You can also use this field type to access procedures that
display the PC's system date and time.

Tools Menu Functions of J Walk


Various project-wide functions exist on the Tools menu. Each editor includes a
Tools Menu.
Note: Menu entries differ per editor (where development usage differs).
For example, from the Panel editor, you may Launch the Best Guess process,
where on the Terminal editor, you can only edit the Best Guess screen templates.

74

J Walk Developer Guide

Each Tools menu process provides you with a powerful tool for a specific task
within your development process. Externalized files and translation tables are
managed using this menu. The Best Guess processing templates for automatically
creating your panels (from Pictures) are manipulated from there. The compiling
(and transpiling) processes are launched from this menu. Also, package
authorization and Developer licensing is controlled from this menu. Data
Organizer Filters, OIS and Scripting features of the Developer as well as the
powerful Change Management function are all located on the Tools menu.
Finally, image conversion for your Java Clients is also initiated from this menu.

Text File
This file (JWM) contains external text references that can be referenced from the
panel title or other text references within panel fields. The file is a standard ASCII
format, with one record one each row. Each record has 2 fields, a 10 character
unique identifier and a 250 character text value. A tab character separates the
identifier from the value (not required).
When a text identifier is found in a panel title or panel field, the identifier is
replaced with the text value.
Example: The text reference "@&X@" will be substituted with the value of X.
Note: The JWM file cannot exceed 16300 lines.

Exploring J Walk Developer

75

Translation Table
Translation files (JWX) are similar to text files in that they are connected to the
application but are not compiled for the Windows Client.
If a text expression existing in a panel field or the panel title has the Use
translation table property set on, then the value of the text will be compared to
entries in the translation table. If a match is found, the text in the translation table
will be substituted for the evaluated text value.
The translation table is a flat text file that can be edited and maintained in a
standard text editor, however, an editor is provided in the Developer. Each line in
the file has an Original text and a Translation text separated with a Tab character.
Each text may be a maximum of 250 characters in length.
Note: The JWX file cannot exceed 16300 translation lines.
Please remember that you may use (ANY) and (ANY1), etc.

Hidden Screens
A hidden screen provides a GUI panel with a "continued connection" to the host
application without building a panel for that screen. Sometimes you have a screen
in your host application that can appear in the emulator but you don't want to
build a panel for it. Examples of these types of host screens could be a screen
with the message "Processing...Please wait".
Making a screen "hidden" removes it during Best Guess and eliminates it from
displaying to end users.
When you "hide" a screen(s), you can provide a link to launch an OIS object
when the hidden screen is displayed on the host.
For example, you can create a script (which sends an F6 key back to the host) to
be attached and launched whenever the "hidden" screen is displayed. This allows
the host screen (and application) to process normally, while effectively removing
the additional screen (and required F6 key) from the end user.

Scripts
J Walk provides its own script language which has a syntax similar to Visual Basic.
With this script language you can execute repeated keystrokes and access host
screen and panel information.
Scripts can be created within the J Walk Developer. Scripts are triggered by a push
button or panel within the J Walk Windows Client. Scripts supplied by the J Walk
Developer cannot be edited by end users of the J Walk Clients.

76

J Walk Developer Guide

Developer OIS objects


Open Interface Services objects provide the means to integrate GUI actions with
other desktop events and applications. OIS objects can be copied, imported or
deleted using the Data Organizer. OIS objects are used to hold scripts which
perform the actual data sharing and execute other desktop application methods.

Package File Licenses


If you have implemented package level security, then a package license is needed
whenever an enduser displays a panel belonging to that package. These licenses
are granted through an authorization code, which is generated using the
Developer. The rules for counting package licenses are the same as described for
Client licenses.

Package File Compilation Process


The compiling process results in a Package file (JWR). This file contains a
compact definition of all your panel files and fields. To compile, a valid license is
required.
Package File (JWR)
Also known as the "Package" file. This file contains screen recognition
information, screen and host fields, corresponding panels, J Walk macros, and
color conversion tables for converting one AS/400 host application to a GUI
application. This is the primary file for distributing.
This file is a compilation of your complete development.

Best Guess Process Overview


The J Walk Developer Best Guess process is the engine for identifying and
building your panels. This operation is launched from the Panel Editor Tools |
Best Guess (one panel or all panels).
Prior to starting a Best Guess run (one panel or all panels), you should specify the
"Best Guess path" to the templates in the Developer Project Settings.
Best Guess uses this path to search identified screens and fields (within the
templates) to apply customization rules.
If you want to manage even more screen and field-level customization of your
Best Guess results, then consider specifying "Template Schemes" (or sets) for
your project. Where Best Guess templates are applied in an "all or nothing"
fashion, Template schemes are specialized template sets (JWT or text files) which
logically extend the Best Guess Template search path per identified screen or host
field!

Exploring J Walk Developer

77

Both path specifications affect the Best Guess panel building process.
Best Guess builds a graphical panel from a picture in four steps.

Set Screen Identifier.

Create Host Field Definitions.

Create Panel.

Create Panel Fields.

The Best Guess screen templates are used to add and remove host fields from the
picture, which affects both the identifier set on the screen and the number of
panel fields that are created. After the screen is identified and host field
definitions made, and panel created, the picture/screen is examined for host fields
which are mapped into panel fields.

Applying Best Guess


Use the Best Guess process to automatically generate panels from pictures within
a Picture Album or a single panel from a live host screen.
Best Guess provides collective industry knowledge for you to select to use when
building your panels.
Influence the outcome of Best Guess through Best Guess templates which
contain your rules to influence the mapping of host fields to graphical controls.
Best Guess can use default Screen and Panel Templates and/or "Template
Scheme and Field Template Map" files to further enhance your productivity.
The Best Guess process is an iterative process.
Best Guess is activated from the Panel Editor. Best Guess is influenced by
specifying objects in templates. After evaluating one outcome of Best Guess,
modify the templates and rebuild the panels using Best Guess again.

78

J Walk Developer Guide


Note: Best Guess all panels will "write over" refined panels unless the switch
is set to restrict building existing panels when using Best Guess all panels.

SQY The Best Guess works on your Picture Album to sort out Panel (BUILD)
from Popups (POPUP). Following that, identified fields are sorted out for field
type characteristics. If the fields are not excluded (XXXEXC), then they are
processed using the specifications found within the appropriate field construct
template.

Screen Templates
BUILD, POPUP, EXCLAREA and EXCLNAME templates are referred to as
"screen" templates. Access these templates (from the Terminal Editor) by
selecting Tools | Best Guess templates.
Best Guess inspects screen templates as a basis for building a picture or screen.
Templates specify adding or deleting field definitions depending upon the
information held in the screen template. First, the EXCLNAME and
EXCLAREA templates are applied to the screen to remove any unwanted host
field definitions. Then the BUILD screen template is applied to the screen to
create any extra host field definitions. Specify the fields to be created in the
BUILD template.

Exploring J Walk Developer

79

The two special host field names "(TITLE)" and "(MESSAGE)" will be created
logically if they are not already defined or excluded in screen templates.
If the screen contains conditional or overlapping texts then the Best Guess will
also create host fields for them.
Notes: If you are building a popup panel, the template POPUP will be used
instead of BUILD.
Host field definitions are NOT changed/created by the Build function if the
screen was already identified. In such a case, you might have made some manual
changes to the host field definitions and you don't want to loose those.
Screen templates influence the host fields used on a picture during Best Guess.
Use screen templates to define or exclude host fields during execution of the Best
Guess to build panels.
BUILD (Screen) Template
The BUILD template is the base template for all screen definitions.
All fields which are defined in this template will be repeated in all screen
definitions created by the Best Guess. Additionally, the Best Guess will add
definitions based on the actual picture.
Using this template you can, for example, have the (TITLE) field be at a specific
location for every picture. To make sure that the Best Guess does not create fields
overlapping this (TITLE) field, you should also make the area used by this field
part of the EXCLAREA template.
EXCLAREA Template
Use this template to indicate areas on the screen which should be ignored by the
Best Guess. That is, the Best Guess should not create host field definitions in that
area or create panel fields for the texts or fields in that area.
This template is typically used to suppress the areas that are already given a name,
defined in the BUILD template.
EXCLNAME Template
All field names used in the field definitions of this template will be excluded from
all screen definitions created by the Best Guess.
Position and type of host field definitions is irrelevant, only the field names are
checked.
You could use this template to suppress the generation of the (TITLE) field or
any other field which is defined in several places across several pictures.

80

J Walk Developer Guide


POPUP (Screen) Template
The POPUP template is the base template for all window screen definitions. This
template serves the same purpose of the BUILD template but is used for popup
windows.
If this template cannot be found, then the Best Guess will use the BUILD
template.
The Best Guess will perform some adjustments to make the fields defined in this
template fit into the actual window size of the picture.

Panel Templates
Influence the panel object creation produced by the Best Guess. Use panel
templates to specify layout attributes.
When generating panels from pictures, the Panel Editor uses templates to
manipulate the layout of the fields on the panels. The Developer comes with
"default templates" which already contain some settings (example: every panel
will have an OK push button in the lower left corner). These templates are
termed "Destructive" (remove or omit) and "Constructive" (add or create) based
on their effect on the panel. Often, both types of templates are used in
conjunction to identify an object (providing some alternative treatment for that
object) and to inhibit the related object(s) from also being built.
Edit these templates using the Panel Editor. Customize the Best Guess build to
meet your specification.
Best Guess panel templates can be accessed from within the Panel Editor using
the menu option Tools | Best Guess templates. Or select the Panel template file
type within the Data Organizer and select a panel template. Press the action you
wish to perform.
Tip: If you have changed any of the Best Guess panel templates, you can restore
all of them again by selecting the Unpack Default Templates taskbar entry from
the Developer task group.
BUILD - Panel layout
It is possible to create main panels and popup panels with the Developer process
called "Best Guess". Most panels of an application will be main panels. Main
panels are created for full size screens ([80x25]) and popup panels are used for
windows from the AS/400 application.
Only one main panel can be displayed at a time. Manually created popup panels
are generally used to show detailed information about the current main panel and
can be layered, displaying multiple popup panels (maximum 15) for one main
panel.

Exploring J Walk Developer

81

In general, Best Guess uses the SAA standards to recognize elements of host
screens and convert them to meaningful GUI equivalents.
For example, it knows that expressions such as F1=, F2= ... F24= are function
keys and in some way should be converted to push buttons. Some variations
based upon experience and software development history are also applied. For
instance, it also recognizes the expressions BT1 through BT24 and PF1 through
PF24 as equivalent to F1 through F24.
The BUILD template serves as the master template when creating panels. Other
Best Guess panel templates define the layout and conversions for other panel
fields to be added based on host fields Best Guess finds on the host screen.
The BUILD template provided with the Developer builds into every panel:

the default panel size

a menu bar (can be removed)

an OK push button (equivalent to pressing Enter in the host session)

position and size for other push buttons created from function keys

the panel title bar

a message field (can be removed).

You can modify the BUILD template. For instance, you could

add an icon, some standard text such as a copyright message

add panel fields

change the attributes and positioning of the existing fields in the BUILD
template or resize the template.

Note: The FIELDS template contains the default properties for all panel field
types when creating panel fields manually and is not used by Best Guess.
Tip: If a BUILD template field specifically refers to a host screen field and that
field does not exist on the current picture, then the field will not be created in the
panel. This feature lets you add global fields to the BUILD panel so that they will
appear in a fixed location for every Best Guess panel if applicable.
CHK - Check box layout
Check boxes are GUI objects suited for host entry fields having only one of two
values.

82

J Walk Developer Guide


During Best Guess, the Developer scans the screen looking for text formatted as
"Y/N" (for Y=Yes and N=No) beside host entry fields. This text could be
anything, "S/N" (for Si and No) or "1/2", it really doesn't matter. If the Best
Guess can extract two and only two possible values described beside a host entry
field, it then tries to create a check box panel field.
Within the CHK template, a check box is defined using a pair of check box fields.
The first check box field of the pair is used during the host entry field scan.
When the Best Guess finds a potential check box candidate, it searches the first
element of each pair, looking for a check box that matches the two text values
found on the screen.
The text values are stored in the String (checked) and String (unchecked) prompts
of the check box definition dialog box. The order of the text values is not
significant.
When scanning host entry fields for check boxes, it is possible to use wildcards on
the text displayed and the host field named by using the Developer reserved word
(ANY) in the Text prompt and the Host field prompt of the check box definition
dialog box, respectively. It is also possible to limit a search by entering specific
text values or host field names.
When the Best Guess finds a match, it uses the second element of the pair as the
check box field definition placed in the panel.
If no match is found then the Best Guess will generate Radio buttons for this
field.
Tip: If Best Guess creates a radio button where you would prefer a check box,
add a check box field to the CHK template that explicitly defines the host field
and its possible values. Whenever the host field is detected on the screen, a check
box will be created on the panel.
COL - List box column layouts
This template defines the default column layout for columns and headers within
list boxes produced by Best Guess.
There are two similar panel templates, COLNUM and COLTXT. When the Best
Guess detects a numeric column, it will first look for a COLNUM template and
use its definition to convert the numeric column of the host subfile to a column
of the panel field list box.
Similarly, the Best Guess uses the COLTXT template when it detects a fixed text
column in the host subfile. The COL template is used for alphanumeric columns
or if the Best Guess cannot determine if the column is numeric or text or if the
COLNUM and COLTXT templates aren't present, it uses the COL template.

Exploring J Walk Developer

83

The COL template contains pairs of list boxes - one pair of list boxes is included
with the standard COL template.
The first list box defines the conditions of the subfile host fields and the columns
of the different subfiles. As a default, there are two column names (ANY) and
(ANY). The second list box defines the column layout that should be created
from the subfile host fields.
(ANY) is a Developer reserved words and indicate that the Best Guess will
convert any subfile column, whether output only or input/output enabled to a
column in a list box. The second element of the pair defines how the column will
appear on the graphic panel. It is possible to assign different attributes to the
columns, thus offsetting output columns from columns that allow data entry.
The names of the columns in the second element of the pair are (SAME) and
(SAME). There is one column defined for every column defined in the first
element. Using (SAME) and (SAME) in the Host field prompt will make the
column created in the list box be connected to the host field of the screen.
COLNUM - List box numeric column layout
It is not possible to detect numeric or text column subfiles from the host field
definition. However, extra information is maintained in the picture than can be
seen in the host field definition dialog box. Using this extra information, the Best
Guess can determine when a column is numeric or text. When it finds a numeric
subfile column, Best Guess uses this template to define how the numeric columns
should appear in the list box.
So it is possible to make the numeric columns appear differently (e.g. right
aligned) than the text columns in the list box. It is also possible to make different
numeric columns have different appearances. Use the first list box of the pair to
identify the numeric column by host field name. The second list box of the pair
defines how it should look on the panel.
COLTXT - List box text column layout
When the Best Guess detects a subfile, it first searches for numeric and text
columns. When it detects a text column, it uses this template to determine the
attributes of the text column. This template works similar to the COL template.
INP - Include entry fields
This template uses pairs of panel entry fields to convert a host entry field to a
panel entry field. When the Best Guess detects an host input/output field, it first
determines if the host field has a numeric definition. If it has, then the Best
Guess searches the INPNUM template for a corresponding panel entry field
definition for the host field.

84

J Walk Developer Guide


If the Best Guess cannot find the INPNUM template or cannot find the host
field in the INPNUM template, it then searches this INP template for a
corresponding panel entry field definition.
Best Guess searches the first field of each pair until it finds a matching criteria.
Use (ANY) for any text property. You can also specify a field length if you select
on that.
When a match occurs, the Best Guess builds a panel entry field using the
definitions of the second entry field of the pair. It is possible to copy the host
field name from the screen by entering (SAME) in the host field prompt.
Notes: If you modify this template, place the standard (ANY) and (SAME) entry
fields as the last pair in the template's field order.
If working with pairs of fields in a template, you should do the following before
saving the template:

align each pair of fields at the top

select the menu option Arrange | Order | Fields by position.

Now the fields will have the proper order.


INPEXC - Entry fields to be excluded
This template defines all host screen input/output fields that should be excluded
from a Best Guess panel. This template only has single field definitions as no
resultant field is created.
The standard template contains a panel entry field with the Host field prompt
containing the name (SAMPLE). The reserved word (SAMPLE) does not select
any host fields. It is used as an example to make copies of panel entry fields.
To exclude host fields, enter the name of the host field in the Host field prompt.
The Best Guess searches all input/output fields in the host screen that match the
value in the Host field prompt and excludes these fields from the panel. The
standard template doesn't exclude any fields.
INPNUM - Numeric entry field layouts
This template controls the layout for numeric host screen input/output fields.
The standard template includes an (ANY) entry field and a (SAME) entry field.
The Best Guess searches for numeric input/output fields in the host screen that
match the (ANY) fields attributes and creates a panel entry field with the
attributes of the (SAME) entry field.

Exploring J Walk Developer

85

This template controls the numeric field layout. In this way, you can set numeric
fields to be left or right justified or change colors, independent of other
input/output host fields. For all other input/output fields, the Best Guess uses
the INP template.
KEYTXT - Key names
The Best Guess logically divides the host screen into three parts, the header, the
body, and the footer. The header is the title and identifier of the screen. The
footer usually contains an area for a message line (or lines) and function keys
available. The body of a host screen is usually the largest area and contains the
information and data prompts for which the screen was made.
The Best Guess searches the body and footer of the host screen for text separated
by the "=" character for assignment statement. When found, the Best Guess
makes a push button field from the text preceding the assignment.
For example, if the Best Guess found the text "F1=Help F3=Exit F12=Cancel".
It would make three push button fields with the Text prompt and the Send key
prompt containing the values "F1", "F3", and "F12", respectively for the three
push buttons.
However, using the KEYTXT template, it is possible to specify different key
names like "Help" and how they are to be related to keys.
For example, it is common to use the word "Help" for the "F1" key. A common
example would be "Help=Menu assistance". In this example, without the
KEYTXT template, a push key would be made by Best Guess that had the Text
prompt and Send key prompt assigned the value "Help".
The Best Guess uses this template to attempt to match the text preceding the
assignment with any of the buttons defined in the KEYTXT template.
Using the above example, there should be a push button field in the KEYTXT
template with the Text prompt containing "Help" and the Send key prompt
containing "F1" (in other words, it would recognize Help as a key).
The standard template includes three push buttons titled ENTER, PGUP and
PGDN.
LST - List box layout
List box panel fields are created by the Best Guess whenever a subfile (or look-alike) on the host screen is detected.

86

J Walk Developer Guide


This template specifically defines the layout of list boxes that have no Option
column (no list box connected push buttons will be created) or when all other
templates that define list boxes fail to match the list box attributes. See SEL Selection list layout, SELMUL - Multiple line selection list layout and LSTMUL Multiple row list layout.
This standard template specifies a single list box field with the Field ID prompt
containing the value "(LIST)" (which is another reserved word). The attributes of
this panel field are copied to the panel by the Best Guess.
When the Best Guess detects a subfile, it tries to determine if the first column is
an input/output field or if any of the columns overlap each other. The
SETTINGS template can be used to influence list box headers. If any of these
conditions are detected, the Best Guess uses another list box template. Detecting
an input/output field in the first column indicates that list box connected push
buttons have to be created and the Best Guess uses the SEL template. Detecting
overlapping columns and an input/output field in the first column indicates that
the SELMUL template should be used. Just detecting overlapping columns
indicates that the LSTMUL template should be used.
When the Best Guess detects a subfile, it creates a column in the list box for each
column in the subfile, except the left hand column if it is an input/output field
(considered the option column). The COL, COLNUM, and COLTXT templates
are used to determine the definition of each column. If the none of these column
definition templates are used to define a list box column, the column definition
contained in the COL template will be used.
List boxes are generated by Best Guess with a height which is related to the height
of the columns in the corresponding pictures. This is done to ensure that all lines
displayed on the screen are visible on the GUI panel in the client environment.
Notes: List boxes are only created from subfiles or look-a-likes (nicely aligned
rows with fields).
The List box header detection is done via the SETTINGS template.
The width of a column is determined by the data in the column and the header.
LSTMUL - Multiple row list layout
This template defines the layout of list boxes without push button connections
which have overlapping columns. The definition of this template is similar to the
LST template.

Exploring J Walk Developer

87

The LSTMUL template should normally use a fixed font for its columns while the
LST template can use any font. The Best Guess will use the LSTMUL template if
overlapping columns are found. These overlapping columns will then be joined
into one column, which is the only difference between this list box definition and
that of the LST template list box. If the LSTMUL template does not exist then
the Best Guess will default to the LST template.
MNU - Menu button layout
This template defines the push buttons that form menus from numbered host
screen menus, such as the example given below:
1. Folders
2. Documents
90. Signoff
The standard template has a pair of push buttons (ANY) and (SAME).
The Best Guess searches the host screen for numbered menus and creates
(SAME) push buttons for each numbered menu item that matches the attributes
of the (ANY) push button.
You can modify this template to include push button fields with specific host field
connections and attributes. During Best Guess, host fields that match fields in the
template are included in the panel as push buttons with the attributes defined for
the matching field.
For example, the menu option 90. Signoff appears in many AS/400 screens.
Using this template, it would be possible to apply a bitmap to the Signoff push
button and change its size, or in some other way change its appearance.
Whenever the 90. Signoff menu option is found by the Best Guess, its own
special push button would be created.
Tip: An easy way to apply a bitmap to a push button is to copy and paste a
"SIGNOFF" button created by the Best Guess into the MNU template and then
create the button with the bitmap you want.
Note: If you modify this template, ensure that the standard (ANY) and (SAME)
entry fields are the last pair in the panel's field order.
NOMNEM - Texts which do not require mnemonics
By default, the J Walk Windows Client will use the first character of a text for the
mnemonic if the text is based on a host field reference. This can now be
controlled in the application data.

88

J Walk Developer Guide


When you determine some texts, where no mnemonics should be assigned, then
these texts should be placed into the NOMNEM template. Best Guess will not
assign mnemonics to any text found in this template.
Note: The Best Guess will attempt to minimize the number of mnemonic
conflicts.
The standard template that is delivered with the Developer is empty.
OUT - Output field layouts
This template creates output fields from display-only host fields. This template
uses pairs of panel output fields to create one output field from a host displayonly field.
The first field of the pair is used to name a host field.
The second field of the pair generates the panel field definition created on the
panel. The standard template includes an (ANY) output host field and a (SAME)
output panel field which creates a panel output field for any display-only host field
detected by the Best Guess.
You can modify this template to include display-only fields with specific host field
connections and attributes. During Best Guess, host fields that match fields in the
template are included in the panel as output fields with the attributes defined for
the matching field.
Notes: The field length is significant when it is specified. Specify value "0" if
insignificant. This way, you can control the field sizing in more detail.
If you modify this template, ensure that the standard (ANY) and (SAME) entry
fields are the last pair in the panel's field order.
OUTEXC - Output fields to be excluded
This template defines all host screen display-only fields that should be excluded
from a Best Guess panel. This template only has single host field definitions as no
resultant panel field is created.
The standard template contains an output field connected to a (SAMPLE) host
field. The reserved word (SAMPLE) indicates that the field is only a sample and
does not exclude any output fields.
You can modify this template to exclude display-only fields with specific host
field connections. During Best Guess, host fields that match fields in this
template are excluded from the Best Guess panel.

Exploring J Walk Developer

89

OUTNUM - Numeric output field layouts


This template creates numeric output panel fields from numeric display-only host
screen fields. When the Best Guess detects a display-only field, it first determines
if it is a numeric field. If so, the Best Guess uses this template to define the panel
output field. Secondarily (fail or otherwise), it uses the OUT template.
It is possible to name individual host fields by entering their name in the Host
field prompt of the first field of the pair. When found, the Best Guess will use
the corresponding field to define the panel output field. The standard template
comes with one pair using the reserved words (ANY) and (SAME). This
indicates that all numeric display-only host fields will be created and defined using
the definition found in the (SAME) field.
Note: You can control the sizing of the field, as well.
You can modify this template to include display-only fields with specific host field
connections and attributes. During Best Guess, host fields that match fields in the
template are included in the panel as output fields with the attributes defined for
the matching field.
POPUP - Popup panel layout
This template has the same function as the BUILD template.
The only difference is that in case of an AS/400 window, J Walk will first check
whether the POPUP template exists. If so, the POPUP template is used. If not,
the BUILD template is used.
This template works exactly the same as BUILD except it also controls the size of
the panels and where they are located within the Developer window in the client
environment.
POS - Screen position to panel position mapping
This template influences the positioning of panel fields on a panel based upon the
position of their corresponding host fields on the host screen. This is
accomplished by placing text fields with the format "X,Y" (which reflect
coordinates on the host screen) in the POS template.
The text field values can be between "1,1" and "80,25".
The Best Guess processes these coordinates starting in the upper left hand corner
and moving downwards to the lower right hand corner of the POS template. Use
the POS template to:

90

J Walk Developer Guide


1.

Increase (or decrease) the available space on a panel for placing panel
fields. For example, if your host screens are designed in such a fashion that
the first 5 rows never contain host fields that are converted to panel fields,
you could place the coordinate "1,6" in the most upper left corner of the
POS template. This would increase the vertical spacing of panel fields. In
other words, the same amount of panel space would be divided between 20
rows instead of 25 rows. You can also shrink the amount of available panel
space by placing the text entry "1,1" in another position in the POS
template beside the upper left hand corner.

2.

Change the field spacing on the panel so that some areas of the panel have
more space between panel fields than other areas. For instance, if you place
the text entry "40,21" in the middle of the POS template, then the
horizontal spacing would remain the same (40 columns from 80 columns
positioned half way in the POS template), but the vertical spacing would be
almost cut in half (21 lines from 25 positioned in the middle of the
template).

3.

Build panels in a bi-directional environment. For right to left panels, it is


strongly recommended to put a "80" text field on the left hand side of the
template and a "1" text field on the right hand side. This gives better right
to left alignment.

It is possible to specify only the column or row. The column is always specified
first. Meaning a text entry such as ",1" is valid.
The standard template that is delivered with the Developer is empty, causing all
fields to be aligned to the left of the panel.
By placing a text field with (X,Y) coordinates somewhere in the POS template,
you are marking that position on the panel to correspond to (X,Y) on the screen.
PSH - Push button layouts
This template specifies how function keys on the host screen are to be converted
to push buttons. This is specified by mapping the function keys to template push
buttons using pairs of push button prompts.
The first push button prompt is used to name the function key from the host
screen. The second push button of the pair is for the definition of the push
button field on the panel.
The standard template has four sets of push buttons. Each pair of buttons are
defined with the same Send key prompt. By row the Send key prompt contains
the value F3, F12, F4 and (None) for Exit, Cancel, Prompt and (SAME),
respectively.

Exploring J Walk Developer

91

During the Best Guess process, any function keys in the host screen for F3, F12
and F4 are created as the push buttons with the Text prompt containing the value
Exit, Cancel and Prompt respectively. The Send key prompt will contain the
value F3, F12, orF4.
Any other function keys will be given the attributes of the (SAME) push button.
For instance, if the screen has function key F11=Display names only, a button
will be created with the Text prompt containing Display names only and the Send
key prompt set to F11.
You can modify this template to include push button mappings for specific
function keys by adding an (ANY) button that specifies the Send key and a result
button with the same Send key and the required text and attributes. Take care that
the field order is correct. Pairs of push button fields should have consecutive
order within the template.
Tip: An easy way to specify the PSH template values is to copy and paste a
button created by Best Guess into the PSH template. You modify the button to
apply a bitmap, etc.
Note: If you modify this template, ensure that the standard (ANY) and (SAME)
entry fields are the last pair in the panels Field order.
PSHEXC - Push buttons to be excluded
This template defines all function keys that should be excluded from a Best Guess
panel. This template only has single field definitions as no resultant field is
created. The standard template specifically excludes the function "More keys".
Best Guess will first use logic and the PSH template to generate the buttons.
Before placing them in the panel, the buttons are checked against the contents of
the PSHEXC template. If a match is found then the button will be discarded.
Using the example "More keys", Best Guess searches all host screen fields that
have the function key F24 and the text "More keys" that match the "More keys"
field attributes and excludes these function keys from the panel.
You can modify this template to exclude any other specific function keys. During
Best Guess, any host fields that match the text and Send key of a push button in
this template are excluded from the Best Guess panel.
Tip: An easy way to specify the PSHEXC template values is to copy and paste a
button created by Best Guess into the PSHEXC template.

92

J Walk Developer Guide


PSHKEY - Push buttons not be moved to the menu bar
The Best Guess will automatically add any function keys that do not fit on the
push button line of the panel to the pull down Menu bar. This template defines
any function keys that should not be moved to the pull down menu, but must be
included as push buttons.
The standard template includes three push buttons with (ANY) text.
These push buttons are defined with the Send key F3, F4 and F12 respectively to
ensure that the standard Exit, Prompt and Cancel functions are in the panel.
You can modify this template to ensure that any other specific function keys
always appear in the panel. During Best Guess, if any host function key matches
any of the send keys, irrespective of text contents, these function keys are added
to the panel as push buttons and not added to the Menu bar.
PSHSEL - List buttons not be moved to the menu bar
The Best Guess will automatically move any subfile connected functions that do
not fit on the panel to the Menu bar. This template defines any function keys that
are connected to a List box that should not be moved to the pull down Menu bar,
but must be included as push buttons.
The standard template has one push button with (ANY) text.
For example, if the options "5=View" and "6=Print" are always to be included in
the panel with a list box, two push buttons are defined with the Send key Enter
and the String value "5" and "6", respectively. These ensure that the standard
View and Print functions are in the panel.
You can modify this template to ensure any other specific functions are always
included in the panel with a list box.
RAD - Radio buttons layout
Radio buttons are substituted for host fields that can have more than one value.
This template defines how to create radio buttons in a panel.
This template uses pairs of radio button prompts to detect candidate host fields
and build radio buttons from those fields.
The first field of the pair is used when the Best Guess detects a candidate entry
field that has a limited number of options. It is possible to use this first field to
distinguish host field names. Different host fields can appear differently on the
panel.
The second field of the pair contains the definition that is used to create the field
definition on the panel.

Exploring J Walk Developer

93

The RAD template is activated if an I/O field has some text after or before it
representing a list of possible values. Some examples of the text format are:
"1=Next, 2=Exit, 3=Cancel" or "X/Y/Z".
The Best Guess searches the host screen for any single character input/output
field that can have multiple values and match the attributes of the (ANY) Radio
button definition. For each possible value it creates a radio button.
You can modify the RAD template to include radio buttons for specific host field
connections and attributes. During Best Guess, host fields that match fields in the
template are included as radio buttons in the panel with the attributes defined for
the matching field.
Tip: If Best Guess creates a Radio button where you would prefer a check box,
add a Check box field to the CHK template that explicitly defines the host field
and its possible values.
Where more than one set of radio button groups have been created in a panel,
Best Guess will automatically insert a Tab stop to ensure proper grouping in the
client environment.
RADGRP - Radio button group layouts
This template creates a titled group box with radio buttons. It is typically used to
set the orientation for radio button groups as horizontal or vertical (options
underneath each other).
The Best Guess searches the host screen for ANY input/output field that can
have multiple values and matches the attributes of the (ANY) Radio button
definition. For each field group it finds, it creates a group box with a radio button
for each value Layout defined in RAD template).
You can modify this template for radio button groups with specific host field
connections and attributes. During Best Guess, host fields that match fields in the
template are included as radio button groups in the panel with the attributes
defined for the matching field.
Where more than one set of Radio button groups have been created in a panel,
Best Guess will automatically insert a Tab stop to ensure proper grouping in the
client environment.
SEL - Selection list layout
This template defines the layout of all list boxes with push button connections;
i.e. a list box that requires a row (or rows) selection followed by a function choice
in the client environment.

94

J Walk Developer Guide


It is typically used to set the position of the list box connected push buttons
relative to the list box. Buttons could be displayed above, below, or to the side of
the box, using this template.
The standard template specifies a list box (LIST) with two (ANY) columns
associated with two push button prompts (BUTTON1) and (BUTTON2).
The position of the push buttons relative to the list box in the template is used
when creating the list box on the panel. The Best Guess searches any subfile,
creating a column in the list box for all columns in the subfile, except the left
hand column. Each column is defined by the COL, COLNUM, and COLTXT
templates.
If any push buttons cannot be created in the panel with the list box due to space
problems, they are moved to the pull down menu bar, unless they are specifically
included in the PSHSEL template.
SELMUL - Multiple line selection list layout
This template has the same function as the SEL template but is specifically
designed for multiple line subfile records. A multiple line record may not have
the columns neatly aligned. This requires some different settings on column and
line separators if compared to the normal single line selection list.
SETTINGS - Best Guess settings template
This template contains different defaults that can be changed from one Best
Guess run to the next. Included are the settings contained within this template.
MaxListBoxHeaderLines
This setting defines the maximum number of host screen lines above a subfile in
which the Best Guess will search for headers. If all headers are removed from the
list box definition in the list box templates (LST, LSTMUL, SEL and SELMUL)
then the Best Guess still processes the number of header lines defined by this
setting but will not create column headings. These header lines are still available to
other panel fields.
MaxSelectionColumnWidth
This defines the maximum field length for list box columns which might be used
as the selection column. The column must be the first column on the left (or right
for bidi) in a subfile. When the selection column has a width less than or equal to
this setting, Best Guess uses the SEL or SELMUL template to build a list box
from the subfile. Otherwise, Best Guess uses the LST or LSTMUL templates to
build list boxes from subfiles.
NoiseChars

Exploring J Walk Developer

95

These characters are always stripped from all texts before they are put as fixed
text in a text field, button or something created by the Best Guess.
OptionsSeparatorChars
These are the characters which are used to separate an option from its
description. For example, "1=This 2=That". In this case the equal sign is the
separator and therefore belongs in this setting.
OptionListSeparatorChars
These are the characters which are used to separate multiple options / field
values. Eg. Coffee (Y/N) or (1,2,3). In these cases the "/" and ","characters are
used to separate the possible field values.
Note: Please be aware that OptionListSeparatorChars does not mean that this is
related to LIST boxes. It refers to a values list.
AverageCharWidthLength
This value is used by Best Guess to determine which formula will be used to
calculate the panel field length of the GUI control representing the host field.
Best Guess uses one of two formulas for determining the length of each panel
field. If the host field length (in characters) is less than or equal to
AverageCharWidthLength, then the first formula is used. Otherwise, the second
formula is used.
MaximumPixels x HostFieldLength + ExtraPixelsInSAMEField = FieldLength
AveragePixels x HostFieldLength + ExtraPixelsInSAMEField = FieldLength
The first formula assumes that the panel field will be filled with M's , which are
the widest character in proportional fonts. The second formula assumes an
average character width, which is somewhat smaller than using M's. The exact
value of MaximumPixels and AveragePixels varies for each combination of Font
and Size.
Numeric fields (only) are sized according to number of digits (NOT "M" but
instead, "0").
The ExtraPixelsInSAMEField is calculated as the difference between the end of
the (SAME) text and the edge of the panel field. This is used for panel fields
generated with INP, INPNUM, OUT, OUTNUM, and TXT templates.
LiveTextsAsMessages
When this switch is set to 1, the Best Guess assumes that all live texts are based
on message IDs and generates a host field for each text found on the screen and
generates a text field in the panel for each text host field reference. When set to 0,
the Best Guess assumes all texts on the screen are fixed. The default is 0.

96

J Walk Developer Guide


AssignFieldIds
When specified AssignFieldIds=1, every panel field created gets the same ID as
the host field it is connected to.
When =0 (default), field Ids are not assigned.
Note: No check for duplicate field Ids is performed.
TemplateFieldMapper
Enter a fully qualified path to the "Template Field Map" file (*.TXT or *.JWT).
See "Creating Template Field Maps" for details on the content of this file and
please review "Applying Template Schemes with Best Guess" for the complete
use of Template Schemes and associated Template Field Maps.
TXT - Text layouts
This template creates text fields from any host screen text formats. The standard
template has an (ANY) text field and a (SAME) text field. So it is possible to
identify unique texts by specifying different formats for the graphical panel.
The Best Guess searches all text fields in the host screen that match the (ANY)
field attributes and creates a panel text field with the attributes of the (SAME) text
field.
During Best Guess, host text formats that match fields in the template are
included in the panel as text fields with the attributes defined for the matching
field.
Use the (ANY) and (SAME) text field prompts to define a standard font, size and
color to appear on the graphical panel.
TXTEXC - Text to be excluded
This template is used to define all texts which should be excluded from the
graphical panel. The template is typically used to reduce 'noise' texts that have no
meaning on a graphical panel. The standard template contains several text
prompts:
Select one of the following (ANY)
Press (ANY) to continue
Type choices, press (ANY)
Selection or command
Bottom
More
Type options below, then press(ANY)

Exploring J Walk Developer

97

The layout of the template is single text fields that match host text.
You can modify this template to exclude specific text during Best Guess; host text
that matches text in this template are excluded from the Best Guess panel. The
matching text is case and punctuation sensitive.
Note: You can use the (ANY) constructs to match various variations of the same
text:
Select (ANY) of the following
Press (ANY) to (ANY)

TXTNONE - Texts without special meaning


This template is used to define all texts which should not be interpreted in any
way and therefore should become an ordinary text field.
This template typically contains texts which could be confused as being possible
values for an input field. Or are in any other way treated as a special text resulting
in conversions to no text fields.
The layout of the template is single text fields that match a host text.
For example, if your package contains a text like "Q. control" then the Best Guess
will handle this as a menu entry where "control" is the description and Q is the
character which selects the entry. This is, of course, not correct. By putting this
text into the TXTNONE template you instruct the Best Guess to handle "Q.
control" as an ordinary text.
Another example is the text "P/O" (per order). The Best Guess would generate a
check box from this (e.g. P O) instead of just static text.
Note that you can use (ANY) constructs to match a series of characters.
Matching is case insensitive and independent of mnemonic characters and leading
/ trailing spaces.
Note: The standard template that is delivered with the Developer is empty.
XLATE - Text to translate before processing
This template is used to translate texts before they are processed by the logic of
the Best Guess.
The typical use of this template is to convert any non-CUA conforming
constructs within the pictures to CUA lay-out so the Best Guess can recognize
the constructs and use the right templates to create panel fields.
The layout of the template is paired text field prompts.
The first text field is the match and the second text field is the translation.

98

J Walk Developer Guide


Note: The standard template that is delivered with the Developer is empty. You
can also specify keywords like (ANY).
XLATE Example Function Key Assignment
Example: Options 1=First 2=Second
Standard logic will not recognize this as a text that contains list options. In the
XLATE template include a pair to match "Options: (ANY)" and translate this
into "(ANY)". The XLATE template screen would look like:

The fields are marked so that you can see where the first text field ends and the
second one begins.
The result is that the text is translated into "1=First 2=Second", and this will
result in list connected push buttons to be generated by Best Guess.
XLATE Example Menu Item Construction
Example: Options 1.First 2.Second
Use XLATE template to match "Options: (ANY).(ANY) (ANY).(ANY)" and
translate into "(ANY1)=(ANY2) (ANY3)=(ANY4)".
The XLATE text fields would look like:

The fields are marked so that you can see the values placed in each text field.
The result is a text like "1=First 2=Second".
The above examples result in translations that are recognized and processed by
Best Guess logic. It is also possible to use this template to translate into another
normal text field (e.g. match "Debtor number" and translate into "Client
number").

Exploring J Walk Developer

99

Data Organizer
Using Developer involves many project components. Occasionally it is very
handy to examine a specific type of component (for selection) or see entire
project "trees" containing your components. The Developer provides a data
organizer to assist you in "touching" your project components. The Data
Organizer is found throughout the Developer menus. Look for the Organizer
menu selection (for the object you are manipulating). Secondly, whenever you
insert (reference) project components into properties, you are presented the Data
Organizer for your selection. Finally, when you launch the compiler, you are
presented with a selection list to compile; here again, the Data Organizer is used.
In general, the Data Organizer is the main frame for selecting and perusing your
project components and importing components from a different project. Use the
Advanced Organizer when you are importing project components.
The Data Organizer uses Filters to "create customized views" of your project
components. Lastly, apply FindAction sequences to mass update project
components.

Working with the Data Organizer


The Developer Data Organizer provides you with a standard interface (and
methods) for working with most Developer project components.
This interface provides direct project component access using two modes:
Standard and Advanced.
The Standard mode of the Data Organizer is presented whenever you invoke the
Organizer option from the Screen, Panel or Templates menus or the insert
function (right-click) on a panel property.

100 J Walk Developer Guide


The Standard mode provides:

several action buttons beside the list of objects

a combo box for changing the type of object displayed in the list

an Advanced push button that enables objects from another project to be


imported to this project.

Before making a selection, you can apply a filter by entering the name of an
existing Filter in the Filter prompt.
Note: You can define filters from this mode and then apply them immediately
after creating them.
The action buttons of the Standard mode provide standard object operations
including: New (insert), Edit, Save, Save as, Copy, Delete, Rename, Execute and
Print. Button actions are enabled, based upon the type of object selected from the
list.
For example, if you are selecting pictures, the Execute button would be disabled.
The Advanced mode of the Data organizer allows you to import alternative
project components into your current project.
When initiated, the Advanced mode presents two lists of objects. The left side of
the dialog represent the objects that exist in your project. Any objects on the right
side of the dialog represent potential objects to be imported into your current
project.
The Advanced dialog can be used to specify objects to go into your project,
including:

Color conversion table

Default panel size

Filters

FindAction sequences

OIS objects

Panels

Panel templates

Screen templates

Scripts

Texts from text files and translation tables.

Exploring J Walk Developer

101

For example, if you want to add certain panels to your project, then select the
Panels | Organizer menu selection. Select the Advanced button. Open the
other project and select the panels (series) and select the Copy button to copy
these panels over into your project.
While making a selection, choose a single selection from the displayed list. After
making a selection, press OK. Your selection will fill the prompt of the entry field
where you invoked the right mouse menu. You can also press Cancel at any time
to just close this dialog.
The Advanced Data Organizer provides access to project components contained
in any Developer project. Use the Advanced Data Organizer to import project
components into your current project, including GUI/400 components without
changing the original items. The Advanced Data Organizer presents your current
project components (by file type selection and any selected filter).
Use the Advanced mode to import (copy) from other projects. Select another
project and then select the objects you wish to import into your current project.
Select specific component types to see only that type of object. Create specialized
filters which specify conditions to create a view of your objects.

Filters
Filters are used to limit the number of objects displayed in the list of the Data
Organizer selection view. A filter is a conditioned view for a particular project
component. All Data Organizer components can be filtered. Filters can be created
using the Filter Wizard.

Find and Action


The Find and Action tool allows you to make mass panel updates: global
changes to panel field types in a single effort. You can use any attribute of a panel
field for setting a selection criterion and apply changes to any attribute of a panel
field. A wizard is provided to assist you with setting the selection criteria and the
new attribute values.
You may utilize SEAGULL reserved words as you create your find and action
sequence.

Developer Project
Developer Project Settings provide the overall "container" for a specific
development environment. A Project requires:

defining project requirements (e.g. paths)

specifying project settings (runtime settings)

102 J Walk Developer Guide

saving the definition (JWD).

These requirements must be satisfied to create a valid working project definition.


Various project-wide functions can be performed.

Developer Project Requirements


Every AS/400 application that you develop graphical panels for is considered a
different J Walk Developer project. When you want to start a new project you
should know that a project:

Should have a project definition file placed below the J Walk Developer
directory (project_name.JWD).

Must have its own unique project working directory.

Must point to a directory with Best Guess templates (*.JWS and *.JWT).

The project working directory must contain the following files:

Terminal editor work file (project_name.JWE)

Panel editor work file (project_name.JWA)

Panel files (anyname.JWW).

The following files are optional and are normally found in the project working
directory:

Exploring J Walk Developer

Picture Album (project_name.JWP)

Identification file (project_name.JWI)

Message text file (project_name.JWM)

Translation table (project_name.JWX)

103

All of these properties of a project are stored in the project definition (JWD) file.
When you start a new project, the only thing you have to let the Developer know
is the name of the project and its working directory. All of the other file names
will be based upon the name of the project.

Developer Project Settings


Developer project settings provide the project attributes which impact your
project in global ways. You may copy or import a project definition (settings)
into your next project. The Data Organizer provides these functions. Any other
project specific settings are found on the File | Project | Settings menu. A set
of project attributes are contained within tabs. All elements of your project
definition are defined here. Runtime settings for opening OIS objects as well as
path definitions for all project components are presented. Colors and even help
multikey values are prescribed with Project Settings.
All project related operations are located on the File | Project | Settings menu
(or File | Project | New).
Developer Project Settings include:
Identifiers
Identifiers are project-specific values (such as title), potential icon files and the
project path.
Files
All file paths are defined within the Project. Paths designate the location
(directory folder) of Best Guess templates, Template Schemes, external files and
so forth.
Client
In Client execution, certain Client-specific properties must be set. Example:
Your help file must be referenced with a MultiKey specified value ("A"). This
type of detail is included at the Client tab.
Colors
User color and color conversion tables are provided to add color to panel object
properties.
Notes

104 J Walk Developer Guide


Include notes pertaining to this project and details.
Project Definition (JWD)
The Project Definition file stores references to project files. By default, the
Developer will save the current project as "JW9DEV.JWD" when you exit the
Developer. Next time you start the Developer, all files associated with this project
definition will automatically be opened.
It is recommended to name your project file as your project working directory
name. Hence, within your installed Developer directory (example:
C:\JWALKDEV) you will see all defined projects from one path.

Building a Package File

105

Building a Package File


Building the Package file is your primary goal while using Developer. Building the
package file requires a good understanding of the Developer interface as well as
deciding your important planning ideas. Now you want to make it happen. It is
assumed you have created and transferred an AWHOST file to your development
PC in order to begin these activities.
Package File Development Phases
Your package file can be scene as having a "life cycle." The Package file life cycle
can be broken down into phases.
Preparation Phase
This phase involves modifying the Picture Album, Manipulation of Live Screens
and optimizing the Best Guess Results.
In this phase, you iterate through launching Best Guess against the Picture Album
and evaluating your results. Based on your evaluation, completing this phase may
require modifying screen or panel templates, marking Pictures as "Redundant," or
possibly re-running the Collector (modifying parameters to create a new
AWHOST file, resulting in a new Picture Album).
Building Phase
The building phase requires that your basic Picture Album (and related Panels) are
properly prepared. Also Best Guess Templates have been applied to all
constructs. Expect this phase to only occur once (not iterative).
Live screens provide the alternative host application display source versus the
Picture Album. Prepare and manipulate live screens for those specific host
screens that are not "contained" within the host application. For example, the
SIGNON screen is not part of any one host application, yet you will probably
want a panel representing that Host Screen to look as much like your panels as
possible. Simply prepare a live screen for inclusion within your panel building
process.
This phase represents the refining of your panels (built using Best Guess) that
require additional modifications outside the scope of applying templates.
Conditions requiring manual refinement include:

If a Best Guess panel appears "busy or cluttered," consider refining the


panel. For busy panels, refinement could mean applying Notebooks,
Rectangles, Frames and Popups.

106 J Walk Developer Guide

If a Best Guess did not find the details to create the desired field type,
consider refinement to apply the control (e.g. spin button with a range, or
combo box).

The Building Phase also involves extending your panel objects to the
Desktop (OIS, etc.).

If you require use of Business Graphs.

Two approaches to refinement are provided: Manual and Find and Action
Wizard.
The manual approach should be limited in use because all refinement must be
"retouched" each time you change some condition as you iterate through the
build phase. This can result in re-work and inaccuracies.
Find and Action Wizard applies mass changes to all panels, based on selection
and action criteria you specify.
Maintenance Phase
A maintenance phase typically happens after initial release of the Package file.
The trigger to perform maintenance is usually related to Host Application changes
occurring.

Developer Preparation Phase


The Preparation phase of the Developer involves creating and finalizing your
Host application-based Picture Album and Best Guess screen and panel
templates.
Please examine Getting Started Building Your Package File for a review of
the primary steps in building a J Walk package file.
Following completion of the primary steps, you may opt to adjust the
"assumptions" made in performing the Best Guess.
To refine the Best Guess process, you use templates to specify conditions to
refine panel creation. Each template refinement requires you to Best Guess the
panels (to view the impact). You can optimize the Best Guess results by
experimenting (prototyping) the conditions before you apply the template.
When this phase is complete, you next perform the Building phase. All
components of this phase must be complete to successfully perform the next
phase.

Getting Started Building Your Package File


When you are starting, there are many actions you can choose to perform.
However, the identified activities are always necessary when you begin a project.

Building a Package File

107

These activities make up only required steps to build a Package file after collecting
an AWHOST file.
You now begin by creating a Picture Album and Identifying the Pictures. Use
Best Guess to build your new panels. Inspect the panels (and screen identifiers)
to ensure you are on the right track. When you decide to compile, the result is
that all of your panels (and screen identifiers) become one results in a Package file
(JWR) which can then be deployed.
"Getting Started" is just that, so not everything you will want to do is listed in the
required activities.
For example, when you complete the creation of a Picture Album, there may be
pictures which are not properly identified or redundant with other identified
pictures. You may need to modify the Picture Album.
Additionally, when you perform a Best Guess, it is likely you will want to adjust
certain results. Optimizing Best Guess results is an important step toward
finalizing your preparation phase and readying for the building phase.
Whenever a special screen is involved, you may need to work with a live screen in
order to "handle" it. An example can be the capturing and modifying of the
SIGNON screen.
Begin with the activities but review the "Overviews" and "Related Topics" for a
better understanding of these activities.
Making Your J Walk Project
Your Developer Project is your J Walk development environment. To use
Developer, you must prepare a project environment and copy templates to work
with. To complete your new project, you should also create the Terminal and
Panel Editor work files and save your new project with a name. Remember that
you can also import other components into your new project (including GUI/400
components).
Creating Your Project Working Directory
When you want to start a new project, you must first create a project's working
directory (folder).
Once you have determined your project working directory, it is recommended to
create an "APP" directory below this folder. This folder is normally created
during installation of Developer. You can use Windows Explorer or a command
line to prepare this step.
Follow these steps to perform this activity.
1.

Start a command line. Or Open your Explorer.

108 J Walk Developer Guide


2.

CD \JWALKDEV Open the Developer working folder.

3.

CD APP Open the application folder.

4.

MD projname Create a project working folder. Specify File | New | folder.


Enter a name for your new project.
Note: 8 character limit.

5.

EXIT

Close the Explorer.

Copying Delivered Templates


It is recommended that you copy the delivered templates to your working
directory. If your project is one of several, consider a global location for these
templates to apply the same Look and Feel to all your projects.
When you installed the Developer, a set of default templates was created in the
APP subdirectory of your Developer program directory (i.e. JWALKDEV\APP).
To copy templates use Windows Explorer or a command line.
The operations (commands) below assume that Developer was installed in
C:\JWALKDEV and your project directory is C:\JWALKDEV\APP\MYPROJ.
Follow these steps to perform this activity.
1.

Start a command line.

2.

COPY C:\JWALKDEV\APP\*.*
C:\JWALKDEV\APP\MYPROJ\*.*

3.

EXIT (Close the command line.)

Creating a Terminal Editor Work File (JWE)


The terminal editor work file contains a working copy of the entire screen set
(both live screens, scripts, host field definitions and pictures). Picture and Screen
edits are made in the work file.
Follow these steps to perform this activity.
1.

Be certain the Terminal Editor window has focus.

2.

Choose the menu option File | New.... This will close the open work file
and prompt to save it, if any changes were made. You can tell if the work
file is new because the title bar will show the text "(Untitled)".

3.

Choose the menu option File | Save as.... It is recommended that the
Terminal Editor work file have the same file name as the project, with the
extension "JWE". For example, if your project is called MYPROJ, then the
Terminal Editor work file will be called: "MYPROJ.JWE".

Building a Package File

109

Creating a Panel Editor Work File (JWA)


The panel editor work file contains a list of panel names, OIS object definitions,
text, translation and color conversion tables.
The directory where the Panel Editor work file is stored becomes the Best Guess
template path by default.
Note: A textfile and translations table are always associated with the JWA file
currently being maintained . This "logical" relationship is stored in the JWA file
which is compiled, thus generating an JWR file containing this relationship to
"Text" and "Translation table." If you do not save the JWA file (as requested
when closing the Panel Editor, selecting "Project close"), then these
relationships are not updated.
Follow these steps to perform this activity.
1.

Be certain the Panel Editor window has focus.

2.

Choose the menu option File | New.... This will close the open work file
and prompt to save it if any changes were made. You can tell if the work
file is new because the title bar will show the text "(Untitled)".

3.

Choose the menu option File | Save as.... It is recommended that the Panel
Editor work file have the same file name as the project, with the extension
"JWA". For example, if your project is called MYPROJ, then the Panel
Editor work file will be called: "MYPROJ.JWA".

Importing Project Components


When you want to re-use components form another Developer project, simply
import them into your next project. Most project components can be imported
into another project. This operation is performed using the Advanced Data
Organizer. Invoke the Advanced Data Organizer by selecting the File | Project |
Import If you select a GUI/400 Project component it will be import
converted to your new project.
Follow these steps to perform this activity.
1.

To import a component from a different project, choose the menu option


File | Project | Import ... from either editor.

2.

The Data Organizer appears. On the left is your current project.

3.

Open another project by pressing the "other object " button.

4.

Select the type of object (lower left). Once you choose an object type, a list
of objects of that type are presented over each project frame.

5.

Select the object(s) from the other project list and press Copy.

110 J Walk Developer Guide


6.

Repeat these steps for all project components that you wish to import.

Saving Your Project Definition (JWD)


It is recommended that you save your project definition with a meaningful name
related to your project. The simplest location to store the file is under the
JWALKDEV installation directory as you will always see all your projects the next
time you open a project.
If you do not enter a project name, the default definition file is
"JW9DEV.EXE.JWD".
Follow these steps to perform this activity.
1.

Give your project definition a name by choosing the menu option File |
Project | Save as... and providing a name and location for the project
definition.

Creating Your Picture Album


Creating your Picture Album is very easy. The underlying utility can be run from
a dialog or command line. Select the Album | New operation (in the Terminal
Editor) using a new AWHOST file created using the SEAGULL Collector.
Follow these steps to perform this activity.
1.

With the Terminal Editor active, select the Album | New menu option.

2.

Follow the dialog to identify your Collected host details and target Picture
Album file.

Identifying Pictures (as unique) within a Picture Album


The Picture Album can contain many permutations of the Host application screen
(e.g. when extra function keys are available, when a conditional field appears on a
screen, etc). The Identify Pictures function attempts to uniquely identify each
picture and recognize potential duplicate pictures. Duplicates (and potential
duplicates) are reported to you for evaluation.
When you are viewing identified screens, an identification number is displayed in
the Terminal Editor screen identification status bar. (none) indicates no
identification is present.
Follow these steps to perform this activity.
1.

Select the Album | Identify pictures menu item.

2.

Specify characteristics of the Identification run. Press OK.

Building a Package File

111

Best Guess Building All Application Panels


Choosing the menu option Tools | Best Guess all panels... opens a dialog in
which you can specify that you want to build panels from all pictures which are in
the currently opened Picture Album.
Skip application panels already defined when existing applications are being
upgraded. This improves the performance of the Best Guess process and reduces
panel design time.
Follow these steps to perform this activity.
1.

Select Tools | Best Guess all panels

2.

Evaluate screens.

3.

Based on your evaluation:


Modify your Picture Album
or
Update screen templates.
or
Re-run Collector.

4.

Evaluate panels.

5.

Based on panel evaluation, update panel templates.

Modifying Your Picture Album


After Best Guess, you may have determined that your Picture Album needs
adjustment.
1.

From the Picture Album, you can remove duplicate pictures by marking
them as "Redundant."

2.

You can influence the Identify Pictures process to change the screen
identifiers made by Best Guess.

Selecting a Picture
Select a picture from your Picture Album. You must have a Picture Album
opened.
Follow these steps to perform this activity.
1.

Select Album | Browse | Browser... or Album | Browse | Organizer

2.

From either dialog, simply double-click on an entry or highlight it and press


an action button.

112 J Walk Developer Guide


3.

Display of the Picture is automatic (as long as you double-click the entry).

Evaluating Identification Run Results


The successful completion of the screen identification run results is an index file
with the same name as the album but with the extension JWI. This filename must
have the same name as the album. A summary of the success of the picture
identification run is stored in a log file (*.SID) which produces information about
how many pictures were found in the album and if any pictures could not be
identified. The desired result is that all pictures be identified as unique. Listed
below are other conditions that can occur and what to do about it.
Redundant screens
Redundant screens are only possible if the album was used already in the
Developer. Redundant screens are marked manually in the Terminal Editor.
Identical screens
Identical screens means that two pictures are exactly the same. Use the Album |
Browse... option to locate these pictures. Decide which picture is to be retained
for panel design purposes and mark any others as redundant.
Cannot be distinguished
In some situations, the picture identification algorithm cannot distinguish
between pictures because they can, depending on indicator settings, create the
same image in a live situation. In this case you should decide which picture is to
be retained for panel design purposes and mark any others as redundant.
Conditionally identified screens
Sometimes screens are found which can be identified as unique, but they are very
similar to other screens. When this occurs, the screens are flagged as
"Conditionally identified". Review the screens and identify them as unique or
redundant.
Note: It is strongly recommended that you re-run the identification after marking
pictures as redundant to improve the identification of the remaining pictures.
Afterwards, your log file should only contain uniquely identified and redundant
pictures.
Marking Pictures as Redundant
If there are screen duplicates, you should mark the duplicated screens, as
redundant, by choosing the Album | Redundant option.
The screens marked as redundant will not be included in the package file (JWR),
but they will remain in the Picture Album for future reference.
Marking pictures as redundant has three effects :

Building a Package File

113

1.

The picture will be ignored next time you perform the screen identification
run (they will be reported as redundant).

2.

The picture will be skipped when you browse the Picture Album.

3.

The picture will be ignored by Best Guess.

Follow these steps to perform this activity.


1.

Select the picture you want to mark redundant and press Ctrl+R
or

2.

Display the picture you want to mark redundant and select Album |
Redundant
or

3.

Select the picture you want to mark as redundant in the Album | Browse |
Browser... dialog window and check the Redundant option.

Optimizing Best Guess Results


Optimizing Best Guess involves reviewing one or more panels built using Best
Guess. It is possible that two or more screens have the same identification. When
this occurs, the screen identification status bar will display the screen value (Many)
instead of the screen name.
Evaluate the results. When you execute another Best Guess, the Developer will
implement the change for you across all screens and panels.
Optimize Best Guess and all your panels will benefit!
Evaluating Best Guess Results
After you have built one or more panels through Best Guess, you should review
these panels to see if you would like to make any more changes.
Run through the Host application. Ensure the correct panel (recognize host
fields, etc.) for each host screen. If the host screen does not match the panel,
consider the following actions:

Inspect and modify your Picture Album

Manually identify the screen

Re-run Collector and create a new AWHOST file.

It is very important that you repeat this process (Best Guess, check, improve
templates) until you are satisfied with the result of Best Guess. Once you begin to
manually refine the panels built by Best Guess, you should not execute another
Best Guess for the picture, as this will replace the panel you were refining!

114 J Walk Developer Guide


Follow these steps to perform this activity.
1.

At the Terminal Editor, select the View | Live Session (checked).

2.

Select the View | Live Test option.

3.

When finished reviewing the panels, close this window by clicking the top
right "x" button. This brings back the Panel Editor. If you no longer wish
to view the live host application, select the View | Live Session to toggle
back to display the Picture Album.

Modifying Screen Templates


Screen templates are used to add or exclude host fields during execution of the
Best Guess which impacts screen identification and the built panel.
Follow these steps to perform this activity.
1.

Screen template actions can be accessed from within the Terminal Editor
using the Tools | Best Guess templates menu options.

2.

Screen templates can be selected using the Data Organizer. Select the
Screen template and press Edit.
The Terminal Editor appears displaying highlighted rectangles indicating
individual host fields or regions.

3.

To manually add a host field or region, use the mouse to drag a new
rectangle.

4.

To copy the host fields from a screen:


1.

Display the screen.

2.

Select to edit the screen template.

3.

Choose Tools | Best Guess Templates | Add fields...

5.

To delete a region, right-click over a rectangle.

6.

Save the modified screen template.

Modifying Panel Templates


To further organize and discuss Panel templates, they are grouped by adding to
your panel or inhibiting an effect which would have been added to your panel.
Each type of template is modified using these steps.
Follow these steps to perform this activity.
1.

From Panel Editor, select Tools | Best Guess Templates | Organizer.

2.

Select a template from the displayed list and press Edit.

Building a Package File

115

3.

Panel templates contain single fields or pairs of fields that specify


modifications to the generated panels.

4.

Attributes pertaining to a panel field include host field references, input


validation, cursor positioning, etc.

5.

Save the panel template.

Developer Building Phase


The Building phase involves refining the exact (final) implementation of your
Graphical User Interface field controls (resulting from Best Guess).
Following refinement with captured live screens, working with certain host fields,
adding graphs, and so on, review topics concerning extending your refined
package file panels and screens with Open Interface Services through which you
can command and supply (or request) data to desktop tools, link with
programming environments and so forth.
When Data Access services are installed and prepared, this phase includes
"Applying and Providing Data Access."

Manipulating Live Screens


You can identify a live screen using the Best Guess one panel function or
manually.
If the emulator source is a live session screen, then the Best Guess uses the rules
of the screen identification run to automatically identify the screen. The screen
name created incrementally starting with the name "SCR0001". A second screen
would be named "SCR0002" and so forth.
You can always manually identify a screen.
Creating Screens with Best Guess
The automatic screen identification procedure uses knowledge based upon the
experience of SEAGULL consultants. This procedure cannot be influenced with
templates.
When the emulator source is not a picture, then the identification data (screen
name and identification attributes) needs to be copied to the Terminal Editor
work file screen identification area. This is done automatically when using Best
Guess.
Follow these steps to perform this activity.
1.

Choose Tools | Best Guess one panel

116 J Walk Developer Guide


2.

If the screen already exists, you are presented a warning, requesting you to
overwrite the screen.

3.

And, if the panel already exists, you are presented a warning, requesting you
to overwrite the panel.

Manually Creating Screens


Pictures and live screens are automatically added to the list of application screens
whenever a Tools | Best Guess one panel or Tools | Best Guess all panels... is
performed.
You can toggle between displaying a picture and a live screen by choosing the
menu option View | Live session in the Terminal Editor.
You can manually identify a screen using the following steps.
Note: Any manual screen identification and host field identification information
will be lost if you build a panel using the Tools | Best Guess one panel option
while displaying the live screen.
Follow these steps to perform this activity.
1.

Enter live session mode by choosing the View | Live session menu option.

2.

Choose the Screen | New... option.

3.

Use the mouse to define rectangles on the screen for identification.


The rectangle can be tested for:

Exact contents

Not equal to

Number only

Text only

Several other variations along these lines.

4.

Choose the Screen | New... option again to turn identify off. A dialog will
appear prompting for a new screen name.

5.

The new screen name appears in the Screen identification status bar.

Modifying a Panel
A panel definition contains general panel attributes like panel name, panel type,
style, link to host screen, OIS object to launch, etc.
Follow these steps to perform this activity.
1.

Double-click on the title bar of the panel you are designing,

Building a Package File

117

or
2.

select Panel | Properties... from the Panel Editor menu bar,


or

3.

press Ctrl+D in the Panel Editor.

4.

Make the required changes to the panel definition dialog.

5.

Click the OK button.

Modifying a Panel Field


Panel fields are all objects on the panel, e.g. entry fields, output fields, fixed text,
push buttons etc. Definitions of panel fields can be changed by:
Follow these steps to perform this activity.
1.

Double-click the mouse on the object or select the object and press Enter.

2.

Click OK after making your changes to return to the panel.

Mapping Host Field Constructs to Panel Objects


Some GUI controls can actually perform the job of several fields (and/or
constructs). The Radio button and List box both use more than one field and
field constructs. With the Radio button, you may only be affecting one field but
you may need to map the field values (and descriptions) to the radio button
choices. A list box can relate several fields of information together.

Accessing Project Externalized Text Files


Panels and panel fields can use references to externalized texts (to be used as
software "labels"). The message text file (JWM) and the translation table (JWX)
are external to the project. They may be used by multiple projects to serve as a
master for text labels and translations. This can be helpful for standardization
across multiple AS/400 applications being given a graphical user interface.
Note: The JWX nor JWM file can exceed 16300 lines.
Follow these steps to perform this activity.
1.

Tools | Text file

2.

Tools | Translation table

Applying Data Access


Begin reading this topic when you are ready to work with Data Access within your
Developer project.

118 J Walk Developer Guide


"Deploying Data Access Server" defines the high level requirements and planning
issues; read it prior applying Data Access.
In order to apply Data Access services, you must already have configured the
Developer and created a Data Access Repository.

This diagram denotes key interface points as well as processing mechanisms (such
as the local data pool).
Examine the areas of the diagram and read more about each area of Data Access
services in the "Related Topics."
Data Access Services
Using a Data Access configured Developer, you can apply Data Access services
throughout your panels.
When configuration for Data Access services is complete, development of Data
Access enabled panels begins.
The Data Access toolbar icon is displayed when you have logged on to the
License and Message Server.
There are several different types of Data Access references that you can create for
your panels (or scripts):

single value field references (text expressions, values, lookups, script


variables, etc.)

Building a Package File

119

multiple record, multiple field columnar-type presentations (graphs, combo


box and list box).

Working with the files that are referenced on your screens


Creating a GUI control using Data Access file referencing can be performed in
"Related files" mode when the emulator is located on the connected screen
(identified) as indicated within the panel you are building. When selecting
records, correct file-key assignments can be handled automatically using the
Autokey feature.
To use Data Access services, ensure you are logged on to the host machine where
the License and Message Server is running (View | Live session).
To test Data Access services, ensure the Developer is logged on to the host
machine where the License and Message Server is running (View | Live session)
connected with Data Access in ONLinemode.
Compiled panels (including Data Access references) result in a Data Access
enabled JWR file. You can check when a DA-enabled JWR file is loaded by
reviewing a Troubleshoot Report.
It is recommended to deploy the package file and Data Access environment and
test thoroughly before distributing.
Using the Reference Builder
When you want to work with Data Access services, typically you invoke the Data
Access Reference Builder.
To invoke this dialog, ensure you are logged on to the host machine where the
License and Message Server is running (View | Live session).
When active, you will see the View |Data Access Refresh menu entry within the
Terminal Editor. Selecting this entry calls the Reference Builder dialog. You can
always inspect details concerning your repository files or refresh the repository in
this way.
Note: Selecting the Data Access icon in your toolbar
local data (stored in the data pool).

, refreshes the current

Working with the files that are used with your screens
Creating a GUI control using Data Access file referencing can be performed in
"Related files" mode when the emulator is located on the connected screen
(identified) as the panel you are building. Performing correct file-key assignments
when selecting records can be handled automatically using the Autokey feature.
These options are presented via the Reference Builder.

120 J Walk Developer Guide


See "Creating Data Access references" for details.
Data Access Levels of Analysis
When you apply Data Access services, you will need to verify several "layers" of
functionality. The following items denote these layers. Review these descriptions
and then inspect the details in the related topics.
Authorization and issues concerning session handling and identification
Issues concerning signon screen usage, automatic signon and session
identification have important impacts when using Data Access.
Creation and processing of Data Access references, scripting, evaluation
and flow issues
Whether you apply Data Access references to your panel objects, and/or within
your script references, certain rules remain in force as you refer to Data Access
fields (using queries). Remember that the general rules for applying text
expressions (and host field references) are also useful. Please inspect the
"Creating Data Access references" topic and examine help topics on the Data
Access dialogs. If you want to script your Data Access references, please review
the script-related topics.
Results of processing, examination of values and troubleshooting
information
Each reference to Data Access will be logged when used. As you investigate Data
Access services (as well as host application collected Data Access Repository), you
may discover various options when assigning your references. Each option result
can be investigated. You can go to the screen and test the panel (and/or run a
Troubleshoot Report). Each method provides part of the complete feedback.
When you have gained confidence in your file references and techniques, then you
may no longer need to "inspect" all results using the Troubleshoot Report. But
this technique is also useful if a problem arises in operation of Windows Client
with Data Access services.
Creating Data Access references
When configuration for Data Access services is complete, development of Data
Access enabled panels begins.
There are several different types of Data Access references that you can create for
your panels.
Whichever type you create, remember the following rules apply:

Ensure you are logged on to the host machine where the License and
Message Server and Data Access Servers are installed and running (View |
Live session).

Building a Package File

121

Create a GUI control wherever you can insert a Data Access file reference
(by right-clicking).

Whenever you create a reference to a Data Access file as a text reference,


you must select the "Always update text" attribute in order for the received
value to be displayed.

Files can be worked with in a "Related files" mode, whereby the underlying
screen (in the emulator) is inspected for identified host fields and any
matches are passed to the Data Access Files Reference Builder. This
technique is further extended by use of the "Autokey" attribute whereby
required keys into the related files are automatically inserted into your
references. To use these features, you must switch to the Terminal editor
(emulator) and go to the connected screen (identified) with the panel you
are developing before you build a Data Access reference.

Reference repository fields from related or all files (range results using
OS/400 Query Language, scripting and text expressions).

Creating Data Access References to Obtain Multiple Records


Data Access can service references (queries) to receive multiple records. Selection
of the records and additional attributes for use with these techniques differ per
control. Controls that handle multiple values inlcude the combo box, list box and
graphs.

Mass Panel Updates


From time to time, you will want to perform an update to a panel or panel object
that you want to repeat over several panels.
All mass updates are performed through the Find and Action wizard. Initiate this
wizard through the Edit | Find and Action | New menu item. This wizard is
called "Find and Action" because you can use it to define a selection criteria to
search for a particular panel object. And, after finding the object, you can choose
to change the attributes, replace the object with a new object, add a new object,
delete the object or do nothing at all.
In addition to executing a "FindAction" sequence, you can choose to use a Find
and replace template from this wizard. This template must exist before you begin
the wizard.

122 J Walk Developer Guide


Using Find and Action
The Developer provides a powerful updating function which can "touch up" all
or a selection of your project panels. The operation is defined within a
FindAction sequence. Open an existing FindAction sequence or create a new one
for the desired effect. The process can be applied using templates by selecting the
option. To create a FindAction sequence, select the Edit | Find and Action |
New to launch the Find and Action Wizard.

Compiling Panels
Compile panels into a package file (JWR). You must enter a JWR filename (with
path) and Application title for the Package File.
Note: This title is not the executable file, but a registration entry for the License
and Message Server.
This title identifies the application. Optional codes should be added after testing
before final preparations.
Follow these steps to perform this activity.
1.

With a project (and panels) open, select the Tools | Compile menu
entry.

2.

The compile dialog presents several options. Verification options may be


selected to limit the warnings during compile. These warnings relate
components not available in the Java Client execution environment. Enter
your application name and recommended "PIN" [optional]. Press enter to
kick off the compile process.

3.

The Data Organizer is presented to confirm selecting of all panels in your


project. Continue with the actual compile by selecting OK.

4.

During compilation, a status bar is presented (estimates progress). Any


warnings or errors are stored in the Compile log. The Compile log is a list
which shows the error and indentifies the specific panel and panel field that
contains the error. By double-clicking on an error, the panel and panel field
selected will be opened and given focus.
To view the Compile log, select the menu item View | Logs | Compile
log. If compiling results in more errors than the Compile log can handle
during compilation, the errors are placed in a report.

Building a Package File

123

Providing Users with On-line Help


Help systems provide users with on-line information to support a product. To
the user, the Help system appears to be part of the application, and is made up of
text, graphics and multimedia objects (if supported) displayed in a Help window
in front of the application.
You can connect your J Walk application to Microsofts Windows Help, just like
any other application operating under Windows.
The task of creating the help file is independent from building the application and
the instructions required to build help files are the subject of another manual.
Creating help is a large task and may require a separate development project!
It is important to plan your help solution in advance of project production to
reduce rework (and misunderstandings).
You will need to familiarize yourself with the help "engine" and a help creation
tool as well as a "scheme" for calling your topics from your packages.
J Walk supports several levels of flexibility when you want to provide help to your
users, each offering you specific benefits:

The SEAGULL approach utilizes the MULTIKEY index call and your
package file name to provide a simple uniform mechanism for calling
context sensitive Help and HTML files.

The extended SEAGULL approach allows you to "override" the package


file name assumption and specify the help file (and HTML topic folder
name) to be used. Extended files can be distributed with package file
"patches" where you provide a new help file (and package file update) to be
used with the original package file.

Customizable WINHELP() script interface to call the WinHelp API and


URLOpen() script interface to opening URL addresses (HTML pages).

There are many publications providing instructions for building help files. You
may find the following brief list of products or references useful when building
help. This list is meant to help those of you first getting started building help.

Design and Writing Online Documentation by William Horton, Wiley


Technical Communication Library.

Microsoft Windows 3.x Help Compiler (Version number: 3.10.505).

Microsoft Word 6.0 (required for generating RTF files compatible with
Microsoft's Help compiler 3.10.505).

Microsoft WinHelp for producing Win95 Help.

124 J Walk Developer Guide

There are a number of Windows based products for assisting in producing


help files including: ForeHelp, Help Breeze, MasterHelp, Doc-To-Help,
and RoboHelp.

Note: This list is by no means conclusive.


With the SEAGULL approach, there are some general steps involved in preparing
your project settings and on-line help files for use with your package files.
1.

Add Panel ID and Field ID references to the help file. See detailed topics.

2.

Based on your package file name (.JWR), name your help file. Or extend
the name using the Help file attribute also in your project settings.

3.

Add the help calls to your panel definitions; compile your project setting
the MULTIKEY table attribute to "A."

4.

Select to apply scripting to provide any additional help file calls using the
WINHELP script function.

5.

If you require HTML page access, apply scripting to open any URL address
using the URLOpen script function.

Activating Help for Panel Controls in Developer


Make push buttons or pull down menu options that let the user start the Help
system from J Walk panels. Help can be started by a menu item or a push button
by placing a help command in the Function / Panel ID prompt. To activate
help for a control, choose the control (in panel editor) and open up to the
Actions Tab. Place the desired help calling keyword into the control. Follow
these rules for selecting which type of help method you wish to use.
The complete list of J Walk help keywords includes:
*HELPFIN
Opens W95 help contents page.
Windows 95 (WinHelp 4.0) provides additional help mechanisms such as
the Contents/Find tab. Use this call to open a supplied CNT file
containing a "Table of Contents" view. Index and Find functions are also
found on this control.
*HELP
Opens a help topic that has its alternative index (usually 'A' or 'G') equal to
the current panel's Panel ID.
Passes the current Panel ID as a keyword to the Help system. The heading
or topic with the Panel ID reference will be opened.

Building a Package File

125

Remember the panel ID looks something like "(1)." With the Windows
operating system, all non A-Z, 0-9 characters are replaced with an
underscore "_". Thus, within a help file the topic reference would look
like "_1_".
*HELPFLD
Opens a help topics that has its alternative index (usually 'A' or 'G') equal
to the last field with focus' Field ID (or host field name).
Uses the current panel field in focus when the help push button was
pressed or help menu item selected. If there is a Field ID for the current
panel field, the Field ID is passed as the keyword reference.
Remember the panel ID looks something like "(1)." With the Windows
operating system, all non A-Z, 0-9 characters are replaced with an
underscore "_". Thus, within a help file the topic reference would look
like "_1_".
If the Field ID is blank and a Host Field ID is present, the Host Field ID is
used. Using the Host field is very convenient for re-using common field
definitions as long as you know the exact Host field name. This name
must be referenced in your help topic within the MULTIKEY footnote.
When a host field reference is not desired, then specify a field ID value
(observing Windows rules concerning parens "( )").
If both Field ID and Host Field ID are empty, then the current Panel ID is
passed as the keyword reference. This means any non-critical fields (fields
you do not wish to document) will at least provide panel level help if called
for.
*HELPIDX
Opens the help file's index page.
*HELPCON
Opens the Contents topic. Always opens the CONTENTS topic in
Windows, if defined.
Note: With Win3.x, a topic must exist with a topic ID= CONTENTS to
use this function.
*HELPEXT
Sends the panel name and adds an underscore in front of it. Example: If
Panel name = "(1)," it will send "_1" as a keyword to the help system.
*HELPKEY

126 J Walk Developer Guide


Sends the panel name and adds "__KEYSHELP" to the name. Example: If
Panel name = "(1)," it will send "1__KEYSHELP" as keyword to the help
system.
Follow these steps to perform this activity.
1.

You must activate help for a panel control. Make a menu item or push
button.

2.

Specify *HELP, *HELPFIN, *HELPFLD, *HELPCON (or


*HELPKEYS or *HELPEXT) as the function/panel attribute.

3.

To activate your MULTIKEY table, you must use Project Settings (Client
tab) to specify use of a MULTIKEY table, namely "A" before compiling
your panel file(s).

Naming Your Help File


The name of your help file can be the same as the name of your corresponding
package file but with a .HLP extension. If multiple package files are opened
simultaneously, the J Walk Windows Client will open the help file associated with
the package file's current panel definition.
Note: If you would like to name your help file differently than your package
file name (for whatever reasons), you may do so by selecting the Project
settings| Client tab. On this tab, you can find the "Help file" field whereby you
may override the default package file name association with an alternative named
help file.

Adding References to the Windows Help File


There are at least two files used by Windows help compilers. One file is called the
project file and it has the extension HPJ. The project file is the master file
containing a list of compile parameters and target RTF files to be compiled. The
other file(s) contain the body of text and its extension is RTF. The Windows help
file example includes this project file:
This is an example project file.
; Project File (CAR.HPJ) example
[OPTIONS]
TITLE=Windows Online Help Example
CNT=xxx.CNT ; identifies the CNT file used by W95 to be
; displayed by the *HELPFIN
; keyword
MULTIKEY=A

; names the special footnote

Building a Package File

127

; reference character that holds


; the Panel and Field IDs.
; character is definable.

This
It

; cannot equal 'K'; it should be


assigned
; to "A" for Win95.
CONTENTS=CONTENTS

; Windows 3.x method for


; opening a contents page

[FILES]
CAR.RTF

; holds the text

Here is the CAR.RTF source file:


# $ Introduction
Welcome to our Windows Online Help Example. This help file has four topics
starting with this first one called Introduction. Topics are separated by page
breaks.
...................................Page Break...................................................
# $ A Signon to AS/400 System
In order to access this application, you must logon to the AS/400 system. A valid
USERID and PASSWORD are required.
....................................Page Break...................................................
# $ A Valid User ID
A valid User ID starts with a letter (A-Z) and can have seven more alphanumeric
characters (A-Z,0-9). Note that no spaces or other punctuation are allowed.
....................................Page Break...................................................
# $ A Main Menu
This is the main menu of our Runtime Car Application. To start the Car
Application enter the following AS/400 commands:
ADDLIBLE CARLIB
CARLIB/CAR
___________________________________
# CONTENTS
$ Introduction

128 J Walk Developer Guide


# SignonAS400
$ Signon to AS/400 System
A SIGNON
# UserId
$ Valid User ID
A USERID
# MainMenu
$ Main Menu
A _1_
Explanation of example:
Windows help topics are separated by page breaks. Beside the title of each topic
is a series of footnote codes (like $, #, and A). These marks function as logical
addresses identifying help topics. A list of footnotes (control codes) used often
when building online help includes (this is not a conclusive list):
Context string - Pound sign #
Unique topic identifier. Context strings are necessary if you want to make
hypertext and hypergraphical jumps.
Note: Topics without a context string can only be accessed using keywords or
browsing sequence.
Title - Dollar sign $
Defines the topic title displayed in the results window of a Search command.
Multi keyword - Other letters { A-Win95, G-Win3.x, others are allowed}
Defines alternate keyword tables for searching topics.
Keyword - K
Defines keywords displayed in the Search window of a Search command. This
method provides additional way to search and access various topics containing
keywords. Example does not contain keywords.
Browse sequence - Plus sign +
Defines a sequence that determines the order in which the user can browse
through topics. This method provides "sequencing" of related topics. Example
does not contain browse sequence values.
Comment - At sign @

Building a Package File

129

Includes user-defined comments about the Help topic.


Follow these steps to perform this activity.
1.

Insert a page break into the help file.

2.

Insert one Footnote with a custom footnote mark "A" for each control
code.

3.

Add the panel ID (or field ID) into the "A" footnote string.

4.

Windows 3.x only: Update the [OPTIONS] section of the project file with
MULTIKEY= "A".

Adding References to HTML Help Files


To best "see" what you need to reference HTML topics, please review the CAR
DEMO HTML Example.
There are no special additional references "inside" the HTML topics. Each
individual topic must be named like the MULTIKEY table value specified in your
existing Help files (i.e. the panel or field name without parenthesis, etc.). Please
note within the DEMO that "context-sensitive" topics are named like the panel
object replacing parenthesis with underscores and so on.
Images MUST be converted to GIF or JPEG format. These images must be
stored within the Package file HTTP Topics folder. It is suggested to use a name
like "images."
The reference is "completed" upon configuration of a J Walk Server property:
httpHelpBase.

Preparing Images
As you produce your Graphical user interface, you may have decided to apply
images to your panels. To apply an image, you reference the image. Developer
references traditional bitmaps (.BMP), icons (.ICO) and Dynamic link libraries
(.DLL or .WIN) . Additional image file types include GIF and JPEG (or JPG). In
some cases, you cannot use every type of image file (see the prompter's available
file filter types).
Additionally, the "animated" GIF file type is shown within Java Clients in a nonanimated mode displaying the first frame- only.
Remember, also, that the Client environment dictates use of specific image
formats during operation within that platform environment.
Note: The JPEG (JPG) image file format is not supported for the Windows 3.x
platform.

130 J Walk Developer Guide


Image DLLs are very flexible for use with push button states, etc.
To prepare a image DLL, use the provided utility to convert a series of BMP files
into a DLL (JWICON).
For image sizing and other basic image preparation considerations, see
"Referencing Images on Your J Walk GUI Controls."
Note: Preparing menu entry images requires use of the standard (32x32 pixels
icon file size) but also require these images be made "transparent." Do so by
placing a smaller 16x16 pixel image file into the standard 32x32 icon image file
size creating a small empty border.

Referencing an Image to a Push Button


A bitmap or icon can be attached to various button field types. File types
supported are BMP, GIF, ICO, JPEG, JPG and image DLLs (WIN, or DLL).
Note: The JPEG (JPG) image file format is not supported for the Windows 3.x
platform.
Follow these steps to perform this activity.
1.

Enter the file name into the Image / File prompt of the GUI control.

2.

After tabbing out of this prompt, the bitmap will be displayed in the
Preview box.

Referencing an Image to a Title Bar


Icons can be added to a panel's title bar.
The icon replaces the standard title bar icon (control menu) in the top left hand
corner of the panel. The specification is similar to how you specify a button icon,
except that the file name and icon identifier are defined separately in the Panel
icon group box.
Follow these steps to perform this activity.
1.

Choose the Panel | Properties... option to add an icon.

2.

Enter the file name and an identifier in the Icon prompt.

Using Image DLL Utility to Embed Bitmaps into a DLL


JWICON takes, as input, a list of bitmap files, which are listed in a resource file
(RC). Each bitmap must have a unique ID number within the resource file, which
are typically multiple of 10. We recommend using multiple of 10 because of the
ability of push buttons, radio buttons, and check boxes to reflect different states
of selection and focus.

Building a Package File

131

You can use any text editor to create a resource file.


Each line of a resource file references a different bitmap file.
The syntax of a resource file is:
<ID> <bitmap file name> ["<string reference>"]

where <ID> is any whole number between 1 and 32,000 and <bitmap file
name> is the full file name of the bitmap.
<string reference> is an optional method for referencing a bitmap from a DLL,
rather than knowing the <ID>. The string reference must be delimited in quotes
and cannot be larger than 16 characters.
An example of a file looks like:
1 demo.bmp

"DEMOICON"

10 fldtext.ico

"TEXTFIELD"

20 fldentry.ico

"ENTRYFIELD"

Follow these steps to perform this activity.


1.

The command to create the bitmap DLL is: JWICON <resource file>.

2.

The utility results in a .WIN file.

Convert Bitmaps to Java Enabled Format (HTTP)


During the production of the package file, bitmap and icon image files were most
likely produced to become a part of the overall packaged product. These files are
shipped as separate files, either combined into a DLL or as separate images.
If you wish to run the package with J Walk Server, it will be necessary for these
image files to of type, GIF (if less than 256 colors used) or JPGs (if more than
256 colors are used), so that they may be used over HTTP.
J Walk Developer and J Walk Server come with a utility to convert these noncompliant image files (DLL, BMP, ICO) to Java compliant formats (GIF and
JPEG). The converted images should be stored in the same directory as the
installed application package.
Note: When using JWICON to produce bitmap DLLs, the utility produces a file
ending with .WIN. The .WIN extension is used for all Windows platforms. When
converting to GIFs and JPGs, use the file ending with the .WIN extension. This
extension is also recognized by the JWIMG.EXE utility.
Note: You may reference JPEG, GIF or JPG image file formats within the
Developer and then you will not need to convert these image types.
Follow these steps to perform this activity.

132 J Walk Developer Guide


1.

Open a command line.

2.

The syntax for the JWIMG.EXE utility is:


JWIMG <sourcefile> <targetdirectory>
You can use standard wildcards to list a set of files to convert. For
example:
JWIMG \Jwalkdev\App\Myappl\*.WIN \IIS\Wwwroot\Jwalk

would convert all of the images stored in all of the files ending with the
extension .WIN from the source development directory, to Java compliant
formats stored on the Server directory where they will be used.
3.

You are now finished with this step, close the command line.

Maintenance Phase
The maintenance phase involves handling AS/400 host application screen
changes. Use the Change Management Wizard to accomplish updates to your
Package files. Smart build is invoked to accomplish building the discrete changes
detected on the new Picture Album.

Launching the Change Management Wizard


To handle discrete host application changes, use the Change Management Wizard.
To use this wizard, you must launch it.
Note: You must collect your new AWHOST file (reflecting the host application
display changes). You must transfer this file to your Project environment.
Follow these steps to perform this activity.
1.

Select the Tools | Migration wizard menu option.

2.

A dialog welcomes you to the Change Management Wizard.

3.

Follow the instructions on the dialog.

Interfacing with Package Files

133

Interfacing with Package Files


Ignite your legacy application using methods to interface your package files with
additional on-line information resources, additional applications, other
programming environments and Windows desktop resources.
A complete GUI solution provides enduser information resources which may not
have been available for your host application.
SEAGULL Clients are enabled with Open Interface Services (OIS) to provide
some of the interfaces and methods described. Following your extensions to your
panels, you will want to distribute the entire package file set for various Client
execution environments.
Note: Most "extending" techniques require compiling into the package file as
well as distribution issues.
Extend package files by interfacing with:

on-line information services

desktop application data sharing strategies

Data Access services for your packages

other programming environments.

Applying graphic images can be considered another area where you must prepare
additional files and they are then, referenced within the Developer.
You can also link programming environments with your Developer using API,
Java or ActiveX interfaces to the development environments.
Additionally, when your package file is deployed, your package file endusers can
create their own toolbars launching further scripts and functions to share data
with their favorite applications.

Linking with Other Applications


Any Developer panel can be extended to share data or make processing calls with
another desktop application. On the Windows desktop, the mechanism to extend
data and application processes is called Dynamic Data Exchange (DDE) protocol.
To extend Client applications on the Windows desktop, attach a DDE script
function to panel objects. Open Interface Services provide you with a method for
writing your script and attaching it to an OIS object. The OIS object can then be
attached to panel object(s).

134 J Walk Developer Guide


These scripts can provide access to desktop application as well as specific URLs
(WWW address). Please review the OIS Reference section for OIS DDE and
other technical details.
The scripting interface also includes methods for communicating with Data
Access Server (when deployed).

Data Access Scripting Methods


Data Access is utilized by creating panel objects containing references which
result in queries for Data Access Repository file-field values to be used within the
panel object.
Data Access scripting references can also be created and attached to panel objects.
First, remember that using Data Access references is designed to function
similarly to host field and text expression evaluation processes already existing in
J Walk. So consider the "evaluation flow" (hierarchy) when you define a reference
which is resolved using these other referencing techniques.
In order to fully "see" how references are evaluated, consider the operation of the
"local data pool" which regulates calls over the network for additional queries by
combining these queries and holding evaluated references for immediate recall.
When you call for Data Access file-field (create a reference), you are actually
requesting a file containing a specific field. Over the host system, this is called a
"query" and is similar (in syntax) to other query languages. A special structure is
applied when you create an expression which contains a reference to a Data
Access item.
When creating your own script (calling a Data Access request), there are two steps
to efficiently use Data Access resources. Each step is supported by a script
function:

DataAccessReceived verifies if the data pool is already populated with


the requested value.

DataAccessRequest sends a query to specify a reference to be sent back


to the local data pool.

When using these methods (and all other evaluation methods), there will be a
need to review interim results and double check provided file index keys (for
record selection) are as you wish. Testing a Live Session is useful but may not
reveal the "actual mistaken reference" or which index key still has no value
(blank). To get the complete view over the panel you are working on, use the
Troubleshoot Assistant to create a Troubleshoot Report.

Interfacing with Package Files

135

Example scripts can be found in the Car Demo referring to Data Access services.
When you script, the real issue is "protecting" entry field errors based on invalid
values such as blank space " " or other non-typical character.

Creating an OIS Object


Create an OIS object to use in conjunction with extending your panel objects to
the desktop.
The notebook contains properties based on (event) identification attributes (Base
definition) and triggers (Message filter) that will initiate the object. When creating
an object, you must update the Message Filter tab which specifies how the object
is triggered.
Follow these steps to perform this activity.
1.

To create a new OIS object, select the menu option Tools | OIS object |
New
The OIS Object definition dialog is displayed.

2.

Specify the OIS object type and descriptive details. If you will attach the
object to a push button, then you may save the object. If you are going to
attach the object to a panel, you must ensure that all message filters are
included messages.

Attaching an OIS Object to a Panel


When attaching an OIS object to a panel, the OIS object must ensure all message
filters are included messages. If the "CreateHidden" message filter is not
included, the OIS object will not start when the panel is opened.
Follow these steps to perform this activity.
1.

Open the panel's definition dialog (by double-clicking on the title bar).

2.

Click on the Action tab.

3.

Enter the OIS object name beside the OIS object prompt.

4.

Press OK.

Attaching an OIS Object to a Push Button or Menu Item


When attaching an OIS object to a push button, include the Command message
on the Message filter tab. The command message will start the OIS object when
the push button or menu item is activated (through clicking or menu navigation).
Follow these steps to perform this activity.
1.

Open the control's definition dialog.

136 J Walk Developer Guide


2.

Click on the Actions tab.

3.

Enter the OIS object name beside the OIS object prompt.

4.

Press OK.

Attaching Script to an Application, Panel or Field


This operation is similar to attaching an OIS object to a push button.
Follow these steps to perform this activity.
1.

Open the control's definition dialog.

2.

Click on the Actions tab.

3.

Enter a Script next to the Script attribute.

4.

Press OK.

Editing User Defined Scripts in J Walk Developer


To edit scripts in the J Walk, choose the menu option Tools | Script |
Organizer. This will open the Data Organizer and display a list of existing
scripts.
To create a new script, you can record a script that contains keystrokes entered by
you or create a blank new script.

To create a blank script choose the menu option Tools | Script | New.

To record a new script

Press the script record icon,

All keystrokes will be recorded to the script.

Press the same icon again to stop recording.

Linking Windows Client Data to Microsoft Excel via DDE


You can link J Walk panels to other applications that support DDE.
Within the Car demo supplied with the Developer, there is a script example that
specifically links a J Walk Windows Client session to an Excel session and is
initiated by pressing a push button within J Walk Windows Client. The push
button exists on panel (8) and can be easily spotted because it displays the Excel
logo.
Follow these steps to perform this activity.
1.

To use this script, import the script from the Car demo to your own
project. The script is called EXCEL within the Car demo.

Interfacing with Package Files

137

2.

To invoke this script from a push button or menu item, it will be necessary
for you to create an OIS object that references this script.

3.

This script fills a new Excel spreadsheet with values within the list box. It
will be necessary for you to modify the source code to fill the Excel
spreadsheet with values within your own panel's list box. This source code
is found in lines 23-63.

Linking Clients with other Programming


Environments
You can use OIS methods to provide Developer with linkage to another
development environment.
You may wish to use the Application Programming Interface (API). This type of
integration allows alternative programming environments to make calls to and
from the Developer (and Clients during execution).
Making requests for Data Access Services can be scripted using OIS protocol or
programmed within alternative programming environments.
A programming environment can access and use functions and subroutines
"embedding" Developer methods inside your development environment.
Powerful programming interfaces using C++, Java, or Visual Basic (ActiveX)
development environments can be established using J Walk.
When integrating J Walk with alternative development environments, there are
various ways to connect to a J Walk session.
Typically, the primary differences have to do with initiating a session connection.

If you write a standalone application connecting to a J Walk session, then


the application must determine the "appropriate" session for connection.
The MainSessionConnect ( ) function can be used to get a connection
handle for any session. You can also query startup data to specify a unique
session.

If you use OIS objects to call your application functions, you must create a
DLL (according to all conventions described in the "Gf.doc" provided with
the OIS objects). See the section "J Walk API User Hook DLL
convention from J Walk." One of the parameters of this function is an
"api_handle" providing a temporary connection to the client session which
called your application. Thus, the MainSessionConnect function is not
required using this method.

138 J Walk Developer Guide

If you use Java, you must create an applet containing the requests and
properties. When initiated for J Walk Java Clients, the JWALK.HTML file
also holds many startup values.

If you use ActiveX methods, you must have an ActiveX editor (like Visual
Basic) and plan the use of ActiveX containers (like MS Internet Explorer
v4, etc.).

OIS Requirements
You must have Visual Basic, Visual Delphi or C/C++ programming skills in
order to take advantage of the APIs. Making use of the DDE function calls and
the script language requires little or no programming skills and should be
adequate for most of your needs.

OIS API Processing Requirements


At least one J Walk Client session and one other application must be active in
order to make use of OIS API functions. The OIS functions allow other active
applications to communicate with J Walk Client sessions, enabling a two-way flow
of communication. J Walk Clients can share any information pertaining to the
AS/400 green screen and knowledge held in the package file (JWR), such as the
name of the currently displayed graphical panel.
It is possible for a J Walk Client session to be connected to one or more
applications at the same time. As a matter of fact, this must be the case because
the J Walk Client session remains in contact with the terminal emulation functions
while API function calls are being processed.

OIS General API Server Process


When you want to connect a J Walk Client with an application, usually the
application is trying to connect to all J Walk Client sessions using
GF_CONNECT_API until one of the sessions acknowledges the request. When
one of the events occurs, the application connects to the J Walk Client session
that made the event and makes a GFAPI call (or multiple calls) to the session.
API Connected to 1 J Walk Client Environment Session

Interfacing with Package Files

139

When linking the application directly to one J Walk Client Environment session, it
is possible to use more OIS functions. This kind of link is called
GF_CONNECT_LOCKED when using the OIS API method. If you are using a
DDE or Script function, this is the only possible kind of link you can establish
and it occurs automatically. This communication mode enables the calling
application to request and send information to a J Walk Client Environment
session.
API Connected to All J Walk Client Sessions

The second kind of link connects the application to all J Walk Client sessions. It
has very limited functionality, only allowing the application to wait for notification
of any activity (i.e. screen updates or keyboard entries) occurring in any J Walk
Client Environment session. This kind of link is called GF_CONNECT_API
when using the OIS API method.
When connected to all J Walk Client sessions, it is only possible to perform the
following functions:

MainSessionConnect - connects calling application to all J Walk Client


sessions.

MsgEventRequest - reads the events that are occurring in the different


J Walk Client sessions.

MainSessionDisconnect - cancels connection to J Walk Client sessions.

User activities trigger events in J Walk Client sessions that can send messages to
other applications' message queues. Common user activities include: pressing the
Enter key, clicking on a panel field with the left mouse button to give it focus, and
pressing a push button send messages.

140 J Walk Developer Guide

Linking to ActiveX Programming Environments


ActiveX is a Microsoft technology that is used to create, contain and manage small
program modules (controls) that can be used inside other programs. An ActiveX
control can not be run independently.
Programs that support ActiveX controls are called (ActiveX) "containers." Most
programs that are shipped by Microsoft today, like Word and Excel are ActiveX
containers.
SEAGULL supplies ActiveX technology for two areas of J Walk:

Within a "Visual" programming environment, enjoy the simplicity


programming the J Walk ActiveX OIS Control

From the J Walk Server, deploy ActiveX (and Full) Clients (MS IE v4+
ready) browser-based startup and operation of the J Walk Windows Client

From the J Walk Server, deploy Plug-in (and Full) Clients (Netscape
Navigator v4+ ready) browser-based startup and operation of the J Walk
Windows Client.

The ActiveX OIS control is used in a development environment supporting


"Visual building" such as MS Visual Basic (v5+).
An important container for the ActiveX Client control is the Internet Explorer
(v4), and the new Active Desktop in Windows 32 bit. Putting ActiveX controls on
HTML pages, results in powerful and good looking web sites. The controls are
sent to the client as part of the HTML pages, during Internet sessions. For this
reason, most ActiveX controls are small and highly specialized.
Note: Netscape does not support the use of ActiveX controls directly. You can
install "Plug-in Clients" which do support ActiveX over the Netscape Navigator
(version 4+). This enables the use of ActiveX controls when using Netscape
Navigator browser and J Walk.
ActiveX controls are also used in the Microsoft development tools like Visual
Basic.
ActiveX controls must be registered before they can be used. To register an
ActiveX control, the RegSvr32.exe program that is a default part of Windows95,
is used. Controls on HTML pages are registered automatically by the browser.
Unlike Java, an ActiveX control has the same possibilities as a regular program. It
can for instance write to the hard disk. Combined with the fact that ActiveX
controls are easily distributed over the Internet, this holds a potential risk. A
solution for this problem is the signing of controls. A signed control has a key in
it. The browser uses this key to check the control. The key is provided by a special
organization that checks if the creator of the control is trustworthy.

Interfacing with Package Files

141

SEAGULL ActiveX Components include:

J Walk ActiveX OIS Control - OIS interfaces made available through


ActiveX automation.

J Walk ActiveX Client Control - Automatic delivery of Thin Client


Software and ability to run Client presentation space within a browser.

J Walk ActiveX Client Control - Automatic delivery of Full Client Software


and ability to run Client presentation space within a browser.

J Walk Windows Client Server Connect Mode- The Mode to run your
ActiveX Clients to enable "Served Windows Clients." ActiveX and the
Windows Registry support this connect mode.

If you have not unpacked the ActiveX example resources, please do so by


selecting the entry from the J Walk Developer Task Group bar.
Installation of these examples updates your Windows Registry with information
about the J Walk ActiveX controls.
Note: ActiveX technology is a Microsoft enabling technology. If you want to run
cross-platforms or using non-Microsoft tools, you will need to prepare the
initiating HTML page to enable ActiveX and alternatives. One such alternative is
to prepare the Netscape Communicator to "handle" ActiveX controls.
Using the J Walk ActiveX OIS Control
The purpose of the ActiveX OIS Control is to provide convenient and easy
access to J Walk Client OIS interfaces from any ActiveX enabled development
environment (for example: Visual Basic).
J Walk Windows Client Automation interfaces can be exposed to other
applications.
The Automation interfaces support the same functions as OIS. Benefits of this
include:

Direct access and manipulation of the host session information using


common programming languages and techniques.

Easy integration of J Walk Windows Client with other ActiveX


applications. For example, from within Excel you could easily access a
J Walk client; from an HTML page you could use Visual Basic or Java
script to navigate to another software application, initiate it and perform
application functions.

Features of Use:

Automatically registered ActiveX component

142 J Walk Developer Guide

All current OIS functions available

Ease of coding with OIS functions using IntelliSense.

The ActiveX OIS server control contains methods (functions returning values
and subroutines returning nothing) to invoke OIS functions in the OIS DLL that
are part of the J Walk Client product. This architecture ensures that the ActiveX
OIS server control is as small as possible, while the actual code for the interfaces
exists in one place (part of the Client itself) and existing interface mechanisms
remain available (e.g. API, etc.). The available functions are based on the ones in
the API DLL that was already in previous versions of J Walk. The syntax is
similar to the syntax for the DDE OIS functions.
Registration
The ActiveX OIS control is an option during the J Walk Developer and J Walk
Windows Client installation. During the installation, it is registered through the
RegSvr32.exe program, which is a default part of Windows 95. After installation,
the ActiveX OIS control is available for ActiveX containers.
Different ActiveX containers use different methods to apply ActiveX controls. In
containers like Word and Excel, controls can be insert through the Insert Object
function. In Visual Basic, a control must be selected from the control window and
put on a form. Controls that are not part of the default Visual Basic control set,
like the ActiveX OIS control, are reached by pressing the right mouse button on
the control window.
At execution time, both the ActiveX container (application) where the ActiveX
OIS server control is used as well as the J Walk Windows Client must be present.
If you have not unpacked the ActiveX example resources, please do so by
selecting the entry from the J Walk Developer Task Group bar.

Interfacing with Package Files

143

Installation of these examples updates your Windows Registry with information


about the J Walk ActiveX controls.
Serving the J Walk ActiveX Client Control
Serve the J Walk Windows Client (and Full Client) using the supplied ActiveX
Client Controls.
A J Walk Windows Client can present itself as an ActiveX control to the Client
OS and as such, it takes advantage of the industry standard ActiveX mechanisms
for delivery, installation and startup / of the embedded software component.
The ActiveX Client Control is part of both J Walk Server for NT and the J Walk
Server for AS/400.
It can be selected as an option during the installation procedure. This control is
used together with a Cabinet file, containing the control file(s), an example
HTML page and a self-extracting J Walk Windows Client installation agent. Use
these files with the ActiveX Client Control to set up an HTML site which users
can surf to, to install the J Walk Windows Client. See the ActiveX Client Control
parameters outlined at the end of this topic.
Note: SEAGULL deliver two embedded ActiveX controls on Startup HTML
pages: JWALKX.HTML (Full) and JWALKXS.HTML. Full functionality
includes options such as languages.
Features of Use:

Automatically delivered / installed and registered ActiveX component.

Allow the Windows Client presentation space to be 'embedded' in ActiveX


container clients such as Internet Explorer, Word, Excel etc.

Allow the Windows Client Software to be delivered / installed and


activated as part of an HTML Web page.

Allow the Windows Client to be put on / integrated with the new MS IE


4.0 Active desktop.

The J Walk ActiveX Windows Client Control accomplishes these purposes:

Allow the presentation space of the Windows Client to be integrated in an


ActiveX container (application) rather than in it's own window.

Check for presence of the J Walk windows client software and facilitate
automatic download and install of the J Walk Windows Client.

144 J Walk Developer Guide

The ActiveX Windows Client control can be put on a Visual Basic form (an
ActiveX container) or on an HTML page displayed in an ActiveX enabled
browser. Note: Any ActiveX container (application environment) can be used.
The ActiveX Client Control will typically be on an HTML page the end user can
surf to. If the user reaches such a page, the ActiveX Windows Client Control is
run on the client PC.
If you have not unpacked the ActiveX Examples Resources, please do so by
selecting the entry from the J Walk Developer Task Bar Group.
If you intend to use the ActiveX Client control, there are also parameters that
require modifying in the JWALKX.HTML (or JWALKXS.HTML) file.
The minimum parameters you must customize are described.
CODEBASE:
Insert the Web Server IP Address to specify to the ActiveX container where to
find the CAB file with ActiveX Client, for example:
<OBJECT ID='JWAlkX1" WIDTH=640 HEIGHT=488
CLASSID="CLSID:E7C44C86-..."
CODEBASE="http://123.456.789.0/JWALKX/JwalkX.cab#version=2
,2,0,0">

Parameters:
Specify Windows Client startup parameters to be used when the ActiveX Client
control starts the Client. Additional parameters are not required.
Startup parameters:
When a Windows Client is started with a "/h123.456.789.0" command from a
shortcut property, the equivalent for the ActiveX Client control could be:

Interfacing with Package Files

145

<PARAM NAME="Parameters" VALUE="/h123.456.789.0">.

Client_Setup_Location:
When the ActiveX Client control determines an update must occur, this is the
parameter to define where the control goes to execute a new install. For example:
<PARAM NAME="Client_Setup_Location"
VALUE="http://123.456.789.0/JWALKX/JWALXS.EXE">

Deploying Served Windows Clients using ActiveX


The "Served Windows Client" utilizes the J Walk ActiveX Client Control to
facilitate the 'automatic' delivery and installation of the necessary software
components via an ActiveX-enabled container such as a browser (MSIE v4+, or
Netscape v4+ ActiveX plug-in).
The following points outline this strategy for continuous deployment of your
J Walk Windows Client solutions:

Updating the Windows Client (via ActiveX Client control)

Updating your J Walk Package files (via startup parameter enabling "Server
Connect" mode)

Browser Support.

The "power" in this strategy comes from combining the two methods to your
level of needs.
A J Walk Solution can include methods to automate software updating of both
the Windows Client and Package files.
Updating the Windows Client (via ActiveX Client control)
Using the ActiveX Client control enables an industry standard way of checking
and updating the J Walk Windows Client software.
Additionally, it is possible to startup the Windows Client with parameters
(optionally, place a configured INI file with the ActiveX control software to
ensure use of a specified [section] configuration).
The ActiveX Client control has the option to start the Windows Client

embedded in an ActiveX container (e.g. a browser)

or as a "regular" window type display.

Delivery of the J Walk ActiveX Client Control

146 J Walk Developer Guide


The ActiveX Client Control will typically be on an HTML page the end user can
surf to. If the user reaches such a page, the ActiveX Windows Client Control is
run on the client PC. The delivery and the registration of an ActiveX control on a
client PC is performed by standard Microsoft (Cab files) or Netscape (Jar files)
technology. The Cab/Jar file containing the J Walk ActiveX Client control needs
to be stored on a Web (Http) server, and a URL to that location needs to be
specified in the HTML page containing the reference to the control. The browser
will make sure that the correct version of the control is loaded, registered and run.
In case the J Walk ActiveX Client control is used in a visual (Basic) application, it
needs to be distributed with that application.
Also, when using J Walk ActiveX controls with Netscape Communicator, it is
suggested to use a "plug-in" and only use Cab files for both browser types.
Delivering and automated updates of the J Walk Windows Client
This is done through a property of the J Walk ActiveX Client control that
contains a location where a self-extracting InstallShield package with the J Walk
Client software can be found.
The location can be a local drive, a network drive or an URL. The ActiveX Client
Control checks the registry to find out if the J Walk Client is present and up-todate on the client PC.
If it is not, the package is downloaded and executed, resulting in a (re) install of
the J Walk Windows Client.
In total, the J Walk ActiveX Client control has four properties:

the location of the self-extracting InstallShield package with the J Walk


Client software

indication that the J Walk Windows Client is to be run in its own window
or in the presentation space of the J Walk ActiveX Client control.

a required software version level (release number) for the J Walk Windows
Client. If this property is left empty, any version for the J Walk Windows
Client will do. If a version number is entered, that particular version
number is checked within the registry. To use version control, the selfextracting installation procedure must place the J Walk Windows Client
version number into the registry.

a command line parameter string for startup of the J Walk Windows Client.
It is recommended to limit this string to the path (location) of a JWC file,
however, any set of valid command line parameters can be issued.

Interfacing with Package Files

147

By making use of cabinet files and Internet component download via an INF file,
the J Walk Windows Client can be updated automatically through push
technology. This means that the client does not have to trigger a download event,
instead the content of an HTML-page will check for new versions on the server
side and start an update of the J Walk Windows Client if necessary.
To be able to make use of the Cab (and Jar) file technology in the different
versions of the two major browsers a few parameters need to be set. The
necessary settings for Internet Explorer 3.02 and 4.0 can be found in related
topics.
Updating your J Walk Package files (via startup parameter enabling
"Server Connect" mode)
Specify to startup your Windows Clients using "Server Connect" mode to
automate package file updates by "pointing" to a deployed control file (JWC)
using the /$ 'logical_path' or an 'http_webserver_IP_address' as your argument.
This method offers these advantages when starting the Windows Client:

This mode enables another way to deploy your control files.

The ActiveX Client can invoke "Server Connect" mode as an argument


within its startup parameters. Optionally, a configured JWC file can be
placed with the ActiveX Client software on the Web Server.

Browser Support:
Browsers supporting ActiveX Client Controls require ActiveX support. AN
example is MSIE 4.0+.
(Netscape Communicator requires use of an ActiveX plug-in.)
Netscape Plug-in Clients
To use ActiveX controls in Netscape Communicator 4.05, simply select to deploy
the J Walk Plug-in Client control (at Server installation).
This plug-in has configured the necessary settings for use with ActiveX
technology.

Applying Open Interface Services for Java


Like the Open Interface Services (OIS) for the J Walk Windows Client, the OIS
for Java is a collection of OIS classes (providing methods in Java) automating data
exchange between the J Walk Java Client and other Java classes (Applets and
Applications).

148 J Walk Developer Guide


This collection of methods are a combination of required Java Client-specific
methods and a subset of the OIS functions. Please review the "Script Language
Reference" and related topics.
The general concepts presenting how to use OIS are similar but extending your
package files to the Java Virtual Machine (alternative desktop to those of the
Windows platforms) requires some differences. The standard syntax for calling
Java class functions is different in that the functions names typically do not begin
with initial capital letters (like the other syntax statements). The concept of
DLLs (or programs) is replaced with Java classes. The functions are implemented
as methods within their classes.
Note: These functions are session-dependant. To utilize Java calls described, you
must have a browser and be connected with a running J Walk Server
configuration.
Implementing OIS for Java
There will be two different kinds of approaches for communication between Java
applets (or applications) and a J Walk Java Client.

A Java Applet (or application) can start a new J Walk Java Client
Session and communicate with it

or the J Walk Java Client will communicate with defined Java classes.

It is important to set up your Java environment with care. Unpack the example
resources and review the provided OIS for Java documentation (see Index.html
reference below.)
OIS for Java Example Resources
Please be aware that there is additionally provided OIS for Java documentation
including details on all provided methods (see Index.html file within the OIS Java
folder where you have installed the Developer). Details for consideration include
setup of your Java environment, calling the Java Client from within your Java
applets and applications, as well as call Java classes from the J Walk Java Client are
specifically provided as HTML documentation for easy, cross platform usage,
including industry standard JavaDoc files referencing class methods and variables.
If you have not done so, please unpack the OIS for Java Example resources from
the J Walk Developer Task Bar group.
Starting a J Walk Java Client Session
A J Walk Java Client session can be used to get or set data on the host or panel.
Classes are session-dependant.

Interfacing with Package Files

149

Note: The details for implementing Java OIS methods differ between an applet
and an application. See Index.html within the example resources folder for details
on specific implementations.
But as a model for discussion, there are several process layers which occur under
the OIS for Java implementation.
First, a J Walk object is requested to be responsible for creating new J Walk Java
Client sessions.

A host and a port define a session.

Second, an object (JWalkSessionListener) can be added to the session to "listen"


for events like:

sessionStarted / sessionStopped

panelChanged

panelStateChaned.

A number of methods are available to accomplish this. Refer to Index.Html (in


the OIS for Java folder) or inspect the OIS functions for Java specific statements.
In general, Java class-to-methods relationships are denoted by the initial name
being in lower case, while remaining name segments follow the "traditional" initial
capitalization rule.
You can also request an object (JWalkFieldListener) to be used to receive events
from panel fields. That object receives events like:

fieldCreated / fieldDestroyed

fieldEnabled / fieldDisabled

command (e.g. a pushbutton has been pressed).

Calling Java classes from the J Walk Java Client


When you create an Java Class OIS-object in the Developer, the following events
will invoke methods from the given Java class:

Create (a new panel is opened)

Destroy (a panel is closed)

Disable (a panel or panel field can no longer accept input from the user)

Enable (a panel or panel field becomes possible to accept input)

Command (a push button is pressed).

The given class is treated as if it were a JWalkFieldListener object. Only the


methods for the enabled events can be called.

150 J Walk Developer Guide


J Walk Java Classes
OIS for Java is based on a set of J Walk classes. All classes are sessiondependant.
The following classes service OIS requests made from a Java Client to the J Walk
Server.

JWalk.class provides methods to start J Walk.

JWalkSession.class provides methods available within a session.

JWalkSessionListener.class provides methods for session control.

JWalkFieldListener.class provides methods necessary for Java classes


handling J Walk session events (including methods necessary for Java
classes that will start J Walk).

These classes are referenced within the OIS for Java HTML documents (see
"Index.html" after unpacking the OIS for Java Examples).
Finally, there are suggestions for distributing your OIS for Java solutions
"embedded" within the J Walk Server and Java Client setup.

OIS for Java Example Resources


Open Interface Services can be provided through the Java programming interface
(JDK 1.1) with the Client.
In order to see and use these examples, you should:

OIS for Java examples are included with the OIS resources when you
install.

If you have not unpacked the OIS Examples for Java resources, please do
so.

The installed and unpacked folder contains a source CAB file, Java Classes,
documented examples and industry standard JavaDocs covering all
methods (see the Index.html file within the installed OIS for Java folder).
Review this document as it contains an index referencing all OIS Java
methods by Interface, and by Class.

Note: In order to test J Walk Java Client Java calls, you must fully install and
configure a J Walk Server.
When you install, the OIS Java resources (OIS_JAVA.CAB) are installed into a
sub-directory (OIS\OIS_JAVA).
When you unpack the OIS for Java example, the CAB file is unpacked into the
OIS_JAVA directory.

Interfacing with Package Files

151

Note: Included in these resources is several HTML files with programming details
and information. After you have completed the unpack, you can review the
supplied "Index.html" file to index through all OIS methods by interface and
class.
While reviewing this document, please select the link to "An example of OIS for
Java." This link provides an embedded example. The example can be used "live."
To use this example,
1.

Start the J Walk Server with the CARDEMO.

2.

Copy "JWalk.class," as well as the directories "OIS," "$1," and "$2" (and all
subdirectories) to below the OIS\OIS_JAVA directory.

3.

Close your browser (close the browser, do not "refresh" the page) and
restart it to use the example. Further instructions are detailed within the
HTML document(s).

Calling Java classes from the J Walk Java Client


Steps for calling Java classes from the Java Client are presented herein. Several
steps are necessary to call Java classes from the Java Client including

use of the Developer to embed the OIS object Java Call into your panel

as well as a full J Walk Server Installation in order to test and use the calls.

The following example class demonstrates implementation of a


JWalkFieldListener to service requests made of the Java classes.
package ois;
public class MyOISObject implements JWalkFieldListener
{
public void fieldCreated (JWalkSession session, String field_id)
{
System.out.println(" Field: " + field_id + " has been CREATED");
}
public void fieldDestroyed (JWalkSession session, String field_id)
{
System.out.println(" Field: " + field_id + " has been DESTROYED");
}
public void fieldDisabled (JWalkSession session, String field_id)
{
System.out.println(" Field: " + field_id + " has been DISABLED");
}

152 J Walk Developer Guide


public void fieldEnabled (JWalkSession session, String field_id)
{
System.out.println(" Field: " + field_id + " has been ENABLED");
}
public void command (JWalkSession session, String field_id)
{
System.out.println(" Field: " + field_id + " has a COMMAND event");
}
}

Follow these steps to perform this activity.


1.

In the J Walk Developer create a new OIS object (J Walk Java Call).

2.

Set the events to respond to in Message filer tab.

3.

Select the panel object (control) and attach your object to it (a button, for
example).

4.

Develop your Java class and give it the name you entered by the filename in
the OIS Object. Make your class part of the package OIS (so it is placed in
the OIS directory of the J Walk Java Client) and let the class implement the
JWalkFieldListener interface:
package ois;
public class MyOISObject implements
JWalkFieldListener.

5.

Test it.

Distributing Your Package File Set

153

Distributing Your Package File Set


You are ready to deliver your package file to your users when you are satisfied
with the panels displayed instead of screens, the execution of any J Walk scripts
and the execution of any other desktop integration functionality you built into the
product.
Package file distribution has two main phases.

The first phase is incorporating J Walk Windows Client with your package
file set into a single deliverable.

The second phase is taking this deliverable to your users and deploying the
product using a scenario that best suits their network architecture and
needs.

Replacing the J Walk Windows Client


Signature with Your Own
This section describes the steps necessary to combine J Walk Windows Client and
your package file set into a single deliverable and, optionally, "hiding" the J Walk
Windows Client so the user sees only your application image and product message
signature.
Afterwards, you will deploy your product (and these files) at customer sites.
To complete this activity, you will need to create your own images and INI file.
J Walk Windows Client comes on the J Walk CD-ROM you used to install J Walk
Developer. Since you cannot write to a CD-ROM, the J Walk CD-ROM comes
with a utility that will create diskette images for J Walk Windows Client. On the
diskettes, are all of the files that can be updated or overwritten with your own
image files to change the J Walk Windows Client signatures (icon, logon screen,
etc) to those of your own choosing.
To create a single deliverable, copy the package file set onto a diskette and update
the SETUP.DEF and SETUP.INI files (located on Diskette #1) to have your
package file set be automatically installed when you install J Walk Windows Client
on user machines. See "Customizing Your Installation" for details.
Test these updated diskette files to make certain that the signature and installation
procedures are complete and working properly.
Note: Remember that your J Walk Developer license includes NO licenses for
J Walk Windows Client. Licenses must be purchased from SEAGULL prior to
any distribution or production use of J Walk Windows Client.

154 J Walk Developer Guide

Create J Walk Diskette Images


This task creates J Walk Windows Client diskette images that you can use to
package J Walk Windows Client with your own product. The J Walk Windows
Client diskette images are found in the \JWALK\JWALKC directory. You can do
a straight copy from the CD-ROM to diskettes or subdirectories on a hard disk.
Or, you can use the "Disk Factory" utility of the CD-ROM to automatically
generate the diskette images.
Follow these steps to perform this activity.
1.

Start the J Walk CD-ROM by placing it in a CD-ROM drive. It will


automatically start.

2.

From the Welcome window, press the >> button to advance to the main
menu of the CD-ROM, called "J Walk Product CD".

3.

From the "J Walk Product CD" menu, select the "Disk Factory" text.

4.

This opens a new window with the possibility to create images for J Walk
Developer or Windows Client. Select the "J Walk Windows Client" text.

5.

A new window will appear indicating the total number of diskette images
used by J Walk Windows Client and the SEAGULL License and Message
Server. First select the text, "J Walk Windows Client". Then, when all of
the images are produced, select the text, "SEAGULL License and Message
Server".

6.

A dialog will appear prompting for a destination. We recommend that you


use the default, which copies the diskette images to physical diskettes,
rather than subdirectories on your hard drive.

7.

When you finished producing J Walk Windows Client diskettes, select to


produce the "SEAGULL License and Message Server" diskette. You will
need this diskette if you are installing your application at a new customer
site and they do not have any J Walk Windows Client licenses. This
product enforces SEAGULL and your own application licensing.

8.

Press the << button to return to the J Walk Product CD menu.

9.

Press the Quit button.

Standard J Walk Windows Client Images


There are several image references within all Clients which you can overwrite to
your business needs. They involve the opening panel when starting the Client, or
"splash panel" and anytime a Client panel is displayed using Dynamic
Transformation. You can also overwrite the installation image (splash.bmp).

Distributing Your Package File Set

155

The following files are delivered as individual files on J Walk Windows Client
diskettes and can be overwritten. It is recommended that when you overwrite
these images, that you use an image of the same size.

JWCLI.BMP

Bitmap displaying product name and logo. This bitmap is displayed on the
splash screen, displayed whenever J Walk Windows Client is started or the
About box is opened. This bitmap has a width of 320 pixels and a height of
189 pixels.

JWCLI01.BMP

This bitmap is displayed on the popup panel shown the first time that a
dynamic transformation panel is displayed by J Walk Windows Client. This
bitmap has a width of 534 pixels and a height of 94 pixels.

SEAGULL.ICO
This icon is displayed on panels built using Dynamic Transformation in the
lower right hand corner of the panel.

JWCLI01.ICO
This icon is also displayed on panels built using Dynamic Transformation.
It is displayed to the left of SEAGULL.ICO and when pressed, opens the
Settings dialog to change the appearance of the panel.

156 J Walk Developer Guide

JWCLI.ICO
This icon is displayed in the upper left hand corner of the J Walk Windows
Client window in the title bar. It is the program icon.

SPLASH.BMP

This is the image (320x189 256 color) presented when installing the
product. You can customize the installation image by replacing this file.
Overwrite Standard J Walk Windows Client Images
This task results in a set of J Walk Windows Client diskettes that display your
product logo. You may copy over the following files:

JWCLI.BMP

Distributing Your Package File Set

JWCLI01.BMP

JWCLI.ICO

JWCLI01.ICO

SEAGULL.ICO

SPLASH.BMP

157

Follow these steps to perform this activity.


1.

Due to space limitations, the image files may be spread out over any of the
J Walk Windows Client diskettes. Consequently, the first step is to locate
each of the image files across all diskettes.

2.

Copy your image file over the existing image file. Use the name as it
appears on the diskette. Verify that your image file will fit on the diskette.

3.

You can move images around to other diskettes, however, it will require
that you make changes to the Installation Definition file to reflect the new
location of each image file, during installation.

Selecting Package Files for Distribution


There are several files that can be associated with a Package file, besides the
package file.

158 J Walk Developer Guide


When preparing to distribute your (JWR) application, review the following list of
files that can be used in the J Walk Windows Client environment. File types
include:

Compiled Package file (extension JWR) - contains all panels, screen


identification rules, scripts and OIS objects.

Message text file (extension JWM) - stores all texts that are displayed for
text references defined in the panels.

Translation table (extension JWX) - stores all values that when detected,
should be translated.

Control file (extension JWC) - defines a set of JWR files (and the order)
that should be loaded by J Walk Windows Client. This file can also contain
commands that check to see if the JWR files should be updated before
loading.

Icon DLLs - stores bitmap/icon. These DLLs are made with the JWICON
utility.

Externalized images must also be defined.

Custom API DLLs or EXE files - your own C/C++ or Visual Basic code
(DLL or EXE) connected to your J Walk application.

On-line Help file created to be released with the package.

Place all of these files onto a single diskette if possible. Use SEAGULL's
compression utility to compress your package file set to a single diskette. You can
use alternate compression methods, but these alternate methods are platform
dependent. SEAGULL's utility is platform independent.
Using SEAGULL Supplied Compression Utility
Use the SEAGULL supplied compression utility when you have completed your
assembly of files for distribution. Use this utility to compress a platformindependent archive (.CSH) file. The same utility provides the unpacking and
packing functions.
Follow these steps to perform this activity.
1.

Extract (unpack) a crushed file with the following command:


S9CRUSH.EXE crushed_source [target_directory]
Note: If no target directory is specified, the extracted files unpack to the
current directory.

2.

Create a crushed (pack) file with the following command:


S9CRUSH.EXE crushed_target [source_file_list]

Distributing Your Package File Set

159

When specifying source files, you can separate selections with blank spaces.
You may also provide wildcards. If the source files are in different
directories, you must specify full paths. If you are choosing all files as your
selection, be sure to provide a full pathname and include the wildcards
"*/*" because S9CRUSH expects a file listing. You must use one of the
following options when selecting files to crush:
/a Adds a new compressed file to an existing CSH file. If the file already
exists in a compressed state within the .CSH, the compressed file is
replaced (refreshed).
/c Creates a new .CSH file. If a .CSH file already exists with this name, it
will be overwritten.
/l Lists the compressed file within the .CSH file. Note: Do not specify a
source_directory when you use this option.
Alternate Compression Methods for Your Package File Set
It is possible to compress your own package files (JWR). This is particularly useful
when your package file is too large to fit on one floppy disk. Compress your
package file to assist you in fitting your package onto the distribution diskette(s).
If you choose not to use the SEAGULL Supplied Compression utility, you can
use alternate means described here.
Alternate Compression Options
It is possible to use your own compression utility (like PKZIP, ARJ, LHARC,
etc). By using a dot . in the installation definition file, described in the
#INSTALL part of the previous section, to call a command line within the J Walk
Windows Client installation to perform the decompression. The command line
will be executed in the background and will work fine as long as you use a
command line for the Windows setup.
Follow these steps to perform this activity.
1.

Examine the example line in the #INSTALL definition:


1 2 1 DEMO.ZIP . A:PKUNZIP.EXE %S\DEMO.ZIP D%

2.

After you use an alternative utility like PKZIP, include the file
PKUNZIP.EXE on the distribution diskette.

Customizing Your Installation


When you supply your users with your package file, you can change the way that
the J Walk Windows Client installs from diskette to include the installation of
your own package files (e.g. JWC, JWR, DLL, JWM, JWX, HLP, etc.). The goal is
to make J Walk Windows Client and your package file appear as a single product.

160 J Walk Developer Guide


Refer to the "J Walk Installation File Reference" topic for details concerning
customizing of the INSTALL.DEF and SETUP.INI files.
J Walk Installation Definition File Reference
J Walk Windows Client uses InstallShield software installation program.
Installation parameters are specified to control how InstallShield will install the
J Walk Windows Client and your packages for use.
Note: It is recommended that you maximize the help window when viewing this
topic . Layout of file parameters and arguments are clearly shown without
wrapping in maximized view. To maximize this topic, select the upper-right
maximize window button. Return size by selecting the same button after reading
this topic.
In general, it is important to realize that each platform will require its own
specific SETUP files. Within the unique SETUP files, take care that the files and
programs specified to be launched within the definition are "platform compliant."
For example, when you want to use the SEAGULL CRUSH utility (or alternative
pack/ unpack program), specify the platform-specific version (e.g. S9Crush.exe or
S3Crush.exe). Additionally, if you specify use of unpacking utilities, consider that
those unpacked files are "not logged" in the installation and therefore, cannot be
"uninstalled" at a future time.
Note: An example file is provided as a "template" for your installation. The file
is called CUSTOM.DEF and is delivered at installation.
Required and optional installation parameters are specified as ASCII text within
the definition files called:

SETUP.INI

SETUP.DEF.

These files are installed to your J Walk Windows Client installation directory.
Optionally, you can change the text displayed during initialization of the
installation program (status popup) by updating the SETUP.INI file with your
company and/or product information. This is important when replacing the
product signature is a requirement.
The installation definition file (SETUP.DEF) consists of commands that begin
with the number sign (#) character. The lines following the command contain
command dependent information. Not all the commands need to be present in
the file and the order of the commands is not important.
Note: Lines beginning with a semi-colon (;) are comments.
The #COMPANY section is required for use.

Distributing Your Package File Set

161

The following sections and settings are available.


#VERSION
2.00

This version number relates to the version of the installation program. When the
installation program is started, the first thing it does is check that its internal
version number is the same as the version number stated here. If the numbers
are not the same, the installation program assumes that the definition file format
is not compatible and will not continue with the installation. This command is
required in the definition file.
#HEADERS
J Walk Windows Client
Version 2.1

A maximum of two lines can be entered for headers. The "Product Name" and
"Product Version" texts are displayed in the first window opened by the
installation program. These texts can be changed to reflect your application name
and current version number.
#COMPANY

Company Name
The default Win95 compliant installation path uses your company name (e.g.
C:\Program Files\Company Name \Product Name). This section must have a value
and is therefore, required.
#MODULES
* "J Walk Windows Client"

* "Default program group"

"Japanese program group"

"Greek fonts"

"Turkish fonts"

"Russian fonts"

"Slavic fonts"

"Bidirectional fonts"

"Thai fonts"

"Baltic fonts"

"Dutch Language Module"

"French Language Module"

162 J Walk Developer Guide


"German Language Module"

"Italian Language Module"

"Japanese Language Module"

An unlimited number of lines can be used to list different portions of the package
that can be installed. The asterisk (*) indicates that this line is part of the default
selection. One use of the MODULES command could be to let your end users
selectively install products from a list that you made available.
Note: The #MODULES lines are referenced by the #INSTALL command and
are always installed at the end of the installation.
#DISKETTES

An unlimited number of diskettes can be used during installation. Each diskette


label uses one line of text. The lines of text entered here will appear in dialog
boxes when the next diskette is requested by the installation program. In this
way, you can use your own product name on your diskette labels and not have to
name your diskette something like "Installation disk 6".
The #DISKETTES lines are referenced by the #INSTALL command to
determine which installation diskette contains the source file.
#PATHS
C:\JWALKC
C:\JWALKC\APP
C:\JWALKC\MRI2923
C:\JWALKC\MRI2928
C:\JWALKC\MRI2929
C:\JWALKC\MRI2932
C:\JWALKC\MRI2962

This command identifies all of the directories where files will be installed during
the installation program and they will be created if necessary by the installation
program. The first line is always the root. All other lines MUST be a subdirectory
of this first line.
Instead of naming the drive (named C: in this example), a dollar sign ($) can be
used to indicate the boot drive. The first line replaced with the boot drive
reference would look like $:\JWALKC.

Distributing Your Package File Set

163

The #PATHS command is also used by the #INSTALL command to identify


where each installed file should be placed by assigning a sequential number to
each line in the #PATHS command. In the example here, C:\JWALKC would
be assigned the number 1 and C:\JWALKC\MRI2929 would be assigned the
number 6, and so on.
#INSTALL

This command copies explicitly named files from the installation diskette(s) to the
destination drive. One line is used for each file found on the installation
diskette(s) and each file needs at least 4 parameters in order to be installed
correctly. (The 5th parameter is optional.) Each parameter is separated by at least
one space.
Parameter 1 indicates which module the file belongs to. The number is
sequentially assigned beginning with 1 from the
#MODULES command. So, the last line of the #INSTALL command (file
name JW2962.DLL) would only be installed if the end user chooses to install the
Japanese Language Module.
Parameter 2 is the source disk number. The number is based on the sequential
order of disks named in the #DISK command.
Parameter 3 is the destination path. The number references the sequential line
of the #PATHS command.
Parameter 4 is the source file name on the installation diskette.
Parameter 5 is the destination file name. If this parameter is not present, then
the source file name is used. The first character of this parameter can be a plus
(+), a minus (-), an exclamation point (!), a period (.) or an alphanumeric character
that is the beginning of the destination file name.
The punctuation has the following meaning:
-filename Deletes the named file. This parameter is meant to be used in
upgrading situations where there may be old files that are no longer used.
!filename This command is also used when upgrading. Any destination file name
preceded by a (!) will not be overwritten. If a file already exists in the destination
path, the installation program will ask the end user if this file should be
overwritten. If the end user answers "YES", a copy of the old file will have its
extension renamed beginning with .000, then .001 and so on.
. system command A period (.) must always be followed by a space. Then the
rest of the line is considered a command line. The following references can be
used.
%S source directory (comes from system, this is usually A:\)

164 J Walk Developer Guide


%D destination directory (comes from #PATHS (3rd) parameter )
filename When a standard file name is given, the installation procedure issues a
COPY command. Notice in the example that multiple source files can be
installed to the same destination file name. In this example, the messages are held
in different national language DLLs but the destination DLL filename remains the
same in order to perform simple substitution.
#GROUP
2
1

"J Walk Windows Client Router"


2
%P\JW3C.EXE /EIntern

2
1

"J Walk Windows Client Telnet"


2
%P\JW3C.EXE /ETelnet

2
1

"J Walk Windows Client SNA"


2
%P\JW3C.EXE /ESNA

3
1

"J Walk Windows Client PCOM APPC"


2
%P\JW3C.EXE /EPC5250JAP

3
2

"J Walk Windows Client PCOM TCP/IP"


%P\JW3C.EXE /EPC5250JAPTCP

1
1

"J Walk Configuration Assistant"


2
%P\JW3C.EXE /CA

1
1

"J Walk Windows Client Help"


1
WINHELP.EXE %P\JW3C.HLP

More examples include:


1

"Icon name"

1
"Read me"
%P\README.
1

"Uninstall"

"Uninstall icon"

"Configuration Assistant"

"Telnet"

"Telnet icon"

"APPC"

"APPC icon"

"IPX"

"IPX icon"

%P\JW9C.EXE

NOTEPAD.EXE

1
1

UNINSTALL
UNINSTALL

CONFIGASS

1
1
1

TELNET
1

TELNET

APPC
APPC

IPX

IPX

This command controls what icons are added to the folder. Special keywords are:
UNINSTALL, CONFIGASS, TELNET, APPC, and IPX.

Distributing Your Package File Set

165

Each line creates 1 icon and is comprised of 4 or 5 parameters.


Parameter 1 references the #MODULES line number. Only icons belonging to
selected modules will be added to the folder.
Parameter 2 is the icon name. This text appears under the icon.
Parameter 3 defines the program directory by referencing one of the #PATH
lines. The fourth parameter defines the working directory and also references one
of the #PATH lines.
Parameter 4 is the command line that is executed when the icon is double
clicked. The following references can be used:
%P Program directory
%W Working directory
%B Boot directory
Parameter 5 is optional, it contains the parameters that are placed after the
command.
#OPTIONS
NoCustomDlg

When present, this keyword instructs InstallShield to bypass the "Setup Type
dialog" (where a selection between "Typical" and "Customized" is presented).
The effect is to initiate a "Typical" install where your additional package files are
installed at the finish.
Typically, you will want to use this keyword as the "Customized" type installation
cannot display your additional package files for inclusion/ non-inclusion.
Note: Previous #OPTIONS keywords (e.g. StartConfigAssist=) are no longer
supported.
Update Installation Definition File
Follow these instructions to change the J Walk Windows Client installation
definition file to appear as your own product.
Note: The referenced sections can be found in an example SETUP.DEF file
named "CUSTOM.DEF." You may copy this file and rename it as
"SETUP.DEF" and then specify your setup parameters and options.
Follow these steps to perform this activity.
1.

Start your favorite text editor.

2.

Open the file SETUP.DEF (the installation definition file) from J Walk
Windows Client Diskette #1.

166 J Walk Developer Guide


3.

Update lines (after "#HEADERS") to your own product name and


version.

4.

Update lines (after "#MODULES") to your own product module.

5.

Update lines (after "#DISKETTES") with your own product diskette


names. Leave the disk number alone.

6.

Optionally, insert (after "National Language Support disk 3") the text:
<your product name> disk 7

7.

Insert commands (after #INSTALL) by specifying text like:


1
10 2
file>.CSH

. %P\S9CRUSH.EXE /Q

%S\<your csh

%W\

8.

Update the #GROUP section with program modules to display items


pertaining to your product. You can also change the titles of the program
items.

9.

Specify whether to use the installation dialog selection or immediately


install the "typical" installation under the #OPTIONS section.

Testing a Package File with J Walk Windows Client


As a final check, you should install the J Walk Windows Client and place the files
you selected for distribution in the Windows Client working directory from the
diskette images you just created. You should then be able to start J Walk
Windows Client, access your package files and work with the AS/400 application
through the GUI.
The purpose of this test is to verify that :

J Walk Windows Client accesses everything correctly

all panels provide the necessary functionality for the AS/400 screen.

Troubleshooting Data Access and J Walk


Troubleshooting your Data Access solution requires:

Examining proper host authorization, identification, etc.

Identifying processing errors (usually involving query failure)

Inspecting all interim and final results (including results involving host field
references, script variable values, text expression, etc.)

For authorization issues consult your system administrator and License and
Message Server, and Data Access Server on-line information.
Processing should occurs as follows:

Distributing Your Package File Set

167

1.

A panel is presented containing Data Access references.

2.

Notice the "Data Access icon"


(when rotating, it indicates Data
Access is responding). This icon is found in the standard Client toolbar (or
Terminal Editor toolbar).

3.

Notice the Data Access-referenced field(s). Watch as #'s resolve to actual


Data Access Repository values (download time is required).

4.

If you see ? 's, it is likely that an unresolved reference has been made; this is
not an error but can require you to recheck your data and reference.

If you see a warning message or inconsistency in processing, you should inspect


all results step-by-step. Create aTroubleshoot report (select the Help | Program
information menu entry. This report will "dump out" all Data Access- related
settings, queries and results logged (for the specific panel).

Deploying Your GUI Product


The goal of deployment is to identify the process necessary to successfully
distribute your GUI product at your customer sites. This process involves the
proper use of your package file and License and Message Server and includes the
following phases.
1.

Preparing for a visit to your customer

2.

Product roll-out at customer site

3.

Continuing your customer relationship

Preparing For Customer Visit


Before visiting your customer to initially install your GUI product, you should
have SEAGULL Client authorization codes and authorization codes for your
package files. You will need to know your customer's AS/400 serial number and
the number of SEAGULL Client licenses, as well as the number of package file
licenses.
Licensing Clients
Client licensing is enforced every time a new J Walk Client requests a session. This
number can not exceed a limit equal to the number of Client licenses you have
purchased. The number of licenses can be increased by entering valid
authorization codes that you received from your J Walk supplier.

168 J Walk Developer Guide


Licenses are usually placed on each package file when the package file is
produced. However, licenses can be added through an authorization code. The
License and Message Server also controls the licensing agreement for package
files.
Generate Package File Authorization Codes
When compiling your panel files, it is possible to apply an identification number
to the package file. This identification number is like a PIN code that serves as an
extra precaution from other people with Developer's generating user
authorization codes for your package file.
You may also choose to enter a standard number of license for the package file.
When your customers use your package file for the first time, they will be
automatically granted this standard number of licenses. By default, your
customers are granted no licenses.
An authorization code is an encrypted value that authorizes a given number of
users of one AS/400 system to operate your package file simultaneously. Once
you apply an identification number to your compiled panel file, do not lose the
number! You will need it every time that you generate an authorization code for
new users.
Note: Your users only have to apply an authorization code once. The
authorization code is stored by the License and Message Server and once entered
applies to all users running on one AS/400. You may only generate authorization
codes that increase the number of simultaneous users. It is not possible to
decrease the number of users.
Follow these steps to perform this activity.
1.

To generate an authorization code for a package file, choose the menu


option Tools | Security codes | Generate Runtime codes

2.

Follow the dialog prompts to create your authorization code for your
package file. You will need the AS/400 serial number of your customer's
AS/400 in order to properly generate an authorization code.

Obtain a Client Authorization Code


In order to use J Walk Windows Client, you must receive an authorization code
from your J Walk supplier.
Follow these steps to perform this activity.
1.

Determine your AS/400 Serial Number.


You can use the SEALMS/WRKSEALIC program. The AS/400 serial
number is displayed in the title of the screen.

Distributing Your Package File Set

169

2.

Determine the number of licenses you need (total number of endusers


simultaneously using J Walk and GUI/400). All of the current licenses are
also displayed in the AS/400 program, SEALMS/WRKSEALIC. This
screen shows the number of current Client licenses and the maximum
number of concurrent users. You can use this number to determine the
number of additional licenses you should order.

3.

Contact your J Walk supplier and present the information.

4.

Your J Walk supplier will return to you an authorization code.

J Walk Product Roll-out at Customer Site


You will need the following to successfully install and configure your GUI
product at the customer site.

SEAGULL Product CD (J Walk Server)

SEAGULL License and Message Server diskette

Your GUI product diskettes (J Walk Windows Client and your package file
set)

SEAGULL Client and package file authorization codes

SEAGULL License and Message Server Installation Overview


The License and Message Server installation program runs on the AS/400 and
involves a 4 step process:
1.

Make a temporary workspace on the host

2.

Extract the files from the CD-ROM or diskette to the workspace

3.

Run the installation program on the AS/400

4.

Clean up the temporary workspace

This process is documented for using Shared Folders or TCP/IP (File Transfer
Protocol) in the README file that comes with the License and Message Server.
The installation process is supplied with the README because it can vary
between software releases, which occur more frequently than the publishing of
this topic. You can print or review the README file with Notepad or using the
installation program which is in the same location as the README. If you are
installing License and Message Server from the J Walk CD-ROM, the README
file and software are located in the \SEAGULL\SEALMS directory. If you are
installing the License and Message Server from diskette, the README is in the
root directory.
System Requirements

170 J Walk Developer Guide


In order to install the License and Message Server you should have a PC
connected to the AS/400. These instructions require that you signon to the
AS/400 and have a method for transferring files from the PC to the AS/400. This
book documents methods using Shared Folders or TCP/IP (FTP).
J Walk Client Connect Modes
When discussing the J Walk Clients, it is important to understand the Client
connection mode(s) and how your Client environment will function.
There are two distinct connect methods for implementing a J Walk Client: Direct
Connect or Server Connect.
Server Connect mode places all resources onto a Web server enabling various
automated software updating mechanisms. The method for connecting J Walk
Windows Clients (versus Java Clients) is similar but different. Each can use a
Web page for initiating a connection.
Depending upon your requirements, you may choose to implement one method
or both methods at the same time.
Note: The Java Client always relies on a J Walk Server (Server Connect Mode) for
use.
The Java Client operates in Server Connect mode centralizing system
administration, establishing an environment where all application files are stored
in a single central location, on the Web server. Endusers connect to a AS/400 by
starting a Web page containing a Java applet (making a request via the browser)
which calls the J Walk Java Client. This Java applet displays graphical panels over
their AS/400 host application. The connection to the AS/400 is managed by
J Walk Server. Java sessions are started by referencing the JWALK.HTML file as a
URL address. The URL address is the address you enter from a Web browser to
access a Web site. This can be saved as a bookmark or favorite within each
enduser's Web browser or the URL supplied with J Walk, can be implemented as
a hyperlink within a web page/site.
Note: If a J Walk Message Console error: "Could not connect to host on port
100" is displayed, open the file from an internet browser specifying an address like
"http://<Your Personal Web Server Internet Address>".
With J Walk Windows Clients, you may invoke the Client in Server Connect
Mode or Direct Connect Mode.
J Walk Windows Client Server Connect
Enjoy the performance and desktop integration facilities of a native windows
client WITH the automatic delivery of software and central administration and
deployment of application panel files.

Distributing Your Package File Set

171

Add "Server Connect" functionality to J Walk Windows Client. This enables the
Windows Client to obtain all necessary Panel definitions and configuration
information from the centrally administered J Walk Server through the industry
standard HTTP protocol.

Note: The Windows Client still connects directly to the AS/400 (as opposed to
getting its 5250 data through the J Walk Server software).
Key Features of Use:

New 'session profile' defines what type of connection is going to be made


and what environment / panel files are going to be used. (extension of the
JWC file mechanism)

Register JWC file extension to automatically start J Walk Windows Client

Allow the JWC file as well as application panel files and other related files
to be accessed / loaded through Http.

Starting Clients in this mode provides the mechanisms and features necessary to
administer Windows Client access and use of centrally administered and
configured Application package files from the J Walk Server.
Use of industry standard technology such as ActiveX and HTTP ensures
maximum flexibilities when using these mechanisms.
Using this mode is as easy as specifying a command line parameter.

172 J Walk Developer Guide


Direct Connect with J Walk Windows Client empowers endusers with locally
stored client functionality by creating a J Walk application environment on each
enduser's PC. This enables endusers to share host application information with
other desktop applications, set their own personal preferences for J Walk features
such as Dynamic Transformation, setting desktop fonts and colors, creating
scripts, and modifying business graphics. J Walk Server connect with Java Client
offers some of these features by using the J Walk Windows Client preferences to
define the settings, but the preferences are stored on the server and cannot be
altered by the enduser. This mode gets its name because the PC is connected
directly to the host. There is no intermediary tier.
Implement J Walk Windows Client Scenario
When installing J Walk Windows Client in a network environment, you should
consider J Walk Windows Client software as three separate components:

J Walk Windows Client software

Package file set

JWALK.FSR and JWALK.INI configuration files

Each of these components can be installed centrally, on the network server, or


locally, on each endusers PC. The combination of installing the software locally or
centrally makes different scenarios.

Each scenario has its own advantages. Consider each scenario carefully and
choose the one that best suits your customer's network environment.

Distributing Your Package File Set

173

Scenario 1: Sharing all Windows Client product files from a


network
This scenario places all Windows Client product files on a central network server
and are shared by all J Walk product endusers. Choose this scenario when each
enduser of the customer has the exact same Windows Client and package file
configuration and it is possible to store configuration settings, such as Dynamic
Transformation, Colors, User-defined scripts and AS/400 connectivity settings in
a central location. This concept of maintaining the application is called "Zero
admin". In terms of maintenance and support of your software product, this
scenario is the most efficient. However, because the configuration files are stored
centrally, endusers lose their ability to change configuration settings. This ability
to store these settings centrally for all endusers can be considered an advantage or
a disadvantage. It depends upon the individual customer requirements.

If you assume that the network drive for the Windows Client product is N:.
J Walk Windows Client component is installed in N:\JWALKC
Configuration files (JWALK.INI and JWALK.FSR) are also installed in
N:\JWALKC
Package files (JWR) are stored in N:\JWALKC\APP

174 J Walk Developer Guide


Scenario 2: Windows Client product files on network, with local
INI
This scenario places all Windows Client and Package file on the network server.
The configuration files are locally installed. This scenario has all the advantages of
"Zero admin" and also empowers each enduser to have their own individual
Dynamic Transformation settings, Colors, User-defined scripts and AS/400
Connectivity configuration settings. This scenario will cost time in support to
assist endusers with questions about creating their own AS/400 connectivity
configurations and user-defined scripts.

If you assume that the network drive for the Windows Client product is N: and
the local PC drive where the Windows operating system is installed is C:.
J Walk Windows Client component is installed in N:\JWALKC
Package files (JWR) are stored in N:\JWALKC\APP
Configuration files (JWALK.INI and JWALK.FSR) are installed in
C:\WINDOWS\SYSTEM

Distributing Your Package File Set

175

Scenario 3: Sharing Windows Client with local package files and


INI
This scenario places the Windows Client onto network server. The configuration
files and package files are locally installed. This configuration enables the endusers
to set their own Dynamic Transformation and user-defined color settings and use
their own package files. Use this scenario when endusers have different
configurations and use different package files. This scenario will reduce some
maintenance effort by centrally locating J Walk Windows Client.

If you assume that the network drive for the Windows Client product is N: and
the local PC drive where the Windows operating system is installed is C: and the
data drive is D:.
J Walk Windows Client component is installed in N:\JWALKC
Configuration files (JWALK.INI and JWALK.FSR) are installed in
C:\WINDOWS\SYSTEM
Package files (JWR) are stored in D:\JWALKC\APP

176 J Walk Developer Guide


Scenario 4: Sharing all package files with local Windows Client
This scenario places all package file on a central network server each enduser has
its own version of Windows Client. Choose this scenario when different endusers
run different versions of J Walk Windows Client at the same time. It reduces
administration as much as possible by keeping the package files centrally located.
Individual endusers can choose when they are ready to upgrade to a new version
of J Walk Windows Client.

If you assume that the network drive for the Windows Client package(s) is N: and
the Windows Client product is installed on D:.
J Walk Windows Client component is installed in D:\JWALKC
Configuration files (JWALK.INI and JWALK.FSR) are also installed in
D:\JWALKC
Package files (JWR) are stored in N:\JWALKC\APP
Scenario 5: Local installation
This scenario places all Windows Client product files on each enduser's PC. Use
this scenario when endusers run different versions of package files and J Walk
Windows Client, or there is no network installed.

Distributing Your Package File Set

177

If you assume that the local PC drive for the Windows Client product is D:.
J Walk Windows Client component is installed in D:\JWALKC
Configuration files (JWALK.INI and JWALK.FSR) are also installed in
D:\JWALKC
Package files (JWR) are stored in D:\JWALKC\APP
Running a Mix of J Walk Clients
The power in the J Walk solution is enabled by using J Walk Server and J Walk
Windows Clients to effect the type of distribution of the Package files (and the
J Walk software) that "fits" for your enterprise.
J Walk Server software is installed only once, on the Windows NT Web server (or
Native AS/400 with configured HTTP server).
It is then configured to have active sessions for each AS/400 or host application,
as defined by the administrator.
Package files to be served using J Walk Server are installed (only once, to a
working directory of the HTTP server - identified at install). Once deployed, these
packages are available to authorized users who can access the JWALK.HTML
startup page.
When changes are made to the Package file or J Walk Windows Client, or J Walk
Server, these files are only updated in one place, on the HTTP server. All
Windows Clients can be connected to the "served" package files (wherever they
are stored) by starting the Windows Client in "Server Connect" mode.

178 J Walk Developer Guide


J Walk Windows Client can be installed from media (CD-ROM), or installed to a
central drive of a local area network that all endusers can access.
J Walk Windows Client software can also be deployed to an HTTP server (like
packages). The second method requires use of the ActiveX Client Control
(selected from the Server Installations) to automatically deploy Windows Client
updates.

In any case, J Walk Windows Client will directly connect to the AS/400 with both
the host application and the SEAGULL License and Message Server.
The same License and Message Server handles licensing from J Walk Server and
J Walk Windows Client. Each request is considered the same, no matter where it
comes from. SEAGULL calls this the "Universal Client".
Install a J Walk Windows Client Scenario
These steps result in the installation of J Walk Windows Client and your package
file set at your customer's site.
Follow these steps to perform this activity.
1.

Start the installation process by entering the command:


A:\SETUP.EXE.

2.

Follow the installation instructions, installing the product in the local or


central location selected for the J Walk Windows Client software
component.

Distributing Your Package File Set


3.

179

If you choose to a scenario where your package file set is in a different


location than as a subdirectory under the J Walk Windows Client software,
it will be necessary for you to:
1.

Move the working directory (JWALKC\APP by default) and its


contents to the proper location.

2.

Change the working directory attribute in the J Walk Windows


Client program item to the new working directory.

Controlling Pre-Loading Package Files


One Windows Client session can display graphical panels for many AS/400
applications. There are two major benefits to opening multiple package files with
one Windows Client session:
1.

Multiple AS/400 applications can be started by the user without having to


change or close Windows Client sessions. (maximum = 100)

2.

New package files can be used as 'patches' to existing package files.

When your AS/400 application changes, you only need to build panels for
changed screens. This is possible through a Control file (.JWC) that defines
which package files (.JWR) should be opened and in what sequence.
Actually, the Control file has a second function as well. You can use it to
automatically update package files (and all associated application files) on a user's
PC from a shared folder or directory.
Starting the J Walk Windows Client with a Control file performs activities before
a J Walk session is actually opened.
First it determines which package files and other files will be opened with the
session. After making the list of files, tests may be performed to see if the files in
a shared folder or network directory are newer. If they are, the files will be
updated on the user's PC as instructed in the Control file. Only after all of the
updates are completed successfully will a session be started.
It is possible to use a combination of .JWC files and .JWR files to identify all
application files to be used at one time. Sequence is important during the session;
when two or more compiled panel files have panels for the same screen. The
panel of the first package file in the sequence will always be used.
The following rules determine the sequence when loading package files.
1.

If any .JWR or .JWC files are specified on the command line then only
those will be used and the order of the files listed is significant. Also the
order of .JWR files listed in one .JWC file is significant.

180 J Walk Developer Guide


2.

If no .JWC or .JWR file is specified on the command line, the Windows


Client will use the control file specified by the Control= keyword in the
JWALK.INI file.

3.

If no .JWC or .JWR file is specified on the command line and there is no


Control= keyword in JWALK.INI then the Windows Client will search for
all .JWC files in the working directory. They will be loaded in reversed
alphanumeric order and numbers within a file name will be treated as
numbers, not as characters.
For example, consider a list of files: A100, Z35, AB32 and A12. As a first
step we sort these files alphabetically, we would get the list: A100, A12,
AB32 and Z35. But the numbers are considered numbers, not characters
and since 12 is less than 100, the sort order becomes A12, A100, AB32,
and Z35. Then this sort order gets reversed so the final order of file names
becomes: Z35, AB32, A100, A12.
These rules were chosen because it is expected that if two package files
have the same name and are followed by a number, the number probably
represents a version number. Using the file list above, that means that the
package file named A12 means package file "A" version 12. And the file
names A100 means compiled panel file "A" version 100. File A100 is
probably the most recent version of the two package files, so it loaded
before A12.

4.

If no JWC or JWR file is specified in the command line and there is no


Control= keyword in the JWALK.INI file and the Windows Client cannot
find an .JWC file in the working directory, it loads all of the .JWR files it
can find in the working directory in reversed alphanumeric order.

5.

The related application files (JWM, JWX, and DLL) will be searched in the
following directories (sequence):

Directories specified with the Path= keyword in the section within the JWC file.
Same directory as the used JWR file.
Working directory for DLLs only.
Directories in system path setting for DLLs only.
Note: When using Windows DLLs, the Windows Client will first search for files
ending with DLL, then if it can't find the files, it will search for files ending with
WIN.

Distributing Your Package File Set

181

Creating an JWC Control File


One J Walk session can display graphical panels for many AS/400 applications.
There are major benefits to opening multiple package files with one J Walk
Windows Client session:

Multiple AS/400 applications can be started by the user without having to


change or close Windows Client sessions.

New package files can be used as 'patches' to existing package files. When
your AS/400 application changes, you only need to build panels for
changed screens.

Automatically update package files (and all associated application files) on a


user's PC from a shared folder or directory.

A wait process can not be invoked within the control file, to delay the
execution of keyword commands.

This is possible through a Windows Client Control file (JWC) that defines which
JWR files should be opened and in what sequence.
In order to create the JWC, open your favorite text editor and specify all JWR
components that you need. See JWC File Layout reference section.
Control File Example
This example of the control file is for your review. For descriptions as to the
sections within this example, see the control file layout.
An example of a Control file (.JWC) called EXAMPLE.JWC.
; This is a sample control file. All
[APP]
RunTime=D:\PATCH\PTF.JWR
RunTime=C:\APP\BASE.JWR
Path=D:\PATCH\DLL;C:\APP\DLL
Check=D:\PATCH\PTF.JWR,I:\PATCH\PTF.JWR
Replace=D:\PATCH,I:\PATCH\PTF.JWR
Updatenew=C:\APP\DLL,I:\APP\DLL\*.*
Updatenew=D:\PATCH\DLL,I:\PATCH\DLL\*.*
Updatenew=D:\PATCH\APP.JWC,I:\PATCH\APP.JWC
; End of control file

182 J Walk Developer Guide


Control File Layout
The control file (JWC: as shown in the "Control File Example") is divided into
sections.
Note: A section header must be included in the Control file.
All keywords (commands) must be within a section header. When it is
determined that a section requires an update, that section's commands are
executed sequentially without any wait (delay) between commands.
A description of the example Control file keywords follows.
[Section Heading]
Sections are used to logically group update keywords (Update, Replace, Path, and
Delete). These update keywords are triggered when the Check keyword fails.
Note: At least one section is required.
Sections control separate package file environments. Each contains script
keywords to check, update and replace files.
Note: Sections can contain "base" and "patch" file folders.
Runtime =filename
Specifies package file(s) to be opened. Wild card file names are sorted in reverse
alphanumeric order. In the "Control File Example," section [APP] contains two
JWR files to be run: PTF.JWR and BASE.JWR.
Path =directorylist
This keyword is optional and defines a search path for message (.JWM), translate
(.JWX) and dynamic link libraries (.DLL) that are referred to by the file(s). By
default, the directory where the compiled package file(s) exists.
Path is only used with the package files in the same section.
In this example the keyword is used to include both package files: "base" and
"patch" JWRs.
Check =File1,File2
This keyword tests if a section is already updated. If File1 has the same date and
time stamp as File2, the files are considered the same and the section is
considered updated. In the [APP] section, notice the check is performed only on
the patch folder contents.
Replace =files,source

Distributing Your Package File Set

183

Specifies the file to be replaced by another file. Wild cards can exist in either the
files or source parameter but not in both. A replace is done whenever the file
dates are different; newer files can be replaced by older ones. This keyword is
applied only to the [APP] section to replace the current patch contents upon
updating.
Replacenew =files,source
Specifies the file to be replaced by another file. Wild cards can exist in either the
files or source parameter but not in both. A replace is done whenever the file
dates are different; newer files can be replaced by older ones. When a wild card is
specified, any new file will be created.
Update =files,source
Specifies the file to be updated from another file. Wild cards can be specified in
either the files or source parameter but not at the same time. An update is done
when the target file does not exist or when the source file is more recent.
Updatenew =files,source
Specifies the file to be updated from another file. Wild cards can be specified in
either the files or source parameter but not at the same time. An update is done
when the target file does not exist or when the source file is more recent. When a
wild card is specified, this keyword allows creation of new files. In this example
the [APP] section contains several uses of this keyword. In each case when using
a wildcard, the intention is that new DLLs will be created for both the BASE and
Patch folders.
;comments
Comments are created using a semi-colon (;) at the start of any line.
Automatic Updating Rules
The Windows Client uses the following rules and mechanisms to allow for
updating package files and other related files from a Network drive or Shared
folder.
Note: Any commands specified by keywords will be executed sequentially
without a wait or interrupt.
Rule 1).
The Windows Client processes all the Control files in sequence and within a
Control file the sections are processed in order of appearance.
Note: Control file keywords must be contained under at least one section header
(e.g. [APP]). Files to be updated can only be specified within a control file (JWC).
The following keywords within the Control file(s) are available to specify updates:

184 J Walk Developer Guide


Check=File1,File2
Compares the two named files for the same date stamp and time stamp. When
the two named files have the same date and time stamp, the section is considered
up to date and other update related keywords in this section are ignored.
Note: If wildcards (*) are used for the file1 and file2 arguments, then all files for
that section must match to consider that section up to date.
Update=File1,File2
Compares the two named files for the same date stamp and time stamp. If File1
is older than File2 or File1 does not exist, File2 is copied to File1. If wildcards are
used in File2 then only existing "File1" files are updated; No new file is created.
Updatenew=File1,File2
Compares the two named files for the same date stamp and time stamp. If File1
is older than File2 or File1 does not exist, File2 is copied to File1. If wildcards are
used in File2 then creation of new "File1" files is possible.
Replace=File1,File2
Compares the two named files for the same date stamp and time stamp. If File1
has a different date and / or time stamp than File2, then File2 is copied to File1.
If wildcards are used in File2, then only existing "File1" files are replaced; No new
file is created.
Replacenew=File1,File2
Compares the two named files for the same date stamp and time stamp. If File1
has a different date and / or time stamp than File2, then File2 is copied to File1.
If wildcards are used in File2, then creation of new "File1" files is possible.
Delete=File
Deletes the named file. If the file name does not exist, no action is taken. If
wildcards are specified for the file argument, then all matching files are deleted.
Execute=Command ParameterList
This keyword will perform any command line. The parameter list will vary
depending upon the command line specified. When using this option, please be
aware that the following commands could be executed before this statement is
finished. J Walk Windows Client does not wait for one command to be executed
before starting the next.
Rule 2).
The update mechanism is controlled by a combination of the /U command line
parameter and the Update= keyword in the JWALK.INI file.

Distributing Your Package File Set

185

If the update mechanism is switched off by specifying the /U- command line
parameter OR no /U is specified on the command line but the JWALK.INI
contains the setting Update=No then no checking is performed and the Windows
Client will resume normal operation.
See the appropriate sections within this heading for more information about
command line parameters and new JWALK.INI keywords.
Rule 3).
Within one section of the Control file, the Windows Client first checks the time
stamps of the files specified in the Check= keywords. (There should only be one
Check= keyword in a section. The result of the first Check= comparison will
determine if the section is updated or not). If the time stamps are equal then the
section is considered up-to-date. Otherwise, all update keywords (Update(new)=,
Replace(new)=, Delete= and Execute=) will be performed within this section.
Rule 4).
If any updates are necessary then the Windows Client displays a message
indicating the updates should be performed. If the /U+ command line parameter
is specified OR there is no /U command line parameter and the JWALK.INI
contains the Update=Yes setting then this prompt will not be displayed but the
updates will be performed automatically.
Rule 5).
The actual update will start before any package files are loaded by the Windows
Client. The Update(new), Replace(new), Execute and Delete commands are
executed in the order that they were specified. All actions performed will also be
written to a log file. If the setting UpdateLog=filename is placed in the
JWALK.INI file, the file name specified will be used instead of the default
UPDATE.LOG.
Rule 6).
If any action fails, a dialog will be showing the cause of the failure.
Rule 7).
If an error does occur, a script file is written with all of the failed commands.
Under Windows, this file always has the extension .BAT. The default file name is
JWALKUP. If the option UpdateScript=filename is placed in the JWALK.INI
file, the file name specified will be used instead of the default.
Rule 8).

186 J Walk Developer Guide


At startup of the Windows Client a check will be made for the existence of the
script file. If this file exists, it means that a previous Update was incomplete, and
that the environment might be in an inconsistent state. If this is the case, a
warning message will be presented.
Note: Whenever the update script JWALKUP.BAT (or alternate name specified
in JWALK.INI) exists, then the above warning message is always displayed when
starting J Walk. After running the update script without error, delete the script to
prevent the warning message from appearing unnecessarily.
Start Your GUI Product
After installing your product, it is necessary that you start your product in order to
have the product be registered in the SEAGULL License and Message Server.
You cannot enter authorization codes until the products are registered.
Follow these steps to perform this activity.
1.

Start your GUI product by double-clicking on the icon in your desktop or


in a program folder.

2.

It may be necessary to logon to the AS/400 and display a few panels (or
logon to a server) if there are several package files opened simultaneously.

3.

Logoff the AS/400 (or server) and close the application.

Register Client Licenses


SEAGULL Client licenses are registered with a program running on the AS/400.
You will use the SEAGULL License and Message Server
(SEALMS/WRKSEALIC) to register SEAGULL Client licenses.

Distributing Your Package File Set

187

Follow these steps to perform this activity.


1.

After signing on to the AS/400, enter the following command in an


OS/400 command line:
SEALMS/WRKSEALIC

2.

A screen will appear that displays existing licenses for SEAGULL Clients
and package files. The screen contains information about the type of
license, the package name and the name of the company that supplied the
package file, the total number of licenses, how many active licenses are
currently in use, when the license was last changed, and the maximum
number of concurrent users, and maximum number of concurrent users.
Select the row that has the Package Type equal to "Client" and choose to
Change it. This is the license register for Client licenses.

3.

A new screen will appear with information specific to the Client license
registration. Enter the authorization code you received from your J Walk
distributor and press Enter. Your SEAGULL Client licenses have been
updated.

Updating Package File Licenses


After obtaining a package file authorization code from the developer of the
package file, application users can enter the authorization code with a program on
the AS/400.

188 J Walk Developer Guide


You will use the SEAGULL provided SEALMS/WRKSEALIC utility for
maintaining package licenses.

Note: A package file must first have been run on a J Walk or GUI/400 Client in
order to create a record in the license file. Updating package records (licenses) is
only possible when the package has run once in combination with J Walk Client
v2.1 or GUI/400 Client v4.0 (or higher).
Follow these steps to perform this activity.
1.

Signon onto the AS/400 and enter the command:


SEALMS/WRKSEALIC

2.

A screen will appear that displays existing licenses for SEAGULL Clients
and package files. The screen contains information about the type of
license, the package name and the name of the company that supplied the
package file, the total number of licenses, how many active licenses are
currently is use, when the license was last changed, and the number of
violations.
Select the row that has the Package name and Supplier and choose to
Change it. This is the license register for Client licenses.

3.

On the next screen, enter the total number of authorized package licenses
at the Number of licenses prompt. And enter the authorization code you
received into the Authorization code prompt.

Distributing Your Package File Set


4.

189

Press Enter. Your authorization code has been entered and your number of
licenses updated.

Demonstrating Your Package File


The goal of this topic is to introduce you to the functionality of J Walk to
demonstrate your package file on PC's without a connection with an AS/400. It
groups all of the tasks and information you will need to create such a
demonstration. You may wish to review the topics related to Selecting Package
Files for Distribution to add the additional screen shots (EE) and logic
(DEMO.EEM) file to your installation diskette.
Note: To work with (or create) screen captures using the Windows Client, you
must specify the /O command line option as well as the /EEE option.
After making the appropriate screen shots and screen logic, start the J Walk
Windows Client with the /EEE command line parameter. Invoke the Emulator
emulator dialog by pressing the Alt+SysReq keys.

Make Demonstrations to Run without the AS/400


A J Walk function is provided to assist you in marketing your J Walk Windows
Client solutions. It lets you take snapshots of your green screens (including
pictures from the Picture Album) and define logic between screens and save all of
this information on the PC.
This allows the PC to "play" the AS/400 screens when required.
This makes it possible to demonstrate an entire application on a PC without being
connected to an AS/400. This utility uses the green screen snapshots and defined
logic to emulate an AS/400 on the PC.
The following steps describe making a J Walk Demo to operate without any
connection to an AS/400. The Demo software emulates the AS/400 screens and
the user of the Demo will "believe" he is running your application on an (virtual)
AS/400.
Note: Please be aware that the EE screen capturing utility may try to fix known
problems in older EE files. Every attempt was made to ensure upward
compatibility, however, as a result of these changes, a correction may be
incorrectly applied.
Also, Data Access cannot be utilized without an actual connection to an AS/400.
Follow these steps to perform this activity.

190 J Walk Developer Guide


1.

The first step is to take snapshots of all the green AS/400 screens which
you want to use in your Demo. You can use either J Walk Windows Client
(using the /O option) or J Walk Developer. There are menu (and toolbar
icon) options in both applications to make screen snapshots.

2.

In the next step you will define the sequence in which the pictures of the
AS/400 screens will be shown and which input is required from the person
running the Demo. With the aid of the Developer you may build the
necessary J Walk panels for this Demo.

3.

Invoke the Emulator emulator dialog by pressing the Alt+SysReq keys.


To manage screens (EE files), select the Screens button. To create (or
modify) screen navigation logic, select the Logic button.

4.

To create demo logic, select a screen and Add (or replace) entries as
required.
Note: You may add Conditions by specifying the Row and Column
coordinates (rrcc). You may additionally specify a "text string" for the
condition. If you do not, only the cursor position is used to verify the
condition. To activate a condition, you must check the Condition
checkbox.

5.

The Demo files may then be stored on one J Walk Demo diskette and this
Demo diskette can be used on any PC with J Walk Windows Client.

Defining the Screen Logic in the Demo


In order to create a demo you must define the sequence of the AS/400 screens
within your Demo and the user input required for going from one AS/400 screen
to the next AS/400 screen.
The Developer or Windows Client must be started with the /EEE parameter
which will activate the Emulator-Emulator function within the J Walk software.
J Walk will then use the [EE] part of the JWALK.INI file. Invoke the Emulator
emulator dialog by pressing the Alt+SysReq keys.
After starting Developer or Windows Client with the /EEE parameter, the
software will search the working directory for a file with the name DEMO.EEM.
This file contains the names of all the EE files and the "logic" for going from one
AS/400 screen to the next. If the DEMO.EEM does not exist it will be created
automatically. You may create several EEM files in the same directory but only
the one called DEMO.EEM will be started automatically.
Follow these steps to perform this activity.

Distributing Your Package File Set

191

1.

If the DEMO.EEM does not yet exist then a window will appear which
shows the default name "DEMO" in the Master input field. Pressing the
Load button will create the DEMO.EEM file and load this empty file into
memory.

2.

Press the Screens button to display all the available EE files in your
Working directory. You may then select one EE file and "Add" it to the list
of used EE files (on the right side). The list of used EE files are the ones
that you will be using in your Demo. After setting up this list of used EE
files you may press the OK button and the AS/400 Emulator window will
appear again.

3.

You then press the Load button to load the list of used EE files. The
Emulator will then show you the first AS/400 screen. Pressing the
Alt+SysRq keys will bring up the AS/400 Emulator window. Press the
Logic... Button and a new window will appear in which you can define the
sequence of the screens and the required user input for a screen (demo
logic).

4.

First you define the "Startup screen" which is the first screen in your GUI
Demo. For every screen which you want to show in your Demo you must
now define the name of that screen, which function key to press to go to
the next screen, an optional condition and the name of the next screen. If
you then press the Add button the line with your definition is inserted in
the large list box. In this way you define the complete "logic" of your
Demo. You may Add, Replace and Delete lines in the large list box.

5.

Use the condition attribute to specify the position of the cursor on an


AS/400 screen. The format for the cursor position value is RRCC, where
RR is the 2 digit row number and CC the 2 digit column number.
Additionally, you may supply a "text string" following the cursor position
to further condition not only on the cursor position but additionally on a
text string supplied at that position.
Do not forget to check the Check box to activate the condition. When
running the Demo, J Walk will test for a 100% match between cursor
position (and any specified characters: case sensitive).
Example Logic:
Screen1>>Enter r02c12 = "hello">>Screen2
Screen1>>Enter r02c12 = "HELLO">>Screen2
Screen1>>Enter r04c12 = ">>Screen3
Screen1>>PF3>>Screen99
Screen2>>Enter>>Screen3

192 J Walk Developer Guide


With this "logic" definition the user may press F3 which will take him from
screen1 to screen99 or enter "HELLO" in upper or lower case which will
take him to screen2.
Note: A second field allows you to specify the "sequencing" for the
defined logic step. When a value is present, this sequence number denotes
"when in the demo" that the condition you are defining should take place.
In some cases, you might want to define several "paths" from a main panel.
In such a case, more than one logic definition is required: one for each
"path." When more than one "path" of logic is defined it is sometimes
important to sequence these different "logic paths." When you specify a
sequence step, consider the search logic to be used. If you specify several
steps using the same digits, there can be a logical error. To ensure that
sequence number "1" is different from "111," you should "pad" the lower
values (e.g. "1 ", "11 " and "111" will be sequenced correctly). Another
way to do this is to "pad" all numbers with leading zeroes (e.g. "001", "011"
and "111" will sequence correctly).
6.

Pressing the OK button will store your "logic" definition in the


DEMO.EEM file and you may start testing your demo. You may press the
Alt+SysRq at any moment during the demo, this will pop up the AS/400
emulator window and you may load another DEMO.EEM file or modify
the current DEMO.EEM file.

Importing Demo Screen Logic


You can use the logic from another EEM file by clicking on the Import... button.
Clicking this button opens a dialog prompting for an EEM file. Enter a file name
from the Available files list and click the OK button. All of the logic from the
selected file will be copied.

Creating the Demo Floppy Disk(s)


When creating a demo, you may wish to distribute it on diskette(s).
Note: It may be necessary to compress all of these files to make them fit on one
floppy.
See Compressing Your Package file for recommendations.
Follow these steps to perform this activity.
1.

Put all your demo files ( EE, EEM, JWR, HLP and DLL files) in one
directory.

2.

Also add all of the J Walk Windows Client software files to the same
directory.

3.

Move the directory to the floppy.

193

Creating Your Own J Walk Demo Icon


If you do not yet have your own DEMO Icon for starting the DEMO mode then
perform the following.
Follow these steps to perform this activity.
1.

Copy an existing Windows Client Icon in your Program Group.

2.

Add the /EEE parameter.

3.

Set the Working directory to the one where your EE files are located.

4.

Update the description for this Demo Icon.

Creating a Self-Running Demo


If you wish to create a rolling demo (screens change automatically after a specified
time delay, without keystrokes), then click Demo mode check box to on. The
default delay is 25 seconds.

Using the SEAGULL Collector

195

Using the SEAGULL Collector


The SEAGULL Collector is an AS/400 tool provided by SEAGULL to be used
to scan host application display files and menus to collect the application screens
and messages. Using the Collector amounts to specifying the libraries you want
to Collect, setting up user options and running the Collector process in batch
mode. Upon completion of processing, the result is stored into the AWHOST
file.
The AWHOST file must be transferred to a Developer PC where a Picture
Album is created from the AWHOST file. The Picture Album is evaluated (are
pictures getting uniquely identified?). If too many pictures are not uniquely
identified, these pictures would require a manual identification process. When the
amount of pictures which are unidentified is too large, you should influence the
Collector with User Options Parameters and Proposals to improve identification
of your host screen formats to use (and omit or combine).

Also, Host Application updates may require re-running the Collection process. In
this case, you can elect to rebuild the entire application or specify (by date) to
collect on recently changed objects. In either case, you will need to transfer the
AWHOST file to the Developer PC to Smart Build these updates back into your
existing panels.
Note: Save your AWHOST file for future reference.

Collector Process
A closer look at the Collector process begins by looking at the resultant file, the
AWHOST. The AWHOST file contains all application display details. You must
create this file on your AS/400 using the Collector. To do so, you must know
details about the host application and associated libraries.

196 J Walk Developer Guide


Even if you only have the application objects and not the source members, the
Collector can scan the objects and gather enough information to make a set of
application screens into an AWHOST file.
Using the Collector amounts to specifying the libraries you want to Collect,
setting up user options and running the Collector process in batch.
The AWHOST file must be transferred to a PC to perform Picture Album
Evaluation using the Developer. If you determine your host application is
generating pictures that are not being identified, then you may want to influence
the Collector process and re-run the Collector. The Collector is influenced by
specifying User Options and/or Program-flow (to be executed after a completed
phase).
After you verify your application libraries, start the Collector. Specify the
application libraries and any changes to your Current Library. Specify the User
Options Parameters you require, and launch a batch job by pressing Enter. The
Collector processes the application libraries in a phased approach. Each phase
achieves a result which is written to the allocated work file.
The Collector process completes certain steps per phase. When the AWHOST
file is created, all work files are deleted. You can manipulate the work files (after a
processing phase has completed) by specifying Proposals and your own custom
programs. Work files and AWHOST file layouts are described in the Reference
section.
Note: Each workfile contains elements of the resulting AWHOST file.
Collector Processing phases are:
1.

Prepare Phase

2.

Extract Phase

3.

Combine Phase

4.

Collect Phase

The Collector process can additionally be influenced during processing. Program


flow can be interrupted to apply a proposal to your application collection. To use
proposals, you must know about RPG programming and details concerning your
host application screen conditions. Influence the Collector to adjust or drastically
change your AWHOST file contents.
Also, host application updates usually require re-running the Collector. In such a
case, you can elect to rebuild the entire application or specify (by date) to collect
on recently changed objects. In either case, you will need to transfer the
AWHOST file to the Developer PC to Smart Build these updates back into your
existing panels. Keep a copy of your AWHOST files used for development.

Using the SEAGULL Collector

197

Collector DDS Keyword Handling


DDS Keywords describe display conditions within your DSPF and MNU files.
The Collector examines supported DDS Keywords and can perform operations
based on their presence. Relevant elements are extracted from DSPFs with the
type DSPF and MNUDDS and from source members with the type DSPF38.
Fields and texts are extracted from the members (or objects) that are found. All
source statements are scanned to find information, like screen positions, field
attributes, conditions and other relevant information.
Fields and texts are gathered for each record format. The SFL record format and
its associated SFLCTL record format are considered to be one format. All
keywords are examined.
The Collector will combine two record formats, when the formats contain the
OVERLAY or PUTOVR keyword.
Note: Overlapping formats have restrictions when combining them.
For a detailed description of all possible keywords, see the "Data Description
Specifications Reference" (SC41-9620 -00). A list of DDS keywords supported
(recognized) by the Collector is included in the Developer Reference chapter.

Collector Prepare Phase


During preparation, the Collector tries to link the DSPF objects with their DSPF
source members. Both DSPF objects and their source members must be present
within the library list in order for a link to be established. If you plan to run the
SEAGULL Collector using your DSPF objects, then none of the DSPF objects
should be in use. If an object is in use, the Collector will generate a warning
message in the job log file and skip processing this object. The cause is most
likely someone accessing the object (recordlock/ memberlock).
The prepare phase links objects and source members by performing the following
steps:
1.

Create a list of all sources in the library list.

2.

Create cross references of all compiled objects and corresponding source


members.

3.

Allocate work files to be used in the extract phase.

The Collector can automatically resolve some linking problems logged during the
prepare phase. Others may require your intervention. Refer to Error/Diagnostic
Messages in the Developer Reference chapter for more details on Prepare phase
messages found in your AWPRT spool files.

198 J Walk Developer Guide

Collector Extract Phase


The Prepare phase linked all necessary files for collecting.
The extract phase reads all fields, texts and other relevant DDS keywords from
DSPF (and MNU) source members and objects. The results are written to work
the files temporarily allocated in your current library.
The Extract phase may ignore a DSPF (MNU or Object) source. All ignored
source files (DSPFs, etc.) will be reported in a spool file.
Note: Refer to Error/Diagnostic Messages for more information. The Collector
is not capable of handling these objects in a correct way.
The Collector Extract Phase ignores DSPFs in the following situations:

The source member is of a type DSPF36. Due to a different syntax, the


Collector is not able to extract screens. You can convert DSPF36 source to
"native" by compiling the source twice.

The object is of type DSPF38.

The DSPF was found before in a source file already processed. The
Collector will assume the first DSPF found to be the most recent one and
will omit the latter one.

The associated object for the source member to be processed can not be
located.

The associated object is in use and can not be processed.

The source member contains deleted records. Such a situation can not
occur in the OS/400 editor. It may be caused by source generating
programs or by tools like DFU or SQL. The Collector is not capable of
handling these source members in a correct way.

The source member does not contain records at all. The Collector will not
handle these source members.

The Collector may encounter DSPF source members having duplicate or


non-ascending sequence numbers. Such a situation cannot occur in the
OS/400 editor. It may be caused by source generating programs or by tools
like DFU or SQL. The Collector can process these source members, but
will still report this situation.

Using the SEAGULL Collector

199

Collector Combine Phase


Each display file can be viewed as made up of screen formats. The Collector
identifies these formats during processing. Each recognized screen format
(collected) can produce a unique screen reference in the AWHOST file. At the
Combine phase, the Collector will try to combine record formats (specified by
Keyword). The combination of common screen formats reduces the number of
actual screen references included in the AWHOST file. A combination will be
regarded as a new format and can be combined with additional formats under the
same conditions described below.
The combination of formats requires these conditions be observed:

Formats must be within the same display file.

The last row occupied by the first format must not overlap the first row
of the second format.

The OVERLAY keyword or PUTOVR keyword must be defined in at least


one of the two formats to be combined.

The following formats will not be combined unless otherwise noted:

Formats containing the WINDOW keyword will be regarded as noncombinable. However, formats referencing the same window may be
combined, according to the rules described above.

All formats containing the SLNO(*VAR) keyword will be regarded as non


combinable.

All formats containing the CLRL keyword will be regarded as non


combinable. This is untrue when all rows from the top row of the format
up to the bottom row of the screen (normally 24) are cleared. You may,
however, consider to ignore the CLRL keyword in the combine phase.
Refer to User Options Parameters for a detailed explanation.

Collector Work Files


The Collector stores processing results into work files. Work files are touched
based on the processing phase. Work files are always allocated in the current
library. This is to enable processing of multiple AS/400 applications at the same
time. Use a different current library for every package you want to process.
The Collector creates a series of work files during processing (see Collector Work
File Layouts in the Reference chapter for the details to these files).
Note: Upon completion of Collector processing, all work files are removed.
Work files and the associated processing phase are listed:

200 J Walk Developer Guide


AWOBJD Contains a description of all objects involved. [prepare]
AWMB Contains a list of all file members found in the library list. [prepare]
AWFMT Contains a list of all formats found in all display source members.
[extract, combine]
AWTXT Contains a list of all fields and texts extracted from all display source
members. [extract, combine]
AWDFM Formats not to include in final result [collect]
AWSBF All subfiles specified [extract/combine]
AWWDWA All windows attributes specified [extract/combine]
AWWDWB All windows specified [extract/combine]
USREDT Show edited lengths for fields using special edit codes 5-9
[extract/combine]
AWHOST Final result, to be sent to the PC [collect]
Proposals and your own user defined programs can be executed after the
[indicated] phase(s).

Collector Collect Phase


The Collect phase produces the final results of the completed process (AWHOST
file) to reside in the current library. This file should be transferred to PC, and will
be the starting point for the Developer.
Finally , when this phase is completed, all work files in the current library are
removed.

Getting Started Collecting Your AWHOST File


This section describes the steps you will perform to produce an AWHOST file.
General steps to use the Collector to produce the AWHOST file include:
1.

Identify the Host Application Libraries to Collect

2.

Start the Collector program and verify your current library and library list

3.

Specify User Options to apply

4.

Start the Collector job

5.

Review Collector results on the AS/400

6.

Transfer the AWHOST file to a Developer PC

7.

Review the Picture Album on your PC (too many unidentified screens?)

Using the SEAGULL Collector

201

If too many unidentified screens are produced in the Developer, specify User
Options and/ or Proposals to influence the Collector process with your additional
processes. When you have prepared and specified any Proposals (or other
options), re-run the Collector process.

Identifying the Application Libraries for Collection


The result of this step can be entered onto the Collector interface (edit library
list). Before starting the Collector, find out which libraries on your AS/400
actually contain source members with screens (DSPF and MNUs) to be
processed. In addition you should also find out where the compiled objects
reside. The Collector processes source members including referenced user
message files (MSGFs).
Keep in mind the following library list issues:

Normally, there is a one-to-one relationship between DSPF objects and


DSPF members. If there are multiple source members for an object, or
multiple objects with the same name, the first object and source member
are used.

If the host application uses message files, make sure the message files can
be found in the library list.

The Collector must have *USE authority for all libraries defined within the
library list.

Use the AS/400 command EDTLIBL to inspect your library list.


Use the AS/400 command DSPOBJAUT to inspect your authority on the
objects.
Note: The library list will normally be equal to the library list used when running
the package. In addition, the libraries with the source members should be added
to the list. The order of libraries in the Collector library list should be the same
order as the library list used within your application.

Starting the Collector and Verifying the Libraries


This activity is performed from the Collector Main screen. The current library will
hold all interim working files and the created AWHOST file. You can set the
library before using the Collector by changing the current library using
CHGCURLIB. It is important to ensure that you have "write" authorization to
the library you will be working within, else the Collector will terminate with an
error message.
Follow these steps to perform this activity.
1.

You can start the Collector with the command: SEACOL/COLLEC.

202 J Walk Developer Guide


At the copyright screen, press Enter and the main screen of the Collector is
displayed. It displays the library list and current library.
2.

Press F16 to update the library list if necessary. The library list should
contain all of the Application Libraries.

3.

Press F17 to update the current library if necessary.

Updating the User Options


User Options influence the Collector operation. From the Collector Main screen,
check the user options by pressing F18 and traversing through the menu options.
User options include

Parameters

Collector Program Flow

Indicator settings

Formats to remove or omit

Language specific options.

In an initial Collector run, you may wish to specify a parameter such as "Combine
Record formats from a specified line". Using the User Options Parameters, you
can specify such a condition. As you perform the Collector operations, it may be
necessary to specify additional User Options.
Update your AS/400 Collector User Options as required. When the Developer
(on a PC) produces limited screen identification (your Picture Album contains too
many unidentified screens?) you may need to affect the AS/400 Collector with
additional User Option Parameters and/ or Program flow specifications.
For additional details see Influencing Collector Results section.
Follow these steps to perform this activity.
1.

On the Collector Main Menu, press F18 (if you have not already).

2.

A menu of different options will appear. Navigate through the options by


entering the number beside the option on the OS/400 command line and
pressing Enter.

3.

Select and specify each option for your Collection Run. Press Enter to
return to the Main screen.

Using the SEAGULL Collector

203

Submitting the Collector Run


Once the environment has been correctly set up, you can start the Collector run
by pressing Enter on the Collector main screen. This submits a batch job called
COLLECTOR.
If you run the Collector over objects that are in use (someone is running the
application being collected), you will receive a warning message in the job log that
object could not be collected.

Reviewing the Collector Run Results on the AS/400


When the COLLECTOR job finishes, you should evaluate the job log and spool
files. Additionally, check your library for the presence of a newly created
AWHOST file. If no AWHOST file is created, there will remain work files
containing the current results of the process.
If the Collector run looks OK, proceed to transfer this file to the PC.
Follow these steps to perform this activity.
1.

You should check the AWPRT spool files in the SEACOL/AWOUTQ to


see whether any serious problems were encountered during the process.
Review each message and appropriate actions.
WRKSPLF Check for user data AW310
WRKSPLF Check for user data AW810.

2.

Investigate the job log.


WRKSBMJOB.
If there are serious problems, then an AWHOST file may not have been
generated.

3.

If you correct any identified problem(s), you must specify those corrections
(User Options) and restart the process.

Transferring AWHOST File to the PC


The transfer of the AWHOST file from the AS/400 to the PC can be done using
any software that provides communication between the AS/400 and PC. When
transferring AWHOST to the PC, the file should be transferred as an ASCII text
file. A suggested technique is to transfer the files using the Shared Folders
function.

204 J Walk Developer Guide


Transfer Files Using the Shared Folders Function
To transfer files through the Shared Folders function, you must have a
communications package which supports the Shared Folders function, for
instance Client Access. This function must be enabled.
You can enter the AS/400 command line as follows :
CPYTOPCD FROMFILE (<your current library/AWHOST> TOFLR (TEMP)
TRNTBL (*DFT) TRNFMT (TEXT)
Or follow the activity below.
Follow these steps to perform this activity.
1.

Start Client Access.

2.

Ensure the Shared Folders function is enabled.

3.

Sign on to the AS/400

4.

Type CPYTOPCD and press F4.

5.

Specify AWHOST at the From file prompt.

6.

Specify the library you used as current library during the Collector run at
the Library prompt.

7.

Specify the folder (directory on your AS/400 drive, e.g. I:) to receive the
AWHOST file, e.g. TEMP.

8.

Press [Enter].

9.

If the command completed successfully, the AS/400 will respond with


"File member copied to PC document AWHOST ". You should be
able to access the file with a path like I:\TEMP\AWHOST.

Evaluating Created Picture Album from Collected AWHOST


Once the AWHOST file is transferred to the PC, it is necessary that you build a
Picture Album using Developer. Review the screens produced using the
AWHOST file. After you have run Picture Identification, you may evaluate the
usability of the current Picture Album (from the generated AWHOST file).
Usually, if you are not satisfied with the results of the Collector run, it is because
there are too many unidentified screens from the Picture Album. Please review
the "Influencing the Collector" section to review the details about Collector User
Options and other methods of influencing the Collector.
Common actions used to modify the Collector run based on the created Picture
Album (and results) are:

Using the SEAGULL Collector

205

If you have identical pictures except for the function keys listed at the
bottom.
Apply Combine Function Key Formats.

If the Collector run is producing too many pictures from individual record
formats.
Apply Combine Formats Using PRECOL.

If record formats are not being combined correctly, producing pictures that
only display the top half or bottom half of a screen.
Apply Combine Formats Ignoring CLRL Instructions.

Consider using these methods when you identify Picture Album issues. Apply the
appropriate method(s) and re-run the Collector.

Influencing Collector Results


The goal of the Collector is to create an optimal AWHOST file. The AWHOST
file can be evaluated. When the evaluation results indicate a better AWHOST file
could be generated, you should produce a new AWHOST file by influencing the
Collector and re-running.
Influencing the Collector means:

Influencing the Collector with User Options.

Applying Proposals and User-defined programs as they influence Collector


Results (work files and AWHOST).

Specify Indicator Settings Options.

Removing or Omitting Formats.

Specifying Language Options.

The Collector provides User Options, Program Flow and several other
parameters for influencing the result.
The Collector job log and processing messages provide "hints" as to how the
Collector results occurred.

Influencing the Collector Process with User Options


The majority of control over the Collector process is provided within the User
Options menu. User Options span the operational parameters to use the
Collector, as well as specific selections related to specific host application
environments (display methods, language modes, etc.).
User Options include:

206 J Walk Developer Guide

Parameters

Program Flow

Indicator Settings

Formats to Remove or Omit

Select Language of Collector Screen.

User Program Flow and the use of Proposals are highlighted in this section.

Collector User Option Parameters


Using parameters, you may affect the way the Collector reacts to commonly used
display programming methods and control the resulting output. From the
Collector Main screen, specify F18 User options and select Parameters.
Parameters for Controlling Record Formats
The Collector provides various parameter options when controlling the effect of
combining record formats.
In evaluating your Collector run, if a large number of unidentified screens exist
within your Picture Album (on the Developer PC), one method of reducing the
screens produced is to combine screen formats. You can combine several types
of screen formats. Screen formats containing function keys can be combined.
Screen formats including the <CLRL> keyword may be combined.
Combine record formats starting from row
For each DSPF, the Collector finds all formats starting at or below the row
indicated and regards them as a single format, regardless of any keyword specified.
This can dramatically reduce the number of pictures that the Collector run makes.
Use this parameter to combine formats containing function key references (e.g.
row 22 or 23) and program messages (row 24) into one format. This new format
can then be combined to other formats under the conditions described on the
combine phase.
Formats combined in this way, can be recognized by their name, which will be
*0XX/0YY, where XX stands for the value you have entered and YY stands for
the display height, normally 24.
The default value is <0>, which indicates that this parameter will not be used.
Combine consecutive single row formats

Using the SEAGULL Collector

207

A package may be developed using a separate record format for each row
displayed. In such cases the Collector has difficulties in combining the record
formats. Not only would this take a considerable amount of time to process, the
AWHOST file could contain a large amount of pictures "unknown" to the
package at runtime. In such cases this parameter can help you save time, and still
produce "known" pictures.
Within a display file, record formats are sorted by their starting row. When the
parameter has a value of <1>, record formats are combined when:

the current record format only occupies one row and

the next record format occupies one row as well and

both record formats are on the same row or on two consecutive rows.

Omit empty record formats


Setting this parameter value to <1> will cause the Collector to regard empty
formats as non-existent. A format is considered empty when no fields or texts are
displayed. Be aware that program and hidden fields as well as fields or texts with
an unconditional ND (non-display) attribute are not displayed. (This is not true
for message fields.)
Omit records only containing blanks
When this parameter is set to <1>, record formats only containing blanks will be
ignored by the Collector. In most cases, record formats only containing blanks
are used within a package to clear (part of) the screen and should be omitted.
Keep in mind that this parameter is in effect for all display files of the package
you are handling.
Ignore CLRL keyword on combine phase
The CLRL keyword is typically used in System 36 based packages. The
OVERLAY keyword is the corresponding AS/400 keyword. When this format is
sent to a screen, it doesn't clear all lines, but only from the first defined row until
the last defined row in this format.
The CLRL(*NO) keyword doesn't clear the screen. The CLRL(xx) keyword clears
"xx" (where xx indicates a number of lines on the screen) number of rows starting
from the first defined row of this format.
If this parameter is set to <0>, combinations of record formats will be made
under the following conditions:

Record formats must be within the same display file, and therefore within
the same source member.

208 J Walk Developer Guide

The last row occupied by the first format must not overlap the first row of
the second format.

The OVERLAY or PUTOVR keywords must be defined in at least one of


the two formats.

If you set this parameter value greater than <0>, every format containing the
CLRL keyword is considered to have the OVERLAY keyword defined.
Note: In order to combine formats, these formats should not be overlapping.
The following values can be used for this parameter.
<1> Ignore both CLRL(*NO) and CLRL(xx).
The Collector will try to combine these formats. The first row and the last row of
these formats are as defined in the source.
<2> Ignore both CLRL(*NO) and CLRL(xx), do handle <xx>.
The Collector will try to combine these formats, but handle the format with
CLRL(xx) starting from the first defined row and ending xx lines down.
<3> Ignore CLRL(*NO), do not combine CLRL(xx).
The Collector will try to combine all formats with CLRL(*NO), but won't
combine formats with CLRL(xx). Every format gets a new picture.
<4> Do not combine CLRL(*NO), ignore CLRL(xx).
The Collector doesn't combine formats with CLRL(*NO). Every format gets a
new picture. The Collector will try to combine all formats with CLRL(xx). The
first row and the last row of these formats are as defined in the source.
<5> Do not combine CLRL(*NO), ignore CLRL(xx), do handle <xx>.
The Collector doesn't combine formats with CLRL(*NO). Every format gets a
new picture. The Collector will try to combine format with CLRL(xx), but handle
the format which using CLRL(xx) starting from the first defined row and ends xx
lines down.
Include PULLDOWN formats
Use this setting to specify PULLDOWN formats to be included in your pictures:
<1> =Yes, <0> =No.

Using the SEAGULL Collector

209

Combining Function Key Formats


Use this User Options method when you have pictures being produced that are
identical except for the function key assignments displayed at the bottom of the
screen. This commonly occurs when there are more function keys available than
can be displayed on one screen. This solution combines these pictures into one
and leaves the last lines of the screen variable.
Follow these steps to perform this activity.
1.

After pressing F18 to display the User options menu, choose menu option
1 to display the Parameters screen. The cursor will be positioned at the first
parameter, Combine record formats starting from row.

2.

By default, this row number is set to <0> which indicates that all rows
should be used when generating record formats. Change the row number
to the first row where function key assignments are displayed at the bottom
of the screen. This is usually at row 22.

3.

Now when the Collector run is started, the function key rows will not be
considered unique record formats and only one picture will be generated,
instead of one picture for each of the different function key assignment
record formats.

Combining Formats Ignoring CLRL Instructions


Use this method when pictures are not being generated correctly because there
are CLRL commands in the DSPF source member that makes the last line of the
screen appear longer than it actually is.
For example, if one record format defined the appearance of rows 1-12 but also
had the command CLRL(20) in it, the Collector would normally interpret this
record format as defined lines 1-20.
If the following record format defined rows 13-25, normally, this record format
should be combined with the previous record format to generate one picture. But
reading the CLRL(20) command will cause the Collector to produce two pictures.
The parameter Ignore CLRL keyword on combine phase enables you to control
how the Collector combines record formats when the command CLRL is present.
Several options are available:

Dont ignore CLRL keywords.

Ignore both CLRL(*NO) and CLRL(xx).

Ignore both CLRL(*NO) and CLRL(xx), do handle <xx>.

Ignore CLRL(*NO), do not combine CLRL(xx).

210 J Walk Developer Guide

Do not combine CLRL(*NO), ignore CLRL(xx).

Do not combine CLRL(*NO), ignore CLRL(xx), do handle <xx>.

In the example where there is a keyword CLRL(20) that should be ignored,


entering the value "1" or "4" will produce one picture from the two record
formats.
Combining Screen Formats Using PRECOL
If there is more than one format used to describe a screen and there are multiple
screens in one source, all formats will be combined. This can form more pictures
than the original number of screens. Use this method when record formats are
being combined into too many pictures. The information is presented in an
example format.
If you have two screens within one DSPF, each made up of a header, body and
footer, the screen permutations of this combination form eight different picture
possibilities.
1. HEADER1 + BODY1 + FOOTER1
2. HEADER1 + BODY1 + FOOTER2
3. HEADER1 + BODY2 + FOOTER1
4. HEADER1 + BODY2 + FOOTER2
5. HEADER2 + BODY1 + FOOTER1
6. HEADER2 + BODY1 + FOOTER2
7. HEADER2 + BODY2 + FOOTER1
8. HEADER2 + BODY2 + FOOTER2
Suppose the only combinations that you want as pictures are combination 1 and
combination 8. Enter the record formats at the end of the PRECOL proposal.
Each picture will be defined using three rows, identifying the source, the picture
record number, and the record format.
The rows used to define two pictures, one for combination 1 and one for
combination 8 would look like:
Source

Pic #

Record format

DSPF01

HEADER1

DSPF01

BODY1

DSPF01

FOOTER1

DSPF01

HEADER2

Using the SEAGULL Collector


Source

Pic #

Record format

DSPF01

BODY2

DSPF01

FOOTER2

211

The PRECOL file and PRECOLTOOL are provided to define specific screen
identification formats without viewing the source code.
The PRECOL file is used to hold the selected combinations of pictures (from
Initial Base Data).
The PRECOLTOOL maintains the PRECOL file.
Use PRECOLTOOL to Create Pictures from DSPF Formats
Use this tool to remove unwanted screen formats during the Collector run.
Follow these steps to perform this activity.
1.

Start the <PRECOLTOOL> by typing the command CALL


SEACOL/PRECOLTOOL.

2.

To create pictures using formats from a display file (DSPF), you must have
gathered initial base data. Specify <1> and press Enter.

3.

After the gather initial base data is completed, restart the PRECOLTOOL
and select the "Data entry for file <PRECOL>" function. Enter <2> and
press Enter.

4.

You may select the "Clear current contents of <PRECOL> file" (option
<4> from the PRECOLTOOL menu) to essentially start again (or recover
a very small amount of disk space.
Note: It may be more valuable to save the <PRECOL> file for re-use
after host updates have occurred.

Gather Initial Base Data for PRECOLTOOL


Before you can proceed using the PRECOLTOOL, you must gather initial base
data. This function gathers information form the display files (DSPFs) for later
use with the PRECOLTOOL. When you have completed this step and your
display files have not changed (again), you can consider that the base data is
gathered.
Make PRECOL and AWHOST Files
Begin the Collector session by specifying that the Collector process produce an
AWHOST file and PRECOL file.
Please refer to the member <MAKEPRECOL> in source file
<SEACOL/PROPOSALS> for a detailed description of this entry.

212 J Walk Developer Guide


Follow these steps to perform this activity.
1.

From with the Collector Start screen, select User Options (F18).

2.

Call the Collector Program Flow entry (option <2> ).

3.

Specify the program <MAKEPRECOL> in library <SEACOL> within


the "User defined program after combine" field.

4.

Results of this activity are stored in the PRECOLNW file.

Only Handle Members Changed Since


This parameter may be typically used to run the Collector on a new version of
your package. By entering the date, only those DSPFs changed since the date
entered will be treated. All other DSPFs will be omitted.
A source member is considered changed when:

One or more statements have been changed

The source member text has been changed,

The source member has been renamed.

An object is considered changed when:

The object is compiled.

The object is moved.

The date should be entered in the format (YYMMDD), disregarding the status of
your system value (QDATFMT).
Collect on Object
The Collector can extract information from DSPF objects without the
corresponding source members. This parameter can only be used with OS/400
V3R1M0 or higher.
This parameter has three possible values:

<0> Extract information from source members only. The source member
must have a corresponding DSPF object.

<1> Extract information from DSPF object. The object must have a
corresponding source member.

<2> Extract information from DSPF object. Existence of source member


is not important.

It is recommended to set this parameter to <1> or <2> when possible because


the Collector works faster with objects than with sources and objects reflect more
accurately what fields appear on the screen at runtime than sources.

Using the SEAGULL Collector

213

Using this option (<1> or <2>) requires that none of the DSPF files are in use.
A warning is logged indicating processing has skipped an object currently in use.
For OS/400 V2R3M0 or older
This parameter must be set to <0> for DSPF38 objects, when using OS/400
V2R3M0 or lower and when using indicator settings. Refer to Indicator Settings
for more information about using indicator settings to operate your AS/400
application in different languages.
Reset Original Library List
This parameter specifies whether or not the library list will be set to the original
value at the end of the process.
Run Process Interactive
Setting this value to <1> will make the Collector run operate interactively. This is
only done when debugging user programs that you have added to the Collector
process in the Collector Program Flow.
Use CA/400 (W95 and NT) to Transfer AWHOST to PC (DBCS)
Use this parameter when you use Client Access/400 (W95 and NT) to download
the AWHOST file to your PC (<1>=Yes, <0>=No). This parameter is only
available on DBCS systems.
CA/400 requires DBCS files (be transferred to a PC) to be created with the
option IGCDTA(*YES). Other file transfer utilities DO NOT require use of this
option.
Incorrect use of this option can result in an AWHOST file (on the PC) with the
incorrect "JIS"-code. The AWHOST will appear corrupt in the Developer.

Collection Formats to Remove or Omit


Using this option, record formats can be marked by their name. Some
applications have one or more "special" formats copied or generated in display
files, like DUMMY or CLEAR. Another common way of coding record formats
is to include a format in each DSPF, showing for instance the copyright of the
package.
The result could be that the Collector generates many of the same looking
pictures or too many format combinations. You may decide to omit these record
formats in the Collector run, which will leave you with less pictures. This option
is used to exclude those formats by name from the Collector process.
You could mark these record format names as:

<0> Specifies the Collector to ignore all occurrences of this record format.

214 J Walk Developer Guide

<1> You may decide to include these record formats in the Collector run
only once, and omit all other occurrences by marking these record format
names as "1".

<2> Finally, there may be record formats, which will not be combined
with any other record format at runtime, even though the source would
suggest so. You could mark these record format names as <2>, which will
result in a separate picture for this record format. Typically this would be
the case for the record formats, looking like windows, but coded with
reversed blanks to show the borders instead of the WINDOW and
WDWBORDER keyword.

Collection of Language Display by Indicator Settings


Some applications make heavy use of indicators to implement multiple languages
in one display file. In these situations every text is in the DSPF multiple times in
different languages and dependent on some specific indicators.
The resulting picture contains all the texts and will display them in the sequence
of statement numbers in reverse order. If the language is not always the last
statement then the picture will display the mixed language!
Using this option you are able to control which language (indicator setting) will
display in the Picture Album.
Use this screen to select fields and texts, that are conditional based on indicators.
Texts and fields are examined for the use of indicators. If the marked indicator is
encountered (marked as 0 if (Nxx), marked as 1 if ( xx)) the text will be marked in
such a way that it will appear when examining the pictures on PC.
Suppose an example source (generated by the IDDOS tool) looks like:
0001.00 A N61N62 63
0002.00 AAN64N65N66

row col 'GERMAN TEXT'

0003.00 A N61N62N63
0004.00 AA 64N65N66

row col 'ENGLISH TEXT'

0005.00 A N61N62N63
0006.00 AAN64N65 66

row col 'DUTCH TEXT'

Marking indicator 63 as 1 would select the German text, thus showing the
German text when looking at pictures on PC. Although the English and Dutch
text are in the picture as well, they are "hidden" under the German text.
To choose the English text, indicator 64 would be marked with a 1. To choose the
Dutch text, the indicator 66 would be marked with a 1.

Using the SEAGULL Collector

215

Collector Select Language option


The Collector uses message files for its texts. You may make a copy of an existing
message file and translate the contents into your native language. So your users
will operate the Collector in their own language. If the message is in the
SEACOL library, you can activate the message file using this option.
If you are using Collector on a DBCS version of OS/400 then your Collector
language is automatically set to uppercase English.

Collector Program Flow


From the Collector Main screen, specify F18 User Options and enter a <2> to
display the Program Flow screen. Specify a proposal or user program to invoke
by specifying the program name in the filed associated with a process phase
(invoked after phase completes).
The interim results of the four phases of the Collector run (stored in working
files) can be influenced by user programs. In between phases, user-defined
programs can modify the Collector process by performing additional
manipulations after the specified process phase.
Use Proposals (or copy a proposal as a base from which you can create the
customized values within program) and/ or user-defined programs to manipulate
the work files (and resulting AWHOST file).
Collector: User Defined Program Flow options
Note: If you are using the Collector Program Flow, be aware that control of the
data is passed to one or more user defined programs. Results can therefore no
longer be guaranteed and are the responsibility of the user.
User defined program after prepare phase
The prepare phase results in two files residing in the current library and in a spool
file. The data files are AWMB (containing all members found in the user part of
the library list) and AWOBJD (containing all objects of type *DSPF found in the
user part of the library list)
A common use of the Collector Program Flow at this stage would be to inspect
the spool file (and take appropriate action) or to remove certain members from
the AWMB file, or to remove certain objects from the AWOBJD file.
User defined program after extract phase
The extract phase results in two files, both residing in the current library. The
data files are AWFMT (containing all separate formats found) and AWTXT
(containing all texts and fields found).

216 J Walk Developer Guide


At this stage, the Collector Program Flow can be used to create your own screen
combinations or add some conditional text to the picture formats.
User defined program after combine
The extract phase results in two files, both residing in the current library. The
data files are AWFMT (still containing all separate formats, but also containing
the combinations created by the standard procedure or by the "user defined
program after extract") and AWTXT (still containing all texts and fields found).
After this stage, the Collector Program Flow can be inspected for all screen
combinations in order to add, change or delete them from the AWHOST.

Proposals to Influence the Collector


Proposals enable you to influence the results of the Collector. Proposals are
example programs that you can customize and add to the Collector program flow
by choosing to access User options (F18) and then selecting the Collector
program flow menu option. A dialog will be displayed which enables you to
enter the name of a program (and the library) to be executed after the completion
of a Collector phase.
Proposals affect the results contained in the AWHOST file. Collector proposals
affect AWHOST results relating to:

handling of fields, messages and texts

handling of subfiles and attributes

collecting of code generated display files (DSPF)

listing specific source members to collect

halting the collector during processing

handling of specified record formats (for removal or combination of


pictures)

launching of two proposals during a processing phase.

Proposals are described and contained within the SEACOL/PROPOSALS


source file.
Proposals influence the Collector results by modifying the interim work files
produced after each phase of the Collector run. Consequently, it is necessary that
you are familiar with RPG, the AS/400 development environment and your own
application in order to make use of Proposals.
Use these proposals as example programs to copy and change based on your
needs. Keep in mind that these Proposal programs may change in future releases
of the Collector.

Using the SEAGULL Collector

217

Note: A complete description of the purpose of each proposal can also be found
in the associated source member.
Collector Proposal Descriptions
All programs in the file <PROPOSALS> included with the Collector are listed
below.
Proposals listed here are grouped according to an AS/400 "element" of the
display files which you want to affect during the Collector process. A complete
description can be found in the associated source member.
Note: These proposals should be viewed as example programs you can model
your needs around. RPG knowledge is essential to actually inspect and
manipulate these proposals into your own Collector programs.
Each description includes the proposal name, program type, and at which
process phase it should be executed.
Handling of fields, messages and texts
Proposals can be used for changing attributes, etc. at the field-level. Examine
these proposals when interested in changing field (text-based) attributes such
static text into messages; messages into static text, and so on.
APPL011, RPG, Extract
This proposal examines source members for output fields and replaces the
output field with the related text. The name of the text file is hardcoded to
<F9220>. Output fields have names with the format VTXxxx and have a
three digit number, starting with 001. So, the first output field name is
VTX001. This proposal represents a specific manipulation and will require
modification for your use.
LIKEMSG, RPG, Combine
Use this proposal to specify all text fields are coded as messages
<MSGID>. This proposal can be used to create one set of language
independent panels (containing message references) which can refer to
externalized, translated literal message files for use in supporting various
national languages.
SCREENID, RPG, Combine
This program specifies screen title fields to become fixed text. Use this
program to improve the results of screen identification, particularly when
your application texts are coded as externalized <MSGIDs>. The program
searches for each occurrence of the I/O field <##PGM>, on row one,
position two, and when found, the program specifies field to be fixed text
(containing the first seven characters of the DSPF name.

218 J Walk Developer Guide


The converted field provides a unique identifier within your screens.
This program can also assist in identifying applications created using
SYNON development tools.
Handling of subfiles and attributes
Proposals can be applied to re-assign subfile attributes to field definitions under
the appropriate circumstances.
APPL031, RPG, Extract
Rows that are coded as individual rows but appear as a subfile, have their
attributes changed to that of a subfile in the resulting <AWHOST> file.
There must be at least four rows of similar appearance.
APPL032, RPG, Extract
This program looks for sets of two rows that are similar in appearance and
changes their attributes in the <AWHOST> file to that of a subfile with
two rows per record. There must be at least four sets of rows of similar
appearance.
APPL033, RPG, Extract
This program looks for sets of three rows that are similar in appearance
and changes their attributes in the <AWHOST> file to that of a subfile
with three rows per record. There must be at least three sets of rows of
similar appearance.
APPL034, RPG, Extract
This program looks for sets of four rows that are similar in appearance and
changes their attributes in the <AWHOST> file to that of a subfile with
four rows per record. There must be at least three sets of rows of similar
appearance.
Collecting of code generated display files DSPF
AS/400 display files can be created by "code generators." When such a tool is
used to develop your AS/400 displays, certain deficits may need to be corrected
before you run the Collector. Study these example proposals in order to see
LANSA created display file deficits be corrected.
LANSA, CLP, Extract
This proposal reads DSPF sources that were generated with the LANSA
code generator. All formats are then read and placed in the <PRECOL>
file. This proposal was created for a specific development environment (I.e.
LANSA) and is not suitable for general use.

Using the SEAGULL Collector

219

LANSA2, CLP, Extract


This proposal reads the DSPF sources created by the LANSA code
generator. This proposal is used in conjunction with LANSA. The first
time that you execute the Collector process with LANSA DSPF sources,
and the <LANSA> proposal to fill the <PRECOL> file. After that, always
use the <LANSA2> proposal. This way, you can edit the <PRECOL> file
and keep these combined format definitions.
TESTDSPF RPG Prepare
Tests if source members (with no type identifier) are of type <DSPF>.
Occasionally, generated code is created without the required DSPF type
identifier. Use this program to inspect (particularly LANSA generated
code) display files (and when identified) set the type to "DSPF".
Listing specific source members to collect
When you want to select a specific set of source members for Collecting, you may
submit a file (list) to limit the scope of the Collector run.
APPL070, RPG, Prepare
This proposal will only collect those members that are listed in the
<MBRONLY> file. This file must be located in the library list or,
preferably, in the working library. If the file <MBRONLY> is not found,
the Collector process will halt with an error CPF4101.
Halting the collector during processing
If you need to halt the Collector run (while investigating a proposal, etc.), apply
the following proposal to do so.
ERROR, RPG, Any phase
This proposal temporarily halts the Collector process after the specified
phase. To continue processing, enter "I". To stop processing, enter "C".
Handling of specified record formats for removal or combination of
pictures
In the Collector process, record formats are a basis for identifying uniqueness
amongst AS/400 display files. In order to control record formats and how to
handle them, study these proposals and the record format operations they
perform.
EQUAL10, RPG, Extract
This proposal specifies record formats from the same display file (DSPF),
where the six left-most characters are matching, to be grouped together in a
single picture.

220 J Walk Developer Guide


APPL080, RPG, Extract
This proposal removes formats found in the <FMTREMOV> file. This
file must be located in the library list or, preferably, in the working library.
If the file <FMTREMOV> is not found, the Collector process will end
with an error CPF4101.
APPL021, RPG, Extract
Used in conjunction with <PRECOLNW> to combine record formats.
Formats that start with the SLNO(*VAR) keyword are not combined and
create their own record format. The last eight characters of the original
record format name will be used as the name of the new record format.
APPL061, RPG, Extract
Used in conjunction with <PRECOL60> to combine record formats.
Formats that start with the SLNO(*VAR) keyword are not combined and
create their own record format. The last eight characters of the original
record format name will be used as the name of the new record format.
MAKEPRECOL, CLP, Combine
This proposal fills the file <PRECOLNW> with all possible record format
combinations, which equals the result file AWHOST. Combinations found
in <PRECOLNW> will automatically be added to AWHOST. You may
want to run this program once and then maintain <PRECOLNW>
manually.
PRECOLTOOL, CLP, Before Collector Run
This proposal should be run before the Collector process is started. It
provides a means to create your own combinations of record formats into
pictures. The utility allows you to easily maintain the <PRECOLNW> file.
APPL040, RPG, Extract
Generates one record format for each possible variation in a pseudowindow of varying height. This enables each variation to be recognized as a
popup window within the Picture Album. This proposal was created for a
single customer and is not suitable for general use.
Launching of two proposals during a processing phase
APPL050, CLP, Extract
This proposal is used to execute two proposals that must execute during
the same Collector phase. In this example, the two proposals that are
executed are <APPL031> and <APPL040>.

Using the SEAGULL Collector

221

AS/400 DDS Keyword Listing


Below you will find an overview of keywords, that can be used in the DDS source
for display files. Next to the keyword is stated the action taken by the Collector.
ALARM No action taken.
ALIAS No action taken.
ALTHELPThe enabled key is passed.
ALTNAME No action taken.
ALTPAGEDWNThe enabled key is passed.
ALTPAGEUP The enabled key is passed.
ALWGPH No action taken.
ALWROL No action taken.
ASSUME No action taken.
AUTO The appropriate attributes are passed.
BLANKS No action taken.
BLINK No action taken.
BLKFOLD No action taken.
CAxx Enabled function key is passed.
CFxx Enabled function key is passed.
CHANGE No action taken.
CHCACCEL No action taken.
CHCAVAIL No action taken. Also see SNGCHCFLD and MLTCHCFLD.
CHCCTL No action taken. Also see SNGCHCFLD and MLTCHCFLD.
CHCSLT No action taken. Also see SNGCHCFLD and MLTCHCFLD.
CHCUNAVAIL No action taken. Also see SNGCHCFLD and MLTCHCFLD.
CHECK The appropriate attributes are passed.
CHGINPDFT or CHGINPDFT The appropriate attributes are passed.
CHKMSGID See keyword ERRMSGID.
CHOICE No action taken. Also see SNGCHCFLD and MLTCHCFLD.
CHRID No action taken.

222 J Walk Developer Guide


CLEAR Enabled CLEAR key is passed.
CLRL*ALL CLRL*END CLRL*NO CLRLxx The record format containing
this keyword will be handled according to the "CLRL" parameters set in the User
Options.
CMP No action taken.
CNTFLD The field will be passed.
COLOR The color specified is passed.
COMP No action taken.
CSRINPONLY No action taken.
CSRLOC No action taken.
DATE Date field is passed.
DFT This may be the default value on an input field, which is passed. It may also
be a constant.
DFTVAL This is the default value on an output- or both-field, which is passed.
DLTCHK No action taken.
DLTEDT No action taken.
DSPATR The attributes BL (blink), CS (column separator), HI (high intensity),
ND (non display), PC (position cursor), PR (protect), RI (reversed image) and UL
(underline) are passed. All other valid attributes are omitted.
DSPMOD The appropriate screen sizes are passed.
DSPRL No action taken.
DSPSIZ The appropriate screen sizes are passed.
DUP Enabled DUP key is passed.
EDTCDE No action taken. The edit code used is found in the file field
description of the object.
EDTMSK No action taken.
EDTWRD No action taken. The edit word used is found in the file field
description of the object.
ENTFLDATR or ENTFLDATR The appropriate attributes are passed.
ERASE No action taken.
ERASEINP or ERASEINP No action taken.
ERRMSG The message is passed.

Using the SEAGULL Collector

223

ERRMSGID The message is passed.


ERRSFL This keyword may have its influence on the location of the messages.
FLDCSRPRG No action taken.
FLTFIXDEC No action taken.
FLTPCN No action taken.
FRCDTA No action taken.
GETRETAIN No action taken.
GRDATR No action taken.
GRDBOX No action taken.
GRDCLR No action taken.
GRDLIN No action taken.
GRDRCD No action taken.
HELP Enabled HELP key is passed.
HLPARA No action taken.
HLPBDY No action taken
HLPCLR No action taken.
HLPCMDKEY No action taken.
HLPDOC No action taken.
HLPEXCLD No action taken.
HLPFULL No action taken.
HLPID No action taken.
HLPPNLGRP No action taken.
HLPRCD No action taken.
HLPRTNNo action taken.
HLPSCHIDX No action taken.
HLPSEQ No action taken.
HLPSHELF No action taken.
HLPTITLE No action taken.
HOME Enabled HOME key is passed.

224 J Walk Developer Guide


INDARA No action taken.
INDTXT No action taken.
INVITE No action taken.
INZINP No action taken.
INZRCD No action taken.
KEEP No action taken.
LOCK No action taken.
LOGINP No action taken.
LOGOUT No action taken.
LOWER The LC attribute is passed.
MDTOFF No action taken.
MLTCHCFLD The field and literals will be passed simulating the enhanced
display *NO option.
MNUBAR No action taken.
MNUBARCHC No action taken.
MNUBARDSP No action taken.
MNUBARSEP No action taken.
MNUBARSW No action taken.
MNUCNL No action taken.
MOUBTN No action taken.
MSGALARM No action taken.
MSGCON The message is passed.
MSGID The message is passed.
MSGLOC The row where error messages are displayed is passed.
NOCCSID No action taken.
OPENPRT No action taken.
OVERLAY The record format is marked as "combine capable".
OVRATR No action taken.
OVRDTA No action taken.
PAGEDOWN The enabled PAGEDOWN key is passed.

Using the SEAGULL Collector

225

PAGEUP The enabled PAGEUP key is passed.


PASSRCD No action taken.
PRINT The enabled PRINT key is passed.
PROTECT No action taken.
PSHBTNCHC No action taken.
PSHBTNFLD No action taken.
PULLDOWN No action taken.
PUTOVR The record format is marked as "combine capable".
PUTRETAIN No action taken.
RANGE No action taken.
REF No action taken.
REFFLD No action taken.
RETCMDKEY No action taken.
RETKEY No action taken.
RETLCKSTS No action taken.
RMVWDW No action taken.
ROLLDOWN The enabled ROLLDOWN key is passed.
ROLLUP The enabled ROLLUP key is passed.
RTNCSRLOC No action taken.
RTNDTA No action taken.
SETOF No action taken.
SETOFF No action taken.
SFL The record format defined by this keyword is always combined with its
associated subfile control record format. The Collector will send all fields an/or
texts in the subfile for each row of a subfile page.
SFLCHCCTL No action taken.
SFLCLR No action taken.
SFLCSRPRG No action taken.
SFLCSRRRN No action taken.
SFLCTL See keyword SFL.

226 J Walk Developer Guide


SFLDLT No action taken.
SFLDROP Two pictures will be generated, one folded and one unfolded.
SFLDSP No action taken.
SFLDSPCTL The appropriate "+", "MORE" and "BOTTOM" literals are
passed.
SFLEND The appropriate "+", "MORE" and "BOTTOM" literals are passed.
SFLENTER No action taken.
SFLFOLD Two pictures will be generated, one folded and one unfolded.
SFLINZ No action taken.
SFLLIN The number of blanks in between two records in the subfile is passed.
SFLMLTCHC No action taken.
SFLMODE No action taken
SFLMSG The message is passed.
SFLMSGID The message is passed.
SFLMSGKEY No action taken.
SFLMSGRCD The message is passed.
SFLNXTCHG No action taken.
SFLPAG The number of subfile rows for a page is used. See keyword SFL.
SFLPGMQ See keyword SFLMSGRCD().
SFLRCDNBR No action taken.
SFLRNA No action taken.
SFLROLVAL No action taken.
SFLRTNSEL No action taken.
SFLCSROLL No action taken.
SFLSIZ See keyword SFLPAG()
SFLSNGCHC No action taken.
SLNO*VAR The start row for this record format is unknown. Therefore the
record format is marked as "not combine" capable.
SLNOxx The start row for this record format is taken into account.

Using the SEAGULL Collector

227

SNGCHCFLD The field and literals will be passed simulating the enhanced
display *NO option.
SYSNAME The "system name" field is passed.
TEXT No action taken.
TIME The "time" field is passed.
UNLOCK No action taken.
USER The "user" field is passed.
USRDFN No action taken.
USRDSPMGT Unless stated otherwise the CLRL(*NO) is assumed for each
record format.
USRRSTDSP No action taken.
VALNUM No action taken.
VALUES No action taken.
VLDCMDKEY No action taken.
WDWBORDER The window borders (color, attributes and characters) are
passed.
WDWTITLE No action taken.
WINDOW The window size is passed. The record format is marked as "not
combine" capable.
WRDWRAP No action taken.

Collector Work File Layouts


This section describes layouts of the Collector run working files. The work files
hold the result each phase of the Collector process. Each file can be manipulated
by user programs and proposals to affect the final outcome of the Collector run.
The AWHOST stores the final results.
A DDS description of all files used is present in the source file QDDSSRC in the
library SEACOL.

AWOBJD - Object Descriptions


5738SS1 V2R3M0 931217
Input parameters
File . . . . . . . .
Library . . . . . .
File Information
File . . . . . . . .
Library . . . . . .
File location . . . .
Externally described

Display File Field Description


. . . . . . . . . . . :
. . . . . . . . . . . :

AWOBJD
SEACOL

.
.
.
.

AWOBJD
SEACOL
*LCL
Yes

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

:
:
:
:

228 J Walk Developer Guide


Number of record formats . .
Type of file . . . . . . . .
File creation date . . . . .
Text 'description'. . . . . .
Record Format Information
Record format . . . . . . . .
Format level identifier . . .
Number of fields . . . . . .
Record length . . . . . . . .
Format text . . . . . . . . .
Field Level Information
Data
Field
Field
Type
Length
ODDCEN
CHAR
1
Field text . . . . . . . .
ODDDAT
CHAR
6
Field text . . . . . . . .
ODDTIM
CHAR
6
Field text . . . . . . . .
ODLBNM
CHAR
10
Field text . . . . . . . .
ODOBNM
CHAR
10
Field text . . . . . . . .
ODOBTP
CHAR
8
Field text . . . . . . . .
ODOBAT
CHAR
10
Field text . . . . . . . .
ODOBFR
CHAR
1
Field text . . . . . . . .
ODOBSZ
PACKED
10 0
Field text . . . . . . . .
ODOBTX
CHAR
50
Field text . . . . . . . .
ODOBLK
CHAR
1
Field text . . . . . . . .
ODOBDM
CHAR
1
Field text . . . . . . . .
ODCCEN
CHAR
1
Field text . . . . . . . .
ODCDAT
CHAR
6
Field text . . . . . . . .
ODCTIM
CHAR
6
Field text . . . . . . . .
ODOBOW
CHAR
10
Field text . . . . . . . .
ODSCEN
CHAR
1
Field text . . . . . . . .
ODSDAT
CHAR
6
Field text . . . . . . . .
ODSTIM
CHAR
6
Field text . . . . . . . .
ODSCMD
CHAR
10
Field text . . . . . . . .
ODSSZE
PACKED
10 0
Field text . . . . . . . .
ODSSLT
ZONED
2 0
Field text . . . . . . . .
ODSDEV
CHAR
10
Field text . . . . . . . .
ODSV01
CHAR
6
Field text . . . . . . . .
ODSV02
CHAR
6
Field text . . . . . . . .
ODSV03
CHAR
6
Field text . . . . . . . .
ODSV04
CHAR
6
Field text . . . . . . . .
ODSV05
CHAR
6
Field text . . . . . . . .
ODSV06
CHAR
6
Field text . . . . . . . .
ODSV07
CHAR
6
Field text . . . . . . . .
ODSV08
CHAR
6
Field text . . . . . . . .
ODSV09
CHAR
6
Field text . . . . . . . .
ODSV10
CHAR
6
Field text . . . . . . . .
ODSVMR
CHAR
1
Field text . . . . . . . .
ODRCEN
CHAR
1
Field text . . . . . . . .
ODRDAT
CHAR
6

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

:
:
:
:

1
Physical
01-11-97
Collector - objectdescriptions

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

:
:
:
:
:

QLIDOBJD
32E7BF3C24580
85
519
Object description

Buffer
Length
1
. . . .
6
. . . .
6
. . . .
10
. . . .
10
. . . .
8
. . . .
10
. . . .
1
. . . .
6
. . . .
50
. . . .
1
. . . .
1
. . . .
1
. . . .
6
. . . .
6
. . . .
10
. . . .
1
. . . .
6
. . . .
6
. . . .
10
. . . .
6
. . . .
2
. . . .
10
. . . .
6
. . . .
6
. . . .
6
. . . .
6
. . . .
6
. . . .
6
. . . .
6
. . . .
6
. . . .
6
. . . .
6
. . . .
1
. . . .
1
. . . .
6

Buffer
Position
1
. . . :
2
. . . :
8
. . . :
14
. . . :
24
. . . :
34
. . . :
42
. . . :
52
. . . :
53
. . . :
59
. . . :
109
. . . :
110
. . . :
111
. . . :
112
. . . :
118
. . . :
124
. . . :
134
. . . :
135
. . . :
141
. . . :
147
. . . :
157
. . . :
163
. . . :
165
. . . :
175
. . . :
181
. . . :
187
. . . :
193
. . . :
199
. . . :
205
. . . :
211
. . . :
217
. . . :
223
. . . :
229
. . . :
235
. . . :
236
. . . :
237

Field
Column
Usage
Heading
Both
Display century
Display century
Both
Display date
Display date: format- Job date format
Both
Display time
Display time
Both
Library
Library
Both
Object
Object
Both
Object type
Object type
Both
Object attribute
Object attribute
Both
Storage freed
Storage freed: 0-not freed,1-freed
Both
Object size
Object size
Both
Text description
Text description
Both
Object locked
Object locked: 0-not locked,1-locked
Both
Object damaged
Object damaged: 0-not damaged,1-damaged
Both
Creation century
Creation century
Both
Creation date
Creation date: format- mmddyy
Both
Creation time
Creation time
Both
Object owner
Object owner
Both
Save century
Save century
Both
Save date
Save date: format- mmddyy
Both
Save time
Save time
Both
Save command
Save command
Both
Saved size
Saved size
Both
Starting slot
Starting slot
Both
Save device
Save device
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
Saved volume
Saved volume
Both
More volumes
More volumes: 0-no more,1-more
Both
Restore century
Restore century
Both
Restore date

Using the SEAGULL Collector


Field
ODRTIM
Field
ODCPFL
Field
ODSRCF
Field
ODSRCL
Field
ODSRCM
Field
ODSRCC
Field
ODSRCD
Field
ODSRCT
Field
ODCMNM
Field
ODCMVR
Field
ODOBLV
Field
ODUMOD
Field
ODPPNM
Field
ODPPVR
Field
ODPCNR
Field
ODAPAR
Field
ODSSQN
Field
ODLCEN
Field
ODLDAT
Field
ODLTIM
Field
ODSFIL
Field
ODSFLB
Field
ODASP
Field
ODLBL
Field
ODPTFN
Field
ODOBSY
Field
ODCRTU
Field
ODCRTS
Field
ODUUPD
Field
ODUCEN
Field
ODUDAT
Field
ODUCNT
Field
ODTCEN
Field
ODTDAT
Field
ODODMN
Field
ODCPVR
Field
ODCVRM
Field
ODPVRM
Field
ODCPRS
Field
ODOASP
Field
ODAAPI
Field
ODAPIC

text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
ZONED
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
ZONED
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
PACKED
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR

. . . . . .
6
. . . . . .
6
. . . . . .
10
. . . . . .
10
. . . . . .
10
. . . . . .
1
. . . . . .
6
. . . . . .
6
. . . . . .
7
. . . . . .
6
. . . . . .
8
. . . . . .
1
. . . . . .
7
. . . . . .
6
. . . . . .
5
. . . . . .
6
. . . . . .
4 0
. . . . . .
1
. . . . . .
6
. . . . . .
6
. . . . . .
10
. . . . . .
10
. . . . . .
2 0
. . . . . .
17
. . . . . .
7
. . . . . .
8
. . . . . .
10
. . . . . .
8
. . . . . .
1
. . . . . .
1
. . . . . .
6
. . . . . .
5 0
. . . . . .
1
. . . . . .
6
. . . . . .
2
. . . . . .
6
. . . . . .
6
. . . . . .
6
. . . . . .
1
. . . . . .
1
. . . . . .
1
. . . . . .
1

. . . .
6
. . . .
6
. . . .
10
. . . .
10
. . . .
10
. . . .
1
. . . .
6
. . . .
6
. . . .
7
. . . .
6
. . . .
8
. . . .
1
. . . .
7
. . . .
6
. . . .
5
. . . .
6
. . . .
4
. . . .
1
. . . .
6
. . . .
6
. . . .
10
. . . .
10
. . . .
2
. . . .
17
. . . .
7
. . . .
8
. . . .
10
. . . .
8
. . . .
1
. . . .
1
. . . .
6
. . . .
3
. . . .
1
. . . .
6
. . . .
2
. . . .
6
. . . .
6
. . . .
6
. . . .
1
. . . .
1
. . . .
1
. . . .
1

. . . :
243
. . . :
249
. . . :
255
. . . :
265
. . . :
275
. . . :
285
. . . :
286
. . . :
292
. . . :
298
. . . :
305
. . . :
311
. . . :
319
. . . :
320
. . . :
327
. . . :
333
. . . :
338
. . . :
344
. . . :
348
. . . :
349
. . . :
355
. . . :
361
. . . :
371
. . . :
381
. . . :
383
. . . :
400
. . . :
407
. . . :
415
. . . :
425
. . . :
433
. . . :
434
. . . :
435
. . . :
441
. . . :
444
. . . :
445
. . . :
451
. . . :
453
. . . :
459
. . . :
465
. . . :
471
. . . :
472
. . . :
473
. . . :
474

Restore date: format- mmddyy


Both
Restore time
Restore time
Both
System level
System level
Both
SRC file name
Source file name
Both
SRC file library
Source file library
Both
SRC file member
Source file member
Both
SRC change century
Source change century
Both
SRC change date
Source change date: format- yymmdd
Both
SRC change time
Source change time
Both
Compiler name
Compiler name
Both
Compiler level
Compiler level
Both
Object level
Object level
Both
User modified
User modified: 0-not modified,1-modified
Both
LICPGM name
LICPGM name
Both
LICPGM level
LICPGM level
Both
PTF number
PTF number
Both
APAR ID
APAR ID
Both
Sequence number
Sequence number
Both
Change century
Change century
Both
Change date
Change date: format- mmddyy
Both
Change time
Change time
Both
Save file
Save file
Both
Save file library
Save file library
Both
ASP number
ASP number
Both
File label
File label
Both
PTF ID
PTF ID
Both
System name
System name
Both
Created by user
Created by user
Both
System created on
System created on
Both
Usage updated
Usage updated: Y-Yes, N-No
Both
Last Used century
Last used century
Both
Last Used date
Last used date: format- mmddyy
Both
Days Used count
Days used count
Both
Reset century
Reset century
Both
Reset date
Reset date: format- mmddyy
Both
Object domain
Object domain: *S - System, *U - User
Both
System version
System version
Both
Compiler version
Compiler version
Both
LICPGM version
LICPGM version
Both
Compression status
Compression status
Both
Overflowed ASP
Overflowed ASP: 0-No,1-Yes
Both
Allow API change
Allow change by API: 0-No,1-Yes
Both
Changed by API

229

230 J Walk Developer Guide


Field
ODUATR
Field
ODACEN
Field
ODADAT
Field
ODATIM
Field
ODAUDT
Field
ODSIZU
Field
ODBPUN
Field

text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
PACKED
text . .
PACKED
text . .

. . . . . .
10
. . . . . .
1
. . . . . .
6
. . . . . .
6
. . . . . .
10
. . . . . .
10 0
. . . . . .
10 0
. . . . . .

. . . .
10
. . . .
1
. . . .
6
. . . .
6
. . . .
10
. . . .
6
. . . .
6
. . . .

. . . :
475
. . . :
485
. . . :
486
. . . :
492
. . . :
498
. . . :
508
. . . :
514
. . . :

Changed by API: 0-not changed,1-changed


Both
User-defined attribute
User-defined attribute
Both
Save active century
Save active century
Both
Save active date
Save active date: format- mmddyy
Both
Save active time
Save active time
Both
Auditing value
Object auditing value
Both
Object size in units
Object size in units
Both
Bytes per unit
Bytes per unit

AWMB - Member Listing


5738SS1 V2R3M0 931217
Display File
Input parameters
File . . . . . . . . . . . . . . . .
Library . . . . . . . . . . . . . .
File Information
File . . . . . . . . . . . . . . . .
Library . . . . . . . . . . . . . .
File location . . . . . . . . . . . .
Externally described . . . . . . . .
Number of record formats . . . . . .
Type of file . . . . . . . . . . . .
File creation date . . . . . . . . .
Text 'description'. . . . . . . . . .
Record Format Information
Record format . . . . . . . . . . . .
Format level identifier . . . . . . .
Number of fields . . . . . . . . . .
Record length . . . . . . . . . . . .
Format text . . . . . . . . . . . . .
Field Level Information
Data
Field Buffer
Field
Type
Length Length
MLRCEN
CHAR
1
1
Field text . . . . . . . . . . . .
MLRDAT
CHAR
6
6
Field text . . . . . . . . . . . .
MLRTIM
CHAR
6
6
Field text . . . . . . . . . . . .
MLFILE
CHAR
10
10
Field text . . . . . . . . . . . .
MLLIB
CHAR
10
10
Field text . . . . . . . . . . . .
MLFTYP
CHAR
1
1
Field text . . . . . . . . . . . .
MLFILA
CHAR
4
4
Field text . . . . . . . . . . . .
MLMXD
CHAR
3
3
Field text . . . . . . . . . . . .
MLFATR
CHAR
6
6
Field text . . . . . . . . . . . .
MLSYSN
CHAR
8
8
Field text . . . . . . . . . . . .
MLASP
PACKED
3 0
2
Field text . . . . . . . . . . . .
MLRES
CHAR
4
4
Field text . . . . . . . . . . . .
MLNOMB
PACKED
5 0
3
Field text . . . . . . . . . . . .
MLNAME
CHAR
10
10
Field text . . . . . . . . . . . .
MLNRCD
PACKED
10 0
6
Field text . . . . . . . . . . . .
MLNDTR
PACKED
10 0
6
Field text . . . . . . . . . . . .
MLSIZE
PACKED
10 0
6
Field text . . . . . . . . . . . .
MLSIZ
MLSEU
CHAR
4
4
Field text . . . . . . . . . . . .
S/38
MLCCEN
CHAR
1
1
Field text . . . . . . . . . . . .
MLCDAT
CHAR
6
6
Field text . . . . . . . . . . . .
MLCHGC
CHAR
1
1
Field text . . . . . . . . . . . .

Field Description
. . . :
. . . :

AWMB
SEACOL

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

:
:
:
:
:
:
:
:

AWMB
SEACOL
*LCL
Yes
1
Physical
01-11-97
Collector - memberlist to treat

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

:
:
:
:
:

QWHFDML
51852FE30C648
31
201
DSPFD format for TYPE *MBRLIST

Buffer
Position
1
. . . :
2
. . . :
8
. . . :
14
. . . :
24
. . . :
34
. . . :
35
. . . :
39
. . . :
42
. . . :
48
. . . :
56
. . . :
58
. . . :
62
. . . :
65
. . . :
75
. . . :
81
. . . :
87
. . . :

Field
Column
Usage
Heading
Both
Retrieval century
Retrieval century: 0=20th, 1=21st
Both
Retrieval date
Retrieval date: year/month/day
Both
Retrieval time
Retrieval time: hour/minute/second
Both
File
File
Both
Library
Library
Both
Type of file
P=PF, L=LF, R=DDM PF, S=DDM LF
Both
File attribute
File attribute: *PHY or *LGL
Both
Reserved
Reserved
Both
File attribute
File attribute: PF, LF, PF38, or LF38
Both
System name
System Name (Source System,if file DDM)
Both
ASP auxiliary storage pool ID
Auxiliary storage pool ID: 1=System ASP
Both
Reserved
Reserved
Both
Number of members
Number of members
Both
Member
Member
Both
Number of records
Current number of records
Both
Deleted records
Number of deleted records
Both
Data Space size
Data space and index size in bytes, -1 = See

93
Both
Source type
. . . : Source type for S/38 View as it appeared on
97
Both
Member creation century
. . . : Member creation century: 0=20th, 1=21st
98
Both
Member creation date
. . . : Member creation date: year/month/day
104
Both
Last change century
. . . : Last change century: 0=20th, 1=21st

Using the SEAGULL Collector


MLCHGD
Field
MLCHGT
Field
MLMTXT
Field
MLSEU2
Field
MLUCEN
Field
MLUDAT
Field
MLUCNT
Field
MLTCEN
Field
MLTDAT
Field
MLSIZ2
Field

CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
PACKED
text . .
CHAR
text . .
CHAR
text . .
PACKED
text . .

6
. . . . . .
6
. . . . . .
50
. . . . . .
10
. . . . . .
1
. . . . . .
6
. . . . . .
5 0
. . . . . .
1
. . . . . .
6
. . . . . .
15 0
. . . . . .

6
. . . .
6
. . . .
50
. . . .
10
. . . .
1
. . . .
6
. . . .
3
. . . .
1
. . . .
6
. . . .
8
. . . .

105
. . . :
111
. . . :
117
. . . :
167
. . . :
177
. . . :
178
. . . :
184
. . . :
187
. . . :
188
. . . :
194
. . . :

Both
Last change date
Last change date: year/month/day
Both
Last change time
Last change time: hour/minute/second
Both
TEXT 'description'
Text 'description'
Both
Source type
Source type
Both
Last Used century
Last Used Century: 0=20th, 1=21st
Both
Last Used date
Last Used Date: year/month/day
Both
Days Used Count
Days Used Count
Both
Usage Data reset century
Usage Data Reset Century: 0=20th, 1=21st
Both
Usage Data reset date
Usage Data Reset Date: year/month/day
Both
Data Space size
Data space and index size in bytes

AWFMT - Format Attributes


5738SS1 V2R3M0 931217
Display File Field Description
Input parameters
File . . . . . . . . . . . . . . . . . . . : AWFMT
File Information
File . . . . . . . . . . . . . . . . . . . : AWFMT
File location . . . . . . . . . . . . . . . : *LCL
Externally described . . . . . . . . . . . : Yes
Number of record formats . . . . . . . . . :
1
Type of file . . . . . . . . . . . . . . . : Physical
File creation date . . . . . . . . . . . . : 01-11-97
Text 'description'. . . . . . . . . . . . . :
Collector - format attributes
Record Format Information
Record format . . . . . . . . . . . . . . . : AWFREC
Format level identifier . . . . . . . . . . : 426D5417B691F
Number of fields . . . . . . . . . . . . . :
47
Record length . . . . . . . . . . . . . . . :
225
Field Level Information
AWFFIL
CHAR
10
10
1
Both
FILE
Field text . . . . . . . . . . . . . . . : Object file name
AWFLIB
CHAR
10
10
11
Both
LIBRAR
Field text . . . . . . . . . . . . . . . : Library name
AWFFRM
CHAR
10
10
21
Both
FRMNAM
Field text . . . . . . . . . . . . . . . : Record format name
AWFSIZ
ZONED
3 0
3
31
Both
DSPWID
Field text . . . . . . . . . . . . . . . : Page size width of record format
AWFHGT
ZONED
3 0
3
34
Both
DSPHGT
Field text . . . . . . . . . . . . . . . : Page size heigth of record format
AWFGRP
PACKED
5 0
3
37
Both
GRPHCS
Field text . . . . . . . . . . . . . . . : Graphic character set
AWFCOD
PACKED
5 0
3
40
Both
CODPAG
Field text . . . . . . . . . . . . . . . : Code page
AWFFNC
CHAR
32
32
43
Both
ENABLE
Field text . . . . . . . . . . . . . . . : Enabled function keys for record format
AWFSLN
ZONED
3 0
3
75
Both
STRLIN
Field text . . . . . . . . . . . . . . . : Start row record format
AWFELN
ZONED
3 0
3
78
Both
ENDLIN
Field text . . . . . . . . . . . . . . . : Last row record format
AWFOVL
ZONED
1 0
1
81
Both
AWOVRL
Field text . . . . . . . . . . . . . . . : Overlay code record format 0/1=N/Y
AWFINC
ZONED
1 0
1
82
Both
AWFINC
Field text . . . . . . . . . . . . . . . : Include code for combine
0 = record format contains WINDOW keyword
1 = record format contains SLNO(*VAR) keyword
2 = record format contains CLRL(*NO) keyword
3 = record format contains CLRL(xx) keyword, not to bottom row
4 = record format contains CLRL(*NO) keyword, only bottom row
5 = record format contains CRLR(xx) keyword, up to bottom row
6 = record format contains CLRL(xx) keyword, from start up to bottom row
7 = record format contains keyword CLRL(*ALL) keyword
8 = record format does not contain any keyword mentioned above
AWFCLN
ZONED
3 0
3
83
Both
LINE
Field text . . . . . . . . . . . . . . . : Number of rows to clear
AWFWDW
ZONED
1 0
1
86
Both
AWWDW
Field text . . . . . . . . . . . . . . . : Record format is window 0/1 = N/Y
AWFMSL
ZONED
3 0
3
87
Both
LINE
Field text . . . . . . . . . . . . . . . : Row for message location
AWFFM1
CHAR
10
10
90
Both
FRMNAM
Field text . . . . . . . . . . . . . . . : Record format name 1
AWFSL1
ZONED
3 0
3
100
Both
LINE
Field text . . . . . . . . . . . . . . . : Start row record format 1
AWFEL1
ZONED
3 0
3
103
Both
LINE

231

232 J Walk Developer Guide


Field
AWFOV1
Field
AWFFM2
Field
AWFSL2
Field
AWFEL2
Field
AWFOV2
Field
AWFFM3
Field
AWFSL3
Field
AWFEL3
Field
AWFOV3
Field
AWFFM4
Field
AWFSL4
Field
AWFEL4
Field
AWFOV4
Field
AWFFM5
Field
AWFSL5
Field
AWFEL5
Field
AWFOV5
Field
AWFFM6
Field
AWFSL6
Field
AWFEL6
Field
AWFOV6
Field
AWFFM7
Field
AWFSL7
Field
AWFEL7
Field
AWFOV7
Field
AWFFM8
Field
AWFSL8
Field
AWFEL8
Field
AWFOV8
Field

text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .

. . . . . .
1 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
1 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
1 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
1 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
1 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
1 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
1 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
1 0
. . . . . .

. . . .
1
. . . .
10
. . . .
3
. . . .
3
. . . .
1
. . . .
10
. . . .
3
. . . .
3
. . . .
1
. . . .
10
. . . .
3
. . . .
3
. . . .
1
. . . .
10
. . . .
3
. . . .
3
. . . .
1
. . . .
10
. . . .
3
. . . .
3
. . . .
1
. . . .
10
. . . .
3
. . . .
3
. . . .
1
. . . .
10
. . . .
3
. . . .
3
. . . .
1
. . . .

. . . :
106
. . . :
107
. . . :
117
. . . :
120
. . . :
123
. . . :
124
. . . :
134
. . . :
137
. . . :
140
. . . :
141
. . . :
151
. . . :
154
. . . :
157
. . . :
158
. . . :
168
. . . :
171
. . . :
174
. . . :
175
. . . :
185
. . . :
188
. . . :
191
. . . :
192
. . . :
202
. . . :
205
. . . :
208
. . . :
209
. . . :
219
. . . :
222
. . . :
225
. . . :

Last row record format 1


Both
AWOVRL
Overlay code record format
Both
FRMNAM
Record format name 2
Both
LINE
Start row record format 2
Both
LINE
Last row record format 2
Both
AWOVRL
Overlay code record format
Both
FRMNAM
Record format name 3
Both
LINE
Start row record format 3
Both
LINE
Last row record format 3
Both
AWOVRL
Overlay code record format
Both
FRMNAM
Record format name 4
Both
LINE
Start row record format 4
Both
LINE
Last row record format 4
Both
AWOVRL
Overlay code record format
Both
FRMNAM
Record format name 5
Both
LINE
Start row record format 5
Both
LINE
Last row record format 5
Both
AWOVRL
Overlay code record format
Both
FRMNAM
Record format name 6
Both
LINE
Start row record format 6
Both
LINE
Last row record format 6
Both
AWOVRL
Overlay code record format
Both
FRMNAM
Record format name 7
Both
LINE
Start row record format 7
Both
LINE
Last row record format 7
Both
AWOVRL
Overlay code record format
Both
FRMNAM
Record format name 8
Both
LINE
Start row record format 8
Both
LINE
Last row record format 8
Both
AWOVRL
Overlay code record format

AWTXT - Single DDS Texts


5738SS1 V3R310 951115
Display File
Input parameters
File . . . . . . . . . . . . . . . .
Library . . . . . . . . . . . . . .
File Information
File . . . . . . . . . . . . . . . .
Library . . . . . . . . . . . . . .
File location . . . . . . . . . . . .
Externally described . . . . . . . .
Number of record formats . . . . . .
Type of file . . . . . . . . . . . .
File creation date . . . . . . . . .
Text 'description'. . . . . . . . . .
Record Format Information
Record format . . . . . . . . . . . .
Format level identifier . . . . . . .
Number of fields . . . . . . . . . .
Record length . . . . . . . . . . . .
Field Level Information
AWLIBR
CHAR
10
10
Field text . . . . . . . . . . . .
AWFILE
CHAR
10
10

Field Description
. . . :
. . . :

AWTXT
SEACOL

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

:
:
:
:
:
:
:
:

AWTXT
SEACOL
*LCL
Yes
1
Physical
01-11-97
Collector - single DDS-texts to PC

.
.
.
.

.
.
.
.

.
.
.
.

:
:
:
:

AWTREC
2BE3F0483EC39
22
442

1
Both
. . . : Library name
11
Both

LIBRAR
FILE

Using the SEAGULL Collector


Field
AWMEMB
Field
AWSTNR
Field
AWFORM
Field
AWLINE
Field
AWCOLM
Field
AWFLDN
Field
AWFLDT
Field
AWKIND
Field
AWDLNG
Field
AWLNGT
Field
AWNDEC
Field
AWVARL
Field
AWEXT
Field
AWIND
Field
AWATTR
Field
AWFLIO
Field
AWMSGF
Field
AWLAST
Field
AWMESS
Field
AWSSIZ
Field

text . .
CHAR
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
CHAR
text . .
ZONED
text . .
ZONED
text . .
CHAR
text . .
ZONED
text . .

. . . . . .
10
. . . . . .
6 0
. . . . . .
10
. . . . . .
3 0
. . . . . .
3 0
. . . . . .
10
. . . . . .
1
. . . . . .
2 0
. . . . . .
5 0
. . . . . .
5 0
. . . . . .
2 0
. . . . . .
1 0
. . . . . .
80
. . . . . .
10
. . . . . .
20
. . . . . .
1
. . . . . .
1 0
. . . . . .
1 0
. . . . . .
250
. . . . . .
1 0
. . . . . .

. . . .
10
. . . .
6
. . . .
10
. . . .
3
. . . .
3
. . . .
10
. . . .
1
. . . .
2
. . . .
5
. . . .
5
. . . .
2
. . . .
1
. . . .
80
. . . .
10
. . . .
20
. . . .
1
. . . .
1
. . . .
1
. . . .
250
. . . .
1
. . . .

. . . :
21
. . . :
31
. . . :
37
. . . :
47
. . . :
50
. . . :
53
. . . :
63
. . . :
64
. . . :
66
. . . :
71
. . . :
76
. . . :
78
. . . :
79
. . . :
159
. . . :
169
. . . :
189
. . . :
190
. . . :
191
. . . :
192
. . . :
442
. . . :

Source file name


Both
MEMBER
Source member name
Both
STMCNT
Statement counter
Both
FRMNAM
Record format name
Both
LINE
Row for this field or text
Both
COLUMN
Column for this field or text
Both
FIELD
Field name
Both
FLDTYP
Field type B/A/S/P/F/O/J/E/H
Both
AWHKND
Kind of field or text
Both
TXTLE5
Edited length of field or text
Both
TXTLE5
Length for field or text
Both
NRDEC
Number of decimals this field
Both
AWHVAR
Variable length 0/1=N/Y
Both
INDEXT
Extra indicators for field or text
Both
INDUSE
Last indicators for field or text
Both
ATTRIB
Attributes for field or text
Both
IOATTR
IO-attribute I/O/B/N
Both
MSGFOU
Message function found 0/1=N/Y
Both
AWLAST
Sort field for <AWHOST> 0/1=N/Y
Both
MESSAG
Literal text
Both
AWSIZ
0 is primary, 1 is secondary size

AWHOST - Layout
========================================================================
S E A G U L L
B U S I N E S S
S O F T W A R E
C O L L E C T O R
F I L E
L A Y - O U T
V E R S I O N
0 0 0 0 0 0 0 5
R E C O R D
L E N G T H
=
3 1 4
B Y T E S
========================================================================
H O S T - F I L E
T O
S E N D
T O
P C
========================================================================
REF(SEACOL/AWREF)
R AWHREC
HSTFLD
R
REFFLD(HSTFLD)
========================================================================
DISPL
R AWHR00
001
AWHT00
R
REFFLD(RECTYP)
<00> = file header
003
AWNX00
R
REFFLD(RECTYP)
Record type of continuing record
<00> = no continuing record
005
AWHID0
R
REFFLD(LAYOUT)
Layout version <AWHOST> <00000005>
013
AWHDAT
R
REFFLD(CRTCDA)
Creation date C-YY-MM-DD
020
AWHTIM
R
REFFLD(CRTTIM)
Creation time HH-MM-SS
026
FILL01
16A
TEXT('FILLER')
042
AWSRLN
R
REFFLD(AWSRLN)
Serial number of AS/400 creating
050
AWCOMP
30A
TEXT('COMPANY NAME')
Company name (for future use)
080
AWHNR0
R
REFFLD(AWHREC)
Total number of records type 00
090
AWHNR1
R
REFFLD(AWHREC)
Total number of records type 01
100
AWHNR2
R
REFFLD(AWHREC)
Total number of records type 02
110
AWHNR3
R
REFFLD(AWHREC)
Total number of records type 03
120
AWHNR4
R
REFFLD(AWHREC)

233

234 J Walk Developer Guide


Total number of records type 04
REFFLD(AWHREC)
Total number of records type 05
140
AWHNR6
R
REFFLD(AWHREC)
Total number of records type 06
150
AWHNR7
R
REFFLD(AWHREC)
Total number of records type 07
160
AWHNR8
R
REFFLD(AWHREC)
Total number of records type 08
170
AWHNR9
R
REFFLD(AWHREC)
Total number of records type 09
180
AWHVER
R
REFFLD(AWVER)
Collector version
194
DBMARK
R
REFFLD(DBMARK)
DBCS-MARK (FOR INTERNAL USE ONLY)
200
FILL02
115A
TEXT('FILLER')
========================================================================
DISPL
R AWHR01
AWHT01
R
REFFLD(RECTYP)
<01> = Reserved for future use
003
FILL11
250A
TEXT('FILLER')
253
FILL12
62A
TEXT('FILLER')
========================================================================
DISPL
R AWHR02
001
AWHT02
R
REFFLD(RECTYP)
<02> = reserved for future use
003
FILL21
250A
TEXT('FILLER')
253
FILL22
62A
TEXT('FILLER')
========================================================================
DISPL
R AWHR03
001
AWHT03
R
REFFLD(RECTYP)
<03> = picture header
003
AWNX03
R
REFFLD(RECTYP)
Record type of continuing record
<00> = no continuing record
005
AWHID3
R
REFFLD(AWHNAM)
Internal name of picture
013
AWHLIB
R
REFFLD(LIBRAR)
Library of picture
023
AWHMBR
R
REFFLD(MEMBER)
Member name of picture
033
AWHKEY
R
REFFLD(ENABLE)
<0> = not active
<1> = active
<2> = conditional active
byte 01 - 24 = function key 01 - 24
byte 25
= <PRINT> key
byte 26
= <HOME> key
byte 27
= <ROLLUP> key
byte 28
= <ROLLDOWN> key
byte 29
= <CLEAR> key
byte 30
= <HELP> key
byte 31
= <DUP> key
byte 32
= reserved for future use
065
AWHSIZ
R
REFFLD(DSPWID)
Width of picture
068
AWHHGT
R
REFFLD(DSPHGT)
Heigth of picture
071
AWHNRT
R
REFFLD(AWRSCR)
Number of records type 06 for this picture
077
AWGRPH
R
REFFLD(AWGRPH)
Graphical character set this picture
082
AWCODP
R
REFFLD(AWCODP)
Code page this picture
087
AWFMT1
R
REFFLD(FRMNAM)
Record format name 1
097
AWSLN1
R
REFFLD(LINE)
Start row record format 1
100
AWELN1
R
REFFLD(LINE)
Last row record format 1
103
AWOVL1
R
REFFLD(AWOVRL)
Overlay code record format 1
<0> = not, <1> = yes
104
AWFMT2
R
REFFLD(FRMNAM)
Record format name 2
114
AWSLN2
R
REFFLD(LINE)
Start row record format 2
117
AWELN2
R
REFFLD(LINE)
Last row record format 2
120
AWOVL2
R
REFFLD(AWOVRL)
Overlay code record format 2
<0> = not, <1> = yes
121
AWFMT3
R
REFFLD(FRMNAM)
Record format name 3
130

AWHNR5

Using the SEAGULL Collector


131

AWSLN3

134

AWELN3

137

AWOVL3

138

AWFMT4

148

AWSLN4

151

AWELN4

154

AWOVL4

155

AWFMT5

165

AWSLN5

168

AWELN5

171

AWOVL5

172

AWFMT6

182

AWSLN6

185

AWELN6

188

AWOVL6

189

AWFMT7

199

AWSLN7

202

AWELN7

205

AWOVL7

206

AWFMT8

216

AWSLN8

219

AWELN8

222

AWOVL8

223

AWWDW

224

AWWUPP

227

AWWLFT

230

AWWLOW

233

AWWRGT

236

AWWSIZ

239

AWWHGT

242

AWWCH3

250

AWWAT3

REFFLD(LINE)
Start row record format 3
REFFLD(LINE)
Last row record format 3
REFFLD(AWOVRL)
Overlay code record format 3
<0> = not, <1> = yes
REFFLD(FRMNAM)
Record format name 4
REFFLD(LINE)
Start row record format 4
REFFLD(LINE)
Last row record format 4
REFFLD(AWOVRL)
Overlay code record format 4
<0> = not, <1> = yes
REFFLD(FRMNAM)
Record format name 5
REFFLD(LINE)
Start row record format 5
REFFLD(LINE)
Last row record format 5
REFFLD(AWOVRL)
Overlay code record format 5
<0> = not, <1> = yes
REFFLD(FRMNAM)
Record format name 6
REFFLD(LINE)
Start row record format 6
REFFLD(LINE)
Last row record format 6
REFFLD(AWOVRL)
Overlay code record format 6
<0> = not, <1> = yes
REFFLD(FRMNAM)
Record format name 7
REFFLD(LINE)
Start row record format 7
REFFLD(LINE)
Last row record format 7
REFFLD(AWOVRL)
Overlay code record format 7
<0> = not, <1> = yes
REFFLD(FRMNAM)
Record format name 8
REFFLD(LINE)
Start row record format 8
REFFLD(LINE)
Last row record format 8
REFFLD(AWOVRL)
Overlay code record format 8
<0> = not, <1> = yes
REFFLD(AWWDW)
Record format is window
<0> = not
<1> = yes, fixed position
<2> = yes, variable position
REFFLD(BORDER)
Top border of window
<0> = variable top border
REFFLD(BORDER)
Left border of window
<0> = variable left window
REFFLD(BORDER)
Bottom border of window
REFFLD(BORDER)
Right border of window
REFFLD(DSPWID)
Width of window including borders
equals field <AWHSIZ> if no window
REFFLD(DSPHGT)
Heigth of window including borders
equals field <AWHHGT> if no window
REFFLD(AWWCHR)
Border characters of window
REFFLD(ATTRIB)
Attributes of border characters
<0> = not active
<1> = active
<2> = conditional active
byte 01 = color <BLACK>
byte 02 = color <BLUE>
byte 03 = color <BROWN>
byte 04 = color <GREEN>

235

236 J Walk Developer Guide


byte 05 = color <PINK>
byte 06 = color <RED>
byte 07 = color <TURQUOISE>
byte 08 = color <WHITE>
byte 09 = color <YELLOW>
byte 10 = attribute <BLINKING>
byte 11 = attribute <COLUMN SEPARATOR>
byte 12 = attribute <HIGH INTENSITY>
byte 13 = attribute <NON DISPLAY>
byte 14 = attribute <POSITION CURSOR>
byte 15 = attribute <REVERSED IMAGE>
byte 16 = attribute <UNDERLINE>
byte 17 = attribute <PROTECT>
byte 18 = reserved for future use
byte 19 = reserved for future use
byte 20 = reserved for future use
270
AWBUPP
R
REFFLD(BORDER)
Heigth of top border of window
<1> = fixed value
273
AWBLFT
R
REFFLD(BORDER)
Width of left border of window
<3> = fixed value
276
AWBLOW
R
REFFLD(BORDER)
Heigth of bottom border of window
<1> = fixed value
279
AWBRGT
R
REFFLD(BORDER)
Width of right border of window
<3> = fixed value
282
AWMSGL
R
REFFLD(LINE)
MESSAGE LOCATION
285
AWHDRL
R
REFFLD(RITOLE)
FORMAT DISPLAYED RIGHT TO LEFT
<0> = NOT, <1> = YES
286
AWHCRL
R
REFFLD(RITOLE)
CURSOR MOVES RIGHT TO LEFT IN FORMAT
<0> = NOT, <1> = YES
287
AWWDW2
R
REFFLD(AWWDW)
WINDOWFORMAT
COPY FROM FIELD <AWWDW> AT BYTE 223
<0> = NOT
<1> = YES, FIXED POSITION
<2> = YES, VARIABLE POSITION
<3> = YES, VARIABLE POSITION
INCLUDING WINDOW-TITLE
288
FILL3
27A
TEXT('FILLER')
========================================================================
DISPL
R AWHR04
001
AWHT04
R
REFFLD(RECTYP)
<04> = border attributes for window
003
AWNX04
R
REFFLD(RECTYP)
Record type of continuing record
<00> = no continuing record
005
AWWCH4
R
REFFLD(AWWCHR)
Border characters of window
013
AWWAT4
R
REFFLD(ATTRIB)
Attributes of border characters
<0> = not active
<1> = active
<2> = conditional active
byte 01 = color <BLACK>
byte 02 = color <BLUE>
byte 03 = color <BROWN>
byte 04 = color <GREEN>
byte 05 = color <PINK>
byte 06 = color <RED>
byte 07 = color <TURQUOISE>
byte 08 = color <WHITE>
byte 09 = color <YELLOW>
byte 10 = attribute <BLINKING>
byte 11 = attribute <COLUMN SEPARATOR>
byte 12 = attribute <HIGH INTENSITY>
byte 13 = attribute <NON DISPLAY>
byte 14 = attribute <POSITION CURSOR>
byte 15 = attribute <REVERSED IMAGE>
byte 16 = attribute <UNDERLINE>
byte 17 = attribute <PROTECT>
byte 18 = reserved for future use
byte 19 = reserved for future use
byte 20 = reserved for future use
033
FILL41
32A
TEXT('FILLER')
065
FILL42
250A
TEXT('FILLER')
========================================================================
DISPL
R AWHR05
001
AWHT05
R
REFFLD(RECTYP)

Using the SEAGULL Collector


<05> = reserved for future use
003
FILL51
250A
TEXT('FILLER')
253
FILL52
62A
TEXT('FILLER')
========================================================================
DISPL
R AWHR06
001
AWHT06
R
REFFLD(RECTYP)
<06> = field- or text-definitions
003
AWNX06
R
REFFLD(RECTYP)
record type of continuing record
<00> = no continuing record
005
AWHKND
R
REFFLD(AWHKND)
<00> = field not in subfile
<01> = field in subfile header
<02> = field in subfile
<10> = fixed text not in subfile
<11> = fixed text in subfile header
<12> = fixed text in subfile
<20> = text using <MSGCON>-keyword
not in subfile
<21> = text using <MSGCON>-keyword
in subfile header
<22> = text using <MSGCON>-keyword
in subfile
<30> = text using <MSGID>-keyword
not in subfile
<31> = text using <MSGID>-keyword
in subfile header
<32> = text using <MSGID>-keyword
in subfile (impossible)
<40> = text using <ERRMSG>-keyword
<50> = text using <ERRMSGID>-keyword
<60> = text using <SFLMSG>-keyword
<70> = text using <SFLMSGID>-keyword
<80> = subfile end indication <+>
<81> = subfile end indication <MORE>
<82> = subfile end indication <BOTTOM>
007
AWHCO6
R
REFFLD(AWHCON)
Conditional display
<0> = not, <1> = yes
008
AWHIN6
R
REFFLD(INDUSE)
byte 01
= more indicators active
byte 02 - 10 = active indicators
018
AWHFTP
R
REFFLD(FLDTYP)
< > = text
<A> = character data
<B> = binary data
<E> = DBCS-either data
<F> = floating point data
<G> = DBCS-graphic data
<H> = hexadecimal data
<J> = DBCS-only data
<L> = date data
<O> = DBCS-open data
<P> = packed decimal data
<S> = zoned decimal data
<T> = time data
<Z> = time stamp
019
AWHFIO
R
REFFLD(IOATTR)
<B> = input and output allowed
<I> = only input allowed
<N> = no input or output allowed
<O> = only output allowed
020
AWHATR
R
REFFLD(ATTRIB)
<0> = not active
<1> = active
<2> = conditional active
byte 01 = Right to left input
byte 02 = color <BLUE>
byte 03 = DUP key allowed
byte 04 = color <GREEN>
byte 05 = color <PINK>
byte 06 = color <RED>
byte 07 = color <TURQUOISE>
byte 08 = color <WHITE>
byte 09 = color <YELLOW>
byte 10 = attribute <BLINKING>
byte 11 = attribute <COLUMN SEPARATOR>
byte 12 = attribute <HIGH INTENSITY>
byte 13 = attribute <NON DISPLAY>
byte 14 = attribute <POSITION CURSOR>
byte 15 = attribute <REVERSED IMAGE>
byte 16 = attribute <UNDERLINE>
byte 17 = attribute <PROTECT>
byte 18 = <FIELD EXIT> required

237

238 J Walk Developer Guide


byte 19 = <EXIT RECORD> in effect
byte 20 = <LOWER CASE> allowed
REFFLD(FIELD)
blank when text
050
AWHLIN
R
REFFLD(LINE)
Row where to display
053
AWHCOL
R
REFFLD(COLUMN)
Column where to display
056
AWHDLN
R
REFFLD(AWLEN)
Edited length of field or text
059
AWHLEN
R
REFFLD(AWLEN)
Unedited length of field or text
062
AWHDEC
R
REFFLD(NRDEC)
Number of decimals
064
AWHVAR
R
REFFLD(AWHVAR)
065
AWHTX6
R
REFFLD(MESSAG)
- text of 250 characters when text
========================================================================
DISPL
R AWHR07
001
AWHT07
R
REFFLD(RECTYP)
<07> = default value for previous field
003
AWNX07
R
REFFLD(RECTYP)
Record type of continuing record
<00> = no continuing record
005
AWHCO7
R
REFFLD(AWHCON)
conditional display
<0> = not, <1> = yes
006
AWHIN7
R
REFFLD(INDUSE)
byte 01
= more indicators active
byte 02 - 10 = active indicators
016
FILL7
49A
TEXT('FILLER')
065
AWHTX7
R
REFFLD(MESSAG)
Text of default value
========================================================================
DISPL
R AWHR08
001
AWHT08
R
REFFLD(RECTYP)
<08> = reserved for future use
003
FILL81
250A
TEXT('FILLER')
253
FILL82
62A
TEXT('FILLER')
========================================================================
DISPL
R AWHR09
001
AWHT09
R
REFFLD(RECTYP)
<09> = reserved for future use
003
FILL91
250A
TEXT('FILLER')
253
FILL92
62A
TEXT('FILLER')
040

AWHFLD

Collector Error/Diagnostic Messages


This topic contains information pertaining to the error and diagnostic messages
which will be reported in the AWPRT spool files in the SEACOL/AWOUTQ.
Always check the spool files for any messages after launching the process.
Messages are grouped by

the Prepare Phase

the Extract phase (in which they occur in the collection process).

The Prepare phase occurs first. The Extract phase occurs after the Prepare phase.

Collector Prepare Phase Messages


Messages from this phase are stored in the spool file AWPRT with user data
AW310.
The message meaning and action are described with each message.
Message:

Using the SEAGULL Collector

239

Object compiled using member in file1 in library1. Collector


assumes library2

Meaning:
A compiled object was created based upon the source member member in
file1 in library1. Either this source member does not exist in file file1 in
library library1, or library library1 is not part of your library list. The
Collector has assumed that the source member member found in file file1
in library library2 can be used as a suitable substitute.
Action :
This can be a common and acceptable situation. In most cases the
substituted source will be correct. You could perform one of the following
actions :
- Add library library1 to your list of libraries if not already there. Re-run the
Collector.
- Ignore the message and continue, assuming that the substituted library
library2 contains the correct source member. Always verify this situation
when in doubt.
Message:
Object compiled using member in file1 in library1. Collector
assumes in file2 in library1/2

Meaning:
A compiled object was created based upon the source member in file1 in
library1. Either this source member does not exist in file1 in library1, or
library1 is not part of your library list. The Collector has assumed that the
source member member found in file2 in library library1/2 can be used as a
suitable substitute.
Action:
This can be a common and acceptable situation. In most cases the
substituted source will be correct. You could perform one of the following
actions :
- Add library library1 to your list of libraries if not already there. Re-run the
Collector.
- Ignore the message and continue, assuming that the substituted file file2 in
library library1/2 contains the correct source member. Always verify this
situation when in doubt.
Message:

240 J Walk Developer Guide


Object compiled using member1 in file1 in library1. Collector assumes
member2 in file1/2 in library1/2

Meaning:
A compiled DSPF object was created based upon the source member1 in
file1 in library1. Either this source member does not exist in file1 in library1,
or library1 is not part of your library list. The Collector has assumed that
the source member2 found in file2 in library1 (or in library2) can be used as a
suitable substitute.
This error can only occur for DSPF source members generated by
compiling a DSPF36 source.
Action:
This can be a common and acceptable situation. In most cases the
substituted source will be correct. You could perform one of the following
actions :
- Add library library1 to your list of libraries if not already there. Re-run the
Collector.
- Ignore the message and continue, assuming that the substituted file file2 in
library library1 (or in library library2) contains the correct source member.
Always verify this situation when in doubt.
Message: (Only applicable for source Collector)
Object object compiled using member member in file file in library
library Member member does not exist in file file in library library.
Check your list of libraries.

Meaning:
A compiled DSPF object was created based upon source member member in
file file in library library. Either library library is not part of your library list or
the library, file or member does not exist. The Collector could not find a
suitable substitute in one of the libraries in the library list.
Action:
This is an exceptional situation and should be resolved. The Collector
requires the source member and object to extract texts. The collector can
not extract screens without the corresponding source member. You should
perform one of the following actions :
- Add library library to your list of libraries if not already there. Re-run the
Collector.

Using the SEAGULL Collector

241

- Compare the library list to the library list as used by the package to be
processed and make sure that all libraries are included. Correct any
inconsistencies and re-run the Collector.
- If no further action is taken then the source member will not be available
for processing.
Message: (Only applicable for source Collector)
Object object compiled using member member in file file in library
library Member member does not exist in file file in library library
Re-compile this member.

Meaning:
A compiled DSPF object was created based upon source member member in
file file in library library. Either library library is not part of your library list or
the library, file or member does not exist. The Collector found more than
one source member in the library list which could be used as a substitute
for the missing source member.
Action:
This can be a common and acceptable situation. The Collector cannot be
certain which of the source members will be used so requests that you
recompile the source member. This will update the source member
reference in the compiled object. You could perform one of the following
actions :
- Recompile the source member and re-run the Collector.
- If no further action is taken then the source member will not be available
for processing.
Message:
No text or field found in the libraries you have entered

Meaning:
Either not a single DSPF was found in your list of libraries, or DSPF
source members found were not treated due to one of the reasons
mentioned in the log report.
Action:
Check your library list or your log report.
Message:
Object in Use

Meaning:

242 J Walk Developer Guide


The DSPF object (in object collect mode) was found to be in use. The
object is skipped.
Action:
It is likely the DSPF object is locked in use (by you or another user).
Release the DSPF object and re-collect.

Collector Extract Phase Messages


Messages from this phase are stored in the spool file AWPRT with user data
AW800.
Each message is preceded by the library, file and name of the member involved,
and where applicable by the statement number containing the problem.
Message:
Member member1 was encountered before in file file1 in library
library1. Texts for this member are not treated

or
Object object1 was encountered before in library library1.

Meaning:
A source member or object occurs more than once in your library list.
Action:
This can be a common and acceptable situation. The Collector assumes the
first occurrence is the most recent one.
Message:
Member has statements with duplicate or non-ascending
sequence numbers.

Meaning:
This is only a diagnostic message, indicating the source member has its
statement numbers in an unusual order.
Action:
You may decide to edit the source member in order to re-sequence the
statements on saving. This action will have no influence on the Collector.
Message:
Member has deleted records. Texts for this member are not
treated

Meaning:

Using the SEAGULL Collector

243

The Collector has encountered a source member containing one or more


deleted records.
Action:
This is a situation caused by handling the member in another way than
editing (possibly a file utility like DFU). The Collector is not able to treat
such a source member.
You could perform one of the following actions :
- Edit the source member in order to re-sequence the statements on saving,
thus eliminating the deleted record(s). Re-run the Collector.
- Ignore the message and continue, no pictures will be generated for this
source member.
Message:
Member is of type <DSPF36>. Texts for this member are not
treated

Meaning:
The Collector cannot handle source members having <DSPF36> syntax.
Action:
You could perform one of the following actions :
- Re-compile the source member, thus creating its "native" DDS source
member as well. Re-run the Collector.
- Ignore the message and continue, no pictures will be generated for this
source member.
Message:
No associated <*MENU> object found in your library list.
Texts for this member are not treated

Meaning:
The Collector has encountered a source member of type <MNUDDS>
and can not find its object in your library list.
Action:
The Collector is not able to treat such a source member as it can not
distinguish its attributes like the presence of a key guidance and the form of
the command line.
You could perform one of the following actions :
- Re-compile the source member and re-run the Collector.

244 J Walk Developer Guide


- Ignore the message and continue, no pictures will be generated for this
source member.
Message:
No associated <*FILE> object found in your library list.
Texts for this member are not treated

Meaning:
The Collector has encountered a source member of type <DSPF> and can
not find its object in your library list.
Action:
The Collector cannot handle such a source member as it can not
distinguish it attributes like (referenced) field lengths.
You could perform one of the following actions :
- Re-compile the source member and re-run the Collector.
- Ignore the message and continue, no pictures will be generated for this
source member.
Message:
Text found is too long, text is not extracted

Meaning:
The Collector encountered a text of more than 999 characters.
Action:
The Collector cannot handle texts of more than 999 characters.
You could perform one of the following actions :
- Split up the text in smaller parts.
- Ignore the message and continue, an incomplete picture will be generated
which should be processed manually.
Message:
Field length greater than 999, field is not extracted

Meaning:
The Collector encountered a field more than 999 characters.
Action:
Collector cannot handle fields of more than 999 characters.
You can only :

Using the SEAGULL Collector

245

- Ignore the message and continue, an incomplete picture will be generated


which should be processed manually.
Message:
Variable found on <MSGID>-keyword, outputfield assumed

Meaning:
The Collector encountered a <MSGID>-keyword and can not distinguish
what message to use.
Action:
This can be a common and acceptable situation. This message is only
meant as information, there is no need to take any action.
Message:
Unknown keyword found, starting with ..

Meaning:
The Collector encountered a syntax error in the source member.
Action:
Check the source member
Message:
Unable to find valid syntax on ..

Meaning:
The Collector encountered a syntax error in the source member.
Action:
Check the source member
Message:
Unable to find referenced <WINDOW>

Meaning:
The Collector encountered a <WINDOW>-keyword referring to another
window, which on its turn cannot be found.
Action:
Check the source member
Message :

246 J Walk Developer Guide


Special edit code 5 to 9 used, edited length found in file
<USREDT>

Meaning :
The Collector encountered the use of the keyword EDTCDE(5),
EDTCDE(6), EDTCDE(7), EDTCDE(8) or EDTCDE(9). The Collector
is able to determine the edited length of the field.
Action:
None.
Message :
Special edit code 5/6/7/8/9 used, edited length not found
in file <USREDT>

Meaning :
The Collector encountered the use of the keyword EDTCDE(5),
EDTCDE(6), EDTCDE(7), EDTCDE(8) or EDTCDE(9) but cannot
determine the edited length of the field.
Action:
You could perform one of the following actions :
- Add a record to the file <USREDT> and re-run the Collector.
- Ignore the message and continue, an incomplete picture will be generated
which should be processed manually.
Message :
Length of 1 assumed for REFFLD(......

Meaning :
The Collector encountered the use of the keyword <REFFLD>. The
Collector cannot determine the length of the field, as it is not in the I/Obuffer for the display file and can not be found in the referenced file
defined by the <REFFLD>-keyword.
Action:
Normally this message will only apply to the use of the keyword
<MSGID> together with the keyword <REFFLD>. MSGID's are not
part of the I/O-buffer.
You could perform one of the following actions :
- Inspect the <REFFLD>-keyword (and possibly the <REF>-keyword).

Using the SEAGULL Collector

247

- If the referenced file is not qualified (i.e. no fixed library name is defined),
then add the library where the referenced file resides to your library list. Rerun the Collector.
- Set the length of the field in the source member (although a solution, this
is not preferred).
- Ignore the message and continue, an incomplete picture will be generated
which should be processed manually.
Message :
Unable to find message XXXXXXX in message file YYYYYYYYY

Meaning:
The Collector encountered the use of a message, but did not find the
messageID XXXXXXX in the message file YYYYYYYYYY.
Action:
You could perform one of the following actions :
- Inspect your source member (a wrong ID could be coded)
- Inspect your message file
- Ignore the message and continue, an incomplete picture will be generated
which should be processed manually.
Message:
Object in Use

Meaning:
The DSPF object (in object collect mode) was found to be in use. The
object is skipped.
Action:
It is likely the DSPF object is locked in use (by you or another user).
Release the DSPF object and re-collect.

248 J Walk Developer Guide

J Walk Developer Reference 249

J Walk Developer Reference


The J Walk Developer Reference chapter includes specific technical details such as
accelerator key definitions as well as reference information on Keyword listings,
Scripting, and Error codes. High level review of OIS implementations is also
included.
Topics include:

First, the details for the Developer Panel and Terminal Editors are discussed.

Second, a Script Language Reference contains details on all functions.

This section next includes OIS implementation issues and topics.

Finally, Data Access Scripting is discussed.

Terminal Editor Accelerator Keys


The following "hot" keys exist to support Terminal editor functions.
Key combination

Function description

Arrow keys

Changes the selected field's size when the


"field identify" function is on.

Alt+Z

Opens the Panel Editor.

Ctrl+B

Album | Browse menu function.

Ctrl+C

Copy to Clipboard.

Ctrl+F

Field | Identify mode is selected.

Ctrl+F2

Tools | Best Guess templates | Save


menu is invoked.

Ctrl+F4

Tools | Best Guess template | Open


menu function is invoked.

Ctrl+F5

Tools | Best Guess template | Add


fields menu function is invoked.

Ctrl+I

Screen | New menu function is


invoked.

Ctrl+M

Album | Current matching menu


function.

Ctrl+O

File | Open... Terminal Editor work file is


invoked.

250 J Walk Developer Guide


Key combination

Function description

Ctrl+P

File | Print Picture Report menu


function is invoked.

Ctrl+PgDn

Album | Previous picture menu function


is invoked.

Ctrl+PgUp

Album | Next picture menu function is


invoked.

Ctrl+R

Album | Redundant menu function is


invoked.

Ctrl+T

Album | Toggle previous menu item is


invoked.

Ctrl+V

Clipboard paste function.

Ctrl+X

Clipboard cut.

Ctrl+Shift+Tab

Moves backward between all fields (only


with Field | Identify off and only for
pictures, not live session).

Ctrl+Tab

Moves forward between all fields (only


with Field | Identify off and only for
pictures, not live session).

Ctrl+Arrow keys

Changes all field sizes when the "field


identify" function is on.

Delete

When editing host fields, pressing this key


will delete the current, selected record.

Enter

When editing host fields, press Enter to


open the Host Field properties dialog.

F1

Invokes on-line help for the focused item.

Shift+Arrow keys

Moves selected field when the "field


identify" function is on.

Shift+Ctrl+Arrow keys

Moves all fields when the "field identify"


function is on.

J Walk Developer Reference 251

Terminal Editor Host Field Operations


Host Fields can only be selected and moved when the "field identify" function is on.
You can verify that the Field Identify function is on by clicking on the Field pull down
menu. The menu item Field | Identify will be checked. Clicking on the menu item
turns the "field identify" function on and off. It works like a toggle.
The following actions are described in the following order: Action; Mouse method;
Keyboard method.
Select 1 field
Point at the field and click with left mouse button, or Use the Tab and Shift+Tab to
skip to the next field.
Move 1 field
Select a field. Hold the Shift key down at the same time that you press the directional
arrow keys. The field will move one position in the selected direction.
Move all fields
Hold the Shift+Ctrl key down at the same time that you press the directional arrow
keys. The fields will move one position in the selected direction. Once at least one of
the fields cannot move in the direction indicated by the arrow key, all of the fields will
stop moving in that direction.
Change size of 1 field
Select a field. Use the directional arrow keys to change the size of the field's rectangle.
The upper left hand corner always remains fixed and the rectangle can never get
smaller than one character.
Change size of all fields
Hold the Ctrl key down and use the directional arrow keys to change the size of all
fields. If at least one of the fields can no longer have its size be changed (all fields
must have a rectangle at least 1 row by 1 column),then none of the fields will change
size.
Open Field Properties dialog
Click on the field with the right mouse button, or Select a field and press the Enter
key.

Panel Editor Accelerator Keys


The following "Hot" keys can assist your development speed.
Key combination

Function description

252 J Walk Developer Guide


Key combination

Function description

Alt+Z

Opens the Terminal Editor.

Alt+Delete

Edit | Undo | Delete menu item is


invoked.

Alt+Down Arrow

Arrange | Align | Vertical center menu


item is invoked.

Alt+Left Arrow

Arrange | Align | Horizontal center menu


item is invoked.

Ctrl+!

Arrange | Resize adjustment | Move field


left/right menu item is invoked.

Ctrl+@

Arrange | Resize adjustment | Move field


up/down menu item is invoked.

Ctrl+#

Arrange | Resize adjustment | Adjust field


width menu item is invoked.

Ctrl+$

Arrange | Resize adjustment | Adjust field


height menu item is invoked.

Ctrl+A

Arrange | Snap to grid menu item is


invoked.

Ctrl+B

Tools | Best Guess one panel menu item


is invoked.

Ctrl+C

Clipboard copy

Ctrl+D

Panel | Properties... menu item is invoked.

Ctrl+Down Arrow

Arrange | Align | Bottom menu item is


invoked.

Ctrl+Enter

Edit | Select all menu item is invoked.

Ctrl+F

Panel | Menu bar... menu item is invoked.

Ctrl+F2

Tools |Best Guess template | Save...


menu item is invoked.

Ctrl+F4

Tools | Best Guess template | Open...


menu item is invoked.

Ctrl+Ins

Copies from the panel to the clipboard.

Ctrl+Insert

Edit | Copy menu item is invoked.

Ctrl+L

View | Compile log... menu item is

J Walk Developer Reference 253


Key combination

Function description
invoked.

Ctrl+Left Arrow

Arrange | Align | Left menu item is


invoked.

Ctrl+M

Panel | Message boxes... menu item is


invoked.

Ctrl+N

Panel | New... menu item is invoked.

Ctrl+O

File | Open... Panel Editor work file is


invoked.

Ctrl+P

File | Print | Print Panel Report menu


item is invoked.

Ctrl+PgDn

Arrange | Order | To front menu item is


invoked.

Ctrl+PgUp

Arrange | Order | To back menu item is


invoked.

Ctrl+R

Edit | Font and color... menu item is


invoked.

Ctrl+V

Clipboard paste menu item is invoked.

Ctrl+X

Clipboard cut menu item is invoked.

Ctrl+Z

Undo menu item is invoked.

Ctrl+Right Arrow

Arrange | Align | Right menu item is


invoked.

Ctrl+Shift+Down Arrow

Arrange | Spacing | Vertical menu item is


invoked.

Ctrl+Shift+Right Arrow

Arrange | Spacing | Horizontal menu


item is invoked.

Ctrl+Up Arrow

Arrange | Align | Top menu item is


invoked.

Delete

Edit | Delete menu item is invoked.

Enter

Edit | Field definition... menu item is


invoked.

F1

Invokes on-line help for the focused item


menu item is invoked.

254 J Walk Developer Guide


Key combination

Function description

F12

Panel | Open | Last tested menu item is


invoked.

F2

Panel | Save menu item is invoked.

F3

File | Exit menu item is invoked.

F4

Panel | Open | Project panel... menu item


is invoked.

F5

View | Live test menu item is invoked.

F7

Panel | Open | Previous menu item is


invoked.

F8

Panel | Open | Next menu item is


invoked.

F9

Panel | Open | Current matching menu


item is invoked.

Space bar

Pressing the space bar when no panel field


is in focus has the same effect as
continuously pressing the left mouse
button. This remains in effect until the
left mouse button is clicked again.

Right mouse button

Pressing the right mouse button on a


focused panel field allows the field to be
moved.

Right mouse button+Directional


arrow

Moves panel field one coordinate point in


the specified direction.

Shift+A

Field | Group | Rectangle... menu item is


invoked.

Shift+B

Field | Data entry | Combination box...


menu item is invoked.

Shift+C

Field | Button | Check box... menu item


is invoked.

Shift+Delete

Edit | Cut menu item is invoked.

Shift+E

Field | Data entry | Entry field... menu


item is invoked.

Shift+F

Field | Group | Frame... menu item is

J Walk Developer Reference 255


Key combination

Function description
invoked.

Shift+F2

File | Save menu item is invoked.

Shift+F4

Panel | Open | Any... menu item is


invoked.

Shift+F5

View | Local test menu item is invoked.

Shift+G

Field | Group | Group box... menu item


is invoked.

Shift+Ins

Copies what is in the clipboard to the


panel

Shift+Insert

Edit | Paste menu item is invoked.

Shift+L

Field | List | List box... menu item is


invoked.

Shift+M

Field | Data entry | Multi-line entry field...


menu item is invoked.

Shift+N

Field | Notebook | Notebook... menu


item is invoked.

Shift+O

Field | Output | Output field... menu


item is invoked.

Shift+P

Field | Button | Push button... menu item


is invoked.

Shift+R

Field | Button | Radio button... menu


item is invoked.

Shift+S

Field | Data entry | Spin button... menu


item is invoked.

Shift+T

Field | Output | Text field... menu item is


invoked.

Shift+Tab

Edit | Previous field menu item is


invoked.

Tab

Edit | Next field menu item is invoked.

Panel Editor Field Operations


The panel editor provides access to fields for creation, modification, and adjustment.
The following field edit actions are described.

256 J Walk Developer Guide


Select 1 field
Point at the field and click with the left mouse button, or Use the Tab and Shift+Tab
to skip to the next field.
Select multiple fields method 1
Press the left mouse button down and drag the cursor over one edge of a panel field.
If the field is not selected, it will become selected. If the field is already selected, it will
become unselected.
Select multiple fields method 2
Move the mouse to an area of the panel where there are no fields and then press the
left mouse button. Then drag the mouse. A rectangle will be drawn. Any edge of any
field touching this rectangle will be selected.
Select multiple fields method 3
Point and click with the left mouse button on the first field you wish to select. Then
press the Shift key and hold it down. Now select all of the other fields you wish to
select. The Panel Editor remembers the order in which you have selected the fields
and can be used to define a new field order (using Arrange | Order | Fields as
selected).
Move selected fields
After selecting fields to move, click on one of the selected fields with the right mouse
button and drag the selection to the new location or After selecting fields to move,
press the Shift key down and hold it down. Then use the directional keys to move the
fields to the new location.
Change selected field size
If multiple fields are selected, then only the first field can have its field size changed
using the mouse method. The field with focus has black squares at the corners and in
the centers of the pink edges. Click on one of these squares with the left mouse
button and drag the edge to the size you wish.
Open Field Properties dialog
Double click with the left mouse button on the selected field or Select a field and
press the Enter key.
Change current panel size
Point to one of the panel's edges. Then click with the left mouse button and drag the
edge to the new position.
Move current panel
Point to the titlebar with the left mouse button. Then drag panel to the new position.

J Walk Developer Reference 257


Open Panel Properties dialog
Double click with the left mouse button on the titlebar.

SEAGULL Reserved Words


The following are a list of reserved words. The first group are used in the Best Guess
process. These reserved words should not be used anywhere other than in the
templates used by Best Guess. The second group are invalid filenames not to be used
when creating files such as a Picture Album.
Best Guess Word
(ANY)
Is a general purpose reserved word that matches any text to the field type set as
(ANY). This is considered a "wildcard" in programmer's terms.
If for an example, you have the text sources

@AAJWALK@

@AAGUI@

@AATTT@.

You can change them all to

@BBJWALK@

@BBGUI@

@BBTTT@

using a find and action sequence with

Find criteria: @&AA (ANY) @

New criteria: @&BB (ANY) @

Text file references require @&.

(ANYx)
This construct of the (ANY) reserved word can be used with translation tables and
find/replace function. It is only used with the destination field and there should be
one
(ANYx) for every (ANY) field in the source. For example, if the source translation
value was:(ANY)123(ANY) and the destination translation value was:(ANY2)(ANY1),
then a string such as "ABC123DEF" would be translated to "DEFABC".
(BUTTON)

258 J Walk Developer Guide


Used in BUILD and POPUP templates only to define the position of function key
buttons relative to the (OK). Using field ordering, the push buttons are created along
an axis in the direction of the (BUTTON) button.
(BUTTON1)
Used in SEL and SELMUL templates only to position the first button of a list
connected push button set.
(BUTTON2)
Used only in the SEL and SELMUL template to define the axis and direction of
subsequent list connected push buttons.
(FKEYMENU)
Used only in Functions menu of the BUILD or POPUP templates as place holder to
position any push button that will not fit in the panel and needs to be transferred to
the menu bar.
(LIST)
Used in all templates containing list boxes. This reserved word must be placed in the
Field ID of each list box.
(LISTMENU)
Used only in List menu of the BUILD or POPUP templates as place holder to
position any list connected push button that will not fit in the panel and needs to be
transferred to the menu bar.
(MESSAGE)
Used only in the BUILD template. Best Guess creates this field and connects it to the
screens standard message field based on information from the Collector.
(OK)
Used only in the BUILD or POPUP templates to define the push button axis. All
other push buttons will be placed in the direction of the (BUTTON) button.
(SAME)
Paired with an (ANY) field to specify the attributes of the field to be created.
(SAMPLE)
This reserved word creates a dummy field that is only used to exclude fields.
(TITLE)
Best Guess guesses that the field in the center of the top line of the host screen is the
title field and assigns it the reserved name (TITLE).

J Walk Developer Reference 259


Protected File Names
Restricted file names are:

CON

PRN

(blank space or null character).

Script Language Reference


The OIS script language syntax and construction is similar to that of Visual Basic with
the following conditions:

Variable types: string, integer, long, single and double are supported.

All variables must be explicitly dimensioned before a value can be assigned to


them, see the Dim or Global statements.

Variable names cannot be the same as environment variables, keywords or


function names. Also take care not to use Visual Basic keywords.

Identifiers (or names) must start with a letter, and can be followed by letters,
digits or the underscore character. Names are case insensitive.

The ERR variable is automatically defined by the OIS script language. It


contains any error code that may have occurred after executing the previous
statement or function.

OIS string literals are characters enclosed in double quotes (" "). Literals can be of
maximum length 1024 characters but may be concatenated using the string
concatenation operator '&' to construct longer strings.
OIS supported variable types are

String
Variables of type string can contain zero or more single byte characters. The
amount of characters in the string (the string length) is only limited by the
memory of the system.

Integer and Long


Integer and Long variable types are equivalent. Each type contains a signed
numeric integer value in the range -2,147,483,648 to 2,147,483,647 (4 byte
number).
Note: Any number beyond this range will result in unpredictable values.

Single and Double

260 J Walk Developer Guide


The Single and Double types are equivalent. They can contain a signed numeric
floating point number with the following characteristics:
Smallest positive value

2.22507385850720e-308

Largest value

-/+ 1.79769313486231e+308

Smallest positive number x,


such that x + 1.0 is not equal
to 1.0

2.22044604925031e016

Number of digits, q, such


that a floating-point number
with q decimal digits can be
rounded into a floating-point
representation and back
without loss of precision

15 Digits

Note: Numerics are stored as 15 digit precision numbers, even during


expression evaluation, so even intermediate results are always rounded to 15
digit precision.
Variable types Currency and Variant are recognized but not supported.
The remainder of the script language details are provided within topics associated with
script syntax, functions and provided OIS examples.

Script Language Syntax Statements


The following statements are recognized:

Assignment

Dim

End

Global

Gosub label

Goto label

Rem

Return

Conditional Loops

For ... To ... Next

If ... Then ... Else

While ... Wend Label:

J Walk Developer Reference 261

and compound statements (combinations of statements).

Assignment statement
Assignment statements assign an integer or string value to a variable. The value can be
derived from an expression.
variable = value
variable is the name of the variable that is being assigned a value
value is an integer or string expression
Dim statement
Define a variable declaration statement within a script (module scope). It is required
that all variables be declared before use.
Dim varname [,varname] As type
varname: required variable name begining with a letter. The remaining characters can
be made of letters, numbers or underscore. The maximum length for a variable name
is 40 characters.
type: required variable type. Values are integer, long, single, double and string.
End statement
Stops the execution of a script, even if there are statements following the End
statement.
End
For .. To .. Next statement
Executes a set of statements starting from an initial value and counting incrementally
to a limit.
For loopvar = expression1 To expression2 [Step n]
~
Exit For
loopvar is a required variable that is assigned a value (expression1) and this variable
is tested against a limit (expression2).
Step increments or decrements loopvar by n at the Next statement. By default, n
equals 1.
The statements are executed while one of these conditions are true:

if n >= 0, loopvar <= expression2

if n<0, loopvar >= expression2

262 J Walk Developer Guide


It is possible to exit the For loop at any time by issuing the command Exit For.
Global statement
Variable declaration statement making the variable available to all scripts executing
within the single client session. It is required that all variables be declared before use.
You can declare a variable as "global," the contents of such a variable are cleared.
When the same global variable is declared a second time, the contents of the variable
are again, initialized.
Any variable dimensioned as "global" functions independent of JWR files.
Use global variables to "hold" data while executing additional scripts within the
session and then get the global variable contents to complete the data sharing activity.
Syntax
Global varname [,varname] As type
varname is the required variable name beginning with a letter. The remaining
characters can be letters, numbers or underscore. The maximum length for a variable
name is 40 characters.
Note: You can use the && within the varname. Doing so, specifies the variable for
global referencing by panel objects.
type is the required variable type being globally declared. Values are Integer, Long,
Single, Double and String.
Variables which are auto-dimmed due to their use in a panel are of type string.
Gosub statement
Jumps to another location in the script and returns to the same location in the script
once it finds a Return statement.
Gosub label
label is the required "handle" to mark the current location in the script. The label
identifies a subroutine to perform.
Goto statement
Jumps to another location in the script and does not save the current location in the
script.
Goto label
label is the required "handle" (location) to move to within the script. The label
identifies a subroutine to perform.

J Walk Developer Reference 263


If...Then...Else statement
Statements and functions located within an IfThen block are only executed if the If
condition is TRUE. The optional Else block of statement will be executed if the If
condition is FALSE.
The ElseIf tests another condition if the previous condition fails, enabling a cascading
If statement.
If condition Then
statements
[ElseIf condition Then
statements]
Else
statements
EndIf
A condition is any expression that returns a TRUE (non-zero) or FALSE (zero)
value.
statements represent syntax performed based on the appropriate condition(s) being
met.
Label: statement
Names a subroutine within a script file. Labels must follow these rules:
Must be first non-white space token on the line
Must be followed by a colon ( : )
The first statement after a label can occur on the same line as the label.
label: statement
label is an unique name, not already used as a function or variable.
statement is any valid script language statement or function call.
Rem statement
Any line beginning with a Rem statment is ignored.
Note: Additionally, you may create a remark (an expression to be ignored) by placing
any text after an apostrophe ( ' ).
Rem text
or

264 J Walk Developer Guide


valid statements, text
statement is any valid script language statement or function
text includes any characters (all of which are to be ignored).
Return statement
Used in conjunction with a Gosub statement to return to the original point in the
script where the Gosub statement was executed.
Gosub label
~~~
Return
While...Wend statement
Continues executing a set of statements while a test condition is met. The condition is
met when the value of the expression is TRUE.
While condition
statements
~~~
Wend
The condition is tested before entering the While loop. Then a set of statements are
executed. The set of statements must begin on the next line, not the same line as the
expression. The set of statements is terminated by the Wend command positioned on
a new line after the statements. The set of statements are executed while the
expression is TRUE non-zero.
A condition is any expression that returns a TRUE (non-zero) or FALSE (zero) value.

OIS Provided Script Functions


There are functions within the script language provide:

compatibility with previous versions of the J Walk macro language and

commonly used Visual Basic-like functions to the script language.

The following functions are specific to the script language:


Date and Time functions

Date

CDate

Time

J Walk Developer Reference 265

TimeDiff

Wait

J Walk specific functions

HostScreenSendkey

HostWaitForScreen

LoadTexts

OperatingSystem

PanelLoadPanel

PanelUpdateEnable

ScreenIdGet

Numeric functions

Abs

Val

String functions

Asc

Chr

InStr

Left

Len

LTrim

Mid

Right

RTrim

Str

Trim

Functions marked as belonging to OIS Script Functions.

Format function

Format

266 J Walk Developer Guide

@ Function
Returns the contents of a host field or J Walk environment variable.
Syntax
@"@fieldname@"
Parameters
The host fieldname must also be between atsigns and given as a text. A valid host
field reference would be @"@FLD01@". This returns the contents of a host field
named FLD01. See Host Field Breakdown Technique for details about how values
can be extracted from repeating patterns (like function key assignments) in host field
values.

Abs Function
Returns the positive integer value of an input integer value.
Syntax
Dim number as integer
abs ( number )
Parameters
number is any integer value, positive or negative. The positive value of the integer is
returned.

Cdate Function
Returns the current system date in integer format YYYYMMDD.
Syntax
cdate ( )

Date Function
Returns the current system date in integer format YYMMDD.
Syntax
date ( )

HostWaitForScreen Function
Waits for a host screen from the supplied list, or until a time-out value is reached.
Syntax
Dim screenlist, screenfound as string

J Walk Developer Reference 267


Dim timeout as integer
hostwaitforscreen ( screenlist, timeout, screenfound )
Parameters
screenlist is a comma separated list of screens to wait for. For example
"USER,MAIN,SIGNON".
timeout is the maximum time in seconds to wait for a screen.
screenfound is the name of the screen or an empty string if there is a time-out. If
there is a time-out, then err will contain the value 1.

HostScreenSendKey Function
This function is used to send a function key or other control key to the AS/400. This
function could also be executed by the OIS function HostScreenPutString but it
would require that the ASCII value of the function key or other control key be
known. This function sends a function key value based upon the label for the function
key. For example, to emulator pressing the Enter key, the value "Enter" would be
used as a parameter for this function.
Syntax
Dim keylabel as string
hostscreensendkey ( keylabel )
Parameters
keylabel names one function key that will be sent to the AS/400. Valid values for
keylabel include:
"Left Tab", "Clear", "Delete", "Enter", "Erase EOF", "Help", "Insert", "Jump",
"Cursor Left", "New Line", "Space", "Print", "Reset", "Right Tab", "Cursor Up",
"Cursor Down", "DBCS", "Caps Lock", "Cursor Right", "Home", "F1"-"F24", "Plus
Key", "End", "Scroll Lock", "Num Lock", "Page Up", "Page Down", "PA1", "PA2",
"PA3", "Test", "Word Delete", "Field Exit", "Erase Input", "System Request", "Insert
Toggle", "Cursor Select", "Cursor Left Fast", "Get Cursor", "Locate Cursor",
"Attention", "Device Cancel", "Prt Pres. Space", "Cursor Up Fast", "Print (PC)",
"Hexadecimal", "Cmd Key", "Destructive Backspace", "Underscore", "White", "Red",
"Pink", "Green", "Yellow", "Blue", "Turquoise", "Reset Colors", "Go session 1", "Go
session 2", "Go session 3", "Go session 4", "Go session 5", "Field +", "Field -",
"Backspace", "Alt. Cursor", "Duplicate", "SO/SI display", "SO/SI creation",
"Attribute display", "Record Backspace", "Forward Word Tab", "Backward Word
Tab", "Reset Reverse Video", "Cursor to next word", "Vertical broken bar", "Cursor
Down Fast" and "Cursor Right Fast"

268 J Walk Developer Guide

InStr Function
This function examines the contents of a string for a specified substring. If found, the
function returns the starting position of the substring within the string. If the
substring is not found, this function returns 0.
Syntax
Dim SourceString, SearchString as string
Dim StartPosition, ReturnCode as integer
ReturnCode = instr ( StartPosition, SourceString, SearchString )
Parameters
StartPosition identifies where to begin searching in the source string. The first
position in the string is 1, so this number should never be less than 1.
SourceString is the string that will be examined.
SearchString is the string that will be searched for.
ReturnCode. If the search string is found, the function returns the position in the
source string where the search string was found. So this value is always greater then 0
when the search string is found. The value is 0 if the search string is not found.

Left Function
Reads a specified number of characters from a string starting from the left most
character of the string. This function returns a string.
Syntax
Dim string1 as string
left ( string1, number )
Parameters
string1 is the text string being evaluated.
number is the number of characters to read from the left of the string1.

Len Function
Returns the number of characters in a string as an integer value.
Syntax
Dim string1 as string
len ( string1 )
Parameters

J Walk Developer Reference 269


string1 is the text string being evaluated.

Ltrim Function
This function removes any spaces at the beginning the given string and returns the
resulting string.
Syntax
Dim SourceString, NewString as string
NewString = ltrim ( SourceString )
Parameters
SourceString is the string that will be examined.
NewString is the same as SourceString but with all beginning spaces removed.

Mid Function
Reads characters from the middle of a string and returns the characters as a string.
Syntax
Dim string1 as string
Dim start, length as integer
mid ( string1, start, length )
Parameters
string1 is the text string being evaluated.
start is an integer representing an offset in the string1. The number entered here
reflects the number of characters that will be (skipped starting from the left) before
reading characters.
length is the number of characters read from the string.

PanelUpdateEnable Function
This function controls when a panel and its fields are updated while navigating
through a script.
Syntax
Dim enable as integer
panelupdateenable ( enable )
Parameters
enable indicates if panel data entry should be enabled or disabled.

270 J Walk Developer Guide


0 - disables panel updating. J Walk will not update the current panel when it detects a
change has occurred.
1 - enables a panel to be updated, when detected by J Walk.
2 - forces a panel to be updated immediately.

Right Function
Reads characters from the end of the string. This function returns a string value of the
characters read.
Syntax
Dim string1 as string
Dim length as integer
right ( string1, length )
Parameters
string1 is the text string being processed.
length represents the number of characters read from the right of the string.
Example
If string contained the text "This is a sample string", the function call right(string,
13) would return the value "sample string".

Rtrim Function
This function removes any spaces at the end of the given string and returns the
resulting string.
Syntax
Dim SourceString, NewString as string
NewString = rtrim ( SourceString )
Parameters
SourceString is the string that will be examined.
NewString is the same as SourceString but with all ending spaces removed.

ScreenIdGet Function
Returns a string containing the name of the current host screen.
Syntax
screenidget ( )

J Walk Developer Reference 271

Str Function
Returns a string containing the digits of the given number as characters.
Syntax
Dim number as integer
str ( number )
Parameter
number is the integer value that is transformed to a string.
Example
If the number has the value 123, the value of str ( number ) is "123".

Time Function
Returns the current system time. The time value is returned as an integer with the
format HHMMSS.
Syntax
time ( )

TimeDiff Function
Returns the time difference between two times. The returned value is in number of
seconds.
Syntax
Dim start, end as integer
timediff ( start, end )
Parameters
start is the beginning time used in the calculation.
end is the ending time used in the calculation.
The start time is subtracted from the end time ( e.g. end - start ).

Trim Function
This function removes any spaces at the beginning and end the given string and
returns the resulting string.
Syntax
Dim SourceString, NewString as string

272 J Walk Developer Guide


NewString = Trim ( SourceString )
Parameters
SourceString is the string that will be examined.
NewString is the same as SourceString but with all beginning and ending spaces
removed.

Val Function
Returns an integer for a string containing digits as characters. For example, a string
with the value "123" would be returned as an integer with the value 123.
Syntax
Dim string1 as string
val ( "string1" )
Parameters
string1 can be a variable or value.
Note: The VAL() function is NOT "country aware," so taking the VAL() of a string
that includes a decimal, comma or thousand separator will only return the integer
value up to the first comma.
Example:
VAL("123,45") returns 123;

but VAL("123.45") returns 123.45.

Wait Function
Prevents the Client screen and panel from accepting input for a given number of
seconds.
Syntax
Dim delay as integer
wait ( delay )
Parameter
delay is the number of seconds the user must wait.

FieldPut
Before a value is sent to the host, a FieldPut message is sent providing a "hook" to
call a DLL function to modify the value.

J Walk Developer Reference 273


Upon a valid trigger, specify values to be returned to the host be displayed
UPPERCASE (based on your DLL). Or complete a transaction in a local monetary
value (for example, Dutch Gulden) and send back to the host the value in Euro
Dollars (by simply writing your own converter DLL)!
A "piece" of a complete DLL function is provided to review handling both field
events. This DLL performs multiplication or division by two based on the FieldPut
event trigger. See the example for details.
Note: If you chose to work with (edit) a converted value(s), it is most likely you
should develop your conversion DLL to convert to your new value and convert back
to the provious value. In this way, no erroneous interpretation of your converted data
will occur.
Implement whatever field formatting techniques you need in conjunction with the
field value.
The FieldGet message and the FieldPut message provide the complete cycle from
the host field and back to it.

FieldGet
Before a value is diplayed on a panel field, a FieldGet message is sent providing a
"hook" to call a DLL function to modify the value.
At the touch of a button (or other valid trigger), specify all values to be displayed
UPPERCASE (based on your DLL). Or toggle between local monetary values (for
example, Dutch Gulden) and the new Euro Dollar (by simply writing your own
converter DLL)! Support your field operations with lookup capabilities (from a host
value to a more specific database value).
Note: If you chose to work with (edit) a converted value(s), it is most likely you
should develop your conversion DLL to convert to your new value and convert back
to the provious value. In this way, no erroneous interpretation of your converted data
will occur.
Implement whatever field formatting techniques you need in conjunction with the
field value.
A "piece" of a complete DLL function is provided to review handling both field
events. This DLL performs multiplication or division by two based on the FieldPut
event trigger. See the example for details.
The FieldGet message and the FieldPut message provide the complete cycle from
the host field and back to it.

274 J Walk Developer Guide

Implementing OIS Functions


OIS functions can be used in scripts, from an API DLL, or a DDE call. Each if these
OIS methods has its own syntax for naming functions and specifying function
parameters. So the same OIS function will have a different name in each method. The
root name of a function is the same for all methods. Each method adds a different
prefix to the root name. With a little practice, you should be able to determine the
proper function call name from the root.
The functions are listed as follows. Since the same function can appear as an API,
Script or DDE function, the root name is listed once. The functions appear in
alphabetic order based on the root name.
After the functions root name and a brief description of function purpose, the calling
formats as an API function call, script command or DDE field are specified. Then, a
description of the possible parameters are listed.
As required, additional sections may be present to identify special return codes from a
function.

OIS Example Resources


In order to "see" how to use Open Interface Services, SEAGULL provides working
examples.
OIS examples are provided to show you how the OIS functions are called and used.
Examples are provided as part of the OIS installation. Select to install "OIS" when
you install, or at anytime after installing.
When you install the OIS, an "OIS" folder is created where all OIS resources are
installed.
OIS resources include actual programming source files and Resource Files (to be used
with your programming environments). Additional OIS script examples can be found
in the "examples" and "autocoll" files.
To use the examples, select the taskbar entry (and example) you wish to use.
Choose to unpack any of these examples to provide the following resources:

Working CAR DEMO Project

ActiveX

C++ API Example

Visual Basic (VB4.0+) Example

OIS for Java Example (JDK1.1)

J Walk Developer Reference 275


SEAGULL provides various examples (scripting and other) within the supplied
"Example CAR DEMO." Some example resources include:

Evaluating a Host Screen

Making DDE Links

Using All Script Functions

Other examples.

You can explore the CAR DEMO while using Developer. This example provides
resources for an entire project.
ActiveX examples are delivered into to subdirectories OIS/CURCALC and
OIS/USERWIN. These folders contain source files, INI files and executables
pertaining to a simple calculation function and userwindow function.
C++ and Visual Basic Examples do not include compiled (.EXE) files. To
demonstrate these examples, you must have the complete programming environment
on your PC.
Note: All example functions can be used with the CARDEMO application.
Several small example applications are included with these resources.

OIS example for C++ An OIS test program (requiring C++). This example
is designed to test all the J Walk OIS desktop functions. To examine the C++
components, you must install a C++ environment and the included resource
files.
Note: The resource directory must be created; see the notes.txt file installed
with this example.
Called functions are categorized as follows:

Main

Host

DDE

MultiMedia

Panel

Script

and Other.

The "Auto test" button launches all the functions with only one button click.

276 J Walk Developer Guide


Optional parameters can be entered for some functions. Press the right mouse
button on any dialog box to see which parameters can be entered. If no
parameters are entered, default values will be used.

OIS example for Visual Basic A small OIS application (requiring Visual Basic
v4.0+). This application works "as is." If you want to examine components,
you must have Visual Basic available. The OIS subdirectories
"OIS/CURCALC and OIS/USERWIN" contain useful functions you might
want to use with Visual basic.

OIS Delphi Include Files To use Visual Delphi, required development


environment files are included within the installed "OIS" directory.

OIS for Java Program from your Java Application environment (JDK1.1) or
from a J Walk Java Client. Included within the "OIS" directory are resources to
review and use when programming a Java Client (includes Index.html document
of all supported methods and examples).

Script Example: Evaluate Host Screen


rem This script evaluates the current host screen and counts
the
rem number of periods (.) on the screen.
rem Define variables
Dim heigth, width, error_oia as Integer
Dim lineloop, charloop as Integer
Dim msgbox_ret as Integer
Dim screenline as String
Dim message as String
Dim periods as Integer
rem Query the size of the hostscreen
HostDimensionGet( heigth, width, error_oia )
rem Check is the HOSTDIMENSIONSGET function call was
successful.
rem If not, stop the script.
If Err <> 0 Then
goto EXIT_SCRIPT
Endif
rem Set the period-counter to 0
periods = 0

J Walk Developer Reference 277


rem Walk through all screen lines
For lineloop = 1 to heigth
rem Get the lineloop'th screen line into variable screenline
HostScreenGetLine(lineloop, screenline)
rem Walk through all characters in this line
rem The length of 'screenline' is determined using the LEN
function
For charloop = 1 to Len(screenline)
rem To get a single character from a string, the MID function
can be used
rem Is the current character a period?
If Mid(screenline, charloop, 1) = "." Then
rem Yes, it is a period -> Increase period-counter
periods = periods + 1
Endif
Next
Next
rem Build the message string to display to the user. The '+'
operator is used
rem to concatenate strings. The STR function is used to
convert the PERIODS
rem variable from integer to a string
message = "Number of periods is: " + str(periods)
rem Display a message box with the MESSAGEBOX function
msgbox_ret = messagebox("Message box title", message, 4, 1)
rem Define a label that can be used by the GOTO statement
EXIT_SCRIPT:
End

Script Example: Open DDE Links


This example demonstrates a DDE operation to open a link to Microsoft Excel.
rem This script opens a DDE Link to Microsoft Excel and puts
the value
rem of hostfield "FLD01" into Cell A1 (Row 1, Column 1)
rem Define variables

278 J Walk Developer Guide


Dim ddehandle as integer
rem Find out if EXCEL is running by connecting to the
'System' topic
ddehandle = DDEInitiate( "EXCEL", "System" )
rem Check if the link failed
If ddehandle = 0 Then
rem DDEInitiate failed, Excel probably not running, so start
it
rem Note that this is just an example path
PcCommand(2, "C:\MSOFFICE\EXCEL\EXCEL.EXE")
ddehandle = DDEInitiate( "EXCEL", "System" )
Else
rem Link was successful, Excel is running
rem Since we want another topic, terminate this link.
DDETerminate( ddehandle )
Endif
rem Now, let's connect to the topic wanted
ddehandle = DDEInitiate("EXCEL", "[Book1]Sheet1")
rem Check link
If ddehandle = 0 Then
rem DDE Link not established for some reason (Excel could not
be started
rem or the is another file open etc.). Quit script
Goto End_Script
Endif
rem Now, put value of host field FLD01 in Cell A1
ddepoke( ddehandle, "R1C1", @"@FLD01@" )
rem Terminate DDE Link
ddeterminate( ddehandle )
End_Script:
End

Script Example: Using Script Functions


Rem -------------------------------------------------------

J Walk Developer Reference 279


Rem

A test of the script language

Rem ------------------------------------------------------Dim dayName,dayExt,dayVarPart As String,


startDay,dayOfTheWeek, ii As Integer
Dim message,messageTitle As String
Dim iconStyle,buttonStyle,pressed As Integer,
ID_OK,ID_CANCEL,ID_YES,ID_NO As Integer
ID_OK=1
ID_CANCEL=2
ID_YES=6
ID_NO=7
buttonStyle = 1 'Ok + Cancel Button
iconStyle = 3 ' Exclamation
pressed = Messagebox("Show name of day.","Daynumbers from -1
to 8 will be Processed.",iconStyle,buttonStyle)
While (pressed = ID_OK) Or (pressed = ID_YES)
startDay = -1
For dayOfTheWeek = startDay To 8*(abs(startDay))
dayExt = "d"+"a"+"y"
dayName = "
startDay = 99

'this should not effect the for loop!

If dayOfTheWeek = 10-((2+1)*3) Then


Gosub Monday
ElseIf dayOfTheWeek =
Val(Mid((Left("1234",2)+Right("1234",2)),2,1)) Then
Gosub Tuesday
ElseIf dayOfTheWeek = Val("3") Then
dayName = "Wednes"+dayExt
ElseIf dayOfTheWeek = Val(Str(2+2)) Then
dayName = "Thurs"+dayExt
ElseIf dayOfTheWeek = Len("Hello") Then
Gosub DoFriday
dayName = dayVarPart+dayExt
ElseIf dayOfTheWeek >= 6 Then

' WeekEnd !!

280 J Walk Developer Guide


If dayOfTheWeek = 6 Then
For ii = 0 To 0 Step -1
dayName = dayName + "Saturday"
Next ii
ElseIf dayOfTheWeek = 7 Then
For ii = 0 To Len("0123456789") Step 11
dayName = dayName + "Sunday"
Next
Else
For ii = 0 To 10 Step 0
dayName = dayName + "Error : Daynumber > 7"
Exit For

' very dirty

Next ii
End If
Else
If dayOfTheWeek = 0 Then
dayName = "Unknown"
Else
If dayOfTheWeek <> Abs(dayOfTheWeek) Then
dayName = "Error : Daynumber < 0"
Else
dayName = "Error in script"
End If
End If
End If
If Left(dayName,len("Error")) = "Error" Then
iconStyle = 1 ' Error icon
Else
iconStyle = 4 'Information Icon
End If
buttonStyle

= 1 'Ok and Cancel button

messageTitle = "Dayname found with daynumber :


"+str(dayOfTheWeek)

' < 0

J Walk Developer Reference 281


If (Messagebox(messageTitle,dayName,iconStyle,buttonStyle) =
ID_CANCEL) Then
Exit For
End If
Next dayOfTheWeek
pressed = MessageBox("Re-run","Do you want to run
again?",2,4)
Wend
Goto TheEnd
Monday:
dayName = "Mon"
Gosub AttachDay
Return
AttachDay:
dayName = dayName+"day"
Return
Tuesday:
If Not Not (Not 1 = Not 1) Then
dayName = "Tues"
Gosub AttachDay
End If
Return
DoFriday:
If ((1=0) And (0=1)) Or ("a">"b") Then
Goto TheEnd
End If
dayVarPart = "Fri"
Return
TheEnd, End

Triggering OIS DLL Function Calls During Windows Client Execution


You can enable your users to make DLL function calls from a panel or panel control
designed using the Developer.

282 J Walk Developer Guide


Note: It is not possible to make this type of DLL call from Graphical Access because
all panels are built dynamically. It is also not possible to make this type of DLL link
from a panel built dynamically within J Walk Windows Client.
Developer can have J Walk Windows Client initiate a function call to another DLL.
This is done through the use of Windows Client procedures on a panel, push button,
pull down menu, graph value or entry field.
When you make a DLL function to be called by J Walk Windows Client, it must
conform to a certain calling convention, i.e. it must have certain parameters and
linkage specifications. Details are in the J Walk header file, GF.H, supplied with the
Developer. Refer to the file GF.DOC in the \JWALKDEV\OIS directory to find out
more about linking DLL functions with J Walk.
These are events that can occur to a panel field (or the panel itself) during a J Walk
Windows Client session.

J Walk Windows Client sends a Create message whenever a new panel is


opened.

Before a value is diplayed on a panel field, a FieldGet message is sent


providing a "hook" to call an OIS object to modify the value.

Before a value is sent to the host, a FieldPut message is sent providing a


"hook" to call an OIS object to modify the value.

J Walk Windows Client sends a Destroy message whenever a panel is closed.

J Walk Windows Client sends a Disable message whenever a panel or panel


field can no longer accept input from the user. This is usually the case when
another panel is opened. The previous panel then becomes disabled. The same
happens when input inhibit is switched on.

J Walk Windows Client sends an Enable message whenever it becomes


possible to input data into a panel or field. One common usage of this message
is for when popup panels are closed and a main panel becomes enabled again.
Another common usage is for when the input inhibit is switched off.

J Walk Windows Client sends a Command message whenever a push


button/menu item is pressed.

Note: Changing the focus to another field does not represent a trigger (state change)
that can be used within the Windows Client. The trigger must be a button press or
menu launch. Additionally, the changing (opening or closing) of a panel does
represent a trigger for calling an OIS object.
Follow these steps to perform this activity.

J Walk Developer Reference 283


1.

To connect to a DLL during J Walk Windows Client execution, a panel


developer enters the name of a DLL and the name of the function within that
DLL to be called into the Developer GUI Control Procedure dialog box.

2.

Besides defining the name and location of a function, an Developer panel


designer also defines on which occasions the function is called. This is done by
the events listed in the Included messages box.

3.

The procedure is assigned to an object. An object is linked to a panel field (like


a push button, menu item, panel definition, graph value or entry field). When
any of these events occur, the procedure as defined in the object definition will
be called by J Walk Windows Client.

Calling Java classes from the J Walk Java


Client
Steps for calling Java classes from the Java Client are presented herein. Several steps
are necessary to call Java classes from the Java Client including

use of the Developer to embed the OIS object Java Call into your panel

as well as a full J Walk Server Installation in order to test and use the calls.

The following example class demonstrates implementation of a JWalkFieldListener


to service requests made of the Java classes.
package ois;
public class MyOISObject implements JWalkFieldListener
{
public void fieldCreated (JWalkSession session, String
field_id)
{
System.out.println(" Field: " + field_id + " has been
CREATED");
}
public void fieldDestroyed (JWalkSession session, String
field_id)
{
System.out.println(" Field: " + field_id + " has been
DESTROYED");
}
public void fieldDisabled (JWalkSession session, String
field_id)

284 J Walk Developer Guide


{
System.out.println(" Field: " + field_id + " has been
DISABLED");
}
public void fieldEnabled (JWalkSession session, String
field_id)
{
System.out.println(" Field: " + field_id + " has been
ENABLED");
}
public void command (JWalkSession session, String field_id)
{
System.out.println(" Field: " + field_id + " has a
COMMAND event");
}
}

Follow these steps to perform this activity.


1.

In the J Walk Developer create a new OIS object (J Walk Java Call).

2.

Set the events to respond to in Message filer tab.

3.

Select the panel object (control) and attach your object to it (a button, for
example).

4.

Develop your Java class and give it the name you entered by the filename in the
OIS Object. Make your class part of the package OIS (so it is placed in the OIS
directory of the J Walk Java Client) and let the class implement the
JWalkFieldListener interface:
package ois;
public class MyOISObject implements JWalkFieldListener.

5.

Test it.

ChangeSession
Change the emulator session connection.
Script
Dim SessionID as string
ChangeSession ( SessionID )

J Walk Developer Reference 285


Parameter
SessionID: references the new session to connect to. This value must be a character
between A and Y.

FileCreate
This function creates a file that you can use to write a log file.
API
#include "gf.h"
#include "apifile.h"
int GFS__Export GfApiFileCreate (
GF_ApiHand api_hand,
const GF_Char GFS__Far* name_p );
ActiveX
Subroutine: FileCreate (name As String)
Parameters
api_hand: names the application. The file type is set equal to the default file type of
this application.
name: specifies the name of the file that is being created.

FileStringAppend
This function appends a string to the end of a file.
API
#include "gf.h"
#include "apifile.h"
int GFS__Export GfApiFileStringAppend (
GF_ApiHand api_hand,
const GF_Char GFS__Far* name_p,
const GF_Char GFS__Far* string_p );
ActiveX
Subroutine: FileStringAppend (file_name As String, string As String)
Parameters

286 J Walk Developer Guide


api_hand: references the Client front end session.
name: is the file that will be updated.
file_name: is the file that will be updated.
string: references a null terminated string appended to the end of the file.

OIS DDE Functions


OIS provides function calls to open and use DDE connections with other desktop
applications. The DdeInitiate function is required to enable any DDE transactions.

DdeInitiate
Opens a DDE link between a Client session and another application. This function
must be executed first before any of the other DDE functions can be executed.
API
#include "gf.h"
#include "apidde.h"
int GFS_Export GfApiDdeInitiate (
GF_ApiHand api_hand,
GF_Char GFS__Far* server_p,
GF_Char GFS__Far* topic_p,
GF_Int dde_hand );
Script
Dim server, topic as string
Dim dde_hand as integer
dde_hand = DdeInitiate ( server, topic )
ActiveX
Function: DdeInitiate (server As String, topic As String) As Long
Parameter
api_hand: references the Client session
server: names the application with which the Client session will attempt to establish a
DDE link.
topic: indicates which instance of the application should be used for the DDE link.

J Walk Developer Reference 287


dde_hand is returned and contains a handle to the DDE link. If the DDE link fails,
dde_hand equals 0.
Comment
Use DdeTerminate when the link is no longer required. There is a maximum of 10
concurrent DDE conversations.

DdeExecute
Request a DDE linked application to execute a command.
API
#include "gf.h"
#include "apidde.h"
int GFS_Export GfApiDdeExecute (
GF_ApiHand api_hand,
GF_Int dde_hand,
GF_Char GFS__Far* command_p );
Script
Dim dde_hand as integer
Dim command as string
DdeExecute ( dde_hand, command )
ActiveX
Subroutine: DdeExecute (dde_hand As Long, command As String)
Parameters
api_hand: references the Client session
dde_hand: references the already established DDE link.
command: points to a list of DDE commands
Comments
This function will not properly execute until a DDE link is established using
DdeInitiate.

288 J Walk Developer Guide

DdePoke
This function places a Client session data value into a specific location of the linked
DDE application instance. For example, a poke function would place a screen field or
panel field value into the cell (location) of an Excel spreadsheet (application instance).
API
#include "gf.h"
#include "apidde.h"
int GFS_Export GfApiDdePoke (
GF_ApiHand api_hand,
GF_Int dde_hand,
GF_Char GFS__Far* item_p,
GF_Char GFS__Far* value_p );
Script
Dim dde_hand as integer
Dim item, value as string
DdePoke ( dde_hand, item, value )
ActiveX
Subroutine: DdePoke (dde_hand As Long, item As String, value As String)
Parameters
api_hand: references the Client session
dde_hand: references the already established DDE link.
item: points to the location in the linked application.
value: contains the value that will be placed in the item.
Comments
This function will not properly execute until a DDE link is established using
DdeInitiate.

DdeRequest
This function extracts data from a specific location of a DDE linked application.
API
#include "gf.h"

J Walk Developer Reference 289


#include "apidde.h"
int GFS_Export GfApiDdeRequest (
GF_ApiHand api_hand,
GF_Int dde_hand,
GF_Char GFS__Far* item_p,
GF_Char GFS__Far* buffer_p,
GF_Int buffer_length );
Script
Dim buffer, item as string
Dim dde_hand as integer
buffer = DdeRequest ( dde_hand, item )
ActiveX
Function: DdeRequest (dde_hand As Long, item As String) As String
Parameters
api_hand: references the Client session
dde_hand: references the already established DDE link.
Item: points to the location in the DDE linked application where data will be
extracted.
Buffer: points to the storage area where the data will be placed.
buffer_length: is the maximum number of characters that can be placed into buffer.
All other characters will be truncated.
Comments
This function will not properly execute until a DDE link is established using
DdeInitiate.

DdeTerminate
This function closes an open DDE link.
API
#include "gf.h"
#include "apidde.h"
int GFS_Export GfApiDdeTerminate (

290 J Walk Developer Guide


GF_ApiHand api_hand,
GF_Int dde_hand );
Script
Dim dde_hand as integer
DdeTerminate ( dde_hand )
ActiveX
Subroutine: DdeTerminate (dde_hand As Long)
Parameters
api_hand: references the Client session
dde_hand: references the already established DDE link.
Comments
This function will not properly execute until a DDE link is established using
DdeInitiate.

EventNameGet
This function returns a string name for a Client session event, given the event code
value.
API
#include "gf.h"
#include "apievent.h"
int GFS__Export GfApiEventNameGet (
GF_ApiHand api_hand,
enum GF_EventCode event_code,
GF_Char GFS__Far buffer_p[GF_EVENT_NAME_BUFFER_LENGTH],
int buffer_length );
Parameters
api_hand: references the Client session.
event_code: indicates the type of event.
buffer: contains the corresponding Client session event name.
buffer_length: indicates the maximum size of the buffer.
See Also

J Walk Developer Reference 291


GfApiMsgEventRequest for a list of valid constant values.

OIS Host Functions


Host functions enable host cursor, field, dimension, screen and session information to
be read or altered.

HostCursorGet
Gets the current host screen cursor position. The upper left hand corner of the screen
is the starting position and has the value (1, 1).
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostCursorGet (
GF_ApiHand api_hand,
int GFS__Far* row_p,
int GFS__Far* column_p );
Script
Dim row, column as integer
HostCursorGet (row, column )
DDE
Item: HostCursorGet ( )
Returns: row, column
Java
public synchronized Point hostCursorGet ()

ActiveX
Subroutine: HostCursorGet (row As Long, column As Long)
Parameters
api_hand: references the Client session
row: is the vertical coordinate of cursor. For [80x24] size screens, the value will be
between 1 and 24. For [132x27] size screens, the value will be between 1 and 27
column: is the horizontal coordinate of cursor. For [80x24] size screen, the value will
be between 1 and 80. For [132x27] size screens, the value will be between 1 and 132

292 J Walk Developer Guide

HostCursorPut
This function sets the host screen cursor position based upon given coordinates.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostCursorPut (
GF_ApiHand api_hand,
int row,
int column );
Script
Dim row, columns as integer
HostCursorPut ( row, column )
DDE
Item: HostCursorPut ( row, column )
Java
public synchronized int hostCursorPut (Point hostCursor)

ActiveX
Subroutine: HostCursorPut (row As Long, column As Long)
Parameters
api_hand: references the Client session
row: is the vertical coordinate of cursor. For[80x24] size screens, the value will be
between 1 and 24. For [132x27] size screens, the value will be between 1 and 27
column: is the horizontal coordinate of cursor. For [80x24] size screen, the value will
be between 1 and 80. For [132x27] size screens, the value will be between 1 and 132
hostCursor: is the new position of the host cursor.
Comments
This function moves the cursor on the host screen to those given by the row and
column coordinates. It is only permitted to position the cursor on the operator
interface (OIA) line when there is a message showing on that line.
GF_ERROR_OIA_NO_MESSAGE is returned when the specified row is the OIA
row but there is no message on the OIA row.

J Walk Developer Reference 293

HostDimensionsGet
This function reads the screen size of the host session. There are two possible
dimensions, [24 x 80] or [27 x 132]. An extra row can be added if there is a standard
message line (on row 25 or 28, respectively). When there is a standard message line,
error_oia will be set non-zero.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostDimensionsGet (
GF_ApiHand api_hand,
int GFS__Far* height_p,
int GSF__Far* width_p,
int GSF__Far* error_oia_p);
Script
Dim height, width, error_oia as integer
HostDimensionsGet ( height, width, error_oia )
DDE
Item: HostDimensionsGet ( )
Returns: height, width, error_oia
Java
public synchronized Dimension hostDimensionsGet ()

ActiveX
Subroutine: HostDimensionsGet (heigth As Long, width As Long)
Parameters
api_hand: references the Client session.
height: contains the number of vertical lines in the screen.
width: contains the number of horizontal columns in the screen.
error_oia is non-zero if there is a message in the OIA line.

294 J Walk Developer Guide

HostFieldGetData
This function reads the contents of a named host field and places it in a data buffer.
Hidden host fields cannot be accessed by this function.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostFieldGetData (
GF_ApiHand api_hand,
GF_Char GFS__Far* name_p,
GF_HostFieldData GFS__Far* field_data_p,
GF_Char GFS__Far* buffer_p,
int buffer_length);
Script
Dim name, buffer as string
HostFieldGetData ( name, buffer )
DDE
Item: HostFieldGetData ( name )
Returns: buffer
Java
public synchronized String hostFieldGetData (String hostFieldName)

ActiveX
Function: HostFieldGetData (name As String) As String
Parameters
api_hand: references the Client session.
name: references the host field.
field_data: returns the field properties of the named host field. This parameter is only
available as an API function call and has the following definition:
typedef struct GF_HostFieldData
{
char dataFieldDisabled; flag indicating if field disabled

J Walk Developer Reference 295


char dataFieldHidden; flag indicating if field hidden
char dataFieldType; returns a constant host field type
char dataVioColour; Vio color code for field
short dataFieldLength; field length
}
buffer: is the storage area for the returned information.
buffer_length: indicates the maximum length of the buffer that can be returned. (For
API: If this parameter is set to 0, then only the properties of the field will be
returned.)
hostFieldName: is the field ID of the host field.
See also
Function HostFieldGetProp returns the field properties when using DDE or the
script language.

HostFieldGetProp
Reads the field properties of the named host field.
Script
Dim name as string
Dim property, value as integer
HostFieldGetProp ( name, property, value )
DDE
Item: HostFieldGetProp ( name, property )
Returns: value
Java
public synchronized int hostFieldGetProp (String hostFieldName, int

property)

ActiveX
Function: HostFieldGetProp (name As String, property) As Long
Parameters
name: references the host field.
hostFieldName: is the field ID of the host field.

296 J Walk Developer Guide


property: indicates which property of the host field should be read. Valid values
include:
1 = the Disabled status of the field (0=no, 1=yes)
2 = the Hidden status of the field (0=no, 1=yes)
3 = the Type of the field
4 = the Length of the field (number of characters)
5 = the Color of the field
value contains the result of reading the field property.
Note: Valid field property return values are: 0=unknown, 1=alphanumeric,
2=numeric only [0-9], 3=limitied alphanumeric [upper/lowercase ,.- and space],
4=numeric [0-9 , .+ - and space], 5=signed numeric [0-9 + -], 8=DBCS only, 9=no
DBCS allowed, 10=all DBCS or no DBCS whatsoever.

HostFieldPutData
This function places the contents of the buffer into the host field on the screen.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostFieldPutData (
GF_ApiHand api_hand,
GF_Char GFS__Far* name_p,
int line,
GF_Char GFS__Far* buffer_p,
int buffer_length);
Script
Dim name, buffer as string
Dim line as integer
HostFieldPutData ( name, line, buffer )
DDE
Item: HostFieldPutData ( name, line, buffer )
Java

J Walk Developer Reference 297


public synchronized int hostFieldPutData (String hostFieldName, int line,
String hostFieldData)

ActiveX
Subroutine: HostFieldPutData (name As String, line As Long, buffer As
String)

Parameters
api_hand: references the Client session.
name: references the host field.
hostFieldName: is the field ID of the host field.
hostFieldData: is the new contents.
line: if the host field spans multiple line, this references the line number (starting with
0) that should be updated.
buffer: is the storage area holding the new field value.
buffer_length: indicates the length of the buffer.

HostScreenGetLine
This function copies a line from the host screen and places it in a buffer. It is possible
to copy the OIA line but only if there is a message displayed.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostScreenGetLine (
GF_ApiHand api_hand,
int row,
GF_Char GFS__Far* buffer_p,
int buffer_length );
Script
Dim row as integer
Dim buffer as string
HostScreenGetLine (row, buffer )
DDE

298 J Walk Developer Guide


Item: HostScreenGetLine ( row )
Returns: buffer
Java
public synchronized String hostScreenGetLine (int row)

Returns the contents of the requested line on the host screen.


ActiveX
Function: HostScreenGetLine (row As Long) As String
Parameters
api_hand: references the Client session.
row: indicates the row on the screen that will be placed in the buffer.
buffer: is the storage for the row taken from the screen.
buffer_length: indicates the maximum size of buffer.

HostScreenGetRaw
This function gets any characters from the host screen and places them in a data
buffer. This function differs from HostScreenGetString in that this function will get
any characters from the screen, even non-display characters, such as passwords.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostScreenGetRaw (
GF_ApiHand api_hand,
int row,
int column,
int data_length,
GF_Char GFS__Far* buffer_p,
int buffer_length );
Script
Dim row, column, data_length as integer
Dim buffer as string
HostScreenGetRaw ( row, column, data_length, buffer )

J Walk Developer Reference 299


DDE
Item: HostScreenGetRaw ( row, column, data_length )
Returns: buffer
Java
public synchronized String hostScreenGetRaw (Point hostPos, int length)

ActiveX
Function: HostScreenGetRaw (row As Long, column As Long, data_length As
Long) As String

Parameters
api_hand: references the Client session
row: is the vertical coordinate of cursor. For[80x24] size screens, the value will be
between 1 and 24. For [132x27] size screens, the value will be between 1 and 27
column: is the horizontal coordinate of cursor. For [80x24] size screen, the value will
be between 1 and 80. For [132x27] size screens, the value will be between 1 and 132
hostPos: specifies the start position on the host screen
data_length: indicates the number of characters to copy
length: specifies the length of requested contents
buffer: names where the result will be stored
buffer_length: indicates the maximum number of characters that can be placed into
buffer.
Comments
Note: This function does not operate with the Communications Manager emulator.

HostScreenGetRect
Reads an area on the host screen and returns the area as a string.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostScreenGetRect (
GF_ApiHand api_hand,
int row,

300 J Walk Developer Guide


int column,
int height,
int width,
GF_Char GFS__Far* buffer_p,
int buffer_length );
DDE
Item: HostScreenGetRect ( row, column, height, width )
Returns: buffer
Java
public synchronized String hostScreenGetRect (Rectangle hostRect)

Returns the contents of the requested rectangle on the host screen.


ActiveX
Function: HostScreenGetRect (row As Long, column As Long, heigth As Long,
width As Long) As String
Parameters
api_hand: references the Client session.
row: indicates the vertical starting position for copying data. For[80x24] size screens,
the value will be between 1 and 24. For [132x27] size screens, the value will be
between 1 and 27
column: indicates the horizontal starting position for copying data. For [80x24] size
screen, the value will be between 1 and 80. For [132x27] size screens, the value will be
between 1 and 132.
height: indicates the vertical number of rows to copy.
width: indicates the horizontal number of characters to copy.
hostRect: specifies the rectangle on the host to return.
buffer: names where the result will be stored.
buffer_length: indicates the maximum number of characters that can be placed into
buffer.
Comments
Individual lines in the return buffer are separated by new line characters \n.

J Walk Developer Reference 301

HostScreenGetString
This function copies a string of characters from the host screen based upon their
location on the screen. It is possible to span multiple host fields.
API
int GFS__Export GfApiHostScreenGetString (
GF_ApiHand api_hand,
int row,
int column,
int data_length,
GF_Char GFS__Far* buffer_p,
int buf_len );
Script
Dim row, column, data_length as integer
Dim buffer as string
HostScreenGetString (row, column, data_length, buffer)
DDE
Item: HostScreenGetString ( row, column, data_length )
Returns: buffer
Java
public synchronized String hostScreenGetString (Point hostPos, int

length)

Returns the contents of the requested position on the host screen.


ActiveX
Function: HostScreenGetString (row As Long, column As Long, data_length As
Long) As String

Parameters
api_hand: references the Client session.
row: is the vertical coordinate of cursor. For[80x24] size screens, the value will be
between 1 and 24. For [132x27] size screens, the value will be between 1 and 27
column: is the horizontal coordinate of cursor. For [80x24] size screen, the value will
be between 1 and 80. For [132x27] size screens, the value will be between 1 and 132

302 J Walk Developer Guide


hostPos: specifies the start position on the host screen.
data_length: indicates how many characters should be copied from the screen.
length: specifies the length of requested contents.
buffer: is the storage area for the string taken from the screen.
buf_len: indicates the maximum number of characters that can be placed into buffer.

HostScreenPutString
This function places characters on the host screen based upon the current position of
the cursor. The string may contain characters and function key break sequences. The
string is interpreted character for character by the AS/400 until the end of the string is
reached or an error occurs.
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostScreenPutString (
GF_ApiHand api_hand,
GF_Char GFS__Far* buffer_p );
Script
Dim buffer as string
HostScreenPutString ( buffer )
DDE
Item: HostScreenPutString ( buffer )
Java
public synchronized int hostScreenPutString (String hostString)

Sets characters on the host screen based upon the current position of the cursor.
ActiveX
Subroutine: HostScreenPutString (buffer As String)
Parameters
api_hand: references the Client session.
buffer: references the characters to be processed by the host.
hostString: specifies the characters to be processed by the host.

J Walk Developer Reference 303


Comments
Reference the "apihost.h" file for a complete list of pre-defined constants mapping
function key values to constant names.

HostSessionQueryStatus
This function queries the status of the host session.
The status is returned in the second argument of the function call. The global ERR
variable is set to the raised error condition (0=no error).
API
#include "gf.h"
#include "apihost.h"
int GFS__Export GfApiHostSessionQueryStatus (
GF_ApiHand api_hand,
int GFS__Far* status_p,
int delay );
Script
Dim delay, status as integer
HostSessionQueryStatus ( delay, status )
DDE
Item: HostSessionQueryStatus ( delay )
Returns: status
Java
public synchronized int hostSessionQueryStatus (Boolean delay)

Queries the status of the host session.


ActiveX
Function: HostSessionQueryStatus (delay As Long) As Long
Parameters
api_hand: references the Client session
status: contains one of the following status codes:
GF_OK = 0. There is no error.

304 J Walk Developer Guide


GF_STATUS_INTERNAL = 4. The screen is in the normal unlocked input. The
delay, if requested, has been applied.
GF_STATUS_EXTERNAL = 2. The screen is in the normal unlocked state waiting
input. Since J Walk is connected via an external emulator, it is not possible to apply
the requested delay.
GF_STATUS_HOST_OPERATOR_ERROR = 3. The screen is presently waiting
for the operator to clear an input error by pressing the reset key.
GF_STATUS_BUSY = 1. The screen is presently in the Inhibited state.
delay: is only valid when using the internal emulator. When set to a non-zero value, a
delay will be applied in the case that the screen is in normal unlocked state waiting for
operator input for about one second. The emulator will only make contact with the
AS/400 when data (keystrokes) are to be sent. This means that there is time to get
the screen data, check that it is still the correct screen, and send data to the AS/400
without the danger that a break message is received.

OIS MainSession Functions


Main Session methods and attributes are used mainly to connect external DLLs with
GFAPI.DLL.

MainSessionConnect
Connects to a J Walk Client Environment session and returns an API handle. This
function is only suitable as an API function. DDE calls and scripts make the
connection automatically.
API
#include "gf.h"
#include "apimain.h"
int GFS__Export GfApiMainSessionConnect (
GF_Char session_id,
GF_Char GFS__Far* app_name_p,
unsigned long capability_bits,
enum GF_ConnectMode connect_mode,
GFS_WinHand hwnd
GFS_Anchor hab,
GF_ApiHand GFS__Far* api_hand );

J Walk Developer Reference 305


ActiveX
Subroutine: MainSessionConnect (session_id As GF_SessionID, connect_mode As
GF_ConnectMode)

Parameters
session_id: identifies the specific Client session to use when establishing a
connection with another application. This is a value between 'A' and 'Y' where the first
session is 'A', the second session is 'B', and so on.
app_name_p: names the application that the Client session will be communicating
with. This parameter is only necessary when you want to send messages using the
MsgWinmsgSend function.
capatibility_bits: in combination with app_name are used to control which messages
are sent to this DLL. Each Client session that supports at least the same capability bit
value will receive the message issued with the MsgWinmsgSend call.
In most cases, you will not want to use this mechanism and it is best to set this
parameter to the value 0xFFFFFFFF.
connect_mode: specifies if a link will be established with one Client session or
multiple sessions.
The parameter connect_mode defines how the function should attach to the Client
session(s). If the value of connect_mode is GF_CONNECT_API, then the
application or DLL connects to the first available Client session.
A value of GF_CONNECT_LOCKED will connect to a specific Client session. In
this mode, all OIS API functions may be used. Note that only one application may
connect to a Client session.
Note: It is not recommended to keep a locked connection for longer than necessary
as this could lock other applications out.
A value of GF_CONNECT_DLL will connect to a specific session and allows
multiple applications to connect to it.
Hwnd: is the handle of an optional window to receive messages and event messages
using MsgEventRequest.
Hab: indicates the instance of the calling application (named by app_name).
api_hand: is a pointer to the connection handle. This handle should be passed on all
subsequent API calls.

MainSessionDisconnect
This function disconnects an API connection.
API

306 J Walk Developer Guide


#include "gf.h"
#include "apimain.h"
int GFS__Export GfApiMainSessionDisconnect (
GF_ApiHand api_hand );
ActiveX
Subroutine: MainSessionDisconnect ()
Parameters
api_hand: identifies the communication link that will be disconnected.

MainSessionGetId
This function gets the Windows session identification letter. This function is used in
GF_CONNECT_DLL mode.
API
#include "gf.h"
#include "apimain.h"
int GFS__Export GfApiMainSessionGetId (
GF_ApiHand api_hand,
GF_Char GFS__Far* session_id_p );
ActiveX
Function: MainSessionGetId ()As GF_SessionID
Parameters
api_hand: specifies the connection.
session_id.: When a J Walk Windows Client function calls an open DLL due to this
being specified in an object belonging to the active panel (Developer definition), then
that DLL can use this function to ask which session called it.

MainSessionGetWinHand
This function gets the window handle of the specified session's parent.
API
#include "gf.h"
#include "apimain.h"
int GFS__Export GfApiMainSessionGetWinhand (

J Walk Developer Reference 307


GF_ApiHand api_hand,
GFS_WinHand GFS__Far* win_hand_p );
ActiveX
Function: MainSessionGetWinHand ()As Long
Parameters
api_hand: names the connection
win_hand: names the window handle

MainSessionTerminate
Closes a Client session.
API
#include "gf.h"
#include "apimain.h"
int GFS__Export GfApiMainSessionTerminate (
GF_ApiHand api_hand,
GF_Bool user_ask );
Script
Dim user_ask as integer
SessionTerminate ( user_ask )
DDE
Item: SessionTerminate ( user_ask )
ActiveX
Subroutine: MainSessionTerminate (user_ask As Boolean)
Parameters
api_hand: references the Client session to close.
user_ask: indicates if the user should confirm before closing the Client session.
0 = close session without displaying confirmation message
1 = display confirmation and only close the session if the user presses the OK push
button.

308 J Walk Developer Guide

MainWindowSetMode
This function modifies the display state of the main application window. It does not
set the state of popups.
API
#include "gf.h"
#include "apimain.h"
int GFS__Export GfApiMainWindowSetMode (
GF_ApiHand api_hand,
enum GF_WinMode win_mode );
Script
Dim win_mode as integer
WindowSetMode ( win_mode )
DDE
MainWindowSetMode ( win_mode )
ActiveX
Subroutine: MainWindowSetMode (win_mode As GF_WinMode)
Parameters
api_hand: names the Client session window
win_mode: names the window mode that the session will be placed in. A Client
session can be placed in the following window views:

GF_WIN_MINIMIZED (= 0) has the effect of minimizing the session

GF_WIN_RESTORED (=1) opens a minimized session to its previous open


state

GF_WIN_MAXIMIZED (=2) opens and maximizes the session

GF_WIN_RESTORED_FOCUS (=3) gives the Client session focus.

Messagebox
Displays a standard message box as a graphical panel. This function returns the value
of the selected push button.
API
#include "gf.h"

J Walk Developer Reference 309


#include "apimain.h"
int GFS__Export
int GFS__Export GfApiMessagebox (
GF_ApiHand api_hand,
GF_Char GFS__Far* title_p,
GF_Char GFS__Far* message_p,
enum GF_IconStyle icon_style,
enum GF_ButtonStyle button_style,
GF_Int GFS__Far* msg_return );
Script
Dim msg_return, icon_style, button_style as integer
Dim title, message as string
msg_return = Messagebox ( title, message, icon_style, button_style )
DDE
Item: Messagebox ( title, message, icon_style, button_style )
Returns: msg_return
ActiveX
Function: MessageBox (title As String, message As String, icon_style As
GF_IconStyle, button_style As GF_ButtonStyle) As Long
Parameters
api_hand: references the Client session
title: is displayed in the title bar of the message box panel.
message: is displayed in the body of the message box.
icon_style: controls the appearance of an icon that indicates the severity of the
message. The value of this parameter is limited to one of these values. The constant
definition is only available using API function calls.
GF_ICON_CRITICAL = 1 (Stop)
GF_ICON_QUERY = 2 (Question)
GF_ICON_WARNING = 3 (Exclamation)
GF_ICON_INFORMATION = 4 (Informative)

310 J Walk Developer Guide


button_style: controls the appearance of the push buttons at the bottom of the
message box. You can show an OK pushbutton or both an OK and a Cancel
pushbutton. The constant definition is only available using API function calls.
0 = OK
1 = OK/Cancel
2 = Abort / Retry / Cancel
3 = Yes / No/ Cancel
4 = Yes / No
5 = Retry / Cancel
msg_return: contains the value of the button pressed. Possible values include:
1 = OK
2 = Cancel
3 = Abort
4 = Retry
5 = Ignore
6 = Yes
7 = No

OIS Multimedia Functions


OIS multimedia functions are provided for CD audio track, .WAV audio file and .AVI
movie file objects can be played and controlled.

MmPause
Stops a multimedia object from playing and keeps a pointer to the current location in
the playing sequence. Executing this function a second time on the same multimedia
object starts playing from the paused position.
API
#include "gf.h"
#include "apimm.h"
int GFS__Export GfApiMmPause (
GF_ApiHand api_hand,
GF_Char GFS__Far* alias_p);

J Walk Developer Reference 311


Script
Dim alias as string
MmPause ( alias )
DDE
MmPause ( alias )
ActiveX
Subroutine: MmPause (alias As String)
Parameters
api_hand: names the Client session window
alias: names the multimedia object that should be paused (or released from being
paused).
Comments
This function should be called after MmPlay. MmPlay initializes the alias needed for
the device.

MmPlay
Opens a multimedia object if it is not already open and starts playing the object from
the beginning.
API
#include "gf.h"
#include "apimm.h"
int GFS__Export GfApiMmPlay (
GF_ApiHand api_hand,
GF_Char GFS__Far* file_p,
GF_Char GFS__Far* alias_p,
GF_Char GFS__Far* param_p);
Script
Dim file, alias, parameter as string
MmPlay ( file, alias, parameter )
DDE
MmPlay ( file, alias, parameter )

312 J Walk Developer Guide


ActiveX
Function: MmPlay (file As String, [optional_parm]) As String
Parameters
api_hand: names the Client session window.
file: names the multimedia object that should be played.
alias: is returned from this function with the alias that names this multimedia object
for other multimedia functions.
parameter or optional_parm: is an optional parameter that can be used to indicate,
for example, which track to play of a CD Audio. If the device supports video, the
parameter contains the panel field ID to play on.
Comments
To access a device instead of a file, use the logical name (e.g. CDAUDIO for a CDROM player).
When this function is executed for a paused multimedia object, it will resume playing
where it was paused.

MmSkipNext
This function is used on multimedia objects that contain more than one element that
can be played, for example, a musical CD with various songs. This function skips the
current element and begins playing the next element.
API
#include "gf.h"
#include "apimm.h"
int GFS__Export GfApiMmSkipNext (
GF_ApiHand api_hand,
GF_Char GFS__Far* alias_p);
Script
Dim alias as string
MmSkipNext ( alias )
DDE
MmSkipNext ( alias )
ActiveX

J Walk Developer Reference 313


Subroutine: MmSkipNext (alias As String)
Parameters
api_hand: names the Client session window
alias: names this multimedia object.
Comments
This function must be called after MmPlay.
This function only works for track oriented devices like a CD-ROM player.

MmSkipPrev
This function is used on multimedia objects that contain more than one element that
can be played, for example, a musical CD with various songs. This function skips the
current element and begins playing the previous element.
API
#include "gf.h"
#include "apimm.h"
int GFS__Export GfApiMmSkipPrev (
GF_ApiHand api_hand,
GF_Char GFS__Far* alias_p);
Script
Dim alias as string
MmSkipPrev ( alias )
DDE
MmSkipPrev ( alias )
ActiveX
Subroutine: MmSkipPrev (alias As String)
Parameters
api_hand: names the Client session window
alias: names this multimedia object.
Comments
This function must be called after MmPlay.
This function only works for track oriented devices like a CD-ROM player.

314 J Walk Developer Guide

MmStop
This function stops and closes a multimedia object.
API
#include "gf.h"
#include "apimm.h"
int GFS__Export GfApiMmStop (
GF_ApiHand api_hand,
GF_Char GFS__Far* alias_p);
Script
Dim alias as string
MmStop ( alias )
DDE
MmStop ( alias )
ActiveX
Subroutine: MmStop (alias As String)
Parameters
api_hand: names the Client session window
alias: names the multimedia object.

OIS Msg Functions


Functions with Msg refer to functions that process Microsoft Windows messages.
They are used to monitor messages and use them as triggers, indicating when other
functions/procedures should be performed.

MsgEventRequest
This function requests notification when something occurs in a Client session.
API
#include "gf.h"
#include "apimsg.h"
int GFS__Export GfApiMsgEventRequest (
GF_ApiHand api_hand,

J Walk Developer Reference 315


GFS_WinMsg win_msg,
enum GF_MsgEventMode event_mode,
GF_Char GFS__Far* event_list_p );
Parameters
api_hand: points to the application that will receive the messages. The message is
posted to the window handle, hwnd, specified in the MainSessionConnect function.
win_msg: is a flag indicating what message should be sent.
This function only retains one message identifier so that if a different message
identifier is specified in win_msg, this will be used for all events.
event_mode: specifies how the specified events (in event_list_p) are to be combined
with already enabled events in order to send the message, win_msg. An application
that is connected to GFAPI.DLL can request that messages are posted to it when
certain events occur (see Message Event Modes, under API constants).
event_list_p: is a list of one or more events. (See Message Event Codes, under API
constants for a complete list of events.) The string should be terminated with a
GF_Char containing GF_MSG_EVENT_NONE.

MsgWinmsgSend
This function is designed to be used by a function in a DLL that is called as a result of
procedure being activated from a Client panel. It allows this DLL to either Send or
Post a message to an application that was designed to work together with a Client
session.
When the message is posted, then a zero error code only indicates that the application
could be posted. When the message is sent or posted to applications connected to the
API, then it can occur that more than one application returns a zero error code.
API
#include "gf.h"
#include "apimsg.h"
int GFS__Export GfApiMsgWinmsgSend (
GF_ApiHand api_hand,
enum GF_MsgSendMode send_mode,
GFS_WinMsg win_msg,
GFS_WinParam2 win_param2,
GF_Char GFS__Far* app_name_p,

316 J Walk Developer Guide


unsigned long capability_bits,
GFS_WinReturn GFS__Far* reply_p,
int continue_flag );
Parameters
api_hand: references the Client session that will send the message. The message will
be sent to any application that is connected to GFAPI which specify the same
application name and at least the compatibility bits specified here.
send_mode: specifies whether the message should be sent or posted and which
applications should be considered to receive the message when the message is sent to
an application, then the return code is the code returned by the application. A
complete list of constant send mode messages can be found in the API Constants
appendix, under Message Send Mode
win_msg: specifies the message to be send
win_param2: will be supplied as the second parameter of the message. The Session
Id will automatically be added as the first parameter of the message.
app_name_p: references an optional application name
compability_bits: is used with app_name_p to control which Client sessions receive
the message. The capability bits of the other Client session must support at least the
same capability bits as issued by this function call. All other Client session client
programs will not receive this message.
In most cases, you dont want to use this mechanism. In which case, it is best to set
the capability_bits to 0xFFFFFFFF.
reply_p: references the last successful reply.
continue_flag: is TRUE, then all suitable applications will be sent or posted the
message. If the flag is FALSE, then the message Sending/Posting will be stopped on
the first application with zero error code.

OIS Panel Functions


OIS panel functions allow information in panel controls to be read or altered.

PanelButtonClick
Executing this function has the same effect as clicking on push buttons, notebook
pages (sub windows) and menu entries using the left mouse button.
API
#include "gf.h"

J Walk Developer Reference 317


#include "apipan.h"
int GFS__Export GfApiPanelButtonClick (
GF_ApiHand api_hand,
GF_Char GFS__Far* button_name_p );
Script
Dim button_name as string
PanelButtonClick ( button_name )
DDE
Item: PanelButtonClick ( button_name )
Java
public synchronized void panelButtonClick (String panelFieldName)

Executing this method has the same effect as clicking on the specified button.
ActiveX
Subroutine: PanelButtonClick (button_name As String)
Parameters
api_hand: references the name of the Client session
button_name: indicates the button on the panel that should be clicked. This function
cannot access a push button without a field ID.
panelFieldName: specifies the field ID of the button to be clicked.

PanelFieldGetData
This function reads the value held in a named panel field and places it into a buffer.
The length of the panel field cannot exceed the size of the buffer. If it does, the
contents will be truncated.
This function also returns information about the panel field's definition which is
stored in a pre-defined data structure. When the length of the buffer is set to zero (0),
only the field definition information is returned by this function.
Note: When applying this function over checkboxes and radiobuttons, the function
returns the evaluated value. This can be handy when you use the hostfield break
down technique in the selected or unselected value definition.
API
#include "gf.h"

318 J Walk Developer Guide


#include "apipan.h"
int GFS__Export GfApiPanelFieldGetData (
GF_ApiHand api_hand,
GF_Char GFS__Far* name_p,
GF_PanelFieldData GFS__Far* field_data_p,
GF_Char GFS__Far * buffer_p,
int buffer_length );
Script
Dim name, buffer as string
PanelFieldGetData ( name, buffer )
DDE
Item: PanelFieldGetData ( name )
Returns: buffer
Java
public synchronized String panelFieldGetData (String panelFieldName)

Returns the contents of the named panel field.


ActiveX
Function: PanelFieldGetData (name As String) As String
Parameters
api_hand: references the Client session.
name: references the data which will be read from the panel field.
panelFieldName: specifies the panel field ID.
field_data: returns the field properties of the named panel field. This parameter as
only available as an API function call and has the following definition:
typedef struct GF_PanelFieldData
{
char dataFieldDisabled; // disabled flag
char dataFieldHidden; // hidden flag
char dataFieldType;
char Reserve[5];

// field type indicator


// reserved for future use

J Walk Developer Reference 319


short dataFieldLength // field length
}
The dataFieldType indicator can be set to one of the constants the Panel Field Type
constants.
buffer: references the storage area for the resulting data
buffer_length: indicates the maximum number of characters to read from the panel
field
See also
Panel field type constants for a complete list of possible values for the element
dataFieldType of the field_data parameter.
Function PanelFieldGetProp returns the field properties when using the DDE or
script language.

PanelFieldGetProp
Reads the field properties of the named panel field.
Script
Dim name as string
Dim property, value as integer
PanelFieldGetProp ( name, property, value )
DDE
Item: PanelFieldGetProp ( name, property )
Returns: value
Java
public synchronized int panelFieldGetProp (String panelFieldName, int

property)

Returns the value of the requested property of the named panel field.
ActiveX
Function: PanelFieldGetProp (name As String, property As
GF_FieldProperty) As Long

Parameters
name: references the panel field.
panelFieldName: specifies the panel field ID.

320 J Walk Developer Guide


property: specifies which property should be requested of the panel field. Valid values
include:
1 = the Disabled status of the field
2 = the Hidden status of the field
3 = the Type of the field
4 = the Length of the field
value: stores the results of reading the panel field property.
See also
Panel field types for a pre-defined list of panel field types when property refers to
the type of panel field (3).

PanelFieldlistGetData
This function reads the field values from the panel for a given list of field values.
API
#include "gf.h"
#include "apipan.h"
int GFS__Export GfApiPanelFieldlistGetData (
GF_ApiHand api_hand,
GF_Char GFS__Far* name_p,
GF_Char GFS__Far* buffer_p,
int buffer_length );
DDE
Item: PanelFieldlistGetData ( name )
Returns: buffer
Java
public synchronized String panelFieldlistGetData (String

panelFieldName_list)

Returns the contents of the named panel fields.


The new line character '\n' will be used to separate between different field values
when field names are separated by demi-colons. the tab '\t' will be used to separate
between different field values when field names are separated by commas.
ActiveX

J Walk Developer Reference 321


Function: PanelFieldlistGetData (name As String) As String
Parameters
api_hand: references the Client session used for this function.
name: points to a list of field names that will be read from the panel. Field names can
be separated with either commas or semi-colons.
buffer: points to a storage area where field values will be placed. The new line
character \n will be used to separate between different field values when field names
are separated by semi-colons. The tab \t will be used to separate between different
field values when field names are separated by commas.
buffer_length: indicates the maximum number of characters that can be placed into
the buffer area. Any additional characters will be truncated.
panelFieldName_list: specifies the field names of the panel fields.
Comments
This function is primarily used with DDE.

PanelFieldPutData
This function places the contents of a data buffer into a panel field. If the panel field
has multiple lines, then the specific line where the data should be placed in the panel
field is significant parameter. The first line of the panel field is numbered 0.
Note: In using this function on checkboxes and radiobuttons, the value you set must
match the value which which is defined in the checkbox / radiobutton definition as
the selected or unselected value.
API
#include "gf.h"
#include "apipan.h"
int GFS__Export GfApiPanelFieldPutData (
GF_ApiHand api_hand,
GF_Char GFS__Far* name_p,
int line,
GF_Char GFS__Far* buffer_p,
int buffer_length );
Script
Dim name, buffer as string

322 J Walk Developer Guide


Dim line as integer
PanelFieldPutData ( name, line, buffer )
DDE
Item: PanelFieldPutData ( name, line, buffer )
Java
public synchronized void panelFieldPutData (String panelFieldName, int
line, String panelFieldData)

Sets the contents of the named panel field.


ActiveX
Subroutine: PanelFieldPutData (name As String, line As Long, buffer As
String)

Parameters
api_hand: references the Client session.
name: points to the panel field that will be updated.
panelFieldName: specifies the panel field ID.
line: points to the line of a multi-line panel field that will be updated (if the panel field
spans multiple lines, this contains the line (starting with 0) that should be updated.
buffer: contains the new contents of the panel field
buffer_length: indicates the maximum number of characters of the buffer that will be
copied to the panel field.
panelFieldData: specifies the new contents.

PanelNameGet
This function returns the name of the application, name, or panel field that has focus.
The name returned is based upon the number entered in the name parameter.
API
#include "gf.h"
#include "apipan.h"
int GFS__Export GfApiPanelNameGet (
GF_apiHand api_hand,
enum GF_Name name,
GF_Char GFS__Far* buffer_p,

J Walk Developer Reference 323


int buffer_length );
Script
Dim name as integer
Dim buffer as string
PanelNameGet ( name, buffer )
DDE
Item: PanelNameGet ( name )
Returns: buffer
Java
public synchronized String panelNameGet (int nameType)

Requests the name of the application, name, or panel field that has focus.
ActiveX
Function: PanelNameGet (name As GF_NameType) As String
Parameters
api_hand: references the name of the Client session.
nameType: specifies the type of information that should be read (see name for
variable settings).
name: indicates the type of information that should be read. The name parameter can
have the following values:
GF_NAME_PRODUCER=1 (package producer)
GF_NAME_APPLICATION=2 (application name)
GF_NAME_APP_FILE=3 (application file name)
GF_NAME_PANEL=4 (active panel name)
GF_NAME_SCREEN=5 (active screen name)
GF_NAME_FOCUS_FIELD=6 (the Field ID of the field in focus)
buffer: references the storage area for the value
buffer_length: indicates the maximum number of characters that can be read into the
buffer.
Comments
If there is no application or panel identified or no field in focus, the return code is
GF_ERROR_NAME_NOT_AVAILABLE.

324 J Walk Developer Guide

PcCommand
Executes a command line per an operating system.
API
#include "gf.h"
#include "apimain.h"
int GFS__Export GfApiPcCommand (
GF_ApiHand api_hand,
enum GF_OperatingSystem pc_os,
GF_Char GFS__Far* pc_command,
GF_Int GFS__Far* pc_return );
Script
Dim pc_os as integer
Dim pc_command as string
PcCommand ( pc_os, pc_command )
DDE
Item: PcCommand ( pc_os, pc_command )
Returns: pc_return
ActiveX
Function: PcCommand (pc_command As String) As Long
Parameters
api_hand: references the Client session used for this function.
pc_os: is the operating system name under which the command will be executed. The
valid values are listed below. The constants can only be used for API function calls.
GF_OS_DOS = 2
GF_OS_WINDOWS = 4
pc_command: is the command as it would appear on the command line.
pc_return: is the operating system return code from executing the pc_command.
Examples:
PcCommand (4,"notepad myfile.txt")

J Walk Developer Reference 325


or PcCommand (4,"regedit")
or PcCommand (4,"e:\docs\mine.doc")

Panel Field Types Script Constants


GF_PANEL_FIELDTYPE_TEX
T

text field

GF_PANEL_FIELDTYPE_INO
UT

entry field

GF_PANEL_FIELDTYPE_LIST

list box

GF_PANEL_FIELDTYPE_BUT
TON

push button

GF_PANEL_FIELDTYPE_CHE
CK

check box

GF_PANEL_FIELDTYPE_RADI
O

radio button

GF_PANEL_FIELDTYPE_OUT

output field

GF_PANEL_FIELDTYPE_GRO
UP

group box

GF_PANEL_FIELDTYPE_RECT rectangle
GF_PANEL_FIELDTYPE_FRA
ME

frame

GF_PANEL_FIELDTYPE_GRA
PH

graph

GF_PANEL_FIELDTYPE_USER

user window

GF_PANEL_FIELDTYPE_MLE

multiple line entry field

GF_PANEL_FIELDTYPE_COM
BO

combination box

GF_PANEL_FIELDTYPE_SPIN

spin button

GF_PANEL_FIELDTYPE_SUB

subwindow

OIS Script Functions


Some OIS functions provide methods for interacting with J Walk script language
properties and execution. These functions can be executed from Scripts, DDE calls,
and API calls.

326 J Walk Developer Guide

ScriptCall
Opens a file containing a script and executes the script.
API
#include "gf.h"
#include "apiscri.h"
int GFS__Export GfApiScriptCall (
GF_ApiHand api_hand,
GF_Char GFS__Far* script_name_p );
Script
Dim script_name as string
ScriptCall ( script_name )
DDE
Item: ScriptCall ( script_name )
ActiveX
Subroutine: ScriptCall (script_name As String)
Parameters
api_hand: references the Client session
script_name: references the script that will be executed.

ScriptExec
Executes a series of script commands passed to it as a parameter.
API
#include "gf.h"
#include "apiscri.h"
int GFS__Export GfApiScriptExec (
GF_ApiHand api_hand,
GF_Char GFS__Far* script_p );
DDE
Item: ScriptExec ( script )
ActiveX

J Walk Developer Reference 327


Subroutine: ScriptExec (script As String)
Parameters
api_hand: references the Client session
script: points to string of script commands to be executed. Script lines should be
separated by a new line \n character.

ScriptGlobalGet
Returns the value of a global variable defined within a script.
API
#include "gf.h"
#include "apiscri.h"
int GFS__Export GfApiScriptGlobalGet (
GF_ApiHand api_hand,
GF_Char GFS__Far* var_name_p,
GF_Char GFS__Far* buffer_p,
int buffer_length );
DDE
Item: ScriptGlobalGet ( var_name )
Returns: buffer
ActiveX
Function: ScriptGlobalGet (var_name As String) As String
Parameters
api_hand: references the Client session
var_name: references the global variable whose value will be read.
buffer: holds the global variable value.
buffer_length: is the maximum number of characters that can be placed into buffer.
See also
The Global statement of the OIS script language.

ScriptGlobalSet
Sets the value of a global variable defined within a script or create it if it doesnt exist.

328 J Walk Developer Guide


API
#include "gf.h"
#include "apiscri.h"
int GFS__Export GfApiScriptGlobalSet (
GF_ApiHand api_hand,
GF_Char GFS__Far* var_name_p,
GF_Char GFS__Far* var_value_p,
enum GF_ScriptVarType var_type );
DDE
Item: ScriptGlobalSet ( var_name, var_value, var_type )
ActiveX
Subroutine: ScriptGlobalSet (var_name As String, var_value As String, var_type)
Parameters
api_hand: references the Client session being called by this function.
var_name: references the global variable whose value will be set.
var_value: holds the global variable value.
var_type: indicates the type of global variable to set. Possible values include:
GF_SCRIPT_VAR_STRING = 0 (string variable)
GF_SCRIPT_VAR_NUMERIC = 1 (integer variable)
See also
The Global statement of the OIS script language.

SessionStartupDataGet
This function reads the value of the Client command line parameter:
OpenInterfaceStartupData. This parameter is set within the JWALK.INI file (or using
/GOPEISD from the command line). The purpose of this data is to assist in
confirming if this Client session is the one that should be locked before locking it.
API
#include "gf.h"
#include "apisess.h"
int GFS__Export GfApiSessionStartupDataGet (

J Walk Developer Reference 329


GF_apiHand api_hand,
GF_Char session_id,
GF_Char GFS__Far* buffer_p,
int buffer_length );
ActiveX
Function: SessionStartupDataGet ()As String
Parameters
api_hand: references the name of the Client session
session_id: controls which J Walk session should be connected to.
buffer: points to the storage area where the StartupData value will be stored.
buffer_length: indicates the maximum length of the buffer. In any case, this value
cannot exceed 30..

URLOpen
Opens the specified URL in the current browser.
Script
Dim url as string
URLOpen (url)
Java
public synchronized void URLOpen (String url)

Parameters
url: specifies the url address to be opened.

WINHelp
Use this script function to call any help file via the WinHelp API. Your help file must
contain the references to support the specified call type.
Note: This function only works within the Windows (16 and 32bit) platforms.
Script Only
Dim filename_string, data_string as string
Dim action_number as int
WINHELP (filename_string, action_number, data_string)

330 J Walk Developer Guide


Parameters
filename_string: is the name of the Windows help file to be called.
action_number: is an action to be performed, these map one-to-one to the
Windows WinHelp() call action codes, see possible action codes below.
data_string: additional data, dependent on the action code, see below.
Selective action code integers are specified as defined in the "Windows.h" file
documenting the WinHelp() call.
Valid integers and associated API functions are listed:
1: HELP_CONTEXT
2: HELP_QUIT
3: HELP_INDEX
3: HELP_CONTENTS
4: HELP_HELPONHELP
5: HELP_SETINDEX
5: HELP_SETCONTENTS
8: HELP_CONTEXTPOPUP
9: HELP_FORCEFILE
11: HELP_FINDER
257: HELP_KEY
258: HELP_COMMAND
261: HELP_PARTIALKEY
513: HELP_MULTIKEY
Note: The HELP_SETWINPOS action code is NOT supported. Supply only the
integer value for an action code.
When specifying the HELP_MULTIKEY action code (513), the last data parameter "
data_string" is treated as a compound string requiring the first character to be the
keyword table identifier (e.g. "A") with the actual keyword phrase following.
Example: "ASample" would specify keyword table A and phrase "Sample."
In such a case, your Developer project settings must specify the same table identifier
("A").

J Walk Developer Reference 331

Data Access Scripting Methods


Data Access is utilized by creating panel objects containing references which result in
queries for Data Access Repository file-field values to be used within the panel object.
Data Access scripting references can also be created and attached to panel objects.
First, remember that using Data Access references is designed to function similarly to
host field and text expression evaluation processes already existing in J Walk. So
consider the "evaluation flow" (hierarchy) when you define a reference which is
resolved using these other referencing techniques.
In order to fully "see" how references are evaluated, consider the operation of the
"local data pool" which regulates calls over the network for additional queries by
combining these queries and holding evaluated references for immediate recall.
When you call for Data Access file-field (create a reference), you are actually
requesting a file containing a specific field. Over the host system, this is called a
"query" and is similar (in syntax) to other query languages. A special structure is
applied when you create an expression which contains a reference to a Data Access
item.
When creating your own script (calling a Data Access request), there are two steps to
efficiently use Data Access resources. Each step is supported by a script function:

DataAccessReceived verifies if the data pool is already populated with the


requested value.

DataAccessRequest sends a query to specify a reference to be sent back to


the local data pool.

When using these methods (and all other evaluation methods), there will be a need to
review interim results and double check provided file index keys (for record selection)
are as you wish. Testing a Live Session is useful but may not reveal the "actual
mistaken reference" or which index key still has no value (blank). To get the complete
view over the panel you are working on, use the Troubleshoot Assistant to create a
Troubleshoot Report.
Example scripts can be found in the Car Demo referring to Data Access services.
When you script, the real issue is "protecting" entry field errors based on invalid
values such as blank space " " or other non-typical character.

DataAccessReceived
This function is used to poll the local Data Access data pool before passing an actual
request to the Data Access Server. This function returns a 1 (=true) or 0 (=false) it
into a buffer.

332 J Walk Developer Guide


If the returned value is "true," then the result is immediately passed to the panel
(without sending another request).
If the test is false, then a request should be sent containing the query for the reference
(see DataAccessRequest).
Script
Dim davalue as string
Dim reference as string
reference="@!CARB02.NAME.CNTRCT=@S3CNTRCT@@" 'example
reference S3CNTRCT is a hostfield containing the current
contract number

DataAccessReceived (reference) = test condition


Parameters
reference: contains reference expression resulting in a Data Access request.
test condition: specifies a logical test value (0/1).
buffer: references the storage area for the resulting flag.
See also
DataAccessRequest

DataAccessRequest
This function is used to send a Data Access query request to the Data Access Server.
The function waits for a result before returning control.
Script
Dim davalue as string
Dim reference as string
reference="@!CARB02.NAME.CNTRCT=@S3CNTRCT@@" 'example
reference S3CNTRCT is a hostfield containing the current
contract number

DataAccessRequest (reference,davalue)
Parameters
reference: contains reference expression resulting in a Data Access request.
davalue: references the storage area for the returned result.
See also
DataAccessReceived

J Walk Developer Reference 333

Data Access Reference Syntax


Data Access service can be invoked using panel references or script references.
When you want to write your own expression which refers to Data Access File, Field
and Key selection, the following syntax is required:
@!DA File name. DA Field name. Key =expression @
Note: For compound key references, the "Key =" assignment can be "expanded" for
the number of keys: Key1 = , Key2 = , Key3 = , etc. where each key is a valid key
field name.
To exemplify the possibilities using Data Access References, here are two examples.
The first demonstrates all possibilities for a simple assignment while the second
demonstrates the use of a compound key.
Data Access Assignment References
CARB01.MILAGE.CNTRCT =one of the following expressions

"18942" or other fixed (constant) value

"@S9CNTR@" or other host field reference

"@&TXT_REF@ or other text reference

@&&scriptvar@ or other script variable (global or local)

Data Access Compound Key References


CARB03.MILAGE.YEAR = @S9YEAR@, (or other host field reference)
MONTH = 3, (or other fixed values)
BRANDC = @&&scriptvar @ @ (using any variables, etc.)

Remember: For any expressions you create, it is possible to evaluate the results by
inspecting a Troubleshoot report.
Data Access Script Functions
Data Access service can be invoked using panel references or script references. Script
functions which work with Data Access service are:

DataAccessReceived

DataAccessRequest

334 J Walk Developer Guide

Data Access script reference example


The following script exemplifies the use of other references (host field) in
combination with Data Access referencing. Comments are provided along the way
following the '. Use of the data pool, Data Access functions and simple handling of
the Data Access Server (DAS) response are demonstrated herein.
Dim davalue as string
Dim reference as string
reference="@!CARB02.NAME.CNTRCT=@S3CNTRCT@@"
containing the current contract number

'S3CNTRCT is a hostfield

rem direct evaluation would be:


rem reference=@"@!CARB02.NAME.CNTRCT=3@"
rem that would return ## if the value was not in the data pool
if DataAccessReceived(reference)=0 then

'check if it is in the data pool

Messagebox(","DA value not available for " + reference,4,0)


Messagebox(","Sending DA request",4,0)
end if
DataAccessRequest(reference,davalue)

'waits for the result before returning

if davalue = "??" then


Messagebox("DA value not found:",davalue,4,0)
the request

'The DAS could not resolve

else
Messagebox("DA value received:",davalue,4,0)
endif
end

J Walk API Error Codes


The following constants represent all of the possible errors that can occur when
making a call to a J Walk open function. The error codes are in the "gf.h" file.
GF_OK

GF_ERROR_ARG_BAD

GF_ERROR_BUFFER_TOO_SM
ALL

GF_ERROR_COM

GF_ERROR_EVENT_INVALID

GF_ERROR_EXIST

J Walk Developer Reference 335


GF_ERROR_FILE_CREATE

GF_ERROR_FILE_OPEN

GF_ERROR_FILE_READ

GF_ERROR_FILE_WRITE

GF_ERROR_GENERAL

10

GF_ERROR_HANDLE_INVALI
D

11

GF_ERROR_MEMORY_UNAV
AILABLE

12

GF_ERROR_NOTFOUND

13

GF_ERROR_NOT_CONNECTE
D

14

GF_ERROR_NO_APPLICATIO
N

15

GF_ERROR_OIA_NO_MESSAG
E

16

GF_ERROR_ONLY_FROM_DL
L

17

GF_ERROR_SESSION

18

GF_ERROR_SESSION_BUSY

19

GF_ERROR_SESSION_LOCKE
D

20

GF_ERROR_SESSION_NOT_A
CTIVE

21

GF_ERROR_TIMEOUT

22

GF_ERROR_CANNOT_READ_
DATA

23

GF_ERROR_INVALID_FIELD_
NAME

24

GF_ERROR_NAME_NOT_AVA
ILABLE

25

GF_ERROR_DDE_FAILED

26

336 J Walk Developer Guide

Message Event Modes


GF_MSG_EVENT_ONLY_SPECIFIED
Only for specified events.
GF_MSG_EVENT_ALL_EXCEPT_SPECIFIED
All events except those specified.
GF_MSG_EVENT_ENABLE_SPECIFIED
Enable the specified events.
GF_MSG_EVENT_DISABLE_SPECIFIED
Disable the specified events.

Message Event Codes


GF_MSG_EVENT_JWALK_START
New Client session is started.
GF_MSG_EVENT_JWALK_STOP
Open Client session is closed.
GF_MSG_EVENT_JWALK_CONNECTED
Open Client session successfully connected to a host system.
GF_MSG_EVENT_JWALK_CONNECT_FAIL
Open Client session failed to connect to a host system.
GF_MSG_EVENT_HOST_II_ON
Host system is busy and no data entry or function keys will be processed (Input
Inhibit indicator is set on).
GF_MSG_EVENT_HOST_II_OFF_BEFORE_PANEL
Indicates that the host system is ready again to receive data entry or function keys and
no graphical panel is yet assigned to the host screen (no host field or panel field
functions are available).
GF_MSG_EVENT_HOST_II_OFF
Graphical panel is assigned, if possible, to the host screen and the Client session is
ready for data entry (all host field and panel field functions are available).
GF_MSG_EVENT_HOST_UPDATE

337
Indicates that the host screen was updated by the host system (this includes
interrupts).
GF_MSG_EVENT_APP_CHANGE
Indicates that a new panel file (JWR) has been set current (panel for the host screen
was found in a different panel file).

Message Send Mode


The following constants indicate what sessions should receive messages from J Walk.
Sending a message indicates that the client application should call a function and wait
for a reply before continuing processing. Posting a message indicates that the client
application should call a function and continue processing immediately, without
waiting for a reply. See MsgWinmsgSend.
GF_MSG_SESSION_CONNECT_SEND
GF_MSG_SESSION_CONNECT_POST
GF_MSG_API_CONNECT_SEND
GF_MSG_API_CONNECT_POST
GF_MSG_BOTH_CONNECT_SEND
GF_MSG_BOTH_CONNECT_POST

Using the Configuration Assistant

339

Using the Configuration Assistant


The Configuration Assistant wizard assists in connecting your J Walk product to
the host by providing the most common configurations (by list) and guiding you
through creation of a new configuration (limiting your choices to those supported
by your PC platform). After setting your configuration, select the Verify button to
test your settings. If there are any problems connecting to the host, they are
reported, and you can return to the specific dialog within the Configuration
Assistant and make changes.
The Configuration Assistant is used by all J Walk products that operate on a PC
and require connecting to a host. If you experience any connectivity problems,
run the Configuration Assistant and re-configure settings used to connect to the
host. The wizard guides you through the following environment variations:

Identify a router installed on the PC and supported by the host.


If your router is not displayed in the list of supported routers, there is an
Advanced button that opens a dialog for you to directly enter your router's
protocol DLL name and entry point. J Walk supports TCP/IP, APPC,
IPX/SPX, and SNA router protocols.

Identify an external emulator. By default, the internally supplied emulator is


used.
If your emulator is not displayed in the list of supported emulators, there is
an Advanced button that opens a dialog for you to directly enter your
emulator's EHLLAPI DLL and entry point.

Enter advanced connectivity settings, like:

Port number between your PC and the host for License and
Message Server connection and host session connection.

CCSID (code page)

SNA Local LU name

Device name and Device name sequence

Establish a connection with your host automatically using signon settings


dialog.

Set preferences for Dynamic Transformation and Graphical Access using


system settings dialog.

Configure the product to operate on a DBCS environment (GUI/400


only).

340 J Walk Developer Guide

Configure connection requests through a proxy server (firewall).

Create new servers (J Walk Server only) in the server settings dialog.

Launch the Configuration Assistant


If you have installed J Walk, you can start the Configuration Assistant at any time,
even if there are already J Walk sessions open. Any Configuration setting you
change will only be applied to new J Walk sessions that you open. Any already
open sessions will use their original Configuration settings. New configurations
result in new J Walk taskbar entries.
You will be given the opportunity to change the configuration of a J Walk
product during the installation process.
Note: Choosing to start the Configuration Assistant from within the installation
procedure has the same effect as ending the installation procedure and starting the
Configuration Assistant from the J Walk folder.
Follow these steps to perform this activity.
1.

Select Configuration Assistant taskbar entry from the J Walk product


program folder.

2.

Follow the instructions in the Configuration Assistant wizard to enable


J Walk to use your favorite router, emulator, and other settings. You can
navigate between dialogs by pressing the Back and Next buttons.

3.

Continue pressing the Next button until you are at the end of the Wizard.
You will be asked to name your configuration and you have a chance to
test your connectivity with the AS/400.

Configuring Data Access with the Developer


The J Walk Developer can send and receive Data Access messages via the License
and Message Server. At any time, use the Configuration Assistant to configure
the Developer for use with Data Access. These settings are written into your INI
file.
When you begin to use Developer, switch to the emulator and log into the
License and Message Server to establish Data Access services.

Using the Configuration Assistant

341

Note: If you create an alternate Signon screen without containing the user
identification (as defined), Data Access will not perform correctly. Or if you
specify the Automatic signon setting, this setting forgoes the use of the Signon
screen and hence no identification of the user (as described) can occur, and hence,
Data Access will not function properly. To use Data Access, do not invoke an
automatic signon procedure. Go to the Signon tab (of the Configuration
Assistant) and ensure the user signon setting "Signon automatically at startup" is
disabled (unselected).
Follow these steps to perform this activity.
1.

Launch the J Walk Configuration Assistant via the Taskbar (or


immediately after installation).

2.

Open the Data Access tab and select a Data Access connection mode. If
you expect to "see" the repository prompter and all Data Access services,
you must select to Use ONLine mode.

3.

Specify a maximum data record download limit (threshold) if required.

4.

Continue with the Configuration Assistant until completed.

Configuration (JWALK.INI) Settings Overview


Configuration settings can be altered by starting the Configuration Assistant or by
directly changing the JWALK.INI file. Command line (or shortcut properties)
parameters can provide overrides to current settings.
Alternatively, you can apply "overrides" within the command line properties
(within any shortcut). Typically, you will use the /E of /G parameter(s) to select
from sections of the INI file or actually set a "temporary" value which is different
than that within the INI file.
If you elect to edit the JWALK.INI file, open the file and type directly over
whatever settings you wish to update. This beginning of this file is well
commented with settings purposes.
The [Setup] section holds the base reference to a configuration. The
WINDOWSAPI= setting identifies which configuration to use. Configurations can
have globally applied settings in the setup area.
For reference purposes, the various settings areas provide their specific attribute
details.
Many configuration settings may be specified at the command line (or shortcut
properties entry) to override settings in the INI file (/G parameter setting =value).

342 J Walk Developer Guide


The Configuration Assistant has several pre-defined configurations that are
known and supported by J Walk. You can choose one of these configurations or
create your own. You may create several configurations and specify a specific
configuration at the command line (or shortcut properties entry) using the /E
configuration name parameter.
Control file settings and Miscellaneous settings cannot be controlled through the
Configuration Assistant. See the JWALK.INI topic.

Control settings define which package files are loaded (and updated) when
the Windows Client is started.

Miscellaneous settings are settings whose default values are not often
modified and do not appear in the Configuration Assistant.

Router Settings
The following Configuration settings only affect connectivity between the J Walk
Windows Client and router. You can see specific router setting values for known
supported routers by opening the named router in the Routers topic. The first
name given to each router setting is the text prompt used within the
Configuration Assistant. The second setting name is given in parenthesis and
represents the setting name used within JWALK.INI. The third name is the
/Gname command line parameter for the setting.
Communication method (CommModuleName = name) /GComMN
Sets the J Walk router protocol to that of the router being used to connect J Walk
to the AS/400. Supported protocol layers include: APPC, Enhanced APPC,
TCP/IP, and IPX.
Router name (CommDllName = name) /GComDN
Names the router's interface DLL. This value is dependent upon the individual
router and in many cases, it is not necessary to specify.
Entry point (CommDllFunc = name) /GComDF
Some routers store several interface variations within their interface DLL
(referred to by Router name). If a Router name is specified, then you must
enter a value for Entry point. If the router DLL has no interface variation, then
set this value equal to Router name.

Emulator Settings
It is always best to use the J Walk internal emulator. Using another emulator
causes an extra layer to be added to the J Walk to AS/400 connection, which will
influence overall performance.

Using the Configuration Assistant

343

The following Configuration settings only affect connectivity between the J Walk
Windows Client and emulator. You can see specific emulator setting values for
known supported external emulators by opening the named emulator in the
Emulators topic. The first name given to each router setting is the text prompt
used within the Configuration Assistant. The second setting name is given in
parenthesis and represents the setting name used within JWALK.INI.
Emulator (InternalEmulator = x) /GIntE
This prompt is on a different panel in the Configuration Assistant than the rest of
the emulator settings. When you are first asked to choose an emulator, by
choosing "J Walk internal emulator", the setting is updated to 1. When this setting
is 1, all other emulator settings are ignored.
Emulator name (DllName = name) /GDllN
Specify the emulator's interface DLL. The value placed in this setting varies for
each emulator. When you use the internal emulator, this value is ignored.
Entry point (SyncEntry = name) /GSynE
Some emulator interface DLLs have variations that are all stored in a single DLL.
If your emulator has different interface variations, enter the variation name here.
If Emulator name contains a value, then Entry point must contain a value. If
your emulator has no variations, then enter the Emulator name again in Entry
point.
Emulator does not correctly support line 25
(EmulatorDoesNotReturnLine25 = x) /GEmuDNRL25
The DBCS version of the external emulators PCOMM and PC5250 have an error
that should return the contents of the Operator Interface Area (line 2) when it is
showing an error message. Checking this parameter causes J Walk to retrieve this
message from line 24 instead of line 25 as a temporary bypass to this problem. It
is expected that these emulators will have this error corrected in a later version.
Emulator uses PC5250 interface conventions (EmulatorIsPc5250 = x)
/GEmuIP5250
Specifies the EHLLAPI implementation method used by the emulator. There are
only 2 values: "1" indicating PC5250 or PCOMM EHLLAPI method or "0", all
other emulators (default).

Advanced Connectivity Settings


After specifying your router and emulator settings, a set of related connectivity
settings become implemented as the default.

344 J Walk Developer Guide


However, if you want to specify host session behavior or J Walk is not connecting
to the AS/400 after updating router and emulator settings, it may be necessary to
make some adjustments to Advanced connectivity settings.
The following Configuration settings reflect adjustments to the J Walk to AS/400
connectivity. The first name given to each setting is the text prompt used within
the Configuration Assistant. The second setting name is given in parenthesis and
represents the setting name used within JWALK.INI. The names are listed in
their order of appearance within the Configuration Assistant Advanced
Connectivity Settings dialog.
Emulator title (EmulatorTitle = name) /GEmuT
This title appears in the titlebar of the emulator window.
Session ID (SessionId = x) /GSesI
Short session id (A-Y) when binding to an external emulator. If not specified,
J Walk Windows Client will connect to the first free session in alphabetic order.
Emulator window display (WindowServices = x) /GWinS
This keyword only applies when an external emulator is used. This setting
controls the appearance of the external emulator window when a graphical panel
is displayed. Possible values include:

Hide (=3). Hides the external emulator window (as an active windows)
when a panel is displayed.

Minimize (=2). Minimizes the external emulator window when a panel is


displayed.

No effect (=0). Leaves the emulator window unchanged. In other words,


displaying a graphical panel in place of the emulator window does not
affect the emulator window itself.

External window not used (=1). Removes the emulator window icon from the
desktop and places it in the "active tasks" list.

CCSID (CCSID = xxxx) /GCCSID


CCSID maps EBCDIC code page, keyboard layout, national language to a single
configuration. In most cases, the CCSID value matches the EBCDIC code page
value. However, in DBCS environments, there are several combinations of
EBCDIC code pages and DBCS languages and there are unique CCSID values for
each valid combination.
J Walk supports all OS/400 national languages. Use the combo box to scroll
through the list of supported CCSIDs. The national language is mentioned beside
each CCSID.

Using the Configuration Assistant

345

SNA Server LU name (LocalLuName = name) /GLocLN


This property is only necessary when the selected router is an SNA server. Enter
the name of your PC, as known to the SNA server. In order for J Walk to
complete the connection to the AS/400 using this router, it is necessary for
J Walk to tell the connection the name of your PC.
TCP/IP license port (TcpIpLicensePort = name) /GTcpILP
This prompt is used when connecting the License and Message Server to J Walk
Windows Client. The standard Telnet port address is 1025. If you wish to use
another port, add the service name 'sealms' to your SERVICES file (on your PC)
followed by the new port address or specify the port here.
TCP/IP Telnet port (TcpIpTelnetPort = name) /GTcpITP
This prompt is used when connecting J Walk to an AS/400 emulator session. The
standard Telnet port address is 23. If you wish to use another port, add the
service name 'telnet' to your SERVICES file (on your PC) followed by the new
port address or specify the port here.
Device name (DeviceName = name) /GDevN
Assigns a maximum of 10 alphanumeric characters as the controllers session
name (default is blank). When left blank, the default device name is assigned.
Device name sequence (DeviceNameSequence = name) /GDevNS
Specifies upto a 6 character sequence number (maximum) to be used in
combination with the Device Name.
By default, a sequence number is assigned by J Walk beginning with G0, then G1,
G2, and so on.
When this setting is assigned the value OFF, no sequence is assigned.
Specific assigned values are user definable and could be something like "S1"
standing for Session 1.

Signon Settings
These settings are used to open channels between J Walk and the AS/400. Enter
the AS/400 system name of the host application into the System prompt of the
User signon settings group box in the Signon settings dialog of the
Configuration Assistant. Enter the AS/400 system name of the License and
Message Server into the System prompt of the License and Message Server
group box in the same dialog.
System name (System = name) /GSys of User signon settings group box

346 J Walk Developer Guide


Enter the name of the AS/400 used for opening an emulator session. External
emulators will establish their own emulator session with the AS/400,
consequently, this keyword is only valid when using the internal emulator. When
using TCP/IP either host name as found in HOSTS file or IP address can be
used. Example: 222.222.222.10. When using an IPX protocol, you must enter
the node name of the AS/400, entered as a hex-coded 8 character address.
Example: 0000062A.
In most circumstances, the AS/400 system name is limited to 8 characters.
Routers using Enhanced APPC protocol in Windows 32bit can have a 17
character system name. These 17 characters have the format xxxxxxxx.yyyyyyyy
where xxxxxxxx is the network ID and yyyyyyyy is the AS/400 system name.
User Id (UserId = name) /GUseI of User signon settings group box
This setting is used in conjunction with Automatic signon. Enter a valid AS/400
User ID. You may use a low-level User ID (restricted to router communication)
or a valid enduser ID. Choose an end user ID if you wish to automatically signon
to the AS/400 after starting the session (Internal emulator only).
Password (Password = name) /GPas of User signon settings group box
Enter the password corresponding to the User ID. Please be aware that your
password is visible in the JWALK.INI file.
Signon automatically as startup (AutomaticSignOn = x) /GAutSO
This setting specifies automatic passing of signon parameters based on the
communication method.
When checked (=1) J Walk signs on to the AS/400 session (I.e. bypasses the
Signon screen) using the same User ID and Password in the User signon
settings group box.
System name (LicenseSystem = name) /GLicS of the License and Message
Server group box
Enter the name of the AS/400 used for opening a low-level session. Only enter a
value in this prompt if the License and Message Server resides on a different
AS/400 than the emulator session. When using TCP/IP either host name as
found in HOSTS file or IP address can be used. Example: 222.222.222.10. When
using an IPX protocol, you must enter the node name of the AS/400, entered as a
hex-coded 8 character address. Example: 0000062A.
In most circumstances, the AS/400 system name is limited to 8 characters.
Routers using Enhanced APPC protocol in Windows 95 can have a 17 character
system name. These 17 characters have the format xxxxxxxx.yyyyyyyy where
xxxxxxxx is the network ID and yyyyyyyy is the AS/400 system name.

Using the Configuration Assistant

347

User ID (LicenseUserId = name) /GLicUI of License and Message Server


group box
Enter a valid AS/400 User ID. You may use a low-level User ID (restricted to
router communication or a valid end user ID. It is recommended that you use a
low-level ID for this connection.
Password (LicensePassword = name) /GLicP of License and Message
Server group box
Enter the password corresponding to the User ID. Please be aware that your
password is visible in the JWALK.INI file.
Program/Procedure (InitialProgram = name) /GIniP
This setting is used in conjunction with Automatic signon and the communication
method in combination with the internal emulator. Specify a program to startup
when signing onto the system automatically.
Menu (InitialMenu = name) /GIniM
This setting works based on the communication method in combination with the
internal emulator. Opens and displays an OS/400 menu with this name when
signing onto the system automatically.
Current Library (InitialLibrary = name) /GIniL
This setting works based on the communication method in combination with the
internal emulator. Sets a host library as current for the end user when signing
onto the system automatically.

System Settings
These settings affect the appearance and behavior of a J Walk session while in
use.
System settings are described below. The first name is the prompt as seen in the
Configuration Assistant, the second prompt (in parenthesis) is the corresponding
setting within JWALK.INI.
Show Emulator (ShowEmulator = x) /GShoE
Controls the appearance of the menu item "Show emulator" in the Windows
Client system menu. When Emulator window display is set to No effect, this
option defaults to not being shown. Otherwise, the Show emulator is selected by
default.
Show Toolbar (ShowToolbar = x) /GShoT
Controls the appearance of the menu time "Show Toolbar" in the Windows
Client system menu. By default, this setting is selected.

348 J Walk Developer Guide


Hide Panels (HidePanels = x) /GHidP or /GHidePanels
This setting controls what J Walk Windows Client displays graphically when no
panel is found for the displayed screen. By default, this setting is selected, which
hides the panel window and displays the emulator window.
Use Dynamic Transformation (DynamicTransformation = x) /GDynT
By default (this setting checked), unrecognized screens will be dynamically
transformed into panels. Deselect this setting to see a panel with no Dynamic
Transformation.
Swap Enter and Ctrl keys (SwapEnter = x) /GSwaE
By default, there is no swapping of the keyboard mapping between the Enter and
FieldExit keys when using the emulator window. Selecting this setting will swap
keys.
Swap PgUp and PgDn (EmulatorSwapsPageKeys = x) /GEmuSPK
Some external emulators swap the behavior of the PgUp and PgDn keys. Select
this setting if your PgUp and PgDn keys are behaving opposite of what you
expect.
Start session as minimized window (StartMinimized = x) /GStaM
When selected, this setting sets the J Walk Windows Client window to minimized
icon on the desktop whenever a new session is started. By default (deselected),
this setting opens an active session.
Wide screen emulator (WideScreen = x) /GWidS
When selected (default) the emulator will display a wide screen (132 characters
wide) when detected. Deselecting this setting will indicate that the emulator
cannot support a wide screen.
Enable Graphical Text Assist (TextAssist = x) /GTexA
When selected, this setting activates a graphical "word process" whenever a Text
Assist screen is detected. This setting can only be used with the internal emulator.
Display Graphical Access Panels (GraphicalAccessServices = x) /GGraAS
When a screen is detected that has both a panel and belongs to Graphical Access,
this setting prioritizes which should be displayed. You can choose between
turning Graphical Access panels off completely, displaying panels from a package
file instead of a Graphical Access panel, or displaying Graphical Access panel
instead of a panel from a package file.
Language Code (LanguageCode=xxxx)/GLanC

Using the Configuration Assistant

349

Specify the MRI module for use as the displayed locale. This parameter is
equivalent to the /M xxxx parameter when used within the startup command
line.
Note: The command line usage has precedence over the INI file value at startup.
Date Windowing (DateWindow=xx)/GDatW
When you apply a field format which converts a 2 digit host-based Year value to a
4 digit client-based presentation of the year, you can expect the conversion to be
based on a specified "start year" for 2 digit date values. The default is "40." This
is in line with host-based default values (1940). If you want to work from a
different year base, enter an alternate year value for the conversion.

DBCS Settings
DBCS settings are only used when the OS/400 platform and the PC platform
operate in a DBCS language (Japanese, Korean, Simplified Chinese, and
Traditional Chinese). It maps double-byte characters displayed on the host screen
to a font type specifically for double-byte characters. These settings are only
applied when J Walk detects that it should display DBCS characters.
Font name (GaDbcsFontName = name) /GGaDFN for Graphical Access
font selection group box.
Font face name when Graphical Access is active in a DBCS environment.
Large font size (GaDbcsLargeFont = name) /GGaDLF
Font size for large fonts when Graphical Access is active in a DBCS environment.
Small font size (GaDbcsSmallFont = name) /GGaDSF
Font size for small fonts when Graphical Access is active in a DBCS
environment.
Font name (GothicFontName = name) /GGotFN for Gothic font mapping
group box
Maps the named font to the Gothic font that would be used in J Walk panels.
New font size 8 (Gothic8 = xx) /GGot8
New font size 10 (Gothic10 = xx) /GGot10
New font size 12 (Gothic12 = xx) /GGot12
New font size 14 (Gothic14 = xx) /GGot14
New font size 15 (Gothic15 = xx) /GGot15
New font size 18 (Gothic18 = xx) /GGot18

350 J Walk Developer Guide


Gothic fonts of 8, 10, 12, 14, 15 and 18 can be overwritten with another font size.
If Gothic font names and size settings are blank, Graphical Access settings will be
used.

Control File Settings


This group of settings directs the output resulting from the automatic update
mechanism activated from a control file (JWC). These settings can only be
updated by directly changing JWALK.INI.
Control file settings include:
Control = name /GCon
Enter a control file name. The name must have the extension "JWC".
Update = x /GUpd
Sets the automatic update mechanism.

0 = do not perform updates detected when processing the control file.

1 = when updates are detected, ask before processing.

2 = always perform updates before starting the session when updates are
detected.

UpdateLog = name /GUpdL


Sets the name of the log file containing the results of the update. By default, this
name is UPDATE.LOG.
UpdateScript = name /GUpdS
Sets the name of the batch file that is created when the updates are not completed
successfully. By default, this name is JWALKUP.

Data Access Settings


Data Access utilizes two INI file settings to use the Data Access services. Each
setting is made using the Configuration Assistant (Data Access tab).
Data Access Mode (DataAccessMode = n) /GDataAccessMode

0=No Access (or no Data Access services)

1=Access to repository is enabled, but connection to the repository will


not occur now because you do not need it or the connection is not
available. This setting is not allowed for Windows Clients.

2=Access repository prompter (and connection to repository) are invoked


immediately. Note this is not available in combination with "Automatic
signon" settings.

Using the Configuration Assistant

351

Data Access Maximum Number of Records (DataAccessMaxRecords =


nnn) /GDataAccessMaxRecords
Data Access can manage a "threshold" for limiting data records during a
download. The numeric value can be up to 300. Select a limit which fits with the
volume of your record transactions.

Miscellaneous J Walk Settings


This group of settings can only be updated by manually changing the JWALK.INI
file.
CloseConfirmation = x /GCloC
A session can be closed by pressing Alt+F4, choosing Close from the System
menu or in Windows 95/NT, clicking on the close button in the upper right hand
corner of the J Walk session window. Values can be:

0 = Platform dependent

1 = Always ask for confirmation

2 = Never ask for confirmation

By default, this keyword is assigned the value 1, which always causes J Walk to
open a dialog confirming that the enduser wishes to close the active J Walk
session.
Specify the value 0, when you want J Walk to use close confirmation, based on
the platform requirement (32bit applications close without confirmation, while
16bit applications do ask for confirmation).
If this value is 2, J Walk will close the active session without confirmation (or
platform requirement).
ListColor = x /GLisC
Sets the default color for list boxes to the platform color.
NoSystemNameChange = x /GNoSNC
Controls the dialog displayed when opening a user session to the host. When set
to 0, the system name must be the same as the low level connection. When set to
1, the user can change the system name.
OfficeVisionEditor = x /GOffVE
This setting controls the font of the Text Assist editor when displayed as a
graphical window. When set to 1 (the default) a graphical window is displayed
when Text Assist is detected. When set to 0, the emulator screen is displayed.
OpenInterfaceStartupData = text /GOpeISD

352 J Walk Developer Guide


This parameter is used only when J Walk Windows Client is started from another
application. This text can be any value and can be picked up later by the OIS
function: GfApiSessionStartupDataGet().
StaticText = R G B /GStaT
Sets the default color for static text. Assign a number between 0 and 255 for Red,
Green, and Blue intensity values. (0 0 128) is dark blue.
WindowsApi = name /GWinA
Starts J Walk with these JWALK.INI environment settings when in the Windows
platform.

Using the Internal Emulator


SEAGULL always recommends that J Walk use its own emulator. This will
provide the best performance. However, there are valid reasons for using an
external emulator.
When using the internal emulator, the following JWALK.INI setting must be
used.
InternalEmulator=1

You can set this by using the Configuration Assistant or by updating the
JWALK.INI manually.

353

354 J Walk Developer Guide

Index
*CALEND, 20
*HELP, 124
*HELPCON, 124
*HELPEXT, 124
*HELPFIN, 124
*HELPFLD, 124
*HELPIDX, 124
*HELPKEY, 124
.hlp file, 122
@ Function, 266
Abs Function, 266
Accessing Project Externalized Text Files,
117
activating help, 124
Activating Help for Panel Controls in
Developer, 124
Activating Panel Editor Window, 66
Activating Terminal Editor Window, 60
ActiveX, 140, 143
ActiveX Client Control, 143
Adding References to HTML Help Files, 129
Adding References to the Windows Help
File, 126
Advanced Connectivity Settings, 343
advanced mode, 99
Alternate Compression Methods for Your
Package File Set, 159
ANSI Code Page Description, 36
ANY, 257
API, 274
API Connected to 1 J Walk Client
Environment Session, 138
API Connected to All J Walk Client
Sessions, 139
API error codes, 335
APPL011, 217
APPL021, 217
APPL031, 217
APPL032, 217
APPL033, 217
APPL034, 217
APPL040, 217
APPL050, 217
APPL061, 217
Applying Best Guess, 77
Applying Data Access, 117
Applying Open Interface Services for Java,
147
AS/400 application, 195

AS/400 DDS Keyword Listing, 221


Assign Field Ids with Best Guess, 94
Assignment statement, 261
Attaching an OIS Object to a Panel, 135
Attaching an OIS Object to a Push Button
or Menu Item, 135
attaching script, 136
Attaching Script to an Application, Panel or
Field, 136
authorization, 54, 187
Automate Software Updates Using ActiveX
Client Control, 145
automatic update mechanism, 183
Automatic Updating Rules, 183
AutomaticSignOn, 345
AWFMT - Format Attributes, 231
AWHOST - Layout, 233
AWMB - Member Listing, 230
AWOBJD - Object Descriptions, 227
AWTXT - Single DDS Texts, 232
Before You Begin Using J Walk Developer,
49
Best Guess all panels, 111
Best Guess Building All Application Panels,
111
Best Guess Logic, 76
Best Guess Process Overview, 76
Best Guess processing hierarchy, 76
Best Guess reserved words, 257
Best Guess screen identification, 115
bitmaps, 27
blank space (null character), 257
bmp, 25, 29, 129, 130
BUILD - Panel layout, 80
BUILD (Screen) Template, 79
Building a Package File, 105
building all panels, 111
Business Graph Types, 71
BUTTON, 257
Cab files, 143
Calendar Function (*CALEND), 20
Calling Java classes from the J Walk Java
Client, 151, 283
car demo example, 58
CCSID, 36, 343
Cdate Function, 266
century dating, 15, 16
Change Management, 33
change panel field, 117

Index
ChangeSession, 285
character sets, 35, 36, 37
chart types, 71
check box script constant, 325
CHK - Check box layout, 81
Choosing and Displaying Fonts, 38
Client, 187
Client Access, 213
Client Color Schemes, 30
Client Image Differences, 47
client imagery, 30
client mode, 177
Client On-line Help Differences, 48
CloseConfirmation, 351
code, 187
code page, 35, 36, 37
Code Pages and Fonts on Different J Walk
OS Environments, 34
COL - List box column layouts, 82
Collect on Object, 212
Collection Formats to Remove or Omit, 213
Collection of Language Display by Indicator
Settings, 214
Collector
User Defined Program Flow options, 215
Collector Collect Phase, 200
Collector Combine Phase, 199
Collector DDS Keyword Handling, 197
Collector Error/Diagnostic Messages, 237
Collector Extract Phase, 198
Collector Extract Phase Messages, 241
collector options, 202
collector parameter, 206, 212, 213
Collector Prepare Phase, 197
Collector Prepare Phase Messages, 238
Collector Process, 195
Collector Program Flow, 215
Collector Proposal Descriptions, 217
Collector Select Language option, 215
Collector User Option Parameters, 206
collector user options, 202, 213
Collector Work File Layouts, 227
Collector Work Files, 199
COLNUM - List box numeric column
layout, 83
Color Conversion, 31
colour, 30
COLTXT - List box text column layout, 83
Combination (combo) Box Field Type, 71
Combining Formats Ignoring CLRL
Instructions, 209
Combining Function Key Formats, 209

355

Combining Screen Formats Using PRECOL,


210
combo box field type, 71
command, 282
CommDllFunc, 342
CommDllName, 342
CommModuleName, 342
Compiling Panels, 122
CON, 257
Configuration (JWALK.INI) Settings
Overview, 341
configuration assistant, 339
Configuring Data Access with the
Developer, 52, 340
Considering J Walk National Language
Support, 14
constructive, 80
Contacting Customer Service, 5
Control, 350
Control File Example, 181
control file layout, 181, 182
control file rules, 183
Control File Settings, 350
Controlling Pre-Loading Package Files, 179
Convert Bitmaps to Java Enabled Format
(HTTP), 131
Converting the GUI/400 AWD for
Developer, 13
Copying Delivered Templates, 108
correct Best Guess text issues, 97
Create, 282
create AWHOST, 195
Create J Walk Diskette Images, 154
create OIS object, 135
CreateHidden, 282
Creating a Panel Editor Work File (JWA),
109
Creating a Self-Running Demo, 193
Creating a Terminal Editor Work File (JWE),
108
Creating an JWC Control File, 181
Creating an OIS Object, 135
Creating Data Access references, 120
creating JWA, 109
creating JWE, 108
Creating Screens with Best Guess, 115
Creating the Demo Floppy Disk(s), 192
Creating Your Own J Walk Demo Icon, 193
Creating Your Own Language Module, 43
Creating Your Picture Album, 110
Creating Your Project Working Directory,
107

356 J Walk Developer Guide


creative, 80
creative template, 81
crushing your JWR, 159
CUSTOM.DEF, 160, 165
customer service, 5
Customizing Your Installation, 159
Data Access, 22
Data Access configuration, 52, 340
Data Access function, 333
Data Access logging, 166
Data Access query, 120
Data Access Reference Syntax, 334
Data Access requests for multiple records,
120
Data Access script reference example, 335
Data Access Script Syntax, 334
Data Access Scripting Methods, 134, 332
Data Access Settings, 350
Data AccessReceived, 333
Data Organizer, 98, 114
data representation, 71
DataAccessMaxRecords, 350
DataAccessMode, 350
DataAccessReceived, 333
DataAccessRequest, 333
Date Function, 267
DateWindow, 347
DBCS Settings, 349
DDE, 133, 274, 286
DdeExecute, 287
DdeInitiate, 286
DdePoke, 288
DdeRequest, 289
DdeTerminate, 290
DDS keywords, 197
defining demo logic, 190
Defining the Screen Logic in the Demo, 190
delivering JWR file, 157
demo, 189
demo icon, 193
demo logic definition condition, 190
demonstrating your application, 189
Demonstrating Your Package File, 189
Deploying Data Access Server, 22
Deploying Served Windows Clients using
ActiveX, 145
Deploying Your GUI Product, 167
Destroy, 282
destructive, 80
Developer authorization, 50
Developer Building Phase, 115
Developer command line, 53

Developer OIS objects, 75


Developer Preparation Phase, 106
Developer Project, 101
Developer Project Requirements, 102
Developer Project Settings, 103
DeviceName, 343
DeviceNameSequence, 343
Differences with Client Execution
Environments, 47
Dim statement, 261
Disable, 282
display collector, 195
display fields, 88
display file field description, 227, 230, 231,
232
display-only host fields to be excluded, 88
Distributing the Developer Project
Environment, 14
Distributing Your Package File Set, 153
dll, 129, 130, 274
DllName, 342
dongle, 54
dongle driver, 51
Downloading the AWHOST File, 45
duplicate screens, 64
EBCDIC Code Page Description, 36
edit panel, 116
Editing User Defined Scripts in J Walk
Developer, 136
EE, 189
EE demo capture, 189
EE file, 190
emulator, 352
Emulator emulator, 189
Emulator Settings, 342
EmulatorDoesNotReturnLine25, 342
EmulatorIsPc5250, 342
EmulatorSwapsPageKeys, 347
EmulatorTitle, 343
Enable, 282
End statement, 261
Enter Your Company Name, 55
entry field, 71
entry field script constant, 325
Entry Field Type, 71
Euro Dollar Conversion example, 273
evaluate picture album, 111
Evaluating Best Guess Results, 113
Evaluating Created Picture Album from
Collected AWHOST, 204
Evaluating Identification Run Results, 112
EventNameGet, 290

Index
EXCLAREA Template, 79
EXCLNAME, 79
EXCLNAME Template, 79
exclude function keys, 91
Exploring J Walk Developer, 57
Exploring Supplied Car Demo Application,
58
Export Panel Files (JWW) to TTT, 41
Externalizing Text Files Considerations, 46
features, 2
field formatting, 15, 16
field formatting syntax, 16
field identify mode, 251
field value conversion event, 273
FieldGet, 273, 282
FieldPut, 273, 282
FileCreate, 285
FileStringAppend, 286
Filters, 101
Find and Action, 101, 121
find and replace template, 121
fine tune templates, 113
FKEYMENU, 257
floating point variable type, 259
For .. To .. Next statement, 261
foreign languages, 33
Frame Field Type, 72
GaDbcsFontName, 349
GaDbcsLargeFont, 349
GaDbcsSmallFont, 349
Gather Initial Base Data for
PRECOLTOOL, 211
Generate Package File Authorization Codes,
167
Getting Started Building Your Package File,
106
Getting Started Collecting Your AWHOST
File, 200
GF_CONNECT_API, 138
GF_MSG_API_CONNECT_POST, 338
GF_MSG_API_CONNECT_SEND, 338
GF_MSG_BOTH_CONNECT_POST, 338
GF_MSG_BOTH_CONNECT_SEND,
338
GF_MSG_EVENT_ALL_EXCEPT_SPEC
IFIED, 337
GF_MSG_EVENT_APP_CHANGE, 337
GF_MSG_EVENT_DISABLE_SPECIFIE
D, 337
GF_MSG_EVENT_ENABLE_SPECIFIE
D, 337

357

GF_MSG_EVENT_HOST_II_OFF_BEF
ORE_PANEL, 337
GF_MSG_EVENT_HOST_II_ON, 337
GF_MSG_EVENT_HOST_UPDATE, 337
GF_MSG_EVENT_JWALK_CONNECT_
FAIL, 337
GF_MSG_EVENT_JWALK_CONNECT
ED, 337
GF_MSG_EVENT_JWALK_START, 337
GF_MSG_EVENT_JWALK_STOP, 337
GF_MSG_EVENT_ONLY_SPECIFIED,
337
GF_MSG_SESSION_CONNECT_POST,
338
GF_MSG_SESSION_CONNECT_SEND,
338
GfApiDdeExecute, 287
GfApiDdeInitiate, 286
GfApiDdePoke, 288
GfApiDdeRequest, 289
GfApiDdeTerminate, 290
GfApiEventNameGet, 290
GfApiFileCreate, 285
GfApiFileStringAppend, 286
GfApiHostCursorGet, 291
GfApiHostCursorPut, 292
GfApiHostDimensionsGet, 293
GfApiHostFieldGetData, 294
GfApiHostFieldPutData, 296
GfApiHostScreenGetLine, 297
GfApiHostScreenGetRaw, 298
GfApiHostScreenGetRect, 300
GfApiHostScreenGetString, 301
GfApiHostScreenPutString, 302
GfApiHostSessionQueryStatus, 303
GfApiMainSessionConnect, 305
GfApiMainSessionDisconnect, 306
GfApiMainSessionGetId, 306
GfApiMainSessionGetWinHand, 307
GfApiMainSessionTerminate, 307
GfApiMainWindowSetMode, 308
GfApiMessagebox, 309
GfApiMmPause, 311
GfApiMmPlay, 311
GfApiMmSkipNext, 313
GfApiMmSkipPrev, 313
GfApiMmStop, 314
GfApiMsgEventRequest, 315
GfApiMsgWinmsgSend, 316
GfApiPanelButtonClick, 317
GfApiPanelFieldGetData, 318
GfApiPanelFieldlistGetData, 321

358 J Walk Developer Guide


GfApiPanelFieldPutData, 322
GfApiPanelNameGet, 323
GfApiPcCommand, 324
GfApiScriptCall, 326
GfApiScriptExec, 327
GfApiScriptGlobalGet, 328
GfApiScriptGlobalSet, 328
GfApiSessionStartupDataGet, 329
gif, 25, 129, 130
Global statement, 262
Gosub statement, 262
gothic10, 349
gothic12, 349
gothic14, 349
gothic15, 349
gothic18, 349
gothic8, 349
Goto statement, 263
GraphicalAccessServices, 347
graphs, 71
Grayed state, 25
group box field, 72
Group Box Field Type, 72
group box script constant, 325
GUI Controls and Display States of J Walk,
28
GUI menu controls, 69
GUI/400 Package Files, Projects and
Components, 12
handling global changes, 121
handling system messages, 69
help, 122
help file naming, 126
help text referencing, 124
Hidden or Translated Screen Texts, 44
Hidden Screens, 75
HidePanels, 347
Host Fields, 65
host-based date conversion, 347
HostCursorGet, 291
HostCursorPut, 292
HostDimensionsGet, 293
HostFieldGetData, 294
HostFieldGetProp, 295
HostFieldPutData, 296
HostScreenGetLine, 297
HostScreenGetRaw, 298
HostScreenGetRect, 300
HostScreenGetString, 301
HostScreenPutString, 302
HostScreenSendKey Function, 267
HostSessionQueryStatus, 303

HostWaitForScreen Function, 267


how to make a project, 107
How to Make an AWHOST File, 195
HTML, 129, 143
ico, 25, 29, 129, 130
icon, 130
icons, 27
Identifying Pictures (as unique) within a
Picture Album, 110
Identifying the Application Libraries for
Collection, 201
If...Then...Else statement, 263
image DLL, 28, 29, 130
Image DLL Creation Utility, 29
images, 25, 27
Implement J Walk Windows Client Scenario,
172
Implementing OIS Functions, 274
Import Translated Texts Back to Panel Files
(JWW), 41
Importing Demo Screen Logic, 192
importing objects, 109
Importing Project Components, 109
increasing Windows Client licenses, 186
Index.html, 150
Influencing Collector Results, 205
Influencing the Collector Process with User
Options, 205
INI file, 341
Initial Dongle Authorization, 54
InitialLibrary, 345
InitialMenu, 345
InitialProgram, 345
INP - Include entry fields, 83
INPEXC - Entry fields to be excluded, 84
INPNUM - Numeric entry field layouts, 84
insert Data Access reference, 120
Install a J Walk Windows Client Scenario,
178
installation, 160
Installing Dongle Driver for Windows NT,
54
Installing J Walk Developer, 51
installing License and Message Server, 169
InStr Function, 268
Interfacing with Package Files, 133
InternalEmulator, 342
Interpreting National Characters, 35
Introduction to J Walk, 1
Invalid value state, 25
iterative building process, 113
J Walk API Error Codes, 335

Index
J Walk Client Connect Modes, 169
J Walk Developer Package, 3
J Walk Developer Reference, 249
J Walk Development Roadmap, 10
J Walk Dongle and Windows NT, 51
J Walk Features, 2
J Walk Installation Definition File Reference,
160
J Walk Planning Questionnaire, 7
J Walk Product Roll-out at Customer Site,
168
J Walk settings, 341
Jar files, 143
java, 147
Java Client Image Conversion Utility, 30
Java Client versus Windows Client, 47
Java OIS, 147
jpeg, 25, 129, 130
jpg, 25, 129, 130
JW9TTT, 38, 39, 41
JW9TTT Requirements, 38
JW9TTT Utility General Process
Description, 39
JWA, 68
JWALK.INI settings, 341
JWALKX.HTML parameters, 143
JwalkX.ocx, 140
JWC file, 181
JWICON, 29, 130
jwimg, 131
JWM, 74
JWX, 74
KEYTXT - Key names, 85
Label
statement, 263
language, 33
LanguageCode, 347
Launch the Configuration Assistant, 51, 340
Launching the Change Management Wizard,
132
Left Function, 268
Len Function, 269
license, 187
license agreement, 168
License and Message Server, 186
LicensePassword, 345
LicenseSystem, 345
LicenseUserId, 345
licensing, 75, 167
Licensing Clients, 167
Linking Clients with other Programming
Environments, 137

359

Linking to ActiveX Programming


Environments, 140
Linking Windows Client Data to Microsoft
Excel via DDE, 136
Linking with Other Applications, 133
list, 257
List Box Field Type, 71
list box script constant, 325
ListColor, 351
LISTMENU, 257
LocalLUName, 343
LST - List box layout, 85
LSTMUL - Multiple row list layout, 86
Ltrim Function, 269
macro, 75
MainSessionConnect, 305
MainSessionDisconnect, 306
MainSessionGetId, 306
MainSessionGetWinHand, 307
MainSessionTerminate, 307
Maintenance Phase, 132
MainWindowSetMode, 308
Make Demonstrations to Run without the
AS/400, 189
Make PRECOL and AWHOST Files, 211
making .HLP, 122
Making Your J Walk Project, 107
managing host change, 33
managing screens, 63
Manipulating Live Screens, 115
Manual Import and Conversion of GUI/400
Components, 13
Manually Creating Screens, 116
Mapping Host Field Constructs to Panel
Objects, 117
Marking Pictures as Redundant, 112
Mass Panel Updates, 121
Menu Control Type, 69
menus, 69
MESSAGE, 257
Message Box Control Type, 69
Message Event Codes, 337
Message Event Modes, 337
Message Send Mode, 338
Messagebox, 309
Mid Function, 269
millenium dating, 15, 16
Miscellaneous J Walk Settings, 351
MmPause, 311
MmPlay, 311
MmSkipNext, 313
MmSkipPrev, 313

360 J Walk Developer Guide


MmStop, 314
MNU - Menu button layout, 87
modify screen template, 114
Modifying a Panel, 116
Modifying a Panel Field, 117
Modifying Panel Templates, 114
Modifying Screen Templates, 114
Modifying Your Picture Album, 111
MRI, 42
MsgEventRequest, 315
MsgWinmsgSend, 316
Multi-line Entry Field Type, 71
multiple package files, 179
Naming Your Help File, 126
National Language Support (NLS), 33
NLS, 33, 35, 42, 43, 44
NLS Development Issues, 45
no dongle attached, 54
NOMNEM - Texts which do not require
mnemonics, 87
normal color assignments, 31
NoSystemNameChange, 351
Notebook Control Type, 72
notebook type, 72
NT dongle, 51
numeric host screen layout, 84
Obtain a Client Authorization Code, 168
OCX, 140
OfficeVisionEditor, 351
OIS and Client Execution Environment
Differences, 47
OIS API Processing Requirements, 138
OIS DDE Functions, 286
OIS error, 335
OIS Example Resources, 274
OIS for Java Example Resources, 150
OIS General API Server Process, 138
OIS Host Functions, 291
OIS MainSession Functions, 304
OIS Msg Functions, 315
OIS Multimedia Functions, 311
OIS Panel Functions, 317
OIS Provided Script Functions, 264
OIS Requirements, 138
OIS Script Functions, 326
on-line help, 122
Only Handle Members Changed Since, 212
Open Interface Services, 22, 147
open multiple files, 179
OpenInterfaceStartupData, 351
Optimizing Best Guess Results, 113
Os2Api, 351

OUT - Output field layouts, 88


OUTEXC - Output fields to be excluded, 88
OUTNUM - Numeric output field layouts,
89
output field script constant, 325
Output Field Type, 72
Overwrite Standard J Walk Windows Client
Images, 156
package file, 187
Package File (JWR), 76
package file authorization, 167
Package File Compilation Process, 76
Package File Licenses, 75
packaging, 153, 154, 156, 159, 160, 165, 167,
172
panel colors, 30
Panel Editor, 65
Panel Editor Accelerator Keys, 251
Panel Editor Field Operations, 255
panel editor hot keys, 251
panel editor interface, 66
Panel Editor Interface Window, 66
Panel Editor Work File (JWA), 68
Panel Field Mouse Functions, 70
Panel Field Types Script Constants, 325
Panel Fields, 69
panel objects, 69
panel properties, 69
Panel Properties and Objects, 69
panel steps, 69, 116, 117
Panel Templates, 80
panel trigger control, 71
PanelButtonClick, 317
PanelFieldGetData, 318
PanelFieldGetProp, 320
PanelFieldlistGetData, 321
PanelFieldPutData, 322
PanelNameGet, 323
Panels, 68
PanelUpdateEnable Function, 270
parameters, 341, 342, 343, 345, 347, 350, 351
Parameters for Controlling Record Formats,
206
Password, 345
PcCommand, 324
Picture Album, 62
Pictures Versus Screens, 63
Planning Date and Amount Presentation, 15
Planning Files for Use with Client Packages,
20
Planning User Help, 21
Planning Your J Walk Project, 7

Index
POPUP - Popup panel layout, 89
POPUP (Screen) Template, 80
POS - Screen position to panel position
mapping, 89
Preparing For Customer Visit, 167
Preparing Images, 129
Project Definition (JWD), 104
project organizer, 98
project setup, 107
Proposals to Influence the Collector, 216
Providing Developer Authorization, 50
Providing Images and Other Media, 21
Providing Open Interface Services, 22
Providing Users with On-line Help, 122
PSH - Push button layouts, 90
PSHEXC - Push buttons to be excluded, 91
PSHKEY - Push buttons not be moved to
the menu bar, 92
PSHSEL - List buttons not be moved to the
menu bar, 92
push button, 28
Push Button Field Type, 71
push button script constant, 325
RAD - Radio buttons layout, 92
RADGRP - Radio button group layouts, 93
Radio Button Field Type, 71
radio button script constant, 325
Real-time Integrated Data Access, 22
Rectangle Field Type, 72
rectangle script constant, 325
redundant, 64
Referencing an Image to a Push Button, 130
Referencing an Image to a Title Bar, 130
Referencing Images on Your J Walk GUI
Controls, 25
Referencing Individual Icons, Images and
Image DLLs, 27
Register Client Licenses, 186
Rem statement, 264
remove unmeaningful text, 97
Replacing the J Walk Windows Client
Signature with Your Own, 153
Reset Original Library List, 213
Return statement, 264
review results, 113
Review Results of Best Guess, 113
Reviewing the Collector Run Results on the
AS/400, 203
RIDA, 1, 22
Right Function, 270
right-click menu, 70
roadmap, 10

361

Router Settings, 342


Rtrim Function, 271
Run Process Interactive, 213
Running a Mix of J Walk Clients, 177
S9CRUSH, 158
save JWA?, 65
Saving Your Project Definition (JWD), 110
Scenario 1
Sharing all Windows Client product files
from a network, 173
Scenario 2
Windows Client product files on network,
with local INI, 174
Scenario 3
Sharing Windows Client with local
package files and INI, 175
Scenario 4
Sharing all package files with local
Windows Client, 176
Scenario 5
Local installation, 176
screen demo logic, 190
Screen Duplicates, 64
Screen Identification, 63, 116
Screen Identification Considerations, 45
screen template, 79, 80
Screen Templates, 78
Screen Texts Interpreted to GUI Controls,
44
ScreenIdGet Function, 271
Screens, 62
script, 136, 274
script error codes, 335
Script Example
Evaluate Host Screen, 276
Open DDE Links, 278
Using Script Functions, 279
Script Language Reference, 259
Script Language Syntax Statements, 260
script syntax, 260
ScriptCall, 326
ScriptExec, 327
ScriptGlobalGet, 328
ScriptGlobalSet, 328
scripting, 75
Scripts, 75
SEAGULL License and Message Server
Installation Overview, 169

362 J Walk Developer Guide


SEAGULL Reserved Words, 257
Seagull Service, 5
Seagull support, 5
SEL - Selection list layout, 93
select mode, 98
Selecting a Picture, 111
Selecting Package Files for Distribution, 157
self-running demo, 193
SELMUL - Multiple line selection list layout,
94
Served Windows Client, 145
Server Connect, 169
Serving the J Walk ActiveX Client Control,
143
SessionId, 137, 138, 343
SessionStartupDataGet, 329
SessionTerminate, 307
Setting Up your TTT/PC Environment, 39
SETTINGS - Best Guess settings template,
94
SETUP.DEF, 160, 165
ShowEmulator, 347
ShowToolbar, 347
signature, 154, 156
Signon Settings, 345
Spin Button Field Type, 71
spin button script constant, 325
splash.bmp, 154
Standard (Desktop) Color Mapping, 31
Standard J Walk Windows Client Images,
154
standard mode, 98
start change management, 132
Start Your GUI Product, 186
Starting the Collector and Verifying the
Libraries, 201
Starting the Developer, 53
StaticColor, 351
Str Function, 271
Styling Your Package File, 24
subfile, 94
subfiles with no Option, 85
Submitting the Collector Run, 203
Subwindow Field Type, 72
support questions, 5
SyncEntry, 342
System Settings, 347
system window, 89
TcpIpLicensePort, 343
TcpIpTelnetPort, 343
Template Field Mapping assignment, 94
templates, 78

terminal edit hot keys, 249


Terminal Editor, 59
Terminal Editor Accelerator Keys, 249
Terminal Editor Host Field Operations, 251
Terminal Editor Interface Window, 60
Terminal Editor Work File (JWE), 62
Testing a Package File with J Walk Windows
Client, 166
testing an JWR, 166
Text Field Type, 73
Text File, 74
text file limits, 74
Time Function, 271
TimeDiff Function, 272
Tools Menu Functions of J Walk, 73
transfer AWHOST file, 203
Transfer Files Using the Shared Folders
Function, 204
Transferring AWHOST File to the PC, 203
Translating System Texts, 42
Translating Your Panels Using TTT/PC, 38
Translation Table, 74
translation table limits, 74
Transpiling GUI/400 Package Files, 13
Triggering OIS DLL Function Calls During
Windows Client Execution, 282
Triggering OIS DLLs, 282
Trim Function, 272
Troubleshooting Data Access and J Walk,
166
TXT - Text layouts, 96
TXTEXC - Text to be excluded, 96
TXTNONE - Texts without special
meaning, 97
Unicode Description, 37
Unpack OIS Example for Java, 150
Update, 350
Update Installation Definition File, 165
update rules, 183
UpdateLog, 350
UpdateScript, 350
Updating Package File Licenses, 187
Updating the User Options, 202
upgrading License and Message Server, 169
Upgrading the Developer, 55
URL, 133
URLOpen, 122, 330
Use CA/400 (W95 and NT) to Transfer
AWHOST to PC (DBCS), 213
Use PRECOLTOOL to Create Pictures
from DSPF Formats, 211
user defined script, 75, 136

Index
user window, 73
User Window Type, 73
User-defined Colors, 32
using color, 30
using Data Access in Developer, 117
Using Find and Action, 122
Using Image DLL Utility to Embed Bitmaps
into a DLL, 130
Using J Walk Developer, 49
Using J Walk Developer Dongle, 50
using OIS, 135
Using OIS for Java, 150
Using SEAGULL Supplied Compression
Utility, 158
Using the Configuration Assistant, 339
Using the Internal Emulator, 352
Using the J Walk ActiveX OIS Control, 141
Using the SEAGULL Collector, 195
Using this Guide, 5
Val Function, 272
Visual Basic, 259
Wait Function, 273
Welcome to J Walk, 1
While...Wend statement, 264
win, 129, 130
Windows Client authorization code, 168
Windows Client demo icon, 193
WindowsApi, 351
WindowSetMode, 308
WINHELP, 122, 330
WinNT dongle, 54
Working with the Data Organizer, 99
wrapping your project, 153, 154, 157, 159,
165, 167, 172
XLATE - Text to translate before
processing, 97
XLATE example, 98
XLATE Example Function Key Assignment,
98
XLATE Example Menu Item Construction,
98

363

J Walk Developer Guide

You might also like