Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

COPY-ELEMENT Elemente kopieren

COPY-ELEMENT kopiert Elemente und Bibliotheken im Verhältnis eins zu eins. Die kopierten Elemente können neue Elementbezeichnungen erhalten. Der Basistyp für Quell- und Zielelement darf unterschiedlich sein, wenn Textelemente kopiert werden.
Es gibt folgende Kopiermöglichkeiten:

  • Kopieren von einem oder mehreren Elementen in die gleiche Bibliothek

  • Kopieren von einem oder mehreren Elementen in eine andere Bibliothek

  • Kopieren einer kompletten Bibliothek (siehe Beispiel "COPY-ELEMENT Elemente kopieren")

Die kopierten Elemente können entweder als Voll-Element oder als Delta-Element gespeichert werden. Falls beim Kopieren von Delta-Elementen die Eingabebibliothek mit der Ausgabebibliothek identisch ist, müssen die kopierten Delta-Elemente neue Elementnamen erhalten. Blätter von Delta-Bäumen dürfen überschrieben werden.

Das Quellelement kann mit DELETE-SOURCE = *YES nach dem Kopieren gelöscht werden. Damit kann ein Element verschoben werden.

Strukturerhaltendes Kopieren (STORAGE-FORM = *BY-SOURCE)

LMS erkennt bei diesem Format die Form der Elementabspeicherung in den PLAM-Bibiliotheken. Dementsprechend werden Delta-Bäume als Delta-Bäume und alle andere Elemente als Vollelemente in die Ausgabedatei kopiert.

Hinweise

  • Wird der Kopiervorgang vorzeitig abgebrochen, bleibt der schon kopierte Teil eines Del-ta-Baumes erhalten.

  • VERSION, BASE und alle Datumsoperanden müssen auf ihren Default-Wert gesetzt sein. Es wird immer der komplette Namensraum, d.h. wie Version=*, kopiert.

  • Die Angabe von Bibliothekslisten führt auf Fehler.

    Beispiel

    In der Bibliothek sind die Elemente A/1 und A/2 enthalten. Dann wird durch die Anweisung „Kopiere Element A nach B“ bei Angabe von STORAGE-FORM=*STD das Element B/2 erzeugt und bei Angabe von STORAGE-FORM=*BY-SOURCE die Elemente B/1 und B/2.

Überschreiben des Zielnamensraumes (WRITE-MODE=*SUBSTITUTE)

Mit WRITE-MODE=*SUBSTITUTE kann erreicht werden, dass das kopierte Element in der Zielbibliothek das einzige Element mit gleichem Typ und Namen ist. LMS löscht vor dem Kopieren in der Zielbibliothek alle Elemente mit dem Typ und dem Namen des Zielelementes. D.h. alle Benutzerangaben bei TO-ELEMENT (wie z.B. VERSION = *INCREMENT) wirken erst auf den leeren Zielnamensraum. Bei *INCREMENT wird z.B. immer die Defaultversion erzeugt.

Einschränkungen

  1. Der Operand STORAGE-FORM= darf nicht den Wert *BY-SOURCE haben.

  2. Eingabe- und Ausgabebibliothek müssen unterschiedlich sein.

Tritt während des Löschens des Zielnamensraumes ein Fehler auf (z.B. Element schreibgeschützt), so wird die COPY-ELEMENT-Anweisung abgebrochen.

COPY-ELEMENT

ELEMENT = *LIB RARY -ELEM ENT (...)


*LIBRARY-ELEMENT(...)



|

LIBRARY = *STD / <filename 1..54 without-vers> / *LINK(...)



|


*LINK(...)



|



|

LINK-NAME = <structured-name 1..8>



|

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



|


*ALL(...)



|



|

VERSION = *HIGH EST -EXIST ING / *ALL / *UPPER-LIMIT /



|



|


<composed-name 1..24 with-under with-wild(52)>



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|


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



|



|

VERSION = *HIGH EST -EXIST ING / *ALL / *UPPER-LIMIT /



|



|


<composed-name 1..24 with-under with-wild(52)>



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|

