Добавление работы по назначению ресурсов по дням

Уже несколько дней пытаюсь написать ход выполнения конкретной задачи на конкретную дату. Например: я могу установить общий ход выполнения задачи, но не фактическую работу, которую ресурс выполнил на определенную дату. Мы можем сделать это с помощью Project Pro в представлении «Использование задач», но нам нужно автоматизировать некоторые действия на основе файла, сгенерированного другой системой, и поэтому я работаю над этим решением, но я не смог найти объект, который позволил бы мне, чтобы сохранить фактическую стоимость работы на дату. Я использую библиотеку CSOM и Project Online.

Эта проблема сводит меня с ума! Любая помощь будет очень признательна. Заранее спасибо!

ИЗМЕНИТЬ:

В случае, если я недостаточно ясно выразился, мне в основном нужно получать и устанавливать данные из назначений ресурсов ПО ДНЯМ, поскольку мы можем просматривать и устанавливать их на экране ИСПОЛЬЗОВАНИЯ ЗАДАЧИ в Project PRO, но мне нужно сделать это с помощью CSOM и Project Online. . Вот представление, о котором я говорю: Просмотр использования задач Project Pro


person Andre Morata    schedule 24.06.2016    source источник


Ответы (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 == "[email protected]");
        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();
        }
    }
person Andre Morata    schedule 20.07.2016