Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

This web service inserts a single project cost baseline based on a detailed project cost baseline structure (PwsProjectCostBaselineDetail). A project cost baseline is the basis for a budget. A baseline can be very simple - this project cannot have costs of more than $5000. Or very complex - this project has a senior sales rep and a junior sales rep. Each is budgeted a specific amount of money per diem. The service returns the identity of the project cost baseline (PwsProjectCostBaselineRef) that has been inserted. The caller can optionally request that the full project cost baseline detail (PwsProjectCostBaselineElement) be included in the response. 

Request Format

Panel
titlePwsCreateProjectCostBaseline Request
  • PwsCreateProjectCostBaseline
    • serviceRequest: PwsCreateProjectCostBaselineRq
      • RequestId: Int32
      • SessionTicket: String
      • ActualsCutoffDate: DateTime
      • Basis: String
      • Dimension: String
      • EngagementTimestamp: String **deprecated**
      • FullDetailFlag: Boolean
      • IntervalCount: Int32
      • ProjectCostBaseline: PwsProjectCostBaselineDetail
      • ProjectIdentity: PwsProjectRef
      • StartDate: DateTime
      • StealEngagementLockFlag: Boolean
      • TimePhase: String
      • LocksToSteal: PwsEntityLockSummary[1.100]
      • ProjectTimestamp: String
      • ProjectorLockSetId: Int32

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.

...

AXoSoNYPC/IRu5ISV3f2Ew==

...

ActualsCutoffDate

...

DateTime

...

No

...

The actuals cut off date for the project cost baseline. Currently, this is not used in any way, but is present for future use.

...

2018-03-31T00:00:00.000Z

...

Basis

...

String

...

Yes 

...

The project cost baseline basis. This is used to determine how to populate the initial baseline buckets. For example, if the basis is specified as 'P', the initial budget values will be set based on the project's current cost plan. This should be one of:

"P" for project cost plan

"N" for none (buckets specified manually within the ProjectCostBaseline structure)

...

N

...

Dimension

...

String

...

Yes

...

The project cost baseline dimension. The dimension identifies how the budget is to be broken up. For example, a budget with a dimension of 'E' allows for a budget number to be specified for each expense type available on the project. This should be one of:

"N" for none

"E" for expense type

"G" for expense type group

...

E

...

EngagementTimestamp

...

String

...

**deprecated**

...

FullDetailFlag

...

Boolean

...

No

...

false

...

If set to 'true', the full detailed project cost baseline element will be included in the response

...

true

...

IntervalCount

...

Int32

...

Yes

...

The interval count or number of buckets of the project cost baseline. This applies for time phases other than 'N' (None). Leave NULL for non time-phased budgets.

...

2

...

ProjectCostBaseline

...

PwsProjectCostBaselineDetail

...

Yes

...

Details of the project cost baseline to be created. This structure identifies important properties of the baseline, such as the baseline name, which metrics are active and which one is the primary metric. It also contains, when Basis is "N", the individual baseline buckets, broken out by the selected dimension and time phase. 

...

ProjectIdentity

...

PwsProjectRef

...

Yes

...

The project to which the cost baseline should be added.

...

StartDate

...

DateTime

...

Yes

...

The overall start date of the project cost baseline. Leave NULL for non time-phased baselines.

...

2018-01-01T00:00:00.000Z

...

StealEngagementLockFlag

...

Boolean

...

No

...

false

...

If set to 'true', any locks on the engagement will be stolen if it is currently locked, otherwise, if it is set to 'false' and a lock is in place the service will fail 

...

false

...

TimePhase

...

String

...

Yes

...

The time phase associated with the project cost baseline:

"N" for none

"D" for daily

"W" for weekly

"H" for hourly

"M" for monthly

"Q" for quarterly

"Y" for yearly

...

M

...

AAAAAA62D3k=

...

Request Usage Example(s)

...

languagexml
titleExample 01
collapsetrue

