Á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

Framework

Segmento Executor

Tecnologia

Projeto1

PDR_LD_FRW001

IRM1

PCREQ-3617

Requisito1

PCREQ-6063

Subtarefa1

PDR_LD_FRW001-84

Release de Entrega Planejada

12.1.8

Réplica

Não se aplica.

País

(X) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

Não se aplica.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 


Objetivo

 

Fornecer uma alternativa de sincronização das alterações realizadas no Identity com o Datasul quando estes estiverem integrados.

Atualmente, após ativar a integração entre Identity e Datasul, as operações de provisionamento como habilitar um usuário para utilizar o Datasul, inclui-lo em um grupo de segurança ou atribuir um item de menu ao mesmo são executadas exclusivamente no Identity, sendo necessário replicar estas alterações no Datasul para manter a consistência dos dados.

Esta replicação se dá com o Identity "empurrando" as alterações para o Datasul através de requisições HTTP usando o padrão REST (o que denominaremos como "modo push"). Como o Identity localiza-se na "nuvem", torna-se imprescindível que o Datasul esteja acessível a partir da internet, o que obriga aos clientes exporem o servidor de aplicação do Datasul.

Obviamente, esta exposição exige um cuidado maior com segurança de acesso (ajustes das políticas de acesso com liberação de portas especificas no firewall, por exemplo), o que nem sempre é possível ou aceitável pelos clientes. Neste cenário, a alternativa proposta é fazer com que o Datasul consulte o Identity, "puxando" as alterações realizadas e efetivando-as do seu lado (modo pull).


Definição da Regra de Negócio

Visão Geral

O novo modelo de sincronização, em oposição à atual técnica de pushing (empurrar, em português), utiliza a técnica de pulling (puxar), que consiste em requisições periódicas do Datasul ao Identity, com o objetivo de consumir uma fila de operações pendentes. Havendo itens nesta fila, o Datasul as recupera, efetivando-as no banco de dados. Por fim, sinaliza para o Identity que a operação foi replicada com sucesso, e este remove a operação pendente da fila.

As operações realizadas no Identity serão encaminhadas para duas filas: de aplicativo e de usuários. A fila de aplicativo conterá operações como:

  • Criação de papel (grupo de segurança) no aplicativo;
  • Alteração de dados do papel;
  • Eliminação do papel;
  • Habilitar consulta rápida ou item de menu no papel do aplicativo;
  • Desabilitar consulta rápida ou item de menu no papel do aplicativo.

A fila de usuários conterá operações como:

  • Associar (provisionar) um usuário ao aplicativo;
  • Desassociar (desprovisionar) um usuário do aplicativo;
  • Provisionar um usuário a um papel do aplicativo;
  • Desprovisionar um usuário de um papel do aplicativo;
  • Provisionar uma empresa do aplicativo a um usuário;
  • Desprovisionar uma empresa do aplicativo de um usuário.

Em relação a fila de usuários, será possível consultar previamente a lista de usuários que possuem operações pendentes no Identity. Com esta lista, o Datasul poderá buscar apenas as operações de um usuário específico, quando necessário.

A recuperação das operações pendentes nas filas ocorrerá de duas formas:

  • Periodicamente, em intervalos de 15 segundos para a fila do aplicativo, e intervalos de 30 segundos, para a fila de usuários;
  • Quando o usuário acessar o Datasul;

A recuperação periódica iniciará assim que o servidor de aplicação do Datasul (JBoss) for iniciado, caso o modo "pull" esteja ativado. Os valores dos intervalos são sugestões iniciais, que podem ser alteradas pelo usuário administrador. Serão recuperadas as operações de ambas as filas. Ao recuperar as operações da fila de usuários, serão consideradas as de todos os usuários.

A recuperação das operações no momento do acesso ao Datasul também se dará para ambas as filas. Entretanto, para a fila de usuários, serão consideradas apenas as operações do usuário que está acessando o Datasul.

