Criando objetos MatchCode


Este artigo descreve a utilização de objetos matchcode, dentro de uma tela de report.

Tipo: PDF

Baixar: Criando um objeto MatchCode

Alterando Valores de uma Tabela Z ou Standard


Este tutorial demonstrar com alterar valores de uma tabela STANDARD ou até Mesmo Z. lembrando que todas as tabelas que são criadas no SAP contem uma Manutenção de tabela, porem neste tutorial será exemplificado outras formas de alterar os valores destas tabelas.

Tipo: PDF

Baixar: Alterando Valores da Tabela Z ou Standard

Criando Usuario no R/3


Este artigo descreve a criação e alteração de usuário dentro do R/3, este artigo não cobre os assuntos a respeitos de permissão. Somente descreve a criação de usuário inseridos os dados necessário para o usuário logar no sistema.

Tipo do Arquivo: PDF

Baixar: criando-um-usuario.pdf

CLASSE CL_GUI_FRONTEND_SERVICES “SERVIÇOS”


Este artigo demonstrar uma introdução de Orientação a Objetos para demonstrar a classe CL_GUI_FRONTEND_SERVICES. Está classe é responsável por todos os serviços que envolvem o FrontEnd com o sistema operacional, serviços que dizer recursos disponíveis no sistema operacional tais como: Criar, Deletar, Copiar, Verificar a Existência, de arquivos ou Diretórios, Coletar informações de versões de arquivos do programas, acessar informações de Redes como IP, HostName, Versão do sistema operacional

(Plataforma do SO (WINDOWS, LINUX)), Exultar programas externos do SAP, tais como comandos do SO. Será apresentado os principais métodos desta classe, demonstrando o que cada métodos faz e como utilizá-los.

Tipo: PDF

Baixar: CL_GUI_FRONTEND_SERVICES

COLLECT


O comando collect é usado para fazer a compressão dos dados (idem o comando APPEND), tendo como principal diferença que não permite ter duas chaves para valores diferentes, collect do inglês para o português é recolha, significando recolher ao encontrar um dado igual. O  dado igual significa uma chave para a tabela interna, podendo ser qualquer tipo de dado, por default o primeiro campo da tabela interna é a chave primaria da tabela Entendendo o que o collect faz realmente: Exemplo: 

DATA: BEGIN OF T_COLLECT OCCURS 0,

               NOME(20)       TYPE C, 

              DESCRICAO(20) TYPE C,  

             VALOR          TYPE I,  

      END OF T_COLLECT. 

DATA  WA_T_COLLECT LIKE T_COLLECT.

Temos a tabela T_COLLECT contendo três campos, quando carregamos os valores para a tabela primeiro é carregado uma HEADER TABLE ou uma WORK AREA, para depois anexar estes valores para a tabela interna. Ex.:Carregando a HEADER TABLE  

       T_COLLECT-NOME      = ‘UDERSON’. 

       T_COLLECT-DESCRICAO = ‘TESTE 1 DO COLLECT’.

       T_COLLECT-VALOR     = 100.

 Carregando a WORK AREA: 

        WA_T_COLLECT-NOME      = ”.

        WA_T_COLLECT-DESCRICAO = ‘TESTE 3 DO COLLECT’.

        WA_T_COLLECT-VALOR     =  300. 

 Após carregar a HEADER TABLE ou a WORK AREA, é necessário anexar os valores para a tabela interna, por dedução usamos o comando APPEND, que transfere os dados da HEADER ou da WORK AREA para tabela interna, criando a cada APPEND uma nova linha de dados, o comando COLLECT como já citado faz a mesma coisa, porem com uma diferença, quando a chave que está na HEADER ou na WORK AREA é encontrada ja inserida na tabela interna o comando COLLECT verifica todos os campos numéricos, somando cada campo relativo. Então o que realmente o comando COLLECT faz é  encontrar valores chaves iguais e somar os campos numéricos, quando a chave é igual porem os campos textos são diferentes ele cria uma nova linha de valores, onde as somas dos valores numéricos não são realizadas por conter dados textos diferentes. Carregando a HEADER TABLE anexando os valores conforme a explicação.

         T_COLLECT-NOME      = ‘UDERSON’.

         T_COLLECT-DESCRICAO = ‘TESTE 1 DO COLLECT’. 

         T_COLLECT-VALOR     = 100.

         COLLECT T_COLLECT.

  Carregando a WORK AREA e transferindo os valores para a tabela interna confoem a explicação : 

        WA_T_COLLECT-NOME      = ”.

        WA_T_COLLECT-DESCRICAO = ‘TESTE 3 DO COLLECT’.

        WA_T_COLLECT-VALOR     =  300.

       COLLECT WA_T_COLLECT INTO T_COLLECT. 

