Contract Action Settings
Contract Action Settings allow administrators to define and manage clone specifications that control how contracts and their related objects are cloned, amended, or renewed. Clone specifications override the system's default cloning behavior and ensure that only the intended fields and related records are copied during contract lifecycle actions.
You can configure clone specifications under .
The clone specifications feature automates configuration-based object cloning. If a relevant clone specification is configured and available, it is invoked when a user clones, amends, or renews a contract. You can define clone specifications to override the system's default process for cloning, amending, and renewing a contract.
The system initially searches for any configuration available in the below order. If any configuration is available, cloning is processed based on the available configuration. Otherwise, it looks for the default cloning and copies the entire agreement object to a new one. The following table lists the configuration name format for a clone specification and related examples.
|
Configuration Name Format |
Example |
Description |
|---|---|---|
|
clonespec::{sourceObject}::{targetObject}::{recordType}::{cloneType} |
|
This performs only the clone operation for the MSA record type. |
|
clonespec::{sourceObject}::{targetObject}::{cloneType} |
|
This performs only the amend operation. |
|
clonespec::{sourceObject}::{targetObject} |
|
This performs clone, amend, and renewal operations. |
Clone specification is omitted for the following system fields.
- Id
- CreatedBy
- CreatedDate
- ModifiedBy
- ModifiedDate
- ActivatedBy
- ActivatedDate
- AgreementNumber
- Status
- StatusCategory
- If you clone an agreement, the value of Status Category and Status fields of the source agreement is Unchanged.
- If you amend or renew an agreement, the value of Status Category of the source agreement is In Effect.
- If you amend or renew an agreement, the value of Status of the source agreement is Being Amended and Being Renewed respectively.
The system automatically populates the values for the following field types. The clone specifications configuration cannot control these fields.
- Autonumber
- Calculated fields
- Rollup fields
The clone specification feature supports the following context fields.
|
Format |
Example |
|---|---|
|
CURRENT_DATE |
Current date and time as 00:00:00 |
|
CURRENT_DATE_TIME |
Current date and current time |
|
CURRENT_MONTH |
Current month number |
|
CURRENT_MONTH_STARTDATE |
Starting date of current month |
|
CURRENT_MONTH_ENDDATE |
End date of current month |
|
CURRENT_YEAR |
Current year number |
|
CURRENT_ORG |
ID of current context organization |
|
CURRENT_USER |
LookupObject of current context user |
Clone types
The following are the three types of cloning:
- AllFields
- All fields from the source object are cloned except the fields specified in
ExcludeFields. - Fields specified in the
IncludeFieldsare cloned as per the specification. All other fields are cloned by matching the field name from the source and target object. - Any calculated fields, Rollup fields and Auto popup fields such as "id", "createdby", "createddate", "modifiedby", "modifieddate", "externalid" are omitted.
- All fields from the source object are cloned except the fields specified in
- CustomFields
- All custom fields from the source object are cloned except the fields specified in
ExcludeFields. - Fields specified in the
IncludeFieldsare cloned as per the specification irrespective of whether those fields are custom or not. - Any calculated fields, Rollup fields, and Auto popup fields such as "id", "createdby", "createddate", "modifiedby", "modifieddate", and "externalid" are omitted
- Any fields from the source object other than the above fields are omitted.
- All custom fields from the source object are cloned except the fields specified in
- IncludeFields
- Only the fields specified in the IncludeFields list are cloned.
- All other fields are omitted.Refer to the following table for some of the IncludeFields list.
Format
Example
Description
“{TargetFieldName}” : “$${SourceFieldName}”
“Name” : “$$Name“
Value of the field “Name” from the source object will be copied into the field “Name” of the target object.
“{TargetFieldName}” : “$${SourceFieldName}”
“Name“ : “$$Description“
Value of the “Description” field from the source object is copied into the “Name” field of the target object.
{TargetFieldName}” : “Static value”
“Status” : “Request“
Static value “Request“ is copied into the “Status” field of the target object.
“{TargetFieldName}” : “$${SourceFieldName} + Static value”
“Name“ : “$$Name + Clone“
Static value “Clone“ is appended to the value of the “Name” field from the source object and then the result will be copied into the “Name” field of the target object.
“{TargetFieldName}” : “Static value + $${SourceFieldName}”
“Name“ : “Copy of - $$Name“
Static value “Copy of“ will be prepended to the value of the field “Name” from the source object and then the result is copied into the “Name” field of the target object.
“{TargetFieldName}” : “$$${ContextFieldName}”
“ExecutedDate“ : “$$$CURRENT_DATE“
Current date is copied into the ExecutedDate field of the target object.
“{TargetFieldName}” : “$$${ContextFieldName} + {Number}"
“ExecutedDate“ : “$$$CURRENT_DATE + 1“
One day is added to the current date and the result is copied into the ExecutedDate field of the target object. This arithmetic operation works only if the context field type is either number or date.
“{TargetFieldName}” : “$$${ContextFieldName} - {Number}”
“ExecutedDate“ : “$$$CURRENT_DATE - 3“
Three days are deducted from the current date and the result is copied into the ExecutedDate field of the target object. This arithmetic operation works only if the context field type is either number or date.
Clone Specification for System Object Configuration
The system object AgreementClause is completely handled by the internal system. If you use the system object AgreementClause in clone specification, then the cloning process considers CloneType as AllFields and omits the elements in IncludeFields and ExcludeFields.
Sample clone specification
{
"SourceObject": "Agreement",
"TargetObject": "Agreement",
"CloneType": "AllFields",
“IncludeFields“ : {
"Name": "$$Name + -Clone"
}
"ChildObject": [
{
"SourceObject": "AgreementClause",
"TargetObject": "AgreementClause",
"FromField": "Agreement",
"ToField": "Id"
}
]
}
You cannot use the following system objects in the clone specification.
- DocumentMetadata
- User
- Role
- ObjectPermission
Clone Specification for Parent-Child Relationships
When you clone an object, you must also clone all its related objects. The clone specification allows you to configure parent-child relationships.
Example 1: Sample clone specification: parent and child object relationship through a lookup field
{
"SourceObject": "Agreement",
"TargetObject": "Agreement",
"CloneType": "AllFields",
"IncludeFields": {
"Name": "$$Name + -Clone",
"AccountId": "$$AccountId",
"Owner": "$$Owner",
"RecordType": "$$RecordType"
},
"ChildObject": [
{
"SourceObject": "AgreementClause",
"TargetObject": "AgreementClause",
"FromField": "Agreement.Id",
"ToField": "Id",
"CloneType": "IncludeFields"
"IncludeFields": {
"Name": "$$Name + -Clone",
"Action": "$$Action",
"Category": "$$Category",
"Agreement": "#PARENT#"
}
}
]
}
Example 2: Sample clone specification: parent and child object relationship through a reference field
{
"SourceObject": "Agreement",
"TargetObject": "Agreement",
"CloneType": "AllFields",
"IncludeFields": {
"Name": "$$Name + -Clone",
"AccountId": "$$AccountId",
"Owner": "$$Owner",
"RecordType": "$$RecordType"
},
"ChildObject": [
{
"SourceObject": "AgreementClause",
"TargetObject": "AgreementClause",
"FromField": "Agreement",
"ToField": "Id",
"CloneType": "IncludeFields"
"IncludeFields": {
"Name": "$$Name + -Clone",
"Action": "$$Action",
"Category": "$$Category",
"Agreement": "#PARENTID#"
}
}
]
}
The following table describes the child objects in a parent-child relationship.
|
Child Object |
Description |
|---|---|
|
SourceObject |
Name of the source object for the child. |
|
TargetObject |
Name of the target object for the child. |
|
FromField |
Key column of the child object which represents the relationship with the parent. |
|
ToField |
Key column of the parent object which represents the relationship with the child. |
|
Format1 : “{TargetFieldName}” : “#PARENT#” |
The lookup reference of the parent object is stored in the field “Agreement” of the target object. For example: “Agreement” : “#PARENT#“ |
|
Format2 : “{TargetFieldName}” : “#PARENTID# |
The value of the field “Id” from the parent object is copied into the field “Agreement” of the target object. For example: “AgreementId” : “#PARENTID#“ |