,TYPE = *LMS-DEF AULT / *ALL / <alphanum-name 1..8 with-wild(20)>



|

,USER-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)



|


*INTERVAL(...)



|



|

FROM = 1900-01-01 / <date 8..10 with-compl>



|



|

,TO = *TODAY / <date 8..10 with-compl>



|

,CREATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)



|


*INTERVAL(...)



|



|

FROM = 1900-01-01 / <date 8..10 with-compl>



|



|

,TO = *TODAY / <date 8..10 with-compl>



|

,MODIFICATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)



|


*INTERVAL(...)



|



|

FROM = 1900-01-01 / <date 8..10 with-compl>



|



|

,TO = *TODAY / <date 8..10 with-compl>



|

,EXCEPT-ELEMENT = *NONE / *ELEMENT(...)



|


*ELEMENT(...)



|



|

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



|



|


*ANY(...)



|



|



|

VERSION = *ANY / *HIGHEST-EXISTING / *UPPER-LIMIT /



|



|



|


<composed-name 1..24 with-under with-wild(52)>



|



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|



|


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



|



|



|

VERSION = *ANY / *HIGHEST-EXISTING / *UPPER-LIMIT /



|



|



|


<composed-name 1..24 with-under with-wild(52)>



|



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|



|

,TYPE = *ANY / *LMS-DEFAULT / <alphanum-name 1..8 with-wild(20)>



|



|

,USER-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)



|



|


*INTERVAL(...)



|



|



|

FROM = 1900-01-01 / <date 8..10 with-compl>



|



|




,TO = *TODAY / <date 8..10 with-compl>



|



|

,CREATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)



|



|


*INTERVAL(...)



|



|



|

FROM = 1900-01-01 / <date 8..10 with-compl>



|



|



|

,TO = *TODAY / <date 8..10 with-compl>



|



|

,MODIFICATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)



|



|


*INTERVAL(...)



|



|



|

FROM = 1900-01-01 / <date 8..10 with-compl>



|



|



|

,TO = *TODAY / <date 8..10 with-compl>

,TO-ELEMENT = *LIB RARY -ELEM ENT (...)


*LIBRARY-ELEMENT(...)



|

LIBRARY = *STD / *BY-SOURCE / <filename 1..54 without-vers> / *LINK(...)



|


*LINK(...)



|



|

LINK-NAME = <structured-name 1..8>



|

,ELEMENT = *BY-SOUR CE (...) / <composed-name 1..132 with-under with-wild-constr>(...)



|


*BY-SOURCE(...)



|



|

VERSION = *LMS-DEF AULT / *BY-SOURCE / *HIGHEST-EXISTING / *INCREMENT /



|



|





*UPPER-LIMIT / <composed-name 1..52 with-under with-wild-constr>



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|


<composed-name 1..132 with-under with-wild-constr>(...)



|



|

VERSION = *LMS-DEF AULT / *BY-SOURCE / *HIGHEST-EXISTING / *INCREMENT /



|



|





*UPPER-LIMIT / <composed-name 1..52 with-under with-wild-constr>



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|

,TYPE = *BY-SOUR CE / *LMS-DEFAULT / <alphanum-name 1..20 with-wild-constr>



|

,USER-DATE = *BY-SOUR CE / *TODAY / <date 8..10 with-compl>



|

,STORAGE-FORM = *LMS-DEF AULT / *BY-SOURCE / *STD / *FULL / *DELTA

,PROTECTION = *LMS-DEF AULT / *STD / *BY-SOURCE

,DELETE-SOURCE = *NO / *YES

,WRITE-MODE = *LMS-DEF AULT / *CREATE / *REPLACE / *EXTEND / *SUBSTITUTE / *ANY

,DIALOG-CONTROL = *LMS-DEF AULT / *NO / *YES / *ERROR

ELEMENT = *LIBRARY-ELEMENT (...)

Angaben für die gewünschte Elementbezeichnung.

LIBRARY = *STD / <filename 1..54 without-vers> / *LINK(...)
Angabe der Bibliothek, in der sich die zu kopierenden Elemente befinden.

