1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] SYSTEM ERROR: Tentativa de definir muitos índices para a área 6 do banco de dados

Discussão em 'EMS , HCM e Totvs 11' iniciado por afarns, Junho 19, 2018.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    bem, nesse caso, se for para incluir dados nas tabelas ped-venda, ped-item, ped-ent, acredito que seria util vc criar as registros direto na base sem usar as API´s, como são são tabelas de inicio de processo, ou seja, outras dependem delas mas elas não dependem de outras, vc pode inputar diretamente, outra coisa seria atraz de blocos de transação diminuir os ciclos de processos, porque essa sobrecarga acontece exatamente porque tem um bloco de transação segurando tudo para um eventual ON ERROR, UNDO.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Eu particularmente não recomendo inserir registro direto na tabela, mas concordo que deve-se refatorar o código de modo a reduzir o tamanho do bloco transacional.

    Resumindo, deixar a transação somente quando realmente faz alteração no banco de dados, todo o resto, como preenchimento de temp-table, mensagens e validações sejam fora da transação.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    eu tenho um importador de OBRAS, onde cria itens(tabela item e afins), cria estrutura de itens para produção(tabela estrutura), cria operações dos itens nas tabelas de processos de produção , cria itens nas tabelas de pedido de venda (ped-venda, ped-item, ped-ent), resolvi o system error removendo as APIs de pedidos, criando os registros na mão, pra criação de itens e a parte referente a produção, ao inves de usar as APIs, usei os programas de impostação do datasul, montando arquivos txt e chamando os .....rp.p dos importadores, e criando blocos de transação reduzindo os ciclos, claro que tem a desvantagem que se der algum erro no meio do processo, deixa sujeira, o que ja criou, ficou, dai tive que fazer algumas verificações do tipo, se já tem criado, pula.
  4. afarns

    afarns Sem Pontuação

    Rafael, sim faço a limpeza dos handles, inclusive me basei no seu exemplo do G+ de como fazer antes de abrir o post aqui, o problema é que consigo fazer apenas quando eu mesmo faço a chamada das APIs, estou convencido que como o pedido é meio grande, em torno de 400 itens, alguma transação que está sendo criada dentro dos fontes do EMS ( não tenho acesso ) está gerando essa sobrecarga, realizar a implantação diretamente nas tabelas acredito que resolveria o problema mas gostaria mesmo de achar uma solução que não fosse essa rs ( fico meio receoso com isso ).
    A única solução que consigo imaginar por enquanto seria aumentar o espaço utilizado pela área 6 do banco, achei algumas informações e parece ser possível criar um "extend" para cada storage area, mas não sei como fazer isso.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    então quebra o pedido em pedidinhos de 100 em 100 ou de 200 em 200, pedido A, pedido B, mais ou menos isso.
    afarns curtiu isso.
  6. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    @afarns faz o seguinte, coloca mensagens com numeração em vários pontos do seu programa.

    Se aparecer a sua mensagem e logo em seguida for executada a API da Totvs e travar, então vc vai ter certeza que é dentro da API, agora, se passar da API e exibir suas mensagens e travar em outro ponto, então vc saberá onde exatamente seu programa está travando.
    afarns curtiu isso.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página