このページでは、アクション実行時に、ユーザーと日付を自動で登録するサンプルスクリプトをご案内します。
アクションスクリプトの基本的な利用方法については、アクションスクリプト使い方ガイドをご確認ください。
完成イメージ
例えば、アクションを実行した後の日付とユーザーを自動入力したい場合に、本スクリプトを利用します。
起票設定との違い
起票設定:「アクション」ボタンをクリックした際の日付とユーザーが登録されます。
本スクリプト:「作成」または「更新」ボタンをクリックした際の日付とユーザーが登録されます。
利用API
- アイテム更新API (更新アクション実行)
-
URL:
https://api.smart-stage.io/items/{itemid}/actions/{actionid}/update -
method:
POST
SmartStage公開APIの仕様は以下のドキュメントをご確認ください。
https://api.smart-stage.io/swagger/index.html
注意事項
画面項目の追加
ユーザーと日付を格納する画面項目がない場合は、それぞれ適切な項目の型を選択して新規作成してください。
- ユーザー:ユーザー型
- 日付:日付・時刻型
ポストスクリプト実行結果の確認
ポストスクリプトはアクション実行後に処理が開始されるため、アクション実行直後の画面では結果がすぐに反映されないことがあります。その場合は、数秒待ってからブラウザをリロードしてください。(updateAPIの実行には5〜10秒程度かかる場合があります)
サンプルスクリプト
以下は、アクションを実行したユーザーと日付を登録するサンプルスクリプトです。
//変数宣言
const SS_API_BASE_URL = "https://api.smart-stage.io"; // SmartStage外部公開APIベースURL
const SS_WORKSPACE_ID = "<ワークスペースID>";
const SS_DATASTORE_ID = "<データストアID>";
const SS_UPDATE_ACTION_ID = "<アクションID>"; //「内容を更新する」アクションID
const SS_FIELD_TITLE = "<項目ID>"; //タイトルに利用している項目ID(※必須入力)
const SS_FIELD_UPDATE_USER = "<項目ID>"; //ユーザーの項目ID
const SS_FIELD_UPDATE_TIME = "<項目ID>"; //日付の項目ID
//新規作成OR更新アクション
const IS_CREATE_PROCESS = 0; //新規作成時は”1、更新作成時は”0"
//{SS_API_TOKEN}:トークン情報を共通定数化したもの
const options = {
headers: {
Authorization: `Bearer ${SS_API_TOKEN}`,
'Content-Type': 'application/json',
},
"timeout": 20000
};
// 日付文字列をISO 8601形式に変換
const convertToISO8601 = async (dateString) => {
const standardizedDateString = dateString.replace(/\//g, "-").replace(" ", "T");
// "YYYY/MM/DD HH:mm:ss"形式をパースしてDateオブジェクトを作成
const parsedDate = new Date(standardizedDateString);
// 指定された時間を加算 (ミリ秒単位で計算)
parsedDate.setHours(parsedDate.getHours() + 9);
// DateオブジェクトをISO 8601形式の文字列に変換
return parsedDate.toISOString();
}
const setToSmartStage = async (itemId, time, user) => {
if (time == "") {
logger.log("timeがありません");
return false;
}
if (user == "") {
logger.log("userがありません");
return false;
}
const timeISO8061 = await convertToISO8601(time);
const payload = {
"comment": "スクリプトにより更新",
"datastoreId": SS_DATASTORE_ID,
"workspaceId": SS_WORKSPACE_ID,
"fields": {
[SS_FIELD_TITLE]: item.title,
[SS_FIELD_UPDATE_TIME]: timeISO8061,
[SS_FIELD_UPDATE_USER]: [user]
}
};
const relItems = await axios({
method: 'post',
url: `${SS_API_BASE_URL}/items/${itemId}/actions/${SS_UPDATE_ACTION_ID}/update`,
data: payload,
...options,
})
.catch((e) => {
logger.error(`SmartStageの登録に失敗しました。エラー情報: ${JSON.stringify(e)}`);
throw (e);
});
}
/**
* メイン処理
*/
const main = async () => {
try {
let dataTime;
let dataUser;
if(IS_CREATE_PROCESS == 1 ){
dataTime = item.createdAt;
dataUser = item.createdBy;
}else{
dataTime = item.updatedAt;
dataUser = item.updatedBy;
}
const resultUpdate = await setToSmartStage(item.itemId, dataTime, dataUser);
} catch (e) {
logger.error(`エラー情報: ${JSON.stringify(e)}`);
throw (e);
}
};
main();
何かお困りのことはございますか?まずはヘルプセンターを検索してみましょう!
その他ご不明な点があれば、サポートチームにお問い合わせください。
コメント
0件のコメント
サインインしてコメントを残してください。