quinta-feira, 15 de outubro de 2009

Odebrecht implementa projeto global de ERP

De acordo com o CIO do grupo,uma das peculiaridades do projeto, que deve ser encerrado no final de 2011, é o fato dele não prever qualquer tipo de customização no sistema

Tatiana Americano, da CIO Brasil

Publicada em 15 de outubro de 2009 às 08h05

Em abril deste ano, a Odebrecht - conglomerado brasileiro que atua nas áreas de construção, engenharia, química e petroquímica - iniciou a implementação de um novo sistema de gestão empresarial (ERP) e que, em dois anos, deve funcionar em todas as empresas do grupo, que opera em 20 países. O CIO da empresa, João Cumerlato, afirma que o projeto nasceu de uma demanda de negócios da corporação. "O ERP antigo, que tinha sido desenvolvido internamente pela companhia há mais de 20 anos, já não suportava nossas operações, que crescem a uma taxa de 26% ao ano, desde 2000", afirma Cumerlato.

Ele acrescenta que a solução também não atendia às necessidades das áreas internacionais da corporação - que hoje representam cerca de 70% das receitas do grupo.Detectada essa necessidade, em 2007, a empresa iniciou um processo de análise das melhores alternativas para a modernização do sistema de gestão. Para tanto, 250 pessoas de diversas áreas de negócio foram convidadas a avaliar quais das plataformas oferecidas no mercado atenderiam melhor as necessidades específicas da companhia. "A TI não teve participação na escolha, apenas serviu como facilitador e direcionou o processo", conta o CIO.

Ele ainda detalha que, sete meses depois, a Odebrecht optou pela implementação da plataforma fornecida pela Oracle, mas complementada por aplicações específicas oferecidas por outras empresas. "Escolhemos a Mastersaf para a parte de impostos, a XRT para tesouraria e a Softway para o sistema de importação e exportação", explica o executivo, afirmando também que sua equipe ficou responsável por desenhar uma solução específica para manutenção de equipamentos.

Ainda como parte da etapa de desenho do projeto, a companhia contratou a IBM para conduzir a gestão e a metodologia de implementação do novo sistema, o qual deve ser padronizado para todas as operações da Odebrecht no mundo.

Quanto às fases da iniciativa, Cumerlato conta que a empresa optou por, no primeiro momento, concentrar a migração nas operações do Brasil, as quais têm previsão de serem concluídas até setembro de 2010. Quanto aos demais países, a adoção deve começar pelos Estados Unidos, em fevereiro do próximo ano, e vai seguir um cronograma que segue até o final de 2011.

Uma das peculiaridades do projeto, cita o CIO, foi a decisão de não realizar qualquer customização na plataforma fornecida pela Oracle, com o intuito de reduzir os custos de manutenção e de atualização da solução. "Foi muito difícil, principalmente pelo fato de, anteriormente, trabalharmos com um sistema desenvolvido internamente e que atendia às demandas específicas do nosso negócio", conta o executivo, que acrescenta: "Mas fizemos isso para não ficarmos reféns do software e do fornecedor."

Segundo Cumerlato, desde o início da implementação do ERP, o comitê responsável pela aprovação do projeto já recebeu mais de 600 pedidos de customização. "Para solucionar isso, eu chamo os consultores e peço que eles encontrem formas de parametrizar o software já existente, sem customizá-lo", cita o executivo. "É óbvio que, com isso, algumas áreas vão perder funcionalidades em relação ao ERP anterior, mas, no geral, a empresa toda vai ganhar muito mais", detalha.

*Tatiana Americano viajou a convite da Oracle Brasil para o Oracle Open World 2009, em San Francisco==

domingo, 20 de setembro de 2009

TCA (Tradding Community Architecture)

Quem trabalhava com o cadastro de clientes em forms, com certeza ficou meio perdido com o TCA (Tradding Community Architecture), onde vemos o conceito de parte e conta, uma novidade (Não tão nova assim, eu diria, rs*) do Receivables.

Deixando de lado, toda a parte de se martirizar porque a Oracle modificou o cadastro, vamos tentar entender um pouco mais sobre o assunto, não vou entrar em detalhes muito técnicos, pois assim seria mais fácil publicar o manual.

O TCA foi criado para a união quase perfeita entre fornecedor e cliente, compartilhando a mesma tabela de endereços.

Hoje você consulta a parte, no AR, e já se beneficia de algumas informações que foram utilizadas no cadastro de fornecedores do AP, isso é, se você já gera transações de entrada e saída para o mesmo CNPJ.

Caso não, pode entrar e criar diretamente uma conta para que seu cliente possa transacionar dentro do AR.

Os procedimentos para o cadastro são bem simples, mas senti falta do histórico do registro que por se tratar de uma tela de navegador, não temos essa funcionalidade.

