jueves, 5 de mayo de 2016

[JD Edwards] Ejecutar Comandos Windows / Linux



En algunas ocasiones nos encontramos en una situación en la cual en JDE no tenemos una función, funciones o funcionalidad para realizar una determinada tarea, o es demasiado complejo, y con un comando de Windows o Linux (ésto dependerá del servidor Enterprise) nos resultaría más sencillo. Por ejemplo, para buscar archivos de texto en un directorio, buscar un PDF generado con BIP, etc.



Pues bien, en JDE a través de la Business Function "Execute External Program" (B34A1030) podemos ejecutar dichos comandos. He incluso podemos realizar un script (.bat en Windows o .sh en Linux).


Ejemplo práctico:


// Comando Linux para buscar fichero
VA evt_Comando_NFLF = concat('/bin/ls -1 ',concat(directorio,concat(' | egrep -i $*.csv > ',fichTermporal_directorio)))

// Comando Windows (excluimos directorios /A:-D)
VA evt_Comando_NFLF = concat('dir /A:-D /B ',concat(directorio,concat(' > ',fichTermporal_directorio)))
Execute External Program
        VA rpt_ErrorCode_ERRC <- BF cErrorCode
        VA evt_Comando_NFLF -> BF szCommandLine
If VA rpt_ErrorCode_ERRC is equal to "1"
   Stop Batch Processing
End If

2 comentarios:

  1. Muy interesante esto, ahora tengo una duda, para manipular archivos, o escribir registros en archivos de texto, las funciones de jd edwards, también funcionan en linux?.
    Saludos

    ResponderEliminar
  2. Hola, sí perfectamente. Utilizando la BSFN estándar Write One Line To Flat File (B34A1010), no tendrás problemas.
    PD: Perdona, no me llegó la notificación del comentario. Espero que después de casi un año lo tengas resuelto ;)
    Saludos.

    ResponderEliminar