The Microsoft Dynamics CRM Blog
News and views from the Microsoft Dynamics CRM Team

Activity Feeds Solution & Development Environment

Activity Feeds Solution & Development Environment

  • Comments 0
This article focuses on the engineering behind the Activity Feeds solution and explains how to use it safely in your Development environment where you plan to build and export your solutions.

If you are new to the term Activity Feeds and would like to learn about it and install it, then follow this article Introduction to Activity Feeds solution.

How is Activity Feeds Feature any different than regular CRM Feature?

Traditionally features within CRM were always part of the core product, with no options available for the end user to choose which features they wanted. CRM 2011 provided the Solution framework which allowed ISV’s, Partners to build solutions that can isolate their customizations, business logic from other others.

Activity Feeds is the first certified solution that the CRM team produced that abides by the same policies set by the Solution Development Model. What it means is that you can enable or disable this feature in your organization by installing or uninstalling the solution.

I. Activity Feeds Feature is split into 2 parts, Platform and Solution.

  • Platform is delivered as part of the UR5 release. This means you get Entities like Post, Comment, Follow and the SDK Messages that retrieve posts as part of UR 5 update.
  • Solution is available as MicrosftCRMActivityFeeds.cab from the Dynamics Marketplace. It contains:
    • UI Components to:

      • Display posts via What’s New & Record Walls.
      • Enable Entities for Activity Feeds.
      • Choose which Auto Post Rules to enable.
    • ActivityFeeds Security Role
    • Auto Post Rules on some OOB entities like Task, Appointment, Phone Call, Recurring Appointment, Lead, Opportunity, Case,Dialogs


II. Online and On-premise differences

  1. For On-premise and existing organizations in Online, you would need to install the solution by getting it from market place.
  2. For New Online Organizations, we install the solution as part of the provisioning so you have it all ready to go.

 How does the solution work in my environment?

The Activity Feeds solution allows you to enable / disable an entity for Feeds. For example, you can enable feeds for Account and disable for Contact.  

When you enable an entity for feeds we do the following on behalf of the end user:

1. Create the following Saved Query’s to the Entity

  • Accounts Being Followed
  • Accounts I Follow

2. Customize the Entity FormXml

  • Add “Record Wall” Tab to the Form

3. Enable Auto Post Rules for each entity if available

  • Register Plugins so Auto Posts get created when changes happen in the system

You as an Admin can also go to each entity for eg: Account and Create the Views, Customize the Forms. But we wanted this to be as few clicks as possible, so we do that on your behalf when you create a new active row in the Activity Feeds Configuration section. We also clean everything up when you Disable the entity for feeds by removing the row from Activity Feeds Configuration section.

What should I know if I am developing another Solution in this organization?

I think this is the main reason why you are reading this article. So let’s cut the chase.

Remember the Solution development model where Managed solutions create components as managed and all end user customizations are treated as Un-Managed. (Read more about solutions model here. About Importing a Solution)

If you go through the last section, I showed you that we create Saved Queries, Customize Form Xml on behalf of end user. So this means those are Un-Managed customizations.

If you try to export Account entity, you will get those customizations exported within your solution. So if you export and import in customer organization, you will be trying to take ownership of those customizations in target organization. This is likely not what you intended as you did not directly make these customizations, effectively you do not own those customizations. When you export your solution, you need to make sure you export only the changes you intend and nothing else.

I understand this brings back the memories of CRM V4 where we have to worry about other ISV’s customizations in the system... I understand…

Here are the steps to remove Activity Feeds Un-Managed Customizations from your development org:

  • Go to Settings-> System-> Activity Feeds Configuration ->
    • Delete all the entries except User
    • Delete User at the end
    • Publish all customizations
  •  You can optionally uninstall the Activity Feeds solution in your Development Organization after the above 2 steps are done.
  • Note: All New Online Orgs Provisioned after UR5 will have Account, Contact, User, Opportunity, Lead, Case automatically enabled for Activity Feeds. If you are developing against an Online Org you will need to Unconfigure these entities even though you did not manually enable them.

Now you can Export your solution - it will not export the components from Activity Feeds. 

Thanks

Ajith Gande

Developer – Microsoft CRM

Leave a Comment
  • Please add 5 and 7 and type the answer here:
  • Post