Você está na página 1de 67

Criando Solues Pentaho

Verso 1.1 Milestone 5



18 de Maio de 2006














Copyright 2006 Pentaho Corporation. Redistribuio permitida. Todas as marcas registradas so de
propriedade de seus respectivos donos.
Para as ltimas informaes, visite nosso web site www.pentaho.org
Sumrio
Introduo................................................................................................................................................. 1
Workflow no Centro................................................................................................................................. 1
Arquitetura O ientada a Servios (Servio-Orien ed Arquitetura, SOA) r t ........................................... 2
Integrao de Processos ......................................................................................................................... 2
Regras, Regras, Regras........................................................................................................................... 2
Fronteira entre Business intelligence e Processos de Negcio.......................................................... 2
Estudo de Caso......................................................................................................................................... 2
Soluo 1: Entregue o que eles pedem................................................................................................ 3
Soluo 2: Entregue o que eles precisam............................................................................................. 3
Concluso................................................................................................................................................... 3
Audincia................................................................................................................................................... 5
Introduo ao Mecanismo de Soluo................................................................................................... 5
Sequncia de Ao................................................................................................................................... 8
Um Exemplo Mais Complicado.............................................................................................................. 10
Recapitulando a Sequncia de Ao.................................................................................................... 11
URL........................................................................................................................................................... 12
Chamada de Web Servio.................................................................................................................. 12
Chamada J ava......................................................................................................................................... 12
Viso Geral............................................................................................................................................... 16
Introduo............................................................................................................................................ 16
Convenes e Pressupostos Gerais...................................................Error! Bookmark not defined.
Integrando Relatrios J FreeReport......................................................... Error! Bookmark not defined.
Definies do J FreeReport..................................................................Error! Bookmark not defined.
Criando a Sequncia de Ao.............................................................Error! Bookmark not defined.
Setup do Driver J DBC..........................................................................Error! Bookmark not defined.
Verificando a Integrao do J FreeReport no Pentaho....................Error! Bookmark not defined.
Integrando Relatrios BIRT...................................................................... Error! Bookmark not defined.
Definies de Relatrio Eclipse BIRT ................................................Error! Bookmark not defined.
Criando a Sequncia de Ao.............................................................Error! Bookmark not defined.
Setup do J DBC......................................................................................Error! Bookmark not defined.
Verificando a Intagrao do BIRT Integration ao Pentaho............Error! Bookmark not defined.
Integrando o J asperReports..................................................................... Error! Bookmark not defined.
Definies de Relatrio J asperReports..............................................Error! Bookmark not defined.
Criando a Sequncia de Ao.............................................................Error! Bookmark not defined.
Setup do J DBC......................................................................................Error! Bookmark not defined.
Verificando a Integrao do J asperReports ao Pentaho................Error! Bookmark not defined.
ChartComponent................................................................................................................................. 30
CategoryDatasetComponent.............................................................................................................. 33
Aes........................................................................................................................................................ 35
Gatilhos (Triggers).................................................................................................................................. 39
Excees (Misfires)............................................................................................................................ 41
MDXLookupRule.................................................................................................................................. 44
SQLLookupRule................................................................................................................................... 46
Tipos de Dados das Sequncias de Ao............................................................................................ 52
Tipos de Recursos das Sequncias de Ao....................................................................................... 54
Definies de Componentes.................................................................................................................. 55
HelloWorldComponent........................................................................................................................ 55
componente-name: HelloWorldComponent.................................................................................... 55
EmailComponent................................................................................................................................. 56
componente-name: EmailComponent.............................................................................................. 56
J avascriptRule...................................................................................................................................... 57
componente-name: J avascriptRule.................................................................................................. 57
SQLLookupRule................................................................................................................................... 58
componente-name:.SQLLookupRule................................................................................................ 58
PrintComponent................................................................................................................................... 59
componente-name: PrintComponent............................................................................................... 59
J obSchedulerComponent ................................................................................................................... 60
SchedulerAdminComponent .............................................................................................................. 60
BIRTReportComponent ...................................................................................................................... 60
J asperReportsComponent...................................................................Error! Bookmark not defined.
ContentRepositoryCleaner ................................................................................................................. 60
componente-name: ContentRepositoryCleaner.............................................................................. 60
SubActionComponent......................................................................................................................... 61
componente-name: ContentRepositoryCleaner.............................................................................. 61
Pg 1
Abordagem Orientada a Soluo
Introduo
Em nossa experincia ajudando clientes a criar sistemas analticos, encontramos situaes similares muitas
vezes. O cenrio sempre diferente, mas a necessidade sempre a mesma: um relatrio entregue ou
uma situao particular encontrada nos dados e algo especfico precisa acontecer uma deciso precisa
ser tomada, causas devem ser descobertas ou processos iniciados. Nestes casos, a apresentao da
informao, anlise e entrega (BI) parte de um processo maior. Este processo existe para resolver um
problema de negcio.

Esclarecendo:

Em geral, a soluo para um problema de negcio um processo que inclui Business intelligence.
Ento: o Business intelligence, por si s, no a soluo para o problema.
Se o Business intelligence parte do processo, as ferramentas de Business intelligence so tambm parte
do processo.
A ferramenta de Business intelligence que no entende processo ser difcil de integrar na soluo.

A Plataforma Pentaho BI a primeira plataforma de Business intelligence totalmente orientada
a processos e a solues.

Como podemos demonstrar esta afirmativa?
Workflow no Centro
A Plataforma Pentaho BI tem vrias opes para executar atividades. O mecanismo padro de execuo
um seqenciador de fluxos enxuto. Este seqenciador permite ao desenvolvedor construir solues a partir
de colees de fluxos, geralmente lineares e sucessivas, utilizando parmetros e alguns mecanismos de
looping. Por exemplo: rodar a consulta para encontrar quais departamentos esto acima do oramento,
rodar o relatrio para cada departamento, e enviar email de cada relatrio para o gerente do departamento.

Quando o negcio requisitar interao do usurio, tarefas em paralelo, deadlines e tratamento de erros,
existe suporte para utilizar um amplo mecanismo de workflow. O mecanismo de workflow utiliza a language
XML Process Definio Language (XPDL) para executar os Fluxos no sistema. Um exemplo deste tipo de
soluo seria um processo de contratao de Recursos humanos novos onde mltiplos departamentos tem
de ser notificados sobre a contratao, , aes precisam ser coordenadas e a tarefa final verificar se toda
a documentao est completa e aprovada.

No caso em que a soluo precisa ser coordenada externamente, qualquer Fluxo definido no sistema
disponvel como web services e retorna seus resultados como pacotes SOAP. Isto permite que aes
possam ser coordenadas via tecnologia de orquestrao como BPEL workflow.

Componentes tambm podem ser embutidos diretamente em uma aplicao J ava. Isto pode ser importante
se sua soluo precisa ser parte de uma aplicao existente.

No importa qual opo de desenvolvimento voc escolha:
A plataforma entende a natureza dos processos pois tudo nela definido como um processo.
Os processos so definidos em linguagens padro externamente visveis, editveis e customizveis.
No existe lgica de negcio escondida.

A plataforma construda em processos e definies destes.
Pg 2
Arquitetura Orientada a Servios (SOA)
Isto rapidamente est se tornando sem sentido, pois toda aplicao que aceite chamadas via URLs est
declarando que tem a SOA. Quando voc projeta o sistema com um mecanismo de workflow como condutor
de toda atividade no sistema, toda operao de cada processo deve ser implementada como um
componente separado e reutilizvel que pode ser direcionado a executar a atividade.
Isto no somente SOA, mas uma Arquitetura Implementada em Servios (SIA). Toda atividade em todo
processo pode ser web servio pois todas as atividades s podero executar como servios. Nao existe
outro metodo de invocaao. A regra dos web : invocao.

Servios so os blocos de construao de processos de negcio.
Integrao de Processos
Todo processo e atividade no Pentaho BI executa como servio. Se voc deseja chamar um processo ou
atividade definida na plataforma de um processo externo executando em outro sistema, voc pode. fcil.

Cada atividade no sistema entende como fazer parte de outro processo.
Regras, Regras, Regras
Os processos da plataforma so definidos externamente, mas e as regras que governam o workflow? A
XPDL possui suporte para controle de roteamento complexo, e adicionamos suporte para mltipas engines
para que a lgica possa ser facilmente integrada. Mltiplas engines so necessrias pois improvavel que a
lgica de toda a deciso possa ser definida em apenas um mecanismo.

Por exemplo, a regra de negcio que determina a anlise de credito de um cliente pode ser descrita de trs
maneiras diferentes:

Um simples script: se (customerNo < 3000 ) return Bob else return Mary
Um algoritmo complexo baseado nas compras atuais, acordo por nvel de servio, histrico e pagamentos,
localizao, etc
Uma chamada a um banco de dados ou sistema ERP para buscar este valor

Se a anlise de crdito de cada cliente for armazenada no sistema ERP, a manutenao da regra em
diferentes sistemas ser redundante e custosa, oferecendo riscos e sem valor adicional.

Regras de negcio flexveis so uma parte crtica de processos de negcio automatizados.
Fronteira entre Business Intelligence e Processos de
Negcio
A divisao entre business intelligence e processos de negcio flexvel no Pentaho BI. Isto por que esta
diviso deve estar a cargo de voc. Se voc tem uma plataforma que define claramente a fronteira entre ela
e outro sistemas, voc provavelmente tem uma aplicao silo mais difcil de integrar.

O mecanismo de execuo de processos na plataforma baseado totalmente em workflow
A Plataforma inclui mltiplas engines de regras
Na Plataforma atividades so facilmente integradas a outro processos
O caminho inclui entrada de dados manual por usurios
Estudo de Caso
Problema: quando um empregado aparece para trabalhar em uma empresa de sade com uma licena
expirada, acontece o seguinte
Isto notado e um trabalhador mais caro de uma agencia deve substituir o empregado at sua licena ser
renovada
Pg 3
Isto no notado, caso em que a segurana do paciente est em risco e tambm a empresa sujeita a
multas etc.
Objetivos de Negcio: aumentar a segurana do paciente, reduzir o risco de multas e os gastos com
pessoal temporrio de agncias.
Processo Corrente: Cada gerente mantm uma lista das datas de expirao de seu departamento.
Soluo Proposta: Agendar a execuo de um relatrio de um banco de dados que lista, por
departamento, licenas de cada empregado, e as datas de expirao.
Soluo 1: Entregue o que eles pedem
Crie um relatrio de 50 pginas e entregue para cada departamento uma vez por ms.

Processo de Negcio resultante:
O relatrio no auditado. Se ele no rodar, quanto tempo demora at algum notar?
Gerentes de cada departamento devem ler o relatrio e filtrar a informao. Relatrios sao perdidos,
gerentes tiram ferias e datas so confundidas.
Quando gerentes encontram uma licena por expirar, deixam uma nota para o empregado. Notas so
perdidas ou colocadas em lugares errados.
Empregados tentam agendar tempo para preparao, aplicao e certificao. Conflitos de agenda
ocorrem.
Empregados falham na certificao sem tempo para maiores preparaes ou novo teste antes da
expirao da licena.


Esta soluo incompleta por que somente automatiza a entrega de informao, no ajuda o processo real.
O objetivo de negcio fica como sub-produto do relatrio.
Soluo 2: Entregue o que eles precisam

Crie regras de negcio que determinem o lead time requerido para a preparao adequada para cada tipo
de licena.
Rode um relatrio auditado todo o dia ou semana para listar os empregados dentro deste lead time. Para
cada empregado inicie um processo definido de renovao da licena:

1. Entrega da informao eletronicamente para o gerente e o empregado
2. requisitar confirmao eletrnica do recebimento de ambos
3. direcionar o empregado para agendar seu tempo de preparao
4. direcionar o gerente a aprovar a agenda
5. requisitar ao empregado informar as datas dos testes
6. Gerar avisos caso tempo insuficiente para re-test tenha restado
7. requisitar ao gerente para validar a nova licena
8. Entrega notificao no caso de falha ao gerente e agendar nova aplicao.

Oferece relatrios on-line em tempo real do processo de renovao
Produza relatrios de auditoria mensais

Esta soluo resolve o problema de negcio.
Concluso
Para entregar esta soluo voc precisa de ferramentas de relatrio e anlise que :
Suportem regras de negcio
Auditem a execuo de relatrios e entrega de informao
Integrem com sistemas de workflow

Voc tambm precisa de um mecanismo de workflow / processo de negcio que:
Lide com escalonamentos baseados em tempo
Pg 4
Audits execuo of atividades within the processo
Integre com ferramentas de relatrio e anlise

Voc tambm precisa dispor de relatrios de performance em tempo real e histrico do processo.

Esta a plataforma do Pentaho BI .

A Plataforma Pentaho BI centrada em processos e orientada a soluo.

O resto do documento descreve como as engines e componentes da Plataforma Pentaho BI podem ser
usadas para criar solues para suas necessidades de Business intelligence.

Pg 5
Construindo Solues
A sesso prvia descreveu nossa abordagem orientada a soluo e seus benefcios. O resto deste
documento apresenta a descrio tcnica do Mecanismo de Soluo e os documentos necessrios para
construir solues na Plataforma Pentaho BI.
Audincia
Esta sesso direcionada a pessoas que tem interesse em construir solues e contedo e tambm para
quem precisar de interface com as pores de desenvolvimento da Plataforma Pentaho BI. Antes de ler
este documento, voc deve ler e entender o Artigo Tcnico Pentaho disponvel em SourceForge -
http://sourceforge.net/projects/pentaho.

Este documento tem exemplos e referencias a arquivos distribudos na Plataforma Pentaho BI Pre-
Configured Install (PCI), instalaao pr-configurada. recomendado que a PCI seja baixada e instalada.
Ela tambm est disponvel no SourceForge http://sourceforge.net/projects/pentaho.
Introduo ao Mecanismo de Soluo
O Mecanismo de Soluo um ponto focal point de atividade na Plataforma Pentaho BI. Est colocado
entre o mundo externo clientes Web, servios, Monitor do Sistema etc. e a camada de componentes.
Veja a figura 1 Diagrama da Arquitetura. Requisies para tarefas vem para o mecanismo de soluo e
so roteadas para o componente apropriado ou componentes para execuo. Os seguintes termos sero
usados na discusso sobre o Mecanismo de Soluo:

Soluo - A Soluo consiste na coleao de documentos que coletivamente definem os processos
e atividades do sistema. Estes documentos incluem Definies de Sequencia de ao, definies de
processo workflow, definies de relatrio, imagens, regras, consultas, etc.

Repositrio de Soluo o local onde as definies de soluo e os metadados correspondentes
so armazenadas e mantidas. Requisies feitas a plataforma para que aes sejam executadas
dependem da ao estar definida no Repositrio.

Mecanismo de Soluo o mecanismo que recupera a definio de uma ao do Repositrio de
Soluo e direciona sua execuo.

Componente A camada de componente proporciona uma interface padro entre o Mecanismo
de Soluo e a aplicao que executa a lgica de negcio. Um componente pode conter todo o
cdigo para a execuo de uma tarefa ou ser apenas uma interface para outra aplicao ou
sistema. Dados e instrioes para o componente so proporcionadas via uma Definio de Ao.

Definio de Ao Uma definio XML especificando os parmetros e recursos necessrios para
a execuo de uma tarefa em um componente especfico. A Definio de Ao define qual
componente chamar, que dados passar e receber do componente e qualquer informao especifica
requerida pelo componente. Uma Definio de Ao no um documento separado, mas parte da
Definio da Sequencia de ao.

Definio da Sequencia de ao um documento XML que define a interao entre uma ou
mais Definies de Ao. Define a menor tarefa completa que o Mecanismo de Soluo pode
rodar. Quando o Mecanismo de Soluo solicitado a executar passado um documento de
Sequencia de ao para ele. A execuo de uma Sequencia de ao pode ser autnoma ou fazer
parte de outra Sequencia de ao. Definies de Sequencia de ao so armazenadas no
Repositrio de Soluo.

Contexto de Runtime Sequencias de ao so transformadas de XML pelo Mecanismo de
Soluo em objetos que sero interpretados pelo Contexto de Runtime. O Contexto de Runtime
Pg 6
mantm um contrato entre o Mecanismo de Soluo e a Sequencia de ao e obriga um contrato
entre a Sequencia de ao e os componentes.

O diagrama da arquitetura abaixo mostra como o Mecanismo de Soluo, o Repositrio de Soluo , e os
componentes se encontram na arquitetura. As Solues, Definies de ao e Definies de Sequencia de
ao so armazenadas no Repositrio de Soluo. O Mecanismo de Soluo cria o Contexto de Runtime
toda vez que a requisio recebida.

Figure 1 Diagrama da Arquitetura Pentaho
Clients
Pg 7
SNMP/J MX SOAP/WSDL HTTP RSS
Runtime/
Solution
Repository
Audit
Repository
J 2EE
Server
Data Mining
Repository
Workflow
Repository
Schedule
Repository
Data
Sources
Single Sign On
Web Browsers Inbox Alerter
Services / UDDI J ava Server Pages, Servlets, Portlets
Navigation Components
Solution Engine
Components
W
o
r
k
f
l
o
w

