自动将活动报表下载到本地计算机

使用本节中的脚本可自动将活动报表从环境中下载到本地计算机。

可以使用 syncAprReports.bat 下载活动报表。您可以使用 Windows 计划程序来调度批处理文件以自动执行活动报表的下载。有关活动报表的详细信息,请参阅《Oracle Enterprise Performance Management Cloud 管理员入门》中的“使用活动报表和访问日志来监视使用情况”。

您可以手动创建 syncAprReports.bat,方法是复制以下过程中提供的脚本,然后更新连接参数。此脚本将检查环境,且只下载比本地计算机下载目录中的报表更新的报表。

注:

  • 此脚本只能从 Windows 计算机上运行。
  • 此脚本不会下载用户提交反馈时生成的反馈活动报表。
  • 如果密码中包含特殊字符,请参阅“处理特殊字符
  1. 创建一个名为 syncAprReports.bat 的批处理 (.BAT) 文件(其中包含以下脚本),并将其保存到一个方便的位置,例如 C:\automate_scripts
    @echo off
    title APR
    setlocal DisableDelayedExpansion
    
    REM To hardcode the values in the script replace %1, %2, %3, and %4, with the actual values.
    REM Example:
    REM set apr_dir="C:\Oracle\apr"
    REM set username="serviceAdmin"
    REM set password="Ex@mple!"
    REM set url="https://test-example.stg-pbcs.us1.oraclecloud.com"
    set apr_dir=%1
    set username=%2
    set password=%3
    set url=%4
    setlocal EnableDelayedExpansion
    set epmautomate_dir=%cd%
    set lastfile=
    set argC=0
    for %%x in (%*) do Set /A argC+=1
    if %argC% neq 0 (
            if %argC% neq 3 (
                    if %argC% neq 4 (
                            goto :usage
                    )
            )
    )
    goto :login
    :usage
    echo.
    echo Invalid syntax. Please check the parameters. 
    echo Syntax:
    echo 1) syncAprReports.bat APR_FolderPath_on_client username password url
    echo     or 
    echo 2) set the parameters in the file and use below syntax
    echo    syncAprReports.bat
    goto :end
    
    :login
    setlocal DisableDelayedExpansion
    for /f "delims=" %%i in ('epmautomate login %username% %password% %url%') do set result=%%i
    if "Login successful" neq "%result%" (
            echo Login Failed
            goto :end
    ) 
    
    if not exist %apr_dir% (
    echo.
    echo apr folder does not exist 
    GOTO :end
    )
    cd /D %apr_dir%
    for /f "delims=" %%D in ('dir /a:d /b /o:-n') do ( 
    REM AFTER: for /f "delims=" %%D in ('dir /a-d /b /s /o:-n') do (
            set "lastFile=%%~nD"
            goto :next
    )
    
    :next
    setlocal EnableDelayedExpansion
    echo.
    echo Most Recent APR on client is %lastFile%
    
    set "output_cnt=0"
    cd /D %epmautomate_dir%
    for /F "delims=" %%f in ('epmautomate listfiles') do (
    
            cd /D !apr_dir!
            set "line=%%f"
            for /f "tokens=* delims= " %%a in ("!line!") do set line=%%a
            if "!line:~0,3!" equ "apr" (
    
                    if "!line:~4,8!" neq "Feedback" (
    
                            set isValidFile=false
                            if "!line:~-5!" equ ".html" set isValidFile=true
                            if "!line:~-5!" equ ".json" set isValidFile=true
    
                            if "!isValidFile!" equ "true" (
                                    
                                    if "%lastFile%" lss "!line:~4,19!" (
                                            
                                                    if "!line:~4,19!" neq "!dirname!" (
                                                            
                                                            set apr_dir=!apr_dir:"=!
                                                            set /a output_cnt+=1
                                                            set "output[!output_cnt!]=!apr_dir!\!line:~4,19!"
                                                            set "dirname=!line:~4,19!"
                                                            
                                                            REM start downloading
                                                            mkdir "!dirname!"
                                                            cd /D !dirname!
                                                            echo downloading !line!
                                                            set "downloadDir=!apr_dir!\!dirname!"
                                                                                    
                                                            cd /D %epmautomate_dir%
                                                            for /f "delims=" %%i in ('epmautomate downloadfile "!line!"') do set result1=%%i
                                                            move "!line:~24!" "!downloadDir!" > nul
                                                            echo !result1!
                                                            REM end downloading
                                                            
                                                    ) else (
                                                    
                                                            REM start downloading
                                                            cd /D !dirname!
                                                            echo downloading !line!
                                                            set apr_dir=!apr_dir:"=!
                                                            set "downloadDir=!apr_dir!\!dirname!"
                                                            cd /D %epmautomate_dir%
                                                            for /f "delims=" %%i in ('epmautomate downloadfile "!line!"') do set result1=%%i
                                                            move "!line:~24!" "!downloadDir!" > nul
                                                            echo !result1!
                                                            REM end downloading
                                                            
                                                    )
                                    ) else (
                                    
                                            REM TO-DO
                                            
                                    )
                            )
                    )
            )
    )
    
    echo.
    echo %output_cnt% APR's downloaded
    for /L %%n in (1 1 !output_cnt!) DO echo !output[%%n]!
    goto :end
    
    :end
    cd /D %epmautomate_dir%
    endlocal
  2. 修改 syncAprReports.bat 以设置下表中参数的值。这些值用于访问环境以下载活动报表。

    表 3-3 要在 syncAprReports.bat 中包含的参数值

    参数 预期值
    set apr_dir=%1 指定要将活动报表下载到的现有目录。

    示例:set apr_dir="C:\Oracle\apr"

    set username=%2 用于登录到环境下载活动报表的 Oracle Enterprise Performance Management Cloud 用户名。

    示例:set username="ServiceAdmin"

    set password=%3

    用于存储由 username 变量指定的用户的加密密码的文件的名称和位置。您也可以指定用户的明文密码(不建议)。有关创建加密密码文件的信息,请参阅 encrypt 命令。

    示例:

    set password="C:\mySecuredir\password.epw"

    set password="Ex@mple1"

    set url=%4 环境的 URL。

    示例:set url="https://test-example.stg-pbcs.us1.oraclecloud.com"

  3. 使用 Windows 计划程序,调度 syncAprReports.bat。有关详细步骤,请参阅“自动执行脚本”。