Hey guys need help again. Previously i tried writing subprograms under SYSWEB library and it i have no problem. However, since i want to create my own library, with my own class, so i tried create new and call the subprogram:
Source = /!NATURAL!////natrun/WEB/TEST2///
Description = NAT0723 Interactive I/O not possible in server environment.
fyi, i copy all the subroutines and object data from SYSWEB library. but i didn’t copy the LSYSWEB local data area. i create my own local data area with brand new guid variable.
:shock: Do not copy the programs of SYSWEB to your library especially not the W3* GPs. They have to stay at SYSWEB library - us a Steplib to SYSWEB instead… then try again.
:idea: May use WEB-ONL from SYSWEB to test/debug your subprogram.
thanks eric. i followed wut u said, and i have removed all the subprograms and subroutines of SYSWEB from my own library WEB. I still used the object data W3CONTEXT, but this time i point to SYSWEB.
As for the local data, i used my own guid identification and my own method (subprogram).
after removing the items, i unregister the class and re-register again. as for the steplib, i make the changes at the Natural Configuration Utility under the NATPARM entry, and make reference to SYSWEB,SYSEXT,SYSEXDDM,SYSCOMP.
i tried running the program, the result is still the same. giving same error message. what could be the problem?
:o You generated the class for your DCOM call, as described at the documentation, with the Web Interface Plugin (otherwise it won’t work ); and you tested your program, calling from the command line WEB-ONL,(works because you needed for compilation a steplib to SYSWEB, for further infromation see the documentation :idea: ) select your program and run with DCOM (for testing you can also use RPC without having EXX installed ) and see what happens …
i follow ur instructions but unfortunately still gives same error (same result even i tried it with WEB-ONL).
[i]NAT0723 Interactive I/O not possible in server environment.
TEXT:
Interactive I/O not possible in server environment.
EXPL:
An attempt was made to execute an interactive I/O
(I/O to report 0), while Natural is acting as a server.
ACTN:
Check and correct the program. Input data for the Natural INPUT
statement may be supplied via the Natural stack. Any output to
report 0 may be redirected using the MAINPR parameter.[/i]
Now you can try to complie your programs with SYMGEN=ON and run WEB-ONL inside the Natural debugger to see the line the I/O error occures…
:idea: May it’s usefull to unregister your class and run then with WEB-ONL - the Result is may different.
:arrow: Or use run WEB-ONL with “call with option: RPC”…
What’s now the result …
as long as you refuse to generate your class with the web interface plugin you will get this error …
:arrow: delete your WEB class and the LWEB class lda and then use the web interface plugin to generate your WEB class.
Every time you have build a new subprogram that should be called from the Internet run the “Class Generation” again and just click on OK without any changes → the class should be updated and stowed.
Now you can run your new subprogram from the browser.
It is not necessary to register your class a second time!
:evil: NAT511 is out of support may its time to upgrade …
:? OK again for 511:
Add the steplib SYSWEB to the natparm module you use.
Open a new Natural library (e.g. WEB).
Add a “readme” text member and save - do this to force Natural to really initializes the library.
run WEB-WIZ from commandline.
Specify a subprogram name (e.g. TEST3).
ENTER → a new subprogram should now be saved and stowed.
open lda editor
. add for your library WEB a GUID with name “CLSID-WEB”
. add a GUID with name IID-NATWEB
. save and stow the LDA with name LWEB at your library WEB
. Attention:
. Do not copy and rename or move an LDA in order to get new GUIDs for your classes. If an LDA is copied and renamed or moved, the preset GUID is not changed. This may cause major problems.
Every time you have build a new subprogram that should be called from the Internet run the “Class Generation” again and just click on OK without any changes → the class should be updated and stowed.
Now you can run your new subprogram from the browser.
It is not necessary to register your class a second time!