Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

The II-UPDATE tool

&pagelevel(3)&pagelevel

When binding or recompiling programs in C++ V3, C++ 2017 or C++ 2020 the system accesses existing ii information (ii=instantiation information). This information contains, among other things, the names of source files/libraries and source elements, of include libraries and lists or CIF files/libraries/elements. If these files, libraries and/or elements are renamed or located under a different ID (or another cat-id), then these changes must also be made in the ii files.

ii files, also known as ii elements, are created by the compiler from programs that contain templates.
II-UPDATE is a compiler-independent tool with an SDF interface. If a source or include library has been renamed, the tool is able to make these changes automatically in the ii file without the need to recompile. It is only possible to adjust the ii elements of a single library per call of the tool.

Entries in ii elements which contain the names of BS2000 or POSIX files or POSIX directories cannot be changed, but II-UPDATE can display these without error. This applies both for source, include, CIF and for listing entries.

The SDF syntax file of the II-UPDATE is not activated automatically. You have to activate it once per session, using the command /MODIFY-SDF-OPTIONS *ADD($.SYSSDF.CPP.040.IU.USER).

START-II-UPDATE

CONTAINER= *LIBRARY-ELEMENT(...)


*LIBRARY-ELEMENT(...)



|

LIBRARY= <filename 1..54>



|

,ELEMENT= *ALL / <composed-name 1..64 with-under>(...)



|


<composed-name 1..64 with-under>(...)



|




VERSION= *HIGHEST-EXISTING / <composed-name 1..24 with-under>

,OLD-NAME= *LIBRARY-ELEMENT(...) / *LIBRARY(...)


* LIBRARY-ELEMENT(...)



|

LIBRARY= <filename 1..54>



|

,ELEMENT= <composed-name 1..64 with-under>(...)



|


<composed-name 1..64 with-under>(...)



|



|

VERSION= *DEFAULT / <composed-name 1..24 with-under>


*LIBRARY(...)



|

LIBRARY= <filename 1..54>

,NEW-NAME= *LIBRARY-ELEMENT(...) / *LIBRARY(...)


* LIBRARY-ELEMENT(...)



|

LIBRARY= *SAME / <filename 1..54>



|

,ELEMENT= *SAME / <composed-name 1..64 with-under>(...)



|


<composed-name 1..64 with-under>(...)



|



|

VERSION=*UNCHANGED / <composed-name 1..24 with-under>


*LIBRARY(...)



|

LIBRARY= <filename 1..54>

,CONTEXT= *INCLUDE / *CIF / *SOURCE / *LISTING / *ALL

,ACTION= list-poss(2): *REPLACE / *SHOW

CONTAINER = *LIBRARY-ELEMENT(...)
This option is used to specify which ii elements in which object library are to be adapted.

LIBRARY = <filename 1..54>
<filename> is the name of a PLAM library.

ELEMENT = *ALL
All the ii elements in the PLAM library specified using LIBRARY= are to be adapted. Theses are elements of type S having a name with suffix ".II".

ELEMENT = <composed-name 1..64 with-under>(...)

<composed-name> identifies the fully qualified name of an ii element from the PLAM library specified using LIBRARY=.

VERSION = *HIGHEST-EXISTING
If the ii element information does not contain a version number, II-UPDATE uses the ii element with the highest version.

VERSION = <composed-name 1..24 with-under>
II-UPDATE uses the ii element with the specified version.

OLD-NAME = *LIBRARY-ELEMENT(...) / *LIBRARY
This option is used to specify the original library name or original library element names (for example, from the source library elements) that is to be modified in an ii file. The name must be specified in exactly the same way as in the ii file, i.e. if required with cat-id and userid (see also example 6).

LIBRARY-ELEMENT (...)

LIBRARY = <filename 1..54>

<filename> is the name of the PLAM library that has changed or in which a change has been made.

ELEMENT = <composed-name 1..64 with-under>(...)
<composed-name> identifies the fully qualified name of an element that has changed.

VERSION = *DEFAULT
Regardless of context, the version value of the ii element is accepted.

