Forum Stats

  • 3,735,196 Users
  • 2,247,139 Discussions
  • 7,857,780 Comments

Discussions

Is it possible to access Data Domain to retrieve records?

FredericoSB
FredericoSB Member Posts: 419
edited Sep 11, 2014 9:10AM in Endeca Information Discovery

Hello,

I'm using OEID 3.1.

Today i was asked if i know if its possible to access the records stored in the Data Domain to retrieve them.

Actually the question was if there is a way to access the "Database" of the Data Domain to retrieve the data from there.

Is this possible ? Is there a way to retrieve the data from the Data Domain stored?

I can only think it would be possible to retrieve the data but without the information about the columns, only a simple retrieve of information by placing a results table and do an export but maybe there is a way to do a retrieve of the data like a sql export, including information about the metadata, etc..

Regards and thanks for the help.

Tagged:
cflorindoRPAC

Best Answer

  • Samuele S.
    Samuele S. Member Posts: 26
    Accepted Answer

    Sure, you have to call the conversation web service of endeca server

    http://<host>:<port>/endeca-server/ws/conversation/<dataDomain>?wsdl

    with a request content like this:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.endeca.com/MDEX/conversation/3/0" xmlns:typ="http://www.endeca.com/MDEX/lql_parser/types">

         <soapenv:Header/>

         <soapenv:Body>

              <ns:Request>

                   <ns:Language>en</ns:Language>

                   <ns:State/>

                   <ns:EQLConfig Id="EQLRequest">

                        <ns:EQLQueryString>

                             RETURN ResultSet AS

                             SELECT AttributeA, AttributeB

                             WHERE AttributeB > 5

                        </ns:EQLQueryString>

                   </ns:EQLConfig>

              </ns:Request>

         </soapenv:Body>

    </soapenv:Envelope>

    an you'll receive a response with record details in the content.

    Is that clear or do you need further details?

    RPACFredericoSB

