ipxbin This program is used to put Atex J11 Binary files into some sort of order. Theses fields are mirror images of the J11 data and are flagged with the FJ11 header flag. These files are normally sent to the Unixbox via MIDO/BINFIP/IPXNET. IPXBIN spools a directory for Atex J11 files and extracts the header information according to its parameter file. The input file is either zapped or can be left in a done queue. Both Classified (IAS) and Editorial files may be sent over with the header being processed accordingly. Incoming files may be sent directly to the output queue (specify input switch -R) OR a j11 header field, usually the 'TO' field, can be compared against a routing table. The latter defaults to setup/BINROUTE. The 'TO' field can be changed in the BINTRANS parameter file as described above using 'hdrto'. It then strips the header, converting individual fields to FIP header fields according to a translation table which is normally tables/setup/BINTRANS. Keywords for parameter file are : ; comment hdr: Save the j11 Editorial hdr field in a Fip field. Syntax : hdr: (j11 hdr field) (tab) (FipHdr Field) eg : to Save MS from the J11 in DI for FIP : hdr:MS DI arecord: 2 letter code and length of an IAS Classified Arecord field. These are in sequential order or use; any fillers - use a junk code (often the same junk code will do). While it is good practise to use the same codes as for IAS, Be careful NOT to reuse Fields that FIP uses for programs downstream. eg: arecord:AB 10 arecord:AD 4 arecord:ZZ 7 ; filler arecord:CC 12 .. etc adflag: 2 bytes which signals the header is Classified and NOT Editorial. Normally this is \301\301 eg: aflag:\240\333 type: Type of processing for the Data The default is ascii text, unhnjed, without markup. b = binary file - do not process t = typesetter file - strip the 1st two blocks and then treat as a binary m - allow modes - see mode table n - preserve nuls h - leave text hnjed k - preserve markup. q - translate all atex quads (2-5) to NewLine/LineFeed. and 012 to 220 octal (see also atex012) eg : type:hk will leave markup and modes modes: Modes to strip. All text in these modes are ignored.def: 2,6,7,8,9 pchr: Precedent chr for mode switches. default: { eg mode change to bold is {M1 nohdr: Do NOT put a Fip Hdr on this file. default: do addfiphdr: Some extra, fixed information to default: none add to the outbound Fip Header. allj11hdr: Translate all j11 hdr fields using their atex codes. Extra data which is not in a hdr field in added as junk fields starting $$ default: no See note below on allj11hdr. befhdr: FipSeq to add before Header is output. default: none afthdr: FipSeq to add after Header is output. default: none befqdata: FipSeq to add before Qdata is output. default: none aftqdata: FipSeq to add after Qdata is output. default: none beftxt: FipSeq to add before Text is output. default: none afttxt: FipSeq to add after Text is output. default: none Note that the outputfile is HDR, then QDATA, then TEXT atex012: Chr to replace Atex 012 chr and translate all atex quads (2-5) to NewLine/LineFeed. (see also type:q above). def: do NOT chg softquad: Where non-quad end-of-lines need to be preserved, this is the string, which can be one or more fipseq chrs, to flag such a being. A non-quad eoln is, for example, an hnj loose line. A quad is QL to QM (2, 3, 4, 5). nomodes: Ignore mode changes default: insert This does NOT insert {M1 etc on changes of modes. data: Replace the data of the file with this FipSeq. The default is to use the file data. force:u/l Force all data Upper or lower case. default: leave as is. filename: Make this the output filename. default:all Fip Hdr fields To make just the original J11 name : filename:\SN default: New filename containing the following Fip fields SC2DC BIN2SUN for an xchg, CQ of '2go', DU, SN, SC, HS To preserve the original filename and all incoming Fip Hdr fields, use the 'preservename:' keyword. preservename: To preserve the original filename and all incoming Fip Hdr fields default: see above In this case, only the DU field will be added IF a new one exists. addqdata: Add the qdata UNTOUCHED at the top of the file. default: strip qdata hdrto: If routing, the J11 field which contains the routing code Eg: hdrto:NO default: TO field hdrslug: The J11 field which contains the name of the file Eg: hdrslug:CA default: SL field nodefroute: Flag to NOT use the default Destination/Queue if no match is found in the routine file. This is only used if routing is ON. default: use the default routewild: Wild Card chr for BINROUTE entries. default: '*' A wild card can start and/or end a match field for a BINROUTE entry: Eg : *-spo /home/sport doneq: Pathname for input files once processed. default: deleted script: Name of an option program or script to run once the output file has been written. default: none The full path and filename of the file is passed as the parameter. If extra parameters are required, place these after the script name. default: no script Eg: script:printme laserbeam scotty will give the following parameters to script/program 'printme' $1 'laserbeam' $2 'scotty' $3 fullpath and filename Pls never allow your script to loop as ipxbin waits for completion before continung ! 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 Normally the BINROUTE file is disabled using the 'noroutefile:' keyword as you will always want to force the file to a specific destination or queue. The BINROUTE file has the style of : ; comment line (contents of j11 TO field) (tabs/spaces) (FIP DU or destinations) OR (contents of j11 TO field) (tabs/spaces) (Full Unix Output Path) where : the j11 field 'TO' can be any field in the incoming file. the contents of the j11 field are case insensitive. The program decides on whether to use the destination or the path dependning on the first character of the string : if it is a '/' or a '.' , it assumes it is a path. EG : ; BINROUTE file for typesetter proof /data1/opi/dash_proofer set /data1/opi/lasercomp remote /data1/opi/ricoh The default queue/destination is the first valid entry in the file. A false destination/queue of 'delete' means just that ! Multiple destinations may be specified separated by '+' with no embedded spaces. For queues, only a single queue is acceptable. If a queue name has an embeded space, use double quotes to embed. The double quotes are stripped. Second example : ; this is a comment line ; first valid line is the default abc zzz ; delete as a destination means ignore this file def delete ; if the destination starts with a '/' or '.', it is a queue chj /rasta/oinky lt ./lovely/hairdo ; Use the '+' to separate multiple destinations fnf fnf+fns+sss fns fns The Input parameters are : Optional : Either -1 : single shot - run once and stop default: spool The parameter is the name if the input file. If it starts with a '/', the input queue is ignored. This does NOT delete the input file. Or -i : input queue to scan default: spool/xbin This will delete the input file unless the '-x' flag is set. -o : output queue default: spool/2go "-o ./" to place the output path relative to the input queue (spooled) or current directory (single shot) -z : parameter file in tables/setup default: BINTRANS -r : editorial routing file in tables/setup default: BINROUTE -R : no routing - all files are sent to the output queue. default: route -l : do log incoming files default: no log -t : sleep time betwix scans of the queue default: 5 sec -w : file creep time for files arriving across a network. default: 0 -u : logon for the owner of the output files default: logon that started ipxbin -x : do NOT delete files after sending default: yes -s : do NOT strip trailing spaces from arecord fields default: yes -v : print version number and exit -- Normal syntax for a single shot is : ipxbin -1 xsndsnd/Bigfilename -x -R -z xbin.nyt -o xbindon This reads a file n a sunque from your 'pwd' called xsndsnd/Bigfilename. Once processed the raw file will be stuffed into another subque xbindon. Parameter file in tables/setup is XBIN.NYT (note uppercase) -x = do NOT delete raw file. -R = do NOT use a routing file. -- Note that using both keywords 'allj11hdr' and 'fiphdr' together needs to be thought about. Remember that any fields starting 'X' - Xk for example, is assumed to be in the Source Header (SH), so any fields starting 'X' are not accesible through the normal FipSeq routines. Ditto for J11 hdr fields starting '$'. And of course Fip overrides any fields hat are system dependent like 'SN', 'DU' etc. So 'allj11hdr' is better used with the no-fip-hdr flag 'nohdr', for files that will be processed with program 'sffhdr' which can stuff anything. eg: allj11hdr: nohdr: afthdr:~~~~\n (using 'afthdr' to write an End-Of-Hdr string of 4 tildes which the j11 cannot produce in a header field - sffhdr would use input option '-e "~~~~\n"' to catch the marker.) -- Note that the outputfile is HDR, then QDATA, then TEXT which is different from the Atex. This is to get a proper header on the file before you start playing with Qdata. Use befqdata/afqdata strings to help your script/program determine when Qdata starts (if it exists) and ends. -- For background information, the format of the incoming file is : (Qdata flag byte) (length of qdata) (qdata) (flag byte) (508 bytes of data) (flag byte) (508 bytes of date) ... where the flag byte is Q for Qdata, H for Hdr block or T for start of text. The sequence is ALWAYS Qdata (if it exists) then Header (if it exists) then Text(if it exists) . There will be 0 or 1 qdata blocks, 0 to 6 header blocks and 0 or 1 Text block flag. The Text block flag is ONLY for the first block of data. The format of the data is : Qdata : as per Atex File system manual for editorial, else program dependent. Hdr : as per Atex file system for editorial or ARECORD for IAS. Text : normally 16bit words UNLESS you tell it otherwise. Other env varis can be used to define where the system is : SFF_HOME where the home or top queue is. default: /fip eg setenv SFF_HOME /ripexpress/underware SFF_LOG where the log files queue is default: (SFF_HOME)/log SFF_SPOOL where the data queues are default: (SFF_HOME)/spool SFF_TMP where the tmp data queues is default: (SFF_HOME)/x THIS MUST BE ON THE SAME UNIX VOLUME as SFF_SPOOL queues. ie if spools are on /data99 which is hard disk /dev/sd0, you MUST also have the TMP queue on the same disk/partition NOTE that for all BUT SFF_HOME, if the parameter starts with a '/' then it is a hard, absolute path; if not then the spool area is under SFF_HOME. eg setenv SFF_SPOOL /data7 will look under /data7 for queues while setenv SFF_SPOOL data7 will look under /fip/data7 (copyright) 2024 and previous years FingerPost Ltd.