WorkflowModelManager - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 10 min. de leitura
  • A inclusão de script WorkflowModelManager fornece métodos para consultar o modelo de fluxo de trabalho, para retroceder e avançar entre itens de histórico de fluxo de trabalho especificados e para consultar o histórico em busca de informações específicas de atividade e transição.

    A interação com a inclusão de script WorkflowModelManager é por meio do objeto de dados ActivityHistoryRecord. O objeto ActivityHistoryRecord é uma classe interna e só é usado ao interagir com WorkflowModelManager.

    Para adquirir o histórico executado das atividades de fluxo de trabalho:
    var model = new WorkflowModelManager('myContextId');
    var activities = model.getExecutedHistory();
    
    Para gerar a reprodução do fluxo de trabalho:
    var model = new WorkflowModelManager('myContextId');
    model.getExecutedHistory();
    model.playBack();
    

    No momento, a reprodução é necessária para carregar as transições executadas. Isso também desempenhará uma função no retrocesso em um modelo para reverter para uma atividade específica.

    Para ver os detalhes do modelo em cache:
    var model = new WorkflowModelManager('myContextId');
     model.getExecutedHistory();
     model.dump();

    WorkflowModelManager - WorkflowModelManager(cadeia de caracteres contextId)

    Cria um novo objeto WorkflowModelManager (construtor) no contexto especificado.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    contextId Cadeia de caracteres O ID do contexto no qual você deseja que o WorkflowModelManager seja criado.
    Tabela 2. Retorna
    Tipo Descrição
    ActivityHistoryRecord O objeto JavaScript ActivityHistoryRecord solicitado.
    var model = new WorkflowModelManager('MyContextId');

    WorkflowModelManager - getActivityHistoryRecordById(cadeia de caracteres haRecordSysId)

    Recupera a atividade de histórico armazenada em cache pelo wf_history.sys_id fornecido no argumento.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    haRecordSysId Cadeia de caracteres Sys_id do registro desejado do Histórico de atividades [wf_history].
    Tabela 4. Retorna
    Tipo Descrição
    ActivityHistoryRecord Objeto JavaScript ActivityHistoryRecord solicitado.

    Este exemplo mostra como usar o método para obter o registro de atividade de histórico especificado.

    var model = new WorkflowModelManager('a71efa6345550110a86630cf9552f3af');  // The sys_id of the wf_context
    model.getExecutedHistory();
    var current_hist_obj = model.getActivityHistoryRecordById('2b1efa6345550110a86630cf9552f3bc'); // The sys_id of the desired record
    gs.info(JSON.stringify(current_hist_obj));

    Saída:

    
    {
       "sys_id":"2b1efa6345550110a86630cf9552f3bc",
       "index":"3",
       "startTime":1643795456000,
       "endTime":1643795456000,
       "wfaId":"31bf2a05e7c133009a610558d2f6a968",
       "wfaIsParent":{
         
       },
       "parent":"",
       "wfaName":{
         
       },
       "adId":"db8c65aec0a8016501d00259bc7203a4",
       "adName":{
         
       },
       "transitions":[
          {
             "sys_id":"e31efa6345550110a86630cf9552f3c0",
             "ahrId":"2b1efa6345550110a86630cf9552f3bc",
             "to":"39bf2a05e7c133009a610558d2f6a970",
             "from":"31bf2a05e7c133009a610558d2f6a968",
             "rolledBack":"false",
             "rolledBackBy":""
          },
          {
             "sys_id":"e71efa6345550110a86630cf9552f3c0",
             "ahrId":"2b1efa6345550110a86630cf9552f3bc",
             "to":"7dbf2a05e7c133009a610558d2f6a96b",
             "from":"31bf2a05e7c133009a610558d2f6a968",
             "rolledBack":"false",
             "rolledBackBy":""
          }
       ],
       "rolledBackBy":"",
       "ARRIVED":true,
       "NOT_ARRIVED":false,
       "joinFroms":[
         
       ],
       "joinSatisfied":false,
       "rollingBackBy":0
    }

    WorkflowModelManager - getAllTransitionedIntoActivity (descrição do objeto)

    Recupera as atividades de histórico que foram executadas e transicionadas para aquela representada por sys_id no argumento.

    O próximo status é baseado no wf_activity.sys_id associado à atividade representada no haRecord existente como um TO em uma transição associada a qualquer ActivityHistoryRecords executada no histórico do fluxo de trabalho. (É diferente de getPreviousByTransition, que retorna somente as transições TO que vêm antes do haRecord na sequência de execução (por tempo).) O valor de retorno é uma coleção de ActivityHistoryRecords que identifica o argumento haRecord.wfaId como sua atividade TO. Os valores de retorno são baseados em todas as transições na coleção de históricos executada. Para obter a atividade que foi executada antes desta atividade a tempo, use getPreviousByExecutedOrder.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    descrição Objeto Objeto JavaScript ActivityHistoryRecord.
    Tabela 6. Retorna
    Tipo Descrição
    Matriz de objetos Matriz de objetos JavaScript ActivityHistoryRecord.

    WorkflowModelManager - getAllTransitionedIntoActivityId(cadeia de caracteres haRecordSysId)

    Recupera as atividades de histórico que foram executadas e transicionadas para aquela representada por sys_id no argumento. O status next se baseia no wf_activity.sys_id associado à atividade representada no haRecord existente como um TO em uma transição associada a qualquer ActivityHistoryRecords executada no histórico do fluxo de trabalho. (É diferente de getPreviousByTransition, que retorna somente as transições TO que vêm antes do haRecord na sequência de execução (por tempo).) O valor de retorno é uma coleção de ActivityHistoryRecords que identifica o argumento haRecord.wfaId como sua atividade TO.

    O status next se baseia no wf_activity.sys_id associado à atividade representada no haRecord existente como um TO em uma transição associada a qualquer ActivityHistoryRecords executada no histórico do fluxo de trabalho. (É diferente de getPreviousByTransition, que retorna somente as transições TO que vêm antes do haRecord na sequência de execução (por tempo).) O valor de retorno é uma coleção de ActivityHistoryRecords que identifica o argumento haRecord.wfaId como sua atividade TO.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    haRecordSysId Cadeia de caracteres O sys_id do histórico de atividades (tabela wf_history).
    Tabela 8. Retorna
    Tipo Descrição
    Matriz de objetos Matriz de objetos JavaScript ActivityHistoryRecord solicitados.
    var model = new WorkflowModelManager('a143585c3b001000dada82c09ccf3d44');
          model.getExecutedHistory();
          var activity = model.begin;
          gs.print('activity: ' + activity.wfaName + ', transitions: ' + activity.transitions.length);
          while( activity != null){    
              gs.print('activity: ' + activity.wfaName + ', transitions: ' + activity.transitions.length);    
              var parents = model.getAllTransitionedIntoActivity(activity);
              for( var i = 0; i < parents.length; i++ ){
                  gs.print(' ---------------  parent activity: ' + parents[i].wfaName );
                }
               activity = model.getNextByExecutedOrder( activity );
          }
        

    WorkflowModelManager - getExecutedHistory()

    Este é o método de trabalhador que deve ser chamado para inicializar o objeto WorkflowModelManager. No processo de inicialização do objeto WorkflowModelManager, getExecutedHistory() cria e preenche a matriz de objetos de dados activityHistoryRecord (que é um membro da classe WorkflowModelManager ). A maioria dos métodos WorkflowModelManager retorna um subconjunto da matriz activityHistoryRecord. Seu script pode chamar um ou mais dos métodos activityHistoryRecord para realizar outros trabalhos.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    Matriz de cadeias de caracteres Uma matriz ordenada de sys_ids da tabela wf_history. É improvável que o código do cliente use o valor de retorno; ele é mantido internamente neste objeto para uso por chamadas de método subsequentes.
    var model = new WorkflowModelManager('myContextId');
    var activities = model.getExecutedHistory();
    var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');

    WorkflowModelManager - getFinalExecutedActivityList()

    Consulta a tabela wf_history por contexto e recupera todas as atividades executadas no fluxo de trabalho fornecido pelo contexto definido na construção deste objeto.

    Esta função produz uma lista de atividades executadas na ordem exata em que cada atividade passou pelo ActivityManager.java do lado do servidor usando o novo activity_index para forçar a ordem de saída do banco de dados. Em sua, esta chamada não fornecerá a imagem completa; ele precisa carregar e mapear as transições.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    Matriz de objetos Matriz de objetos javascript ActivityHistoryRecord.

    WorkflowModelManager - getFinalExecutedActivityIdList()

    Obtém a lista de wf_history.sys_ids de todas as atividades executadas com sucesso e que não foram revertidas ou ignoradas até o momento em que a função foi chamada.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 14. Retorna
    Tipo Descrição
    Matriz de cadeias de caracteres Matriz de valores wf_history.sys_id para atividades executadas.
    var model = new WorkflowModelManager('ee3e0a053b101000dada82c09ccf3d7c');
          model.getExecutedHistory();
          var finals = model.getFinalExecutedActivityIdList();
          gs.print(' EXECUTION PATH IDs --------------- : '  + finals.length);
          
          for ( var x = 0; x < finals.length; x++ ) {
              gs.print(finals[x] );
          }

    WorkflowModelManager – getNextByExecutedOrder(Object haRecord)

    Recupera a atividade de histórico executada logo após a fornecida no argumento.

    O status next é baseado no índice de atividade que reflete a atividade anterior mais próxima no tempo e não necessariamente a próxima wf_activity mais próxima para a qual a atividade fornecida fez a transição. Para obter a próxima atividade mais próxima que fez a transição para este haRecord passado, use getNextByTransitionOrder(haRecord).
    Nota:
    No processo de montagem da matriz de ordem de execução, são deixados espaços em branco na matriz em que os objetos de histórico foram excluídos. Isso é feito para garantir que o índice na matriz e o activity_index do objeto permaneçam sincronizados. Por esse motivo, todos os objetos que saem da matriz de ordem de execução devem ser testados quanto a nil() e não devem ser considerados como o registro anterior com base apenas no valor de activity_index ou de índice da matriz.
    Tabela 15. Parâmetros
    Nome Tipo Descrição
    haRecord Objeto Objeto JavaScript ActivityHistoryRecord.
    Tabela 16. Retorna
    Tipo Descrição
    Objeto O objeto JavaScript ActivityHistoryRecord solicitado.

    O exemplo a seguir mostra como usar o método getNextByExecutedOrder() para recuperar a atividade de histórico executada após a atividade especificada.

    var model = new WorkflowModelManager('34451ec2cb200200d71cb9c0c24c9c66'); // Sys_id of the workflow context
    model.getExecutedHistory();
    var current_hist_obj = model.getActivityHistoryRecordById('0199483adba52200a6a2b31be0b8f562');// Sys_id of the current activity from wf_history table
    var next_hist_obj = model.getNextByExecutedOrder(current_hist_obj);
    gs.info(JSON.stringify(next_hist_obj));

    Saída:

    {
       "sys_id":"b2c5a06e07e0011094b4fe4f7c1ed049",
       "index":"3",
       "startTime":1640265864000,
       "endTime":1640265864000,
       "wfaId":"64d4e4aa07e0011094b4fe4f7c1ed060",
       "wfaIsParent":{
         
       },
       "parent":"",
       "wfaName":{
         
       },
       "adId":"1ca8d7cf0a0a0b265e9a000c2c08248c",
       "adName":{
         
       },
       "transitions":[
          {
             "sys_id":"bac5a06e07e0011094b4fe4f7c1ed07d",
             "ahrId":"b2c5a06e07e0011094b4fe4f7c1ed049",
             "to":"e0d4acaa07e0011094b4fe4f7c1ed062",
             "from":"64d4e4aa07e0011094b4fe4f7c1ed060",
             "rolledBack":"false",
             "rolledBackBy":""
          }
       ],
       "rolledBackBy":"",
       "ARRIVED":true,
       "NOT_ARRIVED":false,
       "joinFroms":[
         
       ],
       "joinSatisfied":false,
       "rollingBackBy":0
    }
    

    WorkflowModelManager – getNextByExecutedOrderId(cadeia de caracteres haRecordSysId)

    Recupera a atividade de histórico que é armazenada em cache pelo wf_history.sys_id fornecido no argumento e, em seguida, chama getNextByExecutedOrder() com o objeto JavaScript recuperado.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    haRecordSysId Cadeia de caracteres O sys_id do histórico de atividades (tabela wf_history).
    Tabela 18. Retorna
    Tipo Descrição
    Objeto O objeto JavaScript ActivityHistoryRecord solicitado.
    var model = new WorkflowModelManager('7b3e01573b130000dada82c09ccf3dcf');
          model.getExecutedHistory();
          var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
          current.debugDump();
          
          var results = model.getNextByExecutedOrderId(current.sys_id);
          results.debugDump();

    WorkflowModelManager - getNextByTransitionId(cadeia de caracteres haRecordSysId)

    Recupera a atividade de histórico executada logo após a identificada pelo sys_id fornecido no argumento.

    Esta função recupera o registro de histórico em cache associado ao wf_history.sys_id fornecido e, em seguida, chama getNextByTransition. Os valores de retorno são baseados nas transições que ocorreram antes de haRecord ser enviado e não necessariamente nas atividades executadas um pouco antes de haRecord. Para obter a atividade executada antes desta atividade no tempo, use getNextByExecutedOrder.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    haRecordSysId Cadeia de caracteres Sys_id do registro desejado do Histórico de atividades [wf_history].
    Tabela 20. Retorna
    Tipo Descrição
    Matriz de objetos Matriz de objetos JavaScript ActivityHistoryRecord.
    var model = new WorkflowModelManager('7b3e01573b130000dada82c09ccf3dcf');
    model.getExecutedHistory();
    model.playBack();
          
    var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
    current.debugDump();
    var results = model.getNextByTransitionId(current.sys_id);
    gs.print('COMPLETED NEXT' + results.length );
    for(var i = 0; i < results.length; i++){
      results[i].debugDump();
    }

    WorkflowModelManager - getPreviousByExecutedOrder(Object haRecord)

    Recupera a atividade de histórico executada imediatamente anterior à fornecida no argumento.

    O status anterior é baseado no índice de atividade que reflete a atividade anterior mais próxima no tempo e não necessariamente a atividade anterior mais próxima com uma transição válida para esta atividade. Para obter a atividade anterior mais próxima que fez a transição para este haRecord aprovado, use getPreviousByTransition( haRecord).
    Nota:
    No processo de montagem da matriz de ordem de execução, são deixados espaços em branco na matriz em que os objetos de histórico foram excluídos. Isso garante que o índice na matriz e o activity_index do objeto permaneçam em sincronia. Por esse motivo, todos os objetos que saem da matriz de ordem de execução devem ser testados quanto a nil() e não devem ser considerados como o registro anterior com base no activity_index ou no valor do índice da matriz.
    Tabela 21. Parâmetros
    Nome Tipo Descrição
    haRecord Objeto Objeto JavaScript ActivityHistoryRecord
    Tabela 22. Retorna
    Tipo Descrição
    Objeto O objeto JavaScript ActivityHistoryRecord solicitado.

    WorkflowModelManager - getPreviousByExecutedOrderId(cadeia de caracteres haRecordSysId)

    Recupera a atividade de histórico armazenada em cache pelo wf_history.sys_id fornecido no argumento e, em seguida, chama getPreviousByExecutedOrder() com o objeto JavaScript recuperado.

    Tabela 23. Parâmetros
    Nome Tipo Descrição
    haRecordSysId Cadeia de caracteres ID do sistema de histórico de fluxo de trabalho (wf_history.sys_id)
    Tabela 24. Retorna
    Tipo Descrição
    ActivityHistoryRecord O objeto JavaScript ActivityHistoryRecord solicitado.
    var model = new WorkflowModelManager('contextId');
          model.getExecutedHistory();
          var current = model.getActivityHistoryRecordById('wf_history.sys_id');
          current.debugDump();
          
          var results = model.getPreviousByExecutedOrderId(current.sys_id);
          results.debugDump();

    WorkflowModelManager - getPreviousByTransition(Object haRecord)

    Recupera as atividades de histórico executadas imediatamente antes daquela fornecida no argumento.

    O próximo status é baseado no wf_activity.sys_id associado à atividade representada no haRecord existente como um TO em uma transição associada a qualquer ActivityHistoryRecords que vem antes do haRecord na sequência de execução. (É diferente de getAllTransitionedIntoActivity, que retorna todas as transições TO até o haRecord fornecido na sequência de execução.) O valor de retorno é uma coleção de ActivityHistoryRecords que identifica o argumento haRecord.wfaId como sua atividade TO. Os valores de retorno são baseados nas transições que ocorreram antes do envio do haRecord e não necessariamente nas atividades executadas um pouco antes do haRecord no tempo. Para obter a atividade executada antes desta atividade no tempo, use getPreviousByExecutedOrder.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    haRecord Objeto Objeto JavaScript ActivityHistoryRecord.
    Tabela 26. Retorna
    Tipo Descrição
    Matriz de objetos Matriz de objetos JavaScript ActivityHistoryRecord solicitados.

    WorkflowModelManager - getPreviousByTransitionId(cadeia de caracteres haRecordSysId)

    Recupera as atividades de histórico executadas imediatamente antes daquela fornecida no argumento.

    O status next é baseado no wf_activity.sys_id associado à atividade representada no haRecord existente como um TO em uma transição associada a qualquer ActivityHistoryRecords que vem antes do haRecord na sequência de execução. O valor de retorno é uma coleção de ActivityHistoryRecords que identifica o argumento haRecord.wfaId como sua atividade TO. Os valores de retorno são baseados nas transições que ocorreram antes do envio do haRecord e não necessariamente nas atividades executadas um pouco antes do haRecord no tempo. Para obter a atividade executada antes desta atividade no tempo, use getPreviousByExecutedOrder().

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    haRecordSysId Cadeia de caracteres Sys_id do histórico de atividades. Localizado na tabela wf_history.
    Tabela 28. Retorna
    Tipo Descrição
    Objeto Matriz de objetos JavaScript ActivityHistoryRecord solicitados.

    O exemplo a seguir mostra como usar o método getPreviousByTransitionId() para obter objetos ActivityHistoryRecord.

    var w_history = new GlideRecord('wf_history');
    w_history.addQuery('context.id', '089ebdad1b420110c97a40c6cc4bcbf7'); // Pass sys_id of record -> Requested Item / Change Request / Request, etc....
    w_history.query();
    if (w_history.next()) {
        var model = new WorkflowModelManager(w_history.context); // Call sys_id of the workflow context
        model.getExecutedHistory();
        var previousObje_hist_obj = model.getPreviousByTransitionId(w_history.sys_id); // Sys_id of wf_history table
        gs.info(JSON.stringify(previousObje_hist_obj));
    }

    Saída:

    [
      {
        "sys_id": "a40a92950721011094b4fe4f7c1ed05e",
        "index": "1",
        "startTime": 1644255752000,
        "endTime": 1644255758000,
        "wfaId": "28200e2a77873300b473455caa1061cd",
        "wfaIsParent": {},
        "parent": "",
        "wfaName": {},
        "adId": "3961a1da0a0a0b5c00ecd84822f70d85",
        "adName": {},
        "transitions": [
          {
            "sys_id": "060ad6950721011094b4fe4f7c1ed016",
            "ahrId": "a40a92950721011094b4fe4f7c1ed05e",
            "to": "24204e2a77873300b473455caa10611a",
            "from": "28200e2a77873300b473455caa1061cd",
            "rolledBack": "false",
            "rolledBackBy": ""
          }
        ],
        "rolledBackBy": "",
        "ARRIVED": true,
        "NOT_ARRIVED": false,
        "joinFroms": [],
        "joinSatisfied": false,
        "rollingBackBy": 0
      }
    ]