Você está na página 1de 2

VL_MSGID TYPE SYMSGID OPTIONAL Mensagens, classe de mensagens

VL_MSGNO TYPE SYMSGNO OPTIONAL Mensagens, n de mensagem


VL_MSGV1 TYPE ANY OPTIONAL
VL_MSGV2 TYPE ANY OPTIONAL
VL_MSGV3 TYPE ANY OPTIONAL
VL_MSGV4 TYPE ANY OPTIONAL
VL_PROBCLASS TYPE BALPROBCL OPTIONAL Log de aplicao: classe de problemas de
uma mensagem
VL_IDMEN TYPE CHAR1 OPTIONAL Cdigo de uma posio
VL_MSGTY TYPE SYMSGTY OPTIONAL Mensagens, Ctg.mensagens
VL_MENSAGEM TYPE CHAR200 Campo de texto comprimento 200

METHOD inserir_log .

FIELD-SYMBOLS:
<fs_msgv> TYPE sy-msgv1.

CLEAR: sy-msgv1,
sy-msgv2,
sy-msgv3,
sy-msgv4.

vg_tam = STRLEN( vl_mensagem ).


vg_res = 50.

CLEAR vg_ind.

WHILE vg_tam GT 0.
ADD 1 TO vg_ind.
CONCATENATE cg_msgv vg_ind INTO vg_campo.
ASSIGN (vg_campo) TO <fs_msgv>.
vg_tam = STRLEN( vl_mensagem ).
IF vg_tam LE vg_res.
vg_res = vg_tam.
ENDIF.
IF vl_mensagem+49(1) IS NOT INITIAL AND
vl_mensagem+50(1) IS NOT INITIAL.
vg_cont = 50.
CLEAR vg_substr.
WHILE vl_mensagem+vg_cont(1) IS NOT INITIAL.
CONCATENATE vl_mensagem+vg_cont(1) vg_substr INTO vg_substr.
CLEAR vl_mensagem+vg_cont(1).
SUBTRACT 1 FROM vg_cont.
ENDWHILE.
<fs_msgv> = vl_mensagem+0(vg_res).
CLEAR vl_mensagem+0(50).
SHIFT vl_mensagem LEFT DELETING LEADING space.
CONCATENATE vg_substr vl_mensagem INTO vl_mensagem.
ELSE.
<fs_msgv> = vl_mensagem+0(vg_res).
CLEAR vl_mensagem+0(50).
SHIFT vl_mensagem LEFT DELETING LEADING space.
ENDIF.
vg_tam = vg_tam - vg_res.
ENDWHILE.

wa_log-msgty = sy-msgty.
wa_log-msgid = sy-msgid.
wa_log-msgno = sy-msgno.
wa_log-msgv1 = sy-msgv1.
wa_log-msgv2 = sy-msgv2.
wa_log-msgv3 = sy-msgv3.
wa_log-msgv4 = sy-msgv4.

APPEND wa_log TO t_log.

IF wa_log-msgty EQ c_msgty_e.
*---Indicador de erro
vg_erro = c_msgty_e.
ENDIF.

ENDMETHOD.

Você também pode gostar