This document covers the following topics:
Modify the work and home address for a cabinet or nickname.
This subprogram can be used by different types of users. Depending on the type of user, the following functions are allowed:
Cabinet Administrator
Modify the address for a cabinet (except for cabinet SYSCNT), or for a
nickname in the cabinet administrator's own private cabinet.
System Administrator
Modify the address for cabinet SYSCNT, for a nickname in cabinet
SYSCNT, or for a nickname in the system administrator's own private
cabinet.
Any Other User
Modify the address for a nickname in the user's own private
cabinet.
This subprogram also modifies the addresses for nicknames in cabinets that the above listed users are authorized to use (for example, shared cabinets and public cabinets).
You must specify at least one of the following parameters: Cabinet-name, Nickname or Object-ISN. Thus, the following combinations are allowed: Cabinet-name and Object-ISN, Nickname and Object-ISN, only the Cabinet-name, only the Nickname, or only the Object-ISN.
The following table shows the parameters that are used for the different functions of this subprogram (the table does not consider the Object-ISN):
| Function | Cabinet | Cabinet-name | Nickname |
|---|---|---|---|
| Modify the address for a cabinet (except for cabinet SYSCNT). | User ID of a cabinet administrator. | The name of the cabinet to be modified. | |
| Modify the address for cabinet SYSCNT. | User ID of a system administrator. | The cabinet name "SYSCNT". | |
| Modify a nickname in cabinet SYSCNT. | The cabinet name "SYSCNT" (for system administrators only). | The nickname to be modified. | |
| Modify a nickname from the user's private cabinet or from a cabinet that the user is authorized to use. | The name of the cabinet in which the nickname is stored. | The nickname to be modified. |
Parameters which are not completed in the parameter list are deleted from the address. Thus, to retain the existing values, you must specify them once more before you invoke this subprogram.
To fill the parameters with the already existing address values, it is recommended that you invoke Z-GETADR prior to invoking Z-MODADR (see the following example program).
| Parameter | Format | In | Out | Remarks |
|---|---|---|---|---|
| Return-code | N2 | O | X | Input -1: no ET. |
| Cabinet | A8 | R | To modify the address for a cabinet, this must be the user ID of a cabinet administrator. To modify the nickname, this must be the ID of the cabinet in which the nickname is stored. | |
| Password | A8 | R | The password of the above cabinet. | |
| Cabinet-name | A8 | R/O* | The name of the cabinet to be modified. Either Cabinet-name or Nickname, not both. | |
| Nickname | A32 | R/O* | The nickname to be modified. Either Nickname or Cabinet-name, not both. | |
| Object-ISN | P10 | R/O | The ISN of the cabinet or nickname to be modified. You can invoke Z-GETADR prior to Z-MODADR to obtain the ISN for the desired cabinet or nickname. The Object-ISN can either be specified alone, or in addition to Cabinet-name or Nickname. In the latter case, the Object-ISN must correspond to the Cabinet-name or Nickname, otherwise return code 4 is issued. | |
| Work-title | A32 | O | ||
| Work-company | A32 | O | ||
| Work-location | A32 | O | ||
| Work-address | A60/1:3 | O | ||
| Work-city | A32 | O | ||
| Work-country | A8 | O | ||
| Work-department-name | A32 | O | ||
| Work-department-number | A10 | O | ||
| Work-phone | A15 | O | ||
| Work-phone-country | N2 | O | ||
| Work-phone-extension | A10 | O | ||
| Work-postal-code | A10 | O | ||
| Work-state | A8 | O | ||
| Home-address | A60/1:2 | O | ||
| Home-city | A32 | O | ||
| Home-country | A8 | O | ||
| Home-phone | A15 | O | ||
| Home-phone-country | N2 | O | ||
| Home-postal-code | A10 | O | ||
| Home-state | A8 | O |
| 00 | Success |
| 02 | Invalid cabinet name or - in batch mode only - locked cabinet |
| 03 | Password incorrect |
| 04 | ISN was not found |
| 15 | Invalid administrator status |
| 53 | Requested object does not exist |
| 91 | Invalid input in the parameter Cabinet-name or Nickname |
| 92 | You can either specify Cabinet-name or Nickname, you must not specify both |
| 93 | You must specify the parameter Cabinet-name or Nickname |
Z-120
Z-122
Z-123
Z-1200&0
The following example uses a local data area for the parameters of Z-MODADR. See Local Data Areas for further information.
Only the parameters used by Z-GETADR are defined locally.
**********************************************************************
* Shows how a cabinet administrator can substitute the old German
* zip codes (PLZ) with the new five-character zip codes
*********************************************************************
DEFINE DATA
LOCAL USING L-MODADR /* used by Z-MODADR
LOCAL
1 OBJECT-NUMBER (N2) /* used by Z-GETADR (in
1 PRIVATE-FLAG (A1) /* addition to the
1 LAST-NAME (A32) /* variables defined in
1 FIRST-NAME (A32) /* the local data area
1 INITIAL (A1) /* L-MODADR)
1 WORK-PARAMETER (A88)
1 TABLE-DA(A30/2) INIT
(1) <'Haardtring 64295'>
(2) <'Friedberger 64289'>
1 REDEFINE TABLE-DA
2 STRING (2)
3 STREET (A20)
3 PLZ (A5)
1 IND (N2)
1 ADR-INX (N2)
1 #RETURN-CODE (N2)
1 #COUNTER (N3)
END-DEFINE
*
MOVE 'ADMIN-ID' TO CABINET
MOVE 'PASSWORD' TO PASSWORD
MOVE '*' TO CABINET-NAME /* all cabinets
REPEAT
RESET RETURN-CODE
CALLNAT 'Z-GETADR'
RETURN-CODE
CABINET
PASSWORD
CABINET-NAME
NICKNAME
OBJECT-ISN
OBJECT-NUMBER
PRIVATE-FLAG
LAST-NAME
FIRST-NAME
INITIAL
WORK-TITLE
WORK-COMPANY
WORK-LOCATION
WORK-ADDRESS(*)
WORK-CITY
WORK-COUNTRY
WORK-DEPARTMENT-NAME
WORK-DEPARTMENT-NUMBER
WORK-PHONE
WORK-PHONE-COUNTRY
WORK-PHONE-EXTENSION
WORK-POSTAL-CODE
WORK-STATE
HOME-ADDRESS(*)
HOME-CITY
HOME-COUNTRY
HOME-PHONE
HOME-PHONE-COUNTRY
HOME-POSTAL-CODE
HOME-STATE
WORK-PARAMETER
*
MOVE RETURN-CODE TO #RETURN-CODE
IF RETURN-CODE EQ 0
OR RETURN-CODE EQ 77
RESET RETURN-CODE
*
PERFORM FILL-PLZ /* see the subroutine at the end of this program
*
CALLNAT 'Z-MODADR'
L-MODADR
END-IF
IF RETURN-CODE EQ 0
ADD 1 TO #COUNTER
END-IF
UNTIL #RETURN-CODE NE 77
END-REPEAT
*
WRITE #COUNTER ' addresses were modified'
*
* *****************************************************
*
DEFINE SUBROUTINE FILL-PLZ
*
IF WORK-CITY EQ SCAN 'Darmstadt'
FOR ADR-INX 1 TO 3
FOR IND 1 TO 2
IF WORK-ADDRESS(ADR-INX) EQ SCAN STREET(IND)
MOVE PLZ(IND) TO WORK-POSTAL-CODE
END-IF
END-FOR
END-FOR
END-IF
*
END-SUBROUTINE
* *****************************************************
END