Gatillo para consultar CNPJ en Protheus

Gatilho para consultar CNPJ en el registro de clientes o proveedores en Protheus en ADVPL utilizando la API de CNPJ.ws con datos de la Receita Federal, Sintegra y Suframa.

Registrar clientes o proveedores en Protheus puede ser más fácil si consultamos el CNPJ en la API del CNPJ.ws

Con la integración podemos usar la API para consultar la dirección, inscripción estatal, situación cadastral, CNAE y muchas otras informaciones que pueden ser importantes en el momento del registro del cliente o proveedor.

Ya creamos una clase en ADVPL para integrar Protheus al CNPJ.ws en el post: Consultar CNPJ con ADVPL (Protheus).

En este post vamos a usar esta clase ADVPL para desarrollar un gatillo que utilizaremos tanto en el registro de clientes como en el registro de proveedores. Recordando que puedes usar nuestra API gratuita para consultar CNPJ, pero con una limitación de 3 consultas por minuto o puedes adquirir uno de nuestros planes comerciales.

Función getCNPJ

Vamos a comenzar creando una user function que llamaremos en nuestros gatillos. Observa que recibe dos parámetros:

  • cTab: SA1 o SA2, indicando si estamos trabajando con clientes o proveedores

  • cCNPJ: el número del CNPJ

También hicimos un tratamiento usando la función isBlind para el caso de que el gatillo sea llamado vía execauto, sin la interfaz del usuario. Y usamos la función FWMsgRun para que el usuario tenga un retorno visual y no solo una pantalla "congelada" mientras se ejecuta el proceso.

#include 'totvs.ch'

user function getCNPJ(cTab,cCNPJ)
	local aArea:= getArea()
	local cRet := ''

	default cTab := 'SA1'
	default cCNPJ:= ''

	cCNPJ:= allTrim(cCNPJ)

	if !empty(cTab) .and. len(cCNPJ) == 14
		if isBlind()
			cRet:= consulta(cTab,cCNPJ)
		else
			FWMsgRun(,{||cRet:= consulta(cTab,cCNPJ)},'CNPJ.ws','Consultando...')
		endif
	endif

	restArea(aArea)

return cRet

Vamos a crear una función estática que será la responsable de la comunicación con el CNPJ.ws.

Debes revisar bien este código para que se ajuste a tus necesidades en tu empresa, aquí he llenado todos los campos que se me ocurrieron, pero siéntete libre de hacer modificaciones:

Gatilho A1_CGC

Abajo el llenado del gatilho del campo A1_CGC, en él llamamos a la user function u_getcnpj pasando como parámetros a SA1 además del CNPJ:

Gatilho A1_CGC

Gatilho A2_CGC

Abajo el llenado del gatilho del campo A2_CGC, en él llamamos a la user function u_getcnpj pasando como parámetros a SA2 además del CNPJ:

Gatilho A2_CGC

Conclusión

El resultado debe ser como el gif abajo, al digitar el CNPJ el Protheus irá consultar el CNPJ.ws y llenar los campos automáticamente:

Gatilho CNPJ.ws

Puedes consultar los fuentes de este proyecto en GitHub, la clase mencionada está en este repositorio también.

Para saber más sobre nuestros planes y formas de pago accede a CNPJ.ws.

¡Hasta luego!

Última actualización

¿Te fue útil?