Writing DLL operating on complex arrays

Hello,
I'm writing Dynamic Library (DLL) which should operate on complex matrix, and I have a problem with function parameters.
My target is DLL which uses FFTW libraries for calculating Fast Fourrier Transformate on complex signals given by matrix.
How should I define function? I make it on many ways,
extern "C" __declspec(dllexport) int fast_fourrier(fftw_complex * in, fftw_complex * out, int size)
extern "C" __declspec(dllexport) int fast_fourrier2(complex * in, complex * out, int size)
extern "C" __declspec(dllexport) int fast_fourrier3(TD1Hdl input, TD1Hdl output);
where TD1Hdl is
typedef struct {
 long dimSize;
 complex elt[1]; (or cmplx128 elt[1]; )
 } TD1;
typedef TD1 **TD1Hdl;
There's only one method which works:
extern "C" __declspec(dllexport) int function(double * re, double * im, double * re_out, double * im_out, int size);
But it's very time-consuming, because I must build another dynamic matrix and write into data from re and im. After calculating FFTW I must separate data onto re_out and im_out. But I think must be easier way to do this, but I'm don't now how to do this.
I'm don't know how to get into the data elt in structure TD1Hdl whitch is used by LabView when calling function on array 1D, type double 8-bytes by Array Handle. I can easily read the dimSize when we connecting to Call Library Function an array, but any modification on substructure elt crashes LabView. I think, that elt is pointer for first element of the matrix but maybe I'm wrong.
I show, that we can also pass a parameters by something like "Adapt to type", which is prototyped by function (void * arg1) and I have absolutely no idea what can I do with this param.
Maybe anybody has writed a external DLL operating on complex array and can help. I'll be grateful for any advices.
Best regards,
Darek

OK, Something has moved forward.
I used this declaration:
extern "C" __declspec(dllexport) int fast_fourrier(TD1Hdl in)
where TD1Hdl is previously used structure. Similar code was generated when I tried "Create .c file" in LabView on Call Library Function Node set for Adapt to type.
LabView correctly passes array size, I have access to fields Im and Re of structure complex, I can write and read them but something is wrong with value conversion between LabView and DLL.
It looks like somewhere was difference in pointers, and pointer on first field of matrix wasn't it, but moved some bytes in any direction. I think that, because when I'm write to array in re and im fields the same value - for example 0.5 in LabView I get that there's about 2.5 E-234.
In next try I filled this matrix with sine function values in loop:
re = sin(2*i), im = sin(2*i+1). In worst way I should get set of values from range [-1,1] on the graph, but I get 0 or value which exceed 1.0E+100.
Could it be caused by compilator version? I'm using Borland C++ Builder 6.
I'm very thankful for interesting of this problem.
Darek

