Informação fornecida por Marcos N. Rosa.
Field exit de consistência de CPF de Cliente
FUNCTION FIELD_EXIT_STCD2_1. *"---------------------------------------------------------------------- *"*"Interface local: *" IMPORTING *" VALUE(INPUT) *" EXPORTING *" VALUE(OUTPUT) *"---------------------------------------------------------------------- ************************************************************************ * Módulo de função: field_exit_stcd2_1. * * Resumo: Validar CPF de clientes. * ************************************************************************ DATA: W_KUN LIKE KNA1-KUNNR. OUTPUT = INPUT. ************ Caso de criação de CPF para clientes. IF SY-TCODE = 'FD01' OR SY-TCODE = 'V+21' OR SY-TCODE = 'V+22' OR SY-TCODE = 'V+23' OR SY-TCODE = 'V-03' OR SY-TCODE = 'V-04' OR SY-TCODE = 'V-05' OR SY-TCODE = 'V-06' OR SY-TCODE = 'V-07' OR SY-TCODE = 'V-08' OR SY-TCODE = 'V-09' OR SY-TCODE = 'VD01' OR SY-TCODE = 'XD01'. * verifica se CPF já existe. SELECT * FROM KNA1 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 cliente ' INPUT. ENDIF. ************ Caso de modificação de CPF para clientes. ELSEIF SY-TCODE = 'FD02' OR SY-TCODE = 'VD02' OR SY-TCODE = 'VD04' OR SY-TCODE = 'XD02' OR SY-TCODE = 'XD04'. * verifica se o input está relacionado com o cliente, ou seja, se não * houve alteração no CPF. . GET PARAMETER ID 'KUN' FIELD W_KUN. SELECT * FROM KNA1 CLIENT SPECIFIED UP TO 1 ROWS WHERE MANDT = SY-MANDT AND KUNNR = W_KUN AND STCD2 = INPUT. ENDSELECT. * se não tiver relacionado com o cliente: se teve alteração. IF SY-SUBRC NE 0. SELECT * FROM KNA1 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.