Microsoft Dynamics CRM-빠른 가이드

CRM (고객 관계 관리)은 회사와 현재 및 미래의 고객과의 상호 작용을 관리하는 시스템입니다. 종종 기술을 사용하여 영업, 마케팅, 고객 서비스 및 기술 지원을 구성, 자동화 및 동기화합니다. CRM은 고객 만족도와 충성도를 높이는 비즈니스 프로세스를 구성하고 자동화하여 비용을 절감하고 수익성을 높일 수 있습니다.

Microsoft Dynamics CRM

Microsoft Dynamics CRM은 모든 조직의 고객 관계를 향상시키는 데 중점을두고 Microsoft에서 개발 한 고객 관계 관리 소프트웨어 패키지입니다. Microsoft는 Dynamics CRM을 XRM 플랫폼으로 마케팅 해 왔으며 파트너가 독점 (.NET 기반) 프레임 워크를 사용하여 사용자 지정하도록 장려하고 있지만 기본적으로이 제품은 주로 판매, 마케팅 및 고객 서비스 부문에 중점을 둡니다. 최근에는 CRM을 기반으로하는 분석 플랫폼으로도 성장했습니다.

CRM 솔루션은 조직의 영업 생산성 및 마케팅 효과를 높이고, 완전한 고객 지원 체인을 처리하고, 사회적 통찰력, 비즈니스 인텔리전스 및 기타 다양한 기본 기능과 기능을 제공하는 데 사용할 수 있습니다. 제품으로서 Microsoft Dynamics CRM은 모바일 및 태블릿에서 CRM 앱을 사용하기위한 완전한 모바일 지원도 제공합니다.

이 자습서를 작성하는 현재 최신 버전의 CRM은 CRM 2016입니다. 그러나이 자습서에서는 많은 조직에서 자주 사용되는 안정적인 최신 버전이므로 CRM 2015 Online 버전을 사용합니다. 그럼에도 불구하고 다른 버전의 CRM을 사용하는 경우에도 자습서의 모든 개념은 그대로 유지됩니다.

제품 제공

Microsoft Dynamics CRM은 두 가지 범주로 제공됩니다.

CRM 온라인

CRM Online은 모든 백엔드 프로세스 (예 : 응용 프로그램 서버, 설정, 배포, 데이터베이스, 라이선스 등)가 Microsoft 서버에서 관리되는 Microsoft Dynamics CRM의 클라우드 기반 제품입니다. CRM Online은 CRM 구현과 관련된 모든 기술을 관리하지 않으려는 조직에 선호되는 구독 기반 제품입니다. 몇 주, 몇 달 또는 몇 년이 아닌 며칠 안에 시스템 설정을 시작하고 브라우저를 통해 웹에서 액세스 할 수 있습니다.

CRM 온 프레미스

CRM 온-프레미스는 CRM 응용 프로그램과 데이터베이스가 서버에 배포되는 Microsoft Dynamics CRM의보다 사용자 지정되고 강력한 제품입니다. 이 오퍼링을 사용하면 모든 데이터베이스, 사용자 정의, 배포, 백업, 라이센스 및 기타 네트워크 및 하드웨어 설정을 제어 할 수 있습니다. 일반적으로 사용자 지정 CRM 솔루션을 원하는 조직은 더 나은 통합 및 사용자 지정 기능을 제공하므로 온-프레미스 배포를 선호합니다.

기능적 관점에서 두 제품 모두 유사한 기능을 제공합니다. 그러나 구현 측면에서 크게 다릅니다. 차이점은 다음 표에 요약되어 있습니다.

CRM 온라인 CRM 온 프레미스
이것은 모든 서버와 데이터베이스가 Microsoft에서 관리되는 Microsoft에서 제공하는 클라우드 기반 솔루션입니다. 이것은 고객이 서버와 데이터베이스를 관리하는 Microsoft에서 제공하는 온 프레미스 솔루션입니다.
며칠 만에 온라인 오퍼링을 시작할 수 있습니다. 이동 중에도 사용자와 사용한 공간에 대한 비용을 지불합니다. 온 프레미스 오퍼링을 설정하려면 CRM 인스턴스를 설정하고 실행하는 데 충분한 시간과 기술 기술이 필요합니다.
상대적으로 적은 사용자 지정 및 확장을 지원합니다. 상대적으로 더 많은 사용자 정의 및 확장을 지원합니다.
CRM Online은 데이터베이스가 Microsoft 서버에서 호스팅되기 때문에 수동 데이터 백업 및 복원 옵션을 수행하는 기능을 제공하지 않습니다. 그러나 Microsoft는 매일 데이터베이스 백업을 수행합니다. CRM 온-프레미스는 데이터베이스를 완벽하게 관리 할 수있는 기능을 제공합니다.
CRM Online은 5GB, 20GB 등 데이터 저장 한도에 따라 다양한 계획을 가지고 있습니다. CRM 온-프레미스는 데이터가 자체 서버에 존재하기 때문에 스토리지 크기에 대한 제한이 없습니다.
CRM Online은 통찰력, 소셜 청취, 분석 등과 같은 기능의 내장 된 기능을 제공합니다. 온-프레미스 CRM에는 이러한 기능에 대한 추가 비용이 있습니다.
CRM Online은 향후 버전에 대한 자동 업데이트를 지원합니다. CRM 온-프레미스 업데이트는 관리자가 설치해야합니다.

CRM에 액세스

Microsoft Dynamics CRM은 다음 옵션 중 하나를 통해 액세스 할 수 있습니다.

  • Browser
  • 모바일 및 태블릿
  • Outlook

제품 경쟁자

Microsoft Dynamics CRM은 의심 할 여지없이 CRM 분야에서 최고의 제품 중 하나입니다. 그러나 다음은 Microsoft Dynamics CRM과 경쟁하는 다른 제품입니다.

  • Salesforce.com
  • Oracle
  • SAP
  • 세이지 CRM
  • 설탕 CRM
  • NetSuite

제품 버전

Microsoft Dynamics CRM은 2003 년 1.0 버전부터 수년에 걸쳐 성장했습니다. 최신 버전 (이 기사 작성 기준)은 2015 년입니다. 다음은 릴리스 버전의 연대순 목록입니다.

  • Microsoft CRM 1.0
  • Microsoft CRM 1.2
  • Microsoft Dynamics CRM 3.0
  • Microsoft Dynamics CRM 4.0
  • Microsoft Dynamics CRM 2011
  • Microsoft Dynamics CRM 2013
  • Microsoft Dynamics CRM 2015
  • Microsoft Dynamics CRM 2016

CRM 환경을 설정하는 것부터 시작하겠습니다. 온라인 버전은 1 개월 무료 평가판 액세스를 제공하므로 온라인 버전의 CRM 2015를 사용할 것입니다. 이렇게하면 CRM을 배우기 위해 라이선스를 구매할 필요가 없습니다.

Note− Microsoft Dynamics CRM은 성장하는 제품이므로이를 학습 할 때 쯤이면 제품의 최신 버전을 갖게 될 수 있습니다. 이 경우 응용 프로그램이이 자습서의 스크린 샷에서 볼 수있는 것과 정확히 일치하지 않을 수 있습니다. 그러나 제품의 핵심 개념은 동일하게 유지됩니다. 제품의 모양과 느낌과 탐색이 변경 될 수 있지만 대부분의 경우 필요한 옵션을 쉽게 탐색하고 찾을 수 있습니다.

Microsoft Dynamics CRM Online 계정 설정

Step 1 − 다음 URL로 이동 −

https://www.microsoft.com/en-us/dynamics365/home

나중에이 링크를 통해 평가판 옵션이 표시되지 않는 경우 Google에서 "Microsoft Dynamics CRM 무료 평가판"을 검색해보십시오.

Step 2− 무료 사용해보기 버튼을 클릭합니다. 그러면 다음 스크린 샷과 같이 3 단계 등록 프로세스가 시작됩니다. 3 단계 등록 중 1 단계에서 이름, 이메일 및 언어와 같은 필수 세부 정보를 입력합니다.

Step 3− 무료 사용해보기 버튼을 클릭합니다. 그러면 다음 스크린 샷과 같이 3 단계 등록 프로세스가 시작됩니다. 3 단계 등록 중 1 단계에서 이름, 이메일 및 언어와 같은 필수 세부 정보를 입력합니다.

Step 4− 3 단계 등록의 3 단계에서 Microsoft는 귀하가 지정한 휴대폰 번호를 확인합니다. 이를 위해 휴대폰 번호를 입력하고 문자 메시지를 클릭 할 수 있습니다. 그런 다음 설정을 계속 진행할 수있는 OTP를 모바일로 전송합니다.

Step 5− Office 365 사용자 ID가 생성됩니다. 나중에 액세스 할 수 있도록이 사용자 ID 정보를 저장할 수 있습니다.

계정을 설정하면 이제 다음과 같은 CRM 대시 보드가 열립니다.

다시 강조하기 위해 위의 스크린 샷은 향후 버전에서 변경 될 수 있지만 환경 설정은 매우 간단합니다.

CRM SDK 다운로드

Microsoft Dynamics CRM의 SDK (소프트웨어 개발 키트)에는 서버 측 코드, 클라이언트 측 코드, 확장, 플러그인, 웹 서비스, 워크 플로, 보안 모델 등을 비롯한 중요한 코드 샘플이 포함되어 있습니다. 기본적으로 SDK에는 필요한 모든 개발 리소스가 포함되어 있습니다. CRM을 시작합니다. 새 플러그인 프로젝트를 설정하거나 CRM 용 웹 서비스 프로젝트를 설정하려는 경우 SDK는 시작하는 데 도움이되는 간단한 수준에서 고급 수준에 이르는 기본 아키텍처와 예제를 제공합니다. 이제 SDK를 다운로드하고 설치하는 단계를 살펴 보겠습니다.

Step 1− 모든 버전의 Microsoft Dynamics CRM에는 자체 SDK 버전이 제공됩니다. 올바른 SDK 버전을 얻는 가장 좋은 방법은 Google에서 각 CRM 버전을 검색하는 것입니다. 예를 들어 CRM 버전이 2015 인 경우 "Microsoft Dynamics CRM 2015 SDK"를 검색해보십시오.

Step 2− 다운로드가 완료되면 exe 설정을 실행하십시오. 계속을 클릭하십시오.

Step 3− SDK를 추출 할 위치를 선택하라는 메시지가 표시됩니다. 참조 SDK를 보관할 적절한 위치를 선택하십시오.

Step 4− 압축을 푼 폴더를 엽니 다. 여기에서 모든 SDK 콘텐츠에 액세스 할 수 있습니다.

결론

이 장에서는 CRM Online 계정을 만들어 환경을 설정했습니다. 그런 다음이 자습서의 후속 장에서 사용할 CRM SDK를 다운로드했습니다. 다음에 로그인 할 때 이러한 자격 증명이 필요하므로 계정을 설정할 때 사용한 자격 증명을 기록해 두십시오.

전체 Microsoft Dynamics CRM은 다음 기능 모듈을 중심으로 설계되었습니다.

  • Sales
  • Marketing
  • 서비스 관리

이러한 기능 모듈은 종종 Work Areas.

CRM 기능 모듈 이해

전체 CRM 애플리케이션은 다양한 유형의 사용자 및 팀에 대해 기능적으로 구분됩니다. 따라서 조직에서 CRM을 사용하여 프로세스를 관리하는 경우 영업 팀의 사용자는 영업 모듈에있는 기능을 사용하고 마케팅 팀의 사용자는 마케팅 모듈에 속하는 기능을 사용합니다.

이 세 가지 기능 모듈이 모두 결합되어 신규 고객 확보 (마케팅), 서비스 판매 (판매), 기존 고객 유지 (서비스 관리)의 전체 라이프 사이클을 추진합니다.

이 흐름을 더 잘 이해하려면 고객에게 신용 카드를 판매하는 은행을 고려하십시오. 고객에게 신용 카드를 판매하는 일반적인 수명주기는 다음과 같습니다. 이 라이프 사이클의 각 단계에서 판매, 마케팅 및 서비스 모듈이 역할을 수행하는 방법을 볼 수 있습니다.

Sales & Marketing− 은행의 콜센터 사무실 임원은 잠재 고객의 데이터를받습니다. CRM에서 리드라고도합니다. 이러한 리드는 마케팅 캠페인, 판매 촉진, 추천 등을 통해 CRM 시스템에 캡처됩니다.

Sales− 콜 센터 임원은 전화 / 이메일 등을 통해 이러한 리드와 통신합니다. 고객이 신용 카드 제공에 관심이있는 경우 리드 레코드는 기회 레코드 (원 리드)로 변환됩니다.

Service− 고객이 시스템의 일부가되면 회사는 결제, 청구, 환불 등을 지원합니다. 고객이 질문이나 우려 사항이있을 때마다 콜 센터에 전화를 걸어 사건을 제기합니다. 경영진은 고객에게 양질의 서비스를 제공하기 위해 사건을 해결하기 위해 후속 조치를 취할 것입니다. 이러한 작업은 CRM 서비스 관리에 속합니다.

