Re: [U2] UniObjects / DBPause
From: Jeff Powell Is there any way for UniObjects to know if the database is paused? UO.NET for examples, I just blogged a generalized approach for how to handle a variety of these broken connectivity scenarios with any MV connectivity library. See Diagnosing Connectivity Errors. (Link below, please remove the remove.please.) 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 Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] back to the socket problem....
I've done a lot of work with socket-based communications over the years. The bottom line is that you simply can't do this directly with MV platforms. Not only is it technically not possible to hand off socket handles, but for licensing purposes most of the MV DBMS vendors frown upon such usage of their licenses. IBM in particular has strong language against this. (Proper/equitable/legal/logical license management is another topic.) Technically, no, you cannot accept a connection and pass the handle to another process, then respond back to that handle from the other process. If you pass the handle, it's just a number to another process, not a handle for an open socket. You also can't close the inbound connection and then re-open it. I've also done the reconnect on another port thing and it's not efficient. However, doing this indirectly, your socket listener process can create a pool of the socket handles that it accepts, pass a request as-data (not as a socket connection) to another process for handling, and then this same server process can return the results to the client through the open socket handle which has not been closed. You need to do basic message passing between processes. The simplest way to do this is to write items to a file and have phantoms waiting to remove these trigger items from the pool to process them. When the phantom is done, it writes a response record. The socket server is not only listening for inbound connections (unblocked) but it's also checking the transaction file for responses. The socket server has to do a logical timeout to avoid waiting too long for a response from a phantom - this timeout must of course be less than the maximum time for which the client will wait for a response. Just like I documented in my blog yesterday in response to the inquiry about TAPI, this demonstrates a separation of tiers, where the comms process does nothing but comms and the data handling processes do nothing but handle data. It works very well if you just employ the pattern. One of the benefits of the above scenario, for example, is that you can code your socket clients and server process(es) to gracefully handle situations where any one or more processes die unexpectedly. Since responses are written to disk they aren't lost, so if a client doesn't get their response they can simply re-request the response using a unique token and they should be able to get their response back from another server process without the response needing to be re-generated. Specific applications won't use this of course, but it's good for some, and not possible if you're forking off a lot of processes that only operate in memory. You can also use the above scenario to return a receipt of sorts to the client, tell a phantom to go process the request, and have the client poll for responses. (Think of this like you're dropping laundry off at the dry cleaners and getting a ticket so that you can come back and pick up your stuff.) This way you don't need to keep connections open. This is similar to the come back on another port concept but it eliminates the need for multiple socket servers. Personally, I prefer to completely avoid writing socket interfaces anymore. Better solutions are available these days, allowing us to spend more time on applications than communications interfaces. Again of course, specific apps may require custom interfaces. I just advise against long-term development to save a couple bucks and/or for the coolness factor. 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 nospamNebula-RnD.com/products/mvdotnet remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! From: George Gallen The problem at hand is that you can't pass the client handle obtained from the accept() onto another process, then go back and wait for another connection. If you fire off a phantom, it's a new Process, and isn't able to receive the handle from the other process. Any suggestions? I considered the method of returning a new port number and having the client reconnect on that port, but I'm not ready to go that route just yet. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Telephony and U2
From: Jim Jim-at-SEComputer Has anyone implemented Microsoft TAPI in a Universe application? This was a good opportunity to revise the text on a blog I've been meaning to publish for a while now: nospamNebula-RnD.com/blog/tech/mv/2009/08/mv-to-anything.html Please remove the nospam part of course. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Connecting to a Universe Database
From: Hona, David It is highly recommended that you upgrade your version of UniVerse before you consider what interface to use. An ODBC interface is mostly the easiest to implemented, but the slowest and hardest to debug. Especially on such an old version of UniVerse. ... From: John Castilletti David, Do you have examples for the use of UV/BASIC subroutines invoked as stored procedures from SQL Server/ Such complications are actually unnecessary. In SQL Server, your stored proc can simply open a UO.NET connection directly into UV. Or you can invoke a web service call which then invokes a BASIC subroutine - this gives you some freedom to separate tiers. See a video I created that shows how easy it is to create a web service to any MV environment: remove.pleaseNebula-RnD.com/products/gallery.htm I use mv.NET there but you can as easily use UO.NET for that simple exercise. [AD] Having watched this discussion to see what suggestions came up, I would be remiss not to mention that mv.NET is an ideal solution for a few reasons, and that my company, Nebula RD, is a worldwide provider of mv.NET and related development services. - No need to upgrade your DBMS. - You can access your DBMS in a few ways, whether in a UniObjects-like manner by opening a connection and running a BASIC program, or writing to files/items directly. Or you can create a simple middle-tier that looks like any other relational model (with DataSets, DataTables, Columns, Rows, etc) and you don't need to do anything to your data or dicts to get these benefits. We can provide an interface for you, to your spec, and you won't need to deal with the details, or I can provide you with a free 30 day evaluation of mv.NET to see if it meets your needs as a developer. 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 Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] xml mapping file question [AD]
From: David Jordan Hi Norm Have you found any tools to help generate the excel stylesheets other than manual coding. Have a look at code sample and documentation for NebulaXLite: remove.pleaseNebula-RnD.com/products/xlite.htm I wrote NebulaXLite specifically because people keep asking the same questions in forums about creating spreadsheets. With NebulaXLite, all of your code is in BASIC, you can keep it cross-DBMS and cross-OS capable, and you don't need to mess with XML or programming languages that you don't know. If you don't get it you may wonder why you'd want it. But once you get it you may kick yourself for not trying it sooner. In response to the specific question: NebulaXLite includes a code generator: You feed in XML from an existing spreadsheet, and you get out BASIC code which contains definitions of all of the styles using dynamic arrays and well-defined element names. You can then copy and modify the styles like any other BASIC code, and use them to generate other spreadsheets. NebulaXLite is completely free for developers and only $200 for any end-user server running production reports. There are no support or maintenance fees. Fixes, assistance, and periodic enhancements are completely free. It's really that simple. Thanks for your time. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Multivalue market and users
From: Cedric Fontaine I'm looking for some official statistics about multivalue market and users in the world. Is there anything from IBM or any other vendor? I'll go on a limb and say you probably will never get official statistics from any MV vendor. It's simply not in their interest to publish numbers unless they're competitive with SQL Server, Oracle, MySQL, etc. In boasting numbers, most MV vendors will only show how much market share they don't have with their MV competition, and summing up the numbers will (almost certainly) show how small a share MV has in the larger market. No matter how you slice it, it would be difficult for any company to benefit from publishing numbers - though of course everyone else has a lot to gain from competitors posting their numbers. It's not as easy as it used to be to discuss MV in terms of penetration into specific vertical markets like manufacturing or medical applications. My advice would be to avoid numbers and simply talk about capabilities, consistency and longevity in dynamic markets, etc. You could also cite the size of the primary companies that have MV products: IBM, InterSystems, and Northgate IS. I don't think the annual revenue of the others is significant enough to mention. As to statistics from sources other than the MV vendors themselves, Spectrum is the only centralized authority in our industry, but all they can do is tell you how many companies they have in their subscription database. Since most MV VARs (really unfortunate) shelter their end-user base from the community, including Spectrum Magazine and conferences, once can only guess as to what percentage of the overall total is represented by the Spectrum database, and that still doesn't tell you how many users per site there are. If you don't mind making major guesses, I think Spectrum would be the best place to start to get some base numbers. 2 devaluated cents 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] Head Hunter
http://www.pickwiki.com/cgi-bin/wiki.pl?Employment Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com From: Burwell, Ed Does anyone know a good headhunter for the NJ/NY area? I have lot's of Unidata and VB experience and would like to explore some possibilities. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] PHP vs Java
There's also something to be said for writing a common method to handle these things. Do it once, use your own methods, and forget about it needs to be handled internally. T You still have to use Field(a)-Field(v)--users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What ETL?
Somehow when someone mentions BI there are suggestions for Reporting tools, and with notes about ETL come notes about BI and Reporting. In my mind (what there is of it) there is a vast difference between these concepts. I think the confusion comes in when a product like MITS, for example, incorporates its own ETL functionality to accomplish what it does. Some basic reporting tools do the same in the name of performance. But the ETL performed by these tools is generally proprietary and cannot be used in other contexts. Now when you're talking about a real ETL platform like DataStage, you should be able to use data from platform X with any platform Y. A product like MITS or Cognos or Informer or any other could code their front-end processes to use DataStage as a data source. This would open them for use, even with non-MV platforms like Oracle or DB2 - and of course products like Cognos do exactly that - but our MV-centric colleagues generally don't think in those directions. Speaking of DataStage, I was discussing an association with a company a while back for providing mainstream BI tools for MV (that option is still considered from time to time and interested parties are welcome to contact me). As we can all relate, I had to spend a lot of time explaining the Pick/MV concepts which were completely unfamiliar to them. In our discussion we decided that the best way to use common BI tools with MV was not to link directly to MV at all as a data source, but to use a middle-tier ETL tool, I could provide the extraction from MV and they could extract from the generic middle-tier using common queries and tools. Ironically when we were discussing what tools they already used, they mentioned DataStage. Maybe they were unique but it seems to me that DataStage could be considered a poster-child as a successful MV application, but somehow that marketing value seems completely untapped. *sigh* 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] the XML/DB Tool
As usual, we're in agreement. I should clarify that I would avoid writing or generating code that makes use of the XMAP API to process specific documents of any real complexity. That sort of code is just too rigorous and personally I don't think it belongs in the MV engine. What I should have said is that I am thinking about generating mapping files, rather than using XML/DB. Yes, with my very limited undertanding of the XML extensions, I believe you're right if you're saying code that operates on mapping files can be hardcoded. If I do generate mapping files, I would also need to create the related data files and dict definitions. Well heck, rather than do this using U2-specific tools I'd much rather use something cross-platform, like Java or .NET, and avoid the nested relationships issues that Greg cites as well as a bunch of others that may be lurking within the U2-specific tools from IBM. I'll be making decisions very soon... Best, T From:Symeon Breen Just one point - where you say hard code - I am not entirely in agreement - my xml handling code is generic for all the xml file i suck into u2, the EXT file is different for each xml file - it is in a way an addendum to the xsd and allows you to only import parts of the xml. If this is what you call hardcoding then i disagree it is a configuration. If however you are hardcoding your databasic for each xml file then yes that is hardcoding and i agree you should not do it that way ! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] the XML/DB Tool
From: Coelho, Gregory I am on UniData (7.1 and 7.2) attempting to create a set of nested relationships in a XML file. In an attempt to learn how to use the XML/DB Tool I've read through IBM's UniData:UniBasic Extensions - but am now more confused that at the onset. Can anyone direct me to a knowledge source for help? I'll piggy-back on Greg's request. I don't know if this is at all what Greg is trying to do but I'll take a chance and see if anything I'm doing can help with what he's doing. I've recently obtained a large and completex dataset which is composed of hundreds of megabytes of XML, defined by a set of XSD documents. Transforming the XSD into strongly-typed .NET classes is easy. Reading the XML into strongly-typed objects is easy. The next step is mapping these objects to MV files. Having done this sort of thing a number of times before, I'm firmly of the opinion that one should not, for example, import XML data for Customers and push that data directly to a CUSTOMERS file. Rather, I believe the data should be stored in one or more files, like CUSTOMERS.XML.PRIMARY, CUSTOMERS.XML.ADDRESSES, CUSTOMERS.XML.CODES, etc, and from there business rules should be run to properly integrate this data with the live application files. This ETL layer helps to ensure that live data isn't corrupted by a data dump, and it also helps to allow for changes in both the XML and the application without having to link the two directly. It's an MVC pattern which works well in a wide variety of applications. I have been brainstorming for quite a while now to find the best way to link middle-tier code to the back-end as defined above. I do not like the idea of hardcoding XML handling into the MV environment, so unless strongly compelled, personally I tend to avoid the U2 XML tools entirely. But I'm open for suggestions. Right now I use C# partial classes to represent the XSD schema, and am planning to create new partial classes to augment these with SaveToDBMS functionality, looping on class objects to run rules and process the data into MV files. I'd like to automate the generation of the files that are updated (like CUSTOMERS.XML.ADDRESSES above) or write a code generator that will use schema or code (via reflection) to create code to do this same function for any set of XML/XSD. Assuming I've explained the above properly - has anyone done this? Anyone interested in the outcome? Any suggestions? Is this a case where the U2 XML capabilities may present some value? I'll be happy to clarify where required. Thanks! 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 Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Performance reports on 4 Terabyte files vs Distributed Files
From: Baker Hughes Does anyone have any real life examples of performance gains from converting your large file to 64 bit files? Does anyone have a performance comparison of 64 bit files vs. distributed files. I wonder if a 4 terabyte file responds better/faster than a distributed/part file? SELECTs, WRITES, other access. UV 10.2 - I guess UD has the same? One way to do this sort of testing yourself is to make use of testing facilities provided by hardware vendors. I know HP and IBM used to provide this service and I believe they still do. For example, when I was working at Pick Systems we would benchmark new releases of D3 at the IBM RDC in San Mateo, California. We'd run D3 with 10 thousand users, with terabytes of data, and as much memory and CPU power as was available. It was quite an experience and the result was good marketing material both for Pick Systems and for IBM. I suspect IBM would be open (for free or fee) to allowing a VAR or large end-user to load Universe or Unidata at an RDC to run a variety of tests so that you can get some real numbers on distributed files, indexes, and other configuration settings that affect performance. My recommendation would be for a VAR to do this, do a lot of different kinds of tests, and get a lot of numbers. (*grinning and waiting for the group to explode*) And then they can sell their numbers to large sites to compensate them for their efforts. Actually, this would be a good project for Spectrum. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] ODBC to UPS WorldShip
I concur with Glen's assessment that some of these services can be unstable. Not long after writing NebulaShip (nospamNebula-RnD.com/products/ship.htm) I realized that even though the product was stable that we might be getting emergency calls when services were down. I stopped advertising the product, we're not currently selling it, and unless there is significant demand for some of the less critical functions (lookups, confirmations) I may withdraw it entirely. Make sure you have backup providers for critical services. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! From: Glen Batchelor 3) You're tied to a web service that can (and will) go down at some point. Have a backup processing plan with WorldShip. UPS has been good, for the most part. FedEx has gotten better, but there are still times when the FedEx Ground back-end disappears and we get goofy 'unavailable' errors. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Simple Export to Excel
The solutions provided here should help: nospamNebula-RnD.com/blog/tech/2009/07/excel-csv1.html From: John Israel ...Excel has the nasty habit of doing things to the data. For example, leading zeros are removed from numeric data. This is a bad thing if you have valid data like 123, 0123 00123. Excel will make then all 123. Sure, I can put quotes around them, but when the folks that use macros and pivot tables, or tie into other Excel files, these will not work (00123 does not equal 0123 in Excel). Big numbers, like GL#s get converted to scientific notation. Some numbers or text get converted to dates. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Unidata 7/Win32 code on Unidata 6/HP-UX and Solaris
We have sites running our NebulaXLite software on a wide variety of Universe and Unidata releases and I believe we now support all operating systems except Solaris. The only platform that is not a slam-dunk seems to be Unidata 6.x over HP-UX RISC. As expected, sites with different endian handling are reporting that they need to run convcode (fnuxi on Universe). It seems this is also required: convdata -r * At this point on other systems we expect the object code to simply run. We do not provide source code for core functions. The object code comes from Unidata 7.2 over Windows 32bit. The targets are Unidata 6.0 and 6.1 over HP-UX PA-RISC, and soon UD7.2 over IA64. As I understand it, there shouldn't be an issue going from RISC to IA64, but for some reason our object code still isn't running on the target platform. Kevin King tells me there is a known issue with porting Unidata object code to HPUX and possibly Solaris beyond convcode and convdata. Can anyone explain exactly what the issue is so that we can predict and resolve issues before our prospects? As the software is enhanced from one release to another I need to plan for deployment to all target platforms. Is there a way to compile our code on UD7/Windows so that it will run on UD6/HP/Solaris? Or do we need to re-compile on these unusual target platforms? Thanks for your consideration. 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 nospamNebula-RnD.com/blog no.spam.pleaseNebula-RnD.com/products/xlite.htm Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Updating AS400 Data from Universe
Anyone out there have any experience updating data on an AS400 directly from a Universe basic program running on unix. If so, I'd sure like to hear what steps were involved. Thanks much, Scott Greetings, my friend: I personally don't think it's a good idea in any X/Y data transfer for X to be aware of the details of Y. It restricts the Y people from making changes and forces the X people to be aware of such details. I prefer to use familiar interfaces to transfer data to a middle-tier proxy which then brokers transmission and protocol-specific details. In other words, use web services or other standards that don't require a new research effort for every project. Don't hardcode into every platform Y that you encounter. Transaction turnaround time can be slower but long-term maintenance is vastly simplified. If you absolutely need the fastest transactions possible then you'll need to get closer to the metal. I happen to know that you already have the tools onsite to do exactly what you want functionally, just not in exactly the way you suggest. Let's see what our colleagues here have to say and I'll be happy to talk with you about options. HTH T 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 Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Updating AS400 Data from Universe
(I swear folks, I don't pay for testomonials from happy clients. LOL) Scott - your check is in the mail. Err, I mean... the following information may be overkill for this specific situation but some of the info may help others who need to exchange data bi-directionally between MV and non-MV environments. The easiest answer to your question is not to go direct from Universe per-se, but to create an OS-level macro that does what you want, and then call that from Universe. So if you can write a Windows BAT file or a Unix shell script that does what you want, you're golden - jus pass that routine some dynamic input. Sometimes you can't go direct. To use your existing tools, AS400 has a .NET interface just like your Universe system via mv.NET. We've written interfaces from MV to SQL Server, MySQL, and Oracle using the principle described: MV MiddleTier Other That MiddleTier has variations but it essentially does this: 1) Accept inbound transaction from source. 2) Reformat data to suit application-specific requirements. 3) Pass data to target. Step 2 might be as simple as this: Server target = new Server(TargetID); target.Update(InboundData); And the Update method for MV server class might include this: account.CallProg(FROM.AS400,ref InboundData.ToString()); While for a relational server, the Update method just calls a stored procedure. Note that I'm calling a BASIC program and an AS400 stored proc. This is declarative where you don't put the details in your code, you tell the server to do it and the server people on each side figure out what to do with the data. I try to avoid file opening and direct reference to attributes and field names in a middle tier. This is more secure anyway. Similarly, someone could provide you with SQL queries but a stored procedure is better. You don't need to change your code if they change the way they're manipulating their relational files. That's not the case if you hardcode queries into BASIC and try to update a relational environment direct from U2. The point here is that you don't need to know anything about AS400 or any other environment in order to update a remote system. Again, this isn't a lightning fast exchange mechanism, but if you can wait a second or two (hardly unreasonable) it's not bad at all. If you do need to go direct from Universe into another environment, I still recommend you make use of stored procedures rather than hardcoding relational queries into BASIC. And now that I've just given away our development secrets, feel free to do this on your own - or contact me for assistance if required. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET worldwide and provides related development services remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! From: Scott Hi Tony, I agree with you totally. Web services are the way to go. The web service that you've developed for us using VS and MV.NET absolutely screams!!! We blew the service that my as400 counterparts developed out of the water. Thanks a ton for helping us look so good to the corporate folks. I'm really impressed with mv.net!!! I don't really have any control over what happens on the as400 side and I know their resources are limited at this point. I was hoping for a way of connecting to the 400 and issuing sql commands directly from universe. Any thoughts on that? The only other thing I can think of is to ftp flat files to them and let them take care of loading the data. The sql idea would save people alot of work. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Archaic?
Four responses to notes raised in this thread: Back in the 90's I was as big on Java and more open initiatives as VB, but the MV world wasn't interested. Earlier in this decade I was on a quest to create Linux desktop app interfaces for MV but no one seemed interested. So I planted a firm foot in the .NET market and got a fast reputation as a Microsoft zealot. Go figure. Today most of the solutions I advocate are based on Microsoft tools simply because they work consistently for all MV platforms. If this market had a firm demand for something else, I'd offer solutions using the preferred technologies. I still blog about using cross-platform Flex for MV GUI development, and development for iPhone and other non-Microsoft mobile platforms, but no one seems to be interested. Hardly anyone mentions Python, PHP, Perl, Ruby, or other cross-platform tools in this industry so they're hardly worth pursuing as more standardized solutions. For all of the love of open software that we see expressed in these forums, we can probably count on a few fingers how many people in this market actually write code at the OS level to integrate with their MV environment. People love to bash Microsoft (and it's usually well deserved) but I don't see any other technologies that are clear winners in this market. What I'm seeing out there is .NET versus a world where people are reticent to move forward due to uncertainty and lack of confidence in anything that's out there. I got over that speedbump years ago and I've been happy with my solutions for about 8 years now. How many of you can say the same? About C# and bubbling up errors, I don't understand why there is a problem. As with Java, your C# app code is instantiated in a Main function. Personally I try/catch as much as possible at the lowest levels, but for anything that bubbles up, wrap that initial instantiation in Main in a try/catch as the ultimate handler. For web applications, use the methods provided in the global.asax to trap errors, and report exceptions in the event log, via email, or by other preferred methods. If you look at my blog you'll see I've narrowed down modern client/server development to the bare basics. Browsers only support JavaScript (or VBScript) if they're not using plugins. Plugins give us Java and enhanced JavaScript, and with Silverlight/Moonlight we get C# and to some extent VB.NET, IronPython, Ruby and possibly others (I'm sure some people will be surprised at that). That's all there is and there's nothing to indicate the world is shifting to provide more alternatives in the thin client - after that we need self-updating thick clients. So if you want to do web development, pick one and run; don't wait for something else to come along. If you want to use one language in the client and on the server, Silverlight, Moonlight, and Java Applets are the only options. We can use MVBASIC as a back-end for ALL client and middle-tier languages and technologies. There's no reason to wait to do development. My ongoing recommendation is to decouple the server from the details of the client so that you can provide alternative client UI's and technologies, and completely replace your tiers as required. This is where most MV-oriented tools fail us. Finally, as far as bindings to other languages is concerned, I've written a document (that I keep editing and never get to publishing) on a new project I call mvEsperanto which allows any language to make use of any MV platform using a common API and a variety of connectivity methods. Other environments have a diversity of language bindings and it's time MV does as well - but unlike other interfaces this will not be limited to a single DBMS vendor, OS, communications interface, or other commercial/religious interests. Look for this within the next few weeks. 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 Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Ross - Your suggestion for folding on syntax is fine but it doesn't go far enough. The mainstream development world recognized what you're saying long ago, did it, and then improved upon it again. We're sort of two generations behind in this discussion. Yes, Visual Studio folds C++, C#, and VB.NET on language structures. NetBeans, Eclipse, and other IDEs fold Java, PHP, and other languages like that too. They all fold comments as described in the OP. But then there is the next step. There is a major difference between folding code exclusively based on syntactical stuctures and folding based on logical/functional components. In BASIC we can have several labelled, internal subroutines, and UV Functions, that are a part of a functional set. But, we can't put those into a block to get them out of our way while we're working on other sections. The way I've done this is by INCLUDING code and then using a utility that imports and exports all included code when I need to see it all in one block or for editing. The mvToolBox editing software from DM Consulting is the only product I know that does this sort of visual hydration and dehydration of code stored in different modules. Your faith in programmers following standards is amusing. There are no standards to be followed here. This is just a function of the development environment, like comments. Use it or don't as it's convenient. Other languages and IDEs support folding and developers use this stuff every day - it's unnatural Not to have it anymore. Err, except for our (n)ever evolving Pick BASIC. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! From:Ross Ferris Whilst I appreciate the structural tags I'd suggest that they are not needed. It doesn't take too much thought to recognise the self-bounding regions Label: -- return For -- next If -- else -- end Loop -- repeat Begin case -- case -- end case There are some funny possibilities with read/locked|then|else Whilst I appreciate the fine grained control your suggestion provides, my faith in programmers generally following this standard is low, and providing people haven't employed a single, linear top-down approach to their programming, I think most (all) of the collapsible regions could be derived directly from the code with minimal effort ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
From: David A. Green I've always commented my program at the beginning, but some programs have many changes and when we have 300+ lines of comments it gets a little tedious to deal with embedded in the source code. I'm think of placing them in an external file and then doing a $INSERT in the source code in order to tie them together. How do you handle the long comments? I've often thought of this as being a problem with both the language and the editors that we commonly use. Typical MV editors show all code. There is no provision for folding content or outlining. For example, in C# we can do this: #region Initialization // lots of comment lines here // variable definitions, code, etc #endregion In Visual Studio that collapses to a single line: +Initialization We can click the plus sign to open it up and see the entire section. Other editors support this feature for different languages. Code can be nested: #region Main Section #region Define Variables // definitions here #endregion vars #region Major Function 1 // code here #endregion functions #endregion main Again, that collapses to something like this: #region Main Section + Define Variables + Major Function 1 + Major Function 2 #endregion main Or collapses entirely to: + Main Section But with MV BASIC the language doesn't support this unless we use a pre-processor, and even then we don't have editors that recognize the constructs. The best we can do is to use something like this: *!+ This starts a region * code here *!- This ends the region But then we need an editor to support it. And that brings me to... a minor rant I was writing a new MV Editor to support this and many other features highly desirable to MV developers. But as with many projects where people would inevitably demand a free solution I decided to put this project on the shelf indefinitely. It's just not worth it to try to improve our lot here. Since people are so fond of open source freeware I'll suggest that the source code is available for people to enhance to recognize code as defined above. That's the spirit of open source - we're supposed to give as much as take. If no one wants to enhance one of the fine FOSS utilities out there, then it seems we'll simply never have the functionality. People all too often confuse free=liberty with free=beer. They want the software to be free-of-charge but we rarely see people publishing MV-specific enhancements to open source code as a contribution to the community. It's this condition that causes us to continually lose sites to the mainstream world as people wonder why our development practices are so primitive. C'est la vie. / 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] Unix mail server? [ad]
Ed - Your description describes the raison d'être of NebulaMail. You'll find a link to this and other POP3/IMAP solutions here: http://www.pickwiki.com/cgi-bin/wiki.pl?SendAnEmail Due to ever decreasing demand for tools (despite high demand for solutions), I haven't kept NebulaMail up to date on U2. So if you really need a pure BASIC POP3 solution for U2 then some time will be required to get this product back up to speed. I highly recommend that everyone remember PickWiki.com and do a search there before posting to forums. You can significantly jumpstart your queries by coming to the table with a list of solutions to compare and contrast. I've already created a link in that SendAnEmail page to this thread so others who visit the wiki will benefit from the suggestions and wisdom provided here. That's the way a wiki works. And for anyone else who has interest in helping to keep that resource current and rich, information is on the site and you can email me for details. It's really VERY simple... Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog From: Burwell, Ed Here's a high-level view of what I'm envisioning: 1. Our Unidata application sends an email to the outside world, giving the recipient certain options. 2. The recipient hits REPLY, types a few characters and hits SEND. 3. Our rs/6000 receives the email and put it somewhere. 4. Our Unidata application could periodically check that somewhere for received mail and do whatever with it. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] What Program Am I?
From: HENDERSON MIKE From (IIRC) 10.0 onwards, there's the SYSTEM(9001) pseudo-variable which contains the UV CALL Stack. It's formatted a bit funny, but there may be a routine on the Pickwiki to make it a sensible format. That reminds me: PickWiki also mentions the UD program CALL.STACK and a UV program called LAYER.STACK. An old U2 forum post suggests using a command like: PORT.STATUS PID 9 CALL.STACK which for UV might be PORT.STATUS PID 9 LAYER.STACK ? Refs: http://www.mail-archive.com/u2-users%40listserver.u2ug.org/msg173 14.html http://www.pickwiki.com/cgi-bin/wiki.pl?ViewCallStack Does any of that apply to the OP 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] Universe Telnet service won't start
From: Colin Alfke I've used the tools from http://technet.microsoft.com/en-us/sysinternals/default.aspx (before they were assimilated by MS) to find a problem with UD not starting due to some memory being held by the Windows Management Instrumentation service. If UD started prior it was OK but it wouldn't start after. All of the tools are still there, still being enhanced, still Very helpful: nospamNebula-RnD.com/blog/tech/2009/06/winwoes1.html Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Simple Export to Excel [AD]
Please also consider NebulaXLite to create nicely formatted spreadsheets for Excel, OpenOffice, and Google Docs. When you deliver CSV in response to a request for Excel, it's like introducing someone to their new business software that looks like DOS. It just makes the business software seem antiquated and people start looking elsewhere for more modern applications. NebulaXLite is entirely free and fully functional for developers and VARs that demo their software on end-user systems. You can download it, use it as long as you want, and we won't ever ask you for a penny. For production use, there is a one-time purchase price of $200 for any server that goes live with business reports. There are no additional fees. Support and limited enhancements are always free. There are no connectivity components or any other hidden costs. As a lite product, this product model is simply to make it easy for a lot of people to do something that makes MV look good. Get more info, software, and full documentation here: remove.pleaseNebula-RnD.com/products/xlite.htm Thanks for your time, 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 Visit PickWiki.com! Contribute! From: Edward Brown Yes, if you quote-delimit all your fields then it's possible to pass @VMs as line feeds, and it will do what you want. From: Israel, John R. We have lots of programs that export our data from UniData to tab-delimited text files. Some of these are opened by Excel (which has its faults), some are imported into other databases. These files will be 1) E-mailed as attachments or written to specific location on the network. If I know that the users will always use Excel to open the attachment, I usually make the file extension xls so that it simply fires up Excel when double-clicked and parses everything out reasonably cleanly (but still drops leading zeros, converts big numbers to scientific notation, etc). We are using UniData on HP-Unix. Is there a good way to convert @VMs to something that Excel will correctly convert to what would be equivalent to the Alt+Enter in Excel? I do not want the data on multiple rows - I want multiple lines with breaks within a single row/cell. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Simple Export to Excel
As Robert describes, double quotes are used in freeware I've published called ExcelExport, which exports full workbooks and individual worksheets to CSV. You can get the software from our freeware page and see the TXT Readme for details. no.spam.pleaseNebula-rnd.com/freeware/ Rather than making another post, I'll mention here that people are using our NebulaXLite from SB+, and it even displays progress info through SBClient as it works through large reports. And for people who say use XML, well, that's exactly what NebulaXLite does. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! From: Robert Porter Double-quotes can be embedded within the quoted field by escaping them. Just double up the double-quote character. So the text: This is my description field. Would go be exported as: This is my description field. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Basic Developer Toolkit - Eclipse SDK [AD]
Sorry for two ads in one day folks but John's note prompts a specific response. John, are you aware that the core library in mv.NET is full of functions for Date, Time, DCount, and other MV-specific IConv/OConv functions? nospamNebula-RnD.com/products/mvdotnet mv.NET isn't just a library, it's fully integrated with Visual Studio: - Edit, Compile, and Catalog MV BASIC code in VS - Maintain all configuration data to different systems in VS - Maintain dict and data items in VS - Create U2 files from VS - Graphically create reports in VS - If you wish, open a telnet window from VS too In addition to that there are three libraries, one for core development, one for ADO.NET development with MV (no data flattening required) and one for directly binding data to controls. A soon-to-be-released major update for mv.NET will include generation of rich class definitions from MV dictionaries, to be used as DataSource objects. See my blog for a discussion of this topic: nospam.pleaseNebula-RnD.com/blog/tech/mv/2008/11/mvcodegen2.html I don't see a void that needs to be filled. For a couple hundred bucks you can do everything you've described. Some people say this should come from IBM but many people don't realize that IBM did purchase the source for an older version of mv.NET, rebranded it, limited the functionality, and they're now marketing it under a different name. So you have two options. Of course I'd prefer that you contact me about mv.NET. :) 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.thisNebula-RnD.com/blog Visit PickWiki.com! Contribute! From: John J. Wahl I have to agree with Doug, I spend my entire day in Ms Visual Studio, save the modifications I do for our UniVerse system. I started writing add-ins for my Visual Studio to do conversion for things like UniVerse dates to Windows dates, etcetera. I don't think I did it because I felt I had to make them, but because I didn't know there was a tool like BASIC Developer Toolkit, or anything else for that matter that fit into how I work now. Even the U2 .NET add-on doesn't really seem like it's the perfect solution from what I've seen so far. Perhaps what you have all just explained really does say it all. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Basic Developer Toolkit - Eclipse SDK
From: Brian Leach [all snipped, full agreement] From: Jo Lester We have a wiki? Grrr - just look in the sig of almost every note I post to this forum. In addition to what Brian said, I'll add that there are many solutions in our marketplace that are readily available but it's evident from forum postings (like above) that people aren't making note of the resources available to them. I can't tell you how many times people say something doesn't exist when I've been writing about it for years. It would be great if people regularly checked PickWiki.com to see what solutions are available, and then, when required, post a note saying they've exhausted all other resources and they're looking for something else. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] uvRunCommand Question
From: curt I have an application that needs to open up a web page from within Universe and pass a query string to the Web Server to update some product information. [snip] There are a lot of things that are awkward about this request. You'll want to read through my comments before responding. 1) What's the overall goal? The code you've presented runs IE on the server, not a client PC. The web page does nothing but read the query string, and then write the data back into the client PC. If you run this on the server you're basically just writing to a local file. 2) Maybe I'm missing something about exactly what UVRunCommand does, but why not use EXECUTE DOS /C :COMMAND ? Is the difference that GCI operations are inproc and Executes that shell out are not? 3) Do you really want to open up a browser just to communicate with a remote server? That's not the right tool for the task. A browser is an application intended to provide a user interface. I believe you want to use a headless solution, like cURL or CallHTTP, rather than launching a browser. 4) Browsers these days generally prohibit code from doing exactly what you're describing. You go to a web page and 'poof' it either closes it's own window on you, or it attempts to close down the whole browser. The JavaScript Window.Close is intended to close child forms (popups) which are launched from a parent, not to close a primary window to which the user navigates. 5) The JavaScript you provided attempts to create a file system object and write data to the user's PC. That's yet another big no-no, even with Trusted sites. I'm guessing the real web page processes the request, re-writes the URL or does something to put a response into the resulting page, and then writes the result back to the local system? In this case, OK, neither cURL nor CallHTTP are going to process that script, but you may do better to parse the response rather than allowing some client code to write back to the DBMS localhost disk. That's just way too awkward, and the overhead of opening and closing the browser is very non-performant as well. I think the approach needs to be re-evaluated. You can do what you want with IE running in the background using a custom browser AddIn (we write this sort of code here), but I think this is still the wrong tool for this job. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Send output from query to text file
Anyone who already has mv.NET can use mvExec entirely for free. nospampleaseNebula-RnD.com/freeware That allows you to issue your TCL commands from any system in your office, not just a logged-in telnet session. Commands can be issued from a DOS prompt, .bat file, or any program. [ads] If you don't have mv.NET then we can provide a single low-cost session license which you can use for any purpose. Since people have commented about Excel here, I'll also mention that delimited files will get you boring columns and rows but to take it to the next level for real attractive spreadsheets with styles, borders, and other visual features, check out NebulaXLite. It's completely free for developers and only $200 for a permanent license for any production server. (No connectivity required.) NebulaXLite supports Excel, OpenOffice, and Google Apps. remove.pleaseNebula-RnD.com/products/xlite.htm [/ads] 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 Visit PickWiki.com! Contribute! From: Norman Bauer A lot of the times I want to query UniVerse and capture that information to a text file. I can send to an XML file no problem and sometimes that is exactly what I want to do. However most of the time I just want to view the info unformatted without screen scraping or copy and pasting from Dynamic Connect. What I really want to do is: SORT VOC \\server\fileshare\file.txt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] How do you do EDI?
From: George Gallen One thing I just don't understand..Why is it so freakin expensive to transmit EDI transactions? in today's age of the internet and transmission speeds. I think the cost is a hold over from the old days when we required a Value-Add-Network to store and forward transactions, and to guarantee sequencing, delivery, etc. I was doing EDI (X12) in the early 90's and setup exchanges with large companies like Sears, Wards, JCPenny, and their trading partners. Free web services didn't exist and direct connections amongst companies were impractical (over phone lines). So going through a VAN was a requirement, and companies paid the price. Today, the cost is the same as it ever was, even though the value-add is arguable given how much we can do for ourselves. It's still expensive because people still pay the price - it's what the market bears. EDI software was and still is expensive. It validates data, offers to wrap your data to mapped document elements, wraps that payload in envelopes, handles transmission, and logs all events. There is certainly value here but I have always been agast at the cost of these utilities which often exeeds $30k. Unfortunately big companies easily pay this, because expensive software must be good, right? I've always tried to do as much as possible in BASIC to create a complete, envelope-wrapped payload which just needs to be transmitted, and I prefer to use BASIC to process inbound transactions as well. That said, every standard document that you process with every trading partner is going to be unique. EDI is more about human interaction and business decisions than it is a technical affair. So if you do this in BASIC, no matter how much you try to re-use your code, you're going to get a lot of custom code for every document for every partner ... your programs become a X-by-Y matrix of documents to partners, you'll rarely get one program for all partners for a given document. For that reason over the years I've found a lot of value in the commercial EDI document processing offerings (separate from VANs). We like to manipulate strings in BASIC but specialty software may do it more efficiently and with a lower TCO. But cost has nothing to do with quality. Unfortunately you need to evaluate every package for what it does and does not do. How extensible are they? Are they locked into a limited selection of VANs? Where are the data tables kept and can you load them with an interface to your MV system? There are all sorts of questions that need to be asked and you just need to shop around for a product that's affordable, well supported, and with all of the features that you require now and for your anticipated usage. Or as the saying goes: You can get it Good, Fast, or Cheap. Pick two. 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 Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] u2blog.org?
About a year ago I added u2blog.org to my list of blog affiliates. I have no idea who owns it or whether it's still maintained. Anyone here know? Until it's identified I've removed it from my list. In case there is any doubt - yes, I'm sure this is for the U2 DBMS products and not for the band. :) Thanks. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog (fresh look - always fresh content) Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] u2blog.org?
Since there are a limited number of blogs in this community we're more like a room than a planet, so I recommend people simply check here to see what blogs are available: http://www.pickwiki.com/cgi-bin/wiki.pl?Blogs Thanks to all who responded - please update PickWiki.com if you are aware of another U2-oriented blog, or feel free to email me and I'll make the update. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! _ From: Norman Bauer Anyone ever get the notion to add a Planet U2 that has feeds from several U2 contributor blogs. planet.u2ug.org Examples of a planet would be Planet SUSE http://www.planetsuse.org/ and Planet Ubuntu http://planet.ubuntu.com/ Norm Rex Gozar wrote: When I asked, I got this response from David Murray, August 2008: As I am no longer in the U2 marketplace, I have decided to close the u2blog web site. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Web services
I just went over the U2 Web Service Developer documentation carefully. This is really just a GUI wrapped around an HttpListener, forwarding requests to a completely non-SOAPish BASIC program. (Just like my web service video.) It's not a developer tool, it's a deployment tool. I thought they were connecting directly into U2 and wrapping data in a SOAP envelope there. So the problem really has nothing to do with U2 Web Services, but how do we stop anyone from accessing a privileged port on a public web server?. David, sorry if I missed comments on this before: if your web service is facing out to the internet then why can't you open a firewall port for authorized IP addresses? If firewall management isn't practical, I'd think that it would be pretty easy to use a software-based proxy that accepts connections on a socket and then forwards them to the the U2 service. You can then filter IP addresses here so that unauthorized clients never actually hit the DBMS, which I believe is your goal. If you can't find something you like (though there are any number of free/commercial offerings out there), you could write your own HttpListener, authenticate requests based on a modified querystring which you provide to your clients (you can use LDAP, IP address, or use the encryption method I described on 4-june). When you're satisfied that the client is OK, forward the request to a different local connection - the web service created with the IBM product. You're probably using U2 Web Services so that you don't need to write code. Well, it doesn't look like security is built into the software (except for SSL) so unless IBM comes up with an enhancement soon this becomes a DIY project. You can find lots of info if you search for proxy web service. Here is one article that I believe describes your scenario - and for the I hate Microsoft crowd I selected something written by Java developers. ;) http://www.developer.com/java/web/article.php/3320851 Since you're a .NET developer, I'm really surprised that you see any value in this product. There are tools in our industry for BASIC programmers who don't know and don't want to know about other technologies. I think they provide a valuable service and it seems the U2 offerings fits this category. But when you know what goes under the hood and it only takes a couple minutes to do this stuff on your own, why bother with something else? The U2 Web Developer simply shifts complexities: rather than learning how to do something on your own, you're learning how they want you to do it. How much value is there to a side-ways shift in responsibility? If anyone else here finds limitations in the U2 Web Service Developer product, let me know - I'm sure I can write a replacement relatively quickly. :) Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Author of web services articles for the MV market before anyone in this market was even interested in web services... nospamNebula-RnD.com/articles/ ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Web services
From:David Jordan I am trying to work out how to identify who the person is that is consuming a web service using the U2 web services developer. I know techniques to do it in .Net. How do ensure that a person is authorized to consume that service. What approaches have others taken to tackle this. Why would the techniques be different depending on the tools you use? The whole point of a web service is that you should be able to implement various protocols on all sides independent of the technologies used in clients and servers. The following is not specifically related to the U2 web services but you should be able to implement it without special code. The simplest mechanism would be to use ID/password fields in your service signature or payload. You could pre-authenticate using the above, and return time-restricted transaction tokens for actual transactions. A more rigorous approach is not to use plaintext passwords but to use encrypted tokens. This requires clients to add special code to agree with your server, beyond basic WS connectivity. You can provide your encryption algorithm to trading partners or you can provide object-only encryption modules that agree with your BASIC algorithms. Service consumers send you data with a user ID and the token. You read the real password from a U2 file using their user ID and try to decrypt the token with it. Trash the transaction if you can't decrypt. Encrypting an entire transaction may be necessary for some purposes but it's an unwelcome performance hit for others. You could use true encryption for the above tokens plus simple munging for the payload just to deter prying eyes. If you only encode a single value then you need to make sure that someone can't just put that value into a different transaction. The value that you encrypt might be the IP address of the sender. If you decrypt the value and it's not equal to the IP address (perhaps one you have registered for the user) then the transaction is bad. I don't know if you can get the IP address of the sender from HTTP headers with U2 web services. If you encrypt the entire transaction then the transactions need to include a timestamp and the server should reject anything that looks old or like it's already been processed. David, I hope that helps, but if you're already on top of all of this, then please disregard and let's hope it helps someone else. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD provides tools and services for web development, including GUI and Web Services. remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Web services
From: David Jordan The Web Services Developer limits what can be done by programming, which takes away the ability to use facilities such as Microsoft authorization. If the consumer comes through something like excel, it limits programmatically what can be done from the client sides as well. I am seeing if someone has a clever trick to solve these issues that I have not thought of. I see. Just to be clear, there was nothing in my note related to Microsoft authentication. I was talking about doing all of the functions from BASIC, and that includes any *nix-only platform. I have implemented this sort of authentication with different kinds of web interfaces and on various MV platforms, and I'd hope that U2 web services would allow you to execute common BASIC code. My only experience with U2 web services comes from two sources: 1) A client who tried hard but had to give up on U2 web services because it simply couldn't do what was required. We solved the problem with another product. 2) Someone else's client who also gave up: http://www.youtube.com/watch?v=276F-xKqflQ So far I'm not impressed with what I'm hearing about this interface. Good luck. T ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Blogs on GUI development
I've recently written two blogs which go into some detail about the options available to developers who want to put a GUI on their MV app. These are more oriented toward people who don't really understand the various mainstream buzzwords or how some of the more popular options compare to one another. The emphasis is on the idea that no matter what you choose, you will have a learning curve, but it helps to understand that your education won't be completely wasted should you learn about one option and then move to another. There are consistent paradigms in use, and sometimes just understanding that is helpful in making comparisons and choices. If you are familiar with the options, including those that make use of JavaScript and Ajax, or the various plugin tools like Flex and Silverlight, then your feedback is most welcome, but please remember the intended audience when going into detail. The best place to start is probably the main page: remove.this.spam.filterNebula-RnD.com/blog/ Look down the page for articles: Still on a fence about GUI? then Web GUI tools - Not as different as they seem There is also a more detailed article titled Adobe Flex for MV GUI if you wish to know more about that option. As stated in my recent entry About this blog, taking a brief step back, I'm happy to accept comments and criticisms, so please let me know what else you'd like to see written up. Yes, I sell tools for which I have a bias, but for those of you concerned about ads I hope you will find my blogs are almost entirely non biased when I'm explaining options. I leave it to the reader to come to their own conclusions, and if their conclusions agree with mine then I will be ready to offer products and services to help with implementation. If not then I'm at least glad to have helped someone with their decision process. Finally, my blog home page has sidebar links to other MV-related blogs (and a couple that are not). I welcome you to visit these repositories of (arguable?) insight and to let me know if there are other MV blogs that should be added to the list. Blogs are homes to indepth notes that usually don't belong in forum discussions, and you often won't find the information or (arguably?) helpful perspectives anywhere else. As an example, my recent blog notes on web development relate closely to Brian Leaches recent blog on mvScript - you simply won't find this information anywhere else. Thanks for your time, Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
RE: [U2] UV BASIC Flowing Charting Tools
Here is a link to Brian's product page: http://BrianLeach.co.uk/mvscan.htm I do not want to step on toes and attempt to create a solution which duplicates one already provided by our esteemed colleague Brian Leach. If mvScan is not available, or for some reason doesn't suit specific needs, I will offer to try to put a graphical front-end on someone's existing application parser. I don't have the time to write that sort of detailed and fragile back-end code but as I said earlier, the graphical part (surprisingly?) shouldn't be that tough. (Famous last words...) I make no apologies about the fact that my business survives when we get paid for writing software, so anything I come up with will be sold at some price balanced by both investement and demand. (It's a helluva world when I actually feel a need to explain something like that in a professional forum, but here we are.) If you object in principle to paying for software then you can either do this on your own or wait (a year? forever?) for someone to do it for you for free, but please don't hold it against me for attempting to offer supply for demand without losing my house in the process. So I invite people to check out Brian's mvScan. I invite Brian, Norman, and John to contact me about collaboration toward a new product with split revenues (thereby addressing the bottom line issue which Norman's CEO mentions). And I invite anyone interested in a graphical flowchart (and perhaps other visualizations of their MV data) to contact me so that we have some idea of whether it will be worth it to even do this. Thanks for your time. 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 Visit PickWiki.com! Contribute! From: Norman Bauer I would also love to use it. Brian has a program that essentially does this, however in the economic times we are in now my CEO told me if it does not directly translaye into improveing the bottom line I can not authorize it. If I get time in the next year I may write something and release it, but don't hold your breath. Charlie Noah wrote: I am sure I'm not the only one interested. Please do request permission to release it. John Israel said he'd written one, but it must be internal to his company, too. I can't find any reference to it, or to Brian Leach's program on the internet. I would be interested in seeing their software as well. Guys? Knowing how snarled and convoluted some of our legacy programs are, this would be extremely difficult software to design and build, and I applaud those who have done so. Dan McGrath wrote: I have a tool I wrote here that does this for your entire source repo. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV BASIC Flowing Charting Tools
The trick isn't creating charts, or pretty ones. The trick is to create a flowchart from BASIC which shows Calls and Includes (one kind of report), or files and fields used (another kind of report). You can take it further and trace Exceutes, procs, paragraphs, etc. All of those report types are data-centric and it's a real challenge to create a generic utility that can derive that sort of metadata from any given MV application. Once you have the data you can render it with any tools you wish. Doing the charting is the easy part. :) I believe Brian Leach has something for doing MV-oriented flow charting as described above. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! From: dennis bartlett I like FusionCharts. Steve Romanow wrote: not specifically for unibasic, but Dia is nice and free. Marco Manyevere wrote: Does anyone have a good recommendation for Universe BASIC source code flow charting software to aid with analysis and documentation of existing code? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] PCL problem on U2
All of the other comments look right on. In addition to reworking to those suggestions, I'm also thinking there is a CRLF at the end of each of your lines which may affect processing of the commands. I'd build the entire string and then output with a single PRINT. I haven't touched this stuff in years, sorry if it's correct. Having said that, I'd rather stick an ice pick in my eye than write PCL. There are many tools available where you can just use an HTML-like image tag, and as time permits I recommend you look into them: img src=/area1/.../Logo.gif / 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 Visit PickWiki.com! Contribute! 0004: PRINT ON 11 CHAR(27):E 0005: PRINT ON 11 CHAR(27):f100Y 0006: PRINT ON 11 CHAR(27):f0X 0007: PRINT ON 11 CHAR(27):a540h780V 0008: PRINT ON 11 CHAR(27):*t300R 0009: PRINT ON 11 CHAR(27):*r100A 0010: EXECUTE SH -c 'lp -d PR33 /area1/dh.temp/M100_3Logo.pcl' 0011: PRINT ON 11 CHAR(27):*rC 0012: PRINT ON 11 CHAR(27):f100X 0013: PRINT ON 11 CHAR(27):f4X 0014: PRINT ON 11 THIS IS A TEST OF THE MACRO 0015: PRINT ON 11 CHAR(27):E --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Help with encryption
From: Tom Whitmore We use gpg to provide a level of one-way encryption. It's not the best, but it is the only option we could find. Does Universe or Unidata have a way to link custom functions into the monitor? This would facilitate in-process execution of code directly from BASIC. For example in D3 we can link in MD5 encryption from an external C library and then run it using: success=%md5(valuein,valueout,options) or use common libraries like this: result=%curl(url,page,options) etc... Not many people use this functionality but the benefit is that a new process doesn't need to be created and destroyed on every execution, as is the case with something like this: EXECUTE SH -C gpg :PARAMS: CAPTURING OUT This functionality opens the door to all sorts of possibilities - allowing us to make use to a world full of function libraries when people here are always trying to reinvent the wheel with BASIC. Unfortunately because of geeky words like C, link, and monitor, this topic is hardly ever discussed. 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 Visit PickWiki.com! Contribute! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Printing from UV through a windows server for PDFs, forms, etc.
From: Bob Rasmussen This sounds a lot like Print Wizard, at www.anzio.com I think that's what he wants. See the link to MV BASIC demos here: remove.pleaseNebula-RnD.com/products/printwizard.htm We don't sell it, we just like it. 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 Visit PickWiki.com! Contribute! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Uniobjects [AD]
From: Doug Averch If you want to proceed and write your own code be prepared to spend 3 to 4 times what you think it will take. UniObject's connection manager is no easy task and not for the faint at heart. It takes quite a lot of code to make sure you handle all of the UniObjects error conditions and maintain that reliability you need. This is one of the many reasons why we use, recommend, and sell mv.NET. Pooling is built-in, and you have a lot of flexibility to create and modify profiles to suit specific requirements, rather than writing custom code. It's quite inexpensive and just this feature will save you weeks of coding time - time which is better spent on real application work. Please contact me for details and a free trial. 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 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV to SAP migration disaster
From: Charles_Shaffer Hear hear. And now that this Microsoft-centric mentality has spread to management, I am concerned that there will be serious consequences down the road. ... 2. It was Windows-based. (Bad idea #2)... Charles Shaffer Senior Analyst NTN-Bower Corporation I'm seeing these anti-Microsoft arguments and it seems to me some of you folks are missing the point. If someone migrates away from MV to SAP, it could be due to a lack of understanding of MV and perhaps a blind bias toward SAP. And that's a bad thing, right? The anti-Microsoft sentiment here shows a categorical bias, as though all things Microsoft are bad. Isn't that the same thing? Biggotry is wrong no matter what side of town you live on, no matter what church you go to, and no matter what technology you prefer. A Microsoft-centric metality is no better or worse than a Linux-only or Mac-only or even MV-only mentality. Anyone who categorically closes their mind to all solutions based on the source is killing the messenger and not listening to the messages, whether they're good or bad. Anyone who insists on doing everything with Microsoft tools is just as bad as someone who continually insists on getting their MV DBMS to do things that a DBMS was never meant to do (like building in an FTP server, HTTP client, or SOAP parser...). If you want people to keep listening to you when you utter the word Pick in a sales presentation (or to your own Management) then perhaps you should reconsider your own bias when you hear the word Microsoft or any other word at which you scoff without further consideration. And before people go and say there goes that Microsoft weenie again..., listen to the message here, don't categorically dismiss the source - or once again you'll be completely missing the point. I use and sell Microsoft tools where they seem to fit. I've been through all of the others too and still use other tools occasionally including Java and PHP. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com! Contribute! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] CallHTTP vs cURL...
David, buried in my point was that you may be able to get other phantoms to be more effective, thus reducing your requirement for phantoms for other tasks. So with luck, when you do need a new one for CallHTTP your total phantom usage won't be any more than it is now. Like anything, especially in this economy, eliminate existing waste before attempting to avoid new expenses. But be careful about making your existing ports more effective. In it's strictest technical sense IBM licensing would prohibit even these sorts of optimizations - have your lawyers do lunch with their lawyers... Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Visit PickWiki.com. Contribute! From: David Wolverton BUT -- right now, regardless of how it gets executed, using CallHTTP (or anything 'socket') would go iPhantom, even if just for a moment on a 'called' or 'executed' sub-sub-phantom -- and if there are no seats free for the phantom to 'grab' then it's dead in the water... The issue isn't the 'method' used to execute CallHTTP - it's the CallHTTP wanting to grab a seat that is the issue. Thanks! David W. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] CallHTTP vs cURL...
Responding in general to a few notes here. [AD] follows code and comments. As to phantom operations, I find it surprising that most sites don't use a plugin process, where you have a single phantom that loops to process any tasks that are required. It's like a checkout person at the store, the same person will ring up whatever you bring to the counter, you don't have one person to ring up milk, another one for butter... You provide the required operations through a polled file. For example: LOOP NOTASKS=0 SELECT TASKS LOOP READNEXT TASKID ELSE NOTASKS=1 UNTIL NOTASKS DO READ TASK FROM TASKS,TASKID THEN BEGIN CASE CASE TASK1=CALL WEB SERVICE CALL WEBSERVICE.CLIENT(TASK) CASE TASK1=SYNC OUTLOOK WITH CUSTFILE CALL SYNC.OUTLOOK(TASK) CASE TASK1=RUN DAY END REPORTS CALL DAY.END(TASK) CALL TASK1=RESET PHANTOM DONE=1 CASE 1 CALL INVALID.PHANTOM.REQUEST(TASK) END CASE END ELSE NULL REPEAT * Refresh phantoms every 10 hours IF TIME() START.TIME+600 THEN DONE=1 UNTIL DONE DO REPEAT EXECUTE START.NEW.PHANTOM ; * kick off a replacement END Each of those subroutines can process in-line if they are guaranteed to be short-lived, or they can kick off other phantoms to handle more lengthy tasks or certain categories of tasks (as with checkout people at a department store who ring up clothes, tools, etc). The idea here is that you may not need to start a license-consuming phantom to do every task Now, but by deferring the task for a few seconds you can do a lot with just one process. Each process is also responsible for removing the task from the queue. If that's not done some other process will get it. If you have more than one of these processes running to get the same category of tasks, you'll need to ensure there are no contentions and that tasks aren't dropped. That whole process could be simplified with something like this: PROG=TASK1 CALL @PROG(TASK) That opens many possibilities but isn't perfect for all situations either. For the [AD]: Many people want to call external web pages or web services, and turn to tools like CallHTTP and cURL. I use cURL a lot myself, but if you need to create structured requests or parse the responses then you have a lot of work to do, particularly with XML. Most people don't know that mv.NET can be used to call a web service remote from MV, and return results with no protocol-related formatting whatsoever. You just write an item to a file and read back the results. I won't get into another technical HowTo here but this solution does consume a U2 license and may not be suitable for all applications. If you already have mv.NET then you can call a web service from BASIC very easily at no extra cost. If you don't have mv.NET, let me know. For people wondering why should I buy a tool when I have free tools in U2, just think about how many tools you use to solve different problems. Then think about how many times you've seen me say you can do that with mv.NET. It's one tool, in many ways better than the free tools - isn't that better than going through the learning curve for a new tool every time you want to do something different? People also think anything other than free is expensive. mv.NET licenses are only a few hundred dollars - much less than the cost of developing almost any of these free solutions on your own. Feel free to contact me for estimates. 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 nospamNebula-RnD.com/blog nospamNebula-RnD.com/forum Use PickWiki.com! Contribute! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SQL Injection (was Select Problem)
From: Israel, John Thanks for all the replies. Yeah, it was doing a pattern match, but not one that I would have expected... It's precisely due to issues like this that I recommend unaudited/unfiltered end-user input never be used in queries. This is the definition of SQL injection which plagues almost every developer using a relational database. Most MV developers are unaware of this concept or simply ignore it until something bad happens. The problem is greatest in open source code where a bad guy can easily find out exactly how the query is structured. It's less of a problem when the source isn't available - and that means most of us. Nevertheless people should be aware of the potential vulnerability. Example: You have salesreps who should only have access to order data for their own territory. Your report generation code looks something like this: MY.TERR = SALESREP.REC33 * assume value is 123 for current rep INPUT FISCAL.PERIOD STMT = \SSELECT ORDERS\ STMT := \ WITH TERRITORY \:MY.TERR:\\ STMT := \ AND WITH PERIOD \:FISCAL.PERIOD:\\ EXECUTE STMT ... generate report The territory is hardcoded, seemingly secure. What if the input is as follows? 02 OR WITH TERRITORY NOT The query becomes: SSELECT ORDERS WITH TERRITORY 123 AND WITH PERIOD 02 OR WITH TERRITORY NOT In short the rep gets a listing of all customers that do not have a null territory. Imagine what can happen if someone knows how to use EVAL. What if this is a web user entering their own user ID into textbox and you pass that input into a select so that they can see their order data? They could conceivably see order data for all of your customers. How do you fix the vulnerability? In this case, filter the input of FISCAL.PERIOD to make sure it's numeric, doesn't contain spaces or quotes, and maybe that it is in the range of 1 to 12 (or however many periods you have). Never pass user input directly into a select statement. This was off the top of my head so please forgive any issue with the details but the general point should be clear. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] universe sockets
Warning to sensitive readers - as well as providing other on-topic information, in this posting I mention a product that I sell, and will offer services. *good grief* Sage words from: Symeon Breen My only comment on this is don't go writing socket code just for this - just write a wrapper round the uniobjects code ... DAL...BLL... From phil walker Maybe someone could put an example of this on the U2ug website, or Brian could include it in his training materials if he has not already so that people have an idea how to accomplish this ;-). Phil - The practice of separating the UI and DBMS is a Design Pattern called MVC or Model-View-Controller. There are many websites and books dedicated to the topic, and lots and lots of examples in any language you wish. I've described the concept in my blog here: nospamNebula-RnD.com/blog/tech/2006/06/mvc.html (please remove the 'nospam' prefix, thanks) I've also mentioned the patten in several blog entries and articles including the following: nospamNebula-RnD.com/blog/tech/2007/02/soa1.html nospamNebula-RnD.com/blog/tech/mv/2008/05/starterkit1.html nospamNebula-RnD.com/blog/tech/mv/2008/11/mvcodegen2.html nospamNebula-RnD.com/spectrum/is903.htm from Doug: We want to explore other connection options that are not tied to uniobjects so that if we decide to switch from universe to say database x we can do so easier. Doug, you have stated that you want to cut costs, allow for migration, and account for doing things that existing components do not: - About costs, you are already in contact with BlueFinity about mv.NET. That is the few hundred bucks solution that I mentioned earlier. I'll be happy to discuss mv.NET with anyone else. - mv.NET also works for all MV platforms with no changes to your client-side code. My company sells and supports mv.NET and I use it for all MV development so that I don't need to worry about which DBMS is under my client. For all projects I work with a DAL - the UI is then able to work with SQL Server, Amazon SimpleDB, or other data sources - and this is how I get our products to integrate MV with everything else. - As far as functionality that you might feel is missing, perhaps a key factor here is that no one here really knows what functionality you find is missing from other offerings. Frankly I'm not sure you know yet either - it looks like you're just trying to cover the bases in case you do find limitations. That's a tough way to make technical decisions. If you can cite some feature that is missing from other connectivity components then we might agree that sockets is indeed the way to go. Otherwise the response seems to be consistent: don't bother. My recommendation to Doug and anyone else contemplating new multi-tier development is as follows: 1) Write your application UI using UO.NET or UOJ, depending on your client technology. Get it working and get feedback from your users on a finished v1.0 development project. 2) If connectivity seems to be an issue and you're using .NET, try substituting mv.NET. It's tough to pitch mv.NET to someone who has never used UO, but once you know the limitations of UO, it's relatively easy to understand where mv.NET provides value. (This is where we get a number of calls that start we've been using UO.NET but) Just remember that mv.NET uses UO.NET as a basic connectivity pipe and provides significant value above that. 3) If you still want to understand sockets and work on a custom socket interface. Do it on your own time and not as part of a deliverable project. (It will be very costly and will delay other projects if connectivity becomes the predicate project.) If and when your socket interface is complete, substitute it in the DAL tier and see how it goes. If it needs work, swap the original DAL back. If you need help to work your way around this stuff, this is exactly how I spend every day of my working life. As with tools that help to keep your development costs low, you should consider getting assistance from people who can provide assistance and maybe even build some base code for you. 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 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] universe sockets
From: doug chanco ...I would like to develop an in house iphone app that our users can use to query our database for prices/quantity available and sadly Apple only allows socket access to the closed iphone OS. Use a web service from Objective C, which is relatively easy with iPhone. (Offer to assist can be inferred.) Separate the client from the server. iPhone apps have nothing to do with data access. Create a web service and you can use it from any client. Think indirectly and the world can open up for you. :) If anyone has a pick server socket solution they would like to share I'd appriciate it (answering requests and spawning a program to handle each incoming request) If you can deal with a single threaded server it might work. Unfortunately in the MV world I don't believe you will be able to fork off processes like an HTTP server. otherwise I may go the route of moving the socket server to the OS (using init.d to handle incoming requests and to spawn a program to handle each request). Hmm, that sounds like... http://sourceforge.net/projects/mvwww/ (My name is there but Glen did ALL the work) Modify your perspective and you can have a solution in a week. The current line of inquiry is more likely to lead to weeks or months of searching, angst, and failure. Good luck. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] universe sockets
I've implemented many custom protocols and process managers, and have implemented a few RFC-standard protocols with raw sockets and with MV BASIC, so I have some experience in this area. From: John Jenkins For anyone currently using Message Queues - please switch to sockets - I speak from personal experience that the performance and throughput gains were huge. A message queue is a tier above sockets that provides specific services. It's not an either/or proposition. If you don't need message queuing, sure, you may be happy with a simple socket and the right protocol. If you do need message queuing, raw sockets will be far from adequate. From: doug chanco I am about to do some socket programming with the universe socket API (universe 10.2.x and aix 5.3.x), are there any gotchas/advice/suggestions anyone would care to share? Sockets by themselves have no protocol above TCP/IP and are only as stable as the protocol you create. Be careful of timing, allow for retrying bad transactions and dead connections. If you have any intent to use multiple sockets you're going to have to create a process manager, perhaps with multiple threads. Most people don't go this far. A full response to your inquiry really depends on the answer to another question, which is why are you doing this? Sockets are geeky, fun, and challenging, and quite satisfying when they work correctly, but for the most part working at that tier is hardly cost-effective given the plethora of software available to do communications at a higher level. Do you want to do sockets for fun or because your business requires communications? Are you trying to build a better mousetrap or trying to save money? You're going to spend a few weeks on this, now or over time. Is your time really worth less than the free tools from IBM, or commercial tools that only cost a couple hundred bucks? Also, if you decide to change employers (or your clients change vendors), who is going to get stuck maintaining all of the custom code? If I were an IT director I would not allow someone to write a custom socket interface internally for production use. I have the same issue with FOSS projects that are unmaintained - they're more of a liability than an asset if the code is unmaintainable. On the other hand, there are few good _and_ cost-effective comms solutions entirely based on *nix for use with MV. I think this is a major hole in our market. If someone created a low-cost, cross-MV tool that facilitated fast and stable comms, with session pooling, caching, and other middle-tier services, for example through Mod-Apache or Tomcat into MV, I'd take a close look at that rather than writing custom socket interfaces into every MV platform. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UVRPC API question
The topic of language bindings comes up frequently, ie how do I connect to DBMS X from language Y?. I've written a paper, not published yet, discussing an open language binding specification called mvEsperanto. It's a common client-side API for any language whether PHP, Java, Perl, .NET, Ruby, etc, which serves as a front-end to any connectivity component like UO, UO.NET, mv.NET, QMClient, D3 Class library, etc. The idea is to have a similar development paradigm for all languages to all MV DBMS targets using the developer's choice of connectivity. With commonly accepted higher-level bindings, people may feel less of a need to create vendor-specific bindings at the protocol level. Doing stuff like that is cool and geeky but the scope of the effort is very limited. Brian, I'll send you a draft in the next week or so. T From: Brian Leach I've asked IBM to consider publishing this on several occasions. I was wanting to create a client in PHP using their socket library. I did get as far as tracing the network packets for a UniObjects connection, and it looks like someone with time to spare (ie. not me!) could work out the protocol: it looked pretty simple and unencrypted (so long as you don't use SSL of course). Brian From: doug chanco on aix 5.2/ uv 10.2.x is it possible to directly talk to the uvrpc without using uniobjects (ie. via a direct socket call). From Tony Security concerns for the publisher (IBM) also would usually discourage publication of the protocol details. In short, I don't think you'll get a solid answer to this. So why do you want to do this? Maybe another solution to your primary problem is available. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UVRPC API question
From: doug chanco on aix 5.2/ uv 10.2.x is it possible to directly talk to the uvrpc without using uniobjects (ie. via a direct socket call). If this is possible can anyone share how they did it (ie what did you send/receive) or any special things you had to do to get it to work. Any application that uses a socket expects specific sequences of characters from a compatible client. Unless you know that protocol you won't be able to create a compatible client. It sounds like this is the spec you desire. I don't think IBM has published the API to the UVRPC interface and I doubt they would. Unlike public protocols like Telnet, HTTP, SMTP, and hundreds of others published as RFC documents, proprietary, closed-loop protocols like UVRPC are rarely published, and don't need to be because the one and only client should always be available. Security concerns for the publisher (IBM) also would usually discourage publication of the protocol details. If you get the API for the client you could possibly create a new compatible server using sockets. This would allow any client in the field to use your server instead of the default UVRPC server. That opens all sorts of licensing issues. In short, I don't think you'll get a solid answer to this. So why do you want to do this? Maybe another solution to your primary problem is available. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SQL a possibility? [ad]
*gasp!* The pain we see when people try to move data from Excel into MV. Just have a look at this: nospamNebula-RnD.com/blog/tech/2009/03/xchange-intro1.html Screenshots in blog. Beta available soon... BTW, it wouldn't help with this project but if anyone wants to export Excel sheets to CSV, see the ExcelExport utility on our freeware page here (no for-fee components of any kind required): nospamNebula-RnD.com/freeware/ Tony Gravagno Nebula Research and Development From: George Gallen I Didn't really want to do that. I opted for the COMO solution, then used the editor to delete out all the TOF's, then saved what was left in SAVEDLISTS. At that point I did a GET.LIST, followed by a SELECT on the file that the ID's were to point to. This weeded out all of the blank lines that the editor was not able to remove. Moving over to Excel and deleting columns would have been choice #2 From: Ron Hutchings If you can move between your PC and the server. Open the spreadsheet, delete all the columns you don't want, save the one column as a text file, move the file back to the server in SAVEDLISTS and you have created a list. From: ggallen I'm trying to save the first field of a .csv file to a select list, Yes, I can write a program, but I also wanted to try to do it on the fly. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] International Spectrum Conference - Twitter?
Note: Correction to your twitter page! http://twitter.com/clifoliver ... Only one L in there... but you probably knew that. :) Personally I never twitter or read them. Despite the fact that Twittering is a global phenomenon (and the last book I worked on culminated with a LINQ-to-Twitter example) I think it's an amazing waste of time. However, that's what people have said about forums, blogs, and many other services until they become almost indispensible when used for good purposes. I'd say introduce a new First, twitter your fingers off, bring the MV market into the 21st century, and let us poor saps who aren't there get a taste of what we missed. Best, T As the Managing Editor of International Spectrum magazine (one of my Part-Time jobs), I'm thinking of Twittering from the Conference next week. Being new this social media, I have to wonder if this is of any interest to people or just adding to the Noise of the Internet. I'd like to hear your opinions. Regards, Clif Twitter: @clifolliver -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] International Spectrum Conference - Twitter?
From: Glen Batchelor Clif, Why don't you just set up a new category in the Spectrum blog for conference happenings? It has an RSS feed built-in and anyone can check on it from the intarweb. You can post video segments, if equipment is available, and sound bytes. I think the point is that there isn't a blog or other mechanism setup, but he already twitters and almost anyone can just visit that one web page. Like I said, I don't personally like the idea of Twitter (social blogs tell you what someone had for breakfast but now twitter allows them to tell you about every bite) but it _is_ a popularly accepted phenomenon and can probably be used for non-silly purposes (like trade shows) if given the chance. I'd say if he has it, do it, and if people aren't interested, tough. Ya can't please everyone all the time. [keeping it light for a friday] Hmmm, now that I think about this, I can easily come up with an interface that will re-post Clif's twitters to a forum (no, not this one *snicker*), to a blog, into Skype chats, or even into someone's MV system. (Anyone want an Excel graph showing how often Clif tweets?) Like my tool that started my morning coffee when I booted D3, or the QM tool that turned off the outside lights after sundown, MV people may not wholly appreciate the utility of such geekiness - but this sort of thing leads to innovation. Obviously people outside of the MV market appreciate this stuff. If nothing other than to turn new profits using familiar tools, maybe MV people should be more in tune with what's possible with technology. (Yes, if anyone is interested in a U2 port for the above mentioned geektilities I'm sure we can come to an arrangement...) Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] U2.NET question
[AD], information, and an inquiry below. From: Mike Randall One thing I've noticed is that the names for the various products are very convoluted. They have U2.Net, Mv.Net, Uniobjects.Net, yada yada yada. The free tool is the .Net Data Provider. I'm using that to link U2 to the .Net apps. Mike, based on your notes in this posting: http://www.mail-archive.com/u2-users@listserver.u2ug.org/msg26408 .html I believe you're using the product described here: http://www.ibm.com/developerworks/data/library/techarticle/dm-071 1kumar/ Looking for those links I found this interesting 3-part blog by someone coming at U2 from a relational perspective: http://gigamegatech.com/2008/11/25/visual-studio-and-ibm-univers e-playing-the-matchmaker/ I haven't read it yet, but from what I see I think it's a shame this guy had to beat his head against a wall to do something so simple. Let's quickly separate out the products and raise a little hell while we're at it. I hope someone will correct me if any this isn't accurate: - UniObjects: A non-.NET library providing basic connectivity for file open, read, write, and execute of server-side code. - UO.NET: A managed .NET implementation of UO, not just a wrapper, providing basically the same functions. - U2 .NET Data Provider: Library for those more familiar with relational databases. - mv.NET: Non-IBM product from BlueFinity International ([ad] sold and supported worldwide by Nebula RD) that provides three libraries: -- one which is a superset of UO.NET, -- another which is similar to the the U2 Data Provider for a relational perspective -- and another one that provides direct binding of DBMS data to visual components. As an example of how mv.NET is a superset of UO.NET, mv.NET uses UO.NET as the basic (but very capable) connectivity pipe into U2. If you just need basic functionality then as I've told a couple prospects recently, just stick with UO.NET. - U2.NET: This is an old version of mv.NET for which IBM purchased the source, limited some of the features, and then rebranded for distribution to U2 developers. They took out the cross-platform compatibility and made changes to the connection pooling capabilities. While based on mv.NET, to my knowledge there is no agreement to get the new features which have already been added to mv.NET or those planned for mv.NET future releases. I thought IBM was going to give U2.NET to everyone like UO.NET. If so, OK, less features but one package for most uses - that's probably a good deal. If they're going to charge for it as Ken says, then I guess I should put together a table that compares the features and pricing of these products. Does anyone have a good source for this data? Is there a roadmap of future enhancements for U2.NET anywhere? 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 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Does anybody have a hot backup server?
From: Brian Leach This is SUCH an important topic, and there have been so many good answers given here that it really deserves to be collated. Can I please ask/request/importune/plead/beg those who have contributed to this thread to write this up on the U2UG wiki? It's exactly the sort of rich real-world experience we all need. Here's a start: http://www.pickwiki.com/cgi-bin/wiki.pl?HotBackup The cmswiki page at U2UG seems to be unavailable. Maybe I just didn't login, but anyone should be able to create a page there that for now just links back to PickWiki.com. Wiki is about collaboration: Anyone can plant a seed, anyone can water the sprouts, anyone can pick out weeds, anyone can pick the fruit. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] validate active directory username password from within unidata?
From: Bruce McAdoo Any ideas how I might be able to validate active directory username password from within unidata? I'd encrypt the data in BASIC, pass it to a windows box, and execute an EXE that just does the authentication and returns a yes or no (also encrypted to deter corruption in the middle). This should be fairly straightforward. There are lots of code samples on the net for Active Directory. I recommend against shelling out with the user ID and password in plain text as this is very insecure. Everything can/should be wrapped in a BASIC subroutine to make the plumbing completely transparent to the application. This approach works for a wide range of these how do I... questions. This brings up a question: Does anyone know if we can link a C++ or .NET DLL into the UD or UV executables? Maybe call via a user exit or some other mechanism directly from BASIC? Shelling out is very inelegant, slow, and can be insecure. I have a blog coming out soon on this concept but haven't done this with U2. TIA Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] validate active directory username password from within unidata?
From: Brian Leach This brings up a question: Does anyone know if we can link a C++ or .NET DLL into the UD or UV executables? Maybe call via a user exit or some other mechanism directly from BASIC? Shelling out is very inelegant, slow, and can be insecure. You can link C code to UniVerse using GCI, but it's messy: easier on Windows where the code is loaded as a DLL but you still need to have GCI build the wrapper code for the call and recompile. Not C# or java though, both of which would be much more useful. I guess Delphi and FreePascal would be possible if you took the time to work out the calling conventions. Have you tried to load managed code through a COM Shim? I do this sort of thing all the time with MS Office but I'm not sure if GCI would choke if it does anything special. For calling native code, several of my current products (e.g. mvPDF, mvDistributor) run as Windows services accessed over socket connections from UniVerse/UniData et al. Not the most elegant perhaps, but transportable and real time. I do exactly the same. Our cross-platform products that allow MV BASIC apps to be clients to other apps and the internet call to a service on a middle-tier windows box, that does the comms, and the results are returned back to BASIC. From the developer perspective it's all BASIC, and I don't need to work with shims, linked DLLs, or platform-specific utilities like CallHTTP. I'll use what's available when required of course, but I don't think I've written platform-specific code for about 4 years now and I'm quite happy with that. Thanks for the advice. T Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] IDE
From: Tony G IE has had issues for years with stability and standards. But technical or political aversion (or attraction) to .NET needs to be based on .NET and not on applications that don't even use it. From: Brutzman, Bill 1. To me, it is a given that Microsoft encourages users to run the .net web apps on IE. That's not accurate. ASP.NET itself is browser/device independent - when the browser connects to the server, the appropriate code/controls are returned for the specific client. The tables that determine the code that gets pushed out are open for anyone to maintain, though I know of very few instances where this required, desirable, or even discussed. Further, .NET is not limited to ASP.NET. Therefore, as I said, you can use it as the communications pipe from Adobe Flex, PHP and other completely non-.NET clients. I'm sorry to turn people's notions of .NET upside down, but someone has to because obviously Microsoft hasn't done a great job of explaining .NET to a large number of people who still believe many of the myths. As just a couple examples: - I read recently a statement that .NET is expensive. That's not correct - it's completely free for development and use. - People tell me they don't use web services because they don't like IIS. .NET web services are not dependent on IIS or any other web server. 2. Much as I like Microsoft, the MS equivalent of JEE, BizTalk server, is rather expensive. This isn't related to .NET or IDEs, so while it may be true (no clue) it's not a valid point for this discussion. WCF (Windows Communications Foundation) has a lot of beautiful features yet it has some major scaling limitations. IBM WebSphere has a lot of advantages in this space. That's sort of apples and oranges too. Yes, WCF has scalability issues and I won't argue for or against it. But as a minimal definition, WCF is a free component of the .NET Framework which can allows inter-process communications with a few lines of code, and WebSphere is a large commercial offering with a large set of implementation details. With reference back to my original statement a the top of this posting, we can't properly discuss solutions when there is so much mis-information in circulation. I don't care particularly whether someone likes or doesn't like .NET, Java, PHP, or the MV DBMS model. But when we assert whether some technology is good or bad, or right or wrong for some task, we really need to make sure it's for verifiable and context-specific reasons. You won't get a comment from me, for example if you say WCF is inappropriate for internet usage as an inter-process communications mechanism - that's what it was designed for, but your opinion and experience about how it does the job are your own. You will get a comment from me if you say cars aren't as good as unicycles because unicycles consume too much electricity. Yeah, I know, that makes no sense for many reasons because we all understand cars and unicycles and how they're intended for different purposes. When we're on the same page with .NET we can have the same discussions. When we're not on the same page about the facts, it doesn't matter what anyone says because pre-conceptions and mis-information preclude any point as being compelling in any direction. Sorry for the digression. T Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] IDE
From: Brutzman, Bill 1. Rudy is in search of a technology religion. 2. Religions have tradeoffs, evangelists, collection baskets, and long-term implications. 3. Rudy probably does not want surprises. 4. Will it take Rudy longer to get to technology heaven if he is surrounded by agnostics? 5. Was that a rhetorical question? Whoe. There are lines between preferences, business choices, and techno-religion. I'm sorry, but I discourage against making technical and business decisions based on religion. I won't even try to sell software or services to a company that precludes solutions to the problems they present based on their techno-religion being pre-disposed against it. If that's what this is about then I'll be happy to exit the discussion. If not then I'd like to see other comments here that help Rudy on his way, and if I can I'll try to help as well. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] IDE
From: Doug Averch The problem with all of these suggestions by our fellow programmers is that they are piece meal. Get this tool for editing programs. Get this tool for gui-izing forms. Get this tool to from Microsoft to do this or that. I've been watching the frenzy with interest as well. I've spoken with Rudy about development in the past so I won't place an ad here. The problem with answering a question like this is that other questions and answers preclude coming up with a right answer to this one. Rudy likes the elegance of working within Visual Studio. Does that mean he's inclined toward .NET development? If so then we should stick to solutions that facilitate .NET development with MV. I recently published a blog discussing Flex and Silverlight development, and how they both respond in different ways to the frequent requests we see in these forums (low-cost, platform independent, well documented, well supported, easy to get developers, etc). But unless someone has made a decision about what technology they want to use, it doesn't make a lot of sense to propose tools. Heck what about tools for Ruby, PHP, or Java? Rudy asked about SB+. I'm guessing he wants to do web development but maybe thick-client is a possibility. That would prompt mention of some tools in our industry and not others. I've been using NetBeans for PHP here. It's free and quite popular but it's not integrated with MV, and that's the next point: Rudy asked for an Integrated Development Environment. That precludes text editors. In addition to something more firm about what technology is preferred, the next questions should really be: - What do you mean by IDE? - What features do you find attractive? - What are your real requirements? I have lots of answers, so the next post will probably be an ad, but I prefer to understand the problem better before proposing solutions. :) Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com remove.pleaseNebula-RnD.com/blog --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] IDE
Yeah, that was a funny statement. Sorry Bill. IE isn't .NET. I wish it were, and MS Office too because there would be a lot less problems. Many of the security issues are precisely due to the fact that IE doesn't employ the .NET security model which authenticates and authorizes code. After all of this time, Microsoft still hasn't delivered fully managed applications based on their own framework. I won't argue with the general sentiment. IE has had issues for years with stability and standards. But technical or political aversion (or attraction) to .NET needs to be based on .NET and not on applications that don't even use it. T From: Symeon Breen Off topic, but in reply - I develop all my web pages (asp.net and others) using firefox as the browser - i then tweak the stylesheets to cater for the bugs in ie6. Ie7 and 8 are much better. From: Jacques G. Using .NET doesn't mean you're stuck with IE. The webpages which make use of dot.net services can be any webserver. You'd just have to develop with your customer's browser to make sure it displays correctly. From: Brutzman, Bill Although we use MS Exchange and Outlook, Excel, and Word, my boss eschews Microsoft IE. As I am not looking to talk myself out of my job, I am not looking to force .net on him. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UniObjects in Web App [ad]
From: D Averch We would not recommend to anyone that you try to write your own connection manager. We been there and done that. However, that is what you have to do in order to guarantee that you don't step on your connections. Well, you don't need to write a connection manager. You can use one that already exists at a very reasonable price. As I've mentioned many times in my blog, you can use mv.NET connections to U2 from a variety of clients and middle-tiers, including PHP, Java, Adobe Flex, old ASP (not .NET), devices, and of course .NET. See how mv.NET manages connections in the video on this page: nospamNebula-RnD.com/products/gallery.htm Feel free to email any questions, or post them to our forum. 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 nospamNebula-RnD.com/blog/ nospamNebula-RnD.com/forum/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UniObjects in Web App
For anyone not familiar with this area: You can make use UO.NET with ASP, though you need to call the .NET client side interface from a COM wrapper. That is: ASPWrapperUO.NETU2 Similarly, you can use the UniObjects COM component from .NET: .NET ClientWrapperUOU2 Personally I'm more of a purist and prefer either COM or .NET all the way through. In real life we're frequently finding our .NET code called from COM applications like Microsoft Office, or making use of existing COM DLLs from within our .NET code. There are good reasons to use one or the other, and real pains sometimes in mixing the two. But what's important here is that it looks like Kathy believes that changing the communications components may require completely changing the web GUI. That is not correct. Make the decision about switching from ASP to ASP.NET on its own merits, and switching UO to UO.NET or other components on their own merits as well. .NET isn't just another technology for its own sake, it fixes a Lot of the problems of prior technologies. The more you use .NET all the way through the better. But don't feel like you're forced to do a mass conversion or nothing at all. Feel free to contact me off-list if that needs clarification. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com From: Symeon Breen Sorry i have only ever played with uniobjects with ASP and never used it in anger - i use uniobjects.net - it is correct you should not use the old uniobjects with .net but use the uniobjects.net api as this is fully managed code. However I am quite sure some people on this list do use uniobjects with asp. From: Kathy_NC We are using classic ASP and UniObjects (not .NET). I'm trying to figure out if I need to re-write this app using .Net or take some other approach to solve the issues we're having. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] XML Schema
Visual Studio comes with a command-line command called xsd that will generate an XSD from XML. If you do not have VS you can download this in the Windows SDK v6.0A. It should be quite straight-forward to write XML to a Dir (type 1/19), execute xsd, then read the result. If you are on *nix, you can write to a Samba share or equivalent, pump the xsd request to Windows using any mechanism you choose, and again read the result. 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 From: Symeon Breen If you want to generate an xsd from an xml then again there are authoring tools that will do this (including visual studio) - there is no function in databasic to do this ( i don't think i may be wrong tho ...). From: Jaweed Does anybody knows how to build XML Schema in Unibasic. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Web Services
To answer your question about creating WSDL, etc, have a look at the video I put on our site for how to create and consume web services: nospamNebula-RnD.com/products/gallery.htm The example uses mv.NET for connectivity but you can easily substitute UO.NET or any other connectivity pipe. Just focus on the web service stuff. Since I have to mention a product that we sell, only to tell you to ignore it, I'm compelled by the purists in this forum to disclaim this posting with the moniker: ... [AD] ... even though it's not. *sigh* BTW, Scott, can you please do something about the formatting of your emails. Your Tab key is translated poorly by your email client or some middleware. Good luck, Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com From:iggchamp subroutine pricing(cust,items,qtys,prices) B7 B B B B B B B B pass in cust,items, and qtys B7 B B B B B B B B return prices associated to each item B B item.max = dcount(items,@am) [snip] And heck, as long as I'm getting bold... How would I generateB the wsdl so the client knows what I'm offering? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Web Services
From: iggchamp I didn't see anything about the wsdl in the video though. Glad the stuff on our site helps! You saw in the video how easy it is to create a web service from Visual Studio. The beauty of it is that you never need to see the WSDL. Many of our colleagues spend time manually building SOAP documents in BASIC or tweaking WSDL when there are tools to do this automatically and transparently. When you point your browser to the service you get a web page with a summary of the service and a list of functions. Your URL would look something like this: http://localhost:8181/OurServices/WS1.asmx There is a link on that page to Service Description. Click on that and you're presented with the full WSDL for your service. The URL looks like this: http://localhost:8181/OurServices/WS1.asmx?WSDL Give your associates either link, or email them the WSDL. They should be able to access the service from any language or framework. Seriously, this part of it takes about 10 minutes. Plug in the code that Symeon provided for UO.NET and you have a complete solution in less than 1/2 hour. The only thing that might complicate this is if you really need to accept XML and return XML, not as part of the envelope but as the payload, or if you need to deal with arrays of objects. These things are still easy in a full .NET solution but if the client isn't .NET then all parties need to be more generic about the data types. Research will lead you to solutions. HTH T --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Unexpected telnet/SSH error
Chris and Bill - thanks for the notes but I'm telling ya I'm not using default ports, not connecting to port 22, and not connecting to an unused socket. I have Unidata SSH set to port 21023 and I can see it running. Telnet to 21023 causes a dialog to display on the server desktop. Bill, you're right that there should be a connection failed message with sockets rejecting connections from clients that are using the wrong protocol. I suspect UD might be trying to do that but it's failing and throwing an exception. That's the bug. Now, if you actually are running SSH on your port 22 then you're not seeing the same thing I am. Best, T -Original Message- From:Bill Haskett Tony: This is what I get... C:\Documents and Settings\wphasketttelnet 192.168.1.12 22 Connecting To 192.168.1.12... Could not open connection to the host, on port 22: Connect failed The reason I asked if you had something running on port 22 is I'd suspect you would get what I did, unless something was listening (anything really) on that port. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] ODBC Connection to Universe on HP-UX [ad]
From: Henry.Martel We are thinking of changing our application connect to Universe through ODBC connections. Has anyone had experience doing this? Are there any performance issues or considerations that we need to be aware of? One of our clients was using ODBC with Universe and got into a situation where licenses would get consumed but couldn't be released. They worked closely with IBM for months and the only resolution was to buy more licenses to avoid other users from being inconvenienced. Yes, that's the way it worked out, so they needed to find another solution, and they called me. Nebula RD sells, support, and provides development services for mv.NET, which this site evaluated and then adopted as their solution. mv.NET allows for reads and writes, with familiar MV BASIC syntax, or optionally using SQL-like queries it seamlessly integrates with all facets of ADO.NET. We use it to move data between MV systems, to/from relational, and now between MV and Amazon SimpleDB and other cloud repositories. Email for more info. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET worldwide and provides related development services Blog: remove.pleaseNebula-RnD.com/blog Contribute to PickWiki.com! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] [UD] Unexpected telnet/SSH error
This started out to be a bug report, but now I'm not sure if it's just a don't do that issue. Whenever I connect to my Unidata PE 7.2 over Windows via telnet, an unknown software exception error dialog would display on the _server_ desktop. I realized this was because I was telnetting onto the SSH port. OK, oops, don't do that. But I'd consider this a bug. Can someone else verify this behaviour and then report it to IBM through proper channels? (As a PE user I've never reported an issue directly to IBM and frankly wouldn't know how. Did I not RTM properly?) Thanks. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Unexpected telnet/SSH error
Bill - the problem isn't that I want to run SSH or that I can't find telnet. Although I do have 7 MV DBMS platforms running on my system and none of them run on default ports. :) I did accidentally telnet to the wrong port, but then found the right port, oops, mea culpa. The issue is that it looks like anyone can generate a mysterious server desktop dialog simply by telnetting to the SSH port. That would have to annoy someone if it happens at the wrong time and you're not sure what caused it. Try it. If your default for Telnet is 23 and SSH is 22, just Telnet to port 22 and see what happens. T From: Bill Haskett G-Man: Is something listening on port 22? Bill From: Tony G This started out to be a bug report, but now I'm not sure if it's just a don't do that issue. Whenever I connect to my Unidata PE 7.2 over Windows via telnet, an unknown software exception error dialog would display on the _server_ desktop. I realized this was because I was telnetting onto the SSH port. OK, oops, don't do that. But I'd consider this a bug. Can someone else verify this behaviour and then report it to IBM through proper channels? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] HP, Cron, Como, Execute, Capturing . Not (Solved!)
Ken wins! Running cron as a non-root user (probably a good idea anyway) causes this environment to work properly. Your prize is a free permanent end-user license for NebulaXLite for any supported platform. Developer licenses are free anyway so for anyone else who contributed to this thread to this point, I'll offer one permanent license at 50% off. Given the economy, maybe that's a new way for us to show our gratitude in these forums? :) Thanks to all. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com From: Ken Hall Tony - It just occurred to me that cron is running uv as root and that when root starts uv, the LOGIN proc does not run except in the uv account. Try changing the user in cron to a normal uv user and I bet your problem will go away. ... So it's a prog wrapped in COMO, in a paragraph, with stdout redirected, executed from uv, within a script, called from cron. (Sometimes I'm amazed any of this works.) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] HP, Cron, Como, Execute, Capturing . Not
Jacques - that's great info but the situation is more involved. Thanks anyway. Ross - I'm fairly confident this is one of those issues that never comes up in QA, only in the field. The cron line executes a script, the script executes: uv PNAME /outfile That's a Paragraph that looks like this: 001 PA 002 COMO ON FOO 003 RUN BP PROG 004 COMO OFF So it's a prog wrapped in COMO, in a paragraph, with stdout redirected, executed from uv, within a script, called from cron. (Sometimes I'm amazed any of this works.) I've asked the client to remove COMO for now, then if the problem persists to avoid redirection from the uv command. When the exact behaviour is determined, I've recommended that an issue report be filed with IBM through the client's DBMS provider. I've already suggested that if required, we can redirect the PROG OS queries back into OS files and then read from there, rather than attempting to Capture the output directly. However, the code doing this is our product activation subroutine (documented in my blog, search for activate key protect). For many reasons that code should not be writing anything to the host OS. I'll post a follow-up when we get something solid. Thanks again! T From: Ross Ferris Have you changed the code yet to avoid problem? You haven't mentioned version of UV -- if not current, check later GTARs to see if issue identified/resolved. Get the customer going with a redirection/read ... obviously (?) new code, but an ls -l /tmp/unique_filename will work across ANY *nix platform -- assume cron is running as same user/permissions as when you fire from TCL --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] [UV] HP, Cron, Como, Execute, Capturing . Not
We have a client on UV/HP-UX running a BASIC routine from a Cron job. The BASIC code shells out from EXECUTE and Captures data from the OS. The Capture is failing and it looks like COMO gets the StdOut that should be directed into a variable. I'm not sure yet if Como plays any part or if all Execute/Capturing instructions will fail when executed from Cron. The code works fine from TCL. I'm also checking to see if there are any other options or middleware, and exactly what's being executed in the Cron line. Until I get more info though, I'd like to know if this is a recognized issue. Under what conditions can we expect something like this to fail?: Execute sh -c ... Capturing result Thanks. Tony Gravagno Nebula Research and Development Info@ removeNebula-RnD.com (Various other email addresses are currently down ... it's Monday...) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] HP, Cron, Como, Execute, Capturing . Not
Thanks for responses so far. Scott - this code is also doing 'ls', and the output gets captured in COMO as you have seen, but it doesn't continue into the Capturing var. At least we can confirm COMO is supposed to see the output (for better or worse) but not at the expense of BASIC not seeing it. I'm wondering if this is an OS-specific issue where UV/HP is capturing in COMO but not in Capturing, or maybe this is only occurring when run through Cron. They could be doing something like this too: echo PHANTOM RUNREPORT | uv ...with the phantom being the platform-specific culprit. I'll get the details and report back, then maybe someone with the same platform here can check this before we file a bug report. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Email now working properly Don't forget Pickwiki.com! From: Scott Ballinger I do this all the time on UV 10.1.4 on RH AS 3. I have not seen a conflict with COMO and EXECUTE CAPTURING, except that the COMO records the results of the execute as well as the CAPTURING variable. E.g. EXECUTE SH -c 'ls' CAPTURING DIR.LIST Not only does DIR.LIST contain all the files in the directory, but the COMO records them as well, making for very verbose COMO files! Note that I have not tried the combination of cron + COMO + EXECUTE CAPTURING {+ PHANTOM?} so perhaps there is something going on there, but I do use cron + EXECUTE CAPTURING in many places without problems. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Leaving U2 World to the Dark Side (SQL)
Thank you Symeon. There was no ad. He didn't respond to my inquiry off-list. What a honkin time waster. From: Symeon Breen Where ? From: Address Advertisement below. Tony G wrote: [full quote] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Leaving U2 World to the Dark Side (SQL)
Don Verhagen wrote I have accepted an Application Development management position with a company here in the Philadelphia area. However, they are not a U2 shop. I view this opportunity as a chance to build my skills in and around the .NET platform and evaluate the use MSSQL in a true business application that I myself have built on a U2 platform in a previous time. While this doesn't exclusively rule out U2 in the future, for now, I'll be in SQL-land. Don - good luck to you. I expect you will find a couple clear differences and it would be nice if you could come back and share the experience with us after you've been at it a while: In the rest of the world it's much easier to simply plug a relational database into a project and make use of it through code. Tables as easily visible in trees in popular IDEs. Schemas easily become classes, and stored procedures become methods in a manner which is very elegant and compelling. I've tried to introduce MV developers to this luxury but so far there has been little interest: nospamNebula-RnD.com/blog/tech/mv/2008/11/mvcodegen2.html Yes, it's easy to get access to those relational table features but actually defining them on the front-end and maintaining them can be a pain. For data there is usually a need to normalize data, which is a constant bump in the road for those of us who enjoy multivalues and delimited fields. Of course data typing is an ongoing concern but personally I find strong data types to be helpful. And stored procedures can be a real pain. With SQL Server you at least now have the option to define SProcs with real code rather than as a stream of queries. A common code language is nice but the equivalent structure for us would be to write entire applications with code in data dictionaries or executed as triggers. So the code itself is better to work with but the location and flow of code is very different than our MV experience. I think you'll find that working in a non-MV shop you'll find a lot of things easier and less thinking from inside the box - but you'll probably also find yourself longing for those other things that you know are easier in MV. :) Best wishes, Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] PDF printing, LaTeX, Ghostscript, etc.
Many thoughts, decided to blog um nospamNebula-RnD.com/blog/tech/mv/2009/01/pdf1.html This is yet another good topic for PickWiki: removeNebula-RnD.com/blog/tech/mv/2009/01/wiki1.html http://www.pickwiki.com/cgi-bin/wiki.pl Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] PickWiki
I'm trying to breathe some life into the wiki sites available to this community. Please have a look at my recent blog on the topic. It introduces the concept of a wiki for those unfamiliar, and leads to how we can make use of existing resources and how people can use wiki for their own purposes: nospamNebula-RnD.com/blog/tech/mv/2009/01/wiki1.html There you will also find a comment with a link to a discussion on this topic in comp.databases.pick. Discussion here is welcome as well. I tried to contact Rex Gozar and Ian McGowan with no success so far. It would be nice to coordinate with them on some of this. As mentioned elsewhere, I'm not trying to centralize content to PickWiki but encouraging development of that resource And others, including the U2UG Wiki which I believe is hosted by Brian Leach. Comments, suggestions, and of course contributions are all welcome. Thanks for your time. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] I need to call a web service
From: Jaweed I need to call a web service from Unidata, please help. http://www.mail-archive.com/u2-users@listserver.u2ug.org/msg28109 .html http://www.pickwiki.com/cgi-bin/wiki.pl?CallHTTP If you don't need this quickly or you want a solution for free, there are many ways to get U2 environments to function as clients to other systems. Suggestions proposed here in the past and the links above include CallHTTP, Executing a cURL command, or using software like UO.NET, UOJ, or mv.NET to connect as a client and then accept requests to post against remote environments. There is no preferred way, though some methods are less performant, less elegant, or less secure than others. If your company needs this soon, the task can be accomplished in a couple hours as part of a service engagement. 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 and training services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Requirements for UO.NET connection?
We've been using the full path, not relying on the link from UV.ACCOUNTS. Nice try, thanks bud. Now that you mention it though, I do want to verify that the casing of the path name is all UC. Telnet may forgive mixed casing where UO may not... Hopefully IBM Support will have a solution soon. T From: Symeon Breen Hi Tony, Just a shot in the dark - for the account are you using the full path or just the account name - if just the name then it needs to be entered in a special file somewhere - i can't remember where on uv ... --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Memory allocation
This is just a note to anyone who gets the same error reported in this thread. The issue stems from a Unidata-specific bug (more like a well intended design flaw) with the way the CHANGE() and SWAP() functions handle substitutions of large strings, which is exactly what our NebulaXLite product does to create XML-based spreadsheets. IBM has created a fix which should be in the next release. Big thanks go to Wally Terhune and the IBM team for their efforts on this, as well as to our client (can name himself if he wishes, I'm intimidated by email disclaimers. ;) ) for working closely with Nebula RD as we created and tested workarounds to get around the issues. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Latest info on NebulaXLite: remove.pleaseNebula-RnD.com/forum/index.php/board,10.0.html Latest blog entry: PDA GUI for MV - Success remove.pleaseNebula-RnD.com/blog From: Tony G I'm running Win/UDPE 7.2 for development. When running a program with a few hundred K of variables being tossed around, the connection running the process will die, sometimes just gasping out this message: Size of memory requested (146157568, 35683 local pages) is too big! The same code (adjusted for platform-specific nuances) runs without a hitch on in another MV environment. It looks like Unidata is attempting to pre-allocate excessive amounts of memory as soon as it sees some volume of actual usage. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Requirements for UO.NET connection?
Thanks Wol - I've been informed that the issue was due to someone moving directories for easier housekeeping. For some reason D_VOCLIB and VOCLIB (data dir) physically need to be under the root path of the account. It's not enough that the pointers point to the right location. That precludes certain types of creative administration. Oh well. Issue resolved. Thanks to all for your time. T From: Anthony Youngman If you're on Windows it *shouldn't* (famous last words) make any difference. I never worry about correct case (though I do try and keep it the same as what Windows says...). Windows is case insensitive but case preserving so the case of the pathname shouldn't make any difference whatsoever. If you were using the account name then case probably DOES make a difference because UV (like Unix) is case-sensitive. Cheers, Wol --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Requirements for UO.NET connection?
Thanks for the response, Les. (BTW, you may want to fix your sig, it dumps a lot of HTML into the text body of emails...) The accounts that are not working do have a VOCLIB, though I'm unsure why that would make a difference - should VOCLIB contain special paragraphs or other data required by UO? One of the accounts that is working had a misconfigured VOCLIB pointer. This worked without VOCLIB and after the pointer was corrected. For Marc - I believe updatevoc is the Unidata equivalent of the Universe update.account, which has already been tried. Thanks. A call has been put into IBM by the client and I trust the issue will be resolved. I put the inquiry out here because frequently the community wisdom has a way of solving problems expeditiously. :) Thanks again, 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 and training services From: Les Hewkin Tony, check to see if there is a VOCLIB in the accounts that don't workWe had this problem with UO and VB6. From: Tony G We have a client trying to connect to UV10.2/Win32 via UniObjects.NET. The connection works with some accounts and not with others. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Routine to print barcode on a PCL5 HP
Bob is a little too modest to mention his own PrintWizard product. Have a look at the CODE128.txt code provided by George, then compare all of that to this: PRINT \barcode pointsize=20 src=\ : BNUMBER : PRINT \ style=code128 addcheckchar=off\ How tough is that? Full samples are at the following link, with barcode, images, line drawing, overlays, and faxing - all with easily readable BASIC code. remove.pleaseNebula-RnD.com/products/PW/demo2.htm 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 and training services Nebula RD is not a reseller for Rasmussen Software. More info at the bottom of this page: remove.pleaseNebula-RnD.com/products/printwizard.htm -Original Message- From: Bob Rasmussen ras-at-anzio.com A great deal depends on the style of barcode you want. Some can have, or require, check digits, which complicates matters. Regards, Bob Rasmussen, President, Rasmussen Software, Inc. personal e-mail: r...@anzio.com company e-mail: r...@anzio.com voice: (US) 503-624-0360 (9:00-6:00 Pacific Time) fax: (US) 503-624-0760 web: http://www.anzio.com street address: Rasmussen Software, Inc. 10240 SW Nimbus, Suite L9 Portland, OR 97223 USA --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] [UD] Memory allocation
I'm running Win/UDPE 7.2 for development. When running a program with a few hundred K of variables being tossed around, the connection running the process will die, sometimes just gasping out this message: Size of memory requested (146157568, 35683 local pages) is too big! The same code (adjusted for platform-specific nuances) runs without a hitch on in another MV environment. It looks like Unidata is attempting to pre-allocate excessive amounts of memory as soon as it sees some volume of actual usage. I've tried tweaking my udtconfig values (restarting Unidata each time). I think the program runs a little longer before it dies but I know I'm not tuning properly and the issue hasn't been bypassed. This isn't isolated. One of our clients running a non-PE (6 user) environment reported the issue and luckily I was able to reproduce it here. I suspect none of the memory allocation values in udtconfig have been changed there either. I am careful to code without abusing resources, not pre-allocating massive arrays or leaving large unused buffers hanging around. I'll check for sloppy code but I'm hoping someone here might be able to point to a config issue. Here are my latest udtconfig values - I'm not cataloging the code for the test, so global cat SH size shouldn't matter. SBCS_SHM_SIZE=1048576 SHM_MAX_SIZE=8388608 SHM_ATT_ADD=0 SHM_LBA=4096 SHM_MIN_NATT=4 SHM_GNTBLS=40 SHM_GNPAGES=256 SHM_GPAGESZ=2048 SHM_LPINENTS=10 SHM_LMINENTS=100 SHM_LCINENTS=100 SHM_LPAGESZ=8 SHM_FREEPCT=25 SHM_NFREES=1 Thank you kindly for any guidance - even a link to a Unidata configuration doc. 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 and training services Visit the blog, lots of recent updates: remove.pleaseNebula-RnD.com/blog --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Web Services Developer [ad]
From: iggchamp No, someone had given me a wsdl from an as400 that I need to communicate with.B Not knowing much about webservices, I was hoping I could, somehow, load that into the u2 web services developer, create a matching subroutine, and be flying.B Probably not that simple eh? It doesn't look like you have a solution yet, so I'll make a suggestion. mv.NET has a feature that allows you to trigger remote operations simply by writing items to an MV file. So if you want to call a remote web service, write the parameter data to a file, an external mv.NET process will see the item, read it, then make the web service call. The results can then be pushed back to your U2 system in any file or format you wish, and read by the program managing the call. I do this sort of thing all the time. It's easy. So if the tools you have don't do the job, let me know and I'll do a mock-up prototype so that you can see how it works. In fact, if you send me the URL to the web service I may be able to write up the whole thing and offer it as a complete deliverable solution. The cost for this would be less than $500 and you could have it by Chrismas. If there were enough demand to productize a MV Web Service Client, we could probably make it available to a wider audience for $200 per server. I hope people see the ongoing message here: Rather than using Java for this, PHP for that, shell scripts for this, Web Developer for that, CallHTTP for this, sockets for that, BCI for this and SQL for that... mv.NET is one tool that can be used for Many purposes, and it's also very inexpensive, especially when you factor in the time it takes to research (and sometimes purchase) all of these other tools. You can visit our product page, see the videos, and we can provide downloads and pricing information to anyone who is interested. remove.pleaseNebula-RnD.com/products/mvdotnet Thanks for your time. 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 and training services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Is there documentation for the Unidata RPC API
Kevin, for free and from IBM, why not UOJ? If you're using a typical shared host you may be able to use web services from PHP to a middle-tier server and use that to get into U2. The MySQL server and HTTP servers are usually separated at LAMP sites anyway. Doing it this way, the middle-tier, connectivity technology, and database are all completely independendent of the UI. So for free and not from IBM, have a look at http://nusoap.sourceforge.net/. I also wrote a blog about this FAQ: Nebula-RnD.com/blog/tech/mv/2008/10/mvbindings1.html It would be nice to get some movement on that. Then not for free and not from IBM ... there are alternatives. HTH T Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com From: Kevin King UniObjects can be incorporated into PHP code via the COM object as long as you're running PHP via Apache under Windows. If you're running PHP/Apache on any other platform, well, you're outta luck as the COM object isn't supported anywhere but Windows. Maybe I'm missing something, but I have yet to see a viable non-windows UO-style PHP connector for U2 from IBM. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] DEBUG mode on a UniObjects connections
You guys are describing a new product I've been developing as time permits: removepleaseNebula-RnD.com/blog/tech/mv/2008/09/remotecontrol1.ht ml Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com From: Dave Reynolds Brian, This sounds like a good approach to me. I've recently written a phantom launcher which as part of the gui client, and whilst the phantoms it launches generate their own logs, it would be nice to have a gui program which told me what was going on. Sometimes a phantom hangs, and you haven't got a clue why. I'll probably skip the colour bit for obvious reasons, but just have two separate windows open, one populated with the client log, and the other populated with the server side log. From: Brian Leach These are all good approaches, but the difficulty is often in trying to collate the information on what is happening client side and server side... Our approach was to build a global logging client that would display logging messages from client and server ... The client components used COM to broadcast to the logger and the server components used sockets. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] messaging to client PC / accessibility
It's tough to discuss solutions without getting slammed for solicitation. My passion and business happen to be the creation of unique solutions. That's what I'll talk about here but I will offer to take continued discussion off-list. If someone is offended by such things then feel free to stop reading now. From: Tony G You guys are describing a new product I've been developing as time permits: removepleaseNebula-RnD.com/blog/tech/mv/2008/09/remotecontrol1.ht ml From: Dave Reynolds Tony, Does it need testing for accessibility? The utility was created to address common questions like: - How do I do something on the client PC when the GUI is a browser? - How do I do X on the client when I'm not sure which terminal emulator the user has? - How can I get messages to people without them being logged in? - How do I put data on the client PC or get data from the client PC with MV BASIC? - Or simply, How do I do one of those popup notifications from the server like any client-side app does? Frankly, most people don't recognize a need for this sort of functionality until they themselves have it and find that there is (was) no easy solution, so there isn't a lot of demand yet even for a non-accessible version. Accessibility for the visual or physically impaired can only come after the product has achieved general acceptance, and this offering isn't there yet. However, if you have some demand to justify the effort, sure we can get the notifications to do audio too as a start. Just for reference, however, we do have utilities that make and receive calls via Skype (and PBX), and use IM to exchange data with the MV app. I was using this to text inquiries to my system like where is the nearest Starbucks, and to call me when a backup finished. These are ideally suited as alternative UI's for accessibility compliance, but haven't been productized yet for lack of demand. Efforts like this are chicken and egg - some people wish the features were available but don't say anything until after the features exist, but build it and they will come is tough too. To avoid inconveniencing our colleagues here, please feel free to continue this discussion on the Nebula RD forum. remove.pleaseNebula-RnD.com/forum Thanks for asking! Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] DEBUG mode on a UniObjects connections
Dave, if you suspect a server-side routine might fall to debug then I'd recommend putting server access into a separate client-side thread. That doesn't stop the aborts, but it does prevent such things from affecting the end-user's session. Having a lot of experience with the visually-impaired (and speech synthesis and voice recognition development), I think is very important in this case. If you detect an abort you can use a separate channel (email, web service, etc) to get a message back to you or the server admin. 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 and training services Dave wrote: The client screen locks up, and my talking screenreader goes into sulk mode, which normally means I have to reboot. I wouldn't expect anyone on the list to solve the screenreader problem, but sighted colleagues have reported similar experiences with this type of connection. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Printing Graphics from UniVerse
From: Tony G I can provide some BASIC code examples that show how to get PrintWizard to... Bonnie Barber wrote: Hi, I would be interested in the code examples. Rather than asking people to email requests, we decided to put the demos online. Full code, PDFs, and images will be up in about 2 days. I'll post a follow-up here. As promised, see the Demos link from this page: removepleaseNebula-RnD.com/products/printwizard.htm T --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] biztalk adapter - requested answers plus [ad]
From: Bob Witney This sounds exactly what I need OK guys how do I get Uniobjects for .net from IBM (know you are out there) How much is it ? Can I download it etc etc What does it need to run on my pseries server for it to work Bob, UniObjects.NET is free in the Client package which is available for both Unidata and Universe. See a blog posting I wrote which may help you to decide which package to install. removepleaseNebula-RnD.com/blog/tech/mv/2008/09/u2upgrade1.html Note that the Universe package has an older version of UO than the Unidata package. You can download the UDT_7.2cl.zip file from the IBM web site or get it from your VAR. It's 540MB, but you don't need the whole thing. Someone might question whether the UD package will hurt your UV installation, but I have UD and UV running on the same system here, and the UD Client and related UniAdmin, all with no problem. When you get the package, install the UniDK. It has docs and samples for UO.NET in both C# and VB.NET. Information about installing UO.NET is mixed with this posting I wrote about using mv.NET with UO.NET: removepleaseNebula-RnD.com/blog/tech/mv/mvnet/2008/10/mvnet-u2-01 .html In a higher volume site you do have an important consideration: If you have a single-threaded process and it's occupied when new transactions are trying to get through, the connection will bottleneck, and may timeout as described with the ODBC handler. So if you're doing this with UO.NET, you can get away with 1 connection for testing, but be mindful about what might happen if the transaction count goes up quickly. You can write your own connection manager and when you find a backlog on one connection you can spin up another and just keep track of the connections in a thread pool. Here's the ad: mv.NET does all of that for you. I encourage you to try both UO.NET and mv.NET (which uses UO.NET as a simple pipe) and evaluate them for yourself. If you want to use U2 connection pooling with UO.NET to get around the backlog issue, there is a code sample in the UniDK - and you should talk to your VAR about purchasing the connection pooling license. 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 and training services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Printing Graphics from UniVerse
From: Tony G I can provide some a couple BASIC code examples that show how to get PrintWizard to... Bonnie Barber wrote: Hi, I would be interested in the code examples. Rather than asking people to email requests, we decided to put the demos online. Full code, PDFs, and images will be up in about 2 days. I'll post a follow-up here. BTW, it was my original intention to sell PrintWizard and services here, but frankly there's no margin - the software is too inexpensive and too easy to use. But I happen to like it a lot so you'll see the same sort of moral support that I give any other software that I like, and perhaps sell. Good software like this simply deserves success, so I have no problem proposing it as a solution when appropriate, and publishing more demos as we find time to code, test, and formalize the web pages. Please feel free to email requests for examples and I'll do what I can. 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 and training services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Printing Graphics from UniVerse
Agreed. I can provide some a couple BASIC code examples that show how to get PrintWizard to position text, draw boxes, add color, position and size images, draw lines anywhere on the page, and position barcodes. One of the examples shows a multi-page timesheet with data positioned in an overlay, along with a FAX coversheet. PrintWizard takes this direct from the spooler and faxes it to number provided in the code. The same output can be sent to PDF and emailed if desired. Cool is an understatement. 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 and training services From: Ken Hall Check out Print Wizard from Rasmussen Software http://www.anzio.com/ It is a great way to add graphics to your printed output and to print to file as either text or pdf. Adam wrote: Does anyone have a good method of printing graphics... --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] biztalk adapter [ad]
Since there's only been one response so far and it doesn't look like there are any alternatives, I can ask one of our guys to write a BizTalk/U2 interface on a TM basis. The solution might be an adapter, web service, or functoids, depending on how it will be used. Just email if interested. 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 and training services From:Hona, David Bob You're probably going to have to use the BizTalk to MQSeries adaptor. However, you'd need MQSeries installed on your server...not really a cheap option to do. MQ may not give you want you need, depending on your business/technical requirements. From: Bob Witney I am happily going from aix5.3 running universe 10.2 to ms sql via MS BizTalk, works fine Does anyone have knowledge of a BizTalk adapter (ms don't have one) that will le me go the other way? i.e. BizTalk to Universe --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Setting return code when a Universe process terminates
From: Charles_Shaffer I am interested in finding a way to get to the U2 data more directly than we do currently, which is using a Java Bridge and Uniobjects for Java. Charles, you may be interested in mvExec. It will execute any command or program on any MV system from anywhere in your network. In your case, you don't need to be concerned about connectivity. All exchanges with Universe are done by executing a local command and reading local files that contain the results. This can be used by any language or tools that you choose and there is no need to learn any new language or protocol. Example: DOS Command: mvexec mvreaditem Uses configuration file mvreaditem.mv0 in a local windows directory to read a customer record from a production server account. Results are stored in \temp. Config file has 4 lines written at runtime: productionserver--- name any server here EXEC.GET.ITEM --- call your own program here |CUSTOMERS|12345--- data for the program c:\temp\mvreaditem.mv1 --- store results here Software download and full documentation with code samples is on our Freeware page: remove.pleaseNebula-RnD.com/freeware mvExec is completely free and can be used by anyone who already has mv.NET installed. [AD] If you don't have mv.NET you can purchase a single license from Nebula RD or any other mv.NET reseller. Once you have an inexpensive license it can be used for many other purposes. 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 and training services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Automatic Invoice - PO Matching Software
From: Hans Morawa We are looking for a electronic invoice processing system that matches invoice with purchase orders automatically and works on/or with a UniVerse platform and is available in Australia. ( Really hoping I'm not missing something obvious. *gulp* ) Hans, I don't understand the request. Are you looking for bar coding or image processing so that you can scan documents and have them match up with other documents? Can you give us an example of your business flow so that we can recommend something that fits? 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 and training services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Speeding up processing through large dynamic table
And unless there is a need to work with attributes rather than values, eliminate the SWAP to get: CUST.NUM = IN.LINE1,1 CUST.DESC = IN.LINE1,2 From: Joshua Gallant Try something like this instead: LOOP REMOVE IN.LINE FROM IN.TAB SETTING MARK SWAP @VM WITH @AM IN IN.LINE CUST.NUM = IN.LINE1 CUST.DESC = IN.LINE2 WHILE MARK DO REPEAT That will keep track of where you were in the array and pick up where you left off. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Automatic Invoice - PO Matching Software
From:Glen Batchelor I hope that your PO number is visually unique, because it will be difficult to locate and match by text in any OCR unless it's: 1) in the same physical place on every invoice 2) always starts or ends with the same unique string Many newer OCR+PDF convertor software apps support barcode detection, but the best I've made use of it is to have the barcode show up better in the final PDF. I've not used it to route paperwork, yet. The responses so far explain my confusion. There are email text invoices, Emails with attachments in various formats, Fax, hard copy, EDI, XML according to OASIS or proprietary standards, web services... The data acquisition will be unique for each medium, so the notion of having one software package to do it all seemed a bit magical. Ignoring the electronic EDI/XML types, I think all of the other document formats can be scanned physically if they're not in digital format already, then as others suggest they can be OCR'd, but the software needs to be trainable if the process is to be automated, since all vendors have different document formatting and you will find the invoice number in different places. As to a solution that does that optical scanning part, http://kofax.com/ has various offerings, and we have researched something like this for a client and the best tools for development that we found were on this site: http://www.leadtools.com/home2/VertMkts/LTProdOvrvw.htm. Since those are components, a solution would need to be written around them. If you're looking to spend tens of thousands of dollars on this (and that's not unusual in this area) then you might prefer a less expensive DIY solution. While I offered to write a solution using LeadTools, our client never took it past the investigation stage, so I can't comment as to whether making or buying is more effective. One thing that came loud and clear out of that research - don't skimp on the scanning tools: a low-quality or low-resolution scanner on the front-end will create a need for lots of manual intervention to resolve errors later. Get good equipment up-front so the OCR-related software has good bits to work with. And before purchasing a solution, do a trial with a wide variety of your documents so that you can be sure it is fast enough and accurate enough for your purpose. As to document management with indexing after you have some metadata, there are many products like http://docuxplorer.com/ which can be integrated with Universe, and http://www.1mage.com/ specializes in the MV market. It may help to separate out the tasks in order to create a better definition of what you're looking for. These include data acquisition, digital scanning, data scanning, indexing, and retrieval. Any solution should provide an API, and make the indexing and retrieval part with Universe fairly trivial compared to the rest of the package. I hope that helps. 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 and training services (Nebula RD does not sell any of the offerings mentioned and has no affiliation with any of the companies.) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/