Árvore de páginas

Produto:

TOTVS Automação Fiscal

Versões:

12.1.17+

Este documento tem o objetivo de fornecer informações para utilização do Web Service REST, para SETUP automático do TOTVS Automação Fiscal.

Para mais detalhes sobre o conceito de um serviços REST clique aqui.

Para mais detalhes sobre serviços REST na arquitetura Protheus clique aqui.


Definição do Serviço

Nome: TAFSETUP

Objetivo: Enviar ao TAF as informações necessários para o SETUP do ambiente de forma a configurar o ambiente automaticamente e deixá-lo totalmente operacional.

Métodos: POST

Controle timeout: Para melhor sincronismo entre as aplicações, o serviço de SETUP possui um controle de processamento de 50 empresas por requisição; ao atingir essa limitação, o resposta do POST contém as empresas que foram processadas para que a origem as trate, antes de uma nova solicitação com as empresas restantes; assim deve se repetir até que todas as empresas sejam processadas. 


Configurações do Serviço

A  Configuração do serviço REST está documentada  no link Configuração REST SERVER - Protheus.

Estas parametrizações estão localizadas fisicamente no arquivo appserver.ini da pasta de instalação "[...]\BIN\APP"

Importante

Na seção HTTPURI, a chave PrepareIn deve ser comentada.

Segue exemplo de configuração do WS REST para utilização no modulo TAF:

[HTTPV11]
SOCKETS=HTTPREST
ENABLE=1

[HTTPREST]
Port=8080
URIs=HTTPURI
Security=0

[HTTPURI]
URL=/rest
Instances=1,1
CORSEnable=1
AllowOrigin=*

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=P12

[TAF_CFGJOB]
Main=TAF_CFGJOB
Instances=1,1 **
PrepareIn=T1 *
nRefreshRate=50
ENVIRONMENT=P12


[OnStart]
JOBS=HTTPJOB,TAF_CFGJOB
RefreshRate=120


*A chave PrepareIn deve conter o código do Grupo de Empresas(sigamat.emp/syscompany) utilizado no modulo TAF, abaixo exemplos configurações possíveis para as mesmas:

  • Utilizando o código do grupo; Ex: PrepareIn=01
  • Utilizando diversos códigos de grupos; Ex: PrepareIn=01,02,99 .
  • Utilizando a palavra ALL, neste caso o server vai considerar todos os grupos contidos no arquivo de empresas do Protheus/TAF; Ex PrepareIn=ALL

** A chave Instances na seção TAF_CFGJOB é opcional, se a mesma não existir o sistema ira considerar a quantidade de threads declarada na chave instances da seção HTTPURI.

Obs: O servidor cria Threads especificas para cada grupo de empresas de acordo com a configuração da chave Instances, por isso essa configuração deve ser realizada considerando a capacidade computacional do servidor.


Fonte: REST com ERP Microsiga Protheus




Definição dos métodos

POST

Descrição do Método: O método POST segue o conceito do próprio método em qualquer outro tipo de serviço REST, devendo seu conteúdo ser enviado no corpo da mensagem (body) no formato json.

O objetivo do método é enviar informações que devem ser gravadas nos controles do TAF, permitindo que os dados sejam usados para concluir a configuração do ambiente.

Estrutura da mensagem enviada no POST (Request):
Exemplo POST:
{"empresas": [
		{
			"CODEMPRESA": "",- Código único da empresa, character(4) - Obrigatório
			"CODFILIAL": "",	- Código único da filial, Character(6) - Obrigatório
			"M0_FILIAL": "",	- Descrição da Filial, Character(40) - Obrigatório
			"M0_NOME": "",		- Nome da Empresa, Character(40) - Obrigatório
			"M0_NOMECOM": "",	- Razao Social Empresa, Character(60) - Opcional - Se não enviado, considera o mesmo conteúdo do atributo M0_NOME
			"M0_ENDCOB": "",	- Endereço Cobrança, Character(60) - Opcional
			"M0_CIDCOB": "",	- Cidade Cobrança, Character(60) - Opcional
			"M0_ESTCOB": "",	- Estado Cobrança, Character(2) - Opcional
			"M0_CEPCOB": "",	- CEP Cobrança, Character(8) - Opcional
			"M0_BAIRCOB": "",	- Bairro Cobrança, Character(35) - Opcional
			"M0_COMPCOB": "",	- Complemento Cobrança, Character(25) - Opcional
			"M0_CODMUN": "",	- Codigo Municipio, Character(7) - Obrigatório 
			"M0_ENDENT": "",	- Endereço Entrega, Character(60) - Opcional
			"M0_CIDENT": "",	- Cidade Entrega, Character(60) - Opcional
			"M0_ESTENT": "",	- Estado Entrega, Character(2) 
			"M0_CEPENT": "",	- CEP Entrega, Character(8) - Opcional
			"M0_BAIRENT": "",	- Bairro Entrega, Character(35) - Opcional
			"M0_COMPENT": "",	- Complemento Entrega, Character(25) - Opcional
			"M0_TPINSC": "",	- Tipo de Inscrição, Integer(1), 1-CEI, 2-CNPJ, 3-CPF, 4-INCRA - Obrigatório
			"M0_CGC": "",		- Numero da  Inscrição acima, Character(14) - Condicional ao atributo M0_TPINSC, - Obrigatório (este deve estar preenchido quando for 2, 3 ou 4)
			"M0_CEI": "",		- Numer CEI, Character(12) - Condicional ao atributo M0_TPINSC, este deve estar preenchido quando for 1
			"M0_INSC": "",		- Numero Inscrição Estadual, Character(14) - Opcional	- Caso não seja enviado, será informado "ISENTO" como default
			"M0_INSCM": "",		- Inscrição municipal do estabelecimento, Character(25) - Opcional
			"M0_TEL": "",		- Telefone, Character(14)
			"M0_FAX": "",		- FAX, Character(14) - Opcional
			"M0_PRODRUR": "",	- Produtor Rural, Character(1), 1-Fisica, 2-Juridica, 3-Segurado Especial - Opcional
			"M0_CNAE": "",		- Codigo de atividade, Character(7) - Opcional
			"M0_FPAS": "",		- Código FPAS, Character(4) - Opcional
			"M0_NATJUR": "",	- Natureza Juridica, Character(4) - Opcional
			"M0_NIRE": "",		- Numero NIRE(Nr. Identificacao do Registro da Empresa), Character(25) - Opcional
			"M0_DTRE": "",		- Data NIRE(Inscricao na Junta Comercial), Character(8), AAAAMMDD - Opcional
			"M0_INS_SUF": "", 	- Numero Inscrição SUFRAMA, Character(12) - Opcional
			
			"C1E_CODFIL": "", -  Filial Referencia com ERP - Character(40) - Obrigatório
			"C1E_MATRIZ": true/false, - Obrigatório
			"C1E_DTINI": "",	- PerÝodo Inicial Validade, Character(6), MMAAAA - Opcional
			"C1E_DESFOL": "",	- Indic. DesoneraþÒo Folha, Character(1), 0=Nao Aplicavel;1=Empresa enquadrada nos art. 7. a 9. da Lei 12.546/2011 - Opcional - Opcional
			"C1E_REGELT": "",	- Registro Eletronico, Character(1), 0=Nao optou pelo registro eletronico de empregados;1=Optou pelo registro eletronico de empregados - Opcional
			"C1E_SEGMEN": "",	- Segmento de Atividade, Character(1), 1=Instituiþ§es Financeiras - Bancos;2=ËrgÒos P·blicos;3=Portos - CODESP;4=ConstruþÒo Civil - Empreiteiras - Opcional
			"C1E_ENTEDU": "",	- Ind. Entidade Educativa, Character(1), 0=NÒo Ú entidade educativa sem fins lucrativos;1=╔ entidade educativa sem fins lucrativos - Opcional
			"C1E_INDETT": "",	- Indic Empresa Trab. Temp., Character(1), 1=Sim;2=Não - Opcional - Default '2'
			"C1E_NRETT": "",	- N·m Reg. Emp. Trab. Tempo, Character(30) - Opcional
			"C1E_SIGMIN": "",	- Ident Min/Lei Conc Certif, Character(70) - Opcional
			"C1E_NRCERT": "",	- N·mero do Certificado, Character(40) - Opcional
			"C1E_DTEMCE": "",	- Data emissÒo certificado, Character(8), AAAAMMDD - Opcional
			"C1E_DTVCCE": "",	- Data Vencimento Certif., Character(8), AAAAMMDD - Opcional
			"C1E_NRPRRE": "",	- N·mero Protoc. RenovaþÒo, Character(40) - Opcional
			"C1E_DTPRRE": "",	- Data Protocolo RenovaþÒo, Character(8), AAAAMMDD - Opcional
			"C1E_DTDOU": "",	- Dt.PublicaþÒo DOU, Character(8), AAAAMMDD - Opcional
			"C1E_PAGDOU": "",	- N·mero da Pßgina do DOU, Character(5) - Opcional
			"C1E_SIAFI": "", 	- N·mero do SIAFI, Character(6) - Opcional
			"C1E_RPPS": "", 	- Regime Prop. Prev. Social, Character(1), 1=Sim;2=NÒo - Opcional
			"C1E_EFR": "", 		- ËrgÒo P·blico Ú o EFR, Character(1), 1=Sim;2=NÒo - Opcional
			"C1E_CPNJER": "", 	- CNPJ Ente Federativo Resp, Character(14) - Opcional
			"C1E_NMENTE": "", 	- Nome do Ente Federativo, Character(115) - Opcional
			"C1E_SUBTET": "", 	- Subteto, Character(1), 1=Executivo;2=Judicißrio;3=Legislativo;9=Todos os poderes - Opcional
			"C1E_VLRSUB": "", 	- Valor Subteto Ente Federa, Decimal(14,2) - Opcional
			"C1E_SITESP": "", 	- SituaþÒo Pessoa JurÝdica, Character(1),0=SituaþÒo Normal;1=ExtinþÒo;2=FusÒo;3=CisÒo;4=IncorporaþÒo. - Opcional
			"C1E_SITPF": "", 	- SituaþÒo Pessoa FÝsica, Character(1),0=SituaþÒo Normal;1=Encerramento de esp¾lio;2=SaÝda do paÝs em carßter permanente - Opcional
			"C1E_CNPJTR":"", 	- CNPJ do Transmissor (Outorga), Character(14) - Obrigatório
			"C1E_UF": "",       - UF do Ente Federativo, Character(2) - Obrigatório
			"dataInicioeSocial": "AAAAMMDD",
			certificado[			- Somente para estabelecimento Matriz.
				{"arquivo": "String"},
				{"senha": "String"}
				
			],
			"dataInicioReinf": "AAAAMMDD",
		}
	],
	"schedule": [
		{"scheduleIntegracao": "1-Sim/2-Nao"}, -  Ativação da Integração ERP / TAF - Charater(1)
		{"scheduleValidacao": "1-Sim/2-Nao"}, - Ativação da Validação ERP / TAF - Charater(1)
		{"scheduleTransmissao": "1-Sim/2-Nao"} - Ativação da Integração TAF / União  - Charater(1)
	],
	"usuarios": [
		{"email": ""}, - Obrigatório
		{"email": ""}, - Obrigatório
		{"email": ""} - Obrigatório
	],
	"versaoVigenteeSocial": ""	- Versão eSocial  02_04_01 ou 02_04_02, Character(8) - Obrigatório
	"urlSmartClient" : "", - Endereço do Endpoint de acesso ( Smartclient HTML - Webapp) - Obrigatório
    "versaoVigenteReinf": ""	- Versão EFD Reinf 1_03_02, Character(8) - Obrigatório
}



