У меня есть собственный рабочий процесс, который копирует вложения из электронного письма и помещает копию в заметки. На данный момент этот процесс запускается вручную.Я хочу, чтобы этот процесс запускался автоматически каждый день в указанное время дня.Однако я не уверен, как это сделать.
public class Email_Attachments_to_Regarding_Document_Store : CodeActivity
{
protected override void Execute(CodeActivityContext executionContext)
{
ITracingService tracer = executionContext.GetExtension<ITracingService>();
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
try
{
//Retrieve Email the workflow is running against from Dynamics
Email email = service.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet(true)).ToEntity<Email>();
//Retrieve the attachment mimes related to the email
DataCollection<Entity> mimes = service.RetrieveMultiple(new QueryExpression
{
EntityName = ActivityMimeAttachment.EntityLogicalName,
ColumnSet = new ColumnSet(true),
Criteria =
{
Conditions =
{
//Filter by related Email, 'objectid' is the related email.
new ConditionExpression("objectid", ConditionOperator.Equal, email.Id)
}
}
}).Entities;
foreach(ActivityMimeAttachment mime in mimes)
{
Annotation note = new Annotation
{
AnnotationId = Guid.NewGuid(),
DocumentBody = mime.Body,
IsDocument = true,
FileName = mime.FileName,
MimeType = mime.MimeType,
ObjectTypeCode = email.RegardingObjectId.LogicalName,
ObjectId = email.RegardingObjectId
};
note.IsDocument = true;
service.Create(note);
}
}
catch (Exception e)
{
throw new InvalidPluginExecutionException(e.Message);
}
}
Этот код копирует вложения электронной почты в заметки.Однако я не могу запустить этот код в указанное время дня.Приведенный ниже код является функцией Azure, которая подключается к динамике
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, TraceWriter log)
{
log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
IServiceManagement<IOrganizationService> orgServiceManagement =
ServiceConfigurationFactory.CreateManagement<IOrganizationService>(new Uri("https://disco.crm11.dynamics.com/XRMServices/2011/Discovery.svc"));
AuthenticationCredentials authCredentials = new AuthenticationCredentials();
authCredentials.ClientCredentials.UserName.UserName = "xxx@s.co.uk";
authCredentials.ClientCredentials.UserName.Password = "xxxxx";
AuthenticationCredentials tokenCredentials = orgServiceManagement.Authenticate(authCredentials);
//Retreive the service
IOrganizationService service = new OrganizationServiceProxy(orgServiceManagement, tokenCredentials.SecurityTokenResponse);
}
}
. Я хочу, чтобы функция Azure реализовала / запустила пользовательский рабочий процесс, но я не знаю, как