Intersection.Match Function

The Intersection.Match function returns TRUE if the following conditions are met for each dimension listed:

Use the Intersection.Match function in a rule formula to identify the destination accounts of a rule-based driver.

Syntax
Intersection.Match(dim-ref1[.dim-member-ref1][,dim-ref2[.dim-member-ref2]]*)
Examples
Intersection.Match(Product, Customer)

This example is equivalent to the following code:

  (Source."Product".isNone() 
  OR Source."Product".DimMemRef=Destination."Product".DimMemRef)
AND
  (Source."Customer".isNone() 
  OR Source."Customer".DimMemRef=Destination."Customer".DimMemRef)

This example ensures that the dimension members of the Product and Customer dimensions are the same in both source and destination accounts.

Note: The No-dimension account, "None", acts like a wildcard. It matches every destination account. The "None" account refers to an account that has None for all dimensions.
Intersection.Match(Product, Customer, Channel)

This example is equivalent to the following code:

  (Source."Product".isNone() 
  OR Source."Product".DimMemRef=Destination."Product".DimMemRef)
AND
  (Source."Customer".isNone() 
  OR Source."Customer".DimMemRef=Destination."Customer".DimMemRef)
AND
  (Source."Channel".isNone() 
  OR Source."Channel".DimMemRef=Destination."Channel".DimMemRef)

This example ensures that the dimension members of the Product, Customer, and Channel dimensions are the same in both source and destination accounts.

Note: The No-dimension account, "None", acts like a wildcard. It matches every destination account.
Intersection.Match(Product.Frisbee)

This example is equivalent to the following code:

  Source."Product".isNone() 
OR
  Source."Product".DimMemRef=Destination."Product".DimMemRef

This example ensures that the destination account has the dimension member named "Frisbee" in the Product dimension.

Note: If there is a specific dimension-member reference present (for example, Product.Frisbee) then the condition applies only to destination accounts.
Note: The No-dimension account, "None", acts like a wildcard. It matches every destination account.

Notes:

You can use the Intersection.Match function to accomplish what the Sales Volume driver accomplished in previous versions of SAS Cost and Profitability Management.

For example, suppose there is a model with two dimensions, Product and Customer, in the Cost Object module. Here is the rule formula that was used for a Sales Volume driver:

  (Source.Product.dimMemRef="None" 
  OR Source.Product.DimMemRef=Destination.Product.DimMemRef)
AND
  (Source.Customer.dimMemRef="None" 
  OR Source.Customer.DimMemRef=Destination.Customer.DimMemRef)
AND
  SoldQuantity <> 0

You can replace the entire previous formula with the following equivalent formula using Intersection.Match.

Intersection.Match(Product, Customer) and SoldQuantity<>0

This pattern matches intersections in the following way:

[Bike,None] matches [Bike,Target] and [Bike,WalMart]
[None,Target] matches [Bike,Target] and [Shirt,Target]

You can think of “None” as a type of wildcard. When an account is matched by the rule formula, an assignment is created, such as [Bike,None] –> [Bike,Target] and [Bike,None] –> [Bike,Walmart].

Although it is not shown, [Bike,Target] matches [Bike,Target] as long as the account is in a different module. This restriction prevents an unintended, and possibly meaningless loop.

Notice that Module is treated as a dimension and CostObj is a member of the dimension. This pattern can also be extended to any dimension, so the user can force it to match a specific member on the destination account. Here is an example:

Intersection.Match(Module.CostObj, Product.Ugly, Customer) and SoldQuantity<>0

This pattern replaces the following condition with a new formula:

(Source.Product.isNone()OR(Source.Product.DimMemRef=Destination.Product.DimMemRef)) 

Here is the new formula:

(Destination.Product.DimMemRef=”Ugly”). 

The source account’s Product is not used in this case.