NovatusContract Object

  • The NovatusContract class mirrors what is seen on the Contract Profile of the Contracts application. 
  • When creating a Contract, the company, group, agreementType, contractType, legalEntity, status, and termType fields are required. If the termType is not perpetual, originalExpirationDate are required. 
  • If the contract is a child contract (Amendment, Addendum, etc) then agreementLink is also required and the parent contractId must be queried and set into the function.  

The below is an example if you already have the UUID of the master and the familyId, the alternative would be to query it and set that Master ContractId to the variable.

Contract.setAgreementType(“Amendment”);
Contract.setFamilyId(“FamilyContractUUIDString – highest contract in the family”);
Contract.setParentContractId(“ParentContractUUIDString”);

CODE


The
types field is the contract type tree value. It is a list of strings, such that a contract type represented in the application as “License / Software / Server’’ would be represented as:When creating a child contract the id of the parent is a required field. Auto-renewing term types also require renewalInterval

contract.getTypes().addAll((Arrays.asList(new String[]{“License”, “Software”, “Server”})));
CODE


or as

contract.getTypes().add(“Distribution Agreement”);
CODE


The latter is to be used if only one value is being set into the multi-select field.

When updating or creating a contract, only the id field of the company object is used – other company fields will not be updated on the server. This can be done with a basic query before setting the contract values.

Production WSDL: https://app1.novatuscontracts.com/Contracts/wsapi/v1/Contract?Wsdl

Field Name

Type

Description

Queryable

Required?

Company

NovatusCompany

The company object for the ID

Yes

Yes, if a standalone contract

id

String

A unique identifier of this contract

Yes

-

group

String

Contract Group

Yes

Yes

number

String

Contract Number

Yes

-

value

BigDecimal

Contract Value

-

-

agreementType

String

Agreement Type

Yes

Yes

proposedValue

BigDecimal

Proposed Value

-

-

types

List<String>

Contract Type

Yes

Yes

location

String

Contract Location

-

-

purpose

String

Contract Purpose

Yes

Yes

legalEntity

String

Legal Entity Name

Yes

Yes

originalExpirationDate

XML Gregorian Calendar Date

Original Expiration Date

-

Yes, if termType is not perpetual

effectiveDate

XML Gregorian Calendar Date

Effective Date

-

-

currentExpirationDate

XML Gregorian Calendar Date

Current Expiration Date

-

-

noticeDate

XML Gregorian Calendar Date

Notice Date

-

-

renewalInterval

Integer

Renewal Interval

-

Yes, if termType is Auto Renewal

noticePeriod

Integer

Notice Period

-

-

termType

String

Term Type

Yes

Yes

status

String

Contract Status

Yes

Yes

currency

String

Currency Type

Yes


parentContractId

String

ID of the parent contract for amendments, etc.

-

Yes, if a child contract

originalCompany

String

Name of the original company of this contract

Yes

-

description

String

Contract Description

Yes

-

dynamics

Map<String,Object>

A map of dynamic object type ID’s to their values

-

-

familyId

String

An ID that is the same for every contract in this family

-

Yes, if a child contract


NovatusContract Object Methods

The methods listed below are the means by which changes can be made to the contract(s) itself; below is a quick example of how to use these methods.

String contractId = contractPort.create(contract);
ContractQueryResult result = contractPort.query(“id=’” + contractId + “’”, 1,0);
CODE



NovatusContract NQL Statements

These are list of items that can be placed into an NQL statement to filter Contract queries.  This is different from the above chart in that these are not methods that can return data but rather NQL statements that can allow you to filter query results.

ContractQueryResult contracts = contractPort.query(“number = ‘EXA-00010-MAS’”,10,0);
CODE

Filter Name

Description

id

A unique identifier for the contract

companyname

Name of the company that the contract is associated with

number

Contract Number

group

Contract Group

companyId

Id of the company that the contract is associated with

status

Contract Status

value

Contract Value

type

Contract Type

proposedValue

Contract Proposed Value

legalentity

Contract Legal Entity

originalcompany

Original company that the contract was created under

agreementtype

Contract Agreement Type

currency

Contract Currency

termtype

Contract Term Type

lastupdatedon

Last date that the contract profile was updated on

createdon

Date that the contract profile was created

lastUpdatedBy

Person that last updated the contract profile

createdBy

Person that created the contract profile

description

Contract Description

effectivedate

Contract Effective Date

originalexpirationdate

Contract original expiration date

currentexpirationdate

Contract current expiration date