# Parâmetros

Os parâmetros que deverão ser passados no momento da chamada ao webservice são:

# Parâmetros da chamada de busca do Webservice

<main class="col-6" id="bkmrk-par%C3%A2metro-descri%C3%A7%C3%A3o-"><div><table cellspacing="0" class="Table" style="width: 100%; height: 619.438px;"><tbody><tr style="height: 41.375px;"><td style="width: 14.0629%; height: 41.375px;">**Parâmetro**

</td><td style="width: 59.5962%; height: 41.375px; text-align: justify;">**Descrição**

</td><td style="width: 12.6341%; height: 41.375px; text-align: justify;">**Tipo**

</td><td style="width: 13.7068%; height: 41.375px; text-align: justify;">**Obrigatório**

</td></tr><tr style="height: 63.375px; text-align: justify;"><td style="width: 14.0629%; height: 63.375px;">username

</td><td style="width: 59.5962%; height: 63.375px;">Código de acesso username

</td><td style="width: 12.6341%; height: 63.375px;">String

</td><td style="width: 13.7068%; height: 63.375px;">Sim

</td></tr><tr style="height: 46.5938px; text-align: justify;"><td style="width: 14.0629%; height: 46.5938px;">Senha

</td><td style="width: 59.5962%; height: 46.5938px;">Senha de acesso

</td><td style="width: 12.6341%; height: 46.5938px;">String

</td><td style="width: 13.7068%; height: 46.5938px;">Sim

</td></tr><tr style="height: 63.375px; text-align: justify;"><td style="width: 14.0629%; height: 63.375px;">id\_cenario

</td><td style="width: 59.5962%; height: 63.375px;">Id do cenário configurado no ambiente administrativo

</td><td style="width: 12.6341%; height: 63.375px;">String

</td><td style="width: 13.7068%; height: 63.375px;">Sim

</td></tr><tr style="height: 80.1875px; text-align: justify;"><td style="width: 14.0629%; height: 80.1875px;">codigo\_produto

</td><td style="width: 59.5962%; height: 80.1875px;">Código interno do produto (definido pelo usuário) a partir do qual será iniciada a consulta. Pode-se informar "0" (zero), dessa forma retornando o primeiro código válido.

</td><td style="width: 12.6341%; height: 80.1875px;">String

</td><td style="width: 13.7068%; height: 80.1875px;">Sim

</td></tr><tr style="height: 63.375px; text-align: justify;"><td style="width: 14.0629%; height: 63.375px;">paginacao

</td><td style="width: 59.5962%; height: 63.375px;">Quantos registros devem ser retornados por consulta.

O valor máximo é 100.

</td><td style="width: 12.6341%; height: 63.375px;">int

</td><td style="width: 13.7068%; height: 63.375px;">Sim

</td></tr><tr style="height: 80.1875px; text-align: justify;"><td style="width: 14.0629%; height: 80.1875px;">lista\_descricao

</td><td style="width: 59.5962%; height: 80.1875px;">Campo utilizado para ativar ou desativar o retorno das descrições de produtos.

Aceita os valores 0 (desativar) ou 1 (ativar).

</td><td style="width: 12.6341%; height: 80.1875px;">int

</td><td style="width: 13.7068%; height: 80.1875px;">Sim

</td></tr><tr style="height: 180.969px; text-align: justify;"><td style="width: 14.0629%; height: 180.969px;">ponteiro\_atualizacao

</td><td style="width: 59.5962%; height: 180.969px;">Necessário ao procedimento de atualização incremental.

Deve ser utilizado para trazer somente produtos que tiveram sua tributação atualizada desde a última requisição.

O parâmetro deve conter um número que foi recuperado do retorno da tag &lt;ponteiro\_atualizacao&gt; obtida na primeira “página” de dados recuperada no processo de atualização anterior (em outras palavras: ponteiro obtido na primeira requisição do dia anterior, supondo atualização diária).

