Re: [U2] What is true
To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UV] Do you avoid TRIGGERS because of the difficulty using DEBUG or RAID with them? Was: Universe Triggers
Now that (from UV10.1) Index-based triggers are officially supported, can these replace your SQL-based triggers? These have less functionality and less overhead, but that's the price you have to pay Can't say I had a chance to try it for myself...yet...! -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson Sent: Saturday, 27 July 2013 5:32 AM To: U2 Users List Subject: [U2] [UV] Do you avoid TRIGGERS because of the difficulty using DEBUG or RAID with them? Was: Universe Triggers How many people avoid using triggers BECAUSE of the virtual impossibility of using RAID with Triggers? On 7/26/2013 12:33 PM, Phil Walker wrote: I won't be holding my breath Charles ;-) -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson Sent: Friday, 26 July 2013 9:22 p.m. To: U2 Users List Subject: Re: [U2] Universe Triggers re. triggers Raid, I could not agree with Phil more. Well said. Come on, Rocket! On 7/19/2013 1:32 AM, Phil Walker wrote: Ken, I am glad you raised the issue about debugging a program with a file which has a trigger attached. I have been on to UV (Vmark/Ardent/IBM/Rocket for ages about fixing this pushing for the ability to be able to step into the trigger code, but at a VERY MINIMUM being able to debug the program and perform the write on the file, and in effect step over the trigger subroutine and carry on debugging. The issue is the trigger subroutine cannot support input, so what UV have done is basically say you are using the debugger so you are inputting debug commands so you will abort. They need to turn this restriction off for debugging so that either of the above two scenarios is supported. In a Microsoft world I can debug anything through the connected world of web/databases etc.. Have had no feedback from UV -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ken Ford Sent: Friday, 19 July 2013 9:48 a.m. To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers Dan, In addition to the other responses you have received, I suggest the following: 1. Have one master file trigger subroutine (globally catalogued) that calls subroutines (locally catalogued) tailored to individual files. This means you don't have to stop and restart Universe when a new trigger is required or a change to an existing one. If the master subroutine changes, you do have to restart Universe. 2. Use a control record that records the subroutine name and state of the trigger for each file having a trigger. 3. Use a program to change the state of a trigger, using the control records in 2 above. 4. Make sure all background processes that have a file with a trigger open are logged out when recompiling the subroutine for that file trigger. 5. Remember that you can't do anything to a file with an active trigger whilst in the RAID debugger (it will crash). Rather, if you are testing a file trigger subroutine, drop the trigger and use a trigger testing program that calls the subroutine after taking a copy of the record being changed, pausing whilst you change it in another session, and then resuming, calling the subroutine. If you would like samples of any of the software mentioned above, let me know, and I can send them to you. Regards, Ken Ford Universe Software Developer t 07 3013 8605 | f 07 3002 8400 e ken.f...@firstmac.com.au | w firstmac.com.au ___ 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] [UD] BASIC Code Failing
In UV we're had similar strange problems with seemingly unchanged source/object code - not work as per normal and things going amiss for no good reason...once we found the object code in BP and the catalog space were mismatched and simply re-catalog'd it. Another time we re-compiled a program - as it was always invoked via RUN BP PROGNAME... in both instances the problem seem to go away. This was in a controlled product environment so it's in highly unlikely someone could of or would've changed the code... In UV you can do a VCATALOG to verify the BASIC object to what is actually catalogued... All of these issues made me wonder if our implementation routines need to have a more robust. More robust in terms of storing some control information for both pre/post verification - hence being able to detect 'unauthorised changes' through the various stages. This could include calculating and storing (say) MD5 (etc) hashes on the source and object to cross verify changes. Hence, make it more easy to detect object or source changes outside the authorised/control deployment process... without having to go through every single file and comparing to tape or disk backups, etc., etc. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Wednesday, 31 July 2013 6:06 AM To: U2 Users List Subject: Re: [U2] [UD] BASIC Code Failing John: That's an interesting thought. We do backups of the application account every night, so I do have the last 10 days object code in a backup (plus the last four months weekly backups). I'll look at this the next time it happens. Thanks, Bill Untitled Page - Original Message - *From:* jhes...@momtex.com *To:* U2 Users List u2-users@listserver.u2ug.org *Date:* 7/30/2013 11:01 AM *Subject:* Re: [U2] [UD] BASIC Code Failing I would also consider the possibility of data corruption at the hardware level. Granted, I would expect that you'd also occasionally find anomalies within your source code and data files if this were the case, but I don't know how your filesystems are set up. If the object code has become corrupt, that would explain why recompiling fixes the problem. The newly created object code will be stored on a new location in the filesystem. Fortunately this possibility is very easy to test for. Just make a copy of your application account on alternate storage and wait for the problem to recur. When it does, open the live object file and your backup copy in an editor with diff capability (Notepad++ is a good one) and see if they still match. -John ** 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] [UD] BASIC Code Failing
David I add version stamps to my code that compile into the object code, so at least I can easily check that the source and object (including that in catdir) matches what I expect. That's at least a small and easy step in the right direction, though that doesn't rule out changes that don't update the stamp of course. The stamps are always updated by my cutting routines and then the items are then added to source control as part of the cut... If you did something similar you can always diff what you've got against your source code control system rather than reinventing the wheel. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Hona, David Sent: 01 August 2013 10:49 To: U2 Users List Subject: Re: [U2] [UD] BASIC Code Failing In UV we're had similar strange problems with seemingly unchanged source/object code - not work as per normal and things going amiss for no good reason...once we found the object code in BP and the catalog space were mismatched and simply re-catalog'd it. Another time we re-compiled a program - as it was always invoked via RUN BP PROGNAME... in both instances the problem seem to go away. This was in a controlled product environment so it's in highly unlikely someone could of or would've changed the code... In UV you can do a VCATALOG to verify the BASIC object to what is actually catalogued... All of these issues made me wonder if our implementation routines need to have a more robust. More robust in terms of storing some control information for both pre/post verification - hence being able to detect 'unauthorised changes' through the various stages. This could include calculating and storing (say) MD5 (etc) hashes on the source and object to cross verify changes. Hence, make it more easy to detect object or source changes outside the authorised/control deployment process... without having to go through every single file and comparing to tape or disk backups, etc., etc. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Wednesday, 31 July 2013 6:06 AM To: U2 Users List Subject: Re: [U2] [UD] BASIC Code Failing John: That's an interesting thought. We do backups of the application account every night, so I do have the last 10 days object code in a backup (plus the last four months weekly backups). I'll look at this the next time it happens. Thanks, Bill Untitled Page - Original Message - *From:* jhes...@momtex.com *To:* U2 Users List u2-users@listserver.u2ug.org *Date:* 7/30/2013 11:01 AM *Subject:* Re: [U2] [UD] BASIC Code Failing I would also consider the possibility of data corruption at the hardware level. Granted, I would expect that you'd also occasionally find anomalies within your source code and data files if this were the case, but I don't know how your filesystems are set up. If the object code has become corrupt, that would explain why recompiling fixes the problem. The newly created object code will be stored on a new location in the filesystem. Fortunately this possibility is very easy to test for. Just make a copy of your application account on alternate storage and wait for the problem to recur. When it does, open the live object file and your backup copy in an editor with diff capability (Notepad++ is a good one) and see if they still match. -John ** 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
Re: [U2] [UD] BASIC Code Failing
Brian, Is the stamp just VERSION = 123 ,? Could you explain what you mean by cutting routines, I've either never heard that term or my old timers is kicking in. dale On 08/01/2013 06:09 AM, Brian Leach wrote: David I add version stamps to my code that compile into the object code, so at least I can easily check that the source and object (including that in catdir) matches what I expect. That's at least a small and easy step in the right direction, though that doesn't rule out changes that don't update the stamp of course. The stamps are always updated by my cutting routines and then the items are then added to source control as part of the cut... If you did something similar you can always diff what you've got against your source code control system rather than reinventing the wheel. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Hona, David Sent: 01 August 2013 10:49 To: U2 Users List Subject: Re: [U2] [UD] BASIC Code Failing In UV we're had similar strange problems with seemingly unchanged source/object code - not work as per normal and things going amiss for no good reason...once we found the object code in BP and the catalog space were mismatched and simply re-catalog'd it. Another time we re-compiled a program - as it was always invoked via RUN BP PROGNAME... in both instances the problem seem to go away. This was in a controlled product environment so it's in highly unlikely someone could of or would've changed the code... In UV you can do a VCATALOG to verify the BASIC object to what is actually catalogued... All of these issues made me wonder if our implementation routines need to have a more robust. More robust in terms of storing some control information for both pre/post verification - hence being able to detect 'unauthorised changes' through the various stages. This could include calculating and storing (say) MD5 (etc) hashes on the source and object to cross verify changes. Hence, make it more easy to detect object or source changes outside the authorised/control deployment process... without having to go through every single file and comparing to tape or disk backups, etc., etc. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Wednesday, 31 July 2013 6:06 AM To: U2 Users List Subject: Re: [U2] [UD] BASIC Code Failing John: That's an interesting thought. We do backups of the application account every night, so I do have the last 10 days object code in a backup (plus the last four months weekly backups). I'll look at this the next time it happens. Thanks, Bill Untitled Page - Original Message - *From:* jhes...@momtex.com *To:* U2 Users Listu2-users@listserver.u2ug.org *Date:* 7/30/2013 11:01 AM *Subject:* Re: [U2] [UD] BASIC Code Failing I would also consider the possibility of data corruption at the hardware level. Granted, I would expect that you'd also occasionally find anomalies within your source code and data files if this were the case, but I don't know how your filesystems are set up. If the object code has become corrupt, that would explain why recompiling fixes the problem. The newly created object code will be stored on a new location in the filesystem. Fortunately this possibility is very easy to test for. Just make a copy of your application account on alternate storage and wait for the problem to recur. When it does, open the live object file and your backup copy in an editor with diff capability (Notepad++ is a good one) and see if they still match. -John ** 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org
Re: [U2] What is true
Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ 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] What is true
This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 13:17 To: U2 Users List Subject: Re: [U2] What is true Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ 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] What is true
Haha - so Scotland is already independent then ... grin It's not the parentheses that define the Boolean, it's the equality by the way. Parentheses just force the precedence. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jim Swain Sent: 01 August 2013 13:24 To: U2 Users List Subject: Re: [U2] What is true This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 13:17 To: U2 Users List Subject: Re: [U2] What is true Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UD] BASIC Code Failing
Dale The stamp I use assigns a dummy variable using strings that contain searchable keys. That means when the code is compiled these strings end up unaltered in the object code string table, so that they can be easily found and extracted. For example: VERDATA='' VERDATA := 'Version=001000136;' VERDATA := 'VerBeta=;' VERDATA := 'VerDate=16637;' VERDATA := 'VerProd=mvPDF;' VERDATA := 'VerTM=mvPDF;' VERDATA := 'VerCopy=2013 Brian Leach Consulting Limited;' VERDATA := 'VerCo=Brian Leach Consulting Limited;' VERDATA := 'VerDesc=Produce a PDF Document by merging data;' VERDATA := 'CatName=PDF.MERGE;' VERDATA := 'VerModule=GENERAL;' VERDATA := 'VerModVer=002003022;' VERDATA := 'VerHist=19 JUL 13 1.0.136 Release 2.3.22;' A useful addition is that I have a I Descriptor that returns this, so I can list the source or object file and rip out these details: LIST pdf.bp.O PDF.MERGE 01:02:24pm 01 Aug 2013 PAGE1 pdf.bp.O.. Version.. Version Description... Module Version PDF.MERGE 1.0.136 Produce a PDF Document by merging data 2.3.22 I did put some free code on my website to do this - look for mvStamp. As for cutting or build scripts, these refer to anything that builds your software.. every site should have something to do this, to ensure a smooth and automated transition from test to live or for deployment. In my case, the build process usually consists of a script written in vbscript (WSH) that runs the various client side builds (for Delphi, C# etc.) then uses UniObjects to execute a server side cutting paragraph passing the new version number. This typically updates the version stamps, recompiles everything, handles any platform builds (most of my stuff runs on UniVerse, UniData, QM and D3), updates a README document from my task system, adds them all into revision control, then calls mvInstaller to build the release package. Then control passes back to the vbscript to assemble the setup (InstallShield or visual studio) and zip the resulting setup ready for upload. I did think about kicking off all the unit tests as well but I prefer to do that after a test installation. All of which took some setting up to begin with but has saved enormous amounts of time and agony since. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of dale kelley Sent: 01 August 2013 12:27 To: U2 Users List Subject: Re: [U2] [UD] BASIC Code Failing Brian, Is the stamp just VERSION = 123 ,? Could you explain what you mean by cutting routines, I've either never heard that term or my old timers is kicking in. dale On 08/01/2013 06:09 AM, Brian Leach wrote: David I add version stamps to my code that compile into the object code, so at least I can easily check that the source and object (including that in catdir) matches what I expect. That's at least a small and easy step in the right direction, though that doesn't rule out changes that don't update the stamp of course. The stamps are always updated by my cutting routines and then the items are then added to source control as part of the cut... If you did something similar you can always diff what you've got against your source code control system rather than reinventing the wheel. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Hona, David Sent: 01 August 2013 10:49 To: U2 Users List Subject: Re: [U2] [UD] BASIC Code Failing In UV we're had similar strange problems with seemingly unchanged source/object code - not work as per normal and things going amiss for no good reason...once we found the object code in BP and the catalog space were mismatched and simply re-catalog'd it. Another time we re-compiled a program - as it was always invoked via RUN BP PROGNAME... in both instances the problem seem to go away. This was in a controlled product environment so it's in highly unlikely someone could of or would've changed the code... In UV you can do a VCATALOG to verify the BASIC object to what is actually catalogued... All of these issues made me wonder if our implementation routines need to have a more robust. More robust in terms of storing some control information for both pre/post verification - hence being able to detect 'unauthorised changes' through the various stages. This could include calculating and storing (say) MD5 (etc) hashes on the source and object to cross verify changes. Hence, make it more easy to detect object or source changes outside the authorised/control deployment process... without having to go through every single file and comparing to tape or disk backups, etc., etc. -Original Message- From: u2-users-boun...@listserver.u2ug.org
Re: [U2] What is true
Do people from Wales take well to being called British? Sadly, almost everything I know about Wales comes from watching Torchwood and Gavin and Stacy A curious feature of true and false on universe: 0001 x=char(32) 0002 if x=0 then crt 'is zero' else crt 'not zero' 0003 if x then crt 'true' else crt 'false' 0004 x:=0 0005 if x=0 then crt 'is zero' else crt 'not zero' 0006 if x then crt 'true' else crt 'false' space is true, but space:zero is false. On Aug 1, 2013, at 8:24 AM, Jim Swain jsw...@zafire.com wrote: This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 13:17 To: U2 Users List Subject: Re: [U2] What is true Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
on universe (not sure of unidata), you can use FILEINFO() to see if something is a file variable: x= crt fileinfo(x,0) returns 0. Would return 1 for an open file. On Jul 31, 2013, at 4:47 PM, Wols Lists antli...@youngman.org.uk wrote: On 31/07/13 09:06, Martin Phillips wrote: Of course, nothing is ever completely black and white. As multivalue Basic has developed, internal data types have gone beyond simply numbers and strings. If I write IF FVAR THEN ... where FVAR is a file variable, what do I expect this to do? The language definition does not tell us but most multivalue products would give us a data type error of some sort because there is no rule for transforming a file variable to a Boolean value. Actually, UV gives us a program crash (or certainly used to :-( Which was a real bummer when porting programs from INFORMATION, seeing as before the CLOSE statement was introduced, doing FILEVAR= was the *recommended* way to close a file! So a fair chunk of PI code would be of the form IF FILEVAR EQ THEN OPEN FILE. Feed that code into UV and BOOM! If you were unlucky enough to test an open variable your program blew up! Cheers, Wol ___ 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] What is true
Not odd at all. The language defines the relational operators as performing a numeric comparison if both items being compared are numbers or can be treated as numbers. It is valid for a numeric string to include leading or trailing spaces. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England +44 (0)1604-709200 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ed Clark Sent: 01 August 2013 14:41 To: U2 Users List Subject: Re: [U2] What is true Do people from Wales take well to being called British? Sadly, almost everything I know about Wales comes from watching Torchwood and Gavin and Stacy A curious feature of true and false on universe: 0001 x=char(32) 0002 if x=0 then crt 'is zero' else crt 'not zero' 0003 if x then crt 'true' else crt 'false' 0004 x:=0 0005 if x=0 then crt 'is zero' else crt 'not zero' 0006 if x then crt 'true' else crt 'false' space is true, but space:zero is false. On Aug 1, 2013, at 8:24 AM, Jim Swain jsw...@zafire.com wrote: This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 13:17 To: U2 Users List Subject: Re: [U2] What is true Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
on universe (not sure of unidata), you can use FILEINFO() to see if something is a file variable: x= crt fileinfo(x,0) returns 0. Would return 1 for an open file. This originated in Prime Information and is available on UniVerse, UniData, PI/open, QM, and probably a few others. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England +44 (0)1604-709200 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
Here is a simple program I wrote and ran on UV 11.1.9. It would be interesting to hear if UD behaves the same way. 0001: A='' 0002: CRT 'A = ':QUOTE(A):' ': 0003: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' 0004: A=0 0005: CRT 'A = ':QUOTE(A):' ': 0006: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' 0007: A='HELLO' 0008: CRT 'A = ':QUOTE(A):' ': 0009: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' 0010: A=1 0011: CRT 'A = ':QUOTE(A):' ': 0012: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' The results are: A = FALSE A = 0 FALSE A = HELLO TRUE A = 1 TRUE Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jim Swain Sent: Thursday, August 01, 2013 8:24 AM To: U2 Users List Subject: Re: [U2] What is true This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 13:17 To: U2 Users List Subject: Re: [U2] What is true Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
Identical on UDNT 7.1.20 - Epicor Software (UK) is a limited company registered in England Wales. Registration Number: 2338274. Registered Office: 6th Floor, One London Wall, London EC2Y 5EB This e-mail and any attachments to it are confidential and is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimize the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. Any views and/or opinions expressed in this e-mail are of the author only and do not represent the views of Epicor Software (UK) Limited or any other company within its group. - -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 15:52 To: U2 Users List Subject: Re: [U2] What is true Here is a simple program I wrote and ran on UV 11.1.9. It would be interesting to hear if UD behaves the same way. 0001: A='' 0002: CRT 'A = ':QUOTE(A):' ': 0003: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' 0004: A=0 0005: CRT 'A = ':QUOTE(A):' ': 0006: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' 0007: A='HELLO' 0008: CRT 'A = ':QUOTE(A):' ': 0009: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' 0010: A=1 0011: CRT 'A = ':QUOTE(A):' ': 0012: IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' The results are: A = FALSE A = 0 FALSE A = HELLO TRUE A = 1 TRUE Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jim Swain Sent: Thursday, August 01, 2013 8:24 AM To: U2 Users List Subject: Re: [U2] What is true This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 13:17 To: U2 Users List Subject: Re: [U2] What is true Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD
Re: [U2] What is true
but only on universe. On unidata and other platforms, space:0 is not zero and not numeric, and is true On Aug 1, 2013, at 9:49 AM, Martin Phillips martinphill...@ladybridge.com wrote: Not odd at all. The language defines the relational operators as performing a numeric comparison if both items being compared are numbers or can be treated as numbers. It is valid for a numeric string to include leading or trailing spaces. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England +44 (0)1604-709200 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ed Clark Sent: 01 August 2013 14:41 To: U2 Users List Subject: Re: [U2] What is true Do people from Wales take well to being called British? Sadly, almost everything I know about Wales comes from watching Torchwood and Gavin and Stacy A curious feature of true and false on universe: 0001 x=char(32) 0002 if x=0 then crt 'is zero' else crt 'not zero' 0003 if x then crt 'true' else crt 'false' 0004 x:=0 0005 if x=0 then crt 'is zero' else crt 'not zero' 0006 if x then crt 'true' else crt 'false' space is true, but space:zero is false. On Aug 1, 2013, at 8:24 AM, Jim Swain jsw...@zafire.com wrote: This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: 01 August 2013 13:17 To: U2 Users List Subject: Re: [U2] What is true Hi, To add a little more to the discussion. I know in UniVerse this is true and I suspect it is true in other flavors of Pick. If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A=0 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in FALSE. A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. A=1 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. I have found this useful in coding. Tom Whitmore RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, August 01, 2013 4:40 AM To: 'U2 Users List' Subject: Re: [U2] What is true To clarify In multivalue, True is not False, where False is anything that is 'falsy' i.e. zero or empty. Obviously different than other languages, notably those where true is -1 (all bits set on a signed integer). So: A = HELLO IF A THEN CRT A : WORLD Gives HELLO WORLD Regarding file variables, the best way to check for these being assigned on UniVerse is to use FILEINFO(). If FileInfo(SomeUnassignedVariable, 0) Then Crt This is an open file variable End Else Crt This isn't End Brian ___ 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
Re: [U2] What is true
on universe, it looks like only fileinfo(var,0) will let you test. fileinfo(var,1) etc will abort complaining that var isn't a file variable On Aug 1, 2013, at 9:52 AM, Martin Phillips martinphill...@ladybridge.com wrote: on universe (not sure of unidata), you can use FILEINFO() to see if something is a file variable: x= crt fileinfo(x,0) returns 0. Would return 1 for an open file. This originated in Prime Information and is available on UniVerse, UniData, PI/open, QM, and probably a few others. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England +44 (0)1604-709200 ___ 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] What is true
Fascinating stuff. :) I don't like the idea of spaces being numeric but when I get data from unknown sources I do tend to TRIM and test for NUM(x). With the following program: - Universe in Information flavor reports True on all tests. - Unidata only reports 3-8 as True - D3 does not consider any of the tests as True, and flags 5,6,8,9,11,12 as non-numeric This is obviously not consistent across all platforms/flavors. X = 1 IF 3 = 3 THEN CRT T1 IF :X = X THEN CRT T2 Y = TEST IF Y THEN CRT T3 IF (Y) THEN CRT T4 Z = IF Z THEN CRT T5 IF (Z) THEN CRT T6 Z = Z:2 IF Z THEN CRT T7 IF (Z) THEN CRT T8 END From: Martin Phillips Not odd at all. The language defines the relational operators as performing a numeric comparison if both items being compared are numbers or can be treated as numbers. It is valid for a numeric string to include leading or trailing spaces. From: Ed Clark A curious feature of true and false on universe: 0001 x=char(32) 0002 if x=0 then crt 'is zero' else crt 'not zero' 0003 if x then crt 'true' else crt 'false' 0004 x:=0 0005 if x=0 then crt 'is zero' else crt 'not zero' 0006 if x then crt 'true' else crt 'false' space is true, but space:zero is false. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
Just adding a little more subtlety. Consider: X = Y = 3 In some languages this sets Y to 3 and then X to Y, so X=3. But in BASIC, as Brian said, we need to force the precedence on Y=3 before X=Y. In other contexts, parentheses force an equation. Consider: SUBROUTINE FOO( X,Y,Z ) and CALL FOO( X,Y,(Z) ) In this case, X and Y can be set and returned. But the third argument is an equation, and while FOO can write to the variable in its own context, when the data comes back it's read-only, since what went out was not a variable but the result of the evaluation of an equation. (X) does nothing to define the Boolean nature of a variable. While it's a nice visual cue it's not functional in the code. T From: Brian Leach It's not the parentheses that define the Boolean, it's the equality by the way. Parentheses just force the precedence. From: Jim Swain This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 From: Tom Whitmore If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
Now I'm getting confused... its not a case of precedence In the case of X = Y = 3 X is set to 1 (true) when Y = 3 X is set to 0 (false) when Y # 3 X in this instance will never = 3 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno Sent: 01 August 2013 17:34 To: u2-users@listserver.u2ug.org Subject: Re: [U2] What is true Just adding a little more subtlety. Consider: X = Y = 3 In some languages this sets Y to 3 and then X to Y, so X=3. But in BASIC, as Brian said, we need to force the precedence on Y=3 before X=Y. In other contexts, parentheses force an equation. Consider: SUBROUTINE FOO( X,Y,Z ) and CALL FOO( X,Y,(Z) ) In this case, X and Y can be set and returned. But the third argument is an equation, and while FOO can write to the variable in its own context, when the data comes back it's read-only, since what went out was not a variable but the result of the evaluation of an equation. (X) does nothing to define the Boolean nature of a variable. While it's a nice visual cue it's not functional in the code. T From: Brian Leach It's not the parentheses that define the Boolean, it's the equality by the way. Parentheses just force the precedence. From: Jim Swain This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 From: Tom Whitmore If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. ___ 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] Anti-fraud software
Are any of you using some sort of anti-fraud software? If so, what? Did you build it yourself or is there a software package out there that will work with UniVerse. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
Which is why I used it in my response. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ed Clark Sent: 01 August 2013 17:10 To: U2 Users List Subject: Re: [U2] What is true on universe, it looks like only fileinfo(var,0) will let you test. fileinfo(var,1) etc will abort complaining that var isn't a file variable On Aug 1, 2013, at 9:52 AM, Martin Phillips martinphill...@ladybridge.com wrote: on universe (not sure of unidata), you can use FILEINFO() to see if something is a file variable: x= crt fileinfo(x,0) returns 0. Would return 1 for an open file. This originated in Prime Information and is available on UniVerse, UniData, PI/open, QM, and probably a few others. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England +44 (0)1604-709200 ___ 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] What is true
At T said that's in other languages (notably C style languages where = is always assignment and == or === is equality/equivalence). In Pascal and Delphi := is assignment, which gets confusing when you have three windows open, one with UniVerse Basic, one with Delphi and one with C# or JavaScript, and you're writing end-to-end code ! In MultiValue code = always binds to a LHS value as an assignment, and otherwise as an equality. So yes, X = Y = 3 is the same as X = (Y = 3) But the parentheses make it clearer and do force precedence though in your example the resulting ordering actually works out to be the same as the original (it still forces an expression jump in a compiler). Consider: X = X + Y = 3 You'd want to know whether you mean: X = (X + Y) = 3 Or X = X + (Y = 3) Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jim Swain Sent: 01 August 2013 17:46 To: U2 Users List Subject: Re: [U2] What is true Now I'm getting confused... its not a case of precedence In the case of X = Y = 3 X is set to 1 (true) when Y = 3 X is set to 0 (false) when Y # 3 X in this instance will never = 3 Jim Swain - Developer Telephone: +44 (0) 1295 701 810 | Fax: +44 (0) 1295 701 819 www.zafire.com Consider the environment. Think before you print. This is a commercial communication from Zafire Group. This communication is confidential and is intended only for the person to whom it is addressed. If you are not that person you are not permitted to make use of the information and you are requested to notify us immediately that you have received it and then destroy the copy in your possession. Zafire Group may monitor outgoing and incoming e-mails. By replying to this e-mail you consent to such monitoring. This e-mail message and any attached files have been scanned for the presence of computer viruses. However, you are advised that you open attachments at your own risk. Zafire Limited is a limited liability company registered in England and Wales. Co. Reg. No. 3968255. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 55. Zafire Aviation Software Limited is a limited liability company registered in England and Wales. Co. Reg. No. 05577742. Our registered address is Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70 If you have any concerns regarding the content of this e-mail please contact postmas...@zafire.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno Sent: 01 August 2013 17:34 To: u2-users@listserver.u2ug.org Subject: Re: [U2] What is true Just adding a little more subtlety. Consider: X = Y = 3 In some languages this sets Y to 3 and then X to Y, so X=3. But in BASIC, as Brian said, we need to force the precedence on Y=3 before X=Y. In other contexts, parentheses force an equation. Consider: SUBROUTINE FOO( X,Y,Z ) and CALL FOO( X,Y,(Z) ) In this case, X and Y can be set and returned. But the third argument is an equation, and while FOO can write to the variable in its own context, when the data comes back it's read-only, since what went out was not a variable but the result of the evaluation of an equation. (X) does nothing to define the Boolean nature of a variable. While it's a nice visual cue it's not functional in the code. T From: Brian Leach It's not the parentheses that define the Boolean, it's the equality by the way. Parentheses just force the precedence. From: Jim Swain This is not true as when A='HELLO' IF (A) returns true. You use the parenthesis to set a Boolean variable, i.e BRITISH = (COUNTRY = 'ENGLAND' OR COUNTRY = 'WALES') etc the var BRITISH is set to 1 when the conditions inside the parenthesis are met, otherwise BRITISH is set to 0 From: Tom Whitmore If you wrap a variable in parenthesis it will be treated as a Boolean test. For example: A='HELLO' IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE' will result in TRUE. ___ 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] Anti-fraud software
Jerry You might want to contact Susan Joslyn. She seems pretty switched onto anything in the compliance/fraud arenas. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jerry Banker Sent: 01 August 2013 17:54 To: U2 Users Group Technical Subject: [U2] Anti-fraud software Are any of you using some sort of anti-fraud software? If so, what? Did you build it yourself or is there a software package out there that will work with UniVerse. ___ 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] What is true
You're right. X is never 3, but I did say so. As I said below, that's the way it works in languages other than BASIC. X=Y=3 will set both values to 3 because of the order of operations. And I was wrong when I said we Need to force precedence. It doesn't Need to be forced in BASIC, but in other languages it does. In BASIC, without the parentheses each developer will be left to wonder or just know from experience that BASIC is different from other languages. The parentheses in this case provide clarity and force precedence for anyone coming to BASIC from the outside world. Hehe, but we know that never happens... Thanks. T Last time I agree with Brian on anything... ;) From: Jim Swain Now I'm getting confused... its not a case of precedence In the case of X = Y = 3 X is set to 1 (true) when Y = 3 X is set to 0 (false) when Y # 3 X in this instance will never = 3 From: Tony Gravagno Just adding a little more subtlety. Consider: X = Y = 3 In some languages this sets Y to 3 and then X to Y, so X=3. But in BASIC, as Brian said, we need to force the precedence on Y=3 before X=Y. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Anti-fraud software
Jerry Do you mean Software written in UniVerse that monitors anti-fraud activity Or Software written to prevent fraudulent use of a UniVerse application? Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jerry Banker Sent: 01 August 2013 17:54 To: U2 Users Group Technical Subject: [U2] Anti-fraud software Are any of you using some sort of anti-fraud software? If so, what? Did you build it yourself or is there a software package out there that will work with UniVerse. ___ 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] What is true
Hi again, I have been on a site where they insisted that A = B = C should be written as A = B EQ C to emphasise that the second operator is a relational test. Personally, I use A = (B = C) even though the brackets serve no purpose. It just helps when reading the code. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England +44 (0)1604-709200 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Anti-fraud software
From: Jerry Banker Are any of you using some sort of anti-fraud software? If so, what? Did you build it yourself or is there a software package out there that will work with UniVerse. Could you be more specific? If you're talking about protecting your BASIC apps in the field, I can describe how our Nebula RD products are activated and protected. Comments and suggestions are welcome from our colleagues here. In summary, I have a security mechanism which I've considered offering as a separate product. The user sends a key request and we return a key which locks the product to the specific system over a limited or infinite period of time. It's evolved in response to changing environments, and now works with all MV platforms and versions, OS's and OS versions, can be used with different company products, and keys to specific product versions. I can provide more info on request. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
On 01/08/13 17:10, Ed Clark wrote: on universe, it looks like only fileinfo(var,0) will let you test. fileinfo(var,1) etc will abort complaining that var isn't a file variable Which is why I think the UV implementation is CRAP! You should not be able to *crash* your program simply by accessing a variable. And if a statement makes - under ALL circumstances - complete logical sense. like IF VAR EQ THEN, it should not be a crapshoot whether your program crashes depending on the content of VAR. INFORMATION got this right - you might not be able to mess about with a file variable inside BASIC, but at least you could do anything you wanted that made sense. Cheers, Wol ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
On 01/08/13 19:15, Martin Phillips wrote: Hi again, I have been on a site where they insisted that A = B = C should be written as A = B EQ C to emphasise that the second operator is a relational test. A lot of fellow coders have wondered at it, but as someone who learnt coding in FORTRAN, I *always* use EQ, NE, LT, GT etc as my logical operators. Okay, I had to be careful reading other people's code, but if there was a logical = in my code it was a mistake!!! Cheers, Wol ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
I agree the implementation can be better, although for different reasons. In the INFORMATION way, it allows you to have silent run-time errors when people mistakenly use file handles in place of variables with similar names. At least in the UniVerse model you get a run-time error during testing, instead of silently testing if CLIENT EQ instead of CLIENT.REC EQ . Where I think the implementation could be better, is that the compiler issues an warning about a possible misuse of the file handle as a regular variable. If has enough information to determine if at least a warning can be issue, although a hard compile time error doesn't work, as people my be using that same variable name for different purposes in other areas of the code. We are working on some changes to the language in UniVerse 11.2 that will make implementing more effective static analysis like I propose above easier. Cheers, Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wols Lists Sent: Thursday, August 01, 2013 12:48 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] What is true On 01/08/13 17:10, Ed Clark wrote: on universe, it looks like only fileinfo(var,0) will let you test. fileinfo(var,1) etc will abort complaining that var isn't a file variable Which is why I think the UV implementation is CRAP! You should not be able to *crash* your program simply by accessing a variable. And if a statement makes - under ALL circumstances - complete logical sense. like IF VAR EQ THEN, it should not be a crapshoot whether your program crashes depending on the content of VAR. INFORMATION got this right - you might not be able to mess about with a file variable inside BASIC, but at least you could do anything you wanted that made sense. Cheers, Wol ___ 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] Anti-fraud software
Software written in UniVerse that monitors anti-fraud activity or even software that is built outside of UniVerse that can monitor anti-fraud activity inside. From: br...@brianleach.co.uk To: u2-users@listserver.u2ug.org Date: Thu, 1 Aug 2013 19:09:24 +0100 Subject: Re: [U2] Anti-fraud software Jerry Do you mean Software written in UniVerse that monitors anti-fraud activity Or Software written to prevent fraudulent use of a UniVerse application? Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jerry Banker Sent: 01 August 2013 17:54 To: U2 Users Group Technical Subject: [U2] Anti-fraud software Are any of you using some sort of anti-fraud software? If so, what? Did you build it yourself or is there a software package out there that will work with UniVerse. ___ 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] Anti-fraud software
We are a billing and collections company, as you can imagine we sometimes have fraudulent claims. We want to monitor fraudulent behavior by various parties that use our service to prevent our becoming a party to it. We already have means of controlling access to our software. From: 3xk547...@sneakemail.com To: u2-users@listserver.u2ug.org Date: Thu, 1 Aug 2013 11:28:18 -0700 Subject: Re: [U2] Anti-fraud software From: Jerry Banker Are any of you using some sort of anti-fraud software? If so, what? Did you build it yourself or is there a software package out there that will work with UniVerse. Could you be more specific? If you're talking about protecting your BASIC apps in the field, I can describe how our Nebula RD products are activated and protected. Comments and suggestions are welcome from our colleagues here. In summary, I have a security mechanism which I've considered offering as a separate product. The user sends a key request and we return a key which locks the product to the specific system over a limited or infinite period of time. It's evolved in response to changing environments, and now works with all MV platforms and versions, OS's and OS versions, can be used with different company products, and keys to specific product versions. I can provide more info on request. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com ___ 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] What is true
To further complicate things, I was instructed at one job to use the IF VAR THEN syntax as this was treated a boolean operation and executed faster than IF VAR # ''. We were working on Prime Information at the time. A few years later I went to work for a VAR. I had made changes to the their programs at a customer site and used the IF VAR THEN construct. The code failed in testing. This was on an ADDS Mentor. I went back to the office and wrote a 3 line program of: VAR = 'ABC' IF VAR THEN CRT 'TRUE' ELSE CRT 'FALSE' END I got TRUE on the Prime box and FALSE on the ADDS. I wound up looking at a co-workers copy of THE PICK POCKET GUIDE. There is a chapter titled IN SEARCH OF THE TRUTH. It explained in detail how different PICK systems determine true or false. It did not explain the Prime implementation but was very helpful. I changed my code to read IF VAR # '' THEN and my problem went away. Rich Sammartino ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UV] Do you avoid TRIGGERS because of the difficulty using DEBUG or RAID with them? Was: Universe Triggers
That is not the point. Why should I have to do a workaround to get around something which should just work. I cannot see what would be so hard about allowing the debugging of programs which access a file with a trigger associated with it without aborting which UV currently does. That as a minimum. Hey it might even be good to be able to debug he trigger itself. Yes I could build a framework to call the trigger subroutine with the appropriate arguments, but why should I have to. Why is it so hard to do things? Mostly, I don't get that feeling with SQL, although to be fair MV has lot better string handling via build in functions, but then again SQL has the CLR capability in which I can build most of the MV string handling functions. Has anyone done this BTW? Sorry for the rant guys, but just pent up years of frustration. Cheers Phil -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Hona, David Sent: Thursday, 1 August 2013 9:33 p.m. To: U2 Users List Subject: Re: [U2] [UV] Do you avoid TRIGGERS because of the difficulty using DEBUG or RAID with them? Was: Universe Triggers Now that (from UV10.1) Index-based triggers are officially supported, can these replace your SQL-based triggers? These have less functionality and less overhead, but that's the price you have to pay Can't say I had a chance to try it for myself...yet...! -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson Sent: Saturday, 27 July 2013 5:32 AM To: U2 Users List Subject: [U2] [UV] Do you avoid TRIGGERS because of the difficulty using DEBUG or RAID with them? Was: Universe Triggers How many people avoid using triggers BECAUSE of the virtual impossibility of using RAID with Triggers? On 7/26/2013 12:33 PM, Phil Walker wrote: I won't be holding my breath Charles ;-) -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson Sent: Friday, 26 July 2013 9:22 p.m. To: U2 Users List Subject: Re: [U2] Universe Triggers re. triggers Raid, I could not agree with Phil more. Well said. Come on, Rocket! On 7/19/2013 1:32 AM, Phil Walker wrote: Ken, I am glad you raised the issue about debugging a program with a file which has a trigger attached. I have been on to UV (Vmark/Ardent/IBM/Rocket for ages about fixing this pushing for the ability to be able to step into the trigger code, but at a VERY MINIMUM being able to debug the program and perform the write on the file, and in effect step over the trigger subroutine and carry on debugging. The issue is the trigger subroutine cannot support input, so what UV have done is basically say you are using the debugger so you are inputting debug commands so you will abort. They need to turn this restriction off for debugging so that either of the above two scenarios is supported. In a Microsoft world I can debug anything through the connected world of web/databases etc.. Have had no feedback from UV -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ken Ford Sent: Friday, 19 July 2013 9:48 a.m. To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers Dan, In addition to the other responses you have received, I suggest the following: 1. Have one master file trigger subroutine (globally catalogued) that calls subroutines (locally catalogued) tailored to individual files. This means you don't have to stop and restart Universe when a new trigger is required or a change to an existing one. If the master subroutine changes, you do have to restart Universe. 2. Use a control record that records the subroutine name and state of the trigger for each file having a trigger. 3. Use a program to change the state of a trigger, using the control records in 2 above. 4. Make sure all background processes that have a file with a trigger open are logged out when recompiling the subroutine for that file trigger. 5. Remember that you can't do anything to a file with an active trigger whilst in the RAID debugger (it will crash). Rather, if you are testing a file trigger subroutine, drop the trigger and use a trigger testing program that calls the subroutine after taking a copy of the record being changed, pausing whilst you change it in another session, and then resuming, calling the subroutine. If you would like samples of any of the software mentioned above, let me know, and I can send them to you. Regards, Ken Ford Universe Software Developer t 07 3013 8605 | f 07 3002 8400 e ken.f...@firstmac.com.au | w firstmac.com.au ___ U2-Users mailing list U2-Users@listserver.u2ug.org
[U2] Copy File to SharePoint
We are running HPUX w/ UniData 7.2. We also have a Windows box running SharePoint. In MANY other situations, we have always built an export file in a UNIX directory (like a tab-delimited txt file), then used Samba to copy the file from the UNIX box to a networked drive. This does not work with a box running SharePoint because the directories shown on the SharePoint box are not real directories. They are simply renderings of a Sequel query (more or less). Thus, Samba cannot connect to one of these fake SharePoint directories. Has anyone figured out a way to take a file from UNIX and copy it into SharePoint? JRI ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Copy File to SharePoint
I've seen it done with where a script (Powershell iirc) watches a directory and imports files then removes them from a directory. Robert F. Porter, MCSE, CCNA, ZCE, OCP-Java Lead Sr. Programmer / Analyst Laboratory Information Services Ochsner Health System This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Copy File to SharePoint
I believe this is what it was based on: http://gallery.technet.microsoft.com/office/Bulk-Import-SharePoint-e5ab637c I didn't do the one I was remembering, so can't be 100% positive, but this looks like it would pretty much do the same thing. Robert F. Porter, MCSE, CCNA, ZCE, OCP-Java Lead Sr. Programmer / Analyst Laboratory Information Services Ochsner Health System This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] accuterm WED issue
Interesting issue popped up a couple of days ago with Accuterms WED. We have a program calling a subroutine that wraps to the next line: CALL GETENTRY.TO( CMDDATA, CMMND, '30L', '_', '0X', CMDHELP, 01, 22, CMDPROMPT, 'QEGIA', 59 ) When I formatted the program in WED it added a space after the 01 on the next line. At least I assume it's a space because the Universe editor does not show any other characters with an ^. This caused me to be blown out of universe - still not sure why yet- with a segmentation fault. CALL GETENTRY.TO(CMDDATA,CMMND,'30L', '_', '0X',CMDHELP, 01 ,22,CMDPROMPT,'QEGIA',59) Removed the space and everything works fine. Curious if anybody has seen this activity or had the same thing happen to them? Thanks Ron Bertrand | ANALYST,AP SYS 3 ISD, Group Health Cooperative 206-901-4519 bertran...@ghc.org GHC Confidentiality Statement This message and any attached files might contain confidential information protected by federal and state law. The information is intended only for the use of the individual(s) or entities originally named as addressees. The improper disclosure of such information may be subject to civil or criminal penalties. If this message reached you in error, please contact the sender and destroy this message. Disclosing, copying, forwarding, or distributing the information by unauthorized individuals or entities is strictly prohibited by law. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Copy File to SharePoint
Has anyone figured out a way to take a file from UNIX and copy it into SharePoint? Google for unix to sharepoint returns good results. HTH T ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] accuterm WED issue
AccuTerm adding a space into code might be an issue to report to supp...@asent.com. I think the segfault should be addressed with Rocket Support. HTH T From: Bertrand, Ron Interesting issue popped up a couple of days ago with Accuterms WED. We have a program calling a subroutine that wraps to the next line: CALL GETENTRY.TO( CMDDATA, CMMND, '30L', '_', '0X', CMDHELP, 01, 22, CMDPROMPT, 'QEGIA', 59 ) When I formatted the program in WED it added a space after the 01 on the next line. At least I assume it's a space because the Universe editor does not show any other characters with an ^. This caused me to be blown out of universe - still not sure why yet- with a segmentation fault. CALL GETENTRY.TO(CMDDATA,CMMND,'30L', '_', '0X',CMDHELP, 01 ,22,CMDPROMPT,'QEGIA',59) Removed the space and everything works fine. Curious if anybody has seen this activity or had the same thing happen to them? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] accuterm WED issue
Need to spend some time trying to figure out just what is happening in universe so Rocket has something to work with. Noticed it while doing a diff, fixed it and problem gone. Adding the space is definitely something I need to get with assent on. Thanks Ron -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno Sent: Thursday, August 01, 2013 3:39 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] accuterm WED issue AccuTerm adding a space into code might be an issue to report to supp...@asent.com. I think the segfault should be addressed with Rocket Support. HTH T From: Bertrand, Ron Interesting issue popped up a couple of days ago with Accuterms WED. We have a program calling a subroutine that wraps to the next line: CALL GETENTRY.TO( CMDDATA, CMMND, '30L', '_', '0X', CMDHELP, 01, 22, CMDPROMPT, 'QEGIA', 59 ) When I formatted the program in WED it added a space after the 01 on the next line. At least I assume it's a space because the Universe editor does not show any other characters with an ^. This caused me to be blown out of universe - still not sure why yet- with a segmentation fault. CALL GETENTRY.TO(CMDDATA,CMMND,'30L', '_', '0X',CMDHELP, 01 ,22,CMDPROMPT,'QEGIA',59) Removed the space and everything works fine. Curious if anybody has seen this activity or had the same thing happen to them? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users GHC Confidentiality Statement This message and any attached files might contain confidential information protected by federal and state law. The information is intended only for the use of the individual(s) or entities originally named as addressees. The improper disclosure of such information may be subject to civil or criminal penalties. If this message reached you in error, please contact the sender and destroy this message. Disclosing, copying, forwarding, or distributing the information by unauthorized individuals or entities is strictly prohibited by law. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Copy File to SharePoint
Not an endorsement, but my kneejerk response is java: https://code.google.com/p/java-sharepoint-library/ -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno Sent: Thursday, August 01, 2013 3:14 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Copy File to SharePoint Has anyone figured out a way to take a file from UNIX and copy it into SharePoint? Google for unix to sharepoint returns good results. HTH T ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users - IMPORTANT NOTICE: This message is intended only for the addressee and may contain confidential, privileged information. If you are not the intended recipient, you may not use, copy or disclose any information contained in the message. If you have received this message in error, please notify the sender by reply e-mail and delete the message. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] What services to MV DBMS VARs provide?
Comments welcome on new blog: http://Nebula-RnD.com/blog/tech/mv/2013/08/var1.html ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What is true
Martin, that's actually one of my standards. Due to the ambiguity of several characters, most notably , , and =, we use EQ, NE, LT, LE, GT, and GE for comparison and use for array extraction and replacement and = for assignment. Except in SB+, which doesn't allow such critters. And kudos for the characters that serve no purpose! Personally, I prefer the readability of: IF (VAR1 GT VAR2) THEN vs. IF VAR1VAR2 THEN but then again, that's just one perspective. On Thu, Aug 1, 2013 at 12:15 PM, Martin Phillips martinphill...@ladybridge.com wrote: Hi again, I have been on a site where they insisted that A = B = C should be written as A = B EQ C to emphasise that the second operator is a relational test. Personally, I use A = (B = C) even though the brackets serve no purpose. It just helps when reading the code. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England +44 (0)1604-709200 ___ 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