Buenas,
tengo que crear una rutina final y no se lo que esta pasando.
Tengo un ods cuyos campos clave son 0BILL_NUM y 0BILL_ITEM. Como campos de datos tengo 0DELIV_NUMB (Entrega), 0DELIV_ITEM (Posicion de Entrega), ZNUM_TPE (Documento de Transporte), 0NT_WT_KG (Peso neto) y 0SUM_NET_WT (Suma de Pesos Netos).
Lo que quiero es realizar una rutina final que recorra todos los documentos y almacene en 0SUM_NET_WT la suma de todos los pesos netos (0NT_WT_KG) de los documentos de transporte, ya que en un transporte puede haber varias entregas y necesito el peso total del transporte.
He programado la rutina como sigue pero no funciona.
*Seccion declaraciones:
*$*$ begin of global - insert your declaration only below this line *-*
DATA PACKAGE_LINE TYPE _ty_s_TG_1.
DATA AUX_LINE TYPE _ty_s_TG_1.
DATA Z_SUM_NET_WT TYPE /BI0/OISUM_NET_WT.
DATA AUX TYPE _ty_t_TG_1.
*$*$ end of global - insert your declaration only before this line *-*
[....]
*Rutina:
*Clonamos los datos
AUX[] = RESULT_PACKAGE[].
*Inicializamos la suma de pesos
CLEAR Z_SUM_NET_WT.
*Loop por todas las facturas
LOOP AT RESULT_PACKAGE INTO PACKAGE_LINE.
*Loop por cada registro de documento de transporte
LOOP AT AUX INTO AUX_LINE
WHERE /BIC/ZNUM_TPTE = PACKAGE_LINE-/BIC/ZNUM_TPTE.
*Sumamos los pesos netos
Z_SUM_NET_WT = Z_SUM_NET_WT + AUX_LINE-NT_WT_KG.
ENDLOOP.
*Asignamos la suma a su campo correspondiente
PACKAGE_LINE-SUM_NET_WT = Z_SUM_NET_WT.
*Modificar la tabla interna con el valor de la Linea
MODIFY RESULT_PACKAGE FROM PACKAGE_LINE.
*Reseteamos la variable de suma
CLEAR Z_SUM_NET_WT.
ENDLOOP.
Incluso he probado a hacer
PACKAGE_LINE-SUM_GRS_WT = 1.
para obtener la columna de suma rellena con valores fijos (1, en este caso) y tampoco funciona. Es un problema con el loop, pero no acabo de encontrar donde....
Algun error que no he visto?? Alguna idea??
Un saludo
tengo que crear una rutina final y no se lo que esta pasando.
Tengo un ods cuyos campos clave son 0BILL_NUM y 0BILL_ITEM. Como campos de datos tengo 0DELIV_NUMB (Entrega), 0DELIV_ITEM (Posicion de Entrega), ZNUM_TPE (Documento de Transporte), 0NT_WT_KG (Peso neto) y 0SUM_NET_WT (Suma de Pesos Netos).
Lo que quiero es realizar una rutina final que recorra todos los documentos y almacene en 0SUM_NET_WT la suma de todos los pesos netos (0NT_WT_KG) de los documentos de transporte, ya que en un transporte puede haber varias entregas y necesito el peso total del transporte.
He programado la rutina como sigue pero no funciona.
*Seccion declaraciones:
*$*$ begin of global - insert your declaration only below this line *-*
DATA PACKAGE_LINE TYPE _ty_s_TG_1.
DATA AUX_LINE TYPE _ty_s_TG_1.
DATA Z_SUM_NET_WT TYPE /BI0/OISUM_NET_WT.
DATA AUX TYPE _ty_t_TG_1.
*$*$ end of global - insert your declaration only before this line *-*
[....]
*Rutina:
*Clonamos los datos
AUX[] = RESULT_PACKAGE[].
*Inicializamos la suma de pesos
CLEAR Z_SUM_NET_WT.
*Loop por todas las facturas
LOOP AT RESULT_PACKAGE INTO PACKAGE_LINE.
*Loop por cada registro de documento de transporte
LOOP AT AUX INTO AUX_LINE
WHERE /BIC/ZNUM_TPTE = PACKAGE_LINE-/BIC/ZNUM_TPTE.
*Sumamos los pesos netos
Z_SUM_NET_WT = Z_SUM_NET_WT + AUX_LINE-NT_WT_KG.
ENDLOOP.
*Asignamos la suma a su campo correspondiente
PACKAGE_LINE-SUM_NET_WT = Z_SUM_NET_WT.
*Modificar la tabla interna con el valor de la Linea
MODIFY RESULT_PACKAGE FROM PACKAGE_LINE.
*Reseteamos la variable de suma
CLEAR Z_SUM_NET_WT.
ENDLOOP.
Incluso he probado a hacer
PACKAGE_LINE-SUM_GRS_WT = 1.
para obtener la columna de suma rellena con valores fijos (1, en este caso) y tampoco funciona. Es un problema con el loop, pero no acabo de encontrar donde....
Algun error que no he visto?? Alguna idea??
Un saludo
Comentario