...

Overview


This web service inserts a single project cost baseline based on a detailed project cost baseline structure (PwsProjectCostBaselineDetail). A project cost baseline is the basis for a budget. A baseline can be very simple - this project cannot have costs of more than $5000. Or very complex - this project has a senior sales rep and a junior sales rep. Each is budgeted a specific amount of money per diem. The service returns the identity of the project cost baseline (PwsProjectCostBaselineRef) that has been inserted. The caller can optionally request that the full project cost baseline detail (PwsProjectCostBaselineElement) be included in the response. 

Request Format


Panel
titlePwsCreateProjectCostBaseline Request
  • PwsCreateProjectCostBaseline
    • serviceRequest: PwsCreateProjectCostBaselineRq
      • RequestId: Int32
      • SessionTicket: String
      • ActualsCutoffDate: DateTime
      • Basis: String
      • Dimension: String
      • EngagementTimestamp: String **deprecated**
      • FullDetailFlag: Boolean
      • IntervalCount: Int32 **deprecated**
      • ProjectCostBaseline: PwsProjectCostBaselineDetail
      • ProjectIdentity: PwsProjectRef
      • StartDate: DateTime **deprecated**
      • StealEngagementLockFlag: Boolean **deprecated**
      • TimePhase: String
      • LocksToSteal: PwsEntityLockSummary [1..100]
      • ProjectTimestamp: String
      • ProjectorLockSetId: Int32

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.

AXoSoNYPC/IRu5ISV3f2Ew==

ActualsCutoffDate

DateTime

No


The actuals cut off date for the project cost baseline. Currently, this is not used in any way, but is present for future use.

2018-03-31T00:00:00.000Z

Basis

String

Yes 


The project cost baseline basis. This is used to determine how to populate the initial baseline buckets. For example, if the basis is specified as 'P', the initial budget values will be set based on the project's current cost plan. This should be one of:

"P" for project cost plan

"N" for none (buckets specified manually within the ProjectCostBaseline structure)

N

Dimension

String

Yes


The project cost baseline dimension. The dimension identifies how the budget is to be broken up. For example, a budget with a dimension of 'E' allows for a budget number to be specified for each expense type available on the project. This should be one of:

"N" for none

"E" for expense type

"G" for expense type group

E

EngagementTimestamp

String

**deprecated**




FullDetailFlag

Boolean

No

false

If set to 'true', the full detailed project cost baseline element will be included in the response

true

IntervalCount

Int32

**deprecated**



2

ProjectCostBaseline

PwsProjectCostBaselineDetail

Yes


Details of the project cost baseline to be created. This structure identifies important properties of the baseline, such as the baseline name, which metrics are active and which one is the primary metric. It also contains, when Basis is "N", the individual baseline buckets, broken out by the selected dimension and time phase. 


ProjectIdentity

PwsProjectRef

Yes


The project to which the cost baseline should be added.


StartDate

DateTime

**deprecated**



2018-01-01T00:00:00.000Z

StealEngagementLockFlag

Boolean

**deprecated**




TimePhase

String

Yes


The time phase associated with the project cost baseline:

"N" for none

"D" for daily

"W" for weekly

"H" for hourly

"M" for monthly

"Q" for quarterly

"Y" for yearly

M
LocksToStealPwsEntityLockSummary [1..100]No
The detailed information of the locks that are to be stolen. If not specified, the request will fail if any requested locks are already held. If specified, the information supplied must exactly match the current state of existing locks or the attempt to steal the existing locks will fail. Typically, this service is invoked with LocksToSteal empty or null. If there are existing locks, they will be returned in the LockHolders member of PwsFault. This data can then be sent, as is, back to the server in a second invocation of this service, as LocksToSteal, if the caller desires to steal the locks.
ProjectTimestampStringNo
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.
AAAAAA62D3k=
ProjectorLockSetIdInt32No
A projector lock set id is an identifier for a group of one or more locks held as a unit. If the session ticket owner for this request is also the holder of a lock in this set, the request can proceed and will not be blocked by the lock.

Request Usage Example(s)


Code Block
languagexml
titleExample 01
collapsetrue
<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:PwsCreateProjectCostBaseline>
         <pws:serviceRequest>
            <com<req:CaMetricActiveFlag>true<RequestId>1</comreq:CaMetricActiveFlag>RequestId>
               <com:DaMetricActiveFlag>false</com:DaMetricActiveFlag><req:SessionTicket>AXoSoNYPC/IRu5ISV3f2Ew==</req:SessionTicket>
               <com:Description>Client Amount Cost Baseline</com:Description><sch:ActualsCutoffDate>2018-03-31T00:00:00.000Z</sch:ActualsCutoffDate>
               <com:EaMetricActiveFlag>false</com:EaMetricActiveFlag><sch:Basis>N</sch:Basis>
               <com:PrimaryMetric>C</com:PrimaryMetric><sch:Dimension>E</sch:Dimension>
               <com:ProjectCostBaselineName>Client Amount Budget</com:ProjectCostBaselineName><sch:FullDetailFlag>true</sch:FullDetailFlag>
            <sch:IntervalCount>2</sch:IntervalCount>
  <com:ProjectCostBaselineBuckets>          <sch:ProjectCostBaseline>
         <com:PwsProjectCostBaselineBucket>      <com:ActiveProjectCostBaselineFlag>true</com:ActiveProjectCostBaselineFlag>
               <com:ClientAmount>2000<CaMetricActiveFlag>true</com:ClientAmount>CaMetricActiveFlag>
                     <com:EndDate>2018-01-31T00:00:00.000Z<DaMetricActiveFlag>false</com:EndDate>DaMetricActiveFlag>
                     <com:ExpenseTypeIdentity>Description>Client Amount      Cost Baseline</com:Description>
                 <com:ExpenseTypeName>Per Diem<EaMetricActiveFlag>false</com:ExpenseTypeName>EaMetricActiveFlag>
                     <<com:PrimaryMetric>C</com:ExpenseTypeIdentity>PrimaryMetric>
               <com:ProjectCostBaselineName>Client      <com:StartDate>2018-01-01T00:00:00.000Z<Amount Budget</com:StartDate>ProjectCostBaselineName>
                  </com:PwsProjectCostBaselineBucket><com:ProjectCostBaselineBuckets>
                  <com:PwsProjectCostBaselineBucket>
                     <com:ClientAmount>2000</com:ClientAmount>
                     <com:EndDate>2018-0201-28T0031T00:00:00.000Z</com:EndDate>
                     <com:ExpenseTypeIdentity>
                        <com:ExpenseTypeName>Per Diem</com:ExpenseTypeName>
                     </com:ExpenseTypeIdentity>
                     <com:StartDate>2018-0201-01T00:00:00.000Z</com:StartDate>
                  </com:PwsProjectCostBaselineBucket>
                 </com:ProjectCostBaselineBuckets> <com:PwsProjectCostBaselineBucket>
              </sch:ProjectCostBaseline>       <com:ClientAmount>2000</com:ClientAmount>
     <sch:ProjectIdentity>                <com:ProjectCode>P001407-001<EndDate>2018-02-28T00:00:00.000Z</com:ProjectCode>EndDate>
                     </sch<com:ProjectIdentity>ExpenseTypeIdentity>
            <sch:StartDate>2018-01-01T00:00:00.000Z</sch:StartDate>             <sch:StealEngagementLockFlag>false</sch:StealEngagementLockFlag><com:ExpenseTypeName>Per Diem</com:ExpenseTypeName>
            <sch:TimePhase>M</sch:TimePhase>          </pws:serviceRequest>com:ExpenseTypeIdentity>
            </pws:PwsCreateProjectCostBaseline>    </soapenv:Body> </soapenv:Envelope>
