Записи с меткой «SilverCrmSoap»
Права пользователя на запись
Способ получения прав пользователя на конкретную запись в системе в CRM 2011 (пример на Silverlight с использованием библиотеки SilverCrmSoap).
var userId = new Guid("DF7A9B5D-B0FB-E011-890C-E61F137DE58F");
var entityName = "new_myentity";
var entityId = new Guid("3FA22F05-BA9D-E111-AD62-E61F137DE58F");
bool appendAccess;
bool appendToAccess;
bool assignAccess;
bool createAccess;
bool deleteAccess;
bool readAccess;
bool shareAccess;
bool writeAccess;
var request = new OrganizationRequest { RequestName = "RetrievePrincipalAccess" };
request["Principal"] = new EntityReference { LogicalName = "systemuser", Id = userId };
request["Target"] = new EntityReference { LogicalName = entityName, Id = entityId };
SilverCrmSoap.Helpers.SoapHelper.BeginExecute(request, delegate(IAsyncResult result)
{
var response = ((IOrganizationService)result.AsyncState).EndExecute(result);
var rights = (AccessRights)response["AccessRights"];
appendAccess = rights.HasFlag(AccessRights.AppendAccess);
appendToAccess = rights.HasFlag(AccessRights.AppendToAccess);
assignAccess = rights.HasFlag(AccessRights.AssignAccess);
createAccess = rights.HasFlag(AccessRights.CreateAccess);
deleteAccess = rights.HasFlag(AccessRights.DeleteAccess);
readAccess = rights.HasFlag(AccessRights.ReadAccess);
shareAccess = rights.HasFlag(AccessRights.ShareAccess);
writeAccess = rights.HasFlag(AccessRights.WriteAccess);
});
Выполнение запроса WhoAmI с помощью библиотеки SilverSrmCoap
Выполнение запроса на получение ID текущего пользователя (WhoAmIRequest).
var request = new OrganizationRequest { RequestName = "WhoAmI" };
SilverCrmSoap.Helpers.SoapHelper.BeginExecute(request, delegate(IAsyncResult result)
{
var response = ((IOrganizationService)result.AsyncState).EndExecute(result);
var userId = (Guid)response["UserId"];
});
Выполнение процесса (Workflow) из Silverlight при использовании библиотеки SilverCrmSoap
private void ExecuteWorkflow(Guid entityId, Guid workflowId)
{
var request = new OrganizationRequest
{
RequestName = "ExecuteWorkflow",
Parameters = new ParameterCollection
{
new SilverCrmSoap.CrmSdk.KeyValuePair<string, object> { Key = "EntityId", Value = entityId },
new SilverCrmSoap.CrmSdk.KeyValuePair<string, object> { Key = "WorkflowId", Value = workflowId }
}
};
SilverCrmSoap.Helpers.SoapHelper.BeginExecute(request, delegate(IAsyncResult result)
{
try
{
((IOrganizationService)result.AsyncState).EndExecute(result);
}
catch (Exception ex)
{
HtmlPage.Window.Alert("Ошибка выполнения Workflow!");
}
});
}
Получение метаданных сущности в Silverlight
SilverCrmSoap.Helpers.SoapHelper.BeginExecuteRetrieveEntity("new_agreement", delegate(IAsyncResult result)
{
try
{
var response = ((IOrganizationService)result.AsyncState).EndExecute(result);
var entityMetadata = ((EntityMetadata)response["EntityMetadata"]);
...
}
catch (Exception ex)
{
...
}
});
Для доступа к данным используется библиотека SilverCrmSoap.