"MACRO ERROR OPTIONS HELP"

"Somewhere between 1958 and 1960  somebody  wrote  the  first  computer"
"program.  Endless quibbling can be done on what constitutes a program,"
"so the poor guy still, as far as I know, hasn't gotten credit for it."

"Soon after the first program was written,  or perhaps during it's cre-"
"ation, somebody thought:  WHAT IF  something goes wrong right here...."

"The concept of PROGRAMMING and ERROR TRAPPING are of approximately the"
"same age, and are siamese twins.  Each  time a new  program is created"
"one of the things the PROGRAMMER must do is to separate them, and make"
"them both behave."

"When you write a MACRO you (yep, YOU) are the programmer. The fact you"
"are programming a program instead of the computer is of little conceq-"
"uence when you realize the RESULTS are the same."

"YES YOU CAN program.  If you have used  DATAMAGE  to select a group of"
"records and print them you ALREADY HAVE! You have issued a first-class"
"programming command:  IF (parameters  you  selected to form the group)"
"THEN PRINT THE RECORDS.  And you have, no doubt, met with  success in"
"doing so.  So, the hard part is behind you."

"DATAMAGE, like the programming language of your choice,  consists of a"
"limited number of functions.  Many of the functions will do different,"
"though similar, operations when various parameters are specified."

"Like a programmer, the user selects these functions and specifies par-"
"ameters to them.   The functions are building blocks,  of which a very"
"great number of possible process can be constructed."

"Most ways to program group your  function  selections  into a program."
"DATAMAGE allows you the option of making a program:  The MACRO."

"There's DANGER in MACROland. A poorly designed MACRO can work well for"
"six months or six years, then blow up in your face.   Leaving you with"
"some of your records having been processed,  some not,  and no  way to"
"determine which is whom."

"Let's say we have a customer file with records from all states.  Every"
"so often we need to print our receivables by state in order on amount."
"While we're at it, we'll post interest on the balance to the record."

"A MACRO is written that selects records in the  target state,  selects"
"records in the survivors having a balance of > 0,  sorts  on  balance,"
"prints a report, computes/adds interest, etc.  Then re-loads the file,"
"and does it again until all fifty states have been processed."

"The macro is carefully verified, implemented,  and runs fine for three"
"months.  The forth month all our customers in Montana are paid up. The"
"MACRO expects to find Montana records to process but has found none."

"If this had happened during manual  program operation  DATAMAGE  would"
"have provided the appropriate error message, and how to proceed  would"
"then be left up to the user.  In a MACRO that's not good enough."

"If the MACRO aborts we are left in the sad situation  described above."
"The operator (whenever the MACRO is run) CAN NOT be counted upon to be"
"able to recover from an error of this type.  So the MACRO must recover"
"the error and continue processing the remainder of the states."

"In order for the MACRO to recover it must  JUMP OVER  the instructions"
"that compute the Montana records, and resume processing with the first"
"instruction that processes the records for the next state."

"After the processing of each states' records the  entire  file was re-"
"loaded using the F11 function, then the F7 function was used to select"
"the records in the next state to be processed.  If the MACRO jumped to"
"the next F11 the recovery would be successful."

"The above situation is often  duplicated,  but a marker file is loaded"
"between the processes. For that reason you may also select resume next"
"load marker as an error option."

"In some cases you would want a MACRO to end early if no survivors were"
"found during a record-select operation. The ABORT error option will do"
"that, and the message FATAL ERROR IN MACRO will be displayed."

"Depending on the complexity of the task a  MACRO  may or may not be an"
"acceptable way of doing it.  If you need  the  kind of  error trapping"
"that allows you to re-direct the control to any label you have defined"
"inside your program then get QUICK BASIC and write your own program."

"If DATAMAGE  allowed that kind of  processing it would,  of necessity,"
"exclude many  users incapable of programming at that level.   In other"
"words you would have to be a programmer to be able to use the program."
"And that's NOT what we're doing, here."

"Before embarking upon any serious  MACRO recording you should read the"
"instruction file MACRO.DOC that came with your  DATAMAGE.   These help"
"screens are supposed to be brief, and this one already isn't."
