multicloud365
  • Home
  • Cloud Architecture
    • OCI
    • GCP
    • Azure
    • AWS
    • IAC
    • Cloud Networking
    • Cloud Trends and Innovations
    • Cloud Security
    • Cloud Platforms
  • Data Management
  • DevOps and Automation
    • Tutorials and How-Tos
  • Case Studies and Industry Insights
    • AI and Machine Learning in the Cloud
No Result
View All Result
  • Home
  • Cloud Architecture
    • OCI
    • GCP
    • Azure
    • AWS
    • IAC
    • Cloud Networking
    • Cloud Trends and Innovations
    • Cloud Security
    • Cloud Platforms
  • Data Management
  • DevOps and Automation
    • Tutorials and How-Tos
  • Case Studies and Industry Insights
    • AI and Machine Learning in the Cloud
No Result
View All Result
multicloud365
No Result
View All Result

Solely Hyperion – Oracle Hyperion EPM weblog: Operating EPCM Calculation Supervisor guidelines in sequential and Information Administration guidelines as a baby job utilizing Groovy!

admin by admin
June 11, 2025
in Data Management
0
Solely Hyperion – Oracle Hyperion EPM weblog: Operating EPCM Calculation Supervisor guidelines in sequential and Information Administration guidelines as a baby job utilizing Groovy!
399
SHARES
2.3k
VIEWS
Share on FacebookShare on Twitter


