web-dev-qa-db-ja.com

SugarCRM CEでテーブルの構造を変更するにはどうすればよいですか?

機会テーブルにフィールドを追加して、それらが伝播するようにするにはどうすればよいですか?

内部から Studio > Opportunities > Fieldsフィールドを追加しました。申し訳ありませんが、機会を作成および表示するためのデータベース構造とGUIに変更を加えるための次のステップがわかりません。

モジュールで使用可能なフィールドは、ここにフィールド名でリストされています。

フィールドのプロパティを構成するには、[フィールド名]をクリックします。

新しいフィールドを作成するには、[フィールドの追加]をクリックします。新しいフィールドの他のプロパティとともにラベルは、作成後にフィールド名をクリックして編集できます。

モジュールがデプロイされた後、Module Builderで作成された新しいフィールドは、Studioでデプロイされたモジュールの標準フィールドと見なされます。

ただし、基盤となるデータベースに変更はありません。

mysql> 
mysql> describe sugarcrm.opportunities;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| id               | char(36)     | NO   | PRI | NULL    |       |
| name             | varchar(50)  | YES  | MUL | NULL    |       |
| date_entered     | datetime     | YES  |     | NULL    |       |
| date_modified    | datetime     | YES  |     | NULL    |       |
| modified_user_id | char(36)     | YES  |     | NULL    |       |
| created_by       | char(36)     | YES  |     | NULL    |       |
| description      | text         | YES  |     | NULL    |       |
| deleted          | tinyint(1)   | YES  |     | 0       |       |
| assigned_user_id | char(36)     | YES  | MUL | NULL    |       |
| opportunity_type | varchar(255) | YES  |     | NULL    |       |
| campaign_id      | char(36)     | YES  |     | NULL    |       |
| lead_source      | varchar(50)  | YES  |     | NULL    |       |
| amount           | double       | YES  |     | NULL    |       |
| amount_usdollar  | double       | YES  |     | NULL    |       |
| currency_id      | char(36)     | YES  |     | NULL    |       |
| date_closed      | date         | YES  |     | NULL    |       |
| next_step        | varchar(100) | YES  |     | NULL    |       |
| sales_stage      | varchar(255) | YES  |     | NULL    |       |
| probability      | double       | YES  |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+
19 rows in set (0.00 sec)

mysql> 

また、「機会の作成」時に追加のフィールドがGUIに表示されることもありません。

Studioで作成したフィールドを、データベースだけでなく、SugarCRMのインターフェースでも実際に作成するには、何をする必要がありますか?

確かに私はPHPを掘り下げる必要はありませんか?

1
Thufir

私があなたを正しく理解しているなら、あなたはどのようにSugarCRMインターフェースを変更してカスタムフィールドを持つことができるかを尋ねています。

自分でインターフェースを学習しているので、JIRAチケット番号のCasesページに新しいフィールドを追加し終えました。これはデータベースにも表示されます。あなたが話しているフィールドをコミュニケーションセクションに追加してから、使用される各部分について説明します。

あなたが技術的でないなら、これはあなたがあなたの技術的な仲間を昼食に連れて行って、そして彼らにあなたがそれをするのを手伝ってもらうことを望むかもしれないそれらの時の1つです。データベースの動作とユーザーインターフェイスの機能を理解する必要があります。

ユーティリティvmを使用して、phpadminデータベースクライアントでSugarCRMCE6.5.17を実行しています。基盤となるデータベースを確認し、それに対して検索を実行できる優れたSQLクライアントを見つけることをお勧めします。

インデックス

  1. ログインする
  2. SugarCRMの利用可能なコンポーネントにフィールドを追加します
  3. 新しいフィールドを含めるようにWebフォームを変更します
  4. SugarCRMで新しいデータレコードを作成します
  5. 私たちのデータを見つけてください!
  6. いつでもどこでも新しいデータを見つける方法。

