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.
We upgraded to 7.1.4 and we now have one of our procedures that fails when run as a scheduled job from report caster. If we open the procedure on the server and run it it works just fine. When run as a scheduled job it fails with the following problems:
Executing focexec.
DUPLICATES IN JOIN FROM FIELD : SDCMREPORT/061706674921
DUPLICATES IN JOIN FROM FIELD : SDCMREPORT/061706674921
DUPLICATES IN JOIN FROM FIELD : SDCMREPORT/061706674921
No report to distribute.
It appears our Join will not function when run from the report caster schedule.
Has anyone else experienced this or should I just log it with IBI?
Thanks for any input in advance.
Rayden.This message has been edited. Last edited by: Kerry,
Web Focus version 7.1.4 Server Windows Server 2003
but Kerry, that solution doesn't make any sense to me. You've changed a 1-many join to a 1-1 join. Are you saying that Caster makes all joins 1-many? ARe you saying that Caster can't handle 1-many joins?
In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003
I just spoke with the Technical Support Representative who handled the case regarding the solution. The case has a very similar scenario with Rayden's, and the customer provided the solution that works for her.
If you have questions regarding the solution, please use the Feedback form at the bottom of the Symptom/Problem/Solution page to submit your questions/comments and then we can review the page.
Hope that helps.
Cheers,
Kerry
Kerry Zhan Focal Point Moderator Information Builders, Inc.
Posts: 1948 | Location: New York | Registered: November 16, 2004
Will this work on a "LEFT OUTER" join with a "To MULTIPLE"?
ex.:
JOIN
LEFT_OUTER
BASEPOP.EMPLID
IN BASEPOP
TO MULTIPLE ACCOMP.EMPLID
IN ACCOMP
AS J2
END
If I understand the articl correctly, I need to include a
SET ALL = ON
and change my join to:
JOIN
BASEPOP.EMPLID
IN BASEPOP
TO ACCOMP.EMPLID
IN ACCOMP
AS J2
END
However when I run my query, for the instances where there were two records on the right side of the left outer join, I am getting a duplicate of the first record from the right side, and don't get the second record from the right side.
"(FOC1072) DUPLICATES IN JOIN 'FROM' FIELD %1%2%3%4 Duplicates in the FROM field are not allowed if the JOIN is to a FIX, COM or VSAM/ESDS file and the 'TO' file has more than one non-occurs segment."
What kind of files are you joining from and to?
Verify whether the duplication also arises when run on the server (and the difference is in whether foc1072 is issued for the identical data) -- or perhaps the duplication only occurs when your procedure is run in RC (in which case the issue really lies somewhere upstream).
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
I suggest you post the code -- at least the table requests that produce the two HOLD files you are joining; the join; and the table request that fails.
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
This is the code that works in Run/Run Deferred, but fails in Report Caster:
SET ASNAMES = ON
SET ALL = ON
-SET &TODAY = DATECVT(&YYMD, 'I8YYMD', 'YYMD');
-SET &LSTBOM = DATEMOV(DATEADD(&TODAY,'M',-1), 'BOM');
-SET &LSTEOM = DATEMOV(DATEADD(&TODAY,'M',-1), 'EOM');
-SET &LSTXII = &LSTBOM+15;
-* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-* BASE POPULATION
-* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
JOIN CLEAR *
JOIN
JOB_RPT.EMPLID
IN JOB_RPT TO EMPLOYEES_RPT.EMPLID
IN EMPLOYEES_RPT AS J1
END
DEFINE FILE JOB_RPT
SSN4/A4 = SUBSTR ( 20 , JOB_RPT.NATIONAL_ID , 6 , 10 , 4 , SSN4 ) ;
TRMCRITRA/A7 = JOB_RPT.ACTION ||'/'|JOB_RPT.ACTION_REASON;
END
TABLE FILE JOB_RPT
PRINT
SSN4 AS 'SSN4'
NATIONAL_ID AS 'NATIONAL_ID'
BY EMPLID AS 'EMPLID'
WHERE (JOB_RPT.EFFDT GE &LSTXII ) AND (JOB_RPT.EFFDT LE &LSTEOM )
AND (JOB_RPT.EFFSEQ_LASTIND_LM EQ 'Y' )
WHERE JOB_RPT.PER_TYPE NE 'G'
ON TABLE HOLD AS 'BASEPOP'
END
-* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-* ACCOMPLISHMENT DATA
-* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
JOIN CLEAR *
JOIN
ACCOMPLISHMENTS.ACCOMPLISHMENT
IN ACCOMPLISHMENTS TO ACCOMP_TBL.ACCOMPLISHMENT
IN ACCOMP_TBL
AS J1
END
DEFINE FILE ACCOMPLISHMENTS
ISUDT1/I8MDYY = DATECVT ( ACCOMPLISHMENTS.DT_ISSUED , 'MDYY' , 'I8MDYY' ) ;
ISUDT2/A15 = EDIT ( ISUDT1 , '99/99/9999' ) ;
END
TABLE FILE ACCOMPLISHMENTS
PRINT
ACCOMP_TBL.ACCOMPLISHMENT AS 'CODE'
ACCOMP_TBL.DESCR AS 'DESCR'
ACCOMP_TBL.DESCRSHORT AS 'DESCRSHORT'
ACCOMPLISHMENTS.SCHOOL AS 'SCHOOL'
ISUDT2 AS 'DT_ISSUED'
BY ACCOMPLISHMENTS.EMPLID AS 'EMPLID'
WHERE ACCOMP_TBL.ACCOMP_CATEGORY EQ 'DEG'
WHERE ACCOMP_TBL.DESCR NE ''
WHERE ACCOMPLISHMENTS.GRADUATE_INDICATOR EQ 'Y'
ON TABLE HOLD AS 'ACCOMP'
END
-* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-* JOIN DATA BACK TOGETHER
-* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
JOIN CLEAR *
JOIN
LEFT_OUTER
BASEPOP.EMPLID
IN BASEPOP
TO MULTIPLE ACCOMP.EMPLID
IN ACCOMP
AS J2
END
TABLE FILE BASEPOP
PRINT
BASEPOP.SSN4 AS 'SSN4'
BASEPOP.EMPLID AS 'Empl ID'
BASEPOP.NATIONAL_ID AS 'NID'
ACCOMP.CODE AS 'Code'
ACCOMP.DESCR AS 'Descr'
ACCOMP.DESCRSHORT AS 'Short Desc'
ACCOMP.SCHOOL AS 'School'
ACCOMP.DT_ISSUED AS 'Issue Date'
WHERE ACCOMP.DESCR NE ''
ON TABLE PCHOLD FORMAT TABT
END
For starters, try terminating all of your WHERE statements with a semicolon ( ; ) - this is especially important for compound WHERE's. I know it works sometimes but it goes against documentation. There are a few different issues which causes RC not to work when it works otherwise. For example the use of -EXIT causes RC problems but otherwise works. Some of these issues are documented in Forums posts and I believe there are a few recommendations in documentation as well.This message has been edited. Last edited by: Darin Lee,
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
Verify whether or not you actually have duplication in the 'from' hold file, BASEPOP:
JOIN CLEAR *
TABLE FILE BASEPOP
WRITE CNT.SSN4
BY EMPLID
PRINT *
BY EMPLID
WHERE TOTAL CNT.SSN4 GT 1 ;
END
Add that after the HOLD AS BASEPOP request, and run both ways (scheduled in RC and directly on server)
- - -
If there is duplication, tighten your selection logic, and/or use SUM FST., to ensure uniqueness -- or else make the second hold FORMAT FOCUS INDEX EMPLID to avoid the limitations inherent in a flat-to-flat join.
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
TABLE FILE JOB_RPT
PRINT
SSN4 AS 'SSN4'
NATIONAL_ID AS 'NATIONAL_ID'
BY EMPLID AS 'EMPLID'
WHERE (JOB_RPT.EFFDT GE &LSTXII ) AND (JOB_RPT.EFFDT LE &LSTEOM )
AND (JOB_RPT.EFFSEQ_LASTIND_LM EQ 'Y' )
WHERE JOB_RPT.PER_TYPE NE 'G'
ON TABLE HOLD AS 'BASEPOP'
END
If NATIONAL_ID is an attribute of EMPLID, just change PRINT to SUM.
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
If there is duplication, tighten your selection logic, and/or use SUM FST., to ensure uniqueness -- or else make the second hold FORMAT FOCUS INDEX EMPLID to avoid the limitations inherent in a flat-to-flat join.
Does the logic has to be 1:1 or 1:n for report caster to work? I have 2 hold files that are n:1 or n:0 that my first file consists of all outstanding invoices(detail) per salesrep/customer, and my 2nd file has the total un-applied payments per customer. A customer has one or more salesreps and may or may not have payments during a report period. So, I don't have the ideal situation for report caster. This is big supprise to me that the users calling directly from the server have no complains and field salespeople can not get their weekly email reports from the same fex.
Please help.
Hua
Developer Studio 7.6.11 AS400 - V5R4 HTML,PDF,XLS
Posts: 305 | Location: Winnipeg,MB | Registered: May 12, 2008
My problem is resolved in either of the following ways: 1) I removed "MULTIPLE" in JOIN-to file as sugguested by the Techsupport link above.
2) I used DB_LOOKUP into my 2nd hold file instead of JOIN.
It seemed to me that either the report server is too ignorant to the join errors or the report caster is too sensitive. I just remembered I had a similar incident on this error:
quote:
FOC32456) ANSI-COMPLIANCE ENFORCED BY CHANGING OUTER JOIN TO INNER A left outer join in the root-path of an inner join has been changed into an inner join.
Thanks.
Hua
Developer Studio 7.6.11 AS400 - V5R4 HTML,PDF,XLS
Posts: 305 | Location: Winnipeg,MB | Registered: May 12, 2008