CRM 작업 영역 탐색

Step 1 − CRM 홈 페이지를 엽니 다.

Step 2 − 기본적으로 판매 작업 영역이 선택된 상태로 표시됩니다.

Step 3− 작업 영역을 변경하려면 작업 영역 표시 옵션을 클릭합니다. 판매, 서비스 및 마케팅을 선택하는 옵션이 표시됩니다.

Step 4− 판매를 클릭합니다. 계정, 연락처, 리드, 기회, 경쟁자 등과 같이 판매에 속하는 모든 엔티티가 표시됩니다. 이러한 각 엔티티는 내 작업, 고객, 판매, 담보 등과 같은 비즈니스 프로세스별로 분류됩니다.

Step 5 − 마찬가지로 마케팅 작업 영역을 클릭하면 마케팅 비즈니스 기능과 관련된 모든 항목이 표시됩니다.

판매 모듈

CRM의 판매 모듈은 신규 고객의 전체 판매 라이프 사이클을 구동하도록 설계되었습니다. 판매 모듈은 다음 하위 모듈로 구성됩니다.

Leads− 향후 회사의 잠재 고객이 될 수있는 사람 또는 조직을 나타냅니다. 이것은 시스템에서 잠재 고객을 확보하기위한 첫 번째 단계입니다.

Opportunities− 고객에 대한 잠재적 판매를 나타냅니다. 리드가 오퍼링에 관심을 보이면 기회로 전환됩니다. 기회는이기거나 잃게됩니다.

Accounts− 조직과 관계가있는 회사를 나타냅니다. 기회가 이기면 계정 또는 연락처로 전환됩니다.

Contacts− 조직과 관계가있는 개인 또는 개인을 나타냅니다. 대부분 이러한 연락처는 조직의 고객입니다 (예 : 은행의 모든 ​​신용 카드 고객). 기회가 이기면 계정 또는 연락처로 전환됩니다.

Competitors − 조직의 모든 시장 경쟁자를 관리합니다.

Products − 조직이 고객에게 제공하는 모든 제품을 관리합니다 (예 : 모든 신용 카드 플랜).

Quotes − 잠재 고객에게 전송 된 특정 가격으로 제안 된 제품 또는 서비스에 대한 공식 제안 (예 : 고객에게 전송 된 특정 신용 카드 계획의 연간 가격).

Orders − 고객이 수락 한 견적은 주문으로 바뀝니다 (예 : 조직에서 제공하는 모든 계획 중에서 6 개월 구독을 사용할 수 있음).

Invoices − 청구 된 주문은 송장을 생성합니다.

마케팅 모듈

CRM의 마케팅 모듈은 기존 및 잠재 고객을 위해 조직의 전체 마케팅 프로세스를 추진하도록 설계되었습니다. 마케팅 모듈은 다음과 같은 하위 모듈로 구성됩니다.

Marketing Lists− 연락처, 계정 및 리드를 그룹화하고 홍보 이메일, 이벤트 세부 정보, 뉴스 레터 및 대상 고객과 관련된 기타 업데이트를 전송하여 이들과 상호 작용하는 방법을 제공합니다. 기준을 정의하여 마케팅 목록을 만들 수 있습니다 (예 : 25 세에서 35 세 사이의 연락처).

Campaigns − 캠페인은 효과를 측정하고 신제품을 출시하거나 시장 점유율을 높이는 등 특정 결과를 달성하도록 설계되었으며 이메일, 신문 광고, YouTube 광고 등 다양한 커뮤니케이션 채널을 포함 할 수 있습니다.

Quick Campaigns − 빠른 캠페인은 캠페인과 유사하지만 한 가지 유형의 활동에만 관련 될 수 있습니다.

위의 모든 마케팅 모듈은 판매 모듈과 긴밀하게 협력하여 작동합니다.

서비스 관리 모듈

CRM의 서비스 관리 모듈은 사고 기반 서비스 지원, 서비스 스케줄링을 사용하여 고객 지원 등과 같은 조직의 고객 서비스 운영을 집중, 관리 및 추적하도록 설계되었습니다.

서비스 관리 모듈은 다음 하위 모듈을 다룹니다.

  • Cases (Incidents)− 사고 / 사례를 통해 추적 할 고객 요청, 문제 또는 불만 사항을 지원합니다. 케이스는 문제 해결 프로세스의 다양한 단계를 따른 다음 최종적으로 해결되고 종료됩니다.

  • Knowledge Base − 고객이 자주 묻는 모든 일반적인 질문과 답변에 대한 마스터 저장소를 유지합니다.

  • Contracts − 계약은 고객이 보유한 모든 활성 계약을 나타내는 Cases와 함께 작동합니다.

  • Resources/Resource Groups− 서비스를 제공하는 데 사용되는 사람, 도구, 방 또는 장비를 나타냅니다. 이러한 리소스는 특정 고객 문제를 해결하는 데 사용할 수 있습니다.

  • Services − 조직이 고객에게 제공하는 모든 서비스를 나타냅니다.

  • Service Calendar − 조직에서 일하는 사용자의 작업 시간 및 일정을 예약하는 데 사용됩니다.

활동 관리

위에서 설명한 모든 모듈은 CRM의 활동 관리 모듈을 사용합니다. 활동은 전화 통화, 이메일, 편지 등과 같은 고객과의 모든 종류의 상호 작용을 나타냅니다. 이러한 활동은 계정, 연락처, 리드, 사례 등과 같이 앞에서 설명한 모든 엔티티와 관련 될 수 있습니다. 기본적으로 CRM 다음과 같은 유형의 활동을 즉시 제공합니다.

  • 전화
  • Email
  • Task
  • Appointment
  • 되풀이 약속
  • Letter
  • Fax
  • 캠페인 반응
  • 캠페인 활동
  • 봉사 활동
  • 맞춤 활동

결론

이 장에서는 CRM의 세 가지 주요 모듈 인 영업, 마케팅 및 서비스 관리에 대해 배웠습니다. CRM에서 작업 영역이 구성되는 방식과 CRM 조직의 전체 수명주기가 작동하는 방식을 이해했습니다. 또한 전화, 이메일, 팩스 및 기타 유형의 고객 상호 작용 활동을 생성 할 수있는 CRM의 활동 관리 모듈도 살펴 보았습니다.

이제 모든 CRM 모듈에 대한 기능적 개요를 얻었으므로 CRM의 엔터티와 양식에 대해 배우고 이해하겠습니다.

법인이란?

엔티티는 CRM에서 비즈니스 데이터를 모델링하고 관리하는 데 사용됩니다. 연락처, 사례, 계정, 리드, 기회, 활동 등은 모두 데이터 레코드를 보유하는 엔티티입니다. 개념적으로 CRM 엔터티는 데이터베이스 테이블과 동일합니다. 예를 들어, 연락처 엔터티는 연락처 레코드를 보유하고 Cases 엔터티는 Cases 레코드를 보유합니다.

기본 엔터티 (기본적으로 CRM과 함께 제공됨)와 사용자 지정 엔터티 (사용자 지정으로 만들 수 있음)를 모두 가질 수 있습니다. 예를 들어 고객이 읽은 책의 데이터를 유지하고 있다고 가정합니다. 이를 위해 기본 연락처 엔터티를 사용하여 고객 데이터를 저장하지만 장부 데이터는 어디에 저장합니까? 도서 데이터를 저장할 수있는 엔티티가 없습니다. 이러한 시나리오에서는 Books라는 새 사용자 지정 엔터티를 만들고이를 기존 연락처 엔터티와 연결합니다.

이 자습서에서는 CRM에 고용주와 직원을 저장하는 예를 들어 보겠습니다. 이 예를 고려하여 즉시 사용 가능한 CRM은Contact모든 직원을 이상적으로 저장할 수있는 엔티티입니다. 그것은 또한 제공합니다Account모든 고용주를 저장할 수있는 엔티티입니다. 그러나 학습 엔터티를 위해 우리는Employer (기존 계정 엔티티를 사용하지 않음).

새 엔티티 생성

Step 1 − 상단 리본 버튼을 클릭 한 다음 Settings선택권. 딸깍 하는 소리Customizations 사용자 지정 섹션에서 옵션을 선택합니다 (다음 스크린 샷 참조).

Step 2 − 이제 시스템 사용자 지정 옵션을 클릭합니다.

그러면 기본 솔루션 창이 열립니다. 다음 장에서 CRM 솔루션에 대해 자세히 알아볼 수 있지만 지금은 기본 CRM 솔루션을 사용하게됩니다.

Step 3 − 왼쪽 패널에서 엔티티 옵션을 확장합니다.

Step 4 − 이제 New → Entity를 클릭합니다.

Step 5− Entity Form에서 Display Name을 Employer로 입력하고 PluralName을 Employers로 입력합니다. '이 엔티티를 표시하는 영역'섹션에서 판매, 서비스 및 마케팅을 선택하십시오. 이 옵션을 선택하면 CRM의 판매, 서비스 및 마케팅 탭에 새로 생성 된 엔터티가 표시됩니다.

Step 6− 저장 후 닫기 아이콘을 클릭합니다. 이렇게하면 백그라운드에서 CRM 데이터베이스에 새 엔터티가 생성됩니다.

Step 7 − 기본 솔루션 상위 창에서 새로 생성 된 Employer 엔티티를 볼 수 있습니다.

Step 8− 상단 리본 바에서 Publish All Customizations 옵션을 클릭합니다. 이것은 지금까지 우리가 한 모든 변경 사항을 게시합니다 (일명 커밋). 저장 후 닫기를 클릭하여이 창을 닫을 수 있습니다.

기록 생성

CRM은 시스템에서 중요한 데이터를 관리하는 것입니다. 이 섹션에서는 CRM에서 레코드를 만들고, 열고, 읽고, 삭제하는 방법에 대해 알아 봅니다. 우리는 지난 장에서 만든 고용주 법인을 계속 진행할 것입니다.

Step 1 − 작업 영역 표시 → 영업 → 확장 → 고용주를 통해 고용주 엔티티 레코드 그리드로 이동합니다.

Step 2 − 새로 만들기 아이콘을 클릭합니다.

그러면 기본 새 고용주 양식이 열립니다. 이 기본 양식에는 편집 가능한 필드 이름이 하나만 있음을 알 수 있습니다. 이름 필드에 Employer 1을 입력합니다. 저장 후 닫기를 클릭하십시오.

Step 3 −에서 Active Employers 보기에서 새로 생성 된 고용주 기록을 볼 수 있습니다.

기록에 접근

CRM에서 이미 생성 된 레코드에 액세스하려면 해당 엔터티 페이지로 이동합니다. 이 경우 작업 영역 표시 → 영업 → 확장 → 고용주로 이동합니다. 그리드에있는 레코드 목록이 표시됩니다. Employer 레코드를 클릭하여 액세스하십시오.

기록 업데이트

레코드가 열리면 양식의 세부 정보를 편집 할 수 있습니다. 기본적으로 CRM 2015에는 변경 30 초 후 양식에 대한 변경 사항을 저장하는 자동 저장 옵션이 제공됩니다. 또는 Ctrl + S를 클릭 할 수 있습니다.

자동 저장 기능을 비활성화하려면 설정 → 관리 → 시스템 설정 → 모든 양식에 대해 자동 저장 활성화로 이동하여 아니요를 선택합니다.

기록 삭제

Step 1 − 삭제하려는 하나 이상의 기록을 선택하고 Delete 단추.

Step 2 − 클릭하여 기록 삭제를 확인합니다. Delete.

결론

위의 예에서 볼 수 있듯이 기본 Employer 양식에는 필드가 하나만 있습니다. 그러나 실제 시나리오에서는 양식에 많은 사용자 정의 필드가 있습니다. 예를 들어 샘플 연락처 레코드 (기본 CRM 엔터티)를 보면 전체 이름, 이메일, 전화, 주소, 사례 등과 같은 연락처 정보를 저장하는 많은 필드가 있습니다.

다음 장에서는이 기본 양식을 편집하고 다양한 유형의 필드를 추가하는 방법을 배웁니다.

CRM 양식에 사용자 정의 필드를 추가하는 방법을 배우기 전에 CRM에서 지원하는 데이터 필드 유형을 살펴 보겠습니다.

필드 유형

즉시 사용 가능한 CRM은 양식에 배치 할 수있는 11 가지 유형의 데이터 필드를 제공합니다.

  • 한 줄의 텍스트
  • 옵션 세트 (드롭 다운)
  • 두 가지 옵션 (라디오 버튼)
  • Image
  • 정수
  • 부동 소수점 수
  • 십진수
  • Currency
  • 여러 줄의 텍스트
  • 날짜와 시간
  • Lookup

다음 표에는 각각에 대한 간략한 설명이 나와 있습니다.