Code Block
languagexml
titleExample 02 - lock stolen
collapsetrue
<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> <com:StartDate>2018-02-01T00:00:00.000Z</com:StartDate>
                  </com:PwsProjectCostBaselineBucket>
               </com:ProjectCostBaselineBuckets>
            <pws:PwsCreateProjectCostBaseline></sch:ProjectCostBaseline>
            <pws:serviceRequest><sch:ProjectIdentity>
               <req<com:RequestId>1<ProjectCode>P001407-001</reqcom:RequestId>
ProjectCode>
           <req:SessionTicket>Ade8vXDjCIr0kcDpdVTbCw== </reqsch:SessionTicket>ProjectIdentity>
            <sch:ActualsCutoffDate>2018StartDate>2018-1201-31T0001T00:00:00.000Z</sch:ActualsCutoffDate>StartDate>
            <sch:Basis>N<StealEngagementLockFlag>false</sch:Basis>StealEngagementLockFlag>
            <sch:Dimension>E<TimePhase>M</sch:Dimension>TimePhase>
         </pws:serviceRequest>
      <sch:FullDetailFlag>true<</schpws:FullDetailFlag>PwsCreateProjectCostBaseline>
   </soapenv:Body>
</soapenv:Envelope>


Code Block
languagexml
titleExample 02 - lock stolen
collapsetrue
<soapenv:Envelope        <sch:ProjectCostBaseline>
               <com:ActiveProjectCostBaselineFlag>true</com:ActiveProjectCostBaselineFlag>
               <com:CaMetricActiveFlag>true</com:CaMetricActiveFlag>
               <com:DaMetricActiveFlag>false</com:DaMetricActiveFlag>
   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:PwsCreateProjectCostBaseline>
    <com:Description>Client Amount Cost Baseline</com:Description>  <pws:serviceRequest>
             <com<req:EaMetricActiveFlag>false<RequestId>1</comreq:EaMetricActiveFlag>RequestId>
               <com:PrimaryMetric>C</com:PrimaryMetric><req:SessionTicket>Ade8vXDjCIr0kcDpdVTbCw==</req:SessionTicket>
               <com:ProjectCostBaselineName>Client Amount Budget</com:ProjectCostBaselineName>
               <com:ProjectCostBaselineBuckets>
             <sch:ActualsCutoffDate>2018-12-31T00:00:00.000Z</sch:ActualsCutoffDate>
    <com:PwsProjectCostBaselineBucket>        <sch:Basis>N</sch:Basis>
             <com<sch:ClientAmount>2000<Dimension>E</comsch:ClientAmount>Dimension>
            <sch:FullDetailFlag>true</sch:FullDetailFlag>
        <com:ExpenseTypeIdentity>        <sch:ProjectCostBaseline>
                <com:ExpenseTypeName>Per Diem-AA<ActiveProjectCostBaselineFlag>true</com:ExpenseTypeName>ActiveProjectCostBaselineFlag>
                     <<com:CaMetricActiveFlag>true</com:ExpenseTypeIdentity>CaMetricActiveFlag>
                  <<com:DaMetricActiveFlag>false</com:PwsProjectCostBaselineBucket>DaMetricActiveFlag>
                  <com:PwsProjectCostBaselineBucket>Description>Client Amount     Cost Baseline</com:Description>
               <com:ClientAmount>2000<EaMetricActiveFlag>false</com:ClientAmount>EaMetricActiveFlag>
               <com:PrimaryMetric>C</com:PrimaryMetric>
       <com:ExpenseTypeIdentity>        <com:ProjectCostBaselineName>Client Amount Budget</com:ProjectCostBaselineName>
               <com:ExpenseTypeName>Travel-AR</com:ExpenseTypeName>ProjectCostBaselineBuckets>
                  <com:PwsProjectCostBaselineBucket>
  </com:ExpenseTypeIdentity>                   <<com:ClientAmount>2000</com:PwsProjectCostBaselineBucket>
    ClientAmount>
          </com:ProjectCostBaselineBuckets>             </sch:ProjectCostBaseline><com:ExpenseTypeIdentity>
            <sch:ProjectIdentity>
               <com:ProjectCode>P001125ExpenseTypeName>Per Diem-001<AA</com:ProjectCode>
 ExpenseTypeName>
          </sch:ProjectIdentity>             <!--sch:StartDate>2018-11-01T00:00:00.000Z</sch:StartDate-->/com:ExpenseTypeIdentity>
              <sch:StealEngagementLockFlag>false</sch:StealEngagementLockFlag>    </com:PwsProjectCostBaselineBucket>
        <sch:TimePhase>N</sch:TimePhase>          <com:PwsProjectCostBaselineBucket>
  <sch:LocksToSteal>                <!--Zero or more repetitions:--><com:ClientAmount>2000</com:ClientAmount>
                     <com:PwsEntityLockSummary>ExpenseTypeIdentity>
                  <!--Optional:-->      <com:ExpenseTypeName>Travel-AR</com:ExpenseTypeName>
            <com:EntityIdentity>         </com:ExpenseTypeIdentity>
            <!--Optional:-->      </com:PwsProjectCostBaselineBucket>
               <com:EntityCode>P001125-001<</com:EntityCode>ProjectCostBaselineBuckets>
            </sch:ProjectCostBaseline>
         <com:LockType>P</com:LockType>   <sch:ProjectIdentity>
               <<com:ProjectCode>P001125-001</com:EntityIdentity>ProjectCode>
            </sch:ProjectIdentity>
            <!---Optional:sch:StartDate>2018-11-01T00:00:00.000Z</sch:StartDate-->
            <sch:StealEngagementLockFlag>false</sch:StealEngagementLockFlag>
       <com:EntityLockSummary>     <sch:TimePhase>N</sch:TimePhase>
            <sch:LocksToSteal>
   <!--Zero or more repetitions:-->         <com:PwsEntityLockSummary>
            <com:PwsEntityLockSummaryItem>      <com:EntityIdentity>
                  <!--Optional:-->   <com:EntityCode>P001125-001</com:EntityCode>
                     <com:LockCount>1<LockType>P</com:LockCount>LockType>
                  </com:EntityIdentity>
                   <!--Optional:--><com:EntityLockSummary>
                        <com:LockHolderUserIdentity>PwsEntityLockSummaryItem>
                           <!--Optional:--><com:LockCount>1</com:LockCount>
                        <com:LockHolderUserIdentity>
  <com:UserDisplayName>Krakauer, Larry</com:UserDisplayName>                        <com:UserDisplayName>Krakauer, <Larry</com:LockHolderUserIdentity>UserDisplayName>
                        <!--Optional:-->/com:LockHolderUserIdentity>
                        <com:MostRecentLockAcquisitionTimestamp>2018-11-14T17:59:52.2Z</com:MostRecentLockAcquisitionTimestamp>
                     </com:PwsEntityLockSummaryItem>
                  </com:EntityLockSummary>
               </com:PwsEntityLockSummary>
            </sch:LocksToSteal>
         </pws:serviceRequest>
      </pws:PwsCreateProjectCostBaseline>
   </soapenv:Body>