R
e
p
o
r
t
i
n
g

D
a
s
h
b
o
a
r
d
s

O
t
h
e
r
s

(
s
e
e

t
e
x
t
)

P
i
v
o
t

V
i
e
w
s

A
u
d
i
t

R
e
p
o
r
t
s

Auditing
S
c
h
e
d
u
l
e
r

B
u
s
i
n
e
s
s

R
u
l
e
s

A
n
a
l
y
t
i
c

V
i
e
w
s

I
n
b
o
x

K
P
I
s

Workflow
Engine
Scheduler
Reporting
Engine
Rules
Engines
OLAP
Engine
Application
Integration
/ ETL
System
Monitoring
Web Service
Client
Data
Mart
D
a
t
a

M
i
n
i
n
g

A
p
p

I
n
t
e
g
r
a
t
i
o
n

J
M
S

Application Data
Control Flow Data Flow Legend
Architecture:
Customer/3
rd
Party
Technology or Data
3
rd
Party Open
Source Technology
Pentaho
Technology
Server
Solues em Detalhe
A soluo no um simples documento, mas uma coleo de documentos. um agrupamento lgico de
Definies de Sequencia de ao e recursos necessrios. O agrupamento mantido pelo Repositrio de
Soluo. Voc pode ver a estrutura do Repositrio de Soluo navegando no diretrio pentaho-solutions
dentro da instalao PCI. O local padro : /preconfigured-install/pentaho-solutions.

No diretrio pentaho-solutions, so 2 solues pr-definidas, test e samples. A Figure 2 mosta a Sequencia
de ao HelloWorld.xaction dentro da soluo samples.

Figure 2 Repositrio de Soluo



Note que existem subdiretrios dentro da soluo test. Os documentos de Sequencia de ao e recursos
podem estar localizados em qualquer local dentro do diretrio da soluo (neste caso- test) e em qualquer
subpasta deste. Deste modo, podemos agrupar logicamente o contedo. Dentro da soluo test, as
Sequencias de ao so agrupadas por tipo de componente; email, relatrio, workflow etc. Em um sistema
real, o agrupamento pode ser por departamento, papel ou outra estrutura que faa sentido para a soluo.

Para localizar uma Sequencia de ao no repositrio, use o endereo de trs partes: soluo id, path e
nome da sequencia de ao. No caso Sequencia de ao HelloWorld o endereo : samples, getting-
started, HelloWorld.xaction.

As duas solues test and samples so disponvels com a PCI ou podem ser baixadas do from SourceForge.
A soluo test serve para verificar se os diferentes componentes do sistema esto setados e funcionando
corretamente. A soluo samples possui diversos exemplos, os quais oferecem um bom ponto de partida
para aprendizado e construo de novas Sequencias de ao. As Sequencias de ao referidas neste
documento so localizadas em samples, getting-started.
Sequncia de Ao
A Sequencia de ao um documento XML que define a menor tarefa completa que o Mecanismo de
Soluo pode executar. executada por um mecanismo de fluxo de processo muito enxuto que define a
ordem de execuo de um ou mais componentes da Plataforma Pentaho BI. Evitamos chamar isto de fluxo
de processo por que faltam muitos dos recursos de um verdadeiro mecanismo deste tipo. Ele til para
sequenciar tarefas pequenas, lineares e orientadas a sucesso, tal como relatrios e envio por mail. Possui
Pg 8
Pg 9
recursos de lao e chamada de outra Sequencia de ao e eventualmente tem capacidade de executar
componentes com condioes. O documento de Sequencia de ao deve ter o sufixo .xaction.

Esta uma listagem do Documento de Sequencia de ao HelloWorld.xaction.

<act i on- sequence>
<name>Hel l oWor l d. xact i on</ name>
<t i t l e>Hel l o Wor l d Act i on Sequence</ t i t l e>
<ver si on>1</ ver si on>
<l oggi ng- l evel >DEBUG</ l oggi ng- l evel >

<document at i on>
<aut hor >J oe Pent aho</ aut hor >
<descr i pt i on>The most basi c Act i on Sequence Document </ descr i pt i on>
<hel p>Hel l o Wor l d demonst r at es t he most basi c Act i on Sequence document .
I t uses t he Hel l o Wor l d Component .
</ hel p>
</ document at i on>

<i nput s/ >
<out put s/ >
<r esour ces/ >

<act i ons>
<act i on- def i ni t i on>
<act i on- t ype>Hel l o Wor l d Act i on</ act i on- t ype>
<act i on- i nput s/ >
<act i on- out put s/ >
<act i on- r esour ces/ >
<component - name>Hel l oWor l dComponent </ component - name>
<component - def i ni t i on>
<quot e>( 2B | | ! 2B) That i s t he quest i on</ quot e>
</ component - def i ni t i on>
</ act i on- def i ni t i on>
</ act i ons>
</ act i on- sequence>


Alguns Nodos XML so auto explicativos como author and descrio. Nesta sesso, abordaremos os mais
importantes nodos, para uma completa explicao da Sequencia de ao veja o Apndice A.

A Sequencia de ao em duas partes principais, o documento principal e os nodos de aes. O documento
principal define a interface da Sequencia de ao com o mundo externo. Ele especifica as entradas e
recursos que so requeridos pelos componentes referenciados pelo documento e define as sadas que iro
estar disponveis quando todos os componentes forem executados. Este exemplo no possui entradas nem
sadas nem utiliza recursos. Os nodos de aes contm as Definies de Ao para executar.

Existe uma correspondncia um para um entre as Definies de Ao e componentes. O exemplo
HelloWorld tem uma Definio de Ao, nomeada Hello World Action, sem inputs nem outputs. O
componente que sera carregado e responder a requisio a J ava class Hel l oWor l dComponent .
Quando o componente carregado, o XML dentro do component-definition passado e os parmetros de
entrada ficam disponveis.

O Componente HelloWorld no muito empolgante, basicamente faz uma sada Hello World e adiciona o
que estiver no nodo quote ao console.
Pg 10
Um Exemplo Mais Complicado
Esta uma listagem do Documento de Sequencia de ao Example1.xaction.


<act i on- sequence>
<name>Exampl e1. xact i on</ name>

< - some header nodes del et ed - >

<i nput s>
<r egi on t ype=" st r i ng" >
<def aul t - val ue>Cent r al </ def aul t - val ue>
<sour ces>
<r equest >REGI ON</ r equest >
<sessi on>aRegi on</ sessi on>
</ sour ces>
</ r egi on>

<f r omt ype=" st r i ng" >
<def aul t - val ue>j oepent aho@pent aho. or g</ def aul t - val ue>
</ f r om>

<subj ect t ype=" st r i ng" >
<def aul t - val ue>Pent aho Exampl e1</ def aul t - val ue>
</ subj ect >

<message- pl ai n t ype=" st r i ng" >
<def aul t - val ue>
Thi s i s an emai l f r omt he Pent aho BI Pl at f or m- Exampl e1
</ def aul t - val ue>
</ message- pl ai n>
</ i nput s>
<out put s/ >
<r esour ces/ >
<act i ons>
<act i on- def i ni t i on>
<act i on- i nput s>
<r egi on t ype=" st r i ng" / >
</ act i on- i nput s>

<act i on- out put s>
<r ul e- r esul t t ype=" st r i ng" / >
</ act i on- out put s>

<component - name>J avascr i pt Rul e</ component - name>
<component - def i ni t i on>
<scr i pt ><! [ CDATA[
f unct i on get Manager sEmai l ( t heRegi on ) {

i f ( " Cent r al " . equal s( t heRegi on ) ) {
r et ur n( " j oe. pent aho@pent aho. or g" ) ;
}
r et ur n( " j di xon@pent aho. or g" ) ;
}

get Manager sEmai l ( r egi on ) ;
] ] >
</ scr i pt >
</ component - def i ni t i on>
</ act i on- def i ni t i on>
Pg 11

<act i on- def i ni t i on>
<act i on- i nput s>
<t o t ype=" st r i ng" mappi ng=" r ul e- r esul t " / >
<f r omt ype=" st r i ng" / >
<subj ect t ype=" st r i ng" / >
<message- pl ai n t ype=" st r i ng" / >
</ act i on- i nput s>
<component - name>Emai l Component </ component - name>
<component - def i ni t i on/ >
</ act i on- def i ni t i on>

</ act i ons>
</ act i on- sequence>

Neste exemplo, a Sequencia de ao tem 4 inputs: region, from, subject e message-plain. Para region, o
tipo foi definido como string; tem o padro Central e pode vir de uma ou duas fontes: requisio e sesso.
Quando o RuntimeContext resolve a entrada region em runtime, primeiro ir olhar na requisio
(provavelmente uma requisio http). Se no encontrar na requisio, ir olhar na sesso (provavelmente
uma sesso http). Se no estiver disponvel na sesso, o valor padro ser usado. A ordem em que as
fontes so especificadas no Documento XML ser a ordem utilizada na procura. O padro sempre usado
como ltimo recurso.

As outras entradas somente especificam um valor padro. Isto anlogo a codificar os parmetros como
valores constantes. Como o output desta Sequencia de ao um email, no existem parmetros de sada.

Existem duas nodos action-defininition para esta sequencia. O primeiro define uma regra J avaScript e
requer o parmetro region; ir criar um novo parmetro chamado rule-result. Este novo parmetro ficar
disponvel para outro nodo action-defininition na seqncia.

Sem entrar a fundo na regra J avaScript, o valor de rule-result ir ser setado para o endereo de email
apropriado ao valor da regio.

Quando a primeira action-defininition completa, a segunda ir executar. Ela define uma interao com o
componente Email. Este componente requer 4 entradas: to, from, subject e message-plain. Voc pode ter
notado que as entradas (action-inputs): from, subject e message-plain so especificadas na sesso inputs
do cabealho da Sequencia de ao. O RuntimeContext ir pegar os valores de l e disponibiliza-los para o
Componente Email como entregou a region ao Componente J avaScript. A fonte da entrada to no est
definida diretamente. definida indiretamente como o atributo mapping. Este atributo especifica ao
RuntimeContext para utilizar o valor de rule-result que foi gerado pela regra J avaScript e usa como
entrada no componente to.
Recapitulando a Sequncia de Ao
As entradas, sadas e recursos no header da Sequencia de ao definem um contrato entre a Sequencia de
ao e o mundo externo. A seqncia requisita que as entradas e recursos sejam passados e ir retornar as
sadas especificadas.

A action-defininition define um contrato entre cada componente e a Sequencia de ao. As action-inputs e
action-recursos definem parmetros que cada componente necessita para executar. As action-outputs
definem quais parmetros estaro disponveis aps o componente completar a execuo. Sadas de um
componente podem ser usadas como entrada a outro componente. O atributo mapping (mapeamento) das
action-inputs permite que sadas de um componente tenham nomes diferentes como entradas em outro
componente.

Especificar as relaes entre entradas/sadas e os tipos de dados permite ao sistema validar uma Sequencia
de ao sem precisar executar os componentes. Uma completa soluo pode ser validada e protegida de
modificaes nos Documentos de Sequencia de ao e eliminados erros de ligao entre estes documentos.
Pg 12
Executando a Soluo
O Documento de Sequencia de ao define as tarefas a serem executadas, a ordem de execuo, a entrada
de dados requerida e as sadas de dados disponveis. So armazenadas no Repositrio de Soluo e so
localizadas especificando o id da soluo id, o caminho e o nome da sequencia de ao. Quando a
Sequencia de ao executada, o Mecanismo de Soluo cria um Contexto de Runtime que proporciona o
ambiente de execuo. O Contexto de Runtime contm os parmetros de entrada, coordena acesso a
recursos, armazena novos dados e contedo gerado e mantm o estado da Sequencia de ao em
execuo. As aes so completadas, suas sadas e contedo gerado so armazenadas no Contexto de
Runtime. Quando a Sequencia de ao finaliza a execuo, a poro de dados do Contexto de Runtime
mantida (persistida) no Repositrio de Runtime.

Quando um novo Contexto de Runtime criado, ele ganha um identificador de instncia nico. Este id a
chave que identifica o Contexto de Runtime quando este for persistido. O id de instncia tambm usado
para auditoria e pode ser usado para rastrear qual o componente que o criou (componente pai).
Certamente, existe um mecanismo de limpeza dos dados do repositrio de runtime.

A Sequencia de ao no precisa receber um novo Contexto de Runtime cada vez que for executada. Pode
receber o id de uma instncia prvia de modo que todos os dados e contedo dos Documento de Sequencia
de ao executados anteriores fica disponvel. Aqui quando o contrato entre o Documento de Sequencia
de ao se torna importante. Desde que uma sada de um Documento de Sequencia de ao anterior tenha
sido especificada, estar disponvel como entrada a uma Sequencia de ao posterior. Esta habilidade de
encadear Documentos de Sequencia de ao atravs do mesmo Contexto de Runtime se torna poderosa
quando utilizada junto com o mecanismo de workflow.

Existem vrias maneiras de executar a soluo; via URL, J ava Code ou chamada de Web Servio.
URL
Os exemplos contidos na instalao pr-configurada so acionados via URL utilizando o servlet ViewAction
(org.pentaho.ui.servlet.ViewAction) servlet. A URL seguinte ir acionar a Sequencia de ao HelloWorld:

http://localhost:8080/pentaho/ViewAction?&solution=samples&path=getting-started&action=HelloWorld.xaction

O resultado retornado depende do Documento de Sequencia de ao. Voc poder visualizar um relatrio,
uma mensagem de texto ou somente Action Successful. Os seguintes parmetros podem ser passados
em uma URL:

solution, path, action a localizaao do Documento de Sequencia de ao a ser carregado.
instance_id o instance Id de um prvio Contexto de Runtime
debug setar true para que a informao de debug seja guardada no log de execuo log.
Chamada de Web Servio (Web Service)
No grupo de exemplos Settings and Services da instalao pr-configurada existe um Exemplo Web
Servio. Ainda uma chamada URL call, desta vez ao servlet ServiceAction
(org.pentaho.ui.servlet.HttpWebService). A URL seguinte ir acionar a Sequencia de ao HelloWorld:

http://localhost:8080/pentaho/ServiceAction?solution=samples&path=getting-started&action=HelloWorld.xaction

neste caso, o resultado retornado uma resposta XML SOAP. Os seguintes parmetros podem ser
passados via URL:

solution, path, action a localizaao do Documento de Sequencia de ao a ser carregado.
instance_id o instance Id de um prvio Contexto de Runtime
debug setar true para que a informao de debug seja guardada no log de execuo.
Pg 13
Chamada J ava
A Sequencia de ao pode ser executada diretamente de uma aplicao J ava. Para um exemplo de como
fazer isto, abra o arquivo J ava org.pentaho.test.RuntimeTest.java e olhe o teste J Unit para HelloWorld.
Parmetros
Existem trs tipos de parmetros que o Documento de Sequencia de ao entende; entradas, sadas e
recursos. Entradas e sadas so variveis de tipo de dados especfico tal como string ou property-map (veja
o Apndice B para tipos de dados vlidos). Recursos so similares a entradas exceto que especificam um
tipo mime e caminho. Um valor padro no pode ser especificado para recursos. Tipicamente recursos
representam grandes volumes de dados tal como definies de relatrio ou images (veja o Apndice B para
tipos de recursos vlidos.)

Parmetros podem vir de quatro origens; runtime, requisio, sesso, globais e padro. parmetros de
Runtime so parmetros que so armazenados no Contexto de Runtime. Lembre, the Contexto de Runtime
armazena as entradas e sadas de instncias anteriores e as torna disponvel para execues futuras da
mesma id de instncia. Parmetros de Requisio so pares nome-valor especificados em uma URL.
parmetros de Sesso so variveis armazenadas na sesso do usurio e podem conter valores nicos para
cada usurio. parmetros Globais so similares aos parmetros de sesso exceto que tem os mesmos
valores para todos os usurios. Valores Padro so especificados no Documento de Sequencia de ao e so
usados como ltimo recurso.

Parmetros Sesso e Global podem ser usados para proporcionar filtragem segura de dados dentro de uma
Sequencia de ao. Um parmetro de sesso iniciado executando uma sequencia de ao quando o
usurio loga no sistema. A Sequencia de ao chamada no login pode ser setada para realizar uma
consulta usando o nome de login do usurio dentro de uma clusula where. O resultado armazenado na
sesso de usurio e fica disponvel Sequencias de ao subsequentes. Parmetros Globais so iniciados
quando o sistema inicia e so disponvel para todos os usurios. Veja o documento Assegurando Acesso a
Dados com Filtros de Sesso e Globais para informao de como setar os filters e us-los.

Aqui est um exemplo de entradas tipo sesso em um Documento de Sequencia de ao:

<i nput s>
<r egi on t ype=" st r i ng" >
<def aul t - val ue>Cent r al </ def aul t - val ue>
<sour ces>
<r equest >REGI ON</ r equest >
<r unt i me>aRegi on</ r unt i me>
</ sour ces>
</ r egi on>
</ i nput s>

