0

Hola Amigos:
Estoy usando HTTPRequest en powercobol, está andando bien. Pero tengo un colega que tiene que hacer algo similar, pero el trabaja con RMCOBOL.
Cómo se puede instanciar el objeto en RM para utilizarlo?
Saludos
Fito...
Yesssssss
Manual en microfocus https://community.microfocus.com/cfs...4-12/rmnet.pdf
Yo utilizo llamadas a servicios web desde RM/Cobol.
Debe utilizar una versión avanzada. Yo utilizo la 12+.
No recuerdo desde que versión contiene esta caracteristica pero no creo que la tengan la anterior a la 11.
Para comenzar, en la carpeta donde está instalado el runtime y el SDK de desarrollo hay un manual ( si es version 11 cambiar 12 por 11, etc)
C:\Program Files (x86)\Liant\RMCOBOLv12\RMNet\rmnet.pdf
y una DLL
C:\Program Files (x86)\Liant\RMCOBOLv12\RMNet\rmnet.dll
y una carpeta de ejemplos de uso
C:\Program Files (x86)\Liant\RMCOBOLv12\RMNet\samples
Si no se tiene esa carpeta C:\Program Files (x86)\Liant\RMCOBOLv12\RMNet lo normal es que la version que se tenga instalada no disponga de esta caracteristica.
Y en linux, yo tambien lo tengo funcionando, esta todo en la carpeta /usr/rmcobol/RMNet (aqui el objeto que contiene esta caracteristica es librmnet.so)
Cuando se lanza el programa hay que hacerlo con el .DLL o con .so si es linux
Hago una pequeña introducción de lo que hay que hacer para comenzar: ( despues ya vamos hablando )
COBOL Código:
IDENTIFICATION DIVISION. environment division. ....................................mas cosas working-storage section. copy "lixmlall.cpy". 01 request-payload usage pointer. 01 response-payload usage pointer. 01 request-payloadx pic x(6000). 01 response-payloadx PIC X(2000). 01 response-status pic 9(3) value zero. 01 response-len pic s9(4). 01 Desired-SOAP-Action pic x(150). 01 Post-Address pic x(100). 78 Content-Type value "text/xml; charset=utf-8". --------------------------------mas cosas PROCEDURE DIVISION. .................................mas cosas XML INITIALIZE. call "NetInit" giving response-status. set request-payload to address of request-payloadx set response-payload to address of response-payloadx .................................mas cosas XML GET TEXT request-payload nombre-xml. .................................mas cosas if not XML-OK go to z. if not es-unix then move 1 to j perform varying i from 1 by 1 until desired-soap-action(i:) = ' ' if desired-soap-action(i:1) = '/' then move i to j end-if end-perform display 'Servicio web :' line 24 position 1 erase eol display desired-soap-action(j:50) line 24 position 16 display '*** espere ***' line 24 position 65 end-if .................................mas cosas call "HttpPost" using Post-Address Content-Type request-payload response-payload Desired-SOAP-Action giving response-status. .................................mas cosas XML PUT TEXT response-payload nombre-xml1. .................................mas cosas call "NetCleanup". .................................mas cosas
@JCantero, qué flipada machoni EXEC ni leches, una sintaxis totalmente fuera de las reglas de Cobol, vamos... Pero lo importante es que se puede hacer.
Deduzco que no se puede usar OCX en RM ¿? (claramente no he utilizado nunca RM)
NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle al botón GRACIAS
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención con el botóny escribiendo su Nick.
Ejemplo tipico de temperatura que aporta rmcobol ( no se si funcionará en la actualidad )
COBOL Código:
identification division. program-id. TempConv. data division. working-storage section. 01 Fahrenheit-To-Celsius. 02 Fahrenheit pic x(3) value zeros. 88 is-quit value spaces. 01 Fahrenheit-To-Celsius-Response. 02 Fahrenheit-To-Celsius-Result pic X(20). 01 request-payload usage pointer. 01 response-payload usage pointer. 01 response-status pic 9(3) value zero. 01 response-len pic s9(4). 01 a-single-char pic x. copy "lixmlall.cpy". 78 Desired-SOAP-Action value 'SOAPAction' & x"00" & '"http://tempuri.org/FahrenheitToCelsius"' & x"00". 78 Post-Address value "http://www.w3schools.com/webservices/tempconvert.asmx". 78 Content-Type value "text/xml; charset=utf-8". linkage section. 01 http-response pic x. procedure division. main. XML INITIALIZE. a. display "Fahrenheit To Celsius Service Sample" line 3 position 10 erase. display "Fahrenheit:", line 5, position 3 "Spaces to quit", line 5, position 25 perform with test after until (Fahrenheit(1:1) is numeric or Fahrenheit(1:1) = "-") and Fahrenheit(2:) is numeric accept Fahrenheit, line 5, position 16, prompt, update, tab, control "upper" if is-quit go to z end-if end-perform. XML EXPORT FILE Fahrenheit-To-Celsius "TempFahrenheitRequest.xml" "Fahrenheit-To-Celsius" "TempConvertRequestF2C.xsl". if not XML-OK go to z. XML EXPORT TEXT Fahrenheit-To-Celsius request-payload "Fahrenheit-To-Celsius" "TempConvertRequestF2C.xsl". if not XML-OK go to z. call "NetInit" giving response-status. call "HttpPost" using Post-Address Content-Type request-payload response-payload Desired-SOAP-Action giving response-status. set address of http-response to response-payload. display "Response: ", response-status. if not response-status = 0 call "NetGetError" giving response-payload set address of http-response to response-payload display "Error! ", response-status display "Error message: ", http-response(1:) call "NetFree" using response-payload go to z end-if. XML FREE TEXT request-payload. if response-payload = NULL display "Error: NULL pointer returned", line 10, blink accept a-single-char prompt go to z end-if. XML PUT TEXT response-payload "TempFahrenheitResponse.xml". if not XML-OK go to z. XML IMPORT TEXT Fahrenheit-To-Celsius-Response response-payload "Fahrenheit-To-Celsius-Response" "TempConvertResponseF2C.xsl". if not XML-OK go to z. call "NetFree" using response-payload. call "NetCleanup". display " Celsius: ", line 10 position 5 Fahrenheit-To-Celsius-Result position 0. accept a-single-char prompt tab. go to a. z. copy "lixmltrm.cpy". display "finished.", line 20 position 5. accept a-single-char prompt tab. stop run. copy "lixmldsp.cpy".
---------- Post añadido el 23 de marzo de 2022 a las 17:45 ----------
@Kuk, pues yo no he utilizado ni OCX ni nada que no fuera alguna .DLL ( o .so ) conodida.
Solo utilizo SQL y llamadas a SW.
RM tiene muchas historias, pero valen pasta, y lo gracioso es que cuando estaban disponibles ya las habia yo implementado en cobol, C, java o ensamblador.
O sea que siempre han llegado tarde y mal ( muy complicado y caro utilizar las herramientas )
Claro y ahora RM/cobol esta en via muerta. Me llaman de microfocus para tocarme las p...........
---------- Post añadido el 23 de marzo de 2022 a las 17:46 ----------
---------- Post añadido el 23 de marzo de 2022 a las 17:52 ----------
Los distribuidores de RM/cobol que tengo servicio de mantenimiento con ellos, se portan muy bien y ayudan en lo que saben.
Me están aconsejando cambiar de camino, pero son muchas cosas funcionando, MUY BIEN, que cualquiera empieza a picar de nuevo.
Gracias @JCantero,
Le voy a pasar esto para que lo haga.
Saludos
Fito...
No necesitarás picar cosas porque se puede seleccionar el dialecto RM en Micro Focus: RM DIALECT setting
Te podría echar una mano, conozco bastante este entorno.
NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle al botón GRACIAS
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención con el botóny escribiendo su Nick.
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)