Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | cpp/cpapi022.p |
Considerações Gerais
Objetivo
Manutenção da tabela <saldo-op-config>, criação e alteração. Esta tabela serve para controle das quantidades produzidas e atendidas das ordens de produção de um item configurado.
Funcionamento
A API pode ser chamada somente persistente.
A tabela <saldo-op-config> deve ser manipulada somente via esta API, pois a mesma está liberada somente no EMS2.06B, embora seja possível a utilização a partir da release 2.04, sendo necessária a criação da tabela e ativação da funcionalidade na base do cliente. (Este procedimento não é padrão, por isto deve ser evitado).
A execução na forma persistente, permite apenas o “carregamento” na memória do código da API, sem a execução de nenhum método. Uma vez carregada, a API permite a execução de diversos “métodos”, que poderão ser chamados de forma interativa. Esses “métodos” são procedures que são acessadas através de um “handle” que é retornado quando o programa é executado de forma persistente.
A sintaxe para executar a API em modo persistente é:
IF NOT VALID-HANDLE(h-cpapi022) THEN RUN cpp/cpapi022.p persistent set h-cpapi022 |
A variável denominada h-cpapi022 irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.
A include cpp/cpapi022.i está definida na release 2.04, e possui três temp-tables.
<tt-reserva-op-config> definida globalmente, logo não precisa ser passada por parâmetro.
<tt-saldo-op-config> criada sem ser “like” a tabela original <saldo-op-config>, pois existe a possibilidade de utilização na release 2.04.
<tt-res-neg-op-config> definição idêntica <tt-res-neg> da cpapi001.i
Tabelas Temporárias
Nos atributos das tabelas temporárias de entrada e saída:
tt-reserva-op-config | Entrada/Saída | ||||
| - | ||||
Atributo | Tipo | Formato | Valor Inicial | Obrigatório | Evolução |
cod-estabel | Caracter | 3(x) | <aloca-reserva.cod-estabel> |
|
|
it-codigo | Caracter | 16(x) | <aloca-reserva.it-codigo> |
|
|
cod-depos | Caracter | 3(x) | <aloca-reserva.cod-depos> |
|
|
cod-refer | Caracter | 8(x) | <saldo-estoq.cod-refer> |
|
|
cod-localiz | Caracter | 10(x) | <aloca-reserva.cod-localiz> |
|
|
lote-serie | Caracter | 10(x) | <reservas.lote-serie> |
|
|
nr-ord-filha | Inteiro | >>>,>>>,>>9 | <aloca-reserva.nr-ord-produ> |
|
|
rw-reserva | Rowid |
|
|
|
|
quant-requis | Decimal | ->>>>>,>>9.9999 | <reservas.quant-orig> |
|
|
<nr-ord-filha> é o número da ordem extraída a partir da al-res-op.num-ord-prod
tt-saldo-op-config | Entrada/Saída | ||||
| - | ||||
Atributo | Tipo | Formato | Valor Inicial | Obrigatório | Evolução |
nr-ord-produ | Inteiro | >>>,>>>,>>9 | ord-prod.nr-ord-produ |
|
|
cod-estabel | Caracter | 3(x) | ord-prod.cod-estabel |
|
|
it-codigo | Caracter | 16(x) | ord-prod.it-codigo |
|
|
cod-refer | Caracter | 8(x) | ord-prod.cod-refer |
|
|
cod-depos | Caracter | 3(x) | ord-prod.cod-depos |
|
|
cod-localiz | Caracter | 10(x) | aloca-reserva.cod-localiz |
|
|
lote | Caracter | 10(x) | ord-prod.lote |
|
|
qt-produzida | Decimal | >>>>>,>>9.9999 |
|
|
|
qt-atendida | Decimal | >>>>>,>>9.9999 |
|
|
|
log-saldo-disp | Lógico |
| Não |
|
|
tt-res-neg-op-config | Entrada/Saída | ||||
| - | ||||
Atributo | Tipo | Formato | Valor Inicial | Obrigatório | Evolução |
nr-ord-produ | Inteiro | >>>,>>>,>>9 | ord-prod.nr-ord-produ |
|
|
nr-ord-filha | Inteiro | >>>,>>>,>>9 | ord-prod.nr-ord-produ |
|
|
it-codigo | Caracter | 16(x) | reservas.it-codigo |
|
|
quantidade | Decimal | >>>>>,>>9.9999 | reservas.quant-orig |
|
|
cod-depos | Caracter | 3(x) | reservas.cod-depos |
|
|
cod-localiz | Caracter | 10(x) | item.cod-localiz |
|
|
lote-serie | Caracter | 10(x) | ord-prod.lote-serie |
|
|
cod-refer | Caracter | 8(x) | ord-prod.cod-refer |
|
|
dt-vali-lote | Data | Dd/mm/aaaa | saldo-estoq.dt-vali-lote |
|
|
positivo | Lógico | Sim/Não |
|
|
|
Nro-ord-seq | Inteiro | >>>,>>>,>>9 | 0 |
|
|
codigo | Índice primário |
| nr-ord-produ, nr-ord-filha, it-codigo, cod-depos |
|
|
indicador | Índice |
| positivo |
|
|
Execução
Os seguintes métodos estão disponíveis para execução:
EMPTY TEMP-TABLE tt-saldo-op-config.
RUN buscaSaldosOpConfig IN h-cpapi022(INPUT it-codigo,
INPUT cod-estabel,
INPUT cod-refer,
OUTPUT TABLE tt-saldo-op-config).
Retorna a tt-saldo-op-config populada com os saldos conforme parâmetros informados.
RUN estornaSaldoOP IN h-cpapi022(INPUT it-codigo,
INPUT cod-estabel,
INPUT cod-depos,
INPUT cod-refer,
INPUT cod-localiz,
INPUT lote,
INPUT num-ord-des,
INPUT quantidade,
INPUT 1, /*1-Ordem Filha ou 2-Ordem Pai*/
OUTPUT TABLE tt-erro).
Estorna o saldo da OP Configurada.
run geraSaldo in h-cpapi022(input nr-ord-produ,
input cod-estabel,
input cod-depos,
input cod-localiz,
input lote,
input it-codigo,
input cod-refer,
input qt-reporte).
Gera um novo registro de saldo para Ordem Configurada, no momento do reporte.
RUN pi-atualiza-saldo IN h-cpapi022 (INPUT 1 /* 1-Requisição, 2-Devolução */,
INPUT it-codigo,
INPUT cod-depos,
INPUT cod-refer,
INPUT cod-localiz,
INPUT lote-serie,
INPUT rw-reserva,
OUTPUT i-nr-erro,
OUTPUT c-msg-erro).
IF RETURN-VALUE = "NOK":U THEN DO:
RUN pi-gera-tt-erro (INPUT i-nr-erro,
INPUT c-msg-erro).
RETURN "NOK":U.
END.
Atualiza a quantidade atendida da tabela <saldo-op-config>. Se for 1-Requisição, então soma a quantidade requisitada na quantidade atendida. Se for 2-Devolução, então diminui a quantidade devolvida da quantidade atendida.
RUN pi-troca-chave IN h-cpapi022(input rowid(tt-reserva-op-config),
input nr-ord-produ).
Altera a chave da tt-reserva-op-config, conforme a chave da ordem filha, caso a mesma já tenha sido produzida.
run saldoAutomatico in h-cpapi022(input tt-reservas.rw-reserva,
input nr-ord-produ,
input cod-estabel,
input cod-depos,
input cod-localiz,
input lote,
input it-codigo,
input cod-refer,
input quant-requis,
output table tt-erro).
Efetua o consumo automático das ordens Configuradas, obedecendo FIFO pelo número das ordens.
run saldoManual in h-cpapi022(input rowid(tt-reserva-op-config),
input nr-ord-produ,
output table tt-erro).
Efetua a efetivação do consumo das ordens Configuradas.
RUN verificaSaldo IN h-cpapi022(INPUT tt-reservas.rw-reserva,
INPUT cod-estabel,
INPUT cod-depos,
INPUT cod-localiz,
INPUT lote,
INPUT it-codigo,
INPUT cod-refer,
INPUT nr-ord-produ).
Verifica se está disponível o saldo de determinada reserva.
tt-erro | Entrada/Saída | ||||
| - | ||||
Atributo | Tipo | Formato | Valor Inicial | Obrigatório | Evolução |
i-sequen | Inteiro |
|
|
|
|
cd-erro | Inteiro |
|
|
|
|
Mensagem | Caracter | X(255) |
|
|
|