自動執行每日資料整合

此案例探討使用範例指令碼,以定期自動化資料整合。

建立包含類似下列項目之指令碼的批次 (.bat) 或殼層 (.sh) 檔案以自動執行資料整合相關活動。下列 Windows 範例指令碼會完成以下活動,自動執行每日應用程式資料整合:

  • 使用指定的 URL、使用者名稱及密碼檔登入環境。
  • 如果 DailyPlanData 存在則將其刪除。
  • 將 DailyPlanData 上傳至服務。
  • 在計畫類型 Plan1 上執行商業規則 Clear Plan Targets。
  • 使用工作名稱 LoadDailyPlan 匯入資料。
  • 執行商業規則 Balance Sheet - Plan。
  • 執行商業規則 Allocate Plan Targets。
  • 如果 DailyTarget.zip 存在,則將其刪除。
  • 使用工作名稱 ExportDailyTarget 將資料匯出至 DailyTarget.zip。
  • 將 DailyTarget.zip 下載至您的伺服器並附加時間戳記。
  • 登出環境。

註:

如果您要重新利用此指令碼,請確定修改 url、user 及 passwordfile 參數的值。此外,您可以修改 dataimportfilename、dataexportfilename、importdatajobname、exportdatajobname、br_clear、br_calculatebalancesheet 及 br_allocatetarget 參數的值,以符合的需求

請參閱自動執行指令碼以取得使用 Windows 工作排程器排程執行指令碼的相關資訊。

automateDailyIntegration.bat 指令碼內容

@echo off
rem Sample Script to demonstrate daily data integration with 
rem Cloud EPM application.
rem This script uploads Plan data, clears target numbers,
rem runs a business rule to calculate balance sheet data, and 
rem recalculates target numbers on the Vision demo application
rem Please update these parameters
SET url=https://example.oraclecloud.com
SET user=serviceAdmin
SET dataimportfilename=DailyPlanData.csv
SET dataexportfilename=DailyTarget
SET importdatajobname=LoadDailyPlan
SET exportdatajobname=ExportDailyTarget
SET br_clear=Clear Plan Targets
SET br_calculatebalancesheet=Balance Sheet - Plan
SET br_allocatetarget=Allocate Plan Targets
SET passwordfile=examplePassword.epw

rem Executing EPM Automate commands
CD /D %~dp0
call epmautomate login %user% %passwordfile% %url%
IF %ERRORLEVEL% NEQ 0 goto :ERROR
for /f %%i in ('call epmautomate listfiles') do if %%i==%dataimportfilename% (call epmautomate deletefile %%i)
IF %ERRORLEVEL% NEQ 0 goto :ERROR
call epmautomate uploadfile %dataimportfilename%
IF %ERRORLEVEL% NEQ 0 goto :ERROR
call epmautomate runbusinessrule "%br_clear%"
IF %ERRORLEVEL% NEQ 0 goto :ERROR
call epmautomate importdata "%importdatajobname%"
IF %ERRORLEVEL% NEQ 0 goto :ERROR
call epmautomate runbusinessrule "%br_calculatebalancesheet%"
IF %ERRORLEVEL% NEQ 0 goto :ERROR
call epmautomate runbusinessrule "%br_allocatetarget%" "TargetVersion=Baseline"
IF %ERRORLEVEL% NEQ 0 goto :ERROR
for /f %%i in ('call epmautomate listfiles') do if %%i=="%dataexportfilename%.zip" (call epmautomate deletefile %%i)
IF %ERRORLEVEL% NEQ 0 goto :ERROR
call epmautomate exportdata %exportdatajobname% "%dataexportfilename%.zip"
IF %ERRORLEVEL% NEQ 0 goto :ERROR
call epmautomate downloadfile "%dataexportfilename%.zip"
IF %ERRORLEVEL% NEQ 0 goto :ERROR
rem Section to rename the file
Set Timestamp=%date:~4,2%_%date:~7,2%_%date:~10,4%_%time:~1,1%%time:~3,2%%
ren "%dataexportfilename%.zip" "%dataexportfilename%_%Timestamp%.zip"
call epmautomate logout
IF %ERRORLEVEL% NEQ 0 goto :ERROR
:EOF
echo Scheduled Task Completed successfully
exit /b %errorlevel%
:ERROR
echo Failed with error #%errorlevel%.
exit /b %errorlevel%