Ob.: Quando os valores são transferidos apartir de uma WORK AREA, a HEADER da TABELA INTERNA não é carregada.    

Exemplo:

REPORT  Z_SINTAXE_GERAL.

 DATA: BEGIN OF T_COLLECT OCCURS 0, 

              NOME(20)       TYPE C, 

              DESCRICAO(20)  TYPE C,

               VALOR          TYPE I, 

              TOTAL          TYPE I,

        END OF T_COLLECT. 

DATA  WA_T_COLLECT LIKE T_COLLECT.

 DATA: CONT TYPE I VALUE 1.

 T_COLLECT-NOME      = ‘UDERSON’.

T_COLLECT-DESCRICAO = ‘TESTE 1 DO COLLECT’.

T_COLLECT-VALOR     = 100.

T_COLLECT-TOTAL     = 200.

COLLECT T_COLLECT.

T_COLLECT-NOME      = ‘LEANDRO’. 

T_COLLECT-DESCRICAO = ‘TESTE 2 DO COLLECT’.

T_COLLECT-VALOR     = 1000.

T_COLLECT-TOTAL     = 200.

COLLECT T_COLLECT.

T_COLLECT-NOME      = ‘UDERSON’.

T_COLLECT-DESCRICAO = ‘TESTE 1 DO COLLECT’.

T_COLLECT-VALOR     = 400.

T_COLLECT-TOTAL     = 200.

COLLECT T_COLLECT.

T_COLLECT-NOME      = ‘LEANDRO’.

T_COLLECT-DESCRICAO = ‘TESTE 2 DO COLLECT’.

T_COLLECT-VALOR     = 1300.

T_COLLECT-TOTAL     = 200.

COLLECT T_COLLECT

T_COLLECT-NOME      = ‘GUILHERME’.

T_COLLECT-DESCRICAO = ‘TESTE 2 DO COLLECT’.

T_COLLECT-VALOR     =  300. 

T_COLLECT-TOTAL     = 200. 

COLLECT T_COLLECT.

WA_T_COLLECT-NOME      = ”. 

WA_T_COLLECT-DESCRICAO = ‘TESTE 3 DO COLLECT’. 

WA_T_COLLECT-VALOR     =  300. 

WA_T_COLLECT-TOTAL     = 200. 

COLLECT WA_T_COLLECT INTO T_COLLECT.

WA_T_COLLECT-NOME      = ”.

W_T_COLLECT-DESCRICAO = ‘TESTE 3 DO COLLECT’. 

WA_T_COLLECT-VALOR     =  300.

WA_T_COLLECT-TOTAL     = 200. 

COLLECT WA_T_COLLECT INTO T_COLLECT.

WA_T_COLLECT-NOME      = ”. 

WA_T_COLLECT-DESCRICAO = ‘TESTE 3 DO COLLECT’. 

WA_T_COLLECT-VALOR     =  300. 

WA_T_COLLECT-TOTAL     = 200. 

COLLECT WA_T_COLLECT INTO T_COLLECT.

LOOP AT T_COLLECT. 

   WRITE: ‘NOME: ‘, T_COLLECT-NOME, ‘ DESCRIÇÃO: ‘,  T_COLLECT-DESCRICAO, ‘ VALOR: ‘, T_COLLECT-VALOR, ‘TOTAL:’, T_COLLECT-TOTAL.

     SKIP. 

ENDLOOP.

T_COLLECT-NOME      = ‘UDERSON’. 

T_COLLECT-DESCRICAO = ‘TESTE 1 DO COLLECT’. 

T_COLLECT-VALOR     = 100. 

T_COLLECT-TOTAL     = 200.

APPEND T_COLLECT.

T_COLLECT-NOME      = ‘LEANDRO’. 

T_COLLECT-DESCRICAO = ‘TESTE 2 DO COLLECT’. 

