MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   cómo logro cambiar el Status de un IDOC? (foro/showthread.php?t=26844)

Lorenasoledad 15/12/08 12:41:16

cómo logro cambiar el Status de un IDOC?
 
Estoy trabajando con Idocs (con las tx MM42 y bd21) .Al generarse el idoc luego de la ejecución de las tx mencionadas este toma un valor de estatus dependiendo si ocurrió alguna anomalía o si la generación fué exitosa.

En este momento me encuentro realizando una ampliación de una badi IDOC_DATA_INSERT (que es llamada por la tx bd21) para insertar código en el método FILL y aca les presento mi problema.
Lo que necesito es colocar un insert con código native a una base de datos externa a SAP.
El punto es que necesitaría comprobar si los datos fueron cargados correctamente en la BD externa y en el caso de que no se hayan cargado los registros correspondientes necesitaría lo siguiente:
cambiar el valor del estatus que posee el IDOC y no lo estoy logrando.

Alguien sabe de alguna función ó alguna alternativa para poder contemplar este detalle? Asi logro chequear en la tx we05 y ver si mis registros fueron exitosamente cargados en mi base de datos externa.

andyoscky 16/12/08 14:02:06

Te mando un ejemplo espero que te sea de ayuda

REFRESH: t_edids , t_edidc .

SELECT * INTO TABLE t_edids
FROM edids
WHERE docnum = ori_docnum.

SELECT * INTO TABLE t_edidc
FROM edidc
FOR ALL ENTRIES IN t_edids
WHERE docnum = t_edids-docnum.

SORT t_edids DESCENDING .
LOOP AT t_edidc.
t_edidc-status = stat.
t_edidc-upddat = sy-datum.
t_edidc-updtim = sy-uzeit.
MODIFY t_edidc INDEX sy-tabix.
*statusfile write
CHECK sy-subrc = 0 .
READ TABLE t_edids WITH KEY docnum = t_edidc-docnum .
IF sy-subrc = 0 .
t_edids-logdat = sy-datum.
t_edids-logtim = sy-uzeit.
ADD 1 TO t_edids-countr.
t_edids-credat = sy-datum.
t_edids-cretim = sy-uzeit.
t_edids-status = stat.
t_edids-uname = sy-uname.
CASE stat .
WHEN '62' .
t_edids-statxt = 'HELLO STATUS!'.
WHEN '53' .
t_edids-statxt = 'BOOKED MANUALLY!'.
ENDCASE.
t_edids-statyp = 'I'.
t_edids-stamqu = 'SAP'.
t_edids-stamid = 'ZU'.
t_edids-stamno = '998'.
CLEAR: t_edids-stapa1,
t_edids-stapa2,
t_edids-stapa3,
t_edids-stapa4.
APPEND t_edids .
ENDIF.
*
ENDLOOP.

MODIFY edids FROM TABLE t_edids.
MODIFY edidc FROM TABLE t_edidc.
COMMIT WORK AND WAIT.

Lorenasoledad 16/12/08 17:31:20

una opción !
 
Muchas Gracias Andy! si me diste una alternativa ! :)


Husos Horarios son GMT. La hora en este momento es 21:13:25.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web