PwsSaveProjectRole

Overview


This web service inserts or updates a single project role based on a detailed project role structure (PwsProjectRoleDetail). The service returns the identity (PwsProjectRoleRef) of the project role that has been inserted or updated. 

Request Format


PwsSaveProjectRole Request
  • PwsSaveProjectRole
    • serviceRequest: PwsSaveProjectRoleRq
      • RequestId: Int32
      • SessionTicket: String
      • BaseRatesOnTitleClearFlag: Boolean
      • CandidatesClearFlag: Boolean
      • CostCenterClearFlag: Boolean
      • CostCenterCriteriaClearFlag: Boolean
      • DescriptionClearFlag: Boolean
      • EngagementTimestamp: String **deprecated**
      • InitialAllocation: PwsProjectRoleHoursPattern
      • KeywordsClearFlag: Boolean
      • LocationClearFlag: Boolean
      • LocationCriteriaClearFlag: Boolean
      • Mode: String (1)
      • ProjectIdentity: PwsProjectRef
      • ProjectRole: PwsProjectRoleDetail
      • ResourceClearFlag: Boolean
      • RoleEndDateClearFlag: Boolean
      • RoleStartDateClearFlag: Boolean
      • ShareCostCenterClearFlag: Boolean
      • SkillCriteriaClearFlag: Boolean
      • StealLockFlag: Boolean **deprecated**
      • TitleClearFlag: Boolean
      • TitleCriteriaClearFlag: Boolean
      • RdcTransferHourlyRateClearFlag: Boolean
      • RevenueTransferHourlyRateClearFlag: Boolean
      • RateExceptionsClearFlag: Boolean
      • RdcExceptionsClearFlag: Boolean
      • ResourceTypeCriteriaClearFlag: Boolean
      • FullDetailFlag: Boolean
      • LocksToSteal: PwsEntityLockSummary[1.100]
      • MakeRoleNameUniqueFlag: Boolean
      • NameRoleFlag: Boolean
      • ProjectorLockSetId: Int32
      • ResourceTypeClearFlag: Boolean
      • ShareUserClearFlag: Boolean
      • WarnOnPermissionErrorFlag: Boolean
      • ExcludeReadNotesFlag: Boolean
      • PurchaseOrderNumberClearFlag: Boolean
      • ReplaceAllocatedCriteriaWithRequestedFlag: Boolean
      • RetrievalMode: String
      • RevalueAction: String
      • RoleTypeClearFlag: Boolean

Request Elements


Element

Data Type

Required?

Default

Description

Sample Data

RequestId

Int32

No


Click here for more information.


SessionTicket

String

Yes


Click here for more information.

Ae9v30fDNwFMx833f5Hesg==

BaseRatesOnTitleClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', existing base-rate-on-title setting will be cleared (rates will be based on resource's title).

false

CandidatesClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', existing named candidates will be cleared (candidate identities defined in PwsProjectRoleDetail are ignored).

false

CostCenterClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', preferred cost center for unnamed candidate is cleared (preferred cost center identity defined in PwsProjectRoleDetail is ignored).

false

CostCenterCriteriaClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', cost center criteria for unnamed candidate is cleared (cost center criteria defined in PwsProjectRoleDetail is ignored).

false

DescriptionClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', the existing description will be cleared.

false

EngagementTimestamp

String

**deprecated**




InitialAllocationPwsProjectRoleHoursPattern

On Insert: No

On Update: No


The allocation set up for the project role upon creation.

KeywordsClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', existing keywords for unnamed candidate is cleared.

false

LocationClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', preferred location for unnamed candidate is cleared. Please note, if System Settings' Scheduling is set to "Show Location Criteria", then this flag cannot be set to 'true' because location criteria is required.

false

LocationCriteriaClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', location criteria for unnamed candidate is cleared and location criteria (LocationIdentities) defined in PwsProjectRoleDetail is ignored; If set to 'false', location criteria (LocationIdentities) will be updated if provided in PwsProjectRoleDetail.

false

Mode

String (1)

On Insert: Yes

On Update: Yes


Determine whether specified criteria applies to booked or requested criteria settings.

A: booked data for roles

R: requested data for roles

A

ProjectIdentity

PwsProjectRef

On Insert: Yes

On Update: Yes


The identity of the project that contains the project role. Click here for more information.


ProjectRole

PwsProjectRoleDetail

On Insert: Yes

On Update: Yes


Structure that contains the complete information of the project role. Please click here for more information.. If it refers to an existing project role, this request updates this project role; otherwise, this request creates a new project role.


ResourceClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', existing named resource is cleared.

false

RoleEndDateClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', existing role end date is cleared.

false

RoleStartDateClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', existing role start date is cleared.

false

ShareCostCenterClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', role's shared cost center is cleared.

false

SkillCriteriaClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', skill criteria for unnamed candidate is cleared (skill criteria defined in PwsProjectRoleDetail is ignored).

false

StealLockFlag

Boolean

**deprecated**




TitleClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', preferred title for unnamed candidate is cleared.

false

TitleCriteriaClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', title criteria for unnamed candidate is cleared (title criteria (TitleIdentities) defined in PwsProjectRoleDetail is ignored).

false

RdcTransferHourlyRateClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', RDC transfer hourly rate is cleared (RdcTransferHourlyRate defined in PwsProjectRoleDetail is ignored).

false

RevenueTransferHourlyRateClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', revenue transfer hourly rate is cleared (RevenueTransferHourlyRate defined in PwsProjectRoleDetail is ignored).

false

RateExceptionsClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', overriding rate is cleared (RateExceptions defined in PwsProjectRoleDetail is ignored).

false

RdcExceptionsClearFlag

Boolean

On Insert: No

On Update: No

false

If set to 'true', overriding RDC rate is cleared (RdcExceptions defined in PwsProjectRoleDetail is ignored).

false

ResourceTypeCriteriaClearFlag

Boolean

On Insert: No

On Update: No

falseIf set to 'true', the resource type criteria will be cleared. Note this will not clear the preferred or allocated resource type. Empty resource type criteria means that any resource type is acceptable.
FullDetailFlagBoolean

On Insert: No

On Update: No

falseIf set to 'true', the complete project role element structure will be included in the response.
LocksToStealPwsEntityLockSummary[1.100]

On Insert: No

On Update: 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.
MakeRoleNameUniqueFlagBoolean

On Insert: No

On Update: No

falseIf set to 'true', and the specified role name is already in use, the service will append a number onto the end of the role name in order to make it unique. Otherwise, the service will fail if the specified role name is in use.
NameRoleFlagBoolean

On Insert: No

On Update: No

falseIf set to 'true', and no role name is specified, the service will use the resource display name to generate a role name if the role has assigned resource. Either role name or resource has to be specified. If set to 'false' (the default value), then a role name must be supplied.
ProjectorLockSetIdInt32

On Insert: No

On Update: No


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

On Insert: No

On Update: No

falseIf set to 'true', the preferred or allocated resource type is cleared.
ShareUserClearFlagBoolean

On Insert: No

On Update: No

falseIf set to 'true', the shared to user is cleared for the role.
WarnOnPermissionErrorFlagBoolean

On Insert: No

On Update: No

false

If set to 'true', request will result in warnings instead of errors if user has no permission (on insert only):

- Attempt to set sharing (by user or cost center) without permission to share scheduling.
- Attempt to set billing title override without permission to maintain rates
- Attempt to set revenue transfer hourly rate without permission to maintain rates
- Attempt to set RDC transfer hourly rate without permission to maintain rates
- Attempt to set rate or RDC exceptions without permission to maintain rates

false
ExcludeReadNotesFlagBoolean

On Insert: No

On Update: No

falseIf true, notes that have been marked as read by the current user are excluded from the data returned. Applies only when FullDetailFlag is true.
PurchaseOrderNumberClearFlagBoolean

On Insert: No

On Update: No

falseIf set to 'true', the purchase order number for the role is cleared.
ReplaceAllocatedCriteriaWithRequestedFlagBoolean

On Insert: No

On Update: No

falseWhen in scheduling mode (Mode = 'A') and updating an existing role that has incomplete booked criteria, if this flag is set, any existing booked criteria is overwritten with requested criteria. Note any criteria values specified in this request will overwrite what is copied from the requested criteria.
RetrievalModeString

On Insert: No

On Update: No


Required if FullDetailFlag is set, Designate whether assigned (A), requested (R) or effective (E) criteria is returned for the role.
RevalueActionString

On Insert: No

On Update: No

N

This indicates how the service should respond if there are time cards that would become in need of revalue as a result of the changes. The valid values are:

  • N (No Revalue): Time cards are left as is and the save is completed.
  • R (Revalue): Time cards that can be revalued are revalued and the save is completed.
  • C (Check): The save operation will only proceed if there are no time cards that would be in need of revalue. RevalueReport in the response will provide details about the affected time cards.

RoleTypeClearFlagBoolean

On Insert: No

On Update: No

falseIf set to 'true' the role type for the role will be cleared.


Request Usage Example(s)


