Informação fornecida por Marcos N. Rosa.
Field exit de consistência de CPF de Fornecedor
FUNCTION FIELD_EXIT_STCD2_2. *"---------------------------------------------------------------------- *"*"Interface local: *" IMPORTING *" VALUE(INPUT) *" EXPORTING *" VALUE(OUTPUT) *"---------------------------------------------------------------------- ************************************************************************ * Módulo de função: field_exit_stcd2_2. * * Resumo: Validar CPF de fornecedores. * ************************************************************************ DATA: W_LIF LIKE LFA1-LIFNR. OUTPUT = INPUT. ************ Caso de criação de CPF 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 CPF já existe. SELECT * FROM LFA1 CLIENT SPECIFIED UP TO 1 ROWS WHERE MANDT = SY-MANDT AND STCD2 = INPUT. ENDSELECT. * se existe envia msg de erro. IF SY-SUBRC EQ 0 AND NOT INPUT IS INITIAL. MESSAGE E000(Z01) WITH 'CPF de fornecedor ' INPUT. ENDIF. ************ Caso de modificação de CPF 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 CPF. . 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 STCD2 = 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 STCD2 = INPUT. ENDSELECT. IF SY-SUBRC EQ 0 AND NOT INPUT IS INITIAL. MESSAGE E000(Z01) WITH 'CPF de cliente ' INPUT. ENDIF. ENDIF. ENDIF. ENDFUNCTION.