Sr. 아니요 필드 유형 및 설명
1

Single Line of Text

이 필드는 최대 4000 자의 텍스트를 저장합니다. 이메일, 텍스트, 텍스트 영역, URL, 티커 기호 및 전화 중 하나로 형식을 지정할 수도 있습니다. 각각의 최대 길이와 IME 모드를 설정할 수 있습니다.

2

Option Set (Dropdown)

이 필드는 각각 숫자 값과 레이블이있는 옵션 세트를 저장합니다. 즉, CRM의 드롭 다운 필드입니다. 여러 양식에서 사용할 수있는 글로벌 옵션 세트를 정의 할 수도 있습니다.

Two Options (Radio Button)

이 필드는 사용자가 선택할 수있는 두 가지 옵션 (0 또는 1)을 제공합니다. 즉, 라디오 버튼 필드입니다.

4

Image

엔터티에 이미지 필드가있는 경우 애플리케이션에서 레코드에 대한 이미지를 표시하도록 구성 할 수 있습니다.

5

Whole Number

이 필드는 -2,147,483,648에서 2,147,483,647 사이의 정수 값을 저장합니다. 없음, 기간, 시간대 및 언어와 같은 지정 형식을 지원합니다. 최소값과 최대 값도 설정할 수 있습니다.

6

Floating Point Number

이 필드는 0.00과 1,000,000,000.00 사이의 소수점 이하 5 자리까지 부동 소수점 숫자를 저장합니다. 최소값과 최대 값도 설정할 수 있습니다.

7

Decimal Number

이 필드는 -100,000,000,000.00 및 100,000,000,000.00 범위의 값으로 최대 10 개의 소수점을 저장합니다.

8

Currency

이 필드는 922,337,203,685,477.0000에서 922,337,203,685,477.0000 범위의 통화 값을 저장하는 데 사용됩니다. 소수점 자리, 통화 소수점 자리 또는 0에서 4 사이의 값으로 정밀도를 지정할 수도 있습니다.

9

Multiple Lines of Text

스크롤되는 텍스트 상자입니다. 이 필드의 최대 문자 수를 설정할 수 있습니다.

10

Date and Time

이 필드는 날짜 만 및 날짜 및 시간의 두 가지 지원되는 형식으로 CRM에 날짜 관련 데이터를 저장하는 데 사용됩니다. 동작을 사용자 로컬, 날짜 만 및 시간대 독립적으로 지정할 수도 있습니다.

11

Lookup

이미 만들어졌지만 아직 다른 조회 필드와 함께 사용되지 않은 엔터티 관계를 사용하여 조회 필드를 만들 수 있습니다. 엔터티 양식에서 조회 필드를 만드는 경우 관계가 자동으로 생성됩니다. 조회 필드는 관계 필드로 생성됩니다.

마지막 두 장에서는 새 엔터티 만들기, 새 레코드 만들기 및 CRM에서 사용할 수있는 필드 유형에 대해 공부했습니다. 이 장에서는 CRM 양식에 새 필드를 추가하는 방법을 배우게됩니다.

이전 장에서 연구 한 11 가지 유형의 데이터 필드 중 고용주에서 세 가지 유형의 필드 (옵션 집합 (드롭 다운), 여러 줄의 텍스트 및 날짜 / 시간)를 사용하게됩니다. 옵션 세트 필드는 고용주 유형을 저장하는 데 사용되며 여러 줄의 텍스트는 고용주에 대한 간략한 설명을 저장하는 데 사용되며 DateTime 필드는 회사가 시작된 날짜를 저장하는 데 사용됩니다.Note: 한 줄의 텍스트 유형 인 양식에 이미 이름 필드가 있습니다.

양식에 필드 추가

Step 1 − 상단 리본 버튼을 클릭 한 다음 Settings선택권. 딸깍 하는 소리Customizations 사용자 지정 섹션에서 옵션을 선택합니다 (아래 스크린 샷 참조).

Step 2 − 이제 시스템 사용자 지정 옵션을 클릭합니다.

그러면 DefaultSolution 창이 열립니다. 다음 장에서 CRM 솔루션에 대해 자세히 알아볼 수 있지만 지금은 기본 CRM 솔루션을 사용하게됩니다.

Step 3 − 왼쪽 패널에서 엔티티 옵션을 확장합니다.

Step 4− 확장 된 엔티티에서 고용주를 선택합니다. 그러면 오른쪽 창에 엔티티의 세부 정보가 열립니다. 왼쪽 패널에서 고용주 옵션을 확장하면 양식,보기, 차트, 필드 및 기타 여러 옵션을 볼 수 있습니다.

Step 5− 필드를 클릭합니다. 이 엔터티를 만들 때 기본적으로 제공된 모든 필드를 표시하는 그리드가 열립니다.

Step 6− 새로 만들기 버튼을 클릭합니다. 열리는 새 창에서 다음 세부 정보를 입력하십시오-

Display Name − 고용주 유형

Name−이 필드는 선택한 표시 이름에 따라 자동으로 채워집니다. 그러나 변경하려면 변경할 수 있습니다.

Data Type− 옵션 세트. 옵션 세트로 데이터 유형을 선택하자마자 옵션 패널이 표시됩니다. 더하기 (+) 아이콘을 클릭하면 기본 레이블이 항목이고 기본값이 100,000,000 인 새 옵션 집합 항목이 생성됩니다. 이 항목의 레이블을 변경하여 고용주 유형을 나타내는 네 가지 옵션 (개인, 정부, 다국적 및 공용)을 추가 할 수 있습니다.

Step 7− 상단 리본에서 저장 후 닫기를 클릭합니다. 고용주 유형 필드를 성공적으로 만들었습니다.

Step 8 − 방금 Employer Type 필드를 추가하기 위해했던 것과 유사하게 다음 스크린 샷에 설명되고 표시된대로 세 개의 다른 필드를 추가합니다.

Number of Employees − 이것은 정수 필드가됩니다.

Founded On − 이것은 DateTime 필드가됩니다.

Employer Description − 여러 줄의 텍스트 필드가됩니다.

Step 9− 이제 고용주 양식에 이러한 새 필드를 추가합니다. 이를 위해 Employer 엔티티 아래의 왼쪽 탐색에서 양식을 클릭하십시오. 이름이 정보 인 두 가지 양식이 표시됩니다. 기본적으로 CRM은 Main 및 Mobile-Express의 두 가지 양식을 만듭니다. 기본 양식을 클릭하십시오.

Step 10 − 새로 추가 된 필드는 오른쪽 필드 탐색기 패널에서 볼 수 있습니다.

Step 11 − 일반 탭에서이 필드를 끌어다 놓습니다.

Step 12 − 저장을 클릭 한 다음 게시를 클릭합니다.

Step 13− 이제 업데이트 필드로 고용주 기록을 생성 할 수 있습니다. CRM 홈 → 영업 → 고용주 → 신규로 이동합니다. 이번에 열리는 새 양식에는이 장에서 추가 한 모든 새 필드가 포함됩니다. 세부 정보를 입력하고 저장 후 닫기를 클릭 할 수 있습니다.

결론

이 장에서는 CRM 양식 작업과 다양한 유형의 필드를 배치하여 사용자 정의하는 방법을 배웠습니다. 또한 양식에 원하는만큼 필드를 추가하고 비즈니스 요구 사항에 따라 다양한 탭과 섹션을 사용하여 정렬하는 방법도 배웠습니다.

Microsoft Dynamics CRM은 수년에 걸쳐 크게 발전한 방대한 제품입니다. 이 제품은 시스템에 내장 된 많은 기본 기능을 제공합니다. 이러한 기능을 활용하기 위해 코드를 작성할 필요가 없습니다. 중요한 기본 기능 중 하나는 고급 쿼리 및 필터링 기능을 지원한다는 점에서 CRM의 검색 기능입니다.

빠른 탐색

기본적으로 CRM에있는 모든 엔터티의 그리드보기는 오른쪽 상단의 검색 표시 줄을 사용하여 빠른 검색 기능을 지원합니다. 다음은 연락처 엔터티에 대한 빠른 검색의 스크린 샷입니다.

'Robert'와 같은 검색 문자열을 입력하면 일치하는 모든 레코드가 반환됩니다.

검색 키워드 앞에 * (별표)를 붙여 와일드 카드 검색을 수행 할 수 있습니다.

Note − Microsoft Dynamics CRM의 웹 클라이언트 버전을 사용할 때 빠른 검색은 선택한보기에 관계없이 항상 모든 활성 레코드를 검색합니다.

빠른 검색을 사용자 정의하여 (다른보기 사용자 정의와 같이) 필터 기준을 수정하고, 정렬을 구성하고,보기 열을 추가하고, 찾기 열을 추가하고 기타 속성을 변경할 수 있습니다.

고급 검색

고급 검색을 사용하면 CRM에서 모든 엔터티의 레코드를 검색 할 수 있습니다. CRM과 함께 즉시 제공되는 가장 강력하고 유용한 기능 중 하나입니다. 고급 검색 아이콘은 현재 화면에 관계없이 Microsoft Dynamics CRM의 상단 리본 모음에 나타납니다.

상세하게 찾기 아이콘을 클릭하여 상세하게 찾기 창을 엽니 다. 이 창에서는 레코드를 검색 할 엔터티를 선택하고 필터링 및 그룹화 기준을 적용하며 고급 찾기보기를 개인보기로 저장할 수 있습니다.

예를 들어 보겠습니다. Robert가 포함되어 있고 이혼 한 FirstName의 모든 연락처를 검색한다고 가정합니다. 이를 위해-

Step 1− 찾을 대상 드롭 다운에서 연락처를 선택합니다. 이 드롭 다운에는 시스템에있는 모든 엔티티가 포함됩니다.

Step 2− 다음 스크린 샷과 같이 검색 기준을 입력합니다. 원하는만큼 검색 쿼리 매개 변수를 추가 할 수 있습니다. 그룹 매개 변수를 사용하여 이러한 기준을 그룹화 할 수도 있습니다. 예를 들어, 이름이 Robert 또는 Mark 인 모든 연락처를 검색하려면 두 개의 검색 기준을 추가하고 GroupOR을 사용하여 그룹화 할 수 있습니다.

Step 3− 결과 버튼을 클릭합니다. 새 탭에 일치하는 레코드가 표시됩니다.

Step 4− 열 편집을 클릭하여 검색 결과에서보고 싶은 열을 편집 할 수도 있습니다. 예를 들어 현재 그리드에는 전체 이름과 회사 전화라는 두 개의 열만 있습니다. 그러나이 그리드에 이메일 ID 열을 추가하려면이 옵션을 사용하면됩니다.

사용자 정의보기 저장

이 단계에서이 검색 기준을 필터 및 편집 된 열과 함께 저장하려면 저장 버튼을 클릭하면됩니다. 저장 한 후에는 해당 엔터티 페이지에있을 때이 저장된보기를 사용할 수 있습니다.

예를 들어 고객 중역으로서 일반 및 프리미엄이라는 두 가지 유형의 고객에게 서비스를 제공한다고 가정 해보십시오. 따라서 이러한 각각의 범주로 고급 필터를 만들고 나에게 할당 된 일반 연락처 및 나에게 할당 된 프리미엄 연락처로 저장할 수 있습니다. 그런 다음 시스템을 사용할 때마다 빠른 검색 또는 고급 찾기 검색을 수행하지 않고 연락처 엔터티 페이지에서 직접 이러한보기에 빠르게 액세스 할 수 있습니다.

CRM의 웹 리소스는 CRM 데이터베이스에 저장되고 CRM에서 웹 페이지 기능을 구현하는 데 사용되는 가상 웹 파일입니다. 이러한 파일은 HTML, JScript, Silverlight 또는 기타 지원되는 유형일 수 있습니다.

CRM은 제품으로서 광범위한 특징과 기능을 제공합니다. 그러나 대부분의 경우 이러한 기존 기능을 확장하여 사용자 지정 요구 사항을 충족해야합니다. 이러한 기능을 확장하는 것은 일반적으로 두 가지 방법으로 발생합니다.

  • Extending on Client Side − 웹 리소스 및 양식 스크립팅 사용.

  • Extending on Server Side − 플러그인, 워크 플로 및 웹 서비스 (이 부분은 다음 장에서 배우겠습니다).

웹 리소스의 사용

위에서 언급했듯이 클라이언트 측에서 CRM을 확장하는 것은 웹 리소스가 등장하는 곳입니다. 이를 명확하게 이해하려면 다음 사용 사례를 고려하십시오.

  • 특정 필드가 포함 된 CRM 양식이 있습니다. CRM은 필수 필드, 필드 길이 등과 같은 기본 유효성 검사를위한 즉시 사용 가능한 기능을 제공합니다. 그러나 입력 한 전화 번호가 올바른 형식인지 확인하는 것과 같은 더 복잡한 유효성 검사를 원할 경우 어떻게해야합니까? 입력 한 주소가 실제로 존재하는지 또는 입력 한 SSN이 올바른지 확인합니까?

  • CRM은 양식에 섹션 및 탭 만들기, 필드 재 배열 등과 같은 기본 UI 사용자 지정을 제공합니다. 그러나 클라이언트가 다른 고객의 모든 정보를 표시하는 사용자 지정 페이지를 구축하려면 어떻게해야합니까? ERP 시스템?

  • CRM에는 모든 버튼과 옵션이 포함 된 표준 리본 바가 있습니다. 자신 만의 리본 버튼을 추가하려면 어떻게해야합니까?

  • 이미 ERP 시스템이 있다고 가정하십시오. 이 ERP 시스템에서 일부 CRM 화면을 열려면 어떻게해야합니까?

  • 서버 측 플러그인 코드에서 언제든지 외부 웹 서비스를 호출 할 수 있습니다. 그러나 클라이언트 측에있는 동안 외부 웹 서비스를 호출하려면 어떻게해야합니까?

이러한 모든“만약”에 대한 답은 웹 리소스입니다. 모든 웹 리소스는 고유 한 URL을 통해 액세스 할 수 있습니다. 웹 리소스 파일을 업로드하거나 코드 기반 리소스 (예 : HTML, Jscript 등)의 경우 CRM 내에서 직접 편집 할 수도 있습니다. 웹 리소스는 CRM 내에 저장되므로 CRM 사용자 정의와 함께 한 환경에서 다른 환경으로 쉽게 마이그레이션 할 수 있습니다.

웹 리소스 유형

웹 리소스 유형 CRM의 샘플 애플리케이션
웹 페이지 (HTML) 지도, 사용자 지정 응용 프로그램 페이지 등과 같은 사용자 지정 HTML 페이지를 만들어 CRM 양식에 배치 할 수 있습니다.
스타일 시트 (CSS) HTML 파일과 함께 사용할 CSS 파일입니다.
스크립트 (JScript) 유효성 검사, 필드 값 조작 등과 같은 모든 클라이언트 측 논리
데이터 (XML) 정적 설정 또는 구성 데이터를 저장하는 데 사용할 수 있습니다.
이미지 (PNG, JPG, GIF, ICO) 리본 버튼, 아이콘, 양식 등에 응용 프로그램에서 사용되는 모든 이미지
Silverlight (XAP) CRM에 포함 된 모든 사용자 지정 Silverlight 응용 프로그램.
StyleSheet (XSL) XML 데이터를 변환하는 데 사용됩니다.

이러한 모든 유형의 웹 리소스 중에서 다음 장에서 가장 중요한 유형의 웹 리소스 인 HTML 웹 리소스 및 JScript 웹 리소스에 대해 연구 할 것입니다.

모든 엔터티에 대한 웹 리소스 액세스

데이터베이스에 저장된 모든 웹 리소스는 CRM에서 액세스 할 수 있습니다. 다음은 관련된 단계입니다-

Step 1 − 설정 → 사용자 지정 → 시스템 사용자 지정으로 이동합니다.

Step 2 − 왼쪽 탐색 메뉴에서 Web Resources. 현재는 아직 아무것도 생성하지 않았으므로 웹 리소스를 볼 수 없습니다.

다음 장에서 웹 리소스를 만드는 방법을 살펴 보겠습니다.

JScript 웹 리소스는 Microsoft Dynamics CRM에서 사용할 가장 중요한 유형의 웹 리소스 일 것입니다.

CRM에서 JavaScript의 응용

양식 이벤트 프로그래밍

양식 이벤트 프로그래밍은 사용자가 양식을 열거 나 일부 데이터를 변경하거나 탭을 이동할 때 발생하는 일과 같은 클라이언트 측 동작을 처리하는 데 사용됩니다. 이러한 클라이언트 측 상호 작용을 달성하기 위해 JavaScript 코드를 작성하고이를 CRM의 JScript 웹 리소스. 그러나 작성할 JavaScript 코드는 표준 JavaScript DOM이 아닌 Dynamic CRM의 Xrm.Page 모델을 사용해야합니다. Xrm.Page 모델 사용은이 모델을 사용하여 작성한 모든 코드가 향후 CRM 버전과 호환되도록 보장하는 Microsoft의 코딩 방식입니다.

웹 리소스

Form Event Programming에서 사용되는 것 외에도 JavaScript는 다음과 같은 CRM의 다른 응용 프로그램에서 사용됩니다.

  • 고유 한 URL로 양식,보기 및 대화 상자를 엽니 다.

  • OData 및 SOAP 끝점을 사용하여 웹 서비스와 상호 작용합니다.

  • 다른 웹 리소스 (예 : HTML 웹 리소스) 내에서 JavaScript 코드를 참조합니다.

이러한 경우 JavaScript 코드 (Xrm.Page 모델 사용)를 작성하고 CRM에서 JScript 웹 리소스로 추가하면 고유 한 URI로 어디에서나 참조 할 수 있습니다.

리본 사용자 화

마지막으로 JavaScript의 다른 일반적인 용도 중 하나는 다음과 같은 리본 사용자 지정을 처리하는 것입니다.

  • 일부 로직에 따라 리본 버튼 표시 / 숨기기
  • 일부 로직에 따라 리본 버튼 활성화 / 비활성화
  • 특정 리본 버튼을 클릭 할 때 발생하는 작업 처리

이러한 시나리오를 처리하려면 JavaScript 논리 (Xrm.Page 모델 사용)를 작성한 다음이를 JScript 웹 리소스로 추가합니다. 그런 다음이 웹 리소스를 리본 버튼의 XML에서 참조 할 수 있으며 리본 버튼을 표시 / 숨기기 또는 활성화 / 비활성화할지 여부를 확인하거나 클릭 이벤트를 처리하기 위해 호출 할 JScript 파일의 메서드를 지정할 수 있습니다.

Xrm.Page 개체 모델

다음은 사용 가능한 네임 스페이스, 개체 및 해당 컬렉션을 보여주는 Xrm.Page 개체의 계층 구조입니다. JScript 코드를 작성하는 동안 이러한 속성을 사용하게됩니다.

네임 스페이스

Sr. 아니요 개체 및 설명
1

Context

조직 세부 정보, 로그인 한 사용자 세부 정보 또는 쿼리 문자열의 양식에 전달 된 매개 변수와 같은 컨텍스트 별 정보를 검색하는 메서드를 제공합니다.

2

Data

엔터티 데이터 및 메서드에 대한 액세스를 제공하여 양식 및 비즈니스 프로세스 흐름 제어의 데이터를 관리합니다.

UI

양식의 여러 하위 구성 요소에 대한 컬렉션 외에도 사용자 인터페이스에 대한 정보를 검색하는 메서드를 포함합니다.

사물

Sr. 아니요 개체 및 설명
1

Entity

방법을 제공합니다-

  • 기록 정보 검색
  • 저장 방법
  • 컬렉션 속성
2

Process

비즈니스 프로세스 흐름의 속성을 검색하는 방법입니다.

Navigation

항목 컬렉션을 사용하여 탐색 항목에 대한 액세스를 제공합니다.

4

FormSelector

Items 컬렉션을 사용하여 사용자가 사용할 수있는 양식에 액세스합니다. 또한 탐색 방법을 사용하여 양식을 닫고 엽니 다.

5

Stages

각 프로세스에는 getStages 프로세스 메소드를 사용하여 액세스 할 수있는 단계 모음이 있습니다.

6

Steps

각 단계는 getSteps 단계 메소드를 사용하여 액세스 할 수있는 다양한 단계로 구성됩니다.

컬렉션

Sr. 아니요 컬렉션 및 설명
1

Attributes

양식에서 사용 가능한 엔티티 속성에 대한 액세스를 제공합니다.

2

Controls

ui.controls − 양식에있는 각 컨트롤에 대한 액세스를 제공합니다.

attribute.controls − 속성 내의 모든 컨트롤에 대한 액세스를 제공합니다.

section.controls − 섹션 내의 모든 컨트롤에 대한 액세스를 제공합니다.

Items

양식의 모든 탐색 항목에 대한 액세스를 제공합니다.

4

Tabs

양식의 모든 탭에 대한 액세스를 제공합니다.

5

Sections

양식의 모든 섹션에 대한 액세스를 제공합니다.

양식 프로그래밍에서 지원되는 이벤트

Xrm.Page 모델을 사용한 양식 프로그래밍은 다음과 같은 양식 이벤트를 처리 할 수 ​​있습니다.

  • onLoad
  • onSave
  • onChange
  • TabStateChange
  • OnReadyStateComplete
  • PreSearch
  • 비즈니스 프로세스 흐름 제어 이벤트

양식 프로그래밍 예

이 예에서는 사용자가 선택한 PreferredMethodofCommunication을 기반으로 연락처 양식에 몇 가지 유효성 검사를 적용합니다. 따라서 사용자가 선호하는 방법을 이메일로 선택하면 이메일 필드가 필수가되어야하며 전화 및 팩스의 다른 필드와 유사해야합니다.

Step 1 − 이름이 contacts.js 다음 코드를 복사하십시오.

function validatePreferredMethodOfCommunication() { 

   //get the value of Preffered Method of Communication code 
   var prefferedContactMethodCode = 
      Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();  
   
   //if Preferred Method = Any, make all fields as non-mandatory 
   
   //else if Preferred Method = Phone, make Mobile Phone field mandatory 
   //and all other fields as non-mandatory 
   
   //else if Preferred Method = Fax, make Fax field mandatory 
   //and all other fields as non-mandatory 
   
   if(prefferedContactMethodCode == 1) { 
      clearAllMandatoryFields(); 
   }  
   if(prefferedContactMethodCode == 2) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required'); 
   } else if(prefferedContactMethodCode == 3) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required'); 
   } else if(prefferedContactMethodCode == 4) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('fax').setRequiredLevel('required'); 
   } 
} 
function clearAllMandatoryFields() { 
   
   //clear all mandatory fields 
   Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none'); 
   Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none'); 
   Xrm.Page.getAttribute('fax').setRequiredLevel('none'); 
}

Step 2 − 설정 → 사용자 정의 → 시스템 사용자 정의 → 연락처 엔티티 → 양식 → 기본 양식으로 이동하여 연락처 엔티티 양식을 엽니 다.

Step 3 − 양식 속성을 클릭합니다.

Step 4 − 양식 속성 창에서 추가를 클릭합니다.

Step 5 − 다음 웹 리소스 레코드 조회 창에서 새 웹 리소스를 생성하고 있으므로 새로 만들기를 클릭합니다.

Step 6 − 새 웹 리소스 창에서 다음 세부 정보를 입력합니다. −

Name − new_contacts.js

Display Name − Contacts.js

Type − JScript

Upload File − 로컬 컴퓨터에서 생성 한 JavaScript 파일을 업로드합니다.

Step 7− 저장을 클릭 한 다음 게시를 클릭합니다. 이 창을 닫으면 웹 리소스 레코드 조회 창으로 돌아갑니다.

Step 8− 여기에서 new_contacts.js 웹 리소스를 볼 수 있습니다. 그것을 선택하고 추가를 클릭하십시오. 이제 새 웹 리소스를 성공적으로 추가하고 양식에 등록했습니다.

Step 9− 이제 Preferred Method of Communication 필드 변경시 이벤트 핸들러를 추가합니다. 이 이벤트 핸들러는 방금 작성한 JavaScript 함수를 호출합니다. 이벤트 핸들러 섹션에서 다음 옵션을 선택하십시오.

Control − 선호하는 커뮤니케이션 방법

Event − OnChange

그런 다음 Add 다음 스크린 샷과 같이 버튼을 클릭합니다.

Step 10 − Handler Properties의 다음 창에서 변경 이벤트 발생시 호출 할 메소드를 지정합니다.

라이브러리를 new_contacts.js로, 함수를 validatePreferredMethodOfCommunication으로 선택하십시오. 확인을 클릭하십시오.

Step 11− 이제 Form Library (웹 리소스)와 여기에 등록 된 이벤트를 볼 수 있습니다. 확인을 클릭하십시오.

Step 12 − 저장을 클릭 한 다음 게시를 클릭합니다.

Step 13− 이제 연락처 양식을 열고 선호하는 통신 방법을 전화로 설정하십시오. 이렇게하면 휴대폰 필드가 필수로 설정됩니다. 이제 휴대폰 번호를 입력하지 않고이 연락처를 저장하려고하면 '휴대폰 값을 입력해야합니다'라는 오류 메시지가 표시됩니다.

결론

이 장에서는 CRM에서 JavaScript의 세 가지 중요한 응용 프로그램을 이해하는 것으로 시작했습니다. 나중에 Xrm.Page 모델을 살펴보고 예제와 함께 양식 프로그래밍을 배우는 데 사용했습니다.

이 장에서는 Microsoft Dynamics CRM의 다양한 웹 리소스에 대해 알아 봅니다.