LIBRARY = *STD
Die durch OPEN-LIBRARY eröffnete Bibliothek.

LIBRARY = <filename 1..54 without-vers>
Name der Bibliothek, aus der die Elemente kopiert werden sollen.

LIBRARY = *LINK(...)
Die über den Dateikettungsnamen zugewiesene Bibliothek.

LINK-NAME = <structured-name 1..8>
Dateikettungsname der Bibliothek, der vor dem Aufruf von LMS mit einem /ADD-FILE-LINK-Kommando vereinbart wurde.

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

Name des Elementes, das kopiert werden soll.

VERSION = *HIGHEST-EXISTING / *ALL / *UPPER-LIMIT /  <composed-name 1..24 with-under with-wild(52)>
Version, die das zu kopierende Element besitzt.

VERSION = *HIGHEST-EXISTING
Das Element mit der höchsten bestehenden Version bzgl. BASE wird kopiert.

VERSION = *UPPER-LIMIT
Die in der Bibliothek unter dem angegebenen TYPE und Namen höchstmögliche Version X’FF’ wird kopiert.

VERSION = <composed-name 1..24 with-under with-wild(52)>
Der hier angegebene Text wird als Versionsbezeichnung interpretiert.

BASE = *STD / <composed-name 1..24 with-under with-wild>
Präfix für die Versionsauswahl. Im Zusammenhang mit VERSION=*HIGHEST-EXISTING kann damit die höchste Version mit einem bestimmten Präfix angesprochen werden. BASE=*STD wirkt wie BASE=*.

TYPE = *LMS-DEFAULT / *ALL / <alphanum-name 1..8 with-wild(20)>

Typ, den das zu kopierende Element besitzt.

USER-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)

Datum, das vom Benutzer vergeben wurde.

USER-DATE = *ANY
Das zu kopierende Element besitzt ein beliebiges Datum.

USER-DATE = *TODAY

Das Element mit dem aktuellen Tagesdatum wird kopiert.

USER-DATE = <date 8..10 with-compl>
Das Element, dessen Datum explizit in der Form [JJ]JJ-MM-TT eingegeben wird, wird kopiert.

USER-DATE = *INTERVAL(...)
Alle Elemente, die in dem angegebenen Zeitraum liegen, werden kopiert.

FROM = 1900-01-01 / <date 8..10 with-compl>
Beginn des Zeitraums.

TO = *TODAY / <date 8..10 with-compl >
Ende des Zeitraums.

CREATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)

Erzeugungsdatum des Elementes. Beschreibung der Operanden siehe Operand USER-DATE dieses Kommandos.

MODIFICATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)

Datum der letzten Änderung für das Element. Beschreibung der Operanden siehe Operand USER-DATE dieses Kommandos.

EXCEPT-ELEMENT = *NONE / *ELEMENT(...)
Angabe der Elemente, die von der oben getroffenen Auswahl ausgeschlossen werden.

EXCEPT-ELEMENT = *NONE
Es wird kein Element vom Kopieren ausgeschlossen.

EXCEPT-ELEMENT = *ELEMENT(...)
Angabe der Elemente, die vom Kopieren ausgeschlossen sind. Ein Element wird ausgeschlossen, wenn alle Felder der EXCEPT-ELEMENT-Struktur, die nicht auf *ANY gesetzt sind, das Element als Treffer ausweisen. Sind alle Felder der EXCEPT-ELEMENT-Struktur auf *ANY gesetzt, so werden alle Elemente ausgeschlossen.
Zur Beschreibung der Operanden siehe Operand *LIBRARY-ELEMENT dieser Anweisung.

TO-ELEMENT = *LIBRARY-ELEMENT(...)
Angabe, wohin und unter welchem Namen das Element aufgenommen werden soll.

LIBRARY = *STD / *BY-SOURCE / <filename 1..54 without-vers> / *LINK(...)
Angabe des neuen Bibliotheksnamens oder Bibliothek, in die das Element aufgenommen werden soll.

