C#에서 CRM 라이브러리 (관리자)를 개발하여 여러 CRM 시스템과의 통신을 지원하려는 경우 (즉, 실행중인 상황) 한 번에 하나 이상의 CRM 인스턴스 (예 : 두 개의 다른 조직). CRM을 라이브러리에 대한CRM 개발 - 여러 조직을 지원하는 초기 접근 방식
요구 사항 :
사용 초기 바인딩 대신 런타임에 바인딩 한 관리자를 통해
더 CRM 시스템과 통신 할 수(단체) (때문에 형 안전)
모든 CRM 시스템 (조직)에 대해 한 번의 작업으로 (코드 중복 방지) 한 개만 생성됩니다. 생성 된 엔터티 파일 (crmsvcutil 도구)을 구문 분석 할 수있는 유틸리티를 만들거나 ganization. 파싱의 결과는 엔티티 파일에 정의 된 엔티티에 대한 인터페이스 및 부분 클래스 목록입니다. 인터페이스는 IAccountNumber와 같이 포함 된 속성에 따라 부분 클래스에서 구현됩니다. 두 개의 인터페이스 그룹이 있습니다. 첫 번째는 두 조직에서 공통된 엔티티 속성입니다. 인터페이스 ICrmAccount는 AccountNumber, Name, Address1 속성 등을 정의합니다. 두 번째 인터페이스 그룹은 엔티티에 고유하며 모든 CRM 시스템 (조직)의 엔티티에없는 속성에 대한 것입니다. 일반적인 CRM 관리자는 CreateAccount(), GetAccount() 등과 같이 구현 된 인터페이스로 인해 특정 CRM 시스템과 작동하는 모든 통신 방법을 제공하지 않습니다.
는 우리는 이제 두 개의 서로 다른 CRM 시스템과 통신 할 수있는 솔루션을 설계하지만 코드의 주석이 포함 밀폐 된 솔루션을 참조하십시오 특정 계정에 대해 구현 인터페이스를 사용 할 수 없습니다했다.
용액은 여기에서 찾을 수있다 : 용액
설명 :
CRM_BusinessLogic는 - 생성자에서 올바른 데이터 컨텍스트를 초기화 통신을위한 모든 방법을 보유하고있다 CRMManager 포함
CRM_Interfaces - 엔티티 파일 구문 분석의 결과 인 모든 생성 된 인터페이스를 포함합니다 (별도의 구문 분석 도구로 완료해야 함). 이제는 두 조직 모두에 공통된 속성 하나만 보유한 iCRMAccount와 두 데이터 컨텍스트에 구현 된 엔티티가 포함 된 iCRMContext가 포함되어 있습니다. 이제 두 컨텍스트 모두 동일한 엔티티 계정을 구현합니다.
CRM_SCEurope - 첫 번째 CRM 조직에 대해 생성 된 엔티티 파일을 포함 SC 유럽 - SCEuropeEntities.cs, 구문 분석 도구 (조직 컨텍스트에 엔티티가있는 인터페이스 목록 구현) - SCEuropeContext_generated 및 SCEuropeContext.올바른 조립
CRM_SoSW 반환 CS - CRM_SCEurope과 같은 내용이, 두 번째 CRM 조직
CRM_Test에 관련된 데이터를 포함 -
주의 두 조직와 통신 테스트 콘솔 응용 프로그램을 포함 동봉 된 솔루션에는 Name 매개 변수 만있는 Account 엔티티 만 포함되어있어 설계된 솔루션의 기본 테스팅에 충분합니다.
중요 : 프로젝트를 실행하기 전에 Program.cs 파일 (CRM_Test 프로젝트)에서 관리자 자격 증명을 설정해야합니다.
구현 된 인터페이스 iCRMContext를 사용하여 생성 된 부분 클래스 (SoSwContext, SCEuropeContext)를 사용하여 CRM에서 계정 데이터가로드 된 것을 볼 수 있듯이 응용 프로그램은 조건이 "유효하지 않은"예외를 throw합니다. 잘못된 속성 또는 메서드 - 메서드 구현을 참조하십시오. "
누구든지 예외를 해결하는 방법을 찾으면 감사하겠습니다.
감사
파벨
내 현재의 고용주에 대한
여러 엔티티 정의 (여러 조직에 대한 초기 바인딩 유형)를 어떻게 포함합니까? – Daryl