HTML 웹 리소스의 응용

CRM의 HTML 웹 리소스에는 브라우저에서 렌더링 할 수있는 모든 HTML 콘텐츠가 포함될 수 있습니다. HTML 웹 리소스를 사용하려는 다음 시나리오를 고려하십시오.

  • CRM 화면에 표시하려는 정적 HTML 페이지가 있습니다.

  • 일부 입력 매개 변수를 예상하고 해당 입력 매개 변수를 기반으로 렌더링되는 사용자 정의 HTML 페이지가 있습니다. 예를 들어 외부 API 또는 웹 서비스에서 정보를 가져오고이를 CRM에 표시하려고한다고 가정 해보십시오.

  • 표준 CRM UI와 다른 모양과 느낌으로 일부 정보를 표시하려고합니다.

입력 매개 변수를 기반으로 렌더링되는 사용자 정의 ASPX 페이지 (CRM 애플리케이션 외부)가 있습니다. CRM에서는 ASPX 웹 리소스를 사용할 수 없으므로 HTML 웹 리소스를 만들고이 HTML 페이지에서 외부 ASPX 페이지를 호출 할 수 있습니다.

HTML 웹 리소스 예

사용자 지정 텍스트 'TutorialsPoint에 오신 것을 환영합니다'를 표시하는 매우 간단한 HTML 웹 리소스를 만들 것입니다. 이것은 HTML 웹 리소스의 매우 간단한 예입니다. 실제로 HTML 웹 리소스는 이보다 더 복잡합니다.

Step 1 − 이름이 HTML 파일 생성 sampleHTMLWebResource.html 다음 코드를 복사하십시오.

<!DOCTYPE html> 
<htmllang = "en"xmlns = "http://www.w3.org/1999/xhtml"> 
   <head> 
      <metacharset = "utf-8"/> 
      <title>Welcome to Tutorials Point</title> 
   </head> 
   
   <body> 
      <h1>Welcome to Tutorials Point. This is an example of HTML Web Resource.</h1> 
   </body> 
</html>

Step 2− 먼저 새 웹 리소스를 생성 한 다음 연락처 양식에서 참조합니다. DefaultSolution을 열고 왼쪽 패널에서 WebResources 탭으로 이동합니다. 새로 만들기를 클릭합니다.

Step 3− 새 웹 리소스 창이 열립니다. 다음 스크린 샷에 표시된대로 세부 정보를 입력하고 1 단계에서 만든 HTML 파일을 찾습니다. 저장 및 게시를 클릭합니다. 창을 닫습니다.

Step 4 − 웹 리소스 그리드에 추가 된 새 웹 리소스가 표시됩니다.

Step 5− 이제 설정 → 사용자 지정 → 시스템 사용자 지정 → 연락처 → 기본 양식을 통해 문의 양식을 엽니 다. 연락처 정보 섹션을 선택하고 상단 리본 바에서 삽입 탭으로 전환합니다. 웹 리소스를 클릭합니다.

Step 6− 웹 리소스 추가 창이 열립니다. 이 창에서 웹 리소스 조회를 클릭하면 웹 리소스 조회 레코드 창이 열립니다. 방금 생성 한 웹 리소스 (new_sampleHTMLWebResource)를 검색하고 그리드에서 선택한 다음 추가를 클릭합니다.

Step 7− 웹 리소스 추가로 돌아가서 다음 스크린 샷과 같이 이름과 레이블을 입력하고 확인을 클릭합니다. 창을 닫습니다.

주소 필드 아래에 추가 된 HTML 웹 리소스를 볼 수 있습니다.

Step 8 −이를 테스트하려면 연락처 레코드를 열면 HTML 웹 리소스 내용이 표시됩니다.

HTML 웹 리소스의 한계

  • HTML 웹 리소스에서 지원되는 서버 측 코드 사용 방법은 없습니다.

  • HTML 웹 리소스는 제한된 수의 매개 변수 만 허용 할 수 있습니다. 데이터 매개 변수에 둘 이상의 값을 전달하려면 다른 쪽 끝에 디코딩 논리가 포함 된 매개 변수를 인코딩해야합니다.

CRM의 워크 플로를 사용하면 CRM 내에서 간단하고 복잡한 비즈니스 프로세스를 자동화 할 수 있습니다. CRM 기본 기능을 사용하여 워크 플로를 만들거나 복잡한 워크 플로를 구현하기 위해 .NET 코드로 사용자 지정 워크 플로를 작성할 수 있습니다. 워크 플로 프로세스는 백그라운드 또는 실시간으로 실행되며 선택적으로 사용자 입력이 필요할 수 있습니다.

워크 플로는 특정 조건에 따라 트리거되거나 사용자가 수동으로 시작할 수도 있습니다. 내부적으로 CRM 워크 플로는 Windows Workflow Foundation을 사용하여 구현됩니다. 이 장에서는 워크 플로 구성에 대해 알아 봅니다.

워크 플로우 구성은 다음과 같은 주요 부분으로 구성됩니다 (순서대로)-

  • 워크 플로가 실행될 엔터티 구성
  • 워크 플로를 동기식으로 실행할지 비동기식으로 실행할지 구성
  • 워크 플로가 실행될 메시지 (이벤트) 구성
  • 워크 플로가 실행될 범위 구성
  • 워크 플로의 단계 및 단계 (작업) 구성

동기 / 비동기 워크 플로우

워크 플로를 만들 때 워크 플로가 실시간 (동기식) 또는 백그라운드 (비동기식)에서 실행되는지 여부를 결정하는 백그라운드에서이 워크 플로 실행 (권장) 옵션이 표시됩니다.

일반적으로 권장되는 방법은 사용 가능한 경우 시스템 리소스를 사용하므로 백그라운드에서 워크 플로를 실행하는 것입니다. 그러나 언제든지 실시간 워크 플로에서 백그라운드 워크 플로로 또는 그 반대로 전환 할 수 있습니다.

워크 플로우 메시지

워크 플로는 다음과 같이 특정 이벤트에 등록 할 수 있습니다.

  • 레코드가 생성 될 때
  • 레코드 상태가 변경되는 경우
  • 레코드가 할당 된 경우
  • 레코드 필드 값이 변경되는 경우
  • 레코드가 삭제 된 경우

워크 플로우 범위

워크 플로를 사용하면 워크 플로가 실행될 범위를 설정할 수 있습니다. 다음은 지원되는 워크 플로 범위입니다-

User 워크 플로는 워크 플로 사용자와 동일한 사용자가 소유 한 레코드에서만 실행됩니다.
Business Unit 워크 플로는 워크 플로 사용자와 동일한 업무 부서의 사용자가 소유 한 레코드에서 실행됩니다.
Parent Child Business Units 워크 플로는 모든 하위 비즈니스 단위뿐만 아니라 워크 플로 사용자와 동일한 비즈니스 단위 사용자가 소유 한 레코드에서 실행됩니다.
Organization 워크 플로는 CRM의 모든 사용자가 소유 한 레코드에서 실행됩니다.

워크 플로우 단계

CRM의 워크 플로는 워크 플로가 따라야하는 일련의 단계 조합입니다. 이러한 단계를 논리적 단계로 나눌 수도 있습니다. 다음 단계는 CRM 워크 플로에서 지원됩니다-

Conditional Steps
Check Condition 논리적 "if (조건)-then"문을 지정합니다.
Conditional Branch 논리적 "else – if – then"문을 지정합니다. 이것은 Check Condition에서만 사용할 수 있습니다.
Default Action 논리적 "else"문을 지정합니다. 이것은 Check Condition에서만 사용할 수 있습니다.
Wait Steps
Wait Condition 특정 조건이 충족 될 때까지 기다립니다. 실시간 워크 플로에는 적용되지 않습니다.
Parallel Wait Branch 초기 기준이 충족되면 수행 할 수있는 추가 단계 세트로 대체 대기 조건을 지정합니다.
Action Steps
Create Record 지정된 기본값을 사용하여 지정된 엔터티의 레코드를 만듭니다.
Update Record 지정된 값 또는 동적 값으로 선택한 레코드를 업데이트합니다.
Assign Record 선택한 레코드를 사용자 또는 팀에 할당합니다.
Send Email 이메일을 보냅니다.
Perform Action 사용자 지정 워크 플로 단계 (및 작업)를 지정합니다. 이러한 사용자 지정 단계는 CRM 개발자가 개발해야합니다.
Change Status 선택한 레코드의 상태를 변경합니다.
Stop Workflow 현재 워크 플로우를 중지합니다.

워크 플로 예

이 예에서는 새로 생성 된 연락처 레코드를 특정 사용자에게 할당하기 위해 백그라운드에서 실행되는 간단한 워크 플로를 만든 다음 고객에게 환영 이메일을 보냅니다.

Step 1 − 설정 → 프로세스로 이동합니다.

Step 2 − 새로 만들기를 클릭합니다.

Step 3 − CreateProcess 창에서 다음 정보를 입력합니다 −

Process Name − 새 고객 워크 플로 (원하는 이름이 될 수 있음)

Category − 워크 플로

Entity − 연락처 (워크 플로를 생성하는 엔티티입니다. 여기서는 연락처입니다.)

Run this workflow in the background (recommended)− 백그라운드 비동기 워크 플로를 생성 할 때이 옵션을 선택합니다. 마지막으로 확인을 클릭합니다.

Step 4 − 새 프로세스 창에서 다음 정보를 입력하세요 −

Activate As − 프로세스

Scope − 사용자

Start when − 기록이 생성됨

딸깍 하는 소리 Add Step → 기록 할당.

Step 5− 워크 플로에 추가 된 새 단계가 표시됩니다. 이 단계에서는 생성 된 모든 연락처를 할당 할 사용자를 지정합니다. 단계 이름을 다음과 같이 입력하십시오.Assign Record to Team. 할당 옵션은 기본적으로 워크 플로를 만드는 엔터티로 설정됩니다 (이 경우 연락처). 조회 아이콘을 클릭합니다.

Step 6− 조회 창에서 원하는 사용자를 선택하십시오. 레코드를 할당 할 특정 팀을 선택할 수도 있습니다. 추가를 클릭하십시오.

Step 7− 단계 추가 → 이메일 보내기를 클릭하여 다른 단계를 추가합니다. 이 단계에서는 고객에게 이메일 보내기를 구성합니다.

Step 8− 새로운 단계가 추가됩니다. 고객에게 이메일 보내기로 이름을 입력합니다. 속성 설정을 클릭합니다.

Step 9 − 이메일을 구성 할 다음 창에서 다음 작업을 수행합니다.

From− From 필드를 클릭합니다. 오른쪽 패널에서 OwningUser 및 사용자를 선택합니다. 추가 → 확인을 클릭합니다.

To− To 필드를 클릭합니다. 오른쪽 패널에서 연락처 및 연락처를 선택합니다. 추가 → 확인을 클릭합니다.

Subject − 관련 주제를 입력합니다.

Body − 관련 본문 내용을 입력합니다.

Step 10 − 저장을 클릭 한 다음 활성화를 클릭합니다.

Step 11 − 이어지는 프로세스 활성화 확인 팝업에서 활성화를 클릭합니다.

Step 12− 연락처 탭으로 이동하여 새 연락처를 만듭니다. 레코드를 저장하여 새 연락처를 만드는 즉시 워크 플로에서 구성한 사용자로 설정된 소유자 필드가 표시됩니다. 또한 활동 탭을 클릭하면이 연락처에 대해 생성되는 이메일 활동을 볼 수 있습니다. 이는 워크 플로가 성공적으로 실행되었음을 확인합니다.

워크 플로 대 플러그인

워크 플로와 플러그인을 모두 사용하여 CRM 기능을 확장하고 자동화 할 수 있습니다. 많은 시나리오에서 두 가지 접근 방식을 서로 바꿔서 사용할 수 있습니다. 예를 들어 고객에게 이메일을 보내는 간단한 요구 사항이있는 경우 플러그인 또는 워크 플로를 통해 수행 할 수 있습니다.

그렇다면 워크 플로우 생성과 플러그인 생성 중에서 어떻게 선택합니까? 다음 목록은 동일한 설명을 시도합니다.

  • 플러그인과 워크 플로는 모두 동기 및 비동기 논리를 실행하는 데 사용할 수 있지만 일반적으로 플러그인은 동기 논리에 선호되고 워크 플로는 비동기 논리에 선호됩니다.

  • 일반적으로 복잡한 비즈니스 로직을 구현하려면 워크 플로보다 플러그인이 선호됩니다. 비교적 쉬운 기능 (예 : 이메일 전송, 사용자 할당 등)을 원할 때 워크 플로가 선호됩니다.

  • 플러그인은 코딩을 통해 개발해야하며, 워크 플로에 대한 지식없이 비즈니스 사용자가 워크 플로를 직접 구성 할 수 있습니다.

  • 워크 플로는 주문형으로 실행할 수 있습니다. 따라서 사용자가 일부 논리를 수동으로 실행하려는 요구 사항이있는 경우 워크 플로가 더 나은 선택이 될 것입니다.

  • 성능 영향에서 동기 플러그인은 요청 빈도가 더 높은 시나리오에서 실시간 워크 플로에 비해 더 나은 성능 (및 처리량)을 제공합니다.

