Um dos recursos interessantes é a possibilidade de monitorar o sistema de arquivos pela chegada de novos arquivos e poder processá-los de acordo. A versão nova do File Adapter que vem junto com o Oracle Soa Suite possui esse recurso. Nesse exemplo, vamos criar um projeto que lê os arquivos de um diretório, processa e move para uma pasta.
O primeiro passo é criar um projeto SOA e arrastar o File Adapter para o composite.xml. Na tela de configuração do File Adapter, clique em Next. Dê um nome para o File Adapter e clique em Next. Na próxima tela, deixe marcado para definir o WSDL posteriormente e clique em Next. Escolha a opção Read file, deixa as opções padrões e clique em Next. Especifique os diretório de leitura e marque as opções: "Process files recursively", "Archive processed files (especifique um diretório)" e "Delete files after successful retrieval".
Clique em Next. Especifique quais arquivos serão processados, se quiser processar todos os arquivos inclusos na pasta coloque "*". Clique em Next. Especifique o tempo de verificação se foram inclusos novos arquivos no diretório e clique em Next. Na próxima tela, especifique o formato alvo. Para fazer essa etapa corretamente, leia o post sobre formatos de arquivo com File Adapter. Clique em Next e Finish.
Você irá verificar que o File Adapter foi criado do lado esquerdo do composite.xml. Isso ocorre porque é uma conexão "inbound", ou seja, o File Adapter que irá invocar um serviço. Essa operação irá ocorrer assim que um arquivo for inserido na pasta especificada anteriormente e o tempo de pooling tiver ocorrido. Agora é só criar um serviço para ser invocado à partir do File Adapter.
Arraste um BPEL para o composite.xml, especifique um nome e no combobox de template, selecione a opção "Base on a WSDL". Em WSDL URL selecione o WSDL do File Adapter criado e clique em OK.
No composite.xml você deverá dois WSDLs definidos como Exposed Services, conecte o que está faltando para o BPEL criado. Edite o BPEL para a sua necessidade. Como você poderá observar, o BPEL será One-way, já que o File Adapter não espera retorno.
Faça o deploy da aplicação e insira um arquivo na pasta alvo. A invocação do BPEL será automática. Você pode monitorar o processamento de arquivos no Enterprise Manager.
Thiago,
bom dia. Tenho uma dúvida. Se eu tiver vários arquivos na mesma pasta identificados pela data e hora, tem alguma maneira do FileAdapter respeitar esta data e hora, pegando para processar o arquivo mais antigo primeiro ?
At.,
André