Resource.ReadResourceAvailability Method
Returns a dataset of resource availability in a timephased data structure.
Namespace: [Resource Web service]
Service reference: http://ServerName:32843/[Project Service Application GUID]/PSI/Resource.svc
Web service reference: http://ServerName/ProjectServerName/_vti_bin/PSI/Resource.asmx?wsdl
Syntax
'Declaration
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Resource/ReadResourceAvailability", 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 ReadResourceAvailability ( _
resUIDs As Guid(), _
startDate As DateTime, _
endDate As DateTime, _
timeScale As Short, _
includeProposedBookings As Boolean _
) As DataSet
'Usage
Dim instance As Resource
Dim resUIDs As Guid()
Dim startDate As DateTime
Dim endDate As DateTime
Dim timeScale As Short
Dim includeProposedBookings As Boolean
Dim returnValue As DataSet
returnValue = instance.ReadResourceAvailability(resUIDs, _
startDate, endDate, timeScale, includeProposedBookings)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Resource/ReadResourceAvailability", 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 DataSet ReadResourceAvailability(
Guid[] resUIDs,
DateTime startDate,
DateTime endDate,
short timeScale,
bool includeProposedBookings
)
Parameters
- resUIDs
Type: []
Array of resource GUIDs.
- startDate
Type: System.DateTime
Beginning of the period.
- endDate
Type: System.DateTime
End of the period.
- timeScale
Type: System.Int16
Desired scale of the TimephasedData table, in the TimeScaleClass.TimeScale enumeration.
- includeProposedBookings
Type: System.Boolean
Include assignments for which the resource is only tentatively scheduled.
Return Value
Type: System.Data.DataSet
Dataset with a table of dates and a table of timephased data.
Remarks
Project Server Permissions
Permission |
Description |
---|---|
Allows a user to view resource allocation data. Global permission. |
Examples
The example uses the SvcResource namespace in the ProjectServerServices.dll proxy assembly. The ConfigClientEndpoints method uses an app.config file for setting the WCF binding, behavior, and endpoint. For information about creating a PSI proxy assembly and an app.config file, see Prerequisites for WCF-Based Code Samples.
The ReadResourceAvailability method returns the dataset resourceDS. The contents of the dataset are written to ResourceAvailability.xml.A sample of the TimephasedData structure from the actual output is shown below:
Note
The ReadResourceAvailabilityForGrid method is similar to the ReadResourceAvailability method, except the ReadResourceAvailabilityForGrid method does not return the resource GUID or project GUID in the DataSet. ReadResourceAvailabilityForGrid is used only in Project Web App for displaying data in the JS Grid
<TimephasedData>
<AssignmentUID>b2e5a49e-8cd7-42b3-97d8-4b9829f19a8f</AssignmentUID>
<ProjectName>Capacity</ProjectName>
<ResourceName>Fourth Coffee</ResourceName>
<RowType>0</RowType>
<ProjUID>00000000-0000-0000-0000-000000000000</ProjUID>
<ResUID>2a4ba1a7-1d96-4086-8fa5-6dea243ed6b5</ResUID>
<BookingType>0</BookingType>
<Interval0>72000</Interval0>
<Interval1>96000</Interval1>
<Interval2>110400</Interval2>
<Interval3>105600</Interval3>
<Interval4>100800</Interval4>
<Interval5>19200</Interval5>
</TimephasedData>
The complete code is given below:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.ServiceModel;
using PSLibrary = Microsoft.Office.Project.Server.Library;
namespace Microsoft.SDK.Project.Samples.Resources
{
class Resources
{
private static SvcResource.ResourceClient resourceClient;
private const string RES_ENDPOINT = "basicHttp_Resource";
private const string OUTPUT_FILES = @"C:\Projects\Samples\Output\";
private static string outFilePathResourcesAvailabilityGrid;
private static string outFilePathResourceAvailability;
static void Main(string[] args)
{
Guid[] resourceID = new Guid[2];
resourceID[0] = new Guid("2a4ba1a7-1d96-4086-8fa5-6dea243ed6b5");
resourceID[1] = new Guid("f6c846fa-b21b-49eb-9921-fe6bdec60242");
DateTime startDate = new DateTime(2010, 1, 10);
DateTime finishDate = new DateTime(2010, 6, 6);
// Configure the end points.
ConfigClientEndpoints(RES_ENDPOINT);
// If directory does not exist,create it.
if (!Directory.Exists(OUTPUT_FILES))
{
Directory.CreateDirectory(OUTPUT_FILES);
}
// Assign the path where the output XML file will be saved.
outFilePathResourcesAvailabilityGrid = OUTPUT_FILES + "ResourcesAvailabilityGrid.xml";
outFilePathResourceAvailability = OUTPUT_FILES + "ResourceAvailability.xml";
// Read the resource availability.
System.Data.DataSet resourceGridDS = resourceClient.ReadResourceAvailabilityForGrid(
resourceID, startDate, finishDate, (short)PSLibrary.Resource.TimeScale.Months, true);
// Write the contents of the DataSet to an XML file.
resourceGridDS.WriteXml(outFilePathResourcesAvailabilityGrid);
Console.WriteLine("\nSee XML output of the DataSet at {0}",
outFilePathResourcesAvailabilityGrid);
// Read the resource availability for grid.
System.Data.DataSet resourceDS = resourceClient.ReadResourceAvailability(
resourceID, startDate, finishDate, (short)PSLibrary.Resource.TimeScale.Months, true);
// Write the DataSet contents to an XML file.
resourceDS.WriteXml(outFilePathResourceAvailability);
Console.WriteLine("\nSee XML output of Resource Dataset at {0}",
outFilePathResourceAvailability);
Console.ReadKey();
}
// Configure the custom field client end points.
public static void ConfigClientEndpoints(string endpt)
{
resourceClient = new SvcResource.ResourceClient(endpt);
}
}
}