Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

OK: execução com sucesso.

Funções/Includes/Procedures Externas

Algumas includes da API podem ser acrescentadas a um programa e utilizadas, sem a necessidade de chamadas à API. São elas:

{CPP/CPAPI301.I21} – Validações

Esta Include possui a declaração de uma procedure interna que permite realizar a validação da ordem de produção sem a necessidade de chamar a api. Para que isso aconteça, basta acrescentar essa include ao programa e colocar no local pertinente a chamada para a pi-valida-ord-prod, conforme o exemplo abaixo:

Run pi-valida-ord-prod (input 1,

                                      input yes,

                                      input 0,

                                      output c-erro,

                                      ouput c-texto).

Antes da chamada dessa procedure, é necessária a criação do registro na temp-table tt-ord-prod, além dos respectivos assigns a fim de preencher a temp-table com os dados que serão validados.

O primeiro input parameter indica o tipo de movimento que se deseja validar (1-inclusão, 2-modificação, 3-Eliminação e 4-Cópia).

O segundo input parameter utilizado pela procedure indica se ela irá retornar logo após a ocorrência do primeiro erro, ou se irá acumulando todos os erros apontados, retornando apenas quando terminar todas as validações.

O terceiro input parameter indica o número da ordem de produção.

O retorno da procedure é feito através do “Return-Value”, o qual será “OK” para uma validação perfeita ou “NOK” para uma validação interrompida por qualquer tipo de erro. Os códigos de erros são retornados em forma de lista (separados por vírgulas), no output parâmetro c-erro. O Output parâmetro c-texto retorna um texto acessório que é necessário para a impressão de algumas mensagens. Quando não for necessário, é retornado em branco.

Para a exibição das mensagens, pode ser utilizado o UT-MSGS.P, na forma abaixo:

Run pi-valida-ord-prod (input 1,

                                      input yes,

                                      input 0,

                                      output c-erro,

                                      ouput c-texto)

if return-value = “nok” then do:

   do i-cont = 1 to num-entries (c-erro):

      run utp/ut-msgs.p (input "show",

                                    input int (entry (i-cont, c-erro)),

                                    input entry (i-cont, c-texto)).

   end.

   return "adm-error".

end.

Para utilização desta Include, é necessário a declaração das seguintes includes e variáveis ao programa:

{cdp/cdcfgman.i}

{cdp/cdunif001.i}

{cdp/cd0666.i}

{cpp/cpapi301.i}

{cdp/cd9203.i}

DEFINE VARIABLE l-unid-neg AS LOGICAL NO-UNDO.

{cpp/cpapi301.i4}

{cpp/cpapi301.i23}

{cpp/cpapi301.i21}

{CPP/CPAPI301.I20}  - F-Gera-Número-Op-Manual / F-Gera-Número-Op-Automática

Possui a declaração de 2 functions que não utilizam parâmetros e tem por objetivo retornar um número de ordem de produção válido. Utilizadas quando da inclusão de novas ordens de produção.


Execução Persistente:

Para a execução persistente da CPAPI301, as variáveis e tabelas temporárias devem ser definidas corretamente, conforme especificação.


define variable h-cpapi301 as handle no-undo.

run cpp/cpapi301.p persistent set h-cpapi301 (input-output table tt-ord-prod,
                                              input-output table tt-reapro,
                                              input-output table tt-erro,
                                              input        true).

run ativaExecPersistente in h-cpapi301.

run pi-processa-ordens in h-cpapi301 (input-output table tt-ord-prod,
                                         input-output table tt-reapro,
                                         input-output table tt-erro,
                                         input        true).
 if  return-value = "nok":U then do:

    for each tt-erro:

    end.
 end.

run finalizaAPI in h-cpapi301.

if valid-handle(h-cpapi301) then

    delete procedure h-cpapi301.


Funções/Includes/Procedures Externas


Algumas includes da API podem ser acrescentadas a um programa e utilizadas, sem a necessidade de chamadas à API. São elas:

  • {CPP/CPAPI301.I21} – Validações
  • {CPP/CPAPI301.I7} – Gerar Lista de Processos (apesar do nome ela retorna apenas uma consulta de processos do item)



{CPP/CPAPI301.I21} – Validações

Esta Include possui a declaração de uma procedure interna que permite realizar a validação da ordem de produção sem a necessidade de chamar a api. Para que isso aconteça, basta acrescentar essa include ao programa e colocar no local pertinente a chamada para a pi-valida-ord-prod, conforme o exemplo abaixo:


