Re: [U2] UPLOAD not DOWNLOAD
You would use the dictionary item to know WHERE to put the data in U2 which file, attribute etc. if you are talking multi-values (or deeper) then this could also be driven from the dictionary, which would provide you with the capability of performing some mapping UNLESS you are in the position to dictate the format of the file you are trying to import (aka upload?) into UV. But, if you wanted to be able to map an arbitrary data source, as suggested by George, using a dictionary would allow you to achieve the result in a point click manner -- and depending on the dictionary could also ensure that you don't download incomplete or invalid data into an otherwise (hopefully) clean environment, setup defaults etc Ross Ferris Stamina Software Visage Better by Design! -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Saturday, 27 October 2012 11:01 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UPLOAD not DOWNLOAD snip I'm confused about your mention of Dict items because I don't see how you use Dict items for Uploading. I see how you use them for Downloading. Maybe you could give an example of why you would read the Dict for an upload. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
Maybe you could give an example of why you would read the Dict for an upload. Since one of my free tools has already come up in the discussion :) For my various versions of IMPORT (including BCI.IMPORT) dictionaries are used for two reasons: 1. to identify which fields to update in each source, so it can be used like a regular verb. 2. to handle calculated fields that may also need to be inserted based on the import data. Here's the usage for BCI.IMPORT to give an idea: BCI.IMPORT -- BCI.IMPORT by Brian Leach Import SQL data into Universe. Syntax -- BCI.IMPORT [FROM datasoure] [AS username][PASS[WORD] password] [EXEC statement|{TEXT|SQL} statement] [PARAM parameter..] [FIRST rows] UPDATES filename [FIELD] fieldname {$n|EXPR expression|@special|'value'} [CONV code][{NUMERIC|DATE|TIME}] [LIST 'xxx,xxx'][RELATES file][BETWEEN n AND m] [PATTERN xxx][operator][REQUIRED] [MAP 'code=value[,code=value]'] [UPDATES filename ...] Operators: -- {INSERTFIRST|INSERTLAST|INSERTPOS|INSERTAL|INSERTAR|INSERTDL|INSERTDR|ADD|SU B} Expressions: EXPR[ESSION] 'Expression' Expression is made up of: numbers eg 1.23 operatorseg + dictionary names eg SURNAME uV Basic functions eg FIELD() @Variables eg @UserNo import column $n eg $2 eg. EXPRESSION TRIM($1:' ':$2:' ':$3) EXPRESSION $1 * PRICE EXPRESSION SUM(LINE_TOTAL) Specials: - {@USER|@DATE|@TIME|@LOGNAME|@IMPORTFILE|@WHO|@ROW} Example: BCI.IMPORT FROM mysource AS sa PASSWORD admin EXEC 'sp_getData' PARAM 'OPEN' UPDATES FILE1 FIELD @ID $1 NUMERIC FIELD DATE @DATE FIELD NAME EXPRESSION '$3: :$4' FIELD CODE $9 LIST 'ACA,ACB,ACC' UPDATES FILE2 FIELD @ID $4 FIELD ENTRIES $1 INSERTLAST FIELD QTY $7 INSERT BETWEEN 0 AND FIELD TOTQTY $7 ADD I write a lot of my utilities to be re-usable in this way, to be used as verbs. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ross Ferris Sent: 29 October 2012 07:17 To: U2 Users List Subject: Re: [U2] UPLOAD not DOWNLOAD You would use the dictionary item to know WHERE to put the data in U2 which file, attribute etc. if you are talking multi-values (or deeper) then this could also be driven from the dictionary, which would provide you with the capability of performing some mapping UNLESS you are in the position to dictate the format of the file you are trying to import (aka upload?) into UV. But, if you wanted to be able to map an arbitrary data source, as suggested by George, using a dictionary would allow you to achieve the result in a point click manner -- and depending on the dictionary could also ensure that you don't download incomplete or invalid data into an otherwise (hopefully) clean environment, setup defaults etc Ross Ferris Stamina Software Visage Better by Design! -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Saturday, 27 October 2012 11:01 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UPLOAD not DOWNLOAD snip I'm confused about your mention of Dict items because I don't see how you use Dict items for Uploading. I see how you use them for Downloading. Maybe you could give an example of why you would read the Dict for an upload. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
hi John, Depending what you are looking for, - a generic ETL tool where you define 1) Extract data from a defineable source (remote sql, csv-xls-dbf-xml-json files, webservice result , ...) with extendable method 2) Transform the received clob to internal UV data representation (iconv, mv'ed representation, build multi-part unique key, ...) 3) Load into U2 files (update one or more uvfiles into a Transaction (db transaction + application transaction)) That's not a routine that's complex tool with a lot of params and subroutines :-p I have it, writen in SB+, require SB+ at runtime, but it's not free. Please let me know if you can be interested. - - Anyway, If you search routines to import, write one record on one uvfile per received record, from some specific data source I'm ready to share my experience (sql, dbf, csv, mdb, xls, xml, ...). Please put some detail of the source. regards Manu Wjhonson wjhon...@aol.com a écrit : Does anyone have a robust ETL routine for loading data *into* Universe (not out from it). Something like Cedarville's DOWNLOAD but in reverse ? Before I roll my own. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
Will, if you don't want interactive (manual mapping), there is no other way aside from using DICT items that can be used to automatically map from an input file to your UV file, unless you feel like re-programming and compiling each time to change which columns go to which attributes. And you still may wind up having to manually map anyway, if your DICT name/description don't match column headers at all. I'm sure you have converted your share of client supplied files, and they are rarely the same, in column heading names or order of columns, even the formatting of dates, countries, states, phone numbers. Outputting is easier, it's usually, here's my data, now you deal with it to import it George Gallen Senior Programmer/Analyst Accounting/Data Division ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.com From: u2-users-boun...@listserver.u2ug.org [u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson [wjhon...@aol.com] Sent: Friday, October 26, 2012 11:40 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UPLOAD not DOWNLOAD That goes the wrong way. Download does not depend on knowing who is consuming what to create it's results. So Upload should not need to have interactive consumption details either. That's my take. It's reads a source and decides on its own without the sources assistance where to put what. You're coming at it more from a point of view of both sides *agreeing* on what data is in what position. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
Did you read Brian Leachs document? I think the way he solved this was rather clever, using a TCL command to associate the columns to attributes, then once you've done it once per definition, you can set it and forget it. Much more clever than writing an import routine for every new type of document. -Original Message- From: George Gallen ggal...@wyanokegroup.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Sat, Oct 27, 2012 6:52 am Subject: Re: [U2] UPLOAD not DOWNLOAD Will, if you don't want interactive (manual mapping), there is no other way aside from using DICT items that can be used to automatically map from an input file to your UV file, unless you feel like re-programming and compiling each time to change which columns go to which attributes. And you still may wind up having to manually map anyway, if your DICT name/description don't match column headers at all. I'm sure you have converted your share of client supplied files, and they are rarely the same, in column heading names or order of columns, even the formatting of dates, countries, states, phone numbers. Outputting is easier, it's usually, here's my data, now you deal with it to import it George Gallen Senior Programmer/Analyst Accounting/Data Division ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.com From: u2-users-boun...@listserver.u2ug.org [u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson [wjhon...@aol.com] Sent: Friday, October 26, 2012 11:40 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UPLOAD not DOWNLOAD That goes the wrong way. Download does not depend on knowing who is consuming what to create it's results. So Upload should not need to have interactive consumption details either. That's my take. It's reads a source and decides on its own without the sources assistance where to put what. You're coming at it more from a point of view of both sides *agreeing* on what data is in what position. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
Well, what you say below is exactly opposite of what I described. Normally I would encourage anyone else to re-read what I wrote and cite specific text which leads to the conclusions below - in this case... nah. The data source never needs to know anything about the target - that would be silly. And no, I didn't describe a process that goes the wrong way - you said *into* Universe (not out from it) which is what I described. Perhaps what confused you is that the code for going in both directions looks exactly the same - which is one of the neat aspects of the approach. BTW, someone might suggest from my code that the retrieval from the source is done in bulk while posting to the U2 target seems to be done with individual transactions. That could be the case and for large loads I'd modify the code to aggregate the data into a collection and then post that to U2 in a single transaction. BTW, the terms UPload and DOWNload are hugely ambiguous, and I believe you have defined the terms backwards here. When I download to my PC, it is TO my PC, not away from it. When I upload to a web server, the data is moving out. And yet you define UPLOAD not DOWNLOAD as meaning *into* Universe (not out from it). The terms IMport and EXport are more explicit. Your reference to the Cedarville Download utility is a clue to the confusion. Cedarville is using Download in the context of the recipient of the information downloading information to a more familiar format from the Unidata server. From the perspective of everyone in this group, that would be an Export, and going in the opposite direction would be an Import. So what you're describing is an Import into U2 ... traditionally described as a download. T From: Wjhonson That goes the wrong way. Download does not depend on knowing who is consuming what to create it's results. So Upload should not need to have interactive consumption details either. That's my take. It's reads a source and decides on its own without the sources assistance where to put what. You're coming at it more from a point of view of both sides *agreeing* on what data is in what position. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
I did mention in my initial posting Cederville's DOWNLOAD Which extracts data *from* Universe. It would be counter-intuitive to call a system which loads data *into* Universe also a Download. Rather it must be called an Upload. -Original Message- From: Tony Gravagno 3xk547...@sneakemail.com To: u2-users u2-users@listserver.u2ug.org Sent: Sat, Oct 27, 2012 12:23 pm Subject: Re: [U2] UPLOAD not DOWNLOAD Well, what you say below is exactly opposite of what I described. Normally I would encourage anyone else to re-read what I wrote and cite specific text which leads to the conclusions below - in this case... nah. The data source never needs to know anything about the target - that would be silly. And no, I didn't describe a process that goes the wrong way - you said *into* Universe (not out from it) which is what I described. Perhaps what confused you is that the code for going in both directions looks exactly the same - which is one of the neat aspects of the approach. BTW, someone might suggest from my code that the retrieval from the source is done in bulk while posting to the U2 target seems to be done with individual transactions. That could be the case and for large loads I'd modify the code to aggregate the data into a collection and then post that to U2 in a single transaction. BTW, the terms UPload and DOWNload are hugely ambiguous, and I believe you have defined the terms backwards here. When I download to my PC, it is TO my PC, not away from it. When I upload to a web server, the data is moving out. And yet you define UPLOAD not DOWNLOAD as meaning *into* Universe (not out from it). The terms IMport and EXport are more explicit. Your reference to the Cedarville Download utility is a clue to the confusion. Cedarville is using Download in the context of the recipient of the information downloading information to a more familiar format from the Unidata server. From the perspective of everyone in this group, that would be an Export, and going in the opposite direction would be an Import. So what you're describing is an Import into U2 ... traditionally described as a download. T From: Wjhonson That goes the wrong way. Download does not depend on knowing who is consuming what to create it's results. So Upload should not need to have interactive consumption details either. That's my take. It's reads a source and decides on its own without the sources assistance where to put what. You're coming at it more from a point of view of both sides *agreeing* on what data is in what position. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
From: Wjhonson Does anyone have a robust ETL routine for loading data *into* Universe (not out from it). Something like Cedarville's DOWNLOAD but in reverse ? Before I roll my own. A solution starts with a good definition of a problem - and that means something a little more specific than data. Are you looking for a general purpose import from SQL Server? Oracle? MySQL? CSV? Outlook? Excel? A web service? Your cell phone contacts? I've written import/export routines for all of these and more. But they're all a little different. What's common is that I pull the data from a source into a middle tier and then push the data to whatever the target is. That's your ETL concept. Most people think of data movement to/from MV in terms of direct access between environments, the Extraction and Loading part with little consideration for Transformation. To me, the U2 box is just one end of the equation, it's not the middle tier. The U2 side of things uses just grunt code or dict items that any of us here can write. The only thing new about any such ETL project is the other side, which just requires some knowledge about how to integrate with whatever that other side is. Once someone internalizes that, the rest is fairly easy with Any remote endpoint - and most of these how do I ETL with 'ProductX' questions become unnecessary. You probably also want to clarify that you want something free. There are commercial offerings from FusionWare, BlueFinity, and others. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com http://Nebula-RnD.com/blog Visit http://PickWiki.com! Contribute! http://Twitter.com/TonyGravagno http://groups.google.com/group/mvdbms/about ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
The nature Tony of code 8sharing8 between users of this group, is Free. I share my code, others share their code. No one puts everything they've written on pickwiki So it's entirely possible someone has written a general purpose ETL to go into Universe I'm confused about your mention of Dict items because I don't see how you use Dict items for Uploading. I see how you use them for Downloading. Maybe you could give an example of why you would read the Dict for an upload. -Original Message- From: Tony Gravagno 3xk547...@sneakemail.com To: u2-users u2-users@listserver.u2ug.org Sent: Fri, Oct 26, 2012 4:13 pm Subject: Re: [U2] UPLOAD not DOWNLOAD From: Wjhonson Does anyone have a robust ETL routine for loading data *into* Universe (not out from it). Something like Cedarville's DOWNLOAD but in reverse ? Before I roll my own. A solution starts with a good definition of a problem - and that means something a little more specific than data. Are you looking for a general purpose import from SQL Server? Oracle? MySQL? CSV? Outlook? Excel? A web service? Your cell phone contacts? I've written import/export routines for all of these and more. But they're all a little different. What's common is that I pull the data from a source into a middle tier and then push the data to whatever the target is. That's your ETL concept. Most people think of data movement to/from MV in terms of direct access between environments, the Extraction and Loading part with little consideration for Transformation. To me, the U2 box is just one end of the equation, it's not the middle tier. The U2 side of things uses just grunt code or dict items that any of us here can write. The only thing new about any such ETL project is the other side, which just requires some knowledge about how to integrate with whatever that other side is. Once someone internalizes that, the rest is fairly easy with Any remote endpoint - and most of these how do I ETL with 'ProductX' questions become unnecessary. You probably also want to clarify that you want something free. There are commercial offerings from FusionWare, BlueFinity, and others. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com http://Nebula-RnD.com/blog Visit http://PickWiki.com! Contribute! http://Twitter.com/TonyGravagno http://groups.google.com/group/mvdbms/about ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
From: Tony Gravagno ...To me, the U2 box is just one end of the equation, it's not the middle tier. The U2 side of things uses just grunt code or dict items that any of us here can write. From: Wjhonson The nature Tony of code 8sharing8 between users of this group, is Free. I share my code, others share their code. No one puts everything they've written on pickwiki So it's entirely possible someone has written a general purpose ETL to go into Universe I'm confused about your mention of Dict items because I don't see how you use Dict items for Uploading. I see how you use them for Downloading. Maybe you could give an example of why you would read the Dict for an upload. In a public forum we discuss options. That doesn't necessarily mean you're going to get a complete solution, or a completely free one. The irony of your inquiries is that even when people give you complete and completely free solutions, you tend to argue with them and change the scope of the request. So my approach with you is simply to provide a fishing line and point to where the fishing is good, and leave it to you to catch your own fish. We've discussed this many times over the years... Anyway, to answer your question, depending on what the remote source is you can use local dict items as a schema for validating data. Part of the ETL process often involves data validation and/or cleansing. In a homegrown solution you can provide the exact same data that is required for a relational database, the table, key, and field names, and loop to process inbound data. For a simple solution just read the dict items, get the attribute number, and you now know where to put the data. The point here is that the external interface doesn't need to know that the CustomerName data is in attribute 2, it just provides a column name and the data and your code works out where it goes. Since you asked, I'll also hop into my salesman shoes with an [AD]: mv.NET includes a feature called Solution Objects where strongly typed class libraries (DAL and BAL) are generated using U2 file dictionaries. If the ETL code is abstracted to a middle tier, you can use a class like this to load your data using simple object instances: var sourceData = GetDataFromWherever(mySpecs); for(var rnum =0; rnum+=1; rnumsourceData.Count) { var source = sourceData[rnum]; var toU2 = new Customer() { Name = source.CustName, Balance = source.AccountBal, LastPaymentDate = source.LDate, ... } toU2.Save(); } The Customer class and properties were generated from dict items, and an exception will be thrown if the data is bad, thus providing some level of data integrity. The data can be saved directly into the file, or the Save method can be configured to execute a BASIC program which further processes the data into the right format and locations. I will be happy to consult with developers toward creation of solutions as described here. [/AD] Once again, the solution depends on a proper definition of the problem to be solved. The above code pattern can be used to move data from _anywhere_ into U2, which is a valid response to your general query. Now, as usual, feel free to change the scope of the problem to completely invalidate the responses provided thus far. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET worldwide and provides related development services http://Nebula-RnD.com/blog Visit http://PickWiki.com! Contribute! http://Twitter.com/TonyGravagno http://groups.google.com/group/mvdbms/about ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
That goes the wrong way. Download does not depend on knowing who is consuming what to create it's results. So Upload should not need to have interactive consumption details either. That's my take. It's reads a source and decides on its own without the sources assistance where to put what. You're coming at it more from a point of view of both sides *agreeing* on what data is in what position. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
You could modify Brian Leach's freeware BCI.IMPORT tool which is designed for SQL / BCI imports. But looks relatively easy to modify for what you want ! ;-) With his permission, of course ! I just downloaded to have a peek... as I have been looking at his other tools lately... There is also provision for multivalues so that's great! Check out Brian's website... http://www.brianleach.co.uk/pages/freebies.htm -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Saturday, 27 October 2012 2:40 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UPLOAD not DOWNLOAD That goes the wrong way. Download does not depend on knowing who is consuming what to create it's results. So Upload should not need to have interactive consumption details either. That's my take. It's reads a source and decides on its own without the sources assistance where to put what. You're coming at it more from a point of view of both sides *agreeing* on what data is in what position. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ** IMPORTANT MESSAGE * This e-mail message is intended only for the addressee(s) and contains information which may be confidential. If you are not the intended recipient please advise the sender by return email, do not use or disclose the contents, and delete the message and any attachments from your system. Unless specifically indicated, this email does not constitute formal advice or commitment by the sender or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. We can be contacted through our web site: commbank.com.au. If you no longer wish to receive commercial electronic messages from us, please reply to this e-mail by typing Unsubscribe in the subject line. ** ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UPLOAD not DOWNLOAD
Interesting. I'm just reading the documentation and it addresses a few nagging things that were floating around in my head about how this wouldn't work. Brian gives me a framework I can work in, I probably won't use his code, but just the skeleton of the ideas and write my own parser to work in a similar way to how he explains his. -Original Message- From: Hona, David david.h...@cba.com.au To: U2 Users List u2-users@listserver.u2ug.org Sent: Fri, Oct 26, 2012 10:23 pm Subject: Re: [U2] UPLOAD not DOWNLOAD You could modify Brian Leach's freeware BCI.IMPORT tool which is designed for SQL / BCI imports. But looks relatively easy to modify for what you want ! ;-) With his permission, of course ! I just downloaded to have a peek... as I have been looking at his other tools lately... There is also provision for multivalues so that's great! Check out Brian's website... http://www.brianleach.co.uk/pages/freebies.htm -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Saturday, 27 October 2012 2:40 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UPLOAD not DOWNLOAD That goes the wrong way. Download does not depend on knowing who is consuming what to create it's results. So Upload should not need to have interactive consumption details either. That's my take. It's reads a source and decides on its own without the sources assistance where to put what. You're coming at it more from a point of view of both sides *agreeing* on what data is in what position. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ** IMPORTANT MESSAGE * This e-mail message is intended only for the addressee(s) and contains information which may be confidential. If you are not the intended recipient please advise the sender by return email, do not use or disclose the contents, and delete the message and any attachments from your system. Unless specifically indicated, this email does not constitute formal advice or commitment by the sender or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. We can be contacted through our web site: commbank.com.au. If you no longer wish to receive commercial electronic messages from us, please reply to this e-mail by typing Unsubscribe in the subject line. ** ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users