</soapenv:Envelope>

...

Panel
titlePwsCreateProjectCostBaseline Response

Response Elements


Element

Data Type

Description

Sample Data

Messages

PwsMessage[]

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


ResponseId

Int32

Click here for more information

1

Status

RequestStatus

Click here for more information.

Ok

ServerTimestampUtc

DateTime

Click here for more information

2018-01-29T21:55:08.7579802Z

EngagementLockStolenFromUserIdentity

PwsUserRef

**deprecated**


EngagementTimestamp

String

**deprecated**

AAAAAA62DGw=

ProjectCostBaseline

PwsProjectCostBaselineElement

The complete set of information about the project cost baseline. Specify FullDetailFlag = true in request to get this value returned in the response.


ProjectCostBaselineIdentity

PwsProjectCostBaselineRef

The unique keys used to identify the project cost baseline


ProjectTimestampStringThis 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.AAAAABFFCOw=
StolenLocksPwsEntityLockSummary[1..100]This structure contains information about the locks that were stolen in order to complete this request, Will be included only when LocksToSteal is specified in the request.

...

ErrorNumber

ErrorCode

ErrorText

34001InvalidValueForProjectCostBaselineBasisThe value specified for cost baseline basis is invalid. Valid values are P for Cost Plan and N for None.
34003InvalidValueForProjectCostBaselineDimensionThe value specified for cost baseline dimension is invalid. Valid values are E for Expense Type, G for Expense Type Group, and N for None.
34005SpecifyUpToOneDimensionInBaselineBucketMore than one dimension specified in Baseline Bucket.
34007ParametersIgnoredForTimePhaseNoneTime Phase Parameters StartDate and IntervalCount are ignored when Time Phase specified as N for None.
34010BaselineMustHaveAtLeastOneMetricBaseline must have at least one metric.
34013NoBucketsSpecifiedOnUnseededBaselineCreationNo buckets were specified on baseline creation with no basis/seed.
34015BaselineDescriptionMayNotBeSpecifiedWhenClearFlagSetBaseline Description may not be specified when clear flag is set.
34016BaselineBucketsMayNotBeProvidedWhenClearFlagSetBaseline Buckets may not be provided when clear flag is set.
50024EntityNotFoundEntity PwsExpenseTypeRef was not found.
50469EntityAlreadyLockedOne or more existing locks prevent acquisition of requested lock
50472LockReleasedLock xxxxx of type P  has been released.
50473InvalidLockInvalid lock specified.
54195InvalidValueForPrimaryMetricAn invalid value was specified for project baseline primary metric.
54284CannotUseThisServiceToUpdateBaselinesThis service can be used to create new baselines only, not to update an existing baseline.
54285BaselineNameIsRequiredA baseline name is required.
54286AtLeastOneBaselineMetricMustBeActiveAt least one metric must be made active.
54292PrimaryBaselineMetricMustBeEnabledPrimary baseline metrics must be an enabled metric in the baseline.
54324InvalidValueSpecifiedForBasisDimensionOrTimephaseAn invalid value was specified for basis, dimension or time phase when creating a project baseline.
54483StartDateOrIntervalCountSpecifiedForNonTimephasedBaselineNon-timephased baselines must not have a start date or an interval count other than zero.
54484StartDateAndIntervalCountRequiredForTimephasedBaselineTimephased baselines require a start date and a positive interval count.
54488NoPermissionToCreateProjectBaselineYou do not have appropriate permissions to create this project baseline.
54489BaselineDimensionMismatchA value for a dimension that does not match the project baseline's dimension setting was specified.
54490BudgetValueSpecifiedForInactiveMetricA budget value was specified for a metric that is not active in the project baseline.
54517NegativeBudgetAmountSpecifiedForProjectBaselineProject baselines may not contain negative budgeted amounts.
54518SpecifiedProjectBaselineBucketDatesInvalidThe specified bucket dates for a project baseline bucket are invalid.
54519DuplicateKeyFoundInBaselineBucketsDuplicate key found in specified baseline buckets.
54520ProjectBaselineNameAlreadyInUseThe specified project baseline name is already in use.
54526ProjectBaselineExternalSystemIdentifierAlreadyInUseThe specified project baseline external system identifier is already in use.
54795InvalidArgumentsToPwsGetBaselineBucketDateIntervalsInvalid arguments have been specified to this service.
54991NoPermissionToUpdateProjectBaselineYou do not have appropriate permissions to update this project baseline.
55140NoPermissionToSetActiveBaselinesNo permission to switch active baselines.