Crear y ejecutar consultas

A veces, debe recopilar un conjunto específico de artefactos. Si lo desea, puede recopilar un conjunto de pruebas anómalas para incluirlas en un informe de estado. Las consultas pueden recopilar un conjunto de artefactos y mostrar los resultados para que pueda actuar en ellos.

Antes de empezar

Las consultas se escriben en el lenguaje de consulta SPARQL. (SPARQL es el lenguaje de consulta para los datos enlazados del ciclo de vida). Por lo tanto, debe conocer el lenguaje de consulta SPARQL para poder crear consultas desde cero.

Acerca de esta tarea

Los pasos siguientes muestran cómo crear y ejecutar tres consultas personalizadas. Cada consulta se anota para que pueda personalizarla para su uso personal.

Procedimiento

  1. Abra el recuadro de diálogo Consulta.

    En el menú principal, seleccione Consultas > Crear consulta.

  2. En el recuadro de diálogo Consulta, escriba un nombre para la consulta.
  3. Especifique una descripción de la consulta.

    La descripción se visualiza cuando coloca el cursor sobre una consulta en las pantallas Mis consultas o Consultas compartidas.

  4. Guarde esta consulta en la carpeta Mis consultas.

    Siempre que cree una consulta para su uso personal o el uso de su equipo, cree la consulta y guárdela en la carpeta privada Mis consultas. Después de probar y optimizar la consulta para recopilar los artefactos que necesita, puede compartir la consulta.

  5. Cambie el código de consulta de ejemplo sustituyéndolo o modificándolo.
    • Sustituya el código de consulta de ejemplo. Elija uno de los tres ejemplos de consulta en la sección Ejemplo que se muestra a continuación. Copie la consulta y péguela en el campo.
    • O bien, modifique el código de consulta SPARQL de ejemplo predeterminado con su código personalizado.

      Las claves de edición estándar están disponibles para su plataforma. Cuando edite la consulta SPARQL, puede pulsar Control + espacio para recibir ayuda de contenido.

      Si necesita un prefijo diferente al mostrado, pulse el botón Añadir prefijo.

      Si desea definir un parámetro para crear una consulta que solicite a los usuarios un valor, puede añadirlo ahora o más tarde. Los parámetros definen una característica para un grupo de artefactos que desee buscar. Por ejemplo, puede añadir un parámetro para buscar los artefactos que se han modificado desde cierta fecha o los artefactos que un usuario determinado ha modificado.

      Al añadir parámetros de solicitud a una consulta, esta se hace más flexible, ya que los usuarios pueden especificar valores de parámetro al ejecutar la consulta. Los valores de parámetro se sustituyen en la serie de consulta y personalizan los resultados de la consulta.

      Los valores de parámetro normalmente utilizan un formato como $workitem$

      Aunque la sintaxis completa de lo que puede añadir como parámetro puede ser compleja, los formatos típicos son los siguientes:

      $nombre$

      $nombre.campo$

      $nombre;formato="serieFormato"$

      $nombre.campo;formato="serieFormato"$

      StringTemplate es un motor de plantillas utilizado para implementar la sustitución de parámetros en la serie de consulta SPARQL. Rational Engineering Lifecycle Manager no da soporte a parámetros con espacios aunque StringTemplate sí lo hace.

      Vea un conjunto simplificado de reglas de sintaxis para StringTemplate en Hoja de apuntes StringTemplate. Debe utilizar $...$ como delimitador, no <...>, que se especifica en la hoja de apuntes.

      Si utiliza uno o varios parámetros en su consulta, obtenga información acerca de un problema conocido en Resolución de problemas de consultas parametrizadas.

      Para ver una tabla de datos, enumeración y parámetros del sistema y salida de ejemplo para cada una, consulte Parámetros de consulta predefinidos.

      Obtenga más información sobre cómo establecer parámetros en el recuadro de diálogo Consulta pasando el cursor por encima del pequeño signo de interrogación a la derecha de las secciones Consulta SPARQL y Parámetros para leer la ayuda contextual.

  6. Cree la consulta pulsando Crear.
  7. Ejecute la consulta pulsando Ejecutar.
  8. Actúe en los artefactos en la página Resultado de la consulta.Pulse un artefacto y, a continuación, pulse la flecha derecha para mostrar el menú.
    • Abrir artefacto inicia la herramienta nativa donde se ha creado el artefacto en y muestra el artefacto en la herramienta.
    • Mostrar propiedades muestra las propiedades del artefacto en una ventana de resultados.
    • Iniciar análisis carga el perfil de análisis de impacto predeterminado. Pulse Ejecutar para iniciar el análisis.

    Descargue la consulta como una hoja de cálculo .csv pulsando el icono Descargar como hoja de cálculo en la parte superior derecha.

