Updating AdHoc Model in code, but existing reports break

  • Hi all,

    I am trying to update an existing model, but can't find an update method to the web service, so I delete the existing model and create a new one. The issue is that all the existing adhoc reports don't have the model set correctly now. I was playing with the RegenerateModel method but just get this error (The model specified must be a generated model.).

    Here is the gist of the code.. any help would be appreciated.

    //Model is in .smdl form so read it in

    stream = File.OpenRead(file);

    stream.Read(fileContents, 0, Convert.ToInt32(stream.Length));

    stream.Close();

    //Delete old model

    ReportService.DeleteItem([NAME]);

    //Create new model

    warnings = ReportService.CreateModel([VALUES]);

    //Set the data sources references

    ReportService.DataSource[] dataSources = new RSUpdater.ReportService.DataSource[1];

    ReportService.DataSourceReference dsr0 = new RSUpdater.ReportService.DataSourceReference();

    dsr0.Reference = "[VALUE]";

    ReportService.DataSource ds0 = new RSUpdater.ReportService.DataSource();

    ds0.Item = (ReportService.DataSourceDefinitionOrReference)dsr0;

    ds0.Name = "[VALUE]";

    dataSources[0] = ds0;

    ReportService.SetItemDataSources([VALUES]);

    //the above code recreates without an issue.. need to associate all reports with the new model though...

    //tried the below command and get the error

    ReportService.RegenerateModel(fullpath);

  • I found the answer..

    needed to not delete the model..

    Just create it and if there is an error - use the SetModelDefinition method to fix all adhoc reports.

    Credit to Jasper Smith on his Reporting Services Scripter. I found the answer on one of his code call.

    Thanks!

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply