概要
現在、イーストでは出社予定(座席予約)をOutlookに特定のプレフィックスを付けて予定登録、管理しています。 予定登録するサイトでは個人の月表示はないため、今月、来月いつ出社だっけ?などぱっと確認できない、Webサイトなのでスマホからの確認が不便(デザインも) と言うことで、スマホを意識したデザインで特定のOutlookの予定を表示するPowerAppsを作成し、Teamsに組み込めば確認がしやすいのではと考え作成してみました。
前提
- Outlookの予定であること
- プレフィックスが付いているなど特定が可能なこと
- 予定の登録などの管理は別で行う(Webサイト、Outlook)
Outlook予定カレンダーを表示
縦表示で新しい画面を[テンプレート]の[カレンダー]を追加します。
これだけでOutlookの予定をカレンダー表示し、選択した日付の詳細を表示できます。
縦表示に合わせてコントローラを下部に持っていき、縦横幅を調整し、曜日を一文字に調整します。
特定の予定のみ表示(出社予定)
出社予定は「出社:」が頭に付いているので、それが付いている予定のみに絞り込みます。
- カレンダーの予定あり表示の絞り込み
- 予定詳細の表示絞り込み
また不要な表示を削除。
その他表示調整、機能
- 上部のOutlook予定表ドロップダウン削除
Outlookの予定表の名前が一定ではないためテンプレートでは選択させ表示するようになっているが、一手間多いため、予定表の名前決め打ちで(予定表 or Calendar)で画面表示した時に表示するようにする。 以下を画面のOnVisibleに追加する
Set(_myCalendar, LookUp(Office365Outlook.CalendarGetTables().value,DisplayName="予定表" || DisplayName="Calendar"));
- 予定のコピー 以下の関数を利用してOutlookの予定を削除できるので、予定詳細にボタン、画像を用意してOnSelectに設定することで出来ます。 コピー先の日付は別途日付選択コントローラを用意するなどして指定します。
Office365Outlook.V4CalendarPostItem(
gblMyCalender,
_copySubject, -- コピーする予定件名
DateValue(ThisRecord.Date),
Text(DateAdd(DateValue(ThisRecord.Date), 1, TimeUnit.Days), "yyyy/mm/dd" ), -- コピー先予定日
"UTC",
{isAllDay:true}
)
- 予定の削除 以下の関数を利用してOutlookの予定を削除できるので、予定詳細にボタン、画像を用意してOnSelectに設定することで出来ます。
Office365Outlook.CalendarDeleteItemV2(
_myCalendar.Name, -- 予定表明
ThisItem.Id -- 削除したい予定
);
その他、色の調整、祝日、部署の出社予定の取得表示を行いました。
Teamsに公開、共有
右上のTeamsアイコンをクリックし、Teamsに公開します。
このままで開発したユーザーまたは開発したチームに所属しているユーザーのみになっているので、他のユーザーに共有します。 共有はユーザー単位ではなくセキュリティグループを指定することになるので、適切なセキュリティグループを事前に作成しておくとよいです。