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 20/07/06, 07:40:24
carlosalcala carlosalcala is offline
Member
 
Fecha de Ingreso: may 2006
Mensajes: 46
Log Bi

Hola foro!!!

Como podría recuperar un log completo del JD a partir de la ID de Cola?? y sino es posible, como podria 'cazar' estos resultados??

Muchas Gracias!
__________________
Salu2

Carlos!
Responder Con Cita
  #2  
Viejo 20/07/06, 10:36:37
sap2006 sap2006 is offline
Senior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 134
Lo que buscas esta en la sm35.
Salu2.
Responder Con Cita
  #3  
Viejo 24/07/06, 07:44:57
apozosanz apozosanz is offline
Member
 
Fecha de Ingreso: feb 2006
Mensajes: 86
Gracias pero lo que estoy buscando es recuperar el log que aparece en la SM35 para tratar los documentos contables dados de alta y poder bloquear los pedidos de venta, lo conseguí con este report
************************************************************************
* Listado que muestra la información de un log resultado de la *
* ejecución de un batch input. *
* Útil para analizar resultados tras la ejecución *
* *
* Andrés Picazo 18/11/2002 *
* *
************************************************************************
REPORT z_logs_batch_input LINE-SIZE 255 line-count 58.

TABLES: apqd, apql, tst01, bapiret2.

DATA: BEGIN OF logtable OCCURS 50, " plain log information in TemSe
enterdate LIKE btctle-enterdate,
entertime LIKE btctle-entertime,
logmessage(400) TYPE c,
END OF logtable.
DATA: l_logtable LIKE logtable.
DATA: i_apql LIKE apql OCCURS 100 WITH HEADER LINE.

DATA BEGIN OF BDCLM OCCURS 0. " ITabelle der Messageseintraege
INCLUDE STRUCTURE BDCLM. " LogTabelle
DATA: COUNTER TYPE I,
LONGTEXT TYPE BDC_MPAR,
END OF BDCLM .

DATA: "Aufbereitung Messagetext
BEGIN OF MTTAB OCCURS 4,
OFF(02) TYPE N,
LEN(02) TYPE N,
TEXT(80),
END OF MTTAB.

DATA:
DIGITS(10) TYPE C VALUE '0123456789',
MTEXT(124) TYPE C, "Messagetext
MTEXT1(124) TYPE C, "Messagetext
MTEXT2(273) TYPE C, "Messagetext
DO_CONDENSE TYPE C,
MTVAROFF TYPE I,
PARCNT TYPE I,
MPARCNT TYPE I,
X(1) TYPE C VALUE 'X'.

FIELD-SYMBOLS:
<MTXT>,
<VTXT>.

SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME.
SELECT-OPTIONS: s_credat FOR apql-credate, "Fecha creación batch input
s_groupi FOR apql-groupid OBLIGATORY, "N. juego datos
s_creato FOR apql-creator. "Usuario que lo creo
SELECTION-SCREEN END OF BLOCK a1.


SELECTION-SCREEN BEGIN OF BLOCK a2 WITH FRAME.
SELECT-OPTIONS: s_date FOR sy-datum, "Fecha log
s_time FOR sy-uzeit. "Hora log
SELECTION-SCREEN END OF BLOCK a2.

SELECTION-SCREEN BEGIN OF BLOCK a3 WITH FRAME.
SELECT-OPTIONS: s_MSGTY FOR sy-MSGTY, "Tipo de Mensaje
s_MSGID FOR sy-MSGID, "ID del mensaje
s_MSGNO FOR sy-MSGNO. "Número de Mensaje
SELECTION-SCREEN END OF BLOCK a3.

data: miMSGNO like sy-MSGNO.

START-OF-SELECTION.

SELECT * FROM apql
INTO TABLE i_apql
WHERE credate IN s_credat
AND groupid IN s_groupi
AND creator IN s_creato
AND mandant = sy-mandt.

LOOP AT i_apql.

WRITE: / 'Inicio log',
i_apql-groupid.
SKIP.

FREE logtable.
PERFORM read_bdc_log_plain(rsbdc_protocol)
TABLES
logtable
USING
i_apql-temseid i_apql-mandant.