Example 01 - create/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/" xmlns:com1="http://projectorpsa.com/CommonServices/">
   <soapenv:Header/>
   <soapenv:Body>
      <pws:PwsSaveProjectRole>
         <pws:serviceRequest>
            <req:SessionTicket>Ae9v30fDNwFMx833f5Hesg==</req:SessionTicket>
            <sch:CandidatesClearFlag>true</sch:CandidatesClearFlag>
            <sch:CostCenterCriteriaClearFlag>true</sch:CostCenterCriteriaClearFlag>
            <sch:LocationCriteriaClearFlag>true</sch:LocationCriteriaClearFlag>
            <sch:Mode>A</sch:Mode>
            <sch:ProjectIdentity>
               <com:ProjectCode>P001053-WS2</com:ProjectCode>
            </sch:ProjectIdentity>
            <sch:ProjectRole>
               <com:ExternalSystemIdentifier>Role 001</com:ExternalSystemIdentifier>
               <com:BaseRateOnTitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>Management</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Administrator</com:TitleName>
               </com:BaseRateOnTitleIdentity>
               <com:CandidateIdentities>
                  <com:PwsResourceRef>
                     <com:ResourceDisplayName>Max Yang</com:ResourceDisplayName>
                  </com:PwsResourceRef>
               </com:CandidateIdentities>
               <com:CostCenterAnyFlag>false</com:CostCenterAnyFlag>
               <com:CostCenterCriteria>
                  <com1:PwsCostCenterCriteria>
                     <com1:CascadeFlag>true</com1:CascadeFlag>
                     <com1:CostCenterIdentity>
                        <com:CostCenterName>RevCorp CH</com:CostCenterName>
                     </com1:CostCenterIdentity>
                  </com1:PwsCostCenterCriteria>
               </com:CostCenterCriteria>
               <com:CostCenterIdentity>
                  <com:CostCenterName>RevCorp CA</com:CostCenterName>
               </com:CostCenterIdentity>
               <com:DefaultSchedulingMode>W</com:DefaultSchedulingMode>
               <com:Description>Created from PwsSaveProjectRole #2</com:Description>
               <com:Keywords>Executive</com:Keywords>
               <com:LocationAnyFlag>true</com:LocationAnyFlag>
               <com:LocationIdentities>
                  <com:PwsLocationRef>
                     <com:LocationName>Boston</com:LocationName>
                  </com:PwsLocationRef>
               </com:LocationIdentities>
               <com:LocationIdentity>
                  <com:LocationName>Shanghai</com:LocationName>
               </com:LocationIdentity>
               <com:ResourceIdentity>
                  <com:ResourceDisplayName>Oscar Cox</com:ResourceDisplayName>
               </com:ResourceIdentity>
               <com:RoleName>Role WS-001</com:RoleName>
               <com:RoleStartDate>2018-01-01z</com:RoleStartDate>
               <com:ShareCostCenterIdentity>
               </com:ShareCostCenterIdentity>
               <com:SkillCriteria>
                  <com:PwsSkillCriteria>
                     <com:SkillIdentity>
                        <com:SkillGroupIdentity>
                           <com:SkillGroupName>Technology</com:SkillGroupName>
                        </com:SkillGroupIdentity>
                        <com:SkillName>HTML</com:SkillName>
                     </com:SkillIdentity>
                     <com:SkillLevelMask>3</com:SkillLevelMask>
                  </com:PwsSkillCriteria>
               </com:SkillCriteria>
               <com:TitleIdentities>
                  <com:PwsTitleRef>
                     <com:DepartmentIdentity>
                        <com:DepartmentName>Technology</com:DepartmentName>
                     </com:DepartmentIdentity>
                     <com:TitleName>Technical Consultant</com:TitleName>
                  </com:PwsTitleRef>
               </com:TitleIdentities>
               <com:TitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>Technology</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Technical Consultant</com:TitleName>
               </com:TitleIdentity>
               <com:RdcTransferCurrencyIdentity>
               </com:RdcTransferCurrencyIdentity>
               <com:RevenueTransferHourlyRate>12</com:RevenueTransferHourlyRate>
            </sch:ProjectRole>
            <sch:ShareCostCenterClearFlag>true</sch:ShareCostCenterClearFlag>
            <sch:SkillCriteriaClearFlag>true</sch:SkillCriteriaClearFlag>
            <sch:StealLockFlag>true</sch:StealLockFlag>
            <sch:TitleCriteriaClearFlag>true</sch:TitleCriteriaClearFlag>
            <sch:RdcTransferHourlyRateClearFlag>false</sch:RdcTransferHourlyRateClearFlag>
            <sch:RevenueTransferHourlyRateClearFlag>true</sch:RevenueTransferHourlyRateClearFlag>
         </pws:serviceRequest>
      </pws:PwsSaveProjectRole>
   </soapenv:Body>
