1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[RESOLVIDO] Ajuda com API

Discussão em 'EMS , HCM e Totvs 11' iniciado por Rogerio, Junho 28, 2010.

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

    Rogerio Moderator Moderador Equipe de Suporte

    Alguem sabe como faço para popular as tabelas tt-req-sum e tt-aloca da API de Transferência de Materiais para a Produção (CPAPI014)???
  2. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Rogério,

    Estive um pouco agarrado com atividades e não consegui antes fazer um exemplo para você, eu ainda não havia feito desta maneira.

    A rotina abaixo não foi testada, mas a lógica é mais ou menos desta maneira que está sendo feita, preencha os campos com os valores e faça um teste.

    Código:
    
    {cpp/cpapi014.i}   /* tt-transf  */
    {cpp/cpapi014.i1}  /* tt-req-sum */
    
    def var c-erro      as character    no-undo.
    def var c-texto     as character    no-undo.
    
    def var h-cpapi014  as handle       no-undo.
    
    create tt-transf.
    
    assign tt-transf.tipo-trans            = ""
           tt-transf.cod-estabel           = ""
           tt-transf.data                  = ""
           tt-transf.nr-req-sum            = ""
           tt-transf.cod-depos-dest        = ""
           tt-transf.cod-localiz-dest      = ""
           tt-transf.deposito-ini          = ""
           tt-transf.deposito-fim          = ""
           tt-transf.item-ini              = ""
           tt-transf.item-fim              = ""
           tt-transf.cod-versao-integracao = 1
           tt-transf.procura-saldos        = ""
           tt-transf.loc-ent-unica         = ""
           tt-transf.conta-contabil        = ""
           tt-transf.percentual            = ""
           tt-transf.carrega-req-sum       = "".
    
    run cpp/cpapi014.p persistent set h-cpapi014 (input table tt-transf,
                                                  input-output table tt-erro,
                                                  input yes).
    
    for each tt-error:
    
        message tt-erro.cd-erro     skip
                tt-erro.mensagem    view-as alert-box.
    
    end.
    
    if return-value = "NOK" then 
        return "NOK".
        
    run pi-dados-default in h-cpapi014.
        
    find first tt-transf.
        
    run pi-valida-transf in h-cpapi014 (input no,
                                        input tt-transf.nr-req-sum,
                                        output c-erro,
                                        output c-texto). 
                               
    do i-cont = 1 to num-entries (c-erro):
    
        create tt-erro.
        assign tt-erro.cd-erro  = int(entry (i-cont, c-erro))  no-error.
    
        run utp/ut-msgs.p (input "msg",
                           input tt-erro.cd-erro,
                           input entry (i-cont, c-texto)).                       
           
        assign tt-erro.mensagem = return-value.
                  
    end.                    
        
    for each tt-error:
    
        message tt-erro.cd-erro     skip
                tt-erro.mensagem    view-as alert-box.
    
    end.
        
    if c-erro <> "" 
        then return return-value.   
        
    run pi-carrega-tt-req-sum IN h-cpapi014. /* carrega temp-table */
    
    for each tt-req-sum:
        delete tt-req-sum.
    end.
        
    run pi-retorna-tt-req-sum in h-cpapi014 (output table tt-req-sum). 
    
    for each tt-req-sum:
    
        assign tt-req-sum.lote        = ""
               tt-req-sum.cod-localiz = ""
               tt-req-sum.cod-refer   = ""
               tt-req-sum.qt-requis   = "".
        
    end.
    
    run pi-recebe-tt-req-sum in h-cpapi014 (input table tt-req-sum).
    
    run pi-processa-transf   in h-cpapi014 (input        table tt-transf,                               
                                            input-output table tt-erro,
                                            input        yes).
    
    if valid-handle(h-cpapi014) then 
        delete object h-cpapi014.
    
    
  3. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Eduardo muito obrigado, mas estou fazendo de outra forma, já que na req-sum já existe um determinado lote, eu primeiro verifico o lote nela antes de validar....

    Uma coisa, nos parametros da cpapi014, na tt-transf, nos campos ITEM-INI e ITEM-FIM, SE EU COLOCAR RESPECTIVAMENTE "" e "Z", isso quer dizer que a API fará a tansferência de todos os itens existentes naquela requisição que eu informei no campo tt-transf.nr-req-sum??? ou eu tenho que executar a API uma vez para cada item que desejo efetuar a transferência?
  4. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Cara estou tendo outro problema:

    O item origem está no deposito - ALM na localizacao - A1
    quero trnaferir ele para o deposito AND sem localizacao.
    estou populando a tt-transf assim:

    .
    .
    .
    tt-transf.cod-depos-dest = "AND"
    tt-transf.cod-localiz-dest = ""
    ...

    Mas o que está acontecendo é o seguinte, o EMS está tentando transferir para o deposito AND localizacao A1, e naum localizacao em branco como eu gostaria....

    O que pode ser isso??? será que tem mais algum campo no qual eu deva preencher?
  5. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    O código do item está parametrizado como LOCALIZAÇÃO UNICA, se estiver será obrigatório informar a localização cadastrado para o item, sendo assim, o item não pode estar parametrizado como localização unica.

    Verifique na rotina CD0138 se o parâmetro LOCALIZAÇÃO ÚNICA está selecionado, se estiver desmarque e faça um teste.
  6. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    O item não está marcado como LOCALIZAÇÃO ÚNICA...
    Um coisa que deu certo foi o seguinte, pelo programa CP0310, depois de confirmar a transferencia, abre o programa CP0310a, dai seleciono a pasta Alocações, depois e item e clico em Modificar, então vai aparecer um campo Localização Destino, apago o valor ali existente e confirmo a transação. Daí OK, transação efetuada... Mas isso eu preciso fazer via API, naum consigo transferir para uma localização em branco!!!!
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página