Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Micro Focus COBOL RM/COBOL
RM/COBOL IDE y Compilador RM/COBOL
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] HttpRequest Fito PowerCOBOL (ActiveX, v4 - v11) 4 2 de noviembre de 2021 15:52

Respuesta
 
Herramientas

  #1
Antiguo 22 de marzo de 2022, 14:34
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243
Tableta HttpRequest en RM
0 Inactivo Inactivo

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...
Fito is offline   Responder Con Cita
  #2
Antiguo 23 de marzo de 2022, 00:29
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

Citación del post de Fito Ver Mensaje

Cómo se puede instanciar el objeto en RM para utilizarlo?
Te refieres a llamar a un servicio web desde RM/COBOL ?
JCantero is offline   Responder Con Cita
  #3
Antiguo 23 de marzo de 2022, 15:37
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Yesssssss
Fito is offline   Responder Con Cita
  #4
Antiguo 23 de marzo de 2022, 17:24
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

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 )

Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.      
  3.        environment division.
  4.  
  5. ....................................mas cosas
  6.  
  7.        working-storage section.
  8.  
  9.            copy "lixmlall.cpy".
  10.        01  request-payload             usage pointer.
  11.        01  response-payload            usage pointer.
  12.        01  request-payloadx             pic x(6000).
  13.        01  response-payloadx            PIC X(2000).
  14.        01  response-status             pic 9(3) value zero.
  15.        01  response-len                pic s9(4).
  16.        01  Desired-SOAP-Action pic x(150).
  17.  
  18.        01  Post-Address pic x(100).
  19.  
  20.        78  Content-Type value "text/xml; charset=utf-8".
  21.  
  22. --------------------------------mas cosas
  23.      
  24.        PROCEDURE DIVISION.
  25.  
  26. .................................mas cosas
  27.  
  28.  
  29.            XML INITIALIZE.
  30.            call "NetInit"
  31.              giving
  32.                response-status.
  33.            set request-payload to address of request-payloadx
  34.            set response-payload to address of response-payloadx
  35.  
  36. .................................mas cosas
  37.  
  38.            XML GET TEXT
  39.                request-payload
  40.                nombre-xml.
  41.  
  42. .................................mas cosas
  43.  
  44.  
  45.            if not XML-OK go to z.
  46.            if not es-unix then
  47.              move 1 to j
  48.              perform varying i from 1 by 1 until
  49.                   desired-soap-action(i:) = ' '
  50.                 if desired-soap-action(i:1) = '/' then
  51.                    move i to j
  52.                 end-if
  53.              end-perform
  54.              display 'Servicio web :' line 24 position 1 erase eol
  55.              display desired-soap-action(j:50) line 24 position 16
  56.              display '*** espere ***' line 24 position 65
  57.            end-if
  58.  
  59. .................................mas cosas
  60.  
  61.  
  62.            call "HttpPost"
  63.              using
  64.                Post-Address
  65.                Content-Type
  66.                request-payload
  67.                response-payload
  68.                Desired-SOAP-Action
  69.              giving
  70.                response-status.
  71.  
  72.  
  73. .................................mas cosas
  74.  
  75.  
  76.            XML PUT TEXT
  77.                response-payload
  78.                nombre-xml1.
  79.  
  80. .................................mas cosas
  81.  
  82.  
  83.            call "NetCleanup".
  84.  
  85.  
  86. .................................mas cosas
  87.  
  88.    
  89.  
  90.  
JCantero is offline   Responder Con Cita
  #5
Antiguo 23 de marzo de 2022, 17:35
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@JCantero, qué flipada macho ni 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 a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #6
Antiguo 23 de marzo de 2022, 17:39
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

Ejemplo tipico de temperatura que aporta rmcobol ( no se si funcionará en la actualidad )

