Hola buen día, describo el problema:
Tengo una tarea programada en windows que ejecuta un .bat, este bat verifica que exista un TXT, si existe este TXT entonces abre Data Transfer Workbench toma ese TXT y hace cambios en SAP, una vez termina ese proceso mueve el TXT a otra carpeta (esto por que el bat se ejecuta cada hora si es que encuentra el archivo).
El problema radica en que al ejecutar el DTW aveces el TXT tiene algún dato erróneo por lo que no se inserta ningún cambio en SAP, aun asi el programa sigue y mueve el archivo de lugar sin yo saber si hubo algún error, hasta después que consulto en SAP. necesito una forma de saber que DTW dio algún error o termino el proceso bien, para validar con un IF y saber que si hay error entonces solo renombre el archivo con algo como “Error.txt” así no tener que esperarme a consultar en SAP.
estuve intentando con if %ERRORLEVEL% EQU 0 pero para batch el comando donde abre DTW es correcto sea lo que sea que haga DTW, entonces ERRORLEVEL siempre devuelve 0 aunque tenga error. anexo mi código original:
@echo off
IF EXIST "c:\MHO_AutoSAP\Cobranza\Archivos\Facturas.txt" (
REM Abres DTW
cd "C:\Program Files\SAP\Data Transfer Workbench"
REM Ejecutas DTW con la ruta al archivo XML a cargar
DTW -s C:\MHO_AutoSAP\Cobranza\Facturas.xml
REM Renombramos archivo y movemos a historico
SET NEW=%DATE:~0,4%%DATE:~7,2%%DATE:~4,2%%TIME:~0
REM ,2%%TIME:~3,2%%TIME:~6,2%
REN c:\MHO_AutoSAP\Cobranza\Archivos\Facturas.txt %NEW%Facturas.txt
MOVE c:\MHO_AutoSAP\Cobranza\Archivos\%NEW%Facturas.txt c:\MHO_AutoSAP\Cobranza\Historico
)
La linea DTW -s C:\MHO_AutoSAP\Cobranza\Facturas.xml es la que necesito validar si se hizo correctamente