BusinessObjects Board

deplete the FRS storage area

Hi,
Please advisehow to deplete the FRS storage area
When the current usage rate of FRS is 90% or more, it is urgent to respond. · If you erase only the old FRS file, will the report be displayed without problems? · Please tell me specifically how to identify the report from FRS file name with the oldest update date. · In this case, is there any way to reduce the capacity of used disks other than report inventory and file compression?

Using query builder, the following query:-
SELECT si_name, si_files FROM ci_infoobjects WHERE si_kind=‘webi’;
produces all many files.
But, is there any way to use SDK to pull out a list based on repository update date in one go?


its_ranjan (BOB member since 2011-02-16)

First, it’s never a good idea to just delete files in the FRS. Do it the right way and delete the report from CMC or InfoView.

The following Excel VBA macro can help you. It will display the name, path, size, creation date, last modification date, and instance indicator of all WebI reports in the system. You can use that to identify the reports by age or size that you want to delete.

You could alter the program to automatically delete documents that meet certain criteria, but I’ll leave that to you…

Option Explicit
Dim oInfostore As infostore

Sub duh()
    Dim oSessionMgr As CrystalEnterpriseLib.sessionMgr
    Dim oEnterpriseSession As CrystalEnterpriseLib.enterpriseSession
    
    If oInfostore Is Nothing Then
        Set oSessionMgr = New CrystalEnterpriseLib.sessionMgr
        Set oEnterpriseSession = oSessionMgr.Logon(" <user id> ", " <password> ", " <cms> ", "secEnterprise")
        Set oInfostore = oEnterpriseSession.Service("", "InfoStore")
    End If
    
    Dim startID As Long: startID = 0
    Dim c As Range: Set c = Range("a1")
    Dim oIOs As InfoObjects
    Dim oio As InfoObject
    
    Do
        Set oIOs = oInfostore.Query("select si_id,si_name,si_files,si_instance,si_creation_time,si_update_ts from ci_infoobjects where si_kind = 'webi' and si_id > " &amp; startID)
        For Each oio In oIOs
            c.Value = oio.title
            c.Offset(0, 1) = getParent(oio)
            c.Offset(0, 2) = getTotalSize(oio)
            On Error Resume Next
            c.Offset(0, 3) = oio.Properties("SI_CREATION_TIME").Value
            c.Offset(0, 4) = oio.GetUpdateTimeStamp
            c.Offset(0, 5) = oio.Instance
            On Error GoTo 0
            Set c = c.Offset(1, 0)
            c.Activate
            startID = oio.ID
        Next
    Loop While oIOs.Count > 0
            
End Sub

Function getParent(oio As InfoObject) As String
    Dim tempIO As InfoObject: Set tempIO = oio
    
    Do
        Set tempIO = tempIO.Parent
        getParent = tempIO.title &amp; "/" &amp; getParent
    Loop Until tempIO.parentID = 0
End Function
                
Function getTotalSize(oio As InfoObject) As Long
    Dim f As CrystalInfoStoreLib.File
    If Not (oio.Files Is Nothing) Then
        For Each f In oio.Files
            getTotalSize = getTotalSize + f.Size
        Next
    End If
End Function

joepeters :us: (BOB member since 2002-08-29)

First, let me say that you should never just delete files from the FRS. There will be orphaned references to those files left in your CMS repository database that will still be pointing to those files.

This depends on what files you delete. If you delete anything out of the Input side of the FRS, then the reports will be gone because this is where the report templates and universes are stored. If you delete a universe file, that will cause all of the reports that use that universe to fail. If you delete files from the Output side of the FRS, these are report instances and you would just lose report history.

You could try using Query Builder to look up the file name but Joe’s script or one of the Excel spreadsheets available in BOB’s Downloads would be a better option. You may have to edit the spreadsheets to use your version of the resource files but I can verify that they still work up to BI4.1sp7.

Yes, use the Limit functionality in Business Objects to limit the number of report instances that are retained for the reports. This can be set at either a top folder level, a public folder, or individual reports. Don’t forget to set limits on Personal Folders and Inboxes as well. Personal Folders and Inboxes would most likely need to be set at the top folder level so you wouldn’t have to set this anytime a new user is added, especially if you use some security other than Enterprise security. For Public Folders, you probably want to set the report limits at the folder level. This allows for different retention for different user areas but is more manageable than trying to set them at the report level.

We have limits set in our non-production environments at all of the Top Level folders. We limit report instances to no more than 30 instances and no longer than 60 days. The limiting functionality automatically maintains this so we don’t have to do anything manually. Production is a different matter because our users think they need to keep their report history for ever.

Thanks a ton Joe and John :+1:


its_ranjan (BOB member since 2011-02-16)

Is there a way how to acquire “report name, report folder, user” from the file name.
I would like to acquire it all together in Excel list.
Thanks


its_ranjan (BOB member since 2011-02-16)

JohnBClark gave you a link to Bob’s Downloads…did you look there?


Nick Daniels :uk: (BOB member since 2002-08-15)

Yes I searched all posts in BOB downloads but did not find.


its_ranjan (BOB member since 2011-02-16)

BOXI Repository Documentor includes the information that you are looking for.

That’s loads of information. Thanks again JohnBClark :+1:


its_ranjan (BOB member since 2011-02-16)