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.
In the 1990s, I wrote a "program lister" using the FOCUS language to read FOCEXECs and explain what they were doing for a client with limited 4GL knowledge. If I still have it, I could share it in GitHub.
Basically, the documented FOCEXECs show on the left side of the pages and explanations of coding techniques are on the right (e.g., DEFINEs, TABLEs, MODIFYs, -CRTFORMs, etc.) In the early 2000s, I rewrote it into C/C++ and enhanced it as a transformer to automatically convert from 4GL/other reporting tool to WebFOCUS. I did not continue using/enhancing the FOCUS version after that.
I'm assuming you want a mass listing of all of the FOCEXECs (hopefully, PDF instead of binders of paper!) as well as a on-demand, one-at-at-time viewer. Today, reading the FOCEXECs is slightly more challenging because they are stored in the Content Repository as BLOB objects. Another method is to use Change Management, export them into text files, and mass report against them there.
If you want, send me a private e-mail Doug at Kencura.com so I can better understand your needs and see how I can help.
Sincerely,
Doug Lautzenheiser Multiple products (FOCUS, WebFOCUS, iWay), releases (4-8.2), platforms (e.g., MVS, OpenVMS, Linux, iSeries, Windows), databases (e.g., Oracle, SQL Server, DB2, IMS, Hyperstage, etc.), integrated technologies (e.g., C/C++, R, Python) Currently doing great things on WF8.2
Posts: 7 | Location: Midwest United States | Registered: February 14, 2007
I wrote a little report using the respository tables. Some of this code I got from somewhere, but I don't recall exactly where. It's a program inventory of sorts. If you put it into the top level of a domain folder, it will show everything in that domain. You'll need to create the metadata for the tables shown here. Also put your style sheet declaration in.
-* Place this routine into the top-level folder of any domain, and it will report on all repository
-* content for that domain.
-*
-*-SET &ECHO=ALL;
-*-? &
-*TABLE FILE WF_REPOSOBJ
-*PRINT *
-*END
-*-EXIT
-SET &MY_LOCATION='/WFC/Repository/' | '&IBIMR_domain.EVAL' || '%';
-*-TYPE &MY_LOCATION;
-SET &THE_POSITION=POSITION('/%', &MY_LOCATION);
-*-TYPE &THE_POSITION;
-SET &MY_LOCATION_NOSUFFIX=SUBSTRING(&MY_LOCATION, 1, (&THE_POSITION - 1)) || '%';
-*-TYPE &MY_LOCATION_NOSUFFIX;
-*SET BYDISPLAY = ON
JOIN
WF_CONTENT_REVS.WF_CONTENT_REVS.OBJ_HANDLE IN WF_CONTENT_REVS TO UNIQUE
WF_NLSOBJ.WF_NLSOBJ.OBJ_HANDLE IN WF_NLSOBJ TAG J2 AS J2
END
JOIN
WF_CONTENT_REVS.WF_CONTENT_REVS.OBJ_HANDLE IN WF_CONTENT_REVS TO UNIQUE
WF_ITEM.WF_ITEM.HANDLE IN WF_ITEM TAG J3 AS J3
END
JOIN
WF_CONTENT_REVS.WF_CONTENT_REVS.OBJ_HANDLE IN WF_CONTENT_REVS TO UNIQUE
WF_REPOSOBJ.WF_REPOSOBJ.HANDLE IN WF_REPOSOBJ TAG J4 AS J4
END
DEFINE FILE WF_CONTENT_REVS
ITEMTYPE/A24=DECODE WF_REPOSOBJ.WF_REPOSOBJ.OBJTYPE( 102 'Rpt Object FEX' 103 'Stylesheet' 106 'Help HTM' 107 'CSS' 109 'FEX' 110 'HTML' 113 'RC Schedule' 117 'URL' 4 OTHER 0 'Static web component' 301 'User Entry' 115 'RC Dist List' 118 'RC Library output');
VERTBAR/I2=POSIT(WF_CONTENT_REVS.WF_CONTENT_REVS.OBJ_HANDLE, 255, '|', 1, VERTBAR);
ReposName/A50=SUBSTR(255, WF_CONTENT_REVS.WF_CONTENT_REVS.OBJ_HANDLE, 1, (VERTBAR -1), 50, ReposName);
LReposName/I2=ARGLEN(50,ReposName, LReposName);
TODAYS_DATE/MDYY=&MDYY;
LAST_ACCESS_DATE/MDYY=HDATE(LASTACCESSON, 'YYMD');
HOW_MANY_DAYS/I5=DATEDIF(LAST_ACCESS_DATE, TODAYS_DATE, 'D');
END
SET PRINTPLUS = ON
TABLE FILE WF_CONTENT_REVS
-* WF_CONTENT_REVS.WF_CONTENT_REVS.OBJ_HANDLE AS 'OBJHANDLE - If non-cryptic, then item was from migrated WF 7'
-* WF_CONTENT_REVS.WF_CONTENT_REVS.ReposName AS 'ReposName - If blank, was created in WF 8'
-*WHERE J4.WF_REPOSOBJ.PRT_PATH EQ '/WFC/Repository/Fusion/PCD_Written_Reports';
PRINT
J2.WF_NLSOBJ.SUMMARY AS 'Summary'
J4.WF_REPOSOBJ.LASTACCESSON
J4.WF_REPOSOBJ.HOW_MANY_DAYS NOPRINT
BY J4.WF_REPOSOBJ.PRT_PATH NOPRINT AS 'Full IBFS Path'
BY LOWEST J4.WF_REPOSOBJ.OBJNAME AS 'Internal Name'
BY LOWEST J4.WF_REPOSOBJ.ITEMTYPE AS 'Type'
BY J2.WF_NLSOBJ.OBJDESC AS 'Display Name'
ON J4.WF_REPOSOBJ.PRT_PATH SUBHEAD
"Folder: <J4.WF_REPOSOBJ.PRT_PATH "
" "
ON J4.WF_REPOSOBJ.PRT_PATH UNDER-LINE
HEADING
"Program Inventory for"
"&IBIMR_domain"
"Server: &SERVER_NAME "
"Red: Not accessed in over 90 days"
"Blue: Not accessed in over 60 days"
"Green: Not accessed in over 30 days"
FOOTING
"Page <TABPAGENO "
WHERE J4.WF_REPOSOBJ.PRT_PATH LIKE '&MY_LOCATION_NOSUFFIX';
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
INCLUDE = YOUR FAVORITE STYLE SHEET
$
ORIENTATION=LANDSCAPE,
SUMMARY='Repository Inventory',
TITLETEXT='Repository Inventory',
$
DEFMACRO=OVER_90,
MACTYPE=RULE,
WHEN=N7 GT 90,
$
DEFMACRO=OVER_60,
MACTYPE=RULE,
WHEN=N7 GT 60,
$
DEFMACRO=OVER_30,
MACTYPE=RULE,
WHEN=N7 GT 30,
$
TYPE=REPORT,
LINES-PER-PAGE=UNLIMITED,
$
TYPE=DATA,
COLUMN=N2,
COLOR='RED',
BACKCOLOR=RGB(240 245 255),
MACRO=OVER_90,
$
TYPE=DATA,
COLUMN=N2,
COLOR='BLUE',
BACKCOLOR=RGB(240 245 255),
MACRO=OVER_60,
$
TYPE=DATA,
COLUMN=N2,
COLOR='GREEN',
BACKCOLOR=RGB(240 245 255),
MACRO=OVER_30,
$
TYPE=HEADING,
LINE=4,
JUSTIFY=LEFT,
$
TYPE=REPORT,
COLUMN=OBJNAME,
WRAP=1.500000,
$
TYPE=REPORT,
COLUMN=OBJDESC,
WRAP=2.000000,
$
TYPE=REPORT,
COLUMN=SUMMARY,
WRAP=3.000000,
$
TYPE=REPORT, RIGHTGAP = 0.05, $
TYPE=REPORT, LEFTGAP = 0.05, $
ENDSTYLE
END