PwsAdvanceDelayProject

Overview

PwsAdvanceDelayProject can be used to shift a specified project in time. Advancing the project (by specifying a NewProjectOpenDate prior to the existing begin date) causes all dates to be shifted earlier (project is starting ahead of schedule); delaying the project (by specifying a NewProjectOpenDate after the existing begin date) causes all dates to be shifted later (project is starting behind schedule).

Some dates are shifted on a daily granularity, others on a weekly granularity, and yet others are shifted at varying granularities.

  • For daily granularity, dates are simply shifted by the number of days difference between the original and new project begin dates.
  • For weekly granularity, the number of weeks shifted is determined by calculating the number of weeks difference between the start of the week containing the original begin date and the start of the week containing the new begin date.
  • For half-month, month, quarter and year granularities (time and cost budgets, cost plans), the number of time units shifted is calculated in a similar manner (for example, the number of quarters between the quarter containing the original begin date and the quarter containing the new begin date).

When a project is advanced or delayed:

  • The project begin date is shifted to the newly specified begin date
  • The project end date is shifted as follows:
    • If NewProjectCloseDateClearFlag is set to true, it is cleared.
    • If NewProjectCloseDate is not specified, and the existing end date is not set, it is left as is.
    • If NewProjectCloseDate is not specified, and the existing end date is set, the existing end date is shifted at a weekly granularity relative to the project begin date (for example, if the new project begin date is shifted 2 weeks after the original begin date, the original end date is shifted by the same two weeks.
    • If any of the above results in a project end date prior to any role end date or scheduling activity on the project, the end date is automatically stretched so as to not have role end dates or activity outside the project dates.
  • Project rate begin and end dates are shifted on a weekly granularity.
  • Project role start and end dates are shifted on a weekly granularity.
  • Project role rate exceptions and RDC exceptions are shifted on a weekly granularity.
  • Allocations are shifted on a weekly granularity.
  • Time and cost budgets are shifted on a granularity depending upon the time phasing of the individual baselines (non-time phases budgets are not shifted at all).
  • Cost plans are shifted on a granularity depending upon the time phasing of the individual baselines (non-time phases budgets are not shifted at all).
  • Task plan earliest start dates and task baseline role start and end dates are shifted on a daily granularity.

Request Format


PwsAdvanceDelayProject Request

Request Elements


Element

Data Type

Required?

Default

Description

Sample Data

RequestId

Int32

No


Click here for more information.

1

SessionTicket

String

Yes


Click here for more information.

AWXKNmZlvR5xkqVh6PAXqQ==

LocksToSteal

PwsEntityLockSummary[]

No


This structure represents the locked state of a Projector entity such as an engagement or a project


NewProjectCloseDate

DateTime

No


The new end date for the project, if any.

2023-12-31z

NewProjectCloseDateClearFlag

Boolean

No


If set to 'true', the project end date, if currently set, will be cleared.

true

NewProjectOpenDate

DateTime

Yes


The new begin date for the project.

2023-01-01z

ProjectIdentity

PwsProjectRef

Yes


This structure identifies the project to be advanced or delayed.


ProjectTimestamp

String

No


*** This field has been deprecated ***


ProjectorLockSetId

Int32



A projector lock set id is an identifier for a group of one or more locks held as a unit.


AllowProjectDatesToStretchFlag

Boolean

No

false

When the new begin date would be in conflict with role start dates or allocation dates after the operation is completed, the project begin date will be adjusted to resolve the conflict if this boolean value is set to 'true'.   Otherwise, error 55037 will be thrown. 

For instance, suppose a role’s begin date after the operation is completed is Nov. 30, 2022, and the project begin date is currently set to Dec. 12, 2022. If the boolean value is set to ‘true’, Projector will change the project begin date to Nov. 30, 2022, to resolve the conflict. However, if the boolean value is set to ‘false’, error 55037 will be thrown.

Note that the project end date is automatically stretched as necessary, regardless of this setting.


Request Usage Example(s)


Example 01 - simple update
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pws="http://projectorpsa.com/PwsProjectorServices/" xmlns:req="http://projectorpsa.com/DataContracts/Requests/" xmlns:sch="http://projectorpsa.com/DataContracts/Shared/Scheduling/" xmlns:com="http://projectorpsa.com/DataContracts/Shared/Common/">
   <soapenv:Header/>
   <soapenv:Body>
      <pws:PwsAdvanceDelayProject>
         <!--Optional:-->
         <pws:serviceRequest>
            <req:SessionTicket>AWXKNmZlvR5xkqVh6PAXqQ==</req:SessionTicket>
            <sch:NewProjectCloseDate>2023-12-31z</sch:NewProjectCloseDate>
            <!--Optional:-->
            <!--sch:NewProjectCloseDateClearFlag>?</sch:NewProjectCloseDateClearFlag-->
            <sch:NewProjectOpenDate>2022-01-01z</sch:NewProjectOpenDate>
            <sch:ProjectIdentity>
               <!--Optional:-->
               <com:ProjectCode>LUCIA-001</com:ProjectCode>
            </sch:ProjectIdentity>
            <sch:AllowProjectDatesToStretchFlag>true</sch:AllowProjectDatesToStretchFlag>
         </pws:serviceRequest>
      </pws:PwsAdvanceDelayProject>
   </soapenv:Body>
</soapenv:Envelope>

Response Format


PwsAdvanceDelayProject Response


Response Elements


Element

Data Type

Description

Messages

PwsMessage

The web service response status and message. Click here for more information.

ResponseId

Int32

Click here for more information.

Status

RequestStatus

Click here for more information.

ServerTimestampUtc

DateTime

Click here for more information.

NewProjectCloseDate

DateTime

The new end date of the project

NewProjectOpenDate

DateTime

The new begin date of the project

ProjectTimestamp

String

This is an optimistic locking timestamp that, if provided on update request, will cause the request to fail when the timestamp stored in the database does not match the provided value.

Response Usage Example(s)


Example 01 - simple update
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <PwsAdvanceDelayProjectResponse xmlns="http://projectorpsa.com/PwsProjectorServices/">
         <PwsAdvanceDelayProjectResult xmlns:a="http://projectorpsa.com/DataContracts/Shared/Scheduling/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <Messages xmlns="http://projectorpsa.com/CommonServices/" xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
            <ResponseId xmlns="http://projectorpsa.com/CommonServices/">0</ResponseId>
            <Status xmlns="http://projectorpsa.com/CommonServices/">Ok</Status>
            <ServerTimestampUtc xmlns="http://projectorpsa.com/CommonServices/">2023-10-11T19:29:06.3237023Z</ServerTimestampUtc>
            <a:NewProjectCloseDate>2022-10-29T00:00:00</a:NewProjectCloseDate>
            <a:NewProjectOpenDate>2022-01-01T00:00:00</a:NewProjectOpenDate>
            <a:ProjectTimestamp>AAAAADHlsuY=</a:ProjectTimestamp>
         </PwsAdvanceDelayProjectResult>
      </PwsAdvanceDelayProjectResponse>
   </s:Body>
</s:Envelope>

PwsAdvanceDelayProject - Common Errors and Warnings

ErrorNumber

ErrorCode

ErrorText

55263NoPermissionToAdvanceDelayProject

No permission to advance or delay project

55037AdvanceDelayDateAdjustmentInvalidRequested date adjustment would result in activity outside of role or project date range.