Este exemplo indica que o Documento de Sequencia de ao requer o parmetro region (sensvel ao Caps
Lock.) Quando executada, o Contexto de Runtime primeiro ir verificar se o parmetro de nome REGION
existe na requisio. Se a Sequencia de ao foi lanada via URL, e existe parmetro REGION=xxx
especificado, ento este valor (xxx) ser substitudo pela entrada region. Se no encontrar o parmetro
na requisio, ir procurar em seus dados de runtime por um parmetro de nome aRegion. Se no
encontrar no seu Contexto de Runtime este Dado, o valor Central ser usado. O Contexto de Runtime
sempre procura pelas fontes na ordem em que so especificadas e pega o padro por ltimo. Se nenhum
padro for especificado, ento a Sequencia de ao ir retornar erro.

Existem dois parmetros implcitos instance-id e solution-id que esto sempre disponvel e no precisam
ser especificados como entradas ou sadas. Certamente voc pode imaginar o que eles so.

Pg 14
Componentes
O Documento de Sequencia de ao a definio, o Contexto de Runtime proporciona um ambiente de
execuo e os Componentes so a lgica de negcio. Um Componente executa uma funo simples, um
grupo de funes relacionadas ou uma ponte entre a Plataforma Pentaho BI e uma aplicao externa. O
componente jFree Reports um exemplo de componente que faz interface da plataforma com o mecanismo
de relatrio jFree Reports.

Existem duas funes principais que um Componente chamado a executar validar e executar. Validar
chamado para verificar se as so validas e todos os recursos requridos para executar esto disponveis.
Executar realmente realiza a ao.

O nodo action-defininition no Documento de Sequencia de ao define como o componente deve
funcionar. o local para definir e mapear entradas, sadas e outro metadados ou ajustes que o
componente ir requerer quando executado. O nome do componente que executa a Definio de Ao
identificado usando o nodo component-name. O nome o nome de uma J ava class que carregada
dinamicamente durante o runtime. Quando se referir aos componentes embutidos no Pentaho, o nome
completo do componente no deve ser usado, somente o nome da classe. Por exemplo, use
EmailComponent ao invs de org.pentaho.plugin.email.EmailComponent.

Entradas
Os nodos action-inputs e action-resources definem os parmetros passados ao componente quando
executar. Alguns componentes tem entradas que devem ser disponveis ou erro de runtime ir ocorrer.
Algumas entradas podem ser especificadas mas so opcionais. Por exemplo, o Componente Email requer a
to mas o cc opcional. Existem muitas maneiras de satisfazer uma entrada requerida. Pode ser
passado como parmetro com mesmo nome para o componente. Pode ser mapeado para um nome
diferente e passado ao componente. Pode ser colocado no cdigo como constante ou em alguns casos pode
ser perguntado. Por padro o email componente tem a entrada assim:

<act i on- i nput s>
<t o t ype=" st r i ng" / >
. . .
</ act i on- i nput s>


Entrada Mapping
O que acontece se o componente requer uma entrada nomeada x e voc deseja passar um parmetro
nomeada y? Voc pode mapear qualquer entrada para um nome diferente usando o atributo mapping.
Novamente, usando nosso Email Componente exemplo, digamos que exista uma regra J avaScript que
realiza uma consulta e retorna o email de um usurio em um parmetro de sada nomeado EMAIL.
Digamos que voc deseja usar o parmetro como parmetro to no Componente Email. O XML ir parecer
com o seguinte:

<act i on- i nput s>
<t o t ype=" st r i ng" mappi ng=" EMAI L" / >
. . .
</ act i on- i nput s>

Valores Constantes como Entradas
Se o componente requer um parmetro de entrada e no encontrado em action- inputs, o componente
ir automaticamente procurar no nodo XML como o mesmo nome, na sesso component-definition. Se
encontrar, ir usar o valor dali. O XML parece o seguinte:

<act i on- i nput s>
</ act i on- i nput s>

<component - def i ni t i on>
<t o>j oe. pent aho@pent aho. or g</ t o>
</ component - def i ni t i on>
Pg 15

Parmetros Permutveis
Todos os componentes tem a habilidade de utilizar o mecanismo embutido de template para permutar o
texto usando parmetros de entrada. Isto significa que um valor constante pode ser modificado usando o
valor de uma action-input. Vejamos um exemplo:


<act i on- i nput s>
<EMAI L t ype=" st r i ng" / >
. . .
</ act i on- i nput s>

<component - def i ni t i on>
<t o>{EMAI L}@pent aho. or g</ t o>
</ component - def i ni t i on>


The texto entre chaves {} ser substitudo por um parmetro de entrada de mesmo nome. Neste exemplo,
se o valor da action-input EMAIL for joe.pentaho ento o valor do parmetro passado to ao
componente email ser joe.pentaho@pentaho.org.

Perguntando ao Usurio (Prompting)
Alguns componentes iro perguntar por parmetros requeridos. A pergunta ser gerada em runtime se o
mecanismo de chamada permitir. Por exemplo, o Componente Email requer um parmetro to. Se este
parmetro for especificado como action-input mas tiver valor nulo, o Componente ir perguntar ao
runtime se permitido perguntar ao usurio. Se a Sequencia de ao executada tiver sido acionada de um
web browser, o runtime ir responder true e o Email Componente ir pedir ao runtime para perguntar ao
usurio pelo to. Se a Sequencia de ao estiver rodadndo como web servio, o runtime retorna false e o
Email Componente ir gerar um erro de parmetro e retornar.

O action- outputs define quais parmetros sero salvos no Contexto de Runtime e tornados disponveis a
outro Componente quando o primeiro componente termina a execuo. Como um action-input, o action-
output pode ser mapeado para outro nome varivel usando o mapping.

O nodo component-definition proporciona local especfico para opes ou parmetros de qualquer
Componente. O restante deste documento descreve entradas, recursos e sadas requeridos por cada um
dos componentes disponveis na Plataforma Pentaho BI.

Veja o Apndice C para entrada, sada e definio especficas requeridas de cada Componente.
Existem Ferramentas para Ajudar?
Se parece complicado, existe uma maneira mais fcil - o Pentaho Design Studio. Ele contm um ambiente
grfico para projetar Sequencias de ao. Solues podem ser montadas sem nenhum conhecimento do
XML. Entradas podem ser arrastadas de um componente e largadas no seguinte. Este um bom momento
para voc testar o Design Studio. Voc pode se referir aos captulos seguintes somente quando necessrio.

Faca o Download da ltima verso e guia do usurio em
http://sourceforge.net/project/showfiles.php?group_id=140317.


Pg 16
Integrando seus prprios relatrios
Viso Geral
Introduo
Bem, voc deve construir seus prprios relatrios usando J FreeReport, Eclipse BIRT ou J asperReports que
usa um formato prprio de dados e agora voc se pergunta: Como eu vou integrar estes relatrios com a
plataforma de BI do Pentaho? No se preocupe, vamos ensin-lo. O Pentaho possui familiaridade com essas
ferramentas para relatrio, seja J FreeReport, J asperReports ou Eclipse BIRT e ele assume que voc tenha
disponvel os seguintes recursos:

Um relatrio aprovado e codificado em XML (.xml do J FreeReport, .rptdesign do Eclipse BIRT ou
um .jrxml do J asperReports). Aprovado significa que voc j tenha testado o relatrio fora da
plataforma do Pentaho BI e que funcionou corretamente.

O driver J DBC com exteno .jar do banco de dados que voc est usando.


Nota: O J FreeReport desenvolvido e mantido pelo Pentaho e por isso o preferido e mais suportado
software de engenharia de relatrios para a plataforma do Pentaho.

Suposies e Convenes gerais
Este guia assume que as seguintes condies esto satisfeitas:

Que o Pentaho j esteja instalado, configurado e pronto para uso;
Todas as barras (/) neste documento estaro inclinadas para a direita. Quem usa a plataforma
Windows dever corrigi-las para a barra inclinada para a esquerda (\), salvo em casos especficos
que sero comentados;
O diretrio de instalao pr-configurado no Pentaho ser referenciado neste documento como
{PCI}. Onde voc encontrar caminhos de diretrios especficos, considere-os como subdiretrios do
diretrio de instalao como neste exemplo: {PCI}/jboss/server/default/deploy. Sendo assim, se
voc instalou a configurao padro do Pentaho no drive C do Windows na pasta chamada
pentaho-pci, ento no seu caso a expresso {PCI}/ seria C:\pentaho-pci\;
Que o leitor leu e compreendeu a sesso anterior A Seqncia de Ao, Apndice A- Seqncia
de Ao XML nos detalhes, Apndice B com respeito s seqncias de aes, formato e contedo;

Integrando Relatrios com J FreeReport
Para maiores informaes sobre como usar o J FreeReport na plataforma do Pentaho por favor leia o
captulo Guia do Usurio para Relatrio com o Assistente.

Definindo Relatrios no J FreeReport
O J FreeReport utiliza o padro XML para definies de relatrios e estas definies so salvas em arquivos
com a extenso .xml, porm esta extenso no obrigatria. O Pentaho J FreeReportComponent
(org.pentaho.plugin.jfree.J FReeReportComponent) usa as definies do relatrio junto com seus dados para
produzir um formato de sada compreensvel. Os formatos de sada gerados pelo J FreeReport so HTML,
PDF, CSV, XLS e RTF.


O J FreeReport abstrai esses dados de uma J ava TableModel (tabela modelo). H uma implementao de
TableModel sob medida na plataforma Pentaho que fornece uma interface amigvel e uma eficiente
performance operacional. Tendo em vista que o J FreeReport opera de acordo com predefinies e com
uma TableModel, no h outro jeito de parametrizao no J FreeReport. Isto realizado no action-
sequence (seqncia de aes) e na prpria query em SQL.

Usando o Pentaho Report Design Wizard (assistente para criao de relatrios do Pentaho) voc poder
criar definies de J FreeReport e tambm uma seqncia bsica de aes.

Em um exemplo simples, crie um relatrio em uma template (moldura) vazia e introduza uma query SQL
com o seu banco de dados.



A tela acima mostra uma query SQL parametrizada para usar com o Report Design Wizard (Assistente para
criao de relatrios). A coluna REGION o que ns estamos usando como nosso parmetro ou condio.
O nome do parmetro tambm REGION, mas essa igualdade no necessria. Na verso atual, o
assistente no tem a habilidade de informar ao usurio sobre valores de parmetros, sendo assim o valor
padro Eastern (oeste) foi sugerido. A especificao completa do parmetro na query
{REGION=Eastern}.

Quando o relatrio executado pelo Report Design Wizard o valor do parmetro REGION trocado com o
valor padro especificado como Eatern (oeste). Quando o relatrio publicado para uso na plataforma
Pentaho, o parmetro REGION instalado na action-sequence (seqncia de ao) e o usurio ser
alertado para fornecer um valor. A action-sequence gerada pelo Report Design Wizard pode ser mais
customizada pelo Pentaho Design Studio.
Criando a Seqncia de Ao (Action Sequence)
Uma vez que voc verificou que o relatrio est trabalhando sem problemas no Report Design Wizard, voc
pode descansar seguro que ele estar apto para funcionar com a plataforma Pentaho. A razo disso que o
Report Design Wizard executa o relatrio em uma verso autnoma da plataforma Pentaho. No h
necessidade de criar uma action-sequence uma vez que ele tenha sido gerado automaticamente pelo
Assistente. Entretanto, se voc tiver uma definio de relatrio criada a mo no J FreeReport ou em outra
ferramenta, ns lhe mostraremos uma action-sequence que o ajudar a montar um relatrio bsico
parametrizado. Veja:

<act i on- sequence xml ns: xsi =" ht t p: / / www. w3. or g/ 2001/ XMLSchema- i nst ance" >
<name>J Fr eeRepor t - Wi zar dRepor t . xact i on</ name>
<ver si on>1</ ver si on>
<t i t l e>%t i t l e</ t i t l e>
<document at i on>
<aut hor >Repor t Desi gn Wi zar d</ aut hor >
<descr i pt i on><! [ CDATA[ %descr i pt i on] ] ></ descr i pt i on>
<i con>Pent ahoRepor t i ng. png</ i con>
<hel p>Thi s act i on- sequence was gener at ed by t he Repor t Desi gn Wi zar d. To edi t
t hi s act i on- sequence use t he Pent aho Desi gn St udi o. </ hel p>
<r esul t - t ype>r epor t </ r esul t - t ype>
</ document at i on>
<i nput s>
<out put - t ype t ype=" st r i ng" >
<def aul t - val ue>ht ml </ def aul t - val ue>
<sour ces>
<r equest >t ype</ r equest >
</ sour ces>
Pg 17
Pg 18
</ out put - t ype>
<REGION t ype=" st r i ng" >
<def aul t - val ue/ >
<sour ces>
<r equest >REGION</ r equest >
</ sour ces>
</ REGION>
</ i nput s>
<out put s>
<r epor t t ype=" cont ent " >
<dest i nat i ons>
<r esponse>cont ent </ r esponse>
</ dest i nat i ons>
</ r epor t >
</ out put s>
<r esour ces>
<r epor t - def i ni t i on>
<sol ut i on- f i l e>
<l ocat i on>J Fr eeRepor t - Wi zar dRepor t . xml </ l ocat i on>
<mi me- t ype>t ext / xml </ mi me- t ype>
</ sol ut i on- f i l e>
</ r epor t - def i ni t i on>
</ r esour ces>
<act i ons>
<act i on- def i ni t i on>
<act i on- i nput s>
<out put - t ype t ype=" st r i ng" / >
<REGION t ype=" st r i ng" / >
</ act i on- i nput s>
<act i on- out put s>
<r epor t t ype=" cont ent " / >
</ act i on- out put s>
<component - name>J Fr eeRepor t Component </ component - name>
<act i on- t ype>r epor t </ act i on- t ype>
<component - def i ni t i on>
<sour ce>sql </ sour ce>
<l i ve>t r ue</ l i ve>
<j ndi >Sampl eDat a</ j ndi >
<quer y><! [ CDATA[ sel ect * f r omquadr ant _act ual s wher e REGI ON i n
( ' {REGION}' ) ] ] ></ quer y>
</ component - def i ni t i on>
</ act i on- def i ni t i on>
</ act i ons>
</ act i on- sequence>

Instalao do J DBC Driver
Se voc est usando um driver de banco de dados, sem ser da Hypersonic, voc necessitar configurar o
J Boss PCI para us-lo. V at a seo J asper em Configuraes J DBC para mais detalhes.

Verificando a I ntegridade do J FreeReport na Plataforma
Pentaho

