Resources or help with the basics of CMOD

Previous topic - Next topic

tomondemand

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.

Justin Derrick

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.
Call:  +1-866-533-7742  or  eMail:  jd@justinderrick.com
IBM CMOD Wiki:  https://CMOD.wiki/
FREE IBM CMOD Webinars:  https://CMOD.Training/
IBM CMOD Professional Services: https://CMOD.cloud

Interests: #AIX #Linux #Multiplatforms #DB2 #TSM #SP #Performance #Security #Audits #Customizing #Availability #HA #DR

tomondemand

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!

Justin Derrick

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.
Call:  +1-866-533-7742  or  eMail:  jd@justinderrick.com
IBM CMOD Wiki:  https://CMOD.wiki/
FREE IBM CMOD Webinars:  https://CMOD.Training/
IBM CMOD Professional Services: https://CMOD.cloud

Interests: #AIX #Linux #Multiplatforms #DB2 #TSM #SP #Performance #Security #Audits #Customizing #Availability #HA #DR

tomondemand

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

Justin Derrick

Call:  +1-866-533-7742  or  eMail:  jd@justinderrick.com
IBM CMOD Wiki:  https://CMOD.wiki/
FREE IBM CMOD Webinars:  https://CMOD.Training/
IBM CMOD Professional Services: https://CMOD.cloud

Interests: #AIX #Linux #Multiplatforms #DB2 #TSM #SP #Performance #Security #Audits #Customizing #Availability #HA #DR

Darrell Bryant

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
#IBMi #iSeries #PDF #XML #400 Indexer #ASM

tomondemand

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.

Darrell Bryant

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.
#IBMi #iSeries #PDF #XML #400 Indexer #ASM

tomondemand



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?

Darrell Bryant

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
#IBMi #iSeries #PDF #XML #400 Indexer #ASM

tomondemand

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.

Darrell Bryant

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.
#IBMi #iSeries #PDF #XML #400 Indexer #ASM

tomondemand


tomondemand

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.