SysDaQueryObject is also used instead of query class
SysDaQueryObject is used instead of Query and used for heavy operations
Example of using SysDaQueryObject.
public void updateEmployeePosition(Common _table, str _mappingFieldStr, str _joinFieldStr)
{
Common updateTable;
DirPerson person;
HcmWorker worker;
HcmPosition position;
HcmPositionDetail positionDetail;
HcmJobDetail jobDetail;
str mappingField;
str joinField;
HcmPositionWorkerAssignment positionWorkerAssignment;
;
updateTable = _table;
mappingField = _mappingFieldStr;
joinField = _joinFieldStr;
worker.skipDataMethods(true);
person.skipDataMethods(true);
position.skipDataMethods(true);
updateTable.skipDataMethods(true);
positionDetail.skipDataMethods(true);
var updateTableUpdateObject = new SysDaUpdateObject(updateTable);
var workerQueryObject = new SysDaQueryObject(worker);
var positionQueryObject = new SysDaQueryObject(position);
var positionWorkerAssignmentQueryObject = new SysDaQueryObject(positionWorkerAssignment);
/// Field Mapping Target and source
updateTableUpdateObject.settingClause().add(mappingField, new SysDaFieldExpression(position, fieldStr(HcmPosition, PositionId)));
// Join b/w tables
updateTableUpdateObject.joinClause(SysDaJoinKind::ExistsJoin, workerQueryObject);
workerQueryObject.joinClause(SysDaJoinKind::ExistsJoin, positionWorkerAssignmentQueryObject);
positionWorkerAssignmentQueryObject.joinClause(SysDaJoinKind::ExistsJoin, positionQueryObject);
updateTableUpdateObject.whereClause(
new SysDaEqualsExpression(new SysDaFieldExpression(updateTable, joinField),
new SysDaFieldExpression(worker, fieldStr(HcmWorker, PersonnelNumber))));
workerQueryObject.whereClause(
new SysDaEqualsExpression(new SysDaFieldExpression(worker, fieldStr(HcmWorker, RecId)),
new SysDaFieldExpression(positionWorkerAssignment, fieldStr(HcmPositionWorkerAssignment, Worker))));
positionWorkerAssignmentQueryObject.whereClause(
new SysDaEqualsExpression(new SysDaFieldExpression(positionWorkerAssignment, fieldStr(HcmPositionWorkerAssignment, Position)),
new SysDaFieldExpression(position, fieldStr(HcmPosition, RecId))));
//SysDaValidTimeStateDateTimeRange sysDaValidDateTime = new SysDaValidTimeStateDateTimeRange(currentDateTime, currentDateTime);
//updateTableUpdateObject.validTimeState(sysDaValidDateTime);
ttsbegin;
new SysDaUpdateStatement().update(updateTableUpdateObject);
ttscommit;
}
Comments
Post a Comment