LIBRARY = *STD
Die durch OPEN-LIBRARY eröffnete Bibliothek.

LIBRARY = *BY-SOURCE

Das Element wird in die Bibliothek kopiert, in der sich auch das zu kopierende Element befindet.

LIBRARY = <filename 1..54 without-vers>
Name der Bibliothek, in die die Datei als Element aufgenommen werden soll. Existiert die Bibliothek noch nicht, wird sie neu eingerichtet.

LIBRARY = *LINK(...)
Die über den Dateikettungsnamen zugewiesene Bibliothek.

LINK-NAME = <structured-name 1..8>
Dateikettungsname der Bibliothek, der vor dem Aufruf von LMS mit einem /ADD-FILE-LINK-Kommando vereinbart wurde.

ELEMENT = *BY-SOURCE(...) /
<composed-name 1..132 with-under with-wild-constr>(...)
Name, den das neu aufzunehmende Element erhalten soll.

ELEMENT = *BY-SOURCE(...)
Der neue Name entspricht dem alten Namen.

VERSION = *LMS-DEFAULT / *BY-SOURCE / *HIGHEST-EXISTING /
*INCREMENT / *UPPER-LIMIT /
<composed-name 1..52 with-under with-wild-constr>
Version, die das neu aufzunehmende Element erhalten soll.

VERSION = *BY-SOURCE
Das neue Element erhält die gleiche Version wie das ursprüngliche Element. Hat das ursprüngliche Element keine Versionsangabe, erhält das neue Element X’FF’ als Versionsangabe.

VERSION = *HIGHEST-EXISTING
Abhängig von der unter dem Typ geltenden Konvention wird unter existierenden Elementen gleichen Typs und Namens die höchste zu BASE passende Version überschrieben, ansonsten wird eine Defaultversion erzeugt.

VERSION = *INCREMENT
Abhängig von der unter dem Typ geltenden Konvention wird unter existierenden Elementen gleichen Typs und Namens eine neue, höhere Version erzeugt, ansonsten eine Defaultversion (siehe auch Abschnitt „Versionskonventionen“ "Versionskonventionen").

VERSION = *UPPER-LIMIT
Die höchstmögliche Version X’FF’ wird erzeugt.

VERSION = <composed-name 1..52 with-under with-wild-constr>
Das Zielelement erhält die hier angegebene Version.

BASE = *STD / <composed-name 1..24 with-under with-wild>

Legt die Basis für das Zielelement fest. Näheres zur Angabe der Basis siehe "Versionsbezeichnungen".

ELEMENT = <composed-name 1..132 with-under with-wild-constr>(...)
Name des neu aufzunehmenden Elementes. Er kann auch mit Wildcards eingegeben werden.

VERSION = *LMS-DEFAULT / *BY-SOURCE / *HIGHEST-EXISTING /
*INCREMENT / *UPPER-LIMIT /
<composed-name 1..52 with-under with-wild-constr>
Version, die das neu aufzunehmende Element erhalten soll.
Beschreibung der Operanden siehe oben.

BASE = *STD / <composed-name 1..24 with-under with-wild>
Präfix für die Versionsauswahl. Im Zusammenhang mit VERSION=*HIGHEST-EXISTING kann damit die höchste Version mit einem bestimmten Präfix angesprochen werden. BASE=*STD wirkt wie BASE=*. Näheres zur Angabe der Basis siehe "Versionsbezeichnungen".

TYPE = *BY-SOURCE / *LMS-DEFAULT / <alphanum-name 1..20 with-wild-constr>Typ, den das neu aufzunehmende Element erhalten soll.

TYPE = *BY-SOURCE
Das neue Element erhält die gleiche Typbezeichnung wie das ursprüngliche Element.

USER-DATE = *BY-SOURCE / *TODAY / <date 8..10 with-compl>
Datum, das vom Benutzer vergeben wird.

USER-DATE = *BY-SOURCE
Das neue Element erhält das gleiche Datum wie das ursprüngliche Element.

USER-DATE = *TODAY
Das aktuelle Tagesdatum wird vergeben.

