Tópico anterior: Interromper um operador em loopPróximo tópico: Indexar o loop leva em conta outras finalidades


Repita elementos indexados de um campo de conjuntos de dados

Em vez de usar as variáveis internas de sistema CurrentLoopIteration e OverallLoopDuration, você pode criar variáveis de loop personalizadas e gerenciá-las. As versões anteriores do CA Process Automation exigiam este método. Por exemplo, você poderia criar uma lógica para calcular a duração desde a hora de início da primeira iteração de um loop até a hora atual para cada loop. Você poderia usar até mesmo um código de execução anterior e posterior para configurar a entrada em um loop, como

Para repetir o ciclo de todos os elementos de um campo de conjuntos de dados indexado, use primeiro um operador Executar o JavaScript do grupo Utilitários para inicializar o elemento CurrentIndex do campo de conjunto de dados como 0. Por exemplo, a expressão a seguir inicializa o elemento CurrentIndex na variável de processo X para 0:

Process.X.CurrentIndex=0;

Para repetir elementos indexados de um campo de conjunto de dados

  1. Conecte o link Saída com êxito do operador Executar o JavaScript ao operador que deseja processar em um loop.
  2. Na paleta Conjunto de dados do operador que você deseja repetir, use a configuração do elemento Tamanho para o campo indexado como o valor Repetir contagem na guia Loop. Por exemplo:
    Process.X.Size.
    
  3. Para aumentar a configuração CurrentIndex após a conclusão de cada iteração do loop, use uma expressão de código de execução posterior. Por exemplo:
    Process.X.CurrentIndex=Process.X.CurrentIndex+1;
    

    Nesse caso, o elemento CurrentIndex é o contador para o loop. É possível usar a configuração CurrentIndex para acessar os elementos do campo indexado em expressões calculadas. Por exemplo:

    Process.X[Process.X.CurrentIndex];
    

    Observação: se você estiver acostumado com linguagens de programação, como o Visual BASIC, que usam matrizes baseada em um, lembre-se de que um campo de conjunto de dados indexado é uma matriz com base zero. Nas matrizes baseadas em um, o primeiro elemento é indexado por 1, e o último elemento é indexado pelo número de elementos. O primeiro elemento de um campo de conjunto de dados indexado é indexado por 0, e o último elemento é indexado por um menos o valor do elemento Tamanho para o campo.

Além de acessar os elementos em um campo de conjunto de dados indexado, é possível rastrear o número de iteração durante o processamento do loop, para outras finalidades. Use uma variável de processo, como process.i para a variável de índice. Em um operador Cálculo do Módulo do intérprete que precede o operador em loop, inicialize a variável de processo para seu valor inicial. Por exemplo, process.i=1. Para aumentar a variável de índice após a conclusão de cada iteração do loop, use uma expressão no código de execução posterior para o operador. Por exemplo:

Process.i=Process.i+1;

Observação: as etapas deste tópico não são mais consideradas necessárias; no entanto, elas são incluídas para referência com código herdado. Se as variáveis de sistema mais recentes forem utilizadas, somente a etapa 2 será aplicada e a etapa 3 será substituída, conforme a seguir. Use a variável CurrentLoopIteration do operador em loop para acessar os elementos do campo indexado nas expressões calculadas. Por exemplo:

Process.X[Process[OpName].CurrentLoopIteration];