7.2.23.1.1 Hidden Tab Rules in Campaign Builder

What are Hidden Tab Rules in Campaign Builder

 

Hidden Tab Rules in Campaign Builder refer to a set of predefined instructions that control how various elements behave within a campaign management system. These instructions are vital for maintaining data accuracy and consistency, especially when dealing with packages and individual items.

Hidden Tab Rules determine which fields can't be changed, which actions are hidden, or how child records behave based on specific criteria to ensure a smooth and controlled operation.

You can find these rules in the campaignBuilderConfigs.js file under the TAB_RULES section.

List of Hidden Tab Rules

Rule 1: "ADvendio Rules - Linear packages (Child)"

If the rule matches with a Linear item (Parent), it’ll set some fields of its child records as read-only.

Definition

ADvendio Rules - Linear packages (Child):

with logicalConnector AND (all conditions should be met):

when the 3 conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix == ADvendio

advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c == Linear

with applyRuleInChildItem: true: If it matches with a parent record, then apply the following changes in its child records:

make read-only the following fields:

from_until
advendio__from_date__c
advendio__until_date__c
advendio__quantity__c
advendio__sales_price__c
advendio__guaranteed_ai__c
advendio__frequency__c
advendio__clickrate__c
advendio__ac__c
advendio__rate_discount_2_custom__c
advendio__rate_discount_3_custom__c
advendio__rate_discount_4__c
advendio__surchargesalesprice__c
advendio__surchargeb3__c
advendio__surchargeb3abs__c
advendio__surchargeb2__c
advendio__surchargeb2abs__c
advendio__agency_commission__c
advendio__thirdpartycommissioncustom__c
advendio__quantity_discount_custom__c
advendio__targetnet__c
advendio__budgetn2__c

Technical definition/code

{ name: "ADvendio Rules - Linear packages (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Linear" } ], applyRuleInChildItem: true, readonlyFields: [ "from_until", "advendio__from_date__c", "advendio__until_date__c", "advendio__quantity__c", "advendio__sales_price__c", "advendio__guaranteed_ai__c", "advendio__frequency__c", "advendio__clickrate__c", "advendio__ac__c", "advendio__rate_discount_2_custom__c", "advendio__rate_discount_3_custom__c", "advendio__rate_discount_4__c", "advendio__surchargesalesprice__c", "advendio__surchargeb3__c", "advendio__surchargeb3abs__c", "advendio__surchargeb2__c", "advendio__surchargeb2abs__c", "advendio__agency_commission__c", "advendio__thirdpartycommissioncustom__c", "advendio__quantity_discount_custom__c", "advendio__targetnet__c", "advendio__budgetn2__c" ] }

Rule 2: "ADvendio Rules - Individual packages (Parent)"

If the rule matches with an Individual item (parent), then it’ll make read-only and hide some fields in that record.

Definition

ADvendio Rules - Individual packages (Parent):

with logicalConnector AND (all conditions should be met):

when the 3 conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix == ADvendio

advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c == Individual

with applyRuleInChildItem: false: If it matches with a parent record, then apply the following changes in the parent record:

make read-only the following fields:

from_until
advendio__from_date__c
advendio__until_date__c
advendio__quantity__c
advendio__sales_price__c
advendio__guaranteed_ai__c
advendio__frequency__c
advendio__clickrate__c
advendio__rate_discount_2_custom__c
advendio__rate_discount_3_custom__c
advendio__rate_discount_4__c
advendio__rate_discount_1__c
advendio__quantity_discount_custom__c
advendio__surchargesalesprice__c
advendio__surchargeb3__c
advendio__surchargeb3abs__c
advendio__surchargeb2__c
advendio__surchargeb2abs__c
advendio__thirdpartycommissioncustom__c
advendio__targetnet__c
advendio__budgetn2__c

Technical definition/code

{ name: "ADvendio Rules - Individual packages (Parent)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Individual" } ], applyRuleInChildItem: false, readonlyFields: [ "from_until", "advendio__from_date__c", "advendio__until_date__c", "advendio__quantity__c", "advendio__sales_price__c", "advendio__guaranteed_ai__c", "advendio__frequency__c", "advendio__clickrate__c", "advendio__rate_discount_2_custom__c", "advendio__rate_discount_3_custom__c", "advendio__rate_discount_4__c", "advendio__rate_discount_1__c", "advendio__quantity_discount_custom__c", "advendio__surchargesalesprice__c", "advendio__surchargeb3__c", "advendio__surchargeb3abs__c", "advendio__surchargeb2__c", "advendio__surchargeb2abs__c", "advendio__thirdpartycommissioncustom__c", "advendio__targetnet__c", "advendio__budgetn2__c" ] }

Rule 3: "ADvendio Rules - Individual packages (Child) - 1"

If the rule matches with an Individual item (parent), then it’ll make read-only some fields in child records.

Definition

ADvendio Rules - Individual packages (Child) - 1:

