<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>marcuscavalcanti.net &#187; BPMS</title>
	<atom:link href="http://www.marcuscavalcanti.net/blog/tag/bpms/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcuscavalcanti.net/blog</link>
	<description>Software, tecnologia e etc.</description>
	<lastBuildDate>Wed, 21 Jul 2010 03:52:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Usando PAPI para criar e recuperar instância de processos no ALBPM/OracleBPM</title>
		<link>http://www.marcuscavalcanti.net/blog/2009/09/02/usando-papi-para-criar-e-recuperar-instancia-de-processos-no-albpmoraclebpm/</link>
		<comments>http://www.marcuscavalcanti.net/blog/2009/09/02/usando-papi-para-criar-e-recuperar-instancia-de-processos-no-albpmoraclebpm/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 17:06:40 +0000</pubDate>
		<dc:creator>Marcus Cavalcanti</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[ALBPM]]></category>
		<category><![CDATA[BPMS]]></category>
		<category><![CDATA[OracleBPM]]></category>
		<category><![CDATA[PAPI]]></category>
		<category><![CDATA[PAPI-WS]]></category>
		<category><![CDATA[ProcessService]]></category>

		<guid isPermaLink="false">http://www.marcuscavalcanti.net/blog/?p=1144</guid>
		<description><![CDATA[O PAPI (Process API) é uma API do ALBPM/OracleBPM que permite que se possa interagir diretamente com a engine de execução de processos da ferramenta, e dentre outras coisas é possível: criar instâncias, recuperar instâncias, realizar buscas, abortar instâncias, enviar notificações, auditar uma instância, etc. 
Ou seja, é muito importante sabermos que essa API existe [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://download.oracle.com/docs/cd/E12483_01/albsi60/papi/index.html" style="text-decoration: underline" target="_blank">PAPI (<em>Process</em> API)</a> é uma API do ALBPM/OracleBPM que permite que se possa interagir diretamente com a <em>engine</em> de execução de processos da ferramenta, e dentre outras coisas é possível: criar instâncias, recuperar instâncias, realizar buscas, abortar instâncias, enviar notificações, auditar uma instância, etc. </p>
<p>Ou seja, é muito importante sabermos que essa API existe e principalmente sabermos como usá-la. Existem duas maneiras de usá-la: externa e internamente. Externamente isso pode ser feito usando o <a href="http://download.oracle.com/docs/cd/E12483_01/albsi60/papi/papi_ws/c_Head_PAPI_WS.html" style="text-decoration: underline" target="_blank">PAPI-WS</a>, que são serviços expostos pelo próprio ALBPM para que se possa usar o PAPI, porém um pouco limitado. Outra opção é usando a <a href="http://download.oracle.com/docs/cd/E12483_01/albsi60/papi/papi/c_Structure_of_a_Java_PAPI_Application.html" style="text-decoration: underline" target="_blank">JAVA API</a>, que é mais completa. Dentro do ALBPM usamos diretamente a Java API através do Catálogo de API&#8217;s da ferramenta.</p>
<h3>Criando e Recuperando Instâncias de Processos</h3>
<p>Fiz um exemplo de código bem simples no ALBPM para poder apresentar como criar instâncias e recuperar instâncias de processos. Seguem os dois exemplos com os respectivos comentários:</p>
<p><strong>Criando Instâncias</strong><br />
Para criar instâncias é muito simples, basta usarmos o método create da API ProcessInstance, passando como parâmetros o ID do processo (sempre com &#8220;/&#8221; na frente), os argumentos de incialização (caso existam), e o nome do método de inicialização, que pode ser visto através da opção &#8220;<em>argument mapping</em>&#8221; do evento de inicialização. Segue o código:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Java"><div class="devcodeoverflow"><ol><li></li><li><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> processCreateResult <span style="color: #339933;">=</span> create<span style="color: #009900;">&#40;</span>processId <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;/Teste&quot;</span>, arguments <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">null</span>, argumentsSetName <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;BeginIn&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p><strong>Recuperando Instâncias</strong><br />
Para recuperar instâncias também é muito simples, mas devemos ter atenção com a autenticação no DirectoryService onde o projeto correspondente a instância a ser recuperada está <em>deployado</em>.</p>
<p>Esse passo é necessário, pois para recuperar instâncias é usada outra API, no caso a API <a href="http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/standard_components/Fuego/Papi/ProcessService/ProcessService_component.html"  style="text-decoration: underline" target="_blank">ProcessService</a> e para tal precisamos autenticar no DirectoryService antes de tentar recuperar a instância de fato.</p>
<p>Para autenticação no DirectoryService, usamos o método connectTo da API ProcessService, e esse método espera 3 parâmetros: A URL do DirectoryService (pode-se usar as constantes como no exemplo abaixo), o usuário e a senha. O usuário e a senha devem possuir a <em>role</em> onde a atividade de criação da instância está associada.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Java"><div class="devcodeoverflow"><ol><li></li><li><span style="color: #009900;">&#40;</span>ProcessService<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">connectTo</span><span style="color: #009900;">&#40;</span>url <span style="color: #339933;">:</span> Fuego.<span style="color: #006633;">Server</span>.<span style="color: #006633;">directoryURL</span>, user <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;tester&quot;</span>, password <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;tester&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>businessProcess <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>ProcessService<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getProcess</span><span style="color: #009900;">&#40;</span>process <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;/Teste&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Agora para visualizar o resultado, basta o seguinte código:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Java"><div class="devcodeoverflow"><ol><li></li><li>logMessage<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;-------------------------------------------------------------------&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>logMessage<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Instância do Processo Criado: &quot;</span><span style="color: #339933;">+</span>processCreateResult<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>logMessage<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Referência da Instância Recuperada: &quot;</span><span style="color: #339933;">+</span>businessProcess<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>logMessage<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;-------------------------------------------------------------------&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcuscavalcanti.net/blog/2009/09/02/usando-papi-para-criar-e-recuperar-instancia-de-processos-no-albpmoraclebpm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Download de projeto BPM para iniciantes no ALBPM (ou OracleBPM)</title>
		<link>http://www.marcuscavalcanti.net/blog/2009/05/12/download-de-projeto-bpm-para-iniciantes-no-albpm-ou-oraclebpm/</link>
		<comments>http://www.marcuscavalcanti.net/blog/2009/05/12/download-de-projeto-bpm-para-iniciantes-no-albpm-ou-oraclebpm/#comments</comments>
		<pubDate>Tue, 12 May 2009 21:55:40 +0000</pubDate>
		<dc:creator>Marcus Cavalcanti</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[ALBPM]]></category>
		<category><![CDATA[BPMS]]></category>
		<category><![CDATA[OracleBPM]]></category>

		<guid isPermaLink="false">http://www.marcuscavalcanti.net/blog/?p=956</guid>
		<description><![CDATA[Hoje fiz uma apresentação sobre BPM e o BPMS Aqualogic BPM (ou OracleBPM) na empresa que eu trabalho, o objetivo era mostrar o que é BPM para quem não conhece e principalmente apresentar a solução BPMS citada em um projeto piloto.
Para apresentação, criei um projeto piloto &#8220;empréstimo bancário&#8221; onde é possível mostrar os conceitos mais [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje fiz uma apresentação sobre BPM e o BPMS Aqualogic BPM (ou OracleBPM) na empresa que eu trabalho, o objetivo era mostrar o que é BPM para quem não conhece e principalmente apresentar a solução BPMS citada em um projeto piloto.</p>
<p>Para apresentação, criei um projeto piloto &#8220;empréstimo bancário&#8221; onde é possível mostrar os conceitos mais básicos do ALBPM. Como imagino existirem mais pessoas com tal necessidade, irei disponibilizar o download do projeto, bem como o script SQL necessário para criação da tabela usada no projeto.</p>
<p>Os tópicos abordados na apresentação foram:</p>
<p><em>- O que é BPM e BPMS?</p>
<p>- BPMN</p>
<p>- BPM(s) não é arrastar e soltar figurinhas </p>
<p>- Workspace</p>
<p>- Processo</p>
<p>- Screenflow</p>
<p>- Atividades (Globais (Global Creation e Global), Automáticas, Interativas, Grab/Joins/Split)</p>
<p>- Transições</p>
<p>- BPM OBjects, Instance Variables, Local Variables, Project Variables</p>
<p>- Argumentos / Argument Mapping</p>
<p>- Business Parameters e Business Rules</p>
<p>- Exceções</p>
<p>- Grupos</p>
<p>- Connectors</p>
<p>- Logs (Log Viewer), Problems View, Variables View e Outline View</p>
<p>- Componentes (Catálogo)</p>
<p>- Organization (Roles, Usuários)</p>
<p>- Presentations e JSP</p>
<p>- External Resources</p>
<p>- Geração de &#8220;pacote&#8221; (.exp)</p>
<p>- SVN</em></p>
<p><a href="http://www.marcuscavalcanti.net/blog/wp-content/uploads/BPM_piloto/Piloto.exp" style="text-decoration: underline" target="_blank">Download do projeto.</a></p>
<p><a href="http://www.marcuscavalcanti.net/blog/wp-content/uploads/BPM_piloto/piloto.sql" style="text-decoration: underline" target="_blank">Download do script SQL.</a></p>
<p>PS: O projeto não disponibiliza todos os tópicos abordados e citados acima, mas quase todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcuscavalcanti.net/blog/2009/05/12/download-de-projeto-bpm-para-iniciantes-no-albpm-ou-oraclebpm/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Diferenças entre versões do Aqualogic BPM para Oracle BPM Studio</title>
		<link>http://www.marcuscavalcanti.net/blog/2009/02/03/diferencas-entre-versoes-do-aqualogic-bpm-para-oracle-bpm-studio/</link>
		<comments>http://www.marcuscavalcanti.net/blog/2009/02/03/diferencas-entre-versoes-do-aqualogic-bpm-para-oracle-bpm-studio/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 22:04:22 +0000</pubDate>
		<dc:creator>Marcus Cavalcanti</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[ALBPM]]></category>
		<category><![CDATA[Aqualogic]]></category>
		<category><![CDATA[BEA]]></category>
		<category><![CDATA[BPMS]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OracleBPM]]></category>

		<guid isPermaLink="false">http://www.marcuscavalcanti.net/blog/?p=240</guid>
		<description><![CDATA[Sei que estou devendo um post falando de um exemplo real de um processo de negócio sendo executado por uma ferramenta BPMS, mas enquanto esse post não vem irei falar sobre algo relacionado, mais especificamente sobre as diferenças que notei até agora entre o Aqualogic BPM 6.03, ainda com a BEA Systems como mantenadora e [...]]]></description>
			<content:encoded><![CDATA[<p>Sei que estou devendo um post falando de um exemplo real de um processo de negócio sendo executado por uma ferramenta BPMS, mas enquanto esse post não vem irei falar sobre algo relacionado, mais especificamente sobre as diferenças que notei até agora entre o Aqualogic BPM 6.03, ainda com a BEA Systems como mantenadora e o Oracle BPM Studio 10.3, que passou a ser o novo nome do Aqualogic BPM após a <a style="text-decoration: underline" href="http://www.oracle.com/corporate/press/2008_jan/bea.html" target="_blank">aquisição da BEA pela Oracle</a>.</p>
<h3>O início</h3>
<p>Ao iniciar o projeto que estou atualmente, confesso que fiquei no impasse de &#8220;qual versão usar?&#8221;, pois o BPM Server (enterprise) de produção ainda é o 6, ou seja, Aqualogic. Paralelo a isso, comecei a ter alguns problemas com a versão 6.03 do Aqualogic BPM Studio na minha máquina, pois como tenho dois <em>localhost</em> (alias) apontando para o mesmo IP local (127.0.0.1), ao subir a engine um erro com a mensagem &#8220;server has exited&#8221; começou a ocorrer e com isso não conseguia &#8220;startar&#8221; a ferramenta. Pesquisando no Google, vi no falecido fórum da BEA, uma thread dizendo que para resolver esse problema bastaria eu  comentar uma das linhas que apontam para o meu IP local no arquivo de hosts do meu SO. Fiz o procedimento e&#8230; nada! Ainda nessa mesma thread, havia outro comentário informando que na versão nova (Oracle) a engine estava mais esperta e resolvia esses tipos de problemas, foi a partir disso que resolvi usar a nova versão, ainda meio que ressabiado.</p>
<h3>O problema e a segurança</h3>
<p>Mas aí surge um novo problema: a incompatibilidade entre versões. Meu ambiente de desenvolvimento usa a versão nova e o meu ambiente de produção usa a versão mais antiga, será que com isso terei problemas em fazer deploy? A princípio não deveria ocorrer problema algum, pois na verdade o que mudou foi basicamente a skin da ferramenta, o workspace (skin também) e a engine que ficou mais esperta. Nesse meio tempo, por coinciência, tive um treinamento de BPM aqui no RJ com o pessoal da Oracle e ao perguntar pra eles se esse problema poderia se concretizar, fui respondido que não, apesar de nunca terem feito esse teste. Confirmaram ainda, que realmente quase nada havia mudado de uma versão para outra. Foi o suficiente para eu ter segurança na minha decisão.</p>
<h3>A realidade</h3>
<p>Mas no decorrer do projeto, tenho percebido que o buraco é um pouco mais embaixo hehe, nada que comprometa o desenvolvimento, mas alguns cuidados precisam ser tomados e como estou passando pela experiência, acho válido relatar para quem possar vir a passar pelas mesmas situações que eu. Só gostaria de ressaltar, que os testes que tenho feito não são os ideais, pois o que estou testando é o projeto sendo executado no Studio BPM na versão Oracle (nova) e também no Aqualogic (antiga), mas ainda não tentei fazer deploy em uma versão enterprise, pois ainda estou sem ambiente para isso, quando tiver esses testes, atualizo esse post.</p>
<p>Abaixo irei enumerar as diferenças que notei até agora com suas devidas observações.</p>
<p><strong>Controle de Versão</strong><br />
Na versão 6.03 (Aqualogic), a ferramenta ainda não possuia um controle de versão embutido para SVN, se fazia por necessário <a style="text-decoration: underline" href="http://74.125.47.132/search?q=cache:o2j-XVjVjnEJ:forums.bea.com/thread.jspa%3FthreadID%3D300003640+albpm+svn&#038;hl=pt-BR&#038;ct=clnk&#038;cd=1&#038;gl=br&#038;client=firefox-a" target="_blank">instalar um plugin (Subversive)</a> para ter essa funcionalidade, agora isso já vem de graça! Essa sem dúvida foi uma melhoria muito positiva na qual não tive problema algum entre as versões.</p>
<p><strong>Connectors</strong><br />
O BPM Studio, em ambas as versões, tem uma coisa muito legal chamada <em>connectors</em>. Com os <em>connectors</em> é possível criar um atalho para determinada atividade sem ter que puxar uma <em>transition</em> para a mesma, isso é muito bom para ajudar na organização do processo, pois com isso evita-se que um monte de <em>transitions</em> fiquem entrelaçadas deixando o processo uma verdadeira zona.</p>
<p>Com <em>connectors</em> comecei a ter alguns problemas, pois processos que possuiam <em>connectors</em> na versão nova simplesmente não funcionavam na versão antiga. Pior do que isso, processos com <em>connectors</em> na versão nova não abrim na versão antiga! Não consegui descobrir o motivo, a única conclusão que cheguei é que geralmente o problema ocorria com <em>connectors</em> que <em>linkavam</em> para uma atividade final (End) do processo.</p>
<p>Conclusão: não uso mais.</p>
<p><strong>Instanciar Variáveis</strong><br />
Esse foi um comportamento que eu sinceramente prefiro da versão antiga, pois acho mais correto.</p>
<p>O que ocorre é que algumas variáveis de instância eu não preciso instanciar, então em um array de BPMObject eu consigo ter algo do tipo:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Java"><div class="devcodeoverflow"><ol><li>bpmObject<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">nome</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Marcus Cavalcanti&quot;</span><span style="color: #339933;">;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Ou seja, não precisei instanciar aquele índice corrente do array. Já na versão antiga isso não funciona, obviamente ocorre um NullPointerException, então para resolver isso eu preciso fazer:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Java"><div class="devcodeoverflow"><ol><li></li><li>bpmObject<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MeuBpmObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>bpmObject<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">nome</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Marcus Cavalcanti&quot;</span><span style="color: #339933;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Eu prefiro a segunda opção, mais conservadora. Sinceramente não sei como e porque a primeira opção funciona na versão nova, pois não deveria.</p>
<p><strong>Activity x Transitions</strong><br />
Uma mudança simples, mas muito significativa ocorreu nessa nova versão. Toda vez que uma atividade é adicionada ou removida, automaticamente o layout se ajusta e na maioria das vezes bagunçando as transitions entre uma atividade e outra. Agora na nova versão existe a possibilidade de habilitar/desabilitar esse &#8220;recurso&#8221;. É muito simples, basta ir em:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Text"><div class="devcodeoverflow"><ol><li></li><li>Window &gt; BPM Preferences &gt; Activity &gt; General</li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Seguido os passos acima, basta apenas desmarcar o último checkbox. Fichinha!</p>
<p><strong>Gráficos e Skin</strong><br />
Nossa&#8230; esse foi um avanço e tanto! Na versão para Linux os ícones ficavam horrorosos! Ficavam sem transparência por causa do PNG, então ficava aquele fundo preto e era horrível, além do mais os ícones agora estão bem mais trabalhados e bonitinhos :)</p>
<p>O Workspace foi outra coisa que mudou, achei a nova skin bem melhor e funcional, parece que cabem mais informações.</p>
<h3>Conclusão</h3>
<p>Conforme dito no começo, mudanças em relação a <em>features</em> não existem de uma versão para outra, mas percebi algumas pequenas mudanças ao executar o mesmo projeto em versões diferentes, o que pode trazer pequenos problemas.</p>
<p>Acredito que a principal questão seja em relação a diferença entre versões de desenvolvimento e enterprise, mas esses testes ainda não possuo e assim que possuir atualizo esse post. Da mesma forma, se surgirem novas diferenças entre as &#8220;versões Studio&#8221;, esse espaço será atualizado.</p>
<p>PS: se alguém tiver percebido mais algum comportamento estranho, fique a vontade para compartilhar, os comentários estão aí pra isso!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcuscavalcanti.net/blog/2009/02/03/diferencas-entre-versoes-do-aqualogic-bpm-para-oracle-bpm-studio/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Introdução ao BPM e BPMS</title>
		<link>http://www.marcuscavalcanti.net/blog/2009/01/18/introducao-bpm-e-bpms/</link>
		<comments>http://www.marcuscavalcanti.net/blog/2009/01/18/introducao-bpm-e-bpms/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 17:00:10 +0000</pubDate>
		<dc:creator>Marcus Cavalcanti</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Aqualogic]]></category>
		<category><![CDATA[BPMN]]></category>
		<category><![CDATA[BPMS]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OracleBPM]]></category>
		<category><![CDATA[Processos]]></category>

		<guid isPermaLink="false">http://www.marcuscavalcanti.net/blog/?p=121</guid>
		<description><![CDATA[O objetivo desse post era sair um pouco dos assuntos teóricos e partir para um assunto mais específico, onde iria dar algumas dicas sobre como fazer upload de arquivos e gravar o conteúdo em um banco de dados usando a ferramenta Oracle BPM Studio, mas como BPM é um assunto &#8211; apesar de muito falado [...]]]></description>
			<content:encoded><![CDATA[<p>O objetivo desse post era sair um pouco dos assuntos teóricos e partir para um assunto mais específico, onde iria dar algumas dicas sobre como fazer upload de arquivos e gravar o conteúdo em um banco de dados usando a ferramenta <a href="http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/index.html" style="text-decoration: underline" target="_blank">Oracle BPM Studio</a>, mas como BPM é um assunto &#8211; apesar de muito falado no mundo de TI &#8211; ainda obscuro, achei que valeria a pena fazer uma breve introdução sobre BPM e BPMS antes de falar especificamente sobre uma ferramenta BPMS.</p>
<h3>
BPM</h3>
<p>BPM é o acrônimo de Business Process Management, que traduzindo para o português seria Gerenciamento de Processos de Negócio.</p>
<p>Definir o termo <a href="http://bpmsbrasil.blogspot.com/2007/05/bpm-o-inexplicvel.html" style="text-decoration: underline" target="_blank">BPM não é uma tarefa trivial</a>, pois como se trata de um assunto amplo e recente, cabem mil definições, algumas não tão boas, de cunho mais comercial e outras mais simples.  Porém acredito que as explicações mais simples, não conseguem dar um <em>overview</em> sobre BPM para uma pessoa leiga no assunto, portanto tentarei usar exemplos e conceitos para tentar passar melhor esse significado.</p>
<p>BPM tem a ver com processos, e BPMS com processos e software. Sendo prático, eu diria que BPM é uma metodologia, um conjunto de boas práticas, com o o intuito de mapear e gerenciar processos de negócio, onde são (ou não) envolvidos clientes, usuários, fornecedores e atividades automáticas (informatizadas), onde o principal objetivo do BPM seria obter uma melhoria desse processo.</p>
<p>Se ainda não ficou muito claro, para facilitar as coisas, darei um exemplo real. Imagine o seguinte cenário:</p>
<ul>
<li>Departamento comercial da empresa X identifica que o produto Y é um produto com forte potencial de venda;</li>
<li>Departamento comercial solicita ao departamento de compra/venda o produto Y;</li>
<li>Departamento de compra/venda vai em busca de fornecedores fazendo cotação de preços em busca do melhor custo x benefício;</li>
<li>Departamento de compra/venda define o fornecedor Z como escolhido e esse fica de fazer a entrega dos produtos em 15 dias;</li>
<li>Na data estipulada, o setor de logística da empresa X, recebe o produto do fornecedor Z e assim comunica ao departamento comercial que este está disponível para venda;</li>
<li>Departamento comercial da empresa X, então comunica ao departamento de marketing, que nesse caso irá bolar um campanha de divulgação desse novo produto;</li>
<li>Campanha criada, produto finalmente é lançado.</li>
</ul>
<p>Repare no fluxo acima e perceba que isso é um processo de negócio, pois ele possui um começo, envolve pessoas, pode envolver outros recursos, tem um objetivo bem definido e provavelmente ocorre com certa frequência. Esse processo pode ser melhorado, se tornar mais eficiente? É provável que sim e é nesse ponto que entram o BPM e o BPMS. O BPM seria uma forma de mapear esse processo, identificar gargalos, pontos falhos afim de melhorá-lo e para isso a ajuda de um (bom) software BPMS é muito importante.</p>
<h3>BPMS</h3>
<p>BPMS (Bussiness Process Management Software) seria o braço direito do BPM na melhoria do processo exemplificado acima, através do BPMS seria possível <a href="http://en.wikipedia.org/wiki/BPMN" style="text-decoration: underline" target="_blank">modelar esse processo visualmente</a> e com recursos específicos de uma ferramenta BPMS é possível ter métricas e controles de todo fluxo do processo, dessa forma seria possível, por exemplo, simular esse processo de diversas maneiras, criar mecanismos de automação e fornecer relatórios específicos para tomadas de decisão. Tudo isso com o objetivo único e exclusivo da melhoria desse processo.</p>
<p>É difícil falar sobre BPM sem ser um pouco repetitivo, sem deixar a leitura cansativa, pois trata-se de um assunto muito teórico e abstrato, mas a melhor forma de falar sobre BPM é com exemplos, portanto, com o assunto introduzido, no próximo post mostrarei um cenário de um processo real em que estou trabalhando atualmente e a necessidade do uso de uma ferramenta BPMS.</p>
<p>Só para finalizar, BPM hoje em dia é um dos &#8220;<a href="http://thebpmexperience.wordpress.com/2006/03/17/bpm-e-soa/" style="text-decoration: underline" target="_blank">componentes&#8221; que fazem parte de uma arquitetura SOA</a> completa, o que não significa que para ter uma solução SOA eu tenha que fazer o uso do BPM, porém se usados juntos da forma correta, tornam-se uma poderosa dupla na gestão, automatização e melhoria de processos de negócios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcuscavalcanti.net/blog/2009/01/18/introducao-bpm-e-bpms/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
