3 2 2026-04-07 (C) Questetra, Inc. (MIT License) This item posts a message or comment to Collab Chat. この工程は、コラボチャットにメッセージまたはコメントを投稿します。 https://support.questetra.com/bpmn-icons/service-task-feed-post/ https://support.questetra.com/ja/bpmn-icons/service-task-feed-post/ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAB3ElEQVR4AbRVvXXCMBg802eAdNCQ NVggA6SDBjoIG8AEhHRQ0WUMWIABQgNdBsgATs6WbYGlT/rA9nv35CfdXxRZdKB9Nphig9SDqdYu rsAG72UgsIb/WZc8avy8ckUusEU/MwRWpSL+ZZVp6SFo/AW4zSm+BW3cEj3o5WG7CwgCj0942uNZ L+AhhhMiGA7v6wIOQoStjnKTURVwHJZ0nKIJ1BpaWVUBHpYaE7j8XrA77e4CtQ5LwMrKCwjf7OHn gNFhdBeodRbgpMnMC0R859p/BTMCyO6WokCA295yB7zbI/yTbQINIizBbO6AdLeXPue3MzQohfLL mgVkilntPnWhgZEFh+gCmu0nN5hsCNEFBs8DSDB+6iG6wP51DwnqZCOILsBtlWD81AMLzNSq5gSz Dib4DPlpb8GCP+wPZev/bO6ASAqaiGqg99UTGUWBucRaHpeqW9A+K95fRCDLzAtM8AHPw/DFceFZ fWDaZOYF6JPghYON1sKtrKrAGCc7nO+t/OU0trKqAlyYIOHQKm4yrgsw+YbAqcbg8K4XYJqDyOmH 4PF0F2ASBdZh4dRdoAe9PGJ/AQp4WHJx9s1ySoE5qKWHIJILFEJ+szQjAOm3Y5aFkkcNgMLCN/4B AAD//ycYU2sAAAAGSURBVAMAMF9N7iPMBHUAAAAASUVORK5CYII= { configs.put('conf_ChannelName', channelName); if (messageId !== null) { const messageIdDef = engine.createDataDefinition('投稿先メッセージ ID', 1, 'q_messageId', 'DECIMAL'); engine.setData(messageIdDef, new java.math.BigDecimal(messageId)); configs.putObject('conf_MessageId', messageIdDef); } configs.put('conf_Markdown', markdown); if (files !== null) { const filesDef = engine.createDataDefinition('添付ファイル', 2, 'q_files', 'FILE'); engine.setData(filesDef, files); configs.putObject('conf_Files', filesDef); } if (savePostId) { const postIdDef = engine.createDataDefinition('投稿 ID', 3, 'q_postId', 'DECIMAL'); configs.putObject('conf_PostId', postIdDef); } }; /** * 異常系のテスト * @param {String} errorMsg */ const assertError = (errorMsg) => { let failed = false; try { main(); } catch (e) { failed = true; expect(e.message).toEqual(errorMsg); } if (!failed) { fail('No error was thrown.'); } }; /** * 投稿文も添付ファイルもない場合、エラー */ test('Error - markdown and files are both empty', () => { prepareConfigs('my-channel', null, '', null, false); assertError('Post content and attached files are both empty.'); }); /** * 投稿成功 * - チャンネル名指定あり * - メッセージ ID なし(新規メッセージ) * - 投稿文あり・添付ファイルなし・投稿 ID 保存なし */ test('Success - markdown only, new message, postId not saved', () => { prepareConfigs('my-channel', null, '**Hello**', null, false); feedService.setPostHandler((record) => { expect(record.channel).toEqual('my-channel'); expect(record.messageId).toEqual(null); expect(record.message).toEqual('**Hello**'); expect(record.markdown).toEqual(true); return 11; }); main(); }); /** * 投稿成功 * - チャンネル名空 → ケースのチャンネルを使用 */ test('Success - channel name blank (uses case channel)', () => { prepareConfigs('', null, 'Hello', null, false); feedService.setPostHandler((record) => { expect(record.channel).toEqual(`p${processInstance.getProcessInstanceId()}`); return 22; }); main(); }); /** * 投稿成功 * - メッセージ ID あり(コメント投稿) * - 投稿 ID 保存あり */ test('Success - with messageId (comment), postId saved', () => { prepareConfigs('my-channel', 9999, 'Comment', null, true); feedService.setPostHandler((record) => { expect(record.channel).toEqual('my-channel'); expect(record.messageId).toEqual(9999); expect(record.message).toEqual('Comment'); expect(record.markdown).toEqual(true); return 33; }); main(); const postIdDef = configs.getObject('conf_PostId'); expect(engine.findData(postIdDef).longValue()).toEqual(33); }); /** * 投稿成功 * - 添付ファイルあり・投稿文なし */ test('Success - files only, no markdown', () => { const file = engine.createQfile('test.txt', 'text/plain', 'test'); prepareConfigs('my-channel', null, '', [file], false); feedService.setPostHandler((record) => { expect(record.channel).toEqual('my-channel'); expect(record.messageId).toEqual(null); expect(record.markdown).toEqual(false); // Makrdown 本文がないので return 44; }); main(); }); /** * 投稿成功 * - 全項目設定(投稿文・添付ファイル・メッセージ ID・投稿 ID 保存) */ test('Success - all configs', () => { const file = engine.createQfile('test.txt', 'text/plain', 'test'); prepareConfigs('my-channel', 9999, '**Hello**', [file], true); feedService.setPostHandler((record) => { expect(record.channel).toEqual('my-channel'); expect(record.messageId).toEqual(9999); expect(record.message).toEqual('**Hello**'); expect(record.markdown).toEqual(true); return 55; }); main(); const postIdDef = configs.getObject('conf_PostId'); expect(engine.findData(postIdDef).longValue()).toEqual(55); }); ]]>