Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Ejecutar comando DOS (https://www.cobolforo.es/showthread.php?t=319)

Ciro 3 de febrero de 2016 04:17

Ejecutar comando DOS
 
Por favor solicito ayuda.
Necesito dentro de un programa powercobol version 9, ejecutar otro programa power que está en otro directorio, por lo tanto necesito hacer el cambio de ruta.
Probe con estas dos instrucciones y no funciona.
Código COBOL:
  1. INVOKE CmDDE1 "Execute" USING "CD \sydwin\DAT\CONI"
  2. INVOKE POW-SELF "Execute" USING "CD \sydwin\DAT\CONI".

Gracias.

Gatomalo 3 de febrero de 2016 06:02

Código COBOL:
  1. INVOKE POW-SELF "Execute" USING "D:\sydwin\DAT\debug\CONI.exe"
debes poner la ruta donde se encuentra el exe lo de arriba solo es un ejemplo.

Ciro 4 de febrero de 2016 16:46

Gracias amigo gatomalo y perdone que no me supe explicar.

Lo que necesito es ejecutar una aplicación para dos empresas teniendo una sola entrada.
Que entre a empresa 1, y sin salirme poder ir al directorio de la empresa 2 y ejecutar la empresa 2, con los datos de la empresa 2 que se encuentran fisicamente en otra ruta.

Con la instrucción que Ud, me da, busca en la ruta el programa y ejecuta el .exe
(empresa 2) pero no cambia fisicamente de directorio, por lo tanto toma los datos del directorio de la empresa1.

Necesito si hay forma de hacer cambio de directorio, desde la aplicación, (ejectutar comandos MS-DOS: cd, dir, rename etc.) Muchas gracias.

Kuk 4 de febrero de 2016 18:24

Ciro, para estas cosas no es la mejor solución lo que quieres hacer. Porque controlar en cada momento dónde te encuentras de manera implícita puede llevar a un desastre...

Se puede hacer, por ejemplo via "GetFileName" y POW-CDCHANGEDIR (que es la opción por defecto) o con "GetFolderName" con NoChangeCurrent = POW-FALSE, pero no te lo aconsejo.

Lo que yo hago para este tipo de cosas es indicar la ruta para cada fichero con un prefijo de la ruta en una variable global. Así puedo acceder a diferentes directorios de manera controlada (explicita). Además, no tengo el riesgo de guardar en sitios diferentes (por error, es decir por no saber o controlar bien dónde me encuentro en cuanto al directorio) ficheros temporales, de configuración y demás historias...

Hrmcobol 4 de febrero de 2016 19:05

De Acuerdo con Kuk, es lo mas saludable, puedes tener un archivo/tabla con las rutas de cada empresa.
Saludos

Ciro 6 de febrero de 2016 02:47

Esa solución me parece excelente, voy a desarrollarla así. Muchas gracias a todos.

Roger 6 de febrero de 2016 06:56

Hola amigo yo uso de esta manera
Código COBOL:
  1. SELECT VACUNA ASSIGN TO WF-VACUNA ORGANIZATION INDEXED
  2.            ACCESS MODE IS DYNAMIC
  3.            RECORD   KEY IS  VACUNA-KEY
  4.            LOCK MODE IS AUTOMATIC WITH LOCK ON RECORD
  5.              FILE STATUS IS FS-04.

luego muevo a la variable WF-VACUNA en este caso la ruta de esta forma

Código COBOL:
  1. move "d:\archivos\debug\VACUNA.DAT" TO WF-VACUNA

de esta forma lee y graba donde le indique la ruta.


La franja horaria es GMT +2. Ahora son las 00:26.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.