Uma dúvida básica: Onde estão os dados da tabela RA_CUSTOMERS?
Na R12, ela é uma view, a tabela onde é armazenado os nomes do clientes hoje, é a HZ_PARTIES.
Abaixo um diagrama bem simples dessa estrutura:
Quem precisar de um maior detalhamento, me envie um e-mail!
Até o próximo post!

segunda-feira, 27 de julho de 2009

Oracle Adquire a GoldenGate Software

ORACLE PRESS RELEASE

Iniciativa agrega uma solução que permite criar uma abrangente plataforma de integração de dados heterogêneos

Redwood Shores, Califórnia (EUA), julho de 2009 Notícias·

A Oracle entrou em acordo para a aquisição da GoldenGate Software, Inc., líder no mercado de soluções de integração de dados em tempo real para garantir excelência em tecnologia e na tomada de decisões empresariais.

· A inclusão da tecnologia da GoldenGate amplia o portfólio da Oracle com uma solução de integração de dados heterogêneos em tempo real, que agrega funções como a manutenção do tempo de funcionamento dos aplicativos empresariais críticos, durante migrações e atualizações.

· A expectativa é que a combinação da GoldenGate com a Oracle crie uma abrangente plataforma de integração de dados heterogêneos.

· Os clientes deverão se beneficiar com as melhorias na movimentação de dados, em tempo real, replicação e sincronização entre sistemas heterogêneos que apresentam recursos de Business Intelligence. Tudo isso, em um conjunto com alta disponibilidade dos aplicativos empresariais críticos.

· O fechamento da transação está sujeito às condições e aprovações normativas rotineiras, e deverá ocorrer ainda neste ano.

· Durante esse período, cada empresa continuará operando de modo independente.

· Os detalhes financeiros da transação não foram divulgados.

domingo, 21 de junho de 2009

SubLedger Accounting SLA

Olá pessoal!

Quem já ouviu falar do SLA? Uma novidade da R12, vou descrever um pouco de conceito.

Espero que ajude.

Abraços.


R12:
Novos Conceitos Subrazão e SLA


No EBS release 12, para criação do Livro Contábil, ou melhor Ledger, é obrigatório informarmos mais um itém além dos informados nas versões anteriores, que eram o Plano de Contas (COA), Moeda, Calendário. Esse novo componente é o Subrazão, que é o método contábil que será utilizado nesse livro.



No Oracle R.12 estão pré-configurados 4 tipos de sub-razão, que são:

• Provisão Padrão;
• Provisão de Empenho;
• Caixa-Padrão;
• Caixa de Empenho.

Obs.:O método comumente utilizado contabilmente é o método da ‘Provisão Padrão’.

Debaixo dos métodos estão os aplicativos, ou origens, que possuem pré-configurações definidas pelo
Oracle temos:
• Assets;
• Cash Management;
• Cost Management;
• Empréstimos;
• Gerenciador de Propriedade;
• Payables;
• Process Manufacturing Financials;
• Projetos;
• Receivables.


Para cada aplicativo temos um evento contábil, e tomando como base o Payables temos:

• Aplicações de Pagamento Antecipado;
• Avisos Créd.;
• Avisos de Débito;
• NFFs;
• Pagamentos;
• Pagamentos Antecipados;
• Pagamentos Reconciliados;
• Pagtos. c/ Data Futura;
• Reembolsos.


E vinculado ao evento NFFs do Payables temos:

• Despesa Diversa;
• Despesa com Frete;
• Despesa com Item;
• Imposto Não Recuperável;
• Imposto Não Recuperável Auto-Avaliado;
• Imposto Recuperável;
• Imposto Recuperável Auto-Avaliado;
• Liberação de Retenção, Regime de Competência;
• Passivo com Segmento Balanceador de Contrapartidas Automáticas;
• Passivo com Segmento de Conta de Contrapartidas Automáticas;
• Passivo de Imposto Auto-Avaliado;
• Passivo, Básico;
• Provisão;
• Provisão de Imposto Não Recuperável;
• Provisão de Imposto Não Recuperável Auto-Avaliado;
• Retenção Imp. Fonte;
• Retenção no Regime de Competência;
• Variação de Alíquota de Imposto;
• Variação de Preço da NFF;
• Variação de Preço de NFF com Imposto;
• Variação de Taxa de Câmbio;
• Variação de Taxa de Câmbio de Imposto;
• Variação de Taxa de Câmbio de Imposto Não Principal;
• Variação de Taxa de Câmbio de Razão Não Principal.


Podemos representar assim o relacionamento para a Provisão Padrão de uma NFF do Payables com as
linhas de lançamento geradas:




Estrutura do Criador de Métodos


Copiando e Alterando

O Subledger Accounting, debaixo do proprietário ‘Oracle’, possui as pré-configurações para cada
aplicativo, ou Origem, relacionadas acima. Por segurança essas configurações originais do Oracle
Applications não podem ser deletadas e nem modificadas. Para modificá-las é obrigatório criar uma
cópia da configuração original (proprietário Oracle), e criando uma nova estrutura (proprietário
Usuário). Nessa estrutura copiada ela poderá ser alterada, e por fim poderá ser vinculada ao Ledger.






sexta-feira, 29 de maio de 2009

Workflow Builder

Olá pessoal!

Segue a última parte sobre Workflow!

Até mais.

Os componentes vistos no outro post estão dispostos da seguinte forma no Workflow Builder:

O primeiro passo é a criação de um conjunto de fluxos.



Selecione o botão “Novo” (circulado no desenho acima) ou escolha a opção de Menu “File à New”.

Um novo store (arquivo) com o nome “Untitled” será criado na barra de navegação:
Com o botão direito no ícone deste store, selecione a opção “New Item Type”.

A seguinte tela deverá aparecer:


Escolha um nome interno (sem espaços com tamanho máximo de 8 dígitos), um nome para apresentação e uma descrição.

A partir de então toda a árvore de componentes de um fluxo será criada conforme figura abaixo:




Então é hora de criar os subfluxos/processos.

Para criar um processo, com o botão direito do mouse no ícone “Processes” (segundo nível), selecione a opção “New Process”.
A seguinte tela deverá aparecer:


Da mesma forma, escolha um nome interno, um nome de apresentação e uma descrição.
Se o processo resultar em algum domínio, selecione o “Lookup Type” a partir da opção “Result Type”.
Se o processo não for apenas um subfluxo, mas um fluxo disparado externamente por alguma aplicação, selecione também a opção “Runnable”.
Se desejar altere o ícone do fluxo para caracterizar melhor a operação de negócio que está sendo mapeada.

Para inserir atividades (funções, notificações e processos) no seu novo processo:
- Abra seu processo a partir de um clique duplo
- Selecione os objetos e os arraste para dentro do processo.
Lembre-se que todo processo deve ter um início e pelo menos um fim.
As funções de Start e End encontram-se no conjunto de fluxos Standard.

Para criar funções, com o botão direito do mouse no ícone “Functions” (segundo nível), selecione a opção “New Function”.

A seguinte tela deverá aparecer:


Da mesma forma, escolha um nome interno, um nome de apresentação e uma descrição.
Escolha também no campo “Function” o programa PLSQL que deverá respaldar esta função.
Em geral costumamos criar uma única package por Item Type e agrupar nela os códigos (procedures/funções) que irão respaldar as funções de cada processo.
Se a função resultar em algum domínio, selecione o “Lookup Type” a partir da opção “Result Type”.
Se desejar também altere o ícone da função para caracterizar melhor a atividade que está sendo mapeada.

Após criada a função você ainda pode criar atributos (variáveis) que farão parte dela.
Para isso, selecione a opção “New Attribute” a partir do botão direito do mouse no ícone “Functions” (segundo nível).

A seguinte tela deverá aparecer:



Escolha um nome interno, um nome de apresentação e uma descrição.
Escolha também o tipo de dado que será armazenado (Texto, Número, Data, etc..) e em caso textos, escolha também o tamanho da informação.
Se desejar, especifique um valor default na opção “Default Value”.

Atributos também podem ser criados de forma global (não específicos para uma função), através do botão direito do mouse no ícone “Attributes” (segundo nível), opção “New Attribute”.

Além disso também posso associar um atributo global a uma função arrastando o atributo até a função.

Os domínios, por sua vez, são criados também com o botão direito do mouse no ícone “Lookup Types” (segundo nível), selecionando a opção “New Lookup Type”.

A seguinte tela deverá aparecer:


Escolha um nome interno, um nome de apresentação e uma descrição.
Com o botão direito sobre o ícone do seu novo Lookup Type (terceiro nível), selecione a opção “New Lookup Code” para criar os valores do seu domínio.




Aqui você também deverá escolher um nome interno, um nome de apresentação e uma descrição.

Se você ainda não entendeu toda a idéia de um fluxo, pelo menos você já gravou que deve sempre criar objetos no Workflow Builder com o botão direito do mouse e deve sempre escolher um nome interno, uma nome de apresentação e uma descrição.

Mas não se preocupe porque até o final deste post você terá toda a idéia de um fluxo em mente.

Para as notificações temos um conceito novo.
Primeiro montamos o corpo da notificação, o qual chamamos de mensagem e em seguida criamos uma notificação para esta mensagem.

Com o botão direito do mouse no ícone “Messages”, selecione “New Message”:




Escolha um nome interno, um nome de apresentação e uma descrição.
Na subpasta Body, escolha o título da mensagem (Subject) e o corpo (Body).
O corpo pode ser um texto simples ou uma referência a um atributo criado anteriormente cujo valor será alimentação em uma função antes do envio da notificação correspondente.
A referência ao atributo é feita da seguinte forma: &atributo.
Todos os atributos referenciados na mensagem deverão ser criados ou associados a ela como foi feito com as funções.
Um atributo em uma mensagem pode ter o objetivo de envio (send) ou resposta (respond) de informações.
Esta configuração é feita através da opção “Source” da tela de atributos da mensagem.
Um atributo com objetivo de envio não é atualizável, contém uma informação que será mostrada na mensagem.
Um atributo com o objetivo de resposta armazenará a resposta do usuário destinatário da notificação.