ステップ

  1. 管理者としてSygarCRMCEシステムにログインします。

  2. SugarCRMの利用可能なコンポーネントにフィールドを追加します

    • 管理者->スタジオ->オポチュニティ->フィールド->フィールドの追加
    • フィールド名:New_Field
    • 最大サイズ:30
      • (一部のフィールドは自動的に入力されるため、残りはそのままにしておきます)
    • [保存]をクリックします
  3. 新しいフィールドを含めるようにWebフォームを変更します

    • 管理者->スタジオ->オポチュニティ->レイアウト-> EditView
    • [ツール]から[新しい行]ボックスを[説明]の下の[レイアウト]セクションにドラッグします
    • 作成したフィールドを見つけます。それは新しい分野と呼ばれるべきです。
    • フィールドをツールボックスから(フィラー)と呼ばれる最初のボックスが存在するレイアウトセクションにドラッグします。
    • 「新しいフィールド」と呼ばれ、左側に+または-記号アイコンがあるはずの(フィラー)ラベルの付いたボックスへの変更を確認する必要があります。これにより、フィールドの右側の列数が調整されます。 (理解するためにアイコンで遊んでください)
    • [保存して展開]をクリックします
  4. 新しい機会を作る

    • セールス->オポチュニティ->オポチュニティの作成
    • 注意:「新しいフィールド」は、説明の後の最初のセクションの下部にある必要があります。 (または配置した場所)
    • 必須フィールドに入力する新しい機会購入を作成します
    • 「新しいフィールド」に入力する必要がある場合は、一意の名前を使用してデータベース検索を許可します
      • 一意の名前を入力します:AAA_XX_193rnafl93ra
        • (これが十分に一意でない場合は、独自の一意の名前を作成してください)
    • [保存]をクリックします
  5. 私たちのデータを見つけてください!

    • Adminとしてsugarcrmデータベースにログインします(開発者のVMを使用しているため、phpMyAdminを使用できます)
    • Fields_meta_dataというテーブルを探しています
    • このテーブルをクエリすると、追加したばかりの新しいフィールドがその説明データとともにここに存在することがわかります。ほとんどの場合、LBL_NEW_FIELDと呼ばれます。日付スタンプが付いているので、date_modifiedでテーブルを検索し、今日をフィルタリングすることもできます。
    • ほとんどの場合、テーブルにはOpportunitiesnew_field_cというID列もあります。
    • これは、ステップ2で作成されるMETADATAです。

    • ここで、新しいフィールドに保存されたデータを探します。

    • 接尾辞「_cstm」が付いたテーブルは、opportunities_ctsmのように、ほとんどの場合、カスタムフィールドを保持します。
    • Opportunities_ctsmテーブルをクエリすると、フィールド名がここに存在することに注意してください。
    • 私のopportunities_ctsmテーブルにnew_field_cがあり、次の値を保持しています:AAA_XX_193rnafl93ra
    • Id_c列に注意してください。これは、idフィールドの商談テーブルに再び参加できるポイントになります。
  6. いつでもどこでも新しいデータを見つける方法。

    • では、なぜ「AAA_XX_193rnafl93ra」を一意の文字列として使用したのですか?
      • Sugarcrmデータベース全体を検索して、すべてのフィールドでこの値を探し、保存されているテーブルを見つけることができます。
    • PhpMyAdminでは、これはWebページの上部にあるブレッドクラムトレイルのデータベース名をクリックするのと同じくらい簡単です。
      • localhost-> Sugarcrm(db)
      • データベーステーブルのリストの上にある検索タブをクリックします
      • 次の検索文字列を入力します:AAA_XX_193rnafl93ra
      • すべてのテーブルを選択します
      • [移動]をクリックします
      • [ctrl] Fを使用して、アイテムが見つかったテーブルの横に表示される「参照」をWebページで検索します。
      • テーブルに入ると、新しいフィールドが配置された場所が見つかります。
    • PhpMyAdminがない場合は、データベース全体でコンテンツを検索する方法を確認するか、データベースに送信されたSQLのログをオンにして一意の名前を検索するようにDBAに依頼してください。 Oracleには、これを実行できるロギング機能があります。
    • つまり、データベースをすばやくナビゲートして何が変更されたかを見つけることができる追跡デバイスを作成しました。
    • 開発者環境を作成すると、データベースがほとんど空になるため、検索時間が大幅に改善されます。

これで、データベースに新しいデータポイントがあり、sugarCRMフォームに新しいフィールドがあります。

砂糖システムを構築した人たちは、ベーステーブルを新しいフィールドから分離していたので、良い仕事をしたように見えます。これにより、新しいバージョンにアップグレードする際の問題が少なくなります。ベーステーブルは完全に再構築でき、「id」列が含まれている限り、カスタムフィールドに接続できます。

2
Light Man