Добавьте работу назначения ресурса днем
В течение нескольких дней я пытаюсь написать ход выполнения задания для конкретной задачи на конкретную дату. Например: я могу установить общий ход выполнения задачи, но не фактическую работу, которую ресурс выполнял в определенный день. Мы можем сделать это с помощью Project Pro в представлении "Использование задач", но нам нужно автоматизировать некоторые действия на основе файла, созданного другой системой, и поэтому я работаю в этом решении, но я не смог найти какой-либо объект, который позволил бы мне сохранить фактическую стоимость работы на дату. Я использую библиотеку CSOM и Project Online.
Эта проблема сводит меня с ума! Любая помощь будет принята с благодарностью. Заранее спасибо!
РЕДАКТИРОВАТЬ:
В случае, если я не был достаточно ясен, мне в основном нужно получать и задавать данные из назначений ресурсов ПО ДНЕМ, поскольку мы можем просматривать и настраивать их через экран TASK USAGE в Project PRO, но мне нужно сделать это с помощью CSOM и Project Online., Вот мнение, о котором я говорю:
1 ответ
В итоге нам удалось найти выход... Вот как мы это сделали:
private void SaveAssignmentData(Guid id, DateTime start, DateTime finish, Config config)
{
//start = DateTime.Today.AddHours(8);
//finish = start.AddHours(10); //from 8am to 6pm
var ctx = new Connection().ProjectOnline(config.SpOnlineSite, config.SpOnlineUsuario, config.SpOnlineSenha); //simple method to get the current context
var resources = ctx.EnterpriseResources;
ctx.Load(resources);
ctx.ExecuteQuery();
var resource = ctx.EnterpriseResources.FirstOrDefault(i => i.Email == "user@domain.com");
if (resource == null) throw new Exception("Resource not found.");
ctx.Load(resource, p => p.Assignments);
ctx.ExecuteQuery();
var timePhase = resource.Assignments.GetTimePhase(start, finish);
ctx.Load(timePhase, p => p.Assignments);
ctx.ExecuteQuery();
var statusAssignment = timePhase.Assignments.FirstOrDefault(i => i.Id == id);
if (statusAssignment != null)
{
statusAssignment.ActualWork = "6h";
statusAssignment.SubmitStatusUpdates("through csom");
ctx.ExecuteQuery();
}
}