cfexchangecalendar

説明

Microsoft Exchange のカレンダーイベントの作成、削除、変更、取得、およびカレンダーイベントへの応答を行います。また、カレンダーイベントの添付ファイルを取得します。

履歴

  • ColdFusion(2023 リリース)アップデート 5:usernamepassword および server 属性が追加されました。
  • ColdFusion(2018 リリース):action="create" のオプション属性 timeZone が追加されました。
  • ColdFusion 11:cfexchangecalendar タグに、セカンダリカレンダーを管理するための新しいオプション属性が 3 つ追加されました。これらの属性は get アクションと create アクションにのみ適用でき、2010 以降のバージョンの Exchange Server で使用できます。 セカンダリカレンダーは、exchangecalendar タグでセカンダリカレンダーフォルダーの ID またはパスを使用して指定できます。
  • ColdFusion 10:getUserAvailability、getRooms、getRoomsList
    • serverVersion 属性が追加されました。
  • ColdFusion 8:このタグが追加されました。

カテゴリ

通信タグ

シンタックス

<cfexchangecalendar
required
action = “create”
event = “#event information structure#”
optional
connection = “connection ID”
result = “variable for event UID”

timeZone=“Time Zone for the event”>


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 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

cfexchangeconnectioncfexchangecontactcfexchangefiltercfexchangemailcfexchangetask、『ColdFusion アプリケーションの開発』の会議および予定の操作

属性

属性

アクション

必須/オプション

デフォルト

説明

action

N/A

必須

 

実行するアクションです。有効な値は次のとおりです。

  • create
  • delete
  • deleteAttachments
  • get
  • getAttachments
  • getRooms
  • getRoomsList
  • getUserAvailability
  • modify
  • respond
username すべて オプション   Exchange のユーザー ID です。
password すべて オプション   Exchange サーバーへのアクセスに使用するパスワードです。
server すべて オプション   Exchange へのアクセスに使用するサーバーの IP アドレスまたは URL です。

attachmentPath

getAttachments

オプション

 

添付ファイルを保存する、ディスク上またはメモリ内のディレクトリのファイルパスです。指定したディスク上のディレクトリが存在しない場合は、自動的に作成されます。
メモ:この属性を省略すると、添付ファイルは保存されません。相対パスを指定する場合は、GetTempDirectory 関数によって返される ColdFusion テンポラリディレクトリがパスのルートになります。

attendees

getUserAvailability

必須

 

すべての出席者のコンマ区切りリストです。

connection

すべて

オプション

 

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

同じ名前の添付ファイルが複数ある場合に、一意のファイル名を生成するかどうかを指定するブール値です。同じ名前を持つ添付ファイルが複数存在し、このオプションが yes の場合、ColdFusion は、競合するファイル名の後ろ(拡張子の前)に番号を付加します。例えば、myfile.txt という名前の添付ファイルが 3 つある場合は、myfile.txt、myfile1.txt、myfile2.txt という名前で保存されます。

message

deleterespond

オプション

 

応答通知または削除通知で送信するオプションメッセージのテキストです。

name

getAttachments

getUserAvailability

getRoomsListgetRooms

必須

 

取得したイベント、または取得した添付ファイルに関して取得した情報を格納する ColdFusion クエリ変数の名前です。返されるデータについて詳しくは、「使用方法」を参照してください。

notify

deleterespond

オプション

true

イベントが修正されたときに他のユーザーに通知するかどうかを指定するブール値です。

responseType

respond

必須

 

有効な値は次のとおりです。

  • accept
  • decline
  • tentative

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 を使用すると、次の操作を実行できます。

  • 予定イベントまたは会議イベントを作成する。終日のイベントを作成する。
  • イベントを削除する。
  • 件名、送信者 ID、受信者 ID、受信時刻などのフィルタ条件に一致するイベントを取得する。
  • 特定のイベントの添付ファイルを取得する。
  • 既存のイベントを修正する。
  • イベントに応答する。
    このタグを使用するには、Exchange サーバーに接続する必要があります。複数の連絡先レコードを作成する場合のように、Exchange サーバーとやり取りするタグを複数使用する場合は、cfexchangeconnection タグを使用して永続的な接続を作成します。その場合は、個々の cfexchangecalendar タグで接続識別子を指定します(タスク、連絡先、メールなどにもアクセスする場合はその他の ColdFusion Exchange タグでも接続識別子を指定します)。これにより、個々のタグに対して接続を作成して閉じる必要がなくなるので、システムの負荷が減少します。また、ColdFusion が 1 個の cfexchangecalendar タグを処理する間だけ存続する一時的な接続を作成することもできます。その場合は、cfexchangecontact タグで接続属性を直接指定します。接続属性について詳しくは、cfexchangeconnection タグを参照してください。

    メモ:Exchange カレンダーの予定を作成するには、カレンダーイベントを作成し、必須またはオプションのいずれの参加者も指定しません。

