Credit, Credit Bank, Credit Auto


 

The options listed here can be found in the table "AG_AccountType". In that table you will find the DebitCreditMemberId that points to the "AG_DebitCredit" table which has this options:

MemberIDLabel1Debit2Credit3~4+5-

The "credit" type is the key here. If you have fact data rows that point to accounts which their account types are credit ones, those rows will have their sign flipped. This flipping can occurs at the source and/or the the destination model. The formula below tries to summarize this:

destination value= [ AGGREGATION( -1 * "value of type credit" ) + AGGREGATION(value of type different of credit) ]    *   -1(if there's a credit account at destination)

If there's account at source and it is "credit", it will flip at source (before aggregation). If it is also credit at destination, if will flip again.

"value of type credit" means a value (positive or negative) that is associated with a type credit account.

"value of type different of credit" means a value (positive or negative) that is associated with an account which type is not credit. It also include the fact rows that doesn't account at all.

AGGREGATION is a function that can be: SUM, MIN, MAX or AVG

Example:

Source model:

TIMEACCOUNTValue01-Ago-2007credit account1015-Ago-2007debit account2001-Sep-2007credit account-3015-Sep-2007debit account40

and you're a moving it to the following destination model. Aggregation function is SUM. Notice that we're aggregating at the month level:

TIMEACCOUNTValueAgo-2007credit account(10 * -1) + 20 --> 10
destination is credit, flip the sign again: 10 * -1
final value: -10Sep-2007debit account(-30 * -1) + 40 --> 70
no flip at destination.
final value: 70
  • The same thing is happening with the date column. In the source, we have date at the daily granularity. In the destination, we have it at the monthly granularity.

    This is a modeler screen showing the mapping between products at source and destination for the "Products" dimension:

    • Dimension scope: If a dimension at the source is not mapped to another one at destination, we will need to specify a scope for that dimension. PPS needs to know which values of this dimension are valid to be moved. In our example, "store" is a dimension that is not mapped to any dimension at the destination. It has two possible values: Downtown and Campus. If you scope just "Downtown", rows which Store are "Campus" will not be considered. If you want everything, you need to select all members.

    In the same way, if a dimension is not mapped at the destination, you will need to select one member of it as a destination scope. The difference here is that you select only one member to be applied to all rows inserted during the execution. In our example, City is not mapped at destination. The best member to be selected is "Redmond" since we are moving data from the "Redmond Sales" model.

    • Aggregation function: Because there might be a different granularity between source and destination, rows usually are aggregated at the destination. In our example, we are aggregating multiple products to a single product category. We also are aggregating dates from daily basis to monthly basis. There is no sense to repeat rows with the same product and same date at the destination. The data movement execution will aggregate all rows, with the same dimension values, to a single row at the destination. Because of that, an aggregation function must be applied to the measure column. Usually it is SUM but AVG, MIN and MAX are also supported. As an example, in the first table of our example, you can notice that the first two rows are aggregated in one single row and the values are summed: 350.00+20.00=370.00.
  • Is WeakReference a weak feature?

    Weak references is a feature where one object can point to another without holding it. In other words, if only weak references are pointing to that object, it will be eligible to be collected.

    Circular references were a problem in VB6. If a parent points to a child and the child references it back, directly or indirectly, and you don't break this circle, both objects will never be released. This is a very common cause of memory leaks. One way to address that is to use weak reference implementations for VB6. You can find a neat one here: