jueves, 26 de julio de 2012

Transacción COR6N en Batch Input (BDC) no para en error.

Situación:

Cambio de versión, de la 500 a la 605.

Problema:

Teníamos un programa Z que realizaba una serie de impresiones y finalmente llamaba con un
    CALL TRANSACTION ‘COR6N’    USING bdcdata
                     
MODE     ‘E’
                     
MESSAGES INTO errortab
                     
UPDATE   ‘S’.
En el caso de existir un error la COR6N se para tanto en la versión 5 como en la 6:
[01]
Pero en la versión 6 al ejecutar por Batch Input en el programa Z en modo prueba de errores no se quedaba parado en la pantalla que lista los errores y nos permite solventarlos.
No sólo eso si no que nos insertaba valores que podíamos ver en la COGI.  Después de buscar notas oss, que se aplicaban para este tipo de errores pero que no eran necesarias porque ya son recogidas por la versión estábamos algo desesperados, porque el problema no tenia sentido.
Finalmente gracias a la sugerencia de JM Renedo, hemos jugado con las opciones del call transaction aunque no habíamos cambiado nada, la solución:

DATAw_ctu_params LIKE ctu_params.
    w_ctu_params-updmode 'S'.     w_ctu_params-dismode 'E'.     w_ctu_params-nobinpt 'X'.
CALL TRANSACTION tcode    USING bdcdata OPTIONS FROM _ctu_paramsMESSAGES INTO errortab.
De esta forma si que se nos para en el error y permite al usuario solventarlo. Es como si le dijésemos que no es batch input.