Re: [U2] PrepareXML question
Hi David, Doesn't look like it. If you need to write the xml, write it to a type 19 file and use system(1017) to ensure the document doesn't get CRLFs converted to UV system marks. assign @true to system(1017) write xml on type19file,id assign @false to system(1017) z = preparexml('/.../':id,handle) Otherwise, have a look at the xmapopen() function instead. This works pretty well. Cheers, Stuart -Original Message- We have been using PrepareXML (UV 10.0 HP-UX 11.11) etc in a BASIC program successfully for several years processing a file, but now also need to extract XML from a Web response gained from an HTTP submitRequest. This will of course appear in a variable, but PrepareXML seems to require the XML document to be in a physical file. Is there any way to persuade PrepareXML to use a variable instead of a file ?? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] RFS error question
Perfect, thanks! From: dgo...@interlinebrands.com To: u2-users@listserver.u2ug.org Date: Thu, 17 Jun 2010 08:35:58 -0400 Subject: Re: [U2] RFS error question Dan, You may want to look here. https://u2tcint.rocketsoftware.com/developerzone/techarticles/wterhune0512/ Below is extract from it. Listing 23. Runtime warnings, message 14 Invalid tm_afid,tm:1, U_tm_close, Sat Jul 7 14:45:33 2004, tm_afid:8, U_tm_aft_n:90. When a udt process opens a data file, its tm buddy sends back a file descriptor called TM AFID to the udt process. This TM AFID is verified by the tm process whenever udt asks the tm to perform any operations on the file. This message indicates that 1 is not currently a valid TM AFID. This problem is most likely caused by the udt process double-closing a TM AFID, but has not been isolated and reproduced. There does not seem to be any consequence to the running application. -Dan G. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dan Fitzgerald Sent: Wednesday, June 16, 2010 11:46 PM To: u2-users@listserver.u2ug.org Subject: [U2] RFS error question If you were running RFS looked in your sm.log saw this error message: Invalid tm_afid,tm:42, U_tm_close, Tue Jun 15 10:45:14 2010, tm_afid:6, U_tm_aft_n:1010. ...what do you think this would indicate? _ The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. http://www.windowslive.com/campaign/thenewbusy?tile=multiaccountocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_4 ___ 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 _ The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with Hotmail. http://www.windowslive.com/campaign/thenewbusy?tile=multicalendarocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_5 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] I've run out of quotes
OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] I've run out of quotes
You can usually escape any given character passed to the shell by preceding it with a backslash. In other words: To pass a quote: \ To pass a backslash: \\ Etc. Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:15 AM To: U2 Users List Subject: [U2] I've run out of quotes OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.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] I've run out of quotes
Write a shell script to your current directory and execute it and delete it George Gallen wrote: OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] I've run out of quotes
that doesn't help. I'm passing is: mysql --user username -e LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp(); database I can't think of anyway to escape anything, and still not confuse UV. George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Larry Hiscock Sent: Thursday, June 17, 2010 1:22 PM To: 'U2 Users List' Subject: Re: [U2] I've run out of quotes You can usually escape any given character passed to the shell by preceding it with a backslash. In other words: To pass a quote: \ To pass a backslash: \\ Etc. Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:15 AM To: U2 Users List Subject: [U2] I've run out of quotes OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] I've run out of quotes
I wanted to avoid that route...but I don't think I can. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Thursday, June 17, 2010 1:28 PM To: U2 Users List Subject: Re: [U2] I've run out of quotes Write a shell script to your current directory and execute it and delete it George Gallen wrote: OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- --- - Jeff Schasny - Denver, Co, USA jschasny at gmail dot 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] I've run out of quotes
Use the QUOTE() function, thusly: sh -c mysql --user username -e :QUOTE(LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp();) database Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:30 AM To: U2 Users List Subject: Re: [U2] I've run out of quotes that doesn't help. I'm passing is: mysql --user username -e LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp(); database I can't think of anyway to escape anything, and still not confuse UV. George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Larry Hiscock Sent: Thursday, June 17, 2010 1:22 PM To: 'U2 Users List' Subject: Re: [U2] I've run out of quotes You can usually escape any given character passed to the shell by preceding it with a backslash. In other words: To pass a quote: \ To pass a backslash: \\ Etc. Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:15 AM To: U2 Users List Subject: [U2] I've run out of quotes OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.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 ___ 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] I've run out of quotes
Oops ... missed something at the end. Try this: sh -c mysql --user username -e :QUOTE(LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp();): database --Larry -Original Message- From: Larry Hiscock [mailto:lar...@wcs-corp.com] Sent: Thursday, June 17, 2010 10:43 AM To: 'U2 Users List' Subject: RE: [U2] I've run out of quotes Use the QUOTE() function, thusly: sh -c mysql --user username -e :QUOTE(LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp();) database Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:30 AM To: U2 Users List Subject: Re: [U2] I've run out of quotes that doesn't help. I'm passing is: mysql --user username -e LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp(); database I can't think of anyway to escape anything, and still not confuse UV. George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Larry Hiscock Sent: Thursday, June 17, 2010 1:22 PM To: 'U2 Users List' Subject: Re: [U2] I've run out of quotes You can usually escape any given character passed to the shell by preceding it with a backslash. In other words: To pass a quote: \ To pass a backslash: \\ Etc. Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:15 AM To: U2 Users List Subject: [U2] I've run out of quotes OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 Ext 220 The Wyanoke Group http://www.wyanokegroup.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 ___ 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] @LOGNAME on Unidata
We recently migrated from Unidata 7.1.8 on Solaris to Unidata 7.2.5 on RedHat. We make use of @LOGNAME quite a bit to determine a person's username. Since our migration, however, we've documented some cases where @LOGNAME is not returning the proper username - it returns someone else's. What's bizarre is that most of the time it's right, but occasionally it's not. Has anyone seen or heard of this? When we had a report of this (with documentation) I thought it was weird. Today we just got a call about a different problem which I'm 99% sure is tied to this since it makes use of @LOGNAME. Like the above, sometimes it's correct, sometime it's wrong. -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] I've run out of quotes
When I've run into situations like this I just set up vars to hold the chars I need DQ = '' SQ = '' BS = '/' ASTRING = BS:'HELLO MA BABY ':SQ:DQ:'GAL':DQ:SQ:BS Larry Hiscock lar...@wcs-corp.com wrote: = Oops ... missed something at the end. Try this: sh -c mysql --user username -e :QUOTE(LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp();): database --Larry -Original Message- From: Larry Hiscock [mailto:lar...@wcs-corp.com] Sent: Thursday, June 17, 2010 10:43 AM To: 'U2 Users List' Subject: RE: [U2] I've run out of quotes Use the QUOTE() function, thusly: sh -c mysql --user username -e :QUOTE(LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp();) database Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:30 AM To: U2 Users List Subject: Re: [U2] I've run out of quotes that doesn't help. I'm passing is: mysql --user username -e LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp(); database I can't think of anyway to escape anything, and still not confuse UV. George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Larry Hiscock Sent: Thursday, June 17, 2010 1:22 PM To: 'U2 Users List' Subject: Re: [U2] I've run out of quotes You can usually escape any given character passed to the shell by preceding it with a backslash. In other words: To pass a quote: \ To pass a backslash: \\ Etc. Larry Hiscock Western Computer Services -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 17, 2010 10:15 AM To: U2 Users List Subject: [U2] I've run out of quotes OKHow do I setup a sh -c when what I want to pass has in it, single quotes, double quotes and backslashes? George Gallen Senior Programmer/Analyst Accounting/Data Division, EDI Administrator ggal...@wyanokegroup.com ph:856.848.9005 begin_of_the_skype_highlighting 856.848.9005 end_of_the_skype_highlighting Ext 220 The Wyanoke Group http://www.wyanokegroup.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 ___ 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] @LOGNAME on Unidata
I have seen this in the past where the file wtmp usually found in /var/adm is corrupt or too big ( over 2 meg ). To correct this just type at the unix prompt wtmp And it will clear the file.I recommend doing this just before a reboot of the system. -Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: Thursday, June 17, 2010 2:04 PM To: U2 Users List Subject: [U2] @LOGNAME on Unidata We recently migrated from Unidata 7.1.8 on Solaris to Unidata 7.2.5 on RedHat. We make use of @LOGNAME quite a bit to determine a person's username. Since our migration, however, we've documented some cases where @LOGNAME is not returning the proper username - it returns someone else's. What's bizarre is that most of the time it's right, but occasionally it's not. Has anyone seen or heard of this? When we had a report of this (with documentation) I thought it was weird. Today we just got a call about a different problem which I'm 99% sure is tied to this since it makes use of @LOGNAME. Like the above, sometimes it's correct, sometime it's wrong. -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 ___ 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] @LOGNAME on Unidata
On 06/17/10 14:20, Dan Goble wrote: I have seen this in the past where the file wtmp usually found in /var/adm is corrupt or too big ( over 2 meg ). To correct this just type at the unix prompt wtmp And it will clear the file.I recommend doing this just before a reboot of the system. Thanks Dan. Our wtmp is under 1Meg and just rotated this week, so I can't imagine this is the culprit, but I'll give it a whirl... -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] @LOGNAME on Unidata
On 6/17/2010 2:23 PM, Jeffrey Butera wrote: On 06/17/10 14:20, Dan Goble wrote: I have seen this in the past where the file wtmp usually found in /var/adm is corrupt or too big ( over 2 meg ). To correct this just type at the unix prompt wtmp And it will clear the file.I recommend doing this just before a reboot of the system. Thanks Dan. Our wtmp is under 1Meg and just rotated this week, so I can't imagine this is the culprit, but I'll give it a whirl... We had an issue similar to this, but I am having difficulty recalling what the issue was. It was the strangest thing, right much of the time, but consistently it would not be correct. Some things that come to mind, named (or un-named) COMMON. Re-entrant programs. I will check with some team members. It has been probably 5-10 years since this issue for us. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] I've run out of quotes
As an aside, most people here know that I prefer to do things outside of the DBMS, but driven by the DBMS. So I do what you're talking about all the time with mySQL, cURL, and many other command-line tools. Combine the great advice you've received so far to create the best solution: - Use variables for delimiters rather than embedded escapes. It's more readable. - There's no shame in writing to the OS and then executing. In fact it can be very valuable to capture output and errors when you execute something like this: /tmp/cmds/13122.cmd 13122.out 213122.err The only issues here are security, permissions, and making sure you remove/archive files when done. The archive can help you to identify chronic issues. (The 13122 is anything unique, usually a port/pid.) - And not mentioned so far in this thread but maybe implied, keep your code readable! * code not intended to be functional, just an example of style: SQ = ' DQ = '' EOL = SQ : \n : SQ CMD = mysql OPTIONS = GOSUB GET.OPTIONS ;* extended logic returns something like -aBcEe LOGIN = --user :UNAME: : : PSW REPLACE.TABLE = REPLACE INTO TABLE : RTNAME TERMINATE1 = EOL * Now build the command CMDLINE = CMD : OPTIONS : LOGIN CMDLINE := REPLACE.TABLE : TERMINATE1 : SET.ETC.ETC DBMS.CMD = sh -c : SQ : CMDLINE : SQ That code is Much easier to debug and Much easier to extend with new functionality (remember, I do this all the time and I keep coming back to this code for enhancements and fixes). Each piece is localized and you don't need to worry about botching the entire string when fatfingering on a small change. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET and other Pick/MultiValue products worldwide, and provides related development services remove.pleaseNebula-RnD.com/blog (latest blogs on Web Services) Visit PickWiki.com! Contribute! http://Twitter.com/TonyGravagno ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] @LOGNAME on Unidata
On Universe you can use SYSTEM(19) instead of @LOGNAME. It might exist on Unidata too. I don't know if @LOGNAME gets it from the Unix environment LOGNAME variable. If so, there may be a Unix script that is changing the environment variable. You can try: - Original Message From: Jeffrey Butera jbut...@hampshire.edu To: U2 Users List u2-users@listserver.u2ug.org Sent: Thu, June 17, 2010 2:04:08 PM Subject: [U2] @LOGNAME on Unidata We recently migrated from Unidata 7.1.8 on Solaris to Unidata 7.2.5 on RedHat. We make use of @LOGNAME quite a bit to determine a person's username. Since our migration, however, we've documented some cases where @LOGNAME is not returning the proper username - it returns someone else's.What's bizarre is that most of the time it's right, but occasionally it's not. Has anyone seen or heard of this? When we had a report of this (with documentation) I thought it was weird. Today we just got a call about a different problem which I'm 99% sure is tied to this since it makes use of @LOGNAME. Like the above, sometimes it's correct, sometime it's wrong. -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 ___ 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] @LOGNAME on Unidata
Hi Jeff, While at Beloit I had a problem with @LOGNAME. It only showed up when a Datatel program was calling another Datatel program (or something like that). I know it had something to do with a problem with Uniobjects and PAM authentication. The work-around was to add the DMI username and password in a DMIEXTS record. We used a Datatel subroutine to control access to budgets for reports such as the trial balance report. Turned out the report thought everyone was datatel. Worse yet, at the time we found this out, the user datatel was setup to have wide open budget access. I'm wondering if Datatel's strange world of listeners is involved in your case. On the other hand; going to Unidata 7.2.x was the solution for our budget access problem as I was able to undo the above work-around. --- On Thu, 6/17/10, Jeffrey Butera jbut...@hampshire.edu wrote: From: Jeffrey Butera jbut...@hampshire.edu Subject: [U2] @LOGNAME on Unidata To: U2 Users List u2-users@listserver.u2ug.org Date: Thursday, June 17, 2010, 2:04 PM We recently migrated from Unidata 7.1.8 on Solaris to Unidata 7.2.5 on RedHat. We make use of @LOGNAME quite a bit to determine a person's username. Since our migration, however, we've documented some cases where @LOGNAME is not returning the proper username - it returns someone else's. What's bizarre is that most of the time it's right, but occasionally it's not. Has anyone seen or heard of this? When we had a report of this (with documentation) I thought it was weird. Today we just got a call about a different problem which I'm 99% sure is tied to this since it makes use of @LOGNAME. Like the above, sometimes it's correct, sometime it's wrong. -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting begin_of_the_skype_highlighting 413-559-5556 end_of_the_skype_highlighting ___ 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] @LOGNAME on Unidata
We ran into a similar situation in the past with uv on hpux Although @LOGNAME is documented as a readonly value, we found out that it is possible to change it ( and other readonly system variables ) by passing it as an argument to a subroutine - the subroutine can then change the value. I guess uv doesn't actually mark the variable as readonly in any way at run time - readonliness is a compile time attribute - so a subroutine has no idea that its calling args are readonly system variables - so in effect they aren't. Look for any subroutines called with @LOGNAME as an argument then check that the sub doesn't alter that argument. Given : ... CALL *SOMESUB( @LOGNAME ) ... DEFINE SUBROUTINE SOMESUB ( ARG ) ... * this will change the argument value in the calling routine * including 'readonly' system variables ARG=Something ... END Pass temp variable instead of @LOGNAME : CALL *SOMESUB( @LOGNAME: ) -or- CALL *SOMESUB( (@LOGNAME) ) -or- Ensure that argument is never modified in the routine -- DEFINE SUBROUTINE SOMESUB ( ARG.IN ) ARG=ARG.IN ;* the only place IARG is ever used ... ARG=SomethingElse ... END Note that this also applies to functions and routines called via SUBR() and once the variable is changed it is changed for the lifetime of the current session not just for the current program. Gerry -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: June 17, 2010 02:04 PM To: U2 Users List Subject: [U2] @LOGNAME on Unidata We recently migrated from Unidata 7.1.8 on Solaris to Unidata 7.2.5 on RedHat. We make use of @LOGNAME quite a bit to determine a person's username. Since our migration, however, we've documented some cases where @LOGNAME is not returning the proper username - it returns someone else's. What's bizarre is that most of the time it's right, but occasionally it's not. Has anyone seen or heard of this? When we had a report of this (with documentation) I thought it was weird. Today we just got a call about a different problem which I'm 99% sure is tied to this since it makes use of @LOGNAME. Like the above, sometimes it's correct, sometime it's wrong. -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 ___ 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] @LOGNAME... Changing @variables
I looked into this and there appears to be 2 different type of system variables in UniData. There are those like @AM which cannot be changed and those like @LOGNAME which can be. It is not required to pass them to a subroutine to change those that can be. A program will not compile if you assign to the first type. First type (Those that cannot be changed): @ACCOUNT @AM @COMMAND @CRTHIGH @CRTWIDE @DATA @GID @LASTVERB @LEVEL @LPTRHIGH @LPTRWIDE @PARASENTENCE @PATH @RM @SM @SVM @SYS.BELL @SYSTEM.RETURN.CODE @TM @TRANSACTION @TTY @UDTNO @UID @VM @WHO Second type (Those that can be freely changed): @CONV @DATE @DICT (This is actual usage. Documented) @FORMAT @HEADER @ID (This is actual usage. Documented) @LOGNAME @MONTH @RECORD (This is actual usage. Documented) @RECUR0 (This is actual usage. Documented) @RECUR1 (This is actual usage. Documented) @RECUR2 (This is actual usage. Documented) @RECUR3 (This is actual usage. Documented) @RECUR4 (This is actual usage. Documented) @TIME @USER0 (This is actual usage. Documented) @USER1 (This is actual usage. Documented) @USER2 (This is actual usage. Documented) @USER3 (This is actual usage. Documented) @USER4 (This is actual usage. Documented) @USER.RETURN.CODE (This is actual usage. Documented) @YEAR Regards, Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of u2ug Sent: Friday, June 18, 2010 8:29 AM To: U2 Users List Subject: Re: [U2] @LOGNAME on Unidata We ran into a similar situation in the past with uv on hpux Although @LOGNAME is documented as a readonly value, we found out that it is possible to change it ( and other readonly system variables ) by passing it as an argument to a subroutine - the subroutine can then change the value. I guess uv doesn't actually mark the variable as readonly in any way at run time - readonliness is a compile time attribute - so a subroutine has no idea that its calling args are readonly system variables - so in effect they aren't. Look for any subroutines called with @LOGNAME as an argument then check that the sub doesn't alter that argument. Given : ... CALL *SOMESUB( @LOGNAME ) ... DEFINE SUBROUTINE SOMESUB ( ARG ) ... * this will change the argument value in the calling routine * including 'readonly' system variables ARG=Something ... END Pass temp variable instead of @LOGNAME : CALL *SOMESUB( @LOGNAME: ) -or- CALL *SOMESUB( (@LOGNAME) ) -or- Ensure that argument is never modified in the routine -- DEFINE SUBROUTINE SOMESUB ( ARG.IN ) ARG=ARG.IN ;* the only place IARG is ever used ... ARG=SomethingElse ... END Note that this also applies to functions and routines called via SUBR() and once the variable is changed it is changed for the lifetime of the current session not just for the current program. Gerry -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: June 17, 2010 02:04 PM To: U2 Users List Subject: [U2] @LOGNAME on Unidata We recently migrated from Unidata 7.1.8 on Solaris to Unidata 7.2.5 on RedHat. We make use of @LOGNAME quite a bit to determine a person's username. Since our migration, however, we've documented some cases where @LOGNAME is not returning the proper username - it returns someone else's. What's bizarre is that most of the time it's right, but occasionally it's not. Has anyone seen or heard of this? When we had a report of this (with documentation) I thought it was weird. Today we just got a call about a different problem which I'm 99% sure is tied to this since it makes use of @LOGNAME. Like the above, sometimes it's correct, sometime it's wrong. -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 ___ 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 __ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email __ ### The information transmitted in this message and attachments (if any) is intended only for the person or entity to which it is addressed. The message may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of
Re: [U2] @LOGNAME... Changing @variables
That is different from universe where you get the error @Variable (Read-only) unexpected when you try to directly assign to @LOGNAME -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dan McGrath Sent: June 17, 2010 06:53 PM To: U2 Users List Subject: Re: [U2] @LOGNAME... Changing @variables I looked into this and there appears to be 2 different type of system variables in UniData. There are those like @AM which cannot be changed and those like @LOGNAME which can be. It is not required to pass them to a subroutine to change those that can be. A program will not compile if you assign to the first type. First type (Those that cannot be changed): @ACCOUNT @AM @COMMAND @CRTHIGH @CRTWIDE @DATA @GID @LASTVERB @LEVEL @LPTRHIGH @LPTRWIDE @PARASENTENCE @PATH @RM @SM @SVM @SYS.BELL @SYSTEM.RETURN.CODE @TM @TRANSACTION @TTY @UDTNO @UID @VM @WHO Second type (Those that can be freely changed): @CONV @DATE @DICT (This is actual usage. Documented) @FORMAT @HEADER @ID (This is actual usage. Documented) @LOGNAME @MONTH @RECORD (This is actual usage. Documented) @RECUR0 (This is actual usage. Documented) @RECUR1 (This is actual usage. Documented) @RECUR2 (This is actual usage. Documented) @RECUR3 (This is actual usage. Documented) @RECUR4 (This is actual usage. Documented) @TIME @USER0 (This is actual usage. Documented) @USER1 (This is actual usage. Documented) @USER2 (This is actual usage. Documented) @USER3 (This is actual usage. Documented) @USER4 (This is actual usage. Documented) @USER.RETURN.CODE (This is actual usage. Documented) @YEAR Regards, Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of u2ug Sent: Friday, June 18, 2010 8:29 AM To: U2 Users List Subject: Re: [U2] @LOGNAME on Unidata We ran into a similar situation in the past with uv on hpux Although @LOGNAME is documented as a readonly value, we found out that it is possible to change it ( and other readonly system variables ) by passing it as an argument to a subroutine - the subroutine can then change the value. I guess uv doesn't actually mark the variable as readonly in any way at run time - readonliness is a compile time attribute - so a subroutine has no idea that its calling args are readonly system variables - so in effect they aren't. Look for any subroutines called with @LOGNAME as an argument then check that the sub doesn't alter that argument. Given : ... CALL *SOMESUB( @LOGNAME ) ... DEFINE SUBROUTINE SOMESUB ( ARG ) ... * this will change the argument value in the calling routine * including 'readonly' system variables ARG=Something ... END Pass temp variable instead of @LOGNAME : CALL *SOMESUB( @LOGNAME: ) -or- CALL *SOMESUB( (@LOGNAME) ) -or- Ensure that argument is never modified in the routine -- DEFINE SUBROUTINE SOMESUB ( ARG.IN ) ARG=ARG.IN ;* the only place IARG is ever used ... ARG=SomethingElse ... END Note that this also applies to functions and routines called via SUBR() and once the variable is changed it is changed for the lifetime of the current session not just for the current program. Gerry -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: June 17, 2010 02:04 PM To: U2 Users List Subject: [U2] @LOGNAME on Unidata We recently migrated from Unidata 7.1.8 on Solaris to Unidata 7.2.5 on RedHat. We make use of @LOGNAME quite a bit to determine a person's username. Since our migration, however, we've documented some cases where @LOGNAME is not returning the proper username - it returns someone else's. What's bizarre is that most of the time it's right, but occasionally it's not. Has anyone seen or heard of this? When we had a report of this (with documentation) I thought it was weird. Today we just got a call about a different problem which I'm 99% sure is tied to this since it makes use of @LOGNAME. Like the above, sometimes it's correct, sometime it's wrong. -- Jeff Butera, Ph.D. Manager of ERP Systems Hampshire College jbut...@hampshire.edu 413-559-5556 ___ 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 __ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email
Re: [U2] PrepareXML question
Thanks, Stuart. SYSTEM(1017) seems to have a different function in UV10.0 - 1017 Returns the user's supplementary UNIX groups in a dynamic array. Can't find any reference to xmapopen() - maybe new since 10.0 ? Regards, David Norman Senior Software Engineer - SA Ambulance Service ICT Services SA Health Government of South Australia Box 3, GPO Adelaide, South Australia 5001 *+61 8 8274 0384 * fax +61 8 8271 4844 * david.nor...@health.sa.gov.au -Original Message- Message: 3 Date: Wed, 16 Jun 2010 23:38:57 -0700 From: Boydell, Stuart stuart.boyd...@spotless.com.au To: U2 Users List u2-users@listserver.u2ug.org Subject: Re: [U2] PrepareXML question Message-ID: 7ee7790a950e094399b01520071826a20106b4a41...@sg1rd3xvs031.red003.local Content-Type: text/plain; charset=us-ascii Hi David, Doesn't look like it. If you need to write the xml, write it to a type 19 file and use system(1017) to ensure the document doesn't get CRLFs converted to UV system marks. assign @true to system(1017) write xml on type19file,id assign @false to system(1017) z = preparexml('/.../':id,handle) Otherwise, have a look at the xmapopen() function instead. This works pretty well. Cheers, Stuart -Original Message- We have been using PrepareXML (UV 10.0 HP-UX 11.11) etc in a BASIC program successfully for several years processing a file, but now also need to extract XML from a Web response gained from an HTTP submitRequest. This will of course appear in a variable, but PrepareXML seems to require the XML document to be in a physical file. Is there any way to persuade PrepareXML to use a variable instead of a file ?? * ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] PrepareXML question
David, The assign n to system(1017) syntax is an undocumented feature which allows you to do reads without system delimiter conversion. It is definitely available on 10.0. You should be able to test it simply enough. id = 'test' rec = 'x':char(10):'y' open 'type19file' to t19 then crt oconv(rec,'mx0c') ;* hex output to see what happens to rec[2,1] write rec on t19,id assign @true to system(1017) read z from t19,id then crt oconv(z,'mx0c') assign @false to system(1017) read z from t19,id then crt oconv(z,'mx0c') end Sorry xmap came in at 10.2 IIIRC. Regards, Stuart -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Norman, David (Health) Sent: Friday, 18 June 2010 09:56 To: 'u2-users@listserver.u2ug.org' Subject: Re: [U2] PrepareXML question Thanks, Stuart. SYSTEM(1017) seems to have a different function in UV10.0 - 1017 Returns the user's supplementary UNIX groups in a dynamic array. Can't find any reference to xmapopen() - maybe new since 10.0 ? Regards, David Norman Senior Software Engineer - SA Ambulance Service ICT Services SA Health Government of South Australia Box 3, GPO Adelaide, South Australia 5001 *+61 8 8274 0384 * fax +61 8 8271 4844 * david.nor...@health.sa.gov.au -Original Message- Message: 3 Date: Wed, 16 Jun 2010 23:38:57 -0700 From: Boydell, Stuart stuart.boyd...@spotless.com.au To: U2 Users List u2-users@listserver.u2ug.org Subject: Re: [U2] PrepareXML question Message-ID: 7ee7790a950e094399b01520071826a20106b4a41...@sg1rd3xvs031.red003.local Content-Type: text/plain; charset=us-ascii Hi David, Doesn't look like it. If you need to write the xml, write it to a type 19 file and use system(1017) to ensure the document doesn't get CRLFs converted to UV system marks. assign @true to system(1017) write xml on type19file,id assign @false to system(1017) z = preparexml('/.../':id,handle) Otherwise, have a look at the xmapopen() function instead. This works pretty well. Cheers, Stuart -Original Message- We have been using PrepareXML (UV 10.0 HP-UX 11.11) etc in a BASIC program successfully for several years processing a file, but now also need to extract XML from a Web response gained from an HTTP submitRequest. This will of course appear in a variable, but PrepareXML seems to require the XML document to be in a physical file. Is there any way to persuade PrepareXML to use a variable instead of a file ?? * ___ 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] I've run out of quotes
My experience is similar - I usually try to write out a shell script - hopefully reusable. ... Within basic code, I would preference equates over variables for quotes other immutable delimiters. Not only more readable (like a variable) but also more protection against fatfingeritus! equ SQ to ', DQ to '', SL to '/', BS to '\', EOL to SQ:BS:'n':SQ -Original Message- - Use variables for delimiters rather than embedded escapes. It's more readable. - There's no shame in writing to the OS and then executing. In fact it can be very valuable to capture output and errors when you execute ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] I've run out of quotes
On 6/17/2010 9:33 PM, Boydell, Stuart wrote: My experience is similar - I usually try to write out a shell script - hopefully reusable. ... Within basic code, I would preference equates over variables for quotes other immutable delimiters. Not only more readable (like a variable) but also more protection against fatfingeritus! equ SQ to ', DQ to '', SL to '/', BS to '\', EOL to SQ:BS:'n':SQ -Original Message- - Use variables for delimiters rather than embedded escapes. It's more readable. - There's no shame in writing to the OS and then executing. In fact it can be very valuable to capture output and errors when you execute ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users I also like to break my execute stmts out in short sections so individual criteria can be commented out easily. ECMD = \SELECT ORDER \ ECMD:= \WITH CUST.NUM = \:CN:\ \ ECMD:= \AND WITH REQ.DATE GE (you get the idea) ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users