</soapenv:Envelope>
Example 02
<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/" xmlns:com1="http://projectorpsa.com/CommonServices/">
   <soapenv:Header/>
   <soapenv:Body>
      <pws:PwsSaveProjectRole>
         <pws:serviceRequest>
            <req:SessionTicket>Af6PogAbIuL3jTtirBShRg==</req:SessionTicket>
            <sch:Mode>R</sch:Mode>
            <sch:ProjectIdentity>
               <com:ProjectCode>P001508-001</com:ProjectCode>
            </sch:ProjectIdentity>
            <sch:ProjectRole>
               <com:BaseRateOnTitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>IT Team</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Level 1</com:TitleName>
               </com:BaseRateOnTitleIdentity>
               <com:CostCenterAnyFlag>false</com:CostCenterAnyFlag>
               <com:CostCenterCriteria>
                  <com1:PwsCostCenterCriteria>
                     <com1:CascadeFlag>false</com1:CascadeFlag>
                     <com1:CostCenterIdentity>
                        <com:CostCenterName>IT Team (USA)</com:CostCenterName>
                     </com1:CostCenterIdentity>
                  </com1:PwsCostCenterCriteria>
               </com:CostCenterCriteria>
               <com:CostCenterIdentity>
                  <com:CostCenterNumber>IT Team (USA)</com:CostCenterNumber>
               </com:CostCenterIdentity>
               <com:LocationAnyFlag>false</com:LocationAnyFlag>
               <com:LocationIdentities>
                  <com:PwsLocationRef>
                     <com:LocationName>USA</com:LocationName>
                  </com:PwsLocationRef>
               </com:LocationIdentities>
               <com:LocationIdentity>
                  <com:LocationName>USA</com:LocationName>
               </com:LocationIdentity>
               <com:RoleName>Consultant</com:RoleName>
               <com:TitleIdentities>
                  <com:PwsTitleRef>
                     <com:DepartmentIdentity>
                        <com:DepartmentName>IT Team</com:DepartmentName>
                     </com:DepartmentIdentity>
                     <com:TitleName>Level 1</com:TitleName>
                  </com:PwsTitleRef>
               </com:TitleIdentities>
               <com:TitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>IT Team</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Level 1</com:TitleName>
               </com:TitleIdentity>
               <com:ResourceTypeAnyFlag>true</com:ResourceTypeAnyFlag>
            </sch:ProjectRole>
         </pws:serviceRequest>
      </pws:PwsSaveProjectRole>
   </soapenv:Body>
