Sie sind auf Seite 1von 131

Construindo Produes com Ensemble

Guia do Aluno

Reviso 1.2 - 31/09/2007

Construindo Produes com Ensemble

InterSystems do Brasil

Construindo Produes com Ensemble

COPYRIGHT NOTICE
Copyright InterSystems Corporation
1997-2006
All rights reserved
NOTICE
PROPRIETARY CONFIDENTIAL

This document contains trade secret and confidential information which is the property of InterSystems Corporation,
One Memorial Drive, Cambridge, MA 02142, or its affiliates, and is furnished for the sole purpose of the operation
and maintenance of the products of InterSystems Corporation. No part of this publication is to be used for any other
purpose, and this publication is not to be reproduced, copied, disclosed, transmitted, stored in a retrieval system or
translated into any human or computer language, in any form, by any means, in whole or in part, without the express
prior written consent of InterSystems Corporation.
The copying, use and disposition of this document and the software programs described herein is prohibited except
to the limited extent set forth in the standard software license agreement(s) of InterSystems Corporation covering
such programs and related documentation. InterSystems Corporation makes no representations and warranties
concerning such software programs other than those set forth in such standard software license agreement(s). In
addition, the liability of InterSystems Corporation for any losses or damages relating to or arising out of the use of
such software programs is limited in the manner set forth in such standard software license agreement(s).
THE FOREGOING IS A GENERAL SUMMARY OF THE RESTRICTIONS AND LIMITATIONS IMPOSED BY
INTERSYSTEMS CORPORATION ON THE USE OF, AND LIABILITY ARISING FROM, ITS COMPUTER
SOFTWARE. FOR COMPLETE INFORMATION REFERENCE SHOULD BE MADE TO THE STANDARD
SOFTWARE LICENSE AGREEMENT(S) OF INTERSYSTEMS CORPORATION, COPIES OF WHICH WILL BE
MADE AVAILABLE UPON REQUEST.
InterSystems Corporation disclaims responsibility for errors which may appear in this document, and it reserves the
right, in its sole discretion and without notice, to make substitutions and modifications in the products and practices
described in this document.
Cach, InterSystems Cach, Cach SQL, Cach ObjectScript, Cach Objects, ISM, MSM, DSM, and DTM are
trademarks of InterSystems Corporation.
All other brand or product names used herein are trademarks or registered trademarks of their respective companies
or organizations.
For Support questions about any InterSystems products, contact the InterSystems Worldwide Support Center:
Phone:
US: +1 617 621-0700
Europe: +44 (0) 1753 830-077
Fax:
US: +1 617 374-9391
Europe: +44 (0) 1753 861-311

InterSystems do Brasil

Construindo Produes com Ensemble

InterSystems do Brasil

Construindo Produes com Ensemble

Construindo Produes com Ensemble

Sumrio:
Mdulo 1 - Viso Geral .............................................................................................................................................. 10
Mdulo 2 - Portal de Administrao e Produes ................................................................................................. 16
Mdulo 3 - Mensagens ............................................................................................................................................... 22
Mdulo 4 - Business Operation ................................................................................................................................ 28
Mdulo 5 - Business Process.................................................................................................................................... 36
Mdulo 6 - Contexto (Context) no Business Process ........................................................................................... 44
Mdulo 7 - Business Service..................................................................................................................................... 50
Mdulo 8 - Data Transformation ............................................................................................................................... 56
Mdulo 9 - Business Processing Model .................................................................................................................. 62
Mdulo 10 - Dashboards............................................................................................................................................ 96
Mdulo 11 - Workflow ............................................................................................................................................... 106
Mdulo 12 - Business Rules.................................................................................................................................... 116

InterSystems do Brasil

Construindo Produes com Ensemble

InterSystems do Brasil

Construindo Produes com Ensemble

Construindo Produes com Ensemble

InterSystems do Brasil

Construindo Produes com Ensemble

InterSystems do Brasil

Construindo Produes com Ensemble

Lembre-se por favor

InterSystems do Brasil

Desligue ou silencie seu celular ou


pagger durante as aulas.
Responda a chamadas importantes fora
da sala de aula ou em local apropriado.
Responda chamadas menos importantes
durante os exerccios ou breaks

Construindo Produes com Ensemble

InterSystems do Brasil

Construindo Produes com Ensemble

dulo 1 - Viso Geral

Mdulo 1 - Viso Geral

InterSystems do Brasil

10

Construindo Produes com Ensemble

InterSystems do Brasil

11

Construindo Produes com Ensemble

Viso Geral

Business Processing Model.


Demonstrao.
Arquitetura do Ensemble

Ensemble

Business
Operations
Aplicaes Externas

Business
Process

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

En se m ble

O Ensemble uma plataforma de uso fcil para rpido desenvolvimento, distribuio e


monitoramento de solues de EAI.
EAI Enterprise Application Integration.
Para uma viso geral do Ensemble e do EAI, consulte a documentao Introducing
Ensemble.

Uma soluo de EAI usando o Ensemble inclui os seguintes componentes:


Business service aceita uma entrada externa ao Ensemble. Pode usar um adaptador
para fazer isso.
Business process trabalha totalmente dentro do Ensemble.
Business operation acessa dados fora do Ensemble. Pode usar um adaptador para
fazer isso.

As aplicaes que acessam o Ensemble so chamadas de aplicaes cliente, enquanto aquelas


que so acessadas por business operation so chamadas de aplicaes externas.

InterSystems do Brasil

12

Gerenciamento

InterSystems do Brasil

Conexo
Orquestrao

Coordenao

Abstrao

Armazenamento

Integrao e
Desenvolvimento

Monitoramento
Monitoramento
dasAtividades
Atividades
das
doNegcio
Negcio
do

Gerenciamento
Gerenciamento
deBusiness
Business
de
Process
Process

Aplicaes
Aplicaes
Compostas
Compostas

Coordenaode
de
Coordenao
Transao
Transao

Construindo Produes com Ensemble

Demonstrao

Arquitetura do Ensemble

13

Construindo Produes com Ensemble

Os benefcios de usar o Ensemble incluem:


Coordenao de Transao - O mecanismo de transmisso de mensagens do Ensemble
equipado para assegurar a coordenao da transao entre vrias aplicaes.
Aplicaes Compostas - O ambiente de desenvolvimento do Ensemble fornece a cola
que permite a voc combinar recursos de softwares existentes para criar aplicaes
compostas inteiramente novas.
Gerenciamento de Business Process - O Ensemble permite a coordenao de business
processes encontrados em aplicaes distintas para automatizar funes de negcio de
auto nvel.
Monitoramento das Atividades do Negcio (Business Activity Monitoring, ou BAM)
Tecnologias de integrao de alta performance mais os recursos de customizao
possibilitam infra-estrutura prover uma viso, em tempo real do processo integrado da
empresa.

Assim com todas as solues bem sucedidas de EAI, o Ensemble direciona as tarefas crticas de
EAI, definidas como abaixo:
Armazenamento - O Ensemble inclui um poderoso banco de dados orientado a objetos
que pode ser usado para a persistncia das mensagens, registro de eventos,
transformaes dos dados e mais.
Conexo - Adaptadores permitem a comunicao do Ensemble com uma grande
variedade de aplicaes, tecnologias e fontes de dados.
Abstrao Toda comunicao com e para dentro do Ensemble executada usando
uma camada uniforme de abstrao baseada em objetos.
Coordenao - O Ensemble inclui um mecanismo de mensagens baseado em objetos
que fornece entrega, roteamento baseado em contedo e persistncia de mensagens.
Orquestrao - O Ensemble inclui habilidade para desenvolver processos complexos de
negcio que orquestram operaes entre mltiplas aplicaes externas.
Desenvolvimento - O Ensemble possui ambiente de programao completo.
Gerenciamento - O Ensemble fornece acesso completo ao gerenciamento de todos os
componentes de software desenvolvidos usando Ensemble.
Para detalhes sobre a Arquitetura do Ensemble, consulte o Captulo 3, O que Ensemble?
Na Introduo do Ensemble. O apndice tem tambm informaes adicionais da arquitetura do
Ensemble.

InterSystems do Brasil

14

Construindo Produes com Ensemble

Arquitetura do Ensemble

InterSystems do Brasil

15

Construindo Produes com Ensemble

Mdulo 2 Portal de Administrao e Produes

Mdulo 2 Portal de Administrao e


Produes

InterSystems do Brasil

16

Construindo Produes com Ensemble

InterSystems do Brasil

17

Construindo Produes com Ensemble

Viso Geral

Definies.
Demonstrao.
Reviso:
Pgina do Portal de Administrao.
Implementao de Produo

Portal de Administrao

O Portal de Administrao oferece facilidades de configurao, gerenciamento e monitoramento


de aplicaes Ensemble.
Pode ser acessado das seguintes formas:
Cubo
Ensemble Management
Studio, Utilities
Ensemble Management
Pelo Browser - http://127.0.0.1:1972/csp/ensemble/UtilEnsHome.csp
Uma senha necessria para acessar o Portal de Administrao. Por padro, voc pode usar
username/password como _SYSTEM/sys.

InterSystems do Brasil

18

Construindo Produes com Ensemble

Produo (Production)

Define todos os componentes Ensemble para integrao.

Business
Operations
Aplicaes Externas

Business
Processes

Inbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

En se m ble

Uma produo um pacote de classes e itens de configurao que resolvem um problema


especfico de EAI.
Uma produo deve primeiramente ser criada no Studio. Pode ento ser configurada atravs do
Studio ou do Portal de Administrao.
A configurao de uma produo envolve especificar:
Business services, business processes e business operations que fazem parte
da produo.
Cada componente tem suas configuraes.
Configuraes de Adaptadores, se necessrio.

InterSystems do Brasil

19

Construindo Produes com Ensemble

Demonstrao

Reviso do Portal de Administrao

InterSystems do Brasil

20

Construindo Produes com Ensemble

A pgina de Produes (Productions) permite iniciar, finalizar e configurar uma produo.


A pgina de Event Log exibe erros e mensagens informativas da produo.
A pgina de Message Browser exibe todas as mensagens enviadas em uma produo. Tem
tambm a capacidade de rastrear graficamente as mensagens.
A pgina de Testing Service permite testar business processes e business operations.

Testing Service deve estar habilitado para uma produo. Isto pode ser feito no Studio
ou no portal de Administrao.
O Portal de Administrao trabalha com IE 6.0 e superiores.

Help

Se voc parar o cursor sobre um nome de campo na pgina da configurao do portal de


Administrao, uma janela de ajuda de texto fornecer uma descrio do campo.

Reviso de Produo

Herda de Ens.Production.
TestingEnabled no deve estar ativo no ambiente de produo

InterSystems do Brasil

21

Construindo Produes com Ensemble

Mdulo 3 Mensagens

Mdulo 3 Mensagens

InterSystems do Brasil

22

Construindo Produes com Ensemble

InterSystems do Brasil

23

Construindo Produes com Ensemble

Mensagem

Business
Operations

Aplicaes Externas

Business
Processes

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

En se m ble

Mensagem o mtodo de comunicao entre componentes dentro de uma aplicao Ensemble.


Mensagens so usadas entre business services, business processes e business operations.

Mensagem

Mtodo de comunicao entre componentes.


Request (requisio) ou Response (resposta).

Mensagens no so usadas como


mecanismo de comunicao entre:
Business service e aplicao cliente.
Business operation e aplicao
externa.
Uma mensagem uma resposta (response)
ou requisio (request).
Cada mensagem tem um cabealho e um
corpo.
As propriedades do Cabealho so
as mesmas para todas as mensagens.
As propriedades do Corpo so
especficos para a aplicao para cada tipo
de mensagem.

InterSystems do Brasil

Ca be a lh o
( h e a de r )

Cor po
( body)

Mesm as propriedades
Tipo: Request ou
Response
I sError: 0 ou no- 0
Aplicao - propriedades
especficas
I D: nm ero
Nom e: st ring

24

Construindo Produes com Ensemble

Demonstrao

InterSystems do Brasil

25

Construindo Produes com Ensemble

Implementao

Todas as mensagens so subclasses de Ens.Request ou Ens.Response.

Uma requisio nem sempre requer uma resposta.


Todas as mensagens so persistentes. Isto permite que seja possvel pesquis-las e visualizlas.
Mensagens de requisio (Request) podem ser enviadas de forma sncrona ou assncrona.

Mensagens assncronas no exigem resposta (response).


A requisio original que causou um business process ou business operation a instanciar e
executar o trabalho conhecido como primary request (requisio primria) daquele business
process ou business operation.
Prim ary
Request

Business
process

Prim ary
Request

Business
Operation

Corpo de Mensagem (Body)

Todas as mensagens so Objetos do tipo Message body podem ser:

Subclasses de Ens.Message.
Request ou response.

Classes Persistentes.

Classes Seriais.

Virtual document.
Tipicamente com processamento HL7.

InterSystems do Brasil

26

Construindo Produes com Ensemble

InterSystems do Brasil

27

Construindo Produes com Ensemble

Mdulo 4 Business Operation

Mdulo 4 Business Operation

InterSystems do Brasil

28

Construindo Produes com Ensemble