Criada a mensagem e seus respectivos atributos, selecione a opção “New Notification” a partir do botão direito do mouse sobre o ícone “Notification”:

A seguinte tela deverá aparecer:



Escolha um nome interno, um nome de apresentação e uma descrição.
Associe a Mensagem já criada e um Lookup Type já criado se esta notificação resultar em um domínio.
Se esta notificação tiver um tempo limite para ser visualizada/respondida, especifique um “Timeout“ em dias, horas ou minutos na pasta Details.

Conforme já dito anteriormente, quando uma atividade resulta em um domínio, todos os valores destes domínios devem ser mapeados no fluxo.
Da mesma forma, se uma notificação pode resultar em um Timeout pré-determinado, este também deve ser mapeado no fluxo.

Todas as atividades, quando adicionadas a um processo, têm uma opção que descreve seu objetivo:
- Start
- End
- Normal

As atividades (funções) de Start e End devem ter o objetivo Start e End respectivamente.
Mas a atividades comuns do meio do fluxo, bem como as notificações devem ter o objetivo Normal.

As notificações, quando adicionadas a um processo, têm ainda a opção “Perfomer” que indica a quem será destinada a notificação.

Em geral esta opção recebe um atributo do tipo role que será alimentado através de uma função prévia com as roles existentes nas tabelas que compõem o Serviço de Diretório do WorkFlow, descrito na subdivisão “Servidor Oracle” do nosso quadro (página 1).

Quando o destinatário de uma notificação for um conjunto de usuários, a opção “Expand Roles” da tela de notificações determinará se todos os usuários precisam ler/responder a notificação ou basta que o primeiro usuário da lista faça isso para que a notificação seja dada como encerrada.

Após criado seu conjunto de fluxos (Item Type) com subfluxos (processos), você pode salvá-lo em um Arquivo de Definição (.WFT) em seu diretório corrente no seu computador ou diretamente na base de dados.

Diferentemente de triggers, funções e procedures de banco, um fluxo WF não é um objeto único de banco. Ele é um conjunto de informações distribuídas em tabelas.



Escolha um nome interno, um nome de apresentação e uma descrição.
Associe a Mensagem já criada e um Lookup Type já criado se esta notificação resultar em um domínio.
Se esta notificação tiver um tempo limite para ser visualizada/respondida, especifique um “Timeout“ em dias, horas ou minutos na pasta Details.

Conforme já dito anteriormente, quando uma atividade resulta em um domínio, todos os valores destes domínios devem ser mapeados no fluxo.
Da mesma forma, se uma notificação pode resultar em um Timeout pré-determinado, este também deve ser mapeado no fluxo.

Todas as atividades, quando adicionadas a um processo, têm uma opção que descreve seu objetivo:
- Start
- End
- Normal

As atividades (funções) de Start e End devem ter o objetivo Start e End respectivamente.
Mas a atividades comuns do meio do fluxo, bem como as notificações devem ter o objetivo Normal.

As notificações, quando adicionadas a um processo, têm ainda a opção “Perfomer” que indica a quem será destinada a notificação.

Em geral esta opção recebe um atributo do tipo role que será alimentado através de uma função prévia com as roles existentes nas tabelas que compõem o Serviço de Diretório do WorkFlow, descrito na subdivisão “Servidor Oracle” do nosso quadro (página 1).

Quando o destinatário de uma notificação for um conjunto de usuários, a opção “Expand Roles” da tela de notificações determinará se todos os usuários precisam ler/responder a notificação ou basta que o primeiro usuário da lista faça isso para que a notificação seja dada como encerrada.

Após criado seu conjunto de fluxos (Item Type) com subfluxos (processos), você pode salvá-lo em um Arquivo de Definição (.WFT) em seu diretório corrente no seu computador ou diretamente na base de dados.

Diferentemente de triggers, funções e procedures de banco, um fluxo WF não é um objeto único de banco. Ele é um conjunto de informações distribuídas em tabelas.
Entre elas podemos destacar as principais tabelas de estrutura:

- WF_ITEM_TYPES = contem os conjuntos de fluxos
- WF_PROCESSES = contem os processos (subfluxos) criados para um Item Type
- WF_PROCESS_ACTIVITIES = contem as atividades que compoem os processos acima descritos, bem como as suas versões.

E as principais tabelas de execução:

- WF_ITEMS = contem as diversas execuções de um fluxo (processo principal) de um conjunto de fluxos (Item Type)
- WF_ACTIVITY_STATUSES = contem o detalhe (atividades) das execuções acima descritas. Ou seja, data de início e fim, status, etc...
- WF_ITEM_ATTRIBUTE_VALUES = contem os valores dos atributos das execuções acima descritas.

