Skip to content
ブログに戻る

CPQ DevKit における BML/BMQL の生産性向上:フォーマット、スニペット、ナビゲーション

CPQ プロジェクトをローカルに同期したら、CPQ DevKit は BML/BMQL の作業を「編集 → 移動 → リファクタリング」の緊密なループに変えてくれます。

1) BML(およびその他)を 1 つのコマンドでフォーマットする

CPQ DevKit は次のフォーマッターを登録します。

  • BML(.bml)および BMLT(.bmlt
  • JSON、XML/HTML、CSS、JavaScript(ローカルに同期した CPQ 成果物に便利)

対応しているファイルでは、VS Code の Format Document コマンドを使用(または保存時フォーマットを有効化)して、差分を小さく読みやすく保ちましょう。

2) 一般的な CPQ パターンにスニペットを使う

拡張機能には、BML のコア関数、属性、ヘルパーユーティリティのスニペットパックが同梱されています。.bml ファイルで入力を始めると、VS Code のスニペットピッカーがガイドしてくれます。特に、安全なループテンプレートや一般的なシステム定数に便利です。

3) util. / commerce. 呼び出しへの「定義へ移動」

ワークスペースにダウンロード済みの関数がある場合、呼び出し箇所から関数ファイルへ直接ジャンプできます。

  • util.someHelper(...)commerce.someLibrary(...) のような参照にカーソルを置きます
  • Go to DefinitionF12 / Cmd+Click)を実行します

プロジェクトでカスタムのプレフィックスやフォルダーを使用している場合は、project.config.jsonc で更新してください。

jsonc
{  "folderSettings": {    "utilFunctions": "_utils",    "commerceFunctions": "_commerce"  },  "fileSettings": {    "bmlUtilPrefix": "util.",    "bmlCommercePrefix": "commerce."  }}

4) BMQL 文字列内のデータテーブルへの「定義へ移動」

CPQ DevKit は、文字列リテラル内の BMQL クエリを検出し、from <TABLE_NAME> 句に現れるテーブル名をナビゲーション可能にします。

例:

bml
var query = "select * from PRICE_BOOK where _bm_item_id = $id";

CPQ DevKit™ for Oracle: GET ALL Tables を実行した後、PRICE_BOOK にカーソルを置いて Go to Definition を使えば、ローカルのテーブル JSON を開けます。

5) エクスプローラーから JSON、XML、CSV を相互変換する

任意の .json.xml.csv ファイルを右クリックして、次を使用します。

  • CPQ DevKit™: Convert to JSON
  • CPQ DevKit™: Convert to XML
  • CPQ DevKit™: Convert to CSV

ダウンロードした CPQ 成果物を、レビューやデータチェックでチームが好むフォーマットにすばやく整形できる方法です。