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.
Newbie question regarding using fields from a table that is brought in twice in a synonym created through the meta data canvas.
I am trying to bring in email addresses from a table goremal that contains lots of emal codes. I am bringing the table in twice to the synonym and specifying which email code to use for each in the join properties of the synonym. When I bring the table in once the report works fine. When I bring the table in a second time the report gives me the error in the subject field.
Below are the output from the initial procedure when I get the correct email out. Then I posted the error message. Below that is the coding for the second procedure when I am have added in the second goremal table and tried reporting out information from it.
TABLE FILE STUDENT BY HIGHEST STUDENT.SPRIDEN.SPRIDEN_ID BY HIGHEST STUDENT.SPRIDEN.FULLNAME_BANNER_FUNCTION BY STUDENT.SPRIDEN.SPRIDEN_FIRST_NAME BY STUDENT.SPRIDEN.SPRIDEN_LAST_NAME BY HIGHEST 1 STUDENT.GOREMAL_1.GOREMAL_ACTIVITY_DATE BY STUDENT.GOREMAL_1.StuEmail BY STUDENT.SGBSTDN.SGBSTDN_STST_CODE BY STUDENT.SGBSTDN.SGBSTDN_LEVL_CODE BY STUDENT.SGBSTDN.SGBSTDN_STYP_CODE WHERE ( STUDENT.SYVPER1.SYVPER1_SEX EQ &SYVPER1_SEX.(OR(FIND STUDENT.SYVPER1.SYVPER1_SEX IN STUDENT)).Gender. ) AND ( STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_1 EQ &SGBSTDN_MAJR_CODE_1.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_1 IN STUDENT)).Major. ) AND ( STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_CONC_1 EQ &SGBSTDN_MAJR_CODE_CONC_1.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_CONC_1 IN STUDENT)).Concentration. ) AND ( STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_MINR_1 EQ &SGBSTDN_MAJR_CODE_MINR_1.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_MINR_1 IN STUDENT)).Minor. ) AND ( STUDENT.SGBSTDN.SGBSTDN_STST_CODE EQ &SGBSTDN_STST_CODE.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_STST_CODE IN STUDENT)).Status. ) AND ( STUDENT.SGBSTDN.SGBSTDN_LEVL_CODE EQ &SGBSTDN_LEVL_CODE.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_LEVL_CODE IN STUDENT)).Level. ); WHERE STUDENT.SPRIDEN.ChangeInd; ON TABLE SET PAGE-NUM NOLEAD ON TABLE SET ASNAMES ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/endeflt.sty, $ ENDSTYLE END --------------------------------------------
0 ERROR AT OR NEAR LINE 25 IN PROCEDURE ADHOCRQ FOCEXEC * (FOC029) ALL SORT KEYS ARE NOT IN A SINGLE TOP-TO-BOTTOM SEGMENT PATH ---------------------------------------------
TABLE FILE STUDENT BY HIGHEST STUDENT.SPRIDEN.SPRIDEN_ID BY HIGHEST STUDENT.SPRIDEN.FULLNAME_BANNER_FUNCTION BY STUDENT.SPRIDEN.SPRIDEN_FIRST_NAME BY STUDENT.SPRIDEN.SPRIDEN_LAST_NAME BY HIGHEST 1 STUDENT.GOREMAL_1.GOREMAL_ACTIVITY_DATE BY STUDENT.GOREMAL_1.StuEmail BY HIGHEST 1 STUDENT.GOREMAL.GOREMAL_ACTIVITY_DATE BY STUDENT.GOREMAL.HomeEmail BY STUDENT.SGBSTDN.SGBSTDN_STST_CODE BY STUDENT.SGBSTDN.SGBSTDN_LEVL_CODE BY STUDENT.SGBSTDN.SGBSTDN_STYP_CODE WHERE ( STUDENT.SYVPER1.SYVPER1_SEX EQ &SYVPER1_SEX.(OR(FIND STUDENT.SYVPER1.SYVPER1_SEX IN STUDENT)).Gender. ) AND ( STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_1 EQ &SGBSTDN_MAJR_CODE_1.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_1 IN STUDENT)).Major. ) AND ( STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_CONC_1 EQ &SGBSTDN_MAJR_CODE_CONC_1.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_CONC_1 IN STUDENT)).Concentration. ) AND ( STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_MINR_1 EQ &SGBSTDN_MAJR_CODE_MINR_1.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_MAJR_CODE_MINR_1 IN STUDENT)).Minor. ) AND ( STUDENT.SGBSTDN.SGBSTDN_STST_CODE EQ &SGBSTDN_STST_CODE.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_STST_CODE IN STUDENT)).Status. ) AND ( STUDENT.SGBSTDN.SGBSTDN_LEVL_CODE EQ &SGBSTDN_LEVL_CODE.(OR(FIND STUDENT.SGBSTDN.SGBSTDN_LEVL_CODE IN STUDENT)).Level. ); WHERE STUDENT.SPRIDEN.ChangeInd; ON TABLE SET PAGE-NUM NOLEAD ON TABLE SET ASNAMES ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/endeflt.sty, $ ENDSTYLE ENDThis message has been edited. Last edited by: <Kathryn Henning>,
One of the fundamental rules of hierarchical structures (which you're creating with your joins in the metadata) is that the fields you sort on in your select need to follow a single path down through the hierarchy. You can't do a
sort on parent, sort on left child, sort on right child.
It doesn't actually make sense from a mathematical point of view.
Two ways to solve this --
1. Change your joins so that each segment pulls one child along behind it. That is, turn parent, left child, right child into parent, left child, left child's child. Have the joins put all three segments in a straight line instead of in a forking structure.
2. Take two passes at the data. Pass one builds a hold file with the Sort fields available in the parent and left child, then join the resulting hold file with the source again and select the Sort fields available in the right child.
Clear as mud? This is a pretty down-in-the-weeds concept.
Posts: 1012 | Location: At the Mast | Registered: May 17, 2007
since this is data that is to be used over and over again in quite a few applications and I need to get this flattened out structure of most recent email types and addresses all the time would it be better, performancewise, to create a new table in a database using WF with the flattened data in it. Then use this new table/synonym in my applications. I would update the table nightly through report caster. Any other suggestions on how best to do this would be greatly appreciated.
Sounds like you have the right plan worked out already!
If this is for a reporting application, you want to spend the time up front to make the maintenance of code as simple and inexpensive as possible. Flattening out the data structure into a dedicated table for the purpose is an excellent idea.
Posts: 1012 | Location: At the Mast | Registered: May 17, 2007