<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EZTIER - Better Software For Small Financial Companies</title>
	<atom:link href="http://eztier.com/web/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://eztier.com/web</link>
	<description>Better Software For Small Financial Companies</description>
	<lastBuildDate>Tue, 10 Jan 2012 22:06:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>jBASE ETL &#8211; T24 Accounting Tables</title>
		<link>http://eztier.com/web/?p=163</link>
		<comments>http://eztier.com/web/?p=163#comments</comments>
		<pubDate>Tue, 10 Jan 2012 17:24:09 +0000</pubDate>
		<dc:creator>htaox</dc:creator>
				<category><![CDATA[Products]]></category>

		<guid isPermaLink="false">http://eztier.com/web/?p=163</guid>
		<description><![CDATA[A practical scenario in using the jBASE ETL is feeding your bank&#8217;s accounting/ALM system with data from the T24 accounting tables on a daily basis. Typically, you will want to extract the data from distribution (archived) files rather than the actual accounting tables. For example, instead of running the following: td24 -server 10.10.59.42 -user INPUTT [...]]]></description>
			<content:encoded><![CDATA[<p>A practical scenario in using the <a href="http://eztier.com/web/?p=118" target="_blank">jBASE ETL</a> is feeding your bank&#8217;s accounting/ALM system with data from the T24 accounting tables on a daily basis.</p>
<p>Typically, you will want to extract the data from distribution (archived) files rather than the actual accounting tables.  For example, instead of running the following:</p>
<pre style="background-color:#000;color:#fff;padding: 10px;">td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.STMT.ENTRY -with "BOOKING.DATE EQ '20120109'"</pre>
<p>You would use the distribution file instead:</p>
<pre style="background-color:#000;color:#fff;padding: 10px;">td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.STMT.ENTRY.DIST01 -with "BOOKING.DATE EQ '20120109'"</pre>
<p>Here is an <a href="http://eztier.com/samples/t24/grid/examples/fbnkcategentry.html">ONLINE example</a> of extracted data for the FBNK.CATEG.ENTRY table.</p>
<p>Other notable distribution files are the other 2 accounting tables as well as FBNK.FUNDS.TRANSFER$HIS.  You would extract from their distribution files in a similar way:</p>
<pre style="background-color:#000;color:#fff;padding: 10px;">td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.CATEG.ENT.DIST01 -with "BOOKING.DATE EQ '20120109'"
td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.RE.CON.DIST01 -with "BOOKING.DATE EQ '20120109'"
td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.FUNDS.TRANSFER$HIS.PART1 -with "PROCESSING.DATE EQ '20120109'"
</pre>
<p>To automate the extraction processing, simply create a script and have it run daily after the COB.  Here&#8217;s an example in Wndows jscript:</p>
<pre style="background-color:#000;color:#fff;padding: 10px;height:225px;">var today = new Date();
var y= today.getFullYear();
var m = today.getMonth()+1;
var m1 = (m < 10 ? "0" : "") + m;
var d = today.getDate();
var d1 = (d < 10 ? "0" : "") + d;
var iso_date = (y + m1 + d1);
WScript.Echo("td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.STMT.ENTRY.DIST" + m1 + " -with \"BOOKING.DATE EQ '" + iso_date + "'\"");
WScript.Echo("td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.CATEG.ENT.DIST" + m1 + " -with \"BOOKING.DATE EQ '" + iso_date + "'\"");
WScript.Echo("td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.RE.CON.DIST" + m1 + " -with \"BOOKING.DATE EQ '" + iso_date + "'\"");
WScript.Echo("td24 -server 10.10.59.42 -user INPUTT -pass 123456 -file FBNK.FUNDS.TRANSFER$HIS.PART" + m + " -with \"PROCESSING.DATE EQ '" + iso_date + "'\"");</pre>
<p>Simple, not a lot of hassle, and plain productive.</p>
]]></content:encoded>
			<wfw:commentRss>http://eztier.com/web/?feed=rss2&#038;p=163</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jBASE ETL &#8211; Simple, Secure, Blazing Fast</title>
		<link>http://eztier.com/web/?p=118</link>
		<comments>http://eztier.com/web/?p=118#comments</comments>
		<pubDate>Sun, 18 Dec 2011 20:05:57 +0000</pubDate>
		<dc:creator>htaox</dc:creator>
				<category><![CDATA[Products]]></category>

		<guid isPermaLink="false">http://eztier.com/web/?p=118</guid>
		<description><![CDATA[If your company&#8217;s data resides inside jBASE, chances are you&#8217;ve wrestled with extracting that data out and inserting it into a table. There are various commercial solutions that can accomplish this such as Vultar ODBC, mv.NET, and jBLoader. These implementations typically require custom jBC code installed on the jBASE server as well as setting up [...]]]></description>
			<content:encoded><![CDATA[<p>If your company&#8217;s data resides inside <a href="http://en.wikipedia.org/wiki/JBASE" target="_blank">jBASE</a>, chances are you&#8217;ve wrestled with extracting that data out and inserting it into a table.  There are various commercial solutions that can accomplish this such as <a href="http://www.vultar.md/products/odbc-driver-for-jbase" target="_blank">Vultar ODBC</a>, <a href="http://www.bluefinity.com/v4/Products/mvnet/index.html" target="_blank">mv.NET</a>, and <a href="http://jbloader.com/t24-data-warehouse.html" target="_blank">jBLoader</a>.</p>
<p>These implementations typically require custom jBC code installed on the jBASE server as well as setting up an application server responsible for connection pooling.  There may also be run-time (distribution) fees and onsite consultancy requirements to consider.  Costs add up quickly.</p>
<p>If your primary goal is to deliver usable grid data from jBASE to the users, then we have a simple tool that does just that.</p>
<p>Here&#8217;s an <a href="http://eztier.com//Samples/t24/grid/examples/fbnkaccount.html">ONLINE EXAMPLE</a> of the data that this tool produces.  And unlike the above solutions, we do not have developer licenses and absolutely no distribution fees  You only pay for the product one time.</p>
<p>See this tool in action by downloading the <a href="http://eztier.com/products/downloads/trial/jBASE-ETL-v1.0-installer-x64-TRIAL.exe" target="_blank">TRIAL</a> edition.  The trial edition has all the features described in this post, but it can ONLY extract one table, FBNK.CUSTOMER.</p>
<p>You can <a href="http://sites.fastspring.com/eztier/product/jbaseetltoolversion10" target="_top">PURCHASE</a> the retail edition, which has no such limitations.</p>
<p><span id="more-118"></span></p>
<p><span style="font-weight: bolder;">td24 Version 1.0</span></p>
<p>Our solution, &#8220;td24&#8243;, is a command line tool on the client machine.  There is no application server setup and nothing to install on the jBASE server.  Connections to the jBASE server are done securely via SSH2.  After an installation that takes a few seconds, you&#8217;re ready to download data.  Nothing to configure.</p>
<p>Pass it a &#8220;-help&#8221; argument and you&#8217;ll see all the available options (that&#8217;s right, there&#8217;s only 4 required arguments!):</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">td24 [-server] [-port] [-user] [-pass] [-file] [-with]
     [-explode] [-dest] [maxrow] [-xfile]

Required:

        server  IP address of the server where jBASE is installed.
                example: -server 192.168.1.22
        user    A valid user account that has access to jBASE.
                example: -user jschmoe
        pass    A valid password for the above user account.
                example: -pass abc123
        file    The jBASE filename to be extracted.
                example: -file FBNK.ACCOUNT

Optional:

        port    The SSH port number.
                If this argument is not included, the default value is 22.
                example: -port 2222
        with    A valid jQL selection clause.
                If this argument is not included, all fields
                will be extracted
                example: -with "CATEGORY='1234' AND ALL.IN.ONE.PRODUCT NE ''"
        explode Pipe delimited list of field names to explode.
                If this argument is not included, all fields with
                multi and sub values will be exploded.
                example: -explode "CAP.DATE.CR.INT|ACCT.CREDIT.INT"
        dest    The absolute path to the directory where the extracted
                files will be exported.  Do not include a "\" at the end.
                If this argument is not included, a subfolder "done" will
                be created in the application working directory.
                example: -dest "c:\users\jschmoe\my downloaded files"
        maxrow  The maximum number of rows to write to a file.
                After this numbe is reached, a new file will be created.
                If this argument is not included, the default value is 999.
                The maximum value is 999.
                example: -maxrow 300
        xfile   The absolute path to the text file that contains a list of
                multi value fields to be exploded.  This argument and the
                "-explode" argument are mutually exclusive.  This argument
                will be ignored if the "-explode" argument is included
                Each field name should be followed a newline or CRLF.
                example: -xfile "c:\users\jschmoe\my_mv_list.txt"</pre>
<p><span style="font-weight: bolder;">EXAMPLES</span></p>
<p><span style="font-weight: bolder;">Sampling</span></p>
<p>To get an idea of table structure and which fields are MultiValue.  We can simply pass &#8220;SAMPLE 1&#8243; to the &#8220;-with&#8221; argument.</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">td24 -server 192.168.1.22 -user INPUTT -pass 123456 -file FBNK.ACCOUNT -with "SAMPLE 1"</pre>
<p>This is exported file:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">11398^100401^1001^Queen Elizabeth Ii^^Queen Elizabeth Ii^QEIIUSD^TR^USD^1^^1^^^^^^^^^^1^^^^^^^^^^^^^^^^^^^^^^^^^20081231^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^NO^^20081201^^^^^^^1001^^^^^^^^USD^1^USD^1^^^LEGACY^^^^^^^^^NO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Y^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2^28_INPUTTER^0903241641^SY_CUSTOMER^GB0010001^1^</pre>
<p>Upon executing the command, td24 will also write 2 files:</p>
<p>FBNK.ACCOUNT.DICT.txt<br />
FBNK.ACCOUNT.DICT.MV.txt</p>
<p>The first file will list all the fields in ordinal position:</p>
<pre style="padding: 10px; height: 100px; color: #ffffff; background-color: #000000;">0^ACCOUNT.NUMBER
1^CUSTOMER
2^CATEGORY
3^ACCOUNT.TITLE.1
4^ACCOUNT.TITLE.2
5^SHORT.TITLE
6^MNEMONIC
7^POSITION.TYPE
8^CURRENCY
9^CURRENCY.MARKET
10^LIMIT.REF
11^ACCOUNT.OFFICER
12^OTHER.OFFICER
13^POSTING.RESTRICT
14^RECONCILE.ACCT
15^INTEREST.LIQU.ACCT
16^INTEREST.COMP.ACCT
17^INT.NO.BOOKING
18^REFERAL.CODE
19^WAIVE.LEDGER.FEE
20^LOCAL.REF
21^CONDITION.GROUP
22^INACTIV.MARKER
23^OPEN.ACTUAL.BAL
24^OPEN.CLEARED.BAL
25^ONLINE.ACTUAL.BAL
26^ONLINE.CLEARED.BAL
27^WORKING.BALANCE
28^DATE.LAST.CR.CUST
29^AMNT.LAST.CR.CUST
30^TRAN.LAST.CR.CUST
31^DATE.LAST.CR.AUTO
32^AMNT.LAST.CR.AUTO
33^TRAN.LAST.CR.AUTO
34^DATE.LAST.CR.BANK
35^AMNT.LAST.CR.BANK
36^TRAN.LAST.CR.BANK
37^DATE.LAST.DR.CUST
38^AMNT.LAST.DR.CUST
39^TRAN.LAST.DR.CUST
40^DATE.LAST.DR.AUTO
41^AMNT.LAST.DR.AUTO
42^TRAN.LAST.DR.AUTO
43^DATE.LAST.DR.BANK
44^AMNT.LAST.DR.BANK
45^TRAN.LAST.DR.BANK
46^CAP.DATE.CHARGE
47^CAP.DATE.CR.INT
48^CAP.DATE.C2.INT
49^CAP.DATE.DR.INT
50^CAP.DATE.D2.INT
51^CAP.BACK.VALUE
52^ACCR.CHG.CATEG
53^ACCR.CHG.TRANS
54^ACCR.CHG.AMOUNT
55^ACCR.CHG.SUSP
56^ACCR.CR.CATEG
57^ACCR.CR.TRANS
58^ACCR.CR.AMOUNT
59^ACCR.CR.SUSP
60^ACCR.CR2.CATEG
61^ACCR.CR2.TRANS
62^ACCR.CR2.AMOUNT
63^ACCR.CR2.SUSP
64^ACCR.DR.CATEG
65^ACCR.DR.TRANS
66^ACCR.DR.AMOUNT
67^ACCR.DR.SUSP
68^ACCR.DR2.CATEG
69^ACCR.DR2.TRANS
70^ACCR.DR2.AMOUNT
71^ACCR.DR2.SUSP
72^CONSOL.KEY
73^INT.LIQU.TYPE
74^INT.LIQU.ACCT
75^INT.LIQ.CCY
76^PASSBOOK
77^START.YEAR.BAL
78^OPENING.DATE
79^VALUE.DATE
80^CREDIT.MOVEMENT
81^DEBIT.MOVEMENT
82^VALUE.DATED.BAL
83^CONTINGENT.BAL.CR
84^CONTINGENT.BAL.DR
85^OPEN.CATEGORY
86^OPEN.VAL.DATED.BAL
87^ACCT.CREDIT.INT
88^ACCT.DEBIT.INT
89^LINK.TO.LIMIT
90^CLOSURE.DATE
91^RESERVED01
92^CHARGE.ACCOUNT
93^CHARGE.CCY
94^CHARGE.MKT
95^INTEREST.CCY
96^INTEREST.MKT
97^CON.CHARGE.ACCR
98^CON.INTEREST.ACCR
99^ALT.ACCT.TYPE
100^ALT.ACCT.ID
101^PREMIUM.TYPE
102^CAP.DATE.PRM
103^PREMIUM.FREQ
104^APR
105^JOINT.HOLDER
106^RELATION.CODE
107^JOINT.NOTES
108^ALLOW.NETTING
109^LEDG.RECO.WITH
110^STMT.RECO.WITH
111^OUR.EXT.ACCT.NO
112^RECO.TOLERANCE
113^PENDING.ID
114^TOTAL.PENDING
115^STOCK.CONTROL.TYPE
116^SERIAL.NO.FORMAT
117^AUTO.PAY.ACCT
118^ORIG.CCY.PAYMENT
119^AUTO.REC.CCY
120^ORIGINAL.ACCT
121^FROM.DATE
122^LOCKED.AMOUNT
123^DISPO.OFFICER
124^DISPO.EXEMPT
125^TAX.SUSPEND
126^TAX.AT.SETTLE
127^ICA.MAIN.ACCOUNT
128^ICA.DISTRIB.RATIO
129^ICA.MAIN.ACCT.IND
130^ICA.DISTRIB.TYPE
131^ICA.POST.INTEREST
132^ICA.MAIN.RATIO
133^ICA.NEW.MAIN.ACC
134^ICA.START.DATE
135^ICA.ADD.REMOVE
136^ICA.BACK.VALUE
137^ICA.MAIN.ACCT
138^ICA.MAIN.DATE
139^LIQUIDATION.MODE
140^OVERDUE.STATUS
141^RESERVED11
142^SINGLE.LIMIT
143^CONTINGENT.INT
144^ALL.IN.ONE.PRODUCT
145^ER.VALUE.DATE
146^ER.BALANCE
147^EP.BALANCE
148^SB.GROUP.ID
149^OPEN.AVAILABLE.BAL
150^AVAILABLE.DATE
151^AV.AUTH.DB.MVMT
152^AV.NAU.DB.MVMT
153^AV.AUTH.CR.MVMT
154^AV.NAU.CR.MVMT
155^AVAILABLE.BAL
156^FORWARD.MVMTS
157^CREDIT.CHECK
158^AVAILABLE.BAL.UPD
159^CONSOLIDATE.ENT
160^MAX.SUB.ACCOUNT
161^MASTER.ACCOUNT
162^RESERVED2
163^CLOSED.ONLINE
164^NEXT.AF.DATE
165^NEXT.ACCT.CAP
166^NEXT.EXP.DATE
167^DATE.LAST.UPDATE
168^NEXT.STMT.DATE
169^EXPOSURE.DATES
170^PORTFOLIO.NO
171^ENTRY.HOLD
172^FWD.ENTRY.HOLD
173^FIRST.AF.DATE
174^CASH.POOL.GROUP
175^OPEN.ASSET.TYPE
176^LAST.COM.CHG.DATE
177^IC.CHARGE.ID
178^IC.NEXT.CAP.DATE
179^IC.PRODUCT
180^IC.LST.PROD.CAP
181^ARRANGEMENT.ID
182^ACC.DEB.LIMIT
183^MANDATE.APPL
184^MANDATE.REG
185^MANDATE.RECORD
186^DR.ADJ.AMOUNT
187^DR2.ADJ.AMOUNT
188^CR.ADJ.AMOUNT
189^CR2.ADJ.AMOUNT
190^OVERRIDE
191^RECORD.STATUS
192^CURR.NO
193^INPUTTER
194^DATE.TIME
195^AUTHORISER
196^CO.CODE
197^DEPT.CODE</pre>
<p>The second file will list only fields that are MultiValue in ordinal position:</p>
<pre style="padding: 10px; height: 100px; color: #ffffff; background-color: #000000;">12^OTHER.OFFICER
18^REFERAL.CODE
20^LOCAL.REF
46^CAP.DATE.CHARGE
47^CAP.DATE.CR.INT
48^CAP.DATE.C2.INT
49^CAP.DATE.DR.INT
50^CAP.DATE.D2.INT
52^ACCR.CHG.CATEG
53^ACCR.CHG.TRANS
54^ACCR.CHG.AMOUNT
55^ACCR.CHG.SUSP
56^ACCR.CR.CATEG
57^ACCR.CR.TRANS
58^ACCR.CR.AMOUNT
59^ACCR.CR.SUSP
60^ACCR.CR2.CATEG
61^ACCR.CR2.TRANS
62^ACCR.CR2.AMOUNT
63^ACCR.CR2.SUSP
64^ACCR.DR.CATEG
65^ACCR.DR.TRANS
66^ACCR.DR.AMOUNT
67^ACCR.DR.SUSP
68^ACCR.DR2.CATEG
69^ACCR.DR2.TRANS
70^ACCR.DR2.AMOUNT
71^ACCR.DR2.SUSP
73^INT.LIQU.TYPE
74^INT.LIQU.ACCT
75^INT.LIQ.CCY
79^VALUE.DATE
80^CREDIT.MOVEMENT
81^DEBIT.MOVEMENT
82^VALUE.DATED.BAL
87^ACCT.CREDIT.INT
88^ACCT.DEBIT.INT
99^ALT.ACCT.TYPE
100^ALT.ACCT.ID
101^PREMIUM.TYPE
102^CAP.DATE.PRM
103^PREMIUM.FREQ
105^JOINT.HOLDER
106^RELATION.CODE
107^JOINT.NOTES
109^LEDG.RECO.WITH
110^STMT.RECO.WITH
113^PENDING.ID
114^TOTAL.PENDING
119^AUTO.REC.CCY
120^ORIGINAL.ACCT
121^FROM.DATE
122^LOCKED.AMOUNT
137^ICA.MAIN.ACCT
138^ICA.MAIN.DATE
145^ER.VALUE.DATE
146^ER.BALANCE
147^EP.BALANCE
150^AVAILABLE.DATE
151^AV.AUTH.DB.MVMT
152^AV.NAU.DB.MVMT
153^AV.AUTH.CR.MVMT
154^AV.NAU.CR.MVMT
155^AVAILABLE.BAL
156^FORWARD.MVMTS
168^NEXT.STMT.DATE
169^EXPOSURE.DATES
170^PORTFOLIO.NO
171^ENTRY.HOLD
172^FWD.ENTRY.HOLD
179^IC.PRODUCT
180^IC.LST.PROD.CAP
182^ACC.DEB.LIMIT
183^MANDATE.APPL
184^MANDATE.REG
185^MANDATE.RECORD
190^OVERRIDE
193^INPUTTER
194^DATE.TIME</pre>
<p><span style="font-weight: bolder;">Getting Everything Without Exploding</span></p>
<p>Suppose we don&#8217;t want know what MultiValue fields to explode and just want to see everything.  Simple enough:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">td24 -server 192.168.1.22 -user INPUTT -pass 123456 -file FBNK.ACCOUNT</pre>
<p>Immediately after executing the command, you&#8217;re see files raining down.  All files are in caret &#8220;^&#8221; delimited format.  A portion of a file is shown below:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">28282^111111^4001^Ukwarb Stock Borrow Margin Acct^^Ukwarb Stock Borrow Margin Acct^UKWARBSB^TR^USD^1^^1^^^^^^^^^^99^^^^^^^^^^^^^^^^^^^^^^^^^20081231^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^NO^^20081201^^^^^^^4001^^^^^^^^USD^1^USD^1^^^LEGACY^^^^^^^^^NO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^111111-955^^^^^^^^^^^^^^^^^^^^^^2^12_INPUTTER^0903211145^SY_UPDATE.INACTIVE.MARKER^GB0010001^1^
GBP149550001^^14955^Suspense Account^^Suspense Account^SUSP^TR^GBP^1^^5^^^^^^^^^^^^947368.42^947368.42^947368.42^947368.42^947368.42^20090107^947368.42^306^^^^20090107^1000000^219^20090102^-1000000.00^307^^^^^^^20081231^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^NO^^20081205^^^^^^^14955^^^^^^^^GBP^1^GBP^1^^^LEGACY^^^^^^^^^NO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20090107^^^^^^^^^^^^^^^^^^^^^^^^^1^40_INPUTTER___OFS_OFS.LOAD^0903181430^40_INPUTTER_OFS_OFS.LOAD^GB0010001^1^
10782^100224^6603^Dbl Az Multi Dep1^^Dbl Az Multi Dep1^^TR^USD^1^^5^^^^37044^^^^^^99^^^^^^^^^^^^^^^^^^^^^^^^^20090131^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^NO^^20090107^^^^^^^6603^^^^^^^^USD^^USD^^^^^^^^^^^^^NO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^37761^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1^4_BUILDUSER87^0904041853^SY_37761^GB0010001^1^
15393^100592^5001^Hsbc Bank^^Hsbc Bank^HSBCGBP^TR^GBP^1^NOSTRO^27^^^Y^^^^^^^5^^-21231545.25^-21231545.25^-19897484.98^-19897484.98^-19897484.98^20090122^1335000.00^306^^^^20090120^3192.00^674^20090121^-958.90^437^20090121^-64.73^281^20090122^-939.73^701^20081231^20081231^20081231^20081231^20081231^^^^^^^^^^^^^^^^^^^^^^^^^^NO^^20081201^^^^^^^5001^^^^^^^^GBP^1^GBP^1^^^LEGACY^^^^^^^^^NO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-10395326.71^20090122]20090123]20090124]20090126]20090128]20090129]20090131^-939.73]]-1438.35]]-1004688.764109589041]-939.73]-1438.35^^1335230.14]1342.4657534246574]939.73]4002972.5986301369862]959.86]]2585936.99^^-9061036.3]-9059693.8342465753426]-9060192.4542465753426]-5057219.8556164383564]-6060948.7597260273974]-6061888.4897260273974]-3477389.8497260273974^230.14]1342.4657534246574]-498.62]4002972.5986301369862]-1003728.904109589041]-939.73]2584498.64^^^^^^^^20090204^^^20090122^^^^^^20090122^^^^^^^^^^^^^^^^^^^1^40_BUILDUSER1___OFS_MB.OFS.AUTH^0903181432^40_BUILDUSER1_OFS_MB.OFS.AUTH^GB0010001^1^
USD111050001^^11105^Building - Own Usage^^Building - Own^BUILD11105^TR^USD^1^^1^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20081231^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^NO^^20081202^^^^^^^11105^^^^^^^^USD^1^USD^1^^^^^^^^^^^^NO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1^63_INPUTTER___OFS_MB.OFS.AUTH^0903171747^63_INPUTTER_OFS_MB.OFS.AUTH^GB0010001^1^</pre>
<p>It&#8217;s probably not a good idea to download everything in sight, but you&#8217;ll be surprised that for about 0.5 GB of data for FBNK.ACCOUNT, the extraction only takes 5 minutes.</p>
<p>Generally, it&#8217;s best to break up the download with selection clauses (which we&#8217;ll see shortly).</p>
<p>Since the MultiValue fields were not exploded, each item has exactly one row.  In the example above, record &#8220;15393&#8243; has a few MultiValue fields that require exploding.</p>
<p><span style="font-weight: bolder;">Selectively Exploding Fields</span></p>
<p>For the next example, we&#8217;re going to explode the fields &#8220;AVAILABLE.DATE&#8221; and &#8220;AVAILABLE.BAL&#8221;:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">td24 -server 192.168.1.22 -file FBNK.ACCOUNT -explode "AVAILABLE.DATE|AVAILABLE.BAL" -user INPUTT -pass 123456</pre>
<p>The result would now look like this:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">GBP149550001^^
10782^^
15393^20090122^-9061036.3
15393^20090123^-9059693.8342465753426
15393^20090124^-9060192.4542465753426
15393^20090126^-5057219.8556164383564
15393^20090128^-6060948.7597260273974
15393^20090129^-6061888.4897260273974
15393^20090131^-3477389.8497260273974
USD111050001^^
13838^^</pre>
<p><span style="font-weight: bolder;">Using a File to List Fields to Explode.</span></p>
<p>In the above example, we only exploded 2 fields.  If we wanted to explode many fields, it may be easier to use the &#8220;-xfile&#8221; argument to specify a user-defined text file that lists those fields.</p>
<p>Let&#8217;s create a file called &#8220;my-mv-list.txt&#8221; with a list of fields:</p>
<pre style="padding: 10px; height: 100px; color: #ffffff; background-color: #000000;">CAP.DATE.CHARGE
CAP.DATE.CR.INT
CAP.DATE.C2.INT
CAP.DATE.DR.INT
CAP.DATE.D2.INT
ACCR.CHG.CATEG
ACCR.CHG.TRANS
ACCR.CHG.AMOUNT
ACCR.CHG.SUSP
ACCR.CR.CATEG
ACCR.CR.TRANS
ACCR.CR.AMOUNT
ACCR.CR.SUSP
ACCR.CR2.CATEG
ACCR.CR2.TRANS
ACCR.CR2.AMOUNT
ACCR.CR2.SUSP
ACCR.DR.CATEG
ACCR.DR.TRANS
ACCR.DR.AMOUNT
ACCR.DR.SUSP
ACCR.DR2.CATEG
ACCR.DR2.TRANS
ACCR.DR2.AMOUNT
ACCR.DR2.SUSP</pre>
<p>Then execute the following command:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">td24 -server 192.168.1.22 -file FBNK.ACCOUNT -xfile "my-mv-list.txt" -user INPUTT -pass 123456</pre>
<p>A portion of the results look like this:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">35254^20081231^20081231^20081231^20081231^20081231^^^^^^^^^^^^^^^^^^^^
37718^20081231^20090114^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20090107^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081231^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081224^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081217^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081210^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
19167^20081231^^^^^^^^^^^^^^^^^^^^^^^^</pre>
<p><span style="font-weight: bolder;">Selection Clause</span></p>
<p>We&#8217;ve already used a form of a selection clause before with the &#8220;SAMPLE&#8221; keyword.  In the above example, there are many records without a &#8220;ACCR.CR.CATEG&#8221; value.  We can simply filter those records out:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">td24 -server 192.168.1.22 -file FBNK.ACCOUNT -xfile "my-mv-list.txt" -with "ACCR.CR.CATEG NE '' OR ACCR.DR.CATEG NE ''" -user INPUTT -pass 123456</pre>
<p>A portion of the results now look like this:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">10731^20081231^20081231^20081231^20081231^20081231^^^^^^^^^^^^^51000^390^-21595^^^^^
23876^20081231^20081231^20081231^20081231^20081231^^^^^^^^^^^^^51000^390^-278.87^^^^^
37718^20081231^20090114^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20090107^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081231^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081224^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081217^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
37718^20081231^20081210^^^^^^^^50000^380^1704.24^^^^^^^^^^^^^
36706^20081231^20081231^20081231^20081231^20081231^^^^^^^^^^^^^51000^390^-0.41^^^^^</pre>
<p><span style="font-weight: bolder;">Concurrency</span></p>
<p>Where td24 really shines is the ability to download multiple tables concurrently.  There is no real limitation on how many connections you can make when using td24.  This ultimately depends on how powerful the jBASE server is.  On a beefy Solaris box, 40 or more concurrent connections is possible.</p>
<p>The following is a sample script to download 10 tables concurrently:</p>
<pre style="background-color: #000; color: #fff; padding: 10px;">start "0" /B td24.exe -file FBNK.ACCOUNT -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "1" /B td24.exe -file FBNK.LIMIT -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "2" /B td24.exe -file FBNK.ACCOUNT.STATEMENT -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "3" /B td24.exe -file FBNK.GROUP.ACCOUNT -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "4" /B td24.exe -file FBNK.CUSTOMER -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "5" /B td24.exe -file FBNK.ACCOUNT.CREDIT.INT -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "6" /B td24.exe -file FBNK.ACCOUNT.DEBIT.INT -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "7" /B td24.exe -file F.DE.ADDRESS -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "8" /B td24.exe -file FBNK.PD.BALANCES.HIST -server 192.168.1.22 -port 22 -user INPUTT -pass 123456
start "9" /B td24.exe -file FBNK.AC.LOCKED.EVENTS -server 192.168.1.22 -port 22 -user INPUTT -pass 123456</pre>
<p><span style="font-weight: bolder;">Usability</span></p>
<p>The files are readily usable in Excel.  But of course, you can bulk load them to a relational database easily.</p>
]]></content:encoded>
			<wfw:commentRss>http://eztier.com/web/?feed=rss2&#038;p=118</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

