피드로 돌아가기
Dev.toBackend
원문 읽기
CoC 패턴 도입을 통한 D365 F&O 업데이트 호환성 및 확장성 확보
Chain of Command in D365 F&O: three production pitfalls
AI 요약
Context
기존 Overlay 방식의 커스텀 구현 시 One Version 업데이트마다 발생하는 코드 충돌 및 유지보수 비용 증가라는 한계 직면. 업데이트 시마다 반복되는 수정 작업을 제거하고 전방 호환성을 확보하기 위한 구조적 변화 필요.
Technical Solution
- Base Method를 Wrap 하여 확장 기능을 주입하는 Chain of Command(CoC) 패턴 도입으로 Overlay 제거
- next() 호출을 통한 Base Logic 실행 보장 및 Custom Logic의 전후 처리 결합 구조 설계
- FormDataSource.init() 대신 executeQuery() Pre-event Handler를 사용하여 데이터 컨텍스트 기반의 동적 필터링 구현
- Private/Protected 멤버 접근 제한 문제를 Public Method 활용 및 LCS Issue Search를 통한 멤버 공개 요청으로 해결
- Final Class 선언 및 정확한 Method Signature 매칭을 통한 런타임 바인딩 오류 방지
실천 포인트
- [ ] logic 추가 시 next() 호출 여부와 반환값 결합 로직 확인 - [ ] 데이터 로드 시점과 일치하는 Lifecycle Hook(init vs executeQuery vs active) 선택 여부 검토 - [ ] CoC 적용 클래스의 final 키워드 선언 및 Target Attribute 오타 확인 - [ ] Reflection 사용을 배제하고 Public API 또는 Event Handler 기반의 접근 방식 채택