MODIFY TABELA INTERNA


O comando MODIFY é usado para realizar modificações e valores já existentes, podendo ser utilizado para altera valores de uma DYNPRO, tabelas standard, tabelas Z e ate mesmo uma tabela interna. Para modificar uma tabela interna usando o comando MODIFY, basta seguinte a seguinte lógica. 

Lógica 1: Uma tabela interna contém 1 ou N campo, em algum momento esta tabela foi carregada por  um SELECT ou qualquer outro tipo de comando que pode carregar uma tabela interna, porém pode acontecer que um dos campos não podem vir dados de uma forma, por exemplo, quando um campo tiver valores negativo este devem se calculados para positivos, ou uma data esta menor do que a desejada, para realizar estas alterações basta usar os comando MODIFY que modifica uma campo ou mais de uma linha por.  Exemplo 1. será carregado em uma tabela interna os dados referentes a contabilidades de FI, este dados será selecionados e carregados na tabelas interna, após a tabela carregada, será verificados o índice atual da tabela onde será modificado o valor do campo BUZEI para 002 para linhas de índice par e 001 para linha de índice impar,  quando o índice for par o campo WEBTR será modificado para SPACE. 

SINTAXE DE MODIFY. 

MODIFY {TABELA_INTERNA} INDEX  {INDICE} TRANSPORTING CAMPO1 … CAMPO N. 

Os campos devem estar separados por espaços, este campos serão os campos que serão modificados na tabelas interna. Lembrando que para controlar o INDEX de uma tabela INTERNA se estiver usando o comando LOOP AT tabela_INTERNA, a variável SY-TABIX contém o índice atual da tabela e os campos a serem alterados deve ser carregados antes do comando. Exemplo:  

DATA: BEGIN OF T_BSIK OCCURS 0,

               BUKRS LIKE BSIK-BUKRS,

               LIFNR LIKE BSIK-LIFNR,

               BELNR LIKE BSIK-BELNR,

               UMSKZ LIKE BSIK-UMSKZ,

               BLART LIKE BSIK-BLART,

               XBLNR LIKE BSIK-XBLNR,

               ZFBDT LIKE BSIK-ZFBDT,

               DMBTR LIKE BSIK-DMBTR,

               DMBE2 LIKE BSIK-DMBE2,

               WRBTR LIKE BSIK-WRBTR,

               BUZEI LIKE BSIK-BUZEI,

               GJAHR LIKE BSIK-GJAHR,

               BLDAT LIKE BSIK-BLDAT,

               SHKZG LIKE BSIK-SHKZG,

               ZBD1T LIKE BSIK-ZBD1T,

         END OF T_BSIK.

  CLEAR: T_BSIK, T_BSIK[].

  SELECT BUKRS LIFNR BELNR UMSKZ BLART XBLNR ZFBDT DMBTR

         DMBE2 WRBTR BUZEI GJAHR BLDAT SHKZG ZBD1T

          FROM BSIK    INTO TABLE T_BSIK

    WHERE LIFNR = ‘0000000111’.

   DATA CHAVE TYPE I VALUE 0.

   LOOP AT T_BSIK.

    IF CHAVE = 0.

       MOVE SPACE TO T_BSIK-WRBTR.

       MOVE ‘002’ TO T_BSIK-BUZEI.

       MODIFY T_BSIK INDEX SY-TABIX TRANSPORTING BUZEI WRBTR.

       CHAVE = 1.

     ELSE.

        MOVE ‘001’ TO T_BSIK-BUZEI.

       MODIFY T_BSIK INDEX SY-TABIX TRANSPORTING BUZEI.

       CHAVE = 0.     ENDIF.     WRITE: / T_BSIK-BUZEI, T_BSIK-WRBTR. 

  ENDLOOP.

Lógica 2: Uma tabela interna contém 1 ou N campo, em algum momento esta tabela foi carregada por  um SELECT ou qualquer outro tipo de comando que pode carregar uma tabela interna, porém pode acontecer que um dos campos não podem vir dados de uma forma, por exemplo, altera todos os valores de dados de uma coluna onde o valor seja positivo ou negativo. Exemplo 2. será carregado em uma tabela interna os dados referentes a contabilidades de FI, este dados será selecionados e carregados na tabelas interna, após a tabela carregada, os campos da coluna referentes ao campo BUZEI quando for 001 alterar todos para 002. 

SINTAXE DE MODIFY. 

MODIFY {TABELA_INTERNA} TRANSPORTING CAMPO ….. CAMPON WHERE  CAMPO  {<, >, <=, >=, =, <>} [  valor ]. 

Os campos devem estar separados por espaços, estes campos serão os campos que serão modificados na tabelas interna. Antes os campos devem ser carregados. 

 DATA: BEGIN OF T_BSIK OCCURS 0,

               BUKRS LIKE BSIK-BUKRS,

               LIFNR LIKE BSIK-LIFNR,

               BELNR LIKE BSIK-BELNR,

               UMSKZ LIKE BSIK-UMSKZ,

               BLART LIKE BSIK-BLART,

               XBLNR LIKE BSIK-XBLNR,

               ZFBDT LIKE BSIK-ZFBDT,

               DMBTR LIKE BSIK-DMBTR,

               DMBE2 LIKE BSIK-DMBE2,

               WRBTR LIKE BSIK-WRBTR,

               BUZEI LIKE BSIK-BUZEI,

               GJAHR LIKE BSIK-GJAHR,

               BLDAT LIKE BSIK-BLDAT,

               SHKZG LIKE BSIK-SHKZG,

               ZBD1T LIKE BSIK-ZBD1T,

         END OF T_BSIK.

  CLEAR: T_BSIK, T_BSIK[].

  SELECT BUKRS LIFNR BELNR UMSKZ BLART XBLNR ZFBDT DMBTR

         DMBE2 WRBTR BUZEI GJAHR BLDAT SHKZG ZBD1T

          FROM BSIK    INTO TABLE T_BSIK

    WHERE LIFNR = ‘0000000111’.

  *//**** Modifica todos os campos ****\\* DE UMA SO VEZ

MOVE ‘002’ TO T_BSIK-BUZEI.

MODIFY T_BSIK TRANSPORTING BUZEI WHERE BUZEI = ‘001’.

  LOOP AT T_BSIK.   

 WRITE / T_BSIK-BUZEI. 

 ENDLOOP.

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

Design a site like this with WordPress.com
Iniciar