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] CDAPI013 - Não Funciona

Discussão em 'EMS , HCM e Totvs 11' iniciado por fernandofarah, Fevereiro 7, 2018.

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

    fernandofarah Membro Participativo

    Bom dia.

    Algué teria algum exemplo de utilização desta API? Eu montei tudo, porém não acontece nada. Não aprova o crédito para o Pedido.

    Código:
    /*------------------------------------------------------------------------------
      Purpose:    
      Parameters:  <none>
      Notes:      
    ------------------------------------------------------------------------------*/
    define VARIABLE dt-aprov as DATE INIT TODAY NO-UNDO .
    define variable c-desc-motivo as CHARACTER NO-UNDO.
    define variable c-desc-motivo-yes as CHARACTER NO-UNDO.
    define variable l-ok as LOGICAL NO-UNDO.
    
    EMPTY TEMP-TABLE tt-param-aval.
    
    FOR EACH tt-ped-venda NO-LOCK WHERE tt-ped-venda.log-1 = YES:
        FIND FIRST emitente NO-LOCK WHERE emitente.cod-emitente = tt-ped-venda.cod-emitente NO-ERROR.
        create tt-param-aval.
        assign tt-param-aval.nr-pedido     = tt-ped-venda.nr-pedido
               tt-param-aval.param-aval       = 1                /*Parâmetro de avaliação (1 - Atraso, 2 - Limite, 3 - Ambos)*/
               /*tt-param-aval.cod-sit-aval  = tt-ped-venda.cod-sit-aval                /*integer    Situação do pedido avaliado*/*/
               tt-param-aval.embarque       = YES                /*logical    Avaliação sendo feita no Embarque (Faturamento) ou Implantação do Pedido*/
               tt-param-aval.efetiva       = YES                    /*logical    Efetiva a avaliação de credito ou apenas faz simulação*/
               tt-param-aval.retorna       = YES                    /*logical    Retorna logo após a primeira ocorrência encontrada ou não*/
               tt-param-aval.reavalia-forc = NO                /*logical    Avalia Pedidos aprovados de maneira forçada*/
               tt-param-aval.vl-a-avaliar  = tt-ped-venda.vl-tot-ped                /*decimal    Valor a ser abatido do crédito do cliente*/
               tt-param-aval.saldo-lim       = emitente.lim-cred                /*decimal    Armazena o saldo do limite de crédito sem o pedido em questão*/
               tt-param-aval.usuario       = c-usuario                    /*character    Usuário corrente*/
               tt-param-aval.programa      = "cscp001aa".
    END.
    
    IF CAN-FIND (FIRST tt-ped-venda NO-LOCK WHERE tt-ped-venda.log-1 = YES) THEN
    DO:
        run cdp/cdapi013.p (input-output table tt-param-aval, input-output table tt-erros-aval).
    
        RUN dibo/bodi261.r PERSISTENT SET h-bodi261 NO-ERROR.
        RUN atualizarcotaspedido IN h-bodi261(INPUT ROWID(tt-ped-venda),
                                              INPUT 1,
                                              INPUT TABLE tt-ped-item-cotas).
    
        find first tt-erros-aval where tt-erros-aval.cod-emitente = ped-venda.cod-emitente no-lock no-error.
        if  avail tt-erros-aval then do on endkey undo, retry:
             run utp/ut-msgs.p (input "show",
                                input 8259,    /* Número da mensagem de Erro */
                                input ped-venda.nr-pedcli  + "~~" +
                                      ped-venda.nome-abrev + "~~" +
                                      ped-venda.desc-bloq).
           
             delete tt-erros-aval.
       
        end.
    END.
    ELSE
    DO:
        MESSAGE "Nenhum Pedido foi Selecionado"
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END.
    END PROCEDURE.
    
  2. cp.andrade

    cp.andrade Sem Pontuação

    Código:
    Fernando, eu tenho esta procedure que rodo no momento de completar o pedido de venda, funciona.. porém só não consigo eliminar a mensagem de advertência (8259).
    PROCEDURE pi-aprova-pedido:
        DEFINE INPUT PARAM p-usuario AS CHAR NO-UNDO.
        DEFINE INPUT PARAM p-motivo  AS CHAR NO-UNDO.
        DEFINE INPUT PARAM c-rowids  AS CHAR NO-UNDO.
    
    
        def var  tb-aprovbloq-desconto     as logical no-undo. /* Toggle-box Desconto */  
        def var  dat-lib-desconto          as date    no-undo. /* Data Desconto */
        def var  desc-lib-desconto         as char    no-undo. /* Motivo Bloqueio Desconto */
        def var  usuario-desconto          as char    no-undo. /* Usuario Desconto - tela */
    
        def var  tb-aprovbloq-cotas        as logical no-undo. /* Toggle-box Cotas */
        def var  dat-alter-sit             as date    no-undo. /* Data Alteracao Cotas */
        def var  motivo-quota              as char    no-undo. /* Motivo Alteracao Cotas */
        def var  usuario-cotas             as char    no-undo. /* Usuario Cotas - tela */
    
        def var  tb-aprovbloq-preco        as logical no-undo. /* Toggle-box Preco */  
        def var  dat-aprov-preco           as date    no-undo. /* Data Preco */
        def var  desc-lib-preco            as char    no-undo. /* Motivo Preco */
        def var  usuario-preco             as char    no-undo. /* Usuario Preco - tela */
    
        IF NOT VALID-HANDLE(h-bodi159) THEN
           RUN dibo/bodi159.p PERSISTENT SET h-bodi159.
        ELSE DO:
            DELETE PROCEDURE h-bodi159.
            RUN dibo/bodi159.p PERSISTENT SET h-bodi159.
        END.
    
        RUN openQueryStatic        IN h-bodi159 (INPUT "Default":U).
    
      
    
        RUN pi-acompanhar IN h-acomp-esp(INPUT "Aprovando Pedidos...").
    
        RUN setUserLog IN h-bodi159(INPUT p-usuario).
        /*Aprovando C‚dito do Pedido de Vendas*/
        RUN validaPermissoesUsuario IN h-bodi159( input YES          ,                    /* Toggle-box Credito */
                                                  input TODAY        ,                    /* Data Credito */
                                                  input p-motivo, /* Motivo Alteracao Credito */
                                                  input p-usuario    ,               /* Usuario Credito - tela */
                                                  input tb-aprovbloq-desconto,     /* Toggle-box Desconto */  
                                                  input dat-lib-desconto     ,     /* Data Desconto */
                                                  input desc-lib-desconto    ,     /* Motivo Bloqueio Desconto */
                                                  input usuario-desconto     ,     /* Usuario Desconto - tela */
                                                  input tb-aprovbloq-cotas   ,     /* Toggle-box Cotas */
                                                  input dat-alter-sit        ,     /* Data Alteracao Cotas */
                                                  input motivo-quota         ,     /* Motivo Alteracao Cotas */
                                                  input usuario-cotas        ,     /* Usuario Cotas - tela */
                                                  input tb-aprovbloq-preco   ,     /* Toggle-box Preco */  
                                                  input dat-aprov-preco      ,     /* Data Preco */
                                                  input desc-lib-preco       ,     /* Motivo Preco */
                                                  input usuario-preco        ,     /* Usuario Preco - tela */
                                                  input "apr"                ,     /* Variavel informa se ² aprovacao ou reprovacao */
                                                  input c-rowids             ,    
                                                  output table RowErrors).
    
    
         IF CAN-FIND(FIRST RowErrors) THEN DO:
    
             IF VALID-HANDLE(h-acomp-esp) THEN
                    RUN pi-finalizar IN h-acomp-esp.
    
    
                FOR EACH rowErrors:
                    PUT string(rowErrors.ErrorNumber) + " - " + rowErrors.ErrorDescription FORMAT "x(100)" SKIP.
                END.
    /*          {method/showmessage.i1}                                                     */
    /*                                                                                      */
    /*         /*--- Seta cursor do mouse para normal ---*/                                 */
    /*         SESSION:SET-WAIT-STATE("":U).                                                */
    /*                                                                                      */
    /*         /*--- Transfere temp-table RowErrors para a tela de mensagens de erros ---*/ */
    /*         {method/showmessage.i2 &Modal="Yes"}                                         */
               
            RETURN "NOK".
         END.
    
         DELETE PROCEDURE h-bodi159.
         RETURN "OK".
    
    END PROCEDURE.
    don.junior curtiu isso.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página