create アクション

create アクションを指定する場合は、イベントに関する情報を含む構造体を event 属性で指定する必要があります。この構造体には次のエントリを格納できます。

要素

デフォルト

説明

AllDayEvent

no

終日のイベントかどうかを示す boolean 値です。

Attachments

 

添付ファイルとして送信するファイルのパスです。複数のファイルパスを指定する場合、Windows ではセミコロン(;)、UNIX および Linux ではコロン(:)を使用して各パスを区切ります。添付ファイルは絶対パスで指定する必要があります。
modify アクションで添付ファイルを指定した場合は、指定した添付ファイルが既存の添付ファイルに追加されます。既存の添付ファイルが削除されることはありません。

Categories

 

カテゴリのコンマ区切りリストです。リスト内のすべてのカテゴリと一致するイベントが検索されます。

Duration

 

イベントの継続時間です(単位:分)。

EndTime

 

ColdFusion で有効な日付時刻形式で示されるイベントの終了時刻です。

Importance

normal

次のいずれかの値になります。

  • high
  • normal
  • low.

IsRecurring

そのイベントが反復されるかどうかを示すブール値です。yes の場合は、RecurrenceType 要素と、反復の詳細を示す要素を指定します。反復フィールドについて詳しくは、次の表を参照してください。

Location

 

イベントの場所を示す文字列です。

Message

 

イベントに関するメッセージを含む文字列です。この文字列では HTML の形式設定タグも使用できます。

OptionalAttendees

 

メール ID のコンマ区切りリストです。

Organizer

 

会議の開催者の名前を示す文字列です。

Reminder

 

イベントの何分前にアラームメッセージを表示するかを指定します。

RequiredAttendees

 

メール ID のコンマ区切りリストです。

Resources

 

Exchange スケジュールリソース(会議室や機材など)のメール ID のコンマ区切りリストです。

Sensitivity

有効な値は、normal、company-confidential、personal および private です。

StartTime

 

ColdFusion で有効な日付時刻形式で示されるイベントの開始時刻です。
この属性で日時を指定し、RecurrenceType で YEARLY を指定して、その他の反復属性を指定しなかった場合、そのイベントは 1 年に 1 回、この属性で指定した日時に繰り返されます。

Subject

 

イベントの件名を示す文字列です。

IsRecurring フィールドの値を yes に設定した場合にイベントの反復を指定するために使用する要素を次の表に示します。イベントの反復の指定方法について詳しくは、『ColdFusion アプリケーションの開発』の会議および予定の操作定期的なカレンダーイベントの設定を参照してください。

要素

タイプ

デフォルト

説明

RecurrenceType

すべて

DAILY

構造体の IsRecurring 要素が yes の場合にのみ使用されます。有効な値は次のとおりです。

  • DAILY
  • WEEKLY
  • MONTHLY
  • YEARLY

RecurrenceNoEndDate

すべて

yes

ブール値です。この要素が yes の場合、イベントは削除または変更されるまで反復されます。RecurrenceCount または RecurrenceEndDate とともに使用することはできません。

RecurrenceCount

すべて

 

イベントを反復する回数です。RecurrenceEndDate または RecurrenceNoEndDate とともに使用することはできません。

RecurrenceEndDate

すべて

 

最後に反復する日付です。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

添付ファイルがメッセージかどうかを指定するブール値です。

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(カレンダーイベントが、定期的なアイテムの例外であるかどうかを示すブール値)、isMeeting(カレンダーイベントが会議であるかどうかを示すブール値)、isPrivate(カレンダーイベントがプライベートであるかどうかを示すブール値)、isRecurring(カレンダーイベントが定期的なものであるかどうかを示すブール値)および isRemainderSet(カレンダーイベントにアラームが設定されているかどうかを示すブール値)です)。

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 アプリケーションの開発』の会議および予定の操作を参照してください。
この例ではコードを短くするためにすべてのイベントデータが再送信されますが、変更したデータだけを送信するように記述することもできます。