with logicalConnector AND (all conditions should be met):

when the 3 conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix == ADvendio

advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c == Individual

with applyRuleInChildItem: true: If it matches with a parent record, then apply the following changes in child records:

make read-only the following fields:
advendio__rate_discount_1__c
advendio__agency_commission__c
advendio__ac__c

Technical definition/code

{ name: "ADvendio Rules - Individual packages (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Individual" } ], applyRuleInChildItem: true, readonlyFields: [ "advendio__rate_discount_1__c", "advendio__agency_commission__c", "advendio__ac__c" ] }

Rule 4: "ADvendio Rules - Individual packages (Child) - 2"

If the rule matches with an Individual item (parent), then it’ll make read-only a field in child records and it will also set an action as hidden.

Definition

ADvendio Rules - Individual packages (Child) - 2:

with logicalConnector AND (all conditions should be met):

when the 4 conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix == ADvendio

advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c == Individual

advendio__ad_price__r.advendio__ad_Spec__r.advendio__fixedquantitypackage__c == true

with applyRuleInChildItem: true: If it match with a parent record, then apply the following changes in child records:

make read-only the following field:

advendio__quantity__c

hide the following action:

delete

Technical definition/code

 

Rule 5: "ADvendio Rules - Individual packages (Child) - 3"

If the rule matches with an Individual item (parent), then it’ll set an action as hidden.

Definition

ADvendio Rules - Individual packages (Child) - 2:

with logicalConnector AND (all conditions should be met):

when the 3 conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix == ADvendio

advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c == Individual

with applyRuleInChildItem: true and

with sublogicalConnector AND (all conditions should be met):

when 1 condition is met:

advendio__componentoptional__c != true

If it matches with a parent record and child record at the same time, then apply the following changes in child records:

hide the actions:

delete

copy

Technical definition/code

Rule 6: "ADvendio Rules - Prorated packages (Parent)"

If the rule matches with a Prorated item (parent), then it’ll make read-only some fields in that record.

Definition

ADvendio Rules - Prorated packages (Parent):

with logicalConnector AND (all conditions should be met):

when the 3 conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix == ADvendio

advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c == Prorated

with applyRuleInChildItem: false: If it match with a parent record, then apply the following changes in the parent record:

make read-only the following fields:

advendio__ratediscount3abs__c
advendio__thirdpartycommissionabs__c

Technical definition/code

Rule 7: "ADvendio Rules - Prorated packages (Child)"

If the rule matches with a Prorated item (parent), then it’ll make read-only and hide some fields in child records.

Definition

ADvendio Rules - Prorated packages (Child):

with logicalConnector AND (all conditions should be met):

when the 3 conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix == ADvendio

advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c == Prorated

with applyRuleInChildItem: true: If it match with a parent record, then apply the following changes in child records:

make read-only the following field:

from_until
advendio__from_date__c
advendio__until_date__c
advendio__quantity__c
advendio__sales_price__c
advendio__guaranteed_ai__c
advendio__frequency__c
advendio__clickrate__c
advendio__ratediscount1abscustom__c
advendio__ratediscount2abscustom__c
advendio__ratediscount3abscustom__c
advendio__ratediscount4abscustom__c
advendio__quantity_discount_custom__c
advendio__surchargeb3abs__c
advendio__surchargeb2abs__c
advendio__thirdpartycommissioncustom__c
advendio__thirdpartycommissioncustom__c
advendio__agency_commission__c
advendio__ac__c
advendio__ratediscount3abs__c
advendio__thirdpartycommissionabs__c
advendio__targetnet__c
advendio__budgetn2__c

Technical definition/code

Rule 8: "ADvendio Rules - Connected item"

If the rule matches with an Individual item (parent), then it’ll set an action as hidden.

Definition

ADvendio Rules - Connected item:

with logicalConnector AND (all conditions should be met):

when the conditions are met:

advendio__connecteditem__c != NULL

with applyRuleInChildItem: false: If it matches with a parent record, then apply the following changes:

hide the actions:

delete

Technical definition/code

 

Rule 9: "ADvendio Rules - Connected item (Child)"

If the rule matches with an Individual item (parent), then it’ll set an action as hidden in the child records.

Definition

ADvendio Rules - Connected item (Child):

with logicalConnector AND (all conditions should be met):

when the conditions are met:

user.isactive == TRUE

with subLogicalConnector AND (all conditions should be met):

when the subConditions are met:

advendio__connecteditem__c != NULL

with applyRuleInChildItem: true: If it matches with a parent record, then apply the following changes in child records:

hide the actions:

delete

Technical definition/code

Rule 10: "ADvendio Rules - Disabled Split Action (Parent)"

If the rule matches with a Package item (parent), then it’ll set an action as hidden in the record.

Definition

ADvendio Rules - Disabled Split Action (Parent):

with logicalConnector AND (all conditions should be met):

when the conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

