Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | DATASUL | Módulo | Chão de Fábrica |
Segmento Executor |
| ||
Projeto1 | D_MAN_PCP002 | IRM1 | PCREQ-9590 |
Requisito1 | PCREQ-10158 - DATASUL - Integração Processos Estoque | Subtarefa1 |
|
Chamado2 |
| ||
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Integração dos processos de Estoque para integração do TOTVS-MES.
Definição da Regra de Negócio
RN001 - Os movimentos de estoque devem ser filtrados para envio do Saldo apenas da criação de um novo Lote do Item na integração.
RN002 - Mensagem de request do Saldo, pode ser solicitado, apenas o código do item, apenas o código do depósito ou a chave completa: estabelecimento, item, referência, depósito, lote e localização.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
TransferWarehouseAdapter Transferência Depósito (Recebimento) | [Criação] |
| - |
CE0105 - Localização de Estoque | [Alteração] | ||
AddressStockFactory | [Criação] | ||
[Alteração] | |||
[Alteração] |
Mensagens:
Validar a versão da mensagem nos adapters, para saber qual a fase da integração se refere.
Transação | Descrição | Origem | Destino | XSD |
---|---|---|---|---|
01 | Solicitação Saldo do Item(Request) | PPI | Datasul | StockLevel_2_000 |
02 | Transferência Depósito | PPI | Datasul | TransferWarehouse_1_003 |
03 | Localização/Endereço | Datasul | PPI | AddressStock_1_000 |
18 | Envio de Saldo do Item | Datasul | PPI | ItemStockLevel_1_000 |
Transação 01 - Solicitação Saldo do Item: StockLevel_2_000
Pesquisar na tabela saldo-estoq.
Quando vier apenas o código do item na solicitação:
Ϭ saldo-estoq.it-codigo = ItemCode (saldo-estoq)
Quando vier apenas o código do depósito na solicitação:
Ϭ saldo-estoq.cod-depos = WarehouseCode (saldo-estoq)
Quando vier a chave completa:
Ϭ saldo-estoq.cod-estabel = BranchId ^ saldo-estoq.it-codigo = ItemCode ^ saldo-estoq.cod-refer = ReferenceCode ^ saldo-estoq.cod-depos = WarehouseCode ^ saldo-estoq.cod-localiz = Address ^ saldo-estoq.lote = LotNumber (saldo-estoq)
Segue abaixo o ReturnContentType
Campo XSD | Campo ERP | Descrição |
CompanyId | ||
BranchId | saldo-estoq.cod-estabel | |
CompanyInternalId | ||
ItemInternalId | saldo-estoq.it-codigo | Código Item |
ReferenceCode | saldo-estoq.cod-refer | Código Roteiro |
WarehouseInternalId | saldo-estoq.cod-depos | Descrição Roteiro |
LotNumber | saldo-estoq.lote | Roteiro Alternativo |
SubLotCode | NA | Sub-lote |
SerialNumber | NA | Número de Série |
Address | saldo-estoq.cod-localiz | Localização/Endereço |
LotExpirationDate | saldo-estoq.dt-vali-lote | Validade do Lote |
CurrentStockAmount | saldo-estoq.qtidade-atu | Saldo Atual |
Transação 02 - Transferência de Depósito: TransferWarehouse_1_003
Utilização da CEAPI001.
Na mensagem de Transferência, o adapter terá que montar a tt-movto tanto para movimento de entrada quanto para saída e depois fazer a chamada da CEAPI001(verificar a criação da tt-movto no CE0206.i)
Lista | Campo XSD | Campo ERP | Descrição |
CompanyId | NA | Código da empresa | |
BranchId | tt-movto.cod-estabel | Código da Filial | |
CompanyInternalId | NA | InternalId da chave completa da empresa | |
InternalId | NA | InternalId da transferência | |
Number | tt-movto.nro-docto | Numero da Movimentação | |
RegisterDateTime | tt-movto.dt-trans | Data de Emissão da solicitação | |
ListOfTransferWarehouseItem | |||
ListOfTransferWarehouseItem | InternalId | NA | InternalId da transferência |
ListOfTransferWarehouseItem | EmissionDate | tt-movto.dt-trans | Data de Emissão |
ListOfTransferWarehouseItem | ItemCodeFrom | tt-movto.it-codigo quando tt-movto.tipo-trans = 2 | Item/Produto Origem |
ListOfTransferWarehouseItem | ItemCodeTo | tt-movto.it-codigo quando tt-movto.tipo-trans = 1 | Item/Produto Destino |
ListOfTransferWarehouseItem | ReferenceCodeFrom | tt-movto.cod-refer quando tt-movto.tipo-trans = 2 | Referência Origem |
ListOfTransferWarehouseItem | ReferenceCodeTo | tt-movto.cod-refer quando tt-movto.tipo-trans = 1 | Referência Destino |
ListOfTransferWarehouseItem | UnitOfMeasureFrom | tt-movto.un quando tt-movto.tipo-trans = 2 | Unidade de Medida Origem |
ListOfTransferWarehouseItem | UnitOfMeasureTo | tt-movto.un quando tt-movto.tipo-trans = 1 | Unidade de Medida Destino |
ListOfTransferWarehouseItem | Quantity | tt-movto.quantidade | Quantidade |
ListOfTransferWarehouseItem | WarehouseCodeFrom | tt-movto.cod-depos quando tt-movto.tipo-trans = 2 | Código do Armazém de Origem |
ListOfTransferWarehouseItem | WarehouseCodeTo | tt-movto.cod-depos quando tt-movto.tipo-trans = 1 | Código do Armazém Destino |
ListOfTransferWarehouseItem | LotNumberFrom | tt-movto.lote quando tt-movto.tipo-trans = 2 | Número do Lote de Origem |
ListOfTransferWarehouseItem | LotNumberTo | tt-movto.lote quando tt-movto.tipo-trans = 1 | Número do Lote de Destino |
ListOfTransferWarehouseItem | SubLotNumber | NA | Número do SubLote |
ListOfTransferWarehouseItem | LotExpirationDateFrom | tt-movto.dt-vali-lote quando tt-movto.tipo-trans = 2 | Data de validade do Lote |
ListOfTransferWarehouseItem | LotExpirationDateTo | tt-movto.dt-vali-lote quando tt-movto.tipo-trans = 1 | Data de validade do Lote |
ListOfTransferWarehouseItem | AddressFrom | tt-movto.cod-localiz quando tt-movto.tipo-trans = 2 | Endereço Origem |
ListOfTransferWarehouseItem | AddressTo | tt-movto.cod-localiz quando tt-movto.tipo-trans = 1 | Endereço Destino |
ListOfTransferWarehouseItem | NumberSeries | tt-movto.serie-docto | Número de série |
Outros campos que devem ser alimentados da tt-movto:
tt-movto.ct-codigo = param-estoq.ct-tr-transf
tt-movto.sc-codigo = param-estoq.sc-tr-transf
tt-movto.tipo-trans = 1 para Entradas e 2 para Saídas
tt-movto.cod-versao-integracao = 1
tt-movto.cod-prog-orig = "TransferWarehouse"
tt-movto.esp-docto = 33
Transação 18 - Envio Saldo do Item: ItemStockLevel_1_000
ATENÇÃO: não será mais enviadas informações de quantidades nesta mensagem, ela, somente tratará da criação de um novo lote.
Utilização da CEAPI001K - logo após a chamada do ponto criação de entrada epc um "Endsaldo-ceapi001estoq", inserir a seguinte validação para envio da mensagem XMLcriação da tabela temporária de Saldo-Estoq:
SE <param-cp.log-integr-ppi-mes> Ativo E <param-cp.fase-integr> >= 2 E <item.tipo-con-est> > 2 /* Apenas Itens que atualizem o campo saldo-estoq.lote */
Então
Chamada da Função de Geração de Mensagem Criar Saldo XML(passar como parâmetro o ROWID da movto-estoq)
Fim-se.
A nova função Geração de Mensagem pode ser chamada de CEAPI001MES, e fará os filtros abaixo para decidir se o saldo será enviado ao XML:definição da tabela temporária Saldo-Estoq (sugestão tt-saldo-estoq-xml com os mesmos campos da saldo-estoq).
Depois de encerrar a transação na CEAPI001K fazer a chamada para envio da mensagem XML:
SE <param-cp.log-integr-ppi-mes> Ativo E <param-cp.fase-integr> >= 2
Então
Chamada da Função de Geração de Mensagem(tt-saldo-estoq-xml)
Fim-se.
A nova função Criar Saldo XML:
Ϭ param-integr-mes.idi-entidade = 3 ^ param-integr-mes.cod-campo = <cod-estabel> ^ (param-integr-mes.des-campo = "*" v param-integr-mes.des-campo = movto-estoq.cod-estabel) (param-integr-mes x movto-estoq)
Ϭ param-integr-mes.idi-entidade = 3 ^ param-integr-mes.cod-campo = <it-codigo> ^ (param-integr-mes.des-campo = "*" v param-integr-mes.des-campo = movto-estoq.it-codigo) (param-integr-mes x movto-estoq)
Ϭ param-integr-mes.idi-entidade = 3 ^ param-integr-mes.cod-campo = <esp-docto> ^ (param-integr-mes.des-campo = "*" v param-integr-mes.des-campo = movto-estoq.esp-docto) (param-integr-mes x movto-estoq)
Ϭ param-integr-mes.idi-entidade = 3 ^ param-integr-mes.cod-campo = <cod-depos> ^ (param-integr-mes.des-campo = "*" v param-integr-mes.des-campo = movto-estoq.cod-depos) (param-integr-mes x movto-estoq)
Ϭ param-integr-mes.idi-entidade = 3 ^ param-integr-mes.cod-campo = <cod-localiz> ^ (param-integr-mes.des-campo = "*" v param-integr-mes.des-campo = movto-estoq.cod-localiz) (param-integr-mes x movto-estoq)
Ϭ param-integr-mes.idi-entidade = 3 ^ param-integr-mes.cod-campo = <fm-codigo> ^ (param-integr-mes.des-campo = "*" v param-integr-mes.des-campo = item.fm-codigo) (param-integr-mes x item)
Ϭ param-integr-mes.idi-entidade = 3 ^ param-integr-mes.cod-campo = <ge-codigo> ^ (param-integr-mes.des-campo = "*" v param-integr-mes.des-campo = item.ge-codigo) (param-integr-mes x item)
Ϭ saldo-estoq.cod-estabel = movto-estoq.cod-estabel ^ estabel ^ saldo-estoq.it-codigo = movto-estoq.it-codigo ^ saldo-estoq.cod-refer = movto-estoq.referencia ^ saldo-estoq.cod-depos = movto-estoq.cod-depos ^ saldo-estoq.cod-localiz = movto-estoq.cod-localiz ^ saldo-estoq.lote = movto-estoq.lote (saldo-estoq x movto-estoq)
Caso ainda não exista a tt-saldo-estoq-xml para a chave completa de saldo-estoq, então cria o registro igual a tabela saldo-estoq.
A nova função Geração de Mensagem pode ser chamada de CEAPI001MES, e fará os filtros abaixo para decidir se o saldo será enviado ao XML:
Fazer a leitura da tt-saldo-estoq e criar a msg.
ATENÇÃO: não será mais enviadas informações de quantidades nesta mensagem, ela, somente tratará da criação de um novo lote.
Campo XSD | Campo ERP | Descrição | |
CompanyId | NA | ||
BranchId | saldo-estoq.cod-estabel | CompanyInternalId | cod-estabel, it-codigo, cod-refer, cod-depos, lote, cod-localiz |
ItemCode | saldo-estoq.it-codigo | Código Item | |
ItemDescription | item.descricao | Descrição Item | |
ReferenceCode | saldo-estoq.cod-refer | Código Roteiro | |
WarehouseCode | saldo-estoq.cod-depos | Descrição Roteiro | |
LotCode | saldo-estoq.lote | Roteiro Alternativo | |
SubLotCode | NA | Sub-lote | |
NumberSeries | NA | Número de Série | |
AddressCode | saldo-estoq.cod-localiz | Localização/Endereço | |
LotDueDate | saldo-estoq.dt-vali-lote | Validade do Lote | |
CurrentStockAmount | Saldo Atual | ||
QuantityUpdated | Quantidade Atualizada | ||
InputOutput | Entrada(Verdadeiro) ou Saída(Falso) | ||
BookedStockAmount | Quantidade Reservada(Alocada Produção | ||
AvailableStockAmount | NA | Quantidade Disponível |
Transação 03 - Localização de estoque: AddressStock_1_000
Sempre que for criada uma nova localização no CE0105, deverá enviar a mensagem. (apenas na criação)
Lista | Campo XSD | Campo ERP | Descrição |
CompanyId | NA | Código da Empresa | |
BranchId | localizacao.cod-estabel | Código da Filial | |
CompanyInternalIdAddressInternalId | cod-estabel, cod-depos, cod-localiz | InternalId da chave completa de empresa do produto | |
WarehouseCode | localizacao.cod-depos | Código Armazém(Depósito) | |
CodeLocationCode | localizacao.cod-localiz | Código do Endereço (Localização de Estoque) | |
InternalId | NA | InternalId do Code | |
AddressStorckDescription | localizacao.descricao | Descrição do Endereço |
Protótipo de Tela
Obs.: inserir nos programas que enviam mensagens a geração do log de erros (pi-exporta-mensagem da cdapi990).
Criar nova pasta no CP0106B, para realizar o filtro de saldos que serão enviados na Integração. (gravar na tabela: <param-integr-mes>)
Para esta pasta os campos a serem gravados utilizarão <param-integr-mes.idi-entidade> = 3 // Saldo Item
No campo <param-integr-mes.cod-campo> conterá os seguintes elementos para guardar: <it-codigo>, <fm-codigo>, <ge-codigo>, <cod-estabel>, <cod-depos>, <cod-localiz> e <esp-docto>
Fluxo do Processo
Diagrama de Sequência da Integração TOTVS-MES
As sequências 6, 7 e 12, que estão representadas em Verde, no diagrama acima, foram criadas na 1.a fase da integração, mas sofrerão alterações na 2.a fase.
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
[6] Obrigatório quando o projeto for FLEX
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
...