Dicas para Configurar Definições de Fluxo de Jobs em Lote
Configurando fluxos de tarefas para evitar problemas de fluxo aberto
Os fluxos de tarefas devem ser sempre configurados de forma que o fluxo "termine" apenas quando todas as etapas do fluxo forem concluídas, configurando-o na condição de etapa "fim do fluxo" ou definindo as interdependências entre as etapas. Isso garante que a execução do fluxo não pare no meio do fluxo.
As tarefas que passaram da meia-noite devem ter a mesma data comercial que outras tarefas em um fluxo
Em situações nas quais um fluxo é executado muito longo e alguns trabalhos passaram da meia-noite, todos os trabalhos do fluxo podem ser definidos para serem executados com a mesma data comercial. Crie um programa do scheduler para definir o valor da opção do programa de data comercial como 'SYSDATE' e o escopo do fluxo de tarefas definido como o nome do fluxo. Use este programa do scheduler como a etapa inicial no fluxo antes de outras etapas.
Como dividir um fluxo grande em vários fluxos menores
Se a Definição do Fluxo de Jobs em Lote for muito longa com muitas tarefas a serem executadas, ela poderá ser dividida em vários fluxos menores, de forma que um fluxo seja executado após o outro. Isso pode ser feito usando um novo controle batch K1-EXDJS (Executar Fluxo de Tarefas do DBMS). Crie um Programa do Scheduler para cada subfluxo, especifique o controle de lote como K1-EXDJS, nome do parâmetro de lote como o nome do subfluxo. Use este programa do scheduler como uma última etapa no fluxo anterior antes que ele termine para que, assim que as etapas do fluxo anterior forem concluídas, a última etapa iniciará o novo subfluxo. Por exemplo, se você tiver um fluxo com os jobs A,B,C,B,E,F,G,H. Divida o fluxo no fluxo 1 com A, B, C, D e fluxo 2 com E, F, G, H. Crie um Programa do Scheduler com controle batch K1-EXDJS, nome do parâmetro de lote como fluxo 2. No fluxo 1 após a etapa D, defina uma nova etapa que chame o Programa do Scheduler criado. Observe que não há dependências entre subfluxos. Isso significa que cada subfluxo seria iniciado pelo novo controle de lote para ser executado por conta própria e o fluxo que chamou o subfluxo não aguarda a conclusão. Portanto, essa configuração deve ser usada apenas com as etapas executadas em paralelo.
Como configurar fluxos para serem executados apenas nas datas do calendário de trabalho do OUAF
Para configurar a Definição do Fluxo de Jobs em Lote para ser executada apenas em dias úteis, use o controle batch K1-CWCEL. Crie um Programa do Scheduler com este controle de batch, parâmetro de lote Calendário de Dias Úteis definido como calendário de trabalho obrigatório. Verifique se Executar no Dia Útil está definido como verdadeiro. Use este Programa do Scheduler como a primeira etapa a ser executada no fluxo. Defina o fluxo para terminar se esta etapa falhar. Defina a etapa subsequente do fluxo a ser executada se essa etapa for bem-sucedida. Quando o fluxo é executado em um dia programado, a primeira etapa verifica se o dia cai em um dia útil de acordo com o calendário de trabalho. Se o dia não for um dia útil, a execução do fluxo terminará, garantindo que o fluxo seja executado somente nas datas desejadas.
Fluxos de tarefas que verificam a existência de um arquivo
Nas situações em que um fluxo de tarefas precisa verificar se um arquivo foi carregado/criado por outro processo antes de continuar com o restante do processamento, um programa em especial "K1-OSCFE" está disponível. Uma etapa pode ser introduzida referindo-se a esse novo programa em lote com parâmetro especificando qual intervalo de tempo de armazenamento de objetos deve ser verificado e também o status para retornar se o arquivo não existir. Esta etapa pode ser adicionada antes da etapa que tem dependência de verificar a existência do arquivo e continuar ou não o processamento.
Tratando interdependências de fluxos de tarefas
-
O novo programa em lote aceita dois parâmetros de nome de script e dados de script. Escreva um script CM que verifique se um fluxo de tarefas dependente está em execução. Se estiver em execução, o script deverá terminar com um erro.
- No fluxo de jobs em lote que precisa ser pausado/reter se outro fluxo de jobs em lote estiver em execução, adicione uma nova etapa como a primeira etapa do fluxo de tarefas. Use o novo programa em lote na primeira etapa (definindo o script CM como o parâmetro de entrada) ou crie um programa do scheduler se o controle em batch for usado em muitos fluxos de tarefas com scripts de serviço CM diferentes como parâmetros de entrada. Defina o nome do fluxo de tarefas dependente como o parâmetro de dados de script.
- Atualize a condição da etapa "Fim do Fluxo" de forma que, se a primeira etapa falhar, finalize o fluxo. Isso garante que o fluxo de jobs em lote não seja executado se o outro fluxo de tarefas dependente já estiver em execução.
- Atualize a(s) etapa(s) a ser(em) executada(s) após a primeira etapa, a condição da etapa que, se a primeira etapa for bem-sucedida somente, essas etapas deverão continuar.
Observação: o programa em lote especial não está restrito apenas a essas situações. Ele pode ser usado em muitos cenários personalizados gravando o script CM correspondente que termina se uma situação desejada for atendida.