5 Replies Latest reply on Sep 4, 2013 7:37 AM by JohnGoodwin

    Where can I find documentation for the HSP* Custom Functions

    r.avery
      I can see a number of HSP functions are registered in Essbase but cannot find any documentation for them. I am reluctant to use them for client development without some proper documentation. Does anyone know where it can be found?

      The functions are :
      @HspNthMbr
      @HspNumToString
      @HspDateToString
      @HspConcat
      @HspMbrIndex
      @HspMessage
      @HspGetMbrCount
      @HspCreateCDFSession
      @HspRemoveCDFSession
      @HspAddPageCombination
      @HspCreateEssbaseServerFile
      @HspWritePageCombinations
      @HspGetFileName

      Many of these look interesting. Some of them seem obvious, others might have a number of paramenters and options.

      Any help appreciated.

      Richard
        • 1. Re: Where can I find documentation for the HSP* Custom Functions
          JohnGoodwin
          I am not sure if there is much documentation on them, in EAS you can view all the functions and see the comments which give a clearer indication on how they work.

          Cheers

          John
          http://john-goodwin.blogspot.com/
          • 2. Re: Where can I find documentation for the HSP* Custom Functions
            i_need_a_FIX
            The 5 first are super useful, I use them quite often.

            The best being @HspNthMember, you can use it to return a member based by giving a memberset and an index, and it will return the member at the index in the set.
            • 3. Re: Where can I find documentation for the HSP* Custom Functions
              KinkoidGoogler

              Here is the contents of essfunc.xml.  A little bit more information than what is available than in EAS; for example regarding function @HspGetMbrCount, it has a limited function prototype "@HspGetMbrCount(StringArray)" and purpose "Returns the member count of the range provided".  I got this from Oracle/Middleware/user_projects/essbase1/EssbaseServer/essbaseserver1/java.  You can view it more easily in Internet Explorer or vim.

               

                <?xml version="1.0" encoding="utf-8" ?>

              - <definitions version="6.2.0">

                <macros />

              - <functions>

              - <function name="@HspNthMbr" tssec="1377715749" tsmcs="202567" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getNthMember(String[],int)">

              - <spec>

              - <![CDATA[ @HspNthMbr(memberRange, PosIndex)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns nth member in the range provided

                ]]>

                </comment>

                </function>

              - <function name="@HspNumToString" tssec="1377715749" tsmcs="224917" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.numToString(int)">

              - <spec>

              - <![CDATA[ @HspNumToString(NumericInput)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns String type value for the numeric value provided

                ]]>

                </comment>

                </function>

              - <function name="@HspDateToString" tssec="1377715749" tsmcs="246968" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.dateToString(int)">

              - <spec>

              - <![CDATA[ @HspDateToString(NumericDateInput)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns String type date in DD/MM/YYYY format

                ]]>

                </comment>

                </function>

              - <function name="@HspConcat" tssec="1377715749" tsmcs="268969" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.makeAString(String[])">

              - <spec>

              - <![CDATA[ @HspConcat(StringArray)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns a single string by concatenating all the values passed to it

                ]]>

                </comment>

                </function>

              - <function name="@HspMbrIndex" tssec="1377715749" tsmcs="291290" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getMbrIndex(String[], String)">

              - <spec>

              - <![CDATA[ @HspGetMbrIndex(String[], String)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns the member position in the dimension based on outline order.

                ]]>

                </comment>

                </function>

              - <function name="@HspMessage" tssec="1377715749" tsmcs="315045" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getURL(String[])">

              - <spec>

              - <![CDATA[ @HspMessage(StringArray)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns URL format of the message and parameters

                ]]>

                </comment>

                </function>

              - <function name="@HspGetMbrCount" tssec="1377715749" tsmcs="335521" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getMbrCount (String[])">

              - <spec>

              - <![CDATA[ @HspGetMbrCount(StringArray)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns the member count of the range provided

                ]]>

                </comment>

                </function>

              - <function name="@HspDateDiff" tssec="1377715749" tsmcs="357494" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.dateDiff(int,int)">

              - <spec>

              - <![CDATA[ @HspDateDiff(fromDate, toDate)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns difference between two dates in days, inclusive of dates passed.

                ]]>

                </comment>

                </function>

              - <function name="@HspDateRoll" tssec="1377715749" tsmcs="379014" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.dateRoll(int,int,int)">

              - <spec>

              - <![CDATA[ @HspDateRoll(startDate, noOfPeriods, periodType)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns the next date, resulting from adding noOfPeriods to StartDate.

                ]]>

                </comment>

                </function>

              - <function name="@HspOffsetIdx" tssec="1377715749" tsmcs="400720" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getDataOffsetIdx(long[],long[],long[],int,int,int)">

              - <spec>

              - <![CDATA[ @HspOffsetIdx(DataList, StartDateList, EndDateList, BaseValue, OffSet, BaseDate)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns the pointer to data which is nth distinct value, where n is the offset and for that data, gets relevant row based on date array.

                ]]>

                </comment>

                </function>

              - <function name="@HspMbrList" tssec="1377715749" tsmcs="422891" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getMemberList(String[],long[],int)">

              - <spec>

              - <![CDATA[ @HspMbrList(MemberList, DataList, ChkValue)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns the list of members, at positions corresponding to data same as ChkValue in DataList.

                ]]>

                </comment>

                </function>

              - <function name="@HspNextAllocIdx" tssec="1377715749" tsmcs="445933" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getNextAllocIdx(long[],long[],int)">

              - <spec>

              - <![CDATA[ @HspNextAllocIdx(dataList,unspAcc,counter)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns the pointer for the first row with no allocation or first row positive allocaction and not a modified row or total

                ]]>

                </comment>

                </function>

              - <function name="@HspStringCompare" tssec="1377715749" tsmcs="469322" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.stringcompare(String, String)">

              - <spec>

              - <![CDATA[ @HspStringCompare(srcstring, trgtstr)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Does a string compare and Returns the true if sourcestring and target string are same.

                ]]>

                </comment>

                </function>

              - <function name="@JDebug" tssec="1377715749" tsmcs="493564" javaSpec="com.hyperion.calcmgr.common.cdf.DebugFunctions.debug (int , String, String[], double , String)">

                <flag value="RUNTIME" />

              - <spec>

              - <![CDATA[ @JDebug(action, returnAddr, str_array, dblInput, lineKey)

                ]]>

                </spec>

                </function>

              - <function name="@JSendDebug" tssec="1377715749" tsmcs="521638" javaSpec="com.hyperion.calcmgr.common.cdf.DebugFunctions.sendDebug(int , String , String[] , double[] , String )">

                <flag value="RUNTIME" />

              - <spec>

              - <![CDATA[ @JSendDebug(action, returnAddr, str_array,dblInput_array, lineKey)

                ]]>

                </spec>

                </function>

              - <function name="@HspCreateCDFSession" tssec="1377715749" tsmcs="548082" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.createCDFSession()">

              - <spec>

              - <![CDATA[ @HspCreateCDFSession()

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Creates and returns a unique session Id

                ]]>

                </comment>

                </function>

              - <function name="@HspRemoveCDFSession" tssec="1377715749" tsmcs="578942" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.removeCDFSession(long)">

              - <spec>

              - <![CDATA[ @HspRemoveCDFSession(sessionId)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Removes the session with the provided sessionId

                ]]>

                </comment>

                </function>

              - <function name="@HspAddPageCombination" tssec="1377715749" tsmcs="610001" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.addPageCombination(long, String[])">

              - <spec>

              - <![CDATA[ @HspAddPageCombination(sessionId, pages)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Adds a page combination

                ]]>

                </comment>

                </function>

              - <function name="@HspCreateEssbaseServerFile" tssec="1377715749" tsmcs="640601" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.createEssbaseServerFile(long,String,String)">

              - <spec>

              - <![CDATA[ @HspCreateEssbaseServerFile(sessionId, appName, cubeName)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Creates a unique file on the Essbase server and returns the file path

                ]]>

                </comment>

                </function>

              - <function name="@HspWritePageCombinations" tssec="1377715749" tsmcs="669640" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.writePageCombinations(long, String)">

              - <spec>

              - <![CDATA[ @HspWritePageCombinations(sessionId, fileName)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Writes all the page combinations with data to the file

                ]]>

                </comment>

                </function>

              - <function name="@HspGetFileName" tssec="1377715749" tsmcs="705211" javaSpec="com.hyperion.essbase.cdf.psb.HSPCDFUtils.getFileName(String)">

              - <spec>

              - <![CDATA[ @HspGetFileName(filePath)

                ]]>

                </spec>

              - <comment>

              - <![CDATA[ Returns the file name for the give path

                ]]>

                </comment>

                </function>

                </functions>

                </definitions>

              • 4. Re: Where can I find documentation for the HSP* Custom Functions
                Alp Burak

                Hi,

                The question is, why aren't they just added into the Essbase functions already? They are so useful indeed!

                 

                Cheers,

                Alp

                • 5. Re: Where can I find documentation for the HSP* Custom Functions
                  JohnGoodwin

                  One day they might get added, they have been around for a while now and unless I am missing where it is hidden there still doesn't seem to be any documentation about them.

                   

                  All I can seem to find is them mentioned in the refresh section of the planning documentation


                  Update custom-defined functions: Updates Planning custom-defined functions for the application when creating or refreshing the application database. For information about working with custom-defined functions, see the Oracle Essbase Database Administrator's Guide.

                   

                  If they are documented anywhere then somebody update this post

                   

                  Cheers

                   

                  John

                  http://john-goodwin.blogspot.com/