InterSystems do Brasil

29

Construindo Produes com Ensemble

Viso Geral

Definio.
Demonstrao.
Reviso:
Implementao.
Business Operation.

Business Operation

Business
Operations

Aplicaes Externas

Business
Processes

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

Ense m ble

Business Operation responsvel por enviar requisies de dentro do Ensemble para fontes de
dados externas, aplicaes ou sistemas

Business
Operation

Adaptador

Business
Operation

Web Service

Business operation chamada por um business service ou um business process.

Para uma business operation enviada uma mensagem de request. A mensagem de


request pode ser enviada de forma sncrona ou assncrona.

Uma mensagem de response pode ser retornada, mas no obrigatria.

InterSystems do Brasil

30

Construindo Produes com Ensemble

Business operation pode ser usada para acessar funcionalidades de fora do Ensemble. Por
exemplo, uma business operation pode recuperar informaes de um banco de dados, procurar
uma informao em um website, iniciar uma operao usando uma aplicao de terceiros, ou
entrar com informaes em uma aplicao personalizada.
Para acessar funcionalidades de fora do Ensemble, uma business operation geralmente usa um
adaptador.

Pode tambm usar uma chamada de uma API, ou qualquer outra forma que a aplicao
externa se comunique.

Message Map

O message map associa um request a um


mtodo.
Um message map define
exatamente qual operao externa
ser executada dependendo do
tipo do request.
Cada mtodo deve ser simples e
executar uma operao bem
definida. Um mtodo deve
representar uma ao especfica
para uma aplicao externa.
Um message map sempre
requerido, mesmo existindo
somente um mtodo na classe de
bussines operation

InterSystems do Brasil

Message Map
Tipo de Mensagem: GetNameRequest
Mtodo: GetName()
Tipo de Mensagem: GetAddressRequest
Mtodo: GetAddress()
Tipo de Mensagem: FindIDRequest
Mtodo: GetID()

31

Construindo Produes com Ensemble

Demonstrao

Implementao

InterSystems do Brasil

32

Construindo Produes com Ensemble

Implementao

Business operation estende (herda) da classe Ens.BusinessOperation.


O parmetro ADAPTER deve especificar um adaptador de sada (outbound adapter). uma
subclasse de Ens.OutboundAdapter.

Os adaptadores so chamados por uma bussines operation para enviar e receber


informaes de aplicaes externas.
Parmetro INVOCATION:

Queue A mensagem de request criada em um job, e ento colocado em uma fila e


neste momento o job original liberado. Um outro job retirar a mensagem da fila para
process-la. Uma fila de business process tem seu prprio processo background (ou
mais de um) associado, e sua prpria fila de mensagem.
Este o padro para uma business operation.

InProc Quando um request enviado ao business operation, uma instncia do


business operation instanciada dentro do processo que chamou a operao, e o
mtodo da operao invocado dentro desse processo.
Isso significa que a mensagem de request ser formulada, enviada e entregue
no mesmo job em que foi criado. Um bussines process tipo InProc no tem sua
prpria fila de mensagens.
Uma business operation no deve ser InProc, a menos que haja uma razo
especfica.

Business
Operation

Message Map
Tipo Mensagem: GetNameRequest
Mtodo: GetName()

PoolSize=3
Tipo Mensagem: GetAddressRequest
Mtodo: GetAddress()
Tipo Mensagem: FindIDRequest
Mtodo: GetID()

A configurao PoolSize especifica o nmero de processos de background para trabalhar na fila


de mensagem.
Deve haver pelo menos um processo de background para cada mtodo da classe de business
operation. Isto permite que mais de um request seja manipulado simultaneamente.

InterSystems do Brasil

33

Construindo Produes com Ensemble

Response

Se o business process retorna um response, deve ser feito o seguinte:

Definir o parmetro de Output do mtodo com o tipo correto da mensagem response.


No Mtodo:
Criar um objeto response usando a mensagem correta.
Configurar as propriedades do response apropriadamente.

Quando o mtodo retorna, a resposta ser retornado automaticamente ao componente que


chamou a business operation.
Se uma business operation no tiver uma resposta, deixe o parmetro de sada como criado
pelo assistente - no o remova.
Uma business operation deve sempre retornar $$$OK (COS) ou system.Status.OK() (basic) a
um business process. Se um business process no receber um status OK de uma business
operation, o business process ir parar. Uma indicao do status pode ser retornado para quem
chamou o business process dentro de uma propriedade da mensagem.

OnMessage()

Pode ser sobrescrito para manipular requests que no estejam no message map

OnMessage() um mtodo em Ens.BusinessOperation.


Uma business operation que recebe uma mensagem que no est no message map gera um
erro, a menos que OnMessage() seja sobrescrito.

InterSystems do Brasil

34

Construindo Produes com Ensemble

Bussines Operation

Business Operation tecnicamente faz referncia ao mtodo da Business Operation, e no


classe Business Operation.

Embora uma "business operation" seja na verdade um mtodo em uma classe de


business operation, a maioria das pessoas dizem "business operation" quando deveriam
dizer classe da business operation.

m t odo
de
Business
Oper at ion

Class Grade.Get St udent I nfo( )

Method GetName()

Method GetAddress()

Message Map
Message Type: GetNameRequest
Method: GetName()
Message Type: GetAddressRequest
Method: GetAddress()

InterSystems do Brasil

cla sse
de
Business
Operat ion

35

Construindo Produes com Ensemble

Mdulo 5 Business Process

Mdulo 5 Business Process

InterSystems do Brasil

36

Construindo Produes com Ensemble

InterSystems do Brasil

37

Construindo Produes com Ensemble

Viso Geral

Definio.
Demonstrao.
Reviso:
Implementao.
Objetos BPL.

Business Process

Um business process uma tarefa especfica e bem definida que precisa ser executada

Business
Operations

Aplicaes Externas

Business
Processes

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

En se m ble

Um business process orquestra a chamada de uma ou mais business operations e/ou business
processes para executar uma tarefa especfica definida, e controla a sua lgica.

Um business process somente envia requests para uma business operations ou


business processes.

Todos os requests e responses para um business process so de dentro do Ensemble.

InterSystems do Brasil

38

Construindo Produes com Ensemble

Demonstrao

Implementao

Um business process pode ser criado usando:

BPL.
O business process herda de Ens.BusinessProcessBPL.
O editor visual BPL gera cdigo BPL.
O editor BPL permite que voc modele o business process
graficamente.
Quando uma classe de um business process criada, um bloco XDATA
contm o BPL.
Cdigos BPL tambm podem ser escritos diretamente, sem usar o editor visual
de BPL.

Cdigo Customizado.
O business process herda de Ens.BusinessProcess.
Cdigo customizado pode ser escrito em ISC Basic ou ObjectScript.
Cdigo customizado requer OnRequest() para suportar o primary request da
business operation. OnResponse() escrito para manipular requests
assncronos.
Para detalhes sobre como escrever cdigo customizado, consulte seo 5.3
da documentao: Creating a Business Process Manually, em Developing
Ensemble Productions.

Duas das maiores vantagens de usar BPL so o editor grfico e o instanciamento


automtico dos objetos.

InterSystems do Brasil

39

Construindo Produes com Ensemble

BPL uma definio XML de um business process.

A sintaxe BPL baseada em diversos padres de definio SML propostos para


definio de lgica de negcio. Sua influncia mais forte a linguagem padro
Business Process Execution Language for Web Services (BPEL).
Consulte a documentao Business Process Language Reference para a
sintaxe e os detalhes do BPL.

No BPL, todos os valores de atributos necessitam estar entre aspas, simples ou


duplas.
Quando as aspas duplas forem necessrias para strings, use aspas simples
em volta para o atributo BPL.

O parmetro INVOCATION de um business process deveria ser Queue.


O actor pool define o nmero dos processos background disponveis para processar
requests na fila do business process.

H somente uma fila para todos os business processes.

Todos os business processes compartilham o mesmo actor pool.

O tamanho do actor pool limitado em 100.


A necessidade de um tamanho muito grande de pool uma indicao de
algum outro problema. Solucione o problema, em vez de apenas aumentar o
tamanho do pool.
A maioria das chamadas de um bussines process so chamadas assncronas. Para
chamadas assncronas, um temporizador usado. Uma vez que o tempo expira, qualquer
response futuro a esse request descartado.

No BPL, se voc esquecer de configurar um temporizador para uma chamada


assncrona, o bussines process no ir esperar.

Em cdigo customizado, se voc esquecer de configurar o temporizador para uma


chamada assncrona, o bussiness process ir esperar indefinidamente.

Configurao de Pool SizeObjetos BPL

Ajuste do tamanho do Actor Pool da produo.


# of CPU jobs for processing requests in public queue.
Ajuste do tamanho do Pool do business process:
0 usado fila publica e actor pool.
Non-0 usado com fila privada com especificao # of CPU jobs.

Business
Process

Business
Process

Business
Process

Fila Pr iv ada
( Pr iv at e
Queue)

Fila Pr iv ada
( Pr iv at e
Queue)

Business
Process
Fila Publica
( Public
Queue)

InterSystems do Brasil

40

Construindo Produes com Ensemble

O ajuste do tamanho do Actor Pool define o nmero de jobs (chamados "atores") disponveis
para processar pedidos na fila pblica do Business Process.
Todos os business processes que usam uma fila publica compartilham o mesmo actor pool.
H uma fila pblica disponvel para todos os Business Process, mas um Business Process pode
preferivelmente usar uma fila privada.
Uma fila confidencial usada se o tamanho do pool configurado para um business Process
for diferente de 0.
Necessitar um tamanho muito grande do pool pode ser uma indicao de algum outro problema.
Resolva o problema, em vez apenas de aumentar o tamanho do pool.
O valor mximo default do tamanho do actor pool 100.

Filas Publicas vs. Privadas

Um business Process que use uma fila privada tem um pool provado para processamento de
request na fila privada.
Um pool size Privado maior pode ser til para:
Executar mais rpido o business processes em uma produo que inclua execues lentas
de um business processes.
Minimize o impacto de desempenho em outros business process pelo business process mais
lento.
Assegure primeiramente, o pedido de sada do request para depois a chamada de a outros
componentes, como com um processo do negcio HL7

Objetos BPL

Os seguintes objetos BPL esto sempre disponveis em qualquer ponto em um business process
BPL.
request primary request do business process.
response primary response do business process.
process objeto para acessar o business process. Por exemplo, language uma
propriedade do objeto process para o business process.
context objeto que contm propriedades <context>. (Discutido no mdulo seguinte).

Os seguintes objetos BPL esto disponveis somente dentro de uma chamada especfica.
callrequest request enviada por um elemento <call>.
somente disponvel dentro do elemento <call><request>.
callresponse response a um elemento <call>.
somente dentro do elemento <call><response>.

InterSystems do Brasil

41

Construindo Produes com Ensemble

Objetos BPL

Business Process
callrequest
request

call
callresponse

response
callrequest

call
callresponse

request x callrequest.

request a requisio original que fez o business process instanciar e executar o


trabalho. Tambm pode ser referenciado como "primary request" para o business
process. enviado para o business process.

callrequest um request criado por um business process e enviada para um business


operation (ou business process). enviado de um business process.

response x callresponse.

response o response para o primary request que originalmente invocou um business


process especfico. retornado de um business process.

callresponse o response para um callrequest. retornado para o business process.

InterSystems do Brasil

42

Construindo Produes com Ensemble

InterSystems do Brasil

43

Construindo Produes com Ensemble

Mdulo 6 Contexto (Context) no Business Process

Mdulo 6 Contexto (Context) no


Business Process

InterSystems do Brasil

44

Construindo Produes com Ensemble

InterSystems do Brasil

45

Construindo Produes com Ensemble

Viso Geral

Definio.
Demonstrao.
Reviso da implementao

Business Process

Business
Operations

Aplicaes Externas

Business
Processes

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

Ense m ble
Contexto de um Business Process

Um objeto de contexto um objeto para mantr qualquer informao de contexto de finalidade


geral para um business process. Qualquer dado que necessite ser persistido durante o ciclo de
vida de um business process, os quais no so o response final, pertencem a este objeto.

O objeto do contexto pode ser referenciado em qualquer ponto do business process.


Informao em um objeto de contexto parte do estado persistente de um business process e
recupervel durante toda a execuo de um business process.

InterSystems do Brasil

46

Construindo Produes com Ensemble

Entrada e Sada com Contexto


Business Process
callrequest

call

prim ary
request

callresponse

prim ary
response

callrequest
cont ext

call
callresponse

request x callrequest.

request o request original que fez o business process instanciar e executar o trabalho.
Tambm pode ser referenciado como "primary request" para o business process.
enviado para o business process.

callrequest o request criado pelo business process e enviado para um business


operation (ou business process). enviado de um business process.

response x callresponse.

response o response para o primary request que originalmente invocou o business


process especfico. retornado de um business process.

callresponse o response para um callrequest. retornado para o business process.

Demonstrao

InterSystems do Brasil

47

Construindo Produes com Ensemble

Implementao

