Transcript WebFOCUS Debugging Techniques
1
WebFOCUS Debugging Techniques
Nat Poe Copyright 2007, Information Builders. Slide 1
Introduction
“Anything that can go wrong will go wrong.” Murphy’s Law The strangest errors can have the simplest solutions. Finding bugs is an acquired skill based on experience.
Copyright 2007, Information Builders. Slide 2
Contents
Incorrect Output No Report Relational Database Considerations Other Considerations Copyright 2007, Information Builders. Slide 3
4
Incorrect Output
Copyright 2007, Information Builders. Slide 4
Defined Field Problem
Issue 1:
A defined field doesn’t seem to calculate the correct value. Only Non-Sales department employees are to receive a 1% bonus. Except for Sales the bonus is 1% In Sales, there should be no bonus Copyright 2007, Information Builders. Slide 5
Defined Field Problem
(continued)
Issue 1:
A defined field doesn’t seem to calculate the correct value. Only Non-Sales department employees are to receive a 1% bonus. Remove sorting for detail report Bonus is the same from the record above the
SALES
records Copyright 2007, Information Builders. Slide 6
Defined Field Problem Solution
Issue 1:
A defined field doesn’t seem to calculate the correct value. Only Non-Sales department employees are to receive a 1% bonus.
Solution:
Define needs an
ELSE
condition. Always code an
ELSE
condition in an
IF
statement In Sales, bonus is now correct Copyright 2007, Information Builders. Slide 7
Aggregation Problem
Issue 2:
Adding a new field to the report changes the results.
Aggregating Salary by Division Salary is different Copyright 2007, Information Builders. Slide 8
Aggregation Problem
(continued)
Issue 2:
Adding a new field to the report changes the results.
Target a group and run detail reports Some employees are missing Copyright 2007, Information Builders. Slide 9
Aggregation Problem
(continued)
Issue 2:
Adding a new field to the report changes the results.
First report used data from
EMPINFO
Second report used data from
TRNHIST
Copyright 2007, Information Builders. Slide 10
Aggregation Problem
(continued)
Issue 2:
Adding a new field to the report changes the results.
Unspecified defers to the “
ALL
” setting Copyright 2007, Information Builders. Slide 11
Aggregation Problem
(continued)
Issue 2:
Adding a new field to the report changes the results.
To check the ALL setting Copyright 2007, Information Builders. Slide 12
Aggregation Problem
(continued)
Issue 2:
Adding a new field to the report changes the results.
Salaries of employees not taking training were excluded Copyright 2007, Information Builders. Slide 13
Aggregation Problem Solution
Issue 2:
Adding a new field to the report changes the results.
Solution:
Either set
ALL
to
ON
or declare a left outer
JOIN
.
Note:
Inner and Left Outer JOINs override the ALL setting Copyright 2007, Information Builders. Slide 14
MATCH FILE Problem
Issue 3:
Data is appearing with blank values when there should be values. The procedure is using
MATCH FILE
.
Blank departments and names start the report Copyright 2007, Information Builders. Slide 15
MATCH FILE Problem
(continued)
Issue 3:
Data is appearing with blank values when there should be values. The procedure is using
MATCH FILE
.
Extracting all
WE
employees and the matching courses Copyright 2007, Information Builders. Slide 16
MATCH FILE Problem
(continued)
Issue 3:
Data is appearing with blank values when there should be values. The procedure is using
MATCH FILE
.
Department and name listed for first course only Create a report on
CRSHOLD
with no sort fields. Copyright 2007, Information Builders. Slide 17
MATCH FILE Problem
(continued)
Issue 3:
Data is appearing with blank values when there should be values. The procedure is using
MATCH FILE
.
Note:
When using
for the old file and new file,
MATCH
assumes there are duplicate
PIN
values in the old and new files, so it will match the first employee 30 in the old file to the first employee 30 in the new file. It needs a second old file employee 30 to match it to the second new file employee 30 and so forth.
Old file New file Copyright 2007, Information Builders. Slide 18
MATCH FILE Problem Solution
Issue 3:
Data is appearing with blank values when there should be values. The procedure is using
MATCH FILE
.
Solution:
Use
SUM
for the old file.
SUM EMPINFO
fields instead
MATCH
now replicates the data Copyright 2007, Information Builders. Slide 19
MATCH FILE Problem Solution
(continued)
Issue 3:
Data is appearing with blank values when there should be values. The procedure is using
MATCH FILE
.
Solution:
Use
SUM
for the old file.
Report is now correct Copyright 2007, Information Builders. Slide 20
Sort Group Calculation Problem
Issue 4:
Calculation for a subfoot is incorrect for some of the groups. The report is using a
RECAP
with invisible fields.
Incorrect average Correct average Copyright 2007, Information Builders. Slide 21
Sort Group Calculation Problem
(continued)
Issue 4:
Calculation for a subfoot is incorrect for some of the groups. The report is using a
RECAP
with invisible fields.
NOPRINT
fields
RECAP
uses the sum of values for a sort group Copyright 2007, Information Builders. Slide 22
Sort Group Calculation Problem
(continued)
Issue 4:
Calculation for a subfoot is incorrect for some of the groups. The report is using a
RECAP
with invisible fields.
Use
LET
to “deactivate” the
NOPRINT
Note:
LET translates a word or phrase into another word or phrase.
Copyright 2007, Information Builders. Slide 23
Sort Group Calculation Problem
(continued)
Issue 4:
Calculation for a subfoot is incorrect for some of the groups. The report is using a
RECAP
with invisible fields.
NOPRINT
fields will now display RECAP for CA is: 10,730.00 / 10 Copyright 2007, Information Builders. Slide 24
Sort Group Calculation Problem Solution
Issue 4:
Calculation for a subfoot is incorrect for some of the groups. The report is using a
RECAP
with invisible fields.
Solution:
CNTR
should be set to 1 for each course.
Note:
Delete LET when finished debugging!
RECAP for CA is: 10,730.00 / 4 Copyright 2007, Information Builders. Slide 25
Sort Group Calculation Problem Solution
(continued)
Issue 4:
Calculation for a subfoot is incorrect for some of the groups. The report is using a
RECAP
with invisible fields.
Solution: CNTR should be set to 1 for each course. Correct average Copyright 2007, Information Builders. Slide 26
Incorrect Ratio Problem
Issue 5:
Wrong ratio displayed at the end of the report.
Should be between 1.8% and 2.6% Copyright 2007, Information Builders. Slide 27
Incorrect Ratio Problem
(continued)
Issue 5:
Wrong ratio displayed at the end of the report.
Percentages were summed Copyright 2007, Information Builders. Slide 28
Incorrect Ratio Problem Solution
Issue 5:
Wrong ratio displayed at the end of the report.
Solution:
Use Summarize instead of Column totals.
Recalculated the Compute Copyright 2007, Information Builders. Slide 29
Incorrect Column Total Problem
Issue 6:
Percentages don’t add up to 100%.
Where is the other 2%?
Copyright 2007, Information Builders. Slide 30
Incorrect Column Total Problem
(continued)
Issue 6:
Percentages don’t add up to 100%.
Integer field Format changed to D6.1% for PCT of STAFF_CNTR Copyright 2007, Information Builders. Slide 31
Incorrect Total Problem
(continued)
Issue 6:
Percentages don’t add up to 100%.
Note:
The percent of total was calculated as an integer value, which truncates the decimal portion of a number. The result is then changed to the decimal format.
Copyright 2007, Information Builders. Slide 32
Incorrect Total Problem Fixed
Issue 6:
Percentages don’t add up to 100%.
Solution:
Change the format of the counter to a decimal number.
Counter changed to a floating decimal format Copyright 2007, Information Builders. Slide 33
Incorrect Output Review
Isolate the Problem When aggregating data, look at some or all of the detail.
Display data without sort fields.
Check the temporary field expression syntax.
Display
NOPRINT
fields.
A different numeric format could change the results.
Common Remedies With
IF
…THEN…, always To control the handling of short path records, use: The
SET ALL
Declare
Inner
code an
ELSE
or
Left Outer
too.
command for an
Unspecified JOIN
.
in the
JOIN
component.
In
MATCH FILE
Use
Summarize
use
SUM
for the
Old
file to replicate data in the
New
for column totals and
Recompute
for subtotals to recalculate computed values in summary lines.
file.
Don’t use Integer fields when decimal results are needed in calculations.
Copyright 2007, Information Builders. Slide 34
Incorrect Output Review
(continued) Helpful Debugging Commands To display a setting: ? SET setting
Note:
Use
ALL.
to display the ALL setting.
To “disable” NOPRINT:
LET NOPRINT =
Copyright 2007, Information Builders. Slide 35
36
No Report
Copyright 2007, Information Builders. Slide 36
Multi-path Problem
Issue 7:
Path error message occurs when running a report.
Note:
Report is sorted by SITE, FULLNAME, and COURSESTART.
Error number Copyright 2007, Information Builders. Slide 37
Multi-path Problem
(continued)
Issue 7:
Path error message occurs when running a report.
Add an Other component Query the error Detailed message Copyright 2007, Information Builders. Slide 38
Multi-path Problem
(continued)
Issue 7:
Path error message occurs when running a report.
Delete the Other component
Note:
With the double arrowheads (
- >>
), the Reporting Server assumes multiple sites exist for each employee with an independent number of course start dates for each employee.
Copyright 2007, Information Builders. Slide 39
Multi-path Problem Solution
Issue 7:
Path error message occurs when running a report.
Solution:
Since Site is unique, specify a single path.
Changed to a single path Copyright 2007, Information Builders. Slide 40
No Data Selected
Issue 8:
No data appears in a report when a selection statement is added.
No selection statements Some states exceed 5,000 Copyright 2007, Information Builders. Slide 41
No Data Selected
(continued)
Issue 8:
No data appears in a report when a selection statement is added.
Selection statement added Copyright 2007, Information Builders. Slide 42
No Data Selected Solution
Issue 8:
No data appears in a report when a selection statement is added.
Solution:
Screen for aggregated values.
Copyright 2007, Information Builders. Slide 43
Column Notation Problem
Issue 9:
Changing a field format loses all data for a report.
No data when the Avg Salary formats were changed Copyright 2007, Information Builders. Slide 44
Column Notation Problem
(continued)
Issue 9:
Changing a field format loses all data for a report.
Multi-set request Column notation to avoid duplicate field names
Note:
Report is OK.
Copyright 2007, Information Builders. Slide 45
Column Notation Problem
(continued)
Issue 9:
Changing a field format loses all data for a report.
Both average salary formats were changed to whole numbers Copyright 2007, Information Builders. Slide 46
Column Notation Problem
(continued)
Issue 9:
Changing a field format loses all data for a report.
There are now two columns: C1 – Original Format C2 – New Format C3 – Original Format C4 – New Format Copyright 2007, Information Builders. Slide 47
Column Notation Problem Solution
Issue 9:
Changing a field format loses all data for a report.
Solution:
Define fields with the desired format and use them instead.
Unique names for selection Copyright 2007, Information Builders. Slide 48
Column Notation Problem Solution
(continued)
Issue 9:
Changing a field format loses all data for a report.
Solution:
Define fields with the desired format and use them instead.
Copyright 2007, Information Builders. Slide 49
Including a Non-MR Procedure
Issue 10:
A Standard Report in Managed Reporting is trying to include a procedure on the Report Server.
Web Server WebFOCUS Client (Managed Reporting)
WebFOCUS Client can’t find the procedure Copyright 2007, Information Builders. Slide 50
Including a Non-MR Procedure
(continued)
Issue 10:
A Standard Report in Managed Reporting is trying to include a procedure on the Report Server.
Web Server
debug_10
resides on the WebFOCUS Client
WebFOCUS Client (Managed Reporting) Data Source
debug_01s
resides on the WebFOCUS Report Server
WebFOCUS
Report Server
Copyright 2007, Information Builders. Slide 51
Including a Non-MR Procedure Solution
Issue 10:
A Standard Report in Managed Reporting is trying to include a procedure on the Report Server.
Solution:
Use –MRNOEDIT to pass commands “as is” to the Report Server.
Copyright 2007, Information Builders. Slide 52
No Report Review
Check to see if there are any error messages.
Usually fixing the first one clears up subsequent error messages.
If there are no error messages, check your selection criteria.
Common Remedies Don’t use sort fields from independent paths.
Use
WHERE TOTAL
to screen on aggregated data.
Avoid column notation by creating “shadow” fields.
For Managed Reporting, use
–MRNOEDIT
to pass commands directly to the Report Server.
Copyright 2007, Information Builders. Slide 53
No Report Review
(continued) Helpful Commands: To display additional information for an error message ? error_nbr To pass Managed Report commands to the Report Server
-MRNOEDIT BEGIN
command …
-MRNOEDIT END
Copyright 2007, Information Builders. Slide 54
55
Relational Database Considerations
Copyright 2007, Information Builders. Slide 55
RDBMS Response Time Problem
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
Sorted by length of Category description Copyright 2007, Information Builders. Slide 56
RDBMS Response Time Problem
(continued)
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
WebFOCUS aggregated the data Copyright 2007, Information Builders. Slide 57
RDBMS Response Time Problem
(continued)
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
Text editor to create tracing statements Copyright 2007, Information Builders. Slide 58
RDBMS Response Time Problem
(continued)
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
Command
SET TRACEOFF=ALL SET TRACEON=SQLAGGR… SET TRACEON=STMTRACE… SET TRACEUSER=CLIENT SET XRERTIEVAL = OFF
Purpose Turn off all current traces.
Show if RDBMS will aggregate the data.
Show SQL code generated.
Display traces in a Web page.
Do not execute the procedure.
Copyright 2007, Information Builders. Slide 59
RDBMS Response Time Problem
(continued)
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
WebFOCUS will have to aggregate the data Copyright 2007, Information Builders. Slide 60
RDBMS Response Time Problem
(continued)
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
CATLEN
is used as a sort field and cannot be converted to SQL code Copyright 2007, Information Builders. Slide 61
RDBMS Response Time Problem Solution
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
Solution:
Compute
CATLEN
and use
Order Report By
(
BY TOTAL
) Order report by column Copyright 2007, Information Builders. Slide 62
RDBMS Response Time Problem Solution
(continued)
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
Solution:
Compute
CATLEN
and use
Order Report By
(
BY TOTAL
)
RDBMS will
aggregate the data Copyright 2007, Information Builders. Slide 63
RDBMS Response Time Problem Solution
(continued)
Issue 11:
A report is taking a long time to run. Data is retrieved from a relational database and aggregated into product categories.
Solution:
Compute
CATLEN
and use
Order Report By
(
BY TOTAL
) RDBMS aggregated the data Copyright 2007, Information Builders. Slide 64
Relational Database Considerations Review
When the RDBMS cannot aggregate the data: Individual rows are returned to the WebFOCUS Report Server from the RDBMS.
WebFOCUS Report Server will have to aggregate the data.
Processing is slowed down. Common Remedies Turn on traces to determine if the RDBMS is to aggregate the data.
Use
SET XRETRIEVAL=OFF
to not retrieve data when tracing.
Avoid defining sort fields that will turn off aggregation; if possible, compute them instead.
For more information, see:
Course 402
–
Reporting Concepts and Efficiencies for Relational Databases
Copyright 2007, Information Builders. Slide 65
66
Other Considerations
Copyright 2007, Information Builders. Slide 66
Parameterized Reports
Question:
How can I display the value of variables?
Answer A:
Use &ECHO and SET XRETRIEVAL Copyright 2007, Information Builders. Slide 67
Parameterized Reports
(continued)
Question:
How can I display the value of just the variables?
Answer B:
Use -? and -EXIT Copyright 2007, Information Builders. Slide 68
Parameterized Reports
(continued)
Review
To control the display of Dialogue Manager variables:
-SET &ECHO = OFF | ON | ALL;
To display of Dialogue Manager variables:
-? & [ & ]
variable
To control creating a report or not:
SET XRETRIEVAL ON | OFF
To terminate a procedure:
-EXIT
Copyright 2007, Information Builders. Slide 69
Using -EXIT
Note:
Except for debugging purposes, avoid using
–EXIT
: • ReportCaster may not work properly.
• A procedure that is included with a
–EXIT
will terminate the procedure invoking it.
Copyright 2007, Information Builders. Slide 70
Profiles
Question:
Why does a procedure work for one user, but not another?
Answer A:
Check for Profiles Profiles are files that contain commands. Can contain any valid report server core language command.
Executed every time a procedure is run in
WebFOCUS
.
Three types of profiles: Global Group
Note:
Never assume a setting; establish it in your procedure.
Executed after the global profile Can override commands found in the global profile User Executed after the group profile Can override commands in the group profile Commands in a procedure override commands in a profile.
Copyright 2007, Information Builders. Slide 71
Application Namespace
Question:
Why does a procedure work for one user, but not another?
Answer B:
Application Namespace
Application Namespace
, commonly referred to as
APP PATH
, is the search sequence used to locate the metadata and procedures needed by the WebFOCUS Report Server. Copyright 2007, Information Builders. Slide 72
Application Namespace
(continued)
Question:
How can I display the APP path search order?
Answer:
Use APP SHOWPATH Copyright 2007, Information Builders. Slide 73
WHENCE Command
Question:
How do I know from which application the metadata is being used?
Answer:
Use the WHENCE command EMPINFO.MAS in the DEBUG application will be used To display from which application a file will be utilized: WHENCE filename FOCEXEC
| MASTER | ACCESS | FOCSTYLE | FOCUS
Copyright 2007, Information Builders. Slide 74
Additional Help
Question:
What can I do when all else fails?
Answer:
WebFOCUS Development Center http://www.informationbuilders.com/support/wf_dev_center.html
Focal Point is a free online Q&A Bulletin Board Copyright 2007, Information Builders. Slide 75
Review
Debugging is not an exact science.
Never assume anything.
Try to isolate the problem and work from there.
Sometimes the strangest errors have the simplest solutions.
Look at what is and not what you are expecting.
Debugging is an acquired skill based on experience.
Learn as much as possible about the product and tools.
The more you know, the more quickly you will be able solve problems. Copyright 2007, Information Builders. Slide 76