Display Method (form datasource) Performance 개선
Dynamics AX에서 Display method에 Database query를 사용하여 Field를 표시하는 경우가 종종 있습니다. 아주 유용하긴 하지만 과도하게 많이 사용할 경우 Display 필드의 표시 특성상 화면을 움직이거나 스크롤바 이동, 커서 이동등을 사용한 레코드 이동시에 속도를 따라가지 못하여 화면이 물결 치는(?) 현상이 나타나게 됩니다. 이는 해당 필드를 표시해야 할 필요성이 있을 때마다 DB에 Query를 보내기 때문인데 이를 조금이나마 줄여주면 성능이 개선 될 수 있습니다.
아래 소스는 Form의 Datasource에 Display Method를 만들어야 합니다.
1. classDeclaration 에 Map 선언
public class FormRun extends ObjectRun
{
Map localMap;
}
2. 조회 버튼 클릭시 Map 초기화
void clicked()
{
boolean ret = true;
super();
localMap = new Map(Types::Record, Types::Real); // Unique Key 값을 사용
}
3. Form Datasource의 Display Method
display InventQty getQty(FormDataSource _view)
{
InventQty _returnQty;
if (localMap.exists(_view))
{
_returnQty = localMap.lookup(_view);
}
else
{
select query 구문;
_returnQty = Query 결과값;
localMap.insert(_view, _returnQty);
}
return _returnQty;
}
Happy Daxing!!
'Microsoft Dynamics AX > AX 2012' 카테고리의 다른 글
Microsoft.Dynamics.Ax.Xpp.InvalidRemoteCallException (0) | 2018.10.01 |
---|---|
Fom Control Tab 순서 지정 (0) | 2018.05.31 |
텍스트 파일 문자열 바꾸기 (0) | 2017.12.23 |
Microsoft DynamicsAX 2012 R2 ERD (0) | 2014.02.18 |
View Detail Override (0) | 2013.09.13 |