action - スコープ対象、グローバル

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む9読むのに数分
  • アクション API を使用すると、UI アクションスクリプトで URL のデータを扱うことができます。

    action API を使用して、ユーザーが操作できる UI アクションを設定します。UI アクション [sys_ ui_action] テーブル内のこれらのスクリプトを使用します。詳細については、「 UI アクション」を参照してください。

    この API のメソッドは、サーバー側の JavaScript で「action」という変数名で参照されます。詳細については、「UI アクションによるインタラクションの作成」を参照してください。

    action - getGlideURI()

    ユーザービューを決定する GlideURI オブジェクトを取得します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    オブジェクト ユーザービューの URI パラメーターを表す GlideURI オブジェクト。

    次の例は、ユーザービューを取得し、サービスカタログのホームページへのリダイレクト URL を設定する方法を示しています。

    var uri = action.getGlideURI();
    var path = 'catalog_home.do';
    
    uri.set('sysparm_view', 'catalog_default');
    action.setRedirectURL(uri.toString(path));

    action - getReturnURL()

    UI アクションが完了した後に表示されるページの URL を取得します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    文字列 UI アクションが完了した後に表示されるページの URL。
    action.getReturnURL();

    action - getURLParameter(文字列 parameterName)

    URL パラメーターの値を取得します。

    表 : 5. パラメーター
    名前 タイプ 説明
    parameterName 文字列 URL パラメーター値を照会する URL パラメーターの名前。
    表 : 6. 返される内容
    タイプ 説明
    文字列 URL パラメーター値。
    action.getURLParameter('sysparm_query');

    action - openGlideRecord(オブジェクト gr)

    ユーザービューで GlideRecord を含むページを開きます。

    表 : 7. パラメーター
    名前 タイプ 説明
    gr GlideRecord ユーザービューで開くページの GlideRecord。
    表 : 8. 返される内容
    タイプ 説明
    なし  

    次の例は、インタラクションレコードから作成された発信者名とインシデントの説明を含める方法を示しています。詳細については、「 ワークスペースでのカスタム UI アクションの設定」を参照してください。

    if(current.update()){
      var inc = new GlideRecord("incident");
      inc.newRecord();
      inc.caller_id = current.opened_for;
      inc.short_description = current.short_description;
      action.openGlideRecord(inc);
    }

    action - setNoPop(ブール noPop)

    現在のビューのページでポップアップウィンドウを有効にするか無効にするかを示します。

    表 : 9. パラメーター
    名前 タイプ 説明
    noPop ブーリアン ページでポップアップウィンドウを有効にするか無効にするかを示すフラグ。
    • true:ポップアップウィンドウを無効にします。
    • false:デフォルトです。ポップアップウィンドウを有効にします。
    表 : 10. 返される内容
    タイプ 説明
    なし

    次の例は、UI アクションのポップアップウィンドウを無効にする方法を示しています。

    
    action.setNoPop(true);

    action - setRedirectURL(オブジェクト URL)

    このトランザクションのリダイレクト URI を設定します。リダイレクト URI は、ユーザーに表示される次のページを決定します。

    表 : 11. パラメーター
    名前 タイプ 説明
    URL オブジェクト リダイレクトとして設定する URL。URL は文字列または GlideRecordとして指定できます。URL を GlideRecord として渡すと、この値によってそのレコードのフォームにフォーカスが移動します。
    表 : 12. 返される内容
    タイプ 説明
    なし

    次の例は、 現在の 変数を使用して UI アクションから URL にユーザーをリダイレクトする方法を示しています。

    var fixchg = new GlideRecord("change_request");
    fixchg.short_description= current.short_description;
    fixchg.comments= current.comments.getHTMLValue();
    // fixchg.parent = current.sys_id;
    fixchg.insert();
    FixChange();
     
    gs.addInfoMessage("Change "+ fixchg.number+" created");
    action.setRedirectURL(current);
    action.setReturnURL(fixchg);
     
    function FixChange(){
    var m2m = new GlideRecord('task_rel_task');
    m2m.initialize();
    m2m.child= current.sys_id;
    m2m.parent= fixchg.sys_id;
    m2m.type.setDisplayValue("Fixes::Fixed by");
    m2m.insert();}
    次の例は、新しいインシデントレコードを作成し、UI アクションの完了後に新しいインシデントにリダイレクトする方法を示しています。
    var reqItem = current.u_item;
    var requestedFor = current.u_requested_for;
    var location = current.location;
    
    if(current.u_incident_request == 'Incident'){
      //Create a new incident record and redirect to the new incident
      var rec = new GlideRecord('incident');
      rec.initialize();
      rec.caller_id = requestedFor;
      rec.location = location;
      rec.insert();
      action.setRedirectURL(rec);
    }
    
    if(current.u_incident_request == 'Request'){
      //Build the url and route the user to the request item
      var url = '';
      if(current.u_item.sys_class_name == 'sc_cat_item_guide'){
        url = 'com.glideapp.servicecatalog_cat_item_guide_view.do?sysparm_initial=true&sysparm_guide=' + 
          reqItem + '&sysparm_user=' + requestedFor + '&sysparm_location=' + location;
      }
      else{
        url = 'com.glideapp.servicecatalog_cat_item_view.do?sysparm_id=' + reqItem + '&sysparm_user=' +  
          requestedFor + '&sysparm_location=' + location;
      }
      action.setRedirectURL(url);
    }

    action - setReturnURL(オブジェクト URL)

    UI アクションが完了した後に、このトランザクションのリターン URI を設定します。このメソッドを使用して、ユーザーが送信から戻ったときに表示されるページを決定できます。

    表 : 13. パラメーター
    名前 タイプ 説明
    URL オブジェクト UI アクションが完了した後に戻る場所として設定する URI。URL は文字列または GlideRecordとして指定できます。
    表 : 14. 返される内容
    タイプ 説明
    なし

    次の例では、ユーザーが UI アクションを選択し、問題レコードと変更テンプレートの情報を使用して変更レコードを作成できるようにしています。変更後、ユーザーは 現在の ビューに戻ります。詳細については、「 スクリプトテンプレート」を参照してください。その他のユースケースについては、「 UI アクションによるタスク関係の定義」を参照してください。

    var change = new GlideRecord("change_request");
    change.initialize();
    change.short_description = current.short_description;
    change.description = current.u_details;
    change.cmdb_ci = current.u_service;
    change.priority = current.priority;
    change.requested_by = current.caller_id;
    change.assignment_group.setDisplayValue('Change & Release');
    change.u_status = 'New';
    change.parent = current.number;
    change.applyTemplate("standard_rfc");
    current.rfc = change.insert();
    current.comments = 'Change ' + change.number + ' created.';
    
    var mySysID = current.update();
    
    gs.addInfoMessage("Change " + change.number + " created");
    action.setRedirectURL(change);
    action.setReturnURL(current);

    action - setURLParameter(文字列 parameterName, 文字列 parameterValue)

    URL パラメーターの名前と値を設定します。

    表 : 15. パラメーター
    名前 タイプ 説明
    parameterName 文字列 URL パラメーターの名前。
    parameterValue 文字列 パラメーターの値。
    表 : 16. 返される内容
    タイプ 説明
    なし
    action.setURLParameter('sysparm_query', 'priority=2^active=true');