Sunday, July 9, 2017

Oracle Cloud ERP and Maxl?

Lately, working on being able to directly connect FDMEE to an Oracle Cloud ERP! Fun, new, different and exciting. Or nerdy geeky, you decide. But I do know that it means it is time to learn more. And post along the way to be able to help others that are also taking this journey...

Facts in this case:

-   Oracle Cloud ERP R11 (soon upgrading to R12) and we already know that there is an Essbase cube prior post
-   FDMEE on-prem 11.1.2.4.210



After finally getting the FDMEE .210 on-prem connection to our Oracle Cloud ERP source!!









I was hit with the fact that the connection type was EPM-to-EPM. What did that mean? It meant that the connection being made was to the Essbase GL cube in the Cloud ERP! Perfect!

But not so fast.


There is still work to do. Future posts on this, but I wanted to prove that it really is Essbase. And what is driving Calculations, Allocations, etc. in the ERP are being done in the cube. Those mentioned are being created via the EPM Workspace ;) and the Rule Designer! But keep in mind that these are being done against an Essbase ASO cube. There is no EAS, or as told to me (the names are [hidden]), ".. there is no outline ..". And by stated by a friend, "..if there is no outline, then it isn't Essbase.."



Now, that first statement by the unnamed makes me scrunch my face, tilt my head and shake sort of like the way that my beloved Boxer named Zeus used to do. (pictured left)

RIP buddy. I miss you and your mom misses you but not all of your dog hair .. which she said she is still finding to this day! 

How did you think that eating 11 baby pacifiers was a good idea?! 







I know, don't tell me, but I have a hunch that your furry sister Athena had something to do with it .. (pictured left)











Back to Oracle Cloud ERP.


In needing to get not only the Values and Hierarchies PUBLISHED in the ERP.
It was apparent that more of a true and full hierarchy was needed.
Similar to what we see in our EPM applications-cubes, etc.
And so, now it is time to attempt to add that to the Cloud ERP.

Once the desired hierarchy(s) are PUBLISHED in the ERP, they also need to be DEPLOYED in the GL cube as well. After the job-task to deploy is executed. This is what we see in the log.

---log#.log---------------------------------------
.
creating am with: Name: oracle.apps.financials.generalLedger.ledgers.essbase.publicModel.applicationModule.LedgerEssbaseAM Config: LedgerEssbaseAMLocal

Created Application module instance
.
PublishHierarchyVersions: Independent request for Publishing tree versions fro cubes, given COA ....
getParameterValue: Start
Trying to retrieve param key submit.argument1
Retrieved value for param submit.argument1 as: #
getParameterValue: End
PublishHierarchyVersions: COA ID : #
getParameterValue: Start
Trying to retrieve param key submit.argument2
Retrieved value for param submit.argument2 as: {name here}
getParameterValue: End
PublishHierarchyVersions: COA Name : {name here}
getParameterValue: Start
Trying to retrieve param key submit.argument3
Retrieved value for param submit.argument3 as: <Seg#>
getParameterValue: End
PublishHierarchyVersions: Segment Code : <Seg#>
getParameterValue: Start
Trying to retrieve param key submit.argument4
Retrieved value for param submit.argument4 as: <Seg#>
getParameterValue: End
PublishHierarchyVersions: Segment Name : <Seg#>
getParameterValue: Start
Trying to retrieve param key submit.argument5
Retrieved value for param submit.argument5 as: <Val>
getParameterValue: End
.
publishTreeVersions(): start
publishTreeVersions(): *******valueSetId= #    *****segmentCode=  <Seg#>  *******coaId=  #
publishTreeVersions(): *****valueSetCode= <Val>  *****SegmentName=  {name}  *****coaName=  {name}  ****** listOfInsertVersionIds=,  ****** listOfDeleteVersionIds=,<Val>,  ****** detailedValuesOnly=null

publishTreeVersions()No. of  cubes to be updated 1
.

 ++++++++++++++++++++ publishTreeVersions():::  Application / Cube being updated: [App] / [db]