Run pi-valida-ord-prod (input 1,

                                      input yes,

                                      input 0,

                                      output c-erro,

                                      ouput c-texto).


Antes da chamada dessa procedure, é necessária a criação do registro na temp-table tt-ord-prod, além dos respectivos assigns a fim de preencher a temp-table com os dados que serão validados.

O primeiro input parameter indica o tipo de movimento que se deseja validar (1-inclusão, 2-modificação, 3-Eliminação e 4-Cópia).

O segundo input parameter utilizado pela procedure indica se ela irá retornar logo após a ocorrência do primeiro erro, ou se irá acumulando todos os erros apontados, retornando apenas quando terminar todas as validações.

O terceiro input parameter indica o número da ordem de produção.

O retorno da procedure é feito através do “Return-Value”, o qual será “OK” para uma validação perfeita ou “NOK” para uma validação interrompida por qualquer tipo de erro. Os códigos de erros são retornados em forma de lista (separados por vírgulas), no output parâmetro c-erro. O Output parâmetro c-texto retorna um texto acessório que é necessário para a impressão de algumas mensagens. Quando não for necessário, é retornado em branco.

Para a exibição das mensagens, pode ser utilizado o UT-MSGS.P, na forma abaixo:

Run pi-valida-ord-prod (input 1,

                                      input yes,

                                      input 0,

                                      output c-erro,

                                      ouput c-texto)

if return-value = “nok” then do:

   do i-cont = 1 to num-entries (c-erro):

      run utp/ut-msgs.p (input "show",

                                    input int (entry (i-cont, c-erro)),

                                    input entry (i-cont, c-texto)).

   end.

   return "adm-error".

end.


Para utilização desta Include, é necessário a declaração das seguintes includes e variáveis ao programa:


{cdp/cdcfgman.i}

{cdp/cdunif001.i}

{cdp/cd0666.i}

{cpp/cpapi301.i}

{cdp/cd9203.i}


DEFINE VARIABLE l-unid-neg AS LOGICAL NO-UNDO.


{cpp/cpapi301.i4}

{cpp/cpapi301.i23}

{cpp/cpapi301.i21}

{CPP/CPAPI301.I20}  - F-Gera-Número-Op-Manual / F-Gera-Número-Op-Automática

Possui a declaração de 2 functions que não utilizam parâmetros e tem por objetivo retornar um número de ordem de produção válido. Utilizadas quando da inclusão de novas ordens de produção.

{CPP/CPAPI301.I17} – Calcula tamanho do período, conforme o tipo de período.



{CPP/CPAPI301.I7} – Gerar Lista de Processos


{cpp/cpapi301.i4}  /* Definição da tt-proces-item          */
{cpp/cpapi301.i7}  /* GerarListaProcesItem                     */

run GerarListaProcesItem (input <Código do Item>,   // Item é o único parâmetro Obrigatório
                                          input ?,    // Quantidade ou ? - Usado para Regra processo
                                          input ?,    // Estabelecimento ou ? - Usado para Regra processo
                                          input "",   // Referencia ou vazio "" - Usado para Regra processo
                                          input ?,    // Data Validade ou ?  - Usado para Regra processo , porém caso a data seja informada, ela também filtra a validade dos Roteiros e Listas de Componente.
                                          input ?,    // Linha de Produção ou ? - Usado para Regra processo
                                          input no, //  YES - Gera lista com todos os processos, NO - Gera apenas primeiro processo
                                          input ?,    // Unidade de Negócio ou ? - Usado para Regra processo
                                          input-output table tt-proces-item).

IMPORTANTE: é necessário que exista ao menos um processo criado, ou seja, se existir roteiros e listas de componentes, porém não foi criado processos para os mesmos, não serão criados automaticamente processos, pois esta procedure é apenas de consulta{CPP/CPAPI301.I17} – Calcula tamanho do período, conforme o tipo de período.




[1] O campo <cod-unid-negoc> existe apenas a partir da release 2.06B do EMS2. Sendo que ele será utilizado apenas quando utilizada a função de Unidade de Negócio no EMS5. Caso não seja informado o valor neste campo, e a função estiver ativa, então buscará a Unidade de Negócio padrão do ItemxEstabelecimentoxDepósito ou no caso de falta da primeira no ItemxEstabelecimento.


...