일정에 따르는 내부 이벤트 정보

( Item, GlobalObjectId 추적 )



 반복 일정에서 ItemId와 GlobalObjectId의 상관 관계 그리고 수정에 대해서 알아 보고자 한다. 일정 관련 개발시 또는 연동 때문에 여러가지 케이스에 대해서 밑에와 같이 정리해 보았다. 익스체인지 일정은 과거 일정과 미래 일정이 현재 일을 포함 할 경우 이전 일정에 대해서는 새로 생성을 하고 기존 일정을 수정하여 처리하고 있다. 이렇게 변경되는 사항들을 잘 정리해서 쉽게 일정 연동을 할 수 있기를 바라겠다.



밑에서 나온 분석 자료에서 'Uid'가 익스체인지의 ItemId임을 주지 하기 바랍니다.



1. 현재일 보다 미래 일정에 대해서 수정
 
8월 12일 반복 시작일

1.1  화요일 반복 일정 생성
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpB3AAA=","EMail":"test@test.com","Tstamp":"635116401739714845","Title":"반복 테스트 #1 화요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAABqFxwHnpTOAQAAAAAAAAAAEAAAAErmMOMEWQpJoohCYDFvDhU=","EventType":"Created"}

1.2 화요일 반복 일정 생성 전체 일정 수정
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpB3AAA=","EMail":"test@test.com","Tstamp":"635116403135292644","Title":"반복 테스트 #1 화요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAABqFxwHnpTOAQAAAAAAAAAAEAAAAErmMOMEWQpJoohCYDFvDhU=","EventType":"Modified"}

1.3 화요일 반복 일정 한 항목만 수정 - 날짜 수정 없음
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpB3AAA=","EMail":"test@test.com","Tstamp":"635116432690946758","Title":"반복 테스트 #1 화요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAABqFxwHnpTOAQAAAAAAAAAAEAAAAErmMOMEWQpJoohCYDFvDhU=","EventType":"Modified"}

1.4 화요일 반복 일정 한 항목만 수정 - 날짜 수정 있음
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpB3AAA=","EMail":"test@test.com","Tstamp":"635116433589856729","Title":"반복 테스트 #1 화요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAABqFxwHnpTOAQAAAAAAAAAAEAAAAErmMOMEWQpJoohCYDFvDhU=","EventType":"Modified"}

1.5 화요일 반복 일정 - 모든 반복 일정 삭제
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpB3AAA=","EMail":"test@test.com","Tstamp":null,"Title":null,"GlobalObjectId":null,"EventType":"Deleted"}
 
1.6 반복 일정중에서 한 항목에 대해서만 삭제
2013-08-09 11:29:29,239 [ 116] INFO Default - SonicMQ send : {"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpBzAAA=","EMail":"test@test.com","Tstamp":"635116445692231978","Title":"토요 반복 일정","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAADuh2SPJZTOAQAAAAAAAAAAEAAAAK8400lwUDdGhrjVUfWxnmQ=","EventType":"Modified"}
2013-08-09 11:29:34,066 [ 116] INFO Default - SonicMQ send : {"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpBzAAA=","EMail":"test@test.com","Tstamp":"635116445740518419","Title":"토요 반복 일정","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAADuh2SPJZTOAQAAAAAAAAAAEAAAAK8400lwUDdGhrjVUfWxnmQ=","EventType":"Modified"}
2013-08-09 11:29:44,145 [ 105] INFO Default - SonicMQ send : {"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpBzAAA=","EMail":"test@test.com","Tstamp":"635116445840891818","Title":"토요 반복 일정","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAADuh2SPJZTOAQAAAAAAAAAAEAAAAK8400lwUDdGhrjVUfWxnmQ=","EventType":"Modified"}
 
1.7 반복일정의 최종 삭제
2013-08-09 11:29:49,043 [ 133] INFO Default - SonicMQ send : {"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpBzAAA=","EMail":"test@test.com","Tstamp":null,"Title":null,"GlobalObjectId":null,"EventType":"Deleted"}
 
 
 금일(오늘)을 포함하지 않는 미래의 일정은 ItemId와 GlobalObjectId가 변경되지 않고 예상되로 반복 일정 수정이 일어 나고 있다. 



 
2. 과거일에서 현재일 포함 미래일 범위의 일정에 대해서 수정
 
 
8월 1일 반복 시작일

2.1 과거 목요일 반복 일정 생성
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpCDAAA=","EMail":"test@test.com","Tstamp":"635116536408209382","Title":"반복일정 테스트 #3 - 목요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAADIsGZkvZTOAQAAAAAAAAAAEAAAAL7jcbkKvu5CkiLigoQ5+PI=","EventType":"Created"}

2.2 과거 목요일 반복 일정 변경 - 범위만 변경
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpCDAAA=","EMail":"test@test.com","Tstamp":"635116536652862034","Title":"반복일정 테스트 #3 - 목요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAADIsGZkvZTOAQAAAAAAAAAAEAAAAL7jcbkKvu5CkiLigoQ5+PI=","EventType":"Modified"}
 
2.3 과거 목요일 반복 일정 변경 - 반복일을 금요일로 날짜 변경

2.3.1 과거 목요일 반복 일정 변경 - 금요일로 날짜 변경 - 8월 9일 이전의 일정이 새로 생성 됨
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpCEAAA=","EMail":"test@test.com","Tstamp":"635116537102912102","Title":"반복일정 테스트 #3 - 목요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAADIsGZkvZTOAQAAAAAAAAAAEAAAAL7jcbkKvu5CkiLigoQ5+PI=","EventType":"Created"}

2.3.2 과거 목요일 반복 일정 변경 - 금요일로 날짜 변경 - 8월 9일 이후의 일정만 수정 됨{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpCDAAA=","EMail":"test@test.com","Tstamp":"635116537103422167","Title":"반복일정 테스트 #3 - 목요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAAAouLOLvZTOAQAAAAAAAAAAEAAAAKD44Bwh7SFNoqxBurnSKYk=","EventType":"Modified"}
 
 
과거일 포함 수정이 일어나면
 - 이전 날짜는 새로 생성이 되고 GlobalObjectID는 이전과 동일 합니다. ( 새로 생성이 되어 ItemID는 다름 )
 - 이때 이후 날짜는 수정이 되며 ItemId는 같지만 GlobalObjectID는 다르게 변경 됨
 
 
 
2.4 목요일 반복 일정 전체 삭제 - 8월 9일 이전일 삭제 진행 - 삭제시 Exchange에 Item이 없기 때문에 GlobalObjectID를 알아 낼 수 없음
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpCEAAA=","EMail":"test@test.com","Tstamp":null,"Title":null,"GlobalObjectId":null,"EventType":"Deleted"}
 
2. 5 금요일 반복 일정 전체 삭제 - 8월 9일 이후일 삭제 진행 - 삭제시 Exchange에 Item이 없기 때문에 GlobalObjectID를 알아 낼 수 없음
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpCDAAA=","EMail":"test@test.com","Tstamp":null,"Title":null,"GlobalObjectId":null,"EventType":"Deleted"}
 
 
 
 
-- 새로 일정 생성해서 진행 함 
 
2.6 금일 이전 한 항목만 일자 변경은 저장을 할 수 없어서 수행 하지 못함
 
2.7 금일 이후 한 항목만 일자 변경
{"Uid":"AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAA2tpCFAAA=","EMail":"test@test.com","Tstamp":"635116547854317040","Title":"반복일정 테스트 #4 - 목요일","GlobalObjectId":"BAAAAIIA4AB0xbcQGoLgCAAAAADVpTb8v5TOAQAAAAAAAAAAEAAAAFO0GqAx2KxCu43J1ILBwSw=","EventType":"Modified"}




 

 금일(오늘)을 포함한 반복 일정은 ItemId와 GlobalObjectId가 변경된다. 금일 이전 일정은 새롭게 생성되어 ItemId가 생성되지만 GlobalObjectId는 동일한다. 그러지만 수정된 반복 일정은 ItemId는 동일하지만 GlobalObjectId가 변경된다. 이 규칙을 잘 이해해야 익스체인지의 일정과 연계 개발을 쉽게 할 수 있을 것이다. 









+ Recent posts