2008-12-16 5 views
1

En utilisant les vues CRM, existe-t-il un moyen de récupérer une liste de toutes les activités liées à un compte spécifique? Je veux qu'il récupère non seulement ceux associés au compte directement, mais aussi ceux associés aux contacts, cas, etc. du compte. J'essaie de répliquer la liste générée lorsque vous cliquez sur l'option Activités dans un compte.Comment puis-je récupérer une liste complète des activités du compte avec les vues Dynamics CRM?

Jusqu'à présent, j'ai récupéré les contacts pour le compte et leurs activités. J'ai également remarqué que CRM ne semble pas toujours retourner ce que je m'attends. Parfois, les activités liées aux contacts du compte ne sont pas affichées. D'autres fois, les courriels/rendez-vous qui sont logiquement liés au compte mais qui n'ont rien dans leur champ concernant la case à cocher sont affichés.

J'espère que cela ne signifie pas créer la mère de toutes les jointures ou interroger chaque type d'activité séparément. Particulièrement parce que j'ai besoin de toutes les activités de cas, activités d'opportunité, etc.

Répondre

0

J'ai utilisé quelque chose comme ça. Effectivement je construis une table var avec tous les guids des articles que je veux rechercher (dans mon cas des comptes et des contacts) alors j'interroge AcitivtyParty pour toutes les activités où ils sont une partie sur l'activité - puis sur Activité pour obtenir les détails.

Declare @account_guid varchar(200) 
Select @account_guid = 'insert some guid here' 

Declare @GUIDS as Table(id varchar(200), fullname varchar(200), objecttype char(2)) 
Declare @ActivityIds as Table(id varchar(200)) 

--grab all guids we need activities for 
    Insert Into @GUIDS 
    Select contactid, fullname, 'C' 
    From FilteredContact 
    Where accountid = @account_guid 
    UNION ALL 
    Select accountid, [name], 'A' 
    From FilteredAccount 
    Where accountid = @account_guid 

--find all activities where the account/contact are referred to 
Insert Into @ActivityIds 
Select activityid 
From FilteredActivityParty fap 
Join @GUIDS g on g.id=fap.partyid 
Group By activityid 

Select * 
From FilteredActivityPointer fap 
Join @ActivityIds a on fap.activityid = a.id 
Where statecode<>2 --hide canceled items 
1

Vous devez utiliser demande Rollup (si vous travaillez en utilisant SDK-service Web) pour accomplir votre tâche:

Action Rollup Microsoft Dynamics CRM a un message puissant Rollup qui permet d'ouvrir une entité instance, comme un compte, et de trouver des informations non seulement sur enregistrements connexes du compte (opportunités, devis, commandes, factures, contrats et cas), mais aussi sur sous-comptes du compte et les dossiers liés des contacts.

plus:

TargetRollupActivityPointerByAccount classe (CrmService) Indique les paramètres nécessaires pour récupérer toutes les activités liées au compte spécifié .

Questions connexes