PwsSaveEngagement
Overview
This web service inserts or updates a single engagement based on a detailed engagement structure (PwsEngagementDetail). The service returns the identity (PwsEngagementRef) of the engagement that has been inserted or updated. The caller can optionally request that the full engagement detail (PwsEngagementElement) be included in the response. Please note, upon creation of a new engagement, certain attributes may be derived from engagement type defaults. Additionally, if a non-billable engagement is created, the specified culture and currency will be ignored. Rather, the currency is derived from the engagement's company's currency, and the culture is derived from the currency's default culture.
Request Format
- PwsSaveEngagement
- serviceRequest: PwsSaveEngagementRq
- RequestId: Int32
- SessionTicket: String (50)
- Engagement: PwsEngagementDetail
- FullDetailFlag: Boolean
- StealLockFlag: Boolean **deprecated**
- UseEtEngagementProjectDefaultsFlag: Boolean
- UseEtProjectWorkspaceDefaultsFlag: Boolean
- EngagementTimestamp: String
- SuppressCliCreationOnInsertFlag: Boolean
- ForceCostCenterChangeFlag: Boolean
- LocksToSteal: PwsEntityLockSummary[1.100]
- ProjectorLockSetId: Int32
- CostBudgetMetricValueClearFlag: Boolean
- ForceCostCenterChangeFlag: Boolean
- RevalueAction: String
- TimeBudgetMetricValueClearFlag: Boolean
- ManagementTeamClearFlag: Boolean
- serviceRequest: PwsSaveEngagementRq
Request Elements
Element | Data Type | Required? | Default | Description | Sample Data |
---|---|---|---|---|---|
Int32 | No | Click here for more information. | 1 | ||
String (50) | Yes | Click here for more information. | AUcfZP60RNdWSqGygrg5fw== | ||
Engagement | Yes | Engagement detail element containing identity of engagement and data to be saved about the engagement. | |||
FullDetailFlag | Boolean | No | false | If set to 'true', the full detailed engagement element will be included in the response. | true |
StealLockFlag | Boolean | **deprecated** | |||
UseEtEngagementProjectDefaultsFlag | Boolean | No | false | If set to 'true', and the engagement type is updated, the engagement type defaults for the engagement and the underlying projects (except project workspace defaults) will override existing settings (and any settings explicitly specified here for engagement attributes with defaults at the engagement type level). | true |
UseEtProjectWorkspaceDefaultsFlag | Boolean | No | false | If set to 'true', and engagement type is being changed, the engagement type defaults for the project workspace settings for underlying projects will override existing settings. | true |
EngagementTimestamp | String | No | This is a Base64 encoded timestamp utilized for engagement locking. To protect against overwriting other changes, you may optionally echo back the timestamp returned by a call to PwsGetEngagement (or a prior call to PwsSaveEngagement). This will cause the request to fail if any change has been made between invocations of PwsGetEngagement and PwsSaveEngagement. | ||
SuppressCliCreationOnInsertFlag | Boolean | No | false | If set to 'true', a contract line item will not be created upon creation of a new engagement. | true |
ForceCostCenterChangeFlag | Boolean | No | false | If set to 'true', the engagement cost center can be changed, even if there is accounting data | true |
LocksToSteal | PwsEntityLockSummary[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. | ||
ProjectorLockSetId | Int32 | No | A projector lock set id is an identifier for a group of one or more locks held as a unit. | ||
CostBudgetMetricValueClearFlag | Boolean | No | false | If set to "true", clear the non-primary cost budget metrics of the Cost Budget | |
ForceCostCenterChangeFlag | Boolean | No | false | If this flag is 'false', an error will be returned if you attempt to change cost center associated with the engagement. | |
RevalueAction | String | 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:
| |
TimeBudgetMetricValueClearFlag | Boolean | No | false | If set to "true", clear the non-primary time budget metrics of the Time Budget | |
ManagementTeamClearFlag | Boolean | No | false | If set to "true", clear the non-EM members of the engagement management team. |
Request Usage Example(s)
Response Format
- PwsSaveEngagementResponse
- PwsSaveEngagementResult: PwsSaveEngagementRs
- Messages: PwsMessage[]
- ResponseId: Int32
- Status: RequestStatus
- ServerTimestampUtc: DateTime
- Engagement: PwsEngagementElement
- EngagementIdentity: PwsEngagementRef
- EngagementTimestamp: String
- LockStolenFromUserIdentity: PwsUserRef **deprecated**
- StolenLocks: PwsEntityLockSummary
- RevalueReport: PwsRevalueReport
- PwsSaveEngagementResult: PwsSaveEngagementRs
Response Elements
Element | Data Type | Description | Sample Data |
---|---|---|---|
Messages | The web service response status and message. Click here for more information. | ||
Int32 | Click here for more information. | 1 | |
Status | Click here for more information. | Ok | |
DateTime | Click here for more information. | 2018-01-18T17:08:48.5836504Z | |
Engagement | The complete set of information about the engagement. | ||
EngagementIdentity | The unique keys used to identify the engagement. | ||
EngagementTimestamp | String | This is a Base64 encoded timestamp utilized for engagement locking. See Request Elements above for more details. | AAAAAA98Yvs= |
LockStolenFromUserIdentity | **deprecated** | ||
StolenLocks | PwsEntityLockSummary | 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. | |
RevalueReport | PwsRevalueReport | This data structure is included in the response for PwsSaveProject, PwsSaveProjectTaskTypes, and PwsSaveProjectRole. It is populated if RevalueAction is R (revalue cards) or C (check only). It includes summary financial information about the time cards on the project or project role that were effected (RevalueAction = R) or would have been effected (RevalueAction = C) by the change to the project or role. |
Response Usage Example(s)
PwsSaveEngagement - Common Errors and Warnings
- For all errors and warnings please refer to the Complete List of Errors and Warnings
ErrorNumber | ErrorCode | ErrorText |
---|---|---|
109 | AddressAttentionTruncated | Address attention exceeded maximum length (50) and was truncated |
113 | AddressCityTruncated | Address city exceeded maximum length (20) and was truncated |
110 | AddressCompanyNameTruncated | Address company name exceeded maximum length (50) and was truncated |
116 | AddressCountryTruncated | Address country exceeded maximum length (20) and was truncated |
111 | AddressLine1Truncated | Address line 1 exceeded maximum length (50) and was truncated |
112 | AddressLine2Truncated | Address line 2 exceeded maximum length (50) and was truncated |
114 | AddressStateOrProvinceTruncated | Address state or province exceeded maximum length (20) and was truncated |
115 | AddressZipOrPostalCodeTruncated | Address zip or postal code exceeded maximum length (20) and was truncated |
62437 | AttemptToDeleteRequiredUdf | An attempt was mode to delete a required UDF value |
54640 | BilledAmountExceedsContractAmount | The total amount billed to date exceeds the current contract amount |
12019 | BillingAdjustedRevenueMayNotBeSpecified | Billing adjusted revenue time budget amount specified when time budget metric is not B |
12020 | BillingAdjustedRevenueOutOfRange | Billing adjusted revenue time budget amount out of range |
57659 | BillingCycleNotFound | Specified billing cycle not found or inactive |
117 | BillingInstructionsTruncated | Specified billing instructions exceeded maximum length (1000) and was truncated |
12027 | ClientAmountMayNotBeSpecified | Client amount cost budget amount specified when cost budget metric is not C |
12028 | ClientAmountOutOfRange | Client amount cost budget amount out of range |
118 | ClientMessageTruncated | Specified client message exceeded maximum length (4000) and was truncated |
57629 | ClientNotFound | Specified client not found or inactive |
57631 | ClientNotSpecified | Client required for new engagements |
12021 | ContractRevenueMayNotBeSpecified | Contact revenue time budget amount specified when time budget metric is not C |
12022 | ContractRevenueOutOfRange | Contact revenue time budget amount out of range |
54611 | CostCenterCannotBeChangedDueToActivity | Cost center cannot be changed because there has been invoicing or accounting activity |
54610 | CostCenterNotEnabledForEngagements | Specified cost center not enabled for engagements |
57525 | CostCenterNotFound | Specified cost center not found |
57524 | CostCenterNotSpecified | Cost center required for new engagements |
12016 | CostContractAmountsCannotBeSpecified | Minimum and maximum cost contract amounts may not be specified when CostContractTerms is null |
54602 | CreateEngagementPermissionDenied | Permission denied to create engagement |
57531 | CultureCurrencyIncompatibility | Specified billing culture not compatible with engagement currency |
57527 | CultureNotFound | Specified billing culture not found |
57528 | CultureNotValidForAccount | Account is not configured to use specified culture |
57526 | CultureOrCurrencyNotSpecified | Billing culture required for new engagements |
57529 | CurrencyNotFound | Specified engagement currency not found |
57530 | CurrencyNotValidForAccount | Account is not configured to use specified currency |
12029 | DisbursedAmountMayNotBeSpecified | Disbursed amount cost budget amount specified when cost budget metric is not D |
12030 | DisbursedAmountOutOfRange | Disbursed amount cost budget amount out of range |
54617 | EngagementBillabilityCannotBeChanged | Engagement cannot be changed from billable to non-billable or vice versa |
54636 | EngagementClientIsInactive | Specified client is inactive |
54603 | EngagementCodeAlreadyInuse | Engagement code already in use |
54606 | EngagementCodeMayNotBeSpecifiedForNewEngagements | Specified engagement not found or engagement code may not be specified because account is configured to use automatic engagement numbering |
54605 | EngagementCodeRequiredForNewEngagements | Engagement code is required for new engagements because account is configured to use manual engagement numbering |
120 | EngagementCodeTruncated | Specified engagement code exceeded maximum length (20) and was truncated |
54613 | EngagementCurrencyCannotBeChanged | Engagement currency cannot be changed |
54614 | EngagementCurrencyNotFound | Specified engagement currency not found or inactive |
54616 | EngagementInvoiceTemplateIsInactive | Specified invoice template is inactive |
54076 | EngagementIsLocked | Engagement is locked by another user (identity of user is returned in SOAP fault) |
54635 | EngagementManagerIsInactive | Specified engagement manager is inactive |
54604 | EngagementNameRequiredForNewEngagements | Engagement name required for new engagements |
121 | EngagementNameTruncated | Specified engagement name exceeded maximum length (255) and was truncated |
54061 | EngagementNotFound | Specified engagement not found |
54059 | EngagementNotSpecified | Engagement not specified in service invocation |
54615 | EngagementPaymentTermIsInactive | Specified payment term is inactive |
57537 | EngagementStageNotFound | Specified engagement stage not found |
57536 | EngagementStageNotSpecified | Engagement stage required for new engagements |
54612 | EngagementTypeNotFound | Specified engagement type not found or inactive |
57538 | EngagementTypeNotSpecified | Engagement type required for new engagements |
12031 | ExpenseAmountMayNotBeSpecified | Expense amount cost budget amount specified when cost budget metric is not E |
12032 | ExpenseAmountOutOfRange | Expense amount cost budget amount out of range |
54625 | HolbackAmountCannotBeSpecifiedForFpEngagement | Holdback cannot be specified for fixed price engagements |
12035 | HoldbackAmountCannotBeSpecified | Holdback amount specified when holdback type is N or P |
54608 | HoldbackAmountMissingOrInvalid | Holdback amount required for holdback type A and must be between 0 and the time contract amount |
12040 | HoldbackAmountOutOfRange | Holdback amount out of range |
54624 | HoldbackAmountsCleared | Holdback amount was cleared because contract terms were changed from fixed price. |
12036 | HoldbackPercentCannotBeSpecified | Holdback percent specified when holdback type is N or A |
54607 | HoldbackPercentMissingOrInvalid | Holdback percent required for holdback type P and must be between 0% and 100% |
12039 | HoldbackPercentOutOfRange | Holdback percent out of range |
50038 | InactiveResourceForResourceValuedUdf | An inactive resource was specified for a resource-valued UDF |
55138 | IncompleteContractTypeAttributes | When creating a contract line item with a custom contract type, all contract type attributes must be specified. |
54620 | InvalidFixedPriceContractAmounts | Minimum and maximum time contract amount must be specified and equal for fixed price engagements |
54621 | InvalidNotToExceedContractAmounts | Minimum time contract amount may not be specified for NTE engagements and maximum contract amount must be specified and non-negative |
54622 | InvalidTimeAndMaterialsContractAmounts | Neither minimum nor maximum time contract amount may be specified for T&M engagements |
10102 | InvalidTimestamp | Given timestamp is of invalid format |
62436 | InvalidUdfValue | Invalid value specified for text list UDF |
12004 | InvalidValueForCostAlertsBasisType | Invalid value for cost alerts basis type |
12018 | InvalidValueForCostBudgetMetric | Invalid value for cost budget metric |
12011 | InvalidValueForCostContractTerms | Invalid cost contract terms |
54609 | InvalidValueForHoldbackType | Invalid value for holdback type |
11032 | InvalidValueForInvoiceContent | Invalid value for invoice content |
11029 | InvalidValueForInvoiceScope | Invalid value for invoice scope |
12045 | InvalidValueForRevenueEarnedByDate | The specified revenue earned by date is invalid (it must be as of midnight UTC on the given date). |
12033 | InvalidValueForRevenueRecognitionMethod | Invalid value for revenue recognition method |
12003 | InvalidValueForTimeAlertsBasisType | Invalid value for time alerts basis type |
11026 | InvalidValueForTimeBillingType | Invalid value for time billing type |
12017 | InvalidValueForTimeBudgetMetric | Invalid value for time budget metric |
12005 | InvalidValueForTimeContractTerms | Invalid time contract terms |
10500 | InvalidValueForUdfDateValue | A date-valued UDF specified an invalid value (the specified datetime must be as of midnight UTC on the given date) |
54781 | InvoiceContentRequiredForEngagement | Invoice content must be specified when InheritInvoiceContentFlag is being cleared. |
54780 | InvoiceScopeRequiredForEngagement | Invoice scope must be specified when InheritInvoiceScopeFlag is being cleared. |
50007 | ItemHasBeenUpdated | Engagement has been updated |
12009 | MaxTimeContractAmountRequiredForNte | Maximum time contract amount must be specified for NTE engagements |
54618 | NewCostCenterHasDifferentFunctionalCurrency | Cost center cannot be changed to a cost center with a different functional currency |
54628 | NoPermissionToChangeCostCenter | No permission to change engagement cost center |
54629 | NoPermissionToChangeEngagementType | No permission to change engagement stage |
54630 | NoPermissionToUpdateBillingInformation | No permission to update billing information |
54631 | NoPermissionToUpdateContractTerms | No permission to update contract terms |
54633 | NoPermissionToUpdateEngagement | No permission to update engagement |
54632 | NoPermissionToUpdateEngagementBudgets | No permission to update engagement budgets |
54637 | OnlyPercentCompleteMethodIsSupported | Currently, only the percent complete revenue recognition method is supported |
119 | PurchaseOrderNumberTruncated | Specified purchase order number exceeded maximum length (50) and was truncated |
12023 | ResourceDirectCostMayNotBeSpecified | Resource direct cost time budget amount specified when time budget metric is not R |
12024 | ResourceDirectCostOutOfRange | Resource direct cost time budget amount out of range |
54638 | RevenueEarnedByDateMayNotBeSpecified | Revenue earned by date may not be specified when revenue recognition method is not P |
54639 | RevenueEarnedByDateOutOfRange | Revenue earned by date may not be prior to last revenue recognition cutoff date |
54763 | TimeBillingTypeRequiredForEngagement | Time billing type must be specified when InheritTimeBillingTypeFlag is being cleared. |
12010 | TimeContractAmountsCannotBeSpecified | Minimum and maximum time contract amounts may not be specified when TimeContractTerms is null |
54619 | TimeContractTermsCannotBeChanged | Time contract terms cannot be changed because there are approved time cards. |
50142 | UdfNotFound | Specified UDF does not exist |
50039 | UdfRefRequired | A UDF record was supplied with an incomplete UDF identity |
62438 | UdfValueUnexpected | An unexpected non-null value was specified for a UDF (e.g. specifying IntegerValue for a string-valued UDF |
54601 | UnexpectedErrorSavingEngagement | Unexpected error saving engagement |
50046 | UpdatePermissionDenied | Permission denied |
57551 | UserNotFound | Specified engagement manager not found |
57550 | UserNotSpecified | Engagement manager required for new engagements |
12025 | WorkMinutesMayNotBeSpecified | Work minutes time budget amount specified when time budget metric is not H |
12026 | WorkMinutesOutOfRange | Work minutes time budget amount out of range |