<! --- イベント情報の自己送信フォーム --->
<! --- このサンプルでは、比較的シンプルなコードにするため反復を省略 --->
<cfparam name=“form.eventID” default=“0”>

<! --- フォームが送信されたら、イベント構造体にフォームのデータを入力する。--->
<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>

<! --- これが初回の場合は、フォームが送信中
新しいイベントを作成する。--->
<cfif form.eventID EQ 0>
<! --- Exchange にイベントを作成する --->
<cfexchangecalendar action=“create”
username =“#user1#”
password=“#password1#”
server=“#exchangeServerIP#”
event=“#sEvent#”
result=“theUID”>
<! --- 新しいイベントの UID を出力する。--->
<cfif isDefined(“theUID”)>
<cfoutput>Event Added.UID is#theUID#</cfoutput>
<cfset Form.eventID = theUID >
</cfif>
<cfelse>
<! --- フォームが新しいデータで再送信中なので、イベントを更新する。--->
<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 アクションを実行する方法を示しています。

<cfset todayDate = #Now()#>
<cfset fromDate = #DateFormat(todayDate, “mm/dd/yyyy”)# & ' ' & #TimeFormat(todayDate, “HH:MM:SS”)#>
<! --- 現在の日付に 1 日を追加する --->
<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”)#>
<! --- カレンダーイベントを作成する --->
<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>
<! --- カレンダーイベントを削除する関数 --->
<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

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)>
<! --- 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 アクションを使用する方法を示しています。

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>
<! -- -exchangefolder タグを使用してカレンダーフォルダーの ID を取得する -->
<cfexchangefolder action="GETEXTENDEDINFO" name="familyCalendar" connection="conn1" folderpath="Calendar/family" >
<! --- カレンダーフォルダーである必要がある--->
<cfexchangecalendar action="create" event="#eventStruct#" connection="conn1" result="createdId" folderid="#familyCalendar.uid#">
<cfoutput >
Created Appointment Successfully in the given calendar
</cfoutput>
<! --- フォルダー ID を使用して指定のカレンダーから予定を取得する
<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>
<! --- デフォルトのパス区切りは /(指定する必要なし)-->
<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#" >

username と password を使用した例

<cfscript>
    eventStruct = structnew();
    eventStruct.AllDayEvent = &quot;yes&quot;;
    eventStruct.Importance = &quot;low&quot;;
    eventstruct.RequiredAttendees = &quot;user@example.com&quot;;
    eventstruct.Subject = &quot;This is any subject &quot; & rand(&quot;CFMX_COMPAT&quot; );
    eventStruct.StartTime = now();
</cfscript>

<cfexchangecalendar 
	action=&quot;create&quot;
	username =&quot;user1&quot;
    password=&quot;password&quot;
    server=&quot;exchangeServerIP&quot;
    serverversion=&quot;version&quot;
    protocol=&quot;protocol&quot; 
	event=&quot;eventStruct&quot;
	result=&quot;theUID&quot; />

<cfscript>sleep(1000);</cfscript> 

<cfexchangeCalendar action=&quot;get&quot; username =&quot;user1&quot;
    password=&quot;password&quot;
    server=&quot;exchangeServerIP&quot;
    serverversion=&quot;version&quot;
    protocol=&quot;protocol&quot;  name=&quot;getEvent&quot;>
        <CFExchangeFilter name=&quot;subject&quot; value=&quot;calendar&quot;>
</cfexchangeCalendar>

<cfset myArray = ArrayNew(1)>
<cfloop query=&quot;getEvent&quot;>
<cfset temp = ArrayAppend(myArray, &quot;UID&quot;)>
</cfloop>
<cfset myList = ArrayToList(myArray, &quot;,&quot;)>
<cfset myLen = ListLen(myList)>


<cfoutput query=&quot;getEvent&quot;>
	  <cfif getEvent.subject contains &quot;calendar&quot;>
		<cfexchangeCalendar action=&quot;delete&quot;
		username =&quot;user1&quot;
    password=&quot;password&quot;
    server=&quot;exchangeServerIP&quot;
    serverversion=&quot;version&quot;
    protocol=&quot;protocol&quot; 
		uid=&quot;myList&quot;>  
	   Successful! <br>
	  </cfif>  
</cfoutput>

 Adobe

ヘルプをすばやく簡単に入手

新規ユーザーの場合