Histórico da Página
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 | Protheus | Módulo | SIGAPCP |
Segmento Executor |
| ||
Projeto1 | M_MAN_PCP001 | IRM1 | PCREQ-367 |
Requisito1 | PCREQ-6132 | Subtarefa1 |
|
Chamado2 |
| ||
Release de Entrega Planejada | 12.1.8 | Réplica | 11.8 |
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
Desenvolver funções ( adapters ) que serão executadas nas rotinas de cadastro de itens, cadastro de local de estoque, cadastro de recurso, cadastro de centro de trabalho, rotinas de inclusão ordens de produção ( cadastro manual e MRP), para que os dados sejam enviados via mensagem XML ao PCFactory. O envio das mensagens se dará via WEBSERVICE.
<Nesta etapa informar o objetivo da especificação do requisito, ou seja, o que a funcionalidade deve fazer. Exemplo: Permitir que o usuário defina o percentual mínimo em espécie (dinheiro), a referência mínima para calculo dos débitos do aluno e o período de validade do parâmetro de negociação>.
(Obrigatório)
Definição da Regra de Negócio
Desenvolver rotinas para realizar o envio dos dados do Protheus para o PCFactory usando Adapters que irão gerar os XML´s que serão enviados ao Webservice da PPi MultTask.
O projetos está divido em 3 fases. Nesta primeira fase de desenvolvimento serão integrados os seguintes dados :
- Cadastro de Itens
- Cadastro de Local de Estoque ( depósitos)
- Cadastro de Centro de Trabalho
- Cadastro de Recurso
- Ordens de produção ( Operações, Roteiros, Componentes )
A integração entre os dois sistemas ocorrerá utilizando o conceito de troca de mensagens XML trafegadas sobre o protocolo HTTP ou HTTPS – com o uso do padrão SOAP (WebServices). Em seguida, deverá enviar para o Webservice disponibilizado pelo PCFactory (software MES da PPI Multitask), caracterizando o envio como síncrono.
Conforme o padrão da TOTVS, todas as mensagens trafegadas usarão o conceito de Mensagem Única – sob o layout da TOTVSMessage (que pode ser conferido em $/STABLE/xmlschema/general/totvsmsg.xsd).
Abaixo vamos detalhar o envio de cada mensagem. A criação/alteração dos adpaters bem como a alteração dos pontos de geração e alteração dos dados que deverão startar o envio das mensagens.
Mensagens TOTVS enviadas:
1 - Item
O cadastro de itens é o MATA010. Gera a tabela SB1.
A Mensagem utilizada será: Item_3_002
- Mensagem:
A mensagem possui vários tags, porém serão enviados apenas alguns ao PCFactory:
Bloco | PC-Factory | Totvs |
BusinessContentType | PlantExtCode | CompanyId (Empresa) |
BusinessContentType | PlantCode | BranchId (Filial) |
BusinessContentType | PlantAuxField1 | CompanyInternalId (Empresa+Filial) |
BusinessContentType | Code | Code (Código do item) |
BusinessContentType | Name | Name (Descrição do item) |
BusinessContentType | SecondName | ShortName ( Nome curto) |
BusinessContentType | FlgEnable | Active ( Item ativo?) |
BusinessContentType | Unit1Code | UnitOfMeasureCode (Unidade de Medida) |
BusinessContentType | EconomicLot | EconomicLot (Lote econômico) |
BusinessContentType | MinLot | MinimumLot (Lote mínimo) |
BusinessContentType | FamilyProductCode | FamilyCode (Família) |
BusinessContentType | FamilyProductName | FamilyDescription (Descrição da família) |
BusinessContentType | Unit2Code | SecondUnitOfMeasureCode (Segunda Unidade de medida) |
BusinessContentType | Unit2Factor | MultiplicationFactorValue (Fator de conversão) |
BusinessContentType | ProductTypeCode | ProductType (Tipo do Item) |
ValuesType | QtyPackage | PackingQuantity (Quantidade Embalagem) |
Algumas tags deverão ser geradas somente quando usa integração com o PC-Factory(atualmente não são geradas):
- Detail: Especificação do item. Gerar em branco. <Detail/>
- MultipleLot: Lote múltiplo do item. Não tem no Protheus. Gerar 0.
<MultipleLot>0</MultipleLot>
- CostCenterCode : Centro de custo. Usar SB1.B1_CC
- SecondUnitOfMeasureCode: Segunda unidade de medida. Usar SB1.B1_SEGUM
- PackingQuantity: Quantidade da embalagem. Usar SB1.B1_QE
As demais tags continuam sendo geradas normalmente.
Alterações necessárias:
MATA010
A execução será feita via MATA010.
O cadastro de item itens já executa a seguinte função quando o EAI está parametrizado:
Static Function IntegDef( cXML, nTypeTrans, cTypeMessage )
Local aRet := {}
aRet := MATI010(cXml, nTypeTrans, cTypeMessage)
Return aRet
função que gera XML padrão TOTVS e integra com o EAI. Atualmente executa o Adapter MATi010.
Será alterado o cadastro de itens para que também execute o adapter quando a integração com o PPI MultTask estiver ativa.
Para Para ativar o MATI010 é verificado se existe cadastrado nas rotinas do EAI usando a variável abaixo:
Local lIntegDef := FWHasEAI("MATA010",.T.,,.T.)
Para Ocorre que para integração Protheus x PC-Factory não será usado o EAI.
Além dessa validação deverá ser , desta forma a variável lIntegDef não será utilizada. Será criada uma função no PCPXfun(com o nome de PCPIntgPPI ) para a verificação de integração com o PC-Factory registrada na tabela SOD, campo OD_ATIVO. O cadastro da SOD é feito pelo PCPA109, parâmetros da integração entre Protheus x PPI.
Obs.: A função PCPXfun(PCPIntgPPI) de verificação será padrão que possa ser utilizada em outras rotinas.
A função IntegDef é executada pela FwIntegDef em diversos pontos da rotina(Exclusão, Inclusão,Alteração). Como não será obrigatório o uso do EAI deverá validar a nova variável que indica a integração com o PC-Factory.Exemplo (verificar se é melhor criar função ou executar direto o MATI010 ou até mesmo executar a IntegDef):
If (lPodeApagar .And. lIntegDef) or <integraçao-pc_factory>
If IntegDef
Setar <integraçao-pc_factory> = FALSO para não dar problema no MATI010
FwIntegDef("MATA010")
End if
If <integraçao-pc_factory>
aRet := MATI010(cXml, nTypeTrans, cTypeMessage)
End if
EndIf
Deverá ser enviado os seguintes parâmetros para o MATI010 quando integração com pc-factory:
cXml =
nTypeTrans = TRANS_SEND
cTypeMessage = EAI_MESSAGE_BUSINESS
Function MATi010
A função MATI010 é a rotina responsável por gerar o XML.
Será usada a mesma função, sendo necessário algumas adequações.
........
ElseIf nTypeTrans == TRANS_SEND
IF <integraçao-pc_factory>
//Fixo 2. Na fase 2 deverá cadastrar a versão na rotina de parâmetros
cVersao := "2"
ELSE
dbSelectArea('XX4')
aAreaXX4 := XX4->(GetArea())
XX4->(dbSetOrder(1))
IF XX4->(dbSeek(Xfilial('XX4') + PADR('MATA010', Len(XX4_ROTINA)) + PADR('ITEM', Len(XX4_MODEL))))
If Empty(XX4->XX4_SNDVER)
lRet := .F.
cXmlRet := STR0008 //"Versão não informada no cadastro do adapter."
Return {lRet, cXmlRet}
Else
cVersao := StrTokArr(XX4->XX4_SNDVER, ".")[1]
EndIf
Else
lRet := .F.
cXmlRet := STR0009 //"Adapter não encontrado!"
Return {lRet, cXmlRet}
Endif
Function v2000
Na função Static Function v2000, deverá fazer algumas validações pois a função poderá ser executada via EAI e também pela integração com o PC-Factory.
Geração do LOG:
IIf(lLog, AdpLogEAI(1, "MATI010", nTypeTrans, cTypeMessage, cXML), ConOut(STR0011)) //"Atualize o UPDINT01.prw para utilizar o log"
Quando a execução for devido a integração com o pc-factory <integraçao-pc_factory> somente irá gerar o ConOut.
Na montagem do XML de envio de mensagem única a rotina atualmente a partir do BusinessEvent (que fica dentro da tag BusinessMessage)
Para integração com PC-Factory deverá montar o cabeçalho da mensagem que consta com as tags TOTVSMessage e MessageInformation.
Abaixo modelo(seguindo padrão de integração entre PC-factory a Datasul):
<?xml version="1.0" encoding="UTF-8" ?>
<TOTVSMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmlschema/general/events/Item_3_001.xsd">
<MessageInformation version="3.001">
<UUID>d97aeb6f-1440-8c81-fc13-ec8cf87b82ad</UUID>
<Type>BusinessMessage</Type>
<Transaction>Item</Transaction>
<StandardVersion>1.0</StandardVersion>
<SourceApplication>dts11cordas8480</SourceApplication>
<CompanyId>10</CompanyId>
<BranchId>10</BranchId>
<UserId>xxx</UserId>
<Product name="Datasul" version="11.5.X"/>
<GeneratedOn>2015-07-10T16:25:21.971-03:00</GeneratedOn>
<DeliveryType>Sync</DeliveryType>
</MessageInformation>
<BusinessMessage>
<\BusinessMessage>
Onde:
TOTVSMessage xmlns:xsi Indica o xsd para gerarção do XML. Usar o conteúdo do modelo.
MessageInformation version Indica a versão da mensagem. Usar “3.001”
UUID : Sequencial usado pelo EAI. Gerar fixo “1’.
Type: Tipo da mensagem. Gerar fixo “BusinessMessage”
Transaction: Indica o que está sendo enviado. Gerar fixo “Item”
StandardVersion: Versão. Gerar fixo “1.0”
SourceApplication: Aplicação que está executando. Gerar fixo “SIGAPCP”
CompanyId: Código da empresa. Empresa que estiver logada
BranchId: Código da filial. Filial logada.
UserId: Usuário. Usuário logado.
Product: Nome do produto. Name = “MATA010” version = versão do programa.
GenerateOn = Data e hora da geração da mensagem
DeliveryType:Tipo de envio da mensagem. Gerar fixo “Sync”.
Dentro do BusinessMessage existe o bloco BusinessEvent com as seguintes tags
Entity: Entidade . Gerar fixo “Item”
Event: Inclusão/Alteração ou exclusão. Pode ser ‘delete’ ou ‘upsert’
Identification: Identificação do item.
Usar key name="InternalID" : gerar com o código do item B1_CODE
Exemplo:
</MessageInformation>
<BusinessMessage>
<BusinessEvent>
<Entity>Item</Entity>
<Event>upsert</Event>
<Identification>
<key name="IntenalID">651140049</key>
</Identification>
</BusinessEvent>
Na função está gerando key name =”Code”. Quando for integração com o Pc-Factory deve usar o IntenalID.
Dentro do BusinessMessage existe o bloco BusinessContent, que contém os dados do item.
2 - Local de Estoque
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
[ACAA040 – Parâmetros] | [Alteração] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA050 – Negociação Financeira] | [Envolvida] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA060 – Cadastro de Pedidos] | [Criação] | [Atualizações -> Acadêmico-> Cadastros] | - |
Exemplo de Aplicação:
- Criar o campo “% Mínimo Espécie” (AAA_PERESP) onde o usuário informará o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação.
- Criar o campo “Referência Mínima para Cálculo” (AAA_REFCAL) onde o usuário informará um dos 4 valores disponíveis para pagamento das mensalidades como a referência mínima para calcular o débito total do aluno.
- Criar o parâmetro MV_ACPARNE que definirá se as informações de “% Mínimo Espécie” e “Referência Mínima para Cálculo” serão obrigatórias.
- O parâmetro MV_ACPARNE deve ter as seguintes opções: 1=Obrigatório e 2=Opcional. Deve ser inicializado como opcional>.
Tabelas Utilizadas
- SE2 – Cadastro de Contas a Pagar
- FI9 – Controle de Emissão de DARF>.
Opcional
Protótipo de Tela
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
Opcional
Fluxo do Processo
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Opcional
Dicionário de Dados
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
(Opcional)
Grupo de Perguntas
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
(Opcional)
Consulta Padrão
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição | Configurações de Planejamento |
Tipo | Consulta Padrão |
Tabela | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descrição” |
Retorno | AMB->AMB_CODIGO |
(Opcional)
Estrutura de Menu
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[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. |
---|