Answers

  • 1054019
    1054019 Member Posts: 4

    It is possible.. Take a look at the conversion API (http://docs.oracle.com/cd/E40518_01/server.761/server_api_ref/endeca-server/wsdl/conversation/index.html).  The result will also provide you the data types for each column.  More details out the web-service can also be found here: http://docs.oracle.com/cd/E40518_01/server.761/es_dev/toc.htm#Conversation%20Web%20Service%20Interface

    FredericoSB
  • FredericoSB
    FredericoSB Member Posts: 419

    Hello,

    Thanks for the link, as i see, there are a lot of options regarding this..

    I've tried to do the first one on the link but i do not know if i'm making it right, is it like this: http://server:port/endeca-server/ws/conversation/data_domainXSD=eql_parser_types.xsd ?

    Regards and thanks once again.

  • FredericoSB
    FredericoSB Member Posts: 419

    Although it can be possible to access the Data Domain to retrieve records using the Conversation Web Service, how can we do it exactly?

    Do we need to use Clover with the Web Service Component ? Can anyone provide an example as a base ?

    I tried using the web service component but i don't know how to configure all the components or the ones that are needed to do simple select queries.

    If anyone can provide an example, it would be awesome.

    Thanks everyone.

  • Branchbird - Pat
    Branchbird - Pat Member Posts: 316 Bronze Badge

    Frederico,

    Are you trying to do it in Clover/Endeca Integrator, a portlet in Studio or your own application?

    The Endeca Server uses Web Services to serve requests for data, it's not as simple as say a REST service or writing a SQL Query (though you could make it that easy by writing a quick front-end).

    I think this question is not being answered because it's unclear what the "end goal" of what you're trying to do is and why you are trying to do it.

    If you're just looking to "play around", download SOAP UI and play around with that.  It's a great tool, regardless of what you are trying to do as it will automatically interrogate a WSDL file (the definition of a Web Service) and generate sample requests for you.

    If you're looking to export records in Clover....you are (almost certainly) using web services already in your data loading graphs.  Check out how something like InitDataDomain uses the Manage web service as an example (or LoadAttributes uses sconfig) and then drop your own web service component on a graph, switch it over to use the Conversation service and try some things.

    If you have a custom portlet or front-end looking to use Endeca Server data, Web Services support lots of (nearly all?) coding languages, platforms, etc.  It's probably outside the scope of this forum to talk about consuming Web Services in your application, since that's something that thousands of applications do and is more of a Java/C#/your language of choice question.  For example:

    How to create and consume a simple Web Service using JAX WS » the Open Tutorials

    http://wiki.servicenow.com/index.php?title=Web_Services_C_Sharp_.NET_End_to_End_Tutorial

    Hope that helps.

    Patrick Rafferty

    http://branchbird.com

    FredericoSB
  • FredericoSB
    FredericoSB Member Posts: 419

    Hello Patrick, how are you ?

    First of all, thank you very much for your response. I think i understood a little better what my options are regarding the access to the data domain.

    My end goal was to understand how it could be done and try doing it, so that in the future, if necessary, we could retrieve data from the data domain.

    And maybe in the future, the end goal is to edit the data directly in the application, saving it on the data domain and then retrieve the records from there.

    BTW, we don't use web services in Clover to do the insert of data in the data domain, since we use a Table.

    Is it a good solution (for now and for testing) to use SOAP UI to make the wsdl files and pass them through Clover ?

    Regards and thanks very much for the answer!

    Frederico Barracha.

  • Samuele S.
    Samuele S. Member Posts: 26

    Hi Frederico,

    do you want to build an Integrator ETL graph in which you can set an EQL query in order to extract specific records from a data domain?

  • FredericoSB
    FredericoSB Member Posts: 419

    Hello Samuele,

    Yes, that would be perfect.

    Is that possible ??

  • Samuele S.
    Samuele S. Member Posts: 26
    Accepted Answer

    Sure, you have to call the conversation web service of endeca server

    http://<host>:<port>/endeca-server/ws/conversation/<dataDomain>?wsdl

    with a request content like this:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.endeca.com/MDEX/conversation/3/0" xmlns:typ="http://www.endeca.com/MDEX/lql_parser/types">

         <soapenv:Header/>

         <soapenv:Body>

              <ns:Request>

                   <ns:Language>en</ns:Language>

                   <ns:State/>

                   <ns:EQLConfig Id="EQLRequest">

                        <ns:EQLQueryString>

                             RETURN ResultSet AS

                             SELECT AttributeA, AttributeB

                             WHERE AttributeB > 5

                        </ns:EQLQueryString>

                   </ns:EQLConfig>

              </ns:Request>

         </soapenv:Body>

    </soapenv:Envelope>

    an you'll receive a response with record details in the content.

    Is that clear or do you need further details?

    RPACFredericoSB
  • FredericoSB
    FredericoSB Member Posts: 419

    Hello Samuele,

    Actually that seemed perfect for me, i haven't tried it yet but i will and i'll mark it as a correct answer.

    Does it work with any eql query ?

    Only thing i need is to create a graph with the web service component and use that right ?

    Regards and many thanks!

  • Samuele S.
    Samuele S. Member Posts: 26

    Yes, it should work.

    You can set any valid EQL query and then you have to parse the xml response with an xml reader component.

    Regards,

    Samuele Scattolini

  • FredericoSB
    FredericoSB Member Posts: 419

    Hello Again Samuele,

    I just tested the request and it does not give any error, although i would like to know which type of metadata you use to see the results ? If possible of course.

    My request is this:

    <ns:Request xsi:type="ns:Request" xmlns:ns="http://www.endeca.com/MDEX/conversation/3/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

                     <ns:Language>en</ns:Language>

                   <ns:State/>

                   <ns:EQLConfig Id="EQLRequest">

                        <ns:EQLQueryString>

                             RETURN ResultSet AS

                             SELECT PCODIGO

                             WHERE CC_VALIDA='V'

                        </ns:EQLQueryString>

                   </ns:EQLConfig>

    </ns:Request>


    Regards and many thanks for the help!

  • FredericoSB
    FredericoSB Member Posts: 419

    Hello Samuele, how are you ?

    Your request worked like a charm and I will mark your answer as correct after i ask a last question.

    I checked a post of yours regarding the xml reader component and the web service.

    I'm trying to do something on that line.

    Web Service -> (removing the data from it) -> passing it to the DB.

    My problem is that the webservice gives the correct number of records in the output but it does not give any data in those records, only nulls..

    This is what i have in my response mapping:

    <Mappings>

        <Mapping element="0:Results">

            <Mapping element="0:EQL">

                <Mapping element="0:ResultRecords">

                    <Mapping element="0:Record" outPort="0">

                    </Mapping>

                </Mapping>

            </Mapping>

        </Mapping>

    </Mappings>


    Any idea?

    Regards and thanks!

    FredericoSB
  • FredericoSB
    FredericoSB Member Posts: 419

    Problem Solved.

    You have to create a request with the webserviceclient component that you have on Clover.

    Then its just a question of placing the right response mapping on the component to see the output coming out.

    In my case, i could not get the columns directly from the web service in one record so i got the xml record and pass it on the XML Reader component.

    If anyone has a doubt about that, feel free to ask.

    Regards and many thanks to everyone that helped solving this.

  • 1452653
    1452653 Member Posts: 1

    Hi Frederico,

    I am also getting nulls in the output.

    Could you please explain how did you resolve that problem or share the code snippet of your graph.

    Regards & Thanks.

  • FredericoSB
    FredericoSB Member Posts: 419

    Sorry,

    I haven't checked the forum in a while.

    Have you been able to get your answer ?

    Regards

This discussion has been closed.