TM1 / Planning Analytics · model documentation

Workforce & FPM Server — how the model is wired

Northwind Group's internal FP&A and operations model. Every connection was traced from TurboIntegrator source/target assignments (cCubSrc → cCubTgt) and cross-cube DB() rule references in the live source repository, then grouped into layers you can open one at a time.

Pulse environmentPRDTM101
Pulse serviceworkforce_and_fpm
TM1 serverWorkforce_and_FPM
Source repoworkforce_and_fpm
38
connections traced, all listed in the index below
29
are TI data loads (38 − 7 rule − 1 write-back − 1 unconfirmed)
7
are rule-level lookups that move no data
1
write-back path out of TM1 into a source system
5
external systems feed this server
3
registered GL roundtrip steps (ACT-11 / PLAN-1 / PLAN-2)

The model in five layers

Data moves top to bottom, and one path comes back up: results computed inside TM1 are written back to Helios CRM. Click any layer to open just that layer's wiring.

python · SQL · flat-file loads TI pushes hours into the ledger roundtrip step ACT-11 ledger + opportunities → clustering 1 Source systems Helios CRM · Meridian PSA · RGL EU1/EU2/EU3 · Solara Payroll · legacy CSV open ▸ 2 Capture cubes MER Time Entry · TIM Timesheets · TIM Consultant History · CRM Opportunity open ▸ 3 GL & actuals FIN General Ledger — 3 confirmed inbound (+1 unconfirmed), 2 outbound open ▸ 4 Planning FIN Revenue · Expense · Balance Sheet Planning — ACT-11 / PLAN-1 / PLAN-2 open ▸ 5 Feedback to source CRM Account Clustering — computed in TM1, written back into Helios CRM open ▸ write-back to Helios CRM
Reading it. Four downward arrows, one upward return. The return path is the thing most people miss about this model: CRM.Dim.FIN BSEG 2.Write Account Clustering Back to HEL.pro makes Helios CRM both the first source and the last target, so a change made in TM1 can reappear as "source data" on the next inbound load. Rule-level dependencies — period locks, attribute lookups, cell security — sit across all five layers and have their own view.
TM1 cube dimension external system APQ control object TI process rule lookup / unconfirmed registered roundtrip step write-back to source 1keyed below the diagram

Connection index — all 38 traced links

The diagrams simplify; this table doesn't. Every row names the mechanism and the file it was read from. Switching views above filters this list to that layer.

