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 have developed a report and it is available to users through the BI portal. Recently we added a multiselect option so that users can view only their information. Concurrently, we schedule this report to run once a week via report caster. To give the scheduled report similar capability, we were told that this could be accomplished with Bursting. I modified the report so that the first BY field is the same as what the user could choose if they were running themselves. I was told that I would need to remove the parameter prompt from the report for the bursting to work in report caster. If this is the case, that would mean I would need to maintain two reports for each report that we do. Is there a possibility of setting this up so we can continue to rely on one report rather than multiple reports doing essential the same thing? Also, with the report caster, is there the option of running the entire report as well as bursted for those users who still would like to receive the entire report rather than a particular section of the report.This message has been edited. Last edited by: Kerry,
I was told that I would need to remove the parameter prompt from the report for the bursting to work in report caster. Yes
If this is the case, that would mean I would need to maintain two reports for each report that we do. No. Use Dialog Manager to differentiate between interactive mode and RC mode.
Also, with the report caster, is there the option of running the entire report as well as bursted for those users who still would like to receive the entire report rather than a particular section of the report. In order to burst and send to different users you create a file with the values and e-mail addresses. To send the whole report you just use the e-mail addresses. So I think that you need 2 RC jobs, 1 for the burst and one for those who want the whole shebang
Daniel In Focus since 1982 wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF
Posts: 1980 | Location: Tel Aviv, Israel | Registered: March 23, 2006
I do not think would not need to remove the parameter for report caster if you have a default line for it. Just have to make sure that in the task the option to send that parameter has a value or isn't sent.
Parameters can be in Report Caster just they can't change while running it like different users would want to do.
As Danny said could just use Dialog Manager with something similar to:
-DEFAULTH &IS_REPORT_CASTER=0;
-IF &IS_REPORT_CASTER NE 0 THEN GOTO LBL_RC ELSE GOTO LBLNORM;
-LBL_RC
-SET &OPTION=FOC_NONE;
-LBLNORM
This makes a variable that doesn't show up when normally ran but can be changed when included in another fex or in Report Caster.
Would be best and easier to have two Report Caster tasks (one burst and one entire report) since if I remember right is a checkbox to tell it to burst. If you really wanted it in one task though would have to add into the report another burst option that would get the entire report and the email list to send it to like the others.
Thank you to both Daniel and Crymsyn. This is encourageing news. If I understand correctly, I would request to the dba to set up two separate runs of the report in Report Caster, one for the entire report and another for the burst. As for the dialogue manager part where would I put it so that RC would ignore this prompt:
WHERE COLLEGE EQ &COLLEGE.(OR(<No Selection,_FOC_NULL>,<BU,BU>,<ED,ED>,<NS,NS>,<PL,PL>)).COLLEGE.;
Here is the code minus the sql which precedes the displayed code and the TYPE=REPORT statements that follow the displayed code.
...
...
SET EMPTYREPORT = ON
DEFINE FILE SQLOUT ADD
APP_DATE/HDMtYY-=APPLICATION_DATE;
LATEST_DEC_DATE/HDMtYY-=LATEST_DECISION_DATE;
RUN_DATE/HDMtYY-I=DATE_UPDATED;
END
TABLE FILE SQLOUT
SUM
APPLIED/I5 AS 'APP'
ACCEPTED/I5 AS 'ACC'
DENIED/I5 AS 'DEN'
BY COLLEGE NOPRINT
BY PROGRAM NOPRINT
BY ACADEMIC_PERIOD NOPRINT
BY ID
BY NAME
BY LOWEST ACADEMIC_PERIOD AS 'TERM'
BY LOWEST COLLEGE AS 'COLL'
BY LOWEST CAMPUS AS 'CMPS'
BY LOWEST PROGRAM
BY LOWEST LATEST_CONTACT AS 'CONTC'
BY LOWEST APPLICATION_STATUS AS 'STAT'
BY APP_DATE
BY LOWEST LATEST_DECISION AS 'DECISION'
BY LATEST_DEC_DATE AS 'DECISION_DATE'
BY LOWEST FAFSA_RECEIVED AS 'FAFSA'
BY LOWEST LATEST_DECISION_DESC AS 'DECISION_DESC'
BY LOWEST SPRHOLD_REASON
ON PROGRAM SUBTOTAL AS '*TOTAL'
HEADING
"Admissions Online Degree Program by Program as of <RUN_DATE"
-*WHERE COLLEGE EQ &COLLEGE.(OR(<No Selection,_FOC_NULL>,<BU,BU>,<ED,ED>,<NS,NS>,<PL,PL>)).COLLEGE.;
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE SET BYDISPLAY ON
ON TABLE COLUMN-TOTAL AS 'TOTAL'
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
...
...
Here is an example of a report I created that is run both via scheduler and BID.
-***********************************************************************
-SET &PGMNAME = 'CPIMPERR';
-SET &RPTNAME = 'Changepoint: Interface Errors';
-SET &ANALYST = 'ME';
-***********************************************************************
-IF &FOCFOCEXEC NE 'RCASTER' THEN GOTO LOGUSER ELSE GOTO SKIPLOG;
-***********************************************************************
-LOGUSER
-* USER is a human coming in through MRE.
-***********************************************************************
-SET &USERID = UPCASE(25,&IBIMR_user,&IBIMR_user);
-SET &GROUPID = 'SOLUTION';
-SET &REPORTID = &PGMNAME;
-SET &UNIQUEID = '';
-MRNOEDIT -INCLUDE RUNEVENT
-*****OPTIONS ARE (UHS, BRT, CHO, HET, OBH, PCMH, RCH) AND (PROTECTED,UNPROTECTED)
-SET &SECURITY = 'UHS UNPROTECTED';
-SET &RPTNAME = &RPTNAME;
-SET &KEYWORDS = 'CHANGEPOINT INTERFACE';
-MRNOEDIT -INCLUDE RPTNAME
-***********************************************************************
-SKIPLOG
-IF &FOCFOCEXEC EQ 'RCASTER' THEN GOTO SETAUTO ELSE GOTO SETMAN;
-SETMAN
-* USER is a human coming in through MRE.
-PROMPT &BEGDATE.Provide the BEGINNING date you wish to see import errors for (yyyymmdd hh:mm:ss):.;
-PROMPT &ENDDATE.Provide the ENDING date you wish to see import errors for (yyyymmdd hh:mm:ss):.;
-GOTO ENDSET
-SETAUTO
-* USER is ReportCaster and must be fed a date parm.
-SET &PB=1;
-MRNOEDIT -INCLUDE SDRYYMD
-SET &BEGDATE = &BKDAYS_YYMD | ' 00:00:00';
-SET &ENDDATE = &BKDAYS_YYMD | ' 23:59:59';
-GOTO ENDSET
-ENDSET
-ENDDATE
SET ASNAMES = ON
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
-* PROD
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
JOIN
LEFT_OUTER UHS_INTERFACEERROR-PROD.UHS_INTERFACEERROR-PROD.INTERFACEBATCHID IN UHS_INTERFACEERROR-PROD TO UNIQUE
UHS_INTERFACEBATCH-PROD.UHS_INTERFACEBATCH-PROD.INTERFACEBATCHID IN UHS_INTERFACEBATCH-PROD
TAG J1 AS J1
END
JOIN
INNER UHS_INTERFACEERROR-PROD.CREATEDBY IN UHS_INTERFACEERROR-PROD TO UNIQUE
UHS_DS_RESOURCE-PROD.UHS_DS_RESOURCE-PROD.RESOURCEID IN UHS_DS_RESOURCE-PROD
TAG J2 AS J2
END
SET ASNAMES = ON
DEFINE FILE UHS_INTERFACEERROR-PROD
SYSTEM/A5 = 'PROD';
END
TABLE FILE UHS_INTERFACEERROR-PROD
PRINT
SYSTEM
UHS_INTERFACEERROR-PROD.ErrorCode
UHS_INTERFACEERROR-PROD.Description
UHS_INTERFACEERROR-PROD.CreatedOn
UHS_INTERFACEBATCH-PROD.InterfaceCode
UHS_INTERFACEBATCH-PROD.BatchNumber
UHS_INTERFACEBATCH-PROD.FILENAME AS 'THE_FILENAME'
UHS_INTERFACEBATCH-PROD.CountTotalRecords
UHS_INTERFACEBATCH-PROD.CountInserted
UHS_INTERFACEBATCH-PROD.CountUpdated
UHS_INTERFACEBATCH-PROD.CountInactivated
UHS_INTERFACEBATCH-PROD.CountSuccess
UHS_INTERFACEBATCH-PROD.CountFailure
UHS_INTERFACEBATCH-PROD.CountErrors
UHS_INTERFACEBATCH-PROD.ExecutionTime
UHS_DS_RESOURCE-PROD.Name AS 'CreatedBy'
WHERE CREATEDON FROM DT(&BEGDATE) TO DT(&ENDDATE);
ON TABLE HOLD AS BT_CP_PROD
END
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
-* CP2010
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
JOIN
LEFT_OUTER UHS_INTERFACEERROR-2010.UHS_INTERFACEERROR-2010.INTERFACEBATCHID IN UHS_INTERFACEERROR-2010 TO UNIQUE
UHS_INTERFACEBATCH-2010.UHS_INTERFACEBATCH-2010.INTERFACEBATCHID IN UHS_INTERFACEBATCH-2010
TAG J1 AS J1
END
JOIN
INNER UHS_INTERFACEERROR-2010.CREATEDBY IN UHS_INTERFACEERROR-2010 TO UNIQUE
UHS_DS_RESOURCE-2010.UHS_DS_RESOURCE-2010.RESOURCEID IN UHS_DS_RESOURCE-2010
TAG J2 AS J2
END
SET ASNAMES = ON
DEFINE FILE UHS_INTERFACEERROR-2010
SYSTEM/A5 = '2010';
END
TABLE FILE UHS_INTERFACEERROR-2010
PRINT
SYSTEM
UHS_INTERFACEERROR-2010.ErrorCode
UHS_INTERFACEERROR-2010.Description
UHS_INTERFACEERROR-2010.CreatedOn
UHS_INTERFACEBATCH-2010.InterfaceCode
UHS_INTERFACEBATCH-2010.BatchNumber
UHS_INTERFACEBATCH-2010.FILENAME AS 'THE_FILENAME'
UHS_INTERFACEBATCH-2010.CountTotalRecords
UHS_INTERFACEBATCH-2010.CountInserted
UHS_INTERFACEBATCH-2010.CountUpdated
UHS_INTERFACEBATCH-2010.CountInactivated
UHS_INTERFACEBATCH-2010.CountSuccess
UHS_INTERFACEBATCH-2010.CountFailure
UHS_INTERFACEBATCH-2010.CountErrors
UHS_INTERFACEBATCH-2010.ExecutionTime
UHS_DS_RESOURCE-2010.Name AS 'CreatedBy'
WHERE CREATEDON FROM DT(&BEGDATE) TO DT(&ENDDATE);
ON TABLE HOLD AS BT_CP_2010
END
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
-* DEV
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
JOIN
LEFT_OUTER UHS_INTERFACEERROR-DEV.UHS_INTERFACEERROR-DEV.INTERFACEBATCHID IN UHS_INTERFACEERROR-DEV TO UNIQUE
UHS_INTERFACEBATCH-DEV.UHS_INTERFACEBATCH-DEV.INTERFACEBATCHID IN UHS_INTERFACEBATCH-DEV
TAG J1 AS J1
END
JOIN
INNER UHS_INTERFACEERROR-DEV.UHS_INTERFACEERROR-DEV.CREATEDBY IN UHS_INTERFACEERROR-DEV TO UNIQUE
UHS_DS_RESOURCE-DEV.UHS_DS_RESOURCE-DEV.RESOURCEID IN UHS_DS_RESOURCE-DEV
TAG J2 AS J2
END
DEFINE FILE UHS_INTERFACEERROR-DEV
SYSTEM/A5 = 'DEV';
END
TABLE FILE UHS_INTERFACEERROR-DEV
PRINT
SYSTEM
UHS_INTERFACEERROR-DEV.ErrorCode
UHS_INTERFACEERROR-DEV.Description
UHS_INTERFACEERROR-DEV.CreatedOn
UHS_INTERFACEBATCH-DEV.InterfaceCode
UHS_INTERFACEBATCH-DEV.BatchNumber
UHS_INTERFACEBATCH-DEV.FILENAME AS 'THE_FILENAME'
UHS_INTERFACEBATCH-DEV.CountTotalRecords
UHS_INTERFACEBATCH-DEV.CountInserted
UHS_INTERFACEBATCH-DEV.CountUpdated
UHS_INTERFACEBATCH-DEV.CountInactivated
UHS_INTERFACEBATCH-DEV.CountSuccess
UHS_INTERFACEBATCH-DEV.CountFailure
UHS_INTERFACEBATCH-DEV.CountErrors
UHS_INTERFACEBATCH-DEV.ExecutionTime
UHS_DS_RESOURCE-DEV.Name AS 'CreatedBy'
WHERE CREATEDON FROM DT(&BEGDATE) TO DT(&ENDDATE);
ON TABLE HOLD AS BT_CP_DEV
END
TABLE FILE BT_CP_DEV
PRINT
*
ON TABLE HOLD AS BT_CP_MERGED
MORE
FILE BT_CP_PROD
MORE
FILE BT_CP_2010
END
TABLE FILE BT_CP_MERGED
HEADING
"Vidant Health"
"Decision Support Office"
"Report Date: &DATE"
"Program: &PGMNAME"
"----------------------------------------"
" &RPTNAME "
"----------------------------------------"
" "
PRINT
ERRORCODE AS 'Error Code'
DESCRIPTION AS 'Error Desc'
CREATEDON AS 'Created On'
INTERFACECODE AS 'Interface Code'
BATCHNUMBER AS 'Batch #'
THE_FILENAME AS 'Filename'
COUNTTOTALRECORDS AS 'Total'
COUNTINSERTED AS 'Inserted'
COUNTUPDATED AS 'Updated'
COUNTINACTIVATED AS 'Inactivated'
COUNTSUCCESS AS 'Success'
COUNTFAILURE AS 'Failure'
COUNTERRORS AS 'Errors'
EXECUTIONTIME AS 'Exec Time'
CREATEDBY AS 'Created By'
BY SYSTEM AS 'Env'
ON TABLE SET ONLINE-FMT EXL2K
ON TABLE SET STYLE *
UNITS=IN,
PAGESIZE='Letter',
LEFTMARGIN=0.250000,
RIGHTMARGIN=0.250000,
TOPMARGIN=0.250000,
BOTTOMMARGIN=0.250000,
SQUEEZE=ON,
ORIENTATION=LANDSCAPE,
$
TYPE=REPORT,
GRID=ON,
FONT='ARIAL',
RIGHTGAP=0.050000,
LEFTGAP=0.050000,
STYLE=NORMAL,
JUSTIFY=LEFT,
SIZE=8,
COLOR=BLACK,
BACKCOLOR=NONE,
$
TYPE=DATA,
BACKCOLOR=( WHITE RGB(232 235 222) ),
JUSTIFY=LEFT,
$
TYPE=TITLE,
COLOR=RGB(232 235 222),
BACKCOLOR=TEAL,
JUSTIFY=CENTER,
STYLE=BOLD,
$
TYPE=HEADING,
COLOR=RGB(0 51 102),
SIZE=10,
STYLE=BOLD,
$
TYPE=TABFOOTING,
COLOR=RGB(0 51 102),
$
ENDSTYLE
END
I tried adding the -IF before the WHERE Prompt, but according to the dba it is still prompting for college in Report Caster.
HEADING
"Admissions Online Degree Program by Program as of <RUN_DATE"
-IF &FOCFOCEXEC NE 'RCASTER' THEN GOTO USERCHOICE ELSE SKIPCHOICE;
-USERCHOICE
WHERE COLLEGE EQ &COLLEGE.(OR(<No Selection,_FOC_NULL>,<BU,BU>,<ED,ED>,<NS,NS>,<PL,PL>)).COLLEGE.;
-GOTO SKIPCHOICE
-SKIPCHOICE
ON TABLE SET PAGE-NUM NOLEAD
Even with IFs skipping the parameter WebFOCUS still sees it when it does the Autoprompt.
Technically as long as the &COLLEGE is in there it will prompt for it. In ReportCaster though when they set up in the task it can be set to anything and it won't matter if you do something like the following:
First I usually put all of my parameters near the first line of the report to easily see and reorder them so your where statement would look like this
WHERE COLLEGE EQ '&COLLEGE';
Then at the top would put this line
-SET &COLLEGE=IF &FOCFOCEXEC NE 'RCASTER' THEN &COLLEGE.(OR(<No Selection,_FOC_NULL>,<BU,BU>,<ED,ED>,<NS,NS>,<PL,PL>)).COLLEGE.
-ELSE FOC_NONE;
Thank you Crymsyn for your reply. The dba said it still failed. Before I sent it off, I tried running from Dev Studio and it didn't like the quotes '&COLLEGE', so I removed them which allowed the report to run from devstudio, could this have prevented it from running in report caster? Since the very top of the focus code is an SQL statement, I put the code you suggested after the END in the SQL section. As follows:
END
-SET &COLLEGE=IF &FOCFOCEXEC NE 'RCASTER' THEN &COLLEGE.(OR(<No Selection,_FOC_NULL>,<BU,BU>,<ED,ED>,<NS,NS>,<PL,PL>)).COLLEGE.
-ELSE FOC_NONE;
SET EMPTYREPORT = ON
DEFINE FILE SQLOUT ADD
APP_DATE/HDMtYY-=APPLICATION_DATE;
LATEST_DEC_DATE/HDMtYY-=LATEST_DECISION_DATE;
RUN_DATE/HDMtYY-I=DATE_UPDATED;
END
TABLE FILE SQLOUT
SUM
APPLIED/I5 AS 'APP'
ACCEPTED/I5 AS 'ACC'
DENIED/I5 AS 'DEN'
BY COLLEGE NOPRINT
BY PROGRAM NOPRINT
BY ACADEMIC_PERIOD NOPRINT
BY ID
BY NAME
BY LOWEST ACADEMIC_PERIOD AS 'TERM'
BY LOWEST COLLEGE AS 'COLL'
BY LOWEST CAMPUS AS 'CMPS'
BY LOWEST PROGRAM
BY LOWEST LATEST_CONTACT AS 'CONTC'
BY LOWEST APPLICATION_STATUS AS 'STAT'
BY APP_DATE
BY LOWEST LATEST_DECISION AS 'DECISION'
BY LATEST_DEC_DATE AS 'DECISION_DATE'
BY LOWEST FAFSA_RECEIVED AS 'FAFSA'
BY LOWEST LATEST_DECISION_DESC AS 'DECISION_DESC'
BY LOWEST SPRHOLD_REASON
ON PROGRAM SUBTOTAL AS '*TOTAL'
HEADING
"Admissions Online Degree Program by Program as of <RUN_DATE"
WHERE COLLEGE EQ &COLLEGE;
ON TABLE SET PAGE-NUM NOLEAD
Probably shouldn't have confused things with mentioning the quotes. At this point, the report doesn't run in report caster with/or without the quotes. It runs in dev studio without the quotes. Other ideas/suggestions?
Keep it simple; factor out the common code, and create separate (tiny) cover fexes for batch and interactive contexts.
Store the report code, without any -DEFAULT, as (say) "report.fex"
For interactive use, run a cover fex that consists of the -DEFAULT statement to trigger the appropriate autoprompt for &COLLEGE, followed by -INCLUDE report.fex
For batch use, run a different cover fex that consists of -SET &COLLEGE='_FOC_NULL'; -INCLUDE report.fex
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005