USER-DATE = <date 8..10 with-compl>
Das Datum muss in der Form [JJ]JJ-MM-TT eingegeben werden.

STORAGE-FORM= *LMS-DEFAULT / *BY-SOURCE / *STD / *FULL / *DELTA

Speicherform für das anzulegende Element. Die Speicherform darf den Einstellungen durch MODIFY-TYPE-ATTRIBUTES bzw. MODIFY-LIBRARY-ATTRIBUTES nicht widersprechen und alle Elemente eines Typs und Namens müssen die gleiche Speicherform haben.

STORAGE-FORM = *BY-SOURCE
VERSION, BASE und alle Datumsoperanden müssen auf ihren Standardwert gesetzt sein. Es wird immer der komplette Namensraum, d.h. wie Version=*, kopiert.
Das neu aufzunehmende Element wird strukturerhaltend kopiert, d.h. Delta-Bäume werden als solche wieder abgelegt und Vollelemente werden als Vollelemente übernommen. Werden Delta-Bäume strukturerhaltend kopiert, darf der Zielname im Zieltyp nicht existieren (d.h. WRITE-MODE wirkt nicht).

STORAGE-FORM = *STD
Das Element wird gemäß der für den Elementscope geforderten Speicherform angelegt. Widersprüchliche Anforderungen führen auf Fehler. Ist nichts besonderes gefordert, wird Vollspeicherung gewählt.

STORAGE-FORM = *FULL
Das neue Element wird als Voll-Element angelegt (Fehler, falls nicht zulässig).

STORAGE-FORM = *DELTA
Das neue Element wird als Delta-Element angelegt (Fehler, falls nicht zulässig). Zulässige Elementtypen: S, P, D, J, M, X bzw. davon abgeleitete Elementtypen.

PROTECTION = *LMS-DEFAULT / *STD / *BY-SOURCE
Elementschutz für das kopierte Element.

PROTECTION = *STD
Existiert das Element bereits, so bleibt der Elementschutz unverändert. Existiert das Element noch nicht und ist für die Bibliothek bzw. den Typ des Elementes ein initialer Elementschutz festgelegt, so erhält das kopierte Element diesen Schutz.

PROTECTION = *BY-SOURCE
Das kopierte Element erhält den selben Schutz wie das ursprüngliche Element.

DELETE-SOURCE = *NO / *YES
Hier kann der Benutzer bestimmen, ob das ursprüngliche Element erhalten bleiben oder gelöscht werden soll.

DELETE-SOURCE = *NO
Das ursprüngliche Element wird nicht gelöscht.

DELETE-SOURCE = *YES
Das ursprüngliche Element wird gelöscht.

WRITE-MODE = *LMS-DEFAULT / *CREATE / *REPLACE / *EXTEND / *SUBSTITUTE / *ANY

Überschreiben eines Elementes gleichen Namens. Existiert das Element nicht unter diesem Namen, wird es neu angelegt.
Ist das zu speichernde Element ein Delta-Element, ist darauf zu achten, dass das Element ein Blatt des Delta-Baumes sein muss. Nur Blätter eines Delta-Baumes dürfen überschrieben werden.

WRITE-MODE = *CREATE
Das Zielelement darf noch nicht existieren und wird neu erzeugt.

WRITE-MODE = *REPLACE
Das Zielelement muss bereits existieren und wird dann ersetzt.

WRITE-MODE = *EXTEND
Das Zielelement wird erweitert, wenn es bereits existiert. Ansonsten wird es neu angelegt. *EXTEND ist nicht für Delta-Elemente erlaubt.

WRITE-MODE = *SUBSTITUTE
Alle Elemente mit Typ und Namen des Zielelementes werden in der Zielbibliothek gelöscht. Danach wird das Quellelement kopiert.

WRITE-MODE = *ANY
Das Zielelement wird ersetzt, wenn es bereits existiert. Ansonsten wird es neu angelegt.