T_COLLECT-VALOR     = 1000. 

T_COLLECT-TOTAL     = 200.

APPEND T_COLLECT.

T_COLLECT-NOME      = ‘UDERSON’. 

T_COLLECT-DESCRICAO = ‘TESTE 1 DO COLLECT’. 

T_COLLECT-VALOR     = 400. 

T_COLLECT-TOTAL     = 200.

APPEND T_COLLECT.

T_COLLECT-NOME      = ‘LEANDRO’. 

T_COLLECT-DESCRICAO = ‘TESTE 2 DO COLLECT’. 

T_COLLECT-VALOR     = 1300. 

T_COLLECT-TOTAL     = 200.

APPEND T_COLLECT.

T_COLLECT-NOME      = ‘GUILHERME’. 

T_COLLECT-DESCRICAO = ‘TESTE 2 DO COLLECT’. 

T_COLLECT-VALOR     =  300. 

T_COLLECT-TOTAL     = 200.

APPEND T_COLLECT.

LOOP AT T_COLLECT.

    IF ( SY-TABIX > 4 ). 

    IF ( CONT = 1 ).

        ULINE. 

    ENDIF. 

WRITE: ‘NOME: ‘, T_COLLECT-NOME, ‘ DESCRIÇÃO: ‘,  T_COLLECT-DESCRICAO, ‘ VALOR: ‘, T_COLLECT-VALOR, ‘TOTAL:’, T_COLLECT-TOTAL. 

SKIP. 

CONT = CONT + 1. 

ENDIF. 

ENDLOOP. 

Manipulação de dados


 O abap é uma fonte rica, contendo ferramentas para trabalhar com manipulação de dados, existe diversa ferramentas, para manipulação, será descritos algumas  funcionalidades e suas sintaxes: 

Trocando palavras, textos ou frases:

Para exemplificar, iremos fazer a troca de um (.) ponto por uma (,) vírgula, onde pode-se usar o comando TRANSLATE, ficando sua sintaxe:

TRASNLATE VARIAVEL USING   . ,’, a troca é feita através da ordem….

Devido o ponto (.), estar antes da vrigula (,) o comando entende que é para fazer a troca do ponto pela vírgula.

O comando translate faz diversos tipos de trocas de textos dentro de um texto, este texto não necessita ser uma variável do tipo c ou string pode ser qualquer tipo de dado, desde que a troca seja feita com valores reais dos tipos. (Exemplo um tipo i somente aceita trocas por valores numericos)

Uma outra opção é o comando replace, que tem como finalidade a mesma do comando translate, sua sintaxe:

 TRANSLATE abap TO UPPER CASE. Transforma a palavra abap para MAIUSCULO “ABAP” 

REPLACE ‘texto a ser alterado no texto’ IN variável WITH ‘texto que irá substituir’.

Ex.:

 data: v_valor type string value ‘50.0000’. replace ‘.’ in v_valor with ‘,’. 

Trocando o ponto pela vírgula, observe que está sintaxe somente troca a primeira ocorrência, neste exemplo se tivéssemos mais de uma virgula somente a primeira virgula seria trocada.

Para que todas as ocorrências encontradas no textos seja trocanda é necesario utilizar a seguinte sintaxe do replace:

REPLACE ALL OCCORRENCES OF ‘texto a ser alterado no texto’ IN variável WITH ‘texto que irá substituir’.

DATA: v_string type string value ‘Abap é uma linguagem muito facil’. 

DATA: text TYPE STRING.text = ‘abcdefgh’. REPLACE ‘d’ IN text WITH ‘XXXX’.

REPLACE ALL OCCURRENCES OF ‘a’ IN v_string WITH ‘-‘. 

Retirando caracteres de um texto.

Para retira zeros (00000), a esquerda pode-se usar os comandos PACK juntamente do comando CONDENSE, ou o comando SHITF.

Sintaxe do comando SHIFT:

 DATA: variável type p value ‘0000202030’,             vari_zero type c value ‘0’. SHITF variável LEFT DELEATING LEADIND  vari_zero. 

Onde a variável “vari_zero”, pode ser trocada para qualquer caracter, inclusice o espaço, lembrando que o caractere espaço pode ser trocado pelo comando SPACE.

O comando SHIFT permite retirar os zeros a direita, onde é somente trocar a posição LEFT por RIGHT, com este comando é possível retirar qualquer dado das extremidades.

