jueves, 20 de marzo de 2014

Cómo ejecutar una instancia de un JOB en Debug

Una tarea muy útil es 'debuggear' un programa ejecutado en JOB. Esto nos permitirá ver cuál es el proceso de ejecución de dicho programa que corrió en fondo. Evidentemente, puede asociarse tanto a programas estándar como a programas Z.

Para ello:

1) Colocamos el breakpoint en el reporte y lo guardamos.
2) Se ejecuta el reporte en JOB (sólo en caso que por la SM37 no tengamos una instancia de job qué evaluar).


3) Entrar a la transacción SM37 y ejecutar la instancia de JOB que acabamos de preparar (aplica la observación del punto 2). Hacemos clic en Ejecutar.


4) Seleccionando la instancia de JOB que queremos evaluar, escribimos JDBG en la línea de comandos y le damos Enter.


Ya con esto levantamos el breakpoint y procedemos a evaluar nuestro código. Algo super sencillo y que no muchos conocen.

miércoles, 12 de marzo de 2014

Tipos de cambio en Facturas - Notas de crédito (SAP SD - FI)

Haciendo un reporte a un cliente donde se me solicita un total por ingresos en Moneda Local (MXN - Pesos Mexicanos) y en moneda fuerte (USD - Dólares Americanos) el cliente me reporta que las notas de crédito en USD sí respetan el TC de las facturas, pero las que son creadas en MXN no (guardan el tipo de cambio de la fecha de contabilización).

Básicamente tomo 4 documentos, dos en cada moneda siendo factura y su correspondiente NC. El escenario es como sigue:


Si se observa, los documentos que están en USD tienen el mismo tipo de cambio (siendo RV la factura y el DG la nota de crédito). No sucede lo mismo con los que estén en USD. A nivel de SD es importante conocer que cuando se hacen documentos con referencia (con configuración en control de copia) la fecha de conversión es considerada en cada uno de ellos.

La razón de éste comportamiento en sistema viene de Finanzas:

Seleccionamos la sociedad y observamos cómo están configuradas las monedas en la misma:

Lo primero, entender que las monedas que aparecen en el recuadro azul son. 1º moneda, 2º moneda local y 3º moneda local, y que las propiedades que observamos son de conversión a esas monedas, es decir, son propiedades a conversión de esas monedas como destino.

La ayuda de Cls.feConv dice:

Clase de la fecha de conversión

La clase de la fecha de conversión determina la fecha que se utilizará en la conversión de los importes en función de la tabla de cotizaciones.


Los valores que nos da el matchcode son:


De ahí que delimitando el problema, la configuración es necesaria para convertir a USD (ver BKPF). La clase de fecha de conversión debe ser 3 en vez de 2.


Ahora bien, este cambio NO debe realizarse ya en ambientes de PRD. Observar la advertencia.


Finalmente, en mi caso el sistema se quedará de ésta manera y se debe mostrar la diferencia cambiara. Sirva éste ejemplo para la etapa de implementación de un proyecto.