LayerFromToHowEvidence (source file)
IngestHelios CRMCRM OpportunityTICRM.Cub.Opportunity.Load From HEL.SQL.pro — cCubTgt = CRM Opportunity
IngestHelios CRMHEL Contract / Sales Contract / Opportunity Line ItemTIHEL.Cube.Contracts.Load from SQL.pro, HEL.Dim.Opportunity Line Item.Load from SQL.pro, HEL.Dim.Sales Contract Line Item.Load from SQL.pro
IngestHelios CRMHEL Intercompany DefinitionsTIHEL.Cube.Intercompany Definitions.Load From SQL.pro
IngestHelios CRM (SQL staging)HEL Load Tracker timestampsTIHEL.SQL.Metadata Refresh.Opportunities.pro, HEL.SQL.Metadata Refresh.HEL Dim 4.pro
IngestMeridian PSAMER Time Entry, MER TaskTIMER.SQL.Execute Python to Load Table.pro, MER.SQL.Metadata Refresh.Task.pro
IngestLedgerline regional (EU1/EU2/EU3)FIN General Ledger TB, RGL Reporting BalancesTIRGL.Cub.FIN General Ledger TB.Load From RGL.pro (+ .Caller), RGL.Cub.RGL Reporting Balances.Load From RGL.pro, RGL.Cub.Execute Python to Load Attributes Cube.pro
IngestSolara Payrollpayroll — target cube not confirmed?HEL.SLP.Load Payroll.pro → Scripts/pyscripts/solara/solara.py (daily_run)
TimesheetMER Time EntryTIM TimesheetsTITIM.Cub.Timesheets.Load from MER Time Entry.pro
TimesheetSQL public holidays (MER_holidays)TIM TimesheetsTITIM.Cub.Timesheets.Load from SQL Public Holidays.pro — called from the MER load's epilog
TimesheetLegacy CSV exportTIM TimesheetsTITIM.Cub.Timesheets.Load from Export.pro — "flat csv file exported from old Timesheets cube"
TimesheetLegacy CSV exportTIM Consultant HistoryTITIM.Cub.Consultant History.Load From Export.pro
TimesheetTIM Employee attributesTIM Consultant HistoryTITIM.Cub.Consultant History.Load From Attribute.pro — TIM Employee × FIN BSEG 3 × T Year-Month
TimesheetTIM Consultant History (prior month)TIM Consultant History (current)TITIM.Cub.Consultant History.Copy Month to Month.pro
GLTIM TimesheetsFIN General LedgerTITIM.Cub.FIN General Ledger.Load From Timesheets.pro
GLTIM Consultant HistoryFIN General LedgerTITIM.Cub.FIN General Ledger.Load From Consultant History.pro
GLTIM TimesheetsFIN BSEG 1 attribute "Total Hours"TIHEL.Dim.BSEG 1.Load Total Hours from TIM Timehseets.pro — MDX over TIM Timesheets → }ElementAttributes_FIN BSEG 1
GLHelios CRMREC Transaction Load ("Last Load From HEL")TICub.REC Transaction Load - Last Load From HEL.pro, Cub.REC Transaction Load - Last Load.pro
GLMER Time EntryFIN Prepaid AnalysisTI@DOC "Move Prepaid revenue from MER Time entry to FIN Prepaid analysis"; FIN Prepaid Analysis.RUX references MER Time Entry
PlanningCRM OpportunityFIN Revenue Planning + DriversTIFIN.Cub.Revenue Planning.Load From CRM Opportunity.pro — cCubTgt / cCubTgt2 declared explicitly
PlanningMER AllocationsFIN Revenue PlanningTIFIN.Cub.Revenue Planning.Load From MER Allocations.pro
PlanningFIN General LedgerFIN Revenue PlanningACT-11}APQ.C3.FIN.Dim.RoundtripStep.Update.pro — Source Cube / Target Cube attributes
PlanningFIN Expense PlanningFIN Balance Sheet PlanningPLAN-1}APQ.C3.FIN.Dim.RoundtripStep.Update.pro
PlanningFIN Revenue PlanningFIN Balance Sheet PlanningPLAN-2}APQ.C3.FIN.Dim.RoundtripStep.Update.pro
Planning}APQ C3 Time Lookup + Planning Param ControlFIN Revenue / Expense / Balance Sheet Planningruleperiod-lock IF(DB(…) <= DB(…), 0, STET) in FIN * Planning*.RUX
Planning}APQ C3 Workflow StatusFIN Planning WorkflowruleFIN Planning Workflow.RUX — WPLAN-scoped comment / submitter measures
FeedbackFIN General Ledger + CRM OpportunityCRM Account ClusteringTICRM.Cub.CRM Account Clustering From FIN General Ledger.pro — cCubSrc / cCubSrc2 / cCubTgt
FeedbackCRM Account ClusteringHelios CRMwrite-backCRM.Dim.FIN BSEG 2.Write Account Clustering Back to HEL.pro
FeedbackCRM Account ClusteringClass & potential measures (12 MAT YTG pipeline)TICRM.Cub.Account Clustering.Populate Class and Potential.pro
RulesHEL EmployeeTIM Consultant HistoryruleTIM Consultant History.RUX — DIMIX('HEL Employee', !TIM Employee) then end-date attribute
Rules}ElementAttributes_MER WorkspaceMER Time EntryruleMER Time Entry.RUX — workspace currency lookup, cents → units via \ 100
RulesFIN CompanyHEL Contract / Opportunity Line ItemruleHEL Contract Line Item.RUX, HEL Opportunity Line Item.RUX — owner / vendor home currency
RulesFIN Reconciliation MappingFIN ReconciliationruleFIN Reconciliation.RUX — mapping-driven A-B function
RulesHEL Contract / Opportunity Line Item "Product Family"}CellSecurity_* (}Groups)rule}CellSecurity_HEL Contract Line Item.RUX, }CellSecurity_HEL Opportunity Line Item.RUX
MetadataMER TaskTIM Task hierarchy ("Total MER Tasks")TIMER.Dim.Task.Recreate Hierarchy.pro
MetadataHEL RegionTIM Consultant Home / Assigned RegionTITIM.Dim.Consultant Region.Clone.From.HEL Region.pro
MetadataT Year-MonthCRM Version / CRM Create Date / CRM Close DateTIDim.CRM Version|Create Date|Close Date.Create from T Year Month.pro
MetadataHEL Employee}Clients (TM1 user accounts)TIzDim.}Clients.Create Users from HEL Employee.pro — gated on the Active attribute
MetadataEVT Survey DetailsEVT_Event DetailsTICub.EVT_Event Details.Update from Survey Details.pro

