Skip to content
ブログに戻る

Oracle CPQ を整理されたローカルプロジェクト構造に同期する

Oracle CPQ で最も速く作業する方法は、CPQ 設定を通常のコードベースのように扱うことです。つまり、ローカルに同期し、Git でバージョン管理し、差分で変更をレビューします。

CPQ DevKit™ for Oracle は、CPQ オブジェクトを予測可能なフォルダーレイアウトにプルする「GET ALL …」コマンドで、まさにそのワークフローを提供します。

フォルダー構造は設定可能

project.config.jsonc で、各 CPQ オブジェクトタイプのローカルでの配置先を制御します。

jsonc
{  "folderSettings": {    "files": "_files",    "assets": "_assets",    "parts": "_parts",    "tables": "_tables",    "utilFunctions": "_utils",    "commerceFunctions": "_commerce",    "integrations": "_integrations"  }}

フォルダーをチームの規約に合わせれば、同期コマンドは一貫してそれらの場所に書き込みます。

おすすめの「最初の同期」コマンド

コマンドパレット(Cmd/Ctrl+Shift+P)を開き、次を実行します。

  • CPQ DevKit™ for Oracle: Get all Data and Metadata(拡張機能がよりスマートな編集のために使用するメタデータカタログ)
  • CPQ DevKit™ for Oracle: GET ALL Tables(テーブルを tables フォルダーに書き込み、.cpqdevkit/ 配下に小さなインデックスファイルを作成)
  • CPQ DevKit™ for Oracle: GET ALL BML(util/commerce 関数を関数フォルダーに書き込み)
  • CPQ DevKit™ for Oracle: GET ALL Files(File Manager のアセットを files フォルダーにダウンロード)

これらの多くは、ワークスペースフォルダーを右クリックしたときのエクスプローラーのコンテキストメニューからも利用できます。

「GET ALL Tables」が生成するもの(そしてそれが重要な理由)

データテーブルをダウンロードすると、CPQ DevKit は次を書き込みます。

  • テーブルフォルダー配下のテーブル JSON ファイル(例:_tables/<folderVar>/<TableName>.json
  • .cpqdevkit/ocpq/data-tables.json のデータテーブルインデックス

このインデックスは、ナビゲーション機能(BML 内の BMQL 文字列からの「定義へ移動」など)で使用されます。

シークレットを Git に含めない

Oracle CPQ の認証情報は .cpqdevkit/developer.config.jsonc に保存されます。CPQ DevKit のセットアップコマンドは自動的に .cpqdevkit/**.gitignore に追加します。この状態を維持し、バージョン管理には project.config.jsonc(およびダウンロードした CPQ アセット)だけをコミットしてください。