Interview questions on MS CRM

What is PrinciplalObjectAccess table why is it used? 

The POA table is used to provide access to specific records for CRM users, and each record in the POA table represents one CRM object that is    related to one CRM user.  Records created in the POA table come from one of four ways: 
·         Share reassigned records with original owner:  CRM System Settings
o    If this is set to Yes, then records would be added to the POA table whenever an assign takes place.  These records will have a value in the AccessRightsMask colum of the POA table.
·         Direct sharing:  Actions – Sharing 
o    When users explicitly share a record to another user, a record would be created in the POA table.  These records will have a value in the AccessRightsMask colum of the POA table.
·         Reparent Setting:  Relationship Behavior
o    Each entity has relationships with other entities (ex. Account to Case).  By default, the Reparent option is set to Cascade All.  With this setting, sub records would be shared to the owner of the parent record.  For example:  Let’s say that User1 owns Account1.  User2 has access to Account1 and creates a case underneath Account1.  With the out of the box Reparent options, a record would be created in the POA table that would give User1 access to the newly created case.  These records will have a value in the InheritedAccessRightsMask colum of the POA table.
·         Indirect Sharing: When sharing occurs through a direct share, assignment, or parenting, if the relationship is set up to cascade the share to child records, additional records will be created in the POA table in order to give proper permissions to the new user for the relevant child records.  These records will have a value in the InheritedAccessRightsMask colum of the POA table. 

Where the picklist or optionset values will be stored in MS CRM database?
stringmap table used to store picklist value in ms crm.

What is the difference when the ownership is Organization or User or Team for a custom entity?
Organization-owned entities typically contain data involving something that belongs to or that can be 
viewed by the whole organization. Organization-owned entities cannot be assigned or shared. For example, products are owned by the organization.
User-owned entities are associated with a user. User-owned entities typically contain data that relates to customers, such as accounts or contacts. Security can be defined according the business unit for the user.

when it is in Organization owned entity:



when it is in user or team owned entity: 



If you delete a record from UI, what happens in database? Can you bring the record back?OR, what is deletion service? Can you change its schedule? 

In Microsoft Dynamics CRM, deleting an entity by using the Web application or through SDK Web service calls usually results in a "soft delete" where the entity is not immediately deleted from the database. Instead, the entity is marked for deletion later. The platform marks the entity for deletion by setting the entity's DeletionStateCode attribute to 2. Entities with a DeletionStateCode attribute set to 2 are filtered out from all data views in the Web application and are not accessible using the SDK.
These marked entities are physically deleted from the database by the Deletion Service. The Deletion Service is an asynchronous operation that is based on a table named ScaleGroupOrganizationMaintenanceJobs in the MSCRM_CONFIG database of Microsoft Dynamics CRM. By default, the frequency of the Deletion Service job execution is set to once a day. You can use the Scale Group Job Editor tool to change the execution frequency of the Deletion Service. You can find the tool on the Web at http://code.msdn.microsoft.com/ScaleGroupJobEditor. 


























Comments

Popular posts from this blog

Connecting Dynamics 365 Web api using external HTML page

Get azure blob files inside Sub Directories