</soapenv:Envelope>
Example 03 with Initial Allocation
<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/" xmlns:com1="http://projectorpsa.com/CommonServices/">
   <soapenv:Header/>
   <soapenv:Body>
      <pws:PwsSaveProjectRole>
         <pws:serviceRequest>
            <req:SessionTicket>AaGStCnFFiJ1l+XNAlIgag==</req:SessionTicket>
            <!--sch:BaseRatesOnTitleClearFlag>false</sch:BaseRatesOnTitleClearFlag-->
            <sch:CandidatesClearFlag>true</sch:CandidatesClearFlag>
            <sch:CostCenterClearFlag>false</sch:CostCenterClearFlag>
            <sch:CostCenterCriteriaClearFlag>true</sch:CostCenterCriteriaClearFlag>
            <sch:DescriptionClearFlag>false</sch:DescriptionClearFlag>
            <sch:InitialAllocation>
               <!--Optional:-->
               <com:HoursAllocationPercentage>0.6</com:HoursAllocationPercentage>
               <!--Optional:-->
               <com:HoursBucketCount>5</com:HoursBucketCount>
               <!--Optional:-->
               <com:HoursSchedulingMode>W</com:HoursSchedulingMode>
               <!--Optional:-->
               <com:HoursStartDate>2019-02-01z</com:HoursStartDate>
               <!--Optional:-->
               <com:ConstraintType>N</com:ConstraintType>
               <!--Optional:-->
               <!--com:MinutesPerBucket>500</com:MinutesPerBucket-->
            </sch:InitialAllocation>            
            <sch:KeywordsClearFlag>false</sch:KeywordsClearFlag>
            <sch:LocationClearFlag>false</sch:LocationClearFlag>
            <sch:LocationCriteriaClearFlag>true</sch:LocationCriteriaClearFlag>
            <sch:Mode>A</sch:Mode>
            <sch:ProjectIdentity>
               <com:ProjectCode>P001053-WS2</com:ProjectCode>
            </sch:ProjectIdentity>
            <sch:ProjectRole>
                <com:BaseRateOnTitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>Management</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Administrator</com:TitleName>
               </com:BaseRateOnTitleIdentity>
               <com:CandidateIdentities>
                  <!--Zero or more repetitions:-->
                  <com:PwsResourceRef>
                     <com:ResourceDisplayName>Max Yang</com:ResourceDisplayName>
                  </com:PwsResourceRef>
               </com:CandidateIdentities>
               <com:CostCenterAnyFlag>false</com:CostCenterAnyFlag>
               <com:CostCenterCriteria>
                  <!--Zero or more repetitions:-->
                  <com1:PwsCostCenterCriteria>
                     <com1:CascadeFlag>true</com1:CascadeFlag>
                     <com1:CostCenterIdentity>
                        <com:CostCenterName>RevCorp CH</com:CostCenterName>
                     </com1:CostCenterIdentity>
                  </com1:PwsCostCenterCriteria>
               </com:CostCenterCriteria>
               <com:CostCenterIdentity>
                  <com:CostCenterName>RevCorp CA</com:CostCenterName>
               </com:CostCenterIdentity>
               <com:DefaultSchedulingMode>W</com:DefaultSchedulingMode>
               <com:Description>Created from PwsSaveProjectRole 1</com:Description>
               <com:Keywords>Executive</com:Keywords>
              <com:LocationIdentities>
                  <!--Zero or more repetitions:-->
                  <com:PwsLocationRef>
                     <com:LocationName>Boston</com:LocationName>
                  </com:PwsLocationRef>
               </com:LocationIdentities>
 			 <com:LocationIdentity>
                  <com:LocationName>Shanghai</com:LocationName>
               </com:LocationIdentity>
                <com:ResourceIdentity>
                  <!--Optional:-->
                  <com:ResourceDisplayName>Larry Krakauer</com:ResourceDisplayName>
               </com:ResourceIdentity>
               <com:RoleEndDate>2019-12-31z</com:RoleEndDate>
               <com:RoleName>Role #2</com:RoleName>
               <com:RoleStartDate>2019-01-01z</com:RoleStartDate>
               <com:ShareCostCenterIdentity>
                  <com:CostCenterName>RevCorp CH</com:CostCenterName>
               </com:ShareCostCenterIdentity>
               <com:SkillCriteria>
                  <!--Zero or more repetitions:-->
                  <com:PwsSkillCriteria>
                     <com:SkillIdentity>
                        <com:SkillGroupIdentity>
                           <com:SkillGroupName>Technology</com:SkillGroupName>
                        </com:SkillGroupIdentity>
                        <com:SkillName>HTML</com:SkillName>
                     </com:SkillIdentity>
                     <com:SkillLevelMask>3</com:SkillLevelMask>
                  </com:PwsSkillCriteria>
               </com:SkillCriteria>
               <com:TitleIdentities>
                  <!--Zero or more repetitions:-->
                  <com:PwsTitleRef>
                     <com:DepartmentIdentity>
                        <com:DepartmentName>Technology</com:DepartmentName>
                     </com:DepartmentIdentity>
                     <com:TitleName>Technical Consultant</com:TitleName>
                  </com:PwsTitleRef>
               </com:TitleIdentities>
               <com:TitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>Technology</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Technical Consultant</com:TitleName>
               </com:TitleIdentity>
               <com:RdcTransferCurrencyIdentity>
                  <!--com:CurrencyCode>USD</com:CurrencyCode-->
               </com:RdcTransferCurrencyIdentity>
               <!--com:RdcTransferHourlyRate>7</com:RdcTransferHourlyRate-->
               <com:RevenueTransferHourlyRate>14</com:RevenueTransferHourlyRate>
               <com:RdcExceptions>
                  <!--Zero or more repetitions:-->
                  <com:PwsProjectRoleRdcException>
                     <com:BeginDate>2019-02-01z</com:BeginDate>
                     <com:EndDate>2019-02-08z</com:EndDate>
                     <com:HourlyRate>11</com:HourlyRate>
                     <com:RdcCurrencyIdentity>
                        <com:CurrencyCode>USD</com:CurrencyCode>
                     </com:RdcCurrencyIdentity>
                  </com:PwsProjectRoleRdcException>
               </com:RdcExceptions>
            </sch:ProjectRole>
            <sch:ResourceClearFlag>false</sch:ResourceClearFlag>
            <sch:RoleEndDateClearFlag>true</sch:RoleEndDateClearFlag>
            <sch:RoleStartDateClearFlag>true</sch:RoleStartDateClearFlag>
            <sch:ShareCostCenterClearFlag>true</sch:ShareCostCenterClearFlag>
            <sch:SkillCriteriaClearFlag>true</sch:SkillCriteriaClearFlag>
            <sch:TitleClearFlag>true</sch:TitleClearFlag>
            <sch:TitleCriteriaClearFlag>true</sch:TitleCriteriaClearFlag>
            <sch:RdcTransferHourlyRateClearFlag>true</sch:RdcTransferHourlyRateClearFlag>
            <sch:RevenueTransferHourlyRateClearFlag>true</sch:RevenueTransferHourlyRateClearFlag>
            <sch:RateExceptionsClearFlag>true</sch:RateExceptionsClearFlag>
            <sch:RdcExceptionsClearFlag>true</sch:RdcExceptionsClearFlag>
         </pws:serviceRequest>
      </pws:PwsSaveProjectRole>
   </soapenv:Body>
