Skip to content

Instantly share code, notes, and snippets.

@acadavid
Created November 11, 2011 22:20
Show Gist options
  • Save acadavid/1359505 to your computer and use it in GitHub Desktop.
Save acadavid/1359505 to your computer and use it in GitHub Desktop.
Buscar actividad

Nombre del método: BuscarActividad

Parámetros del método:

Filtro de Actividad

Tipo de dato Nombre Uso
Integer id Consultar actividad por identificador
String accion Consultar actividad por accion de la actividad
Date rangoDeFechas Consultar actividades realizadas en un rango de fechas
Integer duracion Consultar actividades realizadas por un usuario cuyo nombre de usuario es usuario
Integer modulo Consultar actividades realizadas al módulo cuyo nombre es modulo

Schema XML

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="filtroDeActividad">
		<xs:complexType>
			<xs:element name="id" type="xs:integer"/>
			<xs:element name="accion" type="xs:string"/>
			<xs:element name="rangoDeFechas" type="xs:date"/>
			<xs:element name="modulo" type="xs:string"/>
			<xs:element name="duracion" type="xs:positiveInteger"/>
		</xs:complexType>
	</xs:element>
</xs:schema>

Ejemplo

<filtroDeActividad>
	<id>1</id>
	<accion>Ver</accion>
	<rangoDeFechas>11/11/2011 23:11 a 12/11/2011 23:40<rangoDeFechas>
	<modulo>Perfil</modulo>
	<duracion>1000</duracion>
</filtroDeActividad>

Semántica Operativa

Array<Actividades> consultarActividad(string usuarioActual, FiltroActividad filtroActividad) {
	autorizado = Politicas.tienePermisos?(usuarioActual, actividad)
	if  (!autorizado) {
		raise ConsultaActividadNoAutorizadaException
	}
	
	try {
		resultado = BaseDeDatos.buscarConAttributos(filtroActividad)			
	} catch {
		raise ErrorEnBaseDeDatosException
	}
	
	return resultado
}

Tipo de Retorno

El método 'BuscarActividad' retona un arreglo de las actividades que se ajustan al filtro de actividad. Este arreglo se retornarna en formato XML para que pueda ser procesado y visualizado en el HTML.

Schema XML

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="actividades">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:element name="actividad">
				<xs:complexType>
					<xs:element name="id" type="xs:integer"/>
					<xs:element name="accion" type="xs:string"/>
					<xs:element name="moduloEncargado" type="xs:string"/>
					<xs:element name="fechaRealizacion" type="xs:date"/>
					<xs:element name="duracion" type="xs:positiveInteger"/>
					<xs:element name="parametrosModulo" type="xs:string"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:element>
</xs:schema>

Ejemplo

<response>
	<actividades>
		<actividad>
			<id>34</id>
			<accion>Ver</accion>
			<moduloEncargado>Perfil</moduloEncargado>
			<fechaRealizacion>31/11/2011 23:11</fechaRealizacion>
			<duracion>1500</duracion>
			<parametrosModulo>
			<![CDATA[
			<perfil>
				<id>jaimito</id>
			</perfil>
			]]>
		</parametrosModulo>
	</actividad>
	<actividad>
		<id>35</id>
		<accion>Crear</accion>
		<moduloEncargado>Contenido</moduloEncargado>
		<fechaRealizacion>31/11/2011 23:58</fechaRealizacion>
		<duracion>1000</duracion>
		<parametrosModulo>
		<![CDATA[
		<contenido>
			<titulo>2 minutes to midnight</titulo>
			<texto>The killer's breed or the demon's seed, 
				The glamour, the fortune, the pain,
				Go to war again, blood is freedom's stain,
				But don't you pray for my soul anymore. Sing along!
			</texto>
		</contenido>
		]]>
	</parametrosModulo>
</actividad>
</actividades>
<response>

Tabla de Excepciones

<tr>
	<td>ConsultaActividadNoAutorizadaException</td>
	<td>Cuando el módulo de Políticas indica que el usuario actual no está autorizado para realizar consulta de actividades existentes</td>
	<td>Nada</td>
</tr>

<tr>
	<td>Actividad</td>
	<td>Cuando el módulo encargado de ejecutar la actividad lanza una excepción (es decir, cuando ocurre una excepción fuera del módulo de Actividades).</td>
	<td>Información extra que haya sido pasada por el módulo encargado sobre el error</td>
</tr>

<tr>
	<td>ErrorEnBaseDeDatosException</td>
	<td>Cuando se produce un error al almacenar la actividad en la base de datos.</td>
	<td>Causa de la excepción (por ejemplo, falta de espacio en disco o servidor de base de datos caído)</td>
</tr>
Nombre de la excepción Cuándo se produce Información que maneja
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment