다음을 통해 공유


getActivePath(클라이언트 API 참조)

비즈니스 프로세스 흐름 제어에 표시된 스테이지와 상호 작용하는 메서드를 사용하여 현재 활성 경로에 있는 스테이지 컬렉션을 가져옵니다.

활성 경로는 현재 레코드의 분기 규칙 및 현재 데이터를 기반으로 프로세스 컨트롤에서 렌더링되는 단계를 나타냅니다.

Syntax

var stageCollection = formContext.data.process.getActivePath();

반환 값

형식: 컬렉션입니다.

설명: 분기 규칙의 충족된 조건에 따라 완료된 모든 단계, 현재 활성 단계 및 예측된 미래 단계 집합의 컬렉션입니다. formContext.data.process와 함께 반환되는 단계의 하위 집합일 수 있습니다. getActiveProcess는 프로세스에서 발생한 분기를 기반으로 현재 단계에서 유효한 전환을 나타내는 단계만 포함하기 때문입니다.

Example

Sdk.formOnLoad 함수는 formContext.data.process.getActivePath 메서드를 사용하여 단계 컬렉션을 검색합니다. 그런 다음 샘플 코드는 컬렉션의 forEach 메서드를 사용하여 각 단계를 반복합니다. 그런 다음 이 코드는 이 라이브러리에 정의된 Sdk.writeToConsole 함수를 사용하여 스테이지의 키 속성을 콘솔에 씁니다. 그런 다음, 코드는 getSteps 메서드를 사용하여 각 단계에 대한 단계 컬렉션에 액세스합니다. 마지막으로 샘플은 단계 컬렉션의 forEach 메서드를 사용하여 각 단계에 액세스하고 단계의 키 속성을 콘솔에 씁니다.

비고

샘플 JavaScript 라이브러리의 Sdk.formOnLoad 함수는 폼에 대한 OnLoad 이벤트 처리기로 설정해야 하며 처리기 속성 대화 상자에서 첫 번째 매개 변수로 실행 컨텍스트 전달 확인란을 선택해야 합니다.
또한 이 샘플에서는 formContext.data.process API에서 일부 메서드를 사용하는 방법을 보여 줍니다. 비즈니스 요구 사항을 충족하기 위해 이 API를 사용하는 것은 아닙니다. 코드에서 키 속성 값에 액세스할 수 있는 방법을 보여 주는 용도로만 사용됩니다.

// A namespace defined for SDK sample code
// You should define a unique namespace for your libraries
var Sdk = window.Sdk || {};
(function () {

    // A function to log messages while debugging only
    this.writeToConsole = function (message) {
        if (typeof console != 'undefined')
        { console.log(message); }
    };

    // Code to run in the OnLoad event 
    this.formOnLoad = function (executionContext) {
        // Retrieve the formContext
        var formContext = executionContext.getFormContext();

        // Enumerate the stages and steps in the active path
        var activePathCollection = formContext.data.process.getActivePath();
        activePathCollection.forEach(function (stage, n) {
            Sdk.writeToConsole("Stage Index: " + n);
            Sdk.writeToConsole("Table: " + stage.getEntityName());
            Sdk.writeToConsole("StageId: " + stage.getId());
            Sdk.writeToConsole("Status: " + stage.getStatus());
            var stageSteps = stage.getSteps();
            stageSteps.forEach(function (step, i) {
                Sdk.writeToConsole("    Step Name: " + step.getName());
                Sdk.writeToConsole("    Step Column: " + step.getAttribute());
                Sdk.writeToConsole("    Step Required: " + step.isRequired());
                Sdk.writeToConsole("    ---------------------------------------")
            })
            Sdk.writeToConsole("---------------------------------------")
        });
    };
}).call(Sdk);

샘플이 브라우저에서 실행되면 브라우저의 개발자 도구를 사용하여 콘솔에 기록된 텍스트를 볼 수 있습니다. 예를 들어 이 샘플이 기회 판매 프로세스와 함께 기회 양식에서 실행되면 다음이 콘솔에 기록됩니다.

Stage Index: 0
Table: opportunity
StageId: 6b9ce798-221a-4260-90b2-2a95ed51a5bc
Status: active
    Step Name: Identify Contact
    Step Column: parentcontactid
    Step Required: false
    ---------------------------------------
    Step Name: Identify Account
    Step Column: parentaccountid
    Step Required: false
    ---------------------------------------
    Step Name: Purchase Timeframe
    Step Column: purchasetimeframe
    Step Required: false
    ---------------------------------------
    Step Name: Estimated Budget
    Step Column: budgetamount
    Step Required: false
    ---------------------------------------
    Step Name: Purchase Process
    Step Column: purchaseprocess
    Step Required: false
    ---------------------------------------
    Step Name: Identify Decision Maker
    Step Column: decisionmaker
    Step Required: false
    ---------------------------------------
    Step Name: Capture Summary
    Step Column: description
    Step Required: false
    ---------------------------------------
---------------------------------------
Stage Index: 1
Table: opportunity
StageId: 650e06b4-789b-46c1-822b-0da76bedb1ed
Status: inactive
    Step Name: Customer Need
    Step Column: customerneed
    Step Required: false
    ---------------------------------------
    Step Name: Proposed Solution
    Step Column: proposedsolution
    Step Required: false
    ---------------------------------------
    Step Name: Identify Stakeholders
    Step Column: identifycustomercontacts
    Step Required: false
    ---------------------------------------
    Step Name: Identify Competitors
    Step Column: identifycompetitors
    Step Required: false
    ---------------------------------------
---------------------------------------
Stage Index: 2
Table: opportunity
StageId: d3ca8878-8d7b-47b9-852d-fcd838790cfd
Status: inactive
    Step Name: Identify Sales Team
    Step Column: identifypursuitteam
    Step Required: false
    ---------------------------------------
    Step Name: Develop Proposal
    Step Column: developproposal
    Step Required: false
    ---------------------------------------
    Step Name: Complete Internal Review
    Step Column: completeinternalreview
    Step Required: false
    ---------------------------------------
    Step Name: Present Proposal
    Step Column: presentproposal
    Step Required: false
    ---------------------------------------
---------------------------------------
Stage Index: 3
Table: opportunity
StageId: bb7e830a-61bd-441b-b1fd-6bb104ffa027
Status: inactive
    Step Name: Complete Final Proposal
    Step Column: completefinalproposal
    Step Required: false
    ---------------------------------------
    Step Name: Present Final Proposal
    Step Column: presentfinalproposal
    Step Required: false
    ---------------------------------------
    Step Name: Confirm Decision Date
    Step Column: finaldecisiondate
    Step Required: false
    ---------------------------------------
    Step Name: Send Thank You
    Step Column: sendthankyounote
    Step Required: false
    ---------------------------------------
    Step Name: File De-brief
    Step Column: filedebrief
    Step Required: false
    ---------------------------------------
---------------------------------------

formContext.data.process