Reference

Dimension attributes (elements come back empty — see gaps)

Attribute lists are populated; the element array comes back empty for every dimension on this service — for TIM Employee, 26 attributes and 0 elements.

DimensionConfirmed attributes
TIM EmployeeActive, Code and Description, Created Date, Department(+Name), Description, Employee Number, End Date, External ID, FTE, Family, IsDeleted, Local Office, Mobile, Name and Code, ODBC Source, Position, Region(+Code/Name), Reporting Code, Role Region, Start Date, Tenure, Utilisation Percent, email Address
TIM TaskCustomer(+Name), PTO Type, Prepaid Type, Project–Group Company/Department, Region, WBS G1–G5, WBS Generation/ID, billable, id, parent_id, priority, story_type, title, workspace_id — an external PM-tool schema
TIM CategoryMeridian PTO Type, PTO Type
FIN BSEG 1Account (Industry/Name/Number/Owner/Sector), Company, Currency, Department(+Name), Invoice Basis, Meridian Account/Company/Currency/Department, PO, Region(+Code), Revenue Share, Total Hours, Value Chain
T DateCal Month/Year, Fin Month/Year, Period Name, Prior/Next Day-Month-Year, Week Day(+Name/Num), Year-Week, ibcs-class
FIN VersionCalcMethod, Currency Version, Planning parameter BAL / EXP / REV, Format, ibcs-class, ibcs-desc, isDelete
Chores mapped to the processes in the diagrams
ChoreProcesses behind it
TIM.Timesheets Load Fullv2TIM.Cub.Timesheets.Load from MER Time Entry → …Load from SQL Public Holidays
MER.Load Timesheets v2 · MER.Load Allocations · MER Prepaid AnalysisMER.SQL.Execute Python to Load Table, FIN.Cub.Revenue Planning.Load From MER Allocations
HEL.Contracts and Opportunities · HEL.SQL.Load Transactions · HEL.SQL Refresh MetadataHEL.Cube.Contracts.Load from SQL, CRM.Cub.Opportunity.Load From HEL.SQL, HEL.SQL.Metadata Refresh.*
CRM.Opportunity Load To Revenue PlanningFIN.Cub.Revenue Planning.Load From CRM Opportunity
FIN.General Ledger Rountrip (+ PRE)walks the }APQ C3 FIN Roundtrip Configuration step registry — ACT-11 / PLAN-1 / PLAN-2
HEL.SLP.Load PayrollHEL.SLP.Load Payroll → solara.py
RGL.Data Load.EU1 / .EU2 / .EU3RGL.Cub.FIN General Ledger TB.Load From RGL (+ .Caller), RGL.Cub.RGL Reporting Balances.Load From RGL
REC Loads · REC Loads part 2Cub.REC Transaction Load - Last Load / - Last Load From HEL; failures raise an "FPM Reconciliation Alert" e-mail
CORP Month End RefreshCORP.Cub.Month End.Load from HEL

What this documentation does not know