Versions Compared

Key

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

...

This structure contains the complete set of information about a Contract Line Itemcontract line item. The structure is used both to retrieve detailed contract line item information and to pass information about a contract line item back to the server to get updated.

...

Panel
titlePwsContractLineItemDetail
  • PwsContractLineItemDetail
  • ContractLineItemName: String
  • EngagementCode: String
  • EngagementId: Int32
  • EngagementUid: Int64
  • EngagementIdentity: PwsEngagementRef
  • CostContractTerms: String
  • DeferredRevenueOpeningBalanceEngCurrency: Double
  • DeferredRevenueOpeningBalanceEngGLCurrency: Double
  • HoldbackAmount: Double
  • HoldbackPercent: Double
  • HoldbackType: String
  • MaxCostContractAmount: Double
  • MaxTimeContractAmount: Double
  • MinCostContractAmount: Double
  • MinTimeContractAmount: Double
  • RevenueEarnedByDate: DateTime
  • RevenueRecognitionMethod: String
  • RevenueSchedule: PwsRevenueScheduleItem
  • TimeContractTerms: String
  • ContractTypeIdentity: PwsContractTypeRef
  • InheritPurchaseOrderNumberFlag: Boolean
  • ModelContractedHoursAndOveragesFlag: Boolean
  • OverageProjectIdentity: PwsProjectRef
  • PurchaseOrderNumber
    •  ContractLineItemCode: String (27)
    •  ContractLineItemId: Int32
    •  ContractLineItemUid: Int64
    •  ContractLineItemName: String (255)
    •  EngagementIdentity: PwsEngagementRef
    •  CostContractTerms: String (1)
    •  DeferredRevenueOpeningBalanceEngCurrency: Double
    •  DeferredRevenueOpeningBalanceEngGLCurrency: Double
    •  HoldbackAmount: Double
    •  HoldbackPercent: Double
    •  HoldbackType: String (1)
    •  MaxCostContractAmount: Double
    •  MaxTimeContractAmount: Double
    •  MinCostContractAmount: Double
    •  MinTimeContractAmount: Double
    •  RevenueEarnedByDate: DateTime
    •  RevenueRecognitionMethod: String (1)
    •  RevenueSchedule: PwsRevenueScheduleItem[]
    •  TimeContractTerms: String (1)
    •  ContractTypeIdentity: PwsContractTypeRef
    •  InheritPurchaseOrderNumberFlag: Boolean
    •  ModelContractedHoursAndOveragesFlag: Boolean
    •  OverageProjectIdentity: PwsProjectRef
    •  PurchaseOrderNumber: String (50)
    •  Timestamp: String

Elements


...

languagexml
titleExample 01 - without a revenue schedule
collapsetrue

...

200001500050002510000200005000150002018-06-30T00:00:00Z

Element

Data Type

Required?

Default

Description

Sample Data

ContractLineItemNameContractLineItemCode

String

Contract Line Item Name

Web Services Engagement

EngagementCode

String

Engagement Code. A unique identifier for an Engagement

E001395

EngagementId

Int32

Engagement Id. A unique identifier for an Engagement(27)

One of ContractLineItemCode or ContractLineItemUid is required

Note: The ContractLineItemCode does not have to be supplied if the installation is configured to use manual contract line item numbering)


The contract line item code is a unique identifier for a contract line item

P001163-CL1


ContractLineItemId

Int32

No


The contract line item id is a unique identifier for a contract line item. For internal use only.


EngagementUidContractLineItemUid

Int64Engagement Unique Id.

On Insert: No

On Update: Yes (if ContractLineItemCode is not supplied)


A unique and immutable identifer for an engagement.

1152921504607083377

EngagementIdentity

PwsEngagementRef

CostContractTerms

String

Cost Contract Terms

"F" for Fixed Price

Id for a contract line item

1152921504607049238

ContractLineItemName

String (255)

On Insert: Yes

On Update: No


The contract line item name 

Contract 192810

EngagementIdentity

PwsEngagementRef

On Insert: No

On Update: No


The engagement associated with the contract line item


CostContractTerms

String (1)

On Insert: No

On Update: No


The cost contract terms associated with the contract line item:

"F" for Fixed Price

"T" for Time and Materials

"C" for Time and Materials with a cap Null on (Not to Exceed NO Hard Cap)

"H" for Not To Exceed with Hard Cap

"N" for Non-chargeable

Null on update means leave as isis 

T

DeferredRevenueOpeningBalanceEngCurrency

Double