Uma propriedade de contexto deve ser definida primeiro dentro do Inspector (Studio) no nvel de
business process. Pode ento ser usado em um callrequest, response ou em qualquer outra
atividade apropriada.

Frequentemente algumas informaes de um response so gravadas no objeto do contexto e


essas informaes so usadas mais tarde.

Por exemplo, no slide acima o valor do response de IsExternal gravado no objeto de


contexto e mais tarde usado para definir a propriedade IsExternal de um callrequest.

InterSystems do Brasil

48

Construindo Produes com Ensemble

InterSystems do Brasil

49

Construindo Produes com Ensemble

Mdulo 7 Business Service

Mdulo 7 Business Service

InterSystems do Brasil

50

Construindo Produes com Ensemble

InterSystems do Brasil

51

Construindo Produes com Ensemble

Viso Geral

Definio.
Demonstrao.
Reviso:
Implementao.
Design

Business Service

Um business service aceita a entrada de fora do Ensemble e passa a informao ao business


process ou business operation

Business
Operations

Aplicaes Externas

Business
Processes

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

En se m ble

Um business service expe a funcionalidade do Ensemble ao mundo exterior. Um business


service a maneira que uma aplicao cliente acessa o Ensemble.

A entrada no atravs de um request, mas um objeto de entrada. Os requests so


usados somente dentro do Ensemble, e a entrada para um business service vem de fora
do Ensemble.

Aps o business service aceitar a entrada de fora do Ensemble, sua finalidade passar essa
entrada para um business process ou business operation. Um business service deve ser
simples, e no deve realizar muito processamento.

A lgica, processamento adicional e manipulao do response devem ser feitos por um


business process ou business operation, no pelo business service.

InterSystems do Brasil

52

Construindo Produes com Ensemble

Existem duas formas para acessar um business service:

Adaptador de Entrada (Inbound adapter) periodicamente procura por uma entrada para
processar.

Chamada Direta uma aplicao cliente com entrada para processar invoca diretamente
um business service.

Geralmente, um business service envia requests para um business process, mas pode tambm
enviar para uma business operation.

Demonstrao

Implementao

Um business service uma sub-classe de Ens.BusinessService.


PoolSize determina o nmero de jobs em background para o business service. Se o valor do
pool size for maior que um, vrias instncias do business service podem estar processando as
entradas ao mesmo tempo.

Por exemplo, vrios processos podem estar trabalhando em arquivos diferentes no


mesmo diretrio.

Business
Service

InterSystems do Brasil

53

Construindo Produes com Ensemble

Chamadas sncronas no so normalmente usadas, pois elas impedem o business service de


processar outros requests. Um business service deve aceitar uma entrada e ento
assincronamente chamar um business process ou business operation para processamento e
desempenho.

A maioria dos requests so assncronos.

Embora um request possa ser assncrono ou sncrono, somente um request sncrono pode obter
um response.

Um business service no mantm estado e no persistente, assim no pode receber


um response assncrono.

Um response pode ser recebido a partir de uma chamada sncrona desde que no
necessite estado de persistncia.

SendRequestSync() necessita passar o response por referncia.

ObjectScript por padro no passa por referncia. ISC Basic, por padro, passa por
referncia.

Business
Business
Service Async Call
Process
( Assncrono )

Ass nc.
vs
X
Sync Call ( Sncrono )
S nc .

Business
Process

Response

Design

Bu sin e ss
Se r v ice
Aplicao
Client e

Adapt ador

InterSystems do Brasil

Busin e ss
Pr oce ss

Pr oce ssI n put ( )

On Pr oce ssI n put ( )

54

Construindo Produes com Ensemble

ProcessInput() o mtodo usado por um adaptador ou aplicao cliente para invocar um


business service.

ProcessInput() chamar o OnProcessInput() para processar a entrada.

Todo business service deve ter um mtodo OnProcessInput().

Este mtodo chamado como resultado do business service ter recebido uma entrada.

Basicamente, o objetivo do mtodo OnProcessInput() :


Criar uma nova mensagem de request.
Atribuir as propriedades do request baseado no objeto de entrada.
Enviar o request para um business process (ou business operation) usando
SendRequestSync() ou SendRequestAsync().

Uma aplicao cliente que queira invocar diretamente um business process precisa:

Chamar CreateBusinessService(). Isto cria uma instncia do business service.

Chamar ProcessInput() do business service.

Mais detalhes podem ser encontrados no Captulo 4 da documentao: Business


Services, em Creating Ensemble Productions.

Um exemplo disto pode ser encontrado na pgina CSP <diretrio


instalao>/csp/ensemble/DemoLoanSubmit.csp.

Para maiores detalhes sobre adaptadores, veja o Captulo 3 da documentao: Inbound


Adapters, em Developing Ensemble Applications.

InterSystems do Brasil

55

Construindo Produes com Ensemble

Mdulo 8 Data Transformation

Mdulo 8 Transformao de Dados

InterSystems do Brasil

56

Construindo Produes com Ensemble

InterSystems do Brasil

57

Construindo Produes com Ensemble

Viso Geral

Definio.
Demonstrao.
Reviso da implementao.
Documentao DTL

Data Transformation

Uma transformao de dados pode realizar o seguinte:

Converter uma mensagem de um tipo em uma mensagem de um outro tipo.


A transformao de dados so mais usados freqentemente para converter os
itens recebidos em uma mensagem de response em parmetros necessrios
para solicitar um novo request.

Transforma um objeto em outro.

Converte dados de um sistema externo em uma mensagem do Ensemble.


Uma transformao de dados (Data transformations) pode ser chamada de qualquer lugar que
um mtodo puder ser chamado.

InterSystems do Brasil

58

Construindo Produes com Ensemble

Demonstrao

Implementao

InterSystems do Brasil

59

Construindo Produes com Ensemble

Uma transformao dos dados (data transformation) pode ser implementada usando uma das
seguintes opes:

DTL.
DTL um subconjunto de BPL, incluindo somente os elementos de
transformao de dados.
Uma transformao de dados usando DTL herda de Ens.DataTransformDTL.

Codificao manual usando ObjectScript ou ISC Basic.


Uma transformao de dados (data transformation) feita desta maneira herda de
Ens.DataTransform.

Documentao DTL

Consulte Data Transformation Language Reference para detalhes sobre DTL.


A documentao Data Transformation Language Reference detalha e mostra a sintaxe de
todos os elementos DTL.

InterSystems do Brasil

60

Construindo Produes com Ensemble

InterSystems do Brasil

61

Construindo Produes com Ensemble

Mdulo 9 Business Processing Model

Mdulo 9 Business Processing Model

InterSystems do Brasil

62

Construindo Produes com Ensemble

InterSystems do Brasil

63

Construindo Produes com Ensemble

Viso Geral

Business Processing Model.


Portal de Administrao.
Produes.
Mensagens.
Business components.
Adaptadores.
Aplicaes compostas.
BAM.
Depurao.

Business Processing Model

En se m ble

Business
Operations

Aplicao
Composta

Aplicaes Externas

Business
Processes

Outbound Adapters

SOAP

Inbound Adapters

Aplicaes Cliente
Web

Business
Services

Java

Bases de Dados Confederadas

Este o completo Business Processing Model. Abaixo esto as adies:

Uma linha representa um business process invocando outro business process.

Uma linha representa uma business operation invocando outra business operation.

Uma linha representa uma business operation invocando um business process.

Aplicao Composta O Ensemble permite voc combinar recursos de software


existentes para criar aplicaes inteiramente novas, compostas, que tm as habilidades
que nenhuma aplicao existente tem em si.
Mais detalhes so fornecidos mais tarde em outros mdulos.

Bases de Dados Confederadas Uma bases de dados externa uma coleo de vrias
bases de dados fsicas, todas usando diferentes sistemas de gerenciamento de bases
de dados, que podem ser acessadas como uma nica origem dos dados. uma
construo lgica que determina automaticamente o destino apropriado para cada
requisio de dados: ou a base de dados do Ensemble, ou uma base de dados externa
atravs da informao designada da conexo.

InterSystems do Brasil

64

Construindo Produes com Ensemble

Uma Base de Dados Confederada suporta operaes heterogneas atravs de


bases de dados diferentes, e manipula atualizaes na base de dados atravs
de mapeamentos, transformaes, e distribuies de dados para diferentes
bases de dados fsicas conforme necessitar. (Processos Heterogneos
atualmente usam adaptadores iWay.)
Durante a execuo, os itens configurados na produo tais como business
services, business processes, e business operations podem usar a base de
dados confederada sem realmente "saber" onde os dados esto. Eles acessam
todos os dados como se fossem do Ensemble.
A tecnologia utilizada para configurar uma base de dados confederada chamada SQL
Gateway. Pode ser utilizada com qualquer base de dados externa compatvel com a
interface ODBC. Adicionalmente, voc pode permitir que uma base de dados no ODBC
participe de uma base de dados confederada usando um adaptador outbound (Externos)
para apresentar a base de dados no-ODBC como ODBC.
Para detalhes de programao, verifique a documentao de Using SQL
Gateway.

Detalhes do Ensemble

O Ensemble fornece automaticamente um conjunto comum de capacidades internas para cada


produo. Esta infra-estrutura de produo embutida inclui os elementos que suportam
transferncia de mensagens, monitoramento, persistncia, gerenciamento, rastreamento,
recuperao, cache e armazenamento.
O Ensemble est em Unicode.
A biblioteca de classe do Ensemble est contida nos pacotes Ens e EnsLib. Atualmente, cada
pacote tem que existir em algum namespace habilitado ao Ensemble. No futuro, a habilidade de
mapear pacotes atravs dos namespaces remover esta exigncia.
Todas as classes usadas em produes do Ensemble so procedure blocks. Como
conseqncia, todas as variveis so locais no escopo.
Os assistentes e o cdigo da demonstrao de integrao bancria seguem uma conveno de
tVariable e de pVariable para nomes variveis. Se voc sobrescrever uma classe, voc
provavelmente no ver esta conveno.
Em uma classe, XDATA um parmetro no formato de XML usado em tempo de compilao.

InterSystems do Brasil

65

Construindo Produes com Ensemble

Portal de Administrao

Se uma produo terminar anormalmente, o Portal de Administrao pode apresentar um boto


de recuperao (Recover) na pgina inicial. Antes de reiniciar a produo, clique no boto
Recover.

Quando o boto Recover no est disponvel, use:


ObjectScript do ##class(Ens.Director).CleanProduction()
Basic Ens.Director.CleanProduction()

A pgina do Portal de Administrao tem um namespace em seu path. Como resultado,


cada namespace habilitado ao Ensemble tem seu prprio Portal de Administrao.
O Portal de Administrao, uma aplicao CSP, construda para facilmente ser personalizvel.
As pginas existentes podem ser alteradas e novas podem ser criadas.

Usa a ferramenta grfica, SVG, para mostrar os diagramas.

InterSystems do Brasil

66

Construindo Produes com Ensemble

Se a produo em execuo tornar-se fora de sincronizao com a produo compilada, o boto


Production Update! pode aparecer. Para atualizar a produo em execuo, clique no boto.

Uma produo em execuo pode as vezes, mas no sempre, tornar-se fora de


sincronizao ao adicionar ou recompilar um componente. Quando isto ocorre depende
do tipo de componente e de outras circunstncias. Por exemplo, se voc recompilar uma
business operation enquanto est em execuo, o boto pode aparecer.
No recomendado recompilar um business service ou business operation
enquanto a produo est em execuo. O comportamento pode no ser como
era antes de clicar no boto Production Update!.
Se voc tiver que recompilar um business service ou business operation
enquanto a produo estiver em execuo, faa o seguinte:
Desabilite o business service ou business operation desde que tenha um
processo job particular associado a eles quando habilitado.
o Por padro, o Studio configurado para no compilar classes
em uso. Mantenha esta configurao.
o Verifique se o business service completou o processamento da
entrada atual. Ou, verifique se o business operation completou o
processamento de todas as mensagens. Baseado na aplicao
externa associada com o business operation, isso pode levar um
tempo para completar o processamento de um request.
Recompile o business service ou business operation.
Habilite o business service ou business operation.

InterSystems do Brasil

67

Construindo Produes com Ensemble

O parmetro Inactivity Timeout de cada componente de uma produo permite voc especificar
quando o sistema deve assinalar um componente como inativo. O que feito com o componente
quando assinalado como inativo, depende do programador.

Como um business service no pode receber um response de um request assncrono, o Testing


Service business service passa um request ao Testing Process business process que pode
esperar por um response.

InterSystems do Brasil

68

Construindo Produes com Ensemble

Produes (Productions)

D e sa t iv a do

Test ing Enabled


Nam espace de Produo
Nam espace de Test e

Somente uma produo pode rodar em um namespace por vez.


No configure a opo Testing Enabled para uma produo real. Somente os ambientes de
teste e de desenvolvimento devem ter a opo Testing Enabled configurada.
Se algo for desabilitado na produo, no tem um processo associado a ela.

Business
Process

Business
Service
Business
Process

Act ors
Business
Service

InterSystems do Brasil

Business
Operation

Business
Process
Business
Operation

Business
Process

69

Construindo Produes com Ensemble

Quando o Ensemble inicia, um processo diretor (director process) l a definio da produo e


