Attributes

3270 Attributes

The symbolic names are six characters long, each character position having a unique meaning and set of possible values:


Character
Position
Letter
Value
Meaning of Letter Value
Entry Protection
1PProtected
SSkip-Protected
UUnProtected
Keyboard Shift
2AAlpha-Numeric
NNumeric Shift (keyboard)
Display
3DDisplayable
NNon-Displayable
Highlighting
4RRegular Intensity
HHigh Intensity
Selector Pen
5NNon Selector Pen Detectable
Modify Data Tag
6MModify Data Tag ON
FModify Data Tag Off

Note: Selector Pen option discontinued by IBM and not supported by MAGEC

Table of Attributes

Symbolic Name
(in MSKDEF)
Cobol Name
(in MAGEC003)
Actual
Code Value
UANRNFATUANRNF<
UADRNFATUADRNFb (blank)
UADHNFATUADHNFH
UANRNMATUANRNM(
UADHNFATUADHNFH
UADRNMATUADRNMA
UADHNMATUADHNMI
UNDRNFATUNDRNF&
UNDHNFATUNDHNFQ
UNDRNMATUNDRNMJ
UNDHNMATUNDHNMR
PANRNFATPANRNF%
PADRNFATPADRNF- (dash)
PADHNFATPADHNFY
PANRNMATPANRNM_ (underscore)
PADRNMATPADRNM/
PADHNMATPADHNMZ
SANRNFATSANRNF+
SADRNFATSADRNF0 (zero)
SADHNFATSADHNF8
SANRNMATSANRNM' (apostrophe)
SADRNMATSADRNM1 (one)
SADHNMATSADHNM9


Automatic Editing

Table of Edit Types

Alpha-Numeric Edit Types:
X Miscellaneous alpha-numeric. Any characters will be accepted. Example: Company Name, or Comments, etc.
b (blank) Default. Same as X
AAlphabetic. Only (A - Z and b [blank]) Example: Person's Name, City Name, etc.
UUppercase. Any characters accepted. MAGEC converts any lowercase alpha to uppercase
TTable Lookup. Same as U plus MAGEC looks up in a Table
WWhere to display Table description used in conjunction with a T. MAGEC moves the description of the found entry in the Table to a W field (if so specified).
Numeric Edit Types:
NNumeric, MAGEC will pad leading zeros.
SNumeric, MAGEC will suppress leading zeros
=Same as S, plus trailing minus sign
ZNumeric, leading zeros plus comma insertion
-Same as Z, plus trailing minus sign
$Same as -, plus floating dollar sign
Date Edit Types:
MMM/DD/YY (2-digit year) or MM/DD/CCYY (4-digit year)
DDD/MM/YY (2-digit year) or DD/MM/CCYY (4-digit year)
YYY/MM/DD (2-digit year) or CCYY/MM/DD (4-digit year)

NOTE: MAGEC accepts any valid operator entry (depending on field Edit Type) and adjusts it to the "edited" format for the field. For instance: in a type-$ field the operator can enter:
12345.5 - or
1,234.50 - or
$1,234.50 et cetera, all of which are equivalent.


Developer Functions

Online Developer Functions

ALGLST mmmList directory of Customization Algorithms for Mask mmm
ALGxxx mmm/pppppppp/etc.Inquiry and Maintenance for Customization Algorithms
DBDITOHex/Character display and update of file data
DBUTILHex/Character display only
DOCxxx topic nameInquire/maintain documentation
ERRxxx eeeInquire/maintain error messages
LBRxxx member name/modifierInquire/maintain library member
LBRLST 1List index of Library members
MMPxxx nnnInquire/maintain MMP definition
MSKDEF mmmManual screen painting
MSKDEL mmmDelete all screen fields
MSKDUP mmmDuplicate screen definition
MSKSEE mmmDisplay generated screen
PAINT1 mmm (thru Paint7 mmm)Automatic screen painting
SCDLST mmmList Locate-Headings for fields
SCDCHG mmm/row/colChange Locate-Heading for field
TBLLST tttList entries in a Lookup Table
TBLxxx ttt/ccccInquire/maintain table entries
TOCxxx tttInquire/maintain Table-of-Contents for Lookup Tables
TSKLST mmmDeveloper Menu + Status screen

LEGEND:
mmmMask number
xxxstandard nine suffixes (ADD, CHG, etc.)
tttTable number

nnnMMP number

ppppppppInsertion Point name

cccc1- thru 16-character code


PF Keys in Developer Functions

Developer Functions PF Keys

PF Keys (general)
PF15exit MAGEC or exit Split-Screen
PF12return to TSKLST for this Mask #
PF9Swap Windows
PF2HELP (field-level)
PF1HELP (function-level)
PF Keys (in MSKDEF)
PF18change field
PF19delete field
PF20duplicate field
PF4duplicate line
PF5delete line
PF6move line
PF10go to Auto-Paint sequence
PF Keys (in PAINT2)
ENTERselect item
PF4unselect item
PF10unselect all items
PF3return to PAINT1 (Element selection)
PF6Auto-Paint using selected items
PF Keys (in DBDITO, DBUTIL)
PF22display next 280 bytes of data
PF23display preceding 280 bytes of data
PF8read next record and display
PF7read previous record and display
PF Keys (in LBRxxx and ALGxxx)
PF7page backwards thru member
PF8page forward thru member
PF20insert after line on which cursor is
ERASE EOFdelete from cursor position to EOL
(blank lines are deleted automatically)
PF5bypass warning-level error
PF Keys (in PAINT1)
PF14bypass warning-level error, continue to PAINT2

Universal Functions

Logical Application 00's Functions

These functions are universal throughout MAGEC and are used by the Developers as well as by the Application Users. They are in Logical Application 00 and appear on the Menu screens of all the other (01 - 50) Logical Applications.

**DUALSplit the Screen
**MENUHigh-Level Menu screen
$$MENUDetail Menu screen for a LAP
**ERR1Display HELP (same as pressing PA2)
**SWAPSwap Windows (same as pressing PF11)
**EXITExit Split-screen mode or Exit MAGEC
**HELPMenu'd access to documentation online (same as pressing PF9)
MSGSEEDisplay Broadcast Message
CLEARS"Clear screen" by displaying logo
SYSLOG ONLog onto MAGEC
SYSLOG OFFLog off of MAGEC
OPTIONset/alter session option for CLEAR key and PA1 key meanings


Program to Program Linkages

To CALL a Sub-Task MMP

MOVE 'nnn' TO TWA-NONTP-MMP.
PERFORM AA850-SUB-CALL THRU AA899-EXIT.

where 'nnn' is the MMP number of the sub program. Control will return to the next-sequential-instruction after the PERFORM. The TWA will be passed from the calling MMP to the sub-program and back. It can be used as the medium of communication between them.

To Chain Functions (Screens)

MOVE FTH-FUNCT TO TWA-NONTP-REQUEST.
MOVE 'xxxxxx' TO SFUNCT.
GO TO AA900-GOBACK.

where 'xxxxxx' is the six-character Function Code you wish to transfer to. The entire TWA and all Mask data is passed to the "fetched" MMP intact. You can also move a value into the Screen Key field (SKEY) to be passed to the fetched MMP. It is also permissable for the Function Code specified to be one of the functions handled by this same MMP; for instance VACLOC could legally fetch to VACSEE. Indeed, when you use the Cursor-selection feature of VACLOC that is exactly what happens.

To Fetch a Specific MMP


MOVE FTH-CMD TO TWA-NONTP-REQUEST.
MOVE 'mmm' TO TWA-NONTP-MMP.
GO TO AA900-GOBACK.

where 'mmm' is the MMP number of the program to be fetched.


Miscellaneous Customization

To Initialize TWA-MSK-AREA


MOVE MSK-CMD TO TWA-TP-REQUEST.
MOVE 'nnn' TO TWA-TP-TRM.
PERFORM AA800-CALL-MONITOR THRU AA899-EXIT.
IF (GET-MSK-ERR)
    PERFORM BB800-MSK-ERR-MSG THRU BB899-EXIT
    GO TO AA800-SEND-SCREEN.

where nnn = the desired Mask number.

To Fetch the Clear (Logo) Screen

MOVE FTH-FUNCT TO TWA-NONTP-REQUEST.
MOVE CLEAR-FUNCT TO SFUNCT.
GO TO AA900-GOBACK.

You must not GO TO AA900-GOBACK from within a PERFORM'ed routine. For a thorough explanation refer to IBM's discussions on reentrancy and multi-thread applications in CICS.

To Fetch Clear Screen with Message

MOVE MSG-LIT TO TWA-TP-OP.
MOVE message TO TWA-MSK-AREA.
MOVE FTH-FUNCT TO TWA-NONTP-REQUEST.
MOVE CLEAR-FUNCT TO SFUNCT.
GO TO AA900-GOBACK.

where 'message' is any 40-character literal.


Editing & PF Keys

To Code a Field Edit/Validation


IF Sfield -----error condition---------
    MOVE E TO SfieldE
    MOVE 'nnn' TO ERROR-NUMBER
    PERFORM CA100-LOAD-ERR-CODE-TBL THRU CA199-EXIT.

where Sfield = the name of a screen field, 'nnn' = an Error Number that is defined on the MAGECERR file. In the %EDIT Insertion Point this code will cause the MMP to bypass updating the file(s) and just return to MAGECCP to have the Error Messages issued.

If you wish to flag a non-fatal (warning level) error, code:

IF Sfield -----error condition---------
    MOVE E TO SfieldE
    MOVE 'nnn' TO ERROR-NUMBER
    PERFORM CA400-LOAD-WARNING-TO-TBL THRU CA499-EXIT.

The above code will allow the MMP's updating to occur but will tell MAGECCP to also place the specified Warning Message into the screen.

To Add an Error Message

     DO THIS:
  Enter the command:  ERRADD nnn  -  press ENTER.
   


The ERRADD screen will be presented. You must enter two things.

1) 33-character Error Message
2) 4-line (320-character) Narrative "HELP" text

