Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Micro Focus COBOL AcuCobol
AcuCobol IDE y Compilador AcuCobol
 
Respuesta

  #1
Antiguo 21 de febrero de 2022, 12:00
Gusaiello
Forero Activo
Concurso: Segundo puesto: Ganador/a del Segundo puesto en un concurso - Issue reason: Generador de código QR encriptado Activista del Foro: Activista del Foro - Issue reason: Por aportar ejecrcicios para los novatos 
Última Actividad 17.09.2026 14:29
Posts Posts: 236
Likes enviados Enviados: 150
Likes recibidos Recibidos: 139
Predeterminado USE AFTER ERROR ......
0 Inactivo Inactivo

Hola colegas, necesito de vuestra ayuda.
Siempre he usado en
Código COBOL:
  1. DECLARATIVES
la sentencia
Código COBOL:
  1. USE AFTER ERROR PROCEDURE ON
y a continuación la lista de archivos que usará el programa para evitar abortos provocados por errores imprevistos.
Código COBOL:
  1. USE AFTER ERROR PROCEDURE ON ARCHIVO1 ARCHIVO2.

Ahora tengo algunos programas que usan Excel o Word (total novedad para mi)

Todo funciona perfectamente siempre y cuando esten instalados, pero en caso de no estarlos (cosa rara), el programa aborta dando un error "Clase no registrada".

Mi pregunta es como puedo agregar un control mediante la sentencia USE, para poder controlar este error ademas de controlar los posibles errores que pudieran provocar los archivos.

Desde ya, muchas gracias.
Gusaiello is offline   Responder Con Cita
  #2
Antiguo 21 de febrero de 2022, 13:38
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

Hola Gustavo.

Para la factura electrónica, uso un ocx de terceros. pero no lo incrusto en el formulario, lo instancio en tiempo de ejecución. Por eso uso el REPOSITORY con este código.

Código COBOL:
  1.      CLASS OLE AS "*OLE"
  2.      CLASS EXCEP AS "*COM-EXCEPTION"

Despues a mi declaratives le agrego

Código COBOL:
  1.        err section.
  2.            use after exception excep.
  3.            invoke exception-object "GET-SOURCE"      returning SRC.
  4.            invoke exception-object "GET-DESCRIPTION" returning MSG.
  5.            invoke pow-self "DisplayMessage" using MSG SRC POW-DMICONERROR.
  6.            exit program.

Es lo único que tengo para ayudarte, no sé si se adecuará a lo tuyo.

Saludos...

Fito...
Fito is offline   Responder Con Cita
  #3
Antiguo 21 de febrero de 2022, 13:45
Gusaiello
Forero Activo
Concurso: Segundo puesto: Ganador/a del Segundo puesto en un concurso - Issue reason: Generador de código QR encriptado Activista del Foro: Activista del Foro - Issue reason: Por aportar ejecrcicios para los novatos 
Última Actividad 17.09.2026 14:29
Posts Posts: 236
Likes enviados Enviados: 150
Likes recibidos Recibidos: 139

No encaja exactamente en AcuCobol, pero gracias @Fito. en base a esto iré probando hasta que lo emboque.
Gusaiello is offline   Responder Con Cita
  #4
Antiguo 21 de febrero de 2022, 14:01
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243
Tableta Detectar Error durante ejecucion *OLE
0 Inactivo Inactivo

Hola @Gusaiello, te paso un ejemplo sacado del manual de cobol debe ser parecido en AcuCobol para el manejo de errores OLE.
Código COBOL:
  1.  
  2. IDENTIFICATION DIVISION.
  3. PROGRAM-ID. PROGRAM-A.
  4. ENVIRONMENT DIVISION.
  5. CONFIGURATION SECTION.
  6. REPOSITORY.
  7. CLASS OLE AS "*OLE"
  8. CLASS OLE-EXCEPTION AS "*OLE-EXCEPTION".
  9. * :
  10. DATA DIVISION.
  11. WORKING-STORAGE SECTION.
  12. 01 OLE-SV-OBJ USAGE IS OBJECT REFERENCE OLE.
  13. 01 OLE-ERROR-INFORMATION.
  14.       03 OLE-ER-TYPE PIC X(01).
  15.       03 OLE-WCODE PIC X(02).
  16. 01 OLE-SERVER PIC X(20) VALUE "OLESERVER.OLECLASS".
  17. 01 METHOD-NAME PIC X(20) VALUE SPACE.
  18. 01 SERVER-PASSWORD PIC X(04).
  19. *:
  20. PROCEDURE DIVISION.
  21. DECLARATIVES.
  22. ERR SECTION.
  23. USE AFTER EXCEPTION OLE-EXCEPTION.
  24. INVOKE EXCEPTION-OBJECT "GET-ERROR-TYPE"
  25. RETURNING OLE-ER-TYPE. *> [1]
  26. IF OLE-ER-TYPE = "1"
  27. THEN
  28. DISPLAY "ERROR OCCURED IN " METHOD-NAME "METHOD" *> [2]
  29. SET OLE-SV-OBJ TO NULL.
  30. EXIT PROGRAM
  31. ELSE
  32. INVOKE EXCEPTION-OBJECT "GET-WCODE"
  33. RETURNING OLE-WCODE *> [3]
  34. IF OLE-WCODE NOT = X"0001"
  35. THEN *> [4]
  36. DISPLAY "ERROR OCCURED IN " METHOD-NAME "METHOD"
  37. SET OLE-SV-OBJ TO NULL.
  38. EXIT PROGRAM
  39. END-IF
  40. END-IF.
  41. END DECLARATIVES.
  42. :
  43. MOVE SPACE TO OLE-ER-TYPE.
  44. MOVE "CREATE-OBJECT" TO METHOD-NAME.
  45. INVOKE OLE "CREATE-OBJECT" USING OLE-SERVER *> [5]
  46. RETURNING OLE-SV-OBJ.
Saludos ...
fastpho is offline   Responder Con Cita
  #5
Antiguo 22 de febrero de 2022, 17:04
Gusaiello
Forero Activo
Concurso: Segundo puesto: Ganador/a del Segundo puesto en un concurso - Issue reason: Generador de código QR encriptado Activista del Foro: Activista del Foro - Issue reason: Por aportar ejecrcicios para los novatos 
Última Actividad 17.09.2026 14:29
Posts Posts: 236
Likes enviados Enviados: 150
Likes recibidos Recibidos: 139

@fastpho, excelente, muchas gracias.
Gusaiello is offline   Responder Con Cita
Respuesta


Herramientas

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 13:48.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.