There are two problems that I am at a loss for finding a solution with CMOD. One is that a user is complaining that when they want to view a PDF with on demand, it is showing the wrong information for the third field. I see in the forum you referring to setting these type of things up, but do not see where that happens. If you could point me in the right direction or give me some basic help I would be grateful. See attachments.
Second, is there some type of log on the IBM i for on demand to show what is happening when a report fails? I have a report that does not get archived. It is not on ONDERR. I can see in my program that I am pushing the report to ONDEMAND out queue. I see data base files in QUSROND but not sure if any can be useful to me.
Thanks. Any help would be appreciated. We have users waiting for months on tickets, and I just got assigned to them with no training or experience with On Demand.
Hi Tom.
If the wrong field data is showing up in a specific column of the search results (the 'hit list'), then you likely have a mapping issue at the Folder level.
Folders are a way of abstracting the complex data defined at the Application Group level (database field names) and presenting a human-friendly interface to end users. A database field may be called "rdate" at the Application Group level, but defined as "Report Date" inside the folder. Inside the folder definition, you must map App Group fields to Folder fields -- and from what you describe, it sounds like the wrong field (from the Application Group) is mapped to the folder field. If you have multiple Application Groups mapped to a folder, you'll need to investigate each of the mappings to find the one that is 'bad'.
Second, to find more diagnostic info about failed loads, you need to log into the CMOD Client and access the System Log folder. Search for a severity of 'error' to find all of the errors being recorded in CMOD.
-JD.
Thanks for you quick reply. But on number 1, how the heck is it pulling data off a report based on what is defined in Field Mapping. I just see a field defined, and it follows through and somehow auto magically strips data off the report. I see nowhere to define where that data is on the report.
On the second question, the system log just shows a log on and log off by the user.
Thanks!
Ah, I misunderstood the problem. I thought the data in the 'hitlist' was showing up in the wrong column.
If you have an indexing issue, that's more problematic.
Indexing happens at the Application Level, on the Index Parameters tab. Those are the instructions for getting the data from the PDF file, that will be inserted into the database, which users will search, and see the results in the hitlist box.
If you're not getting the data that end users want, then your indexing parameters need to change, and for that, your best bet is to go through the Indexing Reference.
https://www.ibm.com/docs/en/cmofm/10.5.0?topic=ondemand-pdf-indexer
Good luck!
-JD.
Is this what I should be looking at?
(Applications/indexer information/Details button)
I see the wrong field in question, entity, but have no idea what the parameters mean.
All of it:
CC=YES
CCTYPE=A
CONVERT=NO
CPGID=37
MCF2REF=CPCS
TRC=NO
FILEFORMAT=RECORD
TRIGGER1=*,1,X'F1',(TYPE=GROUP) /* 1 */
TRIGGER2=*,*,X'61F2F0',(TYPE=GROUP,RECORDRANGE=(1,4)) /* /20 */
TRIGGER3=*,23,X'4B',(TYPE=GROUP,RECORDRANGE=(2,6)) /* . */
FIELD2=0,-4,9,(TRIGGER=2,BASE=TRIGGER)
FIELD3=4,-12,35,(TRIGGER=3,BASE=TRIGGER)
INDEX2=X'A8858199',FIELD2,(TYPE=GROUP,BREAK=YES) /* year */
INDEX3=X'8595A389A3A8',FIELD3,(TYPE=GROUP,BREAK=YES) /* entity */
DCFPAGENAMES=NO
UNIQUEBNGS=YES
IMAGEOUT=ASIS
INDEXOBJ=GROUP
INDEXSTARTBY=1
INSERTIMM=NO
RESTYPE=NONE
DOCTYPE=AFP
Start here and reply back with any questions:
https://www.ibm.com/docs/en/cmofm/10.5.0?topic=parameters-index
-JD.
You specifically want to read the section on the 400 Indexer, which is used on IBM i.
https://www.ibm.com/docs/en/cmofi/7.5.0?topic=ondemand-400-indexer
Archiving spooled files is done using an output queue monitor. This documentation should be helpful as a starting point.
https://www.ibm.com/docs/en/cmofi/7.5.0?topic=ondemand-loading-spooled-file-data
Thank you. Still struggling with how stuff gets indexed. I am sure a one sentence answer from a former employee who did this could clear it up for me.
Looking only at the relevant indexing information:
TRIGGER1=*,1,X'F1',(TYPE=GROUP) /* 1 */
TRIGGER2=*,*,X'61F2F0',(TYPE=GROUP,RECORDRANGE=(1,4)) /* /20 */
TRIGGER3=*,23,X'4B',(TYPE=GROUP,RECORDRANGE=(2,6)) /* . */
FIELD2=0,-4,9,(TRIGGER=2,BASE=TRIGGER)
FIELD3=4,-12,35,(TRIGGER=3,BASE=TRIGGER)
INDEX2=X'A8858199',FIELD2,(TYPE=GROUP,BREAK=YES) /* year */
INDEX3=X'8595A389A3A8',FIELD3,(TYPE=GROUP,BREAK=YES) /* entity */
Trigger 1 is carriage control (hex F1) for start of new page. Once that is found by the indexer the other triggers will be searched for. (Hex F1 is at the top of every page, it is not the ideal trigger 1, but that is a topic for another day)
Trigger 2 is the string '/20' (w/o quotes). It is searched for in any row and column (that is the meaning of *,*) in a range of records from 1 to 4 rows below trigger 1. Once it is found searching stops (i.e. if it exists more than once in those rows, only the first one is used)
Trigger 2 is the period character. It is searched for in column 23 in a range of records from 2 to 6 rows below trigger 1. Once it is found searching stops (i.e. if it exists more than once in those rows, only the first one is used)
Field 2 is located using trigger 2. It is located relative to trigger 2 (that is the meaning of BASE=TRIGGER). It is located on the same row as trigger 2, and 4 columns before the start of trigger 2. (That is the 0,-4 on the parameter). The length of the field is 9 characters.
Field 3 is located using trigger 3. It is located relative to trigger 3. It is located 4 rows below trigger 3, and 12 columns before the start of trigger 3. (That is the 4,-12 on the parameter). The length of the field is 35 characters.
Index 2 is composed of the contents of field 2. The field name is year. The break equal YES means that if this value changes a new document is started.
Index 3 is composed of the contents of field 3. The field name is entity. The break equal YES means that if this value changes a new document is started.
If the report layout was changed and the location of the field(s) moved on the page, the indexer parameter must be updated to capture the data at its new location.
I hope this quick overview helps.
It does and thank you for taking the time to do that. Searching through the manuals, I discovered some of that. Trigger 2 makes sense, it is looking for fiscal year. But Trigger3 (you accidently called it 2), is searching for a period, and this is in an address. It always stops on the CSZ line and uses that instead of the name. Even if there is a period in the name and first address. Here is a good example,
Innovative Ag Services Co.
2010 S Main St.
Monticello ,IA 52310
It indexes the City State and zip. In this example there is a period. But in others, no period exists and it still shows city state zip.
I have tried moving the record range around, but end up with blanks then. Also searching for a blank, and it went way down to the bottom and picked up an amount.
QUESTION: Do you use the spool file entry to determine the lines in the Recordrange?
My apologies for the typo.
You use the Print Text (PRTTXTOND) command to determine how the spooled file appears to the 400 indexer.
If you use the graphical indexer in the OnDemand Administrator client to view a spooled file and create / modify indexer parameters, Print Text is run in the background to create the sample data file which is then automatically downloaded to the PC. Retrieving sample data from the Administrator client requires having IBM i Access Client Solutions and the accompanying Windows Application Package installed. If you don't have those installed or have trouble with them, you can use the Print Text command with the Stream file (STMF) parameter to send the output to a stream file on your IBM i system. That steam file can then be downloaded to the PC and used as input to the graphical indexer.
The quarterly OnDemand Newsletter has lots of great information about OnDemand on all platforms. You can find all previous newsletters at:
https://www.ibm.com/support/pages/node/628001
The 3rd quarter 2016 newsletter, on page 5, has a tip entitled 'Creating sample data for a complete spooled file' which contains a good explanation of using the Print Text command and manually downloading the output to the PC.
If you would like to receive the newsletters as they come out, send me a note. darrell.bryant@unicomsi.com
Thank you. I have a on demand application that appears to be setup correctly, comparing the setup to another functioning one. It will not go to on demand though. The system log does not show anything other than the log on and log off. Is there a file somewhere that I can query that shows more detail? Or is there somewhere that explains the purpose of the files? Thank you.
If the output queue monitor moves a spooled file to the error output queue in ready status, that means the application group and / or application definition were not found.
If the spooled file is moved to the error output queue in held status, you should have a system log message 88 containing the error, and probably some joblogs.
These are the type of questions that should go to support. I suggest you work with your management to get back into a supported status so you can get the help you need in a timely fashion.
Agree, thanks for the follow up.
A co-worker is telling me to do a walk through here is her text: "For Fayette, if you go into the OnDemand application and do update (right click and select update) with one of these reports on hold, you can specify the library and queue, you can 'walk' through the fields to see what the program is finding for the fields--especially field 3." I asked her how you do this with no response back. It appears she is saying you can see the data coming through on demand somehow, yet see nothing that I see enables a mode like that.
They are trying to explain how to look at sample data in the Administrator Client. Open the Administrator Client. From the list of Applications, right click and select update on the application in question. Go to the Indexer Information tab, click on Modify with Sample Data. You can either download a spooled file at that point, or use sample data previously downloaded (see previous advice on manually downloading sample spooled data). On the tool bar there is an icon with red, blue, and green horizontal lines. Click that to toggle to Display mode. The triggers on the page are boxed in red, the fields boxed in blue. You can then scroll page by page to see where the problem is.
Also, if you click on the icon to the right of the Display/Add mode icon, that will pop up a dialog where you can generate a listing of Field Values found in the sample data. (Click Field Values, click All Pages, click the Create button, then the View button). Look thru the file for missing field values.
I hope this helps,
This helps immensely, I cannot thank you enough.
I have fixed my FIRST OnDemand problem.
The problem was that this, FIELD3=4,-12,35,(TRIGGER=3,BASE=TRIGGER) instructed to go 4 lines down after finding the '.' (which is an amount, not part of the address). But it only needed to go 2 lines down. This tool will help a lot in the future.