CSD 2.0 を他のソフトウェアプロバイダーと統合

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:12分
  • CSD 2.0 を、Casper、Altiris、LANDesk などのクライアントソフトウェアディストリビューションプロバイダーと統合します。

    注:
    CSD 2.0の拡張は、経験豊富なServiceNow AI Platform開発者のみが使用することを目的とした高度な手順です。

    プロバイダーテーブルを作成

    プロバイダーサーバーから検出されたデータを保存するテーブルを特定して作成します。

    たとえば、アプリケーション、コレクション、および展開テーブルには Microsoft Endpoint Configuration Manager スポークが用意されています。同様に、検出されたデータを保存するテーブルを作成します。クライアントソフトウェアディストリビューションアプリケーション (sn_csd_application) テーブルを拡張するアプリケーションテーブルを作成する必要があります。
    • 構成アイテム [cmdb_ci] テーブルを拡張するプロバイダーサーバーテーブルを作成します。
    • クライアントソフトウェアディストリビューションソフトウェア構成 [sn_csd_software_config] テーブルを拡張するソフトウェア構成テーブルを作成します。

    サブフローを作成

    ワークフロースタジオ でサブフローを作成し、データを検出して保存し、アプリケーションを展開します。

    要件に従って、これらのサブフローを ワークフロースタジオ に作成します。
    • データサブフローの検出および保存:

      プロバイダーサーバーを検出し、プロバイダーサーバーからデータを取得し、ServiceNow インスタンスにそのデータを保存するサブフロー。このデータは、サーバーデータの保存用に以前作成したテーブルに保存する必要があります。

    • アプリケーションサブフローの展開:

      プロバイダーサーバーからソフトウェアを展開するサブフロー。このサブフローは、サービスカタログから要求されたアプリケーションの展開に関する情報をプロバイダーに提供します。

    • アプリケーションの取り消しサブフロー:

      プロバイダーサーバーからインストールを取り消すサブフロー。このサブフローは、アプリケーションを削除する必要があるユーザーまたはデバイスに関する情報をプロバイダーに提供します。

    • 構成データ検索サブフロー:

      指定された要求アイテムの構成データまたはソフトウェア設定レコードを取得するサブフロー。

    [アプリケーションの展開] テンプレート、[構成データを検索] テンプレート、および [アプリケーションの取り消し] テンプレートのサブフローは、CSD 2.0で提供されます。これらのサブフローを参照として使用し、要件に従ってサブフローを作成できます。

    プロバイダーレコードを作成

    プロバイダーレコードを作成してフローを設定します。

    始める前に

    必要なロール:admin

    手順

    1. 移動先 クライアントソフトウェアディストリビューション 2.0 > プロバイダー.
    2. [New] をクリックします。
    3. フォームに、これらの値を入力します。
      フィールド 説明
      名前 プロバイダーレコードを識別する名前。
      ソフトウェア構成テーブル 作成したソフトウェア構成テーブル。このテーブルは、クライアントソフトウェアディストリビューションソフトウェア構成 [sn_csd_software_config] テーブルを拡張します。
      プロバイダーサーバーテーブル 作成したプロバイダーサーバーテーブル。このテーブルは、構成アイテム [cmdb_ci] テーブルを拡張します。
      ディスカバリーフロー プロバイダーサーバーを検出し、プロバイダーサーバーからデータを取得し、ServiceNow インスタンスにそのデータを保存するために作成したサブフロー。
      展開フロー プロバイダーサーバーからソフトウェアを展開するために作成したサブフロー。
      取り消しフロー プロバイダーサーバーからインストールを取り消すために作成したサブフロー。
      構成フロー 指定された要求アイテムの構成データまたはソフトウェア設定レコードを取得するために作成したサブフロー。
      ソースリスト カンマで区切られたディスカバリーソースのリスト。
      図 : 1. プロバイダーレコードの例
      プロバイダーレコードの例。
    4. [保存] をクリックします。

    UI アクションの作成

    データの検出、ソフトウェアモデルの作成、ソフトウェア構成の作成、およびカタログアイテムの作成を行う UI アクションを作成します。

    始める前に

    必要なロール:admin

    このタスクについて

    UI アクションの作成の詳細については、「UI アクション」を参照してください。

    手順

    1. データを検出するための UI アクションを作成します。
      1. 移動先 システム定義 > UI アクション.
      2. [New] をクリックします。
      3. フォームに、これらの値を入力します。
        フィールド 説明
        名前 UI アクションレコードを識別する名前。たとえば、 [今すぐ検出]
        テーブル 作成したプロバイダーサーバーテーブル。このテーブルは、構成アイテム [cmdb_ci] テーブルを拡張しています。
        スクリプト UI アクションが実行されるときに実行するスクリプト。たとえば、次のように入力します。
        sn_csd.CSDUtil.startDiscovery(current);
      4. 要件に従って他のフィールドを指定します。
      5. [保存] をクリックします。
    2. UI アクションを作成して、ソフトウェアモデルを作成し、プロバイダーアプリケーションまたはソフトウェアにリンクします。
      1. 移動先 システム定義 > UI アクション.
      2. [New] をクリックします。
      3. フォームに、これらの値を入力します。
        フィールド 説明
        名前 UI アクションレコードを識別する名前。たとえば、 [ソフトウェアモデルを作成]
        テーブル 作成したアプリケーションテーブル。このテーブルは、クライアントソフトウェアディストリビューションアプリケーション (sn_csd_application) テーブルを拡張します。
        注:
        SAM または CSD 2.0 ソフトウェアモデルとライセンステーブルのいずれかを使用できます。[ソフトウェアモデルとライセンス情報を管理するために SAM プラグイン (SAM Foundation または SAM Professional) テーブルを使用するかどうかを決定する] システムプロパティ (sn_csd.useSAMPlugin) がどのように設定されるかによって、対応するソフトウェアモデルテーブルを使用します。
        条件 UI アクションの表示時期を制限する条件を定義します。たとえば、ソフトウェアモデルがアプリケーションまたはソフトウェアに関連付けられている場合は、この UI アクションを非表示にできます。したがって、次のように入力します。「 (gs.getProperty("sn_csd.useSAMPlugin") == 'true' && current.model=="" && (GlidePluginManager().isActive("com.snc.sams") || GlidePluginManager().isActive("com.snc.samp.core"))) || (gs.getProperty("sn_csd.useSAMPlugin") == 'false'&& current.csd_model=="")」。
        スクリプト UI アクションが実行されるときに実行するスクリプト。たとえば、次のように入力します。
        var newModel = '';
        var tableName = '';
        if (gs.getProperty("sn_csd.useSAMPlugin") == 'true' && current.model == "" && (GlidePluginManager().isActive("com.snc.sams") || GlidePluginManager().isActive("com.snc.samp.core"))) {
            tableName = 'cmdb_software_product_model';
        
        } else {
            tableName = 'sn_csd_software_product_model';
        }
        newModel = new sn_csd.CSDModelUtil().generateModel(current, tableName);
        
        if (newModel != '')
            gs.setRedirect(tableName + ".do?sys_id=" + newModel);
      4. 要件に従って他のフィールドを指定します。
      5. [保存] をクリックします。
    3. ソフトウェア構成を作成するための UI アクションを作成します。
      1. 移動先 システム定義 > UI アクション.
      2. [New] をクリックします。
      3. フォームに、これらの値を入力します。
        フィールド 説明
        名前 UI アクションレコードを識別する名前。たとえば、[ソフトウェア構成を作成]
        テーブル 作成したアプリケーションテーブル。このテーブルは、クライアントソフトウェアディストリビューションアプリケーション (sn_csd_application) テーブルを拡張します。
        注:
        SAM または CSD 2.0 ソフトウェアモデルとライセンステーブルのいずれかを使用できます。[ソフトウェアモデルとライセンス情報を管理するために SAM プラグイン (SAM Foundation または SAM Professional) テーブルを使用するかどうかを決定する] システムプロパティ (sn_csd.useSAMPlugin) がどのように設定されるかによって、対応するソフトウェアモデルテーブルを使用します。
        条件 UI アクションの表示時期を制限する条件を定義します。たとえば、ソフトウェアモデルが設定されている場合にのみ UI アクションを表示したい場合があります。したがって、次のように入力します。「 (gs.getProperty("sn_csd.useSAMPlugin") == 'true' && current.model!="" && (GlidePluginManager().isActive("com.snc.sams") || GlidePluginManager().isActive("com.snc.samp.core"))) || (gs.getProperty("sn_csd.useSAMPlugin") == 'false' && current.csd_model!="")」。
        スクリプト UI アクションが実行されるときに実行するスクリプト。たとえば、次のように入力します。
        var softwareConfig = createConfig(current);
        action.setRedirectURL(softwareConfig);
        
        function createConfig(appGr) {
            var gr = new GlideRecord("<Provider-software-configuration-table>");
            gr.initialize();
            gr.application = appGr.sys_id;
            gr.name = appGr.display_name;
            gr.insert();
            return gr;
        }

        この例では、<Provider-software-configuration-table> を、作成したプロバイダーサーバーテーブルと置き換えます。このテーブルは、構成アイテム [cmdb_ci] テーブルを拡張しています。

      4. 要件に従って他のフィールドを指定します。
      5. [保存] をクリックします。
    4. カタログアイテムを作成するための UI アクションを作成します。
      1. 移動先 システム定義 > UI アクション.
      2. [New] をクリックします。
      3. フォームに、これらの値を入力します。
        フィールド 説明
        名前 UI アクションレコードを識別する名前。たとえば、 [カタログアイテムを作成]
        テーブル 作成したアプリケーションテーブル。このテーブルは、クライアントソフトウェアディストリビューションアプリケーション (sn_csd_application) テーブルを拡張します。
        注:
        SAM または CSD 2.0 ソフトウェアモデルとライセンステーブルのいずれかを使用できます。[ソフトウェアモデルとライセンス情報を管理するために SAM プラグイン (SAM Foundation または SAM Professional) テーブルを使用するかどうかを決定する] システムプロパティ (sn_csd.useSAMPlugin) がどのように設定されるかによって、対応するソフトウェアモデルテーブルを使用します。
        条件 UI アクションの表示時期を制限する条件を定義します。たとえば、ソフトウェアモデルが設定され、少なくとも 1 つのソフトウェア設定がある場合にのみ、この UI アクションを表示したい場合があります。したがって、次のように入力します。「sn_csd.CSDUtil.isCSDSoftwareModelAndConfigurationSet(current, "<プロバイダーソフトウェア設定テーブル>", "<プロバイダーのアプリケーションテーブルを示すソフトウェア設定テーブルの列の内部名>") 」。
        スクリプト UI アクションが実行されるときに実行するスクリプト。たとえば、次のように入力します。
        var catItemHandler = new sn_csd.CSDCatItemHandler(current);
        var catItem = catItemHandler.createCatalogItem(current);
        
        
        
        //first parameter - provider's software configuration table
        //second paramter - internal name of software configuration table's column that refers to the provider's application table
        var sfConfig = catItemHandler.getSoftwareConfig('<provider software configuration table>', '<internal name of software configuration table's column that refers to provider's application table>);
        var gr = new GlideRecord('sn_csd_cat_item_fulfilment_config');
        gr.initialize();
        gr.cat_item = catItem.sys_id;
        gr.provider = '<provider's Sys ID from sn_csd_provider table record>'; //provider's Sys ID from sn_csd_provider table record
        gr.software_config = sfConfig; //populating software configuration
        gr.insert();
        action.setRedirectURL(catItem);
      4. 要件に従って他のフィールドを指定します。
      5. [保存] をクリックします。