DIALOG-CONTROL = *LMS-DEFAULT / *NO / *YES / *ERROR
Dieser Operand legt fest, ob während der Ausführung einer Anweisung ein Dialog mit dem Benutzer geführt werden soll oder nicht.

Nähere Erläuterungen zur Dialogführung unter MODIFY-LMS-DEFAULTS.

Anweisungs-Returncode

(SC2)

SC1

Maincode

Bedeutung


0

CMD0001

Ohne Fehler

2

0

LMS0129

Anweisung abgebrochen durch Benutzer


1

CMD0230

Syntaxfehler


32

LMS1002

Interner Fehler


64

LMS0020

Ziel-Element oder Ziel-Datei nicht vorhanden


64

LMS0213

Name existiert als Delta-Element


64

LMS0214

Name existiert als Voll-Element


64

LMS0302

Element nicht gefunden


64

LMS0509

Ziel-Element oder Ziel-Datei schon vorhanden


64

LMS0510

Basis nicht gefunden


64

LMS1003

Fehler während Mengenverarbeitung (Wildcard) bei mindestens einem Element oder einer Datei


64

LMS1004

Sonstige Fehler


64

PLA0223

Nur Blätter eines Delta-Baumes überschreibbar


64

PLA0224

Speicherform nicht erlaubt


64

PLA0229

Kein Zugriffsrecht für das Element


64

PLA0233

Ausleihstatus verhindert Elementzugriff


64

PLA0475

Funktion verletzt Versionsautomatismus


64

PLA0476

Version passt nicht zur geltenden Konvention


64

PLA0478

Versionsüberlauf bei Erhöhung


130

LMS0041

Systemadressraum erschöpft


130

LMS0411

Bibliothek gesperrt


130

LMS0412

Element gesperrt


130

LMS0413

Typ gesperrt

Notwendige Zugriffsrechte

Bei LIBRARY-ELEMENT: Leserecht für LIBRARY und ELEMENT

Sind von der Anweisung mehrere Elemente betroffen, so werden Elemente ohne Leserecht von der Anweisung ausgenommen.

Beim Kopieren von Deltas mit STORAGE-FORM=*BY-SOURCE wird der Delta-Baum nur kopiert, wenn für alle seine Elemente Leserecht besteht.

Bei TO-ELEMENT: Lese- und Schreibrecht für LIBRARY

Administrationsrecht, sofern die angegebene Elementbezeichnung neu ist. Ansonsten nur Schreibrecht für das unter der angegebenen Elementbezeichnung existierende Element (kein Administrationsrecht mehr erforderlich).

Bei STORAGE-FORM=*DELTA muss für das durch BASE bestimmte Element Leserecht gegeben sein.

Bei aktivem WRITE-CONTROL muss die USERID des Benutzers bei dem durch BASE bestimmten Element als HOLDER eingetragen sein, sofern eine Basisversion existiert. Es kann nur eine neue Version erzeugt oder diese Basisversion überschrieben werden, sofern Schreibrecht gegeben ist. Administrationsrecht ist in diesem Falle nicht mehr erforderlich.

Bei PROTECTION=*BY-SOURCE kann nur der Eigentümer der Bibliotheksdatei diese Funktionalität nutzen.

Hinweise

  • Beim Anlegen eines Elements ist die unter dem Typ geltende Konvention zu beachten. Insbesondere dann, wenn der Zieltyp die Konvention STD-TREE hat, können Probleme auftreten, wenn auf der Quellseite Nebenzweigversionen existieren, deren zugehörige Hauptzweigversion gelöscht ist. In diesem Fall können die betreffenden Nebenzweige nicht kopiert werden; es erfolgt jedoch eine Fehlermeldung von LMS.

  • Ausnahme: Das Kopieren eines kompletten Delta-Baumes mit STORAGE-FORM=*BY-SOURCE ist immer möglich.

  • STATE und HOLDER des Quellelements werden nicht auf das Zielelement übernommen, auch nicht bei PROTECTION=*BY-SOURCE.

  • Bei aktivem WRITE-CONTROL in der Ausgabebibliothek wird dem zu schreibenden Element von der Zugriffsmethode ein Kommentarsatz (Satzart 2) zugefügt, der HOLDER, DATE und TIME des Vorganges protokolliert. Der Satz wird als erster Satz der Satzart geschrieben. Bereits vorhandene Kommentarsätze werden dahinter kopiert. Wird das Element überdies zur Basis einer anderen Version geschrieben (also nicht erste Version unter einem Namen), so werden die Elementattribute STATE, HOLDER und alle Rechte von der Basisversion auf die neue Version übernommen. Die CCSN wird von dem Quellelement übernommen. Das USER-DATE wird neu bestimmt.