Podemos também criar um “Arquivo de Definição” e carregá-lo na base de dados (alimentando as tabelas de estrutura) através do “WF Loader” descrito na subdivisão “Cliente de Desenvolvimento Workflow” do nosso quadro (página 1).

Quem dará vida ao seu fluxo e controlará a execução de suas atividades será o “WF Engine”, descrito na subdivisão “Servidor Oracle” do nosso quadro (página 1).

A execução de um fluxo WF também é chamada de processo e armazenada nas tabelas do WF como “Item Keys”.
Um “Item Key” deve ser único por “Item Type”.
O WF Engine é um conjunto de packages API que nos permite criar, disparar, suspender, reativar e abortar processos.
Além disso ele também nos permite manipular as atividades, atribuir e ler valores de atributos, etc...

Vamos considerar o conjunto de fluxos abaixo:



Processo: PRINCIPAL



Package TESTE is

--=======================================================================
-- REG_ESTQ_TOXICO :
-- Registra Compra de Material Tóxico
--=======================================================================


Procedure REG_ESTQ_TOXICO ( ItemType in varchar2,
ItemKey in varchar2,
Actid in number,
Funcmode in varchar2,
Resultout out varchar2 ) is

Begin
--=========================================
-- RUN mode - normal process execution
--=========================================


If (funcmode = 'RUN') then

<>

--==========================================
-- Initializa atributos do workflow
--==========================================


Wf_engine.SetItemAttrDate(itemtype => ItemType,
itemkey => ItemKey,
aname => 'DATA_COMPRA',
avalue => sysdate );

resultout := 'COMPLETE:';
return;
End If;

Exception
When others then
Wf_core.context('TESTE',' REG_ESTQ_TOXICO',itemtype,itemkey,actid,funcmode);
raise;
End REG_ESTQ_TOXICO;

--=======================================================================
-- REG_ESTQ_COMUM :
-- Registra Compra de Material Comum
--=======================================================================


Procedure REG_ESTQ_COMUM ( ItemType in varchar2,
ItemKey in varchar2,
Actid in number,
Funcmode in varchar2,
Resultout out varchar2 ) is

Begin
--=========================================
-- RUN mode - normal process execution
--=========================================


If (funcmode = 'RUN') then

<>

--============================================
-- Atribuindo valores a atributos do workflow
--============================================


Wf_engine.SetItemAttrDate(itemtype => ItemType,
itemkey => ItemKey,
aname => 'DATA_COMPRA',
avalue => sysdate );

resultout := 'COMPLETE:';
return;
End If;

Exception
When others then
Wf_core.context('TESTE',' REG_ESTQ_COMUM',itemtype,itemkey,actid,funcmode);
raise;
End REG_ESTQ_COMUM;

--=======================================================================
-- VERIF_TIPO_MATERIAL :
-- Verifica o Tipo de Material a ser comprado
--=======================================================================


Procedure VERIF_TIPO_MATERIAL( ItemType in varchar2,
ItemKey in varchar2,
Actid in number,
Funcmode in varchar2,
Resultout out varchar2 ) is

V_tipo_material varchar2(240);

Begin
--=========================================
-- RUN mode - normal process execution
--=========================================

If (funcmode = 'RUN') then

<>

Select tipo_material
Into v_tipo_material
From tabela
Where condição;

< ... >

resultout := 'COMPLETE:'v_tipo_material;
return;
End If;

Exception
When others then
Wf_core.context('TESTE',
' VERIF_TIPO_MATERIAL',itemtype,itemkey,actid,funcmode);
raise;
End REG_ESTQ_COMUM;

End;

Para criação e disparo de um processo, considere o script abaixo:

--=============================================
--Disparando um processo
--Obs.: Vale lembrar que um Item Key é único!
--=============================================


Declare
v_itemtype varchar2 := 'TESTE';
v_workflowprocess varchar2 := 'PRINCIPAL';
v_itemkey varchar2 := 'T01';

Begin

wf_engine.CreateProcess(ItemType => v_itemtype,
ItemKey => v_itemkey,
Process => v_workflowprocess );

wf_engine.StartProcess( ItemType => v_itemtype,
ItemKey => v_itemkey );
End;


Para suspender um processo:

--=============================================
--Suspendendo um processo
--=============================================


Declare
v_itemtype varchar2 := 'TESTE';
v_workflowprocess varchar2 := 'PRINCIPAL';
v_itemkey varchar2 := 'T01';

Begin

wf_engine.SuspendProcess( ItemType => v_itemtype,
ItemKey => v_itemkey,
Process => v_workflowprocess );

End;

Para reativar um processo:

--=============================================
--Reativando um processo
--=============================================


