Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

EXTRACT-ELEMENT Ausgeben von Elementen als Dateien

&pagelevel(4)&pagelevel

Die Anweisung EXTRACT-ELEMENT gibt Bibliothekselemente standardmäßig in Dateien aus. Wird die Anweisung in der EDT-Anweisungszeile gegeben, werden die Elementdaten standardmäßig in die aktuelle EDT-Arbeitsdatei geschrieben.

LMS erzeugt die Dateien entsprechend

  • dem Eintrag in der TASK-FILE-TABLE (TFT), wenn die Datei mit dem Dateikettungsnamen zugeordnet ist,

  • den gespeicherten Dateimerkmalen und dem Operanden FILE-ATTRIBUTES,

  • dem Katalogeintrag.

Die Dateien können RECORD-FORMAT=UNDEFINED und beliebige Angaben zu BUFFER-LENGTH und RECORD-SIZE haben. Die maximale Satzlänge von 32 KByte (inkl. Satzkopf) darf allerdings nicht überschritten werden.

Wurden die ISAM-Schlüssel einer ISAM-Datei mit in das Element aufgenommen, werden die ISAM-Schlüssel mit EXTRACT-ELEMENT auch wieder mit ausgegeben.

Wurden bei der Aufnahme der Datei Informationen über ISAM-Sekundärschlüssel gespeichert, werden die Sekundärschlüssel wieder eingerichtet. Ist das Einrichten einzelner oder aller Sekundärschlüssel nicht möglich, wird die Datei ohne oder nicht mit allen Sekundärschlüsseln erzeugt.

Die Anweisung EXTRACT-ELEMENT ist für die Elementtypen S, M, R, J, P, D, X, C, L und davon abgeleitete Elementtypen erlaubt.
Elemente vom Typ C, PAM-Dateien unter dem Typ X und PAM LLM Dateien unter dem Typ L bzw. davon abgeleitete Typen werden als PAM-Dateien erzeugt.

Die erzeugte Datei erhält als Katalogattribut CCS den CCS-Namen des Quellelements. Werden die Elementdaten in eine EDT-Arbeitsdatei geschrieben, so ist die Anweisung EXTRACT-ELEMENT nur für textartige Elementtypen oder davon abgeleitete Typen erlaubt, wobei der CCSN des jeweiligen Elements an den EDT übergeben wird.

Wenn ein Textelement in eine bestehende PAM-Datei ausgegeben wird, bestimmt die (möglicherweise implizite) Einstellung des Operanden ACCESS-METHOD die neue Zugriffsmethode (SAM oder ISAM) der Zieldatei.

Wird mit der EXTRACT-ELEMENT Anweisung versucht, Dateien aus Elementen vom Typ L zu erzeugen, die keine gültigen LLM Dateien ergeben, dann werden folgende Meldungen von LMS ausgegeben:
BND5303 TYPE-L-ELEMENT 'xxx' VERSION 'xxx' KEIN GUELTIGES LLM. ANWEISUNG ABGEBROCHEN
BND1102 BINDER ABNORMAL BEENDET. FEHLERKLASSE: 'RECOVERABLE ERROR'

Hinweis

Zulässige Elementnamen sind nicht in jedem Fall als Dateinamen zulässig.

Erzeugen von ISAM-Dateien

Beim Ausgeben von Elementen in ISAM-Dateien erzeugt LMS die ISAM-Schlüssel wie folgt:

  • Wurden bei der Aufnahme einer ISAM-Datei als Bibliothekselement die ISAM-Schlüssel mit aufgenommen, erzeugt LMS die ISAM-Datei mit diesen gespeicherten ISAM-Schlüsseln.

  • Sind im Eingabeelement keine ISAM-Schlüssel gespeichert, wird eine ISAM-Datei mit KEY-POSITION = 5 und KEY-LENGTH = 8 erstellt. Standardmäßig erzeugt LMS dann ISAM-Schlüssel mit einem Anfangswert von 1000 und einer Schrittweite von 1000. Ist das Element zu groß für diese Schrittweite (mehr als 100000 Sätze), so wird die Schrittweite aus der Anzahl der Sätze berechnet.

Hinweise

  • Elemente vom Typ R werden bis zum END-Satz ausgegeben. Eventuell nachfolgende Sätze werden ignoriert.

  • Korrekturjournalsätze (TXTP) werden bei Elementen vom Typ C nicht mit ausgegeben.

  • Die RECORD-SIZE wird nur bei RECORD-FORMAT=FIXED versorgt; sie hat bei RECORD-FORMAT=VARIABLE den Wert 0.

EXTRACT-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-FILE = *STD / *BY-SOURCE / <filename 1..54 without-gen-vers with-wild-constr> / *LINK(...)


*LINK(...)



|

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

,FILE-ATTRIBUTES = * BY-ELEM ENT / *BY-CATALOG / *LMS-DEFAULT / *PARAMETERS(...)


*PARAMETERS(...)



|

ACCESS-METHOD = *LMS-DEF AULT / *ISAM / *SAM

,INFORMATION = *TEXT / list-poss(2): *TEXT / *COMMENT

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

,WRITE-MODE = *LMS-DEF AULT / *CREATE / *REPLACE / *EXTEND / *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 das Element befindet.

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

LIBRARY = <filename 1..54 without-vers>
Name der Bibliothek, in der sich das Element befindet.

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, welches aus der Bibliothek in eine Datei übernommen werden soll.

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

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

VERSION = *UPPER-LIMIT

Die in der Bibliothek unter dem angegebenen TYPE und Namen höchstmögliche Version X’FF’ wird ausgegeben.

VERSION = <composed-name 1..24 with-under with-wild(52)>
Explizite Angabe der Version des Elementes, das ausgegeben werden soll.

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 = *LMS-DEFAULT / *ALL / <alphanum-name 1..8 with-wild(20)>

Typ, den das zu auszugebende Element besitzt.

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

Datum, das vom Benutzer vergeben wurde.

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

USER-DATE = *TODAY
Das Element mit dem aktuellen Tagesdatum wird ausgegeben.

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

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

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 ausgeschlossen.

EXCEPT-ELEMENT = *ELEMENT(...)

Angabe der Elemente, die nicht ausgegeben werden sollen. 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 dieses Kommandos.

TO-FILE = *STD / *BY-SOURCE /
<filename 1..54 without-gen-vers with-wild-constr> / *LINK(...)
Name der Zieldatei. Eine Konstruktionsangabe bezieht sich auf den Elementnamen.

TO-FILE = *STD
Standardmäßig werden die Elementdaten in Dateien ausgegeben, wobei die Datei den gleichen Namen wie das Element erhält. Erfolgt die EXTRACT-ELEMENT-Anweisung jedoch aus der EDT-Anweisungszeile, so werden die Daten standardmäßig in die aktuelle EDT-Arbeitsdatei geschrieben.

TO-FILE = *BY-SOURCE
Der Dateiname ist der gleiche Name wie der Elementname.

TO-FILE = *LINK(...)
Das Element wird in die Datei ausgegeben, die über den Dateikettungsnamen zugewiesen wurde.

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

FILE-ATTRIBUTES = *BY-ELEMENT / *BY-CATALOG / *LMS-DEFAULT /
*PARAMETERS(...)
Dateiattribute, die bei der Erzeugung der Datei festgelegt werden. Dieser Operand ist wirkungslos, wenn die Elementdaten in die aktuelle EDT-Arbeitsdatei geschrieben werden. LMS bestimmt die Dateiattribute nach folgender Hierarchie:

  1. LINK-Eintrag

  2. im Element gespeicherte Dateiattribute

  3. Katalogeintrag

  4. LMS Defaultwerte

Die nachfolgenden Angaben wirken nur, wenn nicht TO-FILE=*LINK angegeben wurde.

FILE-ATTRIBUTES = *BY-ELEMENT
Die im Element gespeicherten Dateiattribute haben Vorrang.

FILE-ATTRIBUTES = *BY-CATALOG

Die im Katalogeintrag gespeicherten Attribute haben Vorrang. Fehlt der Katalogeintrag, wirkt die Angabe *BY-CATALOG wie die Angabe *BY-ELEMENT.

FILE-ATTRIBUTES = *PARAMETERS(...)

ACCESS-METHOD = *LMS-DEFAULT / *ISAM / *SAM

Legt die Zugriffsmethode ISAM oder SAM für die Zieldatei fest.

INFORMATION = *TEXT / list-poss(2): *TEXT / *COMMENT
der zu bearbeitende Teilbereich des Elementes.

INFORMATION = *TEXT
Der eigentliche Text, d.h. Satzart 1 wird ausgegeben.

INFORMATION = *COMMENT
Der separat gespeicherte Text, d.h. Satzart 2 wird ausgegeben.

PROTECTION = *LMS-DEFAULT / *STD / *BY-SOURCE
Einstellung und Aktivierung eines Zugriffsschutzmechanismus für die zu erzeugende Datei, der dem wirksamen Elementschutz entspricht. Dieser Operand ist wirkungslos, wenn die Elementdaten in die aktuelle EDT-Arbeitsdatei geschrieben werden.

PROTECTION = *STD
Der wirksame Elementschutz des Elementes geht nicht in die Einstellung des Zugriffsschutzmechanismus für die zu erzeugende Datei ein.

PROTECTION = *BY-SOURCE
Die zu erzeugende Datei erhält als Dateischutz einen Zugriffsschutzmechanismus, der dem für das Element wirksamen Elementschutz entspricht.

Hinweis

Bei PROTECTION=*BY-SOURCE erhält die Datei als Dateischutz mindestens den Zugriffsschutzmechanismus Einfache-Zugriffskontrolliste (BACL), auch wenn auf den Zugriffsrechten des Elementes (read, write, execute) kein zusätzlicher Schutz wirkt.Die möglicherweise im Element gespeicherten Werte der Dateiattribute ACCESS und USER-ACCESS (Satzart 164) werden, falls gewünscht (siehe FILE-ATTRIBUTES), für die Einstellung der Werte der Standard-Zugriffskontrolle herangezogen, unabhängig von der Belegung des Operanden PROTECTION.

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

