Att själv kunna göra en del felsökning på felmeddelande är ofta väldigt praktiskt. Om en administratör själv kan avgöra vad som är fel är det inte ovanligt att de också har rätt att åtgärda en del problem.

Ett exempel kan vara resultatet av att hen inte har följt min kollega Magnus blogg, Tre enkla tips för systemadministratörer, och har råkat skapa en egen entitet men glömt att ge ut rättigheter till den. Eller att hen kanske har gett en för låg behörighet till en ny användare som behöver kunna göra mer än denne får just nu.

Bli inte rädd för felmeddelande

Till att börja med så gäller det att inte bli rädd för felmeddelanden, de kan se lite jobbiga ut men om de läses så kan de efter ett tag börja tydas fram vad som faktiskt menas. Då kommer nästa steg i problemsökningen, att ta reda på varför det händer.

Ett felmeddelande som rör rättigheter ser ut såhär:

<Message>Principal user (Id=76e0f0ad-cc99-e611-80be-00155d02e703, type=8) is missing prvReadAccount privilege (Id=886b280c-6396-4d56-a0a3-2c1b0a50ceb0)

Tyd felmeddelande

Så, vad betyder detta? Jo att användaren med id X inte får göra Y. Första gångerna ni ser detta så är det i stort sett grekiska, men om ni tittar på vad som står så är det egentligen inte så svårt. Det som gör det svårt är att det är ID för de båda objekten som visas och de går inte att använda inne i Dynamics 365 CR, t.ex. i en avancerad sökning. Det är här ni får visa hur skickliga ni är.

Ställ frågor

Web API är en anslutningspunkt som introducerades med Dynamics CRM 2015 till våruppdateringen. Det är ett sätt att ansluta mot systemet med Json, men det är inte det som är det intressanta just nu utan att det kan användas till att ställa frågor till systemet med webläsaren. Adressen ni använder finns under inställningar->anpassningar->Utvecklarresurser och där står det Web API och en url. Det som står där ser ut såhär https://contoso.crm4.dynamics.com/api/data/vX.Y/ om ni har en Dynamics 365 i EMEA som heter contoso. X och Y är versionssiffror och en instans online idag har antagligen v9.0 eller v9.1, men om ni vill vara säker så använd v8.2.

Om ni surfar till grund-URL för Web API så får man upp något som liknar detta:

Om ni surfar till grund-URL för Web API så får man upp något som liknar detta

Detta är de första 8 entiteterna i denna instans. Det är pluralnamnen som används. Om ni vill ta fram alla konton med hjälp av Web API så anger man adressen ”https://contoso.crm4.dynamics.com/api/data/v8.2/accounts”, går även att göra mer avancerade slagningar där ni söker efter fält som har en viss data (det är dock inte dagens lektion).

Vi vill ta reda på vilken användare det är som saknar rättigheter. Det är att bara knappa in ”https://contoso.crm4.dynamics.com/api/data/v8.2/systemusers”, då listas alla användare med all information som finns och kan utifrån från den listan leta efter id ”76e0f0ad-cc99-e611-80be-00155d02e703” som vi såg i felmeddelandet. Om ni inte har jättemånga användare är det absolut användbart men det kan göras lite enklare genom att även ange det id vi vet att användaren har på följande sätt: ”https://contoso.crm4.dynamics.com/api/data/v8.2/systemusers(76e0f0ad-cc99-e611-80be-00155d02e703)”, eller t.om bara visa namnet ”https://contoso.crm4.dynamics.com/api/data/v8.2/systemusers(76e0f0ad-cc99-e611-80be-00155d02e703)?$select=fullname” och då får vi fram vilken användare det är som har problem

får vi fram vilken användare det är som har problem

Vad är problemet

Så, nästa del av problemet här i exemplet, vad är det som användaren Rickard har problem med? Jo att han inte har prvReadAccount. Vi har ett id där också som en kan slå på samma sätt med ”/api/data/v8.2/privileges(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)”, alla id för systemfasta attribut är samma i alla system, denna ger dock inte så mycket intressant för det står mest att den heter prvReadAccount och det visste vi redan.

Notera – namnet i sig är faktiskt väldigt väl valt, användaren får inte läsa entieten Account med tillräckligt hög rättighet. Det kan bero på att han har försökt öppna ett konto som han inte äger och hans roll bara tillåter honom att läsa konton som han själv äger. Då kan man välja att utöka rättigheterna eller så får Rickard helt enkelt vänja sig att han inte får öppna andras kunder.

En liten inblick i vad Web API kan användas till i sin dagliga felsökning, att hitta vilka objekt som har ett visst id.