-
Cobol Printer File INFDS
Hallo Zusammen,
mal eine Frage an die Cobol Cracks.
Ich möchte von einer geöffneten printer file die INFDS Attribute auslesen, sprich Spoolfile Name, Number, Job Name, Nummer, User und diese für die Weiterverarbeitung in eine Datei schreiben.
Eine INFDS gibt es ja nicht, dachte das bekomme ich über eine Feedback-area hin, aber das klappt auch irgendwie nicht.
Habe Ihr vlt. ein Beispiel parat?
Danke.
Klaus
-
Ich bin auch kein Cobol-Experte, aber vielleicht bringt der IBM Service Spooled_File_Info zurück, was Du brauchst:
Spooled_File_Info Table Function
-
Zitat von B.Hauser
Danke, ja wollte ich auch nehmen, aber leider läuft die Kiste noch unter V7R1.
Werde wohl dann die API QUSRSPLA nehmen.
-
chatgpt:
wie kann ich in cobol den Spoolfile Name, Number, Job Name, Nummer, User auslesen
ChatGPT
Um in COBOL auf IBM i (früher AS/400 oder iSeries) Informationen wie Spoolfile-Name, Spoolfile-Nummer, Job-Name, Job-Nummer und User auszulesen, müssen Sie API-Aufrufe (Application Programming Interface) verwenden, die diese Informationen aus dem System extrahieren können. Ein gängiger Ansatz ist die Verwendung der API QUSRSPLA (Retrieve Spooled File Attributes), die Informationen über Spooled Files liefert.
Hier ist ein grundlegendes Beispiel, wie Sie diese Informationen in COBOL verwenden können:
Beispiel: COBOL-Programm zur Verwendung der QUSRSPLA-API
cobol
IDENTIFICATION DIVISION.
PROGRAM-ID. SPOOLEXAMPLE.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Define the structure for the input parameters and output data.
01 API-INPUT-PARM.
05 SPOOLED-FILE-NAME PIC X(10) VALUE 'SPLFNAME'.
05 SPOOLED-FILE-NUMBER PIC S9(4) COMP VALUE 1.
05 JOB-NAME PIC X(10) VALUE 'JOBNAME'.
05 JOB-USER PIC X(10) VALUE 'USER'.
05 JOB-NUMBER PIC X(6) VALUE 'JOB#'.
01 API-OUTPUT-DATA.
05 SPOOLED-FILE-ATTRIBUTES-LENGTH PIC S9(9) COMP.
05 SPOOLED-FILE-ATTRIBUTES PIC X(500).
01 API-ERROR-DATA.
05 ERROR-CODE-LENGTH PIC S9(9) COMP VALUE 0.
05 ERROR-CODE PIC X(7).
PROCEDURE DIVISION.
* Call the QUSRSPLA API to retrieve the spooled file attributes.
CALL 'QUSRSPLA' USING
API-OUTPUT-DATA
API-INPUT-PARM
ERROR-CODE.
* Check for errors.
IF ERROR-CODE-LENGTH NOT = 0
DISPLAY 'Error retrieving spooled file attributes.'
STOP RUN
ELSE
DISPLAY 'Spoolfile Name: ' SPOOLED-FILE-NAME
DISPLAY 'Spoolfile Number: ' SPOOLED-FILE-NUMBER
DISPLAY 'Job Name: ' JOB-NAME
DISPLAY 'Job Number: ' JOB-NUMBER
DISPLAY 'User: ' JOB-USER
END-IF.
STOP RUN.
Erklärung:
API-INPUT-PARM: Hier geben Sie die Parameter wie den Namen und die Nummer des Spool-Files sowie den Job-Namen, User und die Job-Nummer an.
API-OUTPUT-DATA: Dieses Feld wird von der API gefüllt und enthält die Attribute des Spool-Files, die Sie abrufen möchten.
API-ERROR-DATA: Hier wird der Fehlercode zurückgegeben, falls bei der API-Aufruf ein Fehler auftritt.
API-Parameter:
SPLFNAME: Ersetzen Sie dies durch den tatsächlichen Namen des Spool-Files.
JOBNAME, USER, JOB#: Ersetzen Sie diese durch die tatsächlichen Werte, die Sie verwenden möchten.
Anmerkungen:
Bibliothek: Stellen Sie sicher, dass das Programm in der richtigen Bibliothek ausgeführt wird, in der die Spool-Files und Jobs vorhanden sind.
Zugriffsrechte: Der Benutzer, der das COBOL-Programm ausführt, muss die entsprechenden Berechtigungen haben, um auf die Spool-Files und Job-Informationen zuzugreifen.
Dieses Beispiel ist ein sehr einfacher Einstieg. In der Praxis müssen Sie möglicherweise weitere Fehlerbehandlungen und Anpassungen vornehmen, um es an Ihre spezifischen Anforderungen anzupassen.
------------------------------------------------------------------------
k.a. ob das ok ist ...
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Zitat von Robi
chatgpt:
wie kann ich in cobol den Spoolfile Name, Number, Job Name, Nummer, User auslesen
ChatGPT
Um in COBOL auf IBM i (früher AS/400 oder iSeries) Informationen wie Spoolfile-Name, Spoolfile-Nummer, Job-Name, Job-Nummer und User auszulesen, müssen Sie API-Aufrufe (Application Programming Interface) verwenden, die diese Informationen aus dem System extrahieren können. Ein gängiger Ansatz ist die Verwendung der API QUSRSPLA (Retrieve Spooled File Attributes), die Informationen über Spooled Files liefert.
Hier ist ein grundlegendes Beispiel, wie Sie diese Informationen in COBOL verwenden können:
Beispiel: COBOL-Programm zur Verwendung der QUSRSPLA-API
cobol
IDENTIFICATION DIVISION.
PROGRAM-ID. SPOOLEXAMPLE.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Define the structure for the input parameters and output data.
01 API-INPUT-PARM.
05 SPOOLED-FILE-NAME PIC X(10) VALUE 'SPLFNAME'.
05 SPOOLED-FILE-NUMBER PIC S9(4) COMP VALUE 1.
05 JOB-NAME PIC X(10) VALUE 'JOBNAME'.
05 JOB-USER PIC X(10) VALUE 'USER'.
05 JOB-NUMBER PIC X(6) VALUE 'JOB#'.
01 API-OUTPUT-DATA.
05 SPOOLED-FILE-ATTRIBUTES-LENGTH PIC S9(9) COMP.
05 SPOOLED-FILE-ATTRIBUTES PIC X(500).
01 API-ERROR-DATA.
05 ERROR-CODE-LENGTH PIC S9(9) COMP VALUE 0.
05 ERROR-CODE PIC X(7).
PROCEDURE DIVISION.
* Call the QUSRSPLA API to retrieve the spooled file attributes.
CALL 'QUSRSPLA' USING
API-OUTPUT-DATA
API-INPUT-PARM
ERROR-CODE.
* Check for errors.
IF ERROR-CODE-LENGTH NOT = 0
DISPLAY 'Error retrieving spooled file attributes.'
STOP RUN
ELSE
DISPLAY 'Spoolfile Name: ' SPOOLED-FILE-NAME
DISPLAY 'Spoolfile Number: ' SPOOLED-FILE-NUMBER
DISPLAY 'Job Name: ' JOB-NAME
DISPLAY 'Job Number: ' JOB-NUMBER
DISPLAY 'User: ' JOB-USER
END-IF.
STOP RUN.
Erklärung:
API-INPUT-PARM: Hier geben Sie die Parameter wie den Namen und die Nummer des Spool-Files sowie den Job-Namen, User und die Job-Nummer an.
API-OUTPUT-DATA: Dieses Feld wird von der API gefüllt und enthält die Attribute des Spool-Files, die Sie abrufen möchten.
API-ERROR-DATA: Hier wird der Fehlercode zurückgegeben, falls bei der API-Aufruf ein Fehler auftritt.
API-Parameter:
SPLFNAME: Ersetzen Sie dies durch den tatsächlichen Namen des Spool-Files.
JOBNAME, USER, JOB#: Ersetzen Sie diese durch die tatsächlichen Werte, die Sie verwenden möchten.
Anmerkungen:
Bibliothek: Stellen Sie sicher, dass das Programm in der richtigen Bibliothek ausgeführt wird, in der die Spool-Files und Jobs vorhanden sind.
Zugriffsrechte: Der Benutzer, der das COBOL-Programm ausführt, muss die entsprechenden Berechtigungen haben, um auf die Spool-Files und Job-Informationen zuzugreifen.
Dieses Beispiel ist ein sehr einfacher Einstieg. In der Praxis müssen Sie möglicherweise weitere Fehlerbehandlungen und Anpassungen vornehmen, um es an Ihre spezifischen Anforderungen anzupassen.
------------------------------------------------------------------------
k.a. ob das ok ist ...
Danke Dir, habe nun auch die API benutzt, dachte halt nur, dass es wie bei RPG auch eine INFDS gibt.
-
ChatGPT weiß eben nicht alles:
Das gibts ebenso für COBOL.
Das Thema bei COBOL nennt sich dann OPEN-FEEDBACK Area:
Mittels Accept kann man diese dann einlesen.
Die Struktur habe ich online leider nicht gefunden, sollte aber zur RPG-Struktur passen.
Man muss halt nur die Filler selber ausrechnen.
https://www.ibm.com/docs/en/i/7.5?to...cept-statement
https://www.ibm.com/docs/en/i/7.5?topic=information-infds-open-feedback-example
-
meine Frage an Chatgpt: ist die open feedback area im cobol wie die infds in rpg
ChatGPT
Die Open Feedback Area (OFA) in COBOL ist nicht direkt vergleichbar mit der INFDS (File Information Data Structure) in RPG, obwohl sie in gewisser Weise ähnliche Informationen bereitstellen kann. Beide Mechanismen dienen dazu, zusätzliche Informationen über eine Datei oder eine Dateioperation bereitzustellen, aber sie funktionieren auf unterschiedliche Weise und bieten unterschiedliche Informationen.
INFDS in RPG
Die INFDS in RPG ist eine Datenstruktur, die verwendet wird, um spezifische Informationen über eine Dateioperation zu erhalten, wie zum Beispiel den letzten verwendeten I/O-Befehl, den Fehlerstatus, den Dateinamen und mehr. Sie wird speziell für eine Datei definiert und enthält eine Vielzahl von Feldern, die der RPG-Programmierer direkt verwenden kann.
Open Feedback Area in COBOL
Die Open Feedback Area in COBOL auf IBM i ist eine Struktur, die Informationen über den Status einer geöffneten Datei enthält. Sie wird hauptsächlich verwendet, um Details über die Datei zu erhalten, nachdem die Datei geöffnet wurde.
Verwendung der Open Feedback Area in COBOL:
Definition der Open Feedback Area:
Sie müssen die Open Feedback Area im Working-Storage-Bereich definieren.
cobol
WORKING-STORAGE SECTION.
01 OPEN-FEEDBACK-AREA.
05 OFA-FEEDBACK-LENGTH PIC S9(4) COMP.
05 OFA-FEEDBACK-DATA PIC X(256).
Verwendung der OFA mit der Datei:
Sie müssen die OFA der Datei im FILE-CONTROL-Bereich zuweisen.
cobol
FILE-CONTROL.
SELECT YOURFILE ASSIGN TO DISK
ORGANIZATION IS SEQUENTIAL
FILE STATUS IS FILE-STATUS-CODE
OPEN-FEEDBACK IS OPEN-FEEDBACK-AREA.
Abruf von Informationen nach dem Öffnen:
Nachdem die Datei geöffnet wurde, können Sie die Informationen in der OPEN-FEEDBACK-AREA analysieren. Diese Informationen könnten die Anzahl der Datensätze in der Datei, den Zugriffspfad, Dateiattribute usw. enthalten.
Unterschiede und Gemeinsamkeiten:
INFDS in RPG: Wird für eine Vielzahl von Informationen über Dateioperationen verwendet, und diese Informationen können direkt in einer Datenstruktur abgelegt und abgerufen werden.
OFA in COBOL: Bietet spezifische Informationen über den Status der Datei nach dem Öffnen, ist aber weniger umfassend und spezifisch im Vergleich zu INFDS in RPG.
Fazit:
Während die Open Feedback Area in COBOL einige Funktionen bietet, die mit denen der INFDS in RPG vergleichbar sind, ist sie in ihrer Anwendung eingeschränkter und weniger flexibel. Für umfassendere Datei- und Fehlerinformationen in COBOL sind andere Methoden wie File Status Codes, deklarative Fehlerbehandlung oder System-APIs notwendig.
----------------------------------------------------------------------------------
Aber es wäre ja auch traurig, wenn ChatGpt einen guten Cobol Entwicker ersetzen könnte
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Wie heißts so schön: Versuch macht kluch.
Warum die Definitionen der Areas so schwierig zu finden sind weiß ich auch nicht.
Viele Texte der IBM-Seiten sind ja nur noch 1,5 Bildschirmseiten lang und verweisen dann auf textuelle Links, die man dann wieder lange suchen muss.
Ggf. gibts da was im Programmier-Handbuch (nicht in der Reference).
Aber auch hier, COBOL kann ja auch Programme aufrufen, somit reicht hier auch ein CLP mit einem RTVSPLFA, was einfacher als so manches API ist.
Wahrscheinlich macht das E30GL aber noch viel eleganter.
-
Ja, leider passt die Syntax von CHATGPT nicht.
OPEN-FEEDBACK IS OPEN-FEEDBACK-AREA darf nicht in File-Control stehen, sondern muss in SPECIAL-NAMES stehen. Aber ich bekomme nicht die Attribute der printerfile angezeigt. Das muss dann wohl irgendwie mit ACCEPT gehen, aber so wie Du schon schreibst, man findet nichts aussagekräftiges im Netz.
Bleibe bei der API, die funktioniert.
Danke für die Tipps.
-
... wie wärs denn hiermit:
https://www.ibm.com/docs/el/i/7.3?to...k-area-layouts
Bitfrickeler werden hiermit viel Spass haben. (sieht schlimmer aus, als die Spool APIs
D*B
-
Zitat von BenderD
danke, hatten wir aber schon. Nur wie man das definiert, keine Ahnung. Aber kein Problem, ich rufe die API auf und gut ist.
-
... die Mimik ist doch (fast) identisch mit RPG. Die infds anhängen hast du ja schon gefunden. Dann musst du in deiner infds die Felder deklarieren, die du haben willst (Positionen ab Stelle 81 identisch mit RPG. gefüllt wird das dann mit accept. (ACCEPT MY-FEEDBACK-A FROM OPEN-FEEDBACK-AREA FOR MY-FILE) und dann sind die Felder gefüllt.
D*B
Similar Threads
-
By malzusrex in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 30-04-20, 16:44
-
By robertki in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 02-02-07, 12:27
-
By MatthiasK in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 10-01-07, 13:26
-
By DEVJO in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 07-12-05, 17:31
-
By chris in forum NEWSboard Drucker
Antworten: 3
Letzter Beitrag: 19-02-02, 22:52
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks