WSConsultarCold - Consulta de documentos na base do e-Cold
O web service WSConsultarCold permite a realização de consultas na base de dados do e-Cold, para retornar em lotes os documentos XML ou PDF ao ERP. O funcionamento do processo de consulta considera uma expressão, a qual é validada e transformada no filtro que restringe o retorno dos documentos solicitados.
Esta pesquisa, dependendo da quantidade de itens, pode ser trabalhosa para o sistema. Sendo assim, o processo trabalha em um contexto de pesquisa/processamento/resultado para que possa funcionar sem que os demais processos sejam demasiadamente impactados.
Após efetuar a chamada para o Web Service de consulta, os dados são armazenados em uma tabela do banco de dados do ColdSearch, este deve ser único para cada conexão de saída e-Cold para, posteriormente, efetuar a consulta no banco de dados do e-Cold. Um serviço do Windows é responsável por realizar a consulta ao e-Cold, este captura a informação armazenada no banco de dados do ColdSearch, informação esta, inserida pela chamada do web service de consulta, e efetua a busca dos registros no e-Cold, conforme os parâmetros passados na consulta.
O ERP que realiza as chamadas ao web service envia os dados e uma expressão de pesquisa. Esta expressão será o filtro da pesquisa, e determinará a quantidade de elementos resultantes desta. O resultado desta chamada é um protocolo de pesquisa o qual possibilita ao consumidor do web service a busca do status de processamento da sua solicitação de pesquisa.
Os resultados são retornados pelo web service WSRetornarDocumentosCold, podendo ser de duas maneiras distintas: sob demanda ou somente no final do processo. Isto quem decide é o utilizador do web service, pois o resultado será sempre retornado quebrado em lotes de no máximo 50 documentos, porém, este valor pode ser solicitado junto com o pedido de retorno dos dados. Ficam disponíveis para o ERP que utiliza os web services os status de processamento, onde ele poderá efetuar o acompanhamento do status de sua solicitação, sabendo assim, a quantidade total de documentos que estão em processamento e quantos já foram processados. Desta maneira, num contexto de interação com o usuário, o mesmo poderá ser avisado do status do processamento.
É possível também que sejam retornados os documentos de envio, as autorizações ou ambos, no formato XML, para autorização somente, autorização e PDF juntos, ou eventos (NF-e, CT-e, MDF-e, CT-e OS), conforme os parâmetros especificados na pesquisa.
A tabela abaixo apresenta a relação de documentos disponíveis para download de XML e/ou PDF:
|
NF-e
|
CT-e
|
MDF-e
|
Evento CC-e
|
Demais eventos
|
Forms Laser (Em breve)
|
CT-e OS
|
XML
|
✓ |
✓ |
✓ |
✓ |
✓ |
x
|
✓ |
PDF
|
✓ |
✓ |
✓ |
✓ |
x
|
✓ |
✓ |
Este web service de consulta utiliza o método PesquisarDocumentos na realização das chamadas, como podemos observar abaixo:
<XML retorno> PesquisarDocumentos (<XML consulta>)
|
Para efetuar o download do schema xsd clique aqui!
<eformsConsultarCold xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.nddigital.com.br/connector">
<versao></versao>
<autenticacao>
<usuario></usuario>
<senha></senha>
<conexaoid></conexaoid>
</autenticacao>
<solicitacao>
<tipodocumento></tipodocumento>
<formatosolicitacao></formatosolicitacao>
<formatodocumento></formatodocumento>
<composicaodocumento></composicaodocumento>
<formulariopdf></formulariopdf>
</solicitacao>
<expressao>
<item>
<blocoinicial></blocoinicial>
</item>
<item>
<campo>
<nome></nome>
<valor>
<conteudo></conteudo>
<parcial></parcial>
</valor>
</campo>
</item>
<item>
<operacaologica></operacaologica>
</item>
<item>
<campo>
<nome></nome>
<intervalo>
<inicial></inicial>
<final></final>
</intervalo>
</campo>
</item>
<item>
<blocofinal></blocofinal>
</item>
</expressao>
</eformsConsultarCold>
|
Detalhamento do Schema eformsConsultarCold
|
eformsConsultarCold
|
#
|
Pai
|
Campo
|
Descrição
|
Tipo
|
Obrigatório
|
Ocorrências
|
Tamanho
|
Observações
|
1
|
|
versao
|
Versão do schema.
|
C
|
S
|
1
|
4
|
Versão do schema.
|
2
|
|
autenticacao
|
Autenticação do usuário na base do e-Cold.
|
G
|
S
|
1
|
|
O acesso ao e-Cold fica restrito, portanto, para que se possa consultá-lo, é necessário que sejam passadas as informações de acesso e a conexão.
|
3
|
2
|
usuario
|
Nome do usuário.
|
C
|
S
|
1
|
1..100
|
Nome do usuário, conforme cadastrado na base do e-Forms.
|
4
|
2
|
senha
|
Senha do usuário.
|
C
|
S
|
1
|
1..100
|
Senha do usuário, conforme cadastrado na base do e-Forms.
|
5
|
2
|
conexaoid
|
Identificador da conexão e-Cold.
|
N
|
S
|
1
|
1..14
|
Identificador da conexão e-Cold utilizada (ColdID).
|
6
|
|
solicitacao
|
Define os formatos dos dados a serem retornados.
|
G
|
S
|
1
|
|
|
7
|
6
|
tipodocumento
|
Tipo de documento a ser retornado.
|
N
|
S
|
1
|
1
|
1 = Documento eletrônico de envio;
2 = Documento eletrônico de cancelamento (exceto cancelamento via eventos);
3 = Documento de evento (com esta opção a tag <codigoevento> é obrigatória).
|
8
|
6
|
formatosolicitacao
|
Formato da solicitação.
|
N
|
S
|
1
|
1
|
1 = Somente documento XML;
2 = Somente PDF;
3 = ambos.
Obs: Para Forms Laser, está disponível apenas o formato PDF (formatosolicitacao = 2)
|
9
|
6
|
formatodocumento
|
Formato do documento.
|
N
|
S
|
1
|
1
|
1 = XML;
2 = TXT delimitado (não implementado ainda).
|
10
|
6
|
composicaodocumento
|
Composição do documento a ser retornado.
|
N
|
S
|
1
|
1
|
1 = Apenas documento de envio;
2 = Apenas autorização;
3 = Documento e autorização.
4 = Documentos Associados (somente pode ser utilizado quando o formatosolicitacao for igual a 2 - PDF)
|
11
|
6
|
formulariopdf
|
Nome do formulário PDF
|
C
|
N
|
1
|
1..N
|
Nome parcial ou total do formulário PDF cadastro no e-Forms
|
12
|
6
|
formatonamespace
|
Define o retorno do namespace de procNFe e procCTe extraídos do Cold
|
N
|
N
|
1
|
1
|
1 = Namespace completo;
2 = Namespace simplificado;
A não utilização desta tag retorna o Namespace completo.
|
13
|
6
|
agrupardocumentos
|
Identifica se os documentos consultados em PDF devem ser agrupados.
|
N
|
N
|
1
|
1
|
1 = Sim;
2 = Não, ou não informar esta tag na consulta.
|
14
|
6
|
codigoevento
|
Código do evento que será consultado.
|
N
|
N
|
1
|
6
|
Exemplo: 110110, 110111, 110115, 210210.
Se a tag 7 <tipodocumento> possuir o valor “3” esta será obrigatória.
|
15
|
6
|
ultimoevento
|
Determina se a consulta retornará apenas o último evento ou todos.
|
N
|
N
|
1
|
1
|
1 = Sim – Apenas o último evento;
2 = Não – Todos os eventos.
(Caso exista mais de um evento do mesmo tipo, define se retornará apenas o ultimo, ou todos).
|
16
|
6
|
marcadagua
|
Indica se o PDF a ser retornado conterá marca d’água para NF-e e CT-e canceladas e MDF-e encerradas.
|
N
|
N
|
1
|
1
|
1= Sim
2= Não, ou não informar esta tag na consulta
|
17
|
|
expressao
|
Expressão de pesquisa na base de dados.
|
G
|
S
|
1
|
|
|
18
|
16
|
item
|
Item da expressão.
|
G
|
S
|
1...N
|
|
Cada item de uma expressão pode assumir apenas um dos itens abaixo.
|
19
|
17
|
blocoinicial
|
Bloco inicial de uma expressão.
|
C
|
S
|
1
|
|
Identifica o início de um bloco ou sub-bloco de pesquisa, seria o mesmo que um sinal de abrir parênteses em uma expressão matemática. Exemplo: <blocoinicial>inicio</blocoinicial>.
|
20
|
17
|
blocofinal
|
Bloco de finalização de uma expressão.
|
C
|
S
|
1
|
|
Identifica o final de um bloco ou sub-bloco de pesquisa, seria o mesmo que um sinal de fechar parênteses em uma expressão matemática. Exemplo: <blocofinal>final</blocofinal>.
|
21
|
17
|
operacaologica
|
Identifica a operação lógica a ser executada.
|
N
|
S
|
1
|
1
|
Identifica uma operação lógica do produto, esta operação pode ser uma conotação booleana de E, OU ou de negação. Pode assumir os seguintes valores: 1 = E; 2 = OU; 3 = Negação. Exemplo: <operacaologica>1</operacaologica>.
|
22
|
17
|
campo
|
Campo filtro de pesquisa.
|
G
|
S
|
1
|
|
Os campos têm obrigatoriamente um nome e também valores de filtros. As duas possibilidades de filtro e de nome podem ser feitas através de valor ou intervalo de valores.
|
23
|
21
|
nome
|
Nome do campo de filtro.
|
C
|
S
|
1
|
1..N
|
Possíveis nomes de campos:
• Para NF-e
o SERIE – série da nota;
o NUMERONFE – número da nota;
o DATAEMISSAO – data de emissão da nota;
o CNPJEMITENTE – CNPJ do emitente;
o CNPJDESTINATARIO – CNPJ do destinatário;
o CPFDESTINATARIO - CPF do destinatário.
• Para CT-e
o SERIE – série do conhecimento;
o NUMEROCTE – número do conhecimento;
o DATAEMISSAO – data de emissão do conhecimento;
o CNPJEMITENTE – CNPJ do emitente;
o CNPJREMETENTE – CNPJ do remetente
o CPFREMETENTE – CPF do remetente
o CNPJEXPEDIDOR – CNPJ do expedidor;
o CPFEXPEDIDOR – CPF do expedidor;
o CNPJRECEBEDOR – CNPJ do recebedor;
o CPFRECEBEDOR – CPF do recebedor;
o CNPJDESTINATARIO – CNPJ do destinatário;
o CPFDESTINATARIO – CPF do destinatário;
o CNPJTOMADOR – CNPJ do tomador do serviço;
o CPFTOMADOR – CPF do tomador do serviço.
• Para MDF-e
o SERIE – série do manifesto;
o NUMEROMDFE – número do manifesto;
o DATAEMISSAO – data de emissão do manifesto;
o CNPJEMITENTE – CNPJ do emitente.
• Para CT-e OS
o SERIE – série do conhecimento;
o NUMEROCTEOS – número do conhecimento;
o DATAEMISSAO – data de emissão do conhecimento;
o CNPJEMITENTE – CNPJ do emitente;
o CNPJTOMADOR – CNPJ do tomador do serviço;
o CPFTOMADOR – CPF do tomador do serviço.
• Para Forms Laser
Apenas informar o nome da coluna utilizado nos metadados da saída cold, o mesmo será utilizado dinamicamente na consulta dos documentos.
|
24
|
21
|
valor
|
Valor do filtro a ser aplicado.
|
G
|
S
|
1
|
1
|
O valor do filtro indica que será feita uma comparação direta. Exemplo SERIE = 1.
|
25
|
23
|
conteudo
|
Conteúdo do campo que será utilizado no filtro.
|
C
|
S
|
1
|
1...N
|
Em um campo de pesquisa, se esta for informada, a tag 25 <intervalo> não pode aparecer
|
26
|
23
|
parcial
|
Define busca parcial sobre o campo.
|
N
|
N
|
1
|
1
|
Indica, para campos alfanuméricos, se o conteúdo é uma parte do todo. Se for 1, ele busca parcialmente, caso contrário, deve ser idêntico.
|
27
|
21
|
intervalo
|
Intervalo fechado de valores.
|
G
|
S
|
1
|
1
|
Intervalo fechado de valores a serem filtrados. Exemplo SERIE >= 1 E SERIE <= 999.
|
28
|
26
|
inicial
|
Valor inicial do filtro.
|
C
|
S
|
1
|
1...N
|
Valor inicial do filtro.
|
29
|
26
|
final
|
Valor final do filtro
|
C
|
S
|
1
|
1...N
|
Valor final do filtro.
|
Legenda
|
Item pai
|
Número do item que agrupa este elemento.
|
|
Campo
|
Nome do campo conforme está no schema.
|
|
Descrição
|
Descrição rápida dos campos.
|
|
Tipo
|
Tipo de dado no campo.
|
N = Numérico
C = Alfanumérico
D = Data no formato AAAA-MM-DD HH:MM:SS
G = Grupo que conterá outros elementos filhos
|
Obrigatório
|
Indica se o campo é obrigatório ou não
|
S = Obrigatório
N = Não é obrigatório
|
Ocorrência
|
Indica a quantidade de ocorrências possíveis de determinado elemento
|
1 = Apenas 1 vez
1..N = Pode ser de 1 a vários elementos
0..N = Pode ser de nenhum a vários elementos
|
Tamanho
|
Indica o tamanho aceitável do campo
|
1 = Apenas 1 caractere ou número
1..N = Entre 1 caractere ou número ou vários até o valor final definido
|
Observação
|
Observações adicionais sobre o campo
|
|
|
Uma vez concluído o processo de retorno, será apresentado o protocolo “-1”, este indica que o processamento foi concluído e os registros estarão aptos a serem removidos da base de resultados. Os resultados serão removidos automaticamente através de um Job de limpeza, criado diretamente no banco de dados, obedecendo ao critério do final do processamento e também o período de 48 horas.
Visualizar modelo do retorno da chamada