Re: [U2] UniObjects / DBPause

2009-09-02 Thread Tony G
 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....

2009-08-28 Thread Tony G
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

2009-08-26 Thread Tony G
 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

2009-08-17 Thread Tony G
 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]

2009-08-09 Thread Tony G
 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

2009-08-03 Thread Tony G
 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

2009-08-03 Thread Tony G
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

2009-07-31 Thread Tony G
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?

2009-07-30 Thread Tony G
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

2009-07-30 Thread Tony G
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

2009-07-29 Thread Tony G
 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

2009-07-22 Thread Tony G
 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

2009-07-16 Thread Tony G
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

2009-07-06 Thread Tony G
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

2009-07-02 Thread Tony G
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

2009-07-01 Thread Tony G
 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

2009-07-01 Thread Tony G
(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?

2009-06-29 Thread Tony G
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

2009-06-27 Thread Tony G
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

2009-06-26 Thread Tony G
 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]

2009-06-25 Thread Tony G
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?

2009-06-25 Thread Tony G
 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

2009-06-24 Thread Tony G
 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]

2009-06-22 Thread Tony G
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

2009-06-22 Thread Tony G
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]

2009-06-22 Thread Tony G
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

2009-06-22 Thread Tony G
 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

2009-06-20 Thread Tony G
 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

2009-06-12 Thread Tony G
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?

2009-06-12 Thread Tony G
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?

2009-06-10 Thread Tony G
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?

2009-06-10 Thread Tony G
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

2009-06-09 Thread Tony G
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

2009-06-04 Thread Tony G
 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

2009-06-04 Thread Tony G
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

2009-05-30 Thread Tony G
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

2009-05-27 Thread Tony G
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

2009-05-26 Thread Tony G
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

2009-05-20 Thread Tony G
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

2009-05-12 Thread Tony G
 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.

2009-04-30 Thread Tony G
 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]

2009-04-21 Thread Tony G
 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

2009-04-20 Thread Tony G
 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...

2009-04-19 Thread Tony G
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...

2009-04-18 Thread Tony G
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)

2009-04-14 Thread Tony G
 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

2009-04-13 Thread Tony G
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

2009-04-13 Thread Tony G
 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

2009-04-10 Thread Tony G
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

2009-04-03 Thread Tony G
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

2009-04-02 Thread Tony G
 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]

2009-04-02 Thread Tony G
*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?

2009-03-20 Thread Tony G
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?

2009-03-20 Thread Tony G
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

2009-03-19 Thread Tony G
[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?

2009-03-19 Thread Tony G
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?

2009-03-18 Thread Tony G
 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?

2009-03-18 Thread Tony G
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

2009-03-18 Thread Tony G
 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

2009-03-18 Thread Tony G
 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

2009-03-17 Thread Tony G
 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

2009-03-17 Thread Tony G
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]

2009-03-17 Thread Tony G
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

2009-03-16 Thread Tony G
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

2009-03-13 Thread Tony G
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

2009-03-12 Thread Tony G
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

2009-03-12 Thread Tony G
 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

2009-03-06 Thread Tony G
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]

2009-03-05 Thread Tony G
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

2009-03-05 Thread 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?

(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

2009-03-05 Thread Tony G
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!)

2009-02-25 Thread Tony G
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

2009-02-24 Thread Tony G
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

2009-02-23 Thread Tony G
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

2009-02-23 Thread Tony G
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)

2009-02-20 Thread Tony G
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)

2009-02-19 Thread Tony G
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.

2009-01-28 Thread Tony G
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

2009-01-23 Thread Tony G
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

2009-01-17 Thread Tony G
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?

2009-01-14 Thread Tony G
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

2009-01-14 Thread Tony G
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?

2009-01-14 Thread Tony G
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?

2009-01-13 Thread Tony G
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

2009-01-07 Thread Tony G
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

2008-12-31 Thread 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.

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]

2008-12-16 Thread Tony G
 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

2008-12-14 Thread Tony G
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

2008-12-05 Thread 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 

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

2008-12-05 Thread Tony G
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

2008-12-04 Thread Tony G
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

2008-12-03 Thread Tony G
 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]

2008-12-02 Thread Tony G
 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

2008-12-02 Thread Tony G
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

2008-12-01 Thread Tony G
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]

2008-11-25 Thread Tony G
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

2008-11-18 Thread Tony G
 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

2008-11-17 Thread Tony G
 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

2008-11-17 Thread Tony G
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

2008-11-17 Thread Tony G
 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/


  1   2   >