-
/* */
/* CL-Programm: LEACDTZET */
/* Parameter: &EMAIL */
/* Funktion: */
/* Verfasser: A. Nicoladoni 20140730 */
/* */
/*---------------------------------------------------------------- */
/* ÄNDERUNG NR USER WAS */
/*---------------------------------------------------------------- */
/* 20161207 W01161 Nicolado Parameter verlängern */
/* 20170811 W01260 Nicolado Ausgabe der Parameter in Qsysopr */
/*---------------------------------------------------------------- */
PGM PARM(&EMAIL &PGM)
DCL VAR(&EMAIL) TYPE(*CHAR) LEN(200)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&PFAD) TYPE(*CHAR) LEN(50)
DCL VAR(&DATE) TYPE(*CHAR) LEN(6)
DCL VAR(&SUBJECT) TYPE(*CHAR) LEN(60)
DCL VAR(&LAST) TYPE(*CHAR) LEN(6)
DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
DCL VAR(&NBR) TYPE(*CHAR) LEN(6)
DCL VAR(&PGM) TYPE(*CHAR) LEN(10)
DCL VAR(&SYSTEM) TYPE(*CHAR) LEN(40)
DCL VAR(&NAME) TYPE(*CHAR) LEN(10)
CHGJOB LOG(*SAME *SAME *SECLVL) LOGCLPGM(*YES) +
LOGOUTPUT(*SAME)
CHGVAR VAR(&LAST) VALUE('*LAST')
CHGVAR VAR(&NAME) VALUE(' ')
RTVJOBA JOB(&JOB) USER(&USER) NBR(&NBR) DATE(&DATE)
RTVNETA SYSNAME(&SYSTEM)
IF COND(&SYSTEM *EQ 'ZL958') THEN(DO)
CALL PGM(LEACLUSR) PARM(&USER &NAME)
ENDDO
IF COND(&SYSTEM *NE 'ZL958') THEN(DO)
CHGVAR VAR(&NAME) VALUE(&SYSTEM)
ENDDO
IF COND(&PGM *EQ 'LEAPDTZETT') THEN(DO)
CHGVAR VAR(&PFAD) VALUE('/HOME/' *CAT &USER *TCAT +
'/DT_Zettel_' *CAT %SUBSTRING(&DATE 1 2) *CAT +
'_' *CAT %SUBSTRING(&DATE 3 2) *CAT '_' *CAT +
%SUBSTRING(&DATE 5 2) *CAT '_Inland.PDF')
CHGVAR VAR(&SUBJECT) +
VALUE('DT-Zettel 20' *CAT +
%SUBSTRING(&DATE 1 2) *CAT '.' *CAT +
%SUBSTRING(&DATE 3 2) *CAT '.' *CAT +
%SUBSTRING(&DATE 5 2) *CAT ' Inland - ' +
*CAT &NAME)
DMPCLPGM
CPYSPLF FILE(QSYSPRT) TOFILE(*TOSTMF) +
JOB(&NBR/&USER/&JOB) SPLNBR(*LAST) +
TOMBR(*FIRST) TOSTMF(&PFAD) WSCST(*PDF) +
STMFOPT(*REPLACE) OPNSPLF(*YES)
SNDSMTPEMM RCP((&EMAIL)) SUBJECT(&SUBJECT) ATTACH((&PFAD *PDF +
*BIN)) CHARSET(*UTF8 *DFT) CONTENT(*PLAIN)
GOTO CMDLBL(ENDE)
ENDDO
IF COND(&PGM *EQ 'LEACABSA') THEN(DO)
CHGVAR VAR(&PFAD) VALUE('/HOME/' *CAT &USER *TCAT +
'/DT_Zettel_' *CAT %SUBSTRING(&DATE 1 2) *CAT +
'_' *CAT %SUBSTRING(&DATE 3 2) *CAT '_' *CAT +
%SUBSTRING(&DATE 5 2) *CAT '_Ausland.PDF')
CHGVAR VAR(&SUBJECT) +
VALUE('DT-Zettel 20' *CAT +
%SUBSTRING(&DATE 1 2) *CAT '.' *CAT +
%SUBSTRING(&DATE 3 2) *CAT '.' *CAT +
%SUBSTRING(&DATE 5 2) *CAT ' Ausland - ' +
*CAT &NAME)
DMPCLPGM
CPYSPLF FILE(BZV3AA) TOFILE(*TOSTMF) +
JOB(&NBR/&USER/&JOB) SPLNBR(*LAST) +
TOMBR(*FIRST) TOSTMF(&PFAD) WSCST(*PDF) +
STMFOPT(*REPLACE) OPNSPLF(*YES)
SNDSMTPEMM RCP((&EMAIL)) SUBJECT(&SUBJECT) ATTACH((&PFAD *PDF +
*BIN)) CHARSET(*UTF8 *DFT) CONTENT(*PLAIN)
GOTO CMDLBL(ENDE)
ENDDO
ENDE:
SNDPGMMSG MSG('Inputparameter: ' *cat &EMAIL *CAT ' ' +
*CAT &PGM) TOMSGQ(*SYSOPR)
SNDPGMMSG MSG('Job: ' *cat &NBR *CAT ' ' *CAT &USER *CAT ' ' +
*CAT &JOB) TOMSGQ(*SYSOPR)
SNDPGMMSG MSG('Pfad: ' *cat &PFAD) TOMSGQ(*SYSOPR)
SNDPGMMSG MSG('Betreff: ' *cat &SUBJECT) TOMSGQ(*SYSOPR)
SNDPGMMSG MSG('Datum: ' *cat &DATE) TOMSGQ(*SYSOPR)
SNDPGMMSG MSG('System: ' *cat &SYSTEM) TOMSGQ(*SYSOPR)
SNDPGMMSG MSG('Name: ' *cat &NAME) TOMSGQ(*SYSOPR)
ENDEAUS:
ENDPGM
Der Absturz kommt auf Zeile 58, das ist der DMPCLPGM
Der zugehörige JOBLOG hat 267 Seiten
Andreas
Ein AS/400 Dinosaurier since 1989
-
Kandidat Nr. 1 ist: &EMAIL ist null
einfache Prüfung:- zusätzliche Variable definieren analog zu &EMAIL und dann sollte es knallen, wenn man versuch &EMAIL an selbige zuzuweisen.
Müsste aber auch zu finden sein, wenn man den Callstack nach oben sucht, bzw im angefangenen Dump oder Joblog zu finden sein.
D*B
-
&EMAIL enthält definitiv eine gültige EMAIL-Adresse, &PGM ist der Steuerparameter und definitiv befüllt.
Auf dem Testsystem wo selbiges Programm installiert ist funktioniert das Ding ja tagellos.
Andreas
Ein AS/400 Dinosaurier since 1989
-
Ach ja und keinerlei Dump nicht mal eine Zeile
Andreas
Ein AS/400 Dinosaurier since 1989
-
Zitat von nico1964
&EMAIL enthält definitiv eine gültige EMAIL-Adresse, &PGM ist der Steuerparameter und definitiv befüllt.
Auf dem Testsystem wo selbiges Programm installiert ist funktioniert das Ding ja tagellos.
woher weißt du das so sicher? Wenn was auf einem System funzt und woanders nicht, dann ist eine abweichende Programmversion im Spiel.
-
Hast du keine Chance das mal tatsächlich auf dem Echtsystem zu debuggen und dir die Inhalte zur Laufzeit anzusehen?
STRSRVJOB
STRDBG
-
Zitat von BenderD
woher weißt du das so sicher? Wenn was auf einem System funzt und woanders nicht, dann ist eine abweichende Programmversion im Spiel.
Ich weiß das, weil ich der Autor des Compilescripts bin und dieses für alle Programme, DSPF und PRTF verwendet wird. Außerdem wird bei der Installation des nicht funktionierenden Programms nicht nur dieses installiert sondern auch noch 3 andere Programme, welche auch auf der Produktion funktionieren.
Andreas
Ein AS/400 Dinosaurier since 1989
-
Zitat von Fuerchau
Hast du keine Chance das mal tatsächlich auf dem Echtsystem zu debuggen und dir die Inhalte zur Laufzeit anzusehen?
STRSRVJOB
STRDBG
Das ist die letzte Möglichkeit die ich in Erwägung ziehen möchte, da ich dafür eine Berechtigung von ganz oben (Geschäftsführung) brauche.
Am Freitag ist meinem Kollegen noch eines eingefallen: Kann es sein, das eine zu geringe Anzahl an Jobs in der Subsystembeschreibung den Fehler verursacht. Er meint nämlich, dass diese unterschiedlich ist.
Andreas
Ein AS/400 Dinosaurier since 1989
-
Was soll damit gemeint sein?
Ein Job, der darauf wartet gestartet zu werden verursacht keinen Fehler.
Ein Job, der einen Fehler verursacht, läuft bereits.
Da der Fehler nach Anpassung deines CL's nun nicht mehr auf dem CPYSPLF sondern auf dem DMPCLPGM spielt die Anzahl Jobs keine Rolle, da der Dump keine JVM benötigt.
Da aber für die PDF-Erstellung ebenso kein installiertes Java Voraussetzung ist, gehe ich mal davon aus, dass auch dafür keine JVM (separater Job) benötigt wird.
Möglicherweise spielt aber bei beidem das Spoolsystem eine Rolle und dort sind ggf. nicht genügend Ressourcen verfügbar.
Mach mal einen WRKSYSSTS und lass dir die Anzahl Jobs nennen und die Anzahl bei WRKACTJOB. DIe Differenz sind die toten Job's, die noch jede Menge (ggf. nicht mehr benötigter) Spools belegen und verwaltet werden müssen. Auch pending Joblogs könnten ein Problem darstellen.
Man muss schließlich in alle Richtungen denken...
-
Wo kommt &EMAIL her und wie ist die Variable dort definiert?
-
Zitat von Pikachu
Wo kommt &EMAIL her und wie ist die Variable dort definiert?
Je nach Aufruf aus einem COBOL-PGM
WRK-EMAIL-INTERN-MAILADDI PIC X(200).
WRK-EMAIL-INTERN-PGM PIC X(10).
CALL 'LEACDTZET' USING WRK-EMAIL-INTERN-MAILADDI
WRK-EMAIL-INTERN-PGM
oder aus einem CL-PGM
DCL VAR(&MADDI) TYPE(*CHAR) LEN(200)
DCL VAR(&MPGM) TYPE(*CHAR) LEN(10)
CALL PGM(LEACDTZET) PARM(&MADDI &MPGM)
Andreas
Ein AS/400 Dinosaurier since 1989
-
Wie ist das Jobdatumsformat der beiden Jobs? Was steht in &PFAD?
Similar Threads
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 28-08-17, 12:52
-
By Flappes in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 22-05-17, 14:03
-
By Gast951 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 21-02-17, 08:02
-
By schatte in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 22-08-15, 14:46
-
By Reinhard Düvel in forum NEWSboard Server & Hardware Markt
Antworten: 1
Letzter Beitrag: 06-05-02, 13:34
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