大きなテキストフィールドがデータベースに書き込まれない

我々は、CiviCRMカスタムフィールドから大きなテキストフィールドを作成するバグと思われるものを発見しました。私はこれを十分に説明できることを願っています。

Relevant environment information: – Drupal
7.59 – CiviCRM 5.1.0 and then 5.1.2 – PHP
5.5.9 (not recommended but supported) – Webform and Webform CiviCRM
modules for Drupal enabled

そして私たちが取ったステップ: 1.連絡先に関連付けられたテキストタイプのカスタムフィールドを作成します。
6000のような非常に大きなデータベースサイズを与えます。私はどのポイントが大きすぎるかを正確には確認していませんが、6000は間違いありませんでした。

  1. CiviCRM処理を有効にした状態でDrupal側にWebフォームを作成します。大きなフィールドを表示したり、既存の連絡先を受け入れたりできるCiviCRM処理の連絡先1を作成します。既存の連絡先のウェブフォームフィールドを編集して、ドロップダウン選択にしてください(簡単なテストのため)。

  2. 連絡先を作成するためにフォームに一度記入し、そのフィールドに記入してください。

  3. フォームに戻り、作成した既存の連絡先を選択します。フィールドには自動入力されません。

  4. これをテストする別の方法は、URLにパラメータ?cid = [id]を追加したフォームに移動することです。 >

====
調査の結果、問題の根本は、フィールドがカスタム値のデータベーステーブルに作成されていないように思えました。たとえば、カスタムフィールドグループが構成要素と呼ばれ、それが第3カスタムグループだった場合、私が信じるテーブルはcivicrm_value_constituent_3になります。そのフィールドグループの各カスタムフィールドは通常、このテーブルの列を取得しますが、大きなテキストサイズが大きすぎる場合は列を作成せず、警告も表示しません。テーブルに列を手動で作成することで問題が解決され、その結論が強化されました。

それでもcivicrm_custom_fieldテーブルに追加されるので、問題はありません。それは単なる値表です。

ベストアンサー

大きなテキストフィールドまたはメモフィールドを作成しましたか?もしそうなら、あなたはログを調べましたか?

テキストフィールドの場合私は、mysqlにはカラムサイズに制限があると仮定しているので、おそらくそれはそのエラーのために失敗しています。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です