cria os processos necessrios:

Business services baseados no parmetro PoolSize.

Atores para business processes baseados no parmetro Actor Pool Size.

Business operations baseadas no parmetro PoolSize.


Todos os business processes compartilham um pool de processos alocados. Cada processo em
um pool referenciado como um ator. Um ator uma lista inteiramente em branco e no tem
nenhuma ligao ou conhecimento de um business process especfico. Isto o que faz os atores
diferentes dos processos em uma business service ou business operation.
Em geral, o nmero de pool size deve ser igual ao nmero de CPUs.
Cada business service e business operation tem seu prprio pool de processos alocados, porque
a comunicao fora do Ensemble pode estabelecer necessidades especiais. Por este motivo, o
nmero de processos para um business process e uma business operation especficos
necessitam ser configurados.

O pool size pode ser alterado enquanto uma produo est em execuo. Por exemplo,
podem haver perodos em que um nmero grande de requests incomuns recebido por
um componente. Para manipular isto, o administrador poderia aumentar o PoolSize at
que a carga retorne ao normal.
Os pedidos sncronos esto ativamente esperando e tentando amarrar um processo de pool.
Os pedidos assncronos no so amarrados a um processo enquanto esperam uma resposta.

Os seguintes status so possveis ao parar uma produo:

Stopped quando todas as filas de mensagem estiverem livres de mensagem sncronas


e no houver nenhum alarme pendente.

Suspended se uma fila de mensagem ainda contm mensagens sncronas ou existem


requests de alarmes pendentes.
Ens.Director.CleanProduction() esvazia todas as ocorrncias da fila. Execute-o se a produo
estiver com o status suspended.

ObjectScript do ##class(Ens.Director).CleanProduction()

Basic Ens.Director.CleanProduction()

InterSystems do Brasil

70

Construindo Produes com Ensemble

Cada componente de uma produo tem um nico nome nessa produo. O nome de produo
do componente, no o nome da classe, o que usado ao invocar um componente.

Por exemplo, ao configurar um target no editor BPL, voc deve escolher uma produo,
e a mesma ir mostrar uma lista de nomes, no classes, para a escolha.

Quando um componente adicionado a produo, por padro opta pelo nome da


classe, se nenhum nome for dado.
Uma classe pode ser usada mais de uma vez em uma produo. Isto permite configuraes
diferentes do adaptador, tais como o diretrio.
Um parmetro em um mtodo Ensemble que refere-se a um business component em uma
produo leva o nome do componente na produo, no o nome da classe.

Por exemplo, em SendRequestAsync(pTargetDispatchName As %String, pRequest As


Ens.Request), pTargetDispatchName o nome do componente na produo, no o
nome da classe.

InterSystems do Brasil

71

Construindo Produes com Ensemble

Schedule item t o
st art / st op:
act ion:YYYY-MM-DDThh:m m :ss
Pode v isualm ent e
configurar gr upo de
it ens iguais as
cat egorias.
R- Click Visualizar
Cat egorias na pgina de
Configur ao.

Flag do com ponent e


com o inat ivo
aps especificado
nm er o de segundos.

O default scheduling programado para os itens da configurao para que funcionem sempre
que a produo est rodando, mas voc pode usar o campo de Schedule para um item da
configurao. Esta uma string de comandos opcionais que programem o item para ser parado
e iniciado em horas especficas, em dias especficos da semana, do ms, ou do ano.
Quando est no momento de iniciar, se o item estivar habilitado ser iniciado; quando for
o momento de para, se o item estiver rodando ser finalizado.
A string Schedule separada por virgula. Cada evento especificado tem o seguinte
formato: action:YYYY-MM-DDThh:mm:ss.
Alguns destes campos podem ser o nico carter * (asterisco) indicando todos
os anos, meses, ou dias.
YYYY pode ser a palavra WEEK, MM pode ser uma semana especfica do
ms (01=primeira semana, 02=segunda semana, etc.), e DD pode especificar o
dia da semana (00=Domingo, 01=Segunda-feira, etc.).
O campo da categoria para um item da configurao um rtulo (Label) opcional do texto que
voc possa usar agrupar visualmente itens da configurao dentro do diagrama da produo.
Ao visualizar uma produo na pgina da configurao, right-click Show
Category Select o nome da categoria. O diagrama muda para mostrar somente
aqueles itens de configurao que combinam o nome da categoria que voc selecionou.
A configurao Inactivity Timeout de cada componente da produo especifica sempre quando o
componente deve ser marcado como inativo
Consulte Managing Ensemble Production para detalhes em cada uma destes configuraes.

InterSystems do Brasil

72

Construindo Produes com Ensemble

Abre a j anela ter m inal par a


depur ar as m ensagens e
elim inar er ros.
Ex ibe m ensagens de Trace
do com ponent e no Event Log.

Quando um componente rodar em primeiro plano (foreground), uma sesso de terminal ser
associada com o trabalho que est sendo usado pelo componente. Esta janela de terminal
indicar o $$$TRACE e outras mensagens de Debug.
Utilize somente para eliminar os erros; mas no execute em um ambiente de produo.
Um business service que est sendo invocado diretamente no pode executar em
primeiro plano (Foreground). Neste caso porque o trabalho que chama o business
service no est rodando em primeiro plano.
A configurao do Log Trace Event permitem que a mensagem de Trace seja armazenada no
incio de uma sesso do evento a ser indicado na janela do terminal de um componente que
roda em primeiro plano.

InterSystems do Brasil

73

Construindo Produes com Ensemble

Quando desenvolver um componente no estdio, o desenvolvedor pode fazer propriedades para


esse componente configurveis atravs do portal. Toda a propriedade listada no parmetro
SETTINGS para um componente aparece automaticamente na pgina da configurao no portal
sempre que o componente selecionado.
Isto permite que um no-desenvolvedor use a pgina de configurao para ajustar
valores para estas propriedades sem mudar o cdigo prprio.
Isto pode ser feito com business services, business processes, business operations e adapters.
Isto feito frequentemente para permitir a configurao dos ajustes do adaptador atravs do
portal, no pelo estdio.
Isto permite tambm os componentes diferentes que usam o mesmo adaptador ter
ajustes diferentes do adaptador, tais como File Path.

InterSystems do Brasil

74

Construindo Produes com Ensemble

Mensagens

Quando um request chega na fila de um item de configurao, o item invoca um job (processo
de CPU) de seu pool de jobs disponveis. Se nenhum job estiver disponvel no pool de itens de
configurao dos jobs, o request deve esperar um job tornar-se disponvel. Um job retorna ao
pool de jobs disponveis depois que terminar sua tarefa.

Uma fila uma global.

Filas so manipuladas pelo mecanismo Ensemble e utilizam um mecanismo de


notificao de evento.

O Portal de Administrao pode ser usado para visualizar as filas, mas no pode ser
usado para manipular a fila de uma produo que estiver executando.

Componentes InProc no usam filas para manipular requests.


Todos os business processes compartilham uma fila, Ens.Actor. o alvo de todas as
mensagens enviadas a qualquer business process. Cada business service e business operation
tem sua prpria fila privada, que o destino para todas as mensagens do Ensemble enviadas a
elas. Cada mensagem em uma fila privada est esperando um dos jobs no prprio pool do item
tornar-se livre.

Q
Q
Q
Q
Q Q

InterSystems do Brasil

75

Construindo Produes com Ensemble

Alguns campos do cabealho de mensagem de interesse:

ObjectID Cada mensagem tem um nico ID.

Status As possveis mensagens de status so:


Created Uma mensagem em trnsito tem o status Created at que encontre
seu lugar em uma fila.
Queued Quando uma mensagem encontra seu lugar em uma fila.
Completed Quando uma mensagem alcana seu destino.
Discarded Quando uma mensagem de response assncrona chega depois que
o time-out associado com o request expira.
Suspended Business operation pode ser designado a descartar qualquer
mensagem que falhar.
Deferred Quando uma business operation adia um response.

CorrespondingMessageId Mensagens de request contm o ID da mensagem de


response correspondente, se houver uma. As mensagens de response contm o ID da
mensagem de request correspondente.

SessionId Uma sesso marca o incio e o fim de todas as atividades chamadas por um
objeto de entrada de fora do Ensemble enviadas a um business service. O Session ID
igual ao ID da primeira mensagem do business service chamada pelo objeto de entrada.

InterSystems do Brasil

76

Construindo Produes com Ensemble

Esta uma maneira de declarar uma ligao entre uma classe do request e sua classe
correspondente de response. Em conseqncia ele:

um formulrio de self-documentation.
Permite que uma business operation ou um business process chamem o mtodo de
NewResponse() do objeto da request (se for derivada de Ens.Request) para comear
automaticamente um objeto da response da classe correta. Usando NewResponse(),
voc no necessita saber ou especificar corretamente a classe da resposta .

Usando NewResponse() da classe de request:


do ##class(Prod.GetIDRequest).NewResponse()

Usando New() da classe de Response:


do ##class(Prod.GetIDResponse).New()

InterSystems do Brasil

77

Construindo Produes com Ensemble

Business Operations

Uma business operation aceita um request dentro do Ensemble e processa-o ou o transmite s


entidades fora do Ensemble para processamento.
No misture chamadas s aplicaes externas diferentes na mesma classe de business
operation.
Todos os mtodos de uma business operation tem uma assinatura comum. O primeiro
argumento o objeto do request de entrada e o segundo usado para retornar um objeto de
response por referncia. O mtodo operation retorna %Status, indicando sucesso ou falha.
Uma classe de business operation pode ter outros mtodos na classe que no esto no
message map.

Uma vez que as business operations no so persistentes (no tem estado), elas no podem
interagir assincronamente com uma aplicao externa.

Por causa disso, se uma aplicao externa levar um longo tempo para responder, em
vez de fazer uma business operation esperar, deixe que uma aplicao externa invoque
um business service quando estiver finalizado.
Se possvel, no recompile uma business operation enquanto a produo estiver executando.
Mas se voc tiver que faz-lo, faa o seguinte:

Desabilite a business operation desde que tenha um job especfico associado a ela
quando estiver habilitado, e que os jobs j tenham terminado.
Por padro, o Studio est configurado para no compilar classes em uso.
Mantenha esta configurao.

Verifique se a business operation completou o processamento de todas as mensagens.


Baseado em uma aplicao externa associada com a business operation, pode demorar
um pouco para completar o processamento de um request.

Recompile a business operation.

Habilite a business operation.

InterSystems do Brasil

78

Construindo Produes com Ensemble

Uma business operation pode adiar/protelar um response. Em vez de enviar o response na


business operation, o response enviado mais tarde.
Para adiar um response em um business operation, faa o seguinte:

1) Adie o response em um business operation usando:


sc = me.DeferResponse(token) (Basic) ou
set sc=..DeferResponse(.token) (ObjectScript)
O token uma a string e retornado via o argumento de referncia para o mtodo
DeferResponse(). Depois, o token ser usado para enviar o response. Este mtodo
tambm configura ..DeferResponse=1, que faz o response ser adiado. A business
operation finaliza sem enviar o response, mas com ..DeferResponse configurado para 1,
isto permite que algum outro cdigo envie mais tarde o response usando o token.
Uma vez que a mensagem est em estado deferred, a propriedade Status do
MessageHeader Deferred".

2) Envie o response posteriormente:


sc = me.SendDeferredResponse(token,ResponseBody) (Basic) ou
set sc= ..SendDeferredResponse(token,ResponseBody) (ObjectScript)
Isto far o response ser enviado de volta ao transmissor da mensagem de request original. O
primeiro argumento o token criado pela chamada de DeferResponse na business operation. O
segundo argumento uma instncia do response apropriado.
Quando o transmissor original do request recebe o response, a propriedade Status do
MessageHeader configurada como Completed.

Business
Process

Business
Operation

Classe de Business operation tem os mtodos SendRequestSync() e SendRequestAsync(). Eles


se comportam da mesma forma que os mtodos das classes de business service.

SendRequestSync() envio sncrono de um request e recebe um response.

SendRequesAsync() envio assncrono de um request, mas no recebe response. De


uma business operation (ou um business service) voc no pode enviar um request
assncrono que receba um response. Somente business processes pode manipular
responses assncronos.

InterSystems do Brasil

79

Construindo Produes com Ensemble

Um message map uma estrutura XML, contida dentro de um bloco XDATA chamado
MessageMap dentro da classe de business operation.
Em um message map o seguinte verdadeiro:

Pesquisa est na ordem listada e pra quando encontra um registro equivalente.

Um item do mapa pode ser uma super classe de outros itens do mapa. Ir comparar com
um listado anteriormente.

Se no houver equivalente para a mensagem, uma entrada colocada no event log e o


request ignorado.
Escreva OnMessage() para manipular requests que no estejam no message
map.

InterSystems do Brasil

80

Construindo Produes com Ensemble

Business Processes

Quando uma produo inicia, criado um pool dos processos do ator que escutam uma fila
comum. Quando um request colocado na fila, o objeto do business process correto
instanciado e o request enviado a ele.

