要求アイテムをコピーするUIアクション

Yuki21
Tera Expert

お世話になっております。
以下要件を満たすことはUIアクションで実現可能でしょうか。

<要件>
①要求アイテム(sc_req_item)の入力画面にコピーボタンを作り、今開いている要求アイテムレコードをコピーする
②要求テーブル(sc_request)のレコードはコピーしない
③要求アイテム(sc_req_item)には変数(variables)のカラムを設定しており、その内容もコピーする

要求テーブル(sc_request)には要求と要求アイテムをコピーするOOTBのUIアクションがあるのは知っていますが、
それを使わずに、要求アイテムのみをコピーしたいです。
要求と要求アイテムを紐づけない考え方がそもそも間違っている可能性もあると思い、質問させていただいております。

16件の返信16

@iwai さん @Yuki21 さん

お疲れ様です。度々すみません。今動きました。コピーされました。

Documentation下記通り、addItemToExistingRequestを使用する時、Catalog Itemのフィールドを使用すると思います。この投稿の内容についてご参照いただける助かりました。ありがとうございました!

songchunpu_0-1679043531230.png

 

要求アイテム[sc_req_item]のUIActionであるなら、変数は current.cat_item になります。下記のScriptでこちらの環境では正しく動作しました。

var catItemId = current.getValue('cat_item');
var requestId = current.getValue('request');
var helper = new GlideappCalculationHelper();

try {
    helper.addItemToExistingRequest(requestId, catItemId, "1");
    helper.rebalanceRequest(requestId);
    gs.addInfoMessage(gs.getMessage("Request copied successfully"));
} catch (e) {
	var catalogExceptionUtils = new CatalogExceptionUtils();
	if(catalogExceptionUtils.isCartException(e)) {
		gs.addErrorMessage(e.getMessage());
	}
}