즉, 식별자는 입력시에만 Editable하는게 일반적이나, 특별한 경우 수정도 가능할 경우 식별자항목의 값이 변경되어 기존건을 찾아 UPDATE 혹은 DELETE가 불가능 해진다
이를 처리 하기 위한 로직은 아래와 같다.
// 저장 하시겠습니까?
SCAlert.show("M000013", "저장", true, Alert.YES | Alert.NO, this, function(event:CloseEvent):void
{
if (event.detail == Alert.YES)
{
doSaveJobRPC.clearInputs();
doSaveJobRPC.inputs = [new SCServiceInput("editedItems", _resultList.editedItems)];
doSaveJobRPC.service();
}
});
<service id="save.job.user.list" label="직무-담당자연결 저장">
<script>
<![CDATA[
var delList = new List();
var insList = new List();
var item = new Map();
for (var i = 0; i < $data.editedItems.size(); i++)
{
item = $data.editedItems.get(i);
// 1. 기존건 삭제
if (item.oldObj != null)
{
delList.add(item.oldObj);
}
// 2. 삭제건 제외하고 다시 입력
if (item.check_delete == false)
{
insList.add(item);
}
}
$jdbc.batch("admin/job", "del.job.user.list", delList); <- delete query
$jdbc.batch("admin/job", "ins.job.user.list", insList); <- insert query
]]>
</script>
</service>