Deferred Revenue Opening Balance in the Engagement Currency

On Insert: No

On Update: No

0

The deferred revenue opening balance associated with the contract line item (in the engagement currency) 

0

DeferredRevenueOpeningBalanceEngGLCurrency

Double

Deferred Revenue Opening Balance in the General Ledger Currency

On Insert: No

On Update: No

0

The deferred revenue opening balance associated with the contract line item (in the general ledger currency) 

0

HoldbackAmount

DoubleHoldback Amount

On Insert: No

On Update: No


The holdback amount associated with the contract line item. Applies only when holdback type is A; null otherwise.

 


HoldbackPercent

Double

Holdback PercentOn Insert: No

On Update: No


The holdback percent associated with the contract line item. Applies only when holdback type is P; null otherwise..


HoldbackType

StringHoldback Type.

On Insert: No

On Update: No

N

The holdback type associated with the contract line item

"N" for none

"A" for Amount

"P" for PercentPercent 

N

MaxCostContractAmount

Double

Maximum Cost Contract Amount

Must be specified for On Insert: No

On Update: No


The maximum cost contract amount associated with the contract line item

Must be specified for cost contract terms F or C, and null otherwise.


MaxTimeContractAmount

DoubleMaximum Time Contract Amount

On Insert: No

On Update: No


The maximum time contract amount associated with the contract line item

Must be specified for time contract terms F or C, and null otherwise.


MinCostContractAmount

Double

Maximum Cost Contract Amount

Must be specified for On Insert: No

On Update: No


The minimum cost contract amount associated with the contract line item

Must be specified for cost contract terms F or C, and null otherwise.


MinTimeContractAmount

DoubleMinimum Time Contract Amount

On Insert: No

On Update: No


The minimum time contract amount associated with the contract line item

Must be specified for time contract terms F, and null otherwise.


RevenueEarnedByDate

DateTime

On Insert: No

On Update: No


This is a date by which an engagement a date (in midnight UTC) by which the contract line item is expected to finish.

be complete.


RevenueRecognitionMethod

String

Revenue Recognition Method

"P" for percent complete

"R" for revenue schedule

Leave blank for non-billable engagements.

P

RevenueSchedule

PwsRevenueScheduleItem[]

TimeContractTerms

String

Time Contract Terms

"T" for Time & Materials

"F" for Fixed Price

"C" for Not to Exceed

ContractTypeIdentity

PwsContractTypeRef

InheritPurchaseOrderNumberFlag

Boolean

Inherit Purchase Order Number from Parent Client (if any). Please see Inheritance for more information.

true/false

ModelContractedHoursAndOveragesFlag

Boolean

When set to "true", the contract will be modeled to account for contracted hours and overages. This setting is typically used when setting up service contracts where a client purchases a fixed amount of hours for a specific time period. Time that exceeds the allottment is then billed at a different rate. This overage is handled by a separate project. Only available for Fixed Price time contracts using a revenue schedule

true/false

OverageProjectIdentity

PwsProjectRef

For Contract Line Items that are defined to model Contracted Hours and Overages, this is the project to which hours that exceed a set number within a date range will be transferred.

P001395-002

PurchaseOrderNumber

String

Purchase Order Number associated with the Contract Line Item

PO-1234

Usage Example(s)

(1)

On Insert: No

On Update: No

P

The revenue recognition method associated with the contract line item. The RevenueRecognitionMethod will be NULL unless it is a fixed price for time contract. Otherwise will be P or R.

"P" for percent complete

"R" for revenue schedule

P

RevenueSchedule

PwsRevenueScheduleItem[]

On Insert: No

On Update: No


The information associated with the revenue and/or contracted hours schedule associated with the contract line item. Applies only when the RevenueRecogntionMethod = 'R'.


TimeContractTerms

String (1)

On Insert: Yes (if ContractTypeIdentity is not supplied)

On Update: No

T

The time contract terms associated with the contract line item

"T" for Time & Materials

"F" for Fixed Price

"C" for Not to Exceed

T

ContractTypeIdentity

PwsContractTypeRef

On Insert: Yes (if TimeContractTerms is not supplied)

On Update: No


The contract type identity associated with the contract line item. For custom contract line items, this will be NULL.


InheritPurchaseOrderNumberFlag

Boolean

On Insert: No

On Update: No

true

If set to 'true', the purchase order number is inherited from the parent client (if any). Please see Inheritance for more information. 

true/false

ModelContractedHoursAndOveragesFlag

Boolean

On Insert: No

