Skip to Content

BPC WebFolder maintenance program

Like any other solution BPC needs to be maintained and needs general housekeeping. Recently, I have been assisting customers with various performance related issue. One of the first things that strike me is that the general housekeeping of BPC is not being done.


A simply example would be the maintenance of the WebFolders. (Please Note: This blog is applicable to the MS Version)


The BPC WebFolders is like a file server, it still needs to adhere to best practises. In doing the performance troubleshooting, I often find that performing some basic maintenance on the WebFolders structure can go a long way in improving the overall performance of the SAP BPC solution.


General best practise recommendations are:


  • Remove any EVDRE debug files
  • Remove any files in the PrivatePublications      that are older than 6 months
  • Remove *.TMP files older than 6 months (You      could remove all of the files, it is a copy of your imported data,      technically speaking that data is already in the database)
  • Remove *.LOG files older than 6 months
  • Remove any inactive / old / backup reports or      input schedules that are not being used


This kind of housekeeping can be done manually at regular intervals, but it would be way better if this could be automated and scheduled. Hence the reason for this blog.


I wrote a simple C# console application which recursively would go through the WebFolders and remove the files which need to be removed. It is a simple application which can be expanded to do more tasks.




You can download the program from the following link:




You can download the source code from the following link:




How the program works..


Pre-Requites:  .NET 2.0 Framework


Essentially the core of the program is in the config file. It is called MaintainBPC.exe.config


In the file you will find the following configurable parameters which have to be amended to reflect your environment


  • CleanWF_Log_File – This is the a log file      where the operations of the program will get recorded to
  • BPC_WebFolders_Path – This is the path of the      BPC WebFolders
  • Deletion_Period – This tells the program how      old the files must be before deleting them
  • Delete_Ext – This tells the program which      files to delete, this is an important configuration parameter, as you      don’t want to delete any input, reports, script logic files, etc
  • Prod_Mode – this tells the program to move the      files and not to delete the files (this provides an extra layer of      security, as you will have to manually peruse the TobeDeleted folder      before deleting the files
  • ToBeDeleted_Path – this folder will be used      when Prod_Mode is set to true


This program has been tested on BPC 7.0 and 7.5. I haven’t tested it on BPC 10 MS version yet.  I am not a programmer, so I am pretty sure that there are ways of improving the program.


Please Note: This program will not be supported by SAP product support and as not standard functionality nor delivered with SAP BPC.




Please test the program thoroughly before deploying and RULE 1; always ensure that you have working backups.


Hopefully this program will help out some of the customers in automating some of the maintenance around the BPC WebFolders.

1 Comment
You must be Logged on to comment or reply to a post.
  • Thanks, really useful. I have just tested on 7.5.

    There are 2 small issues you might want to look into. The job does not seem to terminate by itself even when processing is completed. I can get round this in the meantime by forcing close after a predetermined time in the windows task scheduler.

    Secondly,when Prod_Mode set to TRUE, the log file produced by the application itself would appear to be designed to display the original source file path of the purged record and the target location where it has been moved to, but in fact it is displaying the target location as both the ‘to’ and ‘from’ location which is not very helpful. Having said this the feature is useful for testing but the objective of the exercise is to clear these files in production not just move the problem somewhere else so might just change the setting anyway to FALSE once ready to implement