SBX - Search With Button

SBX - Forum Post Title

How to retrieve the Shared Views of a SystemUser?

Microsoft Dynamics CRM Forum

Maximilian O. asked a question on 16 May 2019 5:14 AM

Question Status

Suggested Answer

Hello,

im trying give the user of my app a dropdown with all their views as well as their shared views from other users.

Now i know how to get a users personal views and it works fine but when i get to the part where i have to get the Shared Views i seem to not be able to find a way.

So first of all here the Code i have right now:

        public List<Views> GetUserOwnedAccountViews(Guid sysuserID, bool includeFetchXML)
        {
            List<Views> allViews = new List<Views>();

            FilterExpression filter = new FilterExpression();
            filter = new FilterExpression();
            filter.FilterOperator = LogicalOperator.And;
            ConditionExpression cex = new ConditionExpression("returnedtypecode", ConditionOperator.Equal, 10092);
            filter.Conditions.Add(cex);
            ConditionExpression cex2 = new ConditionExpression("ownerid", ConditionOperator.Equal, sysuserID);
            filter.Conditions.Add(cex2);

            QueryExpression query = new QueryExpression()
            {
                Distinct = false,
                EntityName = UserQuery.EntityLogicalName,
                ColumnSet = new ColumnSet("name", "userqueryid", "description", "fetchxml", "returnedtypecode", "ownerid"),
                Criteria = filter
            };

            EntityCollection result = _service.RetrieveMultiple(query);
            foreach (Entity entity in result.Entities)
            {
                UserQuery sq = entity.ToEntity<UserQuery>();

                Views vw = new Views();
                vw.Id = sq.Id.ToString();
                vw.Name = sq.Name;
                vw.Description = sq.Description;
                if (includeFetchXML)
                {
                    vw.Query = sq.FetchXml;
                }
                allViews.Add(vw);
            }       

            return allViews;
        }

Now how could i get the SharedViews of the user?

I read a few Posts and found out that apparantly "Shared Records/Views" are saved in something called "PrincipalObejctAccess" but i don't know how to use that.

Reply
Radu Chiribelea responded on 16 May 2019 11:57 AM
My Badges
Suggested Answer

Hi Maximilian.

I don't know if you can do a join with the PrincipalObjectAccess table. But you can try to iterate through each user view and use this request docs.microsoft.com/.../gg308215(v%3Dcrm.8)

Hope this helps,

Radu

Reply
Radu Chiribelea responded on 16 May 2019 11:57 AM
My Badges
Suggested Answer

Hi Maximilian.

I don't know if you can do a join with the PrincipalObjectAccess table. But you can try to iterate through each user view and use this request docs.microsoft.com/.../gg308215(v%3Dcrm.8)

Hope this helps,

Radu

Reply

SBX - Two Col Forum

SBX - Migrated JS