| James J. Gavan 2007-05-23, 6:55 pm |
| Pete Dashwood wrote:
> "Charles Hottel" <chottel@earthlink.net> wrote in message
> news:6iM4i.12447$Ut6.3969@newsread1.news.pas.earthlink.net...
>
> <snip>
>
Charles, I recall Thane writing the same thing, sometime back, about
learning OO from Java. Exactly which OO COBOL books are you referring to ?[color=darkred]
>
> <snip>>
> If you have a COBOL compiler on your home system, that supports OO, I would
> urge you to try the code. (We will have a MicroFocus version any time now,
> as well as the original Fujitsu NetCOBOL version which will work with ANY
> version of Fujitsu COBOL, right back to version 3.)
Well you might have an M/F version soon - perhaps ? :-). I gotta
problem. I have your WSDL-reference as one literal - so no problem
there, just that I'm curious why it has a ?(question mark) instead a
period.) before 'WSDL'.
Independently I've used the highlighted WSDL-Reference in Google abd
with and without 'WSDL' I get your main AVS Web Service Page or your
your WSDL file layout. So the literal is complete.
Problem seems to be with initializing SOAP; having referenced the SOAP
toolkit I tried both the methods "mssoapinit" and "mssoapinit2" - the
first gives a more verbose lists of errors - but essentially I don't
think it's finding SOAP :-
set not-finished to TRUE
invoke MSSOAP "new" returning objSoapClient
move length of wsdl-reference to ls-length
invoke objSOAPClient "mssoapinit"
using WSDL-reference
The length above was just checking the actual size of the literal.
I didn't want to get into all this SOAP SDK or M/F detail, but from
viewing M/F demos I get the impression I have got to REGISTER SOAP and
tell the application where it is on my disk. Any pointers ? As I'm using
N/E V3.1 and you obviously were looking at M/F books before - see if the
book 'Distributed Computing' can put me on right track :-
http://supportline.microfocus.com/d...p1/nx31indx.htm
Here's an extract from one of the M/F Demos, (which of course is not
on-line) :-
-------------------------------------------------------------------------------
HOW TO RUN THIS DEMO
====================
Load the project OBJECTS.APP, compile the client, and compile
and link the server.
Either:
o Edit the registry file for the server so that the server
directory is correct. Register the server by right-clicking
on the .reg file and selecting "Register".
Or:
o Edit OBJECTSERVERTRIGGER.CBL so that the CommandLine
contains the correct path to the application. Then rebuild
the server and run it from the command line:
objectserver /register
You can also unregister the server using the command line:
objectserver /unregister
Running the client will start the server (if it is not already
running).
The client will pass the server a variety of object references
and other data types using the method "PassObject".
For each method call, the server will display the type and
value(s) contained by the objects it receives.
The objects passed to the server include character arrays,
variants, SafeArrays and OLE objects.
After each method call, the client will wait for a key press, so
that you can check the server has received the data correctly.
You can animate the demo in two ways:
1) Animate the client by clicking on the "Step" button. The
server will not animate as part of this session.
2) Animate the server by right-clicking on "objectserver.exe" and
selecting "Animate". The server will start animating in the
trigger program. Select "run" so that the server becomes
available to OLE clients. You may then run the client by
executing
"run objectclient"
from within a Net Express command line. You should set a
breakpoint within the method to enable stepping through the
server code. As the server is linked as a character
application, output is sent to a separate console window.
WHAT TO DO IF SOMETHING GOES WRONG
==================================
1. Make sure that you have correctly registered the server -
in the registry file, directory names should be separated
with '\' (double back-slashes).
Incorrect server registration is the most common error.
2. Make sure that both objectclient.cbl and
objectserver.cbl have been compiled with the
directive ooctrl(+p).
This allows the run-time to access parameter information.
3. Check that the server has been linked as "Shared" and
"Dynamic" as this allows the server to be run without
COBOL environment variables.
4. Check that the trigger program is linked within the
server program, and is the first part of the server to
execute (either by being first in the .obj list or by
specifying it as the entry point name for the EXE).
5. Check that all methods called have the correct parameters
and return types according to the documentation.
------------------------------------------------------------------------
They compose this with a Wizard but this is the Objectserver.REG file :-
REGEDIT4
[HKEY_CLASSES_ROOT\objectserver]
@="COBOL objects demo server"
[HKEY_CLASSES_ROOT\objectserver\Clsid]
@="{E51CF674-C021-11D2-9637-00A0C906773E}"
[HKEY_CLASSES_ROOT\CLSID\{E51CF674-C021-11D2-9637-00A0C906773E}]
@="COBOL objects demo server"
[HKEY_CLASSES_ROOT\CLSID\{E51CF674-C021-11D2-9637-00A0C906773E}]
"AppID"="{E51CF674-C021-11D2-9637-00A0C906773E}"
[HKEY_CLASSES_ROOT\CLSID\{E51CF674-C021-11D2-9637-00A0C906773E}\ProgID]
@="cobol.demo.objectserver"
[HKEY_CLASSES_ROOT\CLSID\{E51CF674-C021-11D2-9637-00A0C906773E}\LocalServer32]
@=" C:\\netexpress\\base\\demo\\oledemos\\ob
jects\\debug\\objectserver.exe"
[HKEY_CLASSES_ROOT\CLSID\{E51CF674-C021-11D2-9637-00A0C906773E}\InprocServer32]
@=""
Where the line above starts with 'netexpress' - my direcotry hierarchy
actually is :-
C:\\program files\\merant\\netexpress etc.....
--------------------------------------------------------------------------------
I would have thought if we get the correct link with the WSDL-Reference,
then the program probably works as sweet as a nut.
You know, there's nothing wrong with OO or COBOL - while important, it's
all this extraneous crap, minute detail, permutations etc., that you
have to get your head around for GUIs and Webbing - and it is not a
quick 5-minute exercise to absorb this stuff. That's why I decided to
call it quits with programming - I'm still enjoying and watching the
grass grow, but bugger ! It's raining again and the grass needs cutting.
Meanwhile we have a N. American Robin (same size as an English Thrush),
which has nested in the arm of one of our downpipes. Be fascinating to
see if it stays the course and has babes.
Jimmy
|