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);
});
]]>