VERSION = <composed-name 1..24 with-under>
Identifies the version of the element that has changed.

LIBRARY = <filename 1..54>
<filename> is the name of a PLAM library that has changed.

NEW-NAME = *LIBRARY-ELEMENT(...) / *LIBRARY
This option is used to specify the new library or element name that is to be substituted for that specified in OLD-NAME.

LIBRARY-ELEMENT(...)

LIBRARY = *SAME / <filename 1..54>

If *SAME is specified, the name of the PLAM library as entered in the OLD-NAME parameter is used.
<filename> is the new name of the PLAM library that is specified under OLD-NAME.

ELEMENT = *SAME / <composed-name 1..64 with-under>(...)

If *SAME is specified, the name of the element as entered in the OLD-NAME parameter is used.
<composed-name> is the changed, fully qualified name of an element that was specified under OLD-NAME.

VERSION = *UNCHANGED
The existing version of the library elements (in the ii element) should not be changed.

VERSION = <composed-name 1..24 with-under>
The new version name of the element.

LIBRARY = <filename 1..54>
<filename> is the new name of the PLAM library as specified under OLD-NAME.

Note
Only the same type of OLD-NAME / NEW-NAME combinations are supported, for example,OLD-NAME = *LIBRARY / NEW-NAME = *LIBRARY or
OLD-NAME = *LIBRARY-ELEMENT / NEW-NAME = *LIBRARY-ELEMENT

CONTEXT
Specify the entries of the ii information which should be handled. The entries correspond to compiler statements.

CONTEXT = *INCLUDE
Handle entries corresponding to //MODIFY-INCLUDE-LIBRARIES.

If *INCLUDE is specified, the adaption of the library is only carried out if OLD-NAME and NEW-NAME are both library names. If OLD-NAME and NEW-NAME are library element names, then adaptation would not take place for *INCLUDE.

CONTEXT = *CIF
Handle entries corresponding to //MODIFY-CIF-PROPERTIES OUTPUT=.

CONTEXT = *SOURCE
Handle entries corresponding to //COMPILE SOURCE=.

CONTEXT = *LISTING
Handle entries corresponding to //MODIFY-LISTING-PROPERTIES OUTPUT=.

CONTEXT = *ALL
Handle all entries
.

Note
A message is output indicating the total number or replacements carried out for the various contexts.

ACTION =
This option enables II-UPDATE to be instructed to replace or output all library or library element names of an ii element which can potentially be replaced.

ACTION = *REPLACE
Replacements are performed. Only the replacements which are performed are output.

ACTION = *SHOW
No replacements are performed. All possible replacements are output, however. The names of libraries and elements which would not be replaced are also output.

ACTION = (*SHOW, *REPLACE)
Replacements are performed. In addition to the replacements which were performed, the replacements which were not performed are also output.

Note
The specified context is taken into account in all cases. II-UPDATE remains compatible to older versions with regard to call, replacement and output behavior.

The following examples will provide further information about the points mentioned above.

Example 1

The include library INC-LIB-V1 has been renamed in INC-LIB-V2. The following statement carries out the appropriate changes to all the ii elements in the MY-OBJ-LIB library.

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB, *ALL),-
/OLD-NAME=*LIBRARY(INC-LIB-V1),-
/NEW-NAME=*LIBRARY(INC-LIB-V2),-
/CONTEXT=*INCLUDE

Example 2

The source library MY-SOURCE-LIB.V1 has been renamed in MY-SOURCE-LIB.V2.
The following statement makes the appropriate changes to the library element EL.O.II in the MY-OBJ-LIB library:

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB, EL.O.II),-
/OLD-NAME=*LIBRARY(MY-SOURCE-LIB.V1),-
/NEW-NAME=*LIBRARY(MY-SOURCE-LIB.V2),-
/CONTEXT=*SOURCE

Example 3

