[RESOLVIDO] SYSTEM ERROR: Attempt to define too many indexes for area 6

Discussão em 'EMS , HCM e Totvs 11' iniciado por marcosflizi, Janeiro 30, 2013.

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

    ChacMaster Membro Participativo

    Presto serviço de desenvolvimento com nota fiscal, remoto ou presencial, podemos negociar valores .....
  2. ChacMaster

    ChacMaster Membro Participativo

    Segue um exemplo de utilização da solução que formulamos........

    Código:
    /* EXEMPLO UTILIZACAO DELTA-BOS.p */
    
    /* Criar as definições de temp-table e variáveis handle */
    /* utilizadas pela BO normalmente e uma para o deleta-bos */
    Define Variable h-bodi159    As Handle No-undo.
    Define Variable h-bodi154    As Handle No-undo.
    ...
    Define Variable h-deleta-bos As Handle No-undo.
    
    /* LACO OU BLOCO DE IMPORTACAO DO PEDIDO */
    For Each meusPedidosParaImportar:
    
        /* Fazer todos os RUNs PERSISTENTs que serão utilizados */
        Run dibo/bodi159.p Persistent Set h-bodi159.
        Run dibo/bodi159.p Persistent Set h-bodi159.
        ...
        Run deleta-bos.p Persistent Set h-deleta-bos.
    
    
        /* Fazer a importação do pedido e itens normalmente */
    
        
    
        /* Após realizar todas as operações para o pedido e itens, */
        /*  executar todos os delete procedure */
        If Valid-handle(h-bodi159) Then Delete Procedure h-bodi159.
        If valie-handle(h-bodi154) Then Delete Procedure h-bodi154.
        ...
    
        /* Depois da limpeza feite, execute a procedure da deleta-bos.p */
        /* e delete a sua procedure */
        Run pi-executa-limpeza In h-deleta-bos.
        If Valid-handle(h-deleta-bos) Then Delete Procedure h-deleta-bos.
    
    End.
    
    
    a solução estará funcionando até sexta-feira 15/03/2013.

    Qualquer dúvida, entrem em contato....

    Arquivos Anexados:

  3. CarlosCabral_AM

    CarlosCabral_AM Sem Pontuação

    Pessoal para limpar todas as BO's carregadas no processo basta criar a procedure abaixo e chama-la no programa em questão...

    Código:
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pi-destroy-bo B-table-Win 
    PROCEDURE pi-destroy-bo :
    /*------------------------------------------------------------------------------
      Purpose: 
      Parameters: <none>
      Notes: 
    ------------------------------------------------------------------------------*/
    
        DEFINE VARIABLE c-search AS CHARACTER NO-UNDO.
        DEFINE VARIABLE h-procedure AS HANDLE NO-UNDO.
        DEFINE VARIABLE i-cont AS INTEGER NO-UNDO.
    
        ASSIGN c-search = '*inbo*,*dibo*,*adbo*,*api*,*appc*,*upc*'
               h-procedure = SESSION:FIRST-PROCEDURE. 
    
        DO WHILE VALID-HANDLE(h-procedure):
            DO i-cont = 1 TO NUM-ENTRIES(c-search,','):
                IF h-procedure:FILE-NAME MATCHES ENTRY(i-cont,c-search) THEN DO:
                    IF VALID-HANDLE(h-procedure) THEN
                        DELETE PROCEDURE h-procedure NO-ERROR.
                END.
    
                IF NOT VALID-HANDLE(h-procedure) THEN 
                    ASSIGN h-procedure = SESSION:FIRST-PROCEDURE.
            END.
    
            ASSIGN h-procedure = h-procedure:NEXT-SIBLING NO-ERROR.
        END.
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
  4. DTerra

    DTerra Sem Pontuação

    Boa tarde Carlos,
    Tentei utilizar esta rotina que você passou e continuo com o mesmo erro. Tem mais alguma dica?
    Será que o tamanho da base de dados pode influenciar? Por exemplo se eu defini meu banco para arquivos de 2Gb e o d5 (que é o atual) já está muito perto de 2Gb...

    Estou tentando de tudo aqui e ainda não tive sucesso.

    Abraço a todos!
  5. CarlosCabral_AM

    CarlosCabral_AM Sem Pontuação

    A solução que postei é para eliminar as BO's e etc que foram instanciadas no programa, ou seja, eliminar da memória depois de ser executada atendendo a finalidade a qual foi declarada, outra coisa que poderia ser analisado é se os programas que usam TT estão todas declaradas com NO-UNDO.
  6. emr

    emr Membro Participativo

    Coloca "no-undo" nas definições de suas temp-tables.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página