このページでは、アクション実行時にSmartStageの「アイテム更新API」を呼び出し、特定の項目を自動で書き換えるサンプルスクリプトをご案内します。
本サンプルでは、メイン処理から更新専用の関数を呼び出す構成をとっており、スクリプトの拡張やメンテナンスがしやすい記述方法を解説します。
完成イメージ
アクションをクリックした際に、あらかじめ指定した項目へ自動的に特定の値を書き込みます。 プログラム内で処理を切り分ける(関数化する)ことで、読みやすくミスの少ない自動化を実現します。
利用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
サンプルスクリプト
認証ヘッダーを共通化し、API実行部分を独立した関数(updateItem)として定義したサンプルです。
// --- 1. 共通設定(環境に合わせて書き換えてください) ---
const SS_API_BASE_URL = "https://api.smart-stage.io";
const SS_DATASTORE_ID = "<データストアID>";
const SS_UPDATE_ACTION_ID = "<更新アクションID>";
const SS_FIELD_ID = "<更新対象の項目ID>";
const SS_FIELD_TITLE_ID = "<タイトル項目ID>";
// --- 2. 共通ヘッダー(共通定数 SS_API_TOKEN を使用) ---
const commonHeaders = {
'Authorization': `Bearer ${SS_API_TOKEN}`,
'Content-Type': 'application/json'
};
/**
* 3. API実行用関数:アイテムを更新する
*/
const updateItem = async (itemId, revision, titleValue, newValue) = {
const config = {
method: 'post',
url: `${SS_API_BASE_URL}/items/${itemId}/actions/${SS_UPDATE_ACTION_ID}/update`,
headers: commonHeaders,
data: {
"comment": "アクションスクリプトによる自動更新",
"datastoreId": SS_DATASTORE_ID,
"revisionNo": revision,
"fields": {
[SS_FIELD_TITLE_ID]: titleValue,
[SS_FIELD_ID]: newValue
}
},
timeout: 50000
};
logger.log(`APIリクエスト実行: ${itemId}`);
return await axios(config);
};
/**
* 4. メイン処理:データの準備と実行指示
*/
const main = async () = {
try {
// itemオブジェクトから必要な情報を抽出
const valueToSet = "自動処理済み"; //更新する値(※テキスト型項目を想定)
// 更新関数の呼び出し
await updateItem(item.itemId, item.revisionNo, item.title, valueToSet);
logger.log("全ての処理が正常に完了しました。");
} catch (e) {
const errorMsg = e.response ? JSON.stringify(e.response.data) : e.message;
logger.error(`エラーが発生しました: ${errorMsg}`);
throw e;
}
};
// 実行
main();ポイント:関数の分離と共通設定
● ヘッダーの共通化
APIリクエストの認証情報は commonHeaders として外に出しておくことで、複数のAPIを呼び出す際にも同じ設定を使い回すことができます。
● 関数化のメリット
「データの準備(main)」と「APIの実行(updateItem)」を分けることで、どこで何が行われているかが明確になり、エラーが起きた際の調査がしやすくなります。
何かお困りのことはございますか?まずはヘルプセンターを検索してみましょう!
その他ご不明な点があれば、サポートチームにお問い合わせください。
コメント
0件のコメント
サインインしてコメントを残してください。