Dynamics 365에서 확장을 통해 표시 또는 편집 방법 추가
게시됨: 2025년 2월 16일 오전 11시 55분 42초 UTC
마지막으로 업데이트되었습니다: 2026년 1월 12일 오전 8시 57분 21초 UTC
이 문서에서는 클래스 확장을 사용하여 Dynamics 365 for Operations의 테이블과 폼에 표시 메서드를 추가하는 방법을 X++ 코드 예제와 함께 설명합니다.
Add Display or Edit Method via Extension in Dynamics 365
Dynamics에서 표시 또는 편집 메서드를 사용할 계획을 세울 때는 일반적으로 솔루션을 다른 방식으로 설계할 수 있는지 고려해야 하지만, 경우에 따라서는 이러한 방법이 최선의 선택이 될 수 있습니다.
이전 버전의 Dynamics 및 Axapta에서는 테이블과 폼에 대한 표시 또는 편집 메서드를 매우 쉽게 만들 수 있었지만, 최근 Dynamics 365에서 처음으로 편집 메서드를 만들어야 했을 때 그 절차가 다소 다르다는 것을 알게 되었습니다.
분명히 여러 가지 유효한 접근 방식이 있지만, 제가 보기에 가장 좋은 방법(직관성과 코드 가독성 측면 모두에서)은 클래스 확장을 사용하는 것입니다. 클래스 확장을 사용하면 클래스뿐만 아니라 다른 요소 유형에도 메서드를 추가할 수 있습니다. 이 경우에는 테이블에 적용되었지만, 폼에도 똑같이 적용할 수 있습니다.
먼저 새 클래스를 만드세요. 이름은 원하는 대로 지을 수 있지만, 어떤 이유에서인지 "_Extension" 접미사를 붙여야 합니다. 예를 들어 CustTable에 표시 메서드를 추가해야 한다면 MyCustTable_Extension과 같이 이름을 지정할 수 있습니다.
클래스에 ExtensionOf 데코레이터를 추가하여 시스템이 어떤 클래스를 확장하는지 알 수 있도록 해야 합니다. 예를 들면 다음과 같습니다.
public final class MyCustTable_Extension
{
}
이제 이전 버전의 Dynamics에서 테이블에 직접 구현했던 것처럼 이 클래스에 표시 메서드를 구현할 수 있습니다. "this"는 테이블을 참조하므로 필드 및 기타 메서드에 액세스할 수 있습니다.
예를 들어, 고객의 계좌번호만 반환하는 간단하고 (완전히 쓸모없는) 표시 메서드를 가진 클래스는 다음과 같을 수 있습니다.
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
이제 폼(또는 폼을 직접 편집할 수 없는 경우 폼 확장)에 표시 메서드를 추가하려면 폼에 필드를 수동으로 추가하고 올바른 유형(이 예에서는 문자열)을 사용해야 합니다.
그런 다음 컨트롤에서 DataSource를 CustTable(또는 CustTable 데이터 소스의 이름)로 설정하고 DataMethod를 MyCustTable_Extension.displayAccountNum으로 설정합니다(클래스 이름을 반드시 포함해야 합니다. 그렇지 않으면 컴파일러가 메서드를 찾을 수 없습니다).
이제 끝났습니다 :-)
업데이트: 폼에 표시 메서드를 추가할 때 확장 클래스 이름을 포함할 필요가 없어졌지만, 최초 게시 당시에는 필요했습니다. 이전 버전을 사용하는 독자를 위해 해당 정보를 남겨둡니다.
추가 자료
이 글이 마음에 드셨다면 다음 제안도 마음에 드실 겁니다.
- Dynamics 365 FO 가상 머신 개발 또는 테스트를 유지 관리 모드로 전환
- Dynamics 365에서 재무 차원에 대한 조회 필드 만들기
- 최근 프로젝트를 로드하는 동안 Visual Studio가 시작 시 멈춤
