As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
I need to generate lot of reports through webfocus daily after the successfully completion of batch jobs in mainframes. So, I scheduled the reports accordingly in the Report caster. But I also need to verify the successful completion of the mainframe batch job running through ZEKE scheduler.
So, is it possible to identify the mainframe job completion either from webfocus(through Managed Reporting) or from Report Caster.
Please post your suggestions ASAP.
Thanks in Advance.This message has been edited. Last edited by: Amar,
WebFOCUS 7.6.4, Mainframe Focus Mainframe / Z/OS,MVS Managed Reporting / Windows All formats
have the mainframe batch jobs write a file with a staus date in it as part of the process.
The caster jobs can check this file as pre processing step and using a combination of a loop and SLEEP can effectivly pause the Caster job until the data is available.
Originally posted by JG: have the mainframe batch jobs write a file with a staus date in it as part of the process.
The caster jobs can check this file as pre processing step and using a combination of a loop and SLEEP can effectivly pause the Caster job until the data is available.
In our example, the program reads a table for a trigger date (this would be comparable to JG's text file). This is an include to a job scheduled daily and monthly in ReportCaster. We expect that the load job will be done before the job that uses this code, but if not, it will wait around for an hour before dieing.
PB is Periods Back and is a table that holds various important dates formatted for ease of use. PB = 1 is yesterday.
When the dates are the same, the routine just falls through to the next statement and back to the including program.
The job is killed via &KILL_RPC.
-ABT
-SET &CNTR = 0;
-*---------------------------------------------------------
-LOOP
-*FIND LAST DATE THE ATB EXTRACT WAS UPDATED
TABLE FILE DMVALUES
SUM MAX.VSTART
WHERE VINDICATOR EQ 'ATBXDONE'
ON TABLE HOLD AS ASATBDT1
END
DEFINE FILE ASATBDT1
LASTDATE/YYMD = HDATE(VSTART, 'YYMD');
END
TABLE FILE ASATBDT1
PRINT
LASTDATE
BY VSTART NOPRINT
ON TABLE HOLD AS ASATBDT2 FORMAT ALPHA
END
-RUN
-READ ASATBDT2 &LASTDATE.A8.
-RUN
-*---------------------------------------------------------
-*DETERMINE THE LAST MONTH END DATE
-SET &PB=1;
-*NOTE: PRE-PROCESSING PROCEDURES HAVE TO RESIDE IN THE STANDARDS FOLDER.
-*THEREFORE WE DON'T NEED THE -MRNOEDIT WITH THE -INCLUDE SDRYYMD BECAUSE
-*SDRYYMD IS IN THE SAME DOMAIN.
-INCLUDE SDRYYMD
-SET &ENDM = &ENDMTH_YYMD;
-*COMPARE THE LAST DAT THE ATB EXTRACT WAS UPDATED AND THE LAST MONTH END DATE
-*IF THEY ARE THE SAME PROCESSING OF THE REPORT JOB WILL CONTINUE,
-*IF NOT THE JOB WILL SLEEP (OR EVENTUALLY END WITHOUT RUNNING THE REPORT)
-SET &DATESSAME = IF &LASTDATE EQ &ENDM THEN 'Y' ELSE 'N';
-IF &DATESSAME EQ 'Y' GOTO YESDATE ELSE GOTO NODATE;
-*---------------------------------------------------------
-NODATE
-SET &CNTR = &CNTR + 1;
SLEEP 900
-RUN
-IF &CNTR GE 4 GOTO KILLME;
-GOTO LOOP
-*---------------------------------------------------------
-KILLME
-SET &&KILL_RPC = 'Y';
-TYPE 'JOB KILLED AFTER SLEEPING FOR 1 HOUR (4 * 900 SECONDS) (LOOPS=&CNTR)
-TYPE 'RERUN MANUALLY WHEN ATB EXTRACT IS COMPLETE'
-GOTO THEEND
-*---------------------------------------------------------
-YESDATE
-TYPE "DATES ARE THE SAME"
-GOTO THEEND
-THEEND
-EXIT
Thank you so much for your response. I will try and let you know if I encounter any problem.
Hi JG
I do have a GDG in the batch process which generates a sequence number incremented by 1 daily after the batch completion(It is the last batch job). It will reset to one once it reaches the count to 999.
One more question is, is it possible to trigger 5 report caster jobs after completion of first report caster job.
Ex: I scheduled first report caster job at 8.00 AM. After the completion of this first job, I need to trigger 5 more jobs irrespective of timing.
WebFOCUS 7.6.4, Mainframe Focus Mainframe / Z/OS,MVS Managed Reporting / Windows All formats
One more question is, is it possible to trigger 5 report caster jobs after completion of first report caster job.
Ex: I scheduled first report caster job at 8.00 AM. After the completion of this first job, I need to trigger 5 more jobs irrespective of timing.
3 ways come to mind: - Created the other 5 jobs as tasks of the first. If you need to achieve flow control (only execute this job if this condition is met), you may need to use a separate table/file to read status.
- Create 'Post Processing' procedures. ReportCaster: Tasks > Edit > Advanced > Procedures > Post Processing Procedure (1 and 2). You can only do 2, but they will execute after completion.
- As a final step to the main job, use -INCLUDEs to reference the other 5. You can also use conditionals here to smartly control flow. This approach can also be used in the second case to reference a master job (with 5 subs) as a Post Procedure.