Create API in VORowImpl functionality

We are calling the createAndInit(AttributeList) in our EOImpl code to create a row which inturn calls the create(AtrributeList) api in voRowImpl.Here in the AttributeList we are passing NameValuepairs.Now,I wanted to know if we pass an extra attribute in namevalue pair which is not defined in the underlying VO,Currently it doesnt give any error,but is this the expected functionality. We want to ensure this so that it doesnt cause any issues in future

Hi,
attributes are populated by the definition of the entityDefImpl class, which means all attributes you pass that don't have a match in the entity are ignored
Frank

Similar Messages

  • How to call the Salesforce  webservice  create api ?

    Hello Friends,
    I am using Oracle BPEL process manager 10.1.2 .
    I have created the BPEL process project.
    In it I have deployed the Salesforce webservice.
    I have assigned the session id ,URL according to the as given in
    demos->salesforceflow .
    I have called the login api , query api that is successfully called.
    But when I call the Create api then it gives the error at run time that
    "Invalid session id found in session header".
    so please tell me what could be reason for this..
    Thanks and regards
    Ram Krishna Tripathi
    [email protected]
    ====================
    BPEL file is as follows:--
    <process name="SalesforceFlow" targetNamespace="http://samples.otn.com" suppressJoinFailure="yes" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:tns="http://samples.otn.com" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:salesforce="urn:enterprise.soap.sforce.com" xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:ns1="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:salesObject="urn:sobject.enterprise.soap.sforce.com" xmlns:ns3="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" xmlns:ns2="http://schemas.oracle.com/xpath/extension/ldap" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension"><!-- ================================================================= --><!-- PARTNERLINKS --><!-- List of services participating in this BPEL process --><!-- ================================================================= -->
    <partnerLinks><!--
    The 'client' role represents the requester of this service. It is
    used for callback. The location and correlation information associated
    with the client role are automatically set using WS-Addressing.
    -->
    <partnerLink name="client" partnerLinkType="tns:SalesforceFlow" myRole="SalesforceFlowProvider" partnerRole="SalesforceFlowRequester"/>
    <partnerLink name="salesforce" partnerLinkType="salesforce:SoapLink" partnerRole="SoapProvider"/>
    </partnerLinks><!-- ================================================================= --><!-- VARIABLES --><!-- List of messages and XML documents used within this BPEL process --><!-- ================================================================= -->
    <variables><!-- Reference to the message passed as input during initiation -->
    <variable name="input" messageType="tns:SalesforceFlowRequestMessage"/><!-- Reference to the message that will be sent back to the
    requester during callback
    -->
    <variable name="output" messageType="tns:SalesforceFlowResponseMessage"/>
    <variable name="createinput" messageType="salesforce:queryRequest"/>
    <variable name="createoutput" messageType="salesforce:queryResponse"/>
    <variable name="Invoke_1_create_InputVariable" messageType="salesforce:createRequest"/>
    <variable name="Invoke_1_create_OutputVariable" messageType="salesforce:createResponse"/>
    </variables><!-- ================================================================= --><!-- ORCHESTRATION LOGIC --><!-- Set of activities coordinating the flow of messages across the --><!-- services integrated within this business process --><!-- ================================================================= -->
    <sequence name="main"><!-- Receive input from requestor.
    Note: This maps to operation defined in SalesforceFlow.wsdl
    -->
    <receive name="receiveInput" partnerLink="client" portType="tns:SalesforceFlow" operation="initiate" variable="input" createInstance="yes"/>
    <scope name="customerPreference">
    <variables>
    <variable messageType="salesforce:loginRequest" name="loginRequest"/>
    <variable messageType="salesforce:loginResponse" name="loginResponse"/>
    <variable messageType="salesforce:Header" name="headerRequest"/>
    <variable messageType="salesforce:queryRequest" name="queryRequest"/>
    <variable messageType="salesforce:queryResponse" name="queryResponse"/>
    <variable name="partnerReference" element="wsa:EndpointReference"/>
    <variable name="Variable_1" messageType="salesforce:Header"/>
    </variables>
    <sequence>
    <assign name="setSalesforceAuthorization">
    <copy>
    <from variable="input" part="payload" query="/tns:SalesforceFlowRequest/tns:username"/>
    <to variable="loginRequest" part="parameters" query="/salesforce:login/salesforce:username"/>
    </copy>
    <copy>
    <from variable="input" part="payload" query="/tns:SalesforceFlowRequest/tns:password"/>
    <to variable="loginRequest" part="parameters" query="/salesforce:login/salesforce:password"/>
    </copy>
    </assign>
    <invoke partnerLink="salesforce" portType="salesforce:Soap" operation="login" inputVariable="loginRequest" outputVariable="loginResponse"/>
    <assign name="readSessionConfig">
    <copy>
    <from variable="loginResponse" part="parameters" query="/salesforce:loginResponse/salesforce:result/salesforce:sessionId"/>
    <to variable="headerRequest" part="SessionHeader" query="/salesforce:SessionHeader/salesforce:sessionId"/>
    </copy>
    <copy>
    <from>
    <EndpointReference xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">
    <Address/>
    </EndpointReference>
    </from>
    <to variable="partnerReference"/>
    </copy>
    <copy>
    <from expression="string(bpws:getVariableData('loginResponse', 'parameters', '/salesforce:loginResponse/salesforce:result/salesforce:serverUrl'))"/>
    <to variable="partnerReference" query="/wsa:EndpointReference/wsa:Address"/>
    </copy>
    <copy>
    <from variable="partnerReference"/>
    <to partnerLink="salesforce"/>
    </copy>
    <copy>
    <from expression="concat( 'select Fax from account where AccountNumber=',ora:addQuotes( string(bpws:getVariableData('input','payload','/tns:SalesforceFlowRequest/tns:accountNumber'))) )"/>
    <to variable="queryRequest" part="parameters" query="/salesforce:query/salesforce:queryString"/>
    </copy>
    </assign>
    <invoke partnerLink="salesforce" portType="salesforce:Soap" operation="query" inputVariable="queryRequest" outputVariable="queryResponse" bpelx:inputHeaderVariable="headerRequest"/>
    <assign name="Assign_1">
    <copy>
    <from variable="loginResponse" part="parameters" query="/salesforce:loginResponse/salesforce:result/salesforce:sessionId"/>
    <to variable="Variable_1" part="SessionHeader" query="/salesforce:SessionHeader/salesforce:sessionId"/>
    </copy>
    </assign>
    <invoke name="Invoke_1" partnerLink="salesforce" portType="salesforce:Soap" operation="create" inputVariable="Invoke_1_create_InputVariable" outputVariable="Invoke_1_create_OutputVariable"/>
    </sequence>
    </scope><!-- Asynchronous callback to the requester.
    Note: the callback location and correlation id is transparently handled
    using WS-addressing.
    -->
    <invoke name="callbackClient" partnerLink="client" portType="tns:SalesforceFlowCallback" operation="onResult" inputVariable="output"/>
    </sequence>
    </process>
    =====================
    WSDL FILE
    =============
    <definitions
    name="SalesforceFlow"
    targetNamespace="http://samples.otn.com"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://samples.otn.com"
    xmlns:ns1="urn:enterprise.soap.sforce.com"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    >
    <import namespace="urn:enterprise.soap.sforce.com" location="services/enterprise.wsdl"/>
    <types>
    <schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://samples.otn.com"
    xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing" schemaLocation="http://abo-server:9700/orabpel/xmllib/ws-addressing.xsd"/>
    <element name="SalesforceFlowRequest">
    <complexType>
    <sequence>
    <element name="username" type="string"/>
    <element name="password" type="string"/>
    <element name="accountNumber" type="string"/>
    </sequence>
    </complexType>
    </element>
    <element name="SalesforceFlowResponse">
    <complexType>
    <sequence>
    <element name="price" type="double"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    </types>
    <message name="SalesforceFlowRequestMessage">
    <part name="payload" element="tns:SalesforceFlowRequest"/>
    </message>
    <message name="SalesforceFlowResponseMessage">
    <part name="payload" element="tns:SalesforceFlowResponse"/>
    </message>
    <portType name="SalesforceFlow">
    <operation name="initiate">
    <input message="tns:SalesforceFlowRequestMessage"/>
    </operation>
    </portType>
    <portType name="SalesforceFlowCallback">
    <operation name="onResult">
    <input message="tns:SalesforceFlowResponseMessage"/>
    </operation>
    </portType>
    <plnk:partnerLinkType name="SalesforceFlow">
    <plnk:role name="SalesforceFlowProvider">
    <plnk:portType name="tns:SalesforceFlow"/>
    </plnk:role>
    <plnk:role name="SalesforceFlowRequester">
    <plnk:portType name="tns:SalesforceFlowCallback"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </definitions>

    On your Invoke, click the "adapter" tab and make sure the header variable is selected.

  • Create Web Service with Function Group

    Hi experts,
    I have 2 question for web service
    1- i want to create web service with function group. My function group is have 2 function modules. I selected function group for web service end point type. And next action i want to select my function group but this is impossible. Because this field is inaktive for value entry. (Img1) How can i make to active this field?
    2- I'm created one bussinness object in SWO1. And assigned ZBAPI... this object. (API METHOD ->ADD METHOD menu). I'm changed oject type's statu for released and created this object. Everything is ok so i can test this object and run ZBAPI method. But i can not see this object type in BAPI transaction. Why i can not see in BAPI transaction my object type ?
    Thank you for your help.

    /bump

  • Steps for creating a new BAPI function module

    Hello experts,
    Can any one send me steps for creating a new BAPI function module , I got a requirement to do like this,but I dont have any clue about how to create.
    Please help !!!

    BAPI stands for Business Application Programming Interface.
    There are 5 different steps in BAPI.
    - Create BAPI Structure  
    - Create BAPI Function Module or API Method.  
    - Create BAPI object  
    - Release BAPI Function Module.  
    - Release BAPI object.
    Step1. Creating BAPI Structure:  
    - Go to <SE11>. 
    - Select Data Type & Enter a name. 
    - Click on Create.
    - Note: Always BAPI should be in a development class with request number (Not Local Object).
    - Select Structure & hit ENTER.
    - Enter the fields from your database. Make sure that the first field is the Primary Key Field.
    - Then SAVE & ACTIVATE.
    Step 2. Creating BAPI module: 
    - Enter TR.CODE <SE37>.
    - Before entering any thing, from the present screen that you are in, select the menu
       Goto -> Function Groups -> Create Group.
       Enter a name (Note: This name Must start with ZBAPI)
       Let this screen be as it is and open another window and there, enter TR.CODE <SE80).
       Click on the Third ICON that says Inactive Objects. 
       Select the group that you just created and click on Activate. 
       Notice that the group you created will disappear from the list of inactive objects.
    - Go back to <SE37> screen and enter a name and hit <ENTER>. Then enter the group name that you just created and activated.
    NOTE: When you release a function module the respective group will be attached to that particular application. It cannot be used for any other application. NEVER include an already existing group that is attached to another module.
    Now click on the first Tab that says [ATTRIBUTES] and select the radio button that says remote-enabled module since we will be accessing this from any external system.
    Then click on the second tab that says [IMPORT].
    Enter a PARAMETER NAME, TYPE and the structure you created in the first step. Also select the check box ‘Pa’. All remotely enabled functional modules MUST be Pa enabled, where Pa means ‘Passed by Value’ and if you don’t select ‘Pa’, then that means it will be passed by reference..
    Then click on tab that says [EXPORT].
    Enter the following as is in the first three fields 
      RETURN        TYPE        BAPIRETURN (These 3 field values are always same)
      Here also select ‘Pa’ meaning Pass by value.
    Note: BAPIRETURN contains structure with message fields.
    Then SAVE and ACTIVATE.
    Step 3. Creating BAPI object: 
    - Enter Tr.Code <SWO1>   (Note. It is letter ‘O’ and not Zero).
    - Enter a name and then click on create. Enter details. 
    NOTE: Make sure that that Object Type and Program name are SAME.   
    - Enter Application ‘M’, if you are using standard table Mara. If you are using your own database then select ‘Z’ at the bottom. 
    - Then hit <ENTER>. 
    - Now we have to add ‘Methods’. High light METHODS and then select the following from the menu: 
    Goto Utilities -> API Methods -> Add Methods.
    - Enter function Module name and hit <ENTER>.
    - Select the second FORWARD ARROW button (>)to go to next step. 
    - Check if every thing looks ok and again click on FORWARD ARROW button (>).
    - Then select ‘YES’ and click on <SAVE>.
    -  Now on a different screen goto TR.CODE <SE37>.  Enter Function Module name and select from the top menu  Function Module -> Release -> Release.
    - Goback to TR.CODE <SWO1>.
    Here select the menu combination shown below in the same order.
    - Edit -> Change Release Status -> Object Type Component -> To Implemented.
    - Edit -> Change Release Status -> Object Type Component -> To Released.
    - Edit -> Change Release Status -> Object Type -> To Implemented.
    - Edit -> Change Release Status -> Object Type -> To Released.
    - Then click on <SAVE>.
    - Then click on Generate Button (4th button from left hand side looks like spinning wheel).
    - Then Click on the button that says ‘PROGRAM’ to see the source code.
    To check if this is present in work flow goto TR.CODE <BAPI>. 
    Here it shows business object repository.
    - First click on the middle button and then select “ALL” and hit ENTER.
    - Goto tab [ALPHABETICAL] and look for the object that you created. This shows that the BAPI object has been created successfully.
    regards,
    aswin

  • Error while trying to create a Universe on Function Module in IDT

    Hi,
    We are using BO 4.1 Support Pack 2. I am trying to create a Universe on Function Module. I created data foundation layer, but when I right click on the table and click on 'Show table values' it doesn't bring any data (and there is data available in that table). When I click on 'Check Integrity' it says 'Missing Primary key'. Please see the screen shot. Please let me know if any has any idea and I am doing something wrong? I really appreciate it.
    Thanks,
    Charvi.

    Hi Charvi,
    What type of database/application are you trying to connect? Are you getting any error message?
    Missing primary key message is just a warning and is not related to the issue.
    Cheers
    Mohan

  • How to create and execute a function whose return value is  a table

    hi folks ,
    i would like know how to create and execute a function whose return value is a table ,
    am new to pl/sql ,
    my statement for the function is
    SELECT ct.credential_code, c.expiration_date
    FROM certifications c, credential_types ct
    WHERE ct.crdnt_id = c.crdnt_id
    AND c.person_id = person_id;
    i would like to have the result of the above query as return value for the function.
    Thanks in advance ,
    Ashok.c

    hi Ps ,
    Can you please do small sample ,
    that would help me in clear understanding
    thanks in advance
    ashok.c

  • Save EAN11 field while creating POrder creation through Function module

    Hi All,
    I want to update EAN11 field in material master while creating Purchase Order through function module. I am using function module BAPI_PO_CREATE1 for creating purchase order. There are no structures in the PO creation FM in which EAN11 field is there. I have also tried using function module MEPO_DOC_ITEM_PROCESS for updating EAN11 field. It is not working. Please suggest some method to do that.
    Note: I am receiving EAN11 through an external system by proxy.
    Thanks,
    Chinmay

    Hi,
    Use BAPI_MATERIAL_SAVEDATA to updat ean numbers for materials.
    tables INTERNATIONALARTNOS is used to update EAN.
    Regards,
    Shanmugavel Chandrasekaran

  • Append New Line Item(s) onto the created Purchase Request using Function

    Dear Expert,
    I am trying to append new lines into the created purchase request via Function Module/ BAPI.
    Say, now, the Purchase Request has already 1 line item. And i want to append new line items into
    this purchase request via function module/ bapi.
    Do you know if there is any function module/ bapi exists to do this?
    Thanks.
    Tee

    Hi,
    It's weird.
    I tried on the BAPI_PR_CHANGE, and the return message says that it has successfully changed the PR. But, when i see it via ME53N, it's not being updated.
    Does anyone has sample usage/ code using this BAPI?
    Thanks.
    Tee

  • Problem to print Purchase Order created in RFC module function

    Hi
    I created a specific RFC function module for using in a BSP application. In this specific function module, I have created a Purchase Order (PO) thanks to the standard module "BAPI_PO_CREATE". The PO is well created but I don't manage to print immediately this PO but the spool is queued. Whereas using SE37, the PO is well created and printed.
    But the customer wants to find the PO immediately in the printer
    Do you know a simply way to solve my problem? I have the feeling that something is lost using RFC module function and the standard module function.
    Thank a lot of for your reply
    Regards
    Francois

    The issue may be because, its used in BSP application.
    may be you need to implement whats explained in this weblog.
    /people/thomas.jung3/blog/2005/08/23/bsp-server-side-printing-for-tableviews
    Regards
    Raja

  • How to create the change document functionality for a dependent objects?

    May I please know how to create the change document functionality for a dependent objects?
    I have done it follow the same process as for business process objects. But when i try to test it in BOBT, there is no records under "FIELD_CHANGE_WITH_FILTER". It seems the change hasn't been recorded.
    If the way I did to create change document for dependent object is correct, please also kindly advise the possibilities for why there is no record during testing.
    thanks in advance.

    I also have some doubts about the business object.In this case,one abstract BO hase a subnode wihich is root extended.I added the change document for this node under the category "root_extended" and then tested the function in BOBT.I got some error message "can't find the root key".Shall i redefine the method /BOFU/IF_CDO_CREATION~IS_CDO_CREATION_ACTIVE so as to solve the problem?
    Thx.

  • How to create a user_defined grouping function?

    I need to create a user_defined function and use it in my sql statement.
    I know the user_defined function can be used anywhere the build-in function can be used.In oracle,there are grouping functions.
    How can I create a user_defined grouping function and I can use it in my sql statement.

    Hi, can you explain exactly what you are trying to achieve:
    SQL> create or replace function my_func return number as
      2  begin
      3    return 5;
      4  end;
      5  /
    Function created.
    SQL> select deptno,my_func(),max(sal)
      2  from emp
      3  group by deptno,my_func()
      4  /
        DEPTNO  MY_FUNC()   MAX(SAL)
            10          5       5000
            20          5       3000
            30          5       2850

  • Can i create any procedure or function inside a oracle reserve package?

    Hi!
    Can i create any procedure or function inside a oracle reserve package. Suppose, I want to create a function called x in the dbms_output package. Can i do that? Or can i extend the features of this package and create/derived a function from it like we extend any class in JAVA. I'm not sure - whether this is at all possible. I'll be waiting for your reply.
    Thanks in advance.
    Satyaki De.

    No, but you can write a wrapper package and use that instead of using the Built-In package directly. So, instead of calling DBMS_OUTPUT, you call your own Package.
    Steven Feuerstein wrote a wrapper for DBMS_OUTPUT, called P:
    Re: DBMS_OUTPUT.PUT_LINE

  • How to Create a Remotely Enabled Function Module

    Hi All,
    How to Create a Remotely Enabled Function Module.
    I Want to Create a FM Using Sample Data , This for Practice
    What Fields can i give in the Import and Export Parameters.
    Please Give me one Example
    Can Any one Give me the Steps to do this.
    Regards
    Vamsi

    Hi Vamsi,
    Lets do simple example where you will first create a RFC in one server (say A) and create normal program in othere server (say B). Finally you will call the RFC in A from B.
    Do the following steps for creating RFC in server A.
    1. log on to server A
    2. go to se37
    3. Edit -> function groups-> create function group and give the function group name (say ZGRP).
    4. create a FM ( say Z_TEST_RFC) in se37 providing the function group which is created just now.
    5. go to attribute tab -> choose remote-enabled module from processing type.
    so that your FM will become RFC.
    6. provide the import parameter in import tab.
    we will provide only two import parameters.
    - parameter name : P_NUM1, typing: TYPE, associated type : I & <b>check the pass value</b> (all the parameters of RFC must pass by value).
    - parameter name : P_NUM2, typing: TYPE, associated type : I & <b>check the pass value</b>
    7. provide the export parameter in export tab.
    parameter name : P_SUM, typing: TYPE, associated type : I & <b>check the pass value</b>
    8. write the given simple code in source code tab.
    FUNCTION Z_TEST_RFC.
    P_TOT = P_NUM1 + P_NUM2.
    ENDFUNCTION.
    Do the following steps for creating ABAP program which will call the RFC in server B.
    1. se38 - > creat a program.
    2. write the given simple code.
    data tot type i.
    call function 'Z_TEST_RFC' destination '<b>XXXXXX</b>'
      exporting
        p_num1 = 10
        p_num2 = 15
      importing
        p_tot = tot.
    write tot.
    please note that <b>XXXXXX</b> is RFC connection which is avialable in <b>sm59</b> transaction in server A.
    -go to sm59 - > abap connection (list of RFC connection configurations are avialable). choose server B connection and replace it of <b>XXXXXX</b> in the code.
    finally you can execute the normal abap program that will call the RFC and display the result.
    Regards,
    Sukhee

  • Create API append in the transaction COMM_ATTRSET

    Hi Friends,
    We have implemented the Note <b>602673</b> to Download R/3 ERP Material Sales Status MVKE-VMSTD to CRM.
    We have overlooked the point in the Note where it is mentioned that the check box <b>Create API append</b> should be checked while including the settype in the transporting request. We have found this when we read the document again and looked at the menu path Settype/Attributes -> Transport -> Include in Request. We entered our newly created settype here and and we could see that the check box Create API append is not enabled.
    The problem is, we are having some BDocs in the intermediate state. When we reprocess them in the Development system they are processed successfully. But when we reprocess the BDoc in the Production system, it gives a dump with the DUPLICATE_ENTRY exception raised.
    Our doubt is,
    1. Does the enabling of the check box mentioned above will solve the problem?
    2. What is the impact when this check box is checked or unchecked?
    3. Is there any other reason for this dump? If so how to solve that?
    We have found that in the BDoc, we have MNT_SETTYPE table filled with the settypes. In the Development system we have the newly created settype only once, but in the Production system the settype is seen twice. Is this the reason  for the dump.
    Please revert back with your ideas and solutions. You will be definitely rewarded with points.
    Regards,
    Raju

    Hi Murali
    Thanks for the reply..
    But my question is what is the reason for the dump when I reprocess the BDoc in the Production system. And why the settype entry in the BDoc is twice?
    The dump shows that the exception is raised from the include program SET_RELF41 and in the code
    update buffer
      INSERT ls_prrel INTO TABLE gm_prrel.
      IF sy-subrc NE 0.
        RAISE duplicate_entry.
      ENDIF.
      DELETE TABLE gm_prrel_delete FROM ls_prrel.
    How to solve this?
    Regards,
    Raju

  • 8i personal : error when Create user defined aggregate function

    Hi,
    I have problem on creating user defined aggregate function.
    I try to create the sample aggregate function "SecondMax" from 9i developer guide(append at the end of this post).
    It's work to create object type and the type body, but
    there is error when I create the aggregate function..
    "CREATE FUNCTION SecondMax (input NUMBER) RETURN NUMBER
    PARALLEL_ENABLE AGGREGATE USING SecondMaxImpl;"
    I am using 8i personal now.. is that the syntax of create function in 9i is different from that in 8i?
    Example: Creating and Using a User-Defined Aggregate
    This example illustrates creating a simple user-defined aggregate function SecondMax() that returns the second-largest value in a set of numbers.
    Creating SecondMax()
    Implement the type SecondMaxImpl to contain the ODCIAggregate routines.
    create type SecondMaxImpl as object
    max NUMBER, -- highest value seen so far
    secmax NUMBER, -- second highest value seen so far
    static function ODCIAggregateInitialize(sctx IN OUT SecondMaxImpl)
    return number,
    member function ODCIAggregateIterate(self IN OUT SecondMaxImpl,
    value IN number) return number,
    member function ODCIAggregateTerminate(self IN SecondMaxImpl,
    returnValue OUT number, flags IN number) return number,
    member function ODCIAggregateMerge(self IN OUT SecondMaxImpl,
    ctx2 IN SecondMaxImpl) return number
    Implement the type body for SecondMaxImpl.
    create or replace type body SecondMaxImpl is
    static function ODCIAggregateInitialize(sctx IN OUT SecondMaxImpl)
    return number is
    begin
    sctx := SecondMaxImpl(0, 0);
    return ODCIConst.Success;
    end;
    member function ODCIAggregateIterate(self IN OUT SecondMaxImpl, value IN number)
    return number is
    begin
    if value > self.max then
    self.secmax := self.max;
    self.max := value;
    elsif value > self.secmax then
    self.secmax := value;
    end if;
    return ODCIConst.Success;
    end;
    member function ODCIAggregateTerminate(self IN SecondMaxImpl, returnValue OUT
    number, flags IN number) return number is
    begin
    returnValue := self.secmax;
    return ODCIConst.Success;
    end;
    member function ODCIAggregateMerge(self IN OUT SecondMaxImpl, ctx2 IN
    SecondMaxImpl) return number is
    begin
    if ctx2.max > self.max then
    if ctx2.secmax > self.secmax then
    self.secmax := ctx2.secmax;
    else
    self.secmax := self.max;
    end if;
    self.max := ctx2.max;
    elsif ctx2.max > self.secmax then
    self.secmax := ctx2.max;
    end if;
    return ODCIConst.Success;
    end;
    end;
    Create the user-defined aggregate.
    CREATE FUNCTION SecondMax (input NUMBER) RETURN NUMBER
    PARALLEL_ENABLE AGGREGATE USING SecondMaxImpl;
    Using SecondMax()
    SELECT SecondMax(salary), department_id
    FROM employees
    GROUP BY department_id
    HAVING SecondMax(salary) > 9000;

    This could be a x64/x86 problem. Try following this thread
    [GetCompanyService|GetCompanyService] and recompile your code for the platform you need.

Maybe you are looking for