</soapenv:Envelope>
Example 04 with unassigned/unnamed resource
<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/" xmlns:com1="http://projectorpsa.com/CommonServices/">
   <soapenv:Header/>
   <soapenv:Body>
      <pws:PwsSaveProjectRole>
         <pws:serviceRequest>
            <req:SessionTicket>AatU6Z3wNjEL/nIADBLl4w==</req:SessionTicket>
            <!--sch:BaseRatesOnTitleClearFlag>false</sch:BaseRatesOnTitleClearFlag-->
            <sch:CandidatesClearFlag>true</sch:CandidatesClearFlag>
            <sch:CostCenterClearFlag>false</sch:CostCenterClearFlag>
            <sch:CostCenterCriteriaClearFlag>true</sch:CostCenterCriteriaClearFlag>
            <sch:DescriptionClearFlag>false</sch:DescriptionClearFlag>
            <sch:InitialAllocation>
               <!--Optional:-->
               <com:HoursAllocationPercentage>0.6</com:HoursAllocationPercentage>
               <!--Optional:-->
               <com:HoursBucketCount>5</com:HoursBucketCount>
               <!--Optional:-->
               <com:HoursSchedulingMode>W</com:HoursSchedulingMode>
               <!--Optional:-->
               <com:HoursStartDate>2019-02-01z</com:HoursStartDate>
               <!--Optional:-->
               <com:ConstraintType>N</com:ConstraintType>
               <!--Optional:-->
               <!--com:MinutesPerBucket>500</com:MinutesPerBucket-->
            </sch:InitialAllocation>            
            <sch:KeywordsClearFlag>false</sch:KeywordsClearFlag>
            <sch:LocationClearFlag>false</sch:LocationClearFlag>
            <sch:LocationCriteriaClearFlag>true</sch:LocationCriteriaClearFlag>
            <sch:Mode>A</sch:Mode>
            <sch:ProjectIdentity>
               <com:ProjectCode>P001053-WS2</com:ProjectCode>
            </sch:ProjectIdentity>
            <sch:ProjectRole>
                <com:BaseRateOnTitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>Management</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Administrator</com:TitleName>
               </com:BaseRateOnTitleIdentity>
               <com:CandidateIdentities>
                  <!--Zero or more repetitions:-->
                  <com:PwsResourceRef>
                     <com:ResourceDisplayName>Max Yang</com:ResourceDisplayName>
                  </com:PwsResourceRef>
               </com:CandidateIdentities>
               <com:CostCenterAnyFlag>false</com:CostCenterAnyFlag>
               <com:CostCenterCriteria>
                  <!--Zero or more repetitions:-->
                  <com1:PwsCostCenterCriteria>
                     <com1:CascadeFlag>true</com1:CascadeFlag>
                     <com1:CostCenterIdentity>
                        <com:CostCenterName>RevCorp CH</com:CostCenterName>
                     </com1:CostCenterIdentity>
                  </com1:PwsCostCenterCriteria>
               </com:CostCenterCriteria>
               <com:CostCenterIdentity>
                  <com:CostCenterName>RevCorp CA</com:CostCenterName>
               </com:CostCenterIdentity>
               <com:DefaultSchedulingMode>W</com:DefaultSchedulingMode>
               <com:Description>Created from PwsSaveProjectRole 1</com:Description>
               <com:Keywords>Executive</com:Keywords>
              <com:LocationIdentities>
                  <!--Zero or more repetitions:-->
                  <com:PwsLocationRef>
                     <com:LocationName>Boston</com:LocationName>
                  </com:PwsLocationRef>
               </com:LocationIdentities>
 			 <com:LocationIdentity>
                  <com:LocationName>Shanghai</com:LocationName>
               </com:LocationIdentity>
                <com:ResourceIdentity>
                  <!--Optional:-->
                  <!--com:ResourceDisplayName>Larry Krakauer</com:ResourceDisplayName-->
               </com:ResourceIdentity>
               <com:RoleEndDate>2019-12-31z</com:RoleEndDate>
               <com:RoleName>Role #3</com:RoleName>
               <com:RoleStartDate>2019-01-01z</com:RoleStartDate>
               <com:ShareCostCenterIdentity>
                  <com:CostCenterName>RevCorp CH</com:CostCenterName>
               </com:ShareCostCenterIdentity>
               <com:SkillCriteria>
                  <!--Zero or more repetitions:-->
                  <com:PwsSkillCriteria>
                     <com:SkillIdentity>
                        <com:SkillGroupIdentity>
                           <com:SkillGroupName>Technology</com:SkillGroupName>
                        </com:SkillGroupIdentity>
                        <com:SkillName>HTML</com:SkillName>
                     </com:SkillIdentity>
                     <com:SkillLevelMask>3</com:SkillLevelMask>
                  </com:PwsSkillCriteria>
               </com:SkillCriteria>
               <com:TitleIdentities>
                  <!--Zero or more repetitions:-->
                  <com:PwsTitleRef>
                     <com:DepartmentIdentity>
                        <com:DepartmentName>Technology</com:DepartmentName>
                     </com:DepartmentIdentity>
                     <com:TitleName>Technical Consultant</com:TitleName>
                  </com:PwsTitleRef>
               </com:TitleIdentities>
               <com:TitleIdentity>
                  <com:DepartmentIdentity>
                     <com:DepartmentName>Technology</com:DepartmentName>
                  </com:DepartmentIdentity>
                  <com:TitleName>Technical Consultant</com:TitleName>
               </com:TitleIdentity>
               <com:RdcTransferCurrencyIdentity>
                  <!--com:CurrencyCode>USD</com:CurrencyCode-->
               </com:RdcTransferCurrencyIdentity>
               <!--com:RdcTransferHourlyRate>7</com:RdcTransferHourlyRate-->
               <com:RevenueTransferHourlyRate>14</com:RevenueTransferHourlyRate>
               <com:RdcExceptions>
                  <!--Zero or more repetitions:-->
                  <com:PwsProjectRoleRdcException>
                     <com:BeginDate>2019-02-01z</com:BeginDate>
                     <com:EndDate>2019-02-08z</com:EndDate>
                     <com:HourlyRate>11</com:HourlyRate>
                     <com:RdcCurrencyIdentity>
                        <com:CurrencyCode>USD</com:CurrencyCode>
                     </com:RdcCurrencyIdentity>
                  </com:PwsProjectRoleRdcException>
               </com:RdcExceptions>
            </sch:ProjectRole>
            <sch:ResourceClearFlag>false</sch:ResourceClearFlag>
            <sch:RoleEndDateClearFlag>true</sch:RoleEndDateClearFlag>
            <sch:RoleStartDateClearFlag>true</sch:RoleStartDateClearFlag>
            <sch:ShareCostCenterClearFlag>true</sch:ShareCostCenterClearFlag>
            <sch:SkillCriteriaClearFlag>true</sch:SkillCriteriaClearFlag>
            <sch:TitleClearFlag>false</sch:TitleClearFlag>
            <sch:TitleCriteriaClearFlag>true</sch:TitleCriteriaClearFlag>
            <sch:RdcTransferHourlyRateClearFlag>true</sch:RdcTransferHourlyRateClearFlag>
            <sch:RevenueTransferHourlyRateClearFlag>true</sch:RevenueTransferHourlyRateClearFlag>
            <sch:RateExceptionsClearFlag>true</sch:RateExceptionsClearFlag>
            <sch:RdcExceptionsClearFlag>true</sch:RdcExceptionsClearFlag>
            <sch:NameRoleFlag>false</sch:NameRoleFlag>
         </pws:serviceRequest>
      </pws:PwsSaveProjectRole>
   </soapenv:Body>
