Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
|---|
(Obrigatório)
Informações Gerais
Especificação | |||
Produto | DATASUL | Módulo | Controle Produção |
Segmento Executor |
| ||
Projeto1 | MANCORE1 | EPIC1 | MANCORE1-1034 |
STORY1 | MANCORE1-1035 | 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
Quando uma mensagem recebida pelo ERP Datasul, demora mais que o parametrizado no PC-Factory, como este último não recebeu retorno ainda, torna a enviar a mesma mensagem. Nesta situação, o ERP não consegue devolver a informação de que a primeira já foi processada, e processa também a segunda.
Assim é necessário controlar o número da mensagem que já entrou e ERP para processar, para caso o mesmo número seja novamente enviado pelo PC-Factory, o ERP avise.
Definição da Regra de Negócio
Para controlar o número da mensagem será usado a tag "key":
<key name="IDPCFactory"></key>
Quando entrar na função "MesWebService", antes de fazer a chamada dos adapters(ProductionAppointment.;StopReport;MovementsInternal;TransferWarehouse;StopReason;WasteReason), verificar se a mensagem já está gravada na tabela <control-proces-integr> utilizando o campo <cod-id-mes>.
Caso não exista, criar o registro na tabela e prosseguir na execução dos adapters. No retorno do adapter alterar o campo <id-status> na tabela (também guardar no campo <dsl-msg> as informações do returno e caso tenha dado erro, também a mensagem de erro).
Caso exista o "key" no ERP, será verificado qual seu estado atual para devolver ao PC-Factory, e não dando continuidade a execução dos adapters retornando:
- Quando ID já processado e contêm ERRO
Vamos retornar o ID PC-Factory na tag <UUID>
Na tag Message type="ERROR" code="2", vamos usar o 2 para indicar erro.
A mensagem será : ID xxxx já processado. Status: mensagem de erro”
Exemplo:
<ResponseMessage>
<ReceivedMessage>
<SentBy>PPI</SentBy>
<UUID>8858</UUID>
</ReceivedMessage>
<ProcessingInformation>
<ProcessedOn>2016-08-10T16:12:15</ProcessedOn>
<Status>ERROR</Status>
<ListOfMessages>
<Message type="ERROR" code="2">ID 8858 já processado. Status: HELP: Não existe registro relacionado a este código. | -- Invalido|</Message>
</ListOfMessages>
</ProcessingInformation>
</ResponseMessage>
- Quando ID já processado com sucesso
Vamos retornar o ID PC-Factory na tag <UUID>
Na tag Message type="ERROR" code="3", vamos usar o 3 para indicar o processamento com sucesso.
A mensagem será : ID xxxx já processado. Status: ID do ERP” .
Exemplo:
<ResponseMessage>
<ReceivedMessage>
<SentBy>PPI</SentBy>
<UUID>8859</UUID>
</ReceivedMessage>
<ProcessingInformation>
<ProcessedOn>2016-08-10T16:12:15</ProcessedOn>
<Status>ERROR</Status>
<ListOfMessages>
<Message type=" ERROR " code="3">ID 8859 já processado. Status: 2162</Message>
</ListOfMessages>
</ProcessingInformation>
</ResponseMessage>
- Quando ID já está na base mas em processamento
Vamos retornar o ID PC-Factory na tag <UUID>
Na tag Message type="ERROR" code="4", vamos usar o 4 para indicar que está em processamento.
A mensagem será : ID xxxx está sendo processo pelo ERP.
Exemplo:
-- NÃO TERMINOU DE PROCESSAR
<ResponseMessage>
<ReceivedMessage>
<SentBy>PPI</SentBy>
<UUID>8860</UUID>
</ReceivedMessage>
<ProcessingInformation>
<ProcessedOn>2016-08-10T16:12:15</ProcessedOn>
<Status>ERROR</Status>
<ListOfMessages>
<Message type=" ERROR " code="4">ID 8860 está sendo processado pelo ERP.</Message>
</ListOfMessages>
</ProcessingInformation>
</ResponseMessage>
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
MesWebService | [Alteração] | - | - |
|
| - | |
|
|
| - |
Opcional
Fluxo do Processo
Alterar a função fchman\MesWebService.p para que desça até o BusinessEvent para procurar o key name="IDPCfactory".
<BusinessMessage>
<BusinessEvent>
<Entity>Entity</Entity>
<Event>upsert</Event>
<Identification>
<key name="IDPCfactory">991203884key</key>
</Identification>
</BusinessEvent>
Dicionário de Dados
Tabela: control-proces-integr - Controle de processamento do TOTVSMES
Índice | Chave |
01 | cntrlprc_id2 |
02 |
|
03 |
|
Campo | cod-id-mes | nom-trans-mes | idi-status | dsl-msg |
Tipo | Caracter | caracter | caracter | caracter |
Tamanho | 250 | 250 | 1 | 2000 |
Valor Inicial |
| 4 | ||
Mandatório | Sim (x ) Não ( ) | Sim (x ) Não ( ) | Sim (x ) Não ( ) | Sim ( ) Não ( x ) |
Descrição | Identificação única da mensagem XML trafegada | Identifica o nome da transação(adapter) | Situação em que se encontra a mensagem | Mensagem retornada do processamento no ERP. |
Título | Identificador Integração | Nome Transação | Status | Mensagem Processamento |
Picture |
| |||
Help de Campo | Identificação única da mensagem XML trafegada | Identifica o nome da transação(adapter) | 2-Quando ID já processado e contêm ERRO 3-Quando ID já processado com sucesso 4-Quando ID já está na base mas em processamento | Mensagem de processamento retornada a partir do ERP. |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
|---|