Download PDF
Download page Contract Service.
Contract Service
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”);
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”})));
or as
contract.getTypes().add(“Distribution Agreement”);
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 | 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);
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);
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 |