Interface Parameter 형식 : Camel 형식
1) 파라미터 : Client측에서 원하는 데이터를 뽑아내기 위한 Id 값
2) Return Value : Client측에서 원하는 데이터 (JSON 형식)
Salesforce 보안 방식 : OAuth 2.0
Interface Test시 log 찍는 방법
logger.add('Test logger');
public Map<String, Object> execute(ValueObject vo, List<String> logger) {
Map<String, Object> rstMap = new Map<String, Object>();
ValueRow vrow = vo.getValueRow();
logger.add('=======================================================================================================================');
logger.add('Interface ID:Test1, Batch type = SELECT, Execute plan = No Plan(Exception class)');
logger.add('-----------------------------------------------------------------------------------------------------------------------');
try {
Date searchFromDate = MetaDataHelper.getDate2String(vo.getString('searchFromDate'));
// 가져오고자 하는 데이터 Select
String query = 'SELECT field1, field2 '+
' FROM ObjectName '+
'WHERE whereclause ';
List<AggregateResult> selectList = Database.query(query);
// Query 확인
logger.add('Query:[' + query + '], DML:SELECT, Target table: ObjectName, Result_size:'+selectList.size());
// 원하는 로직 구현
Decimal totalCnt = donationList.size();
Decimal field1Cnt = 0;
Decimal field2Cnt = 0;
if(totalCnt > 0) {
for(AggregateResult obj : selectList) {
String field1 = MetaDataHelper.getString2Object(obj.get('field1'));
String field2 = MetaDataHelper.getString2Object(obj.get('field2'));
if(field1Cnt != null) field1Cnt++;
if(field2Cnt != null) field2Cnt++;
}
}
rstMap.put('field1Cnt', field1Cnt);
rstMap.put('field2Cnt', field2Cnt);
} catch(Exception e) {
throw e;
}
return rstMap;
}
풀이
- Map<String, Object> 형식으로 return 값 설정
- 파라미터로 받은 조건 값은 MetaDataHelper로 풀어야함
- query문으로 조건 값에 해당하는 데이터 반환
- 반환된 데이터 원하는 모양으로 설정 후 반환
VO는 Id에 따라 개별적인 개체임을 구분하는 것이 아닌,
포함된 정보에 의해 동등성이 전적으로 결정되는 엔터티이다.
public void exFun (ValueObject vo) {
ValueRow vRow = vo.getValueRow();
String vString = vo.getString('key');
}