with applyRuleInChildItem: false: If it matches with a parent record, then apply the following changes in the parent record:

hide the actions:

split

Technical definition/code

Rule 11: "ADvendio Rules - Disabled Split Action (Child)"

If the rule matches with a Package item (parent), then it’ll set an action as hidden in the child records.

Definition

ADvendio Rules - Disabled Split Action (Child):

with logicalConnector AND (all conditions should be met):

when the conditions are met:

advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet

with applyRuleInChildItem: true: If it matches with a parent record, then apply the following changes in child records:

hide the actions:

split

Technical definition/code

Rule 12: "ADvendio Rules - Net Calculation Hide Target Net - 1"

If the rule matches with an Item (parent or child in a package or not a package item), then it’ll make the field advendio__targetnet__c hidden in that record.

Definition

ADvendio Rules - Net Calculation Hide Target Net - 1:

with logicalConnector OR (any condition could be met):

when any of the conditions are met:

advendio__billing_category__c == Fixed Price

advendio__billing_category__c == CPD

advendio__billing_category__c == CPW

advendio__billing_category__c == CPMo

advendio__billing_category__c == CPY

with applyRuleInChildItem: false: If it matches with a parent record, then apply the following changes in the parent record:

make hidden the following fields:

advendio__targetnet__c

Technical definition/code

Rule 13: "ADvendio Rules - Read-only fields for Budget Billing Category"

If the billing category is Budget, then it’ll make the fields ADvendio__Quantity__c and ADvendio__DistributionUnit__c hidden in that record.

Definition

ADvendio Rules - Read-only fields for Budget Billing Category:

with logicalConnector AND (all conditions should be met):

when the conditions are met:

advendio__billing_category__c == Budget

with applyRuleInChildItem: false: If it matches with a parent record, then apply the following changes in the parent record:

make hidden the following fields:

"ADvendio__Quantity__c"

"ADvendio__DistributionUnit__c"

Technical definition/code

Rule 14: "With a selected rebate in kind condition applied, the special discount is read-only"

If the item has an applied commitment condition that is rebate in kind (as a field or a related record), then it’ll make the fields ADvendio__Rate_Discount_4__c readOnly in that record.

Definition

ADvendio Rules - With a selected rebate in kind condition applied, the special discount is read-only:

with logicalConnector OR (any condition could be met):

when the conditions are met:

advendio__rebateinkindcondition__c != NULL

ISREBATEINKIND()

make read only the following fields:

"ADvendio__Rate_Discount_4__c"

Technical definition/code

 

Rule 15: "For not new items with a selected rebate in kind condition applied (new structure), the quantity is read-only"

If the item is new and has an applied commitment condition that is rebate in kind (as a related record), then it’ll make the fields ADvendio__Quantity__c readOnly in that record.

Definition

ADvendio Rules - For not new items with a selected rebate in kind condition applied (new structure), the quantity is read-only:

with logicalConnector AND (all conditions should be met):

when the conditions are met:

record.isNew == TRUE

ISREBATEINKIND()

make read only the following fields:

"ADvendio__Quantity__c"

Technical definition/code

Rule 16: "For not new items with a selected rebate in kind condition applied (old structure), the quantity is read-only"

If the item is new and has an applied commitment condition that is rebate in kind (as a field), then it’ll make the fields ADvendio__Quantity__c readOnly in that record.

Definition

ADvendio Rules - For not new items with a selected rebate in kind condition applied (old structure), the quantity is read-only:

with logicalConnector AND (all conditions should be met):

when the conditions are met:

record.isNew == TRUE

advendio__rebateinkindcondition__c != NULL

make read only the following fields:

"ADvendio__Quantity__c"

Technical definition/code

Rule 17: "For items without Rate Steps, Rate Calculation Quantity is hidden - 1"

If the ad price assigned to the item doesn’t have any applicable rate step (advendio__ad_price__r.advendio__totalapplicableratesteps__c = 0), then it’ll hide the field ADvendio__RateCalculationQuantity__c for that record.

Definition

ADvendio Rules - For items without Rate Steps, Rate Calculation Quantity is hidden - 1:

with logicalConnector AND (all conditions should be met):

when the conditions are met:

advendio__ad_price__r.advendio__totalapplicableratesteps__c == 0

hide the following field:

"ADvendio__RateCalculationQuantity__c"

Technical definition/code

 

Rule 18: "ADvendio Rules - Set Ad Price and Media Campaign as read-only - Parent"

Always make the fields ADvendio__Ad_Price__c, ADvendio__Media_Campaign__c and CurrencyIsoCode read-only for Child Items

Definition

ADvendio Rules - Set Ad Price and Media Campaign as read-only - Child:

with logicalConnector AND (all conditions should be met):

when the conditions are met:

user.isactive == true

make read only the following fields:

"ADvendio__Ad_Price__c"

"ADvendio__Media_Campaign__c"

"CurrencyIsoCode"

Technical definition/code