Código COBOL:
  1.        identification division.
  2.        program-id.  TempConv.
  3.        data division.
  4.        working-storage section.
  5.        01  Fahrenheit-To-Celsius.
  6.            02  Fahrenheit              pic x(3) value zeros.
  7.                88  is-quit             value spaces.
  8.  
  9.        01  Fahrenheit-To-Celsius-Response.
  10.            02  Fahrenheit-To-Celsius-Result   pic X(20).
  11.  
  12.        01  request-payload             usage pointer.
  13.        01  response-payload            usage pointer.
  14.        01  response-status             pic 9(3) value zero.
  15.        01  response-len                pic s9(4).
  16.        01  a-single-char               pic x.
  17.  
  18.            copy "lixmlall.cpy".
  19.  
  20.        78  Desired-SOAP-Action value 'SOAPAction' & x"00" &
  21.              '"http://tempuri.org/FahrenheitToCelsius"' & x"00".
  22.  
  23.        78  Post-Address value
  24.              "http://www.w3schools.com/webservices/tempconvert.asmx".
  25.  
  26.        78  Content-Type value "text/xml; charset=utf-8".
  27.  
  28.        linkage section.
  29.        01 http-response pic x.
  30.  
  31.        procedure division.
  32.        main.
  33.            XML INITIALIZE.
  34.  
  35.        a.
  36.            display "Fahrenheit To Celsius Service Sample"
  37.                    line 3 position 10 erase.
  38.            display "Fahrenheit:",    line 5, position 3
  39.                    "Spaces to quit", line 5, position 25
  40.            perform
  41.              with test after
  42.              until (Fahrenheit(1:1) is numeric or
  43.                     Fahrenheit(1:1) = "-") and
  44.                     Fahrenheit(2:) is numeric
  45.                accept Fahrenheit, line 5, position 16,
  46.                                   prompt, update, tab,
  47.                                   control "upper"
  48.                if is-quit
  49.                    go to z
  50.                end-if
  51.            end-perform.
  52.  
  53.            XML EXPORT FILE
  54.                Fahrenheit-To-Celsius
  55.                "TempFahrenheitRequest.xml"
  56.                "Fahrenheit-To-Celsius"
  57.                "TempConvertRequestF2C.xsl".
  58.            if not XML-OK go to z.
  59.  
  60.            XML EXPORT TEXT
  61.                Fahrenheit-To-Celsius
  62.                request-payload
  63.                "Fahrenheit-To-Celsius"
  64.                "TempConvertRequestF2C.xsl".
  65.            if not XML-OK go to z.
  66.  
  67.            call "NetInit"
  68.              giving
  69.                response-status.
  70.  
  71.            call "HttpPost"
  72.              using
  73.                Post-Address
  74.                Content-Type
  75.                request-payload
  76.                response-payload
  77.                Desired-SOAP-Action
  78.              giving
  79.                response-status.
  80.  
  81.            set address of http-response to response-payload.
  82.  
  83.            display "Response: ", response-status.
  84.  
  85.            if not response-status = 0
  86.              call "NetGetError" giving response-payload
  87.              set address of http-response to response-payload
  88.              display "Error! ", response-status
  89.              display "Error message: ", http-response(1:)
  90.              call "NetFree" using response-payload
  91.              go to z
  92.            end-if.
  93.  
  94.            XML FREE TEXT
  95.                request-payload.
  96.  
  97.            if response-payload = NULL
  98.                display "Error:  NULL pointer returned", line 10, blink
  99.                accept a-single-char prompt
  100.                go to z
  101.            end-if.
  102.  
  103.            XML PUT TEXT
  104.                response-payload
  105.                "TempFahrenheitResponse.xml".
  106.            if not XML-OK go to z.
  107.  
  108.            XML IMPORT TEXT
  109.                Fahrenheit-To-Celsius-Response
  110.                response-payload
  111.                "Fahrenheit-To-Celsius-Response"
  112.                "TempConvertResponseF2C.xsl".
  113.            if not XML-OK go to z.
  114.  
  115.            call "NetFree"
  116.              using
  117.                response-payload.
  118.  
  119.            call "NetCleanup".
  120.  
  121.            display "        Celsius: ", line 10 position 5
  122.                    Fahrenheit-To-Celsius-Result position 0.
  123.            accept a-single-char prompt tab.
  124.            go to a.
  125.  
  126.        z.
  127.            copy "lixmltrm.cpy".
  128.            display "finished.", line 20 position 5.
  129.            accept a-single-char prompt tab.
  130.            stop run.
  131.  
  132.            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.
JCantero is offline   Responder Con Cita
  #7
Antiguo 23 de marzo de 2022, 20:23
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Gracias @JCantero,

Le voy a pasar esto para que lo haga.

Saludos

Fito...
Fito is offline   Responder Con Cita
  #8
Antiguo 23 de marzo de 2022, 23:08
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Citación del post de JCantero Ver Mensaje
que cualquiera empieza a picar de nuevo.
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 a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:03.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.