VtigerCRM OSS 8.4 / アイプランナーの改修記録

ChatGPTと進めたVtigerCRM OSS 8.4本体の不具合修正3事例

日本語の見積書が文字化けする。標準Webフォームの設定で空欄が「0」に変わる。顧客ポータルでは担当者名が内部IDのまま表示される。アイプランナーがVtigerCRM OSS 8.4の運用で調べ、ChatGPTと修正を進めた事例をまとめました。

掲載したのは、VtigerCRM本体で改修を適用し、結果を確認した3件です。各事例の症状、変更箇所、適用後に確認した内容を紹介します。アイプランナーでの個別改修を扱う記事です。

VtigerCRM本体の修正一覧

OSS 8.4系での個別改修と適用後の確認結果
対象症状対応確認状況
標準PDF出力日本語の文字化け、宛先や明細の重なり日本語フォントと折り返し、行高、改ページを調整適用後のPDF出力を確認済み
標準Webフォーム上書き値の空欄が保存後に「0」になる未設定をNULLで保持し、入力された0と区別適用後、空欄が「0」になる問題の解消を確認済み
顧客ポータルのCRM側API担当者欄に「19×1」などの内部IDが出る一覧・詳細のAPIで既存の名称変換処理にユーザー情報を渡す適用後、担当者名の表示を確認済み。修正箇所をコミュニティに掲載

01 / 標準PDF出力

日本語の文字化けと、長い明細で崩れる帳票を修正

見積・受注・請求・発注の標準PDFで、日本語の表示や顧客情報の重なりが問題になりました。日本語の長い商品名やコメントを含むと、折り返しに合わせて明細の行高を確保する必要もあります。

修正版では、PDFの既定フォントを日本語対応のものへ切り替え、文字単位での折り返しを考慮して行高を計算するようにしました。宛先ブロック、明細と合計欄の位置、備考の改ページも調整しました。変更したのは、4種類の帳票で使うPDF出力の共通クラス6ファイルです。修正版を適用して出力を確認した記録があります。

再確認するなら 短い帳票と複数ページの帳票を出し、日本語の長い住所・明細、空欄の備考、税・割引・合計金額を元データと照合します。相手に送るPDFは、利用する閲覧ソフトでも確認します。

02 / 標準Webフォーム

「未設定」と、固定値として入れた「0」を区別

管理画面で「上書き値」を空欄にして保存したのに、開き直すと「0」になる事象がありました。入力内容をCRMにそのまま登録したい場合、上書き値に意図しない「0」が残ると、送信データがその値で置き換わる可能性があります。

標準Webformsの設定を保存する Save.php と Record.php を修正しました。送信元の値を空欄判定に使い、空欄は未設定(NULL)として保存します。明示的に指定された「0」は固定値として保持します。修正版を適用し、空欄が「0」になる問題の解消を確認しました。 空欄が「0」に変わる処理の正確な起点も未確定です。

再確認するなら 空欄、明示した「0」、固定の文字列を別々に設定し、保存して開き直します。テスト送信で、CRMに入る値も確認します。すでに保存された「0」は、意図した値かを個別に確認します。

03 / 顧客ポータルのCRM側API

担当者名の代わりに「19×1」が表示される箇所を修正

顧客ポータルの問い合わせ一覧や詳細で、担当者名の代わりに「19×1」のようなCRMの内部IDが表示される事象です。CRM側APIのコードを照合すると、名前を解決する共通処理がユーザー情報を必要とする一方で、標準の一覧・詳細APIからはその引数が渡されていませんでした。

CRM側の FetchRecords.php(一覧)と FetchRecord.php(詳細)で、すでに取得しているユーザー情報を共通処理に渡す形にしました。APIは内部IDと表示名を分けて返し、ポータル側で表示名を使えるようにします。修正箇所はVtigerのコミュニティに掲載しました。アイプランナーでは、この改修を適用し、担当者名が表示されることを確認しました。 Vtigerコミュニティの技術回答

再確認するなら 一覧と詳細をそれぞれ開き、個人・グループの担当者名を確認します。異なる顧客のテストユーザーでも開き、閲覧できるレコードや項目の範囲を照合します。 関連記事 カスタマーポータルの設定と閲覧範囲

ChatGPTとの改修で残したい記録

ChatGPTは、症状から確認箇所を絞り、修正差分とテスト項目を整理するために使いました。本体を改修した場合、後日のアップデートで同じファイルが上書きされることがあります。対象バージョン、変更ファイル、修正前後の挙動、検証結果を一緒に残すと、次の更新時に差分を照合できます。

手元の環境で同じ症状が出たら、検証環境で再現させてから、現在のコードと対象バージョンを照合します。修正前のファイルと設定を控え、普段使う操作と、修正の影響を受けそうな周辺操作を試します。 関連記事 VtigerCRM 8.4のバックアップと復元 / VtigerCRM OSS 8.4.0の公式配布コード