To Test Which Key Was Hit

IF (TWA-MSK-PF5-HIT) .....
IF (TWA-MSK-ENTER-HIT) .....
IF (TWA-MSK-PF10-HIT) .....
- et cetera

You can do this at any time in the processing logic. There is an 88-level value under TWA-MSK-AID for every possible key.


Insertion Points

Where to do Customization

Below is a list of the Customization Insertion Points where you can enter Custom coding. Beside each is a brief list of some of the most common types of coding done there.

%REMARKScomments to be inserted into the REMARKS section of the Cobol MMP
%LITERAL
or
%LOCLITS
WORKING-STORAGE constants with VALUE clause
%DATADEF MAGECINC's for secondary Data-Class's elements. work areas to be saved or passed to another (FTH'd) function (MMP) or to the next transaction at this terminal.
%FUNCT code to override the standard list of Function codes for this MMP.
%VARSTOR definitions of work fields to be used by the MMP. these will be inserted into the VARIABLE-STORAGE area of the TWA and will be initialized to LOW-VALUES immediately upon entry of each transaction. data in this area (or %LOCVARS) this area cannot be passed to another MMP or transaction, it is not saved.
%PFKEYL code to be inserted at the very start of the mainline logic for browse functions. possibly to test for PF keys or to alter the key value that the Operator entered; maybe to prefix a Client#, etc..
%LOCKY code to override the logic used to start a browse (generically), possibly to force a certain starting key value, possibly to code the I/O access bypassing the MAGEC I/O module (Primary Data-Class).
%REDLE code to override the logic for reading the first record after starting a browse via the %LOCKY coding (Primary Data-Class).
%REDNX code to override the logic for reading the Primary Data-Class "sequentially". inserted into BOTH the browse and maintenance mainline routines.
%REDKY code to override the logic for reading the Primary Data Class randomly (by key)
%RDUKY code to override the logic for reading the Primary Data Class randomly (by key) with intent to update or delete the data.
%ADDIT code to override the logic to add a record to the Primary Data Class
%DELET code to override the logic for deleting a record from the Primary Data Class
%UPDAT code to override the logic for updating a record of the Primary Data Class
%RELES code to override the logic for dropping the "exclusive control" obtained via logic in the %RDUKY insertion point.
%UPDERR code to override the logic used when a bad return code is sensed for %UPDAT, %DELET, or %ADDIT logic.
%GOODADD code to override logic used when a good return code is sensed from %ADDIT logic. perhaps to update other Data Class(es).
%GOODCHG code to override logic used when a good return code is sensed from %UPDAT logic. perhaps to update other Data Class(es).
%GOODDEL code to override logic used when a good return code is sensed from %DELET logic. perhaps to update other Data Class(es).
%LOCINIT code to be inserted into the initialization routine for the browse functions, to initialize packed fields in VARIABLE-STORAGE, to override default values.
%INIT code to be inserted into the initialization routine for maintenance functions, to initialize VARIABLE-STORAGE fields, etc.
%INITATB code to be inserted after the standard code used to initialize the screen fields' attributes for the maintenance functions. perhaps to Protect or Darken some fields based on which function or operator.
%NORMKEY code to be inserted after the standard logic of the maintenance functions' NORMALIZE KEY routine. perhaps to add some more key editing.
%NKLOC code to REPLACE the entire browse functions NORMALIZE KEY routine.
%BLNKSCR code to be inserted after the standard logic for initializing the maintenance screen's variable fields to underscores. perhaps to set default values into them. used for ADD function and on NOT-FOUND condition for other functions.
%COMP code to be inserted after the logic to move data to the maintenance screen for display, perhaps to compute some additional values to be dispalyed.
%DELEDIT code to verify that it is OK to allow the deletion of the Primary Data Class' data. often to call MAGECIO to read subordinate Data Class to see that there are no subordinate records on file.
%EDIT code to do custom editing of screen data to validate it before allowing ADD, CHG, or DUP functions to update the Primary Data Class' record.
%ADDINIT code to initialize the Primary Data Class' element(s) before the standard moves to build a new record for an ADD function.
%CALC code to be inserted after the standard moves to build/rebuild the record data for ADD, CHG, and DUP functions.
%SELECT code to determine whether each record read is to be shown on the browse displays or bypassed or if END-OF-DATA is to be simulated. often to bypass records on the file that are a different format (headers, details, and trailers, for instance)
%LOCMOV code to be inserted after the moves to build the display line for the browses.to move additional data to the display or to alter what was moved (translate codes, expand abbreviations, etc.)
%SKEYBLD code to REPLACE entirely the routine that builds the expanded key value to be moved to SKEY when the Operator Cursor-Selects an item on a browse screen.
%JOIN code to read secondary Data Classes after each read of the Primary Data Class. also calculations to build non-file ("derived") data to be dispalyed. also to inspect and to possibly modify the data just read.
%SUBRTNM code for miscellaneous subroutines that may be PERFORM'd from any other Insertion Point's coding.
%SNDSCRNcode to be inserted just before the logical end of processing for all functions. it will be executed just before the MMP returns to MAGECCP to have the screen sent.


Error Codes

Abend Codes

NOTE: The following 2 Abend Codes indicate likely system error or incorrect specifications to CICS
DBGMA Getmain command has failed (MAGECCP)
DBVS A fatal CICS/VSAM return code was received (possible incorrect FCT options)
NOTE: The following Abend Codes consist of the prefix "DB" plus a two-digit number. These two-digit numbers are consistent with the error return codes issued by MAGECIO.
DB01 Invalid I/O request attempted
DB02 No such file defined
DB03 No such key name defined (path)
DB04 Invalid Record ID
DB05 File is Closed (or Open Failure)
DB06 File Opened Read-Only, Update attempted
DB07 File is Full, cannot add records
DB08 Index is Full
DB09 Prerequisite for this command not met
DB10 Attempt to add Duplicate record
DB11 Attempt to alter Primary Key Value in record
DB12 Internal record problem
DB13 Internal record problem
DB14 No Record Found, or End of List
DB16 Exclusive Control Interlock
DB17 Hardware Failure
DB22 Element not defined
DB23 Security violation
DB35 Open/Close failure
DB36 Database not Open
DB93 Key name and Element name not for same file
DB95 Invalid Element List (not terminated by Spaces)
DB96 Too many Exclusive Control requests
DB97 Attempt to Update an Audit-Stamp
DB98 No Exclusive Control Data (MAGECIO)
DB99Miscellaneous database error