Вы находитесь на странице: 1из 3

1.1.1 Funcin Fijar fechas siguiente DP.

Z_E_XXX4
Funcin ZEC003_DP_UPDATE_NEXT_DATES
Lgica del proceso:
0. Se escribir en la lnea de ZET003002 que corresponda, estado = 2- Iniciado.
Esto se hace fuera de la funcin
1. Se acceder a la tabla /RPM/DECISION con el GUID, se recuperarn todos los
DP para es elemento.
Utilizar la funcin /RPM/DECISION_POINT_GETLIST informando el
IV_ITEM_GUID con el GUID del tem que viene en ZET00301-ITEM_ID
(acceder con el ID a la /RPM/ITEM_D para obtener el GUID),
idioma de
conexin.
2. Con el DECISION_GUID de la ZET003001 se posicionar en el actual DP, se
recuperar la ACTUAL_FINISH.
El DP actual es el que tiene marcado el campo ACTIVE en la tabla de salida de
la funcin /RPM/DECISION_POINT_GETLIST
3. Se buscar el da laboral ms prximo y posterior a ACTUAL_FINISH
a. Se llamar a la funcin 'WDKAL_DATE_ADD_FKDAYS'
i. i_fabkl = F7.
ii.

i_fkday = 1

iii. i_date = ACTUAL_FINISH


4. En el DP inmediatamente siguiente (por ndice),
a. Se escribirn las siguientes fechas:
i. PLAN_START = fecha recuperada
'WDKAL_DATE_ADD_FKDAYS'

de

la

funcin

ii. ACTUAL_START = fecha recuperada de la funcin


'WDKAL_DATE_ADD_FKDAYS' FORECAST_START
iii. FORECAST_START = fecha recuperada de la funcin
'WDKAL_DATE_ADD_FKDAYS' FORECAST_START
La actualizacin del DP la hacemos igual que la de la funcin anterior
Si todas las fechas se actualizan, se escribir en la tabla ZET003002 el estado 5- Finalizado.
Esto seguimos hacindolo fuera
Si hubiera algn problema a la hora de escribir las fechas, se actualizar la tabla
ZET003002 con el estado 3- Con error y el campo error con un mensaje de error No se
pudo fijar la fecha &1 del DP &2. Donde &1 corresponde a la fecha que no se ha podido
actualizar y &2 al GUID del DP.

PREGUNTAS:
Te cuento un poco la lgica a ver si es correcta o como seria la correcta y alguna duda
que tengo.
Select a /rpm/item_d entrando con external_id = i_zet00301-item_id. (Lo guardo en la
estructura ls_item_d)
Despus:
Select a /RPM/DECISION con ITEM_GUID = ls_item_d-guid. (Lo guardo en la tabla
LT_DECISION) "Seria un solo registro o varios???? NO HACE FALTA
Loop at LT_DECISION.??
Funcin '/RPM/DECISION_POINT_GETLIST' donde iv_item_guid = LT_DECISION-guid DEL
ITEM
ls_item_d-GUID
De todos los registros recuperados en la tabla ET_DECISIONS de la funcion, busco el
que tiene el campo ACTIVE igual a X.
Con ese registro, realizo la funcin 'WDKAL_DATE_ADD_FKDAYS' con el valor de
ACTUAL_FINISH, del registro que esta ACTIVE.
Ejemplo:

En este caso, el ACTIVE, seria la 2 posicin.


Punto 4. Tendra que leer la posicin 3 que es la inmediatamente siguiente el active.
ACTUAL_START= fecha recuperada de la funcin

'WDKAL_DATE_ADD_FKDAYS' FORECAST_START??
*El campo FORECAST_START, seria del registro ACTIVE (2
reg) o de la posicin siguiente (2 reg)??
que se actualiza, el 3 registro??

FUNCION:
563CFE8CE0AC0C80E1008000AC1E1065

55F1FC5272AE09C0E1008000AC1E1065 correcto
56010B2C32311040E1008000AC1E1065 no tiene en el active, pero si en el
siguiente

Вам также может понравиться