-
Memberverarbeitung mit CPF5152
Moin!
Es gibt da eine gewisse Schwierigkeit mit einem Programm, welches ich zu warten habe.
Im Programm soll ein Member erstellt werden, das vorher entsprechend mit Textpassagen zu füllen ist. Der Text durchläuft vorher das Programm 'TOKENIZE' und wird dort noch umformatiert (Umbrechen nach CRLF, ...) und das Ergebnis als Array zurückgegeben.
Im Code sieht das ganze so aus:
Code:
FTEXT O A E DISK USROPN
C MOVE *BLANKS BEFEHL 70
C EVAL BEFEHL = 'OVRDBF FILE(TEXT) TOFILE('
C + %TRIMR(PLIB) + '/'
C + %TRIMR(PFILE) + ')' + ' '
C + 'MBR(' + %TRIMR(PMBR) + ')'
C MOVE *BLANKS QCA
C MOVEL(P) BEFEHL QCA 75
C CALL 'QCMDEXC'
C PARM QCA 75
C PARM 75 LANG 15 5
C MOVEL(P) MYTEXT TEXT5000
C CALL 'TOKENIZE'
C PARM TEXT5000 5000
C PARM 60 ANZSTELL 6 0
C PARM ANZINDEX 6 0
C PARM FG_TXT
C*
C OPEN TEXT
C Z-ADD 0 Y 4 0
C DO ANZINDEX
C ADD 1 Y
C MOVEL(P) FG_TXT(Y) TXT3
C WRITE TEXTFF
C ENDDO
C CLOSE TEXT
Das Programm bricht nach 56 writes ab - die Meldung lautet:
Nachricht . . . : E/A-Fehler CPF5152 in Datei TEXT erkannt.
Ursache . . . . : Die RPG-Prozedur XYZ in Programm PGM/MYPGM hat die
Nachricht CPF5152 empfangen, während E/A-Operation WRITE für Datei TEXT
ausgeführt wurde. Die tatsächliche Datei ist TXT3/B1412(B141200001).
Fehlerbeseitigung: Das Jobprotokoll auf eine vollständige Beschreibung von
Nachricht CPF5152 prüfen und den für die Programmpflege verantwortlichen
Benutzer benachrichtigen.
Joblog:
Teildatei B141200001 zu Datei B1412 in TXT3 hinzugefügt.
Abfrageauswahl aus Datei QAQQINI in Bibliothek QUSRSYS abgerufen.
Satzformat TEXTFF nicht in Teildatei B141200001.
E/A-Fehler CPF5152 in Datei TEXT erkannt.
E/A-Fehler CPF5152 in Datei TEXT erkannt.
Komischerweise funktioniert das Programm nur bei "großen Texten" nicht...
Der Ursprungstext lautet:
Code:
Titel 1.
1Stck.Men.Steckd.Soft-Contact 5 Pol.
1 Stck.Kais Agro PVC verschr.M63
1 Stck.ABB FI-Schutzschaltung 125 A F 204A-125/0,3NL
3 Stck. Weid.Durchgangskl.WDU 50N
1 Stck.Weid.Durchgangskl.WDU 50NBL
1 Stck.Weid.Reihenkl.WPE50N 184604
18 M NYCWY 4x50SM/25
3 Stck.Lin.-Sicherungen 125A GR 00 1B765
2 Stck. OBO BBS Schellen 2056 28 -34 MM
2 Stck.OBO KU.Gegenwannen 2058 28-34MM
1 Stck.NHOO-Lasttrenner 160A DTL 160
2 Stck.Anschlussklemme 50QMM BKS5005 ZK 150
2 Stck. Kais AGRO PVC verschr.M40
2 Stck.Kais AGRO PVC Gegennutter M40
Titel 2
1 Stck. Men.Steckdosen Soft - Contact 5Pol.
1 Stck. Kais AGRO PVC verschr.M63
1 Stck. ABB FI - Schutzsch. 125A F204A-125/0,3NL
3 Stck. Weid. Durchgangskl. WDU 50N
1 Stck. Weid.Durchgangskl. WDU50NBL
1 Stck. Weid.Reihenkl. WPE50N
3 Stck. Lin.NH-Sicher.125A GR00 IB765
2 Stck. OBO BBS Schellen 2056 28-34MM
2 Stck. OBO ku.-Gegenwannen 2058 28-34MM
40 M NYCWY 4x50SM/25
1 Stck. NH00 - Latstrenner 160A DTL 160
2 Stck.Kais. AGRO PVC verschr. M 40
2 Stck.Kasis.AGRO PVC Gegenmutter M 40
Titel 3
1 Stck.Men.Steckd.Soft-Conatct 5Pol.
1 Stck.Kais.AGRO PVC verschr. M63
3 Stck.Weid.Durchgangskl.WDU 50N
1 Stck.Weid.Durchgangskl.WDU 50NBL
1 Stck.Weid.Reihenkl.WPE50N
8M NYCWY 4x50SM/25
2 Stck.Erico Caddy Kastenklemme EM 58
3 M Pipe.Kupa-Rohr PSM-E-MF40
10 Stck.OBO Spannkl.SKS M12x65+GLMU.M12
2 M Profilschl.Gel.2M1268SL
2 Stck.Kais AGRO PVC verschr. M40
Titel 4
1 Stck.Men.Steckd.Soft.Contact 5Pol.
1 Stck.Kais.AGRO PVC verschr.M63
3 Stck.Weid.Durchgangskl.WDU 50N
1 Stck.Weid.Durchgangskl.WDU50NBL
1 Stck.Weid.Reihenkl.WPE50N
3 Stck.Lin.NH-Sicher.125A GR00 1B765
49 M NYCWY 4x50SM/25
2 Stck.Kais AGRO PVC verschr. M40
2 Stck.Kais.AGRO PVC Gegenmutter M 40
1 Stck.Montageneben- und Logistikkosten(Klein- und Befestigungsmaterial)
1 Psch Arbeitsleistung
Der gekürzte Text funktioniert tadellos:
Code:
Titel 1.
1Stck.Men.Steckd.Soft-Contact 5 Pol.
1 Stck.Kais Agro PVC verschr.M63
1 Stck.ABB FI-Schutzschaltung 125 A F 204A-125/0,3NL
3 Stck. Weid.Durchgangskl.WDU 50N
1 Stck.Weid.Durchgangskl.WDU 50NBL
1 Stck.Weid.Reihenkl.WPE50N 184604
18 M NYCWY 4x50SM/25
3 Stck.Lin.-Sicherungen 125A GR 00 1B765
2 Stck. OBO BBS Schellen 2056 28 -34 MM
2 Stck.OBO KU.Gegenwannen 2058 28-34MM
1 Stck.NHOO-Lasttrenner 160A DTL 160
2 Stck.Anschlussklemme 50QMM BKS5005 ZK 150
2 Stck. Kais AGRO PVC verschr.M40
2 Stck.Kais AGRO PVC Gegennutter M40
Titel 2
1 Stck. Men.Steckdosen Soft - Contact 5Pol.
1 Stck. Kais AGRO PVC verschr.M63
1 Stck. ABB FI - Schutzsch. 125A F204A-125/0,3NL
3 Stck. Weid. Durchgangskl. WDU 50N
1 Stck. Weid.Durchgangskl. WDU50NBL
1 Stck. Weid.Reihenkl. WPE50N
3 Stck. Lin.NH-Sicher.125A GR00 IB765
2 Stck. OBO BBS Schellen 2056 28-34MM
2 Stck. OBO ku.-Gegenwannen 2058 28-34MM
40 M NYCWY 4x50SM/25
1 Stck. NH00 - Latstrenner 160A DTL 160
2 Stck.Kais. AGRO PVC verschr. M 40
2 Stck.Kasis.AGRO PVC Gegenmutter M 40
Weiß hier jemand Rat?
Gruß
Bratmaxxe
-
Ich denke, das liegt am automatischen Blocken bei O-Dateien.
Es sieht so aus, dass 55 Sätze in einem Block liegen.
D.h., dass beim 56. Write der Block vorher ausgegeben werden muss.
Hier schlägt dann wohl die Runtime-Prüfung zu.
Wenn weniger als 56 Sätze geschrieben werden, wird vom System beim Close der Block geschrieben. Hier scheint aber keine Prüfung mehr auf den Formatnamen stattzufinden. Dies könnte da eher auf einen "verlässlichen" Systemfehler hindeuten.
Mach mal einen DSPFD auf die Ausgabedatei, prüfe den Formatnamen und passe das Programm an den korrekten Formatnamen an.
-
Hallo Baldur,
der Satzformatname ist tatsächlich nicht mehr TEXTFF, sondern heißt so wie die Datei "B1412" (gerade ausprobiert). Das Programm läuft dann fehlerfrei durch.
Allerdings erfolgt die Organisation der Member in Variablen Dateien (hier 14 für das Jahr und 12 für den Monat). Im Januar wäre es dann "B1501"... Wie bekomme ich dass denn jetzt unter einen Hut, bzw. im Programm abgebacken?
Gruß
Bratmaxxe
-
Ich nehme mal an, dass die Dateien per CRTPF ohne DDS erstellt werden.
In diesem Fall musst du die Datei im RPG als "Interne Datei" (ohne "E") mit Satzlänge definieren.
Alternativ erstelle eine DDS-Datei mit dem Format TEXTFF und erstelle die Member-Dateien per CRTDUPOBJ aus der "Master"-Datei.
Dann bleibt auch das Satzformat erhalten.
Ich weiß auch nicht, warum das bei dir geändert wurde, aber es muss ja schon mal funktioniert haben.
-
Hallo Baldur,
vielen Dank für Deine Hilfestellung...
Mit intern Beschrieben Dateien hatte ich bislang noch nichts zu tun und wüsste jetzt nicht genau, was ich im Programm zu tun habe.
Magst du vielleicht hier nochmal unterstützen? Die Datei "Text" hat 3 Felder:
Code:
Daten Feld- Puffer Puffer Feld Spalten
Feld Art Länge Länge Position Verwend. Überschrift
TXT1 ZONED 6 2 6 1 Beides TXT1
TXT2 ZONED 6 0 6 7 Beides TXT2
TXT3 CHAR 60 60 13 Beides TXT3
Danke und Gruß
Bratmaxxe
-
Da du Felder hast, ist eine DDS-Datei besser.
Du referierst doch auf die Datei TEXT in den F-Bestimmungen sonst klappt es ja nicht mit der Umwandlung.
Warum ist also die Zieldatei nicht auf Basis der Datei TEXT erstellt (CRTDUPOBJ, CPYF ohne Daten)?
Nimm deine aktuelle Ausgabedatei und benenne diese um in "XXX...".
Erstelle eine neue Ausgabedatei auf Basis der TEXT und füge die Member an.
Kopiere ggf. die "alten" Member in die neue Datei.
Dann sollte in deinem Programm auch das Format wieder stimmen.
"Interne Dateien" müsste ich im Handbuch auch erst nachlesen.
-
Hallo Baldur,
letztlich habe ich die Dateien jetzt einfach neu erstellt (auf Basis der Text), so dass das Satzformat wieder korrekt ist. Somit brauchte auch im Programm nichts angepasst zu werden
Vielen Dank nochmal!
Gruß
BM
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