A ativação do modo "pull" se dará, primeiramente, pela configuração do aplicativo no Identity, o qual passará a enviar as operações para as filas citadas, em vez de fazer requisições diretas ao Datasul. No lado do Datasul, a ativação ocorrerá atualizando-se as configurações realizadas no Identity através do Fluig Configurator, pelo recurso "One Click Configuration". Com isso, o serviço de busca das operações é iniciado, respeitando a periodicidade definida.

O serviço de busca das operações, no lado do Datasul, pode ser interrompido a qualquer tempo, editando o parâmetro correspondente no Fluig Configurator. Porém, isso não altera a parametrização do lado do Identity, que continuará enfileirando as operações realizadas. Para desativar o modo "pull" no Identity, será necessário alterar o parâmetro correspondente nas configurações do aplicativo. Em contrapartida, a desativação do modo "pull" do lado do Identity, fará com que as operações sejam enviadas diretamente ao Datasul (modo "push"), que as receberá sem maiores problemas, enquanto, paralelamente, o serviço de busca de operações se manterá ativo, fazendo pesquisas periódicas sem trazer qualquer dado.

Após o processamento das operações, o Datasul comunicará o Identity que aquela operação foi processada com sucesso e pode ser removida da fila. Caso haja algum erro no processamento da operação, ela será mantida na fila do Identity, para ser processada novamente em outra oportunidade. Em caso de erro recorrente da operação, o serviço de busca deve ser interrompido e o usuário administrador deve ser notificado para que possa atuar corretivamente, restabelecendo a normalidade do processo.

Arquitetura


Tecnicamente, a solução que implementa o modo "pull" no Datasul está organizada conforme demonstra a figura 2 da seção Fluxo do Processo.

Os componentes e suas respectivas funções estão descritos a seguir:
  • Fluig Configurator: é o responsável por fornecer a interface de gerenciamento do serviço de busca de operações, permitindo parar ou iniciar o mesmo, bem como verificar o status. É também pelo Fluig Configurator que se ativa e desativa o modo "pull".
  • FluigPullControllerResource: fornece as APIs REST para iniciar, parar e verificar o status do serviço de busca das operações. Por estar desacoplado do Fluig Configurator, pode ser acionado por qualquer outro recurso que implemente o padrão REST.
  • FluigPullApplicationListener: é o responsável por iniciar o serviço de busca das operações quando o servidor de aplicação do Datasul é iniciado, desde que o modo "pull" esteja ativado.
  • FluigPuller: implementa o serviço de busca das operações. É responsável por consultar as filas do Identity, buscar as operações para processamento e avisar ao Identity quando a operação foi processada com sucesso.
  • OperationProcessor: é o responsável por processar as operações obtidas, encaminhando-as para as rotinas correspondentes do Datasul.

Implementação


O Fluig Configurator exibirá um novo campo - Modo Pull - na aba Configurações (ver figura X da seção Protótipo de Tela), que exibirá o valor informado nas configurações do aplicativo no Identity, podendo ser modificado para desabilitar temporariamente o modo "pull" do lado do Datasul. Essa alteração também será refletida no arquivo fluig.properties, com a adição da propriedade identity.pullMode, cujos valores possíveis serão "true" ou "false".

Ao salvar as alterações realizadas pelo Fluig Configurator, o serviço de busca das operações deve ser ativado de acordo com o valor da propriedade identity.pullMode. Isso será feito pela classe SettingsService, a qual validará a propriedade e efetuará uma chamada ao serviço REST correspondente, implementado pela classe FluigPullControllerResource.

<Na tabela abaixo informe quais são as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina>.

 

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

Fluig Configurator

Âncora
pull_mode_field
pull_mode_field

Figura X - Novo campo - Modo Pull

 

Opcional

Fluxo do Processo 

Figura 1 - Ações do administrador, relacionadas ao modo pull, executadas tanto no Identity quanto no ERP.

 

Âncora
pull_architecture
pull_architecture

Figura 2 - Arquitetura básica da solução.

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.