Most developers are familiar with using CHILD ID to control the execution order of processes within a JOB. Simply fill in a value for CHILD ID on a job step, and set --- NEXT CHILD ID to that value in the Post Invocation Event Point, and APPX will jump to that child instead of executing the next sequential job step. However, you can also use this to pass information to the child process, in both automatic and optional children. When you fill in CHILD ID on an Automatic or Optional Child, those four characters are also passed to the child process in the --- CHILD ID field. You can use this in place of manually setting a flag. For example, you might invoke the same Optional Child from different places, and want it to behave slightly differently each time. You can fill in CHILD ID in the various parent processes, and test for that in the child itself, and modify the behavior as required.
There are two little known parameters in the COMPUTE statement, the P operator (hash addition) and the M operator (hash subtraction). There are normally used when computing hash totals on non numeric fields (i.e. account numbers that contain dashes or other alpha characters). When used with the P or M operator, APPX will first change all non numeric bytes to a 0, and then add or subtract. The COMPUTE statement will also ignore overflow in this case. This can be handy if you have a sequence number field that you manually increment. Instead of adding and then checking to see if you have reached the maximum for that field, you can simply use COMPUTE with 'P' instead of '+', and when it overflows, APPX will simply wrap around to zero and continue. This approach makes your code less dependant on field sizes. If you don't want a sequence of zero, you can always check for zero after the compute and increment again.
Convert to GUI and Retain Character Mode
There is an option on the 'Utilities' tab in Application Design called 'Char to GUI Conversion' that will convert all your character images to GUI Widgets. The disadvantage is that it removes all the character mode data, which means you are now completely committed to using the GUI. You can work around this by saving the ROW and CHR files from your application before running this utility, then copying them back after the conversion. This will preserve all the character mode attributes and still keep the GUI Widgets. Users that run a non GUI client will not see the GUI elements, and for the users that run the Java Client, the Widget data will cover the underlying character mode data. Note: Make a full backup of your Application before trying this!
Do you have a tip you want to pass on? Contact Us.