{"id":1243,"date":"2013-05-29T16:48:48","date_gmt":"2013-05-29T16:48:48","guid":{"rendered":"http:\/\/www.fingerpost.co.uk\/wp\/?page_id=1243"},"modified":"2013-06-03T22:23:15","modified_gmt":"2013-06-03T22:23:15","slug":"new-dataformatting-administrators-manual","status":"publish","type":"page","link":"https:\/\/www.fingerpost.co.uk\/wp\/new-dataformatting-administrators-manual\/","title":{"rendered":"New DataFormatting Administrators Manual"},"content":{"rendered":"<p>this version: 003 26may12<\/p>\n<h2> Overview<\/h2>\n<p>The new version of the DataFormatting module extends and replaces the existing version by adding :<\/p>\n<ul>\n<li> Separate Test and Production environments\n<ul>\n<li> allowing significant changes to be made without interfering with Production\n\t<\/ul>\n<li> Upgrade and Rollback of jobs in Production\n<li> Concept of Stages\n<ul>\n<li> Multiple stages rather than the old xchg->format->xchg model\n<li> Stages can be of any accepted program\n<li> Each stage can be tested separately\n\t\t<\/ul\n\t\n\n<li> Multiple Publications working (semi) independently on the same (pair of) servers<\/p>\n<li> Much better security\n<\/ul>\n<p>This guide aims to explain and detail what steps are needs to install and run.<\/p>\n<h3> Contents<\/h3>\n<p>%TOC%<\/p>\n<h3> Links to other DataFormat bits<\/h3>\n<ul>\n<li> Users Guide &#8211; DataFormattingv2user\n<li> Help on Syntax of data formats\n<li> XSLT\n<li> Others scripts or programs written in perl, csh, VB etc\n<li> Fip Program Documenatation\n<ul>\n<li> <a href=\"http:\/\/www.fingerpost.co.uk\/wp\/programme-documentation\/ipxchg-2\/\" title=\"ipxchg\">ipxchg<\/a>\n<li> <a href=\"http:\/\/www.fingerpost.co.uk\/wp\/programme-documentation\/iproute\/\" title=\"iproute\">iproute<\/a>\n<li> <a href=\"http:\/\/www.fingerpost.co.uk\/wp\/programme-documentation\/ipformat\/\" title=\"ipformat\">ipformat<\/a>\n<li> <a href=\"http:\/\/www.fingerpost.co.uk\/wp\/programme-documentation\/ipformbl\/\" title=\"ipformbl\">ipformbl<\/a>\n<li> <a href=\"http:\/\/www.fingerpost.co.uk\/wp\/programme-documentation\/ipsetter\/\" title=\"ipsetter\">ipsetter<\/a>\n<li> <a href=\"http:\/\/www.fingerpost.co.uk\/wp\/programme-documentation\/sffsort\/\" title=\"sffsort\">sffsort<\/a>\n\t<\/ul>\n<\/ul>\n<h2> HowTo &#8230;<\/h2>\n<h3> Initial Setup<\/h3>\n<h4> Preparation<\/h4>\n<ul>\n<li> Name of Publication(s)\n<li> A three, four or five letter code plus the name is required\n<li> Will you be running multiple publications and do you need to block access between them ?\n<li> If so, you will need the logon lists version of the w4 logon stuff\n<li> Do you have up-to-date binaries and scripts from FingerPost &#8211; the minimum versions are :\n<pre>\r\n the default form.setup\r\n ipformat 54t\r\n ipformbl 37w\r\n ipformd 22h\r\n ipxchg 47z\r\n sfflogon 02k\r\n form_job.pl 00x\r\n form_admin.pl 00s\r\n sffform.pl 01f\r\n sffbase.pl 02h\r\n admin_logon_radius.pl 06b\r\n <\/pre>\n<p><strong>Download the relevant WEBSHOW xchgs from FingerPost<\/strong><\/p>\n<p>If running Solaris or Win2K, you will also need the &#8216;sdiff&#8217; and &#8216;cmp&#8217; from the gnu &#8216;diffutils&#8217; package (pre-built binaries are on the FingerPost site)<\/p>\n<h4>create customer.setup<\/h4>\n<p>This is used to control the behaviour of the whole w4 system. It is placed in <code>\/fip\/web\/setup<\/code>.<\/p>\n<p>The data formatting bits are to define the publication(s) used and (for multiple publications) the logon list.<\/p>\n<p>There should be at least one &#8216;logon-pub&#8217; keyword:-<\/p>\n<pre>\t\r\nlogon-pub:DB|The Daily Bugle\r\nlogon-pub:MEGA|Mega Entertainments Weekly\r\n<\/pre>\n<p>The logon list file is either FIP.INTERNAL or FIP.EXTERNAL<\/p>\n<pre>\r\nlogon-list-file:FIP\r\n<\/pre>\n<h4> form.setup<\/h4>\n<p>This is used to control the behaviour of the system and to allow access to the various aspects. It is placed in <code>\/fip\/web\/setup<\/code><\/p>\n<p>Do we allow Perl and\/or non-standard programs\/scripts<\/p>\n<pre>\r\nallow-perl:yes\r\nallow-nonstds:yes\r\n<\/pre>\n<p>Restrict access to parameter files of other publications<\/p>\n<pre>\r\n\t NONE\t\t= No restriction\r\n\t PUB\t\t= Between publications\r\n\t SECTION\t= Between publications and sections\r\n\t restrict-access:pub\r\n<\/pre>\n<p>Balance &#8211; this needs to match the entry in ~\/tables\/sys\/BALANCE for all other fip systems running dataFormats<\/p>\n<pre>\t balance-group:formadmin\r\n<\/pre>\n<p>What views of the data are required ?  These map to exchanges e.g. ZWIRE requires ~\/tables\/xchg\/WEBSHOW.ZWIRE<\/p>\n<pre>\r\nview:SWIRE,SWIRE2|AP S-Wire Data\r\nview:SWIREBLANK|AP S-Wire Data (no formatting)\r\nview:ZWIRE|AP Z-Wire Data\r\nview:PADF|PA Data Formatted Fields\r\nview:INCOPY|InCopy Markup\r\nview:QUARK|Quark XPress Tags\r\nview:SETTER|Fip Setter Tags\r\n<\/pre>\n<p>For Solaris and Win2K, use the GNU versions of &#8216;diff&#8217; once you have added where the programs are<\/p>\n<pre>\r\nbin-cmp:\/usr\/bin\/cmp -s\r\nbin-sdiff:\/fip\/gnu\/diff -y\r\n<\/pre>\n<h4> Logon List<\/h4>\n<h5> Changes to other bits of Fip<\/h5>\n<p>\t <code>~\/tables\/sys\/SYSTEM file<\/code><\/p>\n<p>If using multiple publications, add an &#8216;ipformd&#8217; process for each publication, with its own input directory and parameter file<br \/>\n <font color=\"red\">DO NOT START YET<\/font><br \/>\n Note the parameter file is always &#8216;PROCESS.(code)&#8217; where code is the publication code.<\/p>\n<pre>\r\nabform\tlocal\tipformd -Q -i 2form_ab -p process.ab\r\ncdform\tlocal\tipformd -Q -i 2form_cd -p process.cd\r\netc\r\n<\/pre>\n<p>If using a single publication<\/p>\n<pre>\r\ndpform\ttcform\tipformd -Q -i dp_form -p process.dp\r\n<\/pre>\n<p>For balancing file over multiple systems add &#8216;ipbalan&#8217; and &#8216;ipsvrd&#8217; to the SYSTEM file<\/p>\n<pre>\r\nbalan\tlocal\tipbalan\r\nsvrd\tlocal\tipsvrd -l\r\n<\/pre>\n<p>Normal Fip routing to get the data into the relevant directories<\/p>\n<h4> All other Fip systems<\/h4>\n<p>Remember to copy (manually) any files you have changed<\/p>\n<h3> Converting from an old Fip system<\/h3>\n<h4> Adding a new Publication<\/h4>\n<p>This is currently a manual process :<\/p>\n<p>Here is an example for a publication called &#8216;piff&#8217;. Please note the case in the following : (i.e. it is important to make folders lowercase and files UPPERCASE) :<\/p>\n<ul>\n<li>Add the data folder\n<\/ul>\n<pre>\r\nmkdir -p \/fip\/data\/form\/piff\r\n<\/pre>\n<ul>\n<li>Add an entry in the setup file &#8211; <strong>\/fip\/web\/setup\/form.setup<\/strong>\n<\/ul>\n<p><code>pub:(short name)\t(full name)<\/code><br \/>\n<i>The full name should have &#8216;\\s&#8217; in place of spaces<\/i><\/p>\n<pre>\r\npub:piff\tThe\\sDaily\\sPiff\r\n<\/pre>\n<ul>\n<li>If the publication already exists and there is an existing <strong>PROCESS<\/strong> file, copy it twice to\n<\/ul>\n<pre>\r\n\/fip\/web\/form\/templates\/PROCESS.EXTRA.PIFF\r\n\/fip\/tables\/form\/PROCESS.PIFF\r\n<\/pre>\n<ul>\n<li>Change the main <strong>\/fip\/tables\/sys\/SYSTEM<\/strong> (carefully)\n<\/ul>\n<pre>\r\nfpiff\tlocal\tipformd -Q -i form_piff -z process.piff\r\n<\/pre>\n<p><i>or for non-English, add the default locale<\/i><\/p>\n<pre>\r\nfpiff\tlocal\tipformd -Q -i form_piff -z process.piff -E fr_FR@euro\r\n<\/pre>\n<ul>\n<li>Add a destination in <strong>\/fip\/tables\/sys\/USERS<\/strong> for incoming, raw data\n<\/ul>\n<pre>\t\t\r\ndformin_piff=\tDP:localhost\tDQ:form_piff\tSC:no\tDC:no\r\n<\/pre>\n<ul>\n<li>Add the relevant destinations in <code>\/fip\/tables\/sys\/USERS<\/code> for output<br \/>\n<i>(this is site\/system dependent of course)<\/i>\n<\/ul>\n<p>Route incoming data to <code>DU:formin_piff<\/code><br \/>\ne.g. in <code>\/fip\/tables\/route\/<\/code> files :<\/p>\n<pre>\r\n; Sport (Category R)\r\n\t1\t c=r\r\n\t\t2\tc=rdi\t>w4sport\r\n\t\t2\tc=rdr\t>w4racing_results+dformin_pub1+dformin_piff\r\n<\/pre>\n<ul>\n<li> Create a logon that uses &#8216;<strong>piff<\/strong>&#8216;\n<li>Copy relevant parameter files to the correct tables folders<br \/>\n\t\t <i>Sorry this is a manual task at the moment<br \/>\n\t\t Remember, if you copy &#8216;xchg&#8217; files, that they may reference &#8216;chrset&#8217; files too<\/i><\/p>\n<li>Add a logon which can access\/create\/manage jobs for that publication<br \/>\n\t\t<i> Note a single logon can only access a single publication<br \/>\n\t\t Use the ZADMIN logon (or any other you have created with ADMIN access) to add or change an existing logon and select FORMAT for the Radius type and that publication<\/i>\n<\/ul>\n<h3> Adding a new Program for use in any DF stage<\/h3>\n<li> In the main setup file, web\/setup\/form.setup, there should be five parameter lines added plus your comment lines\n<li> Firstly think of a name to call it<br \/>\n\t\t<code>p-program:(name)\t(full pathname to that program)<\/code><\/p>\n<pre>\r\np-tables:(name)\t(full pathname to the directory where the parameter files are kept or '-' if none)\r\np-help:(name)\t\t(URL to the help page)\r\np-prod:(name)\t\t(Command line to run the program in production)\r\np-test:(name)\t\t(Command line to run the program in test)\r\n<\/pre>\n<p>e.g.<\/p>\n<pre>\r\np-program:ipformat\t\/fip\/bin\/ipformat\r\np-tables:ipformat\t\/fip\/tables\/form\/text\r\np-help:ipformat\thttp:\/\/195.13.83.33\/twiki\/bin\/view\/FipDoc\/Ipformat\r\np-prod:ipformat\t-i^i -D -S^o -p^p ^s\r\np-test:ipformat\t-i^i -xob -D -S^o -p^p -cformsave\/^u^j^xT.^n ^s\r\n<\/pre>\n<p>\t\t Note the syntax for the command lines is :<\/p>\n<pre>\r\n^i - Input file\r\n^o - Output file\r\n^p - Parameter file\r\n^s - Custom switches as specified in the 'Other Switches' panel on the UserInterface\r\n^n - Stage number\r\n^j - Job name\r\n^u - Publication name\r\n^x - a single ^\r\nAlso ^ followed by any other character is a single ^\r\n<\/pre>\n<p>\t\t Note also, where possible, you want a copy of the output file for that section.<br \/>\n\t\t For &#8216;ipformat&#8217; this is the &#8216;-cformsave\/^u^j^xT.^n&#8217; which will create a file in spool\/formsave, called &#8216;pub^^job^T.9&#8217; which enables the user to click on &#8216;output file&#8217; on the UI and display that file !<\/p>\n<h3> Cleaning out old projects<\/h3>\n<p>\tSorry this is a manual task at the moment. See the [Under the lid] section for where files reside<\/p>\n<h2> Installation<\/h2>\n<h3>\tDependencies<\/h3>\n<ul>\n<li>Fip base, in particular at least these version levels:\n<\/li>\n<pre>\r\n\t\t sfflogon\tversion 02f\r\n\t\t ipformd\tversion 22d\r\n\t\t ipformat\tversion 54m\r\n\t\t ipformbl\tversion 37w\r\n\t\t iproute\tversion 161u\r\n\t\t ipxchg\tversion 47l\r\n<\/pre>\n<p>\tWeb interface for a new build server<\/p>\n<ul>\n<li> Apache\/IIS\/Domino &#8211; Please check with FingerPost if you have lost the documentation on how to setup these.\n<li> No changes are required at all for an existing FingerPost site, already using the W4 web interface\n<\/ul>\n<ul>\n<li>\tFip W4 with incoming wires\/email etc. for raw data\n<\/ul>\n<p><i>Or at least some means of getting raw data into the DF modules.<br \/>\nIf the W4 version is still using \/fip\/spool\/w4data, an upgrade will be needed<\/i>\n<\/ul>\n<h3>Preparation<\/h3>\n<ul>\n<li> Beforehand &#8211; Back everything up. Preferably upgrade on a spare or test system first\n<\/ul>\n<p>form.setup<br \/>\npub (s)<br \/>\nbalance-group<\/p>\n<p>logons<\/p>\n<h3>\tUpgrading programs and scripts<\/h3>\n<p>Create a temporary folder and unzip the two files &#8211; binaries and tables under it<\/p>\n<p>Copy the following files from the release media :<\/p>\n<p>a. web\/templates<br \/>\n\tTemplates and buttons<br \/>\n\t<code>cp -p web\/templates\/*\t\/fip\/web\/templates<\/code><br \/>\nb. fip-cgi<br \/>\n\tMain user interface scripts<br \/>\n\t<code>cp -p web\/fip-cgi\/*\t\/fip\/web\/fip-cgi<\/code><\/p>\n<p>c. pages\/<br \/>\nCascading Style Sheets<br \/>\n<code>cp -p web\/pages\/css\/*\t\/fip\/web\/pages\/css<\/code><\/p>\n<p>d. setup<br \/>\n\tSetup files &#8211; customer.setup and form.setup<br \/>\n\t<code>cp -p web\/setup\/*\t\/fip\/web\/setup<\/code><\/p>\n<p>e. xchgs<\/p>\n<p>\tMake sure you have the correct versions of the WEBSHOW<\/p>\n<li> xchgs<br \/>\n\t<code>cp -p tables\/xchg\/WEBSHOW*\t\/fip\/tables\/xchg<\/code><\/p>\n<p>f. logons<\/p>\n<p>\t<font color=\"red\">TAKE CARE<\/font> If you are already running RADIUS_* versions, please take care that you do not overwrite anything here<\/p>\n<pre>\r\n\t mkdir \/fip\/web\/logon\/lists\r\n\t mkdir \/fip\/web\/logon\/templates\r\n\t cp -p logon\/list\/\t\t\/fip\/web\/logon\/lists\r\n\t cp -p logon\/templates\/form_\t\/fip\/web\/logon\/templates\r\n\t cp -p logon\/names\/RADIUS\t\/fip\/web\/logon\/names\r\n<\/pre>\n<p>g. bins<br \/>\n\t While only the major binaries are required, you may want to upgrade all fip programs. Please turn all fip programs off beforehand!<br \/>\n<code>cp -p bin\/\t\/fip\/bin<\/code><br \/>\n\t or<\/p>\n<pre>\t cp -p bnew\/sfflogon \t\/fip\/bin\r\n\t cp -p bnew\/sfflogon\t\/fip\/bin\r\n\t cp -p bnew\/ipformd\t\/fip\/bin\r\n\t cp -p bnew\/ipformat\t\/fip\/bin\r\n\t cp -p bnew\/ipformbl\t\/fip\/bin\r\n\t cp -p bnew\/iproute\t\/fip\/bin\r\n\t cp -p bnew\/ipxchg\t\/fip\/bin\r\n\t cp -p bnew\/ipsgml\t\/fip\/bin\r\n<\/pre>\n<p>h. mkdir<br \/>\n\t \/fip\/data\/form<br \/>\n\t \/fip\/web\/form<br \/>\n\t \/fip\/web\/form\/templates<br \/>\n\t \/fip\/web\/form\/history<br \/>\n\t Sort and test are ignored and can be removed<\/p>\n<h3>Setup<\/h3>\n<p>a. web\/setup files<br \/>\n\t Merge the existing customer.setup with the new one<br \/>\n\t Please see the documentation for &#8216;sfflogon&#8217; at http:\/\/www.fingerpost.co.uk\/wp\/programme-documentation\/sfflogon\/<\/p>\n<p>\t The parameter &#8216;logon-list-file&#8217; should match the name of the file in logon\/lists<br \/>\n\t e.g. for the following, there should be a file called <code>lists\/FIPO.INTERNAL<\/code><\/p>\n<pre>\r\n; List of standard logons\r\nlogon-list-file:fipo\r\n<\/pre>\n<p>b. logon<br \/>\n\t Tune RADIUS_FORMAT for your wires<br \/>\n\t Use the logon ZADMIN (default password hih2) to  generate logons with <\/p>\n<p>c. basic system &#8211; add &#8216;ipbalan&#8217; and &#8216;ipsvrd&#8217; if they are not already running<br \/>\n\t So in tables\/sys\/SYSTEM, add 2 lines :<\/p>\n<pre>\r\nbal     local    ipbalan\r\nsvd     local    ipsvrd -l -P 9140\r\n<\/pre>\n<p>\t Modify the BALANCE file in \/fip\/tables\/sys for the format balance group<\/p>\n<pre>\r\n\t ;\r\n\t ; 'BALANCE' - Balance files bewteen systems\r\n\t ;\r\n\t group:formadmin\thost:(fiphost1)    ignore-localhost:\r\n\t group:formadmin\thost:(fiphost2)    ignore-localhost:\r\n<\/pre>\n<p>Replace (fiphost1) with the name of the server of the first Fip box; (fiphost2) the second etc.<\/p>\n<p>Note balance\/svrd uses TCP port 9140 to balance data and parameter files, so if the two FingerPost servers are separated by a firewall, data through this port must be allowed.<\/p>\n<p>Remember for any changes to the main SYSTEM file you can either use &#8216;ip&#8217; and &#8216;k all&#8217; and &#8216;a all&#8217; to bring into operation or very carefully add the changes to the file \/fip\/x\/SYSTEM.<\/p>\n<p>d. Add the first publication &#8211; see &#8216;Adding a new Publication&#8217; section above<\/p>\n<h2> Under the lid &#8211; stuff you dont need !<\/h2>\n<h3>Where is everything is<\/h3>\n<h4> Data is in <\/h4>\n<p><code>\/fip\/data\/form\/(pub)\/SECTION^DESK^JOB^(filename)<\/code><\/p>\n<h4> Parameter and history files are<\/h4>\n<p>\t<code> \/fip\/web\/form\/formats\/(pub)\/<\/code><br \/>\n\t These files hold for each job :<br \/>\n\t\t stages &#8211; program, parameter files, extra switches<br \/>\n\t\t data files to test against<br \/>\n\t\t history<br \/>\n\t\t PROCESS file stubs<\/p>\n<p>\t <code>\/fip\/web\/form\/history\/(pub)\/<\/code><br \/>\n\t These files hold copies of each parameter file at each upgrade point of each job so we can use them to rollback<\/p>\n<h3>\tFolders\/Naming Conventions<\/h3>\n<p>The carat (^) is used as a divider.<\/p>\n<p>Job names can only have letter, numbers underscore and hyphens.<\/p>\n<p>SECTION^DESK^JOB^P\/T<br \/>\n\tP-Production<br \/>\n\tT-test<\/p>\n<h2> Next Phase<\/h2>\n<li> dual\/shadow running\n<li> able to pull file off w4 directly and run Test\n<li> multiple data files for test<br \/>\n\t(ie be able to run same Test against several files to check)<br \/>\n\t&#8211; for regression testing<\/p>\n<li> locking\n<li> better conversion tools\n<li> completely isolated parameter files for separate pubs\n<li> send live test&#8230;\n<li> rollback to a test\n<li> show differences between versions of jobs &#8211; and parameter files.<br \/>\n","protected":false},"excerpt":{"rendered":"<p>this version: 003 26may12 Overview The new version of the DataFormatting module extends and replaces the existing version by adding : Separate Test and Production environments allowing significant changes to be made without interfering with Production Upgrade and Rollback of jobs in Production Concept of Stages Multiple stages rather than the old xchg->format->xchg model Stages [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/pages\/1243"}],"collection":[{"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/comments?post=1243"}],"version-history":[{"count":37,"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/pages\/1243\/revisions"}],"predecessor-version":[{"id":1439,"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/pages\/1243\/revisions\/1439"}],"wp:attachment":[{"href":"https:\/\/www.fingerpost.co.uk\/wp\/wp-json\/wp\/v2\/media?parent=1243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}