Declare
v_itemtype varchar2 := 'TESTE';
v_workflowprocess varchar2 := 'PRINCIPAL';
v_itemkey varchar2 := 'T01';

Begin

wf_engine.ResumeProcess( ItemType => v_itemtype,
ItemKey => v_itemkey,
Process => v_workflowprocess );

End;

Para abortar um processo:

--=============================================
--Abortando um processo
--=============================================


Declare
v_itemtype varchar2 := 'TESTE';
v_workflowprocess varchar2 := 'PRINCIPAL';
v_itemkey varchar2 := 'T01';

Begin

wf_engine.AbortProcess( ItemType => v_itemtype,
ItemKey => v_itemkey,
Process => v_workflowprocess );

End;

Para atribuir valores a atributos de um processo:

--=============================================
--Atribuindo valores a atributos de um processo WF
--=============================================

Declare
v_itemtype varchar2 := 'TESTE';
v_itemkey varchar2 := 'T01';

Begin

Wf_engine.SetItemAttrDate(itemtype => v_itemtype,
itemkey => v_itemkey,
aname => 'DATA_COMPRA',
avalue => sysdate );

End;

Para ler valores de atributos de um processo:

--=============================================
--Lendo valores de atributos de um processo WF
--=============================================

Declare
v_itemtype varchar2 := 'TESTE';
v_itemkey varchar2 := 'T01';
v_datacompra date;

Begin

V_datacompra := Wf_engine.GetItemAttrDate(itemtype => v_itemtype,
itemkey => v_itemkey,
aname => 'DATA_COMPRA');

End;

Para consultar os valores de todos os atributos de um processo:

select *
from wf_item_attribute_values
where item_type = 'TESTE'
and item_key = 'T01';

Para acompanhar um processo:

select WPA.process_name
, WPA.activity_name
, to_char(WIAS.begin_date,'dd-mon-yyyy hh24:mi:ss') inicio
, to_char(WIAS.end_date,'dd-mon-yyyy hh24:mi:ss') fim
, wias.*
from wf_item_activity_statuses WIAS
, wf_process_activities WPA
where WIAS.process_activity = WPA.instance_id
and WPA.process_item_type = 'TESTE'
and WIAS.item_type = 'TESTE'
and WIAS.item_key = 'T01'
order by WPA.process_name;

A tabela wf_item_activity_statuses_H guarda todo o histórico da tabela wf_item_activity_statuses.

Por esta razão é preciso definir uma regra para limpeza da mesma.

Para as intalações de Workflow incorporadas ao ERP existe um concurrent responsável por este trabalho:

Purgue Obsolete Workflow (Parâmetros: Item Type, Número de dias de histórico).

Normalmente este Concurrent é programado para rodar diariamente mantendo um histórico de 2 dias.
Apenas os processos concluídos são excluídos.

Na versão mais nova do Workflow (WF Builder 2.6 – tanto incorporado ao ERP 11i quanto Standalone) o acompanhamento de um processo pode ser feito de forma gráfica através da opção WEB Process List do Workflow Monitor, descrita na subdivisão “Cliente do Usuário Final” do nosso quadro (página 1):


Os caminhos pintados em verde são os caminhos já percorridos pelo Background Engine.
Os subprocessos (em geral ícones do tipo engrenagem) podem ser vistos clicando duas vezes no mesmo, ou através dos botões “Zoom In” e “Zoom Out”.

A descrição, status, tipo, e outras informações de cada atividade podem ser vistas nas pastinhas:
- Definition
- Usage
- Status
- Notification (quando se trata de uma)
- Item

Também através do Workflow Monitor é possível visualizar os valores dos atributos através do botão “Attribute” e controlar a vida do processo através dos botões “Abort Process”, “Suspend Process” e “Resume Process”.

No Workflow Monitor, opção WEB Notification List, também descrita na subdivisão “Cliente do Usuário Final” do nosso quadro (página 1) é possível verificar e responder as notificações pendentes:


As notificações podem ainda ser verificadas e respondidas através de e-mail ou através da tela do módulo ERP a que pertencem.



domingo, 3 de maio de 2009

Workflow... o que é isto?

Olá pessoal,

Já nasceu nosso primeiro GO LIVE, e agora rumo ao segundo, vim correndo publicar aqui no blog, sobre workflow, esse processo que muitas vezes já me deixou na dúvida, rs*

Boa leitura!!!

Um fluxo workflow é um conjunto de regras de negócios com a capacidade de mapear e rotear processos e informações de toda a empresa.
Considere como exemplos:
- a geração de uma nota fiscal a partir de um evento de venda
- a aprovação de documentos para qualquer tipo de decisão
- a estruturação de um código contábil a partir de uma transação

O módulo Oracle Workflow pode ser usado tanto em uma instalação Stand Alone ou incorporada ao ERP.
Podemos subdividí-lo em partes conforme o quadro abaixo:




Analisando o quadro da direita para a esquerda, na subdivisão “Cliente de Desenvolvimento do Workflow”, temos:

