#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
una opción !
Muchas Gracias Andy! si me diste una alternativa !
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|