On Update: No

Dependent on ContractTypeIdentity, if a ContractTypeIdentity is not supplied the default is false

When set to 'true', the contract will be modeled to account for contracted hours and overages. This setting is typically used when setting up service contracts where a client purchases a fixed amount of hours for a specific time period. Time that exceeds the allottment is then billed at a different rate. This overage is handled by a separate project. Only available for Fixed Price time contracts using a revenue schedule. 

true/false

OverageProjectIdentity

PwsProjectRef

On Insert: No

On Update: No


For contract line items that are defined to model contracted hours and overages, this is the project to which hours that exceed a set number within a date range will be transferred.


PurchaseOrderNumber

String (50)

On Insert: No

On Update: No


The purchase order number associated with the contract line item


TimestampString

On Insert: No

On Update: No


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.

Usage Example(s)


Code Block
languagexml
titleSimple Insert
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:PwsSaveContractLineItem>
         <pws:serviceRequest>
            <req:RequestId>1</req:RequestId>
            <req:SessionTicket>AQjGXNV/cmNJJg8Zok3S4Q==</req:SessionTicket>
            <sch:ContractLineItem>
               <com:ContractLineItemName>PD-2001D</com:ContractLineItemName>
               <com:EngagementIdentity>
                  <com:EngagementCode>01312024E001001</com:EngagementCode>
               </com:EngagementIdentity>
               <com:CostContractTerms>T</com:CostContractTerms>
               <com:TimeContractTerms>T</com:TimeContractTerms>
               <com:InheritPurchaseOrderNumberFlag>false</com:InheritPurchaseOrderNumberFlag>
               <com:ModelContractedHoursAndOveragesFlag>false</com:ModelContractedHoursAndOveragesFlag>
               <com:PurchaseOrderNumber>SOAP UI</com:PurchaseOrderNumber>
            </sch:ContractLineItem>
            <sch:EngagementCurrencyIdentity>
               <com:CurrencyCode>USD</com:CurrencyCode>
            </sch:EngagementCurrencyIdentity>
            <sch:StealLockFlag>false</sch:StealLockFlag>
            <sch:ContractTypeClearFlag>false</sch:ContractTypeClearFlag>
            <sch:OverageProjectClearFlag>false</sch:OverageProjectClearFlag>
            <sch:FullDetailFlag>true</sch:FullDetailFlag>
            <sch:RevalueAction>R</sch:RevalueAction>
            <sch:RevenueScheduleClearFlag>false</sch:RevenueScheduleClearFlag>
         </pws:serviceRequest>
      </pws:PwsSaveContractLineItem>
   </soapenv:Body>
</soapenv:Envelope>


Code Block
languagexml
titleExample 01 - CLI without a revenue schedule
collapsetrue
                         <b:ContractLineItemDetail>
                           <b:ContractLineItemCode>P001163-CL1</b:ContractLineItemCode>
                           <b:ContractLineItemId i:nil="true"/>
                           <b:ContractLineItemUid>1152921504607049238</b:ContractLineItemUid>
                           <b:ContractLineItemName>Contract 192810</b:ContractLineItemName>
                           <b:EngagementIdentity>
                              <b:EngagementCode>P001163</b:EngagementCode>
                              <b:EngagementId i:nil="true"/>
                              <b:EngagementUid>1152921504607293498</b:EngagementUid>
                           </b:EngagementIdentity>
                           <b:CostContractTerms>T</b:CostContractTerms>
                           <b:DeferredRevenueOpeningBalanceEngCurrency>0</b:DeferredRevenueOpeningBalanceEngCurrency>
                           <b:DeferredRevenueOpeningBalanceEngGLCurrency>0</b:DeferredRevenueOpeningBalanceEngGLCurrency>
                           <b:HoldbackAmount i:nil="true"/>
                           <b:HoldbackPercent i:nil="true"/>
                           <b:HoldbackType>N</b:HoldbackType>
                           <b:MaxCostContractAmount i:nil="true"/>
                           <b:MaxTimeContractAmount i:nil="true"/>
                           <b:MinCostContractAmount i:nil="true"/>
                           <b:MinTimeContractAmount i:nil="true"/>
                           <b:RevenueEarnedByDate i:nil="true"/>
                           <b:RevenueRecognitionMethod>P</b:RevenueRecognitionMethod>
                           <b:RevenueSchedule/>
                           <b:TimeContractTerms>T</b:TimeContractTerms>
                           <b:ContractTypeIdentity i:nil="true"/>
                           <b:InheritPurchaseOrderNumberFlag>true</b:InheritPurchaseOrderNumberFlag>
                           <b:ModelContractedHoursAndOveragesFlag>false</b:ModelContractedHoursAndOveragesFlag>
                           <b:OverageProjectIdentity i:nil="true"/>
                           <b:PurchaseOrderNumber i:nil="true"/>
                        </b:ContractLineItemDetail>