Überschreiben einer Datei gleichen Namens.
Existiert die Datei nicht unter diesem Namen, wird sie neu angelegt.
Werden die Elementdaten in die aktuelle EDT-Arbeitsdatei geschrieben, so ist die Angabe wirkungslos, d.h. bei existierenden Daten in der aktuellen Arbeitsdatei werden diese um die Elementdaten erweitert bzw. bei einer leeren Arbeitsdatei werden die Elementdaten an den Anfang der Arbeitsdatei geschrieben.

WRITE-MODE = *CREATE
Die neue Datei darf noch nicht existieren und wird neu erzeugt.

WRITE-MODE = *REPLACE
Die Datei muss bereits existieren und wird dann ersetzt.

WRITE-MODE = *EXTEND
Die Datei wird erweitert, wenn sie bereits existiert. Ansonsten wird sie neu angelegt.

WRITE-MODE = *ANY
Die Datei wird ersetzt, wenn sie bereits existiert. Ansonsten wird sie 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

LMS0053

Element- und Dateiattribute unterschiedlich

2

0

LMS0129

Anweisung abgebrochen durch Benutzer

2

0

LMS0199

Satzlänge ungültig bei festem Satzformat

2

0

LMS0274

Blockkontroll-Wert verändert

2

0

LMS0286

Dateiattribute nicht modifiziert


1

CMD0230

Syntaxfehler


32

LMS1002

Interner Fehler


64

LMS0020

Ziel-Element oder Ziel-Datei nicht vorhanden


64

LMS0035

Elementschutz auf Datei nicht übertragbar


64

LMS0302

Element nicht gefunden


64

LMS0509

Ziel-Element oder Ziel-Datei schon vorhanden


64

LMS1003

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


64

LMS1004

Sonstige Fehler


64

PLA0229

Kein Zugriffsrecht für das Element


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.

Bei TO-FILE: Lese- und Schreibrecht für Datei

Bei PROTECTION=*BY-SOURCE ist eine Ausgabe von Elementen als Dateien nur für die eigene Kennung möglich, und nur der Eigentümer der Bibliotheksdatei kann diese Funktionalität nutzen.

Hinweis

Wird PROTECTION=*BY-SOURCE angegeben, ist zu beachten:

Die Funktionalität wird abgewiesen, wenn für ein Element auf mindestens einer Zugriffsart (read, write, execute) der Mechanismus Schutz durch GUARD wirkt und auf mindestens einer Zugriffsart (r, w, x) kein spezieller Schutz oder Schutz durch BACL abweichend von USER=NONE wirkt.

Bestehende Kennwörter im Elementschutz werden nicht berücksichtigt.

Bei der Ausgabe von Elementen auf bestehende Dateien, die durch Schutzattribute des Kennwortschutzes zusätzlich geschützt sind, werden bei Anwendung des Operanden PROTECTION=*BY-SOURCE diese Attribute auf NONE (löscht ein ggf. vorhandenes Kennwort) gesetzt.

Beispiele

  • Das Element ELEM1 wird mit EXTRACT-ELEMENT in die Datei TEST mit den spezifizierten Dateieigenschaften ausgegeben.

    /ADD-FILE-LINK FILE-NAME=TEST,LINK-NAME=OUT,ACCESS-METHOD=*SAM,/
                  RECORD-FORMAT=*VARIABLE
    /START-LMS
    //MOD-LOGG-PAR LOGG=*MAX
    //OPEN-LIBRARY LIBRARY=LIBIN
    //EXTRACT-ELEMENT *LIB(LIBIN,ELEM1,S),TO-FILE=*LINK(LINK-NAME-OUT)
    INPUT  LIBRARY= :1OSQ:$USER.LIBIN
    OUTPUT FILE
           EXTRACT (S)ELEM1/@(0001)/2011-03-27 AS :1OSQ:$USER.TEST
           , REPLACED EMPTY FILE
    
  • Sollen alle Elemente einer Bibliothek unter ihrem Namen ausgegeben werden, ist folgende Anweisung anzugeben:

    //EXTRACT-ELEMENT *LIB(ELEM=*ALL,TYPE=*ALL)
    INPUT  LIBRARY= :1OSQ:$USER.LIBIN
    OUTPUT FILE
           EXTRACT (S)ELEM1/@(0001)/2011-03-27 AS :1OSQ:$USER.ELEM1
           EXTRACT (S)EXT.FILE.1/@(0001)/2011-03-27 AS :1OSQ:$USER.EXT.FILE.1
           EXTRACT (S)EXT.FILE.2/@(0001)/2011-03-27 AS :1OSQ:$USER.EXT.FILE.2
           EXTRACT (S)EXT.FILE.3/@(0001)/2011-03-27 AS :1OSQ:$USER.EXT.FILE.3
           EXTRACT (S)EXT.FILE.4/@(0001)/2011-03-27 AS :1OSQ:$USER.EXT.FILE.4
           EXTRACT (S)EXT.FILE.5/@(0001)/2011-03-27 AS :1OSQ:$USER.EXT.FILE.5
    //END