2013-07-19 10 views
6

夜間に電子メールで送信する必要がある日付範囲に基づいてカスタム監査概要レポートを作成しようとしています。私はそれのほとんどを動作させていますが、参照されたエンティティのプライマリ名/フィールド/属性を取得するためにいくつかの助けが必要です。私は参照されたエンティティの監査ビューに気付きました、データは 'systemuser;'のように格納されます。私がしたいのは、レポートに表示するプライマリフィールド(プライマリ名、プライマリ属性、それが何であれ)を取得することです。 CRM SQLデータベースのMetadataSchemaビューを使用してエンティティのプライマリ名属性を検索する方法を知っている人はいますか?プライマリキーフィールドはMetadataSchema.Attribute.IsPKAttributeフィールドを調べると見つかりましたが、プライマリ名フィールドには何も表示されません。Dynamics CRM 2011 SQLメタデータスキーマプライマリ名属性

また、次の監査エントリがない場合は、エンティティから現在の値を取得しています。検索フィールド(オーナーや顧客のようなもの)については、どのようにObjectTypeCodeをどのフィールドに格納するのかをメタデータから教えてください。たとえば、受注で得意先を検索していた場合、CustomerIdTypeフィールドを参照してObjectTypeCodeを見つけることができますが、メタデータからCustomerIdTypeというフィールドがあることがわかります。

誰かがCRMのSQL側からメタデータに関する良いリファレンスを持っているなら、私はそれを高く評価します。

答えて

7
  1. SQLクエリすべてのエンティティのための主要なフィールドを取得するための

    SELECT e.Name as 'entity', a.Name as 'primary field' 
    FROM [dbo].EntityView e 
    left join [dbo].AttributeView a on e.EntityId = a.EntityId 
    where (a.DisplayMask & 256) > 0 --256 is for primary field 
    order by e.name 
    
  2. 2例がありますが、ルックアップのオブジェクトタイプコードを取得するには

    • (フィールド名にすなわち得意先Typeを追加タイプ
    • 以上が使用できない場合、AttributeMetadata

      SELECT ReferencedEntityObjectTypeCode 
      FROM [Discworld_MSCRM].[dbo].[AttributeView] 
      where name = '<field name>' and entityid = '<entity id>' 
      

    からそれを得る私はあなたの場合は「&」何を意味するの

+0

存在するタイプのフィールドにある正確なものをルールわからないんだけどクエリ?なぜa.DisplayMask = 256をしないのですか? –

+0

@MeggieLuski&はバイナリと演算子です。限り、私はこのフィールドが他のフラグを格納することを覚えている限り。文 '&256'は、特定のフラグがセットされているかどうかをチェックします。 – MarioZG

関連する問題