Calling a BAPI with Table parameters in BRFplus

Hi,  BRFplus experts...
How can we configure a  BAPI "Changing Table" parameter  when it's called form a "Call Procedure" action in BRFplus?
We'd like to use a BAPI  (i.e. BAPI_REQUEST_CREATE) to create a REQUEST in BRFplus. We're using Call Type "Function Module" in a "Call Procedure" Action Type.
Importing parameters are working properly, we've set Direct Values, Context Param or expressions.... like always in BRFplus...
Problem arises when we'd need to"feed" values in a Table in the FM; i.e. REQUESTITEMIN in the mentioned BAPI (FM)...
...only "Context Parameter" appears, and after creating them and updating the values , no values are sent to the FM ....(already checked with debugging...)   The REQUEST ITEM is mandatory in the standard object....
So, if anyone could give us any clue, it will be appreciated....
Thanks in advance....

Hi, Carsten
Many thanks for your reply.
We've alredy debugged the coding, but still not found why parameters are not passed....
If we try to test another "wrapper" FM the problen will persist if it contains "TABLE" optional parameters...We couldn`t find the way to manage them in BRF+......
Parameter "Source Table for Column Update" ....    appears after selecting the parameter REQUESTITEMIN in the list of the "Add Parameter" button  and we do'nt know how can we manage it...
In the field of the component name REQUESTITEMIN we've already assign values for ALL fields, with "context Parameters.", but we don't really understand why the BRFplus does not allow to assign Direct values or expressions like in the importing parameters.....
We couldn't find any example in BRF with "Tables" parameters feeded.......
Notes are already checked deeply....(we're in NW 702 SP 10....)
Kind regards

Similar Messages

  • JCA IConnection call to BAPI with table in table as import and export param

    Is it possible to call a BAPI with a table in table as import and export data?
    Please give small code example if this is possible.
    Thanks in advance.

    Inner tables can be handled with:
    IRecordSet innerTable = (IRecordSet)outerTable.getObject("INNER_TABLE");

  • How to call stored procedure with multiple parameters in an HTML expression

    Hi, Guys:
    Can you show me an example to call stored procedure with multiple parameters in an HTML expression? I need to rewrite a procedure to display multiple pictures of one person stored in database by clicking button.
    The orginal HTML expression is :
    <img src="#OWNER#.dl_sor_image?p_offender_id=#OFFENDER_ID#" width="75" height="75">which calls a procedure as:
    procedure dl_sor_image (p_offender_id IN NUMBER)now I rewrite it as:
    PROCEDURE Sor_Display_Current_Image(p_n_Offender_id IN NUMBER, p_n_image_Count in number)could anyone tell me the format for the html expression to pass multiple parameters?
    Thanks a lot.
    Sam

    Hi:
    Thanks for your help! Your question is what I am trying hard now. Current procedure can only display one picture per person, however, I am supposed to write a new procedure which displays multiple pictures for one person. When user click a button on report, APEX should call this procedure and returns next picture of the same person. The table is SOR_image. However, I rewrite the HTML expression as follows to test to display the second image.
    <img src="#OWNER#.Sor_Display_Current_Image?p_n_Offender_id=#OFFENDER_ID#&p_n_image_Count=2" width="75" height="75"> The procedure code is complied OK as follows:
    create or replace
    PROCEDURE Sor_Display_Current_Image(p_n_Offender_id IN NUMBER, p_n_image_Count in number) AS
        v_mime_type VARCHAR2(48);
        v_length NUMBER;
        v_name VARCHAR2(2000);
        v_image BLOB;
        v_counter number:=0;
        cursor cur_All_Images_of_Offender is
          SELECT 'IMAGE/JPEG' mime_type, dbms_lob.getlength(image) as image_length, image
          FROM sor_image
          WHERE offender_id = p_n_Offender_id;
        rec_Image_of_Offender cur_All_Images_of_Offender%ROWTYPE;
    BEGIN
        open cur_All_Images_of_Offender;
        loop
          fetch cur_All_Images_of_Offender into rec_Image_of_Offender;
          v_counter:=v_counter+1;
          if (v_counter=p_n_image_Count) then
            owa_util.mime_header(nvl(rec_Image_of_Offender.mime_type, 'application/octet'), FALSE);
            htp.p('Content-length: '||rec_Image_of_Offender.image_length);
            owa_util.http_header_close;
            wpg_docload.download_file (rec_Image_of_Offender.image);
          end if;
          exit when ((cur_All_Images_of_Offender%NOTFOUND) or (v_counter>=p_n_image_Count));
        end loop;
        close cur_All_Images_of_Offender;
    END Sor_Display_Current_Image; The procedure just open a cursor to fetch the images belong to the same person, and use wpg_docload.download_file function to display the image specified. But it never works. It is strange because even I use exactly same code as before but change procedure name, Oracle APEX cannot display an image. Is this due to anything such as make file configuration in APEX?
    Thanks
    Sam

  • Problem with SP with table parameters

    Hello, I have problem with stored procedure with paramater which is table type.
    I have defined my own type
    CREATE OR REPLACE TYPE STRING_LST AS TABLE OF VARCHAR2(80);
    and i have stored procedure like this
      PROCEDURE probe(outList OUT STRING_LST) IS   BEGIN     outList := STRING_LST();     outList.EXTEND();     outList(outList.LAST) := 'ONE';     outList.EXTEND();     outList(outList.LAST) := 'TWO';     outList.EXTEND();     outList(outList.LAST) := 'THREE';   END probe;
    I have java class which connects to the database and calls this procedure
    package mypackage; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Types; import java.sql.Array; public class DAO_Test { public static String toNormalString (String aa) { if (aa != null && aa.startsWith("0x")) { StringBuffer str = new StringBuffer(64); for (int i = 2; i < aa.length(); i += 2) { str.append((char) Integer.parseInt(aa.substring(i, i + 2), 16)); } return str.toString(); } else { return aa; } } public void probe ( ) { try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection("dbc:oracle:thin:@server_ip:database_name", "sa", "blahblah"); String sql = "{ CALL PROBE(?) }"; String sqlType = "STRING_LST"; CallableStatement cs = conn.prepareCall(sql); cs.registerOutParameter(1, Types.ARRAY, sqlType); cs.execute(); Array arr = cs.getArray(1); String[] values = (String[]) arr.getArray(); for (int i = 0; i < values.length; i++) { System.out.println("" + i + ": '" + toNormalString(values) + "'");
    cs.close();
    conn.close();
    } catch (SQLException e) {
    logger.error("SQLException", e);
    } catch (Exception e) {
    logger.error("Exception", e);
    public static void main (String args[]) throws SQLException {
    DAO_Test test = new DAO_Test();
    test.probe();
    Now...
    When I run this class on my local machine the result is OK nad looks like
    1: 'ONE'
    2: 'TWO'
    3: 'THREE'
    But when I copy this class on the server and run it, the result is wrong
    1: '???'
    2: '???'
    3: '???'
    Here is my environment:
    on local machine
    eclipse 3.3.1
    java 1.5 (java version compiler in eclipse is 1.4)
    on server
    oracle 9.2.0.6.0
    java 1.4.2_08
    Result from table parameters are always 3 question marks :|
    What is the problem?
    Rafał

    HI,
    I think i found the solution: nls_charset12.jar from page
    http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html
    I have copied this jar to server lib directory and it works fine :)

  • Calling stored procedure with output parameters in a different schema

    I have a simple stored procedure with two parameters:
    PROCEDURE Test1(
    pOutRecords OUT tCursorRef,
    pIdNumber IN NUMBER);
    where tCursorRef is REF CURSOR.
    (This procedure is part of a package with REF CURSOR declared in there)
    And I have two database schemas: AppOwner and AppUser.
    The above stored procedure is owned by AppOwner, but I have to execute this stored procedure from AppUser schema. I have created a private synonym and granted the neccessary privileges for AppUser schema to execute the package in the AppUser schema.
    When I ran the above procedure from VB using ADO and OraOLEDB.Oracle.1 driver, I got the following error when connecting to the AppUser schema:
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'TEST1'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    but when I was connecting to the AppOwner schema, everything is running correctly without errors.
    Also, when I switch to the microsoft MSDAORA.1 driver, I can execute the above procedure without any problems even when connecting to the AppUser schema.
    I got this error only when I am trying to execute a stored procedure with an output parameter. All other procedures with only input parameters have no problems at all.
    Do you know the reason for that? Thanks!

    If anyone has figured this one out let me know. I'm getting the same problem. Only in my case I've tried both the "OraOLEDB.Oracle" provider and the "MSDAORA" provider and I get an error either way. Also my procedure has 2 in parameters and 1 out parameter. At least now I know I'm not the only one with this issue. :)
    '*** the Oracle procedure ***
    Create sp_getconfiguration(mygroup in varchar2, myparameter in varchar2, myvalue out varchar2)
    AS
    rec_config tblconfiguration.configvalue%type;
    cursor cur_config is select configvalue from tblconfiguration where configgroup = mygroup and configparameter = myparameter;
    begin
    open cur_config;
    fetch cur_config into rec_config;
    close cur_config;
    myvalue := rec_config;
    end;
    '** the ado code ****
    dim dbconn as new adodb.connection
    dim oCmd as new adodb.connection
    dim ors as new adodb.recordset
    dbconn.provider = "MSDAORA" 'or dbconn.provider = "OraOLEDB.Oracle"
    dbconn.open "Data Source=dahdah;User ID=didi;Password=humdy;PLSQLRSet=1;"
    set ocmd.activeconnection = dbconn
    cmd.commandtext = "{call fogle.sp_getconfiguration(?,?)}"
    'i've also tried creating a public synonym called getconfiguration and just refering to procedure by that.
    ' "{call getconfiguration(?, ?)}"
    ' "{call getconfiguration(?,?, {resultset 1, myvalue})}"
    'and numerous numerous other combinations
    set oPrm = cmd.createparameter("MYGROUP", advarchar, adparaminput, 50, strGrouptoPassIn$)
    cmd.parameters.append oPrm
    set oPrm = cmd.createParameter("MYPARAMETER", advarchar, adParamInput, 50, strParameterToPassIn$)
    cmdParameters.append oPrm
    set rs = cmd.execute

  • ABAP WebDynpro app calling Transaction iview with Dynamic Parameters..?

    Good day!
    I need to code a call to a transaction (with dynamic parameters) from an Abap WD application.  It appears that to achieve this, the app needs to call a new portal transaction iview, passing the parameters in the call..? 
    This should ideally be via a Sapgui for Windows, but Html also an option (does it matter with regards to the method used?). 
    Kindly assist with advise/instructions, idealy with sample code extract to illustrate (new to Abap WD)...
    Kind regards
    j

    Hi
    this will help you doing so
    http://help.sap.com/saphelp_nw04s/helpdata/en/18/f96f4132f15c58e10000000a1550b0/frameset.htm
    Use BUSINESS_PARAMETERS to pass the data
    Abhi

  • Help!! Calling PL/SQL with table of objects params

    Hi JDBC experts,
    This is probably a familiar problem to many of you and I was hoping you can help me.
    I have a JDBC application that makes calls to a PL/SQL stored procedure that accepts and returns tables (arrays) of objects. I have an equivalent representation of these in Java (the object is a simple Java class and the array of objects is a subclass of ArrayList). The object has around 10 attributes (varchar and number) and the call typically accepts and returns between 50 and 100 objects.
    I noticed that converting from one representation to the other before and after the JDBC call is very time consuming. Before calling the procedure, I need to instantiate a new oracle.sql.ARRAY and fill it with oracle.sql.STRUCT equivalents for each object in my ArrayList. After the procedure call returns, I need to instantiate a new ArrayList and fill it with my Java object representation for each oracle.sql.STRUCT in the returned oracle.sql.ARRAY. Given the # of objects returned and the size of each object, this causes performance degradation.
    Is there any way I can avoid the above conversion overhead? I was reading somewhere about jpub and CustomDatum. I tried it out but the code that sqlj generated looked rather complex - but if this is the recommended approach, I can follow that.
    Also, are there any java code examples for dealing with table of (non-scalar) objects with CustomDatum? I saw some code for using CustomDatum with single objects but not with a table of objects.
    Your help is much appreciated!
    Thanks,
    Niranjan

    I would do it like this :
    - use existsNode function in the filter predicate to look for candidate rows regardless of the number of occurrences of target nodes in the document
    - use XPath predicates on attributes to restrict target nodes
    SQL> create table temp1 of xmltype;
    Table created
    SQL>
    SQL> insert into temp1 values(xmlparse(document
      2  '<soc id="2">
      3   <listsectii>
      4    <sectie cods="4">
      5     <prodv codp="2" cant=""></prodv>
      6    </sectie>
      7    <sectie cods="5">
      8     <prodv codp="8"></prodv>
      9    </sectie>
    10    <sectie cods="6">
    11     <prodv codp="2"></prodv>
    12    </sectie>
    13   </listsectii>
    14  </soc>'));
    1 row inserted
    SQL>
    SQL> update temp1
      2  set object_value =
      3      updateXML( object_value
      4               , '/soc/listsectii/sectie[@cods="4"]/prodv[@codp="2"]/@cant'
      5               , 'new_cant' )
      6  where existsNode( object_value
      7                  , '/soc/listsectii/sectie[@cods="4"]/prodv[@codp="2"]' ) = 1
      8  ;
    1 row updated
    SQL> select * from temp1;
    SYS_NC_ROWINFO$
    <soc id="2">
      <listsectii>
        <sectie cods="4">
          <prodv codp="2" cant="new_cant"/>
        </sectie>
        <sectie cods="5">
          <prodv codp="8"/>
        </sectie>
        <sectie cods="6">
          <prodv codp="2"/>
        </sectie>
      </listsectii>
    </soc>
    Of course, that implies there's already an existing "cant" attribute (not the case in your samples).
    If you actually need to create one, then you must use insertChildXML() instead.

  • Call a BAPI with different user ID

    Hi All,
    Here is my scenario:
                                                      CALL  BAPI
    System 1 -
    >   System 2
                   <----
                                                TRANSFER DATA
    What I want to do is when I call the BAPI in System 2 with a different user ID than is actually logged into System 1
    executing the BAPI.
    Is this possible?
    thanks.
    JB

    Hello,
    I suppose you use a Trusted RFC connection in your BAPI call and not an RFC destination with a dedicated user in it.
    What you can do in the source system is calling your BAPI from a background process (job).
    You can change the user ID in the step of the job.
    In this case trusted RFC will make sure that the BAPI is called in the target system with the user specified in the step.
    If trusted RFC is not an option you can use an RFC destination with a dedicated user ID in it.
    I hope this helps.
    Wim

  • HANA procedure call n times with different parameters

    Hi,
    I am implementing some procedures on sql script and due to parallelization reasons i would like to call the same procedure n times with different parameters being the procedure name one of the parameters.
    Which method would you advise me (xsjs, ...)?
    Thanks in advance

    This is a known issue. We plan to have a fix in a future release but there is currently no ETA that I can share with you. I would recommend that you log an SR with support so that we can track the fact that this issue is affecting you.
    Chris

  • SSRS 2008 R2 - Using Action to call a report with MultiValue Parameters

    I have a report uses project names as parameter(Multi value) and display some data. I want to call this report from some other report on a click (drill down). This report has a program row where it aggregates the data, underneath Programs, I have
    list of projects(group). When I use Action on the individual projects, it takes me to the appropriate project ( I used
    Fields!ProjectName.Value). However, when user clicks on the program, it should pass the group of projects within that program to the called report. With expression,  Fields!ProjectName.Value, it only select one random project (may be first/last from
    the query) and display records. I tried Join(Fields!ProjectName.Value, ",") and Fields!ProjectName.Value(0) but now it doesn't select a sengle project. Can someone help please?

    use In instead =

  • Call OAF page with post parameters

    Hi,
    From a custom OAF payment screen, on button click, I'm opening a third party website in the same window.
    Once payment is done, third party will send me conf num back as the background process (user is still in third party website).
    For this post back purpose, I have created a simple OAF page and given the OAF url to third party.
    https://xxx-dev:85/OA_HTML/OA.jsp?page=/xxx/oracle/apps/xx/webui/PostbackPG&confNum=
    However, third party refused to use this url as it is a html get. They send return values (conf num) only by html post as security measure.
    Is it possible to use OAF page to get post requests? If yes, please let me know how to call OAF page with a post and how to get values in PR of CO.
    Thanks
    Prabhu

    Any ideas please!

  • Call a function with tables in a FORM

    Hi all,
    I am currently willing to create a FORM that would call a function (which has a table in its parameters).
    In the form, I modify the fields of this table, and then I call the function.
    I put the table in the FORM parameters (either 'USING' or 'TABLES').
    Problem is: the syntax check keeps on telling me that my internal table is not correctly defined (missing the statement 'OCCURS 0') and won't compile.
    I tried to add this statement 'OCCURS 0', even 'WITH HEADER LINE', but I cannot make it work.
    Can anyone help ?
    Thx a lot.
    Isa.

    Hi,
    Declare a Ztable inside the form of the type declared in the FM with a header line.Assign the fields that u require to pass through the table and append to this Ztable.
    Now pass this Ztable to the parameters of the FM.
    This should help u out...
    Mark useful answers...

  • Calling Stored Procedure with table type as In parameter from Java

    Hi Everyone,
    Can anyone help me with the sample code to call a stored procedure having input parameter of Table type (consisting of multiple fields) from Java. This job is currently being done by a BPEL process.
    We want to implement the same using Java.
    Any sample code will be really helpful.
    Thanks & Regards,
    Vikas

    To start using a blob you have to insert it into the database and then get it back. Sounds weird but that is how it is. Here is a very simple program to do this:
    #include<occi.h>
    #include <iostream>
    using namespace oracle::occi;
    using namespace std;
    int main()
      try
        Environment *env = Environment::createEnvironment(Environment::OBJECT);
        Connection *conn = env->createConnection("hr","hr","");
        string stmt1 = "insert into blob_tab values (:1) ";
        string stmt2 = "select col1 from blob_tab";
        Blob blob(conn);
        blob.setEmpty(conn);
        Statement *stmtObj = conn->createStatement(stmt1);
        stmtObj->setBlob(1,blob);
        stmtObj->executeUpdate();
        conn->commit();
        Blob blob1(conn);
        Statement *stmtObj2 = conn->createStatement(stmt2);
        ResultSet *rs = stmtObj2->executeQuery();
        while(rs->next())
         blob1 = rs->getBlob(1);
        string stmt3 = "begin my_proc(:1) ;end;";
        Statement *stmtObj3 =  conn->createStatement(stmt3);
        stmtObj3->setBlob(1,blob1);
        stmtObj3->executeUpdate();
      catch (SQLException e)
        cout << e.getMessage();
      /* The tables and procedure are primitive but ok for demo
        create table blob_tab(col1 blob);
        create or replace procedure my_proc(arg in blob)
        as
        begin
         -- just a putline here. you can do other more meaningful operations with the blob here
          dbms_output.put_line('hello');
       end;
    }Hope this helps.
    Thanks,
    Sumit

  • ABAP WebDynpro: Call a URL with POST-parameters?

    Hi all,
    I want to call a URL from an ABAP WD method with additional data. I know that this is simply possible via the Window Manager, passing a URL. Adding additional parameters inside the URL is of course also possible using "&" and "?" separators.
    Is it somehow possible to call such a URL out of WebDynpro with additional POST data (e.g. an XML datastream)?
    Best regards.
    Alexander

    Hi Alex.,
    As u said that u know how to call URL and pass parameters using window manager., and i am not sure about XML data stream.!!
    I can advise u to post ur thread here: [Web Dynpro ABAP Forum|Web Dynpro ABAP;
    U will get some useful inputs..
    Thanks & Regards
    Kiran

  • How to call a dll with special parameters in Labview?

    Hi,
    I have a dll file (compiled in C++) and I would like to call the individual functions from this dll file.
    I do not know however, how I must correctly define the initial parameters in LabView.
    That is the function, which I would like to call:
    DWORD OpenDiagDriver ( char* port,
    LPCSTR path,
    CANObjects CANObj[],
    WORD BitTiming = 0x4167);
    CANObjects CANObj[] is a pointer to array with CAN configuration data
    typedef struct
    DWORD Ident;
    BYTE Config;
    }CANObjects;
    CANObj[0].Ident= 0x18DA0000;
    CANObj[0].Config= 0x8C;
    CANObj[1].Ident= 0x18DA0000;
    CANObj[1].Config= 0x84;
    WORD BitTiming= 0x4167;
    I made a vi, but it doesn’t work.
    Attachments:
    example.vi ‏29 KB

    Hard to say without the full C source. Are you building the DLL according to the CIN rules (see Using External Code in LabVIEW)? Mapping clusters to C code in DLLs is not a simply process and we generally recommend to create wrappers. However, since your structures are fairly straightforward, you could use the "Adapt to Type" as you are trying to do.
    I recommend checking out the mentioned manual and also the examples in \examples\dll\data passing\Call Native Code.llb and the associated C files.
    Brian Tyler
    http://detritus.blogs.com/lycangeek

Maybe you are looking for

  • Use phone and ical at the same time?

    Are you able to be in the middle of a call and check your icalendar for an event without dropping your call? If so, please walk me through how you do this. Thank you!!

  • Adobe Photoshop Elements 6 causes an exception

    I installed APE 6 on my Windows Vista computer and it works ok but now when I open some other programs it causes an exception.  These are important programs too, my EOS Utility program for Remote Capture from my camera, gone.  My program for transfer

  • Purchase requisition to Purchase order conversion

    MRP generated the stock transport purchase requisition. (between two company codes) When i converting the PR to PO, system creating Stock transport purchase order, item category as "U" instead of Standard Purchase order, doc type: NB. We are using ST

  • Vault size smaller than Library

    I have 30k referenced photos (188 gb) with a Library size of 11 gb. The Vault size is only 1.7 gb! This makes me nervous. In the past, both have been about the same size. What is happening?? thank you

  • Resolve Map Mismatch: Not Working

    This was originally posted in the Crystal Reports Design forum. It was suggested that I post it to the .NET Development forum. Although I don't think it is particular to .NET, since I can reproduce the issue outside of the .NET IDE, in the Crystal Re