2024-03-07
(C) Questetra, Inc. (MIT License)
3
2
This item inserts an event to Google Calendar.
この工程は、Google カレンダーに予定を追加します。
https://support.questetra.com/bpmn-icons/googlecalendar-insertevent/
https://support.questetra.com/ja/bpmn-icons/googlecalendar-insertevent/
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEt0lEQVRYR8VXX2xTVRj/ndv2tmv3
p1cGDyqM8SBRx9jcNBEMW7apSMKYMWoiD9sSEhITQ33AB23DyOaDJmoxGqPRbBgwEhMdUSRKS4ri
XMA/I4jJhkZQIEhgbdm69ra395hz72572t5u3UbwvDS99/vO+Z3v+/2+77sE//MiCzm/vT/cRYjQ
AtAGAG4A7JetMQARgIwBJBTwVh4udd95AbT2hd1Wm7CLqtRDiHbovItSRIhA/EpK3RfqkyJzOcwJ
oO3VcA9RyVulHpx/EAMC0N6gTxouBqIogPb+sJ8Qsmve65ZkQPwBb9WLZqamANoHwkMEpLukvUs0
oiBDQW9Vb755AQD+5utrrGirs8FmmZcqpjAmp1UcPJlAPKm/ppTuC/okD2+cszPLuUDJoGHwTm85
1t5p0f5ejaoYnVCwuUGEw2Z+7ZkkcPy3JDautUFyEagUGD6dxHvH4hkHSumTPCcyABjbLRbyF0+4
D3dWoKZa0Jwvh1WEzqXQ9aAdLrs5gJgMfP2rjLY6EcvK9a2PjiXx5hEeACLpNK011JEB0NEf7gMh
e4ytm9dY0V4ngpaYYzMzgQBTCYpDIwlcn+J2onRvwCf1MZ8sgIEwKyRVxkb+7nLcf7ce/qWstAp8
fkrGB8EElwZEgj63lAGgVzjyBX/Q69tdaFxtXcrZmm8qDRwakbH/uyyAWUJqXNAiYKb53VudeKy+
CNsWAIsp4N1v4/jmzKwUZn0NRWgAOvrDIRDSwu/b0+LAMw/bYeOy8PcNFYOhBG5MqRo/Hq0X4RQB
Rr7xKwrGLirY1mTHsoqsuCIxijeOzGD0vJILm9ITAZ/UqkdgIHyBgNTwFtuaRexoK8tIjpHp4EkZ
Tz1kR3UlwU9/KojJVJPc8GkZVU4BlybT6Gyyo5oDwNTzyqcxXJ5U8+M2FvC6G/UIDEQKyL7pXhs8
T5Shoky/DdM0y6do1Zl7aVLFqT9S6Gy2g7Gdke3Ln5NgfjyA81fTeP6jadOkBbxuUhRA3UoLXu5y
YXllbhWUFeBaVMWxs0m03idizQq9TjBwZgBGJhTs+Sw2NwCzFNx1h4DnNjrgduUCiMsUCYXi93/S
WFUtYGW1ThIWgdGJFNatsqLSmfUZv5LGx3kKmFXBmaBPaihKwgdqrXip05mpaPlX+DdK8dUvMrY/
4tB4UiwCjJi7D5hEIIeEJq23Y50NL2x2aixni/WCHycUbG0SYRWAUgFcvK5ix/tTBSnIkaFZIere
5MCzG7IyZCRkveDaTRW1KywYGdf7Qu08HGAl+LXDM5pE+WU0paKl2LOlDFsaxWytZu0UwHSC4mac
YnmFoCnCWAwgAye5BNi556xGvH10BsfPpbjzaTTglbTxrmgz2vu0CxvuuTWl+JMfEjjwvZwFYNaM
tOHTigtGQ+JngQVU3gLTwpmARhUFqwvaMfPkB5KdHQ48Xi/CsshpyEAyHacYPBFH4KyegqIDieFw
a4fRvIBwoTfe3MahlO4PeqWe/BzdnrHc5OZzRoBLRxchGOInpYURkkYpRc+iPkyMgzR1WOABgad0
IDQKCr+Shn9Jn2b5t2UVEwAbIhoo4CaErDcaCwFYT2cfqaG5blwyBxYW6sVb/wdgbxw/u9E3bAAA
AABJRU5ErkJggg==
{
// Google ドライブ に接続するユーザを config に指定
const quser = engine.createQuser(3, 'サウスポール', 'SouthPole@questetra.com');
configs.putObject('conf_User', quser);
configs.put('conf_DataIdB', calendarId,); //C2: Calendar ID
configs.put('conf_DataIdC', eventTitle); //C3: 予定タイトル
// 日時型データ項目(開始時刻)を準備して、config に指定
const startDateDef = engine.createDataDefinition('開始時刻', 1, 'q_StartDate', 'STRING_TEXTFIELD');
configs.putObject('conf_DataIdD', startDateDef);
// 日時型データ項目の値(開始時刻)を指定
if (startDate !== null) {
//スクリプトの addHours() に対応 - java.sql.Timestamp.valueOf(startDate) ではエラーになる
const datetimeS = new com.questetra.bpms.util.AddableTimestamp(java.sql.Timestamp.valueOf(startDate).getTime());
engine.setData(startDateDef, datetimeS);
} else {
engine.setData(startDateDef, null);
}
// 日時型データ項目(終了時刻)を準備して、config に指定
const endDateDef = engine.createDataDefinition('終了時刻', 2, 'q_EndDate', 'STRING_TEXTFIELD');
configs.putObject('conf_DataIdE', endDateDef);
// 日時型データ項目の値(終了時刻)を指定
if (endDate !== null) {
const datetimeE = java.sql.Timestamp.valueOf(endDate);
engine.setData(endDateDef, datetimeE);
} else {
engine.setData(endDateDef, null);
}
configs.put('conf_DataIdF', location); //C6: 場所
configs.put('conf_DataIdG', description); //C7: 説明
// 文字型データ項目を準備して、config に指定
const idDef = engine.createDataDefinition('予定 ID', 3, 'q_ids', 'STRING_TEXTAREA');
configs.putObject('conf_eventId', idDef);
// 文字型データ項目の値(予定 ID を保存するデータ項目)を指定
engine.setData(idDef, '事前文字列');
// 文字型データ項目を準備して、config に指定
const urlDef = engine.createDataDefinition('予定 URL', 4, 'q_urls', 'STRING_TEXTAREA');
configs.putObject('conf_eventUrl', urlDef);
// 文字型データ項目の値(予定 URL を保存するデータ項目)を指定
engine.setData(urlDef, '事前文字列');
// 文字型データ項目を準備して、config に指定
const meetDef = engine.createDataDefinition('Meet URL', 5, 'q_meet', 'STRING_TEXTAREA');
configs.putObject('conf_meetUrl', meetDef);
// 文字型データ項目の値(Meet URL を保存するデータ項目)を指定
engine.setData(meetDef, '事前文字列');
return {
idDef,
urlDef,
meetDef
};
};
/**
* 異常系のテスト
* @param func
* @param errorMsg
*/
const assertError = (func, errorMsg) => {
let failed = false;
try {
main();
} catch (e) {
failed = true;
}
if (!failed) {
fail();
}
};
/**
* Google ドライブに接続する UserID に対応する QuserView がなくエラーになる場合
*/
test('User not found', () => {
prepareConfigs(configs, 'abcde@123.com', 'event1', '2022-01-01 10:03:00', '2022-01-01 18:03:00', 'location1', 'description1');
// 設定されたユーザが削除された場合 未設定と同じ状態に上書きする
configs.put('conf_User', '');
//