다음을 통해 공유


샘플: Xrm.Page.data.process.getEnabledProcesses

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

이 샘플에서는 Xrm.Page.data.process.getEnabledProcesses 메서드를 사용하여 엔터티에 대해 활성화된 프로세스에 대한 정보를 검색하는 방법을 보여줍니다.

요구 사항

JavaScript 라이브러리의 Sdk.formOnLoad 함수 샘플은 양식에 대한 OnLoad 이벤트 처리기로 설정해야 합니다.

보여 주기

Xrm.Page.data.process.getEnabledProcesses 메서드는 현재 사용자가 전환에 사용할 수 있는 엔터티에 대해 활성화된 프로세스에 대한 정보를 반환합니다.Xrm.Page.data.process.setActiveProcess 메서드를 사용하려면 getEnabledProcesses 메서드를 사용하여 설정할 수 있는 모든 유효한 프로세스에 대한 정보를 얻을 수 있습니다.

이 샘플에서는 the Xrm.Page.data.processsAPI에 있는 메서드 중 일부의 사용을 보여줍니다. 이 API를 사용하여 비즈니스 요구 사항을 충족하는 것을 나타내지 않으며 다만 주요 속성 값이 코드에서 액세스하는 방법을 보여주는 것입니다.

예제

Sdk.formOnLoad 함수는 Xrm.Page.data.process.getEnabledProcesses 메서드를 사용하여 엔터티에 대해 활성화된 비즈니스 프로세스 흐름에 대한 정보를 비동기적으로 검색합니다. 샘플은 첫 번째 매개 변수로 익명 함수를 전달합니다. 이 함수는 데이터가 반환되고 익명 함수에 매개 변수로 데이터가 전달될 때 비동기적으로 실행됩니다.

활성화된 비즈니스 프로세스 흐름에 대한 정보는 프로세스의 Id가 속성의 이름이고 비즈니스 프로세스 흐름의 이름이 속성의 값인 사전 개체로 제공됩니다. 샘플 코드는 이 정보를 처리하고 나중에 실행되는 논리에서 평가할 전역 Sdk.enabledProcesses 배열에 값을 설정합니다. 샘플은 Sdk.enabledProcesses 배열을 사용하고 Sdk.writeToConsole 함수를 사용하여 값을 순환시켜 검색된 비즈니스 프로세스 흐름에 대한 정보를 콘솔에 기록합니다.

//A namespace defined for SDK sample code
//You should define a unique namespace for your libraries
var Sdk = window.Sdk || { __namespace: true };
(function () {
 //A global variable to store information about enabled business processes after they are retrieved asynchronously
 this.enabledProcesses = [];

 // 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 () {
  //Retrieve Enabled processes
  Xrm.Page.data.process.getEnabledProcesses(function (processes) {
   //Move processes to the global Sdk.enabledProcesses array;
   for (var processId in processes) {
    Sdk.enabledProcesses.push({ id: processId, name: processes[processId] })
   }
   Sdk.writeToConsole("Enabled business processes flows retrieved and added to Sdk.enabledProcesses array.");

   //Write the values of the Sdk.enabledProcesses array to the console
   if (Sdk.enabledProcesses.length < 0) {
    Sdk.writeToConsole("There are no enabled business process flows for this entity.");
   }
   else {
    Sdk.writeToConsole("These are the enabled business process flows for this entity:");
    for (var i = 0; i < Sdk.enabledProcesses.length; i++) {
     var enabledProcess = Sdk.enabledProcesses[i];
     Sdk.writeToConsole("id: " + enabledProcess.id + " name: " + enabledProcess.name)
    }
   }

   //Any code that depends on the Sdk.enabledProcesses array needs to be initiated here

  });
 };

}).call(Sdk);

이 샘플을 브라우저 개발자 도구를 열어 놓은 상태에서 실행할 때 다음은 여러 비즈니스 프로세스 흐름이 활성화된 상태에서 엔터티에 대해 콘솔에 기록된 출력의 예입니다.

Enabled business processes flows retrieved and added to Sdk.enabledProcesses array.
These are the enabled business process flows for this entity:
id: 7994be68-899e-4a40-8d18-f5c3b6940188 name: Sample Lead Process
id: 919e14d1-6489-4852-abd0-a63a6ecaac5d name: Lead to Opportunity Sales Process

참고 항목

비즈니스 프로세스 흐름에 대한 스크립트 작성

© 2017 Microsoft. All rights reserved. 저작권 정보