評価結果をエクスポートする

このページでは、オフラインで表示したり、他のツールで分析したり、Neo4j データベースでグラフ分析を行ったりするために、評価結果をエクスポートする方法について説明します。結果は次の方法でエクスポートできます。

HTML レポートをエクスポートする

評価レポートを HTML 形式の zip ファイルとしてダウンロードして、レポートをオフラインで表示したり、他のユーザーと共有したりできます。

レポートをダウンロードする手順は次のとおりです。

  1. ナビゲーション メニューで [評価] をクリックします。
  2. [評価] ページで、 矢印をクリックして特定の評価を表示します。
  3. [エクスポート] をクリックします。
  4. [HTML レポート] をクリックします。
  5. 省略可: 選択したアセットのみを含むレポートをダウンロードするには、アセットをフィルタしてから、[レポートをダウンロード] をクリックします。

レポートは ZIP アーカイブとしてパソコンにダウンロードされます。zip アーカイブには、評価内の各プログラムの HTML ファイルが含まれています。これらの HTML ファイルには、[評価] ページに表示される情報(概要、詳細なロジック、生成されたコードの提案など)が含まれています。

この zip アーカイブには、アーカイブ内のすべてのファイルへのリンクが記載された index.html という名前の目次ファイルも含まれています。

JSON レポートをエクスポートする

評価レポートを JSON 形式の zip ファイルとしてダウンロードして、他のツールで評価データを使用したり、カスタム分析に使用したりできます。

レポートをダウンロードする手順は次のとおりです。

  1. ナビゲーション メニューで [評価] をクリックします。
  2. [評価] ページで、 矢印をクリックして特定の評価を表示します。
  3. [エクスポート] をクリックします。
  4. [JSON レポート] をクリックします。
  5. 省略可: 選択したアセットのみを含むレポートをダウンロードするには、アセットをフィルタしてから、[レポートをダウンロード] をクリックします。

レポートは ZIP アーカイブとしてパソコンにダウンロードされます。zip アーカイブには、評価内のプログラムごとに JSON ファイルが含まれています。このファイルには、要約、詳細なロジック、コード提案など、収集されたすべてのデータが含まれています。

評価データを Neo4j データベースにエクスポートする

評価データを Neo4j データベースにエクスポートして、メインフレーム アプリケーション コンポーネント間の複雑な関係を分析してクエリできます。データは JSON Lines 形式でダウンロードされ、Neo4j データベースにインポートできます。

評価データを Neo4j データベースにエクスポートする手順は次のとおりです。

  1. 左側のペインで [評価] をクリックします。
  2. [評価] ページで、特定の評価の 矢印をクリックします。
  3. [エクスポート] をクリックします。
  4. [Neo4j graph] をクリックします。

ファイルは ZIP アーカイブ ファイルとしてパソコンにダウンロードされます。zip アーカイブにはグラフデータが含まれています。このファイルには、プログラム、JCL ジョブ、データセット、データベース、BMS マップのノードと関係が含まれています。

評価データをダウンロードしたら、次の手順で独自の Neo4j データベースにインポートできます。

  1. Neo4j データベースがインストールされ、実行されていることを確認します。

  2. APOC ライブラリをインストールします。JSON 形式のデータをインポートするには、APOC が必要です。

  3. ダウンロードしたアーカイブから、グラフデータを含む JSON Lines ファイルを抽出します。このファイルの各行は、評価結果のノードまたは関係を表す JSON オブジェクトです。

  4. JSON Lines ファイルを Neo4j データベース インストールの import ディレクトリにコピーして、APOC 手続きが file:/// を使用してアクセスできるようにします。

  5. 大規模なデータセットでパフォーマンスを向上させるには、次のようなクエリを使用して、すべてのノードラベルの制約を作成します。

    CALL apoc.load.jsonl('file:///<your-data-file>.jsonl') YIELD value
    WHERE value.type = 'node'
    UNWIND value.labels as label
    WITH distinct label
    CALL apoc.cypher.doIt("CREATE CONSTRAINT IF NOT EXISTS FOR (n:" + apoc.text.quoteLabel(label) + ") REQUIRE n.id IS UNIQUE", {}) YIELD value
    RETURN count(*);
    

    このクエリは、ファイルからノードラベルを読み取り、ラベルごとに id プロパティに一意制約を作成します。これらの制約により、データのインポートとクエリを高速化するインデックスも作成されます。

  6. 次のような Cypher クエリを使用してノードをインポートします。

    CALL apoc.load.jsonl('file:///<your-data-file>.jsonl') YIELD value
    WHERE value.type = 'node'
    CALL apoc.merge.node(value.labels, {id: value.id}, value.properties, value.properties) YIELD node
    RETURN count(node);
    

    このクエリは、ファイルから各行を読み取り、ノードの場合は、MERGE を使用してノード id に基づく重複を回避し、ラベルとプロパティを含む対応するノードを Neo4j データベースに作成します。

  7. ノードをインポートしたら、次のようなクエリを使用してリレーションシップをインポートします。

    CALL apoc.load.jsonl('file:///<your-data-file>.jsonl') YIELD value
    WHERE value.type = 'relationship'
    MATCH (startNode{id: value.start.id}), (endNode{id: value.end.id})
    CALL apoc.merge.relationship(startNode, value.label, {}, value.properties, endNode) YIELD rel
    RETURN count(rel);
    

    このクエリは、ファイルからリレーション オブジェクトを読み取り、前の手順で作成したノード間のリレーションを Neo4j データベースに作成します。

これらの手順を完了すると、評価データが Neo4j データベースに読み込まれ、Neo4j ブラウザなどのツールを使用してグラフを探索できます。

次のステップ