</soapenv:Envelope>

Response Format


PwsSaveProjectRole 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.

0

Status

RequestStatus

Click here for more information.

Ok

ServerTimestampUtc

DateTime

Click here for more information.

2018-02-14T15:34:53.8497124Z

ProjectRoleIdentity

PwsProjectRoleRef

The identity of the project role just created/updated. Click here for more information.


EngagementTimestamp

String

**deprecated**


LockStolenFromUserIdentity

PwsUserRef

**deprecated**


ProjectRolePwsProjectRoleElementThe full element structure for the role that was saved. This will be populated only if FullDetailFlag is set to 'true' in the request.
ProjectRoleTimestampStringThis 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.
StolenLocksPwsEntityLockSummaryThis 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.
ResourcePartiallyInactiveFlagBooleanIf an initial allocation is specified in the input, this will be true if the role is a named role, and the resource was inactive for at least one day during the period of time over which there are requested or booked minutes.
RevalueReportPwsRevalueReportInformation about time cards on the project role that were affected by the change. Populated only when RevalueAction is R (Revalue) or C (Check). If RevalueAction is R, the values included in this structure reflect what was done. If RevalueAction is C, the values reflect what would be done if the service were invoked again with RevalueAction set to R. 
TotalRequestedOrScheduledMinutesDoubleIf an initial allocation is specified in the input, this will be the total number of minutes that were requested or booked (depending on Mode) for the role.

