PwsApplyRevRecAdjustment

Overview


This web service applies a revenue recognition adjustment to a specified contract line item (PwsContractLineItemRef).


When Revenue Recognition Method is Percent Complete:

  • CutoffDate can be any date, or unspecified to undo all revenue recognition.
  • BeginDate is optional.  If specified, may not be later than CutoffDate.  If CutoffDate is unspecified, BeginDate must be unspecified.
  • Exactly one of FractionComplete or TotalRevenueRecognized or IntervalRevenueRecognized or IncludeRequestsFlag must be specified.  When amounts are specified (Total or Interval), EnagementCurrencyIdentity must also be specified.

When Revenue Recognition Method is Revenue Schedule:

  • CutoffDate has to be a revenue schedule bucket end date.  Can only be unspecified if BeginDate is also unspecified.
  • BeginDate, if specified, must match that bucket's start date.
  • If CutoffDate and BeginDate are both unspecified, the service will undo all revenue recognition.
  • CutoffDate may be the next bucket after the last one recognized, or may be any earlier bucket.  It may NOT go multiple buckets forward in one go.
  • Each bucket being recognized is considered 100% complete, and adjustments apply to cards in that bucket only.
  • FractionComplete and IncludeRequestsFlag may not be specified.
  • TotalRevenueRecognized, if specified, must match the total scheduled revenue of all buckets to date.
  • IntervalRevenueRecognized, if specified, must match the scheduled revenue of the bucket being recognized.

Request Format


PwsApplyRevRecAdjustment Request
  • PwsApplyRevRecAdjustment
    • serviceRequest: PwsApplyRevRecAdjustmentRq
      • RequestId: Int32
      • SessionTicket: String
      • BeginDate: DateTime
      • ContractLineItemIdentity: PwsContractLineItemRef
      • CutoffDate: DateTime
      • EngagementCurrencyIdentity: PwsCurrencyRef
      • EngagementTimestamp: String **deprecated**
      • FractionComplete: Double
      • IncludeRequestsFlag: Boolean
      • Notes: String (1000)
      • StealLockFlag: Boolean **deprecated**
      • TotalRevenueRecognized: Double
      • IntervalRevenueRecognized: Double
      • ContractLineItemTimestamp: String
      • LocksToSteal: PwsEntityLockSummary[1.100]

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.

Af2v8Ie/yFiUtqHqc3felw==

BeginDate

DateTime

No

Start Date of the associated engagement

The begin date for your revenue recognition period. If you choose a specific start date, then all recognized revenue on time cards BEFORE that date is left alone and is considered sacrosanct. All time cards after and up to the end date will have their recognized revenue recalculated.


ContractLineItemIdentity

PwsContractLineItemRef

Yes 


The identity of the contract line item to make the revenue recognition adjustment for.


CutoffDate

DateTime

Yes


The cut off date or end date for your revenue recognition period. If you have run revenue recognition previously, and there is revenue sitting on time cards AFTER this date, that revenue will be zeroed out.

2017-07-03T00:00:00.000Z

EngagementCurrencyIdentity

PwsCurrencyRef

Yes (if TotalRevenueRecognized is specified)


This identifies the currency for the engagement the contract line item is associated with.


EngagementTimestamp

String

 **deprecated**




FractionComplete

Double

One of FractionComplete, IncludeRequestsFlag, TotalRevenueRecognized or IntervalRevenueRecognized is required


The fractional amount of total revenue that should be recognized for the date range provided.

.30

IncludeRequestsFlag

Boolean

See FractionComplete

 false

If set to 'true', the basis units the revenue will be recognized against will include requested hours.


Notes

String (1000)

No 


Notes that are stored with the revenue recognition record.

Recognizing 30%

StealLockFlag

Boolean

 **deprecated**



true

TotalRevenueRecognized

Double

See FractionComplete 


Revenue you want to be recognized from beginning of time through the cutoff date


IntervalRevenueRecognized

Double

See FractionComplete - this is only applicable for contract line items with a revenue schedule


Represents the revenue you want to be recognized from the specified begin date through the cutoff date. (if you leave out the begin date, this acts identical to the TotalRevenueRecognized)


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

Request Usage Example(s)


Example 01 - non-revenue schedule
<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:PwsApplyRevRecAdjustment>
         <pws:serviceRequest>
            <req:RequestId>1</req:RequestId>
            <req:SessionTicket>Af2v8Ie/yFiUtqHqc3felw==</req:SessionTicket>
            <sch:ContractLineItemIdentity>
               <com:ContractLineItemCode>P001243-CL2</com:ContractLineItemCode>
            </sch:ContractLineItemIdentity>
            <sch:CutoffDate>2017-07-03T00:00:00.000Z</sch:CutoffDate>
            <sch:EngagementCurrencyIdentity>
               <com:CurrencyCode>USD</com:CurrencyCode>
            </sch:EngagementCurrencyIdentity>
            <sch:FractionComplete>.30</sch:FractionComplete>
            <sch:Notes>Recognizing 30%</sch:Notes>
            <sch:StealLockFlag>true</sch:StealLockFlag>
         </pws:serviceRequest>
      </pws:PwsApplyRevRecAdjustment>
   </soapenv:Body>
</soapenv:Envelope>
Example 02 - revenue schedule
<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:PwsApplyRevRecAdjustment>
         <pws:serviceRequest>
            <req:RequestId>1</req:RequestId>
            <req:SessionTicket>Af2v8Ie/yFiUtqHqc3felw==</req:SessionTicket>
            <sch:BeginDate>2017-12-01T00:00:00.000Z</sch:BeginDate>
            <sch:ContractLineItemIdentity>
               <com:ContractLineItemCode>P001386-CL1</com:ContractLineItemCode>
            </sch:ContractLineItemIdentity>
            <sch:CutoffDate>2017-12-31T00:00:00.000Z</sch:CutoffDate>
            <sch:EngagementCurrencyIdentity>
               <com:CurrencyCode>USD</com:CurrencyCode>
            </sch:EngagementCurrencyIdentity>
            <sch:Notes>Revenue Recognition Adjustment</sch:Notes>
            <sch:StealLockFlag>true</sch:StealLockFlag>
            <sch:IntervalRevenueRecognized>5000</sch:IntervalRevenueRecognized>
         </pws:serviceRequest>
      </pws:PwsApplyRevRecAdjustment>
   </soapenv:Body>
</soapenv:Envelope>

Response Format


PwsApplyRevRecAdjustment 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-02-02T16:30:03.8860867Z

EngagementTimestamp

String

**deprecated**


LockStolenFromUserIdentity

PwsUserRef

**deprecated**


ConfirmationCodeStringThe revenue recognition confirmation code.2305873009212693953.20180202163003
ContractLineItemTimestampStringThis 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=
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.
TransactionTimestampDateTimeThe date and time (in UTC) that the revenue recognition operation was performed.2018-02-02T16:30:03.8860867Z

Response Usage Example(s)


Example 01
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <PwsApplyRevRecAdjustmentResponse xmlns="http://projectorpsa.com/PwsProjectorServices/">
         <PwsApplyRevRecAdjustmentResult 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/">1</ResponseId>
            <Status xmlns="http://projectorpsa.com/CommonServices/">Ok</Status>
            <ServerTimestampUtc xmlns="http://projectorpsa.com/CommonServices/">2018-02-02T16:30:03.8860867Z</ServerTimestampUtc>
            <a:EngagementTimestamp>AAAAAA61fBk=</a:EngagementTimestamp>
            <a:LockStolenFromUserIdentity i:nil="true" xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
            <a:ContractLineItemTimestamp>AAAAAA62D3k=</a:ContractLineItemTimestamp>
            <a:StolenLocks xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
            <a:ConfirmationCode>2305873009212693953.20180202163003</a:ConfirmationCode>
            <a:TransactionTimestamp>2018-02-02T16:30:03.8860867Z</a:TransactionTimestamp>
          </PwsApplyRevRecAdjustmentResult>
      </PwsApplyRevRecAdjustmentResponse>
   </s:Body>
</s:Envelope>


PwsApplyRevRecAdjustment - Common Errors and Warnings


ErrorNumber

ErrorCode

ErrorText

29000NoContractLineItemSpecifiedForRevRecNo Contract Line Item specified on which to apply Revenue Recognition Adjustment.
29001InvalidValueForRevRecCutoffDateInvalid value for Revenue Recognition Adjustment Cutoff Date.
29002InvalidValueForRevRecBeginDateInvalid value for Revenue Recognition Adjustment Begin Date.
29003RevRecFractionCompleteOutOfRangeRevenue Recognition Adjustment Fraction Complete out of range.
29004RevRecTotalRevenueRecognizedOutOfRangeRevenue Recognition Adjustment Total Revenue Recognized out of range.
29005RevRecNotesTruncatedRevenue Recognition Adjustment Notes truncated.
29006 InvalidRevRecDateCombinationSpecifiedIllegal combination of Revenue Recognition Adjustment Dates specified.
29007SpecifyNoMoreThanOneRevRecAxisMay specify at most one of Fraction Complete, Include Requests Flag, and Total Revenue Recognized on Revenue Recognition Adjustment.
29008MustSpecifyRevRecCurrencyIfSpecifyingAmountWhen specifying Total Revenue Recognized on Revenue Recognition Adjustment, must also specify Currency.
29009RevRecIntervalRevenueRecognizedOutOfRangeRevenue Recognition Adjustment Interval Revenue Recognized out of range.
50469EntityAlreadyLockedOne or more existing locks prevent acquisition of requested lock.
55016CutoffDateMustBeEligibleBucketDateFor revenue schedules, begin date and cutoff date must identify an eligible bucket.
55019SpecifiedCurrencyMustMatchEngagementCurrencyThe specified currency does not match the engagement's currency.
55022RevenueToRecognizeMayNotDifferFromScheduledRevenueFor revenue schedules, revenue to recognize cannot differ from the scheduled revenue amount.
55023NoBasisUnitsAfterCutoffDateUponWhichToAllocateRevenueThere is revenue remaining, but there are no basis units after the cutoff date to which revenue can be allocated.
55024NoAppropriateTimeCardsToReceiveProposedAdjustmentThere are no appropriate time cards to receive the proposed revenue recognition adjustment.
55025NoBasisUnitsUponWhichToAllocateRevenueThere are no basis units upon which to allocate revenue.
55204RevRecTimeAndMaterialsWithoutAmountRevenue recognition for time and materials time contract terms must be based on recognizing a specific revenue amount.
70101RevRecWithEmptyCliA contract line item must have a project beneath it in order to perform revenue recognition.
70118RevRecCutoffClosedForAdjThe revenue recognition cutoff date is in a period that is not open for adjustments.