Smart Component Execucao/Geracao Arquivo XML Tabela Precos

De Touch ERP

Smart_Component_Execucao

Arquivo XML de tabela de preços

Smart Component de execução que gera um XML com produtos, estoque e preços por UF. Opcionalmente, envia o arquivo a um servidor FTP.

Para que serve

Este recurso prepara um arquivo para integração com a Cossuiponte. Ele reúne os produtos das tabelas de preço selecionadas, calcula o estoque nos centros informados e determina o preço de venda para cada UF ativa dessas tabelas. O arquivo é salvo no servidor do ERP e pode ser enviado por FTP na mesma execução.

O arquivo gerado também fica disponível como resultado da tarefa para download, conforme o fluxo de Executar Smart Component.

Antes de executar

  • Tenha as tabelas de preço base com produtos ativos e as UFs de destino habilitadas.
  • Confira a empresa, a natureza de operação e as configurações fiscais usadas no cálculo dos preços.
  • Selecione os centros de estoque cujos saldos devem compor o arquivo.
  • Defina uma pasta no servidor do ERP em que a aplicação tenha permissão de escrita. O caminho não se refere ao computador de quem está usando a tela.
  • Para envio por FTP, confirme endereço, usuário, senha e acesso do servidor do ERP ao destino.

É recomendável fazer a primeira geração como arquivo completo e conferir o XML antes de disponibilizá-lo ao sistema de destino.

Parâmetros

Os nomes amigáveis dos campos podem variar conforme o cadastro do Smart Component. As chaves abaixo identificam exatamente os dados que o componente lê.

Chave O que informar Obrigatório
P_IDS_TABELA_PRECO Uma ou mais tabelas de preço base cujos produtos e UFs serão considerados. Sim
P_ID_EMPRESA Empresa usada para consultar estoque e calcular o preço fiscal. Sim
P_ID_NATUREZA_OPERACAO Natureza de operação usada na simulação do preço de venda. Sim
P_IDS_CENTRO_ESTOQUE Um ou mais centros de estoque cujos saldos serão somados. Sim
P_CAMINHO_ARQUIVO Pasta no servidor do ERP onde o XML será gravado. Sim
P_GERAR_ARQUIVO_COMPLETO 1 = incluir todos os produtos ativos das tabelas; 0 = usar a seleção incremental. Se não informado, o componente não trata a execução como completa. Não
P_TIPO_GERACAO_ARQUIVO 0 = somente gerar o arquivo; 1 = gerar e enviar por FTP. Sim
P_CAMINHO_FTP Endereço do servidor FTP. Necessário quando P_TIPO_GERACAO_ARQUIVO é 1. Condicional
P_LOGIN_FTP Usuário do FTP. Necessário quando há envio por FTP. Condicional
P_SENHA_FTP Senha do FTP. Necessária quando há envio por FTP. Condicional

O componente exige que as listas de tabelas e centros sejam preenchidas. Quando o envio por FTP está desligado, os três campos de FTP não são exigidos.

Como os produtos entram no arquivo

Na geração completa, o componente seleciona todos os vínculos ativos das tabelas cujo produto também está ativo. Na geração incremental, seleciona vínculos atualizados após a última geração registrada e também procura produtos presentes em notas fiscais próprias, notas de terceiros e movimentos consultados desde aquela data. Quando já existe um histórico de geração, essa consulta a movimentos também ocorre no modo completo. O arquivo pode, portanto, conter um produto cujo preço cadastrado não mudou, mas que teve movimentação relevante para o estoque.

Se um produto aparecer em mais de uma tabela escolhida, ele é listado uma única vez no XML. Os preços de cada tabela e UF são adicionados a esse mesmo produto; por isso, pode haver mais de um elemento de preço para a mesma UF.

Atenção ao histórico incremental: a data de corte vem da última geração XML registrada pelo sistema, independentemente das tabelas, empresa, natureza de operação e centros escolhidos na execução atual. Se você mudar esse conjunto ou precisar reconstruir o arquivo do zero, selecione arquivo completo. Após gravar o XML e concluir a etapa de FTP, quando habilitada, o componente registra uma nova data de sincronização.

Estoque e preços

O estoque é consultado para a empresa e os centros de estoque selecionados. O XML traz o total do produto e o saldo separado por grade/cor. Quando a mesma grade aparece em mais de um centro, as quantidades são somadas.

Para cada UF ativa da tabela, o preço é calculado por meio de uma simulação fiscal de uma unidade, sem desconto, usando o valor de venda da tabela, a natureza de operação, a empresa, as opções fiscais e um cliente ativo localizado naquela UF. Assim, o valor do XML pode ser diferente do preço base cadastrado na tabela.

Há duas situações que exigem conferência no arquivo:

Situação Efeito no XML
Não existe cliente ativo para uma UF O componente grava um preço de marcador negativo (-999999) para essa UF. Esse valor não é um preço de venda.
Não foi encontrado modelo fiscal, ou houve erro no cálculo do preço O preço daquela combinação pode não ser incluído, mesmo que o produto apareça no XML.

Uma tarefa concluída indica que o arquivo foi gerado, mas convém verificar os preços antes de importá-lo no destino.

