Dynamic BO Server Name for Different Environments (DEV, TEST, UAT & PROD)

There is a requirement to access the PDF report (Scheduled BO reports saved in PDF format) using BO Deski / Webi report by link. The link should be dynamic whenever the report migrated from one environment to another environment (DEV to TEST or TEST to UAT or UAT to PROD), because PDF reports are different for each environment and those reports stored in separate folders for each environment. So that, it doesn’t need development for each environment migration to pick the correct PDF location through the Deski Link (URL) report.

Note: Reason for PDF report is, all the Deski reports are having more than 30K pages and it will run more than hour and mostly user should not change / modify the report or data.

All the required Report PDF’s are stored in Windows Share points sever through BO scheduler via FTP location like below.

\\WinSharePoint\Reports\DEV
1.    SalesReport.pdf
2.    Country Wise Product Sales.pdf
3.    Customer Sales Report.pdf

\\WinSharePoint\Reports\TEST
1.    SalesReport.pdf
2.    Country Wise Product Sales.pdf
3.    Customer Sales Report.pdf

\\WinSharePoint\Reports\UAT
1.    SalesReport.pdf
2.    Country Wise Product Sales.pdf
3.    Customer Sales Report.pdf

\\WinSharePoint\Reports\PROD
1.    SalesReport.pdf
2.    Country Wise Product Sales.pdf
3.    Customer Sales Report.pdf

The above listed Deski reports should not have access to Business users. Need to create URL / Link report in Deski / Webi to provide access to Users for their Analysis. That report should dynamically access the above reports depends on the environment without changing the location on each migration.

Let’s walk into Solution route..

1.    Create a dummy report (use any one simple object).
2.    Create 3 variables. Imagine we are doing this in your BO DEV environment.

  • System_Name  –> This function will provide the BO server Name which you have logged in. =Upper(ApplicationValue(“BOSECURITYDOMAIN”))
  • Win_Folder –> Based on the BO system / Server Name this variable would decide which Windows server folder to point.
    = If <System_Name> InList (“PRDBO1″ ,”PRDBO2″ ,”PRDBO3”) Then “PROD” Else If  <System_Name> InList (“UATBO1″ ,”UATBO2”) Then “UAT” Else If  <System_Name> InList (“TESTBO1”) Then “TEST” Else “DEV”
  • Report_Link –> TO concatenate Windows server file path with Report.
    =Concatenation(Concatenation(“\\WinSharePoint\Reports\DEV” ,<Win_Folder>) ,”\Customer Sales Report.pdf”)
  • URL –> Using your report structure to access the required PDF, Hyperlink function used.=Hyperlink(<Link> ,”Click here to View ‘Customer Sales Report’ Report”).

3.    Create a Blank Cell in report and use the URL variable. Click that link, it will open the PDF report in separate Window from specified location depends on the environment you have logged in.

Dynamic BO Server name1

Dynamic BO Server name2

Note: Webi report is not having any of the in-built function to get BO system / Server Name (like ApplicationValue(“BOSECURITYDOMAIN”)). It’s little difficult to do same kind of report in Webi reports as for I reached. Please feel free to command your option on this.

Update:

Based on further research, we cannot get BO system Name / Server Name in Webi report directly. You can find BO server name through some workaround from Universe.

Create one object in universe as below.

Server Name – Object

LOWER(SYS_CONTEXT (‘USERENV’, ‘HOST’))

Use this object in report and create one variable as below.

=Substr([Server Name];9;15)

Note: This function will work only for thin client Webi (not for Rich client Webi report).

Advertisements

4 thoughts on “Dynamic BO Server Name for Different Environments (DEV, TEST, UAT & PROD)

  1. Actually, we can get the server name through another approach. I post my ideas in here for your referent when you want to use the info in Webi report.
    I am not sure whether you know there have a Default Universe of Activity was used by Audit DB.

    You can get some useful information from it.
    I only post a example statement for your reference.

    SELECT
    SERVER_PROCESS.Server_FullName
    FROM
    SERVER_PROCESS

    where
    trim(SERVER_PROCESS.Server_FullName) like ‘%.CentralManagementServer.Central Management Service%’

    For the detail requirement of yours, pls do the related adjustment as per your needed.

    I am happy to discuss with you for the further action.

    Thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s