
コラボチャット: 投稿
この工程は、コラボチャットにメッセージまたはコメントを投稿します。
Basic Configs
- 工程名
- メモ
Configs for this Auto Step
- conf_ChannelName
- C1: 投稿先チャンネル名(空の場合、この工程を処理しているケースのチャンネル)#{EL}
- conf_MessageId
- C2: 投稿先メッセージ ID(コメントを投稿する場合)
- conf_Markdown
- C3: 投稿文(Markdown)#{EL}
- conf_Files
- C4: 投稿に添付するファイルが保存されているデータ項目
- conf_PostId
- C5: 投稿したメッセージ/コメントの ID を保存するデータ項目
Notes
- 組織チャンネル、アプリチャンネル、ケースチャンネルに投稿する場合、[C1: 投稿先チャンネル名]は次のように指定してください
- 組織チャンネル:
g{組織 ID}(例:g1) - アプリチャンネル:
m{アプリ ID}(例:m12) - ケースチャンネル:
p{ケース ID}(例:p2039)
- 組織チャンネル:
Capture

See Also
Script (click to open)
- 次のスクリプトが記述されている XML ファイルをダウンロードできます
- feed-post.xml (C) Questetra, Inc. (MIT License)
- Professional のワークフロー基盤では、ファイル内容を改変しオリジナルのアドオン自動工程として活用できます
const main = () => {
////// == 工程コンフィグ・ワークフローデータの参照 / Config & Data Retrieving ==
const channelName = retrieveChannelName();
const messageId = retrieveMessageId();
const markdown = configs.get('conf_Markdown') ?? '';
const files = retrieveFiles();
if (markdown === '' && files.length === 0) {
throw new Error('Post content and attached files are both empty.');
}
////// == 演算 / Calculating ==
const postId = post(channelName, messageId, markdown, files);
////// == ワークフローデータへの代入 / Data Updating ==
saveData('conf_PostId', new java.math.BigDecimal(postId));
};
/**
* config から投稿先チャンネル名を読み出す
* 空の場合、この工程を処理しているケースのチャンネル名を返す
* @returns {String}
*/
const retrieveChannelName = () => {
const channelName = configs.get('conf_ChannelName') ?? '';
if (channelName !== '') {
return channelName;
}
return `p${processInstance.getProcessInstanceId()}`;
};
/**
* config から投稿先メッセージ ID を読み出す
* 未設定の場合、null を返す
* @returns {Number|null}
*/
const retrieveMessageId = () => {
const def = configs.getObject('conf_MessageId');
if (def === null) {
return null;
}
const messageId = engine.findData(def);
if (messageId === null) {
return null;
}
return messageId.longValue();
};
/**
* config から添付ファイルを読み出す
* 未設定の場合、空配列を返す
* @returns {Array<QfileView>}
*/
const retrieveFiles = () => {
const def = configs.getObject('conf_Files');
if (def === null) {
return [];
}
return engine.findData(def) ?? [];
};
/**
* コラボチャットに投稿する
* @param {String} channelName
* @param {Number|null} messageId
* @param {String} markdown
* @param {Array} files
* @returns {Number} 投稿したメッセージ/コメントの ID
*/
const post = (channelName, messageId, markdown, files) => {
let feedWrapper = feedService.begin()
.setChannel(channelName);
if (messageId !== null) {
feedWrapper = feedWrapper.setMessageId(messageId);
}
if (markdown !== '') {
feedWrapper = feedWrapper.setMarkdown(markdown);
}
files.forEach(file => feedWrapper.attachFile(file));
return feedWrapper.post();
};
/**
* データ項目への保存
* @param {String} configName
* @param {*} data
*/
const saveData = (configName, data) => {
const def = configs.getObject(configName);
if (def === null) {
return;
}
engine.setData(def, data);
};