O camando  SHIFT, permite fazer  a troca de txto em forma circular,

 DATA: ALPHA1(11) TYPE C VALUE ‘ABCDEFGHIJ’,     ALPHA2     TYPE STRING.

ALPHA2 = ALPHA1.    

DO. 

     IF SY-INDEX = 12.  

         EXIT.     

     ENDIF. 

       SHIFT ALPHA1 CIRCULAR. 

      SHIFT ALPHA2 CIRCULAR.

    ENDDO.

O comando Pack serve para retira os 0 (zeros) a esquerda de uma variável, porem existe um problema, ele troca os 0s (zeros ou zero), por espaços, isso faz com que uma variável, por exemplo: data: v_esp_zero(10) type c value ‘0000095678’. Caso o comando seja usado nesta variável, ela ficará assim “      95768”, para resolver este problema existe o comando CONDENSE ou o comando SHIFT que retira todos os espaços de uma variável.

Sintaxe do Pack

PACK variavel_com_zeros TO variavel_sem_zero.

Sintaxe do condense:

CONDENSE variavel_retira_espaço.

  Exe.:

data: v_esp_zero(10) type c value ‘0000095678’

         v_esp_sem_sero(10) type c.

         pack  v_esp_zero to  v_esp_sem_sero.  >> ficando        95678’

         condense v_esp_sem_sero.  >> ficando  ‘95678’.

  Pesquisa em Strings (Textos) 

O comando  SEARCH , procura determinadas ocorrências dentro de um textos.

Existe diversa sintaxe, vejamos as mais utilizadas:

SEARCH   TEXTO FOR ‘PALAVRA/SILABA/FRASE’ AND MARK.

Esta sintaxe retorna a variável de sistema sy-subrc igual a 0 (zero), caso o texto foi encontrado, e no texto transfere para maiúsculo a parte procurada estiver em minúsculo ou transfere para minúsculo caso a parte procurada estiver em maiúsculo.

 Exemplo:Data: v_texto type string value ‘Uderson Luis é o autor deste tutorial’. 

SEARCH v_texto for ‘fato’ AND MARK.      

if sy-subrc = 0. 

    write: ‘Encontrou’, v_texto.    

 else.         

      write: ‘não encontrou’. 

 endif. 

Como a palavra procurada existe no texto será impresso a FRASE: Encontrou UDERSON Luis é o autor deste tutorial   

SEARCH   TEXTO FOR ‘palavra-abraviada’ ABBREVIATED.

Esta sintaxe retorna a variável de sistema sy-subrc igual a 0 (zero), caso o texto foi encontrado,  ela verificará se existe uma palavra que tenha está abraviação.

  Data: frase(50) type c value ‘Alaska Texas e California’.

 SEARCH FRASE FOR ‘CLFRN’ ABBREVIATED.

if sy-subrc = 0. 

    write: ‘Encontrou’, v_textoelse.   

  write: ‘não encontrou’.

endif.

Operadores Lógicos


Operadores Lógicos 

Operadores lógicos são usados, para fazer condições, tais condições podem ser:

 

While  …. EndWhile,  If  ….  EndIf,   Do  ….  EndDo. Loop …. EndLoop.

 Operadores                                                               Operador 

EQ                              Igual                                        =

NE                              Diferente                                 <>      ><

GT                              Maior que                               >         

GE                              Maior igual a                           >=      =>

LT                               Menor que                               <                    

LE                               Menor igual a                           <=      =<

BEETWEN                 Intervalo                                 

IS INITIAL                 É vazio

 

Exemplo:

 

IF 3 < 4.

    Write: ‘3 é menor que 4’.

END

 

IF 4 > 3.

    Write: ‘4 é maior que 4’.

END  IF 4 = 4.    Write: ‘4 igual a 4’.END  While cont <> 10.          Add 1 to cont.

EndWhile.

Criando uma Tabela Z Com elementos de Dados


Este artigo tem como finalidade exemplificar o Maximo o entendimento e criação de uma tabela z. Este artigo é voltado a abap iniciantes e abap que algum tempo não faz a criação de tabelas. 

Tipo Arquivo: PFD  

Baixar:                     Criando uma tabela Z com elementos de dados

Design a site like this with WordPress.com
Iniciar