결론

이 장에서는 CRM의 매우 중요한 기능 중 하나 인 워크 플로를 소개했습니다. 먼저 동기화 / 비동기 워크 플로, 메시지, 범위, 단계를 이해하고 마지막으로 워크 플로를 만들고 실행하는 실제 예제를 살펴 보았습니다. 마지막으로 워크 플로와 플러그인의 차이점을 확인했습니다.

플러그인은 플랫폼의 표준 동작을 수정하거나 확장하기 위해 Microsoft Dynamics CRM과 통합되는 사용자 지정 비즈니스 논리입니다. 플러그인은 이벤트 처리기 역할을하며 CRM의 특정 이벤트에서 실행되도록 등록됩니다. 플러그인은 C # 또는 VB로 작성되며 동기 또는 비동기 모드로 실행할 수 있습니다.

플러그인을 작성하는 몇 가지 시나리오는 다음과 같습니다.

  • CRM 레코드를 만들거나 업데이트 할 때 레코드의 특정 필드 업데이트 또는 관련 레코드 업데이트 등과 같은 일부 비즈니스 논리를 실행하려고합니다.

  • 레코드 저장 또는 업데이트와 같은 특정 이벤트에 대해 외부 웹 서비스를 호출하려고합니다.

  • 레코드가 열릴 때 필드 값을 동적으로 계산하려고합니다.

  • CRM의 특정 이벤트에 대해 고객에게 전자 메일을 보내는 것과 같은 프로세스를 자동화하려고합니다.

이벤트 프레임 워크

CRM의 이벤트 처리 프레임 워크는 동기 및 비동기 플러그인 요청을 이벤트 실행 파이프 라인에 전달하여 처리합니다. 이벤트가 플러그인 로직을 트리거 할 때마다 다른 플러그인이나 플랫폼의 핵심 작업에서 읽거나 수정할 수있는 메시지가 CRM 조직 웹 서비스로 전송됩니다.

플러그인 파이프 라인 단계

전체 플러그인 파이프 라인은 사용자 지정 비즈니스 로직을 등록 할 수있는 여러 단계로 나뉩니다. 지정된 파이프 라인 단계는 플러그인 코드가 실행되는 플러그인 실행주기 단계를 나타냅니다. 다음 표에 지정된 모든 파이프 라인 단계 중에서 사전 및 사후 이벤트에만 커스텀 플러그인을 등록 할 수 있습니다. Platform Core Main Operations에는 플러그인을 등록 할 수 없습니다.

행사 예명 기술
사전 이벤트 사전 검증 기본 시스템 작업 전에 실행할 플러그인에 대한 파이프 라인의 스테이지입니다. 이 단계에서 등록 된 플러그인은 데이터베이스 트랜잭션 외부에서 실행될 수 있습니다.
사전 이벤트 작동 전 기본 시스템 작업 전에 실행될 플러그인에 대한 파이프 라인의 스테이지입니다. 이 단계에서 등록 된 플러그인은 데이터베이스 트랜잭션 내에서 실행됩니다.
플랫폼 핵심 운영 MainOperation 트랜잭션 중, 생성, 업데이트, 삭제 등과 같은 시스템의 주요 작업입니다. 이 단계에서는 사용자 정의 플러그인을 등록 할 수 없습니다. 내부 전용입니다.
이벤트 후 수술 후 기본 작업 후에 실행될 플러그인에 대한 파이프 라인의 스테이지입니다. 이 단계에서 등록 된 플러그인은 데이터베이스 트랜잭션 내에서 실행됩니다.

CRM 애플리케이션이 이벤트 (레코드 저장 또는 업데이트와 같은)를 호출 할 때마다 다음과 같은 일련의 작업이 수행됩니다.

  • 이벤트는 웹 서비스 호출을 트리거하고 실행은 이벤트 파이프 라인 단계 (사전 이벤트, 플랫폼 핵심 작업, 사후 이벤트)를 통해 전달됩니다.

  • 정보는 내부적으로 OrganizationRequest 메시지로 패키징되어 최종적으로 내부 CRM 웹 서비스 메서드 및 플랫폼 핵심 작업으로 전송됩니다.

  • OrganizationRequest 메시지는 플랫폼 코어 작업에 전달하기 전에 정보를 수정할 수있는 사전 이벤트 플러그인에 의해 먼저 수신됩니다. 플랫폼 핵심 작업 후 메시지는 OrganizationResponse로 패키징되고 작업 후 플러그인에 전달됩니다. postoperations 플러그인은이 정보를 비동기 플러그인에 전달하기 전에 선택적으로 수정할 수 있습니다.

  • 플러그인은 추가 처리가 발생한 후 Execute 메서드에 전달되는 컨텍스트 개체의 형태로이 정보를 수신합니다.

  • 모든 플러그인 처리가 완료된 후 실행은 이벤트를 트리거 한 애플리케이션으로 다시 전달됩니다.

플러그인 메시지

메시지는 플러그인 (또는 비즈니스 로직)이 등록 된 이벤트입니다. 예를 들어, 연락처 엔티티의 메시지 작성에 플러그인을 등록 할 수 있습니다. 이렇게하면 새 연락처 레코드가 생성 될 때마다 비즈니스 로직이 실행됩니다.

사용자 지정 엔터티의 경우 엔터티가 사용자 소유인지 조직 소유인지에 따라 지원되는 메시지는 다음과 같습니다.

메시지 이름 소유권 유형
양수인 사용자 소유 엔티티 만
창조하다 사용자 소유 및 조직 소유 엔티티
지우다 사용자 소유 및 조직 소유 엔티티
GrantAccess 사용자 소유 엔티티 만
ModifyAccess 사용자 소유 엔티티 만
검색 사용자 소유 및 조직 소유 엔티티
RetrieveMultiple 사용자 소유 및 조직 소유 엔티티
RetrievePrincipalAccess 사용자 소유 엔티티 만
RetrieveSharedPrincipalsAndAccess 사용자 소유 엔티티 만
액세스 권한을 취소 사용자 소유 엔티티 만
SetState 사용자 소유 및 조직 소유 엔티티
SetStateDynamicEntity 사용자 소유 및 조직 소유 엔티티
최신 정보 사용자 소유 및 조직 소유 엔티티

기본 제공 엔터티의 경우 지원되는 메시지가 100 개가 넘습니다. 이러한 메시지 중 일부는 모든 엔티티에 적용 할 수 있지만 일부는 특정 엔티티에 고유합니다. SDK 내의 Excel 파일에서 지원되는 전체 메시지 목록을 찾을 수 있습니다.SDK\Message-entity support for plug-ins.xlsx

플러그인 작성

이 섹션에서는 플러그인 작성의 기본 사항을 배웁니다. 새 고객이 시스템에 추가 될 때마다 (즉, CRM에서 새 Contactrecord가 생성 될 때마다) 고객과의 후속 조치를 위해 Task 활동을 생성하는 샘플 플러그인을 생성 할 것입니다.

우선, 다음에 대한 참조를 포함해야합니다. Microsoft.Xrm.Sdk네임 스페이스. CRM SDK에는 필요한 모든 SDK 어셈블리가 포함되어 있습니다. 2 장에서 SDK를 이미 다운로드하고 설치했다고 가정하고 Visual Studio를 엽니 다. 클래스 라이브러리 유형의 새 프로젝트를 만듭니다. 프로젝트 이름을 SamplePlugins로 지정하고 확인을 클릭 할 수 있습니다.

참조 추가 Microsoft.Xrm.Sdk프로젝트에 어셈블리. 어셈블리가 있습니다.SDK/Bin.

이제 PostCreateContact.cs 클래스를 확장하십시오. IPlugin. 지금까지 코드는 다음과 같습니다.

System.Runtime.Serialization에 대한 참조도 추가해야합니다. 필요한 참조를 추가했으면 다음 코드를PostCreateContact 수업.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;

namespace SamplePlugins {
   public class PostCreateContact:IPlugin {
      /// A plug-in that creates a follow-up task activity when a new account is created.
      /// Register this plug-in on the Create message, account entity,
      /// and asynchronous mode.

      public void Execute(IServiceProviderserviceProvider) {
         // Obtain the execution context from the service provider.
         IPluginExecutionContext context =(IPluginExecutionContext)
            serviceProvider.GetService(typeof(IPluginExecutionContext));

         // The InputParameters collection contains all the data
            passed in the message request.

         if(context.InputParameters.Contains("Target")&&
            context.InputParameters["Target"]isEntity) {
            
            // Obtain the target entity from the input parameters.
            Entity entity = (Entity)context.InputParameters["Target"];
            try {
               
               // Create a task activity to follow up with the account customer in 7 days
               Entity followup = new Entity("task");
               followup["subject"] = "Send e-mail to the new customer.";
               followup["description"] =
                  "Follow up with the customer. Check if there are any new issues
                  that need resolution.";
               
               followup["scheduledstart"] = DateTime.Now;
               followup["scheduledend"] = DateTime.Now.AddDays(2);
               followup["category"] = context.PrimaryEntityName;

               // Refer to the contact in the task activity.
               if(context.OutputParameters.Contains("id")) {
                  Guid regardingobjectid = new Guid(context.OutputParameter
                     s["id"].ToString());
                  string regardingobjectidType = "contact";
                  followup["regardingobjectid"] = 
                     new EntityReference(rega rdingobjectidType,regardingobjectid);
               }
               
               // Obtain the organization service reference.
               IOrganizationServiceFactory serviceFactory =
                  (IOrganizationSer viceFactory)serviceProvider.GetService
                  (typeof(IOrganizationServiceFactory));
               IOrganizationService service = 
                  serviceFactory.CreateOrganizationService(context.UserId);

               // Create the followup activity
               service.Create(followup);
            } catch(Exception ex) {
               throw new InvalidPluginExecutionException(ex.Message);
            }
         }
      }
   }
}

다음은이 코드가 수행하는 작업에 대한 단계별 설명입니다.

Step 1− IServiceProvider 객체를 매개 변수로 사용하여 Execute 메서드를 구현합니다. 서비스 공급자는 플러그인 내에서 사용할 많은 유용한 개체에 대한 참조를 포함합니다.

Step 2 − IServiceProvider의 GetService 메소드를 이용하여 IPluginExecutionContext 객체를 획득합니다.

Step 3− 컨텍스트 개체의 InputParameters 컬렉션에서 대상 개체의 개체를 가져옵니다. 이 Entity 클래스 개체는 플러그인이 등록 될 연락처 엔터티 레코드를 참조합니다.

Step 4− 그런 다음 Task 개체의 개체를 생성하고 적절한 제목, 설명, 날짜, 범주 및 관련 개체 ID를 설정합니다. Relatedobjectid는이 활동 레코드가 생성되는 연락처 레코드를 나타냅니다. 코드가 context.OutputParameters를 사용하여 상위 연락처 레코드의 ID를 가져오고 생성 한 작업 엔터티 레코드와 연결하는 것을 볼 수 있습니다.

Step 5 − IServiceProvider 객체를 이용하여 IOrganizationServiceFactory의 객체를 생성합니다.

Step 6 − IOrganizationServiceFactory 객체를 이용하여 IOrganizationService의 객체를 생성합니다.

Step 7− 마지막으로이 서비스 객체의 Create 메소드를 사용합니다. CRM에 저장되는 후속 활동을 생성합니다.

플러그인 어셈블리 서명

이 섹션은 플러그인 어셈블리를 처음 등록하는 경우에만 적용됩니다. 플러그인을 배포하려면 키를 사용하여 어셈블리에 로그인해야합니다. 솔루션을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

왼쪽 옵션에서 서명 탭을 선택하고 '어셈블리 서명'옵션을 선택합니다. 그런 다음 강력한 이름 키 파일 선택 옵션에서 새로 만들기를 선택합니다.

키 파일 이름을 sampleplugins로 입력합니다 (원하는 다른 이름 일 수 있음). 암호로 내 키 파일 보호 옵션을 선택 취소하고 확인을 클릭하십시오. 저장을 클릭하십시오.

마지막으로 솔루션을 구축하십시오. 오른쪽 클릭 → 빌드. 솔루션을 빌드하면 다음 장에서이 플러그인을 등록하는 데 사용할 어셈블리 DLL이 생성됩니다.

플러그인의 예외 처리

종종 플러그인 로직은 런타임 예외를 처리해야합니다. 동기식 플러그인의 경우InvalidPluginExecutionException사용자에게 오류 대화 상자를 표시합니다. 오류 대화 상자에는 예외 개체의 메시지 개체에 전달하는 사용자 지정 오류 메시지가 포함됩니다.