Como executar

  1. Abra Executar Smart Component no módulo de Business Intelligence e selecione o componente de arquivo XML de tabela de preços da Cossuiponte.
  2. Escolha um perfil, se sua instalação tiver um perfil preparado para essa integração.
  3. Informe as tabelas de preço, a empresa, a natureza de operação, os centros de estoque e o caminho local de gravação.
  4. Na primeira execução, ou após trocar os filtros, marque Gerar arquivo completo.
  5. Escolha Somente gerar arquivo para conferir o resultado, ou Gerar arquivo e enviar FTP para transmiti-lo. No segundo caso, preencha também os dados de FTP.
  6. Inicie a execução e acompanhe a tarefa até a conclusão. Baixe o XML e confira produtos, saldos, preços e UFs.
  7. Se o FTP estiver habilitado, confira a presença do arquivo no destino.

O nome segue o padrão tabela_base_dd-MM-aaaa HH-mm-ss.xml. No FTP, o componente envia o arquivo para a pasta /arquivo_tabela_base.

Estrutura do XML

O arquivo tem a raiz <produtos> e um elemento <produto> para cada produto selecionado. Os principais campos são:

Elemento Conteúdo
identificador, codigoAuxiliar, nome Identificação e descrição do produto.
unidadeMedida, especie, subEspecie, peso Informações cadastrais do produto.
estoqueTotal Soma dos saldos nos centros escolhidos.
grades/gradeProduto Identificador da grade, cor, nome da cor e estoqueGrade.
precos/preco UF e precoAVista calculado para a combinação.

Exemplo ilustrativo, com dados fictícios:

<produtos>
  <produto>
    <identificador>123</identificador>
    <codigoAuxiliar>ABC123</codigoAuxiliar>
    <nome>Produto exemplo</nome>
    <unidadeMedida>UN</unidadeMedida>
    <especie>Linha exemplo</especie>
    <subEspecie>Categoria exemplo</subEspecie>
    <peso>1,00</peso>
    <estoqueTotal>8,00</estoqueTotal>
    <grades>
      <gradeProduto>
        <idGrade>10</idGrade>
        <idCor>20</idCor>
        <nomeCor>Azul</nomeCor>
        <estoqueGrade>8,00</estoqueGrade>
      </gradeProduto>
    </grades>
    <precos>
      <preco>
        <uf>SP</uf>
        <precoAVista>125,00</precoAVista>
      </preco>
    </precos>
  </produto>
</produtos>

O XML gerado declara ISO-8859-1 no cabeçalho, mas a rotina de gravação usa UTF-8. Se o sistema de destino recusar acentos ou informar erro de codificação, peça à equipe técnica para alinhar a codificação do arquivo e do cabeçalho antes da importação.

Integração por API

Outro sistema pode iniciar este Smart Component pela API de execução de Smart Components. Primeiro consulte get-parameters-id/{idSmartComponent} para obter os nomes, tipos, valores e formato dos parâmetros cadastrados na sua instalação. Em seguida, envie os valores no objeto params para execute-smart-component-id/{idSmartComponent}.

Exemplo com uma tabela e um centro de estoque, usando IDs fictícios:

{
  "input": null,
  "params": {
    "P_IDS_TABELA_PRECO": "123",
    "P_ID_EMPRESA": "1",
    "P_ID_NATUREZA_OPERACAO": "45",
    "P_IDS_CENTRO_ESTOQUE": "7",
    "P_CAMINHO_ARQUIVO": "C:/integracao/cossuiponte",
    "P_GERAR_ARQUIVO_COMPLETO": "1",
    "P_TIPO_GERACAO_ARQUIVO": "0"
  }
}

Para informar várias tabelas ou centros, confira a configuração de seleção múltipla dos parâmetros (usarCondicaoIn e classeParametro) retornada por get-parameters-id e valide o formato no ambiente da sua instalação. Se P_TIPO_GERACAO_ARQUIVO for 1, inclua também P_CAMINHO_FTP, P_LOGIN_FTP e P_SENHA_FTP.

A resposta imediata traz result.taskId. Consulte GET /auth/async-tasks/get-task/{taskId} até a conclusão e baixe o arquivo por GET /auth/async-tasks/get-task-result-resource/{taskId}. O caminho em P_CAMINHO_ARQUIVO é interpretado pelo servidor do ERP, inclusive quando a chamada é feita por outro sistema.

Solução de problemas

Sintoma O que verificar
O XML está vazio ou faltam produtos Tabelas e vínculos ativos, produtos ativos, data da última geração e opção Gerar arquivo completo.
Falta preço para alguma UF UF ativa na tabela, existência de cliente ativo na UF, modelo fiscal e regras de tributação.
Aparece um preço negativo muito alto Não foi encontrado cliente ativo para aquela UF; o valor é um marcador.
Estoque não confere Empresa e centros selecionados, saldos por grade/cor e data da consulta.
Não foi possível salvar o arquivo Pasta do servidor e permissão de escrita da aplicação.
O arquivo não chegou ao FTP Endereço, usuário, senha, rede e pasta /arquivo_tabela_base; confira também o arquivo salvo localmente.
O destino rejeita caracteres acentuados Divergência entre a codificação declarada no XML e a usada na gravação.

Referência técnica: SCExecArquivoXMLTabPrecoCossuiponte.

Os cookies ajudam-nos a fornecer os nossos serviços. Ao navegar no sítio, está a consentir o uso de cookies.