Enquanto um business process est esperando por um response, pode ser escrito no
disco e ser obtido por um ator diferente na prxima vez.
Recompilar um business process com uma produo em execuo possvel desde que um job
particular no esteja amarrado no business process. Se voc recompilar quando um job estiver
amarrado ao business process, o job receber um erro de EDITED.
A finalidade do contexto de execuo manter o estado persistente de um business process,
isto , qualquer valor que tiver de ser recuperado durante a execuo do business process. Os
nomes de algumas variveis do contexto da execuo disponveis a voc so: context, request,
response, callrequest, e callresponse. Cada um tem uma finalidade especfica, como descrito no
Developing Ensemble Productions ou Business Process Language Reference para os elementos
<call> e <assign>.

Context Objeto para qualquer informao de contexto para um Business Process.


Qualquer dado que necessitar ser persistido durante o ciclo de vida de um business
process, que no o response final, deve ir aqui.

Request Primary request do business process. O primary request o request que


instanciou o business process.

Response Response do business process.

Callrequest O request relacionado a um elemento <call>.

Callresponse O response relacionado a um elemento <call>.


As variveis de contexto da execuo so gravadas automaticamente para a base de dados
sempre que a execuo do business process suspensa (como ao esperar um response de
uma mensagem assncrona). A persistncia do contexto da execuo fornece a habilidade de
executar business processes a longo prazo processos que possam levar horas ou semanas
para serem completados sem suspender os recursos de sistema.
A execuo do contexto persiste informao do contexto e do estado para o business process
atravs de todos os eventos, falhas e finalizaes.

O estado e a recuperao de um business process controlado pelo Ensemble.


Somente as chamadas sncronas podem ser recuperadas.

InterSystems do Brasil

81

Construindo Produes com Ensemble

BPL

Um business process escrito em BPL uma classe com um bloco XDATA chamado BPL. Se
necessrio, pode tambm incluir mtodos fora do bloco XDATA. Estes mtodos deveriam ser
escritos em ObjectScript ou ISC Basic.
BPL no define lgica linear.
Quando escrever um BPL manualmente, mantenha o seguinte em mente:

"process" o nome do objeto para acessar o business process atual. Isto quer dizer,
para consultar um mtodo naquela classe BPL, use a sintaxe process.mtodo.

Ao configurar um valor de atributo em BPL, necessrio uso de aspas (simples ou


duplas). (O valor de um atributo qualquer coisa no lado direito do sinal de igual (=).)
Por exemplo, atribuir nome=EsteResultado
Como ObjectScript e ISC Basic necessitam de strings com aspas duplas, use
aspas simples em volta de toda a string.
Por exemplo, condition='request.BusinessOperationType="mail"'
Outro exemplo , <delay until='"2003:10:19T10:10"'/> Esta nota segue
um padro.
o Nota: O elemento delay no espera ativamente, pois no usa
um ator

InterSystems do Brasil

82

Construindo Produes com Ensemble

Ensemble suporta o conceito de componentes reusveis.


Um business process component, ou BPL component, um BPL business process que
um programador deseja identificar como uma seqncia modular, reusvel nas etapas
da linguagem dos BPLs.
Um componente do BPL analogo a uma funo, a um macro, ou a uma sub-rotina em
outras lnguagens de programao. Somente um outro business process dos BPL pode
chamar um componente dos BPL.
No usa o elemento <call> do BPL. O componente do business process do BPL
executa tarefas, retorna ento o controle ao business process do BPL que o
chamou.
A arquitetura do ensemble permitiu sempre que um business process BPL chame um
outro business process BPL. A diferena no ensemble v4.0 que a designao
"componente" opcional permite que voc classifique determinados processos do negcio
dos BPL como uns componentes mais simples, lower-level isso:
No pretendem rodar como processos autnomos do business processes
(embora nada proiba isto).
Pode ser reusvel (no sentido de uma funo, de um macro, ou de uma subrotina).
Business processes que no so "componentes" so usados para projetos mais complexos, ou
propsitos especiais, e para operar-se em um nvel conceptual mais elevado do que
componentes.

InterSystems do Brasil

83

Construindo Produes com Ensemble

BPL Call Wizard

O Assistente de chamada BPL pode ser


usado para criar <call> em um BPL
business process.
Os alvos (Target) vlidos podem
ser:
Business operation.
Business process.
Business process
component.
Baseado na produo e no alvo
selecionados, indica os
componentes apropriados.
O wizard pode ser usado adicionar
as corretas mensagens de request
e response para o componente
selecionado bem como cria as
propriedades faltantes do contexto
necessitadas povoar a mensagem
do request.
O assistente padro para
chamadas sncronas, mas permite a
especificao de chamadas
assncronas.

InterSystems do Brasil

84

Construindo Produes com Ensemble

Substituindo um Business Processes

Quando voc precisar atualizar ou reparar um business process:

Pegue seu business process existente e copie a classe (Tools->Copy Class) para um
business process de nome diferente.

Faa suas melhorias na classe nova e teste as mudanas.

V para seu cdigo da produo no Studio e mude o nome da classe que est sendo
usado, com o nome configurado do Business Process da classe antiga para a classe
nova.

O Portal de Administrao no permite que voc mude o nome da classe associada com
um business process, ou nenhum outro business component.
A partir do momento que voc aplicar a mudana, todos as instncias novas do
business process iro usar a classe nova, mas as instncias de business
process que j estiverem sido iniciadas e ainda estiverem em progresso iro
continuar usando a classe antiga.
Business processes pr-existentes continuaro a usar a verso antiga
da classe do business process mesmo depois de um reincio da
produo.
Quando todas as instncias pendentes da antiga classe do business process
estiverem completas, seguro excluir a classe, se voc desejar.
Voc deveria adotar uma conveno de nomes de verses no nome da classe do business
process para manter registro das novas verses que voc introduz.
Este procedimento no funciona com business services e business operations instanciados.
Neste caso, desabilite os componentes antes de mudar para um nome da nova classe (ou de
compilar a classe existente).

Business Services

Business
Service

Ent rada de fora


do Ensem ble

Aceita
Entrada
Envia
Request

Business
Process
MessageI D=
SessionI D

PoolSize

InterSystems do Brasil

85

Construindo Produes com Ensemble

O atual mecanismo para um business service receber


uma entrada tipicamente delegado a um adaptador
inbound, mas um adaptador no sempre necessrio.
Se uma aplicao cliente puder enviar a entrada para o
business service ou se o business service puder
manipular chamadas externas a partir da aplicao
cliente, um adaptador no necessrio.

Se um adaptador no estiver sendo usado, a


aplicao cliente chama o business service e o
informa para processar a entrada.

Se um business service tem um adaptador, o


adaptador procura por dados em intervalos
especficos. (O intervalo configurado no Portal
de Administrao como um parmetro do
adaptador, CallInterval)
Se h entrada, a entrada enviada
para o business service.
Se o business service tem um adaptador, cada job em
background tem um adaptador associado.

Como resultado, cada job em segundo-plano


verifica a cada intervalo de chamada.
Por exemplo, se o PoolSize for 3 para
o bussiness service com um
adaptador, 3 jobs em segundo-plano
esto chamando o adaptador para
procurar por entradas.

InterSystems do Brasil

Business
Service
Aplicao
Client e

I nv oca com
Ent rada

Bu sin e ss
Se r vice
Procura a ent rada
em cada CallI nt erval

Adaptador

Um business service aceita entrada de fora do Ensemble e retransmite a entrada dentro do


Ensemble para processar e completar a tarefa.

Um business service no deveria fazer muito processamento. melhor passar o


trabalho para um business process e ter o foco do business service em fazer uma
entrada rpida. Business processes so muito mais flexveis que business services.
Um business service invocado por uma aplicao cliente ou um objeto de entrada, no um
request. (Um request somente existe dentro do Ensemble.)
Quando um business service recebe uma entrada, ele gera um primary request e associa o
message ID ao session ID.
O nmero de processos background servindo um business service determinado pelo valor do
PoolSize. Se o PoolSize for maior que um, mltiplas instncias do business service podem estar
processando a entrada ao mesmo tempo.

Por exemplo, mltiplos processos podem estar procurando novos arquivos em um


diretrio e processar novos arquivos quando chegarem.

86

Construindo Produes com Ensemble

Adaptadores

Business
Operation

Aplicaes Externas

Business
Process

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Service

En se m ble

Adaptador o cdigo que adapta a interface de programao nativa de uma aplicao externa
ou de uma aplicao cliente em uma forma que seja compreensvel a uma produo do
Ensemble.
A funo de um adaptador inbound esperar um intervalo e ento executar o OnTask().

OnTask() ir procurar entradas e enviar a entrada a um business service, se existir.

Biblioteca de Adaptadores Ensemble


Aplicaes
Database
Cach
SAP/R3
Oracle
Siebel
SQL Server PeopleSoft
DB2
JD Edwards
Informix
Lawson
Sybase
Oracle Apps
File

InterSystems do Brasil

Tecnologia
HTTP
COM
POP3
.Net
SMTP
Java
FTP
EJB
TCP/IP
C++
XML
Web Srv
MQSeries HL7
FIX
Swift

87

Construindo Produes com Ensemble

Adaptadores usados com Ensemble podem ser:

Adaptadores pr-construdos.

Adaptadores que voc implementa.


A Biblioteca de Adaptadores do Ensemble inclui mais de 250 adaptadores.

Muitos destes adaptadores so da iWay Software, uma empresa especializada em


adaptadores. Seus adaptadores permitem integrao com um grande nmero de
aplicaes de terceiros.
Para detalhes, consulte a seo 8.2: Working with iWay Adapters, em
Developing Ensemble Productions.
Todos os adaptadores so subclasses de Ens.InboundAdapter ou Ens.OutboundAdapter.
Em um adaptador, o parmetro SETTINGS identifica as propriedades que so configurveis no
Portal de Administrao.

Por exemplo, Parameter SETTINGS = "Propriedade1, Propriedade2"


Defina os mtodos necessrios para o adaptador.

Um adaptador inbound deve ter um mtodo OnTask() apropriado para o adaptador.


Normalmente, o desenvolvedor sobrescreve o mtodo OnTask() herdado de
Ens.InboundAdapter.

Inbound Adapter

OnTask( )

Business Service
h
ca se
Ve r i f i a d a
en t r

En v i
a

a en
t r ad

CallI nt erval

ProcessI nput ( )
OnProcessI nput ( )
Faz o t rabalho.
Necessrio escrever.

Se um business service tem um adaptador, o business service chama o mtodo OnTask() do


adaptador durante intervalos regulares para verificar os dados. (O intervalo configurado no
Portal de Administrao como um parmetro do adaptador, CallInterval)

O Ensemble organiza o loop exigido pelo intervalo de verificao.

Se a execuo do cdigo do business service for demorar mais que o CallInterval,


OnTask() chamado imediatamente mediante a concluso do cdigo. CallInterval
adiado para chamar OnTask() outra vez.
Se houver dados, o adaptador:

Recebe as entradas.

Empacota a entrada em um objeto que o business service espera.

Invoca o mtodo ProcesInput() do business service, que ento chama o


OnProcessInput() para o business service.
O mtodo OnProcessInput() onde o trabalho real do business service ocorre.
OnProcessInput() precisa ser escrito para o business service.
Para detalhes da criao de adaptadores inbound, consulte o captulo 3: Inbound Adapters, em
Developing Ensemble Productions.

InterSystems do Brasil

88

Construindo Produes com Ensemble

Business Operation
Me.Adapt ador.Mt odoA( )

Outbound Adapter
Mt odoA( )
Mt odoB( )
Aplicao
Ext er na

Adaptadores Outbound so usados pelo business operations para comunicar com aplicaes
externas.

Por exemplo, um adaptador outbound de Email pode ser usado para enviar um e-mail.
Nem todas as business operations requerem um adaptador outbound.
Um adaptador OutBound deve implementar um ou mais mtodos que seu business operation
correspondente possa invocar.
Para detalhes da criao de adaptadores outbound, consulte o captulo 7: Outbound Adapters,
em Developing Ensemble Productions.

Exemplo de Adaptador Customizado

InterSystems do Brasil

89

Construindo Produes com Ensemble

Depurao

$$$TRACE (ObjectScript)
"Ens.Util.Trace".WriteTrace(user",
"SuaClasse","SeuMtodo", "SuaMensagem")(Basic)

O primeiro parmetro a string user.


Executa em primeiro plano.
Abaixo so exemplos de uso de rastreio de mensagens:

$$$TRACE("PrimeRate requested")

"Ens.Util.Trace".WriteTrace("user","Demo.WebOperations",
"GetPrimeRate","PrimeRate requested")
Este mtodo no retorna nada.
Para ver as mensagens, os componentes devem estar executando em primeiro plano.

Cada sesso do terminal ir mostrar as mensagens e baseado em qual processo est


rodando o cdigo.
Uma vez que cada componente do Ensemble uma classe, globais podem ser usadas para
armazenar valores. Estas globais podem ser verificadas para depurao.

Por exemplo, set ^checkRate=pResponse.PrimeRate permite que voc olhe a global


^checkRate e veja o PrimeRate aps os testes terem sido completados.
No Studio, voc pode anexar um processo em execuo para depurao.