The source libraries MY-SOURCE-LIB1 and MY-SOURCE-LIB2 contain a program system. The associated objects are located in the libraries MY-OBJ-LIB1 and MY-OBJ-LIB2. The source libraries are to be renamed in SOURCE-LIB1-V1 and SOURCE-LIB2-V2. The assumption has been made that each source library makes use of the other (include):

/MODIFY-FILE-ATTRIBUTES MY-SOURCE-LIB1, SOURCE-LIB1-V1
/MODIFY-FILE-ATTRIBUTES MY-SOURCE-LIB2, SOURCE-LIB2-V1

The ii files/elements are adapted using the following statements:

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB1, *ALL),-
/OLD-NAME=*LIBRARY(MY-SOURCE-LIB1),-
/NEW-NAME=*LIBRARY(SOURCE-LIB1-V1),-
/CONTEXT=*ALL

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB1, *ALL),-
/OLD-NAME=*LIBRARY(MY-SOURCE-LIB2),-
/NEW-NAME=*LIBRARY(SOURCE-LIB2-V1),-
/CONTEXT=*INCLUDE

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB2, *ALL),-
/OLD-NAME=*LIBRARY(MY-SOURCE-LIB1),-
/NEW-NAME=*LIBRARY(SOURCE-LIB1-V1),-
/CONTEXT=*INCLUDE

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB2, *ALL),-
/OLD-NAME=*LIBRARY(MY-SOURCE-LIB2),-
/NEW-NAME=*LIBRARY(SOURCE-LIB2-V1),-
/CONTEXT=*ALL

Example 4

Using the program system described in Example 3 but this time, instead of renaming the source libraries, we are going to move the source library element MY-ELEM.C from the MY-SOURCE-LIB1 library to the MY-SOURCE-LIB2 library and both the associated object MY-ELEM.O and the associated ii element MY-ELEM.O.II to the MY-OBJ-LIB2 library:

/LMS
//O-L MY-SOURCE-LIB1,*U
//COP-EL (,MY-ELEM.C,S),(MY-SOURCE-LIB2,MY-ELEM.C)
//DEL-EL (,MY-ELEM.C,S)
//O-L MY-OBJ-LIB1,*U
//COP-EL (,MY-ELEM.O,L),(MY-OBJ-LIB2,MY-ELEM.O)
//COP-EL (,MY-ELEM.O.II,S),(MY-OBJ-LIB2,MY-ELEM.O.II)
//DEL-EL (,MY-ELEM.O.L)
//DEL-EL (,MY-ELEM.O.II,S)
//END

The ii files/elements are adapted using the following statements:

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB2, MY-ELEM.O.II),-
/OLD-NAME=*LIB-ELEM(MY-SOURCE-LIB1, MY-ELEM.C),-
/NEW-NAME=*LIB-ELEM(MY-SOURCE-LIB2, MY-ELEM.C),-
/CONTEXT=*SOURCE

Example 5

The source libraries MY-SOURCE-LIB1 and MY-SOURCE-LIB2 contain a program system (see Example 3). The associated listing libraries MY-LISTING-LIB1 and MY-LISTING-LIB2 are to be renamed to LISTING-LIB1-V1 or LISTING-LIB2-V1:

/MODIFY-FILE-ATTRIBUTES MY-LISTING-LIB1, LISTING-LIB1-V1
/MODIFY-FILE-ATTRIBUTES MY-LISTING-LIB2, LISTING-LIB2-V1

The ii files/elements are adapted using the following statements:

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB1,*ALL),-
/OLD-NAME=*LIBRARY(MY-LISTING-LIB1),-
/NEW-NAME=*LIBRARY(LISTING-LIB1-V1),-
/CONTEXT=*LISTING

/START-II-UPDATE CONTAINER=*LIB-ELEM(MY-OBJ-LIB2,*ALL),-
/OLD-NAME=*LIBRARY(MY-LISTING-LIB2),-
/NEW-NAME=*LIBRARY(LISTING-LIB2-V1),-
/CONTEXT=*LISTING

Example 6

