Servicio IissueService
CreateIssue
El método createIssue tiene como finalidad permitir la creación de un envío dentro de bandeja de entrada, su invocación retornará un número que será el identificador del envío creado, que podrá ser utilizado posteriormente para realizar consultas sobre dicho envío. Para integrarse con este método será necesario ponerse en contacto con el equipo de desarrollo de BENT para tipificar el envío según la aplicación y dar de alta a la misma en la configuración desde el módulo administrativo (se detalla esto en el manual de administrador)
AcceptIssue
Este método permite aceptar un envío creando una traza con la fecha de aceptación. Los envios considerados como aceptables son los que tienen como ultimo evento uno de tipo 1 (envio) o 4 (reenvio), cuyo estado es finalizado OK (3) y no contienen documentos editables. Tampoco se permite realizar una aceptación sobre una importación de REGFIA directamente.
En caso de que el envío se encuentre en esta situación, se comprobará también que el receptor último del envío coincida con el indicado en los parametros userNif o userOrganismCode dependiendo de si el receptor es un funcionario o un organismo.
Signatura
public ResultAcceptIssue acceptIssue(ParamAcceptIssue paramAcceptIssue) throws InternalCoreException
Parámetros de entrada
Parámetro | Tipo | Obligatorio | Descripción |
paramAcceptIssue | ParamAcceptIssue | SI | Objeto donde están encapsulados los datos relativos al envío que queremos aceptar |
Parámetros de salida
Parámetro | Tipo | Descripción |
acceptIssue | ResultAcceptIssue | Objeto que contiene un código con el valor que indica cómo terminó el proceso |
Ejemplo de invocación
ParamAcceptIssue paramAcceptIssue = new ParamAcceptIssue(); paramAcceptIssue.setIssueId(Long.parseLong(issueId)); // indicar unicamente este parametro si el receptor ultimo del envio es personal paramAcceptIssue.setUserNif(userNif)); // indicar unicamente este parametro si el receptor ultimo del envio es un organismo paramAcceptIssue.setUserOrganismCode(userOrganismCode); paramAcceptIssue.setNotes(notes); ResultAcceptIssue result = issueManager.getiIssueService().acceptIssue(paramAcceptIssue); if (BENTCoreConstants.SendResult.ISSUE_ACCEPTED.equals(result.getResult()) { log.info("Envio aceptado"); } else if (BENTCoreConstants.SendResult.ISSUE_ESTATE_INVALID.equals(result.getResult()) { log.ingo("El envío no se encontraba en estado de poder ser aceptado"); } else if (BENTCoreConstants.SendResult.USER_WITHOUT_PERMISSION.equals(result.getResult()) { log.info("El usuario/organismo indicado no era el correspondiente para aceptar el envío"); } |
FindIssueTrayExternal
Método que devuelve una lista de envíos correspondientes de la bandeja de recibidos con filtros avanzados
Signatura
public ResultTrayListExternal findIssueTrayAppExternal(ParamFindTrayExternal paramTraySearch) throws InternalCoreException {
Parámetros de entrada
Parámetro | Tipo | Obligatorio | Descripción |
paramTraySearch | ParamFindTrayExternal | SI | Objeto donde están encapsulados los datos para realizar la búsqueda de envíos recibidos |
Parámetros de salida
Parámetro | Tipo | Descripción |
resultTrayList | ResultTrayListExternal | Objeto donde se encuentran encapsulados la lista de envíos correspondientes a la bandeja y su tamaño |
Excepciones
Tipo de excepción | Descripción |
InternalCoreException | Error en una operación del núcleo |
Ejemplo de invocación
ResultTrayListExternal resultTrayList = new ResultTrayListExternal(); ParamFindTrayExternal paramTraySearch = new ParamFindTrayExternal(); paramTraySearch.setApplicationId("APP_CODE"); // codigo SIU de bandeja consultada (se ha de tener permisos en el admin de BENT) paramTraySearch.setReceiverOrgCode(orgCode); // filtro de estados de envios opcional List<Integer> filterStates = new ArrayList<Integer>(); filterStates.add(BENTCoreConstants.EventType.SEND); filterStates.add(BENTCoreConstants.EventType.FORWARD); filterStates.add(BENTCoreConstants.EventType.ACCEPT); paramTraySearch.setState(filterStates); // añadir paginacion opcional paramTraySearch.setFromIndex(1); paramTraySearch.setToIndex(10); paramTraySearch.setAscending(false); resultTrayList = issueManager.getiIssueService().findIssueTrayAppExternal(paramTraySearch); if (resultTrayList.getErrorCode() != null) { if (resultTrayList.getErrorCode().equals(ErrorCode.FIND_ISSUE_EXTERNAL_NO_RECEIVER_ORGCODE)) { log.error("El parametro receiverOrgCode ha sido pasado nulo o vacio"); } else if (resultTrayList.getErrorCode().equals(ErrorCode.FIND_ISSUE_EXTERNAL_ORGCODE_NOT_ALLOWED)) { log.error("No existen permisos sobre la bandeja consultada para esta aplicación"); } else if (resultTrayList.getErrorCode().equals(ErrorCode.FIND_ISSUE_EXTERNAL_STATE_INVALID)) { log.error("Alguno de los valores indicados en el filtro de estados es incorrecto"); } else if (resultTrayList.getErrorCode().equals(ErrorCode.FIND_ISSUE_EXTERNAL_PAGIN_PARAMS)) { log.error("Los parametros de paginacion no han sido introducidos correctamente"); } } else { log.info("Consulta realizada con exito. Envios devueltos: " + result.getList().size() + " - total de la consulta: " + result.getSize()); } |
ParamFindTrayExternal
La clase ParamFindTrayExternal es la que contiene los parámetros para la obtención de los listados de consulta para aplicaciones externas
Ver detalles
Parámetro | Tipo | Obligatorio | Descripción |
receiverOrgCode | String | SI | codigo de organismo a consultar |
state | List<Integer> | NO | filtro de estados de envio |
fromIndex | Integer | NO | valor inicial de paginacion (valor minimo 1) |
toIndex | Integer | NO | valor final de paginacion |
ascending | Boolean | NO | indica la ordenacion ascendente o descendente (por fecha de envio) |
ResultTrayListExternal
La clase ResultTrayListExternal contiene el resultado de la búsqueda.
Ver detalles
Parámetro | Tipo | Descripción |
list | List<ParamReceivedTrayAdvanced> | Lista que contiene uno o varios objetos ParamReceivedTrayAdvanced |
size | int | Número de objetos que contiene la lista |
errorCode | String | codigo de error |
errorMsg | String | mensaje de error |
Servicio OrganismManagerService
GetEmailListByOrgCode
Este método del servicio organismManager permite recuperar el listado de los emails de los usuarios dados de alta en BENT en una bandeja de organismo concreta. BENT únicamente almacena los dnis de los usuarios en su base de datos, recuperando el email a través de SIU. Si un usuario implicado en la búsqueda no tuviera un email registrado el servicio simplemente no lo añadirá al listado de resultados.
Signatura
public List<String> getEmailListByOrgCode(ParamOrganismManager paramOrganismManager) throws InternalCoreException
Parámetros de entrada
Parámetro | Tipo | Obligatorio | Descripción |
paramOrganismManager | ParamOrganismManager | SI | Objeto donde están encapsulados los datos relativos a la consulta a realizar |
Parámetros de salida
Tipo | Descripción |
List<String> | Listado de emails |
Ejemplo de invocación
ParamOrganismManager paramOrganismManager = new ParamOrganismManager(); // el id de aplicacion se rellena automaticamente si esta configurado el interceptor de autorización de salida, si no se ha de indicar paramOrganismManager.setApplicationId("SETA"); // indicamos un codigo de organismo paramOrganismManager.setOrgCode("ORG06670"); List<String> result = bentOrganismManagerClient.getEmailListByOrgCode(paramOrganismManager); if (result == null || result.size() == 0) { log.info("No se encontraron gestores asociados con el organismo"); } else { for (String managerEmail: result) { log.info("Encontrado email de gestor: " + managerEmail"); } } |
getOrganismManagerListByOrgCode
Este método del servicio organismManager permite recuperar el listado de gestores asociados en BENT con un código de organismo concreto.
Signatura
public List<ParamOrganismManager> getOrganismManagerListByOrgCode(ParamOrganismManager paramOrganismManager) throws InternalCoreException
Parámetros de entrada
Parámetro | Tipo | Obligatorio | Descripción |
paramOrganismManager | ParamOrganismManager | SI | Objeto donde están encapsulados los datos relativos a la consulta a realizar |
Parámetros de salida
Tipo | Descripción |
List<ParamOrganismManager> | Listado de duplas gestor - organismo |
Ejemplo de invocación
ParamOrganismManager paramOrganismManager = new ParamOrganismManager(); // el id de aplicacion se rellena automaticamente si esta configurado el interceptor de autorización de salida, si no se ha de indicar paramOrganismManager.setApplicationId("AGUAE"); // indicamos un codigo de organismo paramOrganismManager.setOrgCode("ORG06670"); List<ParamOrganismManager> result = bentOrganismManagerClient.getOrganismManagerListByOrgCode(paramOrganismManager); if (result == null || result.size() == 0) { log.info("No se encontraron gestores asociados con el organismo"); } else { for (ParamOrganismManager manager : result) { log.info("Encontrado gestor con dni " + manager.getManagerDni() + " e id de gestor " + manager.getOrganismManagerId() + " en el organismo"); } } |