Beispiele mit WRITE-MODE=*SUBSTITUTE

  • In der Eingabebibliothek X ist unter dem Typ S das Element A/1 enthalten. In der Ausgabebibliothek Y ist unter Typ S das Element A/2 enthalten.

    //COPY-ELEM ELEMENT= *LIB(LIB=X,ELEM=A,TYPE=S),-

              TO ELEMENT= *LIB(LIB=Y),WRITE-MODE=*SUBSTITUTE

    Nach dieser Anweisung ist in der Ausgabebibliothek unter Typ S und Namen A nur das Element A/1 vorhanden. Das Element A/2 wurde gelöscht.

  • In der Eingabebibliothek X befinden sich alle Elemente einer Produktversion. Diese Elemente sollen in eine existierende Ausgabebibliothek Y so kopiert werden, dass Y nach dem Kopieren nur die kopierte Produktversion enthält und sonst keine andere Version. Das erreicht man mit folgender Anweisung.

    //COPY-ELEM ELEMENT= *LIB(LIB=X,ELEM=*,TYPE=*),-

                TO ELEMENT= *LIB(LIB=Y),WRITE-MODE=*SUBSTITUTE

Beispiel für das Kopieren einer kompletten Bibliothek

Die Bibliothek lib1 wird komplett kopiert und erhält den Namen lib2. Durch die Angabe von ’*’ bei Element und Typ ist keine Kenntnis über die enthaltenen Elemente erforderlich, d.h. alle Elemente werden im Verhältnis eins zu eins in die Bibliothek lib2 kopiert.

/START-LMS
//OPEN-LIBRARY LIB1
//SHOW-ELEMENT-ATTRIBUTES
 INPUT  LIBRARY= :1OSQ:$USER.LIB1
TYP NAME     VER (VAR#) DATE         NAME     VER (VAR#) DATE
(D) LETTER.A @   (0001) 2011-04-12   TESTELEM @   (0001) 2011-04-12
       2 (D)-ELEMENT(S) IN THIS TABLE OF CONTENTS
TYP NAME  VER (VAR#) DATE
(S) TEST3 @   (0001) 2011-04-12
       1 (S)-ELEMENT(S) IN THIS TABLE OF CONTENTS
--------------------------------------------------------------------------
       3 ELEMENT(S) IN THIS TABLE OF CONTENTS
//COPY-ELEMENT (,ELEM=*,TYPE=*),TO-ELEM=*LIB(LIBRARY=LIB2)
//SHOW-LIBRARY-STATUS
 STATUS FILENAME                                     MODE    LINK DEF-TYPE
OPEN :1OSQ:$USER.LIB2
OPEN :1OSQ:$USER.LIB1                                READ
//SHOW-ELEMENT-ATTRIBUTES *LIB(LIBRARY=LIB2)
 INPUT  LIBRARY= :N:$USER.LIB2
TYP NAME     VER (VAR#) DATE         NAME     VER (VAR#) DATE
(D) LETTER.A @   (0001) 2011-04-12   TESTELEM @   (0001) 2011-04-12
       2 (D)-ELEMENT(S) IN THIS TABLE OF CONTENTS
TYP NAME  VER (VAR#) DATE
(S) TEST3 @   (0001) 2011-04-12
       1 (S)-ELEMENT(S) IN THIS TABLE OF CONTENTS
--------------------------------------------------------------------------
       3 ELEMENT(S) IN THIS TABLE OF CONTENTS
//END