Learn More
Search site for:
News »
Scroll Up for Recent News
Nov 2008
Appx 5.0 Beta is Ready!
Appx Release 5.0 Beta is ready. This Release includes ...

[Read Full Article]


June 2008
Caylx Retires from Distribution
Following 33 years of working with the SPEED I, SPEED II and APPX...

[Read Full Article]


April 2008
Appx Blog Online
ASI has started a blog! This is an excellent way...

[Read Full Article]


December 2007
Appx Conference 2007
We're pleased to report that our first European APPX Conference proved to be...

[Read Full Article]


August 2007
Appx Conference 2007
Still haven't decided if the Appx Conference is for you? First of all, it's a great way...

[Read Full Article]


June 2007
CWI Hosts European Conference
For some years now, ASI has been hosting tremendously successful APPX conferences in the USA...

[Read Full Article]


January 2007
ASI announces the APPX 4.2.a Patch Release is now available for download ...

[Read Full Article]


August 2006
ASI provides a new format for emailed APPX registrations. Registrations are now being sent as text file attachments to...

[Read Full Article]


May 2006
Another conference is over, and once again it provided an excellent opportunity to network, learn and socialize with VARs and customers from around the world...

[Read Full Article]


February 2006
You are cordially invited to join your APPX colleagues and friends at the newest "episode" of the bi-annual conference, called "APPX EX-ZOO-BERATION 2006"!...

[Read Full Article]


July 2005
CWI is delighted to welcome Minicom Software House Ltda, located in Brazil, to its reseller network!

For over 25 years, Minicom's team of consultants has been involved in the development and...

[Read Full Article]


March 2005
Sadeen Computerized Systems is an integrated solutions provider which has been offering management control software, security systems and access control software to SMEs for a number of years. Now, however...

[Read Full Article]


January 2005
CWI is pleased to welcome SWS Software Service in Austria to its reseller network! SWS has been a very successful SPEED II reseller since 1983 and has been working with APPX since...

[Read Full Article]


December 2004
CWI is pleased to welcome Sintec, S.A. de C.V. from Mexico to its reseller network!

[Read Full Article]


Scroll Down for Archived News


A | B | C | D | E |F | G | H | I | J | K | L | M | N | O | P
Q | R | S | T | U | V | W | X | Y | Z


Parent/Child Relationships Revisited

No, this isn't about how to deal with your daughters first date, or what to do if your son breaks curfew, but instead is a different way of connecting input processes together. Normally, if we have a parent process with some optional children, the user has to return to the parent from one optional child before they can run a different optional child. This page discusses a simple technique whereby the user can go directly from one optional child to another, without having to return to the parent each time.


PASS/RECEIVE

The new PASS and RECEIVE commands can be used in more places than just before a GOSUB command, you can also execute PASS commands before invoking an automatic or optional child, and execute the corresponding RECEIVEs in the Start of Process event point. This works well, but there is a subtle problem that you can encounter if you put your PASS commands in the Pre-Invocation point of the automatic/optional child. This Event Point is actually executed multiple times, as many as three times if the child process has a PCF and Auto Update is turned on. Briefly, the three phases are:

Phase I - Discovery - APPX needs to know if any of the children attached to the frame are going to run in order to decide whether to update the PCF file or not. It runs the Pre Invocation code for *each* child (if there's more than one), and checks the INCLUDE CHILDREN flag to see if the child will run. If there is at least one child that's going to run, then APPX updates the PCF record, and continues to Phase II.
Phase II - Referential Integrity - Since the parent PCF was updated, APPX has to allow for the possibility that the record key was changed, and it may have to update the keys on the child records. It runs thru the Pre-Invocation of each child again, and for every child where the auto update flag is on, runs the Post PCF Read, Pre PCF Update and Post PCF Update Event Points.
Phase III - Invocation - Now APPX is ready to actually run the child processes. The Pre Invocation step of each child is run to determine if that particular child should run or not.

The end result of all this is that you may execute the PASS command several times, but only RECEIVE them once. The 'unused' fields that were PASSed are still on the stack, and the next process that does a RECEIVE will pick up the leftover PASSed fields, not the ones that you probably intended. How do you deal with this? Put the following code in the child, after you have RECEIVEd everything you expect:

	BEG LOOP WI = 000 to 001 STEP 000
	RECEIVE  --- TEMP 80
T 	END LOOP WI
This will 'use up' the extra PASS commands. If you prefer you can put this in a subroutine, and use it where required. In that case, do not GOSUB to the routine, use COPY instead.

--- PRINT SUMMARY ONLY

This flag is used to control whether or not APPX should print the detail record frames on an output. Normally, this flag is set by the 'Print Summary Only' flag on the Disposition screen and it applies to the entire report. However, it's possible to change this flag in a RANGE-START frame and APPX will respect the new setting for the next group of records. This means that, via ILF, it is possible to print details for some ranges and totals only for other ranges.

Using PUSH/POP to automate keystrokes

ASI has introduced the PUSH and POP ILF statements. These can be used to save and restore multiple values for a field or record (unlike STORE/ RESTORE which only store one value). When used with the --- OPTION field, PUSH gives us a way to 'feed' keystrokes into an INPUT process. For example, let's say we wanted the input process to automatically invoke Option 7, followed by a Return. Before invoking the process, we do the following:
           SET      ---  OPTION                         =         USER 7
           PUSH     ---  OPTION
           SET      ---  OPTION                         =         RETURN
           PUSH     ---  OPTION
In the Pre-Display of the input process, we just add a 'POP --- OPTION' statement. The first time this EP is executed, it will set --- OPTION to USER 7, the next time it will set --- OPTION to RETURN and the third time it will do nothing since there's nothing left on the stack to POP. At that point, the input process will display the image to the user & wait for input from them. What if you also want set a value in a field, as well as set --- OPTION? One technique would be to PUSH a unique value into --- OPTION (e.g., USER 200), PUSH the value into the field and then later test for the unique value:
           SET      ---  OPTION                         =         USER 200
           PUSH     ---  OPTION
           SET      DMO  WORK CUSTOMER NO               =         130123
           PUSH     DMO  WORK CUSTOMER NO
Then in Pre-Display:
           POP      ---  OPTION                         FIELD
T          IF       ---  OPTION                         EQ        USER 200
TT         POP      DMO  WORK CUSTOMER NO     FIELD
TT         SET      ---  OPTION                         =         RETURN
POP returns a T indicator if there is something on the stack to retrieve. If there is, and it is our special value, then we know to also POP the WORK CUSTOMER NO field to set its value and then set OPTION to RETURN so the process will continue automatically. Although PUSH/POP will officially be part of 4.3, they are included and functional in 4.2.9.




For additional information, contact tips@cwi-appx.com

[back to top]