publishTreeVersions():::  Building Gen2 node :all dimension Values for dimension/valusetid/segmentSeq <Seg>
####################### publishTreeVersions()::: Maxl Command execution Start at Dt Mo Da HH:MM:SS UTC YYYY########
publishTreeVersions(): Executing cmd:alter application 'App' disable connects
publishTreeVersions(): Result:true
publishTreeVersions(): Executing cmd:alter application 'App' disable commands
publishTreeVersions(): Result:true
publishTreeVersions(): Executing cmd:alter system kill request on database 'App'.DB
publishTreeVersions(): Result:true
publishTreeVersions(): Waiting for requests to reach safe point.... 
publishTreeVersions(): Executing cmd:alter system logout session on database 'App'.DB
publishTreeVersions(): Result:true
publishTreeVersions(): Executing cmd:alter application  'App'  enable commands
publishTreeVersions(): Result:true
publishTreeVersions(): Executing cmd:alter database 'App'.db  unlock all objects
publishTreeVersions(): Result:true
publishTreeVersions(): Connecting to Cube now .... 
####################### publishTreeVersions()::: Maxl Command execution Finished and took 123.299 Seconds. ########
replaceAliasTableName() : cube outline is opened :: otl
.
 buildGen2DetailedlevelNode() : SQL string :
SELECT  ... 
FROM
WHERE
ORDER BY
.
 buildGen2DetailedlevelNode() : Building rulesfile for dimension ...:: <Dim>
#################################### 
buildGen2DetailedlevelNode() :Building rulesfile for dimension ...:: <Dim>
End and took 0.104 Seconds############################
 buildGen2DetailedlevelNode() : Rule file name  ... :: /tmp/SEGMENT.rul
.
 ####################################
.
buildGen2DetailedlevelNode(): START Building dimension  ... :: <Dim>
#################################### buildGen2DetailedlevelNode() :Dimenstion building for <Dim> Start
############################
buildGen2DetailedlevelNode() :Dimenstion building for <Dim> End and took 3.143 Seconds############################

<CUBE>App</CUBE>
    <DIMENSION>
        <DIMENSIONNAME>
        <OBJECT_ID></OBJECT_ID>
            <VALUESETCODE></VALUESETCODE>
.
.
buildGen2DetailedlevelNode()::: Building this  version completed.
 #################################### 
publishTreeVersions():: # ::Setting the dimension : <Dim> to MULTIPLE_HIERARCHY....
publishTreeVersions():: 2 ::Setting the dimension : <Dim> as LABEL ONLY....
publishTreeVersions():  Version details ::  Tree Code: <HIER>, Version Name: <VER> , Version ID : #
publishTreeVersions(): Updating/Creating Tree-Version :: <VER>
.
Clear the Generation Names - START
Clear the Generation Names - END
Setting the dimension Generation Name as : <Dim>
Gen2 as : Tree Filter
Gen3 as : Level Code
######################## publishTreeVersions(): end incremental build for dimension start at Dt Mo Da HH:MM:SS UTC YYYY  ###########################
######################## publishTreeVersions():  end incremental build for dimension <Dim>  END and took 15.625 Seconds ###########################
publishTreeVersions() : cube outline is opened :: otl6
publishTreeVersions() : cube outline is closed :: otl6
publishTreeVersions(): Executing cmd:alter database 'App'.DB  unlock all objects
publishTreeVersions(): Result:true
publishTreeVersions(): Executing cmd:alter application  'App'  enable connects
publishTreeVersions(): Result:true
publishTreeVersions():::  Building/deleting versions completed successfully for the cube
#################################### publishHierarchyVersions() :publishTreeVerCall End and took 178.933 Seconds############################
PublishHierarchyVersions: Versions published successfully for Chart Of Account : [COA] and Segment <Dim>
Publishing versions for the [COA]  completed

Releasing Root AM...
.
---log#.log---------------------------------end---


Yes, there are many typos in the actual log file itself. i.e. fro, Dimenstion

And yes, there IS an outline!!
It says so in the log .. "cube outline is opened :: otl" and many more references of an outline. There is a rule file! .rul and the Maxl to open, edit. Set the dimension as Multiple, Label Only, etc.

Make sure to check the checkbox to Deploy and be able to see your desired hierarchy(s) in your Cloud ERP Essbase cubes.

More posts on this subject.
Stay tuned.



1 comment:

  1. Good to see how essbase is being used as backend for almost all type of applications. The possibilities are endless and essbase is not going anywhere. Similar to BigData, Essbase will become the de-facto database for most of the cloud applications due to its extensive calculation capabilities and fast aggregations. However, I am yet to see ground-breaking calculation functionality in Calc Manager for Essbase ASO. It's still very basic

    ReplyDelete