Similar Messages

  • Complex arrays for DLLs

    I have spent a lot of time trying to pass arrays of complex numbers between LabVIEW and a DLL I have written in C++, but with no success. The data types I wish to interface with in the C++ are things like std::vector<std::complex<float> > and std::vector<std::complex<int16_t> > (or just the basic arrays they contain). However, I would be willing to use any sensible data representation (i.e. such that I don't need to shift it around in memory unnecessarily).
    I have gone through all the DLL examples in LabVIEW 2013, which include complex numbers and arrays, but not arrays of complex numbers. I tried using the typedef struct approach for handling complex numbers (suggested in one example). This works fine within my C++ code: I can reinterpret_cast<...>(...) to get back to arrays of std::complex. However, every attempt at interfacing this with LabVIEW has failed in a variety of ways. At best, I managed to get some garbled numbers passing back and forth.
    So, does anyone know where I can find a (very) basic example/step-by-step guide to passing complex arrays between LabVIEW and DLLs? Given that this is trivial in C++, I imagine there must be a straightforward solution out there somewhere.
    Many thanks!

    A LabVIEW complex number is simply a structure with the imaginary and real value both represented as a floating point number. As such there is very little you can do on the LabVIEW side to change that. C++ object pointers are compiler specific and often even dependent on the version of the template library that was used to compile them. As such there is absolutely NO way to use them in any code that needs to be called from code that was not compiled with the same C++ compiler and the same compile settings. You can bend in circles and jump through hoops but there is simply no way to get around that.
    The only C++ object oriented framework that I know and avoids this limitation for the most part is the COM/DCOM standard which imposes certain limits on object interfaces so that you can get around the compiler specific ABI conventions, but only if you are very careful about how you invoke the compiler. With a bit of macro magic that can be enabled in the IDL precompiler you can even call COM/DCOM objects from standard C. Also COM/DCOM definitely will not work wth C++ template libraries and the like.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • VBA Call WebServices: How to handle a returned empty complex array?

    Hi,
        These days I got a task to call a web service by VBA in Excel, but faced the following two problems about empty complex array.
    <b>1. When the returned value of a web service contains empty array, it crashed with "SoapMapper: array dimensions do not match definition"</b>
        Another guy faced the same question with me, detail at http://www.topxml.com/SOAPToolkit/rn-246726_SoapMapper-array-dimensions-do-not-match-definition.aspx
    <b>2. When the input parameter contains empty array, it crashed with "Operation Not Supported"</b>
    Dim arrayStudent() As Student
    Call webservice.DoThings( arrayStudent )

    Hello,
    we have faced the same Problem in our PHP / Typo3 solution. We used this switch:
    $object_array = array();
    if (is_object($salesorders->SALES_ORDERS_HEAD->item)) {
         $object_array[] = $salesorders->SALES_ORDERS_HEAD->item;
    } else {
         $object_array = $salesorders->SALES_ORDERS_HEAD->item;
    Best regards
    Gregor

  • How to store logical operator in an array in java

    how to store logical operator in an array in java.
    Array should not be String type if i pass an element of that array it should be considered as logical operator

    my exact requirment is like this, i need some logic
    to convert string like this "2 Equals 3 AND 4 greater
    than 7" to condition like this
    2 == 3 && 4 >7 which i can pass to if
    condition.So you want to create an expression parser?
    No need for something as ugly as what you think you need, a simple nested conditional will do it for just the few logical operations.

  • Why we cannot perform DML operations against complex views directly.

    hi
    can any tell me why we cannot perform DML operations against complex views directly.

    Hi,
    It is not easy to perform DML operations on complex views which involve more than one table as said by vissu. The reason being you may not know which columns to be updated/inserted/deleted on the base tables of the views. If it is a simple view containing a single table it is as simple as performing actions on the table.
    For further details visit this
    http://www.orafaq.com/wiki/View
    cheers
    VT

  • Complex Array/Objects in Datagrid

    Hi,
    I'm a complete noob to all this but I have a somewhat complex
    array.....and I know my arrays will only get more complex.
    I can get a single row by putting this as the data provider:
    {dataProvider[0]['Time']}
    Or, this: {dataProvider[1]['Time']}
    BUT... I want multiple rows in my data grid. I can't seem to
    figure out how to achieve this.
    Simply putting {dataProvider} returns [object Object] ...
    putting in {dataProvider[1]} will also return [object Object] ....
    this is provided my dataFields are specified correctly of course
    for each level.
    Flash sees these as Objects, it barks at me for trying to
    convert them to ArrayCollection or anything else.
    I try to make a new array even of just the
    dataProvider[0]['Time'] entries by specifying newArray[0] =
    dataProvider[0]['Time'] ... etc. or by trying
    newArray.push(dataProvider[0]['Article']) ... but this is inside a
    function (for my remote connection) and I can't get the array back
    to the public space for use in my data grid... or I'll get an error
    about not being able to make an object into an array.
    Any clues?? This sounds like such a simple thing ... and of
    course I found out you can't simply put a statement to loop inside
    the dataprovider... which would make it super easy.... so what's
    up?
    Thanks.
    Here's the structure of my array by the way (returned with
    amfphp) .. which will probably not be indented, sorry.
    Array
    [0] => Array
    [Time] => Array
    [id] => 1
    [created] => 2007-02-25
    [time] => 10
    [notes] => hours (10)
    [project_id] => 1
    [user_id] => 1
    [Project] => Array
    [id] => 1
    [name] => Test Project #1
    [created] => 2007-02-25
    [due] => 2007-02-28
    [User] => Array
    [id] => 1
    [username] => admin
    [1] => Array
    [Time] => Array
    [id] => 2
    [created] => 2007-03-04
    [time] => 4
    [notes] => setup initial layout
    [project_id] => 1
    [user_id] => 1
    [Project] => Array
    [id] => 1
    [name] => Test Project #1
    [created] => 2007-02-25
    [due] => 2007-02-28
    [User] => Array
    [id] => 2
    [username] => tom

    Similar problem with different data structure
    My data looks like this
    <employee >
    <shift id="1">
    <date>Sun 3-25</date>
    <in0 id="122" >8:00am</in0>
    <in1 id="333" >12:40</in1>
    <out1 id="1234">5:40</out1>
    <total>8.02</total>
    </shift>
    The datagrid displays the time in the <in1> tag just
    fine, but when the user clicks on this cell, I need to be able to
    get the "id" attribute in order to update the DB.
    I'm a newbie and am trying to redo a dojo project in flex.
    I'm not locked in to the xml pattern shown above. Otherwise my
    datagrid is working well. snippet below...
    <mx:DataGrid id="punchdetail"
    itemClick="punchSelected(event);"
    itemRenderer="BackgroundColorRenderer"
    dataProvider="{DetailDS.lastResult.employee.shift}"
    change="editPunch(event);"
    sortableColumns="true">
    <mx:columns>
    <mx:DataGridColumn dataField="id" visible="false" />
    <mx:DataGridColumn dataField="date" headerText="Date"/>
    <mx:DataGridColumn dataField="in0" width="50"
    headerText="In" />
    <mx:DataGridColumn dataField="out0" width="50"
    headerText="Out"/>
    <mx:DataGridColumn dataField="total" />
    </mx:columns>
    </mx:DataGrid>
    private function punchSelected(event:ListEvent):void {
    var col:DataGridColumn =
    punchdetail.columns[event.columnIndex];
    Alert.show ( " "+punchdetail.selectedItem.col.dataField);
    //Alert.show ( " "+col.dataField);
    //Alert.show ( " "+punchdetail.selectedItem.valueOf());
    Text
    Text

  • Building DLLs from VIs with array as output

    Is there any special way to build DLLs from VIs having arrays as outputs. Suppose I have a VI "Random" with input "nrand" and output an array "the_random2". When I build DLL from the VI, I have something like this in my header file
    void __stdcall Random(long nrand, double the_random2[]);
    Now it returns void. So I have to pass the array as pointer and retrieve it. If I use Mathscript to load the DLL and call this function, how do I pass the pointer to the array "the_random2"? Simply speaking, any useful method to build DLLs with array outputs and the right way to call them from Mathscript would be appreciated.
    Regards
    NRK

    Hi,
    Building DLLs in LabVIEW is described in this tutorial.  
    Mathscript can call shared libraries such as DLLs, however make sure
    that they are compliant with the supported data types as stated here in
    this help page.  All supported functions for calling/loading shared libraries is described here. 
    Note that these functions are not supported with the base package.  The
    details of the sytax of each function is described in their specific
    help page.
    Hope this helps!
    Regards,
    Nadim
    Applications Engineering
    National Instruments

  • Split commas delimited into 1D complex array

    I have comma delimited string in this format
    [0.866405665874481,0.127425819635391,0.983153462409973,-0.0711551383137703,0.955700755119324,-0.27884304523468,0.787182509899139,-0.501964211463928,0.512355387210846,-0.687117278575897,0.177220240235329,-0.777789652347565,-0.0876994803547859,-0.792799115180969,-0.324512422084808,-0.736825287342072,-0.517065346240997,-0.627932071685791,-0.666604995727539,-0.471743047237396,-0.767350137233734,-0.287838608026505,-0.819185018539429,-0.0853987112641335,-0.81872695684433,0.123056441545486,-0.761552691459656]
    The data contains pairs of complex numbers.  The first 2 numbers is one pair, next 2 numbers one pair, next pairs.....
    How can I extract the pairs of number and make it into a 1D complex array?
    This is the expected output:
    (0.866405665874481,0.127425819635391),(0.983153462409973,-0.0711551383137703),(0.955700755119324,-0.27884304523468),(0.787182509899139,-0.501964211463928),(0.512355387210846,-0.687117278575897),(0.177220240235329,-0.777789652347565),(-0.0876994803547859,-0.792799115180969),(-0.324512422084808,-0.736825287342072),(-0.517065346240997,-0.627932071685791),(-0.666604995727539,-0.471743047237396),(-0.767350137233734,-0.287838608026505),(-0.819185018539429,-0.0853987112641335),(-0.81872695684433),(0.123056441545486,-0.761552691459656)
    Any gurus pls advise
    Thanks and great day
    Solved!
    Go to Solution.

    I used the Spreadsheet String to Array, Decimate Array, and then Re/Im to Complex.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines
    Attachments:
    Delimited String to Complex Number Array.png ‏13 KB

  • Writing txt file to int array

    The project I was assigned is to write a program that takes numbers from a text file (all on one line, separated by spaces) and store them into a 5-element array. The program is supposed to check and see if the array is big enough to hold all the numbers from the text file, and if it isn't, it is supposed to double that array size. I've written the following code and it compiles, but it will not run due to this error:
    Exception in thread "main" java.lang.NullPointerException
         at java.io.Reader.<init>(Reader.java:61)
         at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
         at ArrayReader.main(ArrayReader.java:16)
    ----jGRASP wedge2: exit code for process is 1.
    ----jGRASP: operation complete.
    This is what I have so far. If anyone could help me or point out anything I missed it would be greatly greatly appreciated.
    import java.io.*;
    public class ArrayReader
         public static void main(String[] args)
              File file = new File("numberlist.txt");
              FileInputStream fis = null;
              BufferedReader br = new BufferedReader (new InputStreamReader(fis));
              int i = 5;
              int x = 0;
              int[] array;
              array = new int;
              try
                   fis = new FileInputStream(file);
                   for (x = 0; x < array.length; x++)
                             if (x > array.length)
                                  i = i*2;
                                  System.out.println("Array too small. Doubling size to: " + i);
                             else
                                  array[i] = fis.read();
              catch(FileNotFoundException e)
                   System.out.println("File " + file.getAbsolutePath() +
                                            " could not be found on filesystem");
              catch(IOException ioe)     
                   System.out.println("Exception while reading the file" + ioe);
              for (i = 0; i < array.length; i++)
                   System.out.println(array[i]);

    ursusmajx wrote:
    Exception in thread "main" java.lang.NullPointerException
         at java.io.Reader.<init>(Reader.java:61)
         at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
         at ArrayReader.main(ArrayReader.java:16)Start by looking at line 16 in ArrayReader.main. It's not lie 16 in the code you posted here, so either you haven't posted the code you tried to run or you're not running the code you think you are.
    I do see where you are using fis before assigning it a value.
    db

  • Need help optimizing the writing of a very large array and streaming it a file

    Hi,
    I have a very large array that I need to create and later write to a TDMS file. The array has 45 million entries, or 4.5x10^7 data points. These data points are of double format. The array is created by using a square pulse waveform generator and user-defined specifications of the delay, wait time, voltages, etc. 
    I'm not sure how to optimize the code so it doesn't take forever. It currently takes at least 40 minutes, and I'm still running it, to create and write this array. I know there needs to be a better way, as the array is large and consumes a lot of memory but it's not absurdly large. The computer I'm running this on is running Windows Vista 32-bit, and has 4GB RAM and an Intel Core 2 CPU @ 1.8Mhz. 
    I've read the "Managing Large Data Sets in LabVIEW" article (http://zone.ni.com/devzone/cda/tut/p/id/3625), but I'm unsure how to apply the principles here.  I believe the problem lies in making too many copies of the array, as creating and writing 1x10^6 values takes < 10 seconds, but writing 4x10^6 values, which should theoretically take < 40 seconds, takes minutes. 
    Is there a way to work with a reference of an array instead of a copy of an array?
    Attached is my current VI, Generate_Square_Pulse_With_TDMS_Stream.VI and it's two dependencies, although I doubt they are bottlenecking the program. 
    Any advice will be very much appreciated. 
    Thanks
    Attachments:
    Generate_Square_Pulse_With_TDMS_Stream.vi ‏13 KB
    Square_Pulse.vi ‏13 KB
    Write_TDMS_File.vi ‏27 KB

    Thanks Ravens Fan, using replace array subset and initializing the array beforehand sped up the process immensely. I can now generate an array of 45,000,000 doubles in about one second.
    However, when I try to write all of that out to TDMS at the end LV runs out of memory and crashes. Is it possible to write out the data in blocks and make sure memory is freed up before writing out the next block? I can use a simple loop to write out the blocks, but I'm unsure how to verify that memory has been cleared before proceeding.  Furthermore, is there a way to ensure that memory and all resources are freed up at the end of the waveform generation VI? 
    Attached is my new VI, and a refined TDMS write VI (I just disabled the file viewer at the end). Sorry that it's a tad bit messy at the moment, but most of that mess comes from doing some arithmetic to determine which indices to replace array subsets with. I currently have the TDMS write disabled.
    Just to clarify the above, I understand how to write out the data in blocks; my question is: how do I ensure that memory is freed up between subsequent writes, and how do I ensure that memory is freed up after execution of the VI?
    @Jeff: I'm generating the waveform here, not reading it. I guess I'm not generating a "waveform" but rather a set of doubles. However, converting that into an actual waveform can come later. 
    Thanks for the replies!
    Attachments:
    Generate_Square_Pulse_With_TDMS_Stream.vi ‏14 KB
    Write_TDMS_File.vi ‏27 KB

  • Adf input complex arrays error

    I have web service that contains array of complex type as input. I want to invoke web service from jspx page using adf. I have added web service data control and followed this guide [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/54-ws-complex-input-type-169197.pdf] to add input form into jspx page, But I have table for array input. In PageDef.xml page, I have updated NDValue according to the pdf tutorial, now it is
    <NamedData NDName="refSys"
    NDValue="#{bindings.theIterator.currentRow.dataProvider}"
    NDType="java.lang.Object[]"/>
    But, when ever I click on submit button it gives following error:
    Cannot create an object of type:[Ljava.lang.Object; from type:java.util.HashMap
    How can I cope with this problem?
    I am using JDeveloper 11gR1.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Hi,
    with respect to my previously posted thread, its hard to understand that oracle does not support complex type arrays,
    let me rephrase the question again :
    I have a complex type as the following:
    <xs:complexType name="updateRefSys">
    <xs:sequence>
    <xs:element name="id" type="xs:string" minOccurs="0"/>
    <xs:element name="refSys" type="tns:refSys" minOccurs="0"
    maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="refSys">
    <xs:sequence>
    <xs:element name="pltfrm" type="xs:string" minOccurs="0"/>
    <xs:element name="custNo" type="xs:string" minOccurs="0"/>
    <xs:element name="ExtSys" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    It contains a refsys which is a complex type which may contain zero or many elements, this complex type is an input to my web service, what I need to know is that how can i copy rows from adf table into this complex type so that I may pass this parameter to the web service.

  • How to access complex arrays/types in a class

    public class VirusScanMessage {
    public byte[] fileContent;
    public int fileSize;
    public String messages;
    public String datLocation;
    jclass clazz = env->FindClass("VirusScanMessage");
    // get field
    jfieldID byteArrayField = env->GetFieldID(clazz,"fileContent","[b");
    // get the byteArray object
    jbyteArray byteArray = env->GetObjectField(object,byteArrayField);
    // get array length
    jsize fileContentLength = env->GetArrayLength(byteArray);
    jbyte * fileContent = env->GetByteArrayElements(byteArray,0);
    // do stuff
    // release array
    env->ReleaseByteArray(byteArray,fileContent,0);thats the normal way but how to access the arrays if they are complex like this(struct1,class2)?:
    public class VirusScanMessage {
    public struct1[] fileContent;
    public int fileSize;
    public String messages;
    public String datLocation;
    public class2 cl2;
    }

    Note that your code is missing error checking.
    thats the normal way but how to access the arrays if they are complex like this(struct1,class2)?:Retrieve each item from the array as an Object.
    [http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/functions.html#wp21671]

  • RPC calls to Operations with complex types is it possible?

    Using Remote Procedure Calls, and Document Literal Wrapped SOAP Messages
    I have a complex type called
    <customerCall>
    <custId>
    <custPhone>
    <custName>
    <custCat>
    <custIssue>
    <custOperator minoccurs = 0>
    <custEnrollDate minoccurs = 0 >
    I have an operation called getFirstAvailableOperator(currentCall) where current call is an instance of the customerCall type? Where getFirst AvailableOperator returns the complex type customerCall?

    Using Remote Procedure Calls, and Document Literal Wrapped SOAP Messages
    I have a complex type called
    <customerCall>
    <custId>
    <custPhone>
    <custName>
    <custCat>
    <custIssue>
    <custOperator minoccurs = 0>
    <custEnrollDate minoccurs = 0 >
    I have an operation called getFirstAvailableOperator(currentCall) where current call is an instance of the customerCall type? Where getFirst AvailableOperator returns the complex type customerCall?

  • Writing dll in visual c++ and importing it to labview

    I am writing a Dll using microsoft visual c++. Under the source file i wish to include this header file(#include "extcode.h")sothat i can use the labview library function in c++.However when i try to duild the dll,it will produce a linker problem which say that unable to find this file or no such file exist.
    Another point that i am not clear of is,under microsoft visual c++,can i either choose to add this file by listing it in mysource code(#include extcode.h) or can i just simply add by clicking on the project tab->add file ->indicate the file name?
    when writing a dll, i can either choose to write in "C" or winapi.Which of these method will provide a better soln.
    in lbview when we declar
    ed the type of data say integer, i understand that there is only short integer(16bits) and a long integer(32bits) and achar (8bit integer). However in a c program there is short int,int and a long int so how i am able to declare an int as regard to labview?

    Derek,
    Use the following link :
    http://zone.ni.com/devzone/devzone.nsf/webcategories/E2A99E7E10D5725D862567AC004F0A53?opendocument
    I think you will find all you need there. The first link off this page will also give you a table of how labview ints convert to other development enviroment types. There are also links for creating a DLL in C++ and using it in labview like you are trying to do.
    Jared

  • Executing web service operation with complex input - Please help

    Hi All,
    I am working on invoking a web service through ADF. The request format for the webservice consists of multiple occurance of same element. Below is sample request. here <index> is repeating n number of times.
    <soapenv:envelope>
    <soapenv:Body>
              <ns6:StoreDocumentRequest>
                   <ns6:docFileType>ABC</ns6:docFileType>
                   <ns6:Metadata>
                        <ns6:index>
                             <ns6:indexType>Format_Type</ns6:indexType>
                             <ns6:indexValue>ACROBAT</ns6:indexValue>
                        </ns6:index>
                        <ns6:index>
                             <ns6:indexType>Buyer_No</ns6:indexType>
                             <ns6:indexValue>1234567</ns6:indexValue>
                        </ns6:index>
                        <ns6:index>
                             <ns6:indexType>Document_Type</ns6:indexType>
                             <ns6:indexValue>101A</ns6:indexValue>
                        </ns6:index>
                        <ns6:index>
                             <ns6:indexType>Capture_Location</ns6:indexType>
                             <ns6:indexValue>XYZ</ns6:indexValue>
                        </ns6:index>
                   </ns6:Metadata>
                   <ns6:Content>XXXXXXXXXXXX</ns6:Content>
              </ns6:StoreDocumentRequest>
         </soapenv:Body>
    </soapenv:envelope>
    now I need to populate these values thrugh Operation binding in my managed bean class. I have also dragged these parameters and operation on my jsf page to get hold of those in my managed bean context. I am having following code in my managed bean to set these parameters.
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding storeDocumentBinding = bindings.getOperationBinding("StoreDocument");
    storeDocumentBinding.getParamsMap().put("docFileType", filetype);
    storeDocumentBinding.getParamsMap().put("Content", filecontents);
    storeDocumentBinding.getParamsMap().put("indexType", filecontents);
    storeDocumentBinding.getParamsMap().put("indexValue", filecontents);
    storeDocumentBinding.getParamsMap().put("indexType", filecontents);
    storeDocumentBinding.getParamsMap().put("indexValue", filecontents);
    storeDocumentBinding.execute();
    Here I am facing some issues:
    1. The operation is not picking values put from ParamMap(). It is taking values as empty (as in my .jspx page form, I have made it hidden though). It takes value from my jspx page form, which is blank.
    2. when I am manually entering values in the .jspx page form, for <indexValue> and <indexType> tags, it is taking only one value (last one) for creating the request.
    3. the storeDocument() function is a SOAP based service. How can I check for SOAP response after operationBinding.execute(). I checked for response after execution, it sends an object as result. How to get a SOAP response from it.
    I need to fetch few values from the SOAP response and display it on screen.
    Please help me out. I am noob in ADF.
    regards,
    Rajan

    Hi Puthanampatti,
    I followed the link and did exactly as mentioned. Here is my code
    public String downloadDocument(FacesContext context, OutputStream out) throws IOException {
    BindingContext bctx = BindingContext.getCurrent();
    BindingContainer bindings = bctx.getCurrentBindingsEntry();
    OperationBinding retrieveDocumentBinding = bindings.getOperationBinding("RetrieveDocument");
    DCIteratorBinding attachmentsIterator = (DCIteratorBinding)bindings.get("AttachmentsIterator");
    String documentId = attachmentsIterator.getCurrentRow().getAttribute("Seq").toString();
    System.out.println(customSoapProvider.getRequest()); // getting null here
    AttributeBinding docFileTypeVal = (AttributeBinding)bindings.getControlBinding("docId");
    docFileTypeVal.setInputValue(522117);
    Object result = retrieveDocumentBinding.execute();
    System.out.println(customSoapProvider.getResponse()); //getting null here
    but I am getting a null response in the last line.
    what am I missing here.
    regards,
    Rajan
    Edited by: Rajan M on Jan 5, 2013 11:27 AM

Maybe you are looking for

  • Windows xp dosen´t connect to mac

    Hi there, i just bought a mini mac and i want to share it with my two others PC. The problem is that i can see and work with the PC´s documents, but when i go to PC try to access the documents from the MAC i can´t. The PC see the mac computer, but wh

  • Singleton Class ArrayCollection within Flashbuilder (Mobile) empty?

    Hi, I am currently trying to implememnt a Singleton Class in order to store a ArrayCollection of items that I can then access and manipulate across the lifecycle of my app. I have created the below Singleton Class that is designed to hold the ArrayCo

  • Sad face and folder with ! mark. Help needed

    My ipod will either show the sad Ipod face, or the folder with the exclamation mark when I try to turn it on. Also my computer won't even recognize it. It wont work or anything. I have tried to reset it, but nothing works. What are my options? I went

  • Download delays with Mountain Lion

    Hello, About 30 minutes ago I went to the App store to initiate the download of Mountain Lion (upgrading from Lion).  I can see that the process started on my desktop but I can't see that the progress bar has moved at all to indicate that it is actua

  • How do I detect FinFisher?

    Please don't respond with a link to the cease and desist article. I've already read it. It's old news to me, and it tells me nothing about my concerns. I'd really like to know how to figure out whether my computer is compromised. Firefox is my most-o