The include library HELLO-MAP.INCLIB was renamed HELLO-MAP.INCLIB.NEW. The following string of statements is initially used to determine the exact notation of the library which is to be renamed (ACTION=*SHOW; in this case the values of the old-name and new-name parameters are of no significance); subsequently the replacements are performed using ACTION=(*SHOW, *REPLACE):

/START-II-UPDATE CONTAINER=*LIB-ELEM(HELLO-MAP.OLIB1,*ALL),-
/OLD-NAME=*LIBRARY(OLIB),-
/NEW-NAME=*LIBRARY(NLIB),-
/CONTEXT=*ALL,-
/ACTION=*SHOW

Output:

%  BLS0523 ELEMENT 'II-UPDATE', VERSION '04.0B02', TYPE 'L' FROM LIBRARY ': 2OSG:
$TSOS.SYSLNK.CPP.040' IN PROCESS
%  BLS0524 LLM 'II-UPDATE', VERSION '04.0B02' OF '2023-04-02 14:33:19' LOADED
%  BLS0551 COPYRIGHT (C) 2023 Fujitsu Technology Solutions GmbH. ALL RIGHTS RESERVED
%  CDR9992 BEGIN II-UPDATE VERSION 04.0B02
%  CDR9810 Processing ii-element *LIBRARY-ELEMENT(:2OSC:$MTZ.HELLO-MAP.OLIB1,
HELLO-MAP-HP.II(*UPPER-LIMIT),S)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$TSOS.SYSLIB.CRTE)
%  CDR9819 source lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.SLIB1)
%  CDR9810 Processing ii-element *LIBRARY-ELEMENT(:2OSC:$MTZ.HELLO-MAP.OLIB1,
HELLO-MAP-UP.II(*UPPER-LIMIT),S)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$TSOS.SYSLIB.CRTE)
%  CDR9819 source lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.SLIB1)
%  CDR9814 Summary: 0 include / 0 source / 0 cif / 0 listing replaced
%  CCM0998 CPU TIME USED: 0.1485 SECONDS
/START-II-UPDATE CONTAINER=*LIB-ELEM(HELLO-MAP.OLIB1,*ALL),-
/OLD-NAME=*LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB),-
/NEW-NAME=*LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB.NEW),-
/CONTEXT=*ALL,-
/ACTION=(*REPLACE,*SHOW)

Output:

%  BLS0523 ELEMENT 'II-UPDATE', VERSION '04.0B02', TYPE 'L' FROM LIBRARY 
':2OSG:$TSOS.SYSLNK.CPP.040' IN PROCESS
%  BLS0524 LLM 'II-UPDATE', VERSION '04.0B02' OF '2023-04-02 14:33:19' LOADED
%  BLS0551 COPYRIGHT (C) 2023 Fujitsu Technology Solutions GmbH. ALL RIGHTS RESERVED
%  CDR9992 BEGIN II-UPDATE VERSION 04.0B02
%  CDR9810 Processing ii-element *LIBRARY-ELEMENT(:2OSC:$MTZ.HELLO-MAP.OLIB1, 
HELLO-MAP-HP.II(*UPPER-LIMIT),S)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$TSOS.SYSLIB.CRTE)
%  CDR9811 include lib replaced: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB) --> 
*LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB.NEW)
%  CDR9819 source lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.SLIB1)
%  CDR9810 Processing ii-element *LIBRARY-ELEMENT(:2OSC:$MTZ.HELLO-MAP.OLIB1, 
HELLO-MAP-UP.II(*UPPER-LIMIT),S)
%  CDR9819 include lib no replacement: *LIBRARY(:2OSC:$TSOS.SYSLIB.CRTE)
%  CDR9811 include lib replaced: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB) --> 
*LIBRARY(:2OSC:$MTZ.HELLO-MAP.INCLIB.NEW)
%  CDR9819 source lib no replacement: *LIBRARY(:2OSC:$MTZ.HELLO-MAP.SLIB1)
%  CDR9814 Summary: 2 include / 0 source / 0 cif / 0 listing replaced
%  CCM0998 CPU TIME USED: 0.2243 SECONDS