LOOP AT logtable WHERE enterdate IN s_date
AND entertime IN s_time.
l_logtable = logtable.
AT FIRST.
WRITE: / 'Fecha: ', l_logtable-enterdate,
l_logtable-entertime.
SKIP.
ENDAT.
IF logtable-logmessage+9(20) NE ''.
if not S_MSGTY[] is initial.
check logtable-logmessage+73(1) in s_MSGTY.
endif.
if not S_MSGID[] is initial.
check logtable-logmessage+74(16) in s_MSGID.
endif.
if not S_MSGNO[] is initial.
miMSGNO = logtable-logmessage+94(3).
check miMSGNO in s_MSGNO.
endif.
WRITE: / logtable-entertime,
logtable-logmessage+3(6), "Indice
(4) logtable-logmessage+9(20), "Transacción
(12) logtable-logmessage+29(40), "Programa
logtable-logmessage+69(4), "Nº dynpro
logtable-logmessage+73(1), "Tipo mensaje
(3) logtable-logmessage+74(16), "Clase mensaje
logtable-logmessage+94(3), "Nº mensaje
logtable-logmessage+100(20). "Var1

* bapiret2-id = logtable-logmessage+74(16).
* bapiret2-number = logtable-logmessage+94(3).
* bapiret2-message_v1 = logtable-logmessage+100(20).
* CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'
* EXPORTING
* id = bapiret2-id
* number = bapiret2-number
* textformat = 'ASC'
* message_v1 = bapiret2-message_v1
* IMPORTING
* message = bapiret2-message.
*
* WRITE: (60) bapiret2-message.
clear: bdclm.
BDCLM+14 = LOGTABLE-LOGMESSAGE.
* perform get_Text(rsbdc_protocol).
perform get_Text.
write: (60) MTEXT.

ENDIF.

AT LAST.
SKIP.
ULINE.
SKIP.
ENDAT.
ENDLOOP.
ENDLOOP.



*---------------------------------------------------------------------*
* FORM : get_text *
*---------------------------------------------------------------------*
FORM GET_TEXT.
tables: t100.

*
DATA: "ParameterAufbereitung
BEGIN OF PAR,
LEN(02) TYPE N,
TEXT(254),
END OF PAR.
*
*** Aufbereiten des Messagetextes
*
DATA: SHIFTLN TYPE I,
VARTCNT TYPE I,
FDPOS LIKE SY-FDPOS.

IF BDCLM-MPARCNT CN DIGITS. "Korrupter Datensatz:
BDCLM-MPARCNT = 0. "z.B. Hexnullen
ENDIF.

SELECT SINGLE * FROM T100
WHERE SPRSL = SY-LANGU
AND ARBGB = BDCLM-MID
AND MSGNR = BDCLM-MNR.
*
IF SY-SUBRC EQ 0.
CLEAR: MTEXT,
PARCNT,
MPARCNT,
SY-FDPOS.
*
MOVE BDCLM-MPARCNT TO MPARCNT.
*
IF T100-TEXT CA '$&'. "Kennung fuer parameter:
MOVE T100-TEXT TO MTEXT1. " alt '$' --- neu '&'
ELSE.
MOVE T100-TEXT TO MTEXT.
EXIT.
ENDIF.
* variable teile aus batch-input protokoll in mttab bringen.
REFRESH MTTAB.
CLEAR SHIFTLN.
DO MPARCNT TIMES.
CLEAR: PAR, MTTAB.
MOVE BDCLM-MPAR TO PAR.
IF PAR-LEN CN DIGITS OR PAR-LEN EQ 0. "convert_no_number
PAR-LEN = 1. "entschärfen
ENDIF.
WRITE PAR-TEXT TO MTTAB-TEXT(PAR-LEN).
MOVE PAR-LEN TO MTTAB-LEN.
MOVE MPARCNT TO MTTAB-OFF.
APPEND MTTAB.
SHIFTLN = PAR-LEN + 2.
SHIFT BDCLM-MPAR BY SHIFTLN PLACES.
ENDDO.
*
MTEXT2 = MTEXT1.
IF BDCLM-MID EQ '00' AND " sonderbehandlung s00368
BDCLM-MNR EQ '368' AND
BDCLM-MART EQ 'S'.
CLEAR MTEXT2.
CLEAR MTTAB.
READ TABLE MTTAB INDEX 1.
WRITE MTTAB-TEXT TO MTEXT2+0(MTTAB-LEN).
CLEAR MTTAB.
READ TABLE MTTAB INDEX 2.
WRITE MTTAB-TEXT TO MTEXT2+35(MTTAB-LEN).
MTEXT = MTEXT2.
EXIT.
ENDIF.

