- Este debate está vacío.
-
AutorEntradas
-
5 noviembre, 2013 a las 10:03 pm #32532Javier LoffredoParticipante
Buenas, estoy tratando de hacer unas consultas usando el SOAP de Libertya en PHP, pero no termino de entender la documentación, que esta orientada a desarrollos en JAVA.
¿Alguien tendrá algun ejemplo de consulta, por ejemplo de entidad comercial, usando PHP?
Gracias!!
Javier8 noviembre, 2013 a las 8:26 pm #37943Saulo GilMiembroCode:‘Admin’,
‘password’ => ‘Admin’,
‘clientID’ => ‘1010016’,
‘orgID’ => ‘1010053’,
);$arg = “01”; // Clave de EC
$result = $client->bPartnerRetrieveByValue( $base_args, $arg );
print_r($result);
8 noviembre, 2013 a las 8:43 pm #37951Javier LoffredoParticipantePerfecto.
Muchas Gracias!!
Otra pregunta, hay forma de traer todas las entidades comerciales?8 noviembre, 2013 a las 10:09 pm #37952Saulo GilMiembroAparentemente no, seguramente se pueda agregar facilmente editando
Code:src/org/libertya/ws/handler/BPartnerCRUDHandler.java8 noviembre, 2013 a las 11:55 pm #37953Federico CristinaSuperadministradorBuenas,
Para lo que será el próximo release de Libertya (estimado principios de 2014), LYWS contará con varias ampliaciones. Una de ellas es la posibilidad de invocar a recordQuery, el cual es una funcionalidad genérica que permite recuperar registros de cualquier tabla, indicando criterios de filtrado, selección de columnas a recuperar, etc.
Si no podés esperar, podrías animarte a compilar el proyecto LibertyaWS alojado en Google Code y regenerar el axis.jar, aunque se requiere algo de conocimiento al respecto.
Saludos!
Federico19 noviembre, 2013 a las 5:30 pm #37954Javier LoffredoParticipanteSi, puedo esperar, estoy mas que nada haciendo pruebas, nada concreto todavia.
Suponiendo que quiero crear una cuenta desde SOAP, con el bPartnerCreate, ¿donde puedo ver cuales son los parametros que puedo usar? o es directamente los nombres de los campos de la tabla?
Gracias!
20 noviembre, 2013 a las 4:29 am #37985Saulo GilMiembroPodés consultar la documentación en http://sourceforge.net/projects/libertya/files/components/lyws/doc/
20 noviembre, 2013 a las 4:08 pm #37986Javier LoffredoParticipanteGracias, ya lo había leido y descargado la API.
Pero sigo sin entender como armo el array para crear una nueva entidad (en php)./**
* Incorpora una nueva columna a los datos de parámetro la E.C.
* @param columnName nombre de la columna
* @param columnValue valor de la columna
*/
public void addColumnToBPartner(String columnName, String columnValue) {
…
}
/**
* Incorpora una nueva columna a los datos de parámetro de dirección de la E.C.
* @param columnName nombre de la columna
* @param columnValue valor de la columna
*/
public void addColumnToLocation(String columnName, String columnValue) {
…
}26 noviembre, 2013 a las 5:01 pm #37987Jorge ObeagaMiembroTe paso un ejemplo de una creación de EntidadComercial desde PHP.
Estoy usando nusoap para el cliente soap. Fijate que hay algunos IDs hardcodeados que quizás no coincidan con tu instancia de libertya: cualquier problema te debería aparecer bien especificado en el resultado de la invocación:Code:require_once(‘nusoap/nusoap.php’);
$client = new nusoap_client($url, true);$bean = array(
// Login de libertya:
‘userName’ => $user,
‘password’ => $pass,
‘clientID’ => $clientID,
‘orgID’ => $orgID,
// Datos de la entidad comercial
‘mainTable’ => array(
‘Name’ => $name,
‘Description’ => $description,
‘TaxID’ => $cuit,
‘URL’ => $website,
‘IsActive’ => ‘true’,
‘IsVendor’ => ‘false’,
‘IsCustomer’ => ‘N’,
‘IsProspect’ => ‘true’,
‘IsEmployee’ => ‘false’,
‘TaxIdType’ => ’80’, // CUIT
),
// Datos de la location de la entidad comercial
‘location’ => array(
‘Address1’ => $address,
‘Phone’ => $phone1,
‘Phone2’ => $phone2,
‘Fax’ => $fax,
‘EMail’ => $email1,
‘Name’ => $address,
‘City’ => $ciudad,
‘IsBillTo’ => ‘true’,
‘IsRemitTo’ => ‘true’,
‘IsPayFrom’ => ‘true’,
‘IsActive’ => ‘true’,
‘IsShipTo’ => ‘true’,
‘C_Country_ID’ => ‘119’, // ARG
‘C_Region_ID’ => ‘1000083’, // BS AS
),
);$params = array(
$bean,
);$result = $client->call(“bPartnerCreate”, $params);
print_r($result); // vemos qué devolvió la API
26 noviembre, 2013 a las 5:08 pm #37993Javier LoffredoParticipanteGracias!! me faltaba el ‘mainTable’ y el ‘location’.
Solo como referencia, el error que me daba era este:
‘
org.libertya.ws.exception.ModelException: Error al persistir entidad comercial:Error: : – org.postgresql.util.PSQLException: ERROR: el valor null para la columna «c_bp_group_id» viola la restricción not null (org.libertya.ws.handler.BPartnerCRUDHandler.bPartnerCreate(BPartnerCRUDHandler.java:40), org.libertya.ws.LibertyaWSImpl.bPartnerCreate(LibertyaWSImpl.java:37), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25), java.lang.reflect.Method.invoke(Method.java:597), org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397), org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186), org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323), org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32), org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118), org.apache.axis.SimpleChain.invoke(SimpleChain.java:83), org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454), org.apache.axis.server.AxisServer.invoke(AxisServer.java:281), org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699), javax.servlet.http.HttpServlet.service(HttpServlet.java:717), org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327), javax.servlet.http.HttpServlet.service(HttpServlet.java:810), org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252), org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173), org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81), org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202), org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173), org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213), org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178), org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39), org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153), org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59), org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126), org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105), org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107), org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148), org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856), org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744), org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527), org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112), java.lang.Thread.run(Thread.java:662))
‘
que digamos no es extremadamente claro de por donde venía el problema, solo que tenia un error con “c_bp_group_id”; siendo el problema la falta del mainTable para los parametros.De nuevo gracias por la ayuda!
12 marzo, 2014 a las 8:13 pm #37994WS BizMiembrojorge wrote:Te paso un ejemplo de una creación de EntidadComercial desde PHP.
Estoy usando nusoap para el cliente soap. Fijate que hay algunos IDs hardcodeados que quizás no coincidan con tu instancia de libertya: cualquier problema te debería aparecer bien especificado en el resultado de la invocación:Code:require_once(‘nusoap/nusoap.php’);
$client = new nusoap_client($url, true);$bean = array(
// Login de libertya:
‘userName’ => $user,
‘password’ => $pass,
‘clientID’ => $clientID,
‘orgID’ => $orgID,
// Datos de la entidad comercial
‘mainTable’ => array(
‘Name’ => $name,
‘Description’ => $description,
‘TaxID’ => $cuit,
‘URL’ => $website,
‘IsActive’ => ‘true’,
‘IsVendor’ => ‘false’,
‘IsCustomer’ => ‘N’,
‘IsProspect’ => ‘true’,
‘IsEmployee’ => ‘false’,
‘TaxIdType’ => ’80’, // CUIT
),
// Datos de la location de la entidad comercial
‘location’ => array(
‘Address1’ => $address,
‘Phone’ => $phone1,
‘Phone2’ => $phone2,
‘Fax’ => $fax,
‘EMail’ => $email1,
‘Name’ => $address,
‘City’ => $ciudad,
‘IsBillTo’ => ‘true’,
‘IsRemitTo’ => ‘true’,
‘IsPayFrom’ => ‘true’,
‘IsActive’ => ‘true’,
‘IsShipTo’ => ‘true’,
‘C_Country_ID’ => ‘119’, // ARG
‘C_Region_ID’ => ‘1000083’, // BS AS
),
);$params = array(
$bean,
);$result = $client->call(“bPartnerCreate”, $params);
print_r($result); // vemos qué devolvió la API
Estuve buscando en la API qué datos son los que hay que incluir en el array para, en este caso, el SimpleMap de datos y el de location y no lo encontré. Esa info está en la API de los LYWS o en otro lugar?
12 marzo, 2014 a las 8:27 pm #38235Federico CristinaSuperadministradorBuenas,
Debido a que los servicios Web de Libertya fueron concebidos como un thin-layer que proveen un set de operaciones apoyadas en LY CORE, los datos obligatorios en realidad los define el CORE de LY; dado que los mencionados servicios Web delegan la lógica de negocios al núcleo de Libertya (Tanto para LYWS como para LYWSE).
Qué datos se requiere para cada operación se puede determinar revisando los metadatos para la tabla/columnas en cuestión, y eventualmente revisando el código de lógica de persistencia correspondiente, el cual puede llegar a requerir ciertos valores en función de un escenario específico.
Saludos,
Federico -
AutorEntradas
- Debes estar registrado para responder a este debate.