srxses This program is used to grab files from Prestige/DewarView/Sypress editorial systems. It polls the input queue for files to send. When it finds a entry, it grabs the file from Database and sends it according to the destination specified. Only one database can be scavenged in this way but if you have split databases, there can be several copies of the program all pointing to different databases/banks determined by their own (different) parameter file. Optionally the queue can be a printer queue. Note that this in a different format to the normal text files, so pls take care. Use the '-p' input switch to specify. This will grab the file and send it to a Fip destination specified in the 'destprt:' parameter in the parameter file ('sesprt' by default). This destination should be added to tables/sys/USERS. It can then be processed by ippsc and/or ipprint to format and send to the printer. In this case all routing, delay and limit are ignored. Optionally the program can be used to scan a delay field in the database for files that need to be sent out at a specified time and date. The '-x' input switch is used to specify which 'dirstamp' field to track. Normal running would be to have 2 or 3 copies of this program, one for general text out, one for printing and an optional third for checking a delay field. A parameter file for the data is held in tables/xses and defaults to XSES for Dewar and XPRESTIGE for Prestige. The Translation parameter file has the syntax : note for most parameters - passwords, table and column names - case is sometimes important so keep uppercase upper ; comment line Required keywords : dbname:(name of database) dbname:MimDewar dbdatabase:(name of database) dbdatabase:GNW Use this ONLY for Sybase or MSQL where we need to chg database after logging on dbuser: (User logon) dbuser:DEWAR dbpwd: (user password) dbpwd:dribbleOG dbtbl: (table name where data resides) dbtbl:EDMASTER default is EDMASTER for Dewar and story for Prestige fiphdr: fiphdr:(2 letter FipHdr code) (subparameters) fiphdr:SN field:DOS_NAME size:11 case:lower fiphdr:DF data:DATABASE SubParameters can be : either field:(SES Column name) or data:(fixed string or variable data in FipSeq) size:(number) - maximum length of field on output case:(lower|upper) - force case of output data filename: - flag this is the filename for magic DOT Always specify a size for Mimer.7.1 - defaults is 50 Certain FipHdr fields have special meaning and so should not be used. Generally please do not use fields begining S* or D* or X* and be careful and check the OUTPUT program which fields it uses before deciding. We advise fields starting Q* (which is ALWAYS a User definable) or N* Fip Fields which need to be filled in are (mandatory are marked with a *) : ** SN - actual filename defaults to DOS_NAME ** SC - source chrset for XCHG defaults to ASCII ** SU - source or Agency or Publication name defaults to SES SA - Source subaddress such as Logon default - ignored ** DU - destination as in the sys/USERS file default: see below DA - Destination subaddress such as Logon default - ignored This is required when sending to POST for Syndication or MailBox etc DE - Delay until (must be a date field) default - ignored DL - Delay ignored AFTER (must be a date field) default - ignored DF - Format for the output program defaults to XSES As used by ipedsys, ipout, ipgtwy, ip2ses etc DB - Broadcast formatfile for ipbdcast default: ignored PR - Story Priority defaults to 3 Optional keywords : filename: New filename for output file in FipSeq outfmt: Name for the output format field, DF default: XSES chrset: Name of the SC or Source chrset for xchgs default: ASCII doneq: Done queue for original files once sent - or 'delete' to zap If this does NOT start with a '/', it is assumed under the DATA PATH (see -d Input switch, which defaults to spool/ses) default doneq: done errorq: Error queue for original files that CANNOT be sent If this does NOT start with a '/', it is assumed under the DATA PATH (see -d Input switch, which defaults to spool/ses) default errorq: error defdest: Default Destination for files if nothing is found in the 'Routing' field - the Fip DU field as per sys/USERS The default default is 'xses' force: Force the Destination to ALWAYS go to this destination (DU) destprt: Default Destination for printer files. default: sesprt nohdr: Do NOT add a Fip style header on the output file. def: add hdr routefile: name of routing file in tables/xses default: none before: FipSeq string to be added BEFORE any data default: none after: FipSeq string to be added AFTER any data default: none newDU: Use this 2 letter FipHdr field as the default FipHdr field DU destination field for routing. This should be either an entry in the tables/sys/USERS file or an entry in the 'routefile' as described above and below. chkexists: Full Path/file or queuename chktimeout: Timeout for the 'chkexists' in seconds CHKEXISTS is a complete pathname of either a standing file or a queue. This is used to check that NFS drives are actually mounted BEFORE writing new files. The program checks for (default) 10 secs before aborting that file and continuing on with the next. Change the timeout period with 'chktimeout:' NOTE THAT PROCESSING BLOCKS FOR THIS FILE AND WILL BE RETRIED AT LEAST ONCE A MINUTE. eg : chkexists:/data1/nfs/helios/.Desktop CHKTIMEOUT is the timeout for chkexists. Default is 10 seconds. This can be '0' for never timeout or any number. missing-text: Text (in FipSeq) to be inserted when the text file is missing default:none missing-text:\n ** Please contact Systems on x3300 - Missing Text **\n trace-file: (TraceFile in FipSeq) default: none Stuff all Sql used and the results into this Trace file. The folder MUST exist beforehand. eg trace-file:/fip/log/sql/NEWS_EXTRACT.\$d For Dewar, if using the -F to poll a second table and that table is NOT called 'fip', change with 'dewar-poll-table' eg dewar-poll-table:pollme For Prestige (not Prestige Library Extract) poll-queue: database queue-group to poll default:output-wire poll-queue:toap-wire done-queue: database done queue-group for files output in the poll done-queue:done-wire default:sent-wire newEI the FipHdr field containing the default:EI 'story_id'. Note that 'story_id' MUST be extracted. eg newEI:NI fiphdr:NI field:story_id log-line: log message in FipSeq. default: \EI \SN -> \DU For Prestige Library Extract oracle-date-format: Format of the date in 'to_date' style default:dd-mon-yyyy allow-no-edition: This allows requests for extracts specifying only the Pub and PubDate. get-all-story-ids: Replacement sql to be used to select the story-ids for this extract. See below for the default and fuller description. get-each-story-id: Replacement sql to be used to select the data for each story-id extracted from the "get-all-story-ads" See below for the default and fuller description. Default output format field (DF) is XSES Default chrset field (SC) is ASCII Default send queue is spool/2go. A routing file can optionally be specified in tables/xses and has the format : ; ; Routing table for New Edito Sys ; tst yukodests hehe+leplep where the searched-for string is 'tst' and valid destinations cover the rest of the line. These destinations should be in the tables/sys/USERS file. If no default destination is specified (defdest:) and there is nothing in the DU 'Routing' field, or DU has NOT been specified, it will be sent to destination 'xses' which should be in the USERS file. Where sections of FipHdr fields are required or changes to the output style, use keywords : fixed, partial, combie, optional, repeat, newdate and/or style. (see The SysAdmin manual for more information). They are normally specified : fixed:QZ 1234543 partial:QT ST,3,2,U,<,> combie:QY ep|na,(0000000)a option:QE ep,11,7,s repeat:QK XK,-,3 or repeat:QP PK,,4,#X style:QS XN,%.03d repeat:Q7 XC spo=lov newdate:QD hours+3 "\ZY\ZT\ZD" Input Parameters are all optional : -n : name of service default: XSES -d : path to the data files default: spool/ses for Dewar default: /prestige/share/story for Prestige If this does NOT start with a '/', it is assumed under spool. -J : Drive for data files (NT only) default: c for c: This is a single letter -i : Input queue to scroll default: send For Dewar - If this does NOT start with a '/', it is assumed under the DATA PATH (-d) For Prestige - If this does NOT start with a '/', it is assumed under 'spool' For Prestige this is ONLY used for the Library Extract -E -D : Dewar delay dirstamp queue and name default: none If this does NOT start with a '/', it is assumed under the DATA PATH (-d) eg -D dirstamp/delay -l : do NOT log files in default: normal log -L : log eveything default: normal log -o : output queue default: spool/2go If this does NOT start with a '/', it is assumed under spool. -p : Dewar print request queue default: none This expects the files to be in SES printer request format. If this does NOT start with a '/', it is assumed under the DATA PATH (-d). -r : routing file in tables/xses default: none -s : logon and off for each file. default: logon on the first file until logged off by the server -u : owner if not that of the logon default: logon at start -w : Dir Stamp path name default: dirstamp If this does NOT start with a '/', it is assumed under the DATA PATH (-d). To stop the DirStamp : -w"" -X : Time between reconnects when Database is down. def: 10 secs. -Y : Strip leading and trailing spaces from Author/Filename. default: no use this is the two fields are specified as fixed size. -z : parameter file in tables/xses default: same name as -n for name -P : This is a Prestige system default:DewarView -E : This is a Prestige system Library Extract default:DewarView -F : This is a Dewar Polling table default:DewarView -S : display Sql strings and results default: do not Use this to debug errant connections. -y : use sffsleep to pause (fudges Oracle ignoring signals) default: no -v : print version number and exit **Examples for SYSTEM file : ; Normal extractions xses local ipxsesora -d/ses/network/txtfiles ; delay tracking delay local ipxsesora -d/ses/network/txtfiles -D/ses/network/dirstamp/delay ; Printing sesprt local ipxsesora -d/ses/network/txtfiles -p -i/ses/network/print -zsesprt ; Prestige Library Extract prelib local ipxdb -E -JF -d/ -o 2qtags -z xprelib qtags local ipqtags -qlibdone ; Prestige Normal Export xpres local ipxdb -P -JF -d/ If using the Prestige flag '-P' or Library Extract '-E', note that : - FipHdr field EI MUST hold the unique 'story_id' to use for each story for the Library Extract it is automatic but for ordinary extracts, you MUST specify the 'fiphdr'. - No dirstamp and queue - Default data queue is /prestige/share/story (usually on F:) For installation on NT please make sure that the mapped drive is available for the logon used to start the Service (ipsvce or ipntsvce) Look in ControlPanel/Services/Fip/Startup and make automatic and also changed the 'log On as' to the ciorrect logon and password. You MUST start and restart the service for this to take effect. ------------------------- For Prestige Library Extract, there are two steps : 1. select all the story-ids relevant 2. Loop around these story-ads, extracting relevant data. To change the former, use get-all-story-ids' keyword, using FipSeq for variables. The default select string is : select distinct story.story_id from story, doc, pubinfo where story.doc_id = doc.doc_id and doc.pubinfo_id = pubinfo.pubinfo_id and pubinfo.pub = "\EU" (next line is Oracle only) and trunc(doc.pubdate) = trunc(to_date ('\ED', 'dd-mmm-yyyy')) (next line is all BUT Oracle) and doc.pubdate = "\ED" (If an Edition has been stated) and pubinfo.edition = "\EE" (if a Zone has been stated) and pubinfo.zone = "\EZ" (if a Section has been stated) and pubinfo.section = "\ES" Note that for Oracle double quotes " should be replaced by single quotes '. FipHdr fields are : Publication EU Edition EE Date ED (**must be in SqlSvr format - 27-mar-1998) Zone EZ (optional) Section ES (optional) If 'doc' and 'pubinfo' tables are NOT used, you may also want to change the joins for the select statement grabbing the data for EACH story-id using the 'get-each-story-id'. Note ONLY the FROM/joins are required as the first part of the select is formed dynamically from your parameter file. The default is (note leading space) FROM story,doc,pubinfo WHERE story.story_id = "\EI" and story.doc_id = doc.doc_id and doc.pubinfo_id = pubinfo.pubinfo_id where EI is the temporary FipHdr field holding a single story-id. NOTE - You MUST specify the whole string one one line. Version Control ;08j 25apr00 added -F for polling the 'fip' table in Dewar ;a 25may00 added order-by for dewar poll ;b 26feb01 PAR reports zombies - none found but WAIT added in case ;c 01aug02 added -y to use sffsleep for oracle fudge ;d/e 13dec02 added -S for display SQL (only chdrive for data dir/fopen/stat) ;f-g 29apr03 added newEI properly for Prestige Library ;h-i 02sep06 odbc version ;07 20mar00 added mysql and mod for DCT ;06b 18feb99 added Oracle Dates plus OraDateFmt plus allow-no-edition MaxFiles per PresLibExtract (MaxRows) was 100 is now 5000. ;a 06jul99 Prestige Extract - added newEI and log-line ;b 20sep99 did WINNT drives better (copyright) 2022 and previous years FingerPost Ltd.