Aplicaes Compostas

En se m ble

Business
Operation

Aplicaes
Compostas

Aplicaes Externas

Business
Process

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Service

Bases de Dados Confederadas

InterSystems do Brasil

90

Construindo Produes com Ensemble

O Ensemble permite que voc combine recursos de softwares existentes com regras de
negcios adicionais e interfaces de usurio para criar aplicaes inteiramente novas, compostas,
que tm habilidades que nenhuma aplicao existente tem por si s.

Com aplicaes compostas, voc pode integrar funcionalidade nova e funcionalidade de


aplicaes existentes sem mudar as prprias aplicaes.
Isso permite que voc combine em novas formas de funcionalidade, tarefas e
dados das aplicaes da empresa, dados do legado, e/ou tecnologias de
informao agrupadas em uma aplicao composta. O resultado mais
funcionalidade do que antes.
Como exemplo, considere uma empresa que entre com um novo cliente em
duas aplicaes (uma vez que cada aplicao rastreia aspectos diferentes do
cliente). Uma aplicao composta poderia ser construda para no somente
informar automaticamente os clientes novos em cada uma das aplicaes
existentes, mas tambm para rastrear novas informaes para cada cliente
novo.
A aplicao composta alavanca aplicaes existentes e fornece novas
funcionalidades tambm.
Aplicaes compostas deixam embaadas as linhas entre desenvolvimento e integrao. O
Ensemble permite que voc desenvolva assim como integre.
Com uma aplicao composta, nenhum adaptador inbound necessrio, porque a aplicao
composta pode fazer requests dentro da produo em um formato que seja j compreensvel
para a produo.

Aplicaes compostas podem ser escritas para invocar business services, business
processes ou business operations.

Business Activity Monitoring

Gartner define BAM como O conceito de fornecer acesso em tempo real aos indicadores crticos
do desempenho de negcio para melhorar a velocidade e a eficcia das operaes do negcio."

Em outras palavras, BAM refere-se ao monitoramento automatizado e anlise das


atividades relacionadas ao negcio bem como respostas apropriadas para alterao de
eventos.

O BAM foca-se no monitoramento, filtragem e na apresentao dos eventos.


O BAM pode fornecer acesso em tempo real a sntese de informao crtica do negcio atravs
da extrao de informao de vrios sistemas de aplicaes e de outras fontes internas e
externas. Pode tambm melhorar a tomada de deciso e permitir mudanas dinmicas aos
processos usando mtricas acionveis em tempo real.
O mecanismo de objetos persistentes embutidos do Ensemble e a viso em tempo real da
empresa integrada permitem business intelligence e anlise de dados em tempo real para BAM.

Base de dados confederadas permitem ferramentas de anlise a obter acesso unificado


a fontes de dados diversos de uma empresa.
Usando o BAM junto com outras capacidades do Ensemble, o Ensemble pode automaticamente
detectar e reagir a alteraes de eventos atravs da empresa.

InterSystems do Brasil

91

Construindo Produes com Ensemble

Dashboards

Ensemble suporta BAM com dashboards. Dashboards podem mostrar em tempo real
informaes colhidas por vrios componentes de uma produo Ensemble.
Um dashboard Ensemble uma pgina Web que mostra um ou mais controles grficos,
chamados medidores. Cada controle indica o valor atual de alguns dados medidos. Ensemble
fornece um conjunto completo de medidores que incluem velocmetros, hodmetros, medidores
de combustvel, barras, semforos, grfico de linhas e grfico de barras.
O Mdulo 10 descreve dashoards com detalhes.

InterSystems do Brasil

92

Construindo Produes com Ensemble

Business Rules

Permite a reengenharia do processo por um analista de negcio.

Uma business rule determina como um processo do negcio se comportar em um ponto de


deciso especfico. O desenvolvedor de um business process BPL identifica um ponto de
deciso nomeando a Business Rule que far a deciso nesse ponto. Um usurio, tipicamente
um analista do negcio, usos o portal para definir os critrios que a regra usar para fazer a
deciso.
Isto fornece uma maneira segura para um usurio no tcnico mudar o comportamento
de um business process em pontos de deciso especficos.
Para o exemplo, um desenvolvedor pode necessitar escrever um business
process que coordenasse aplicao de emprstimo de uma maneira consistente
atravs de uma empresa internacional; entretanto, em um nvel regional, os
analistas do negcio devem poder ajustar critrios especficos, local apropriados
para aceitar aplicaes de emprstimo individuais. Para conseguir isto, o
analista local do negcio pode criar uma business rule apropriada para sua
regio.

InterSystems do Brasil

93

Construindo Produes com Ensemble

Conveno de Nomes

Determinar e seguir uma conveno de nomes vital ao construir produes. Se isto for
necessrio ser feito durante o projeto extremamente trabalhoso.
Duas abordagens principais para o uso de Conveno de Nomes so:

Um pacote para todos os elementos do Ensemble.


Isto s apropriado para pequenas produes.

Pacotes separados para cada tipo de elementos do Ensemble.


Use nomes de pacotes curtos.
Por exemplo, MinhaProducao.bsv.NomeClasse,
MinhaProducao.bop.NomeClasse, MinhaProducao.dsh.NomeClasse,
MinhaProducao.dtl.NomeClasse.
Em ambas abordagens, o nome das mensagens indicaria se um response ou request. Por
exemplo, MinhaProducao.msg.ApplicationReq.
Tente abreviar quando possvel.
Um pacote para todos os elementos do Ensemble.
Nome
Elemento Ensemble
Package.bopClassname

Business Component

Package.dshClassname

Dashboard

Pacote separado para cada elemento diferente

InterSystems do Brasil

Nome

Elemento Ensemble

Package.bop.Classname

Business Component

Package.dsh.Classname

Dashboard

94

Construindo Produes com Ensemble

InterSystems do Brasil

95

Construindo Produes com Ensemble

dulo 10 Dashboards

Mdulo 10 Dashboards

InterSystems do Brasil

96

Construindo Produes com Ensemble

InterSystems do Brasil

97

Construindo Produes com Ensemble

Viso Geral

Dashboards.
Business metrics (mtricas).
Demonstrao.
Implementao.
Dashboards.
Medidores.
Business metrics (mtricas).

Dashboards

Medidores
( m et ers)

Um dashboard Ensemble uma pgina web que mostra um ou mais controles grficos,
chamados de medidores. Cada medidor mostra o valor atual de algum dado medido. O
Ensemble dispe de um conjunto completo de medidores que incluem velocmetros,
hodmetros, nvel de combustvel, barras coloridas, semforos, grficos de linhas, grficos de
barras e expresses faciais.
O Ensemble suporta BAM com dashboards. Os dashboards podem exibir informaes em tempo
real coletadas por vrios componentes de uma produo Ensemble.
A documentao Using Dashboards with Ensemble detalha como criar e usar dashboards e
medidores.

InterSystems do Brasil

98

Construindo Produes com Ensemble

Dashboard

Business
Processes

Business
Operations

Aplicaes Externas

Business
Business
Metrics
Met ric

Outbound Adapters

Inbound Adapters

Aplicaes Cliente

Business
Services

En se m ble

Business metrics so classes business service especializadas que coletam ou calculam dados
especficos. Valores de business metric so calculados em intervalos de tempo especficos, e
exibidos graficamente usando medidores em um dashboard.

Os clculos podem envolver chamadas a business components, bases de dados


confederadas, ou qualquer fonte de dados. Os valores podem ser retirados dos dados
armazenados dentro do Ensemble, tais como mensagens, ou externamente.

Os Business metrics tem o cdigo para contar ou coletar informaes que sero exibidas no
dashboard atravs de um medidor.
Um business metric pode calcular diferentes partes de dados. Cada parte dos dados
conhecido como uma mtrica (metric).

Cada medidor unidimensional exibe dados para uma mtrica.

Medidores multidimensionais mostram dados para mais de uma mtrica.

InterSystems do Brasil

99

Construindo Produes com Ensemble

Criao de Dashboards

A criao de um dashboard requer o seguinte:


Desenvolver uma business metric que
colete os dados necessrios. Uma
mtrica criada para cada parte dos
dados que voc quer obter.
Uma forma comum para a
recuperao dos dados a
utilizao de query. Por
exemplo, voc pode ler
informaes armazenadas no
Ensemble,
tal
como
a
propriedade preo de uma
mensagem.
Decidir os medidores que iro mostrar
os dados. O Ensemble j fornece
vrios medidores embutidos ou voc
pode desenvolver seus prprios.
Codificar a definio do dashboard,
especificando quais os medidores
sero exibidos, como sero exibidos, e
qual mtrica usar para cada medidor

Passos para criao de


Dashboard
1. Crie a business m et ric
para colet ar os dados.
2. Escolha m edidores
( m et ers) par a exibir as
m t ricas.
3. Escreva a definio
do dashboar d
para posicionar
os m edidores na pgina.

Demonstrao

InterSystems do Brasil

100

Construindo Produes com Ensemble

Implementao

Um dashboard herda (deriva) de Ens.Dashboard e tem um bloco XDATA que contm a


representao XML de seus medidores.
Os atributos do elemento <Dashboard> incluem RefreshRate, Metric, Label, Height, Width,
Orientation e InstanceMenu. Verifique na documentao Using Dashboards with Ensemble
para detalhes de cada um.

O atributo RefreshRate determina com que freqncia a pgina atualizada. No


controla com que freqncia a business metric calculada (isso feito por CallInterval
na business metric).

O atributo Metric especifica o business metric padro para usar nos medidores na
definio do dashboard. Um medidor individual pode redefinir este valor tendo um valor
especificado para seu atributo Metric.
Redefinindo o business metric padro permite a um dashboard mostrar a
informao obtida em mais de uma business metric.
Cada medidor unidimensional especificado no dashboard amarrado a uma mtrica, como
especificado pelo atributo Property do medidor.

Uma mtrica pode ser associada a mais de um medidor. Por exemplo, ao exibir
informaes sobre vendas de Gizmo, um velocmetro pode indicar a contagem exata de
Gizmos vendida, enquanto uma expresso facial pode indicar vendas altas ou baixas de
Gizmos.

Os atributos do medidor especifica o comportamento e a aparncia do medidor


especfico. Os atributos comuns dos medidores so Property, Metric, Label, Link,
RangeLower, RangeUpper, ThresholdLower, ThresholdUpper, ScaleFactor, Height, e
Width. Os medidores de grfico de linha e de barras tem atributos adicionais. Consulte a
documentao Using Dashboards with Ensemble para detalhes de cada um.
O atributo Metric para o medidor pode ser usado para especificar uma business
metric diferente do que foi especificado na definio do dashboard.
Um atributo meter tem prioridade sobre um parmetro da mtrica, se ambos do
mesmo tipo so especificados. Por exemplo, se tivermos RangeUpper=20 para
o medidor, e RANGEUPPER=50 para a mtrica usada por este medidor, o
dashboard indicar o medidor baseado em RangeUpper=20.

InterSystems do Brasil

101

Construindo Produes com Ensemble

Implementao de Medidor

Um medidor uma classe derivada de CSPX.Dashboard.Meter que responsvel por gerar a


sada SVG (Structured Vector Graphics) em um dashboard.
Um medidor pode ser um valor simples ou multidimensional. Um grfico de linha e de barras so
exemplos de medidores multidimensionais.
Um medidor multidimensional requer uma propriedade mtrica multidimensional.

Propriedades multidimensionais representam vetores de valores mtricos e so usados


para fornecer a srie de valores para grficos em um dashboard.

Abaixo um exemplo de propriedade de mtrica multidimensional usado com a Tasks for


Current Role mostrada acima:
Property ActiveTasks As Ens.DataType.Metric(AUTOHISTORY = 10, RANGELOWER =
0, RANGEUPPER = 50, UNITS = "Tasks") [MultiDimensional];
AUTOHISTORY usado por uma mtrica multidimensional para especificar o nmero de pontos
histricos para manter na mtrica. Este parmetro faz com que o cdigo seja gerado
automaticamente para manter um array com valores recentes da propriedade multidimensional.

Implementao de Business Metric

Cada propriedade business metric com um tipo de dados de Ens.DataType.Metric representa um


valor que ser medido e indicado pelo dashboard. Uma propriedade do business metric
chamada de mtrica (metric).

Em outras palavras, uma classe de business metric pode calcular vrias mtricas. Cada
mtrica identificada por uma propriedade do tipo de dado Ens.DataType.Metric. Um
medidor unidimensional preso a uma mtrica.
OnCalculateMetrics() calcula o valor de cada mtrica. Este mtodo deve ser codificado.

InterSystems do Brasil

102

Construindo Produes com Ensemble

O mtodo pode usar queries para obter os dados ou qualquer outra maneira apropriada
para determinar o valor de uma mtrica.
Uma vez determinado, o mtodo atribui o valor a mtrica.

Mtrica (Metric)

Ens.DataType.Metric indica que a propriedade uma mtrica.


Os parmetros da mtrica permitem informaes adicionais sobre a mtrica a ser especificada.
Alguns controlam a aparncia da mtrica.

Parmetros da mtrica so opcionais, com a exceo do AUTOHISTORY para mtricas


