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.
-IF &ANSWER_DHAGEN EQ 'YES' THEN L_YA_MAN ELSE L_NOPE;
-EXIT
-L_YA_MAN
-TYPE Thanks ! So does it work? Does it make the models easiers? What kind of DBMS you have it working? Did you encounter problems or did you have to take special actions ?
-L_NOPE
-TYPE Aoh.. to bad...
;-)
_____________________ WF: 8.0.0.9 > going 8.2.0.5
Posts: 668 | Location: Veghel, The Netherlands | Registered: February 16, 2010
To start with, I should mention that I have not deployed this in a production environment. I did a few test cases a while back just to see it working for myself. I've done it with MS SQL and DB2.
There is nothing really special here, it does exactly the same thing you would do if you were reporting against two facts without multi-fact support. You would query one model, then query the other, then merge (MATCH) them together. In this case it does all that for you automatically. You have to build a cluster view with two - or more - roots (FACT TABLES). When WF see's a request against a multiple root master, then it switches on multi support and does the match for you. If the request does not ask for columns from both roots, then it just processes normally. A simple and nice feature.
Hope that helps.
"There is no limit to what you can achieve ... if you don’t care who gets the credit." Roger Abbott
I believe it is WF that does the matching, but I didn't turn any traces on so I cannot confirm that at this time.
I don't know if your concern is warranted. I've been reporting against dimensional models for the better part of 20 years now and I cannot recall a single tactical request that would have involved millions of rows to be matched. I've had millions of details that roll up to potentially hundreds and then matched, but not millions of details to be matched.
"There is no limit to what you can achieve ... if you don’t care who gets the credit." Roger Abbott
I did some tracing and then spoke with our programming team, the Reporting Server is doing the MATCH. However, whenever possible the selection criteria is passed on to both individual table requests and thus performance should not be impacted (not zero, but negligible).
As an example (this had no WHEREs sorry).
TABLE FILE WF_RETAIL SUM WF_RETAIL.FACT_SALES.QUANTITY_SOLD WF_RETAIL.FACT_SHIPMENTS.DAYSDELAYED BY WF_RETAIL.DIM_GEOGRAPHY.REGION BY WF_RETAIL.DIM_SHIPMENTS.VENDOR END
Translates to something like the following. I apologize as the far right was missing from my trace so the AS phrases are cut off: TABLE FILE WF_RETAIL SUM WF_RETAIL.FACT_SALES.QUANTITY_SOLD WF_RETAIL.FACT_SHIPMENTS.DAYSDELAYED BY WF_RETAIL.DIM_GEOGRAPHY.REGION BY WF_RETAIL.DIM_SHIPMENTS.VENDOR END MATCH FILE SUM WF_RETAIL.FACT_SALES.QUANTITY_SOLD AS BY WF_RETAIL.DIM_GEOGRAPHY.REGION AS ' BY WF_RETAIL.DIM_GEOGRAPHY.REGION AS ' RUN FILE SUM WF_RETAIL.FACT_SHIPMENTS.DAYSDELAYED AS ' BY WF_RETAIL.DIM_GEOGRAPHY.REGION AS ' BY WF_RETAIL.DIM_SHIPMENTS.VENDOR AS ' BY WF_RETAIL.DIM_GEOGRAPHY.REGION AS ' ON TABLE AFTER MATCH HOLD OLD-AND-NEW ON TABLE SET HOLDMISS ON END TABLE FILE HOLD SUM @6 AS (,'QUANTITY_SOLD','Quantity,Sold @21 AS (,'DAYSDELAYED','Days,Delayed') BY @44 AS (,'REGION','Region') PRINT @21 AS (,'DAYSDELAYED','Days,Delayed') BY @44 AS (,'REGION','Region') BY @105 AS (,'VENDOR','Shipping Compan ON TABLE SET DUPLICATECOL OFF END
Note: At the top of the original fex I added the following to get the trace: SET TRACEOFF=ALL SET TRACEON=NTFEXP/5/CLIENT SET TRACEUSER=ON SET XRETRIEVAL=OFF
And a SQL trace from InfoAssist's SQL Trace button shows: SELECT T11."REGION", SUM(T1."Quantity_Sold") FROM wrd_fact_sales T1, wrd_dim_customer T5, wrd_dim_geography T11 WHERE (T5."ID_CUSTOMER" = T1."ID_CUSTOMER") AND (T11."ID_GEOGRAPHY" = T5."ID_GEOGRAPHY") GROUP BY T11."REGION" ORDER BY T11."REGION";
0 NUMBER OF RECORDS SELECTED= 0 LINES= 0
AGGREGATION DONE ...
SELECT T15."REGION", T2."VENDOR", SUM(T1."DAYSDELAYED") FROM wrd_fact_shipments T1, wrd_dim_shipments T2, wrd_dim_customer T9, wrd_dim_geography T15 WHERE (T2."ID_SHIPMENT" = T1."ID_SHIPMENT") AND (T9."ID_CUSTOMER" = T1."ID_CUSTOMER") AND (T15."ID_GEOGRAPHY" = T9."ID_GEOGRAPHY") GROUP BY T15."REGION", T2."VENDOR" ORDER BY T15."REGION", T2."VENDOR";