説明
Microsoft Exchange のカレンダーイベントの作成、削除、変更、取得、およびカレンダーイベントへの応答を行います。また、カレンダーイベントの添付ファイルを取得します。
履歴
ColdFusion 11:3 つの新しいオプション属性が
セカンダリカレンダーを管理するために cfexchangecalendar タグに追加されました。これらの属性は get アクションと create アクションにのみ適用でき、2010 以降のバージョンの Exchange Server で使用できます。 セカンダリカレンダーは、exchangecalendar タグでセカンダリカレンダーフォルダーの ID またはパスを使用して指定できます。
ColdFusion 10: getUserAvailability, getRooms, getRoomsList
- serverVersion 属性が追加されました。
ColdFusion 8:このタグが追加されました。
カテゴリ
通信タグ
シンタックス
create <cfexchangecalendar required action = "create" event = "#event information structure#" optional connection = "connection ID" result = "variable for event UID"> delete <cfexchangecalendar required action = "delete" uid = "event UID,event UID, ..." optional connection = "connection ID" message = "string" notify = "yes|no"> deleteAttachments <cfexchangecalendar required action = "deleteAttachments" uid = "event UID" optional connection = "connection ID"> get <cfexchangecalendar required action = "get" name = "query identifier" optional connection = "connection ID"> getAttachments <cfexchangecalendar required action = "getAttachments" name = "query identifier" uid = "event UID" optional attachmentPath = "directory path" connection = "connection ID"> generateUniqueFilenames = "no|yes" getRooms <cfexchangecalendar action = "getRooms" emailAddress = "e-mail_ address" name = "name" connection = "connection_ID"/> getRoomsList <cfexchangecalendar action = "getRoomList" name = "name" connection = "connection_ID"/> getUserAvailability <cfexchangecalendar action = "getUserAvailability" attendees = "attendee_list" connection = "connection_ID" startDate = "date" endDate = "date" dataRequestType = "freeBusy|suggestions|freeBusyandSuggestions" name = "name" /> modify <cfexchangecalendar required action = "modify" event = "#event information structure#" uid = "event UID" optional connection = "connection ID"> respond <cfexchangecalendar required action = "respond" responseType = "accept|decline|tentative" uid = "event UID" optional connection = "connection ID" message = "string"> notify = "yes|no">
|
注意:すべてのアクションについて、connection 属性を指定しない場合、使用する追加属性については、「cfexchangeconnection」を参照してください。connection 属性を省略する場合は、cfexchangecalendar タグで cfexchangeconnection タグの属性を指定して一時的接続を作成します。この場合、ColdFusion はタグが完了すると接続を閉じます。詳細については、cfexchangeconnection タグの open アクションを参照してください。 |
注意:このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。
|
関連項目
cfexchangeconnection、cfexchangecontact、cfexchangefilter、cfexchangemail、cfexchangetask、『ColdFusion アプリケーションの開発』の「会議および予定の操作」
属性
属性
|
アクション
|
必須/オプション
|
デフォルト
|
説明
|
action
|
N/A
|
必須
|
|
実行するアクションです。有効な値は次のとおりです。
- create
- delete
- deleteAttachments
- get
- getAttachments
- getRooms
- getRoomsList
- getUserAvailability
- modify
- respond
|
attachmentPath
|
getAttachments
|
オプション
|
|
添付ファイルを保存する、ディスク上またはメモリ内のディレクトリのファイルパスです。指定したディスク上のディレクトリが存在しない場合は、自動的に作成されます。 メモ : この属性を省略すると、添付ファイルは保存されません。相対パスを指定する場合は、GetTempDirectory 関数によって返される ColdFusion テンポラリディレクトリがパスのルートになります。
|
attendees
|
getUserAvailability
|
必須
|
|
すべての出席者のカンマ区切りリストです。
|
connection
|
all
|
オプション
|
|
cfexchangeconnection タグで指定された Exchange サーバーへの接続の名前です。この属性を省略する場合は、cfexchangecalendar タグで cfexchangeconnection タグの接続属性を指定して一時的接続を作成する必要があります。
|
dataRequestType
|
getUserAvailability
|
必須
|
|
- freeBusy:可用性の詳細の配列を返します。
- Suggestions:候補の詳細が含まれる構造体の配列を返します。
- freeBusyandSuggestions:suggestions の配列と attendeeavailability の配列の両方を返します。
詳しくは、suggestion の構造体および attendeeavailability の構造体の節を参照してください。
|
emailAddress
|
getRooms
|
オプション
|
|
メールボックスユーザーの SMTP(Simple Mail Transfer Protocol)アドレスを定義します。
|
endDate
|
getUserAvailability
|
必須
|
|
ColdFusion が日付時刻値として解釈できる文字列です。
|
event
|
createmodify
|
必須
|
|
設定または変更するイベントプロパティとその値を含む構造体への参照です。この属性はシャープ記号 (#) で囲んで指定する必要があります。event 属性でもカテゴリキーがサポートされます。 イベント構造体の詳細については、「使用方法」を参照してください。
|
getOccurrence
|
TrueFalse
|
オプション
|
|
True の場合、指定された startDate 値から EndDate 値までの繰り返しイベントのすべての発生と、さらに単独のイベントも取得します。getOccurrence を True に指定した場合、cfExchangeFilter タグは使用できません。
|
generateUnique Filenames
|
getAttachments
|
オプション
|
no
|
同じ名前の添付ファイルが複数ある場合に、一意のファイル名を生成するかどうかを指定する boolean 値です。同じ名前を持つ添付ファイルが複数存在し、このオプションが yes の場合、ColdFusion は、競合するファイル名の後ろ (拡張子の前) に番号を付加します。例えば、myfile.txt という名前の添付ファイルが 3 つある場合は、myfile.txt、myfile1.txt、myfile2.txt という名前で保存されます。
|
message
|
deleterespond
|
オプション
|
|
応答通知または削除通知で送信するオプションメッセージのテキストです。
|
name
|
getAttachments
getUserAvailability
getRoomsListgetRooms
|
必須
|
|
取得したイベント、または取得した添付ファイルに関して取得した情報を格納する ColdFusion クエリー変数の名前です。返されるデータの詳細については、「使用方法」を参照してください。
|
notify
|
deleterespond
|
オプション
|
true
|
イベントが修正されたときに他のユーザーに通知するかどうかを指定する boolean 値です。
|
responseType
|
respond
|
必須
|
|
有効な値は次のとおりです。
|
result
|
create
|
オプション
|
|
作成するイベントの UID を格納する変数の名前です。create 以外のアクションでは、uid 属性で UID 値を指定してアクションの対象となるイベントを識別します。
|
serverVersion
|
|
オプション
|
2007
|
Microsoft Exchange Server のバージョンを指定します。有効な値は次のとおりです。
- 2003
- 2007
- 2010
詳細を指定しない場合は、デフォルトで 2007 が使用されます。 指定した値は、アプリケーションレベルで指定した値よりも優先されます。
|
startDate
|
getUserAvailability
|
必須
|
|
ColdFusion が日付時刻値として解釈できる文字列です。
|
uid
|
delete
getAttachments
modify
respond
|
必須
|
|
アクションの対象となるイベントを一意に識別する Exchange UID 値です。大文字と小文字は区別されます。delete アクションの場合は、この属性で UID 値のカンマ区切りリストを指定できます。deleteAttachments、getAttachments、modify、および respond アクションの場合は、1 つの UID 値のみを指定できます。
|
folderid |
|
オプション |
|
カレンダー項目を管理するカレンダーフォルダー ID を指定します。フォルダー ID が有効なカレンダーではない場合は、エラーが報告されます。 |
folderpath |
|
オプション |
|
メールボックスストア内のカレンダーフォルダーのフルパスです。パスの区切り文字もタグで指定できます。その際は、pathdelimiter 属性を使用します。
folderid と folderpath が両方とも指定されていない場合は、cfexchangecalendar タグによりデフォルトのユーザーカレンダーが管理されます。folderid と folderpath が両方とも指定されている場合は、folderid が考慮されます。
|
pathdelimiter |
|
オプション |
/ |
folderpath 属性内でフォルダーを区切る文字を指定できます。
|
使用方法
cfexchangecalendar タグは、Exchange サーバー上のカレンダーイベントを管理します。cfexchangecalendar を使用すると、次の操作を実行できます。
create アクション
create アクションを指定する場合は、イベントに関する情報を含む構造体を event 属性で指定する必要があります。この構造体には次のエントリを格納できます。
要素
|
デフォルト
|
説明
|
AllDayEvent
|
no
|
終日のイベントかどうかを示す boolean 値です。
|
添付ファイル
|
|
添付ファイルとして送信するファイルのパスです。複数のファイルパスを指定する場合、Windows ではセミコロン (;)、UNIX および Linux ではコロン (:) を使用して各パスを区切ります。添付ファイルは絶対パスで指定する必要があります。 modify アクションで添付ファイルを指定した場合は、指定した添付ファイルが既存の添付ファイルに追加されます。既存の添付ファイルが削除されることはありません。
|
Categories
|
|
カテゴリのカンマ区切りリストです。リスト内のすべてのカテゴリと一致するイベントが検索されます。
|
期間
|
|
イベントの継続時間です (単位 : 分)。
|
EndTime
|
|
ColdFusion で有効な日付時刻形式で示されるイベントの終了時刻です。
|
Importance
|
normal
|
次のいずれかの値になります。
|
IsRecurring
|
そのイベントが反復されるかどうかを示す boolean 値です。yes の場合は、RecurrenceType 要素と、反復の詳細を示す要素を指定します。反復フィールドの詳細については、次の表を参照してください。
|
場所
|
|
イベントの場所を示す文字列です。
|
Message
|
|
イベントに関するメッセージを含む文字列です。この文字列では HTML の形式設定タグも使用できます。
|
OptionalAttendees
|
|
メール ID のカンマ区切りリストです。
|
Organizer
|
|
会議の開催者の名前を示す文字列です。
|
Reminder
|
|
イベントの何分前にアラームメッセージを表示するかを指定します。
|
RequiredAttendees
|
|
メール ID のカンマ区切りリストです。
|
リソース
|
|
Exchange スケジュールリソース (会議室や機材など) のメール ID のカンマ区切りリストです。
|
Sensitivity
|
有効な値は、normal、company-confidential、personal、および private です。
|
StartTime
|
|
ColdFusion で有効な日付時刻形式で示されるイベントの開始時刻です。 この属性で日時を指定し、RecurrenceType で YEARLY を指定して、その他の反復属性を指定しなかった場合、そのイベントは 1 年に 1 回、この属性で指定した日時に繰り返されます。
|
Subject
|
|
イベントの件名を示す文字列です。
|
IsRecurring フィールドの値を yes に設定した場合にイベントの反復を指定するために使用する要素を次の表に示します。イベントの反復を指定する方法の詳細については、『ColdFusion アプリケーションの開発』の「会議および予定の操作」の「定期的なカレンダーイベントの設定」を参照してください。
要素
|
タイプ
|
デフォルト
|
説明
|
RecurrenceType
|
all
|
DAILY
|
構造体の IsRecurring 要素が yes の場合にのみ使用されます。有効な値は次のとおりです。
- DAILY
- WEEKLY
- MONTHLY
- YEARLY
|
RecurrenceNoEndDate
|
all
|
yes
|
boolean 値です。この要素が yes の場合、イベントは削除または変更されるまで反復されます。RecurrenceCount または RecurrenceEndDate とともに使用することはできません。
|
RecurrenceCount
|
all
|
|
イベントを反復する回数です。RecurrenceEndDate または RecurrenceNoEndDate とともに使用することはできません。
|
RecurrenceEndDate
|
all
|
|
最後に反復する日付です。RecurrenceCount または RecurrenceNoEndDate とともに使用することはできません。
|
RecurrenceFrequency
|
DAILY、WEEKLY、MONTHLY
|
1
|
反復する頻度です (日数、週数、または月数)。例えば、反復のタイプが DAILY の場合、RecurrenceFrequency を 3 に設定すると 3 日おきにイベントがスケジュールされます。
|
RecurEveryWeekDay
|
DAILY
|
|
日曜日と土曜日を除く平日にイベントを反復します。RecurrenceFrequency とともに使用することはできません。
|
RecurrenceDays
|
WEEKLY
|
|
イベントが発生する曜日を 1 つまたは複数指定します。次の値をカンマ区切りリストで指定する必要があります。MON、TUE、WED、THU、FRI、SAT、{{SUN}}。反復のタイプが WEEKLY の場合、このフィールドを省略すると、指定された開始日に対応する曜日にイベントが反復されます。
|
RecurrenceDay
|
MONTHLY、YEARLY
|
|
何曜日にイベントを発生させるかを示します。有効な値は次のとおりです。
- MON
- TUE
- WED
- THU
- FRI
- SAT
- SUN
|
RecurrenceWeek
|
MONTHLY、YEARLY
|
|
月または年の第何週にイベントを繰り返すかを指定します。使用できる値は次のとおりです。
- first
- second
- third
- fourth
- last
|
RecurrenceMonth
|
YEARLY
|
|
イベントを繰り返す月を指定します。有効な値は、JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV、および DEC です。
|
delete アクション
delete アクションを指定する場合は、削除するイベントを識別する Exchange UID のカンマ区切りリストを uid 属性で指定します。UID 値を確認するには、適切なフィルター式を指定した get アクションを使用します。
cfexchangecalendar タグで指定した UID がすべて無効な場合はエラーが発生します。1 つでも有効な UID が含まれる場合は、無効な UID が無視され、有効な UID に対応する項目が削除されます。
get アクション
get アクションを指定する場合は、子の cfexchangefilter タグを使用して取得するメッセージを指定します。フィルターの詳細については、「cfexchangefilter」を参照してください。
タグの処理が完了すると、name 属性で指定したクエリーオブジェクトに、取得したメッセージごとのレコードが格納されます。各レコードには次の列があります。
AllDayEvent
|
Duration
|
EndTime
|
From
|
HasAttachment
|
HtmlMessage
|
Importance
|
IsRecurring
|
Location
|
Message
|
OptionalAttendees
|
Organizer
|
Reminder
|
RequiredAttendees
|
Resources
|
Sensitivity
|
StartTime
|
Subject
|
UID
|
Categories
|
次の表で、From、HtmlMessage、Message、および UID フィールドについて説明します。他のフィールドの詳細については、create アクションの説明の表を参照してください。
列
|
説明
|
From
|
イベントを作成したユーザーの Exchange ID です。
|
HtmlMessage
|
イベントに関するメッセージの HTML バージョンです。
|
Message
|
イベントに関するメッセージのプレーンテキストバージョンです。
|
UID
|
メールイベントに割り当てられた一意の Exchange 識別子です。delete、getAttachments、および modify アクションでは、この値を使用してイベントを識別します。
|
getAttachments アクション
getAttachments アクションを使用する場合は、1 つの UID と name 属性を指定します。cfexchangecalendar タグにより、指定した名前を持つクエリーオブジェクトにデータが挿入されます。各レコードには、UID で指定したイベントの添付ファイルに関する次の情報が含まれます。
列
|
説明
|
attachmentFileName
|
添付ファイルのファイル名です。
|
attachmentFilePath
|
サーバー上の添付ファイルの絶対パスです。attachmentPath 属性を省略すると、この列には空の文字列が入ります。
|
CID
|
添付ファイルの content-ID です。通常は、メッセージにイメージを埋め込むために HTML の img タグ内で使用します。
|
mimeType
|
添付ファイルの MIME タイプです (text/html など)。
|
isMessage
|
添付ファイルがメッセージかどうかを指定する boolean 値です。
|
size
|
添付ファイルのサイズです (単位 : バイト)。
|
添付ファイルは attachmentPath 属性で指定したディレクトリに保存されます。attachmentPath 属性を省略すると、添付ファイル自体は取得されず、添付ファイルに関する情報が取得されます。この方法を使用すると、添付ファイルの取得に伴うオーバーヘッドを発生させることなく、イベントの添付ファイルを調べることができます。メモリ内の attachmentPath ディレクトリを指定するには、次のシンタックスを使用します。メモリ内のファイルはディスクに書き込まれないため、一時的データの処理が早くなります。
attachmentpath = "ram:///path"
|
パスには、ram:///petStore/orders/messageAttachments のように複数のディレクトリを含めることができます。ファイルを指定する前に、パスに含まれるすべてのディレクトリを作成しておく必要があります。メモリ内のファイルの使用方法の詳細については、『ColdFusion アプリケーションの開発』の「ColdFusion アプリケーションの最適化」の「メモリ内ファイルの使用」を参照してください。
getAttachments アクションは、Exchange のサーバー設定で EWS (Exchange Web サービス) の認証が basic に設定されている場合にのみ有効です。IWA (Integrated Windows Authentication) はサポートされていません。
modify アクション
modify アクションを指定する場合は、uid 属性でイベント UID を 1 つだけ指定して、変更するイベントを選択します。複数の UID は指定できません。event 構造体では、変更するフィールドのみを指定してください。フィールドの詳細と有効な値については、create アクションの表を参照してください。
イベントに添付ファイルがある場合、イベントを変更するときに添付ファイルを指定すると、新しい添付ファイルが既存の添付ファイルに追加されます。添付ファイルが置き換えられることはありません。添付ファイルを削除するには、deleteAttachments アクションを使用します。
respond アクション
cfexchangemail タグによって送信された会議通知に応答するには、respond アクションを使用します。メールメッセージに応答して要求を完全に承認するか暫定的に承認するまで、その会議はカレンダーに表示されず、cfexchangecalendar タグを使用して会議にアクセスすることはできません。
respond アクションを指定する場合は、通知メールメッセージに含まれるイベント UID を指定します。また、応答のタイプ (イベントの承認、拒否、または暫定的承認) も指定します。必要に応じて、応答に含めるメッセージを指定することもできます。また、イベントの作成者に応答を通知するかどうかを指定するフラグも設定できます。respond アクションの使用について詳しくは、『ColdFusion アプリケーションの開発』の「会議および予定の操作」を参照してください。
suggestions 構造体の値
構造体の値
|
説明
|
date
|
会議の候補日です。
|
quality
|
候補日の品質で、Excellent、Good、Fair または Poor のいずれかです。
|
TimeSuggestion
|
次の値が含まれる構造体の配列です。
- MeetingDate:会議の候補時間です。
- Quality:時間の品質です。これは、Excellent、Good、Fair または Poor です。
- 重複の配列:候補時間の重複です。これは、次の値が含まれる構造体です。ConflictType(重複のタイプで、individualAttendeeConflict(出席者の重複)、GroupConflict(グループの 1 人以上のメンバーの重複)、GroupTooBigConflict(グループの 1 人以上のメンバーの重複であるが、詳細情報を返すにはグループが大きすぎた場合)、および UnknownAttendeeConflict(解決不可能な出席者、あるいはユーザー、グループまたは連絡先でない出席者の重複)のいずれかです)。
- FreeBusyStatus:重複している出席者の空き時間情報ステータスを取得します。ConflictType が IndividualAttendee に等しい場合にのみ意味があります。値は、Free、Tentative、Busy、OOF(予定に関連付けられている時間帯は「不在」と表示されている)、または NoData(予定に空き時間情報ステータスが関連付けられていない)です。
- NoOfMembers:重複しているグループのユーザー、リソースおよび会議室の数を取得します。ConflictType が ConflictType の GroupConflict に等しい場合にのみ意味があります。
- NoOfMembersAvailable:重複しているグループ内の出席可能なメンバー(ステータスが Free のメンバー)の数を取得します。ConflictType が ConflictType の GroupConflict に等しい場合にのみ意味があります。
- NoOfMembersWithConflict:重複しているグループ内の重複状態のメンバー(ステータスが Busy、OOF または Tentative のメンバー)の数を取得します。ConflictType が ConflictType の GroupConflict に等しい場合にのみ意味があります。
- NoOfMembersWithNoData:重複しているグループ内の空き時間情報データを公開していないメンバーの数を取得します。ConflictType が ConflictType の GroupConflict に等しい場合にのみ意味があります。
- isWorkTime:候補の会議が勤務時間内に実施されるかどうかです。
|
attendeeavailability 構造体の値
構造体の値
|
説明
|
CalendarEvent
|
次の値が含まれる構造体です。
- startTime:イベントの開始日時です。
- endTime:イベントの終了日時です。
- freeBusyStatus:イベントに関連付けられている空き時間情報ステータスです。値は、Free、tentative、busy、OOF(不在)、または NoData(予定に空き時間情報ステータスが関連付けられていない)のいずれかです。
- details:予定表イベントの詳細です。詳細を要求したユーザーが適切な権限を持っていない場合、details は null です。details は、次の値が含まれる構造体です。location(予定表の場所)、eventstoreId(予定表イベントのストア ID)、および Subject(isException(予定表イベントが、定期的なアイテムの例外であるかどうかを示す boolean 値)、isMeeting(予定表イベントが会議であるかどうかを示す boolean 値)、isPrivate(予定表イベントがプライベートであるかどうかを示す boolean 値)、isRecurring(予定表イベントが定期的なものであるかどうかを示す boolean 値)および isRemainderSet(予定表イベントにアラームが設定されているかどうかを示す boolean 値)です)。
|
mergedFreeBusyStatus
|
ステータスが含まれる構造体の配列です。ステータスは次のいずれかです。
- Free:予定に関連付けられている時間帯は「空き時間」と表示されています。
- Tentative:予定に関連付けられている時間帯は「仮承諾」と表示されています。
- Busy:予定に関連付けられている時間帯は「予定あり」と表示されています。
- OOF:予定に関連付けられている時間帯は「不在」と表示されています。
- NoData:予定に空き時間情報ステータスが関連付けられていません。
- result:応答に関連付けられた結果です。これは、success、warning または error です。
|
viewType
|
取得される、出席者の空き時間情報のビュータイプです。次の値を指定できます。
- None:ビューは返されません。この値は、GetUserAvailability の呼び出しでは指定できません。
- MergedOnly:集計された空き時間情報ストリームです。あるフォレストのターゲットユーザーに可用性サービスが設定されていない場合、リクエスターの可用性サービスは、ターゲットユーザーの空き時間情報を空き時間情報のパブリックフォルダーから取得します。パブリックフォルダーには結合後の形式の空き時間情報のみが保管されているので、MergedOnly のみが使用可能な情報です。
- FreeBusy:従来のステータス情報です(free、busy、tentative および OOF)。これには、予定の開始時刻および終了時刻も含まれます。このビューでは、集計された空き時間情報ストリームではなく、個々の会議の開始時刻と終了時刻が提供されるので、従来の空き時間情報ビューよりも包括的です。
- FreeBusyMerged:FreeBusy のすべてのプロパティと、結合後の空き時間情報のストリームです。
- Detailed:従来のステータス情報です(free、busy、tentative および OOF、予定の開始時刻と終了時刻、予定の各種プロパティ(subject、location、importance など))。この要求のビューでは、要求を実行したユーザーが持つ権限に応じた最大限の情報が返されます。結合後の空き時間情報のみが使用可能な場合は、Microsoft Exchange Server 2003 フォレストのユーザーが情報を要求したときと同様に、MergedOnly が返されます。そうでない場合は、FreeBusy または Detailed が返されます。
- DetailedMerged:Detailed のすべてのプロパティと、結合後の空き時間情報のストリームを示します。結合後の空き時間情報のみを使用可能な場合(例えば、メールボックスが存在するコンピューターで Exchange 2003 が稼働している場合)、MergedOnly が返されます。そうでない場合は、FreeBusyMerged または DetailedMerged が返されます。
|
workingHours
|
次の詳細が含まれる構造体です。
- startTime:イベントの開始日時です。
- endTime:イベントの終了日時です。
- daysOfTheWeek:構造体の配列です。出席者の出勤日です。Sunday、Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Weekday および WeekEndDayDay の値が含まれることがあります。
- Timezone:id(タイムゾーン定義の ID)と name(そのタイムゾーン定義の名前)のフィールドが含まれる構造体です。
|
Exchange UID 値
すべての cfexchangecalendar アクションにおいて uid 属性の値は次のとおりです。
- exchangeServerVersion が 2003 または 2007 に設定されている場合:uid は、開催者のメールボックス内の予定の ID を示します。
- exchangeServerVersion が 2010 に設定されている場合:uid は、出席者のメールボックス内の受信した予定の ID を示します。
Microsoft Exchange Server 2003 または 2007 との対話では、予定が作成されるとすぐに、出席者はすべての操作(応答、添付の削除や取得など)に開催者の UID を使用できます。Microsoft Exchange Server 2010 の場合、この動作は異なります。出席者が予定関連のアクションを実行する必要がある場合は、最初に自分のメールボックス内の予定を検索し、それからその予定の UID を使用する必要があります。
例 1
次の例では、カレンダーイベントを作成してから変更します。最初にフォームを送信すると、カレンダーイベントが作成され、入力したデータとともにフォームが再表示されます。フォームを変更して再送信するには、イベントを承認します。2 回目にフォームを送信するときには、変更された情報が送信されます。詳細については、『ColdFusion アプリケーションの開発』の「会議および予定の操作」を参照してください。
この例ではコードを短くするためにすべてのイベントデータが再送信されますが、変更したデータだけを送信するように記述することもできます。
<!--- Create a structure to hold the event information. ---> <!--- A self-submitting form for the event information ---> <! --- This example omits recurrence to keep the code relatively simple ---> <cfparam name="form.eventID" default="0"> <!--- If the form was submitted, populate the event structure from it. ---> <cfif isDefined("Form.Submit")> <cfscript> sEvent.AllDayEvent="no"; sEvent=StructNew(); sEvent.Subject=Form.subject; if (IsDefined("Form.allDay")) { sEvent.AllDayEvent="yes"; sEvent.StartTime=createDateTime(Year(Form.date), Month(Form.date), Day(Form.date), 8, 0, 0); } else { sEvent.StartTime=createDateTime(Year(Form.date), Month(Form.date), Day(Form.date), Hour(Form.startTime), Minute(Form.startTime), 0); sEvent.EndTime=createDateTime(Year(Form.date), Month(Form.date), Day(Form.date), Hour(Form.endTime), Minute(Form.endTime), 0); } sEvent.Location=Form.location; sEvent.RequiredAttendees=Form.requiredAttendees; sEvent.OptionalAttendees=Form.optionalAttendees; //sEvent.Resources=Form.resources; if (Form.reminder NEQ "") { sEvent.Reminder=Form.reminder; } else { sEvent.Reminder=0; } sEvent.Importance=Form.importance; sEvent.Sensitivity=Form.sensitivity; sEvent.message=Form.Message; </cfscript> <!--- If this is the first time the form is being submitted Create a new event. ---> <cfif form.eventID EQ 0> <!--- Create the event in Exchange ---> <cfexchangecalendar action="create" username ="#user1#" password="#password1#" server="#exchangeServerIP#" event="#sEvent#" result="theUID"> <!--- Output the UID of the new event. ---> <cfif isDefined("theUID")> <cfoutput>Event Added. UID is#theUID#</cfoutput> <cfset Form.eventID = theUID > </cfif> <cfelse> <!--- The form is being resubmitted with new data, so update the event. ---> <cfexchangecalendar action="modify" username ="#user1#" password="#password1#" server="#exchangeServerIP#" event="#sEvent#" uid="#Form.eventID#"> <cfoutput>Event ID #Form.eventID# Updated.</cfoutput> </cfif> </cfif> <cfform format="xml" preservedata="yes" style="width:500" height="600"> <cfinput type="text" label="Subject" name="subject" style="width:435"><br /> <cfinput type="checkbox" label="All Day Event" name="allDay"> <cfinput type="datefield" label="Date" name="date" validate="date" style="width:100"> <cfinput type="text" label="Start Time" name="startTime" validate="time" style="width:100"> <cfinput type="text" label="End Time" name="endTime" validate="time" style="width:100"><br /> <cfinput type="text" label="Location" name="location" style="width:435"><br /> <cfinput type="text" label="Required Attendees" name="requiredAttendees" style="width:435"><br /> <cfinput type="text" label="Optional Attendees" name="optionalAttendees" style="width:435"><br /> <cfinput type="text" label="Resources" name="resources" style="width:435"><br /> <cfinput type="text" label="Reminder (minutes)" validate="integer" name="reminder" style="width:200"> <cfselect name="importance" label="Importance" style="width:100"> <option value="normal">Normal</option> <option value="high">High</option> <option value="low">Low</option> </cfselect> <cfselect name="sensitivity" label="Sensitivity" style="width:100"> <option value="normal">Normal</option> <option value="company-confidential">Confidential</option> <option value="personal">Personal</option> <option value="private">Private</option> </cfselect> <cfinput type="textarea" label="Message" name="message" style="width:435; height:100"> <cfinput type="hidden" name="eventID" value="#Form.EventID#"> <cfinput type="Submit" name="submit" value="Submit"> </cfform>
|
例 2
次の例は、getUserAvailability アクションを実行する方法を示しています。
<!--- Setting the present Date ---> <cfset todayDate = #Now()#> <cfset fromDate = #DateFormat(todayDate, "mm/dd/yyyy")# & ' ' & #TimeFormat(todayDate, "HH:MM:SS")#> <!--- Adding one day to present date---> <cfset toDate1 = DateAdd("d", "1", "#fromDate#")> <!--- <cfset toDate = #DateFormat(toDate, "mm/dd/yyyy")#&' '&#TimeFormat(toDate, "HH:MM:SS")#>---> <cfset toDate1 = #DateFormat(toDate1, "mm/dd/yyyy")# & ' ' & #TimeFormat(toDate1, "HH:MM:SS")#> <!---Creating a calendar event ---> <cffunction name="constructCalendarStruct" returntype="struct"> <cfargument name="AllDayEvent" type="string"/> <cfargument name="Duartion" type="string"/> <cfargument name="EndTime" type="string"/> <cfargument name="From" type="string"/> <cfargument name="HasAttachment" type="string"/> <cfargument name="HtmlMessage" type="string"/> <cfargument name="Importance" type="string"/> <cfargument name="IsRecurring" type="string"/> <cfargument name="Location" type="string"/> <cfargument name="Message" type="string"/> <cfargument name="OptionalAttendees" type="string"/> <cfargument name="Organizer" type="string"/> <cfargument name="Reminder" type="string"/> <cfargument name="RequiredAttendees" type="string"/> <cfargument name="Resources" type="string"/> <cfargument name="Sensitivity" type="string"/> <cfargument name="StartTime" type="string"/> <cfargument name="Subject" type="string"/> <cfargument name="UID" type="string"/> <cfscript> var eventInfo = structNew(); if(isdefined("AllDayEvent") EQ 1) eventInfo.AllDayEvent = AllDayEvent; if(isdefined("Duration") EQ 1) eventInfo.Duration = Duration; if(isdefined("EndTime") EQ 1) eventInfo.EndTime = EndTime; if(isdefined("From") EQ 1) eventInfo.From = From; if(isdefined("HasAttachment") EQ 1) eventInfo.HasAttachment = HasAttachment; if(isdefined("HtmlMessage") EQ 1) eventInfo.HtmlMessage = HtmlMessage; if(isdefined("Importance") EQ 1) eventInfo.Importance = Importance; if(isdefined("IsRecurring") EQ 1) eventInfo.IsRecurring = IsRecurring; if(isdefined("Message") EQ 1) eventInfo.Message = Message; if(isdefined("OptionalAttendees") EQ 1) eventInfo.OptionalAttendees = OptionalAttendees; if(isdefined("Organizer") EQ 1) eventInfo.Organizer = Organizer; if(isdefined("Reminder") EQ 1) eventInfo.Reminder = Reminder; if(isdefined("RequiredAttendees") EQ 1) eventInfo.RequiredAttendees = RequiredAttendees; if(isdefined("Resources") EQ 1) eventInfo.Resources = Resources; if(isdefined("Sensitivity") EQ 1) eventInfo.Sensitivity = Sensitivity; if(isdefined("StartTime") EQ 1) eventInfo.StartTime = StartTime; if(isdefined("Subject") EQ 1) eventInfo.Subject = Subject; if(isdefined("UID") EQ 1) eventInfo.UID = UID; if(isdefined("Location") EQ 1) eventInfo.Location = Location; </cfscript> <cfreturn eventInfo> </cffunction> <!--- Function to delete calendar events ---> <cffunction name="deleteAllEvents"> <cfargument name="convariable" type="any"/> <cfexchangecalendar action="get" name="deleteQuery" connection="convariable"> </cfexchangecalendar> <cfloop query="deleteQuery"> <cfexchangecalendar action="delete" connection=convariable uid=#deleteQuery.uid#> </cfloop> </cffunction>
|
Availability.cfm
<cfexchangeConnection action="open" username = "user1" password="Password" server="IP_Address" serverversion="2010" connection="conn1"> <cfexchangeConnection action="open" username = "user2" password="Password" server="IP_Address" serverversion="2010" connection="conn2"> <cfset deleteAllEvents(conn1)> <cfset deleteAllEvents(conn2)> <!--- Creating All day event for user1 ---> <cfset eventInfo = constructCalendarStruct (AllDayEvent="yes",Importance="High", Subject="Testplan1",StartTime="#fromDate#")> <cfset eventInfo1 = constructCalendarStruct (AllDayEvent="yes",Importance="High", Subject="Testplan",StartTime="#fromDate#")> <cfexchangeCalendar action="create" connection="conn1" event="#eventInfo#" result="UID"> <cfscript>sleep(15000);</cfscript> <cfexchangeCalendar action="create" connection="conn2" event="#eventInfo1#" result="UID1"> <cfscript>sleep(15000);</cfscript> <cfexchangeCalendar attendees="a@cfadobe.com" action="getuseravailability" connection="conn1" datarequesttype="freebusyandsuggestions" startDate="#fromDate#" endDate="#toDate1#" name="result"> <cfdump var="#result#"> <cfset deleteAllEvents(conn1)> <cfset deleteAllEvents(conn2)>
|
次の例は、getRooms および getRoomList アクションを使用する方法を示しています。
<cfexchangeConnection action="open" username = "sample" password="Password" server="IP_Address" serverversion="2010" connection="conn1"> <cfexchangecalendar action="getroomlist" name="roomList" connection="conn1"> <cfdump var="#roomList#"> <cfexchangecalendar action="getrooms" emailaddress="groundfloor1@cfadobe.com" name="rooms" connection="conn1"> <cfdump var="#rooms#">
|
例 3
folderId 属性を使用して、セカンダリカレンダーで予定を作成および取得します。
<cfexchangeconnection action="open" connection="conn1" server="<server hostname/IP>" username="<username>" password="<password>" serverversion="2010" protocol="<protocol>" >
<cfscript> eventStruct = structnew(); eventStruct.AllDayEvent = "yes"; eventStruct.Importance = "low"; eventstruct.RequiredAttendees = "testing@abc.com"; eventstruct.Subject = "Test Message"; eventStruct.StartTime = now(); </cfscript> <!-- -Get Calendar Folder Id using exchangefolder tag --> <cfexchangefolder action="GETEXTENDEDINFO" name="familyCalendar" connection="conn1" folderpath="Calendar/family" > <!--- Must be a calendar folder---> <cfexchangecalendar action="create" event="#eventStruct#" connection="conn1" result="createdId" folderid="#familyCalendar.uid#"> <cfoutput > Created Appointment Successfully in the given calendar </cfoutput> <!
--- getting appointments from the specified calendar using folderId <cfexchangecalendar action="get" name="familyItems" connection="conn1" folderid="#familyCalendar.uid#"> <cfexchangefilter name="subject" value="Test Message" > </cfexchangecalendar> <cfdump var="#familyItems#" >
|
folderpath 属性を使用して、セカンダリカレンダーで予定を作成および取得します。
<cfexchangeconnection action="open" connection="conn1" server="<server hostname/IP>" username="<username>" password="<password>" serverversion="2010" protocol="<protocol>" >
<cfscript> eventStruct = structnew(); eventStruct.AllDayEvent = "yes"; eventStruct.Importance = "low"; eventstruct.RequiredAttendees = "testing@cfadobe.com"; eventstruct.Subject = "This is from coldfusion just testing after the test " & rand("CFMX_COMPAT" ); eventStruct.StartTime = now(); </cfscript> <!--- Default path delimiter is / no need to specify--> <cfexchangecalendar action="create" event="#eventStruct#" connection="conn1" result="createdId" folderpath="Calendar/family">
<cfoutput > Created Appointment Successfully in the given calendar </cfoutput>
<cfexchangecalendar action="get" name="familyItems" connection="conn1" folderpath="Calendar/family" pathDelimiter="/"> <cfexchangefilter name="subject" value="This is from coldfusion just testing after the test" > </cfexchangecalendar> <cfdump var="#familyItems#" >
|