quinta-feira, 12 de setembro de 2013

GGB1 GGB0 PROGRAMA RGUGBR00

Regras de validação

 

Tentar utilizar, se possível, ao invés de Field/User Exit para Validação/Substituição, as Regras de Validação (transação GGB0/OB28) ou as Regras de Substituição (transação GGB1/OBBH) — a transação GGB4 remete a ambas regras.

 

http://www.youtube.com/watch?v=ge2Zl5d7ak0

 

 

 

Após associar a etapa a nova regra e super importante

RGUGBR00

 

Para modificação de DIV a regra devera ser colocada no Cabeçalho do documento

 

Conforme

 

*---------------------------------------------------------------------*

*       FORM ZXXX - VALIDAÇÃO DE DIVISÃO                              *

*---------------------------------------------------------------------*

* Modificar o campo divisão na conta de diferença de preço quando

* ocorrer o movimento de transferência de material

*---------------------------------------------------------------------*

FORM z013 CHANGING bool_data TYPE gb002_015.

 

  FIELD-SYMBOLS: <fs_bwart>, "Tipo de movimento

                 <fs_matnr>, "Material

                 <fs_umwrk>. "Centro receptor

 

  DATA: vc_bwart LIKE mseg-bwart,

        vc_matnr LIKE mara-matnr,

        vc_spart LIKE mara-spart,

        vc_gsber LIKE v134g-gsber,

        vc_umwrk LIKE mseg-umwrk.

 

* Recuperando o TIPO DE MOVIMENTO

  ASSIGN ('(SAPMM07M)RM07M-BWARTWA') TO <fs_bwart>.

  IF <fs_bwart> IS ASSIGNED.

    vc_bwart = <fs_bwart>.

  ENDIF.

 

* Recuperando o CENTRO RECEPTOR

  ASSIGN ('(SAPMM07M)MSEGK-UMWRK') TO <fs_umwrk>.

  IF <fs_umwrk> IS ASSIGNED.

    vc_umwrk = <fs_umwrk>.

  ENDIF.

 

* Para todos os registros contidos na tab. recebida na chamada do FORM, faremos...

  LOOP AT bool_data-bseg INTO bseg.

 

*   Se BSEG-HKONT = '0004118001' e SY-TCODE = 'MB1B' e Tipo movimento (MSEG-BWART - tela da MB1B) = 'ZXX' ou 'ZX1' ou 'ZX2' ou 'ZX3'

    IF ( bseg-hkont = '0004118001' AND

         sy-tcode   = 'MB1B'      AND

        ( vc_bwart = 'ZXX' OR

          vc_bwart = 'ZX1' OR

          vc_bwart = 'ZX2' OR

          vc_bwart = 'ZX3' ) ).

 

      SELECT SINGLE gsber

      INTO vc_gsber

      FROM v134g

      WHERE werks = vc_umwrk

        AND spart eq '10'. "vc_spart.

 

      bseg-gsber = vc_gsber .

 

      MODIFY bool_data-bseg FROM bseg.

 

    ENDIF.

 

  ENDLOOP.

 

Nenhum comentário:

Postar um comentário