ScriptableFlowRunner - 범위 지정됨

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기34분
  • 플로우, 하위 플로우 및 작업 실행에 대한 매개변수를 정의하는 데 사용되는 빌더 객체를 만듭니다. 특정 도메인에서 실행할 플로우를 지정할 수 있습니다. 작성기에서 직접 플로우, 하위 플로우 또는 작업 실행을 시작하고 ScriptableFlowRunnerResult 객체에서 결과를 확인합니다.

    서버 측 스크립트에서 sn_fd 네임스페이스 식별자와 함께 이러한 메서드를 사용합니다.

    API 호출 순서

    다음 순서로 이러한 API를 사용하여 플로우, 하위 플로우 및 작업을 빌드하고 실행합니다.

    1. FlowAPI: 빌더 객체 생성
    getRunner()를 사용하여 ScriptableFlowRunner 빌더 객체를 인스턴스화합니다.
    2. ScriptableFlowRunner: 실행할 내용 지정 워크플로우 스튜디오
    다음 순서대로 이러한 메서드를 사용하여 작성기 패턴을 생성합니다.
    1. action(),datastream(),flow() 또는 subflow() 메서드 중 하나를 사용하여 빌드할 객체 유형을 워크플로우 스튜디오 지정합니다.
    2. addInput(),inDomain() 또는 quick()과 같은 하나 이상의 메서드를 사용하여 실행 매개변수를 지정합니다.
    3. run() 메서드를 사용하여 제공된 매개변수로 작업, 플로우 또는 하위 플로우를 실행하고 ScriptableFlowRunnerResult 객체를 반환합니다.
    3. ScriptableFlowRunnerResult: 실행 세부 정보 검색 워크플로우 스튜디오
    getContextId(),getOutputs()getDomainId()와 같은 하나 이상의 메서드를 사용하여 실행 세부 정보를 봅니다.

    예제

    이 예시는 ScriptableFlowRunner 빌더 객체를 생성하고 이를 사용하여 특정 기록에 대한 승인 작업을 실행하는 방법을 보여줍니다. ScriptableFlowRunnerResult 객체는 실행 인수 및 동작 출력을 캡처합니다.

    
    (function() {
      try {
    
        var inputs = {}; 
    
        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  
    
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();
    
        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       

    ScriptableFlowRunner - action(String scopedActionName)

    실행할 작업의 범위와 이름을 식별합니다.

    표 1. 매개변수
    이름 유형 설명
    scopedActionName 문자열 실행할 작업의 범위와 이름입니다. 예: global.actionName.
    표 2. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예시는 ScriptableFlowRunner 빌더 객체를 생성하고 이를 사용하여 특정 기록에 대한 승인 작업을 실행하는 방법을 보여줍니다. ScriptableFlowRunnerResult 객체는 실행 인수 및 동작 출력을 캡처합니다.

    
    (function() {
      try {
    
        var inputs = {}; 
    
        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  
    
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();
    
        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       

    ScriptableFlowRunner - addInput(문자열 이름, 객체 값)

    단일 입력을 추가합니다. 인수로 전달된 이름이 이미 별도의 입력으로 존재하는 경우 새 값이 기존 값을 대체합니다.

    이 메서드는 단일 입력을 추가합니다. 객체를 만들고 여러 입력을 추가하려면 withInputs() 메서드를 사용합니다.

    표 3. 매개변수
    이름 유형 설명
    이름 문자열 플로우, 하위 플로우 또는 작업에 대한 입력의 이름입니다.
    객체 플로우, 하위 플로우 또는 작업에 대한 입력 값입니다.
    표 4. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예제에서는 table_name라는 단일 입력을 사용하는 작업을 실행합니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .action('global.test_action')
          .addInput('table_name', 'incident')
          .inForeground()
          .run();
    
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();

    출력:

    Flow Designer: TableName
    *** Script: FlowRunnerResult
    Flow Object Name: global.test_action
    Flow Object Type: action
    Domain: null
    Result Time: 2020-06-09 00:10:57
    ContextId: null
    Output count: 1

    ScriptableFlowRunner - asUser()

    빠른 백그라운드 실행을 위해 시스템이 아닌 트리거한 사용자로 플로우를 실행합니다.

    asUser() 메서드와 함께 quick()을 사용하여 플로우가 트리거되면 플로우를 트리거한 사용자가 검색되어 플로우 실행에 사용됩니다.

    표 5. 매개변수
    이름 유형 설명
    없음
    표 6. 반환
    유형 설명
    ScriptableFlowRunner - 범위 지정됨 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.
    이 예제는 ScriptableFlowRunner 빌더 객체를 생성하는 방법을 보여주며, 이를 사용하여 asUser()quick() 메서드를 사용하여 특정 기록에 대한 승인 작업을 실행합니다. ScriptableFlowRunnerResult 객체는 실행 인수 및 동작 출력을 캡처합니다.
    (function() {
        try {
    
            var outputs = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
            .flow('global.stry53225960_flow_asuser_test')
            .inForeground()
            .quick() //Run the flow from a server-side script.
            .asUser() //Run flow with the roles specified in the flow.
            .run(); // Run the action and return a FlowRunnerResult object.
    
        } catch (ex) {
            var message = ex.getMessage();
            gs.error(message);
        }  
    
    })();

    오류

    이러한 오류는 asUser() 메서드를 사용하는 동안 발생할 수 있습니다.
    • asUser()quick()과 함께 사용되지 않으면 스크립트가 오류를 반환합니다.
    • 역할이 정의된 플로우에서 asUser() 가 호출되면 스크립트가 오류를 반환합니다.
    • withRoles() 메서드와 asUser() 메서드가 동시에 호출되면 스크립트가 오류를 반환합니다.

    ScriptableFlowRunner - datastream(String scopedDatastreamName)

    실행할 데이터 스트림 작업의 범위와 이름을 식별합니다.

    데이터 스트림 작업에 대한 자세한 내용은 데이터 스트림 작업 및 페이지 매김을 참조하세요.

    표 7. 매개변수
    이름 유형 설명
    scopedDatastreamName 문자열 실행할 데이터 스트림 작업의 범위와 이름입니다. 예: global.dataStreamActionName.
    표 8. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예시에서는 데이터 스트림 작업을 실행하는 방법을 보여줍니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .datastream('global.test_dsa')
          .inForeground()
          .run();
    
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();

    출력:

    *** Script: FlowRunnerResult
    Flow Object Name: global.test_dsa
    Flow Object Type: datastream
    Domain: null
    Result Time: 2020-06-08 16:41:13
    ContextId: null
    Output count: 0

    ScriptableFlowRunner - flow(String scopedFlowName)

    실행할 플로우의 범위와 이름을 식별합니다.

    표 9. 매개변수
    이름 유형 설명
    scopedFlowName 문자열 실행할 플로우의 범위와 이름입니다. 예: global.flowName.
    표 10. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예시는 메시지를 기록하는 플로우를 실행하는 방법을 보여줍니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .inForeground()
          .run();
    
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();

    출력:

    *** Script: FlowRunnerResult
    Flow Object Name: global.test_flow
    Flow Object Type: flow
    Domain: null
    Result Time: 2020-06-08 16:41:13
    ContextId: null
    Output count: 0

    ScriptableFlowRunner - inBackground()

    플로우, 하위 플로우 또는 작업을 비동기식으로 실행합니다. 플로우 객체가 실행되기 시작하면 스크립트 실행이 즉시 재개됩니다.

    표 11. 매개변수
    이름 유형 설명
    없음
    표 12. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.
    주:
    릴리스부터 Xanadu quick() 메서드를 사용하여 백그라운드에서 작업, 플로우 또는 하위 플로우를 실행하면 실행 ID가 ContextId 값으로 반환됩니다. 플로우 컨텍스트 [sys_flow_context] 테이블에 삽입된 기록이 없으므로 실행 ID는 실제 컨텍스트 기록이 아닙니다. 대신 실행 ID는 비동기 호출을 추적하는 데 사용됩니다.

    이 예시는 백그라운드에서 플로우를 비동기식으로 실행하는 방법을 보여줍니다.

    (function() {
        try {
      
          var result = sn_fd.FlowAPI.getRunner()
            .flow('global.change__unauthorized__review')
            .inBackground()
            .run();
      
          gs.info(result.debug());
      
        } catch (ex) {
          var message = ex.getMessage();
          gs.error(message);
        }
      
      })();

    출력:

    
    [0:00:01.015] Script completed in scope global: script
    ––––––––––––––––––––––––––––––––––––––––––––––––––––--
    Script execution history and recovery available here
    Operation       Table                               Row Count
    insert          sys_flow_context_inputs_chunk       1
    insert          sys_flow_context                    1
    ––––––––––––––––––––––––––––––––––––––––––––––––––––--
    Complex type redefined: FlowDesigner:FDCollection
    Queued flow.fire event in NowMQ for sys_flow_context.sys_id: e0cd6e30b8b602104a8752ad4a9167c8,
    sysevent.sys_id: 34cd6e30dbb60210497c1a48139619c9, with priority 5
    *** Script: FlowRunnerResult
    Flow Object Name: global.change__unauthorized__review
    Flow Object Type: flow
    Domain: null
    Result Time: 2024-06-12 17:54:58
    ContextId: e0cd6e30b8b602104a8752ad4a9167c8
    Output count: 0

    ScriptableFlowRunner - inDomain(String domainId)

    지정된 도메인에서 플로우, 하위 플로우 또는 작업을 실행합니다. 도메인이 존재하고 사용 가능한지 확인합니다.

    표 13. 매개변수
    이름 유형 설명
    domainId 문자열 플로우에 대한 실행 도메인의 sys_id 또는 이름입니다.
    표 14. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예시는 ScriptableFlowRunner 빌더 객체를 생성하고 이를 사용하여 특정 기록에 대한 승인 작업을 실행하는 방법을 보여줍니다. ScriptableFlowRunnerResult 객체는 실행 인수 및 동작 출력을 캡처합니다.

    
    (function() {
      try {
    
        var inputs = {}; 
    
        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  
    
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();
    
        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       

    ScriptableFlowRunner - inForeground()

    플로우, 하위 플로우 또는 작업을 동기식으로 실행합니다. 플로우 객체가 실행되는 동안 스크립트 실행이 일시 중지됩니다.

    주:
    이 메서드는 조건을 대기하기 위해 작업을 일시 중지하는 것을 지원하지 않습니다. 승인 요청 또는 조건 대기와 같은 대기 조건 동안 일시 중지하는 단계는 지원되지 않습니다.
    표 15. 매개변수
    이름 유형 설명
    없음
    표 16. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예시는 ScriptableFlowRunner 빌더 객체를 생성하고 이를 사용하여 특정 기록에 대한 승인 작업을 실행하는 방법을 보여줍니다. ScriptableFlowRunnerResult 객체는 실행 인수 및 동작 출력을 캡처합니다.

    
    (function() {
      try {
    
        var inputs = {}; 
    
        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  
    
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();
    
        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       

    ScriptableFlowRunner - quick()

    실행 상세 정보나 기타 관련 기록을 생성하지 않고 서버 측 스크립트에서 플로우, 하위 플로우, 작업 또는 데이터 스트림 작업을 동기 또는 비동기식으로 실행합니다. 기록 보관 오버헤드를 제거하여 성능을 향상시킵니다. 이 API를 사용하여 프로덕션 환경에서 대용량 처리 속도(예: 초당 여러 번 실행)의 속도를 높입니다.

    보고 및 기록 생성됨
    이 방법은 설정에 관계 없이 워크플로우 스튜디오 실행 상세 정보 및 컨텍스트 기록을 생성하지 않습니다.
    대기 조건 지원
    이 메서드는 조건을 대기하기 위해 작업 또는 플로우를 일시 중지하는 것을 지원하지 않습니다. 승인 요청, 조건 대기 또는 일정 기간 대기와 같은 대기 조건에 대해 일시 중지하는 작업, 플로우 논리 및 단계는 지원되지 않습니다.
    MID Server 지원
    이 메서드는 MID 서버에서 실행할 작업 또는 플로우 일시 중지를 지원하지 않습니다. 이러한 제한사항에는 MID 서버에서 실행하기 위해 작업을 일시 중지하는 데이터 스트림 작업 전처리 스크립트가 포함됩니다.
    데이터 스트림 작업 지원
    이 메서드는 MID 서버에서 전처리 스크립트를 실행하기 위해 데이터 스트림 작업을 일시 중지하는 것을 지원하지 않습니다.
    플로우 우선순위 지원
    이 방법은 플로우 우선순위 설정을 지원합니다. 지정된 플로우 우선순위에서 플로우가 실행됩니다.
    표 17. 매개변수
    이름 유형 설명
    없음
    표 18. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.
    주:
    릴리스부터 Xanadu quick() 메서드를 사용하여 백그라운드에서 작업, 플로우 또는 하위 플로우를 실행하면 실행 ID가 ContextId 값으로 반환됩니다. 플로우 컨텍스트 [sys_flow_context] 테이블에 삽입된 기록이 없으므로 실행 ID는 실제 컨텍스트 기록이 아닙니다. 대신 실행 ID는 비동기 호출을 추적하는 데 사용됩니다.

    이 예시는 관련 기록을 생성하지 않고 플로우를 실행하는 방법을 보여줍니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.change__unauthorized__review')
          .inBackground()
          .quick()
          .run();
    
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();

    출력:

    
    Complex type redefined: FlowDesigner:FDCollection
    Queued flow.run.quick event in NowMQ for sys_flow_context.sys_id: d81781ec57801110403e8f90ac94f90e,
    sysevent.sys_id: 48abe270dbf20210497c1a4813961908, with priority 5
    *** Script: FlowRunnerResult
    Flow Object Name: global.change__unauthorized__review
    Flow Object Type: flow
    Domain: null
    Result Time: 2024-06-12 17:45:37
    ContextId: 08abe2706cf202107b7d3b283f7ee108
    Output count: 0

    ScriptableFlowRunner - 실행()

    지정된 매개변수를 사용하여 플로우, 하위 플로우 또는 작업을 실행합니다.

    표 19. 매개변수
    이름 유형 설명
    없음
    표 20. 반환
    유형 설명
    ScriptableFlowRunnerResultsScoped 작업, 플로우 또는 하위 플로우의 워크플로우 스튜디오 실행 상세 정보를 포함하는 객체입니다.

    이 예시는 ScriptableFlowRunner 빌더 객체를 생성하고 이를 사용하여 특정 기록에 대한 승인 작업을 실행하는 방법을 보여줍니다. ScriptableFlowRunnerResult 객체는 실행 인수 및 동작 출력을 캡처합니다.

    
    (function() {
      try {
    
        var inputs = {}; 
    
        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  
    
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();
    
        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       

    ScriptableFlowRunner - subflow(String scopedSubflowName)

    실행할 하위 플로우의 범위와 이름을 식별합니다.

    표 21. 매개변수
    이름 유형 설명
    scopedSubflowName 문자열 실행할 하위 플로우의 범위와 이름입니다. 예: global.subflowName.
    표 22. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예에서는 메시지를 기록하는 하위 플로우를 실행하는 방법을 보여줍니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .subflow('global.output_test')
          .inForeground()
          .run();
       
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();

    출력:

    record-watcher asynchronous tracking complete - time: 1 ms. Executed responders: 1 
    record-watcher asynchronous tracking complete - time: 1 ms. Executed responders: 1 
    *** Script: FlowRunnerResult
    Flow Object Name: global.output_test
    Flow Object Type: subflow
    Domain: null
    Result Time: 2024-08-02 22:52:08
    ContextId: b2dxx659bebf01101d72200x503x19pr
    Output count: 2

    ScriptableFlowRunner - timeout(Number timeout)

    플로우, 하위 플로우 또는 작업 실행에 대한 시간 제한을 설정합니다.

    표 23. 매개변수
    이름 유형 설명
    시간 제한 번호 시간 제한(밀리초)입니다.
    표 24. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예시에서는 플로우를 실행하는 방법을 보여주고 제한 시간을 2분으로 설정합니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .inForeground()
          .timeout(120000)
          .run();
    
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })(); 

    출력:

    Flow Designer: Cloning a new session to run as as user id: [user_name] from original user session: [user_name]
    Flow Designer: Reverting cloned session to original user session: [user_name]
    *** Script: FlowRunnerResult
    Flow Object Name: global.test_flow
    Flow Object Type: flow
    Domain: null
    Result Time: 2020-06-08 18:22:35
    ContextId: null
    Output count: 0

    ScriptableFlowRunner - validateInputs(부울 validateInputs)

    메서드 입력에 예기치 않은 값이 있을 때 오류를 발생시키고 ScriptableFlowRunner 클래스가 실행되지 않도록 합니다. 이 메서드는 모든 ScriptableFlowRunner 호출에 대해 기본적으로 true로 설정됩니다.

    표 25. 매개변수
    이름 유형 설명
    validateInputs를 입력합니다. 부울 ScriptableFlowRunner 메서드 입력의 유효성을 검사할지 여부를 나타내는 플래그입니다.
    유효한 값은 두 가지입니다.
    • true: 입력에 예기치 않은 값이 있으면 오류가 발생하고 스크립트 실행을 중지합니다.
    • false: 예기치 않은 값으로 스크립트 실행을 허용합니다.

    기본값: True

    표 26. 반환
    유형 설명
    안 함

    이 예시는 메서드 입력 값을 확인하지 않고 플로우를 실행하는 방법을 보여줍니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .inForeground()
          .validateInputs(false)
          .run();
    
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();

    출력:

    *** Script: FlowRunnerResult
    Flow Object Name: global.test_flow
    Flow Object Type: flow
    Domain: null
    Result Time: 2020-06-08 16:41:13
    ContextId: null
    Output count: 0

    ScriptableFlowRunner - withConnectionAliasOverride(String aliasName, String overrideName)

    플로우, 작업 또는 하위 플로우와 연결된 별칭을 재정의 연결 및 자격 증명 합니다. 기본 상위 별칭을 하위 별칭으로 재정의할 수 있습니다.

    별칭 재정의에 연결 및 자격 증명 대한 자세한 내용은 다중 연결 지원을 참조하세요.

    표 27. 매개변수
    이름 유형 설명
    parentAliasSysID 문자열 재정의하려는 상위 별칭의 sys_id입니다.
    overrideAliasSysID 문자열 하위 별칭의 sys_id으로, 플로우, 하위 플로우 또는 작업을 실행할 때 사용할 별칭입니다.
    표 28. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    이 예시에서는 플로우와 연결된 기본값이 아닌 다른 별칭을 사용하여 플로우를 실행하는 방법을 보여줍니다.

    (function() {
      try {
    
        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .withConnectionAliasOverride('sn_original_alias.spoke', 'x_new_alias.spoke')
          .inForeground()
          .run();
    
        gs.info(result.debug());
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();

    ScriptableFlowRunner - withInputs(맵 입력)

    입력 컬렉션을 추가합니다. 이름-값 쌍 중 하나에 있는 이름이 이미 있는 경우 새 값이 기존 값을 대체합니다.

    표 29. 매개변수
    이름 유형 설명
    입력 객체 플로우, 하위 플로우 또는 작업에 대한 입력을 정의하는 이름-값 쌍을 포함하는 맵 객체입니다.
    표 30. 반환
    유형 설명
    ScriptableFlowRunner 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.

    입력 객체를 만들고 withInputs() 메서드에 값을 전달합니다.

    
    (function() {
      try {
    
        var inputs = {}; 
    
        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  
    
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();
    
        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       

    ScriptableFlowRunner - withRoles()

    플로우를 트리거한 사용자로 플로우를 실행하거나 에 추가된 워크플로우 스튜디오역할로 플로우를 실행합니다.

    withRoles() 메서드와 함께 quick()을 사용하여 플로우가 트리거되면 플로우 속성에 정의된 역할이 검색되고, 플로우 실행 중에 전달되며, 역할과 함께 플로우가 실행됩니다.

    표 31. 매개변수
    이름 유형 설명
    없음
    표 32. 반환
    유형 설명
    ScriptableFlowRunner - 범위 지정됨 작업, 플로우 또는 하위 플로우를 워크플로우 스튜디오 실행하는 데 사용되는 빌더 객체입니다.
    이 예제에서는 ScriptableFlowRunner 빌더 객체를 생성하는 방법을 보여주며, 이를 사용하여 withRoles()quick() 메서드를 사용하여 특정 기록에 대한 승인 작업을 실행합니다. ScriptableFlowRunnerResult 객체는 실행 인수 및 동작 출력을 캡처합니다.
    (function() {
        try {
    
            var outputs = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
            .flow('global.stry53225960_flow')
            .inForeground()
            .quick() //Run the flow from a server-side script.
            .withRoles() //Run the flow as the user who triggered the flow.
            .run(); // Run the action and return a FlowRunnerResult object.
    
        } catch (ex) {
            var message = ex.getMessage();
            gs.error(message);
    
        }  
    
    })();

    오류

    이러한 오류는 withRoles() 메서드를 사용하는 동안 발생할 수 있습니다.
    • withRoles()quick()과 함께 사용되지 않는 경우 연산을 수행하지 않습니다.
    • 역할이 없는 플로우에서 withRoles() 가 호출되면 스크립트가 오류를 반환합니다.
    • withRoles() 메서드와 asUser() 메서드가 동시에 호출되면 스크립트가 오류를 반환합니다.