|
|
ACCEPT |
|
[IF] logical-condition |
REJECT |
This document covers the following topics:
For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: AT BREAK |
AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE
BREAK PROCESSING | DELETE | END
TRANSACTION | FIND |
HISTOGRAM | GET | GET
SAME | GET TRANSACTION
DATA | LIMIT |
PASSW | PERFORM BREAK PROCESSING | READ | RETRY
| STORE | UPDATE
Belongs to Function Group: Database Access and Update
The statements ACCEPT and REJECT are used for
accepting/rejecting a record based on user-specified logical criterion. The
ACCEPT/REJECT statement may be used in conjunction with
statements which read data records in a processing loop (FIND, READ,
HISTOGRAM, CALL FILE, SORT or READ WORK
FILE). The criterion is evaluated after the record has been
selected/read.
Whenever an ACCEPT/REJECT statement is encountered for
processing, it will internally refer to the innermost currently active processing loop
initiated with one of the above mentioned statements.
When ACCEPT/REJECT statements are placed in a subroutine, in
case of a record reject, the subroutine(s) entered in the processing loop will
automatically be terminated and processing will continue with the next record of the
innermost currently active processing loop.
| Syntax Element | Description |
|---|---|
IF |
IF Clause: An IF clause may be used
with an ACCEPT or REJECT statement to specify logical
condition criteria in addition to that specified when the record was selected/read
with a FIND, READ, or HISTOGRAM statement. The logical condition criteria
are evaluated after the record has been read and after record processing has
started.
|
logical-condition |
Logical Condition Criterion: The basic criterion
is a relational expression. Multiple relational expressions may be combined with
logical operators (AND, OR) to form complex criteria.
Arithmetic expressions may also be used to form a relational expression. The fields used to specify the logical criterion may be database fields or user-defined variables. For additional information on logical conditions, see Logical Condition Criteria in the Programming Guide. Note |
Normally, only one ACCEPT or REJECT statement is required in a
single processing loop. If more than one ACCEPT/REJECT is
specified consecutively, the following conditions apply:
If consecutive ACCEPT and REJECT statements are contained
in the same processing loop, they are processed in the specified order.
If an ACCEPT condition is satisfied, the record will be accepted and
consecutive ACCEPT/REJECT statements will be ignored.
If a REJECT condition is satisfied, the record will be rejected and
consecutive ACCEPT/REJECT statements will be ignored.
If the processing continues to the last ACCEPT/REJECT
statement, the last statement will determine whether the record is accepted or
rejected.
If other statements are interleaved between multiple
ACCEPT/REJECT statements, each
ACCEPT/REJECT will be handled independently.
If a LIMIT statement or other limit
notation has been specified for a processing loop containing an ACCEPT or
REJECT statement, each record processed is counted against the limit
regardless of whether or not the record is accepted or rejected.
ACCEPT/REJECT processing does not cause a held record to be
released from hold status unless the profile parameter RI (Release ISNs) has been set to
RI=ON.
** Example 'ACREX1': ACCEPT ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 NAME 2 SEX 2 MAR-STAT END-DEFINE * LIMIT 50 READ EMPLOY-VIEW ACCEPT IF SEX='M' AND MAR-STAT = 'S' WRITE NOTITLE '=' NAME '=' SEX 5X '=' MAR-STAT END-READ END
NAME: MORENO S E X: M MARITAL STATUS: S NAME: VAUZELLE S E X: M MARITAL STATUS: S NAME: BAILLET S E X: M MARITAL STATUS: S NAME: HEURTEBISE S E X: M MARITAL STATUS: S NAME: LION S E X: M MARITAL STATUS: S NAME: DEZELUS S E X: M MARITAL STATUS: S NAME: BOYER S E X: M MARITAL STATUS: S NAME: BROUSSE S E X: M MARITAL STATUS: S NAME: DROMARD S E X: M MARITAL STATUS: S NAME: DUC S E X: M MARITAL STATUS: S NAME: BEGUERIE S E X: M MARITAL STATUS: S NAME: FOREST S E X: M MARITAL STATUS: S NAME: GEORGES S E X: M MARITAL STATUS: S
** Example 'ACREX2': ACCEPT/REJECT
************************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 NAME
2 FIRST-NAME
2 SALARY (1)
*
1 #PROC-COUNT (N8) INIT <0>
END-DEFINE
*
EMP. FIND EMPLOY-VIEW WITH NAME = 'JACKSON'
WRITE NOTITLE *COUNTER NAME FIRST-NAME 'SALARY:' SALARY(1)
/*
ACCEPT IF SALARY (1) LT 50000
WRITE *COUNTER 'ACCEPTED FOR FURTHER PROCESSING'
/*
REJECT IF SALARY (1) GT 30000
WRITE *COUNTER 'NOT REJECTED'
/*
ADD 1 TO #PROC-COUNT
END-FIND
*
SKIP 2
WRITE NOTITLE 'TOTAL PERSONS FOUND ' *NUMBER (EMP.) /
'TOTAL PERSONS SELECTED' #PROC-COUNT
END
1 JACKSON CLAUDE SALARY: 33000
1 ACCEPTED FOR FURTHER PROCESSING
2 JACKSON FORTUNA SALARY: 36000
2 ACCEPTED FOR FURTHER PROCESSING
3 JACKSON CHARLIE SALARY: 23000
3 ACCEPTED FOR FURTHER PROCESSING
3 NOT REJECTED
TOTAL PERSONS FOUND 3
TOTAL PERSONS SELECTED 1