Build #240 continues the focus on development of CICS Web Services and related Client Interfaces. Improvements include support for messages that return several records, improving the New/Logic/Web Service dialog to handle related tables easily, support for VSAM web services, and optionally handling Add and Delete functions.
There are a few other changes and error corrections, mostly related to web service improvements.
The Bridging Two Worlds video is unchanged from Build 16.1, but this help page gives full details including the most recent changes.
· Multiple
Records. With Build 16.1 generated
clients could only handle messages with a single record. Now [Client] has caught up with web service
generation, creating a client that handles messages from a service generated
like this: -
The message will contain up to 20 Employee records. Timing tests showed that each request/response took 2-3 seconds, but there was no measurable difference between the time for a request/response returning 1 record and one returning 20. By returning several at once scrolling through the list of records can now be instantaneous. As before, if the Max value is insufficient the client logic will automatically read the next 20 (or fewer) records when the client scrolls to the 21st record.
· Related Records. Employee is defined like this, with an EXISTS property noting that EMPLOYEE.WORKDEPT must exist as a value of DEPARTMENT.DEPTNO: -
COPY Department;
DEFINE EMPLOYEE SQL DATA(
…
WORKDEPT CHAR(3) CAPS DKEY 'XEMP2' EXISTS DEPARTMENT.DEPTNO,
…
Because
of this relationship, the dialog will include an extra step, giving us the
opportunity to add data from the DEPARTMENT table: -
Here we’ve selected DEPTNAME. This is added to the output message, as if the EMPLOYEE record contains this field: -
DEFINE OJSPG2A SERVICE OUTPUT DATA(
…
JZ-Employee
(20) GROUP,
JZ-Employee-ReturnCode LIKE Types.ReturnCode,
…
Checksum
CHAR(40),
DEPTNAME
LIKE DEPARTMENT.DEPTNAME
ASSIGN DEPARTMENT.DEPTNAME
FKEY EMPLOYEE.WORKDEPT,
END GROUP);
It is
an output field only, and so cannot be updated.
It is part of the Employee GROUP, so data is presented as if DEPTNAME is
another field in the Employee record, having the same extent (20) as other
Employee fields.
·
VSAM support. Clients can be now be
generated to support VSAM web services.
Build 16.1 clients worked for DB2, but they depended on the web service
including Browsecount in its output message so that
the client could control scrolling. Browsecount was calculated by
EXEC
SQL SELECT COUNT(*) …
so an alternative for VSAM was needed.
Logic was developed that works for VSAM while remaining efficient and
avoiding unnecessary I/O. Click
here for more detail.
· Dialog changes. Update no longer requires Max=1.
· Add and Delete logic is now optional, Previously Add and Delete functions were always generated if Update was checked.
The
following errors have been fixed
· SQL Record Length for saving was incorrectly calculated because the calculation didn’t allow space for indicator variables.
· Help Errors. A number of minor Help errors, mostly related to using https, were fixed.
· Next Key value for fields defined CHAR PIC, e.g. EMPNO CHAR(6) PIC '999999', is correctly calculated as if defined PIC, not CHAR.
· DELETE correctly handles DB2 constraint errors
This build will download automatically when Get Jazz is clicked.
Existing users should
1. Update their Jazz folders by clicking [Configure] and [Initialise Project], then following the dialog to download all the C# templates: -
@InList.cs
@IsFloat.cs
@IsInt.cs
@IsNoLongerThan.cs
@JazzClient.cs
@Method.cs
@ReadNoScroll.cs
@ReadScroll.cs
@RequestResponse.cs
Also support routines
JZNXTKY.cbl and JZTRIM.cbl
2. Recompile support routines JZNXTKY and JZTRIM.
3. If you’re running MANASYS Jazz from a saved shortcut, check that you’re running build #240 by looking at Help/About, or the line 4 comment of the generated COBOL. If you have a saved shortcut to the previously-loaded version then this may continue to run the old version.
We’re never short of ideas, but the important ideas are yours. What would you like us to do next? Every release is an opportunity to rethink and reset, so there’s never a better time to suggest enhancements.
Possible developments: -
· Client-side interface generation. This has met objectives for the second stage, but there are still many ideas to make this feature even better. These include
o Implementing ViewState definitions, providing a facility that works for web services the way that Viewstate works in ASP.NET, supporting web service conversations, and chained execution sequences.
o Build 16.2 has worked with variations of program JSPG2, a DB2 update program, and JSPG1V which is a VSAM equivalent. The web service dialog will be reviewed to provide more options and flexibility. The next stage will likely support record hierarchies such as Client/Orders, and also remove the restriction on VSAM records containing repeating fields or groups.
Please let us know your priorities and suggestions for further development.
Robert Barnes
CEO, Jazz Software Ltd
Skype: Robert.Barnes3
LinkedIn linkedin.com/in/robert-barnes-5b833a
IBM PartnerWorld member