Export campaign data#
Collecting numbers is only half a campaign. The export is what puts them back into the planning model, and Timberline demonstrates the two shapes that decision comes in.
The two exports in the budget campaign#
Plan1 |
FixedCosts |
|
|---|---|---|
| Target | Planning Sample Demo / THC_Sales |
Planning Sample Demo / THC_IncomeStatement |
| Trigger | none: run on demand | form status change |
| Includes unapproved data | no | yes |
| Includes unchanged data | no | no |
| Write-back | proportional | proportional |
Plan1 is the end-of-cycle export. No trigger, so somebody runs it deliberately once the cycle
closes. It takes only approved data, so what lands in the sales cube is what the approvers signed off.
FixedCosts is the continuous export. It fires whenever a form changes state, and it includes
unapproved data, so the income-statement cube stays warm while contributors are still working, and
downstream reports show current thinking rather than last month's.
That is the design decision: do you want the model to reflect what is agreed, or what is current? Most campaigns want one of each, a live view for the people running the process, and a governed view for the numbers of record.
How the mapping works#
An export maps each form's collected data into a cube by matching dimensions:
Cube: THC_Sales
Dimensions: THC_Version | THC_Market | THC_Product | THC_Channel | THC_Time | THC_Sales_Measure
THC_Version = "Plan" ← fixed
THC_Market = Fields.Market ← from the form
THC_Product = Fields.Account ← from the form
THC_Channel = Fields.Channel ← from the form
THC_Time = Fields.Time ← from the form
THC_Sales_Measure = "Net Sales" ← fixed
Every dimension of the target cube gets a source, and there are two kinds:
- A fixed value:
"Plan","Net Sales". This export always writes plan net sales; nothing about the form can change that. - A form field:
Fields.Market,Fields.Account. These come from the input binding's dimension arguments in the template.Fields.Accountexists because the binding declared"Account", $A:$A.
The names have to line up. The Fields.* names are exactly the dimension names used in the
template's RW_CONTRIBUTION_INPUT bindings. Change a binding's dimension name and the export mapping
must change with it, or the export silently loses that dimension.
The FixedCosts export is the same pattern against a four-dimension cube:
THC_Version fixed to Plan, and Market, Time and Account from form fields.
Proportional write-back#
Both exports have proportional write-back on, and the shared model connection carries it too.
That means a value written at a consolidated level spreads across its children in proportion to their existing values. Type a total for a product line and the products underneath it move together, keeping their relative shape.
This is usually what a planner wants, and it reliably surprises people the first time they see it. Say it out loud in a demo rather than letting someone discover it.
Running an export#
- Open the campaign and go to its automation tasks.
- For an on-demand export like
Plan1, run it from there once the forms are approved. - Check the result in the model, or, better, open a report that reads the cube and show the numbers
there. Timberline Sales Information reads
THC_Sales, so contributed plan numbers show up in a report the audience has already seen.
Step 3 is the moment worth building the demo around: the number they typed appears in the board pack.
Getting data out as a file instead#
The budget campaign has export/import enabled, which is a different thing: contributors can take their form out to Excel, work offline, and bring it back. Two options shape what they get:
- hide non-print area: the exported workbook shows the form, not the plumbing.
- lock non-input cells: they can only type where they are supposed to.
Both are on for the budget campaign. If you turn on protection, keep restrict to input cells on too, or the exported workbook locks everything including the cells people need.
Two cautions#
- The export needs write-back rights. The model connection is shared with reporting; reading works long before writing does. Test the write path separately.
- Including unapproved data is a governance choice, not a convenience. Anything the continuous export writes is visible to everything downstream. Be sure the audience for that cube understands they are seeing work in progress.
Related#
- Build a campaign · Update an input form
- Customer guide: Contribution overview
Feedback on this page
Comments, questions, requests, or something missing or unclear? Email us - the page you are on is filled in for you.
Email feedback on this pageOr write to support@reportworq.com directly.