Informando esse parâmetro o webservice vai trazer apenas produtos que tiveram atualizações a partir do ponteiro informado.

Ressaltamos que os resultados (registros devolvidos) continuam obedecendo à ordem de “código\_produto”, sendo possível “paginar” essa atualização incremental.

</td><td style="width: 12.6341%; height: 180.969px;">String

</td><td style="width: 13.7068%; height: 180.969px;">Sim

</td></tr></tbody></table>

</div><div style="text-align: justify;">---

</div></main>

# Ponteiro de atualização

Quanto a atualizações em lote, utilizando-se “ponteiro\_atualizacao”, é necessário informar:

**codigo\_produto:** Sempre iniciar a seqüência de requisições pelo menor código de produto. O último código de produto recuperado na resposta deve ser utilizado como parâmetro da requisição seguinte;

**id\_cenario:** Este parâmetro é combinado com o “código\_produto”, pois os dados são entregues ordenados justamente por cenários e, dentro desses, por produtos. Em uma página de dados de resposta poderá haver a troca de cenários, quando encerrados os produtos de um cenário e iniciado a entrega dos dados de produtos do cenário seguinte.

**paginacao:** Limitada a 100 registros recuperados por “página” de resposta. Para obtenção de mais de 100 registros é necessário realizar mais requisições.

**ponteiro\_atualizacao:** Informar o ponteiro capturado na primeira requisição do dia anterior (supondo atualizações diárias). Ressaltamos: não é o ponteiro da resposta obtida na requisição anterior e sim na “primeira” requisição do processo anterior (conjunto de requisições executados em data anterior);

Destacamos: A “paginação” de 100 em 100 registros é controlada pelo id\_cenário e pelo código do produto e não pelo ponteiro\_atualizacao, que serve apenas como “filtro” de seleção dos registros novos. Durante todo o processo (conjunto de requisições) o ponteiro\_atualizacao deve permanecer o mesmo. Deve-se armazenar o ponteiro\_atualizacao entregue na primeira página de dados do processo (início da lista de atualização), para que seja utilizado como parâmetro da atualização seguinte (no dia seguinte, por exemplo). Importante: Armazene o primeiro ponteiro do dia e não o último, pois durante o processo de leitura é possível que dados de sua base estejam sendo atualizados concomitantemente.

Exemplo de uma atualização em lote com caso de 220 registros atualizados (de um único cenário):

\- 1ª Requisição: Retorna os 100 primeiros registros (registros 1 a 100). Retornará também a tag “ponteiro\_atualizacao” preenchida com um novo valor de ponteiro, que deverá ser armazenado para utilização como parâmetro das futuras requisições de atualização (no dia seguinte, p.ex.).

\- 2ª Requisição: Deve ser alterado apenas o parâmetro de entrada “codigo\_produto”, informando o último código produto da 1ª requisição, com isso o sistema retornará 100 registros a partir daquele último (registros 100 a 199);

\- 3ª Requisição: Assim como na 2ª requisição, deve ser alterado apenas o parâmetro de entrada “codigo\_produto”, informando o último código recebido como resposta na 2ª. requisição. Neste exemplo, o sistema retornará os últimos 22 registros do conjunto de 220 (registros 200 a 220).

No exemplo acima foram utilizadas 3 requisições para se obter 220 registros, porém esse processo pode ser repetidos várias vezes, até que chegue ao final de toda atualização, que será percebido quando uma requisição retornar menos de 100 registros (a menos que a quantidade definida no parâmetro “paginacao” seja menor, para ser mais preciso) e com a tag “ponteiro\_atualizacao” preenchida.

Para processos de atualização com mais de um cenário, basta você aplicar na requisição seguinte o último id\_cenario obtido na página de resposta anterior. Lembre-se que dentro de uma página de dados poderá ocorrer a troca de cenários (fim dos dados de um cenário e início dos dados de outro).