DO_CONDENSE = X.
CLEAR: VARTCNT, MTVAROFF.
WHILE VARTCNT LE 3.
VARTCNT = VARTCNT + 1.
IF MTEXT1 CA '$&'.
PARCNT = PARCNT + 1.
IF SY-FDPOS GT 0.
FDPOS = SY-FDPOS - 1. " neu sy-fdpos -1
ELSE.
FDPOS = SY-FDPOS.
ENDIF.
SHIFT MTEXT1 BY SY-FDPOS PLACES.
IF MTEXT1(1) EQ '&'.
SHIFT MTEXT1 BY 1 PLACES.
CASE MTEXT1(1).
WHEN ' '. "'& '
PERFORM REPLACE_VAR
USING '& ' PARCNT FDPOS.
WHEN '$'. "'&&'
PERFORM REPLACE_VAR
USING '&&' 0 FDPOS.
WHEN '1'. "'&1'
PERFORM REPLACE_VAR
USING '&1' 1 FDPOS.
WHEN '2'. "'&2'
PERFORM REPLACE_VAR
USING '&2' 2 FDPOS.
WHEN '3'. "'&3'
PERFORM REPLACE_VAR
USING '&3' 3 FDPOS.
WHEN '4'. "'&4'
PERFORM REPLACE_VAR
USING '&4' 4 FDPOS.
WHEN OTHERS. "'&'
PERFORM REPLACE_VAR
USING '&<' PARCNT FDPOS.
ENDCASE.
ENDIF.
IF MTEXT1(1) EQ '$'.
SHIFT MTEXT1 BY 1 PLACES.
CASE MTEXT1(1).
WHEN ' '. "'$ '
PERFORM REPLACE_VAR
USING '$ ' PARCNT FDPOS.
WHEN '$'. "'$$'
PERFORM REPLACE_VAR
USING '$$' 0 FDPOS.
WHEN '1'. "'$1'
PERFORM REPLACE_VAR
USING '$1' 1 FDPOS.
WHEN '2'. "'$2'
PERFORM REPLACE_VAR
USING '$2' 2 FDPOS.
WHEN '3'. "'$3'
PERFORM REPLACE_VAR
USING '$3' 3 FDPOS.
WHEN '4'. "'$4'
PERFORM REPLACE_VAR
USING '$4' 4 FDPOS.
WHEN OTHERS. "'$'
PERFORM REPLACE_VAR
USING '$<' PARCNT FDPOS.
ENDCASE.
ENDIF.
ENDIF.
ENDWHILE.
*
IF MTEXT2 CA '%%_D_%%'.
REPLACE '%%_D_%%' WITH '$' INTO MTEXT2.
ENDIF.
IF MTEXT2 CA '%%_A_%%'.
REPLACE '%%_A_%%' WITH '&' INTO MTEXT2.
ENDIF.
IF DO_CONDENSE EQ SPACE.
MTEXT = MTEXT2.
ELSE.
CONDENSE MTEXT2 .
MTEXT = MTEXT2.
ENDIF.
ELSE.
MTEXT = '???????????????????????????????????????????????????'.
ENDIF.
*
ENDFORM. " get_text

