ある連絡先タイプ (個人) に関連付けられている CiviCRM の一連のカスタム フィールドを取得し、それらを別の連絡先タイプ (組織) に関連付けられるように移動したいと考えています。フィールドは似ていますが、すべて同じではありません。
これを処理する最良の方法は何ですか? カスタム フィールドをエクスポートし、新しく作成したカスタム フィールドにインポートする前に CSV をクリーンアップしますか?
最も効率的な方法は、SQL を直接使用することです。
INSERT INTO civicrm_value_org_stuff
SELECT null as id, c.current_employer_id as entity_id, i.first_field as first_org_field, i.second_field as second_org_field ...
FROM civicrm_value_ind_stuff i
LEFT JOIN civicrm_contact c ON c.id = i.entity_id
LEFT JOIN civicrm_value_org_stuff o ON c.current_employer_id = o.entity_id
WHERE o.id is null AND c.current_employer_id is not null
宛先テーブルに既に情報がある状況に対処する必要がありますが、それ以外の場合は問題なく動作するはずです。テーブル名は明らかに構成されていますが、「civicrm_value...」で始まり、フィールド名はそれから明らかなはずです。