def awaitCompletion(HttpResponse jsonResponse, String connectionName, String operation) {

    // Parse the JSON response to get the standing of the operation. Hold polling the  server till the operation completes.

    for(lengthy delay = 50; standing == IN_PROGRESS; delay = Math.min(1000, delay * 2)) {

    println(“$operation $.n”)

    HttpResponse pingResponse = operation.utility.getConnection(connectionName).get(“/relaxation/v3/functions/ICPCM/jobs/” + jobId).asString()

  • Polling
    Logic
    :
    The script makes use of exponential backoff for polling the job standing, beginning
    from 50 milliseconds and doubling the delay till a most of 1000
    milliseconds.
  • Error
    Dealing with
    :
    The script throws an exception if the preliminary HTTP response just isn’t
    profitable (standing code not within the vary 200-299).
  • Job
    Standing
    :
    It checks if the job standing is IN_PROGRESS. In that case, it continues
    polling till the job completes.
  • Print
    Consequence
    :
    It prints whether or not the operation was profitable or failed based mostly on the ultimate
    job standing.

This
script must be built-in inside a bigger utility context the place the operation
object and its strategies (utility.getConnection and throwVetoException)
are outlined

   Run the EPCM Calculation utilizing REST API & connection  /************************************************************************************************/

/*     
1. Run Calculation                                                                                                        
*/

/************************************************************************************************/

    println “1  Run Calculation”

 jsonResponse
=
operation.utility.getConnection(“Localhost”).submit(‘/relaxation/v3/functions/PCM/jobs/’)

    .header(“Content material-Kind”,
“utility/json”)

    .physique(json([

   
“jobType”:”Calculation”,

    “jobName”:”Run Calculation”,

    “parameters”:[

        “povDelimiter”:”:”,

       
“povName”:”$CurYr:$CurMth:Actual:Working”,,

        “modelName”:”IC
Calcs”,

       
“executionType”:”ALL_RULES”,

       
“clearCalculatedData”:”true”,

       
“executeCalculations”:”true”,

       
“optimizeForReporting”:”true”,

       
“captureDebugScripts”:”false”]

        ])

    )

    .asString();

          println
‘Response Acquired’

          println
jsonResponse.physique

     WaitforCompletion =
awaitCompletion(jsonResponse, “Localhost”, “Run Calculation Calcs”)

making
an HTTP POST request to a particular endpoint (/relaxation/v3/functions/PCM/jobs/)
on a server (presumably “Localhost”).

request
features a JSON payload with numerous parameters for the job, such because the job
kind (“Calculation”), job title (“Run Calculation”), and different settings.

After sending
the request, you’re printing out the response acquired from the server.

Lastly,
there’s a name to awaitCompletion

 

   Run the EPCM Clear job utilizing REST API & connection     
/***********************************************************************************************/

 /*     
2. Clear Job                                                                                                                      

 /***********************************************************************************************/

    println “2a.          CLR_PCM_01”

jsonResponse
=
operation.utility.getConnection(“Localhost”).submit(‘/relaxation/v3/functions/PCM/jobs’)

    .header(“Content material-Kind”,
“utility/json”)

    .physique(json([

        “jobType” : “Clear
Cube”,

        “jobName” : “CLR_PCM_01”

        ])

    )

    .asString();

    println ‘Response Acquired’

    println jsonResponse.physique

WaitforCompletion
= awaitCompletion(jsonResponse, “Localhost”, “CLR_PCM_01”)

    Run the EPCM Merge jobs utilizing REST API & connection  

   /**********************************************************************************************/

    /*     
3. Merge Information Slices                     
                                                                        */

    /*     
Rule Identify:  Merge Information Slices PCM.PCMRPT                                                   */

/**********************************************************************************************/

    println “3.  Merge Information Slices”

          jsonResponse =
operation.utility.getConnection(“Localhost”).submit(‘/relaxation/v3/functions/PCM/jobs’)

    .header(“Content material-Kind”,
“utility/json”)

    .physique(json([

        “jobType” : “Merge Data
Slices”,

        “jobName” : “Merge Data
Slices ICPCM.ICPCMRPT”,

        “parameters”: [

        “cubeName”:
“ICPCMRPT”,

        “mergeSliceType”:
“allIncrementalSlicesInMain”,

        “keepZeroCells”:
“false”

    ]

        ])

    )

    .asString();

    println ‘Response Acquired’

    println jsonResponse.physique

     WaitforCompletion =
awaitCompletion(jsonResponse, “Localhost”, “Merge Information
Slices”)

      Calling the Jobfactory to invoke a Calculation 

/***********************************************************************************************/

/*     
4. Push to Reporting Dice                                                                                           */

 /***********************************************************************************************/

 JobFactory
jf = operation.utility.jobFactory

 JobDefinition jobDef = jf.job(“1_Push to
Reporting Dice”, “Guidelines”, [:])

 Job job = executeJob(jobDef)

 println job.standing

 //
Print a message indicating the consumer who executed the rule

println(“Rule
was executed by $operation.consumer.fullName”)

  

/*
Parameters to attend for DM Guidelines */

boolean
pushDataToRPT

HttpResponse
jsonResponse

def
payload

def
awaitCompletion(HttpResponse jsonResponse, String connectionName,
String operation) {

    last int IN_PROGRESS = -1

    if
(!(200..299).comprises(jsonResponse.standing)) {

        throwVetoException(“Error occured:
$jsonResponse.statusText”)

    }

    // Parse the JSON response to get the
standing of the operation. Hold polling the DM server till the operation
completes.

    ReadContext ctx =
JsonPath.parse(jsonResponse.physique)

    int standing = ctx.learn(‘$.standing’)

    for(lengthy delay = 50; standing == IN_PROGRESS;
delay = Math.min(1000, delay * 2)) {

        sleep(delay)

        standing = getJobStatus(connectionName,
(String)ctx.learn(‘$.jobId’))

    }

     println(“$operation $.n”)

    return standing == 0

}

 int
getJobStatus(String connectionName, String jobId) {

    HttpResponse pingResponse =
operation.utility.getConnection(connectionName).get(“/” +
jobId).asString()

    return
JsonPath.parse(pingResponse.physique).learn(‘$.standing’)

}

 

 Run the Information Administration guidelines utilizing REST API & connection  

     println “3a  Run PCM_CLC to RPT”

 jsonResponse
= operation.utility.getConnection(“DM-Localhost”).submit()

    .header(“Content material-Kind”,
“utility/json”)

    .physique(json([

         “jobType”:”INTEGRATION”,

        “jobName”:”PCM_CLC to RPT”,

       
“periodName”:”{$CurMth#$CurYr}”,

       
“importMode”:”REPLACE”,

       
“exportMode”:”STORE_DATA”

        ])

    )

    .asString();

    pushDataToRPT =
awaitCompletion(jsonResponse, “DM-Localhost”, “Push Information to PCMRPT”)

 

Job Console Output  

Tags: BlogCalculationChildDataEPCMEPMGroovyHyperionJobManagementManagerOracleRulesrunningsequential
Previous Post

Prime 8 Purposes of Information Analytics in Healthcare Business

Next Post

Understanding DLLs: Structure, Use Instances, Workflow, and Getting Began Information

Next Post
Understanding DLLs: Structure, Use Instances, Workflow, and Getting Began Information

Understanding DLLs: Structure, Use Instances, Workflow, and Getting Began Information

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Trending

Apply OCT-2024 RU patches on Oracle 19C Non-RAC Database

April 7, 2025
What’s Amazon Detective? – Cloudwithease

What’s Amazon Detective? – Cloudwithease

January 31, 2025
Talking on the Home windows Server Summit 2025

Talking on the Home windows Server Summit 2025

April 30, 2025
From Dough to Deployment: Domino’s Recipe for Success

From Dough to Deployment: Domino’s Recipe for Success

June 7, 2025
DeepSeek-R1 mannequin now out there in Amazon Bedrock Market and Amazon SageMaker JumpStart

DeepSeek-R1 mannequin now out there in Amazon Bedrock Market and Amazon SageMaker JumpStart

January 31, 2025
AWS Provides MCP Help to Amazon Q Developer Platform

AWS Provides MCP Help to Amazon Q Developer Platform

May 2, 2025

MultiCloud365

Welcome to MultiCloud365 — your go-to resource for all things cloud! Our mission is to empower IT professionals, developers, and businesses with the knowledge and tools to navigate the ever-evolving landscape of cloud technology.

Category

  • AI and Machine Learning in the Cloud
  • AWS
  • Azure
  • Case Studies and Industry Insights
  • Cloud Architecture
  • Cloud Networking
  • Cloud Platforms
  • Cloud Security
  • Cloud Trends and Innovations
  • Data Management
  • DevOps and Automation
  • GCP
  • IAC
  • OCI

Recent News

PowerAutomate to GITLab Pipelines | Tech Wizard

PowerAutomate to GITLab Pipelines | Tech Wizard

June 13, 2025
Runtime is the actual protection, not simply posture

Runtime is the actual protection, not simply posture

June 13, 2025
  • About Us
  • Privacy Policy
  • Disclaimer
  • Contact

© 2025- https://multicloud365.com/ - All Rights Reserved

No Result
View All Result
  • Home
  • Cloud Architecture
    • OCI
    • GCP
    • Azure
    • AWS
    • IAC
    • Cloud Networking
    • Cloud Trends and Innovations
    • Cloud Security
    • Cloud Platforms
  • Data Management
  • DevOps and Automation
    • Tutorials and How-Tos
  • Case Studies and Industry Insights
    • AI and Machine Learning in the Cloud

© 2025- https://multicloud365.com/ - All Rights Reserved