1. Workflow Builder: ferramenta onde são desenhados e compilados os fluxos.
2. Arquivos de Definição Workflow: arquivos que contêm a especificação dos fluxos desenhados na ferramenta acima.
3. Workflow Definitions Loader: script para leitura do arquivo de especificação descrito acima e gravação das informações na base de dados.

Na subdivisão “Servidor Oracle” temos:

1. Workflow Engine: É ele quem controla a execução de cada atividade do fluxo.
2. Notification System: É quem controla as notificações de um fluxo Workflow.
3. Serviços de Diretório: Conjunto de tabelas utilizadas pelo Notification System para controle das notificações.

No subdivisão “Servidor de Aplicativos” temos:

1. Servidor HTTP Oracle: Servidor de aplicativos (ERP) que interage com a base e consequentemente com toda a estrutura WF.
2. Notification Mailer: É quem faz a interface entre o aplicativo de E-mail e o Notification System, para envio/recepção de notificações via e-mail.


E por último, na subdivisão “Cliente do Usuário Final” temos:

1. Workflow Monitor: Ferramenta WEB disponível na versão 11i para visualização de notificações (WEB Notifications List) e de processos (WEB Process List).
2. Aplicativos de E-mail: Outlook, Lotus Notes, etc..

Um fluxo Workflow é composto de atividades que podem ser classificadas da seguinte forma:

Todo processo (subfluxo) é composto de apenas uma função de Start e uma ou mais funções End, conforme desenho abaixo:

Uma função é uma representação gráfica de um programa (procedure ou function) PLSQL.
As funçôes Start, End entre outras são programas prontos pertencentes a biblioteca (ou conjunto de fluxos) Standard, e código fonte dos mesmos estão na package WF_STANDARD.

Uma função pode ainda ter resultados que desviam o fluxo.
Como exemplo considere o subfluxo abaixo:

E todo o processo pode ter resultados. Considere como exemplo uma alternativa do desenho acima:

Os resultados de uma função, notificação ou processo devem obedecer a um domínio que chamamos de Lookup Type. A cada opção do domínio chamamos de Lookup Code.
Como exemplo considere:


No nosso processo de exemplo, a função “Doc. Aprovado?” resulta no Lookup Type T_SIM_NÃO e o processo como um todo resulta no Lookup Type T_STATUS_COMPRA.
Quando uma atividade resultar em um Lookup Type, todos os Lookup Codes deste devem ser mapeados, ou como alternativa, a opção DEFAULT deve ser mapeada.



Os Lookup Codes PAPELARIA, VESTIARIO e COMESTIVEIS estão mapeados através da opção DEFAULT.
Existe ainda a opção ANY que obriga o fluxo a executar as atividades por ela conectadas ainda que todos os Lookup Codes estejam mapeados.

Um processo pode ainda ter “rendevous“ através das funções “And” e “Or”, conforme abaixo:


A função “Efetuar Compra” só será executada quando as funções “Gerente Analisou Pedido” e “Depto Planej. Foi Informado” resultarem SIM, se encontrando na função “And”.



A função “Efetuar Compra” será executada assim que uma das funções “Loja A foi Contactada?” ou “Loja B foi Contactada?” resultar SIM.

Uma notificação é um tipo de atividade de um processo e, assim como as funções, podem ser simplesmente informativas ou podem requerer resultados:


No desenho acima a notificação “Solicita Aprovação Gerente” resulta no Item Type T_SIM_NÃO.
Já as notificações “Informa Pedido Aprovado” e “Informa Pedido Rejeitado” são apenas informativas.
Uma notificação pode ainda ter um tempo máximo de execução/resposta, o qual chamamos de “Time Out”. Neste caso o resultado “Time Out” também deve ser mapeado.

Uma função pode ter, além de resultados, parâmetros de entrada.
Estes parâmetros devem ser mapeados em variáveis que, no Workflow, chamamos de Atributos.
Os atributos são lidos e atualizados em diversos pontos do fluxo.

No próximo post, vou publicar como os componentes acima ficam listados no Workflow Builder.

segunda-feira, 16 de março de 2009

AIM

Olá pessoal!!!

Tenho recebido muitos, muitos e muitos e-mails, de consultores solicitando material e tenho tido um certo "delay" nas respostas.. rs*

Gente, estou num projeto muito grande e nosso primeiro GO LIVE é para o dia 01 de Abril de 09, então a correria é total, aproveitando inclusive finais de semana e feriados para que tudo saia nos conformes!

O que mais tenho recebido é sobre a metodologia AIM, então decidi deixar a informação para que todos possam acessá-la:


Nesse link está a versão 3.0, junto com um post do Richard Byrom também muito bom.

Hoje é mais usado o AIM Business Flow, que é uma metologia com interface gráfica.

A implantação é realizada diretamente pelo sistema, já testando e fazendo as fases de levantamento de requisitos e Blue Print numa só, sem burocracia.