Estrutura da mensagem de retorno do POST (Response):
Validação de Layout:


Retorno:


{
    "empresas": [
        {
            "TipoEnviado": "", - Tipo do Dado Enviado Character(1)
            "Filial": "", - Filial da Empresa Enviada Character(6)
            "TamanhoEnviado": 14, - Tamanho do dado Enviado Character(6)
            "Empresa": "igF2", -  Empresa Enviada Character(4)
            "Campo": "C1E_CPNJER", -- Campo Enviado  Character(15)
            "StatusTamanho": true, -  Problema detectado for Tamanho Boolean
            "StatusTipo": false -  Problema detectado for Tipo Boolean
        }
    ]
}




Log internos do ambiente 




{
    "Logs": [
        {
            "empresas": [
                {
                    "mensagem": "",
                    "status": "",
                    "filial": "",
                    "empresa": ""
                },
          ]
        },
        {
            "usuarios": {
                "usuarios": [
                    {
                        "usuario": "",
                        "senha": ""
                    },
                    {
                        "usuario": "",
                         "senha": ""
                    },
                    {
                        "usuario": "",
                         "senha": ""
                    },
                    {
                        "usuario": "TAF_WS",
                         "senha": ""
                    }
                ]
            }
        }
    ]
}




  • Sem rótulos