Метод Resource.UpdateResources
Обновление, удаление или создает один или несколько ресурсов.
Пространство имен: WebSvcResource
Сборка: ProjectServerServices (в ProjectServerServices.dll)
Синтаксис
'Декларация
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Resource/UpdateResources", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Resource/", _
ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Resource/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function UpdateResources ( _
rds As ResourceDataSet, _
validateOnly As Boolean, _
autoCheckIn As Boolean _
) As ResourceDataSet
'Применение
Dim instance As Resource
Dim rds As ResourceDataSet
Dim validateOnly As Boolean
Dim autoCheckIn As Boolean
Dim returnValue As ResourceDataSet
returnValue = instance.UpdateResources(rds, _
validateOnly, autoCheckIn)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Resource/UpdateResources", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Resource/",
ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Resource/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public ResourceDataSet UpdateResources(
ResourceDataSet rds,
bool validateOnly,
bool autoCheckIn
)
Параметры
rds
Тип: WebSvcResource.ResourceDataSetResourceDataSet с данными обновленные ресурсов.
validateOnly
Тип: System.BooleanЕсли trueпроверяет данные, а не создавать новые ресурсы.
autoCheckIn
Тип: System.BooleanЕсли trueавтоматически проверки данных ресурсов.
Возвращаемое значение
Тип: WebSvcResource.ResourceDataSet
Возвращенный ResourceDataSet содержит изменения, внесенные.
Замечания
UpdateResources удаляет ресурс, если параметр ResourceDataSet не содержит сведений для существующего ресурса, создает ресурс, если ресурс не существует в корпоративный пул ресурсов или обновляет существующие ресурсы с новыми данными.
Каждый ресурс, который должен быть изменен или удален должен быть извлечен текущего прошедшего проверку подлинности пользователя до вызова метода UpdateResources.
Разрешения Project Server
Разрешение |
Описание |
---|---|
Позволяет пользователю управлять всех корпоративных пользователей, ресурсов и групп. Глобальное разрешение. |
|
Позволяет пользователю создать новый ресурс. Глобальное разрешение. |
|
Позволяет пользователю управлять сведений о пользователе. Глобальное разрешение. |
|
Позволяет пользователю изменить или удалить этот ресурс. Разрешение категории. |
Примеры
В следующем примере возвращается список всех существующих корпоративных ресурсов, извлекает первый ресурсов, обновляет имя ресурса и затем сохраняет изменение на сервер и проверяет в ресурсе.
Please see Необходимые условия для образцов кода на основе ASMX в Project 2013 for critical information on running this code sample.
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Windows.Forms;
using System.Web.Services.Protocols;
using PSLibrary = Microsoft.Office.Project.Server.Library;
namespace Microsoft.Office.Project.Samples.UpdateResources
{
class Program
{
static void Main(string[] args)
{
const string PROJECT_SERVER_URI = "https://ServerName/ProjectServerName/";
const string RESOURCE_SERVICE_PATH = "_vti_bin/psi/resource.asmx";
try
{
// Set up the resource object and dataset
SvcResource.Resource resourceSvc = new SvcResource.Resource();
SvcResource.ResourceDataSet resourceDs = new SvcResource.ResourceDataSet();
resourceSvc.Url = PROJECT_SERVER_URI + RESOURCE_SERVICE_PATH;
resourceSvc.Credentials = CredentialCache.DefaultCredentials;
// Read read all the resources
resourceDs = resourceSvc.ReadResources(string.Empty, false);
// Check out the first resource for updating.
// - This assumes the resource is checked in.
// - An error occurs if the resource is already checked out.
resourceSvc.CheckOutResources(new Guid[] { resourceDs.Resources[0].RES_UID });
// Update the resource name of the first row.
Console.WriteLine ("Modifying resource " + resourceDs.Resources[0].RES_ID + " (" + resourceDs.Resources[0].RES_NAME + ")");
resourceDs.Resources[0].RES_NAME += " Modified at: " + DateTime.Now.ToShortTimeString();
// Send the update to the server and automatically check in the changed row
resourceSvc.UpdateResources(resourceDs, false, true);
}
catch (System.Web.Services.Protocols.SoapException ex)
{
string errMess = "";
PSLibrary.PSClientError error = new PSLibrary.PSClientError(ex);
PSLibrary.PSErrorInfo[] errors = error.GetAllErrors();
for (int j = 0; j < errors.Length; j++)
errMess = errMess + errors[j].ErrId.ToString() + "\n";
errMess = errMess + "\n" + ex.Message.ToString();
MessageBox.Show(errMess, "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
catch (WebException ex)
{
string message = ex.Message.ToString() +
"\n\nLog on, or check the Project Server Queuing Service";
MessageBox.Show(message, "Project Creation Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}