Urgente Adicionar registros em browse via UPC

Discussão em 'EMS , HCM e Totvs 11' iniciado por Clayton Oliveira, Fevereiro 13, 2023.

  1. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Cara, tem que analisar todos os eventos, pra conseguir te ajudar nesse caso eu praticamente teria que fazer tudo que vc fez até agora, isso demandaria muito tempo.

    A minha dica é essa, analisa todos os eventos pra saber em que momento o programa está se perdendo
  2. Clayton Oliveira

    Clayton Oliveira Membro Participativo

    Entendi. Vou analisar aqui...
  3. Clayton Oliveira

    Clayton Oliveira Membro Participativo

    Rafael,

    Consegui resolver o problema acima. Só que ocorreu uma outra situação.

    Adicionando 1 ou mais itens na tela abaixo. O itens são de notas fiscais diferentes ok.

    Só que pelo que analisei em fontes antigos desta tela, ela só trabalha com itens da mesma nota posicionando no browse. Quando adiciono apenas itens da mesma nota o erro não ocorre.
    O Erro abaixo ocorre quando vou clicar no OK pra confirmar o adicionamento dos itens á tela anterior (FT4003).
    Mesmo ocorrendo este erro, dá prosseguimento normal e os itens são adicionados com sucesso na tela anterior. É o que eu preciso.
    Será que tem como via código inibir esta mensagem de erro na tela ?
    Todo este processo estou fazendo via UPC, e já tentei colocar um NO-ERROR na sintax abaixo, mas não é permitido utilizar desta forma:
    apply 'choose' to h-bt-conf NO-ERROR.
    Obs.: Este linha simula o click do botão OK demarcado no print abaixo.

    Obrigado.

    upload_2023-3-14_11-4-26.png
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Essa mensagem está indicando que o registro que está em tela também está gravado fisicamente em algum banco, vou dar uma olhada para ver se acho alguma coisa aqui
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Informações que encontrei:

    No FT4011
    Código:
    RUN dibo/bodi515.p PERSISTENT SET h-bodi515.
    RUN goToKeyDoctoRef IN h-bodi515 (INPUT tt-wt-docto.cod-estabel,
                                      INPUT tt-wt-docto.serie,
                                      INPUT tt-wt-docto.seq-wt-docto,
                                      INPUT tt-wt-docto.cod-emitente,
                                      INPUT tt-wt-docto.nat-operacao,
                                      INPUT 3,
                                      INPUT tt-itens-devol.serie-docto,
                                      INPUT tt-itens-devol.nro-docto,
                                      INPUT tt-itens-devol.cod-emitente).
    
    Dentro do dibo/bodi515.p
    Código:
    PROCEDURE goToKeyDoctoRef :
    /*------------------------------------------------------------------------------
      Purpose:     Reposiciona registro com base no ¡ndice ntfscdc-id
      Parameters: 
                   recebe valor do campo cod-estab
                   recebe valor do campo cod-serie
                   recebe valor do campo cod-nota-fisc
                   recebe valor do campo cdn-emitente
                   recebe valor do campo cod-natur-operac
                   recebe valor do campo idi-tip-dado
                   recebe valor do campo num-seq
      Notes:       
    ------------------------------------------------------------------------------*/
        DEFINE INPUT PARAMETER pcod-estab LIKE nota-fisc-adc.cod-estab NO-UNDO.
        DEFINE INPUT PARAMETER pcod-serie LIKE nota-fisc-adc.cod-serie NO-UNDO.
        DEFINE INPUT PARAMETER pcod-nota-fisc LIKE nota-fisc-adc.cod-nota-fisc NO-UNDO.
        DEFINE INPUT PARAMETER pcdn-emitente LIKE nota-fisc-adc.cdn-emitente NO-UNDO.
        DEFINE INPUT PARAMETER pcod-natur-operac LIKE nota-fisc-adc.cod-natur-operac NO-UNDO.
        DEFINE INPUT PARAMETER pidi-tip-dado LIKE nota-fisc-adc.idi-tip-dado NO-UNDO.
        DEFINE INPUT PARAMETER pc-serie-referado LIKE nota-fisc-adc.cod-ser-docto-referado NO-UNDO.
        DEFINE INPUT PARAMETER pc-docto-referado LIKE nota-fisc-adc.cod-docto-referado NO-UNDO.
        DEFINE INPUT PARAMETER pc-emit-referado LIKE nota-fisc-adc.cdn-emit-docto-referado NO-UNDO.
        FIND FIRST bfnota-fisc-adc WHERE 
            bfnota-fisc-adc.cod-estab = pcod-estab AND 
            bfnota-fisc-adc.cod-serie = pcod-serie AND 
            bfnota-fisc-adc.cod-nota-fisc = pcod-nota-fisc AND 
            bfnota-fisc-adc.cdn-emitente = pcdn-emitente AND 
            bfnota-fisc-adc.cod-natur-operac = pcod-natur-operac AND 
            bfnota-fisc-adc.idi-tip-dado = pidi-tip-dado AND 
            bfnota-fisc-adc.cod-ser-docto-referado = pc-serie-referado AND
            bfnota-fisc-adc.cod-docto-referado = pc-docto-referado AND
            bfnota-fisc-adc.cdn-emit-docto-referado = pc-emit-referado NO-LOCK NO-ERROR.
        /*--- Verifica se registro foi encontrado, em caso de erro ser  retornada flag "NOK":U ---*/
        IF NOT AVAILABLE bfnota-fisc-adc THEN 
            RETURN "NOK":U.
        /*--- Reposiciona query atrav‚s de rowid e verifica a ocorrˆncia de erros, caso
              existam erros ser  retornada flag "NOK":U ---*/
        RUN repositionRecord IN THIS-PROCEDURE (INPUT ROWID(bfnota-fisc-adc)).
        IF RETURN-VALUE = "NOK":U THEN
            RETURN "NOK":U.
        RETURN "OK":U.
    END PROCEDURE.
    
    Acho que isso vi te dar a luz final pra resolver o seu problema

Compartilhe esta Página