Change Summary
Release Date | Release Version | Change Description | Link |
|---|---|---|---|
October 12th, 2026 | 2026.2 | Added Total Funded Cost | |
Added TC Mod in Progress |
This reference guide provides the validation scenarios that are included in the Contracts Suite package. These validations are considered "out-of-the-box" (OOTB). It is recommended that you consult with TechnoMile Support before modifying any of these validations.
Validation rules in Salesforce are rules that check the data entered or updated by a user or a system against certain criteria before saving the record. They are used to enforce integrity constraints, maintain data quality, and prevent incorrect values or formats. Validation rules contain formula expressions that return a value of true or false. If the expression evaluates to true, the record is invalid and an error message is displayed.
NOTE
There are no configuration instructions included in this document. This is intended to be a reference guide for system administrators and business/process administrators.
About this Reference Guide
There are three parts to this guide:
Within each part, the guide is broken down into sections. Each section contains the fields and validations for TechnoMile Salesforce Objects. Within each section, a table contains:
Field Name
API Name for the field
Description of the validation rule
Any applicable Apex or Trigger
Any applicable calculation
Any applicable if/then scenario
Any applicable error messages
The tables within the sections may vary, depending on the content of the validation.
General Calculations/Validations
Object Name: Our Contract
General calculations/validations for the Our Contract object in Salesforce.
Our Contract Field (API Name) | Description | Apex / Trigger |
|---|---|---|
Exercised Contract Value (TM_TOMA__Exercised_Contract_Value__c) | This field stores the sum of all Obligated Values fields for Exercised CLIN/SLINs associated with the Our Contract Record. | TM_PeriodTrigger is used to calculate this field value. |
Total Contract Funding (TM_TOMA__Total_Contract_Funding__c) | This field stores the sum of all Total Funding fields for Periods associated with the Our Contract record. | TM_PeriodTrigger is used to calculate this field value. |
Anticipated Contract Value (TM_TOMA__Contract_Amount__c) | This field stores the sum of all Total Value for Periods associated with the Our Contract record. | TM_PeriodTrigger is used to calculate this field value. |
Modification Count (TM_TOMA__Modification_Count__c ) | This is a roll-up summary field that stores the count of the Modification records whose Status is Open and are associated with the Our Contract record. Roll-Up Summary: COUNT(Modification) | - |
Lock Value & Funding (TM_TOMA__Lock_CLINs__c) | This field is treated as a backend field and it is updated via Flow when the Our Contract record is set to Final. Flow Name: Contract Vehicle Lock Flow Note: If this field is used on the Our Contract detail component from Our Contract custom or standard layout, then it is a read-only field. | - |
Total TO Anticipated Contract Value (TM_TOMA__Total_TO_Anticipated_Contract_Value__c)
| This field stores the sum of Anticipated Contract Value for all the child Task Order / Commercial types of Our Contract record. | TM_ContractVehicleRollupTrigger is used to calculate this field value. |
Total TO Exercised Contract Value (TM_TOMA__Total_TO_Exercised_Contract_Value__c)
| This field stores the sum of Exercised Contract Value for all the child Task Order / Commercial types of Our Contract record. | TM_ContractVehicleRollupTrigger is used to calculate this field value. |
Total TO Contract Funding (TM_TOMA__Total_TO_Contract_Funding__c)
| This field stores the sum of Total Contract Funding for all the child Task Order / Commercial types of Our Contract record. | TM_ContractVehicleRollupTrigger is used to calculate this field value. |
Total Funded Cost (TM_TOMA__Total_Funded_Cost__c ) | This field stores the sum of the CLIN/SLIN Funded Cost fields associated with the Our Contract record. | TM_ClinSlinTrigger is used to calculate this field value. |
Object Name: Period of Performance (POP)
General calculations/validations for the POP object in Salesforce.
POP Field (API Name) | Calculation |
|---|---|
Total Price (TM_TOMA__Total_Price__c) | This field stores the sum of the Obligated Price field for all CLIN/SLINs associated with the POP. Rollup Field: SUM (Obligated Price). |
Total Value (TM_TOMA__Total_Value__c) | This field stores the sum of the Total Obligated Value field for all CLIN/SLINs associated with the POP. Rollup Field: SUM (Total Obligated Value). |
Total Funding (TM_TOMA__Total_Funding__c) | This field stores the sum of the Total Funded Amount field for all CLIN/SLINs associated with the POP. Rollup Field: SUM (Total Funded Amount). |
Total Cost (TM_TOMA__Total_Cost__c) | This field stores the sum of the Obligated Cost field for all CLIN/SLINs associated with the POP. Rollup Field: SUM (Obligated Cost). |
Total Fee (TM_TOMA__Total_Fee__c) | This field stores the sum of the Obligated Fee field for all CLIN/SLINs associated with the POP. Rollup Field: SUM (Obligated Fee). |
Object Name: CLIN/SLIN
General calculations/validations for the object in Salesforce.
CLIN/SLIN Field (API Name) | Calculation | Apex/Trigger |
|---|---|---|
Total Obligated Value (TM_TOMA__Amount__c) | This field stores the sum of Obligated Cost, Obligated Fee, and Obligated Price for CLIN and all related child SLINs' Obligated Cost, Obligated Fee, and Obligated Price. | TM_ClinSlinTrigger is used to calculate this field value. |
Funded Amount (TM_TOMA__Funded_Amount_Rollup__c) | This field stores the sum of Funded Cost, Funded Fee, and Funded Price for a specific CLIN or SLIN. It does not include the rollup of child records. Details: SUM (Funded Cost, Funded Fee, Funded Price) | TM_ClinSlinTrigger, TM_ClinAcrnTrigger, and TM_CreateAcrnRecord are used to calculate this field value. |
Funded Cost (TM_TOMA__Funded_Cost__c) | This field stores the sum of CLIN ACRNs Funded Cost associated with the CLIN or SLIN. Details: SUM (CLIN ACRNs Funded Cost) | TM_ClinSlinTrigger, TM_ClinAcrnTrigger, and TM_CreateAcrnRecord are used to calculate this field value. |
Funded Price (TM_TOMA__Funded_Price__c) | This field stores the sum of CLIN ACRNs Funded Price associated with the CLIN or SLIN. Details: SUM (CLIN ACRNs Funded Price) | TM_ClinSlinTrigger, TM_ClinAcrnTrigger, and TM_CreateAcrnRecord are used to calculate this field value. |
Funded Fee (TM_TOMA__Funded_Fee__c) | This field stores the sum of CLIN ACRNs Funded Fee associated with the CLIN or SLIN. Details: SUM (CLIN ACRNs Funded Fee) | TM_ClinSlinTrigger, TM_ClinAcrnTrigger, and TM_CreateAcrnRecord are used to calculate this field value. |
Total SLIN Obligated Cost (TM_TOMA__Total_SLIN_Obligated_Cost__c) | This field stores the sum of the Obligated Cost of all the child SLINs associated with a CLIN. This field is NULL for SLINs. | TM_ClinSlinTrigger is used to calculate this field value. |
Total SLIN Obligated Fee (TM_TOMA__Total_SLIN_Obligated_Fee__c) | This field stores the sum of the Obligated Fee of all the child SLINs associated with a CLIN. This field is NULL for SLINs. | TM_ClinSlinTrigger is used to calculate this field value. |
Total SLIN Obligated Price (TM_TOMA__Total_SLIN_Obligated_Price__c) | This field stores the sum of the Obligated Price of all the child SLINs associated with a CLIN. This field is NULL for SLINs. | TM_ClinSlinTrigger is used to calculate this field value. |
Total SLIN Funded Fee (TM_TOMA__Total_SLIN_Funded_Fee__c) | This field stores the sum of the Funded Fee of all the child SLINs associated with a CLIN. | TM_ClinSlinTrigger is used to calculate this field value. |
Total SLIN Funded Cost (TM_TOMA__Total_SLIN_Funded_Cost__c) | This field stores the sum of the Funded Cost of all the child SLINs associated with a CLIN. This field is NULL for SLINs. | TM_ClinSlinTrigger is used to calculate this field value. |
Total SLIN Funded Price (TM_TOMA__Total_SLIN_Funded_Price__c) | This field stores the sum of the Funded Price of all the child SLINs associated with a CLIN. This field is NULL for SLINs. | TM_ClinSlinTrigger is used to calculate this field value. |
Total SLIN Funded Amount (TM_TOMA__Total_SLIN_Funded_Amount_Rollup__c) | This field stores the sum of the SLIN Funded Fee, SLIN Funded Cost, and SLIN Funded Price for a CLIN. This field is NULL for SLINs. Details: SUM (SLIN Funded Fee, SLIN Funded Cost, SLIN Funded Price) | TM_ClinSlinTrigger is used to calculate this field value. |
Total Funded Amount (TM_TOMA__Total_Funded_Amount__c) | This field stores the sum of the Total SLIN Funded Amount and the CLIN's Funded Amount. Details: SUM (Total SLIN Funded Amount, Funded Amount) | TM_ClinSlinTrigger is used to calculate this field value. |
Obligated Value (TM_TOMA__Obligated_Value__c) | This field stores the sum of the Obligated Cost, Obligated Fee, and Obligated Price for a specific CLIN or SLIN. Details: SUM (Obligated Cost, Obligated Fee, Obligated Price) | Formula Field |
Obligated Cost (TM_TOMA__Obligated_Cost__c) | CLIN Obligated Cost | UI Input field |
Obligated Fee (TM_TOMA__Obligated_Fee__c) | CLIN Obligated fee | UI Input field |
Obligated Price (TM_TOMA__Obligated_Price__c) | CLIN Obligated Price | UI Input field |
IDIQ CLIN (TM_TOMA__IDIQ_CLIN_SLINs__c) | This field is used to map master IDIQ CLIN to child TO CLIN, available on a CLIN. This field is populated for a TO CLIN and contains the parent IDIQ CLIN record. | UI Input field- to map TO Clin with IDIQ Clin |
Total TO's Funded Amount (TM_TOMA__Total_TO_s_Funded_Amount__c) | This field rolls-up Total Funded Amount of all child TO CLINs. | TM_ClinSlinTrigger is used to calculate this field value. |
Total TO's Obligated Value (TM_TOMA__Total_TO_s_Obligated_Value__c) | This field rolls-up Amount of all child TO CLINs. | TM_ClinSlinTrigger is used to calculate this field value. |
CLIN Start Date (TM_TOMA__CLIN_Start_Date__c) | Auto-populated from Period if Clin Start Date is blank. | TM_ClinSlinTrigger is used to calculate this field value. |
CLIN End Date (TM_TOMA__CLIN_End_Date__c) | Auto-populated from Period if Clin End Date is blank. | TM_ClinSlinTrigger is used to calculate this field value.
|
Object Name: Modification
General calculations/validations for the Modification object in Salesforce.
Modification Field (API Name) | Calculation | Apex/Trigger |
|---|---|---|
Starting Cumulative Obligated Cost (TM_TOMA__Starting_Cumulative_Obligated_Cost__c) | This field stores the sum of Obligated Cost of Exercised CLIN/SLINs with Mod Status as Open. Details: Sum (Obligated Cost where CLIN/SLIN is Exercised = TRUE) | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Obligated Fee (TM_TOMA__Starting_Cumulative_Obligated_Fee__c) | This field stores the sum of Obligated Fee of Exercised CLIN/SLINs with Mod Status as Open. Details: Sum (Obligated Fee where CLIN/SLIN is Exercised = TRUE) | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Obligated Price (TM_TOMA__Starting_Cumulative_Obligated_Price__c) | This field stores the sum of Obligated Price of Exercised CLIN/SLINs with Mod Status as Open. Details: Sum (Obligated Price where CLIN/SLIN is Exercised = TRUE) | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Obligated Value (TM_TOMA__Starting_Cumulative_Obligated_Value__c) | This field stores the Exercised Contract Value of an Our Contract record with Mod Status as Open. | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Funded Cost (TM_TOMA__Starting_Cumulative_Funded_Cost_Amount__c) | This field stores the sum of CLIN /SLIN Funded Cost. | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Funded Fee (TM_TOMA__Starting_Cumulative_Funded_Fee_Amount__c) | This field stores the sum of CLIN /SLIN Funded Fee. | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Funded Price (TM_TOMA__Starting_Cumulative_Funded_Price_Amount__c) | This field stores the sum of CLIN /SLIN Funded Price. | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Funded Amount (TM_TOMA__Starting_Cumulative_Funded_Amount__c) | This field stores the Total Contract Funding value of an Our Contract record with Mod Status as Open. | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Total Funded (TM_TOMA__Starting_Cumulative_Total_Funded__c) | This field stores the Total Contract Funding of an Our Contract record with Mod Status as Open. | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Total Value (TM_TOMA__Starting_Cumulative_Total_Value__c) | This field stores the Exercised Contract Value of an Our Contract record with Mod Status as Open. | TM_DeleteMod is used to calculate this field value. |
Obligated Cost (TM_TOMA__Obligated_Cost_Amount__c) | This field stores the value of Cumulative Obligated Cost – Starting Cumulative Obligated Cost with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Obligated Fee (TM_TOMA__Obligated_Fee_Amount__c) | This field stores the value of Cumulative Obligated Fee – Starting Cumulative Obligated Fee with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Obligated Price (TM_TOMA__Obligated_Price_Amount__c) | This field stores the value of Cumulative Obligated Price – Starting Cumulative Obligated Price with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Cumulative Obligated Cost (TM_TOMA__Cumulative_obligated_Cost_amount__c) | This field stores the value of sum of Exercised CLIN/SLIN’s Obligated Cost with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Cumulative Obligated Fee (TM_TOMA__Cumulative_Obligated_Fee_Amount__c) | This field stores the value of sum of Exercised CLIN/SLIN’s Obligated Fee with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Cumulative Obligated Price (TM_TOMA__Cumulative_Obligated_Price_Amount__c) | This field stores the value of sum of Exercised CLIN/SLIN’s Obligated Price with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Cumulative Obligated Value (TM_TOMA__Cumulative_Obligated_Value__c) | This field stores the value of Exercised Contract Value of an Our Contract record with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Cumulative Funded Cost (TM_TOMA__Cumulative_Funded_Cost_Amount__c) | This field stores the sum of CLIN/SLIN’s Funded Cost. | TM_DeleteMod is used to calculate this field value. |
Cumulative Funded Fee (TM_TOMA__Cumulative_Funded_Fee_Amount__c) | This field stores the sum of CLIN/SLIN’s Funded Fee. | TM_DeleteMod is used to calculate this field value. |
Cumulative Funded Price (TM_TOMA__Cumulative_Funded_Price_Amount__c) | This field stores the sum of CLIN/SLIN’s Funded Price. | TM_DeleteMod is used to calculate this field value. |
Cumulative Funded Amount (TM_TOMA__Cumulative_Funded_Value__c) | This field stores the value of Total Contract Funding of an Our Contract record with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Cumulative Total Funded (TM_TOMA__Cumulative_Total_Funded__c) | This field stores the value of Total Contract Funding of an Our Contract record with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Cumulative Total Value (TM_TOMA__Cumulative_Total_Value__c) | This field stores the value of Exercised Contract Value of an Our Contract record with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Funded Amount (TM_TOMA__Funded_Amount__c) | This field stores the value of Cumulative Funded Amount – Starting Cumulative Funded Amount with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Funded Cost (TM_TOMA__Funded_Cost_Amount__c) | This field stores the value of Cumulative Funded Cost – Starting Cumulative Funded Cost with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Funded Fee (TM_TOMA__Funded_Fee_Amount__c) | This field stores the value of Cumulative Funded Fee – Starting Cumulative Funded Fee with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Funded Price (TM_TOMA__Funded_Price_Amount__c) | This field stores the value of Cumulative Funded Price – Starting Cumulative Funded Price with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
Starting Cumulative Total Value: Unex/Ex (TM_TOMA__Starting_Cumulative_Total_Value_Unex_Ex__c)
| This field stores the sum of Obligated Value of Exercised and Unexercised CLIN/SLINs with Mod Status as Open and is mapped with Anticipated Contract Value (TM_TOMA__Contract_Amount__c). | TM_DeleteMod is used to calculate this field value. |
Cumulative Total Value: Unex/Ex (TM_TOMA__Cumulative_Total_Value_Unex_Ex__c) | This field stores the sum of Obligated Value of Exercised and Unexercised CLIN/SLINs with Mod Status as Closed and is mapped with Anticipated Contract Value (TM_TOMA__Contract_Amount__c). | TM_DeleteMod is used to calculate this field value. |
Total Value: Unex/Ex (TM_TOMA__Total_Value_Unex_Ex__c) | This field stores the value of Cumulative Total Value: Unex/Ex – Starting Cumulative Total Value: Unex/Ex with Mod Status as Closed. | TM_DeleteMod is used to calculate this field value. |
TC Mod In Progress | This field is used to create a locking mechanism on Ingest SF-30 TC button | The Value set from Platform API side for locking mechanism. |
Object Name: Modification CLIN/SLIN
General calculations/validations for the CLIN/SLIN object in Salesforce.
MOD CLIN/SLIN (API Name) | Calculation |
|---|---|
Funded Amount (TM_TOMA__Funded_Amount__c) | This field stores the sum of value of Funded Cost, Funded Fee, and Funded Price. Formula field: SUM (Funded Cost, Funded Fee, Funded Price) |
Obligated Value (TM_TOMA__Obligated_Value__c) | This field stores the sum of value of Obligated Cost, Obligated Fee, and Obligated Price. Formula field: SUM (Obligated Cost, Obligated Fee, Obligated Price) |
Object Name: ACRN
General calculations/validations for the ACRN object in Salesforce.
ACRN Fields (API Name) | Calculation |
|---|---|
Total Funding (TM_TOMA__Total__c) | This field stores the sum of CLIN ACRN's Funded Amount associated with this ACRN. Roll-Up Summary: SUM (CLIN ACRN Funded Amount) |
Total Funded Cost (TM_TOMA__Total_Funded_Cost__c) | This field stores the sum of CLIN ACRN’s Funded Cost Amount associated with this ACRN. Roll-Up Summary: SUM (CLIN ACRN Funded Cost Amount) |
Total Funded Fee (TM_TOMA__Total_Funded_Fee__c) | This field stores the sum of CLIN ACRN’s Funded Fee Amount associated with this ACRN. Roll-Up Summary: SUM (CLIN ACRN Funded Fee Amount) |
Total Funded Price (TM_TOMA__Total_Funded_Price__c) | This field stores the sum of CLIN ACRN’s Funded Price Amount associated with this ACRN. Roll-Up Summary: SUM (CLIN ACRN Funded Price Amount) |
Validation Rules
Object Name: Our Contract
Validations for the Period of Performance object in Salesforce.
Validation Rule | Description | If the Validation Rule is Active | If the Validation Rule is Inactive | Error Messages |
|---|---|---|---|---|
Max_Obligated_Amount_Error | The sum of Task Orders' Anticipated Contract Value must not exceed the IDIQ's Contract Ceiling Value (only if the IDIQ Contract Ceiling Value is neither 0 nor NULL) | The user is not able to add Anticipated Contract Value on the Task Order Contract which may exceed Contract Ceiling Value of the IDIQ Contract. Also, the user is not able to add Task Order CLIN Obligated Values which may exceed Ceiling Value of the IDIQ Contract. | The user can add any Anticipated Contract Value on the Task Order Contract or can add any Obligated Values on Task Order CLIN/SLIN. | The sum of all Task Orders' Total Obligated Values cannot exceed the Contract Ceiling Value of the IDIQ Contract. |
Validate_TO_Type_Contract_Only_With_IDIQ | This validation rule ensures that a child Contract can only be created under an IDIQ parent Contract. | If the user tries to create or update a Task Order Contract and adds a Master Contract other than an IDIQ Contract, then they receive an error message. Existing Client Impact:- Users cannot update Task Order Contracts linked to a Master Contract that is not of the IDIQ type. | The user cannot add any Contract in Master Contract Vehicle field in a Task Order Contract. | Task Order Contract can be only mapped to an IDIQ Contract. |
Object Name: Period of Performance (POP)
Validations for the Period of Performance object in Salesforce.
Validation Rule (API Name) | Description | IF Validation Rule Activate | IF Validation Rule Inactive | Error Messages |
|---|---|---|---|---|
Check_Mod_Count_and_Record_Status | When Contract is in the Final Stage and no Mod is Open, then the user cannot add or update Period related information. To add or update a Period, an Open Mod must be created before making changes. | The user is not able to add or update Period for that particular Contract from the POP tab and receives a validation error as shown in the Error Messages column. Existing Client Impact: | The user can not add or update Period details from the POP tab but can make changes from the standard Detail POP Page Layout. | This contract is locked. Please add a modification to change values or exercise an option. |
Lock_Funding_and_Value_Validation | When Lock Value & Funding is checked and no Mod is Open. | The user is not able to add or update Period for that particular Contract from the POP tab. When updating from Standard Detail POP, the user gets a validation error. Existing Client Impact: | The user can not add or update Period details from the POP tab but can make changes from the Standard Detail POP page layout. | This contract is locked. Please add a modification to change values or exercise an option |
Validate_StartEnd_Date_Respective_IDIQ | When a Task Order (TO) Period of Performance (POP) is created or updated, it must fall within the range of the IDIQ Base Period Start Date and End Date. | The user cannot create or update a POP on a Task Order that falls outside the IDIQ date range. Existing Client Impact: | The user can add or update POP dates from anywhere. | Start Date and/or End Date of contract are not within the IDIQ date range |
Object Name: CLIN/SLIN
Validations for the CLIN/SLIN object in Salesforce.
Validation Rule (API Name) | Description | IF Validation Rule Active | IF Validation Rule Inactive | Error Messages |
|---|---|---|---|---|
Check_Funding_Rollup
| This validation rule ensures that the Total Funded Amount does not exceed the Total Obligated Value at the CLIN level. This check does not apply at the SLIN level. | The user encounters a validation error when adding or updating Funding that exceeds the Total Obligated Value. Existing Client Impact: | The user is allowed to add or update Funding that exceeds the Total Obligated Value. | Funded Amount cannot be greater than Obligated Value. |
Check_Slins_Funded_Amount | This validation rule ensures that the SLIN Funded Amount cannot exceed its Total Obligated Value. | The user encounters a validation error when adding or updating SLIN Funded Amount that exceeds the Total Obligated Value. Existing Client Impact: If users have SLINs associated with a specific CLIN where the Funded Amount exceeds the Total Obligated Value, and the users attempt to update any other SLIN field such as Funded Fee, Funded Cost, or Funded Price without correcting the discrepancy, they receive an error message as specified in the Error Message column. | The user can add or update SLIN Funding greater than its Total Obligated Value. | Funding of a CLIN/SLIN cannot exceed obligations. |
CLIN_ACRNs_can_be_positive_or_negative | This validation rule ensures that the Total Funded Amount cannot be less than zero. | The user gets an error when adding or updating Funding, if the Total Funding Amount becomes less than zero for that CLIN/SLIN. Existing Client Impact: If users have CLIN/SLINs with a Total Funded Amount less than 0 and attempt to update any field on the associated CLIN ACRN record, they receive an error if the Total Funded Amount remains less than 0. | The user can add or update Total Funding Amount for CLIN/SLIN to negative as well. | Funded Amount for a CLIN/SLIN or Total Funding for an ACRN cannot be negative. Please check the funding amount values. |
Lock_Funding_and_Value_Validation | When a Contract's Lock Value & Funding is checked and no Mod is Open, then the CLIN/SLIN cannot be edited. | The user cannot add or update CLIN/SLIN from the CLIN/SLIN tab because the Add and Edit button is disabled at the component level. Additionally, if the user attempts to add or edit CLIN/SLIN for a locked Contract from the standard page, they encounter an error. Existing Client Impact: If a user already has CLIN/SLIN records for a Contract where the Lock Value & Funding checkbox is selected, they are unable to add or update CLIN/SLIN details from the component level, as the Add and Edit buttons are disabled. Additionally, if the user attempts to update CLIN/SLIN details from the Standard Detail page, they receive an error message as specified in the Error Messages Column. | The user cannot add or update CLIN/SLIN details from the CLIN/SLIN tab as Add and Edit buttons are set to disabled, but can make changes from the Standard Detail page. | This contract is locked. Please add a modification to change values or exercise an option |
Can_not_add_fundings_for_unexercise_clin | This validation rule ensures that Funding cannot be added for CLIN/SLINs that are not exercised. | The user cannot add Funding to CLIN/SLINs that are not exercised. Existing Client Impact: The user having Funding already added to CLIN/SLINs are not able to update Funding. | The user cannot add Funding to CLIN/SLINs from the CLIN/SLIN tab because Funding can only be added if the CLIN/SLIN is exercised. | Please exercise the CLIN/SLIN before adding funding. |
Can_not_clin_to_unexecised_with_fundings | This validation rule ensures that CLIN/SLINs cannot be unexercised if Funding is available. | The user is not able to unexercise CLIN/SLINs if Funding is available. Existing Client Impact: The Users with Funding added to CLIN/SLINs are not able to update unexercised CLIN/SLINs. | The user is able to unexercise CLIN/SLINs with Funding available. | Please remove all funding before unexercising the CLIN/SLIN.
|
Object Name: ACRN
Validations for the ACRN object in Salesforce.
Validation Rule (API Name) | Description | IF Validation Rule Active | IF Validation Rule Inactive | Error Messages |
|---|---|---|---|---|
Total_Funding_cannot_be_below_zero | This validation rule ensures that ACRN's Total Funding cannot be less than zero. | The user receives an error when adding or updating ACRN's Total Funding becomes less than zero. Existing Client Impact: If a user has existing Funding added to a CLIN/SLIN record and an associated ACRN, any updates to the CLIN/SLIN Funding also updates the Total Funding field for the linked ACRN. If the Total Funding field value for the ACRN becomes less than zero, the user encounters an error as specified in the Error Message column. Additionally, the user cannot add Funding from any source if the Total Funding field is less than zero. | The user can enter any Funding values. | Total Funding for an ACRN cannot be negative. |
Object Name: CLIN ACRN
Validations for the CLIN ACRN object in Salesforce.
Validation Rule (API Name) | Description | IF Validation Rule Active | IF Validation Rule Inactive | Error Messages |
|---|---|---|---|---|
Funded_Amount_Validation | This validation rule ensures that Funded Amount is equal to the sum of Funded Cost, Funded Fee, and Funded Price. | The user encounters an error when adding or updating if the sum of the CLIN ACRN Funded Amount is not equal to the sum of Funded Cost, Funded Fee, and Funded Price. This validation applies to both the CLIN/SLIN component and the Standard page. Existing Client Impact: If a user has existing Funding added to a CLIN/SLIN record and attempts to update the Funding for that CLIN/SLIN, the associated CLIN ACRN record is also updated. If the user modifies fields such as Funded Amount, Funded Cost, Funded Fee, or Funded Price, and the Funded Amount does not equal the sum of Funded Fee, Funded Cost, and Funded Price upon saving, the user receives an error as specified in the Error Message Column. | The user can add any values to Funded Amount. | Funded Amount is not equal to the sum of Funded Cost, Funded Fee and Funded Price. Please check the funding details. |
Object Name: Modification
Validations for the Modification object in Salesforce.
Validation Rule (API Name) | Description | IF Validation Rule Active | IF Validation Rule Inactive | Error Messages |
|---|---|---|---|---|
Check_Open_Mod_On_Contract_Vehicle | This validation rule ensures that the user cannot create more than one Mod. | The user encounters an error if they attempt to create more than one Open Mod. Existing Client Impact: If a user has existing Mods associated with an Our Contract record where the status is Open and attempts to create or update any fields on a Mod record, saving the record results in an error if it causes more than one Mod to remain open for the same Contract. The error message is specified in the Error Message Column. | The user can create any number of Open Mods. | The modification cannot be created because only one modification may be open at a time. Please close the previous modification. |
Object Name: Modification CLIN/SLIN
Validations for the Modification CLIN/SLIN object in Salesforce.
Validation Rule (API Name) | Description | IF Validation Rule Active | IF Validation Rule Inactive | Error Messages |
|---|---|---|---|---|
Can_not_add_fundings_for_unexercise_peri | This validation rule ensures that Funding cannot be added to MOD CLIN/SLIN records with Periods that are not exercised. | The user encounters an error when adding or updating Funding values for a MOD CLIN record if the MOD CLIN has a Period selected that is not exercised for the CLIN/SLIN. Existing Client Impact: If a user has already added Funding to a MOD CLIN record linked to a CLIN/SLIN with a Period that is not exercised and attempts to add or update the Funding for this record, they receive an error message as specified in the Error Message Column. | The user can add Funding to any CLIN/SLIN, regardless of whether the period is exercised or not exercised. | Please exercise the CLIN/SLIN before adding funding. |
Backend Trigger Calculation Validation
Object Name: CLIN/SLIN
Backend triggers for the CLIN/SLIN object in Salesforce.
API Name: (TM_ClinSlinTrigger)
Trigger Action | Description | Trigger if Active | Trigger if Inactive | Error Messages |
|---|---|---|---|---|
Upon deleting CLINs | This validation rule ensures that deletion is not allowed if the CLIN has associated child SLINs. | The user encounters an error when attempting to delete a CLIN that has associated child SLINs. Existing Client Impact: If a user has a CLIN with associated child SLIN records and attempts to delete the CLIN, they see an error message as specified in the Error Messages column. | Users can delete any CLIN/SLIN record. No calculations are performed on the CLIN/SLIN component, so no updates or roll-ups occur for the associated Period or Contract. | cannot be deleted because it has child records. Please delete the associated child records before deleting the CLIN. |
Upon deleting SLINs | This validation rule ensures that a SLIN cannot be deleted if it has associated child SLINs. | The user encounters an error when attempting to delete a SLIN that has associated child SLINs. Existing Client Impact: If a user has a SLIN with associated child SLIN records and attempts to delete the SLIN, they see an error message as specified in the Error Messages column. | Users can delete any CLIN/SLIN record. No calculations are performed on the CLIN/SLIN component, so no updates or roll-ups occur for the associated Period or Contract. | cannot be deleted because it has child records. Please delete the associated child records before deleting the SLIN. |
Upon creating CLIN/SLINs | This validation rule ensures that the CLIN/SLIN name or number must be unique within the Contract. | The user encounters an error when attempting to create a CLIN or SLIN with a duplicate name for the same Contract. Existing Client Impact: If a user has an existing CLIN/SLIN record for a Contract with the same name and attempts to create or update a record, they receive an error message as specified in the Error Messages column. The system does not allow the creation or update of a CLIN/SLIN record with a duplicate name. | Users can create CLIN/SLIN records with the same name for a Contract. Since no calculations are performed on the CLIN/SLIN component, the calculations do not roll up to the Period or Contract. | already exists for this contract. Please ensure CLINs/SLINs are unique for the Subcontract. |
Object Name: Modification
Backend triggers for the Modification object in Salesforce.
API Name: (TM_DeleteMod)
Trigger Action | Description | Trigger Active | Trigger Inactive | Error Messages |
|---|---|---|---|---|
Upon deleting Mod | This validation rule ensures that Mods cannot be deleted if they are associated with Modification CLINs. | The user encounters an error if they attempt to delete a Mod that has associated Modification CLINs. Existing Client Impact: If a user attempts to delete a Mod record that has associated child Modification CLIN records, they receive an error message as specified in the Error Messages column. The system prevents the deletion of such records. | Users can delete a MOD. No calculations are performed on the Modification record fields. | cannot be deleted because it has child records. Please delete the associated child records before deleting the modification. |
Object Name: Period of Performance (POP)
Backend triggers for the Period of Performance object in Salesforce.
API Name: (TM_PeriodTrigger)
Trigger Action | Description | Trigger Active | Trigger Inactive | Error Messages |
|---|---|---|---|---|
Upon deleting Period | This validation rule ensures that a Period cannot be deleted if CLIN/SLIN records are associated with it. | The user encounters an error if they attempt to delete a Period that has CLIN/SLIN records associated with it. Existing Client Impact: If a user has POP records with associated child CLIN/SLIN records and attempts to delete the POP record, they receive an error message as specified in the Error Messages column. The system prevents the deletion of the POP record. | Users can delete a Period. However, the fields on the Contract are not recalculated. | cannot be deleted because it has child records. Please delete associated child records before deleting this POP. |
Upon creating Period | This validation rule ensures that no two POPs coincide with each other with respect to Start Date and End Date. | The user encounters an error when creating a Period if the Start Date and End Date overlap with those of another existing Period. Existing Client Impact: If a user has existing Period records for a Contract with overlapping Start Date and End Date, and attempts to update or create a new record, they receive an error message as specified in the Error Messages column. The system prevents the creation or update of the Period record with overlapping dates. | Users can create Period records with overlapping dates for a Contract. However, no calculations are performed for the roll-up to the Contract, and the Start Date and End Date on the Contract are not updated. | A period already exists within the same date range. |
Object Name: Modification CLIN/SLIN
Backend triggers for the Modification CLIN/SLIN object in Salesforce.
API Name: (TM_CreateAcrnRecord)
Trigger Action | Trigger Active | Trigger Inactive |
|---|---|---|
Upon creating/updating/deleting Mod CLIN/SLIN | It calculates all changes made by the Modification CLIN/SLIN and updates them at the CLIN/SLIN level. This triggers the Period trigger, and the calculations are recalculated on the Contract. Existing Client Impact: If a user has an existing record in the system and updates, creates, or deletes any Modification CLIN/SLIN record, it updates the parent CLIN/SLIN record's Funding fields. | No calculations are performed on CLIN/SLIN record after adding/updating Modification CLIN/SLIN. |
Object Name: CLIN ACRN
Backend triggers for the CLIN ACRN object in Salesforce.
API Name: (TM_ClinAcrnTrigger)
Trigger Action | Trigger Active | Trigger Inactive |
|---|---|---|
Upon creating/updating/deleting CLIN ACRN | It updates the ACRN fields based on the data values from the associated CLIN ACRN. Existing Client Impact: If a user has an existing record in the system and updates, creates, or deletes any CLIN ACRN record, it updates the ACRN Funding fields accordingly. | No calculations are performed on ACRN. |
Flows Used
Flow Name | Flow on Object | Description |
|---|---|---|
Our Contract Lock Flow | Our Contract | It sets the Lock Value & Funding checkbox to TRUE when the Contract is saved and activated. |
Create Default Mod for Our Contract | Our Contract | It creates a default Mod (Mod 0) with pre-defined default values. |
Our Contract POP Exercise Value Update | CLIN/SLIN | It updates the POP exercise value to TRUE when the CLIN/SLIN is set to exercised. |
Deactivating Triggers
To deactivate triggers, follow these steps:
Login to your Salesforce Org.
Click the gear icon and select Setup.

Search and go to Custom Settings using Quick Find.

Search and go to GRC Triggers.

Click Manage (you will see a list of triggers).

Click Edit.

Select the Deactivate checkbox against the trigger you want to deactivate and click Save.
