terça-feira, 30 de agosto de 2011

Dicionário - Tabela

  *&---------------------------------------------------------------------*
"  Vou mostra agora como fazer uma tabela transparente que são estruturas 
" lógicas que possuem dados com relação direta no banco de dados.
"  Bem espero que vcs jah tenham deduzido isso mas pra faze uma tabela 
" temos que ir na transação Se11...rsrs


 


" É soh escrever o nome da tabela e manda ver ..





"  Irá para uma tela acima onde vc deverá colocar a descrição Breve da 
" tabela, antes de tudo, na primeira aba ( Caracteristicas ) aparecerá
" informações como ultima modificação, pacote que vc colocou o objeto
" ( tabela ) e o idioma Original, 'mais tarde eu mostrarei como eh 
" importante esse negocio de idioma original e suas traduções',
" Já na segunda aba ( Entrega e atualização ) vc terá que informar a 
" Data Browser / Atualiz. VIsão Tabs que é tipo vc autoriza ou naum 
" a criar uma 'View' desta tabela, 'calma aee que eu to fazendo um post 
" sobre isso tb rs', e a classe de entrega que tem essas opções...





" Aba ( campos )....
"  Ahhhh, finalmente a parte onde vc coloca os campos desta tabela, como
" no exemplo abaixo podemos trabalhar como se fosse uma estrutura mas 
" se ficarem atentos tem algumas mudanças como a chave primária e o campo
" 'Mandt' que eh uma obrigação em todas as tabelas onde será informado
" o mandante de acesso e eh sempre chvae primaria, a chave primaria é a 
" informações que diferencia um registro do outro simples né...  Tipo
" Pessoas com o nome Mauro tem um monte, mas o RG identifica e diferencia
" estes Mauro's huahuahuahu, portanto RG eh uma chave primaria...
" Alem de relacionar os campos da tabela com elmentos de dados tb podemos 
" relacioná-los com outras estruturas soh depende da lógica e proposito 
" da tabela, quando o campos tiver relacionado com tabela irá aparecer 
" 3 quadradinhos um du lado do outro no lugar da categoria de dados.



"  Depois na 4ª aba ( Entrs Possiveis / Verificação ) aki vc jah consegue 
" ter uma visão de chave estrangeira, categoria de dados, origem entrada
" possiveis caso o dominio tenha e por falar nele vc consegue visualizar 
" o dominio tb .




" Na 5ª e ultima aba ( campos moeda / quantidade ) vc informa o tabela 
" e campo de referencia de campos co tipo moeda e quantidade ( jah foi
" comentado isso na criação da estrutura ).
"  A gente não pode esquece de uma coisa, na verdade se vc esquecer vc  
" não conseguirá ativar rsrsr portanto eh muito importante,...
"  Nos botões la encima existe três de extrema importancia que são os 
" configurações técnicas, Índices... e Estruturas append..., sobre os 
" dois ultimos iremos falar aparte, iremos falar soh das configurações
" técnicas clicando lah irá aparecer a tela abaixo onde irá ser pedido
" duas informações muito importante que seria categoria de dados onde 
" vc informa quais são os tipos de dados que terá esta tabela e o tamanho
" que essa tabela vai ter ( tomem bastante cuidado quando vcs forem fazer
" copia de tabelas de SAP de versões antigas pois o foi mudado as qtde 
" padroes ) nesta tela vc só salva e jah era, depois volta (f3) e ativa
" o sua tabela, talvez a apareça uma 'warning' sobre a tabela mas 
" Provavelmente será sobre a categoria de ampliação que estah no menu
" 'Suplementos'...


"  Tabela transparente eh um assunto muito grande portanto estarei postando
" mais coisas sobre isso. qualquer dúvida estou aeee. t+.

quinta-feira, 25 de agosto de 2011

Dica para um ABAPerfeito. rsrs.

SDN + F1 + SAPDOCU + /H = Programador ABAP Ideal.

sexta-feira, 12 de agosto de 2011

Debugando janela Pop-up

  "  Tava dando uma olhada numa transação que a tela dela eh um Pop-Up e
" eu precisava 'debugar' pra pegar o problema na hora já pensei em um
" arquivinho que em txt que roda pela net pra conseguir debugar essas
" coisas, mas meu chefe muito sábio, me ensinou como fazer esse arquivo
" pelo SAP, aki vão as instruções:
" 1º : entre no SAP e aperte no botão 'Criar uma ligação', ^conforme 
" abaixo.




"  Depois irá aparecer a tela abaixo, prencha igual, prestando bastante 
" atenção no campos 'Tipo', 'Comando' e 'local'.




"  Pronto agora vc não precisa mais busca na internet este arquivo .txt
" se vc quiser vc pode abrir este arquivo SAP num bloco de notas pra 
" ver o codigo fonte. Opa tava quase esquecendo rsrsrs, pra vc usa isto
"  é só vc arrastar o arquivo criado pra 'Coisa' q vc quer Debugar.

