Usar Web Services de Adempiere

2011-04-08
2013-03-07
  • Freddy Rodriguez

    Buena Tardes comunidad Adempiere

    Estoy explorando el tema de los Web Services, ya revisé las paginas http://www.adempiere.com/index.php/Adempiere_Web_Services y http://www.adempiere.com/index.php/Adempiere_Web_Services_Security, y tengo en mi servidor de desarrollo con la funcionalidad, veo los WSDL y responde las peticiones.

    Lo que no entiendo muy bien es como consumir los Servicios Web, y no he encontrado mucha documentación al respecto.
    He intentado hacer pruebas usando “soapUI” como por ejemplo la siguiente:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adin="http://3e.pl/ADInterface">
       <soapenv:Header/>
       <soapenv:Body>
          <adin:queryData>
             <adin:ModelCRUDRequest>
                <adin:ModelCRUD>
                   <adin:serviceType>CreateBPartner</adin:serviceType>
                   <adin:TableName>C_Partner</adin:TableName>
                   <adin:RecordID>0</adin:RecordID>
                   <adin:Filter>0</adin:Filter>
                   <adin:Action>Read</adin:Action>
                   <!-Optional:->
                   <adin:DataRow>
                      <!-Zero or more repetitions:->
                      <adin:field type="?" column="?" lval="?" disp="?" edit="?" error="?" errorVal="?">
                         <adin:val>?</adin:val>
                         <!-Optional:->
                         <adin:lookup>
                            <!-Zero or more repetitions:->
                            <adin:lv val="?" key="?"/>
                         </adin:lookup>
                      </adin:field>
                   </adin:DataRow>
                </adin:ModelCRUD>
                <adin:ADLoginRequest>
                    <adin:user>GardenUser</adin:user>
                <adin:pass>GardenUser</adin:pass>
                <adin:lang>en_US</adin:lang>
               <adin:ClientID>11</adin:ClientID>
               <adin:RoleID>103</adin:RoleID>
                <adin:OrgID>11</adin:OrgID>
                <adin:WarehouseID>103</adin:WarehouseID>
                <adin:stage>0</adin:stage>
                </adin:ADLoginRequest>
             </adin:ModelCRUDRequest>
          </adin:queryData>
       </soapenv:Body>
    </soapenv:Envelope>

    pero siempre recibo como respuesta algo del tipo:

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <soap:Body>
          <ns1:queryDataResponse xmlns:ns1="http://3e.pl/ADInterface">
             <WindowTabData xmlns="http://3e.pl/ADInterface">
                <Error>Service type CreateBPartner not configured</Error>
             </WindowTabData>
          </ns1:queryDataResponse>
       </soap:Body>
    </soap:Envelope>

    Para el “Web  Service Type” he usado tanto lo que está en Search Key (CreateBPartner) como lo que está e Name (Create BPartner), pero el mensaje es el mismo.

    Hay algún manual o una pagina donde esté en mas detalle como se pueden consumir los Web Services de adempiere o como puedo realmente usar la funcionalidad como tal de los Web  Services en adempiere?

    De antemano agradezco inmensamente la colaboración prestada.

    Cordial Saludo.

    Freddy Rodriguez,
    Java Developer/Integrator
    SmartJSP Solutions
    http://www.smartjsp.com

     
  • Fabian Aguilar

    Fabian Aguilar - 2012-04-18

    Hola freddy

    te explico tu problema
    1º si todo esta correctamente instalado y entras en tu server a la ruta
    http://myserver:1024/ADInterface/services/ModelADService?wsdl

    veras las definiciones de todos los tipos de mensajes que puedes enviar para consumir los metodos
    de el servicio de modelo ModelADService

    si pones eso en soapUI te generara varios mockservices cada 1 con un formato de request que es el que debes usar para cada caso..

    tu error es :

    USAR UN FORMATO DE REQUEST QUE NO ES PARA EL METODO QUE QUIERES USAR.

    fijate, tu quieres usar un metodo del tipo Create, que usa el metodo CreateData de el ws
    pero tu REQUEST tiene el TAG  <adin:queryData>  (4º linea)   el mensaje deberia estar encerrado entre
    <adin:createData>

    Fabian Aguilar Fuentes
    Consultor Senior Adempiere
    http://www.ofbconsulting.com

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks