EME4 | Importação de Nota fiscal do M4Server.
Links complementares
Para configurar a integração do Totalli com o M4Server é necessário entrar primeiramente no executável de configuração do middleware chamado de WSMiddleware:
Nessa tela , clicar na aba “Configurações por Empresa”
[Escolher uma empresa para configurar ou criar uma nova.]
Caso seja uma empresa nova, utilizar a documentação do WSMiddleware para saber como configurar uma empresa corretamente. Escolher a aba 7 – Integração, e posteriormente a aba M4Server
Preencha a URL onde o M4Server estiver rodando, inclusive com a porta, o usuário e senha do EME4 e com campo company com o código da empresa do EME4 [Empresa, não filial.]
A porta que deve ser informada é a porta que está parametrizada no M4Server. Para isso abra o M4ServerConfig e verifique a coluna “Porta”
O usuário que for informado na configuração do middleware deve estar marcado no cadastro de usuário como Comum/Web
Após a configuração do middleware e do usuário do EME4, ele estará pronto para transmitir as vendas recebidas.
Quando uma venda for recebida pelo middleware, ele seguira p seguinte fluxo lógico:
Verificará se está a parametrizada a integração com o M4Server.
Caso esteja, ele verificará se já há a informação de token de login.
Caso o token de login não esteja definido ele enviará uma requisição POST para o endpoint \Autenticar com o usuário, senha e company informados na configuração no header da requisição:
Caso a autenticação seja realizada com sucesso, será retornado nos headers da resposta algumas informações, sendo a principal o token de autorização, chamado de Session-Id. Esse token é guardado para as próximas requisições não necessitarem de autenticação.
[Esse token deve ser enviado nos headers das próximas requisições.]
Realizada a autenticação o middleware irá selecionar uma venda por vez que estiver na fila de transmissão e irá montar com ela um JSON, com a seguinte estrutura:
{
“classe”: “GerenciamentoWebService”,
“metodo”: “9”,
“parametros”: {
“Documentos”: [
{
“key”: “XXX”,
“siglasistorigem”: “TOT”,
“nrodocto”: ” 1″,
“NroDoctoTerc”: “1”,
“TipoOperacao”: “997”,
“dataemissao”: “27/06/2023”,
“dataentradasaida”: “27/06/2023”,
“chavenfe”: “XXX”,
“SituacaoDOC”: “1”,
“SituacaoNFE”: “5”,
“Serie”: {
“CodSerie”: “501”,
“TipoSerie”: “1”
},
“Filial”: {
“CNPJ_FilialEmit”: “88888888888888”
},
“Cliente”: {
“CPFCNPJ_CliForn”: “88888888888”
},
“representante”: {
“CPFCNPJ_REPRE”: “88888888888”
},
“dados_entrega”: {
“ValorFreteEntrega”: “0”,
“cep_localent”: “00000000”
},
“itens”: [
{
“codprod”: “XXX”,
“codalmox”: “XXX”,
“qdade”: 1,
“valunitario”: 685,
“Tributacao”: {
“ValorIPI”: 0,
“BaseIPI”: 0,
“AliqIPI”: 0,
“CSTIPI”: “J”,
“ValorICMS”: 116.45,
“BaseICMS”: 685,
“AliqICMS”: 17,
“PercRedBaseICMS”: 0,
“ValorICMSST”: 0,
“AliqICMSST”: 0,
“BaseICMSST”: 0,
“PercRedBaseST”: 0,
“CSTICMS”: “00”,
“ValorPIS”: 0,
“BasePIS”: 0,
“ALiqPIS”: 0,
“ValorCOFINS”: 0,
“BaseCOFINS”: 0,
“AliqCOFINS”: 0,
“CSTCOFINS”: “D”,
“BaseII”: 0,
“ValorII”: 0
}
}
],
“Parcelas”: [
{
“SeqParcela”: 1,
“DataVencto”: “27/06/2023”,
“Valor”: 685
}
]
}
]
}
}
Esse json será incluído no body de uma requisição POST para o endpoint \ExecutarMetodo e a venda será validada e inserida no EME4. Será retornado um json padrão para sucesso ou erro, sendo diferenciado pelo par detreqws_status. Caso seja “S”, verificar o par detreqws_idregistroerp para descobrir o identificador interno da venda que foi gravado no ERP.
Caso o par detreqws_status esteja com o valor “E”, verifique o valor dos pares detreqws_descerro e detreqws_descricao para verificar qual o erro ocorrido e em qual documento.
{
“result”: [
{
“RowId”: 1,
“detreqws_chave”: “XXX”,
“detreqws_status”: “E”,
“detreqws_descerro”: “TipoDocto Chave Registro [XXX]\r”,
“detreqws_descricao”: “Erro Documento Nro. [1] Nro. Terc.[1 ].”,
“detreqws_tabelaerp”: “M3_DOCTO”,
“detreqws_idregistroerp”: 0
}
]
}
Diagrama da sequência de ativação: