Friday, July 19, 2019

Little Crystal Creek Falls, Crystal Creek, Queensland, Australia

Another interesting waterfall in Queensland is the Little Crystal Creek falls in Crystal Creek. This is made out of 2 to 3 small cascades of water and a pool of water.
This waterfall is located about 75 kilometres North West of Townsville and is reachable in a hour of driving. The road is bit winding after turning from Bruce highway. But it is sealed all the way so a two wheel drive small car would take you there without any problems. When driving from Townsville there is a big car park about 200 metres before the bridge to the left. It can easily accommodate 15 cars so you do not have to worry about finding parking.
At the park there will be 2 boards with maps and details about the area. To reach the waterfall, you need to walk about 150 metres towards the arch bridge from the car park. The bridge is a 18.3 metre long bridge constructed in 1932. There is no separate path but can walk on the left side of the road so be careful if you are travelling with children. You can reach the bridge with a pram or a wheelchair and have a look at the waterfall. But to go anywhere near the water you need to walk down the stairs and some walking on the rocks depending on the side you start walking down. I would say it is an easy 15 minutes walk from the car park. Also you can reach the waterfall starting from any side of the bridge giving you different views of the nature, so you can start from one side and come up from another.
Once you walk down you will be able to see the creek. In the dry season there will be not much water so it will be safe to walk besides the water. Near the bridge there is a table and a bench to sit and relax and have a picnic near the water. Near the car park there are barbecue, toilet and waste disposal facilities as well as a park for children to run around so I would recommend enjoying some food over there.
Score out of 5
1 Parking Availability Adequate
5
2 Wheelchair Access Main Viewpoint – No       
Secondary Viewpoint – No
Picnic Areas – Yes
1
3 Accessibility Easy walk till the bridge and then stairs, total walk for about 15 minutes from car park.         
3
4 Facilities Covered Sitting Areas – No
Toilets – Yes
Barbecue – Yes
Garbage Bins – Yes
4
5 Scenery Waterfall         
Stream
Bridge
3

Hope you will enjoy the video.



Map

Friday, July 12, 2019

CRM Exception message: Principal user (Id=GUID, type=8) is missing prvReadComplexControl privilege (Id=GUID)

Recently one of my customers started getting insufficient permissions messages and having issues accessing files on the CRM.

Exception detail was as below.
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3s344d364e35]]: System.Web.HttpUnhandledException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #CBE39829Detail:
  <ActivityId>f6dfec3a-6114-4eef-9544-a9396f5d1572</ActivityId>
  <ErrorCode>-2147220970</ErrorCode> 
  <Message>System.Web.HttpUnhandledException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #CBE39829</Message>
  <Timestamp>:44:42.8709171Z</Timestamp>
  <ExceptionRetriable>false</ExceptionRetriable>
  <ExceptionSource i:nil="true" />
  <InnerFault>
    <ActivityId>GUID</ActivityId>
    <ErrorCode>-2147220960</ErrorCode>   
    <Message>Principal user (Id=GUID, type=8) is missing prvReadComplexControl privilege (Id=GUID)</Message>
    <Timestamp>2019-07-04T07:44:42.8709171Z</Timestamp>
    <ExceptionRetriable>false</ExceptionRetriable>
    <ExceptionSource i:nil="true" />
    <InnerFault i:nil="true" />
    <OriginalException i:nil="true" />
    <TraceText i:nil="true" />
  </InnerFault>
  <OriginalException i:nil="true" />
  <TraceText i:nil="true" />
</OrganizationServiceFault>
The actual error is given in the inner fault section, the same error is logged in the event log of the CRM server as below.
Exception information:
Exception type: CrmException
Exception message: Principal user (Id=GUID, type=8) is missing prvReadComplexControl privilege (Id=GUID)  at Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.XrmExecuteInternal()
   at Microsoft.Crm.Application.Platform.ServiceCommands.RetrieveCommand.Execute()   at Microsoft.Crm.Caching.ComplexControlLoader.LoadCacheData(Guid key, IOrganizationContext context)   at Microsoft.Crm.Caching.CrmMultiOrgCacheBase`2.CreateEntry(TKey key, IOrganizationContext context)   at Microsoft.Crm.Caching.CrmMultiOrgCacheBase`2.LookupEntry(TKey key, IOrganizationContext context)   at Microsoft.Crm.Application.Components.Sdk.InlineEditControls.Web.CompositionLinkControl.GetFlyOutDescriptor()    at Microsoft.Crm.Application.Components.Sdk.InlineEditControls.Web.LinkControl.GetRequiredColumns(Int32 entityTypeCode)   at Microsoft.Crm.Application.Forms.CompositeControlVisitor.HandleColumnProvider(Control control, FormDescriptor formDescriptor)   at Microsoft.Crm.Application.InlineEdit.Mediators.FormMediator.AddControlProperties(ICrmControl crmControl, ControlDescriptor controlDescriptor)   at Microsoft.Crm.Application.InlineEdit.Mediators.FormMediator.ProcessControlHierarchy(Action`2 controlHandler)   at Microsoft.Crm.Application.InlineEdit.Mediators.FormMediator.GetInstance(FormFactor formFactor, FormDescriptor descriptor, Guid processId, Int64 processVersionNumber, IOrganizationContext organizationContext)   at Microsoft.Crm.Application.InlineEdit.ReadFormDataBuilder..ctor(String recordId, String entityTypeCode, Guid formId, FormFactor formFactor)   at Microsoft.Crm.Application.Pages.Form.FormDataPage.Render(HtmlTextWriter writer)   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
After a while found the “Complex Control” privileges are listed as “Process Configuration” in CRM security roles. To fix the issue go to CRM Security Roles and open Customization tab. There you will find Process Configuration for which you need to provide Read permission. 

Giving permissions according to the error you see will fix the issue, for example if your error showed your were missing prvCreateComplexControl, then you need to provide Create permissions.
More details about security role UI and privilege mapping can be obtained from the Microsoft article.