multidimensionais.

Parmetros da mtrica so redefinidos por um atributo do medidor do mesmo tipo, tal


como upper range.

Consulte o manual Using Dashboards with Ensemble para detalhes sobre os


parmetros.
RANGELOWER O valor mais baixo previsto para valores de uma mtrica. Pode controlar a
escala indicada no medidor, tal como um velocmetro.
RANGEUPPER O valor mais alto previsto para valores de uma mtrica. Pode controlar a
escala indicada no medidor, tal como um velocmetro.
UNITS Uma string definida pelo usurio que aparece no rodap do Portal de Administrao no
medidor selecionado.
THRESHOLDLOWER O valor de ponto inicial mais baixo da faixa de interesse para o medidor.
Muitos medidores indicam determinados comportamentos conforme o valor mtrico, se est
dentro ou fora de alguma faixa de interesse. Por exemplo, para um semforo (traffic light),
quando o valor estiver abaixo THRESHOLDLOWER, a lmpada inferior do semforo mostra o
verde. Valores acima de THRESHOLDLOWER mas abaixo de THRESHOLDUPPER, a luz do
meio mostra amarelo. Se os valores so iguais ou superiores de THRESHOLDUPPER, a luz
superior mostra vermelho e as outra lmpadas ficam desligadas.
THRESHOLDUPPER O valor de ponto inicial superior da faixa de interesse para o medidor.
Veja a explicao de THRESHOLDLOWER.
AUTOHISTORY Usado com mtricas multidimensionais para especificar o nmero de pontos
de dados "histricos" a serem mantidos na mtrica.
LINK Uma URL especificando uma pgina no browser.

InterSystems do Brasil

103

Construindo Produes com Ensemble

Configurao de Business Metric

Configure da mesma forma que outro business service com um adaptador de entrada (inbound).
O Parmetro CallInterval do adaptador determina com que freqncia ser atualizada ou
recalculada a mtrica.

Ens.BusinessMetric

Uma business metric um business service especializado. Herda de Ens.BusinessMetric, que


herda de Ens.BusinessService.
Ens.BusinessMetric tem um adaptador, Ens.InboundAdapter, e um mtodo OnProcessInput().
Eles trabalham juntos para calcular as mtricas em um intervalo de tempo especfico.

InterSystems do Brasil

104

Construindo Produes com Ensemble

Ens.InboundAdapter

Business Metric A
Ens.BusinessMetric
Ens.BusinessService

Propriedade
CallI nt erval

ca d a
a
a
Ch a m t e r v a l
In
Ca l l t u a l i za r a
a
p ar a a
ic
m t r

ProcessI nput ( )
OnProcessI nput ( )
Calculat eMet rics( )
OnCalculat eMet rics( )

CallInterval um parmetro do adaptador usado com a business metric, Ens.InboundAdapter.


Este parmetro do adaptador especificado quando a business metric adicionada produo.
O CallInterval controla com que freqncia as mtricas so calculadas. A cada CallInterval, o
adaptador chama ProcessInput().

ProcessInput() ento chama OnProcessInput().


OnProcessInput() ento chama CalculateMetrics().
CalculateMetrics() ento chama OnCalculateMetrics().
OnCalculateMetrics() deve ser codificado. Inclui o cdigo para calcular, obter ou gerar de outra
maneira uma mtrica especfica, especificado na classe de business metric.
Consulte a documentao The Class Reference para detalhes nos relacionamentos entre
Ens.InboundAdapter, Ens.BusinessService e Ens.BusinessMetric.

Documentao Dashboard

Referncias para Using Dashboards with Ensemble.

InterSystems do Brasil

105

Construindo Produes com Ensemble

Mdulo 11 Workflow

Mdulo 11 Workflow

InterSystems do Brasil

106

Construindo Produes com Ensemble

InterSystems do Brasil

107

Construindo Produes com Ensemble

Viso Geral
Definio.
Demonstrao.
Reviso:
Implementao.
Portal de Workflow.

Workflow

Business
Processes
Cham ada
para
Work flow

Wor
kflow
Business
Business
Operations
Operat ion

Pessoas

Inbound Adapters

Aplicaes
Clientes

Business
Services

Ense m ble

O Workflow possibilita incorporar a interao humana dentro de business processes


automatizados.

Usos tpicos do workflow incluem a entrada de pedido, cumprimento de uma tarefa, a


aprovao do contrato e as atividades de help desk.
Workflow uma business operation que tem interface humana.
A documentao Using Workflow with Ensemble mostra detalhes de criao, administrao e
participao no workflow.

InterSystems do Brasil

108

Construindo Produes com Ensemble

Tarefas Workflow

Uma tarefa workflow um item atribudo a um usurio. Completar a tarefa requer interveno
humana. Exemplos de tarefas workflow incluem fazer uma chamada telefnica, reparar um
computador e revisar um relatrio de despesa.
O portal workflow do Ensemble, parte do Portal de Administrao, fornece uma relao para
reviso, atribuio, finalizao e auditoria das tarefas.

O portal do workflow acessado a partir da pgina do Portal de Administrao


Workflow Portal.

Fatos Workflow

Uma tarefa atribuda a um usurio com uma funo apropriada.

Uma tarefa associada a apenas uma funo, mas um usurio pode ter vrias funes.
Isto permite que um usurio trabalhe em vrias tarefas, se necessrio.
O mecanismo do Workflow Ensemble automatiza a distribuio das tarefas entre usurios.
Tarefas so automaticamente distribudas de acordo com estratgias pr-definidas.

O Ensemble fornece uma variedade de estratgias de distribuio, tais como a


atribuio pelo ttulo do trabalho e a atribuio pela carga de trabalho atual do usurio.

Pode-se criar estratgias de distribuio de tarefas customizadas.


Usando o portal workflow, um usurio pode aceitar uma tarefa, adicionar comentrios para a
tarefa, abandonar uma tarefa e vrias outras atividades.

InterSystems do Brasil

109

Construindo Produes com Ensemble

Demonstrao

Usurios e Funes

Para criar uma funo:


Workflow Portal -> Workflow Roles -> Create
New Role.
Para criar um usurio:
Workflow Portal -> Workflow Users ->
Create New User.
Para associar um usurio uma funo:
Workflow Portal -> Workflow Roles -> Edit
Users.
Para criar um usurio no Gerenciador SQL:
SQL Manager -> r-click Users.
Para acessar o Portal de Administrao e
ento o portal do workflow, o usurio do
workflow deve existir no Gerenciador SQL.
Para detalhes sobre a criao e
administrao de usurios e funes,
consulte o captulo 7: Managing Workflow
Roles and Users, em Using Workflow with
Ensemble.

InterSystems do Brasil

110

Construindo Produes com Ensemble

Propriedade AutoCreateRole

AutoCreateProperty=True
Cria o papel com a primeira tentativa de emitir a tarefa operao do workflow com
nenhum papel correspondente.
Adiciona usurios uma vez que o papel foi criado.
AutoCreateProperty=False
Crie o papel manualmente antes da primeira tarefa emitida operao do workflow.

Adicionando Workflow na Produo

Nom e Funo

Dist ribuio
Padro

O workflow business operation deve ser adicionado produo. O nome deve ser igual ao nome
da funo das tarefas que sero atribudas.

Um workflow business operation um business operation com finalidade especial que


representa uma funo.

Um workflow business operation deve ser configurado como uma business operation
dentro da mesma produo que o business process que chama a workflow business
operation.

InterSystems do Brasil

111

Construindo Produes com Ensemble

Workflow Business Operation

Workflow business operation deve usar a classe EnsLib.Workflow.Operation, ou uma sub-classe


dela.
A distribuio de tarefas para pessoas atravs de um workflow business operation vista pelo
Ensemble como uma business operation comum.
EnsLib.Workflow.Operation fornece um algoritmo de distribuio da tarefa padro que pode ser
sobrescrito criando uma classe herdada. Se no for sobrescrito, as tarefas so distribudas das
seguintes maneiras:

O primeiro que chega, o primeiro que ser atendido (First come, first served - FCFS).

Atribuio pelo ttulo do trabalho.

Atribuio por nome.

Atribuio por um ranking definido pelo usurio.

Atribuio por carga de trabalho atual do usurio.

...e mais.
Consulte o Captulo 6: Managing Workflow Tasks, em Using Workflow with Ensemble, para
detalhes sobre implementao e uso de distribuio de tarefas customizadas.

Quando estiver criando seu prprio algoritmo de distribuio, faa atribuies atravs de
funes do que de usurios. Pessoas mudam em uma organizao, mas as funes so
relativamente estticas. Os funcionrios que no estiverem mais realizando suas
funes, podem ser removidos de suas funes. Novos usurios podem ser associados
s funes existentes.

Chamando Workflow

Cada chamada para um workflow business operation ir criar uma tarefa. Quando a tarefa
completada, o <call> retornar. Uma atividade sncrona requerida para esperar por um
response do workflow business operation.
O valor de Timeout indica quanto tempo uma tarefa permanecer com status Unassigned antes
de ser rejeitada.

Normalmente, voc no quer que uma tarefa seja rejeitada (em conseqncia de timeout) antes que a tarefa seja completada por algum.

Se houver uma razo para ter uma tarefa disponvel somente durante um determinado
tempo, especifique um valor para Timeout.
Se a tarefa expirar antes de ser completada, a tarefa recebe o status de Discarded (e fica corde-rosa no Task Browser)
Para fornecer um timeout personalizado, sobrescreva OnTimeout() na mensagem
Ens.Workflow.TaskRequest. Isto leva em conta uma alternativa para rejeitar uma tarefa expirada.

InterSystems do Brasil

112

Construindo Produes com Ensemble

EnsLib.Workflow.TaskRequest

Workflow
Business
Operation

Business
Process
EnsLib.Workflow.TaskResponse

Um business process envia um Task Request para um workflow business operation exatamente
da mesma maneira que qualquer outra business operation.

A chamada a um workflow business operation deve ser assncrona. A chamada deve ser
seguida por uma atividade sncrona para aguardar o resultado.
O workflow business operation responder com um response adiado.

Para fazer isto, o workflow business operation configura automaticamente o status do


Task Request para Deferred com ..DeferResponse(.tToken). O Task Request tem o
status Deferred at que o workflow business operation retorne, ex.: a tarefa est
completa.

Uma vez que workflow business operation retorna, o status do Task Request muda para
Completed e o Task Response marcado tambm como Completed.

Usando Propriedades

Ao configurar o callrequest (EnsLib.Workflow.TaskRequest) para um workflow business


operation, configure as propriedades para indicar como o Task Request manipulado. Abaixo
esto algumas das propriedades mais comuns. Consulte o Captulo 6: Managing Workflow
Tasks, em Using Workflow with Ensemble, para ver a lista completa de propriedades e detalhes.

%Action Lista de aes definidas para a tarefa. Determina o Label dos botes
apresentados quando um usurio examina uma tarefa.

%Message O corpo da mensagem apresentado quando o usurio examina a tarefa.

%Subject Um resumo da tarefa apresentado quando o usurio examina a tarefa.

%FormFields Lista de campos editveis para aparecer no formulrio associado com a


tarefa.

InterSystems do Brasil

113

Construindo Produes com Ensemble

Ao receber o callresponse (EnsLib.Workflow.TaskRequest) de um workflow business operation,


grave qualquer valor das propriedades do callresponse em uma propriedade do contexto.
Algumas propriedades do response indicam como o Task Response foi manipulado.

Processamento aps o retorno do workflow pode ser baseado em como, ou quem


manipulou a tarefa. Tendo esta informao em uma varivel do contexto, permite que o
business process tome decises baseadas nos valores do callresponse.

A seguir algumas das propriedades mais comuns. Consulte o Captulo 6: Managing


Workflow Tasks, em Using Workflow with Ensemble, para ver a lista completa de
propriedades.
%Action Valor da ao que o usurio selecionou para terminar a tarefa.
%RoleName Nome da funo que manipulou o request.
%UserName Nome do usurio que manipulou o request.

Propriedades de EnsLib.Workflow.TaskRequest no Studio controlam as informaes que so


fornecidas ao usurio para uma tarefa no portal do workflow. Por exemplo, %Subject e
%Message determinam que assunto e mensagem sero exibidas.
Propriedades de EnsLib.Workflow.TaskRequest podem tambm controlar a aparncia dos
formulrios de tarefas adicionando botes, campos de entrada de texto ou mudando para
qualquer outra extenso requerida.

A propriedade %FormTemplate do Task Request permite o nome de um arquivo CSP


que contenha um modelo para o formulrio da tarefa no portal do workflow. Isto permite
que voc controle como a pgina CSP aparea e funcione.

InterSystems do Brasil

114

Construindo Produes com Ensemble

Criando um Workflow

Passos para criar um Workflow


1. Criar usurios e funes.
2. Adicionar workflow business
operat ion na produo.
- O nom e deve ser com pat vel
com a funo.
3. At ualizar o business process
para usar workflow.
a. Cham ar o workflow bus op.
b. Sincronizar para esperar
pelo workflow.
c. Usar os result ados
do workflow .

Trabalhando com Workflow