Também tenho recebido vários comentários sobre o GL, mas sem e-mail para retorno, então não consigo enviar o material!
Abraços a todos, e espero que ajude.
Até o próximo post.

quinta-feira, 12 de fevereiro de 2009

Oracle® Communications Billing and Revenue Management



PRESS RELEASE


Oracle anuncia suporte para 100 milhões de assinantes com Oracle® Communications Billing and Revenue Management

Oracle lidera movimento do mercado em defesa dos padrões de benchmark para aplicativos de tarifação e gestão de receita Redwood Shores, Califórnia (EUA) – fevereiro de 2009

Notícias

· A Oracle recentemente concluiu um extenso exercício de benchmark com base em desempenho e escalabilidade para o Oracleâ Communications Billing and Revenue Management 7.3.1, que demonstrou sua capacidade de fornecer suporte para 100 milhões de assinantes. Uma escalabilidade dessa magnitude é vital para atender às necessidades das maiores prestadoras de serviços de telecomunicações e das demais empresas que buscam consolidar vários aplicativos de tarifação em uma plataforma convergente.

· Além disso, a Oracle vai propor uma série de padrões de benchmark do setor ao TM Fórum, por meio de sua Iniciativa de Gestão de Receita. Esses padrões fornecerão aos prestadores de serviços uma maneira consistente de validar e medir o desempenho e a escalabilidade dos produtos comercializados para cumprir os requisitos de negócios descritos pelo eTOM (Enhanced Telecom Operations Map) e pelo TAM (Telecoms Application Map) do TM Forum com foco particular no segmento de tarifação e gestão de receita.

· Os resultados do benchmark podem ser conhecidos aqui.

Detalhes do benchmark·

Conduzido nos laboratórios da IBM em Beaverton, Oregon (EUA), o benchmark incluiu várias cargas de trabalho, como atividades de avaliação, tarifação, faturamento e atendimento ao cliente, usando vários planos modelados sobre processos de negócios reais do setor de telecomunicações.
· Os resultados demonstraram escalabilidade quase linear de 33 milhões para 66 milhões e para 100 milhões de assinantes. Com 100 milhões de assinantes, o aplicativo processou 176 milhões de registros de detalhamento de chamadas por hora. Além disso, o teste provou que o aplicativo pode tarifar todos os 100 milhões de assinantes em aproximadamente 14 horas, atendendo às necessidades até dos maiores prestadores de serviços do mundo.
· Esses resultados foram quatro vezes mais altos do que qualquer outro alcançado anteriormente e demonstram a capacidade do servidor IBM Power 570 e do aplicativo Oracle Communications Billing and Revenue Management executado no sistema operacional AIX 6.1 para gerenciar e entregar uma carga de trabalho real em um ambiente de produção sofisticado com excelente desempenho.
· O benchmark testou o aplicativo da Oracle executado em um cluster de bancos de dados dos servidores Power 570 equipados com processadores IBM POWER6, sistema operacional IBM AIX versão 6.1 e tecnologia de virtualização IBM PowerVM, hospedado por um subsistema de armazenamento IBM DS8300.

segunda-feira, 26 de janeiro de 2009

Oracle OpenWorld

Olá pessoal, feliz Ano Novo!
Já estava com saudades de voltar a publicar, mas os projetos deste ano, estão demandando um tempo grande, viu!

Como várias pessoas me escreveram sobre o Oracle OpenWorld, resolvi publicar:


As últimas Tecnologias e Aplicativos da Oracle - tudo em um só lugar.


Visitem o Pavilhão de Exposição do Oracle OpenWorld – a maior exposição da América Latina dedicada a tecnologia e soluções de negócios Oracle.

  • Mais de 60 parceiros e veja como as soluções oferecidas por eles complementam a oferta da Oracle.
  • Participe do Oracle DEMOgrounds, onde especialistas Oracle o conduzirão por mais de 50 demonstrações interativas de nossas soluções.
  • Converse com gurus, parceiros e a equipe Oracle.

Com inúmeros pontos de encontro para você fazer contato com profissionais que poderão ajudá-lo em sua carreira, nos negócios e no aprimoramento de suas habilidades em tecnologia.

Horário de Funcionamento do Pavilhão de Exposição Oracle OpenWorld

Terça-feira, 10 de março 11h00 –19h00
Quarta-feira, 11 de março9h00 –19h00
Quinta-feira, 12 de março9h00 –18h00

Garanta seu ingresso gratuito para visitar o Pavilhão de Exposição do Oracle OpenWorld.
Ou entre em contato com a equipe do Oracle OpenWorld: +55 11 3879 6805.



Garanta seu ingresso gratuito para visitar o Pavilhão de Exposição do Oracle OpenWorld.

A Oracle agradece seus patrocinadores:
Conheça as últimas Tecnologias e Aplicativos da Oracle - tudo em um só lugar.