Árvore de páginas

 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 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çãoDescriçãoOrigemDestinoXSD
01Solicitação Saldo do Item(Request)PPIDatasulStockLevel_2_000
02Transferência DepósitoPPIDatasulTransferWarehouse_1_003
03Localização/EndereçoDatasulPPIAddressStock_1_000
18Envio de Saldo do ItemDatasulPPIItemStockLevel_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 XSDCampo ERPDescrição
CompanyId  
BranchIdsaldo-estoq.cod-estabel 
CompanyInternalId  
ItemInternalIdsaldo-estoq.it-codigoCódigo Item
ReferenceCodesaldo-estoq.cod-referCódigo Roteiro
WarehouseInternalIdsaldo-estoq.cod-deposDescrição Roteiro
LotNumbersaldo-estoq.loteRoteiro Alternativo
SubLotCodeNASub-lote
SerialNumberNANúmero de Série
Addresssaldo-estoq.cod-localizLocalização/Endereço
LotExpirationDatesaldo-estoq.dt-vali-loteValidade do Lote
CurrentStockAmountsaldo-estoq.qtidade-atuSaldo 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)

 

ListaCampo XSDCampo ERPDescrição
 CompanyIdNACódigo da empresa
 BranchIdtt-movto.cod-estabelCódigo da Filial
 CompanyInternalIdNAInternalId da chave completa da empresa
 InternalIdNAInternalId da transferência
 Numbertt-movto.nro-doctoNumero da Movimentação
 RegisterDateTimett-movto.dt-transData de Emissão da solicitação
ListOfTransferWarehouseItem   
ListOfTransferWarehouseItemInternalIdNAInternalId da transferência
ListOfTransferWarehouseItemEmissionDatett-movto.dt-transData de Emissão
ListOfTransferWarehouseItemItemCodeFromtt-movto.it-codigo quando tt-movto.tipo-trans = 2Item/Produto Origem
ListOfTransferWarehouseItemItemCodeTott-movto.it-codigo quando tt-movto.tipo-trans = 1Item/Produto Destino
ListOfTransferWarehouseItemReferenceCodeFromtt-movto.cod-refer quando tt-movto.tipo-trans = 2Referência Origem
ListOfTransferWarehouseItemReferenceCodeTott-movto.cod-refer quando tt-movto.tipo-trans = 1Referência Destino
ListOfTransferWarehouseItemUnitOfMeasureFromtt-movto.un quando tt-movto.tipo-trans = 2Unidade de Medida Origem
ListOfTransferWarehouseItemUnitOfMeasureTott-movto.un quando tt-movto.tipo-trans = 1Unidade de Medida Destino
ListOfTransferWarehouseItemQuantitytt-movto.quantidadeQuantidade
ListOfTransferWarehouseItemWarehouseCodeFromtt-movto.cod-depos quando tt-movto.tipo-trans = 2Código do Armazém de Origem
ListOfTransferWarehouseItemWarehouseCodeTott-movto.cod-depos quando tt-movto.tipo-trans = 1Código do Armazém Destino
ListOfTransferWarehouseItemLotNumberFromtt-movto.lote quando tt-movto.tipo-trans = 2Número do Lote de Origem
ListOfTransferWarehouseItemLotNumberTott-movto.lote quando tt-movto.tipo-trans = 1Número do Lote de Destino
ListOfTransferWarehouseItemSubLotNumberNANúmero do SubLote
ListOfTransferWarehouseItemLotExpirationDateFromtt-movto.dt-vali-lote quando tt-movto.tipo-trans = 2Data de validade do Lote
ListOfTransferWarehouseItemLotExpirationDateTott-movto.dt-vali-lote quando tt-movto.tipo-trans = 1Data de validade do Lote
ListOfTransferWarehouseItemAddressFromtt-movto.cod-localiz quando tt-movto.tipo-trans = 2Endereço Origem
ListOfTransferWarehouseItemAddressTott-movto.cod-localiz quando tt-movto.tipo-trans = 1Endereço Destino
ListOfTransferWarehouseItemNumberSeriestt-movto.serie-doctoNú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 criação de um "saldo-estoq", inserir a seguinte validação para criaçã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 Criar Saldo XML(passar como parâmetro o ROWID da movto-estoq)

Fim-se.

A 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 ^ 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 XSDCampo ERPDescrição
CompanyIdNA 
BranchIdsaldo-estoq.cod-estabel 
ItemCodesaldo-estoq.it-codigoCódigo Item
ItemDescriptionitem.descricaoDescrição Item
ReferenceCodesaldo-estoq.cod-referCódigo Roteiro
WarehouseCodesaldo-estoq.cod-deposDescrição Roteiro
LotCodesaldo-estoq.loteRoteiro Alternativo
SubLotCodeNASub-lote
NumberSeriesNANúmero de Série
AddressCodesaldo-estoq.cod-localizLocalização/Endereço
LotDueDatesaldo-estoq.dt-vali-loteValidade do Lote
CurrentStockAmountsaldo-estoq.qtidade-atuSaldo Atual
QuantityUpdatedmovto-estoq.quantidadeQuantidade Atualizada
InputOutputmovto-estoq.tipo-transEntrada(Verdadeiro) ou Saída(Falso)
BookedStockAmountsaldo-estoq.qt-aloc-prodQuantidade Reservada(Alocada Produção
AvailableStockAmountNAQuantidade 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)

ListaCampo XSDCampo ERPDescrição
CompanyIdNACódigo da Empresa 
BranchIdlocalizacao.cod-estabelCódigo da Filial 
AddressInternalIdcod-estabel, cod-depos, cod-localizInternalId da chave completa de empresa do produto 
WarehouseCodelocalizacao.cod-deposCódigo Armazém(Depósito) 
LocationCodelocalizacao.cod-localizCódigo do Endereço (Localização de Estoque) 
AddressStorckDescriptionlocalizacao.descricaoDescriçã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.