Neste ponto o relatrio deve estar pronto para uso. Aponte o seu navegador Internet para o endereo do
Pentaho (que normalmente seria http://localhost:8080). Navegue at o relatrio que voc criou no grupo
Reporting Examples (menu Exemplos de Relatrio).



Quando voc entrar no relatrio, uma pgina padro gerada solicitando a voc que digite um valor para o
parmetro REGION que a condio para pesquisa e gerao do relatrio.



Uma vez que voc tenha preenchido o valor, o relatrio ser gerado e dependendo do tipo de sada no
action-sequence voc ver seu relatrio no formato desejado. O exemplo acima mostra um relatrio em
HTML.

Integrando Relatrios BIRT
Definies de Relatrios no Eclipse BIRT
Um arquivo de relatrio no Eclipse BIRT (report.rptdesign) so simplesmente arquivos no formato XML com
uma extenso esquisita. A extenso permitir que o Eclipse IDE reconhea o arquivo como um relatrio do
BIRT. O componente do Pentaho BI RTRepor t Component
(or g. pent aho. pl ugi n. ecl i psebi r t . BI RTRepor t Component ) capaz de executar esses relatrios e
produzir sadas nos formatos HTML, PDF, FO e FOP.

Os parmetros do Eclipse BIRT so definidos nas definies do relatrio como Scalar Parameters
(parmetros escalares). No BIRT um parmetro deve estar inserido no Data Set. Isso bom quando
criamos um Data Set ou enquanto editamos um Data Set j existente. H uma seo chamada Parameters
no editor do Data Set onde voc definir seus parmetros. Quando o parmetro definido o valor padro
deve seguir a seguinte conveno: params[SOME_PARAMETER]. O SOME_PARAMETER deve coincidir
com o nome de um parmetro de relatrio conforme tenha sido definido na seo Report Parameters do
Data Explorer no BIRT.


Pg 19



No exemplo acima, com um parmetro de relatrio nomeado como REGION, o mesmo foi definido
conforme mostramos a seguir.


Pg 20
Pg 21
Criando uma Seqncia de Ao (Action Sequence)

Aps verificar que o relatrio no BIRT est correto podemos com segurana utiliza-lo como uma soluo
Pentaho. Copie o relatrio do BIRT para {PCI}/pentaho-solutions/samples/reporting. O que ns precisamos
fazer agora criar um documento XML de seqncia de ao e grava-lo em {PCI}/pentaho-
solutions/samples/reporting. Este documento composto de diversas sees: documentao, entradas,
sadas, recursos e definies de ao. Certifique-se que o nome do Documento de seqncia de ao deve
combinar com a Tag XML <name> nele contida.

Documentao: Esta sesso est reservada para voc incluir informaes do autor, descrio,
um cone para representar a seqncia de ao, um link (URL) para uma pgina de ajuda e um
Result-Type (tipo de resultado). Neste exemplo, ns especificamos relatrio como um Result-
Type.

<document at i on>
<aut hor >Mi chael D' Amour </ aut hor >
<descr i pt i on>BI RT Repor t wi t h Par amet er s</ descr i pt i on>
<i con>r epor t i ng. png</ i con>
<hel p></ hel p>
<r esul t - t ype>r epor t </ r esul t - t ype>
</ document at i on>

Entradas: H 2 entradas: Output-Type (tipo de sada) e REGION (Regio). Observe que a
entrada REGION tem o mesmo nome do parmetro de relatrio do BIRT. Isto importante. O
output-type ou tipo de sada no exemplo abaixo html. Outros tipos de sadas aceitveis so
PDF, FO e FOP.

<i nput s>
<out put - t ype t ype=" st r i ng" >
<def aul t - val ue>ht ml </ def aul t - val ue>
<sour ces>
<r equest >t ype</ r equest >
</ sour ces>
</ out put - t ype>
<REGI ON t ype=" st r i ng" >
<def aul t - val ue></ def aul t - val ue>
<sour ces>
<r equest >REGI ON</ r equest >
</ sour ces>
</ REGI ON>
</ i nput s>


Recursos: Nesta sesso ns definimos um report-definition (definio de relatrio) que aponta
para o arquivo XML .rptdesign do BIRT.

<r esour ces>
<r epor t - def i ni t i on>
<sol ut i on- f i l e>
<l ocat i on>BI RT- r epor t . r pt desi gn</ l ocat i on>
<mi me- t ype>t ext / xml </ mi me- t ype>
</ sol ut i on- f i l e>
</ r epor t - def i ni t i on>
</ r esour ces>

Aes: Neste exemplo ns temos somente uma action-definition (definio de ao). O
component-name (nome do componente) identifica a classe J ava que efetua a ao. Para o BIRT
os relatrios usam o nome "BIRTReportComponent". H duas entradas nesta ao: a output-type
(tipo de sada) e a REGION (regio). Estas entradas so definidas na seo de entradas do
documento action-sequence (seqncia de aes).

<act i ons>
<act i on- def i ni t i on>
Pg 22
<act i on- i nput s>
<output-type t ype=" st r i ng" / >
<REGION type=" st r i ng" / >
</ act i on- i nput s>
<act i on- out put s>
</ act i on- out put s>
<component - name>BI RTRepor t Component </ component - name>
<act i on- t ype>r epor t </ act i on- t ype>
<component - def i ni t i on>
</ component - def i ni t i on>
</ act i on- def i ni t i on>
</ act i ons>

Todo documento de seqncia de ao utilizado no exemplo mostrado abaixo:

<act i on- sequence>
<name>r epor t . xact i on</ name>
<ver si on>1</ ver si on>
<t i t l e>Par amet er i zed BI RT Repor t </ t i t l e>

<document at i on>
<aut hor >Mi chael D' Amour </ aut hor >
<descr i pt i on> BI RT Repor t wi t h Par amet er s </ descr i pt i on>
<i con>r epor t i ng. png</ i con>
<hel p></ hel p>
<r esul t - t ype>r epor t </ r esul t - t ype>
</ document at i on>

<i nput s>
<out put - t ype t ype=" st r i ng" >
<def aul t - val ue>ht ml </ def aul t - val ue>
<sour ces>
<r equest >t ype</ r equest >
</ sour ces>
</ out put - t ype>
<REGI ON t ype=" st r i ng" >
<def aul t - val ue></ def aul t - val ue>
<sour ces>
<r equest >REGI ON</ r equest >
</ sour ces>
</ REGI ON>
</ i nput s>

<out put s>
</ out put s>

<r esour ces>
<r epor t - def i ni t i on>
<sol ut i on- f i l e>
<l ocat i on>r epor t . r pt desi gn</ l ocat i on>
<mi me- t ype>t ext / xml </ mi me- t ype>
</ sol ut i on- f i l e>
</ r epor t - def i ni t i on>
</ r esour ces>

<act i ons>
<act i on- def i ni t i on>
<act i on- i nput s>
<out put - t ype t ype=" st r i ng" / >
<REGI ON t ype=" st r i ng" / >
</ act i on- i nput s>
<act i on- out put s>
</ act i on- out put s>
<component - name>BI RTRepor t Component </ component - name>
<act i on- t ype>r epor t </ act i on- t ype>
<component - def i ni t i on>
</ component - def i ni t i on>
</ act i on- def i ni t i on>
</ act i ons>
</ act i on- sequence>
Instalando o Driver J DBC
O gerenciador de relatrios BIRT contm informaes de conexo J DBC que sero usadas pelo BIRT para
gerar relatrios.
J que estamos gerando os relatrios de dentro da estrutura do Pentaho, ns devemos pr o drive J DBC
para o banco de dados que estamos usando na pasta {PCI}/jboss/server/default/lib.

Verificando a Integrao do BIRT com a Plataforma do
Pentaho
Neste ponto o relatrio deve estar pronto para uso. Aponte o seu navegador web para o seu endereo de
Host (ou PCI), que numa instalao de demonstrao seria http://localhost:8080, e navegue no relatrio que
voc criou sob o grupo Reporting Examples.



Neste ponto voc alertado para escolher um dos parmetros ou opes de relatrio. Escolha a opo e
clique em Submit.



Sucesso! Agora possvel ver o relatrio gerado em HTML.

Pg 23
Integrando Relatrios J asper (J asperReports)
Definies para Relatrio no J asperReports
Arquivos com definies para criao de relatrios (report.jrxml) do J asperReports so tambm documentos
XML com uma extenso no mnimo extica. No J asperReports os arquivos com a extenso .jrxml so
considerados como cdigo fonte do seu relatrio. O componente de relatrio do Pentaho chamado
J asperReportsComponent (or g. pent aho. pl ugi n. j asper r epor t s. J asper Repor t sComponent ) o
encarregado de efetuar a compilao do relatrio no formato .jrxml e de tudo mais que for necessrio
para que esteja utilizvel. O J asperReportsComponent do Pentaho permite a execuo destes relatrios e
permite reproduzir os resultados nos formatos HTML ou PDF.

Os parmetros do J asperReports ficam nas definies do prprio relatrio XML. Se voc est usando iReport
para criar seus J asperReports, voc deve criar parmetros em seu Object Library (vide figura a seguir) que
possa referenciar o parmetro da query do seu relatrio.


O relatrio acima est usando um parmetro nomeado como STATE. Para que o usurio seja instrudo a
informar o valor do parmetro STATE na soluo Pentaho, voc deve selecionar a opo Is for
prompting (solicitar digitao) ao criar o parmetro, como mostra a figura a seguir:
Pg 24

Criando uma Seqncia de Ao (Action Sequence)
Agora podemos introduzir no Pentaho o relatrio criado no J asperReport. Copie o arquivo de extenso
jrxml para {PCI}/pentaho-solutions/samples/reporting. O que ns precisamos fazer agora criar um
documento XML de seqncia de ao do Pentaho e salv-lo em {PCI}/pentaho-
solutions/samples/reporting. Este documento formado de vrias sees: Documentao, entradas, sadas,
recursos e definies de aes. Observe que o nome do documento de seqncia de ao deve combinar a
tag XML <name> com o seu prprio nome. A seguir estaremos detalhando cada seo.

Documentao: Esta seo te conduzir a incluir informaes do autor, descrio, um cone que
represente a seqncia de ao, um endereo web para uma pgina de ajuda e o tipo de resultado
(result-type). Neste exemplo ns especificamos report (relatrio) como o tipo de resultado.

<document at i on>
<aut hor >Angel o Rodr i guez</ aut hor >
<descr i pt i on>Exampl e of how t o add a new J asper Repor t t o a
sol ut i on</ descr i pt i on>
<i con>r epor t i ng. png</ i con>
<hel p></ hel p>
<r esul t - t ype>r epor t </ r esul t - t ype>
</ document at i on>


Entradas: H 2 entradas: Output-Type (tipo de sada) e STATE. Observe que a entrada STATE
tem o mesmo nome do parmetro de relatrio que est sendo usado pelo J asperReport. Isso
importante. O output-type no exemplo a seguir em html. Outro tipo de sada opcional o PDF.

<i nput s>
<out put - t ype t ype=" st r i ng" >
<def aul t - val ue>ht ml </ def aul t - val ue>
<sour ces>
<r equest >t ype</ r equest >
</ sour ces>
</ out put - t ype>
<STATE t ype=" st r i ng" >
<def aul t - val ue></ def aul t - val ue>
<sour ces>
<r equest >STATE</ r equest >
Pg 25
Pg 26
</ sour ces>
</ STATE>
</ i nput s>

Recursos: Nesta seo ns criamos uma report-definition (definio de relatrio) que aponta
para o arquivo XML de extenso .jrxml do J asperReport:

<r esour ces>
<r epor t - def i ni t i on>
<sol ut i on- f i l e>
<l ocat i on>r epor t . j r xml </ l ocat i on>
<mi me- t ype>t ext / xml </ mi me- t ype>
</ sol ut i on- f i l e>
</ r epor t - def i ni t i on>
</ r esour ces>

Aes: Neste exemplo temos somente uma definio de ao. o nome do componente que
identifica a classe J ava que efetua a ao. No J asperReports usa-se J asper Repor t sComponent .
H 2 entradas nesta seo: O tipo de sada (output-type) e o STATE. Estas entradas esto
definidas na seo de entradas do documento de seqncia de aes.

<act i ons>
<act i on- def i ni t i on>
<act i on- i nput s>
<out put - t ype t ype=" st r i ng" / >
<STATE t ype=" st r i ng" / >
</ act i on- i nput s>
<act i on- out put s>
</ act i on- out put s>
<component - name>J asper Repor t sComponent </ component - name>
<act i on- t ype>r epor t </ act i on- t ype>
<component - def i ni t i on>
</ component - def i ni t i on>
</ act i on- def i ni t i on>
</ act i ons>

Abaixo o original inteiro do documento de seqncia de ao usado neste exemplo:

<act i on- sequence>
<name>r epor t . xact i on</ name>
<ver si on>1</ ver si on>
<t i t l e>Sampl e MySql Repor t </ t i t l e>
<document at i on>
<aut hor >Angel o Rodr i guez</ aut hor >
<descr i pt i on>Exampl e of how t o add a new J asper Repor t t o a
sol ut i on</ descr i pt i on>
<i con>r epor t i ng. png</ i con>
<hel p></ hel p>
<r esul t - t ype>r epor t </ r esul t - t ype>
</ document at i on>
<i nput s>
<out put - t ype t ype=" st r i ng" >
<def aul t - val ue>ht ml </ def aul t - val ue>
<sour ces>
<r equest >t ype</ r equest >
</ sour ces>
</ out put - t ype>
<STATE t ype=" st r i ng" >
<def aul t - val ue></ def aul t - val ue>
<sour ces>
<r equest >STATE</ r equest >
</ sour ces>
</ STATE>
</ i nput s>
<out put s>
</ out put s>
<r esour ces>
<r epor t - def i ni t i on>
<sol ut i on- f i l e>
Pg 27
<l ocat i on>r epor t . j r xml </ l ocat i on>
<mi me- t ype>t ext / xml </ mi me- t ype>
</ sol ut i on- f i l e>
</ r epor t - def i ni t i on>
</ r esour ces>
<act i ons>
<act i on- def i ni t i on>
<act i on- i nput s>
<out put - t ype t ype=" st r i ng" / >
<STATE t ype=" st r i ng" / >
</ act i on- i nput s>
<act i on- out put s>
</ act i on- out put s>
<component - name>J asper Repor t sComponent </ component - name>
<act i on- t ype>r epor t </ act i on- t ype>
<component - def i ni t i on>
<j ndi Ur l >MySql DS</ j ndi Ur l >
</ component - def i ni t i on>
</ act i on- def i ni t i on>
</ act i ons>
</ act i on- sequence>

Instalao do Driver J DBC
J que estamos gerando os relatrios dentro do Pentaho framework, devemos ento utilizar o driver J DBC
com o banco de dados desejado em {PCI}/jboss/server/default/lib.

Ao contrrio das definies de relatrio do BIRT, arquivos .jrxml no contm as definies de conexo
com o banco de dados para o relatrio. Esta informao necessita ser especificada na seqncia da ao.
Como mostrado acima, a localizao do banco de dados pode ser definida dentro das definies de ao
como segue:

<component - def i ni t i on>
<dr i ver >com. mysql . j dbc. Dr i ver </ dr i ver >
<connect i on>j dbc: mysql : / / l ocal host : 3306/ sampl edat a</ connect i on>
<user - i d>j i m</ user - i d>
<passwor d>passwor d</ passwor d>
</ component - def i ni t i on>

Como alternativa, o banco de dados pode ser identificado usando um nome de J NDI como segue:

<component - def i ni t i on>
<j ndi >MySql DS</ j ndi >
</ component - def i ni t i on>

Se voc pretende usar J NDI para identificar um relatrio de banco de dados, voc necessitar configurar o
J Boss para mapear o nome do J NDI para o seu banco de dados como segue:

Crie um arquivo no formato xxxx-ds.xml para o seu tipo de banco de dados em
{PCI}/jboss/server/default/deploy. No exemplo a seguir criaremos um arquivo mysql-ds.xml com o
seguinte contedo:

<?xml ver si on=" 1. 0" encodi ng=" UTF- 8" ?>
<dat asour ces>
<l ocal - t x- dat asour ce>
<j ndi - name>MySql DS</ j ndi - name>
<connect i on- ur l >j dbc: mysql : / / l ocal host : 3306/ sampl edat a</ connect i on- ur l >
<dr i ver - cl ass>com. mysql . j dbc. Dr i ver </ dr i ver - cl ass>
<user - name>j i m</ user - name>
<passwor d>passwor d</ passwor d>
<except i on- sor t er - cl ass- name>
or g. j boss. r esour ce. adapt er . j dbc. vendor . MySQLExcept i onSor t er
</ except i on- sor t er - cl ass- name>
<met adat a>
<t ype- mappi ng>mySQL</ t ype- mappi ng>
</ met adat a>
</ l ocal - t x- dat asour ce>
</ dat asour ces>

Adicione uma referncia do recurso para {PCI}/jboss/server/default/deploy/pentaho.war/WEB-
INF/web.xml.

<r esour ce- r ef >
<descr i pt i on>MySql Connect i on</ descr i pt i on>
<r es- r ef - name>j dbc/ MySql DS</ r es- r ef - name>
<r es- t ype>j avax. sql . Dat aSour ce</ r es- t ype>
<r es- aut h>Cont ai ner </ r es- aut h>
</ r esour ce- r ef >

Adicione uma referncia do recurso para {PCI}/jboss/server/default/deploy/pentaho.war/WEB-
INF/jboss-web.xml.

<r esour ce- r ef >
<r es- r ef - name>j dbc/ MySql DS</ r es- r ef - name>
<r es- t ype>j avax. sql . Dat aSour ce</ r es- t ype>
<j ndi - name>j ava: / MySql DS</ j ndi - name>
</ r esour ce- r ef >
Verificando a Integrao J asperReports com a Plataforma
Pentaho

Reinicie o seu Pentaho Server executando {PCI}/stop_pentaho e depois {PCI}/start_pentaho. Neste ponto o
relatrio deve estar conectado e pronto para uso. Aponte o seu navegador web para a sua pgina de incio
(que deve ser http://localhost:8080). Navegue at o relatrio que voc criou dentro do grupo Lista de
Exemplos (Reporting Examples).



Neste ponto voc informa o parmetro.

Pg 28


Finalmente alcanamos o nosso objetivo. Nesta figura podemos ver o resultado gerado em HTML.
Pg 29
Pg 30
Grficos
The Plataforma Pentaho BI currently employs J FreeChart as its charting mecanismo. The implementation of
the mecanismo currently includes UI componentes for the following charts: Dial, Pie, Pie Grid, Bar Chart,
Line, e Area. Cada chart componente pode create at least 1 tipo of chart. Several of the chart
componentes pode create muitos chart types. Certain charts (where it makes sense) pode ser rendered as
stacked e three dimensional. The plataforma charts render themselves as XML e then the XML is
transformed to HTML via the use of an .xslt transformation.

ChartComponent
The ChartComponent is a UI componente that pode create a variety of charts including Bar, Line, Pie, Pie
Grid, e Area. Where applicable there so several options that pode ser applied. The following sequencia de
ao utiliza the sada from an SQLLookupRule as the entrada for a ChartComponent.

<action-sequence>
<nome>Chart.xaction</nome>
<title>Padro Title</title>
<version>1</version>
<logging-level>DEBUG</logging-level>

<documentation>
<author>Brian C Hagan</author>
<descrio>Padro Descrio</descrio>
<icon>J Free-quadrant-oramento-hsql.png</icon>
<help>Help</help>
<result-tipo>regra</result-tipo>
</documentation>

<entradas>
<chart-tipo tipo="string">
<padro-valor>.png</padro-valor>
<sources>
<requisio>tipo</requisio>
</sources>
</chart-tipo>
</entradas>

<aes>
<action-defininition>
<action-sadas>
<result-set tipo="list" />
</action-sadas>

<componente-nome>SQLLookupRule</componente-nome>
<action-tipo>regra</action-tipo>
<componente-definio>
<source>sql</source>
<live>true</live>
<jndi>SampleData</jndi>
<consulta>
<![CDATA[select QUADRANT_ACTUALS.REGION, QUADRANT_ACTUALS.DEPARTAMENTO,
QUADRANT_ACTUALS.POSITIONTITLE, QUADRANT_ACTUALS.ACTUAL,
QUADRANT_ACTUALS.ORAMENTO from QUADRANT_ACTUALS order por QUADRANT_ACTUALS.REGION,
QUADRANT_ACTUALS.DEPARTAMENTO]]>
</consulta>
Pg 31
</componente-definio>
</action-defininition>

<action-defininition>
<action-entradas>
<sada-tipo tipo="string" mapping="chart-tipo" />
<result-sada tipo="arquivo" />
<chart-dados tipo="list" mapping="result-set" />
</action-entradas>
<action-sadas>
<chart-sada tipo="string" />
<base-url tipo="string" />
</action-sadas>
<componente-nome>ChartComponent</componente-nome>
<action-tipo>relatrio</action-tipo>
<componente-definio>
<por-row>false</por-row>
<chart-attributes>

<!-- this is the background for the whole image -->
<chart-tipo>PieChart</chart-tipo>
<title>Actual vs Oramento por Region</title>
<title-position>TOP</title-position>
<title-font>
<font-family>Serif</font-family>
<size>36</size>
<is-bold>false</is-bold>
<is-italic>false</is-italic>
</title-font>
<range-title>US Dollars</range-title>
<chart-background tipo="color">#FFFFFF</chart-background>
<plot-background tipo=color>#FF0000</plot-background>
<orientation>Horizontal</orientation>
<height>400</height>
<width>800</width>
<is-3D>true</is-3D>
<is-stacked>false</is-stacked>
<category-label-rotation>90</category-label-rotation>
<border-visible>false</border-visible>
<border-paint>#3399FF</border-paint>

<include-legend>true</include-legend>

</chart-attributes>
</componente-definio>
</action-defininition>
</aes>
</action-sequence>


<por-row/ > Requerido nodo that describes how the chart dados is aggregated. Values so TRUE ou
FALSE.

<chart-attributes/ > Requerido por the ChartComponent, this nodo contains all chart attributes nodos.
This nodo is no usado por the CategoryDatasetComponent (described below).

<chart/ > The chart root nodo. This item is a mandatory singleton nodo. This nodo is no usado por the
ChartComponent.

Pg 32
<chart-tipo/ > Opcional singleton nodo that contains the chart tipo in the nodo texto. Quando usado with
the CategoryDatasetComponent, se the chart-tipo is no set in the xml definio then it must ser set on the
CategoryDataset Componente directly in code (servlet ou J SP).

<title/ > Opcional singleton nodo that contains the requested title in the nodo texto. Valid chart tipo
strings so PieChart, PieGrid, BarChart, LineChart e Arcadaart

<title-position/ > Opcional nodo that describes the position of the chart title. Valid positions so TOP,
BOTTOM, LEFT, e RIGHT.

<title-font/ > Opcional singleton nodo that describes the chart font. Font attributes so included as child
nodos. Child nodos include, <font-family>, <size>, <is-bold>, e <is-italic>.

<subtitle/ > Opcional singleton nodo that contains the requested subtitle in the nodo texto.

<range-title/ > Opcional nodo that describes the chart range (usually the y-axis).

<chart-background/ > Opcional singleton nodo that describes the background tipo. Valid types include
color e image. Se tipo=color, designate the color with 6 byte hexadecimal notation. Quando
tipo=image, the valor is a filepath (relative to the soluo diretrio) of an image arquivo to use as the
chart background image. Note: This image replaces the background of the chart itself e NO the plot area.
So se voc set the image here voc will probably see seu image under the axis labels e scales e no in the
plot area.

<plot-background/ > Opcional singleton nodo that descirbes the plot tipo. Valid types include color e
image. Se tipo=color, designate the color with 6 byte hexadecimal notation. Quando tipo=image, the
valor is a filepath (relative to the soluo diretrio) of an image arquivo to use as the plot background
image.. Note: This image replaces the background of the plot area only.

<orientation/ > Opcional singleton whose texto valor pode ser either Horizontal, Vertical. Defaults to
Vertical.

<height/ > Opcional singleton whose texto valor is an integer that represents the height of the chart.

<width/ > Opcional singleton whose texto valor is an integer that represents the width of the chart.

<is-3D/ > Opcional singleton whose texto valor pode ser either true ou false. Defaults to false. Se
true the charting mecanismo does it best to render a 3-D view of the chart.

<is-stacked/ > Opcional singleton whose texto valor pode ser either true ou false. Defaults to false.
Se true the charting mecanismo will create a stacked version of this chart tipo (se possible).

<urlTemplate/ > Opcional singleton whose texto valor is usado as a template to create a drill link mapear
for the image. This is no usado with the ChartComponent.

<paramName/ > Opcional singleton whose test values is the parmetro nome of the innermost consulta
varivel. Se this nome occurs in the urlTemplate, it will ser substitudo with the correct item. This is no
usado with the ChartComponent.

<paramName2/ > Opcional singleton whose test values is the parmetro nome of the outermost consulta
varivel. Se this nome occurs in the urlTemplate, it will ser substitudo with the correct item. This is no
usado with the ChartComponent.

<color-palette/ > Singleton that contains a list of <color/> nodos that make up the series palette.

<color/ > Opcional multiple nodos that contain a 6 byte hexadecimal notation to ser usado as an entry in
the series palette.

Pg 33
CategoryDatasetComponent
The CategoryDatasetComponent is a UI componente that pode create a variety of charts including Bar, Line,
Pie, Pie Grid, e Area. Where applicable there so several options that pode ser applied. The creation of the
chart is commonly performed por a J SP ou indirectly por creating the appropriate portlet object. See the
ChartComponent for explanations of cada nodo.

<chart>
<chart-tipo>BarChart</chart-tipo>
<title>Sample Chart</title>
<subtitle>a simple sample</subtitle>
<chart-background tipo="color">#FFFFFF</chart-background>
<chart-background-image>test\charts\ChartBackground.jpg</chart-background-image>
<plot-background-color>#FFFFFF</plot-background-color>
<plot-background-image>test\charts\ChartBackground.jpg</plot-background-image>
<orientation>Horizontal</orientation>
<height>550</height>
<width>650</width>
<is-3D>true</is-3D>
<is-stacked>true</is-stacked>
<urlTemplate><![CDATA[/pentaho/Pivot?soluo=exemplos&path=anlise&action=query1.xaction
&departamento=.[{DEPARTAMENTO}]&measures=.[{MEASURES}]]]></urlTemplate>
<paramName>MEASURES</paramName>
<paramName2>DEPARTAMENTO</paramName2>
<color-palette>
<color>#336699</color>
<color>#99CCFF</color>
<color>#999933</color>
<color>#666699</color>
<color>#CC9933</color>
<color>#006666</color>
<color>#3399FF</color>
<color>#993300</color>
<color>#CCCC99</color>
<color>#666666</color>
<color>#FFCC66</color>
<color>#6699CC</color>
<color>#663366</color>
<color>#9999CC</color>
<color>#CCCCCC</color>
<color>#669999</color>
<color>#CCCC66</color>
<color>#CC6600</color>
<color>#9999FF</color>
<color>#0066CC</color>
<color>#99CCCC</color>
<color>#999999</color>
<color>#FFCC00</color>
<color>#009999</color>
<color>#99CC33</color>
<color>#FF9900</color>
<color>#999966</color>
<color>#66CCCC</color>
<color>#339966</color>
<color>#CCCC33</color>
</color-palette>
</chart>

Pg 34
Componente de Filtro Seguro (Secure Filter)
O componente secure filter possui duas funes relacionadas. Permite a voc customizar a pergunta
(prompt) padro realizada pelo Contexto de Runtime e pode verificar para apenas selees vlidas serem
retornadas.

No exemplo abaixo, o Componente Secure Filter ir checar por um parmetro nomeado DEPARTAMENT, se
no existe, ir gerar a pergunta e mostrar os valores de seleo com base na coluna Display do parmetro
DEPARTAMENT_FILTER.

Quando a seleao for realizada por o usurio, e DEPARTAMENT passado para a Sequencia de ao e
componente Secure Filter, ir verificar se o valor retornado existe na coluna Dept .

Se o valor de DEPARTAMENT for vlido, a execuo da Sequencia de ao continua at o prximo
componente na sequence.


<act i on- def i ni t i on>
<component - name>Secur eFi l t er Component </ component - name>
<act i on- i nput s>
<DEPARTMENT t ype=" st r i ng" / >
<DEPARTMENT_FI LTER t ype=" r esul t - set " / >
</ act i on- i nput s>
<act i on- out put s/ >
<component - def i ni t i on>
<sel ect i ons>

<DEPARTMENT st yl e=" sel ect " pr ompt - i f - one- val ue=" t r ue" >
<f i l t er val ue- col - name=" Dept " di spl ay- col - name=" Di spl ay" >
DEPARTMENT_FI LTER
</ f i l t er >
<t i t l e>Sel ect t he Depar t ment </ t i t l e>
</ DEPARTMENT>

</ sel ect i ons>
<xsl >Cust omRepor t Par amet er s. xsl </ xsl >
<t ar get >Repor t _Wi ndow</ t ar get >
</ component - def i ni t i on>
</ act i on- def i ni t i on>

O atributo style define o estilo do controle a ser apresentado ao usurio

O atributo prompt-if-one-value pergunta sempre ao usurio, mesmo se houver apenas uma escolha

O atributo title define o texto a ser mostrado ao usurio


Pg 35
Escalonador (Scheduler)
A Plataforma Pentaho BI utiliza atualmente o Quartz como escalonador. A implementao persistida via
J DBC, tolerante e recupervel em caso de falhas. Excees escalonadas so resolvidas atravs de uma
srie de regras pr-definidas.

Acesso ao escalonador feito atravs de org.pentaho.plugin.quartz.J obSchedulerComponent
implementando um documento soluo. Exemplos podem ser encontrados em test/scheduler/. Existem
quatro diferentes aes disponveis ao escalonador. startJ ob, suspendJ ob, resumeJ ob, e deleteJ ob.
Aes
startJ ob cria uma tarefa (job) e o gatilho (trigger) e registra a job e o trigger para execuo pelo
escalonador. No caso de uma Simple Trigger, a execuo ocorre quando a condio da trigger for
encontrada e ocorre a um intervalo de repetio definido at que o nmero de ciclos tenha terminado. No
caso de uma Cron Trigger o disparo da job ocorre de acordo com regras setadas na expresso cron
string (veja abaixo). A job um documento soluo que deve ser executado. Isto permite o
escalonamento de qualquer outra soluo existente, tal como impresso e email. No evento de uma falha
tal como queda de luz, crash de sistema, etc., aps o escalonador reiniciar ir aplicar regras de exceo a
qualquer trigger que tenha sido interrompida. Os valores de jobName, triggerType (e as entradas
associadas trigger types), solution, path, e action precisam ser definidas no documento soluo.

<action-sequence>

<name>SchedulerTest_new_job.xaction</name>
<version>1</version>
<title>Schedules a task</title>
<logging-level>debug</logging-level>
<documentation>
<author>William E. Seyler</author>
<description>..</description>
<help>This is just a test...</help>
</documentation>

<inputs>
<jobAction type="string">
<default-value>startJ ob</default-value>
</jobAction>
<solution type="string">
<default-value>test</default-value>
</solution>
<path type="string">
<default-value>email</default-value>
</path>
<action type="string">
<default-value>text_only_email.xaction</default-value>
</action>
<jobName type="string">
<default-value>MyJ ob</default-value>
</jobName>
<triggerType type="string">
<default-value>simple</default-value>
</triggerType>
<triggerName type="string">
<default-value>MyTrigger</default-value>
</triggerName>
<repeatInterval type="string">
<default-value>10</default-value>
Pg 36
</repeatInterval>
<repeatCount type="string">
<default-value>1</default-value>
</repeatCount>
<misfirePolicy type="string">
<default-value>INSTRUCTION_DELETE_TRIGGER</default-value>
</misfirePolicy>
</inputs>
<outputs/>
<resources/>

<actions>
<action-definition>
<action-inputs>
<jobAction type="string"/>
<solution type="string"/>
<path type="string"/>
<action type="string"/>
<jobName type="string"/>
<triggerType type="string"/>
<triggerName type="string"/>
<repeatInterval type="string"/>
<repeatCount type="string"/>
<misfirePolicy type="string"/>
</action-inputs>
<component-name>J obSchedulerComponent</component-name>
<action-type>schedule</action-type>
<component-definition/>
</action-definition>
</actions>
</action-sequence>
Figure X.X -- Sequencia de ao Sample StartJ ob

suspendJ ob Pausa uma tarefa que esteja rodando especificada. Uma vez em pausa, a nica maneira
de iniciar novamente ser com resume job. Uma vez que a job for reiniciada, ser aplicada a regra de
exceo se requerido. A nica entrada para esta aao jobName a ser suspendida.

<action-sequence>
<name>SchedulerTest_pause_job.xaction</name>
<version>1</version>
<title>Pauses a scheduled job</title>
<logging-level>debug</logging-level>
<documentation>
<author>William E. Seyler</author>
<description>..</description>
<help>This is just a test...</help>
</documentation>

<inputs>
<jobAction type="string">
<default-value>suspendJ ob</default-value>
</jobAction>
<jobName type="string">
<default-value>MyJ ob</default-value>
</jobName>
</inputs>
<outputs/>
<resources/>

Pg 37
<actions>
<action-definition>
<action-inputs>
<jobAction type="string"/>
<jobName type="string"/>
</action-inputs>
<component-name>J obSchedulerComponent</component-name>
<action-type>schedule</action-type>
<component-definition/>
</action-definition>
</actions>
</action-sequence>
Figure X.X Sequencia de ao Sample SuspendJ ob

resumeJ ob Reinicia uma tarefa suspensa anteriormente. A nica entrada ser jobName a ser
reiniciada.

<action-sequence>

<name>SchedulerTest_resume_job.xaction</name>
<version>1</version>
<title>Resumes a task</title>
<logging-level>debug</logging-level>
<documentation>
<author>William E. Seyler</author>
<description>..</description>
<help>This is just a test...</help>
</documentation>

<inputs>
<jobAction type="string">
<default-value>resumeJ ob</default-value>
</jobAction>
<jobName type="string">
<default-value>MyJ ob</default-value>
</jobName>
</inputs>
<outputs/>
<resources/>

<actions>
<action-definition>
<action-inputs>
<jobAction type="string"/>
<jobName type="string"/>
</action-inputs>
<component-name>J obSchedulerComponent</component-name>
<action-type>schedule</action-type>
<component-definition/>
</action-definition>
</actions>
</action-sequence>
Figure X.X Sequencia de ao Sample resumeJ ob

deleteJ ob exclui uma tarefa especificada imediatamente. Entretanto, se a tarefa est executando no
momento em algum processo do escalonador ento ela ir continuar a executar sem que novas instancias
desta tarefa sejam escalonadas. A nica entrada sera jobName.

<action-sequence>
Pg 38

<name>SchedulerTest_delete_job.xaction</name>
<version>1</version>
<title>Deletes a J ob</title>
<logging-level>debug</logging-level>
<documentation>
<author>William E. Seyler</author>
<description>..</description>
<help>This is just a test...</help>
</documentation>

<inputs>
<jobAction type="string">
<default-value>deleteJ ob</default-value>
</jobAction>
<jobName type="string">
<default-value>MyJ ob</default-value>
</jobName>
</inputs>
<outputs/>
<resources/>

<actions>
<action-definition>
<action-inputs>
<jobAction type="string"/>
<jobName type="string"/>
</action-inputs>
<component-name>J obSchedulerComponent</component-name>
<action-type>schedule</action-type>
<component-definition/>
</action-definition>
</actions>
</action-sequence>

Figure X.X Sequencia de ao Sample deleteJ ob

Pg 39
Gatilhos (Triggers)
A Plataforma Pentaho BI suporta dois tipos diferentes de gatilhos (triggers).

Trigger Simples selecionado no nodo triggerType como simple. Esta opo permite que uma tarefa
seja escalonada em um intervalo regular especificado por um nmero dado de repetioes. As entradas a
esta trigger so os valores inteiros repeatInterval (em segundos) e repeatCount. A trigger ir disparar
imediatamente e continuar por um intervalo at o nmero de ciclos repeatCount. Veja exemplo abaixo.

Trigger Cron selecionado no nodo triggerType como cron. Esta trigger utiliza definies cron task
estilo unix. A trigger recebe um cronString que representa a definio exatamente como uma entrada
em crontab. A seguir descrevemos o formato das expresses cron string.

<action-sequence>

<name>SchedulerTest_new_cron_job.xaction</name>
<version>1</version>
<title>Schedules a task</title>
<logging-level>debug</logging-level>
<documentation>
<author>William E. Seyler</author>
<description>..</description>
<help>This is just a test...</help>
</documentation>

<inputs>
<jobAction type="string">
<default-value>startJ ob</default-value>
</jobAction>
<solution type="string">
<default-value>test</default-value>
</solution>
<path type="string">
<default-value>email</default-value>
</path>
<action type="string">
<default-value>text_only_email.xaction</default-value>
</action>
<jobName type="string">
<default-value>MyJ ob</default-value>
</jobName>
<triggerType type="string">
<default-value>cron</default-value>
</triggerType>
<triggerName type="string">
<default-value>MyTrigger</default-value>
</triggerName>
<cronString type="string">
<default-value>0 40 16 * * ?</default-value>
</cronString>
<misfirePolicy type="string">
<default-value>MISFIRE_INSTRUCTION_SMART_POLICY</default-value>
</misfirePolicy>
</inputs>
<outputs/>
<resources/>

<actions>
Pg 40
<action-definition>
<action-inputs>
<jobAction type="string"/>
<solution type="string"/>
<path type="string"/>
<action type="string"/>
<jobName type="string"/>
<triggerType type="string"/>
<triggerName type="string"/>
<cronString type="string"/>
<misfirePolicy type="string"/>
</action-inputs>
<component-name>J obSchedulerComponent</component-name>
<action-type>schedule</action-type>
<component-definition/>
</action-definition>
</actions>
</action-sequence>
Figure X.X Sequencia de ao Sample Cron Trigger


// NOTA o seguinte do javadoc para org.quartz.cronTrigger

A string "cronString" formada por 6 ou 7 campos separados por espaos em branco. Os campos (6
obrigatrios e 1 opcional) so os seguintes:

Nome do Campo Valores Permitidos Caracteres Especiais Vlidos
Segundos 0-59 , - * /
Minutos 0-59 , - * /
Horas 0-23 , - * /
Dia-do-ms 1-31 , - * ? / L W C
Ms 1-12 ou J AN-DEC , - * /
Dia-da-semana 1-7 ou SUN-SAT , - * ? / L C #
Ano (Opcional) vazio, 1970-2099 , - * /

O caracter '*' usado para especificar todos os valores. Por exemplo, "*" no campo minutos significa todos
os minutos.

O caracter '?' permitido para os campos Dia-da-semana e Dia-do-ms. usado como caracter coringa
simples, especialmente entre um ou dois campos. Os exemplos iro clarificar abaixo.

O caracter '-' usado para especificar intervalos. Por exemplo "10-12" no campo hora significa as horas
hours 10, 11 e 12".

O caracter ',' usado para indicar valores adicionais. Por exemplo "MON,WED,FRI" no campo Dia-da-
semana significa os dias segunda, quarta e sexta-feira.

O caracter '/' usado para indicar incrementos. Por exemplo "0/15" no campo segundos significa "os
segundos 0, 15, 30, e 45". E "5/15" equivale aos "segundos 5, 20, 35, e 50". Voc pode tambm especificar
'/' aps '*' neste caso '*' equivale a '0' antes de '/'.

O caracter 'L' permitido nos campos Dia-do-ms e Dia-da-semana. Este caracter o mesmo do que o
"ltimo", mas tem significados diferentes em cada um destes campos. Por exemplo, o valor "L" em Dia-do-
ms significa "o ltimo Dia-do-ms" dia 31 em janeiro, 28 em fevereiro (anos no bissestos), etc. Se
usado no campo Dia-da-semana, simplesmente significa "7" ou "SAT". Mas se usado no campo Dia-da-
semana aps outro valor, significa "o ltimo ensimo dia do ms " - Por exemplo "6L" equivale a "a ltima
sexta-feira do ms ". Quando usar a opao 'L', importante no especificar listas, ou ranges de valores,
seno ocorrero resultados confusos.

Pg 41
O caracter 'W' permitido para o campo Dia-do-ms e usado para indicar o dia de semana (dia til) mais
prximo do dia dado (Monday-Friday). Como exemplo, se voc indicar "15W" como valor neste campo Dia-
do-ms, o significado sera: "o mais prximo dia de semana do dcimo quinto dia do ms ". ento se o 15
for sbado, a trigger ir disparar na sexta feira dia 14. Se o 15 for domingo, a trigger ir disparar na
segunda 16. Se 15 for tera, estao dispara na prpria tera. Entretanto, se voc indicar "1W" e o primeiro
dia for sbado, entao a trigger ir disparar em segunda-feira 3, de modo a nao pular o limite do ms em
questo. O caracter 'W' pode somente ser especificado quando Dia-do-ms for um dia simples, no um
range ou lista de dias.

Os caracters 'L' e 'W' podem tambm ser combinados em uma expressao Dia-do-ms de modo 'LW', o qual
se traduz como o "ltimo dia de semana do ms ".

O caracter '#' usado no campo Dia-da-semana para indicar o ensimo dia do ms. Por exemplo, o valor
de "6#3" no campo Dia-da-semana significa a terceira sexta-feira do ms (day 6 = Friday e "#3" = a 3 do
ms). Outro examplo: "2#1" = a primeira segunda feira do mes e "4#5" = a quinta quarta feira do mes.
Note que se voc indicar "#5" e no existir 5 dia em algum mes, entao nada ir ocorrer.

O caracter 'C' usado nos campos Dia-da-semana e Dia-do-ms significando "calendar". Significa que os
valores so calculados dentro de um calendrio associado. Se nada for especificado, equivale a um
calendrio com tudo includo. O valor de "5C" no campo Dia-do-ms significa "o primeiro dia includo pelo
calendrio ou aps o 5". O valor de "1C" no campo Dia-da-semana significa "o primeiro dia includo pelo
calendrio ou aps domingo ".

Os caracteres legais e nomes de meses e dias no case sensitive.
Aqui esto alguns examplos:

Expresso Significado
"0 0 12 * * ?" Dispare s 12pm (meio-dia) todo dia
"0 15 10 ? * *" Dispare s 10:15am todo dia
"0 15 10 * * ?" Dispare s 10:15am todo dia
"0 15 10 * * ? *" Dispare s 10:15am todo dia
"0 15 10 * * ? 2005" Dispare s 10:15am todo dia durante o ano 2005
"0 * 14 * * ?" Dispare todo minuto iniciando s 2pm e terminando s 2:59pm, todo dia
"0 0/5 14 * * ?" Dispare todos os 5 minutos iniciando s 2pm e terminando s 2:55pm, todo dia
"0 0/5 14,18 * * ?" Dispare todos 5 minutos iniciando s 2pm e terminando s 2:55pm, E dispare
todos 5 minutos iniciando s 6pm e terminando s 6:55pm, todo dia
"0 0-5 14 * * ?" Dispare toda minutos iniciando s 2pm e terminando s 2:05pm, todo dia
"0 10,44 14 ? 3 WED" Dispare s 2:10pm e s 2:44pm toda quarta do ms maro
"0 15 10 ? * MON-FRI" Dispare s 10:15am toda segunda, tera, quarta, quinta e sexta
"0 15 10 15 * ?" Dispare s 10:15am no 15dia de todo ms
"0 15 10 L * ?" Dispare s 10:15am no ltimo dia de todo ms
"0 15 10 ? * 6L" Dispare s 10:15am na ltima sexta-feira de todo ms
"0 15 10 ? * 6L 2002-
2005"
Dispare s 10:15am em toda ltima sexta de todo ms durante os anos de
2002, 2003, 2004 e 2005
"0 15 10 ? * 6#3" Dispare s 10:15am na Terceira tera de todo ms

Excees (Misfires)
Quando a trigger no consegue ser disparada por razes tais como o Escalonador tenha sido parado ou o
sistema tenha cado, este evento referido como exceo. Excees so determinadas pela instruo de
exceo de triggers. Existem tipos de excees disponveis para todas as triggers e algumas somente para
simple ou cron.

Todas as Triggers estas instruoes de exceo so aplicaveis para qualquer trigger.

Pg 42
MI SFI RE_I NSTRUCTI ON_SMART_POLICY: esta instruo de exceo o padro de todas as triggers
criadas. Ela instrue a trigger a utilizar a poltica padro dependendo do tipo de trigger. Para uma simple
trigger a regra a seguinte:
Se o Repeat Count for 0 ento a instruo seguir o padro MISFIRE_INSTRUCTION_FIRE_NOW.
Se o Repeat Count for REPEAT_INDEFINITELY, ento a instruo ser interpretada como
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT. CUI DADO: usar
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT com uma trigger que
possui um tempo de finalizaao no nulo pode fazer com que a trigger nunca mais seja iniciada se
o tempo de finalizao tiver ocorrido (passado) durante o perodo da exceo.
Se o Repeat Count for 0, ento a instruo seguir o padro
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT.

I NSTRUCTI ON_RE_ EXECUTE _J OB: Instrui ao Escalonador que a Trigger requer que o J obDetail re-
execute imediatamente.

I NSTRUCTI ON_SET_TRI GGER_COMPLETE: Instrui ao Escalonador que a Trigger deve ser colocada no
estado COMPLETE. Essencialmente pula a exceo da trigger.

I NSTRUCTI ON_DELETE_TRI GGER: Instrui ao Escalonador que a Trigger deve ser excluda (deleted).

I NSTRUCTI ON_SET_TRI GGER_ERROR: Instrui ao Escalonador que a Trigger deve ser colocada em
estado de erro.

Simple Triggers estas instructions de exceo so aplicveis somente a triggers simple.

MI SFI RE_I NSTRUCTI ON_FI RE_NOW: Instrui ao Escalonador que em situaao de exceo, a trigger
deseja ser disparada agora. NOTA esta instruao deve tipicamente ser usada somente para triggers nao
repetitivas. Se for usado em uma trigger com o repeat count > 0 entao sera equivalente a instruao
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT.

MI SFI RE_I NSTRUCTI ON_RESCHEDULE_NOW_WI TH_EXI STI NG_REPEAT_COUNT: Instrui ao
Escalonador que em situao de exceo, a trigger deseja ser re-escalonada de modo que o repeat count
permanea conforme est. NOTA: o uso desta instruo causa a trigger esquecer o start-time e o repeat-
count que foi originariamente setado. NOTA: Esta instruao pode causar a Trigger atingir o estado
'COMPLETE' depois de disparada, se todos os tempos de disparo j tiverem passado.

MI SFI RE_I NSTRUCTI ON_RESCHEDULE_NOW_WI TH_REMAINING_REPEAT_COUNT: Instrui o
Escalonador que em situao de exceo, a trigger deseja ser re-escalonada agora com o repeat count
ajustado para o que deveria ser se no tivesse perdido nenhum disparo. NOTA: o uso desta instruo leva
a trigger a esquecer o start-time e o repeat-count que foram originariamente setados (isto somente pode
causar problemas se voc necessida determinar quais eram os valores posteriormente). NOTA: Esta
instruao pode causar a Trigger atingir o estado 'COMPLETE' depois de disparada, se todos os tempos de
disparo j tiverem passado.

MI SFI RE_I NSTRUCTI ON_RESCHEDULE_NEXT_WI TH_REMAI NING_COUNT: Instrui o Escalonador
que em situao de exceo, a trigger deseja ser re-escalonada at o prximo intervalo depois de agora e
com o repeat count ajustado ao que deveria ser se no tivesse sido perdido nenhum disparo. NOTA/AVISO:
Esta instruao pode causar a Trigger atingir o estado 'COMPLETE' diretamente se todos os tempos de
disparo j tiverem passado.

MI SFI RE_I NSTRUCTI ON_RESCHEDULE_NEXT_WI TH_EXI STI NG_COUNT: Instrui o Escalonador
que em situao de exceo, a trigger deseja ser re-escalonada at o prximo intervalo depois de agora e
com o repeat count deixado sem mudana. NOTE: o uso desta instruo causa a trigger esquecer o
repeat-count que foi originariamente setado. NOTA/AVISO: Esta instruao pode causar a Trigger atingir o
estado 'COMPLETE' diretamente se todos os tempos de disparo j tiverem passado.

CRON Triggers estas instructions de exceo so aplicveis somente a triggers cron

Pg 43
MI SFI RE_I NSTRUCTI ON_FI RE_ONCE_NOW: Instrui o Escalonador que em situao de exceo, a
trigger deseja ser disparada agora.

MI SFI RE_I NSTRUCTI ON_DO_NOTHING: Instrui o Escalonador que em situao de exceo, a trigger
deseja que o seu next-fire-time seja ajustado paa o prximo intervalo aps o momento corrente (levando
em conta qualquer parmetro <code>{@link Calendar}</code>, mas no deseja ser disparada agora).
Pg 44
Fontes de Dados
Os componentes de fontes de dados permitem acesso a uma grande variedade de tipos de fonte de dados.
Cada tipo de implementao permite a consulta de um especfico fonte de dados usando um string de
consulta na syntaxe natural da fontes de dados. Por exemplo dados SQL utilizam sintaxe SQL para
consulta. Dados MDX utilizam sintaxe MDX e dados XML utilizam XQuery. Os componentes de fontes de
dados incluem as seguintes implementaes:
MDXLookupRule: para dados multidimensionais (a implementao atual para o mondrian)
SQLLookupRule: para consultas a bases de dados SQL.
XQueryLookupRule: para realizar selees XQuery em Documentos XML.

MDXLookupRule
O componente MDX lookup proporciona facilidade para consulta multidimensional a fontes de dados usando
a estrutura de consulta MDX. Um exemplo de sequencia de ao MDXLookupRule segue abaixo:

<action-sequence>
<name>MDX_Datasource.xaction</name>
<version>1</version>
<title>%title</title>
<logging-level>debug</logging-level>
<documentation>
<author>William Seyler</author>
<description>%description</description>
<help></help>
<result-type>rule</result-type>
<icon>MDX_Datasource.png</icon>
</documentation>
<outputs>
<rule-result>
<type>list</type>
</rule-result>
</outputs>
<resources>
<catalog>
<url>
<location>samples/reporting/SampleData.mondrian.xml</location>
<mime-type>text/xml</mime-type>
</url>
</catalog>
</resources>
<actions>
<action-definition>
<action-outputs>
<rule-result type="list"/>
</action-outputs>

<component-name>MDXLookupRule</component-name>
<action-type>rule</action-type>
<component-definition>
<connection>]
<![CDATA[jdbc:hsqldb:hsql://localhost:9001/sampledata]]>
</connection>
<location>mondrian</location>
<user-id>sa</user-id>
<password></password>
<query>
Pg 45
<![CDATA[with member [Measures].[Variance Percent] as
'([Measures].[Variance] / [Measures].[Budget])', format_string
= IIf(((([Measures].[Variance] / [Measures].[Budget]) * 100.0)
> 2.0), "|#.00%|style='green'", IIf(((([Measures].[Variance] /
[Measures].[Budget]) * 100.0) < 0.0), "|#.00%|style='red'",
"#.00%"))
select Crossjoin({[Region].[All Regions].[Central], [Region].[All
Regions].[Eastern], [Region].[All Regions].[Southern],
[Region].[All Regions].[Western]}, {[Measures].[Actual],
[Measures].[Budget]}) ON columns,
Hierarchize(Union({[Department].[All Departments]},
[Department].[All Departments].Children)) ON rows from
[Quadrant Analysis]]]>
</query>
</component-definition>
</action-definition>
</actions>
</action-sequence>


A consulta MDX requer as entradas:

<connection> NO REQUERIDO esta uma string de conexo J DBC para a fonte de dados. Se voc
precisa conectar-se a outra fonte de dados que o hypersonic voc deve proporcionar o J DBC drivers na
string, veja <mdx-connection-string> abaixo para informao em como fazer isto.
NOTA: um dos dois, este nodo ou o nodo <mdx-connection-string>, deve ser especificado
obrigatoriamente.

<query> REQUERIDO esta a consulta string MDX que define os dados desejados (dataset). Para mais
informao sobre consulta MDX veja a documentaao do mondrian documentation ou visite:
http://www.informit.com/articles/article.asp?p=29418&seqNum=3&rl=1

<catalog> NO REQUERIDO o caminho do catlogo ROLAP. Se o catalogo iniciar com HTTP ento o
caminho avaliado como URL absoluta e o sistema tentar carreg-lo diretamente. Se o catalogo no
iniciar com HTTP ento o caminho considerado a partir da raiz da soluo e a URL construda de acordo
e passada a fonte de dados do mecanismo (mondrian).
NOTA: um dos dois, este nodo ou o nodo <mdx-connection-string>, deve ser especificado.

<location> NO REQUERIDO sempre mondrian para a implementao atual.
NOTA: um dos dois, este nodo ou o nodo <mdx-connection-string>, deve ser especificado.

<user-id> NO REQUERIDO o usurio ID do J DBC. Se usar outro banco que no o hypersonic ento
voc pode precisar usar o <mdx-connection-string/ > para ajustar o usurio ID e password.

<password> NO REQUERIDO o password J DBC. Se usar outro banco que no o hypersonic ento voc
pode precisar usar o <mdx-connection-string/ > para ajustar o usurio ID e password.

<mdx-connection-string> NO REQUERIDO - a mdx-connection-string pode ser usado no lugar de
todas as propriedades de conexo acima e de fato ir sobrescrev-las. Este string uma lista de
propriedades separadas por ponto-e-vrgula a qual passada ao mondrian para criao da conexo. Eis um
exemplo de conexo baseada em mdx-connection-string:

<mdx-connection-string>
<![CDATA[
Provider=mondrian; J dbc=jdbc:odbc:MondrianFoodMart; Catalog=/WEB-INF/FoodMart.xml
]]>
</mdx-connection-string>

Pg 46
NOTA: Quando usar este formato, o nome de usurio nome e password pode ser passado como parte da
string de conexo jdbc, dependendo do driver sendo usado. Nomes de Drivers podem tambm ser
passados nesta string. Mais informao sobre este tipo de string consulte a documentao do mondrian.

NOTA: Se <mdx-connection-string> no for definida, ento <connection> requerido.


SQLLookupRule
O componente SQLLookupRule usado para conectar com fontes de dados J DBC. Um documento exemplo
usando SQLLookupRule est abaixo:

<action-sequence>
<name>SQL_Datasource.xaction</name>
<version>1</version>
<title>%title</title>
<logging-level>debug</logging-level>
<documentation>
<author>J ames Dixon</author>
<description>%description</description>
<help></help>
<result-type>rule</result-type>
<icon>SQL_Datasource.png</icon>
</documentation>
<inputs>
<dept type="string">
<default-value>Product Development</default-value>
</dept>
</inputs>
<outputs>
<rule-result>
<type>list</type>
</rule-result>
</outputs>
<resources/>

<actions>
<action-definition>
<action-inputs>
<dept type="string"/>
</action-inputs>
<action-outputs>
<rule-result type="list"/>
</action-outputs>
<component-name>SQLLookupRule</component-name>
<action-type>rule</action-type>
<component-definition>
<jndi>SampleData</jndi>
<query>
<![CDATA[select REGION, MANAGER_NAME, EMAIL from
DEPARTMENT_MANAGERS]]>
</query>
</component-definition>
</action-definition>
</actions>
</action-sequence>


Pg 47

<jndi> NO REQUERIDO este tag o nome de uma fonte de dados J NDI vlida.
NOTA: Se voc no tem uma fonte de dados jndi, ento deve usar a tag <connection/> e uma string de
conexo J DBC vlida.

<connection/> NO REQUERIDO este tag uma string de conexo J DBC vlida. Quando usar este
mtodo para se conectar a um banco de dados voc deve assegurar que um driver J DBC prprio jar est
disponvel no classpath atual.
NOTA: Voc deve proporcionar <connection> ou <jndi>

<consulta> REQUERIDO este o string de consulta SQL que retorna os dados requeridos.

<driver> NO REQUERIDO este o nome do driver que a connection string requer. No requerido para
J NDI ou se voc usa o Banco de dados Hypersonic padro.

<usurio-id> NO REQUERIDO - usurio ID do J DBC. Tambm pode ser passado como parte de
<connection> string.

<password> NO REQUERIDO - J DBC password. Tambm pode ser passado como parte de
<connection> string.

<live> NO REQUERIDO ajuste para true para no realizar caching do result set. Se no for
especificado ou ajustado para false, etno os dados em cach sero retornados. NOTA: Quando usar
dados em cache , mudanas feitas aps a consulta no aparecero no result set.

A regra XQuery permite que consultas XQuery sejam feitas em Documentos XML. O componente ir tentar
retornar um result set com os cabealhos apropriados. Se o Documento XML conter uma sesso de
comentrio descrevendo os tipos de coluna, ento o result-set ser montado usando o tipo especificado.
Por exemplo:

<result-set>
<!--java.lang.String, java.math.BigDecimal-->
<row>
<REGION>Central</REGION>
<VARIANCE>24685</VARIANCE>
</row>
</result-set>


Abaixo est um exemplo de XQueryLookupRule.

<action-sequence>

<name>XQ_Datasource.xaction</name>
<version>1</version>
<title>%title</title>
<logging-level>debug</logging-level>
<documentation>
<author>William Seyler</author>
<description>%description</description>
<help></help>
<result-type>rule</result-type>
<icon>XML_Datasource.png</icon>
</documentation>

<outputs>
<rule-result>
<type>list</type>
</rule-result>
Pg 48
</outputs>

<resources>
<document>
<solution-file>
<location>books.xml</location>
<mime-type>text/xml</mime-type>
</solution-file>
</document>
</resources>

<actions>
<action-definition>
<action-outputs>
<rule-result type="list"/>
</action-outputs>

<component-name>XQueryLookupRule</component-name>
<action-type>rule</action-type>
<component-definition>
<query><![CDATA[/bookstore/book]]></query>
</component-definition>
</action-definition>

</actions>
</action-sequence>


<consulta> REQUERIDO o nico tag suportado, o string de seleo XQuery. Se o documento definir,
ento o string de consulta ser avaliado como caminho absoluto (absolute path). Caso contrrio, ento o
caminho da soluo ser adicionado ao caminho totalmente qualificado do documento.
Pg 49
Apndice A Seqncia de Ao XML em
Detalhes
Nodos XML marcados com REQUERIDO so necessrios somente se os nodos-pais esto sendo usados.
Atributos mostrado em colchetes [ ] so opcionais.

<action-sequence> REQUERIDO Nodo no nvel raiz do Documento de Seqncia de Ao

<nome> REQUERIDO O nome da Seqncia de Ao. O nome deve ser o mesmo do nome do
arquivo que contem a seqncia.

<version> NO USADO A verso deste documento

<title> NO REQUERIDO Nome amigvel do documento. Utilizado somente visualizao.

<logging-level> NO REQUERIDO define o nvel de login para a inteira Seqncia de Ao.
Valores vlidos so: TRACE, DEBUG, INFO, WARN, ERROR and FATAL. Caso nenhum nvel
definido, ERROR ser utilizado.

<documentation> NO REQUERIDO contem nodos descritivos usados para gerar o
documento.

<author> - NO REQUERIDO O autor da Seqncia de Ao

<description> - NO REQUERIDO Breve (1-3 linhas) descrio da Seqncia de Ao.
Esta descrio usada pelo componente de navegao para gerar sua visualizao.

<help> - NO REQUERIDO Descrio detalhada da Seqncia de Ao, incluindo
instrues para seu uso por um usurio final.

<result-tipo> - NO REQUERIDO Tipo de resultados gerados por esta Seqncia de
Ao. utilizada pelo componente de navegao para gera sua visualizao. Seqncia
de Ao sem um <result-tipo> no sero mostradas pelo componente de navegao.
Valores vlidos so: Report, Process, Rule, View and None.

<icon> - NO REQUERIDO Imagem do cone de navegao utilizada para sua
visualizao. O caminho da imagem relativo ao diretrio que o documento de Seqncia
de Ao est. Por exemplo: Example1_image.png

<inputs> - NO REQUERIDO Coleo de parmetros de entrada.

<param-nome tipo=data-tipo > - NOT REQUERIDO param-nome o nome do
parmetro que a Seqncia de Ao est esperando em tempo de execuo. O tipo de
atributo especifica o tipo de dado do parmetro. Veja abaixo por tipos vlidos.

<default-valor> - NO REQUERIDO Permite o parmetro de entrada
especificar um valor padro, caso um valor no tenha sido especificado. Caso o
nodo default-valor presente, mas sem um valor especificado, o valor ser
sempre que possvel perguntado ao usurio.

<sources> - NO REQUERIDO lista ordenada de parmetros de entrada, em
termos de ordem de chamada, necessrios para definir um parmetro da
Seqncia de Ao. Valores vlidos so: request, session and runtime.

Nota: se o param-nome definido, mas o default-valor e sources no so
especificados, um erro de validao ir ocorrer.

<outputs> - NO REQUERIDO coleo de parmetros de sada.
Pg 50

<param-nome tipo=data-type > - NOT REQUERIDO param-nome o nome de um
parmetro que a Seqncia de Ao est esperando ser definido, aps a execuo de
todas as aes. O atributo tipo especifica o tipo de dado deste parmetro. Veja abaixo
por valores vlidos.

<logging-level> NO REQUERIDO Define o nvel de login durante a execuo de uma ao.
Valores vlidos so: TRACE, DEBUG, INFO, WARN, ERROR e FATAL. Caso nenhum nvel seja
informado, ERROR sera usado.



<resources> - NO REQUERIDO Coleo de recursos de parmetros.

<resource-nome > - NO REQUERIDO resource-nome o nome do recurso que
estar disponvel para a Definio de Ao em tempo de execuo. O atributo tipo
especifica o tipo de dado deste parmetro. Veja abaixo por valores vlidos.

<resource-tipo> - REQUERIDO O nome do tipo de recurso requerido.
Valores vlidos so: solution-file, file and url.

<location> - REQUERIDO O caminho para o recurso. Para um
recurso-tipo igual a solution-file, a localizao de um pathname
relativa ao nvel mais alto da soluo corrente. Se o tipo do recurso
file, ento a localizao definida como o completo caminho. Para
resource-tipo url, a localizao definida como um endereo de URL.

<mime-type> - NO REQUERIDO D uma noo acerca do tipo
mime do recurso.


<actions [loop-on=parmetro-nome] > - REQUERIDO O nodo de aes contm nodos de
definio de aes e opcionalmente mais nodos de aes.

O atributo loop-on opcional. Quando ele usado, os nodos sem aes sero executados
mltiplas vezes. necessrio especificar um parmetro que uma lista de tipos (lista de sting ou
uma lista de mapas de propriedades) e o grupo de nodos que sero executados uma vez para cada
elemento da lista. Um parmetro de entrada ser gerado com o mesmo nome do atributo loop
on, mas ter o valor de um elemento na lista. Por exemplo, se um atributo loop on chamado
departamento uma lista de strings com nomes de departamentos, ento o parmetro chamado
departamento estar disponvel. A cada iterao, ao parmetro ser atribuda um nome de
departamento.

<actions [loop-on=parmetro-nome] > - NO REQUERIDO Como um simples nvel
de looping no muito divertido, nodos de aes podem ser encaixados dentro de outros
nodos, em quantos nveis desejados.

<action-definition> - REQUERIDO (No mnimo 1) Define uma completa chamada
para um componente para executar uma tarefa.

<action-inputs> - NO REQUERIDO Coleo de parmetros de entrada de
aes.

<input-nome type=data-type mapping=param> - NOT
REQUERIDO input-nome o nome do parmetro que estar
dsiponvel para Definio de Ao em tempo de execuo. O atributo
tipo especifica o tipo de dado do parmetro. Veja abaixo por vlidos
tipos de dados.

Pg 51
O atributo mapping permite esta entrada ser mapeada para uma
entrada de uma Seqncia de Ao ou uma sada de uma prvia
definio de ao com um nome diferente.


<action-outputs> - NO REQUERIDO Coleo de parmetros de sada de
uma ao.

<output-nome type=data-type > - NOT REQUERIDO outpu -
nome o nome de um parmetro que o Componente definir aps a
sua execuo. O atributo tipo especiifica o tipo de dado deste
parmetro. Veja abaixo por tipos vlidos.
t

<component-nome> - REQUERIDO O nome da classe java que executa a
ao.

<component-definition> - REQUERIDO O componente especfico XML. Veja
a documentao deste componente especfico para informaes adicionais. Este
nodo pode estar vazio, mas ele deve existir ou um erro de validao ocorrer.
Pg 52
Apndice B
Tipos de Dados das Sequncias de Ao
Os seguintes tipos de dados so correntemente suportados pela Plataforma Pentaho de BI.

string O padro J ava String.

Exemplo: Este nodo XML define uma string com um valor default de Central. O RuntimeContext primeiro
procurar por um par6ametro de entrada chamado REGION na requisio http. A seguir, esta classe
solicita um objeto chamado aRegion. Caso nenhum destes valores exista, uma string com valor If neither
Central criada.

<r egi on t ype=" st r i ng" >
<def aul t - val or >Cent r al </ def aul t - val or >
<sour ces>
<r equest >REGI ON</ r equest >
<sessi on>aRegi on</ sessi on>
</ sour ces>
</ r egi on>

long Um J ava Long Object.

Exemplo: Este nodo XML nodo define um objeto long com um valor default de 25.

<amount t ype=" l ong" >
<def aul t - val or >25</ def aul t - val or >
</ amount >

string-list Uma lista de J ava String Objects.

Exemplo: Este nodo XML define uma lista de strings denominada to-address com 4 entradas. Itens na
lista so armazenados em nodos <list-item>.

<t o- addr ess t ype=" st r i ng- l i st " >
<def aul t - val or t ype=" st r i ng- l i st " >
<l i st - i t em>j oe. pent aho@pent aho. or g</ l i st - i t em>
<l i st - i t em>admi n@pent aho. or g</ l i st - i t em>
<l i st - i t em>sal es@pent aho. or g</ l i st - i t em>
<l i st - i t em>noxi dj @pent aho. or g</ l i st - i t em>
</ def aul t - val or >
</ t o- addr ess >

property-mapear Um mapa de propriedades de J ava Strings.

Exemplo: Este nodo XML define um mapa de propriedades com o nome veggie-data com 4 pares de
valores. Itens na lista so armazenado em nodos <entry key=xxx> . Mapas de propriedades so usados
para representar uma simples linha de dados a partir de uma consulta a uma base de dados. As chaves
mapeiam nomes de colunas e os valores dos mapas para os dados nas colunas.
<veggi e- dat a t ype=" pr oper t y- mapear " >
<def aul t - val or t ype=" pr oper t y- mapear " >
<pr oper t y- mapear >
<ent r y key=" nome" >car r ot </ ent r y>
<ent r y key=" col or " >or ange</ ent r y>
<ent r y key=" shape" >cone</ ent r y>
<ent r y key=" t ext ur e" >bumpy</ ent r y>
</ pr oper t y- mapear >
</ def aul t - val or ></ veggi e- dat a>
Pg 53
property-mapear-list Uma lista de mapas de propriedades de J ava Strings.

Exemplo: Este nodo XML define um mapa de propriedades com o nome fruit-data com 3 conjuntos de
mapas de propriedades. Itens na lista so armazenados em nodos <entry key=xxx>. Listas de mapas de
propriedades so algumas vezes utilizadas para armazenar os resultados de uma consulta a uma base de
dados. Cada mapa de propriedade na lista representa uma linha de dados com as chaves sendo mapeadas
para nomes de colunas e os valores para clulas de dados.

<f r ui t - dat a t ype=" pr oper t y- mapear - l i st " >
<def aul t - val or t ype=" pr oper t y- mapear - l i st " >
<pr oper t y- mapear >
<ent r y key=" nome" >or ange</ ent r y>
<ent r y key=" col or " >or ange</ ent r y>
<ent r y key=" shape" >spher e</ ent r y>
<ent r y key=" t ext ur e" >di mpl y</ ent r y>
</ pr oper t y- mapear >
<pr oper t y- mapear >
<ent r y key=" nome" >gr apef r ui t </ ent r y>
<ent r y key=" col or " >Yel l ow</ ent r y>
<ent r y key=" shape" >spher e</ ent r y>
<ent r y key=" t ext ur e" >di mpl y</ ent r y>
</ pr oper t y- mapear >
<pr oper t y- mapear >
<ent r y key=" nome" >cucumber </ ent r y>
<ent r y key=" col or " >gr een</ ent r y>
<ent r y key=" shape" >el l i psoi d</ ent r y>
<ent r y key=" t ext ur e" >smoot h</ ent r y>
</ pr oper t y- mapear >
</ def aul t - val or >
</ f r ui t - dat a>

content Contedo uma vasta quantidade de dados que gerada dentro de um componente. Um
exemplo de contedo um arquivo PDF gerado por um componente de relatrio. No possvel definir um
valor default para contedos, pois ele pode ser de qualquer tipo e representado internamente como um
byte stream.

Exemplo: Este XML define um nodo contedo denominado attachment que esperado existir em um
contedo de execuo chamado relatrio-output. Neste exemplo, o componente de relatrio gera um
documento e o armazena como um relatrio-output. O componente de e-mail ir embutir este relatrio
como um anexo em um e-mail.

<at t achment t ype=" cont ent " >
<sour ces>
<r unt i me>r el at r i o- out put </ r unt i me>
</ sour ces>
</ at t achment >
Pg 54
Tipos de Recursos das Sequncias de Ao
Os seguintes tipos de recursos so correntemente suportados pela Plataforma pentaho de BI.

solution-file Um arquivo no sistema de arquivos relativo a localizao do Documento de Seqncia de
Ao.

<sol ut i on- f i l e>
<l ocat i on>MyRel at r i o. r pt desi gn</ l ocat i on>
<mi me- t ype>t ext o/ xml </ mi me- t ype>
</ sol ut i on- f i l e>

file Um caminho absoluto no sistema de arquivos.

<f i l e>
<l ocat i on>D: \ sampl es\ r el at r i oi ng\ MyRel at r i o. r pt desi gn</ l ocat i on>
<mi me- t ype>t ext o/ xml </ mi me- t ype>
</ f i l e>

url Uma URL.

<f i l e>
<l ocat i on>ht t p: / / www. myser ver . com/ l ogo. png</ l ocat i on>
<mi me- t ype>i mage/ png</ mi me- t ype>
</ f i l e>

Pg 55
Apndice C
Definies de Componentes
Os componentes na Plataforma Pentaho de BI podem ser vistos como blocos totalmente operacionais, com
entradas, sadas e definies. Os parmetros que sero disponibilizados para um componente so definidos
por um nodo action-inputs. Os componentes no tm acesso a quaisquer parmetros que no foram
especificados nas action-inputs. As action-inputs podem ser originadas a partir de: parmetros definidos
nas entradas dos documentos de Seqncia de Ao e quaisquer parmetros definidos em um action-
outputs de um componente prvio.

As action-outputs definem quais parmetros estaro disponveis aps a execuo de um componente.
Outros componentes que sero executados posteriormente podero usar estas sadas como entradas.

Quando a Seqncia de Ao termina sua execuo, os dados sero temporariamente armazenados em um
repositrio em tempo de execuo. Somente sero salvos os parmetros definidos nos nodos outputs de
um documento Seqncia de Ao.

Cada componente na Plataforma Pentaho de BI tem entradas nicas e especficas e as definies de
componentes devem ser especificadas de acordo. Eles tambm possuem entradas e definies opcionais.
Esta seo descreve suas interfaces.
HelloWorldComponent
HelloWorldComponent um componente extremamente simples. Ele simplesmente retorna o texto Hello
World seguido por uma string entre aspas.
component-nome: HelloWorldComponent
action-entradas: Nenhuma

action-outputs: Nenhuma

component-definition:
<quot e>Uma mensagem para mostrar</ quot e>

EXEMPLO

<act i on- def i ni t i on>
<act i on- ent r adas/ >
<act i on- out put s/ >
<component - nome>Hel l oWor l dComponent </ component - nome>
<component - def i ni t i on>
<quot e>Gr eet i ngs f r omt he Pent aho BI Pl at f or m. </ quot e>
</ component - def i ni t i on>
</ act i on- def i ni t i on>

Pg 56
EmailComponent
EmailComponent utilizado para enviar e-mails baseados em texto ou HTML. Eles podem conter anexos.
Se o tipo de dado do parmetro to um mapa de propriedades, ento o mapa contm os pares de valores
(nomes) para os parmetros to, subject e from. O parmetro attach deve conter o nome do parmetro
de tipo contedo que contem o anexo. attach-nome o nome do arquivo em anexo para o cliente do e-
mail.
component-nome: EmailComponent
action-entradas:
REQUERIDO
to string ou mapa de propriedades
subject string
message-plain or message-html string

OPCIONAL
from string Caso no especificado, o default do email_config.xml ser usado
cc string
bcc string
attach string
attach-nome string

action-outputs: Nenhum

component-definition: Nenhum

EXEMPLO

<act i on- def i ni t i on>
<act i on- ent r adas>
<t o t ype=" st r i ng" / >
<f r omt ype=" st r i ng" / >
<subj ect t ype=" st r i ng" / >
<message- pl ai n t ype=" st r i ng" / >
</ act i on- i nput s>
<component - nome>Emai l Component </ component - nome>
<component - def i ni t i on/ >
</ act i on- def i ni t i on>

Para um completo exemplo de Seqncia de Ao com HTML, texto e anexos, veja samples/bursting/send-
email.xaction da soluo test-solution



Pg 57

J avascriptRule
O componente J avascriptRule executar o J avascript definido no nodo script da definio do componente.
Parmetros especificados como entradas estaro disponveis para o script. O J avascriptRule pode ter uma
ou mais sadas. Se a regra requer somente uma nica sada, ento nica instruo de retorno do
javascript ser atribudo aquela sada. Se existem mltiplos atributos, ento o cdigo em javascript deve
retornar um vetor de sadas. A cada elemento do vetor ser designada uma sada da ao.

O componente tambm pode definir elementos de uma biblioteca na definio de componentes. Cada
arquivo de biblioteca especificado deve existir na soluo, e ser conectado ao script que especificado na
definio do componente. Desta forma, possvel criar bibliotecas dos cdigos mais usados em javascript, e
inclu-los em tempo de execuo.

No exemplo abaixo,
component-nome: J avascriptRule
action-entradas:
OPCIONAL
Qualquer parmetro especificado estar disponvel como uma varivel para o mecanismo de script.

action-outputs:
REQUERIDO
Devero existir uma ou mais sadas definidas.


component-definition:
script o javascript para executar
library um ou mais arquivos com javascripts para incluir.
outputx Mapeamento do vetor de sada ao output.

EXEMPLO

<act i on- def i ni t i on>
<component - nome>J avascr i pt Rul e</ component - nome>
<act i on- out put s>
<r egi on t ype=" st r i ng" / >
<st at e t ype=" st r i ng" / >
</ act i on- out put s>
<act i on- t ype>r ul e</ act i on- t ype>
<component - def i ni t i on>
<scr i pt >
<! [ CDATA[
f unct i on get Resul t ( ) {
var r esul t = new Ar r ay( 2) ;
r esul t [ 0] = " West er n" ;
r esul t [ 1] = " Cal i f or ni a" ;
r et or na r esul t ;
}
get Resul t ( ) ;
] ] >
</ scr i pt >
<out put 1>r egi on</ out put 1>
<out put 2>r egi on</ out put 2>
</ component - def i ni t i on>
</ act i on- def i ni t i on>

Pg 58

SQLLookupRule
O componente SQLLookupRule executar a consulta SQL definida no nodo consulta da definio do
componente. Parmetros especificados como entradas podem ser usados para substituir texto na consulta.
A string de substituio da forma {nome}, onde nome e o parmetro nome devero estar devidamente
ajustados. NO exemplo, {dept} na consulta ser substituda pelo valor especificado pelo dept nas aes-
entradas.
component-nome:.SQLLookupRule
action-inputs:
OPCIONAL
Qualquer parmetro especificado pode substituri um texto como {nome} na consulta, onde nome
combina com o parmetro nome.

action-outputs:
REQUERIDO
rule-result lista de mapas de propriedade

component-definition:
jndi Se uma conexo a uma base de dados J NDI fornecida, ela ser usada prioritariamente
para a connection, usurio-id, password, and driver
connection Se uma conexo J NDI no fornecida, o parmetro especificado ser usado para
criar uma conexo para a base de dados.
user-id Se uma conexo J NDI no fornecida, o parmetro especificado ser usado para criar
uma conexo para a base de dados.
password Se uma conexo J NDI no fornecida, o parmetro especificado ser usado para
criar uma conexo para a base de dados.
driver - Se uma conexo J NDI no fornecida, o parmetro especificado ser usado para criar
uma conexo para a base de dados.

EXEMPLO

<act i on- def i ni t i on>
<component - nome>SQLLookupRul e</ component - nome>

<act i on- ent r adas>
<dept t ype=" st r i ng" / >
</ act i on- i nput s>

<act i on- out put s>
<r ul e- r esul t t ype=" st r i ng" / >
</ act i on- out put s>

<component - def i ni t i on>
<j ndi >sampl edat a</ j ndi >
<connect i on>j dbc: hsql db: hsql : / / l ocal host / sampl edat a</ connect i on>
<usur i o- i d>pent aho_usur i o</ usur i o- i d>
<passwor d>passwor d</ passwor d>
<dr i ver >or g. hsql db. j dbcDr i ver </ dr i ver >
<quer y><! [ CDATA[
sel ect di st i nct Posi t i onTi t l e
f r omquadr ant _act ual s
wher e depar t ment =' {dept }'
or der por Posi t i onTi t l e] ] >
</ quer y>
</ component - def i ni t i on>
</ act i on- def i ni t i on>
Pg 59
PrintComponent
PrintComponent utilizado para imprimir relatrios e contedos para o nome da impressora disponvel. O
contedo pode ser especificado da seguinte forma: (1) Especificando o arquivo como um recurso printFile
ou definindo o componente (2) Definindo uma ao prvia na Have a previous action in the sequence
output content to the parmetro report-output. Atualmente, o
org.pentaho.plugin.jfreerelatrio.J FreeComponent, org.pentaho.plugin.eclipsebirt.BIRTComponent, e
org.pentaho.plugin.jasperrelatrios.J asperComponent tm a habilidade de gerar contedos e relatrios
como relatrio-output. Caso nenhum contedo seja especificado para impresso, a Seqncia de Ao
falhar.
component-nome: PrintComponent
action-inputs:
OPCIONAL
printFile string Caso no especificado, o parmetro report-output utilizado.
printerName string Caso no especificado, a impressora padro sera usadas.
copies nmero
-

action-outputs:
last-printer-selected string Caso no especificado nas action outputs e action-inputs, o valor no
definido.

component-definition: Nenhum

EXEMPLO

<act i on- def i ni t i on>
<act i on- i nput s>
<copi es t i po=" st r i ng" / >
<or i ent at i on t i po=" st r i ng" / >
<pr i nt er Name t i po=" st r i ng" / >
</ act i on- i nput s>
<component - nome>Pr i nt Component </ component - nome>
<act i on- t i po>pr i nt </ act i on- t i po>
<component - def i ni t i on/ >
</ act i on- def i ni t i on>

Para um completo exemplo de Seqncia de Ao com anexos em HTML e texto, veja
samples/bursting/send-email.xaction na test-solution.

Pg 60
J obEscalonadorComponent
Veja a Seo Escalonamento acima.

EscalonadorAdminComponent
Veja a Seo Escalonamento acima.
.

BI RTRelatrioComponent
Por favor, veja Integrando Relatrios BIRT.

ContentRepositoryCleaner
ContentRepositoryCleaner utilizado para remover itens velhos do repositrio. necessrio somente uma
entrada, um nmero que representa por quanto tempo um item permitido a residir no repositrio. Se o
valor 90 usado, ento itens mais velhos que 90 dias sero removidos do repositrio.
component-nome: ContentRepositoryCleaner
action-entradas:
REQUERIDO
days_old O nmero de dias que um item deve residir no repositrio.

action-outputs:
delete_count O nmero de itens a serem excludos do repositrio.

component-definition: Nenhum

EXEMPLO

<act i on- def i ni t i on>
<act i on- i nput s>
<days_ol d t ype=" st r i ng" / >
</ act i on- i nput s>

<act i on- out put s>
<del et e_count t ype=" st r i ng" / >
</ act i on- out put s>

<component - nome>Cont ent Reposi t or yCl eaner </ component - nome>
<act i on- t i po>r ul e</ act i on- t i po>
<component - def i ni t i on></ component - def i ni t i on>
</ act i on- def i ni t i on>


Para um completo exemplo de Seqncia de Ao com anexos em HTML e texto, veja
Advanced\Content\clean_repository.xaction no test-solution


Pg 61
SubActionComponent
O SubActionComponent usado dentro de uma Seqncia de Ao para permitir chamar outra Seqncia
de Aos, de forma muito similar a uma rotina GoSub. SubActions so executadas sincronicamente.
component-nome: ContentRepositoryCleaner
action-inputs:
REQUERIDO
solution A soluo do .xaction a ser chamada.
path O caminho da .xaction de uma soluo a ser chamada.
action O nome da .xaction a ser chamada (deve incluir a extenso .xaction).

OPCIONAL
Quaisquer nomes de entrada da chamada .xaction que so desejadas serem enviadas chamada
.xaction

action-outputs:
Sadas da chamada .xaction que necessitam ser consumidas por aes subseqentes ou necessitam ser
passadas a outra Seqncia de Ao.

component-definition: Nenhum

EXEMPLO

<?xml ver si on=" 1. 0" encodi ng=" UTF- 8" ?>
<act i on- sequence>
<nome>SubAct i onTest . xact i on</ nome>
<t i t l e>SubAct i onTest </ t i t l e>
<ver si on>1</ ver si on>
<l oggi ng- l evel >DEBUG</ l oggi ng- l evel >
<document at i on>
<aut hor >J oe Pent aho</ aut hor >
<descr i pt i on>Test s t he Subact i on Component </ descr i pt i on>
<hel p>Hel p! ! ! Hel p! ! ! </ hel p>
<r esul t - t ype>r ul e</ r esul t - t ype>
</ document at i on>

<i nput s>
<sol ut i on t ype=" st r i ng" >
<def aul t - val or >sampl es</ def aul t - val or >
</ sol ut i on>
<pat h t ype=" st r i ng" >
<def aul t - val or >get t i ng- st ar t ed</ def aul t - val or >
</ pat h>
<act i on t ype=" st r i ng" >
<def aul t - val or >Hel l oWor l d. xact i on</ def aul t - val or >
</ act i on>
<quot e t ype=" st r i ng" >
<def aul t - val or >
Hel l o Wor l d Cal l #1 &l t ; br / &gt ;
</ def aul t - val or >
<sour ces/ >
</ quot e>
<quot e2 t ype=" st r i ng" >
<sour ces/ >
<def aul t - val or >
Hel l o Wor l d Cal l #2 &l t ; br / &gt ;
</ def aul t - val or >
</ quot e2>
</ i nput s>

Pg 62
<out put s/ >

<r esour ces/ >

<act i ons>
<act i on- def i ni t i on>
<component - nome>SubAct i onComponent </ component - nome>
<act i on- t ype>Cal l To Hel l oWor l d 1</ act i on- t ype>
<act i on- i nput s>
<sol ut i on t ype=" st r i ng" / >
<pat h t ype=" st r i ng" / >
<act i on t ype=" st r i ng" / >
<quot e t ype=" st r i ng" / >
</ act i on- i nput s>
<act i on- out put s/ >
<component - def i ni t i on/ >
<act i on- nome>SubAct i on Test </ act i on- nome>
<l oggi ng- l evel >DEBUG</ l oggi ng- l evel >
</ act i on- def i ni t i on>

<act i on- def i ni t i on>
<component - nome>SubAct i onComponent </ component - nome>
<act i on- t ype>Cal l To Hel l oWor l d 2</ act i on- t ype>
<act i on- i nput s>
<sol ut i on t ype=" st r i ng" / >
<pat h t ype=" st r i ng" / >
<act i on t ype=" st r i ng" / >
<quot e t ype=" st r i ng" mappi ng=" quot e2" / >
</ act i on- i nput s>
<component - def i ni t i on/ >
</ act i on- def i ni t i on>

</ act i ons>
</ act i on- sequence>

Uma pequena explanao de como este componente funciona. Primeiro, observe que a Seqncia de Ao
define algumas entradas. Elas podem ser passadas ou deixadas como defaults. As primeiras trs colunas
(soluo, caminho, e ao) definem a localizao do nome do arquivo .xaction que desejamos executar (no
caso, HelloWorld.xaction). Como desejamos chamar esta ao duas vezes com diferentes quote
parmetros, ns definimos dois quote parmetros (quote and quote2) junto com valores default.

Este processo funciona pelos dois nodos de definies de ao. O primeiro manipula as action-inputs
listadas a partir das definies da Seqncia de Ao. Ela ento chama o SubActionComponent passando-
as como entradas (neste caso, solution=samples, path=getting-started, action=HelloWorld.xaction, and
quote=Hello World Call #1 &lt;br / &gt;). As primeiras trs entradas so usadas para executar a
HelloWorld.xaction. O ultimo parmetro (quote) passado para o seu componente destino atravs de seu
processamento. A HelloWorld.xaction cria uma string usando o parmetro quote, e coloca seu resultado
em um stream de sada.

A segunda definio de ao essencialmente a mesma da primeira, com uma exceo. Suas action-inputs
adicionalmente definem um The second action-definition is essentially the same as the first one with one
exception. If you notice its action-entradas it also defines a quote entrada tipo. Se voc deixar esta linha
igaula definio da primeira ao, voc simplesmente repetir as sadas da primeira action-definition. Neste
caso, ns a mapeamos para a entrada quote2. Isto permite-nos usar diferentes strings para o mesmo
parmetro de entrada. NOTA: os parmetros sendo passados para a .xaction de destino so colocados na
requisio.

Incidentemente, esta chamada para HelloWorld no funcionar com o exemplo fornecido como
HelloWorld.xaction. Se voc deseja modificar a HelloWorld.xaction para localizar estes parmetros na
solicitao, voc dever mudar as entradas do seqncia de ao segundo o seguinte procedimento:

Pg 63
<i nput s>
<quot e t ype=" st r i ng" >
<sour ces>
<r equest >quot e</ r equest >
</ sour ces>
</ quot e>
</ i nput s>

E modificar os action-inputs na definio da ao para:

<act i on- i nput s>
<quot e t ype=" st r i ng" / >
</ act i on- i nput s>

Quando este SubActionTest executado do Pentaho Navigator.js, duas chamadas para a HelloWorld.xaction
sero feitas, cada uma com diferentes parmetros. Cada chamada para a HelloWorld.xaction resulta nas
sadas serem colocadas em um stream de sada que fornecido pelo SubActionComponent e os resultados
aparecem no janela do navegador.

Você também pode gostar