👏

Content Hub Print TempleteをCLIで設定する

2023/04/04に公開

はじめに

Content Hubは任意のエンティティをPDFに出力する機能があります。
https://doc.sitecore.com/ch/ja/users/42/content-hub/template-entity.html
こちらの手順に沿って設定いただくと、サンプルのPDFが出力されますが、もう少し詳細な設定をしたい場合は、開発環境を構築した上で設定するのが効果的です。
今回はその手順についてご説明します。

workspaceの初期化をする

CLIを利用することによって、必要なファイルテンプレートが自動的に作成されます。
任意のフォルダに移動していただき以下のコマンドを実行してください。
-n パラメータは任意の値です

ch-cli print initialize -n PCMMock

実行すると、対象のフォルダに初期化されたテンプレートファイル一式が設定されています。

VS Codeで設定する

VS Codeで対象のワークスペースを開くと以下のような表示になっています。

まずは、template.jsonを以下の形式に書き換えます。(variablesに値を追加)

{
  "template": {
    "output": "OutputName",
    "file": "template.cshtml",
    "source": {
      "type": "entity",
      "variables": [
        {
          "name": "ProductName",
          "type": "property",
          "property": "ProductName"
        }
      ]
    }
  }
}

加えて、template.cshtmlに上記で追加したProductNameを記載します。

@using System.Linq
@model Stylelabs.M.Print.EntityGeneration.Models.Model

<html>
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="template.css" />
    <title>Entity Print Template</title>
</head>
<body>
    <header>
        <h1> @Raw(@Model.Properties["$$ProductName$$"].FirstOrDefault())</h1>
    </header>
</body>
</html>

タスク実行でValidateを実行する

タスクの実行を選択し、

Vaildate Print Entity Templateを選択します。

M.PCM.Productと入力します。

設定が上手くいっていると下記のコマンドが表示されます。

Content HubにTemplateをPushする

上記を同様に、タスクの実行からPush Entity Print Templateを選択します。
同様に設定したいスキーマの設定します。(M.PCM.Product)

最後に任意のテンプレートの名称を設定します。

無事にPushされると以下のコマンドが表示されます。

Content Hubの管理画面 > [Pirnt Template]に遷移するとPushしたテンプレートが表示されることが確認できます。

このようにしてTemplateをコマンドから取得し、コマンドベースで設定できる方法をご説明しました。

Discussion