ref: http://dwbi1.wordpress.com/2010/09/29/updating-partition-source-sql/#comment-15356
I created an F# version, below. Note that my complete code updates the Slice property as well, but my code is too specific the the database to include here.:
[<EntryPoint>] let main argv = let adoConnStr = "Data Source={serverName};Catalog={DatabaseName}" let amo = new Microsoft.AnalysisServices.Server() amo.Connect(adoConnStr) let asdb = amo.Databases.FindByName("{DatabaseName}") let cube = asdb.Cubes.FindByName("{CubeName}") let mg = cube.MeasureGroups.FindByName("{MeasureGroupName}") let partitions = mg.Partitions //// this defines the partitions as a table in BIPOC, used by the view: //let parts = getPartitions psql let showpartitions = [ for p in partitions do yield ( ( p.Source :?> QueryBinding ).QueryDefinition ) ] for pno in 0..(partitions.Count - 1) do let p = partitions.[pno] let qb = p.Source :?> QueryBinding let newsql = sprintf "SELECT * FROM BIPOC.dbo.DRWFactPartition(%d) -- Updated:%s" (pno+1) (DateTime.Now.ToString()) qb.QueryDefinition <- newsql // partitions.[pno].Slice <- parts.[pno].slice p.Update() // if p.State = AnalysisState.Unprocessed then p.Process() amo.Disconnect() 0 // return an integer exit code