DataManipulationWebService
De Centro de Conocimientos DANA
| Centro de Conocimientos DANA > Interfaces de conexión con DANA (API) > DataManipulationWebService |
Web Service SOAP que permite manipular la información contenida en Base de Datos Web de DANA.
Contenido |
Acceso
| Protocolo | URL |
| HTTPS | Web Service https://ws.danacrm.com:18181/dana/webDB/dataManipulationWebService |
| HTTP | Web Service http://ws.danacrm.com:18080/dana/webDB/dataManipulationWebServiceNoSSL |
- Se recomienda utilizar el protocolo HTTPS.
Cómo empezar a utilizar el Web Service
- La compañía que va a utilizar el Web Service debe estar autorizada para hacerlo, para solicitar la autorización comuníquese con soporte técnico.
- Se debe crear un usuario con el perfil apropiado que será utilizado por el sistema que consume el Web Service, para más información véase Perfil.
- Se debe otorgar los permisos necesarios al usuario para realizar la operación en las tablas deseadas, para más información véase Permisos.
Resumen de los métodos
| Nombre | Descripción |
| delete | Elimina uno o varios registros de una tabla de Base de Datos Web siempre y cuando cumplan la condición dada.
int delete(String idCompany, String login, String password, String tableCode, String conditions) |
| deleteById | Elimina un registro de una tabla de Base de Datos Web dado su UID.
int deleteById(String idCompany, String login, String password, String tableCode, int uid) |
| insert | Inserta un registro en una tabla de Base de Datos Web.
int insert(String idCompany, String login, String password, String tableCode, StringMap values) |
| select | Realiza una consulta en una o varias tablas de Base de Datos Web.
StringMap[] select(String idCompany, String login, String password, String query) |
| selectById | Consulta todas las columnas de un registro en una tabla de Base de Datos Web dado su UID.
StringMap selectById(String idCompany, String login, String password, String tableCode, int uid) |
| specialSelect | Realiza una consulta libre en una o varias tablas de Base de Datos Web.
StringMap[] specialSelect(String idCompany, String login, String password, String query) |
| update | Actualiza uno o varios registros de una tabla de Base de Datos Web siempre y cuando cumplan la condición dada.
int update(String idCompany, String login, String password, String tableCode, String conditions, StringMap values) |
| updateById | Actualiza un registro de una tabla de Base de Datos Web dado su UID.
int updateById(String idCompany, String login, String password, String tableCode, int uid, StringMap values) |
Detalle de los métodos
insert
Inserta un registro en una tabla de Base de Datos Web.
Sintaxis
public int insert(String idCompany, String login, String password, String tableCode, StringMap values) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- tableCode - Código lógico de la tabla en la cual se va a insertar el registro.
- values - Diccionario con los valores del registro a insertar, la clave es el código lógico de la columna y el valor es el valor que va a recibir la columna.
Valor devuelto
- UID o identificador del registro insertado.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un insert. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso de insertar registros en la tabla,
- - la tabla no tiene columnas,
- - no se indicaron columnas (el diccionario es nulo o vacío),
- - al menos una de las columnas no existe.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
updateById
Actualiza un registro de una tabla de Base de Datos Web dado su UID.
Sintaxis
public int updateById(String idCompany, String login, String password, String tableCode, int uid, StringMap values) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- tableCode - Código lógico de la tabla en la cual se va a actualizar el registro.
- uid - Identificador del registro a ser actualizado.
- values - Diccionario con los valores de las columnas a actualizar en el registro, la clave es el código lógico de la columna y el valor es el valor que va a recibir la columna.
Valor devuelto
- Cantidad de registros afectados, cero si no se actualizó ningún registro.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un update. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso de actualizar registros en la tabla,
- - la tabla no tiene columnas,
- - no se indicaron columnas (el diccionario es nulo o vacío),
- - al menos una de las columnas no existe.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
update
Actualiza uno o varios registros de una tabla de Base de Datos Web siempre y cuando cumplan la condición dada.
Detalle
- Las condiciones corresponden a la cláusula
wherede una sentencia sql y se emplea su sintaxis; para referenciar una tabla o una columna se debe emplear el código lógico de esta y debe estar entre corchetes.
Ejemplo de condición
[PARTICIPANTE_NOMBRE] = 'Fulano' AND [PARTICIPANTE_APELLIDO] = 'De Tal'
Limitaciones
- El sistema distingue entre mayúsculas y minúsculas en el código lógico de las tablas y columnas, por lo que se debe utilizar la correcta capitalización al referenciar a tablas y columnas.
- En la condición solo se pueden utilizar columnas pertenecientes a la tabla indicada por argumento, si se trata de utilizar miembros de otras tablas el sistemas no los considerará válidos.
- No están soportados los subquery (select dentro de la operación).
Sintaxis
public int update(String idCompany, String login, String password, String tableCode, String conditions, StringMap values) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidQueryException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- tableCode - Código lógico de la tabla en la cual se va a actualizar el(los) registro(s).
- conditions - Condición que deben cuamplir los registros a actualizar.
- values - Diccionario con los valores de las columnas a actualizar en el(los) registro(s), la clave es el código lógico de la columna y el valor es el valor que va a recibir la columna.
Valor devuelto
- Cantidad de registros afectados, cero si no se actualizó ningún registro.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un update. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso de actualizar registros en la tabla,
- - la tabla no tiene columnas,
- - no se indicaron columnas (el diccionario es nulo o vacío),
- - al menos una de las columnas no existe (en el diccionario o en el query).
- InvalidQueryException - Si la condición es inválida, esto puede ocurrir porque es nula o vacía o porque existe un error de sintaxis.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
deleteById
Elimina un registro de una tabla de Base de Datos Web dado su UID.
Sintaxis
public int deleteById(String idCompany, String login, String password, String tableCode, int uid) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- tableCode - Código lógico de la tabla en la cual se va a actualizar el registro.
- uid - Identificador del registro a ser eliminado.
Valor devuelto
- Cantidad de registros afectados, cero si no se eliminó ningún registro.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un delete. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso para eliminar registros de la tabla.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
delete
Elimina uno o varios registros de una tabla de Base de Datos Web siempre y cuando cumplan la condición dada.
Detalle
- Las condiciones corresponden a la cláusula
wherede una sentencia sql y se emplea su sintaxis; para referenciar una tabla o una columna se debe emplear el código lógico de esta y debe estar entre corchetes.
Ejemplo de condición
[PARTICIPANTE_NOMBRE] = 'Fulano' AND [PARTICIPANTE_APELLIDO] = 'De Tal'
Limitaciones
- El sistema distingue entre mayúsculas y minúsculas en el código lógico de las tablas y columnas, por lo que se debe utilizar la correcta capitalización al referenciar a tablas y columnas.
- En la condición solo se pueden utilizar columnas pertenecientes a la tabla indicada por argumento, si se trata de utilizar miembros de otras tablas el sistemas no los considerará válidos.
- No están soportados los subquery (select dentro de la operación).
Sintaxis
public int delete(String idCompany, String login, String password, String tableCode, String conditions) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidQueryException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- tableCode - Código lógico de la tabla en la cual se va a actualizar el registro.
- conditions - Condición que deben cuamplir los registros a eliminar.
Valor devuelto
- Cantidad de registros afectados, cero si no se eliminó ningún registro.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un delete. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso para eliminar registros de la tabla,
- - la tabla no tiene columnas,
- - al menos una de las columnas no existe.
- InvalidQueryException - Si la condición es inválida, esto puede ocurrir porque es nula o vacía o porque existe un error de sintaxis.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
selectById
Consulta todas las columnas de un registro en una tabla de Base de Datos Web dado su UID.
Sintaxis
public StringMap selectById(String idCompany, String login, String password, String tableCode, int uid) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- tableCode - Código lógico de la tabla en la cual se va a consultar el registro.
- uid - Identificador del registro a ser consultado.
Valor devuelto
- Objeto que contiene un diccionario con el valor de todas las columnas del registro, la clave es el código lógico de la columna y el valor es el valor de la columna.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un select. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso para consultar registros de la tabla,
- - la tabla no tiene columnas.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
select
Realiza una consulta en una o varias tablas de Base de Datos Web.
Detalle
- El query corresponden a la cláusula
fromen adelante de una sentenciaselectde sql y se emplea su sintaxis; para referenciar una tabla o una columna se debe emplear el código lógico de esta y debe estar entre corchetes.
- La consulta va a retornar todos los campos de cada una de las tablas indicadas en la cláusula
fromde la consulta.
Ejemplo de query
FROM [PROYECTO], [PROYECTOPARTICIPANTE], [PARTICIPANTE]
WHERE [PROYECTOPARTICIPANTE_CODIGODELPROYECTO] = [PROYECTO_CODIGO] AND
[PROYECTOPARTICIPANTE_CEDULADEPARTICIPANTE] = [PARTICIPANTE_CEDULADEIDENTIDAD] AND
[PROYECTO_ANODELPROYECTO] = '2008' AND
[PROYECTO_ESTATUSDEPROYECTO] = '3'
GROUP BY [PROYECTO_UID]
ORDER BY [PROYECTO_CODIGO] ASC
LIMIT 0,20
Limitaciones
- El sistema distingue entre mayúsculas y minúsculas en el código lógico de las tablas y columnas, por lo que se debe utilizar la correcta capitalización al referenciar a tablas y columnas.
- No están soportados los subquery (select dentro de la operación).
- No está soportado incluir tras operaciones select dentro del query.
Sintaxis
public StringMap[] select(String idCompany, String login, String password, String query) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidQueryException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- query - Query de consulta de los registros.
Valor devuelto
- Arreglo con cada registro resultante de la consulta, cada entrada del arreglo corresponde a un objeto que contiene un diccionario con el valor de todas las columnas del registro, la clave es el código lógico de la columna y el valor es el valor de la columna.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un select. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso para consultar registros de la tabla,
- - la tabla no tiene columnas,
- - al menos una de las columnas no existe.
- InvalidQueryException - Si el query es inválido, esto puede ocurrir porque es nulo o vacío o porque existe un error de sintaxis.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
specialSelect
Realiza una consulta libre en una o varias tablas de Base de Datos Web.
Detalle
- El query corresponden a una consulta
selectde sql y se emplea su sintaxis; para referenciar una tabla o una columna se debe emplear el código lógico de esta y debe estar entre corchetes.
Ejemplo de query
SELECT [PROYECTO_UID], [PROYECTO_CODIGO]
FROM [PROYECTO], [PROYECTOPARTICIPANTE], [PARTICIPANTE]
WHERE [PROYECTOPARTICIPANTE_CODIGODELPROYECTO] = [PROYECTO_CODIGO] AND
[PROYECTOPARTICIPANTE_CEDULADEPARTICIPANTE] = [PARTICIPANTE_CEDULADEIDENTIDAD] AND
[PROYECTO_ANODELPROYECTO] = '2008' AND
[PROYECTO_ESTATUSDEPROYECTO] = '3'
GROUP BY [PROYECTO_UID]
ORDER BY [PROYECTO_CODIGO] ASC
LIMIT 0,20
Limitaciones
- El sistema distingue entre mayúsculas y minúsculas en el código lógico de las tablas y columnas, por lo que se debe utilizar la correcta capitalización al referenciar a tablas y columnas.
Sintaxis
public StringMap[] specialSelect(String idCompany, String login, String password, String query) throws InvalidUserException, InternalDanaException, InvalidTableOrColumnException, InvalidQueryException, InvalidCompanyException
Parámetros
- idCompany - Identificador de la compañía propietaria de la base de datos.
- login - Login del usuario que realiza la operación.
- password - Clave del usuario que realiza la operación.
- query - Query de consulta de los registros.
Valor devuelto
- Arreglo con cada registro resultante de la consulta, cada entrada del arreglo corresponde a un objeto que contiene un diccionario con el valor de todas las columnas del registro, la clave es el código lógico de la columna y el valor es el valor de la columna.
Excepciones
- InvalidUserException - Si el usuario indicado no es válido, esto puede ocurrir porque el usuario no existe en la compañía indicada o no tiene permiso de utilizar Base de Datos Web bajo el perfil apropiado, también puede ocurrir porque la clave sea inválida.
- InternalDanaException - Si ocurrió un error interno.
- InvalidTableOrColumnException - Si la tabla o alguna de las columnas indicadas no son accesibles por el usuario para realizar un select. Esto puede ocurrir porque:
- - la tabla indicada no existe,
- - no se indicó la tabla (es nulo o vacío),
- - el usuario no tiene permiso para consultar registros de la tabla,
- - la tabla no tiene columnas,
- - al menos una de las columnas no existe.
- InvalidQueryException - Si el query es inválido, esto puede ocurrir porque es nulo o vacío o porque existe un error de sintaxis.
- InvalidCompanyException - Si no existe una compañía registrada con el identificador suministrado.
Ejemplos
Para descargar los ejemplos presione aquí
