Tempo aproximado para leitura: 00:09:00 min
Dúvida
Como funciona a EQAPI300 - API de Manipulação de Embarques para Faturamento?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Datasul) - Embarques (MEQ) – Todas as versões
Solução
O objetivo desta API é permitir que sejam criados e manipulados embarques e suas entidades relacionadas, como pedidos do embarque, resumos e alocação no embarque.
A API em sua versão atual deve ser executada em modo persistente e seus métodos internos acessados diretamente pelo programa que a está executando.
Exemplo de execução da API:
def var h-api as handle no-undo. run eqp/eqapi300.p persistent set h-api. |
Exemplo de execução dos métodos da API:
run pi-recebe-tt-embarque (input table tt-embarque). |
Método Básico:
A API é composta de vários métodos, agrupados por sua funcionalidade, listados abaixo:
Métodos para recepção de temp-tables:
- PI-Recebe-TT-Embarque
- PI-Recebe-TT-It-Pre-Fat
- PI-Recebe-TT-Ped-Ent
- PI-Recebe-TT-Ped-Venda
- PI-Recebe-TT-Deposito
- PI-Recebe-TT-It-Narrativa
- PI-Recebe-TT-Item-Filho
Métodos de processamento:
- PI-Trata-TT-Embarque
- PI-Trata-TT-It-Pre-Fat
- PI-Trata-TT-Ped-Ent
- PI-Trata-TT-Ped-Venda
- PI-Trata-TT-It-Narrativa
- PI-Encerra-Embarque
Métodos genéricos:
- PI-Finalizar
- PI-Devolve-TT-Erro
Definição das tem-tables utilizadas pela API:
def temp-table tt-embarque no-undo like embarque use-index ch-emb field i-sequen as int field ind-oper as int. /* 1 - Inclusão 2 - Alteração 3 - Eliminação */
def temp-table tt-ped-venda no-undo field i-sequen as int field cdd-embarq like embarque.cdd-embarq field nome-abrev like ped-venda.nome-abrevfield nr-pedcli like ped-venda.nr-pedcli field ind-oper as int /* 1 - Alocar 2 - Desalocar */
index ch-pedido is primary nome-abrev nr-pedcli.
def temp-table tt-ped-ent no-undo field nome-abrev like ped-ent.nome-abrev field nr-pedcli like ped-ent.nr-pedcli field nr-sequencia like ped-ent.nr-sequencia field it-codigo like ped-ent.it-codigo field cod-refer like ped-ent.cod-refer field qt-alocada like ped-ent.qt-alocada field qt-log-aloca like ped-ent.qt-log-aloca field qt-pedida like ped-ent.qt-pedida field qt-atendida like ped-ent.qt-atendida field dt-entrega like ped-ent.dt-entrega field nr-entrega like ped-ent.nr-entrega field hr-entrega like ped-ent.hr-entrega
&if defined(bf_dis_proc_ent) &then field nr-proc-exp like ped-ent.nr-proc-exp &endif
&if defined(bf_dis_desc_bonif) &then field num-sequencia-bonif like ped-item.num-sequencia-bonif &endif
field nat-operacao like ped-item.nat-operacao
field dec-1 like ped-ent.dec-1 field qt-a-alocar as decimal field i-sequen as int field cdd-embarq as decimal field nr-seq-registro as integer init 1
index ch-ent is primary &if defined(bf_comex206b-1) &then nr-proc-exp &endif nome-abrev nr-pedcli nr-sequencia it-codigo cod-refer nr-entrega.
def temp-table tt-it-pre-fat no-undo field cdd-embarq as decimal field nr-resumo as int field nome-abrev as char field nr-pedcli as char field nr-sequencia as int field it-codigo as char field qt-a-alocar as deci field i-sequen as int field nr-entrega as int index ch-it-pre-fat is primary cdd-embarq nr-resumo nome-abrev nr-pedcli nr-sequencia it-codigo nr-entrega.
def temp-table tt-aloc-man no-undo field cdd-embarq as decimal field nr-resumo as int field nome-abrev as char field nr-pedcli as char field nr-sequencia as int field it-codigo as char field cod-estabel as char field cod-depos as char field cod-localiz as char field lote as char field cod-refer as char field qt-a-alocar as deci field i-sequen as int field nr-entrega as int.
def temp-table tt-deposito no-undo field sequen as int field cod-depos like deposito.cod-depos index ch-aeq-dep is primary unique sequen.
def temp-table tt-it-narrativa no-undo field nome-abrev as char field nr-pedcli as char field nr-sequencia as int field it-codigo as char field cod-refer as char field nr-entrega as int field cdd-embarq as decimal field nr-resumo as int field narrativa as char.
def temp-table tt-item-filho no-undo field nome-abrev as char field nr-pedcli as char field nr-sequencia as int field it-codigo as char field cod-refer as char field nr-entrega as int field qt-a-alocar as deci index ch-entrega is primary nome-abrev nr-pedcli nr-sequencia it-codigo cod-refer nr-entrega.
def temp-table tt-aloc-comp-man no-undo field cdd-embarq as decimal field nr-resumo as int field nome-abrev as char field nr-pedcli as char field nr-sequencia as int field it-codigo as char field cod-estabel as char field cod-depos as char field cod-localiz as char field lote as char field cod-refer as char field qt-a-alocar as deci field i-sequen as int field nr-entrega as int.
def temp-table tt-aloc-neg no-undo field cod-depos as char field cod-localiz as char.
DEF TEMP-TABLE tt-deposito-local NO-UNDO FIELD sequen AS INT FIELD cod-depos LIKE deposito.cod-depos FIELD dep-wms AS LOGICAL FIELD it-codigo LIKE ITEM.it-codigo INDEX ch-seq-dep IS PRIMARY sequen.
/* temp-table auxiliar criada para não provocar erro 3241*/ DEF TEMP-TABLE tt-manut-alocacao NO-UNDO LIKE tt-aloc-man.
/* temp table usada em cotas, para o AC1002 */ DEF TEMP-TABLE tt-ped-item-cotas FIELD nr-sequencia AS INT FIELD it-codigo AS CHAR FIELD cod-refer AS CHAR.
def temp-table tt-depos-wms no-undo field cod-depos as char field log-wms as log.
DEFINE TEMP-TABLE tt-estabelec NO-UNDO FIELD cod-estabel LIKE estabelec.cod-estabel FIELD est-padrao AS INTEGER /* 0 para estabelecimento do pedido/embarque */ index codigo is primary est-padrao.
DEFINE TEMP-TABLE tt-integra NO-UNDO FIELD r-pedido AS ROWID. |
A TEMP-TABLE TT-Embarque é utilizada para efetuar a manutenção das informações gerais sobre o embarque. É uma cópia da tabela embarque mais os seguintes campos:
- i-sequen: Utilizado para relacionar o registro da TT-Embarque com os possíveis registros da TT-Erro gerados pelo processamento da TEMP-TABLE;
- ind-oper : Indicador da operação a ser efetuada com o embarque. Pode conter os seguintes valores:
1. Inclusão de um novo embarque;
2. Alteração dos dados de um embarque existente;
3. Eliminação de um embarque.
A TEMP-TABLE TT-Ped-Venda é utilizada para efetuar a alocação ou desalocação de pedidos. Possui os seguintes campos:
- i-sequen: Utilizado para relacionar o registro da TT-Ped-Venda com os possíveis registros da TT-Erro gerados pelo processamento da TEMP-TABLE;
- cdd-embarq: Indica em qual embarque será efetuada a alocação ou desalocação do pedido;
- nome-abrev: Nome abreviado do cliente do pedido a ser alocado/desalocado;
- nr-pedcli: Número do pedido do cliente a ser alocado/desalocado;
- ind-oper: Indicador da operação a ser efetuada com o embarque. Pode conter os seguintes valores:
1. Alocação do pedido;
2. Desalocação do pedido.
A TEMP-TABLE TT-Ped-Ent é utilizada para efetuar a alocação de entregas de pedidos. Possui os seguintes campos:
- nome-abrev: Nome abreviado do cliente da entrega;
- nr-pedcli: Número do pedido do cliente da entrega;
- nr-sequencia: Número de sequência do item da entrega
- it-codigo: Código do item da entrega;
- cod-refer: Referência do item da entrega;
- qt-alocada: Quantidade alocada da entrega do pedido;
- qt-log-aloca: Quantidade logicamente alocada para o pedido;
- qt-pedida: Quantidade solicitada da entrega no pedido de compra ou venda;
- qt-atendida: Quantidade faturada para a entrega no pedido;
- dt-entrega: Data de entrega do item do pedido;
- nr-entrega: Número da entrega;
- hr-entrega: Hora de Entrega do item do pedido;
- nr-proc-exp: Número do processo de exportação;
- num-sequencia-bonif: Número da sequência do item de venda quando for bonificação;
- nat-operacao: Natureza de operação;
- qt-a-alocar: Quantidade a ser alocada;
- i-sequen: Utilizado para relacionar o registro da TT-Ped-Ent com os possíveis registros da TT-Erro gerados pelo processamento da TEMP-TABLE;
- cdd-embarq: Indica em qual embarque será efetuada a alocação;
A TEMP-TABLE TT-It-Pre-Fat é utilizada para alterar a quantidade alocadas. Possui os seguintes campos:
- cdd-embarq: Indica em qual embarque será efetuado o processamento;
- nr-resumo: Número do resumo;
- nome-abrev: Nome abreviado do cliente;
- nr-pedcli: Número do pedido do cliente;
- nr-sequencia: Número de sequência do item;
- it-codigo: Código do item;
- qt-a-alocar: Quantidade a ser alocada/desalocada. Quantidades positivas alocam e negativas desalocam;
- i-sequen: Utilizado para relacionar o registro da TT-Ped-Ent com os possíveis registros da TT-Erro gerados pelo processamento da TEMP-TABLE;
- nr-entrega: Número da entrega do item do pedido.
A TEMP-TABLE TT-Deposito é utilizada para informar quais depósitos devem ser pesquisados para efetuar as alocações. Possui os seguintes campos:
- sequen: Sequência em que o depósito será pesquisado;
- cod-depos: Código do depósito a ser pesquisado.
Importante
Cada vez que é executada um método PI-Recebe-TT-???? as demais TEMP-TABLES são eliminadas dentro da API. Pode ser utilizado o programa CD0667 (cdp/cd0667.w) para a exibição da TEMP-TABLE TT-Erro. O programa recebe como parâmetro de INPUT apenas a TEMP-TABLE.
0 Comentários