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.
You cannot JOIN hold files based on a key that it's not the same format and you can JOIN only one field that must be indexed for the second one, at least, when it's a FOCUS files.
What is the relationship between Month and Vim ? Are they both containing Month number ?
If so: 1- convert P4 to A4 2- convert A2V to A4 3- merge both : A4 || A15V to create new key field for both files then this new key field can be used to JOIN
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF In Focus since 2007
Posts: 2409 | Location: Montreal Area, Qc, CA | Registered: September 25, 2013
So Vim it's not a month number (01-12), it's a number of months (28, 29, 30 months) ?
Does Month from the other file have same values than Vim ?
Is there a relationship between Month and Vim ?
And yes I suggest to create the new DEFINES at each creation of the HOLD files where you'll be able to INDEX on that new fields and then JOIN them. This way you'll save one step.
And have something like this:
DEFINE FILE a
MonthX /A4 = EDIT(Month);
KEYA /A19 = GrpSegment || MonthX;
END
TABLE FILE a
PRINT ...
BY KEYA
BY ...
ON TABLE HOLD AS FILA FORMAT FOCUS INDEX KEYA
END
-RUN
DEFINE FILE b
VimX /A4 = Vim;
KEYB /A19 = GrpSegment || VimX;
END
TABLE FILE b
PRINT ...
BY KEYB
BY ...
ON TABLE HOLD AS FILB FORMAT FOCUS INDEX KEYB
END
-RUN
JOIN KEYA IN FILA
TO KEYB IN FILB TAG J01 AS J01
END
TABLE FILE FILA
PRINT ...
BY ...
WHERE KEYA EQ KEYB;
END
-RUN
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF In Focus since 2007
Posts: 2409 | Location: Montreal Area, Qc, CA | Registered: September 25, 2013
Actualy i dont know why they use this join between Month and VIM,I have to migrate a report from BO to webfocus that's why i have to use the same join in order to have a correct result.
For the index i have to add it manualy by code ? Is there others method to do it by infoassist ?
*-HOLD_SOURCE -*COMPONENT=Define_DWH_ACQUIRING_BY_MERCHANT_CREDIT DEFINE FILE DWH_ACQUIRING_BY_MERCHANT_CREDIT Var_Month/A4=PTOA(DWH_ACQUIRING_BY_MERCHANT_CREDIT.FINPROCESSING_DATE.MONTH_NO,'(P4)','A4' ); Var_concat/A19=DWH_ACQUIRING_BY_MERCHANT_CREDIT.GRP_MAIN.VIOL_VIM || Var_Month ; END -DEFAULTH &WF_SUMMARY='Summary'; -DEFAULTH &WF_TITLE='WebFOCUS Report'; TABLE FILE DWH_ACQUIRING_BY_MERCHANT_CREDIT SUM DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_NBR_BY_DATE_FIN.DF_TRX_NBR_FIN_YTD_1 DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_NBR_BY_DATE_FIN.DF_TRX_NBR_FIN_YTD DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_ACNT_COM_AMT_BY_DATE_FIN.DF_TRX_COM_CMT_FIN_YTD DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_ACNT_COM_AMT_BY_DATE_FIN.DF_TRX_COM_CMT_FIN_YTD_1 DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_ACNT_AMT_BY_DATE_FIN.DF_TRX_CMT_FIN_YTD DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_ACNT_AMT_BY_DATE_FIN.DF_TRX_CMT_FIN_YTD_1 BY Var_concat BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.FINPROCESSING_DATE.YEAR_NO BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.GRP_MAIN.GROU_GROUP_SEGMENTATION_CODE BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.FINPROCESSING_DATE.MONTH_NO BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_DETAILS.BRAND_CODE BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_DETAILS.DF_BRAND_CODE BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.GRP_ADDRESS.GRAD_COUNTRY_CODE BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_DETAILS.DF_AREA_CARDHOLDER_COMPANY BY DWH_ACQUIRING_BY_MERCHANT_CREDIT.TXN_DETAILS.AREA_COMPANY WHERE DWH_ACQUIRING_BY_MERCHANT_CREDIT.FIL_PROCESSING_DATE.FI_YEAR_PREVYEAR ; ON TABLE HOLD AS HF_q_ytd FORMAT BINARY ON TABLE NOTOTAL ON TABLE SET CACHELINES 100 ON TABLE SET PAGE-NUM NOLEAD ON TABLE SET SQUEEZE ON ON TABLE SET HTMLCSS ON ON TABLE SET HTMLENCODE ON ON TABLE SET EMPTYREPORT ON ON TABLE SET ASNAMES MIXED ON TABLE SET HOLDATTRS ON ON TABLE SET HOLDLIST PRINTONLY ON TABLE SET ASNAMES MIXED ON TABLE SET HOLDATTRS ON ON TABLE SET HOLDLIST PRINTONLY ON TABLE SET STYLE * INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$ TYPE=REPORT, TITLETEXT=&WF_TITLE.QUOTEDSTRING, SUMMARY=&WF_SUMMARY.QUOTEDSTRING, ORIENTATION=LANDSCAPE, PAGESIZE=A4, HFREEZE=OFF, $ ENDSTYLE END -RUN
Why are you concatenating VIM and Month ? I thought that your keys for the JOIN must be (GrpSegment + Vim) = (GrpSegment + Month) as you stated in your first post.
You are creating an HOLD file, so rid off:
ON TABLE NOTOTAL
ON TABLE SET CACHELINES 100
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE SET SQUEEZE ON
ON TABLE SET HTMLCSS ON
ON TABLE SET HTMLENCODE ON
ON TABLE SET EMPTYREPORT ON
ON TABLE SET ASNAMES MIXED
ON TABLE SET HOLDATTRS ON
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE SET ASNAMES MIXED
ON TABLE SET HOLDATTRS ON
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE SET STYLE *
INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$
TYPE=REPORT, TITLETEXT=&WF_TITLE.QUOTEDSTRING, SUMMARY=&WF_SUMMARY.QUOTEDSTRING, ORIENTATION=LANDSCAPE, PAGESIZE=A4, HFREEZE=OFF, $
ENDSTYLE
No use to have it there.
Try to isolate the error, execute your code without the DEFINES, then add them one at the time.
Yes The right join is : (GrpSegment + Vim) it was a mistake when i pasted the code.
When i execute the report without the DEFINES it work fine.
I think that this error 'WebFOCUS was called with an invalid request.' is genereted when the quantity of data is big , because when i tried to execute the report with a small period for example 1 month it work fine.
Process all your development with a small set of data and validate. Then once you're sure that it works and provide proper report, try why more and more data (2 months, 6 months, ...)
It's possible that you'll end with a differed execution. But at that point you'll have to insure that your users will only have the differed execution option if it's the only way. Otherwise they will have the same issue as you do
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF In Focus since 2007
Posts: 2409 | Location: Montreal Area, Qc, CA | Registered: September 25, 2013