quinta-feira, 31 de maio de 2012

É felicidade ? Então passa pra frente ....

   Ahhhh, estou muito feliz e gostaria de repassar isso a todos os seguidores do Blog, o blog ABAPJuniores foi criado para troca de informações sobre a Linguagem ABAP, diariamente recebo vários emails com dúvidas e tento sanar todas (salve as exceções rsrs), na maioria desses emails aprendo algo e repasso no própio blog como Post.
   Mas hoje o blog não é somente troca de informação, trabalhamos com pessoas e porque não ajudá-las, estamos recebendo já faz mais de 6 meses currículos e repassando para empresas filiadas, foram mais de 200 currículos repassados para 12 consultorias, a equipe ABAPJuniores está tentando fazer mais alianças com outras consultorias, empresas de RH e Escolas para cursos, o primeiro Curso ABAP parceiro do Blog foi o ztreinamento onde informando o cupom você ganha 10% de desconto, e não para por ai, estamos aumentando a gama de consultorias e empresas que querem receber o currículos.
   Agora sobre o blog em si, gostaria de agradecer a participação de todos, dicas, dúvidas, reclamações rsrs são todas bem vindas pois esses blog foi feito pra isso, troca de informações, foi feito para nós.
   Se preparem que no próximo mês estaremos 'postando' muita coisa interessante sobre Smartforms, dicionários de dados, Exit's, SapScript, cheats and tricks e lógico ALV rsrs...  Obrigadão pessoal e bons estudos.

sexta-feira, 25 de maio de 2012

Função - 'CREATE_TEXT'

"  Eae Galera, lembra do ultimo post Sobre como criar um Objeto de texto,
" então agora vou mostrar como usar esse objeto de texto pra gravar textos,
" rsrsrs eh verdade..... rrsrs, abaixo tenho a função funcionando certinho,
" se vocês não lembram duq eu to falando .... Acessem..
" http://abapjuniores.blogspot.com.br/2012/05/transacao-se75-criacao-de-objeto-de.html

report  z_create_text.

data :
  it_flines type table of tline,
  st_flines type tline.

start-of-selection.

  perform zf_cria_texto.

*&---------------------------------------------------------------------*
*&      Form  ZF_CRIA_TEXTO
*&---------------------------------------------------------------------*
form zf_cria_texto .

  st_flines-tdline   'texto teste 001'.
  append st_flines to it_flines.

  call function 'CREATE_TEXT'
    exporting
      fid               'OBSE'    " Id do Objeto de texto
      flanguage         sy-langu  " Idioma
      fname             '01'    " Chave
      fobject           'ZTEXTOS' " Objeto de texto
*   SAVE_DIRECT       = 'X'
*   FFORMAT           = '*'
    tables
      flines            it_flines " Tabela com os textos.
   exceptions
     no_init           1
     no_save           2
     others            3
            .
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.

endform.                    " ZF_CRIA_TEXTO

"  Como todo bom observador que nós somos, devemos executar a função
" 'READ_TEXT' pra ver se o negócio funcionou mesmo, vejam link abaixo
" http://abapjuniores.blogspot.com.br/2011/10/funcao-read-text.html
"  Mas se vocês querem fazer de uma forma mais rápida, vão na transação
" SE37 entra na função 'READ_TEXT' e façam igual a imagem abaixo,
" Com isso vocês conseguiram ver ser o conteúdo foi mesmo pro objeto.

 

" Obrigadaum pessoal e como sempre qualquer dúvida comentem ou mandem email.

segunda-feira, 21 de maio de 2012

Criação de Objeto de texto - SE75

 
"  Eae galera, sabe quando estamos cadastrando algo no SAP e existe 
" akele campo 'Observações' tipo uma caixa de texto e se você quiser 
" você pode escrever um livro, então, esse texto todo é gravado num 
" objeto de texto que será o tema de hoje.
"  Esse livro será recuperado com a função 'READ_TEXT', veja link abaixo.
" http://abapjuniores.blogspot.com.br/2011/10/funcao-read-text.html
"  hoje vou mostrar como fazer um objeto de texto, e amanhã irei mostrar 
" como efetuar um cadastro em um objeto de texto.

"  Primeiramente vamos na transação 'SE75' conforme abaixo.



sexta-feira, 11 de maio de 2012

Classe - CL_GUI_TIMER

