I am a beginner, so ...
machine1 : W2K Server SP4 / SQL server 2K SP3
machine2 : W2K Pro SP4 / Analysis Services SP3
Using DSO (no DTS allowed), I want to update partitions of my single MOLAP cube.
I use one partition per day, the Fact Table grows by about 2 millions records a day.
I perform a rotation on 5 partitions, so that volumes remain reasonable.
The problem is that the new records in the fact table are discarded by the
'dsoPartition.process' method. To be more precise, they are discarded only
when they bear an element that is new in the 'partitionning' dimension.
The strange fact is, when I update the partition using the GUI of Analysis
Services having configured the partition with DSO, it *works* !
Another strange fact, is that the DSO update works fine when I just reprocess
a partition with new data (a partition I processed before using the GUI)!
using ROLAP and HOLAP, didn't change anything, and I want MOLAP.
using fact table from a view, but change the partitionning field doesn't do either.
Does anybody have a clue of what I am missing ? (apart from a braincell...)
(program delivery deadline : very very close)
thanks in advance.
Dim dsoServer As New DSO.Server
Dim dsoDB As DSO.MDStore
Dim dsoCube As DSO.MDStore
Dim dsoDim As DSO.Dimension
Dim dsoPartA As DSO.MDStore
Dim dsoPartB As DSO.MDStore
Dim dsoPartC As DSO.MDStore
Dim dsoPartD As DSO.MDStore
Dim strDBName As String
Dim strCubeName As String
strDBName = "BCSV6_Olap"
strCubeName = "cubeRisqueEmetteur_AT"
Set dsoDB = dsoServer.MDStores(strDBName)
Set dsoCube = dsoDB.MDStores(strCubeName)
Set dsoPartA = dsoCube.MDStores.Item("cubeRisqueEmetteur_AT")
Set dsoPartD = dsoCube.MDStores.AddNew("cubeRisqueEmetteur_AT_PD")
dsoPartA.Clone dsoPartD, cloneMajorChildren
Dim dsotruc As DSO.Dimension
Set dsotruc = dsoPartD.Dimensions("cubeRisqueEmetteur_AT^Jgdate")
Dim dsomachin As DSO.Level
Set dsomachin = dsotruc.Levels("Jgdate")
dsomachin.SliceValue = 37961
dsoPartD.SourceTableFilter = dsoPartD.SourceTable & ".""jgdate""=37961"
dsoPartD.LockObject olapLockProcess, "pas toucher au grisbi"
'error occurs on the following, meaning no record was found.
dsoPartD.Process processDefault 'processRefreshData
MsgBox "Cube " & strCubeName & "has been processed."