quarta-feira, 10 de agosto de 2011

Dicionário - Estruturas

  *&---------------------------------------------------------------------*
"  Agora vamos pro próximo passo que será fazer uma estrutura, a estru-
" tura é um conjunto de campos onde cada campo é definido por elemento
" de dados, as estruturas não armazenam dados, ele funciona como um
" header, recebendo a linha que vc estah trabalhando e soh, portanto eh
" muito importante na codificação, sem conta q pode ser usado na criação
" do ALV.
"  Primeiro entre na 'SE11' e digite o nome da estrutura na 'Categoria de
" dados' e aperte 'Criar'.


 


"  Irá aparecer uma caixinha, selecione 'Estrutura'.



"  Aparecerá uma tela igual a de baixo preencha a 'Descrição breve', no
" campo 'Componente' fica o nome do campo da estrutura e no campo
" 'tipo componente' fica o elemento de dados que define o campo da estru-
" tura.



" Tudo isso na aba 'Componentes', mas tb existem as abas...
" 'Caracteristicas' - fica as informações como ultima modificação, pacote
" e idioma original.
" 'Entradas possiveis/verificação' - aki vc trabalha com chaves extrangeiras
" e tb consegue visualizar o dominio (caso esteja usando) de cada campo da
" sua estrutura.





" 'Campo moeda/quantidade' - onde caso o campo seja do tipo 'Curr' vc terá
" que referencia este campo com um campo 'cury' da sua estrutura ou de 
" outra tabela a 'maioria das vezes o campo eh 'TCURC-WAERS' conforme acima.
"  Agora e só salvar, verificar os posiveis erros e Ativar.
" Obs.: Preste bastante atenção no log se aparecer, provavelmente será algo
" sobre Categoria, veja isso em /suplementos/categoria de ampliação.

segunda-feira, 8 de agosto de 2011

Textos dentro do Programa

" Todo o texto que ficar verde durante a codificação ( entre aspas simples ), Escrever em MAIUSCULO."

terça-feira, 2 de agosto de 2011

Dicionário - Elemento de dados


  *&---------------------------------------------------------------------*
"  Agora vamos pra segunda fase que eh o elemento de dados que eh com 
" quem vc consegue relacionar num programa e este mesmo elemento de 
" dados depende de um dominio.
" se naum lembra oq é dominio entre aki :
" http://abapjuniores.blogspot.com/2011/07/dicionario-dominio.html
"  Vamos começar, primeiro entre no 'se11' e clique no Options
" 'Categoria de Dados' e escreva o nome do elemento de dados que vc 
" quer criar.


"  Agora é soh clicar no 'Criar', aparecerá uma janela. Clique em 
" 'Elementos de dados' e dê 'OK'.



" Irá aparecer esta tela.



"  Nesta tela é necessário a inclusão da descrição do elemento é a categoria
" de dados, é recomendável a inclusão da denominação do campo, tanto que se
" ativar sem denominação o SAP avisa.



"  Na categoria de dados existem categoria elementar e tipo de referencia,
" vamos trabalhar com o categoria elementar onde vc pode lançar por 'Dominio'
" colocando o dominio standard ou 'z' mesmo e assim o elemento de dados 
" assume a categoria de dados do dominio.
"  Mas tem tb o tipo incorporado onde vc lança direto qual é a 
" categoria de dados sem referenciar a qualquer 'Dominio'.

segunda-feira, 1 de agosto de 2011

ALV - 'Status gui' e 'user command'

  REPORT z_sts_ucomm_alv.

*&---------------------------------------------------------------------*
"  Dando continuação a como faze um ALV básico agora estarei passando como
" colocar botões e colocar ações neles, pra faze isso usaremos o StatusGui
" e o user command a maioria do código desde programa já foi passado menos
" os forms 'z_pf_status_001' e o 'z_user_command', portanto vão pra esses
" forms.

" Include contendo todas as declarações default.
"http://abapjuniores.blogspot.com/2011/07/include-zincldeclaradefault.html
INCLUDE z_incl_declara_default.

" Include contendo os forms da seleção de dados default.
"http://abapjuniores.blogspot.com/2011/07/include-zinclfeeddefault.html
INCLUDE z_incl_feed_default.

" Declarações ...
" type-pools ....
TYPE-POOLS : slis
.
" Tabelas internas ....
DATA : it_fieldcat TYPE slis_t_fieldcat_alv
      .
" Estruturas ....
DATA : st_fieldcat TYPE slis_fieldcat_alv,
" Aqui está a estrutura que irá informar como deverá estar o layout.
       st_layout   TYPE slis_layout_alv
       .

" Constantes...
DATA : c_x TYPE c VALUE 'X'.

" Start of selection .....

START-OF-SELECTION.

  PERFORM : z_selecao, " Form do Include de seleção default.
            z_all_alv
          .

*&---------------------------------------------------------------------*
*&      Form  Z_ALL_ALV
*&---------------------------------------------------------------------*
FORM z_all_alv .

  PERFORM : z_fieldcat,  " Cria o fieldcat para o ALV
            z_layout,    " Cria o Layout do ALV.
            z_alv        " Cria o ALV
           .

ENDFORM.                    " Z_ALL_ALV

*&---------------------------------------------------------------------*
*&      Form  Z_FIELDCAT
*&---------------------------------------------------------------------*
FORM z_fieldcat .
  PERFORM z_feed_fieldcat USING :
      "Fname  Seltext                 check  Edit  Col_pos
      'CHECK' 'Check'                 'X'    'X'   0,
      'MATNR' 'Material'              ' '    ' '   1,
      'ERSDA' 'Data de criação'       ' '    ' '   2,
      'MAKTX' 'Descrição'             ' '    ' '   3,
      'WERKS' 'Centro'                ' '    ' '   4,
      'LGORT' 'Depósito'              ' '    ' '   5,
      'PSTAT' 'Status de atualização' ' '    ' '   6
              .

ENDFORM.                    " Z_FIELDCAT

*&---------------------------------------------------------------------*
*&      Form  Z_FEED_FIELDCAT
*&---------------------------------------------------------------------*
FORM z_feed_fieldcat  USING    fname
                               seltext
                               check
                               edit
                               col_pos .

  st_fieldcat-fieldname   = fname.
  st_fieldcat-seltext_m   = seltext.
  st_fieldcat-checkbox    = check.
  st_fieldcat-edit        = edit.
  st_fieldcat-col_pos     = col_pos.

  APPEND st_fieldcat TO it_fieldcat.
  CLEAR  st_fieldcat.


ENDFORM.                    " Z_FEED_FIELDCAT

*&---------------------------------------------------------------------*
*&      Form  Z_LAYOUT
*&---------------------------------------------------------------------*
FORM z_layout .
  " mexe no tamanho da coluna conforme a qtde de caracter da Informação.
  st_layout-colwidth_optimize = c_x.
  " huahuahuahua, simples,,... deixa zebrado.
  st_layout-zebra             = c_x.


ENDFORM.                    " Z_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  z_pf_status_001
*&---------------------------------------------------------------------*
"  Aki começa o eskema primeiramente vc deve faze um status gui...
"  se naum lembra entre no link abaixo...
" http://abapjuniores.blogspot.com/2011/07/fazendo-um-statusgui.html
"  agora que lembrou faça e 'seta' ele num form que pode ser qualquer
" nome mas por favor use um padrão rsrs.
"  Vc deve declarar esta tabela 'pf_tab' pois internamente para executar
" este form o standard pedirá uma tabela como importação.

FORM z_pf_status_001 USING pf_tab TYPE slis_t_extab.
"  'Setando' o status gui com um form.
  SET PF-STATUS 'Z_STS_001'.
" Estamos setando pq esse form será usado como parametro dentro do ALV
" e a Function para criar o ALV não consegue ver um status gui mas
" consegue ver um form.
ENDFORM.                    "z_pf_status_001

*&---------------------------------------------------------------------*
*&      Form  z_user_command
*&---------------------------------------------------------------------*
"  Esse form pedi uma variavel 'r_ucomm' para informar qual botão foi
" apertado e a estrutura 'rs_selfield' que retorna informações da tela,
" neste form estaremos somente tomando ação quando o botão Execute for
" apertado, com essa logica vc conseguirá criar botões e colocar a ação
" que quiser conforme a necessidade.
FORM z_user_command USING r_ucomm     LIKE sy-ucomm
                          rs_selfield TYPE slis_selfield.

  CASE r_ucomm.
    WHEN '&EXEC'.
" Caso o variavel retorne o botão '&exec' faça ...
      MESSAGE 'Botão execute foi pressionado.' TYPE 'I'.
  ENDCASE.

ENDFORM.                    "z_user_command
*&---------------------------------------------------------------------*
*&      Form  Z_ALV
*&---------------------------------------------------------------------*
FORM z_alv .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
    i_callback_program                = sy-repid

" Declare o form e não o status gui.
    i_callback_pf_status_set          = 'Z_PF_STATUS_001'
    i_callback_user_command           = 'Z_USER_COMMAND'

*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
    is_layout                         = st_layout
    it_fieldcat                       = it_fieldcat
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
    i_save                            = c_x
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = it_outtab
   EXCEPTIONS
     program_error                     = 1
     OTHERS                            = 2
            .
  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.                    " Z_ALV