Mostrando postagens com marcador Oracle Workflow Builder. Mostrar todas as postagens
Mostrando postagens com marcador Oracle Workflow Builder. Mostrar todas as postagens

segunda-feira, 13 de abril de 2009

Dicas de Workflow - Parte 2

Olá pessoal,

Muitas vezes quando vamos abrir um Workflow dá erro, e o mais legal disso é que na maioria das vezes este erro não tem nada haver com o nosso Workflow.





O porquê acontece esse erro já não sei, mas sei a solução. Roda os comandos abaixo e pronto! Não dará mais o erro.


update wf_activities_tl
set display_name = rtrim(display_name)
where display_name<>rtrim(display_name)
/
update wf_activities_tl
set description = rtrim(description)
where description<>rtrim(description)
/
commit
/
update wf_item_types_tl
set display_name = rtrim(display_name)
where display_name<>rtrim(display_name)
/
update wf_item_types_tl
set description = rtrim(description)
where description<>rtrim(description)
/
commit



Outra dica legal é pra quando você executa o Workflow e da algum erro no momento de execução, pra pegar esse erro é só rodar a query mágica abaixo passando o ITEM_TYPE e o ITEM_KEY do seu Workflow:


SELECT WPA.PROCESS_NAME
, WPA.ACTIVITY_NAME
, WIAS.BEGIN_DATE
, WIAS.END_DATE
, WIAS.*
FROM WF_ITEM_ACTIVITY_STATUSES WIAS
, WF_PROCESS_ACTIVITIES WPA
WHERE WIAS.PROCESS_ACTIVITY = WPA.INSTANCE_ID
AND WIAS.ITEM_TYPE = 'XXODMAIL'
AND WIAS.ITEM_KEY = '1'



Abs a todos,

terça-feira, 7 de abril de 2009

Dicas de Workflow - Parte 1

Pessoal,

Hoje estou afim de falar sobre Workflow, então vou passar algumas dicas básicas para quem esta começando mexer com essa ferramenta da Oracle que quando funciona é "Lindo Demais", mas como nada é perfeito ela é cheio de bugs.

A primeira dica é onde se cadastra o Workflow no EBS, ou melhor, onde não se cadastra... Estranho isso, né? Quando se navega pela responsabilidade do "Administrador do Workflow" se encontra um monte de Workflow, mas o engraçado disso é que não tem uma tela para cadastrá-los. As informações que aparecem na tela vêm do banco de dados quando se cria um Workflow no "Oracle Workflow Builder".

"Oracle Workflow Builder" é a ferramenta onde se modela e desenha o fluxo do Workflow.

Quando se entra no "Oracle Workflow Builder" e se loga em um banco de dados vai aparecer todos os Workflows associados ao usuário que você logou. Procure sempre fazer isso usando o usuário APPS.

Para disparar ou 'startar' um Workflow geralmente usa uma trigger ou um concurrent, depende da necessidade. Para fazer disparar o seu Workflow é preciso um código PL/SQL simples com apenas dois procedimentos:

- WF_ENGINE.CREATEPROCESS
Esse procedimento serve para criar/associar um ITEM_TYPE (nome interno do Workflow) ao seu processo inicial (um Workflow pode ter vários processos dentro dele) e dar o seu ITEM_KEY (um número de controle, tipo um ID).

- WF_ENGINE.STARTPROCESS
Executa o Workflow que criou com o comando acima.

Exemplo:


DECLARE
ITEM_TYPE VARCHAR2(30);
ITEM_KEY VARCHAR2(240);
BEGIN
ITEM_TYPE := 'XXSENDMAIL';
ITEM_KEY := '10';
WF_ENGINE.CREATEPROCESS(ITEM_TYPE,ITEM_KEY,'XX_SENDMAIL_P');
WF_ENGINE.STARTPROCESS(ITEM_TYPE,ITEM_KEY);
END;


Onde:
- 'XXSENDMAIL' é o ITEM_TYPE.
- '10' é o ITEM_KEY.
- 'XX_SENDMAIL_P' é nome interno do processo inicial do Workflow.

Um procedimento muito usando quando se dispara um Workflow é passar parâmetros para ele, ou melhor, setar seus atributos. Existe apenas uma restrição para setar os atributos do Workflow, só podem setar um atributo se o processo já estiver criado, do resto pode-se seta-lo em qualquer lugar. O comando para setar um atributo é:

WF_ENGINE.SETITEMATTRTEXT(ITEM_TYPE,ITEM_KEY,'XX_FROM_A','RIQUE');

Onde:
- 'XX_FROM_A' é o nome interno do atributo.
- 'RIQUE' é o valor que estou setando o atributo.

Daqui alguns dias passo mais algumas dicas legais de Workflow.


Abs