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've searched in all the forums for any help on this error and didn't find any. Has anyone had one before? This error occurs only when I add a BY field using defined fields DIVPRODUCT and/or BASEPROD. If I use LINECODE or LOTNUMBER, all is okay. Below is the source:
In this table, the process and management segments are on different paths. Meaning that they have no real realtionship to one another (look in your Describing Data manual). ust printing fields from separate paths will likely yield a nonsensical report (good example: salary history is one segment subordinate to employee id, and education history is another. What kind of report would you end up with is you reported both together?) FOCUS gets upset when you issue WHERE statements against fields in separate paths or you try to sort using fields in separate paths. Or you try to sort using a field from path A when you've printed fields from path B. It's confusing at first, but you get used to it.
Also, every time you define a field, FOCUS associates that field with a segment. If you don't tell it what segment, it assigns it to a segment in which one of the fields used to build the defined field resides (Again, the Describing Data manual). It tries for the lowest segment. Again, using my example, it is possible that it assigned DIVPRODUCT to the PROCESS SEGMENT and BASEPROD to the MGMT segment. In which case you would be printing from one segment and sorting from another.
Whatever is going on, it would seem to be something akin to what I have described. Either that, or a FOCUS bug.
dwf
Posts: 135 | Location: Portland, OR | Registered: March 23, 2005
Thanks for the reply. All the fields look like they are on the same path (same segment). I forgot to mention that I used joins to get the information. It's structured this way:
TABLE1 (history table - multiple entries per line - lot combination) Line (k) Lot (k)
TABLE2 (current info only - 1 row per line - lot combination) Line (k) Lot (k) Process Type Process Code Process ID Management Code
I looked at the code and it was joined as TABLE1 to MULTIPLE TABLE2. When I changed the join to TABLE1 TO UNIQUE TABLE2, I no longer get the error.
Dan
Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10 QA: WebFOCUS 7.6.10, Data Migrator 7.6.10 Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8 Windows 2K3, Tomcat 5.5.17, IIS 6 Usage: HTML, PDF, Excel, Self-serve, BID and MRE
Posts: 197 | Location: Roseville, CA | Registered: January 24, 2005
I'm not sure I have the full picture yet, but when you join unique, the joined to segment becomes what FOCUS calls a unique segment. Functionally, that's as if that segment was part of the segment from which you joined. No possibility of the kind of error you've been getting. Hmmmm. Try joining table2 to multiple table1. From your notes, it looks like that's the correct join structure anyway.
dwf
Posts: 135 | Location: Portland, OR | Registered: March 23, 2005
This may be a shot in the dark but I've seen cases like this as well. When you are in painter and create a define field the way you have you will see it show up at the very bottom of the list. I think that happens because during a join the structure wants to know which segment that define belongs to (therefore showing up in that segment and not at the bottom). I think it is the WITH clause where you would just assign one of those fields used so it knows which segment it belongs. I would pick the segment that is at the lowest level of the data structure and try that.
It is most likely getting confused when trying to determine what/where to do the define.
You haven't mentioned what kind of tables these are. FOCUS databases? SQL DBMS?
If these are SQL DBMS, why not trace the SQL generated by WebFOCUS?
Add this to the code:
-*-- Activate SQL tracing ----------------------------------
SET TRACEOFF = ALL
SET TRACEON = SQLTRANS
SET TRACEON = STMTRACE//CLIENT
SET TRACEON = SQLAGGR//CLIENT
SET TRACESTAMP = OFF
SET TRACEWRAP = 78
SET TRACEUSER = ON
-RUN
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
I tend to agree with Johnny5 on using a WITH in the define, if you are sure your path is truly vertical and all the fields in your print statement are in the 'same path'.
Leah
Posts: 1317 | Location: Council Bluffs, IA | Registered: May 24, 2004
Many thanks for all the people who replied. As per my earlier thread, we were able to get around it with using a join unique. When I get a chance, I will try out the other suggestions posted.
Dan
Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10 QA: WebFOCUS 7.6.10, Data Migrator 7.6.10 Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8 Windows 2K3, Tomcat 5.5.17, IIS 6 Usage: HTML, PDF, Excel, Self-serve, BID and MRE
Posts: 197 | Location: Roseville, CA | Registered: January 24, 2005