26118 - Importação com webservices em layout de importação
Problema:
Solução:
Estamos tentando processar a importação de cadastros de fornecedores. E esta dando lock no banco de dados e não permitindo a importação simultânea.
Em resumo:
Está sendo utilizado um layout de importação e dentro dele é dado um cancel a cada leitura para não inserir via layout, e sim tem que inserir via webservices.
Quando a primeira importação começa a processar, as demais que entram em seguida ficam aguardando finalização da primeira.... o primeiro processo gera lock,
é como se abrisse transação e só fechasse no final de toda a planilha lida os registros no caso são somente inseridos na base quando termina toda a planilha de carga. Não esta ocorrendo commit a cada item.
A ideia era dividir em 10 planilhas de carga e processar em 10 instâncias paralelas
Isso seria um comportamento "normal" por parte da nossa tecnologia? Visto que não está fazendo o commit a cada linha processada.
Rotina / Tela: Webservices em geral com execução dentro de layout de importação .scf
Solução:
Solução:
A situação foi avaliada pelo equipe de tecnologia e constatou-se que o problema ocorre devido a utilização da função "Cancel()" na regra LSP.
A ferramenta de importação/exportação possui uma implementação para o controle das transações, onde a ferramenta faz os commits na base de acordo com o número de registros configurado para o bloco de transações. Essa configuração é feita através da própria ferramenta na guia "Definições" onde é possível informar a quantidade de registros que estarão no bloco de registros. Um vez atingido este número de registros, o commit será efetivado no banco.
O que acontece no cenário apresentado é que no evento "A cada leitura" está sendo executada a função "Cancel(1)" o que cancela a importação daquele registro através do importador.
Se este é um cenário que vem se apresentando com frequência, sugiro que seja aberta uma sugestão/ideia através do Fórum de Produto para uma analise mais profunda e uma eventual implementação/alteração neste comportamento para possibilitar que a ferramenta suporte importações simultâneas.
Abaixo seguem os link da documentação utilizados
Funcionamento da transação durante a importação:
https://documentacao.senior.com.br/tecnologia/6.2.35/#geradores/importacao-exportacao/informacoes-complementares/ftransacao_imp.htm%3FTocPath%3DTecnologia%7CFerramentas%2520de%2520Apoio%7CGeradores%2520de%2520Informa%25C3%25A7%25C3%25A3o%7CGerador%2520Importa%25C3%25A7%25C3%25A3o%252FExporta%25C3%25A7%25C3%25A3o%7CInforma%25C3%25A7%25C3%25B5es%2520Complementares%7C_____10
Comando LSP - Cancel()
https://documentacao.senior.com.br/tecnologia/6.2.35/index.htm#lsp/sintaxe-de-comandos-e-operadores.htm%3FTocPath%3DTecnologia%7CFerramentas%2520de%2520Apoio%7CLSP%2520-%2520Linguagem%2520Senior%2520de%2520Programa%25C3%25A7%25C3%25A3o%7C_____1