Informação fornecida por Marcos N. Rosa.
Field exit de consistência de CNPJ de Fornecedor
FUNCTION FIELD_EXIT_STCD1_2. *"---------------------------------------------------------------------- *"*"Interface local: *" IMPORTING *" VALUE(INPUT) *" EXPORTING *" VALUE(OUTPUT) *"---------------------------------------------------------------------- ************************************************************************ * Módulo de função: field_exit_stcd1_2. * * Resumo: Validar CNPJ de fornecedores. * ************************************************************************ DATA: W_LIF LIKE LFA1-LIFNR. OUTPUT = INPUT. ************ Caso de criação de CNPJ para fornecedores. IF SY-TCODE = 'FK01' OR SY-TCODE = 'M-51' OR SY-TCODE = 'M-52' OR SY-TCODE = 'M-53' OR SY-TCODE = 'M-54' OR SY-TCODE = 'M-56' OR SY-TCODE = 'M-57' OR SY-TCODE = 'M-62' OR SY-TCODE = 'MK01' OR SY-TCODE = 'XK01' OR SY-TCODE = 'M-01' OR SY-TCODE = 'M-02' OR SY-TCODE = 'M-03'. * verifica se CNPJ já existe. SELECT * FROM LFA1 CLIENT SPECIFIED UP TO 1 ROWS WHERE MANDT = SY-MANDT AND STCD1 = INPUT. ENDSELECT. * se existe envia msg de erro. IF SY-SUBRC EQ 0. MESSAGE E000(Z01) WITH 'CNPJ de fornecedor ' INPUT. ENDIF. ************ Caso de modificação de CNPJ para clientes. ELSEIF SY-TCODE = 'FK02' OR SY-TCODE = 'XK02' OR SY-TCODE = 'MK02'. * verifica se o input está relacionado com o cliente, ou seja, se não * houve alteração no CNPJ. . GET PARAMETER ID 'LIF' FIELD W_LIF. SELECT * FROM LFA1 CLIENT SPECIFIED UP TO 1 ROWS WHERE MANDT = SY-MANDT AND LIFNR = W_LIF AND STCD1 = INPUT. ENDSELECT. * se não tiver relacionado com o cliente: se teve alteração. IF SY-SUBRC NE 0. SELECT * FROM LFA1 CLIENT SPECIFIED UP TO 1 ROWS WHERE MANDT = SY-MANDT AND STCD1 = INPUT. ENDSELECT. IF SY-SUBRC EQ 0. MESSAGE E000(Z01) WITH 'CNPJ de cliente ' INPUT. ENDIF. ENDIF. ENDIF. ENDFUNCTION.