MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 15/12/08, 12:41:16
Lorenasoledad Lorenasoledad is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Mensajes: 11
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.
Responder Con Cita
  #2  
Viejo 16/12/08, 14:02:06
andyoscky andyoscky is offline
Miembro Honorario
 
Fecha de Ingreso: mar 2006
Mensajes: 73
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.
Responder Con Cita
  #3  
Viejo 16/12/08, 17:31:20
Lorenasoledad Lorenasoledad is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Mensajes: 11
una opción !

Muchas Gracias Andy! si me diste una alternativa !
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 14:27:44.


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