"  Ha, essa vai ser legal heimmm, me perguntaram por email como fazer
" uma atualização automática de um ALV de 5 a 5 mim que mostrava dados
" de uma tabela transparente, na hora eu falei.... pronto to ferrado pois
" eu não sei e gostaria muito de saber, até que mexendo na sdn e na net
" afora achei uma classe manerissima que é um timer, abaixo tem um código
" usando essa classe.
"  Vocês se lembram do programa que era um alv que atualizava uma tabela
" transaparente que eu postei mês passado? Então use o programa do link
" abaixo pra atualizar/modificar a tabela transparente ...
" http://abapjuniores.blogspot.com.br/2012/04/alv-editavel-atualizacao-tab.html
" e use este programa pra ver a atualização automaticamente. Valeuuuu.

REPORT  z_cl_gui_timer.

CLASS lcl_timer DEFINITION DEFERRED .

" tabela Interna
DATA : it_sflight TYPE TABLE OF sflight .

" Objetos
DATA : o_grid    TYPE REF TO cl_gui_alv_grid , " ALV
       o_actio   TYPE REF TO lcl_timer       , " Criação do Evento
       o_timer   TYPE REF TO cl_gui_timer    . " Timer

*----------------------------------------------------------------------*
*       CLASS lcl_receiver DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_timer DEFINITION.
  PUBLIC SECTION.
    METHODS:
      handle_finished FOR EVENT finished OF cl_gui_timer.
ENDCLASS.                    "lcl_receiver DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_timer IMPLEMENTATION.
  METHOD handle_finished.
* Perform que cria/atualiza o tabela
    PERFORM refresh_data .
* Mensagem soh pra ver que esta funcionando.
    MESSAGE s351(btWITH 'Relatório atualizado às ' sy-uzeit.
* Inicia timer.
    CALL METHOD o_timer->run.
  ENDMETHOD.                    "handle_finished
ENDCLASS.                    "lcl_receiver IMPLEMENTATION

*--------------------------------------------------------------------*
*     Start of Selection
*--------------------------------------------------------------------*
START-OF-SELECTION .

* Select soh pra mostrar algo na tela
  PERFORM select_data .



quarta-feira, 9 de maio de 2012

Função - SWI_DURATION_DETERMINE

"  Fala aeeee, vou mostrar hoje uma função usada para retornar a diferença
" em segundos de duas datas e horas, juntamente com uma lógica muito
" interessante usando os segundos para converter em horas e minutos,
" gostaria de agradecer ao Alexandre Almeida por este post, valeuuu.

REPORT  z_swi_duration_determine.

DATA :
  valor TYPE string.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
  p_dini TYPE dats,
  p_dfin TYPE dats,
  p_hini TYPE tims,
  p_hfin TYPE tims
  .

SELECTION-SCREEN END OF BLOCK   b1.

START-OF-SELECTION.

  " Tratativa para calculo de horas entre as datas.
  PERFORM f_tempo_lancamento USING p_dini
                                   p_dfin
                                   p_hini
                                   p_hfin
                          CHANGING valor.

  " Mostra retorno.
  PERFORM f_show USING valor.


segunda-feira, 7 de maio de 2012

Select Dinâmico

  "  Eae vou mostrar hoje um select Dinâmico onde você consegue
" controlar até as condições da tabela que você quer selecionar,
" é só colocar o nome de qualquer tabela e executar pra ver um
" ALV dinâmico, depois volte e alimente os outros campos....
" Ahhhh, pode ocorrer alguns erros pois eu não tratei de propósito
" pra ver vocês se virarem com algumas condições como campo inexistente
" na tabela selecionada ou tabela inexistente ou qualquer outro
" não previsto.... vamo pro código.

REPORT z_select_dinamic.
TYPE-POOLS slis.

* Estruturas
DATA :
  st_fieldcat TYPE slis_fieldcat_alv,
  st_fields TYPE string
  .

* Tabela Interna
DATA :
  it_table    TYPE REF TO data,
  it_fieldcat TYPE slis_t_fieldcat_alv,
  it_fields   TYPE TABLE OF string
  .

* Field-simbols
FIELD-SYMBOLS:
  TYPE STANDARD TABLE.

* Tela de seleção.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
  p_table TYPE dd02l-tabname OBLIGATORY, " Nome da tabela
  p_field TYPE string,                   " Campos separados por espaços
  p_rows  TYPE i,                        " Quantidade de linhas à retornar
  p_where TYPE string                    " Condições do Select ( sem ponto no final )
  .
SELECTION-SCREEN END OF BLOCK   b1.

" Inicio do processo.
START-OF-SELECTION.

BREAK-POINT.

PERFORM : f_select,
          f_fieldcat,
          f_trata_campos,
          f_alv.