*---------------------------------------------------------------------*
* FORM : replace_var *
* *
*---------------------------------------------------------------------*
FORM REPLACE_VAR USING VARK
VARI TYPE I
VARPOS.
*
* ersetzen der variablen teile einer fehlermeldung
*
DATA: VAR(02),
VAR1,
MOFF TYPE I.
*
CLEAR: MTTAB , MOFF.
VAR = VARK.
SHIFT VAR BY 1 PLACES.
CASE VAR.
WHEN ' '. "'& '
READ TABLE MTTAB INDEX VARI.
IF SY-SUBRC EQ 0.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
ASSIGN MTTAB-TEXT(MTTAB-LEN) TO <VTXT>.
VAR1 = VARK.
REPLACE VAR1 WITH <VTXT> INTO <MTXT>. "neu
MTVAROFF = MTTAB-LEN. "neu
ELSE.
IF VARI GT MPARCNT.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH ' ' INTO <MTXT>. "neu
MTVAROFF = 2. "neu
ELSE.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH '%%_Z_%%' INTO <MTXT>. "neu
MTVAROFF = 7. "neu
ENDIF.
ENDIF.
WHEN '$'. "'&&'
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH '%%_D_%%' INTO <MTXT>. "neu
MTVAROFF = 7. "neu
WHEN '&'. "'&&'
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH '%%_A_%%' INTO <MTXT>. "neu
MTVAROFF = 7. "neu
WHEN '<'. "'&1'
READ TABLE MTTAB INDEX VARI.
IF SY-SUBRC EQ 0.
IF VARK EQ '&<'.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
ASSIGN MTTAB-TEXT(MTTAB-LEN) TO <VTXT>.
REPLACE '&' WITH <VTXT> INTO <MTXT>. "neu
MTVAROFF = MTTAB-LEN. "neu
ENDIF.
IF VARK EQ '$<'.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
ASSIGN MTTAB-TEXT(MTTAB-LEN) TO <VTXT>.
REPLACE '$' WITH <VTXT> INTO <MTXT>. "neu
MTVAROFF = MTTAB-LEN. "neu
ENDIF.
ELSE.
IF VARK EQ '&<'.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE '&' WITH ' ' INTO <MTXT>. "neu
MTVAROFF = 1. "neu
ENDIF.
IF VARK EQ '$<'.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE '$' WITH ' ' INTO <MTXT>. "neu
MTVAROFF = 1. "neu
ENDIF.
ENDIF.
WHEN '1'. "'&1'
READ TABLE MTTAB INDEX 1.
IF SY-SUBRC EQ 0.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
ASSIGN MTTAB-TEXT(MTTAB-LEN) TO <VTXT>.
REPLACE VARK WITH <VTXT> INTO <MTXT>. "neu
MTVAROFF = MTTAB-LEN. "neu
ELSE.
IF VARI GT MPARCNT.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH ' ' INTO <MTXT>. "neu
MTVAROFF = 2. "neu
ELSE.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH '%%_Z_%%' INTO <MTXT>. "neu
MTVAROFF = 7. "neu
ENDIF.
ENDIF.
WHEN '2'. "'&2'
READ TABLE MTTAB INDEX 2.
IF SY-SUBRC EQ 0.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
ASSIGN MTTAB-TEXT(MTTAB-LEN) TO <VTXT>.
REPLACE VARK WITH <VTXT> INTO <MTXT>. "neu
MTVAROFF = MTTAB-LEN. "neu
ELSE.
IF VARI GT MPARCNT.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH ' ' INTO <MTXT>. "neu
MTVAROFF = 2. "neu
ELSE.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH '%%_Z_%%' INTO <MTXT>. "neu
MTVAROFF = 7. "neu
ENDIF.
ENDIF.
WHEN '3'. "'&3'
READ TABLE MTTAB INDEX 3.
IF SY-SUBRC EQ 0.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
ASSIGN MTTAB-TEXT(MTTAB-LEN) TO <VTXT>.
REPLACE VARK WITH <VTXT> INTO <MTXT>. "neu
MTVAROFF = MTTAB-LEN. "neu
ELSE.
IF VARI GT MPARCNT.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH ' ' INTO <MTXT>. "neu
MTVAROFF = 2. "neu
ELSE.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH '%%_Z_%%' INTO <MTXT>. "neu
MTVAROFF = 7. "neu
ENDIF.
ENDIF.
WHEN '4'. "'&4'
READ TABLE MTTAB INDEX 4.
IF SY-SUBRC EQ 0.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
ASSIGN MTTAB-TEXT(MTTAB-LEN) TO <VTXT>.
REPLACE VARK WITH <VTXT> INTO <MTXT>. "neu
MTVAROFF = MTTAB-LEN. "neu
ELSE.
IF VARI GT MPARCNT.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH ' ' INTO <MTXT>. "neu
MTVAROFF = 2. "neu
ELSE.
MOFF = VARPOS + MTVAROFF. "neu
ASSIGN MTEXT2+MOFF(*) TO <MTXT>. "neu
REPLACE VARK WITH '%%_Z_%%' INTO <MTXT>. "neu
MTVAROFF = 7. "neu
ENDIF.
ENDIF.
*
ENDCASE.
*
DO_CONDENSE = SPACE.
*
ENDFORM. "replace_var
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 23:32:16.


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