워크플로우 - 전역

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 16분
  • 워크플로우 스크립트 포함은 워크플로우 엔진과 인터페이스하는 메서드를 제공합니다.

    이러한 방법을 사용하여 워크플로우를 조작합니다.

    워크플로우 - broadcastEvent(String contextId, String eventName)

    지정된 이벤트(메시지)를 워크플로우 컨텍스트로 보내 실행 중인 활동에 전달합니다.

    이 방법은 진행하기 전에 일부 작업이 발생할 때까지 기다리는 활동을 사용하도록 설정하는 데 일반적으로 사용됩니다. broadcastEvent 사용에 대한 자세한 내용은 워크플로우 이벤트별 함수를 참조하십시오.

    사용 가능한 OOB 이벤트 목록은 기본 시스템의 워크플로우 이벤트를 참조하십시오.

    표 1. 매개변수
    이름 유형 설명
    contextId 문자열 컨텍스트 ID입니다.
    eventName 문자열 이벤트의 이름입니다.
    표 2. 반환
    유형 설명
    무효
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'resume');
          }

    워크플로우 - 취소(GlideRecord 기록)

    이 기록에서 실행 중인 모든 워크플로우의 활동에 이벤트를 브로드캐스트하여 cancel 이 기록에서 실행 중인 모든 워크플로우를 취소합니다.

    표 3. 매개변수
    이름 유형 설명
    기록 GlideRecord 테이블의 GlideRecord입니다. 이 기록에서 실행되는 모든 워크플로우가 취소됩니다.
    표 4. 반환
    유형 설명
    무효
    //get workflow helper
          var workflow = new Workflow();
          //cancel all the workflows, where current is a task record with a workflow context
          workflow.cancel(current);
          gs.addInfoMessage(gs.getMessage("Workflows for {0} have been cancelled", current.getDisplayValue()));

    워크플로우 - cancelContext(GlideRecord 컨텍스트)

    이 워크플로우 컨텍스트의 활동에 이벤트를 브로드캐스트하여 cancel 이 실행 중인 컨텍스트를 취소합니다.

    표 5. 매개변수
    이름 유형 설명
    컨텍스트 GlideRecord 취소할 실행 중인 컨텍스트의 GlideRecord입니다.
    표 6. 반환
    유형 설명
    무효
    // If a workflow has started for this item, cancel it, where current is a task record with a workflow context
          if ((current.stage == 'Request Cancelled') && current.context 
              && !current.context.nil()) {
          var w = new Workflow();
          var now_GR = new GlideRecord('wf_context');
          
          if (now_GR.get(current.context)) 
              w.cancelContext(now_GR);
          }

    워크플로우 - deleteWorkflow(GlideRecord current)

    기록의 모든 워크플로우를 삭제합니다.

    표 7. 매개변수
    이름 유형 설명
    current GlideRecord 호출자가 모든 워크플로우를 삭제하려는 GlideRecord입니다. 테이블의 기록이 될 수 있습니다.
    표 8. 반환
    유형 설명
    무효
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          wkfw.deleteWorkflow(current);
        

    워크플로우 - fireEvent(GlideRecord, eventRecord, 문자열, eventName, 객체: eventParms)

    입력 기록에서 실행 중인 워크플로우의 명명된 이벤트를 발생시킵니다.

    활동 승인 코디네이터, 타이머, 잠금 등에 사용됩니다.

    표 9. 매개변수
    이름 유형 설명
    이벤트 기록 GlideRecord 워크플로우 실행 활동 [wf_executing] 테이블에 나열된 이벤트 기록입니다.
    eventName 문자열 실행 중인 워크플로우로 보낼 이벤트의 이름입니다.
    eventParms 객체 옵션입니다. 이벤트에서 사용하는 JSON 형식의 매개변수입니다.
    표 10. 반환
    유형 설명
    무효  
    // where current is a task record with a workflow context
      var w = new Workflow(); 
      w.fireEvent(current, 'execute');

    워크플로우 - fireEventById(문자열 eventRecordId, 문자열 eventName)

    기록 ID로 지정된 기록에서 명명된 이벤트를 실행합니다.

    활동 승인 코디네이터, 타이머, 잠금 등에 사용됩니다.

    표 11. 매개변수
    이름 유형 설명
    eventRecordId 문자열 Glide 기록의 sys_id입니다.
    eventName 문자열 실행 중인 워크플로우로 보낼 이벤트의 이름입니다.
    표 12. 반환
    유형 설명
    무효
    var wkfw = new Workflow();
          wkfw.fireEventById('f2400ec10b0a3c1c00ca5bb5c6fae427','Timer');

    워크플로우 - getContexts(GlideRecord 기록)

    지정된 기록에 대한 모든 워크플로우 컨텍스트를 반환합니다.

    표 13. 매개변수
    이름 유형 설명
    기록 GlideRecord 호출자가 모든 워크플로우 컨텍스트의 목록을 원하는 GlideRecord입니다. 호출자가 실행 중인 워크플로우 컨텍스트를 원하는 테이블의 모든 기록이 될 수 있습니다.
    표 14. 반환
    유형 설명
    GlideRecord 워크플로우 컨텍스트 [wf_context] 테이블의 GlideRecord는 지정된 기록의 모든 워크플로우 컨텍스트에 대해 필터링됩니다(실행 중, 취소됨, 완료됨 등의 모든 상태).
    //where current is a task record with a workflow context
    var wkfw = new Workflow();
    var context = wkfw.getContexts(current);
    while (context.next())
      gs.print(context.started);

    워크플로우 - getEstimatedDeliveryTime(String workflowId)

    워크플로우가 완료될 예상 시간을 가져옵니다.

    표 15. 매개변수
    이름 유형 설명
    workflowId 문자열 예상 실행 시간을 가져오기 위한 워크플로우(테이블 wf_workflow)의 Sys_id입니다.
    표 16. 반환
    유형 설명
    문자열 GlideDuration의 값을 표시하거나(예: 3일) 알 수 없는 경우 비워 둡니다.
    var wkfw = new Workflow();
          gs.print(wkfw.getEstimatedDeliveryTime('b99a866a4a3623120074c033e005418f'));

    2일

    워크플로우 - getEstimatedDeliveryTimeFromWFVersion(GlideRecord wfVersion)

    워크플로우 버전의 예상 경과 실행 시간을 가져옵니다.

    표 17. 매개변수
    이름 유형 설명
    wf버전 GlideRecord 호출자가 예상 실행 기간을 원하는 특정 워크플로우 버전의 테이블 wf_workflow_version에 있는 GlideRecord입니다.
    표 18. 반환
    유형 설명
    문자열 GlideDuration의 값을 표시하거나(예: 3일) 알 수 없는 경우 비워 둡니다.
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          var context = wkfw.getContexts(current);
          gs.print(wkfw.getEstimatedDeliveryTimeFromWFVersion(context.wf_version));

    워크플로우 - getReturnValue(문자열 workflowID, 숫자 양, 부울 결과)

    입력 워크플로우 ID에 대한 적절한 워크플로우 반환 값을 가져옵니다. 현재 사용자가 체크 아웃한 워크플로우 또는 최근 날짜의 게시된 워크플로우입니다.

    현재 사용자가 체크 아웃한 워크플로우 또는 최근 날짜의 게시된 워크플로우입니다. 이 방법은 Fuji 릴리스부터 사용할 수 있습니다.

    표 19. 매개변수
    이름 유형 설명
    workflowID 문자열 워크플로우의 sys_id(테이블 wf_workflow)
    금액 번호 금액
    결과 부울 예인 경우 입니다.
    표 20. 반환
    유형 설명
    ??? 값 반환 활동에서 지정한 워크플로우의 반환 값입니다. 값 반환 활동이 없는 워크플로우는 null 값을 반환합니다.
    var wkfw = new Workflow();
          wkfw.getReturnValue('context');
    출력:
    *** Script: b99a866a4a3623120074c033e005418f
          

    워크플로우 - getRunningFlows(GlideRecord 기록)

    입력 기록에 대해 현재 실행 중인 모든 워크플로우 컨텍스트를 가져옵니다.

    입력 기록은 호출자가 실행 중인 워크플로우 컨텍스트를 원하는 테이블의 모든 기록입니다.

    표 21. 매개변수
    이름 유형 설명
    기록 GlideRecord 호출자가 원하는 모든 실행 중인 워크플로우의 목록을 위한 기록의 GlideRecord입니다.
    표 22. 반환
    유형 설명
    GlideRecord 테이블 wf_context의 GlideRecord이며 실행 중인 모든 워크플로우 컨텍스트에 대해 필터링됩니다.
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'pause');
          }

    워크플로우 - getVersion(String workflowID)

    입력 워크플로우 ID에 적합한 워크플로우 버전을 가져옵니다. 현재 사용자가 체크 아웃한 워크플로우 또는 최근 날짜의 게시된 워크플로우입니다.

    현재 사용자가 체크 아웃한 워크플로우 또는 최근 날짜의 게시된 워크플로우입니다.

    표 23. 매개변수
    이름 유형 설명
    workflowID 문자열 워크플로우의 sys_id(테이블 wf_workflow)
    표 24. 반환
    유형 설명
    없음
    var wkfw = new Workflow();
          wkfw.getVersion('b99a866a4a3623120074c033e005418f');

    워크플로우 - getVersionFromName(String workflowName)

    입력 워크플로우 이름에 적합한 워크플로우 버전을 반환합니다.

    자세한 내용은 getVersion()을 참조하십시오.

    표 25. 매개변수
    이름 유형 설명
    workflowName 문자열 워크플로우의 이름(테이블 wf_workflow)
    표 26. 반환
    유형 설명
    무효
    var wkfw = new Workflow();
          wkfw.getVersionFromName('Emergency Change');

    워크플로우 - getWorkflowFromName(String workflowName)

    지정된 워크플로우 이름과 연결된 워크플로우의 sys_id 반환합니다.

    표 27. 매개변수
    이름 유형 설명
    workflowName 문자열 워크플로우의 이름입니다.
    표 28. 반환
    유형 설명
    문자열 전달된 이름과 연결된 워크플로우의 sys_id입니다.
    var wflw = new Workflow();
          gs.print(wflw.getWorkflowFromName('Emergency Change'));

    워크플로우 - hasWorkflow(GlideRecord 기록)

    지정된 기록에 연결된 워크플로우 컨텍스트가 있는지 확인합니다.

    여기에는 실행 중과 완료된 워크플로우 컨텍스트가 포함됩니다.

    표 29. 매개변수
    이름 유형 설명
    기록 GlideRecord GlideRecord 가 정밀 조사 중입니다. 이 GlideRecord 는 모든 테이블에서 가져올 수 있습니다.
    표 30. 반환
    유형 설명
    부울 기록에 연결된 워크플로우가 있는 경우 예; 그렇지 않으면 False를 반환합니다.
    var wkfw = new Workflow();
          gs.print(wkfw.hasWorkflow('f2400ec10b0a3c1c00ca5bb5c6fae427'));

    아니오

    워크플로우 - restartWorkflow(GlideRecord current, 부울 maintainStateFlag)

    현재 승인 및 작업은 재설정하지 않고 새 승인 및 작업을 추가하여 워크플로우에 대한 승인 및 작업을 재계산합니다.

    이 방법을 사용하면 워크플로우에 이미 있는 회사에 대한 현재 승인을 재설정하지 않고도 변경 요청에 회사를 추가하는 등의 작업을 수행할 수 있습니다.

    표 31. 매개변수
    이름 유형 설명
    current GlideRecord 이 워크플로우가 실행 중인 기록의 GlideRecord입니다. 이것은 모든 테이블의 모든 기록에서 가능합니다.
    maintainStateFlag 부울 모든 승인 및 작업을 현재 상태로 유지할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 모든 승인과 작업을 현재 상태로 유지합니다.
    • false: 모든 승인 및 작업 상태를 업데이트합니다.
    표 32. 반환
    유형 설명
    무효

    이 예는 승인 파일이 거부됨에서 요청됨으로 변경되면서 다시 시작되는 워크플로우를 보여줍니다.

    (function(){
      var comment = 'Workflow Restarted - the Approval Field changing from Rejected to Requested';
      var gLock = new GlideRecordLock(current);
        gLock.setSpinWait(50);
      if (gLock.get()) {
        new Workflow().restartWorkflow(current, false);
        current.setDisplayValue('approval_history', comment);
      }
    })

    워크플로우 - runFlows(GlideRecord 기록, 문자열 작업)

    지정된 테이블과 해당 하위 테이블에서 지정된 기록에 대한 모든 워크플로우를 실행합니다.

    스크립트 포함 "SNC - 상위 워크플로우 실행" 및 "SNC - 상위 워크플로우 실행(승인)"에서 샘플 사용량을 확인할 수 있습니다.

    표 33. 매개변수
    이름 유형 설명
    기록 GlideRecord 워크플로우를 실행할 GlideRecord
    운영 문자열 데이터베이스 운영입니다.
    유효한 값은 다음과 같습니다.
    • 삽입
    • 업데이트
    • 삭제
    표 34. 반환
    유형 설명
    무효
    var now_GR = new GlideRecord('wf_test');
    now_GR.addQuery('parent', current.parent);
    now_GR.addQuery('sys_id','!=',current.sys_id);
    now_GR.query();
    while(now_GR.next()) {
        new Workflow().runFlows(now_GR, 'update');
    }

    워크플로우 - startFlow(문자열 workflowId, GlideRecord current, 문자열 작업, 배열 변수)

    지정된 워크플로우를 시작합니다.

    사용 예시는 테이블 sc_req_item의 스크립트 포함 WorkflowScheduler 및 비즈니스 규칙 "Start Workflow"를 참조하십시오.

    표 35. 매개변수
    이름 유형 설명
    workflowId 문자열 시작할 워크플로우의 sys_id입니다. 이 sys_id은 테이블 wf_workflow을 참조합니다.
    current GlideRecord 이 워크플로우에서 현재로 사용할 기록입니다. 일반적으로 이 워크플로우에 대한 워크플로우 속성 필드에서 Table 가져옵니다.
    운영 문자열 에서 수행할 current작업입니다. 가능한 값은 삽입, 업데이트, 삭제입니다.
    변수 배열 워크플로우에 추가할 변수 컬렉션
    ////where current is a task record with a workflow context
          var w = new Workflow();
          var context = w.startFlow(id, current, current.operation(), getVars());

    워크플로우 - startFlowFromContextInsert(GlideRecord 컨텍스트, 문자열 작업)

    비즈니스 규칙 Auto start on context에 대한 도우미 메서드입니다.

    표 36. 매개변수
    이름 유형 설명
    컨텍스트 GlideRecord 새 기록(비즈니스 규칙의 "현재" 기록)의 테이블 wf_context에 있는 GlideRecord입니다.
    운영 문자열 수행 중인 데이터베이스 작업입니다. , update, delete. 중 하나 insert
    표 37. 반환
    유형 설명
    무효
    //where current is a task record with a workflow context
          current.name = current.workflow_version.name;
          current.started_by.setValue(gs.userID());
          
          if (gs.nil(current.id)) {
            var now_GR = new GlideRecord('wf_workflow_execution');
            now_GR.name = current.name;
            now_GR.insert();
          
            current.table = 'wf_workflow_execution';
            current.id = now_GR.sys_id;
          }
          
          var wf = new Workflow();
          wf.startFlowFromContextInsert(current, current.operation())

    워크플로우 - startFlowRetroactive(문자열 workflowId, 번호 retroactiveMSecs, GlideRecord current, 문자열 작업, 배열, ???)

    테이블 task_sla의 비즈니스 규칙 Start Workflow 에 의해 사용됩니다. 이렇게 하면 워크플로우가 시작되고 이 메서드에 대한 추가 인수는 "타이머" 활동에서 일정 기간 동안 워크플로우 실행을 일시 중지하는 데 사용됩니다.

    표 38. 매개변수
    이름 유형 설명
    workflowID 문자열 시작할 워크플로우의 sys_id입니다. 이 sys_id은 테이블 wf_workflow을 참조합니다.
    소급 MSecs 번호 활동 타이머에서 사용하는 지연 시간(밀리초)입니다.
    current GlideRecord 이 워크플로우에서 현재로 사용할 기록의 GlideRecord입니다. 일반적으로 이 워크플로우에 대한 워크플로우 속성 필드에서 Table 가져온 것입니다.
    운영 문자열 수행 중인 데이터베이스 작업입니다. , update, delete. 중 하나 insert
    변수 배열 워크플로우에 추가할 변수의 컬렉션입니다.
    withSchedule ??? 활동 타이머에서 사용하는 일정
    표 39. 반환
    유형 설명
    GlideRecord 테이블의 GlideRecord wf_context 새로 생성된 이 워크플로우 컨텍스트에 대한 삽입된 기록의 GlideRecord입니다.
    // is this a retroactive start?
          ////where current is a task record with a workflow context
          var msecs = new GlideDateTime().getNumericValue() - current.start_time.getGlideObject().getNumericValue();
          
          // treat this as a retroactive workflow start if the SLA started more than 5 seconds ago
          var w = new Workflow();
          if (msecs <= 5000)
            w.startFlow(id, current, current.operation());
          else
            w.startFlowRetroactive(id, msecs, current, current.operation());
          
          // update the record in case the workflow changed some values
          current.update();
          
        

    워크플로우 - 워크플로우()

    워크플로우 클래스에 대한 생성자입니다.

    표 40. 매개변수
    이름 유형 설명
    안 함
    표 41. 반환
    유형 설명
    무효
    var w = new Workflow();