PROGRAM-NAME não mostra o programa executado

Discussão em 'EMS , HCM e Totvs 11' iniciado por af.dums, Maio 24, 2023.

  1. af.dums

    af.dums Membro Ativo

    Pessoal, boa tarde...

    Faz um tempo que utilizo o PROGRAM-NAME para buscar os objetos que executaram alguma ação, mas não tinha me atentado que ele não registra o programa "principal", por exemplo, abaixo é uma regra que tenho na upc de trigger da tabela item, a qual alterei um registro pelo CD0903, ele me trouxe uma lista de programas, 20 que ele registra, mas ele não menciona o CD0903, apenas a viewer:
    Código:
    1 - auditlab/tw-item.p
    2 - database/tgin/twp/twin172.p
    3 - adm-update-record invwr/v42in172.w
    4 - broker-dispatch adm/objects/broker.p
    5 - dispatch invwr/v42in172.w
    6 - local-update-record invwr/v42in172.w
    7 - broker-notify adm/objects/broker.p
    8 - notify panel/p-cadsi2.w
    9 - USER-INTERFACE-TRIGGER panel/p-cadsi2.w
    10 - adeedit/_proedit.p
    11 - _edit.
    12 - pi-executa-programa-nao-cadastrado men/men702dd.p
    13 - pi-valida men/men702dd.p
    14 - pi-executa men/men702dd.p
    15 - men/men702dd.p
    16 - USER-INTERFACE-TRIGGER men/men702dc.w
    17 - USER-INTERFACE-TRIGGER men/men702dc.w
    18 - men/men702dc.w
    19 - SYSTEM-TRIGGER fwk/utils/diProgress.r
    20 - fwk/utils/diProgress.r
    
    Pergunta, conhecem alguma forma de eu chegar no programa executor, no caso o CD0903?

    Obrigado.

    Att,
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Através do

    THIS-PROCEDURE:INSTANTING-PROCEDURE.

    Esse Instanting procedure traz o Handle do programa pai, com ele dá pra pegar o CURRENT-WINDOW e o NAME
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Usando esse INSTANTING-PROCEDURE eu por exemplo, consegui pegar o valor dos campos nome-abrev e nr-pedcli do PD4050 através do PD4050B, usando um programa recursivo que encontra todos os filhos do CURRENT-WINDOW do handle do programa
  4. af.dums

    af.dums Membro Ativo

    Obrigado @rafael.andrade

    Para thin-tamplate a regra abaixo funcionou:
    Código:
    
    RUN pi-acha-principal(INPUT THIS-PROCEDURE:INSTANTIATING-PROCEDURE).
    
    PROCEDURE pi-acha-principal:
        DEF INPUT PARAM h-programa AS HANDLE NO-UNDO.
    
        DEF VAR h-aux AS HANDLE NO-UNDO.
    
        IF VALID-HANDLE(h-programa:INSTANTIATING-PROCEDURE) THEN DO:
            MESSAGE "procurando ainda" SKIP h-programa:NAME
                VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
            RUN pi-acha-principal(INPUT h-programa:INSTANTIATING-PROCEDURE).
        END.
        ELSE DO:
            MESSAGE "ultimo" SKIP h-programa:NAME
                VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
        END.
    
    END PROCEDURE.
    
    Para smart não deu certo, mas consegui o que eu precisava pelo comando:
    Código:
    ACTIVE-WINDOW:TITLE
    
    Ele retorna:
    06.9.5503 - CD0204 - 2.00.00.060 - Implantação Item - 1 - Labtest Diagnóstica SA TESTE2 - (20/06/22 - 19:30)

    Que é o que eu preciso.

    Abraços...
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    E onde tu chama esses comandos? dentro de uma UPC?
  6. af.dums

    af.dums Membro Ativo

    Dentro de uma include de uma UPC de trigger de tabela...

Compartilhe esta Página