코드를 보면 catch 블록에서 InvalidPluginExecutionException 예외가 발생합니다.

throw new InvalidPluginExecutionException(ex.Message);

결론

플러그인은 모든 사용자 지정 CRM 구현에 확실히 중요합니다. 이 장에서는 이벤트 프레임 워크 모델, 파이프 라인 단계, 메시지를 이해하고 샘플 플러그인을 작성하는 데 중점을 두었습니다. 다음 장에서는이 플러그인을 CRM에 등록하고 종단 간 시나리오에서 작동하는지 확인합니다.

마지막 장에서는 연락처 레코드가 생성 될 때 후속 작업 활동을 생성하는 샘플 플러그인을 생성했습니다. 이 장에서는 플러그인 등록 도구를 사용하여 CRM에이 플러그인을 등록하는 방법을 살펴 봅니다. 이 도구는 SDK / Tools / PluginRegistration / PluginRegistration.exe 위치에서 찾을 수 있습니다.

편의를 위해 플러그인 등록 프로세스는 세 섹션으로 나뉩니다.

  • 서버에 연결
  • 어셈블리 등록
  • 플러그인 등록

서버에 연결

Step 1 − 실행 PluginRegistration.exe이전에 지정한 위치에서. 새 연결 만들기 버튼을 클릭합니다.

Step 2− 로그인 창에서 온라인 버전의 CRM을 사용하고 있으므로 Office 365를 선택합니다. 자격 증명을 입력하고 로그인을 클릭합니다.

Step 3 − 도구가 열리고 다음 스크린 샷과 같이 보입니다.

어셈블리 등록

Step 1 − 등록 → 새 어셈블리 등록으로 이동합니다.

Step 2− 그러면 새 어셈블리 등록 창이 열립니다. 탐색 아이콘을 클릭하고 지난 장에서 만든 플러그인 DLL을 찾습니다.

Step 3− DLL을 탐색 한 후 어셈블리로드를 클릭합니다. 그러면 SamplePlugins 어셈블리와 모든 플러그인 클래스가 채워집니다. 당신은 볼 수 있습니다PostCreateContact아래에 강조 표시된 플러그인 클래스. 플러그인 어셈블리에 3 개의 플러그인 클래스가 있다면 거기에 나열된 3 개의 플러그인이 표시되었을 것입니다.

Step 4− 격리 모드를 샌드 박스로, 위치를 데이터베이스로 선택하고 선택한 플러그인 등록을 클릭합니다. 등록이 성공하면 성공 메시지가 표시됩니다.

플러그인 등록

이제 개별 플러그인이 호출 될 특정 단계를 등록 할 것입니다.

Step 1 − PostCreateContact 플러그인을 선택합니다.

Step 2 − 등록 → 새 단계 등록을 클릭합니다.

Step 3 −이 플러그인은 Contact 엔티티 생성, 사후 작업 단계 및 동기 모드에서 등록 할 것입니다.

Message − 만들기

Primary Entity − 연락처

Event Pipeline Stage of Execution − 수술 후

Execution Mode − 동기

나머지 옵션은 기본적으로 유지하고 새 단계 등록을 클릭합니다.

플러그인에 추가 된 새 단계를 볼 수 있습니다.

이제 CRM으로 이동하여 플러그인이 올바르게 작동하는지 테스트합니다. 이 테스트 단계는 예제 플러그인에만 해당됩니다.

플러그인 테스트

연락처 탭으로 이동하여 새 레코드를 만듭니다. 레코드를 저장하면이 레코드와 연결된 새 활동을 볼 수 있습니다.

활동을 클릭하면 코드에서 설정 한 세부 정보를 볼 수 있습니다.

이는 플러그인이 성공적으로 실행되었음을 확인합니다. 마찬가지로 플러그인을 확장하여 매우 복잡한 기능을 수행 할 수 있습니다.

Microsoft Dynamics CRM은 외부 응용 프로그램에서 CRM에 액세스하고 웹 메서드를 호출하여 CRM에서 만들기, 삭제, 업데이트 및 찾기와 같은 일반적인 비즈니스 데이터 작업을 수행하는 데 사용되는 두 가지 중요한 웹 서비스를 제공합니다.

다음 시나리오를 고려하십시오-

  • CRM과 통신해야하는 외부 .NET 응용 프로그램이 있습니다. 예를 들어 새 고객이 외부 응용 프로그램에 등록 될 때 CRM에 연락처 레코드를 삽입 할 수 있습니다.

  • 또는 CRM에서 레코드를 검색하고 외부 응용 프로그램에 검색 결과를 표시 할 수 있습니다.

이러한 시나리오에서 CRM에 의해 노출 된 웹 서비스를 사용하여 응용 프로그램에서 사용하고 CRM에서 생성, 삭제, 업데이트 및 찾기 작업을 수행 할 수 있습니다.

IDiscoveryService 웹 서비스

이 웹 서비스는 지정된 사용자가 속한 조직 목록과 각 조직의 URL 끝점을 반환합니다.

IOrganizationService 웹 서비스

이 웹 서비스는 CRM에서 데이터 및 메타 데이터에 액세스하는 데 사용되는 기본 웹 서비스입니다. IOrganizationService는 두 가지 중요한 어셈블리를 사용합니다.Microsoft.Xrm.Sdk.dllMicrosoft.Crm.Sdk.Proxy.dll. 이러한 어셈블리는 내부 CRM SDK 패키지에서 찾을 수 있습니다.Bin 폴더.

Microsoft.Xrm.Sdk.dll

이 어셈블리는 Microsoft Dynamics CRM, 인증 방법 및 서비스 계약에 대한 연결을 단순화하기위한 프록시 클래스를 포함하여 핵심 xRM 방법 및 유형을 정의합니다.

Microsoft.Crm.Sdk.Proxy.dll

이 어셈블리는 비 핵심 메시지에 대한 요청 및 응답과 조직 데이터 작업에 필요한 열거를 정의합니다. 다음은이 두 어셈블리에서 지원하는 네임 스페이스입니다.

이러한 각 어셈블리는 모든 엔터티에 저장된 데이터로 작업하는 데 사용되는 특정 메시지를 지원합니다. 지원되는 메시지의 전체 목록은 다음 링크에서 찾을 수 있습니다.

Supported xRM Messages − https://msdn.microsoft.com/en-us/library/gg334698.aspx

Supported CRM Messages − https://msdn.microsoft.com/en-us/library/gg309482.aspx

IOrganizationService 웹 서비스 방법

그만큼 IOrganizationService 시스템 및 사용자 지정 엔터티 및 조직 메타 데이터에 대한 모든 일반 작업을 수행 할 수있는 8 가지 방법을 제공합니다.

Sr. 아니요 방법 및 설명
1

IOrganizationService.Create

레코드를 만듭니다.

2

IOrganizationService.Update

기존 레코드를 업데이트합니다.

IOrganizationService. Retrieve

레코드를 검색합니다.

4

IOrganizationService. RetrieveMultiple

레코드 모음을 검색합니다.

5

IOrganizationService. Delete

레코드를 삭제합니다.

6

IOrganizationService. Associate

레코드 간의 링크를 만듭니다.

7

IOrganizationService.Disassociate

레코드 간의 링크를 삭제합니다.

8

IOrganizationService.Execute

일반 레코드 처리는 물론 케이스 해결, 중복 감지 등과 같은 특수 처리에 사용됩니다.

웹 서비스 예

CRM에서 웹 서비스가 작동하는 방식을 이해하기 위해 CRM SDK에서 제공하는 예제를 살펴 보겠습니다. 이 예에서는 새 계정 레코드를 만들고 업데이트 한 다음 마지막으로 CRM을 사용하여 삭제합니다.IOrganizationService 웹 서비스.

Step 1− CRM SDK를 추출한 폴더를 엽니 다. 이제 다음 위치로 이동하여 QuickStartCS.sln 솔루션을 엽니 다 .SDK \ SampleCode \ CS \ QuickStart

Step 2 − 우리는 QuickStartSimplified Connection계획. 열다app.config이 프로젝트에서. 기본적으로connectionStrings 이 파일의 섹션에 주석이 추가됩니다.

여기에서 첫 번째 연결 문자열 키의 주석 처리를 제거하고 다음 세 가지 세부 정보를 편집하십시오.

Url− CRM 인스턴스의 URL을 지정합니다. 우리의 경우 온라인 버전의 CRM을 사용하고 있으므로 해당 URL을 언급해야합니다.

Username − CRM Online 사용자 이름.

Password − CRM Online 비밀번호.

Step 3 − 열기 SimplifiedConnection.cs 이 프로젝트의 파일과 그 안에있는 Runmethod.

public void Run(StringconnectionString, boolpromptforDelete) {
   try {
      
      // Establish a connection to the organization web service using CrmConnection.
      Microsoft.Xrm.Client.CrmConnection connection =
         CrmConnection.Parse(connectionString);
      
      // Obtain an organization service proxy.
      // The using statement assures that the service proxy will be properly disposed.
      using(_orgService = new OrganizationService(connection)) {

         //Create any entity records this sample requires.
         CreateRequiredRecords();
         
         // Obtain information about the logged on user from the web service.
         Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId;
         SystemUser systemUser = (SystemUser)_orgService.Retrieve("systemuser",userid,
            new ColumnSet(newstring[]{"firstname","lastname"}));
         
         Console.WriteLine("Logged on user is {0} {1}.",
            systemUser.FirstName,systemUser.LastName);

         // Retrieve the version of Microsoft Dynamics CRM.
         RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
         RetrieveVersionResponse versionResponse =
            (RetrieveVersionResponse)_orgService.Execute(versionRequest);
         Console.WriteLine("Microsoft Dynamics CRM version {0}.",
            versionResponse.Version);
         
         // Instantiate an account object. Note the use of option set
         enumerations defined in OptionSets.cs.
         
         // Refer to the Entity Metadata topic in the SDK documentation to
         determine which attributes must
         
         // be set for each entity.
         Account account = new Account{Name = "Fourth Coffee"};
         account.AccountCategoryCode = new OptionSetValue(
            (int)AccountAccountCateg oryCode.PreferredCustomer);
         account.CustomerTypeCode = new OptionSetValue(
            (int)AccountCustomerTypeCod e.Investor);
         
         // Create an account record named Fourth Coffee.
         _accountId = _orgService.Create(account);
         Console.Write("{0} {1} created, ",account.LogicalName,account.Name);
         
         // Retrieve the several attributes from the new account.
         ColumnSet cols = new ColumnSet(
            new String[]{"name","address1_postalcode","lastusedincampaign"});
         Account retrievedAccount =
            (Account)_orgService.Retrieve("account", _accountId, cols);
         Console.Write("retrieved, ");

         // Update the postal code attribute.
         retrievedAccount.Address1_PostalCode = "98052";

         // The address 2 postal code was set accidentally, so set it to null.
         retrievedAccount.Address2_PostalCode = null;

         // Shows use of a Money value.
         retrievedAccount.Revenue = new Money(5000000);

         // Shows use of a Boolean value.
         retrievedAccount.CreditOnHold = false;
         
         // Update the account record.
         _orgService.Update(retrievedAccount);
         Console.WriteLine("and updated.");
         
         // Delete any entity records this sample created.
         DeleteRequiredRecords(promptforDelete);
      } 
   } 
   // Catch any service fault exceptions that Microsoft Dynamics CRM throws.
   catch(FaultException<microsoft.xrm.sdk.organizationservicefault>) {

      // You can handle an exception here or pass it back to the calling method.
      throw;
   }
}

Step 4−이 방법은 기본적으로 CRM 웹 서비스를 사용하는 모든 CRUD 작업을 보여줍니다. 코드는 먼저 조직 인스턴스를 만든 다음 계정 레코드를 만들고 생성 된 레코드를 업데이트 한 다음 마지막으로 삭제합니다. 이 코드의 중요한 구성 요소를 살펴 보겠습니다. 이 코드가 실행될 때 CRM의 이동 중 변경 사항을 확인하려면이 코드를 단계별로 디버깅하고 (아래에서 설명) CRM의 변경 사항을 동시에 확인할 수 있습니다.

Step 4.1 − 수정 한 연결 문자열을 사용하여 조직에 대한 연결을 설정합니다. Step 2.

Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);

Step 4.2 − CRM 조직 웹 서비스의 프록시 인스턴스를 얻습니다.

_orgService = new OrganizationService(connection)

Step 4.3 − 새로운 계정 엔티티 객체를 생성하고 이름, AccountCategoryCode 및 CustomerTypeCode를 설정합니다.

Account account = new Account{Name = "Fifth Coffee"}; 
account.AccountCategoryCode = new OptionSetValue(
   (int)AccountAccountCategoryCode.P referredCustomer); 
account.CustomerTypeCode = new OptionSetValue(
   (int)AccountCustomerTypeCode.Investor);