Code Block
languagexml
titleExample 02 - CLI with a revenue schedule
collapsetrue
                         <b:ContractLineItemDetail>
                           <b:ContractLineItemCode>P001320-CL1</b:ContractLineItemCode>
                           <b:ContractLineItemId i:nil="true"/>
                           <b:ContractLineItemUid>1152921504607083461</b:ContractLineItemUid>
                           <b:ContractLineItemName>Web Services Documentation</b:ContractLineItemName>
                           <b:EngagementIdentity>
                              <b:EngagementCode>P001320</b:EngagementCode>
                              <b:EngagementId i:nil="true"/>
                              <b:EngagementUid>1152921504607326368</b:EngagementUid>
                           </b:EngagementIdentity>
                           <b:CostContractTerms>T</b:CostContractTerms>
                           <b:DeferredRevenueOpeningBalanceEngCurrency>0</b:DeferredRevenueOpeningBalanceEngCurrency>
                           <b:DeferredRevenueOpeningBalanceEngGLCurrency>0</b:DeferredRevenueOpeningBalanceEngGLCurrency>
                           <b:HoldbackAmount i:nil="true"/>
                           <b:HoldbackPercent i:nil="true"/>
                           <b:HoldbackType>N</b:HoldbackType>
                           <b:MaxCostContractAmount i:nil="true"/>
                           <b:MaxTimeContractAmount>30000</b:MaxTimeContractAmount>
                           <b:MinCostContractAmount i:nil="true"/>
                           <b:MinTimeContractAmount>30000</b:MinTimeContractAmount>
                           <b:RevenueEarnedByDate i:nil="true"/>
                           <b:RevenueRecognitionMethod>R</b:RevenueRecognitionMethod>
                           <b:RevenueSchedule>
                              <b:PwsRevenueScheduleItem>
                                 <b:EndDate>2018-01-31T00:00:00Z</b:EndDate>
                                 <b:ScheduledRevenueAmount>10000</b:ScheduledRevenueAmount>
                                 <b:StartDate i:nil="true"/>
                                 <b:ContractedMinutes i:nil="true"/>
                                 <b:Notes>January Bucket</b:Notes>
                              </b:PwsRevenueScheduleItem>
                              <b:PwsRevenueScheduleItem>
                                 <b:EndDate>2018-02-28T00:00:00Z</b:EndDate>
                                 <b:ScheduledRevenueAmount>10000</b:ScheduledRevenueAmount>
                                 <b:StartDate>2018-02-01T00:00:00Z</b:StartDate>
                                 <b:ContractedMinutes i:nil="true"/>
                                 <b:Notes>February Bucket</b:Notes>
                              </b:PwsRevenueScheduleItem>
                              <b:PwsRevenueScheduleItem>
                                 <b:EndDate>2018-03-31T00:00:00Z</b:EndDate>
                                 <b:ScheduledRevenueAmount>10000</b:ScheduledRevenueAmount>
                                 <b:StartDate>2018-03-01T00:00:00Z</b:StartDate>
                                 <b:ContractedMinutes i:nil="true"/>
                                 <b:Notes>March Bucket</b:Notes>
                              </b:PwsRevenueScheduleItem>
                           </b:RevenueSchedule>
                           <b:TimeContractTerms>F</b:TimeContractTerms>
                           <b:ContractTypeIdentity i:nil="true"/>
                           <b:InheritPurchaseOrderNumberFlag>true</b:InheritPurchaseOrderNumberFlag>
                           <b:ModelContractedHoursAndOveragesFlag>false</b:ModelContractedHoursAndOveragesFlag>
                           <b:OverageProjectIdentity i:nil="true"/>
                        <ContractLineItemDetail>   <b:PurchaseOrderNumber>P-001</b:PurchaseOrderNumber>
                        <ContractLineItemCode>P001395-CL1</ContractLineItemCode>
                           <ContractLineItemId i:nil="true"/>
                           <ContractLineItemUid>1152921504607083377</ContractLineItemUid>
       </b:ContractLineItemDetail>


