O Conhecimento

O conhecimento é inútil a menos que você o compartilhe.

quinta-feira, 29 de março de 2012

TEXT LONG NO SMARTFORM

Para realizar a impressão, para não usar a função read_text, usar essa opção no smartform.....onde &G_textname& e o name do texto atribuído dentro do smartform......show de bola funciona q uma beleza.....











quarta-feira, 28 de março de 2012

TRANSAÇÃO EXPORT IMPORT IMAGE

TRANSAÇÃO IMPORT EXPORT IMAGES SAP

SMW0 E SE78




quarta-feira, 21 de março de 2012

Download Objetos SE78

Programa para download de objetos da se78.......

REPORT Z_DUMMY_ATG_3.DATA : L_BYTECOUNT TYPE I,
       L_TDBTYPE   
LIKE STXBITMAPS-TDBTYPE,
       L_CONTENT   
TYPE STANDARD TABLE OF BAPICONTEN INITIAL SIZE 0.
DATA: GRAPHIC_SIZE TYPE I.
DATA: BEGIN OF GRAPHIC_TABLE OCCURS 0,
LINE(255TYPE X,
END OF GRAPHIC_TABLE.CALL FUNCTION 'SAPSCRIPT_GET_GRAPHIC_BDS'
  
EXPORTING
    I_OBJECT       
'GRAPHICS'
    I_NAME         
'Z_LOGO_CRYSTAL_01'
    I_ID           
'BMAP'
    I_BTYPE        
'BCOL'
  
IMPORTING
    E_BYTECOUNT    
L_BYTECOUNT
  
TABLES
    CONTENT        
L_CONTENT
  
EXCEPTIONS
    NOT_FOUND      
1
    BDS_GET_FAILED 
2
    BDS_NO_CONTENT 
3
    
OTHERS         4.
CALL FUNCTION 'SAPSCRIPT_CONVERT_BITMAP'
  
EXPORTING
    OLD_FORMAT               
'BDS'
    NEW_FORMAT               
'BMP'
    BITMAP_FILE_BYTECOUNT_IN 
L_BYTECOUNT
  
IMPORTING
    BITMAP_FILE_BYTECOUNT    
GRAPHIC_SIZE
  
TABLES
    BDS_BITMAP_FILE          
L_CONTENT
    BITMAP_FILE              
GRAPHIC_TABLE
  
EXCEPTIONS
    
OTHERS                   1.
CALL FUNCTION 'WS_DOWNLOAD'
  
EXPORTING
    BIN_FILESIZE            
GRAPHIC_SIZE
    FILENAME                
'C:\Users\ricardo\Documents\SAP\Z_LOGO_CRYSTAL_01.bmp'
    FILETYPE                
'BIN'
  
TABLES
    DATA_TAB                
GRAPHIC_TABLE
  
EXCEPTIONS
    INVALID_FILESIZE        
1
    INVALID_TABLE_WIDTH     
2
    INVALID_TYPE            
3
    NO_BATCH                
4
    UNKNOWN_ERROR           
5
    GUI_REFUSE_FILETRANSFER 
6.
IF SY-SUBRC  0.
  
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.




quarta-feira, 14 de março de 2012

Log em Transação standart MIGO


Show de bola, usei em um cliente, deu certim....log porreta de ver.....na MIGO.....

Este site ajudou bastante http://abapinho.com/2009/09/application-log/

Segue os passos:
Exit :
Ampliação:  MBCF0002
Componente:  EXIT_SAPMM07M_001
Include: ZXMBCU02
Função: ME_SELECT_DOCUMENTS

Ativar user exit para a transação MIGO considerando a ampliação MBCF0002, componente EXIT_SAPMM07M_001e include  ZXMBCU02 acima descritos.
Nesta user-exit implementar a seguinte lógica:
Se transação = MIGO
      Chamar a função ME_SELECT_DOCUMENTS considerando os seguintes parâmetros de entrada:
                      I_LFGJA = I_MKPF- MJAHR
                      I_XBLNR = I_MKPF- XBLNR
                      I_LIFNR = I_MSEG- LIFNR ( Primeira ocorrência )
Se a tabela T_EKSEL não ficar vazia após a execução da função, já foi efetuado lançamento com o número de referência para o mesmo fornecedor. Gerar mensagem de erro:
Gerar um pop-up com mensagem de erro: “ Nota de Remessa já utilizada.” Apresentar no pop o conteúdo da tabela interna T_EKSEL.



*&---------------------------------------------------------------------*
*&  Include           ZXMBCU02
*&---------------------------------------------------------------------*

IF sy-tcode 'MIGO'.

  
DATA: t_eksel TYPE eksel OCCURS WITH HEADER LINE.

  
DATA: wa_t_eksel LIKE LINE OF t_eksel.

  
DATA: v_line TYPE i.

  
DATA: param_1(100TYPE c,
        param_2
(100TYPE c,
        param_3
(100TYPE c,
        param_4
(100TYPE c,
        param_5
(100TYPE c,
        param_6
(100TYPE c.


  
CALL FUNCTION 'ME_SELECT_DOCUMENTS'
    
EXPORTING
      i_lfgja 
i_mkpf-mjahr
      i_xblnr 
i_mkpf-xblnr
      i_lifnr 
i_mseg-lifnr
    
TABLES
      t_eksel 
t_eksel.

  
IF t_eksel IS NOT INITIAL.

    
CLEAR wa_t_eksel.

    
CLEAR: param_1,param_2,param_3,param_4,param_5,param_6.

    
EXPORT t_eksel t_eksel TO MEMORY ID 'ERRO_t_eksel'.

    
DATA:
       l_log_handle 
TYPE balloghndl,
       l_s_log      
TYPE bal_s_log,
       l_s_msg      
TYPE bal_s_msg,
       l_msgno      
TYPE symsgno.* cria um log inicial
    l_s_log
-altcode 'MIGO'.
    l_s_log
-extnumber  'SAPLMIGO'.
    
CALL FUNCTION 'BAL_LOG_CREATE'
      
EXPORTING
        i_s_log      
l_s_log
      
IMPORTING
        e_log_handle 
l_log_handle
      
EXCEPTIONS
        
OTHERS       1.

    
IF sy-subrc <> 0.
      
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    
ENDIF.
*export id do log
    
EXPORT l_log_handle l_log_handle TO MEMORY ID 'LOGERRO_t_eksel'.

    
LOOP AT t_eksel INTO wa_t_eksel.

      
CONCATENATE 'Nº doc. Compras ' wa_t_eksel-ebeln ',' INTO param_1 SEPARATED BY space."Nº do documento de compras

      
CONCATENATE 'Nº item doc.Compra ' wa_t_eksel-ebelp INTO param_2 SEPARATED BY space."Nº item do documento de compra

      
CONCATENATE 'Nº doc.Ref. ' wa_t_eksel-xblnr INTO param_3 SEPARATED BY space."Nº documento de referência

      
CONCATENATE 'Exerc. ' wa_t_eksel-lfgja ',' INTO param_4 SEPARATED BY space."Exercício do período atual

      
CONCATENATE 'Nº doc. de Ref. ' wa_t_eksel-lfbnr '.' INTO param_5 SEPARATED BY space."Nº documento de um documento de referência

      
CONCATENATE 'Item doc. de Ref. ' wa_t_eksel-lfpos  INTO param_6 SEPARATED BY space."Item de um documento de referência
***      MESSAGE E021(zmsg) WITH param_1 param_2 param_3 param_4 DISPLAY LIKE 'W'." param_5 param_6 .
***
      l_msgno 
021.
      l_s_msg
-msgid 'ZMSG'.
      l_s_msg
-msgno l_msgno.
      l_s_msg
-msgty 'E'.
      l_s_msg
-msgv1 'Nota de Remessa já utilizada, '.
      l_s_msg
-msgv2 param_1.
      l_s_msg
-msgv3 param_4.
      
l_s_msg-msgv4 param_5.

      l_s_msg
-probclass '1'.

      
CALL FUNCTION 'BAL_LOG_MSG_ADD'
            
EXPORTING
            i_log_handle              
l_log_handle
              i_s_msg                 
l_s_msg*           IMPORTING
*             E_S_MSG_HANDLE            =
*             E_MSG_WAS_LOGGED          =
*             E_MSG_WAS_DISPLAYED       =
           
EXCEPTIONS
             log_not_found             
1
             msg_inconsistent          
2
             log_is_full               
3
             
OTHERS                    4
                    .

      
IF sy-subrc <> 0.
        
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      
ENDIF.

      
CLEAR wa_t_eksel.

    
ENDLOOP.

  
ENDIF.
ENDIF.


DEPOIS NA BADI E METODO: IF_EX_MB_MIGO_BADI~STATUS_AND_HEADER


METHOD if_ex_mb_migo_badi~status_and_header.


  
DATA: t_eksel TYPE TABLE OF eksel INITIAL SIZE 0.

  
DATA: wa_t_eksel LIKE LINE OF t_eksel.

  
DATA: l_exit_cmd TYPE  bal_s_excm.

  
DATA: l_log_handle TYPE balloghndl.

  
DATA: l_s_display_profile TYPE bal_s_prof.*importa tabela de docs já gerados
  
IMPORT t_eksel TO t_eksel FROM MEMORY ID 'ERRO_t_eksel'.

  
IF t_eksel IS NOT INITIAL." processa se tabela diferente de vazio
* use grid for display if wanted
    l_s_display_profile
-use_grid 'X'."p_grid.

    l_s_display_profile
-disvariant-report 'SAPLMIGO'.

    l_s_display_profile
-disvariant-handle ='LOG'.


    
CALL FUNCTION 'BAL_DSP_PROFILE_POPUP_GET'
      
IMPORTING
        e_s_display_profile 
l_s_display_profile.


 
IMPORT l_log_handle TO l_log_handle FROM MEMORY ID 'LOGERRO_t_eksel'.


    
CLEAR: l_exit_cmd.

    
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
      
EXPORTING
        i_s_display_profile 
l_s_display_profile
        i_amodal             
space
       
IMPORTING
        e_s_exit_command    
l_exit_cmd
      
EXCEPTIONS
        
OTHERS              4.
*BACK/EXIT/CANCEL/CONTINUE/EXTERNAL
*    IF l_exit_cmd-cancel = 'X' AND l_exit_cmd-continue <> 'X'.
*limpa o a tabela de logs
    
IF l_log_handle IS NOT INITIAL.

      
CALL FUNCTION 'BAL_LOG_REFRESH'
        
EXPORTING
          i_log_handle  
l_log_handle
        
EXCEPTIONS
          log_not_found 
1
          
OTHERS        2.

      
FREE MEMORY ID 'LOGERRO_t_eksel'. " limpa a memoria com os erros

      
FREE MEMORY ID 'ERRO_t_eksel'." limpa a memoria comm os documentos já gerados

      
LEAVE TO SCREEN 1. " retorna a tela da MIGO
    
ENDIF.

  
ENDIF.

ENDMETHOD.

O RESULTADO:


 
Blogger Templates