Ejemplo

El ejemplo siguiente muestra cómo consultar todas las solicitudes de cambio técnico abiertas asignadas a Susan.

ERC abiertas asignadas a Susan

# Name: Open ECRs assigned to Susan
# Description: Show all open ECRs assigned to Susan

# Prefixes used in this query
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX oslc_cm: <http://open-services.net/ns/cm#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT ?cr ?title ?contrib
WHERE
{
	# Find all ECRs - in this example, we find work items of type "Task"; change this to the type of work item you use
	?cr rdf:type oslc_cm:ChangeRequest ;
		dcterms:type "Task"^^xsd:string ;
		dcterms:title ?title ;
		dcterms:contributor ?contrib .

	# Change the name string to match the user name you want
	FILTER regex(str(?contrib),"susan")

	# Find open CRs (those with status that is none of closed, fixed, or verified)
	# You can adjust this to use any combination of the OSLC CM state predicates
	# oslc_cm:closed, oslc_cm:inprogress, oslc_cm:fixed, oslc_cm:approved, oslc_cm:reviewed, and oslc_cm:verified
	{
		?cr oslc_cm:closed "false"^^xsd:boolean ;
			oslc_cm:fixed "false"^^xsd:boolean .
	}
	# for example, the following alternative to the above clause would find CRs that are either in progress or not closed:
	# {
	#	{ ?cr oslc_cm:inprogress "true"^^xsd:boolean } UNION { ?cr oslc_cm:closed "false"^^xsd:boolean }
	# }
}

El ejemplo siguiente muestra cómo consultar los casos de prueba anómalos que tengo asignados.

Pruebas anómalas

# Name: Failing tests
# Descriptions: Testcases that fail and are assigned to me

# Prefixes used in this query
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX oslc_qm: <http://open-services.net/ns/qm#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT ?testcase ?title
WHERE
{
	# Find failing test results, and their owning testcase
	?testResult rdf:type oslc_qm:TestResult ;
		oslc_qm:status "com.ibm.rqm.execution.common.state.failed"^^xsd:string ;
		oslc_qm:reportsOnTestCase ?testcase .

	# Select just the testcases assigned to me
	# Change the name string to match the user name you want
	?testcase dcterms:contributor ?user.
	FILTER regex(str(?user), "tony")

	# Find the matching testcase titles
	?testcase dcterms:title ?title .
}

El ejemplo siguiente muestra cómo consultar los artefactos afectados por un cambio en una solicitud de cambio.

Artefactos afectados por un cambio en una CR

# Description: Find artifacts impacted by a change to a Change Request
# Follows links such as CR->tracks->REQ->[elaboratedBy->REQ | specifiedBy->REQ]->[verifiedBy->TC | elaboratedBy->ME]

# Prefixes used in this query
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX oslc_cm: <http://open-services.net/ns/cm#>
PREFIX oslc_rm: <http://open-services.net/ns/rm#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT ?cr ?type ?title ?owner
WHERE
{
	?cr a oslc_cm:ChangeRequest ;
		dcterms:identifier ?id ;
		(oslc_cm:tracksRequirement|oslc_rm:trackedBy|oslc_rm:elaboratedBy|oslc_rm:specifiedBy|oslc_rm:validatedBy)* ?uri .
	?uri dcterms:title ?title
	OPTIONAL
	{
		?uri rdf:type/rdfs:label ?type ;
	}
	OPTIONAL
	{
		# This part of the query picks up user names from either JTS user URIs or from DOORS FOAF entries,
		# and avoids getting the DOORS user URI as well as that FOAF entry
		{
			?uri dcterms:contributor/foaf:name ?owner
		}
		UNION
		{
			?uri dcterms:contributor ?owner
			FILTER NOT EXISTS { ?owner foaf:name ?x }
		}
	}
}

# Either provide one or more work item ID numbers here,
# or remove or comment out the entire VALUES section to look at all work items
VALUES ?id
{
	"626"^^xsd:string
	"627"^^xsd:string
}

Qué hacer a continuación


Comentarios