Code Block
languagexml
titleExample 03 - CLI modeled with contracted hours and overage
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:PwsSaveContractLineItem>
         <pws:serviceRequest>
  <ContractLineItemName>Web Services Engagement</ContractLineItemName>                            <EngagementIdentity><req:RequestId>1</req:RequestId>
            <req:SessionTicket>AdDMw48w49OxnEUPGUuMSw==</req:SessionTicket>
             <sch:ContractLineItem>
   <EngagementCode>E001395</EngagementCode>            <com:ContractLineItemName>Service Contract A</com:ContractLineItemName>
                <EngagementId i:nil="true"/><com:EngagementIdentity>
                  <com:EngagementCode>P001320</com:EngagementCode>
           <EngagementUid>1152921504607324698</EngagementUid>    </com:EngagementIdentity>
                 <com:MaxTimeContractAmount>50000</com:MaxTimeContractAmount>
     </EngagementIdentity>          <com:MinTimeContractAmount>50000</com:MinTimeContractAmount>
               <com:RevenueSchedule>
 <CostContractTerms>T</CostContractTerms>                 <com:PwsRevenueScheduleItem>
          <DeferredRevenueOpeningBalanceEngCurrency>0</DeferredRevenueOpeningBalanceEngCurrency>           <com:EndDate>2018-01-31T00:00:00.000Z</com:EndDate>
                <DeferredRevenueOpeningBalanceEngGLCurrency>0</DeferredRevenueOpeningBalanceEngGLCurrency>     <com:ScheduledRevenueAmount>25000</com:ScheduledRevenueAmount>
                      <HoldbackAmount i:nil="true"/>
<com:ContractedMinutes>2400</com:ContractedMinutes>
                     <com:Notes>January Contract</com:Notes>
   <HoldbackPercent i:nil="true"/>              </com:PwsRevenueScheduleItem>
             <HoldbackType>N</HoldbackType>     <com:PwsRevenueScheduleItem>
                      <MaxCostContractAmount i:nil="true"/><com:EndDate>2018-02-28T00:00:00.000Z</com:EndDate>
                     <com:ScheduledRevenueAmount>25000</com:ScheduledRevenueAmount>
       <MaxTimeContractAmount i:nil="true"/>              <com:StartDate>2018-02-01T00:00:00.000Z</com:StartDate>
             <MinCostContractAmount i:nil="true"/>       <com:ContractedMinutes>2400</com:ContractedMinutes>
                    <MinTimeContractAmount i:nil="true"/>
   <com:Notes>February Contract</com:Notes>
                   </com:PwsRevenueScheduleItem>
   <RevenueEarnedByDate i:nil="true"/>           </com:RevenueSchedule>
               <com:ContractTypeIdentity>
<RevenueRecognitionMethod i:nil="true"/>                 <com:ContractTypeName>Contract Type - Revenue Schedule</com:ContractTypeName>
      <RevenueSchedule/>         </com:ContractTypeIdentity>
               <com:InheritPurchaseOrderNumberFlag>false</com:InheritPurchaseOrderNumberFlag>
  <TimeContractTerms>T</TimeContractTerms>             <com:ModelContractedHoursAndOveragesFlag>true</com:ModelContractedHoursAndOveragesFlag>
              <ContractTypeIdentity i:nil="true"/><com:OverageProjectIdentity>
                  <com:ProjectCode>P001320-003</com:ProjectCode>
        <InheritPurchaseOrderNumberFlag>true</InheritPurchaseOrderNumberFlag>       </com:OverageProjectIdentity>
               <com:PurchaseOrderNumber>WS1320-SCA</com:PurchaseOrderNumber>
    <ModelContractedHoursAndOveragesFlag>false</ModelContractedHoursAndOveragesFlag>        </sch:ContractLineItem>
            <sch:EngagementCurrencyIdentity>
      <OverageProjectIdentity i:nil="true"/>         <com:CurrencyCode>USD</com:CurrencyCode>
            </sch:EngagementCurrencyIdentity>
       <PurchaseOrderNumber>PO-1234/PurchaseOrderNumber>     <sch:StealLockFlag>true</sch:StealLockFlag>
            <sch:ContractTypeClearFlag>false</sch:ContractTypeClearFlag>
         <Timestamp>AAAAAA61fo0=</Timestamp>   <sch:OverageProjectClearFlag>false</sch:OverageProjectClearFlag>
         </pws:serviceRequest>
      </pws:PwsSaveContractLineItem>
   </soapenv:Body>
</ContractLineItemDetail>soapenv:Envelope>