O menu principal do portal de workflow fornece as seguintes opes:

Home Exibe a pgina principal do Portal de Administrao.

Workflow Home Exibe a pgina inicial do portal de workflow.

My Tasks Visualiza as tarefas associadas ao usurio que fez login e as tarefas no


atribudas e disponveis para o usurio aceitar.

Workflow Roles Visualizao, modificao e criao de funes de workflow.

Workflow Users Visualizao, modificao e criao de usurios de workflow.

Task Browser Lista todas as tarefas que passaram pela produo. Atribuir uma tarefa
a um usurio especfico. Editar ou cancelar uma tarefa. Tarefas so codificadas por
cores.
Azul Tarefa atribuda.
Amarelo Tarefa no atribuda.
Cinza Tarefa Completa.
Rosa Tarefa rejeitada (no houve response antes de exceder o tempo limite).

Worklist Browser Lista todas as tarefas ativas atualmente (atribudas ou no


atribudas).

InterSystems do Brasil

115

Construindo Produes com Ensemble

Mdulo 12 Business Rules

Mdulo 12 Business Rules

InterSystems do Brasil

116

Construindo Produes com Ensemble

InterSystems do Brasil

117

Construindo Produes com Ensemble

Viso Geral

Definio.
Demonstrao.
Implementao.
Studio.
Portal de Administrao.
Log de Business Rule.

Business Rules

Um business rule determina como um business process ir se comportar em um especfico


ponto de deciso. O desenvolvedor de um business process identifica um ponto de deciso
nomeando o business rule que far a deciso naquele ponto. Um usurio, como um analista de
negcio, usa o Portal de Administrao para definir o critrio que a funo usar para tomar a
deciso.

Isto fornece uma maneira segura para um usurio no-tcnico alterar o comportamento
de um business process em pontos de deciso especficos.
Por exemplo, um desenvolvedor escreve um business process que coordena o
processamento de uma aplicao de emprstimo de uma maneira consistente
atravs de uma empresa internacional; entretanto, a nvel regional, os analistas
do negcios necessitam estarem aptos a estabelecer ajustes especficos,
critrios locais apropriados para aceitar aplicaes de emprstimo individuais.
Para conseguir isto, o analista de negcio local pode criar um business rule
apropriado para sua regio.

InterSystems do Brasil

118

Construindo Produes com Ensemble

Port al de Adm inist r ao

Business
Ru le

Business
Ru le

Business
Operations

Aplicaes Externas

Business
Processes

Outbound Adapters

Inbound Adapters

Aplciaes Cliente

Business
Services

Ense m ble

Em um ponto de deciso de um business process, o business process chama um business rule


definido no Portal de Administrao, para determinar o comportamento especfico nesse ponto
de deciso.
Para configurar inicialmente o uso de um business rule:

Um programador fornece um lugar no business process para referir-se ao business rule.

Um usurio no-programador define o comportamento do business rule usando o Portal


de Administrao

Business Rules no Studio

InterSystems do Brasil

119

Construindo Produes com Ensemble

Um programador usa o Studio para criar uma atividade <rule> no diagrama BPL. Uma
propriedade da atividade <rule> Rule. A propriedade Rule contm o nome do conjunto de
regras, que um usurio no-programador define usando o Portal de Administrao.
Em tempo de execuo, o business process invoca a regra, a regra retorna uma resposta ao
business process e o business process continua a execuo baseado na resposta.
A documentao: Using Business Rules with Ensemble detalha como criar business rules no
Studio.

Business Rules no Portal

Com plet e Class nam e

Um analista de negcio, ou alguma outra pessoa, cria um conjunto de regras usando o nome
especificado na propriedade Rule da atividade <rule>. Um conjunto de regras pode ter uma ou
mais regras. Cada regra pode ter vrias condies, vrias aes e retornar um valor.

Escrever uma business rule prpria no requer conhecimento de programao.


Frequentemente, usado regra ao invs do mais especfico e exato conjunto de regras.
A documentao: Using Business Rules with Ensemble mostra detalhes de como definir e
administrar business rules no Portal de Administrao.

InterSystems do Brasil

120

Construindo Produes com Ensemble

Demonstrao

Implementao

Port al de Adm inist rao

Business
Process

Definio do
Business Rule

Cham ada para


Business Rule

Um usurio no-programador cria uma definio de business rule no Portal de Administrao


usando o editor de business rules.

Um programador tambm pode editar um business rule como um documento XML no


Studio. As alteraes sero apresentadas no Portal de Administrao.
Um programador usa o Studio para determinar a chamada de uma business rule a partir de um
business process.

InterSystems do Brasil

121

Construindo Produes com Ensemble

Criando um Business Rule

Passos para criar Business Rule


1. St udio:
a. Ponha os valores necessrios
pelo Business Rule dent r o das
propriedades do cont ext o.
b. Adicionar at ividade < rule>
2. Port al de Adm inist rao:
a. Especifique os det alhes do
business rule.

Business Rule no Studio

O editor de business rule no Portal de Administrao somente tem acesso as propriedades do


contexto; ento, qualquer valor a ser usado no business rule precisa estar disponvel nas
propriedades de contexto.

Primeiro, crie as propriedades de contexto. Se necessrio, atribua valores apropriados


s propriedades do contexto no business process antes de chamar o business rule. Isto
pode ser feito quando uma chamada retorna, ou adicionando uma atividade <assing>
distinta.
Por exemplo, considere um business rule que precisa saber se o cliente existe:
Cenrio 1: A informao retornada em uma chamada.
o Quando a chamada retorna, atribua context.ExistingCustomer =
callresponse.ExistingCustomer.
Cenrio 2: A informao est no request para o business process.
o Use uma atividade <assing>, antes da atividade <rule>, para
atribuir context.ExistingCustomer = request.ExistingCustomer.

InterSystems do Brasil

122

Construindo Produes com Ensemble

Adicione uma atividade <rule> em um business process em qualquer lugar que um business rule
for necessrio. Apropriadamente informe as propriedades Rule, ResultLocation e
ReasonLocation da atividade <rule>.

Rule Conecta o business rule no business process com a definio do business rule no
Portal de Administrao.
O valor da propriedade Rule deve ser exatamente o nome do conjunto de
regras.

ResultLocation Local para armazenar o valor do retorno da regra. Normalmente, esta


uma propriedade do contexto, como context.MeuValor.

ReasonLocation Local para armazenar o motivo retornado pela regra. O motivo da


regra uma string que indica o porque de uma business rule ter tomado esta deciso.
Por exemplo, Rule 1 ou Default. Se o business rule estiver vazio (por exemplo, um
conjunto de regras que no contm nenhuma regra) ento o motivo dado para a deciso
Rule Missing."
Normalmente, esta uma propriedade do contexto, como context.TheReason.

Business Rule no Portal

Valor da
propriedade
Rule no St udio
Valores do
Cont ext o

Vai para
Result Locat ion

Se nenhum a regr a
com pat vel

InterSystems do Brasil

123

Construindo Produes com Ensemble

O Portal de Administrao usado para criar a definio de business rule. A definio do


business rule na verdade chamada de conjunto de regras, que pode ter uma ou mais regras.

O nome de um conjunto de regras deve ser exatamente igual ao valor da propriedade


Rule da atividade <rule> no business process.

Defina cada uma das regras no conjunto de regras.


Cada regra tem condies (conditions), aes possvel (actions) e um valor de
retorno (RETURN).
Conditions Um conjunto de zero ou mais condies que so definidos
usando os operadores AND ou OR. Cada condio consiste em dois
valores e um operador de comparao entre os valores. Os valores
podem ser strings, nmeros, propriedades de contexto ou expresses.
(Opcional)
Actions Um conjunto de zero ou mais determinaes a serem
executadas caso a regra seja verdadeira. Somente propriedades do
contexto podem ser valores atribudos em uma Ao. (Opcional)
RETURN O valor de retorno caso a regra seja verdadeira. O valor
RETURN vai para o ResultLocation definido na atividade <rule> do
business process. (Obrigatrio)

Defina o DEFAULT. O DEFAULT retornado se nenhuma regra for compatvel.


Uma definio de regra inteiramente separada do cdigo do business process. As definies
da regra so armazenadas na base de dados do Ensemble e avaliadas em tempo de execuo.
As modificaes nas definies das regras so atualizadas para a base de dados e podem
imediatamente ser aplicadas a uma produo em execuo.

InterSystems do Brasil

124

Construindo Produes com Ensemble

Nome da Regra (Rule Name)

Quando voc usa o elemento <rule> no BPL, o valor da propriedade da Rule pode ser qualquer
um do seguinte:
Um nome simples da regra (Rule): CalculateShipping.
O nome completo da classe mais o nome da regra (Rule) combinados:
Demo.TRU.Process.OrderProduct.CalculateShipping.
O nome completo da classe conhecido como Package Name no portal.
Se a propriedade Rule for um nome simples da Rule, o ensemble preenche automaticamente o
nome completo da classe do business process BPL que contem o elemento <rule>. Esta
combinao deve identificar uma regra vlida dentro do namespace, ou o valor do retorno ser
uma string nula.
Em conseqncia, cada conjunto de business rule identificado excepcionalmente atravs de
um namespace Ensemble
Isto permite que um business process consulte a toda a business rule configurada no
namespace.

Expresses em Business Rules

Frmula para unir propriedades e valores.


Expresses podem usar:

Operadores padres.
Concatenados com &.

Funes embutidas.
Min()
Max()
Round()

Funes definidas pelo usurio.

InterSystems do Brasil

125

Construindo Produes com Ensemble

Uma expresso uma frmula que combina valores e propriedades para retornar um valor.

Expresses podem ser usadas nas condies, aes, valores de retorno e valores
padres de um conjunto de regras.

No h nenhuma validao ao informar uma expresso no Value Editor (Editor de


Valor). Qualquer string aceita.
Consulte a documentao: Using Business Rules with Ensemble para ver a lista de todos os
operadores vlidos em uma expresso e usando funes embutidas.
possvel estender o conjunto de funes disponveis para incluir funes definidas pelo
usurio. Adicionando funes a sub-classe Ens.Rule.FunctionSet e adicionando mais mtodos.
Consulte a documentao: Using Business Rules with Ensemble para verificar maiores detalhes
e um exemplo.

Funes Utilitrias

As funes podem ser usadas nas condies de uma Business Rule.


Consulte Developing Ensemble Productions
Creating a New Production
Utility
Functions para uma lista de todas as funes de servio pblico internas.
possvel estender o conjunto de funes disponveis para incluir funes definidas pelo
usurio. Adicionar funes uma sub-classe de Ens.Rule.FunctionSet e de adicionar mais
mtodos. Consulte Using Business Rules with Ensemble para detalhes e um exemplo.

Atribuio em Business Rules

Pode atribuir valores s propriedades de contexto.

Em adio ao RETURN.

No disponvel com ao a DEFAULT.

ASSIGNs permite que um Business Rule ajuste mais valores do que apenas o valor de
RETURN.

Ao fazer um ASSIGN, somente uma propriedade do contexto pode ser atribuda a um


valor.

Qualquer nmero de ASSIGN pode ser feito para uma regra.


A ao DEFAULT no permite que nenhum ASSIGN seja feito.

InterSystems do Brasil

126

Construindo Produes com Ensemble

Log de Business Rules

Regra compatvel.
Chamando business process.
Compatibilizar motivo.
Valor de retorno.

O Log do Business Rule um registro persistente dos business rules que foram executados,
seus respectivos resultados e motivos para o resultado.

Session ID Link para o visual trace da mensagem de primary request.

TimeExecuted Data e hora de quando a regra foi invocada pela ltima vez.

HostClass Nome da classe de business process que invocou a regra.

Activity Name Nome atribudo a atividade <rule> no business process.

RuleName Nome atribudo definio da regra no Portal de Administrao.

RuleVersion Nmero que identifica a verso.

Reason Componente da definio da regra que determinou o resultado.

ReturnValue Valor retornado pela regra.

IsError 1 indica um erro.

ErrorMsg Texto associado ao erro.

Roteamento Rule Sets

InterSystems do Brasil

127

Construindo Produes com Ensemble

Existem 2 tipos de business rule sets:


Rule sets.
A nica ao possvel como o resultado de uma regra deve configurar o valor de
uma propriedade no objeto do contexto do business process.
Routing rule sets.
Uma regra pode transformar uma mensagem e ento provocar uma ao, ento
enviar uma mensagem a um outro componente da regra ou do negcio..
Fornece o engine de distribuio baseado na regra com a informao requerida
para distribuir mensagens entre aplicaes atravs de uma produo do
ensemble..
Usado normalmente para distribuir mensagens HL7 mais qualquer tipo de
mensagem suportada.
Para detalhes sobre criar e usar conjuntos de regras de roteamento, consulte o Ensemble HL7v2
Development Guide or Ensemble HL7v3 Development Guide.

InterSystems do Brasil

128

Construindo Produes com Ensemble

InterSystems do Brasil

129

This document was created with Win2PDF available at http://www.daneprairie.com.


The unregistered version of Win2PDF is for evaluation or non-commercial use only.

Das könnte Ihnen auch gefallen