Step 4.4 − 조직 서비스 생성 방법을 이용하여 신규 레코드를 생성합니다.

_accountId = _orgService.Create(account);

CRM으로 이동하면 새로 생성 된 계정 레코드가 표시됩니다.

Step 4.5 − 계정이 생성되면 서비스는 웹 서비스 검색 방법을 사용하여 CRM에서 레코드를 검색합니다.

ColumnSet cols = new ColumnSet(new String[]{
   "name","address1_postalcode","lastusedincampaign"}); 
Account retrievedAccount = 
   (Account)_orgService.Retrieve("account", _accountId, cols);

Step 4.6 − 검색된 레코드가 있으면 레코드의 업데이트 된 값을 설정할 수 있습니다.

retrievedAccount.Address1_PostalCode = "98052"; 
retrievedAccount.Address2_PostalCode = null; 
retrievedAccount.Revenue = new Money(5000000); 
retrievedAccount.CreditOnHold = false;

Step 4.7 − 업데이트 된 레코드 값을 설정 한 후 업데이트 웹 서비스 방법을 사용하여 레코드를 CRM 데이터베이스로 다시 업데이트합니다.

_orgService.Update(retrievedAccount);

CRM에서 레코드를 열면 해당 값이 업데이트 된 것을 볼 수 있습니다.

Step 4.8 − 마지막으로 웹 서비스 삭제 방법을 사용하여 기록을 삭제합니다.

_orgService.Delete(Account.EntityLogicalName, _accountId);

이제 CRM에서 동일한 레코드를 새로 고치면 레코드가 이미 삭제되었으므로 더 이상 사용할 수 없음을 알 수 있습니다.

결론

이 장에서는 CRM에서 제공하는 두 가지 중요한 웹 서비스와 이러한 웹 서비스를 외부 응용 프로그램에서 사용하여 다양한 CRUD 작업을 수행하는 방법에 대한 작업 예제를 다루었습니다.

솔루션은 비즈니스 기능에 맞게 구성 요소를 패키징, 설치 및 제거하기위한 프레임 워크를 제공합니다. 솔루션을 통해 커 스터 마이저와 개발자는 CRM을 확장하는 소프트웨어 단위를 작성, 패키징 및 유지 관리 할 수 ​​있습니다. CRM에서 수행되는 모든 사용자 지정, 확장 또는 구성은 솔루션을 사용하여 패키지화, 관리 및 배포됩니다. 솔루션은 소스 조직에서 zip 파일로 내보낼 수 있으며 대상 조직으로 가져올 수 있습니다.

이를 이해하기 위해 다음 예제 시나리오를 고려하십시오.

  • 개발자 또는 사용자 지정자로서 개발 환경에서 CRM을 확장하거나 사용자 지정했습니다. 이제 변경 사항을 패키징하고 다음 환경으로 이동하려고합니다. 이를 위해 개별 솔루션을 만들어 더 높은 환경에 게시 할 수 있습니다.

  • 타사 CRM 공급자는 외부 웹 서비스 API를 사용하여 Microsoft Dynamics CRM 엔터티의 데이터를 관리 할 수있는 CRM 모듈을 만들었습니다. 이제이 모듈을 다른 고객에게 판매하려고합니다. 솔루션을 사용하면이 모듈을 패키징하여이 솔루션을 설치하고 모듈에서 제공하는 기능을 사용할 수있는 다른 클라이언트에 배포 할 수 있습니다.

솔루션 유형

기본 시스템 솔루션

시스템 솔루션에는 사용자 지정없이 Microsoft Dynamics CRM 내에 정의 된 기본 솔루션 구성 요소가 포함되어 있습니다. 시스템 솔루션의 많은 구성 요소는 사용자 지정이 가능하며 관리 형 솔루션 또는 관리되지 않는 사용자 지정에 사용할 수 있습니다.

이 자습서에서는 솔루션을 만들지 않았으며 기본 시스템 솔루션을 사용자 지정했습니다. 기억 나시면 설정 → 사용자 정의 → 시스템 사용자 정의로 이동했습니다. 이 옵션은 기본 솔루션을 직접 사용자 지정합니다.

관리 솔루션

관리 형 솔루션은 완료되고 배포 및 설치 될 솔루션입니다. 관리 형 솔루션은 시스템 솔루션 또는 기타 관리 형 솔루션의 맨 위에 설치할 수 있습니다.

Important Points

  • 한 조직에서 관리 형 솔루션을 내보내고 다른 조직으로 가져 오는 경우 새 조직에서 솔루션을 편집 할 수 없습니다.

  • 관리 형 솔루션은 시스템 솔루션을 직접 참조하지 않습니다.

  • 관리 형 솔루션을 제거하면 솔루션과 관련된 모든 사용자 지정이 제거됩니다.

  • 기본적으로 관리 형 솔루션은 대상 조직에서 사용자 지정할 수 없습니다. 그러나 관리 속성 개념을 사용하여 솔루션 구성 요소를 사용자 지정할 수 있는지 여부를 정의 할 수 있으며, 그렇다면 솔루션을 관리 솔루션으로 내 보내면 구성 요소의 특정 부분을 사용자 지정할 수 있습니다.

관리되지 않는 솔루션

관리되지 않는 솔루션은 아직 개발 중이며 배포 할 수없는 솔루션입니다. 관리되지 않는 솔루션에는 추가, 수정, 제거 또는 삭제 된 구성 요소를 포함하여 CRM 구성 요소의 관리되지 않는 모든 사용자 지정이 포함됩니다. 기본적으로 모든 새 솔루션은 관리되지 않는 솔루션입니다. 그러나 비 관리 형 솔루션을 관리 형 또는 비 관리 형 솔루션으로 내보낼 수 있습니다.

Important Points

  • 한 조직에서 관리되지 않는 솔루션을 내보내고 다른 조직으로 가져 오는 경우 새 조직에서 솔루션을 편집 할 수 있습니다.

  • 관리되지 않는 솔루션은 시스템 솔루션을 직접 참조합니다. 따라서 하나의 관리되지 않는 솔루션에 대한 변경 사항은 시스템 솔루션을 포함하여 동일한 구성 요소를 참조하는 모든 관리되지 않는 솔루션에 적용됩니다.

  • 비 관리 형 솔루션에서 솔루션 구성 요소를 삭제하면 구성 요소가 시스템에서 영구적으로 삭제되고 더 이상 사용할 수 없게됩니다. 특정 관리되지 않는 솔루션에서 구성 요소를 제거하려는 경우 삭제 대신 제거를 사용합니다.

  • 비 관리 형 솔루션을 제거해도 관련 사용자 지정은 제거되지 않습니다. 시스템에서 솔루션을 삭제하기 만하지만 변경 한 내용은 그대로 유지됩니다.

솔루션 구성 요소

솔루션은 기본, 관리되지 않는 또는 관리되는 솔루션을 사용하여 사용자 정의 할 수있는 다음 구성 요소를 패키지하는 데 사용할 수 있습니다.

구성 요소 유형 구성 요소
개요 엔티티
속성
관계
글로벌 옵션 세트
사용자 인터페이스 응용 프로그램 리본
사이트 맵
양식
엔티티 리본
웹 리소스
해석학 대시 보드
보고서
시각화
프로세스 / 코드 프로세스
대화
워크 플로우
플러그인
어셈블리
처리 단계
템플릿 편지 병합
이메일
계약
보안 보안 역할
필드 수준 보안 프로필

솔루션 생성

Step 1− 설정 → 솔루션으로 이동합니다. 새로 만들기를 클릭합니다.

Step 2 − 다음 창에서 다음 세부 정보를 입력하고 저장 후 닫기를 클릭합니다.

Display Name − 샘플 솔루션 (원하는 이름이 될 수 있음).

Name− 표시 이름에 따라 자동으로 설정됩니다. 그러나 이것을 변경할 수 있습니다.

Publisher− 기본 게시자. 솔루션 게시자는 공통 사용자 지정 접두사 및 옵션 값 접두사를 제공합니다. 솔루션 게시자를 정의하면 배포 후 관리 형 솔루션을 업데이트 할 수있는 방법이 제어됩니다. 그러나이 예와 대부분의 일반적인 경우에는이를 기본 게시자로 설정할 수 있습니다.

Version− 다음 형식으로 버전을 지정합니다 : major.minor.build.revision. 예 : 1.0.0.0.

기본적으로 모든 솔루션은 비 관리 형 솔루션으로 추가됩니다. 솔루션이 추가되면이 솔루션의 컨텍스트에서 솔루션 구성 요소를 만들거나 다른 솔루션의 기존 구성 요소를 추가하여 솔루션 구성 요소를 추가 할 수 있습니다. 예를 들어이 새 솔루션의 컨텍스트에서 새 엔터티, 양식 등을 만들 수 있습니다.

솔루션 내보내기

관리 형 또는 비 관리 형 솔루션으로 패키징하려는 모든 변경 사항이 적용되면 다음과 같이 솔루션을 내보낼 수 있습니다.

Step 1− 소스 조직을 열고 설정 → 솔루션으로 이동합니다. 내보낼 솔루션을 선택하고 내보내기 버튼을 클릭합니다.

Step 2 − 사용자 지정 게시 창에서 모든 사용자 지정 게시를 클릭하고 다음을 클릭합니다.

Step 3− 다음 창에서 솔루션과 함께 내보낼 자동 번호 지정, 달력 설정 등과 같은 시스템 설정을 선택적으로 선택할 수 있습니다. 지금은 옵션을 선택하지 않고 다음을 클릭 할 수 있습니다.

Step 4− 패키지 유형 창에서 패키지를 관리 형 또는 비 관리 형 솔루션으로 내보낼 지 여부를 선택할 수 있습니다. 이 예에서는 관리되지 않는 것으로 내보내도록하겠습니다. 완료되면 다음을 클릭합니다.

Step 5− 다음 창에서 사용중인 CRM의 소스 버전을 볼 수 있으며 대상 버전을 선택할 수 있습니다. 내보내기를 클릭하십시오.

Step 6− 내보내기를 클릭하면 솔루션이 zip 파일로 내보내집니다. 이 zip 파일을 시스템의 원하는 위치에 저장하십시오.

솔루션 가져 오기

이제 이전 섹션에서 내 보낸 솔루션 zip 파일을 새 대상 조직으로 가져옵니다.

Step 1− 대상 조직을 열고 설정 → 솔루션으로 이동합니다. 가져 오기를 클릭하십시오.

Step 2 − 내보내기 단계에서 다운로드 한 zip 파일을 찾아보고 Next.

Step 3− 필요한 경우 다음 창에서 솔루션 패키지 세부 정보를 볼 수 있습니다. 가져 오기를 클릭하면 솔루션 가져 오기 프로세스가 시작됩니다.

Step 4− 가져 오기 프로세스가 완료되면 성공 또는 실패 상태가 표시됩니다. 프로세스가 성공하면 모든 사용자 지정 게시를 클릭합니다. 솔루션 가져 오기가 실패한 경우 가져 오기 프로세스의 어느 단계가 실패했는지에 대한 자세한 오류 로그를 제공합니다.

Step 5− 끝났습니다. 솔루션을 대상 조직으로 성공적으로 가져옵니다. 닫기를 클릭하십시오.

갈등 해결

CRM을 사용자 지정하고 확장하는 데 여러 개발자가 작업 할 수 있으므로 관리 및 비 관리 솔루션이 여러 개 있습니다. 이러한 솔루션을 내보내고 가져 오면 충돌 시나리오가 발생할 수 있습니다. 예를 들어 '솔루션 A'에는 양식에 필드가 포함되어 있고 '솔루션 B'는 필드를 제거하고 '솔루션 C'는 필드의 이름을 변경했다고 가정합니다. 이 시나리오에서 최종 변경 사항은 무엇입니까? 이러한 상충되는 시나리오에서 CRM은 두 가지 접근 방식을 사용합니다.

Merge−이 접근 방식은 명령 모음, 리본 및 사이트 맵과 같은 사용자 인터페이스 구성 요소에 사용됩니다. 이 접근 방식에 따라 솔루션 구성 요소는 맨 아래부터 다시 계산되며 조직의 관리되지 않는 사용자 지정은 마지막으로 적용됩니다.

Top Wins−이 접근 방식은 사용자 인터페이스 구성 요소를 제외한 다른 모든 충돌 시나리오에 사용됩니다. 이 접근 방식에 따라 마지막 변경 (관리 또는 비 관리)이 우선 순위를 가지며 적용됩니다.

결론

이 장에서는 솔루션의 개념과 다양한 유형의 솔루션 및 해당 구성 요소를 소개했습니다. 그런 다음 솔루션을 만들고 내보내고 가져 오는 방법을 배웠습니다. 마지막으로 동일한 솔루션 구성 요소에 영향을 미치는 여러 관리 형 및 비 관리 형 솔루션이있을 때 발생하는 두 가지 충돌 해결 전략에 대해 연구했습니다.