Response Usage Example(s)


Example 01 - create/update
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <PwsSaveProjectRoleResponse xmlns="http://projectorpsa.com/PwsProjectorServices/">
         <PwsSaveProjectRoleResult 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/">2018-02-14T15:34:53.8497124Z</ServerTimestampUtc>
            <a:ProjectRoleIdentity xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/">
               <b:ExternalSystemIdentifier i:nil="true"/>
               <b:ProjectRoleId i:nil="true"/>
               <b:ProjectRoleUid>1152921504609589510</b:ProjectRoleUid>
            </a:ProjectRoleIdentity>
            <a:EngagementTimestamp>AAAAAA+d7G0=</a:EngagementTimestamp>
            <a:LockStolenFromUserIdentity i:nil="true" xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
         </PwsSaveProjectRoleResult>
      </PwsSaveProjectRoleResponse>
   </s:Body>
</s:Envelope>


PwsSaveProjectRole - Common Errors and Warnings

ErrorNumberErrorCodeErrorText
14009RoleResourceMayNotBeSpecifiedWhenClearFlagSetResource may not be specified when resouce clear flag is set.
14010RoleCostCenterMayNotBeSpecifiedWhenClearFlagSetCost center may not be specified when cost center clear flag is set.
14011RoleLocationMayNotBeSpecifiedWhenClearFlagSetLocation may not be specified when location clear flag is set.
14012RoleTitleMayNotBeSpecifiedWhenClearFlagSetTitle may not be specified when title clear flag is set.
14013RoleKeywordsMayNotBeSpecifiedWhenClearFlagSetKeywords may not be specified when keywords clear flag is set.
14014ShareCostCenterMayNotBeSpecifiedWhenClearFlagSetShare cost center may not be specified when share cost center clear flag is set.
14015BaseRatesOnTitleMayNotBeSpecifiedWhenClearFlagSetBase rates on title may not be specified when base rates on title clear flag is set.
14016RoleStartDateMayNotBeSpecifiedWhenClearFlagSetRole start date may not be specified when role start date clear flag is set.
14017RoleEndDateMayNotBeSpecifiedWhenClearFlagSetRole end date may not be specified when role end date clear flag is set.
14018RoleDescriptionMayNotBeSpecifiedWhenClearFlagSetRole description may not be set when role description clear flag is set.
14025RdcTransferRateIncompleteRDC transfer hourly rate specified without RDC transfer currency, or vice versa.
50021RefStructureMismatchResource (PwsResourceRef) contains mismatched elements.
50024EntityNotFoundEntity PwsProjectRef was not found.
54199RdcTransferDataIncompleteRDC transfer hourly rate specified without RDC transfer currency, or vice versa.
54204NoPermissionToChangeRdcTransferRateYou do not have permission to change the RDC transfer rate.
54583InvalidValueForModeThe value specified for mode is invalid. Valid values are R for Request, A for Allocate and E for Effective (for retrieval operations only).
54733NoPermissionToCreateBookedRoleYou do not have appropriate permission to create this booked role.
54738ShareCostCenterInactiveThe specified share cost center is inactive.
54740InvalidResourceOrCriteriaOnInsertEither a resource or a valid set of criteria are required to create a role.
54741RoleNameNotSpecifiedRole name is required for new roles.
54743RoleNameAlreadyInUseSpecified role name is already in use.
54750CannotUpdateDeletedProjectRoleThis project role is deleted and cannot be updated.
54753CannotMoveRoleToDifferentProjectExisting roles may not be moved to a different project.
54776MissingPreferredAllocatedCostCenterMissing preferred or allocated cost center.
54777MissingPreferredAllocatedLocationMissing preferred or allocated location.
54875MissingValueForCostCenterOrLocationAnyFlagsResource type, cost center and location any flags are required for new roles.
55003NoPermissionToChangeRatesOrRdcExceptionsYou do not have permission to change rates or RDC exceptions.
55227ShareInfoIgnoredNoPermissionWARNING: You do not have permission to share scheduling. Specified share information was ignored
55228TitleOverideIgnoredNoPermissionWARNING: You do not have permission to set billing title override. Specified override was ignored
55229RevenueTransferRateIgnoredNoPermissionWARNING: You do not have permission to set revenue transfer hourly rate. Specified rate was ignored
55230RdcTransferRateIgnoredNoPermissionWARNING: You do not have permission to set RDC transfer hourly rate. Specified rate was ignored
57535TitleNotFoundThe specified title does not exist.