Skip to Content
author's profile photo Former Member
Former Member

Leer fecha de antigüedad infotipo 0092

Buenas tardes,

Se me plantea el problema de que necesito leer la fecha de antigüedad del infotipo español 0092 (campo FINIC), pero mediante regla, es decir no puedo implementar ninguna operación con código abap.

He visto que con NUM=F, puedo acceder a fecha del infotipo 41 y calcular la duración, pero esto no se adapta del todo a mi requerimiento.

¿Tenéis alguna idea de como podría hacerse?

Gracias,

Mayte

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • Posted on May 21, 2013 at 01:35 PM

    Buenas tardes,

    ¿Probaste con la operación TABLE con parámetro P0092 y luego NUM=BFINIC?

    TABLEP0092

    NUM=BFINIC

    el parámetro B es por especificar que se trata de un campo de la tabla que acabas de especificar con al operación TABLE y FINIC es el nombre del campo. Asegúrate de tener el registro relevante en la cabecera del infotipo (estructura/tabla interna P0092) al procesar la operación (entiendo que la función de nomina P0092 que se ejecuta al principio del esquema siempre coloca el registro relevante por lo que la solución que te expongo debería funcionar). Si no tienes claro los datos que están en la cabecera puedes usar la operación BRK con el valor que tienes especificado en tu parámetro de usuario AB4, algo como BRK XXX. Una vez en el debugger puedes verificar los datos que están en la cabecera del infotipo 0092 (apóyate en tu programador).

    Al tratarse de una fecha (formato interno SAP de 10 caracteres con año mes y dia de la siguiente forma aaaammdd), tienes que controlar el largo del argumento de variable con la operación VALEN, y también hay que considerar el valor que recuperas... recuperaras por ejemplo "20130521" y no tengo claro lo que puedes hacer con ello. Puedes usar las operaciones VALEN y VAOFF tanto para ampliar el argumento de variable y leer una posición determinada del valor que recuperas - mucha suerte para después de esto conseguir un computo en función del valor (pues desde la regla las operaciones que harás no trataran el dato como fecha sino como simple numero, asi que si sumas meses o días tendrás un problema ) - creo que mucho te vas a complicar la vida y poco funcional será...

    Alternativamente:

    1. puedes reflejar esta fecha con un tipo de fecha de cliente (T548Y) en el infotipo de fechas (0041) y hacer la pregunta con el parámetro F de la operación NUM. En PA puedes hacer una medida dinámica que cambie el infotipo 0041 según cambia el 0092; y tu ventaja definitiva ahí es que puedes preguntar por días, semanas, meses o años en función de la fecha almacenada y actuar en base a la respuesta sin necesitar programación pero necesitaras en algún momento cargar esta fecha, mantenerla sin decir que se duplica el dato (poco funcional).

    2. Volver a hablar con tu cliente para plantear una nueva operación (con necesidad de coding) que lee el valor de la fecha de antigüedad, la computa según tus requerimientos y te devuelva lo que necesitas para luego tratar las distintas opciones en tu regla.

    Desde luego yo tiraría para la opción 2.

    Good luck.

    Gracias y saludos,

    Antoine

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.