Árvore de páginas

Versões comparadas

Chave

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

 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-10157 10158 - DATASUL - Integração Processos ManufaturaEstoque

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 Cadastros Manufatura dos processos de Estoque para integração do TOTVS-MES.

 

Definição da Regra de Negócio

RN001 - Quando a integração estiver ligada, ao criar um novo item ou modificar a estrutura do mesmo, verificar se o item integra (tabela param-integr-mes.idi-entidade = 2). Caso não exista registro na tabela, então todos os itens e estruturas serão considerados.

RN002 - Para seleção dos itens/estruturas válidos serão utilizados três campos: código do item, família material e grupo de estoque. Caso mais de um campo esteja preenchido na tabelas param-integr-mes, será considerado na busca o operador lógico "OU". Assim mesmo que um item tenha apenas um dos campos como verdadeiro ele será selecionado.

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.

 

 RN003 - O campo Rejeição é estrangeiro e obrigatório na inclusão de um Refugo.

 

 

EN0109 - Onde se Usa ItemSF0104 - Centro de TrabalhoAlteração

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

TransferWarehouseAdapter

Transferência Depósito (Recebimento)

EN0105 - Estrutura Item

[AlteraçãoCriação]

 

-

CE0105 - Localização de Estoque[Alteração] 

-

 
AddressStockFactory[Criação]  
 

-

SF0106 - Motivo de Parada[Alteração]  
SF0107 - Motivo de Refugo [Alteração]  
CD0204 - Item[Alteração]  
CDAPIItem - API de Item usado pelo WorkFlow de Item[Alteração]  
BOMF510 - BO Motivo de Parada[Alteração]  
CDAPI990.i1[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

Protótipo de Tela

 

Inserir na CDAPI990.i1(pi-exporta-mensagem) a validação de somente exportar quando o parâmetro esteja ativo(param-cp.gera-log-erro).

Corrigir os programas que estão comentados para chamada da pi-exporta-mensagem:

invwr\v01in084.w
invwr\v16in144.w
invwr\v34in172.w

 

As funções de estrutura (EN0105, e EN0109) sempre que alterarem alguma estrutura de um item, filtrarão por <param-integr-mes.idi-entidade> = 2, para envio da mensagem xml (ItemStructure).

As funções de item (cd0204 e cdapiitem) sempre que criarem um novo item, filtrarão por <param-integr-mes.idi-entidade> = 2, para envio da mensagem xml.

Obs.: Os campos que serão usados para filtrar estrutura e item: <it-codigo>, <ge-codigo> e <fm-codigo> (igualar com <param-integr-mes.cod-campo>)

 

As funções de centro de trabalho, motivo de parada, motivo de refugo, quando alterarem qualquer registro, enviarão respectivamente a mensagem xml (Machine, StopReason, WasteReason).

Criar adapters de Recebimento de mensagem para as tabelas de motivo de parada, motivo de refugo(o campo Rejeição é estrangeiro e obrigatório na inclusão. Definir qual será o padrão para este campo, caso o Refugo seja alimentado a partir do TOTVS-MES ao ERP).

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>

Image Added

 

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.                                                             

 

...