Creación de informes personalizados a través de múltiples áreas de proyecto en Rational Team Concert

Este artículo explica paso a paso cómo crear informes personalizados a través de múltiples áreas de proyecto en Rational Team Concert, para gerentes y desarrolladores, ayudándoles a que puedan garantizar el buen estado de los proyectos. Este artículo utiliza principalmente scripts BIRT y columnas calculadas para mostrarles la información necesaria para sus propias vistas. También se proporcionan archivos de informes de muestra.

Ken Kumagai, Software Engineer, IBM

author photoKen Kumagai es ingeniero de software en el Yamato Software Development Laboratory en IBM Japón. Trabaja como desarrollador en el equipo IBM Rational ClearCase MultiSite. Uno de sus actuales intereses es sobre cómo los sistemas existentes pueden funcionar a la perfección con Rational Team Concert y la plataforma de tecnología Jazz, con base en Open Services for Lifecycle Collaboration (OSLC). En su tiempo libre, disfruta leyendo libros en la cafetería Starbucks más cercana.



21-08-2012

Cómo los informes ayudan a examinar el buen estado de los proyectos

Ver la información de los proyectos desde varios ángulos es importante para garantizar el buen estado de los proyectos durante todo el desarrollo del software. La información de un proyecto en IBM® Rational Team Concert™ es recopilada y almacenada en un almacenamiento de datos como capturas de pantalla. Una captura de pantalla se asemeja a una tabla en un sistema de administración de bases de datos relacionales, y existen capturas de pantalla para elementos de trabajo, construcciones, administración de configuración de software (software configuration management – SCM). Usted puede crear informes para exhibir esta información desde sus ángulos preferidos mediante BIRT (acceda a los enlaces "Data Warehouse Concepts" y "Data Warehouse Snapshot Schemas" en la sección Recursos .)

Este artículo puede ayudarle a mantener sus proyectos en buen estado al guiarlo en la obtención de informes útiles y especialmente personalizados sobre los elementos de trabajo, desde sus propias perspectivas. Para este propósito, podrá considerar los roles de desarrollador y administrador , además de informes personalizados para cada rol. Cada rol tiene sus propias responsabilidades y necesidades de soporte para ciertas acciones.

  • Los desarrolladores se designan a equipos y proyectos. Un desarrollador trabaja en elementos de trabajo asignados para cumplir plazos y aprobaciones de solicitudes de elementos de trabajo de otros desarrolladores para mantener la calidad de los entregables.
  • Los gerentes supervisan proyectos y equipos. El administrador asigna los elementos de trabajo a ser terminados hasta el final de las iteraciones especificadas y equilibra la carga de trabajo entre los desarrolladores para evitar que alguno sea sobrecargado.

Las técnicas para los informes se explican en una serie de artículos de tres partes titulados "Creating custom reports with BIRT and Rational Team Concert" (consulte la sección Recursos para obtener el enlace). Este artículo se centra en cómo crear informes que muestren la información necesaria para que las personas en cada rol puedan determinar el estado de los proyectos tras examinar los informes.


Configurar el entorno para la creación de informes

Consulte "Creating and Deploying a New Report" en el wiki del equipo de desarrollo en Jazz.net (acceda al enlace en Recursos) para configurar el entorno. Para trabajar a través de los pasos en este artículo son necesarias las siguientes versiones de software:

  • Rational Team Concert 3.0.1
  • Infraestructura y herramientas de Eclipse:
    • Eclipse Modeling Framework 2.5.0
    • Web Tools Platform 3.1.2
    • Data Tools Platform 1.7.2
    • Business Intelligence and Reporting Tools (BIRT) 2.5.2

Para abrir los archivos de informes de muestra siga los siguientes pasos:

  1. Abra la vista Report Design . En la vista Explorador de Datos haga clic en el archivo de informes de muestra, .rptdesign.
  2. Bajo la carpeta Fuentes de Datos, haga clic en cada data source para abrir un dialogo.
  3. En los paneles Repositorio de Entrada y Área de Entrada de Proyecto, respectivamente, seleccione su repositorio y área de proyecto.
    Nota:
    Si no aparecen áreas de repositorio y proyecto, asegúrese de que las conexiones de repositorio se han creado y de estar registrado en áreas de proyecto.
  4. Abra la vista Work Items .
  5. En la vista Artefactos de Equipo, expanda la carpeta Reports bajo su área de proyecto, luego haga clic con el botón derecho en Report Templates para seleccionar New > Report Template.
  6. Haga clic en el Navegador en panel de contenidos y seleccione un archivo de informe de muestra (rptdesign).
  7. Haga clic en OK.

Tipos de informes personalizados

En este artículo se explica cómo reportar información mediante tres tipos de informes: con tablas, con gráficos circulares y con gráficos de barras (el enfoque es principalmente en información enlazada a la tabla Live_Workitem_Cnt).

Informes con tablas
Las tablas muestran información de los elementos de trabajo listados por los parámetros de configuración. La primera tabla configura CONTRIBUTOR_ITEMID. La segunda tabla configura APPROVAL_APPROVER_ITEMID. Además, los scripts BIRT posibilitan definir sus propias columnas de resultados.
 
Informes con gráficos circulares
Los gráficos circulares muestran información de los elementos de trabajo agrupados por valores de las columnas de resultados. Las tasas para cada grupo se muestran mediante configuración de las columnas de resultados para definir categorías y configuración de WI_COUNT para definir tamaños de sectores. El primer gráfico circular configura WI_SEVERITY, y el segundo configura WI_PRIORITY para definición de categorías.
 
Informes con gráficos de barras
Los gráficos de barras muestran las cantidades de elementos de trabajo mediante configuración de las columnas de resultados para la serie Categoría (X) y configuración de WI_COUNT para la serie Valor (Y). El primer gráfico de barras configura CONTRIBUTOR_NAME, y el segundo configura APPROVAL_APPROVER_NAME para la serie Categoría (X).

Asignaciones de elementos de trabajo y solicitudes de aprobación

La primera tabla muestra elementos de trabajo no terminados asignados a cada desarrollador en orden de plazo o prioridad (Figura 1). Los desarrolladores pueden visualizarlos a cualquier momento durante la iteración para decidir cuáles elementos de trabajo deben trabajarse en primer lugar.

deadline (tipo de datos: Fecha)
Definido en columnas calculadas en Joint data set de Live_Workitem_Cnt y tablas de iteración. deadline (plazo) es DUE_DATE en la tabla Live_Workitem_Cnt si existe, y es ENDDATE en la tabla de iteración si no existe. Es importante ordenar los elementos de trabajo por plazo, especialmente si DUE_DATE es anterior a la ENDDATE porque los desarrolladores a menudo planifican terminar los elementos de trabajo al final de la iteración, ignorando la fecha de vencimiento.
 
priority_label (tipo de dato: Cadena de caracteres)
Definido en columnas calculadas en conjunto de datos de la tabla Live_Workitem_Cnt. priority_label almacena una cadena de caracteres legibles como alto, medio, bajo, convertida de WI_PRIORITY con prefijos de valores numéricos que muestran un valor menor para una mayor prioridad.

Cinco clases de tablas (listadas en la Tabla 1) son necesarias para crear el informe mostrado en la Figura 1. Los parámetros de informes en las tablas Project_Area, Live_Contributor son parámetros en cascada en este orden.

Tabla 1. Tablas utilizadas para informar elementos de trabajo asignados
TablaExplicación
IterationENDDATE se utiliza para el plazo de la columna calculada (el plazo se muestra en el informe).
Live_ContributorCONTRIBUTOR_ITEMID seleccionado en parámetro de informes se configura como CONTRIBUTOR_ITEMID en Live_Workitem_Cnt.
Live_Workitem_CntWI_ID, SUMMARY y PROJECT_AREA_NAME se muestran en el informe de la tabla.

DUE_DATE se utiliza para el plazo de la columna calculada.

El estado no terminado se configura como STATE_NAME.

priority_label de la columna calculada se muestra en el informe.
PriorityPRIORITY_ID y WI_PRIORITY se almacenan en la variable priority_map (Valor Predeterminado: new Object ()) como clave y valor respectivamente en el script onFetch.

priority_map es utilizado para priority_label en Live_Workitem_Cnt.
Project_AreaEl PROJECT_AREA_ITEMID seleccionado en parámetro de informe se configura como PROJECT_AREA_ITEMID en Live_Workitem_Cnt y Live_Contributor.
Figura 1. Elementos de trabajo asignados en orden de plazo
Elementos de trabajo asignados en orden de plazo

El informe de la segunda tabla muestra los elementos de trabajo donde se solicitan aprobaciones a cada desarrollador (Figura 2). Ignorar aprobaciones puede bloquear otros desarrolladores si las condiciones para completar los elementos de trabajo requieren aprobaciones. Los desarrolladores ven esto a cualquier momento en la iteración para evitar ignorar los elementos de trabajo donde se solicitan aprobaciones.

Se necesitan 5 clases de tablas para crear el informe mostrado en la Figura 2 al remplazar Live_Workitem_Cnt, Live_Contributor (Tabla 1) por Live_Workitem_Cnt, Live_Contributor (Tabla 2)

Tabla 2. Tablas diferentes para informar aprobaciones solicitadas en elementos de trabajo
TablaExplicación
Live_Workitem_CntIgual que la Tabla 1, excepto configurar STATE_NAME.

El estado pendiente se configura como APPROVAL_STATE en vez de STATE_NAME.
Live_ContributorEl CONTRIBUTOR_ITEMID seleccionado en parámetro de informes se configura como APPROVAL_APPROVER_ITEMID en Live_Workitem_Cnt.
Figura 2. Solicitudes de aprobación de elementos de trabajo en orden de prioridad
Solicitudes de aprobación de elementos de trabajo en orden de prioridad

Elementos de trabajo no terminados en iteraciones

El primer informe con gráfico circular muestra defectos no terminados en orden de gravedad (Figura 3). Los gerentes lo ven al planificar las iteraciones, de manera que pueden inmediatamente asignar elementos de trabajo a los desarrolladores y verificar si el proyecto cumple o no el cronograma.

severity_label (tipo de datos: Cadena de caracteres)
Definido en columnas calculadas en el conjunto de datos de la tabla Live_Workitem_Cnt. severity_label almacena una cadena de caracteres humanamente legibles como Bloqueador, Crítica, Mayor, Normal o Menor que se convierte de WI_SEVERITY con prefijos de valores numéricos que muestran un valor menor para una mayor gravedad (0 = más grave).

Otra vez, se necesitan cinco clases de tablas (vea la Tabla 3) para crear el informe mostrado en la Figura 3. Los parámetros de informes en las tablas Project_Area, Live_devline, Live_iteration son parámetros en cascada en este orden.

Tabla 3. Tablas para informar defectos en orden de gravedad
TablaExplicación
com.ibm.team.process.DevelopmentLine (Live_devline)La tabla pertenece a la captura de pantalla de Live. El itemId seleccionado en parámetro de informes se utiliza para configurar internalDevelopmentLine.itemId en Live_iteration.
com.ibm.team.process.Iteration (Live_iteration)La tabla pertenece a la captura de pantalla de Live. El itemId seleccionado en parámetro de informes se configura como iteration_param variable (Valor predeterminado: ""). Si no se selecciona, todos los itemId filtrados mediante Live_devline son concatenados en iteration_param en el script onFetch. iteration_param se configura como ITERATION_ITEMID en Live_Workitem_Cnt.
Live_Workitem_CntUn gráfico circular se coloca en la fila de encabezado de grupo en una tabla donde las filas se agrupan por PROJECT_AREA_NAME.

Los elementos de trabajo se agrupan por valores de severity_label. Las tasas de los grupos calculadas de WI_COUNT se muestran en el informe con gráfico circular en orden de gravedad.

El tipo del elemento de trabajo, defecto, se configura como WI_TYPE.

El estado no terminado se configura como STATE_NAME.
Project_AreaEl PROJECT_AREA_ITEMID seleccionado en parámetro de informes se utiliza para configurar PROJECT_AREA_ITEMID en Live_Workitem_Cnt e internalProjectArea.itemId en Live_devline.
SeveritySEVERITY_ID y WI_SEVERITY se almacenan como variable de severity_map (Valor predeterminado: new Object () ) como clave y valor, respectivamente, en el script onFetch.

severity_map es utilizado para severity_label en Live_Workitem_Cnt.

Para mostrar información de un área de proyecto mediante un gráfico circular, este se coloca en una fila de encabezado de grupo en una tabla donde las filas se agrupan por PROJECT_AREA_NAME. La Figura 3 muestra la cantidad de defectos no terminados por área de proyecto en dos áreas de proyecto, según la gravedad.

Figura 3. Informes de defectos no terminados en orden de gravedad
Informes de defectos no terminados en orden de gravedad

El segundo informe con gráfico circular muestra los elementos de trabajo, distintos de defectos, no terminados, también en orden de gravedad (Figura 4). priority_label se define en las columnas calculadas en un conjunto de datos de la tabla Live_Workitem_Cnt.

Otra vez, se necesitan 5 clases de tablas para crear el informe mostrado en la Figura 4, así, reemplace Live_Workitem_Cnt, Severity (vea la Tabla 3) por Live_Workitem_Cnt, Priority (Tabla 4).

Tabla 4. Tablas diferentes para informar elementos de trabajo en orden de prioridad
TablaExplicación
Live_Workitem_CntUn gráfico circular se coloca en la fila de encabezado de grupo en una tabla donde las filas se agrupan por PROJECT_AREA_NAME.

Los elementos de trabajo se agrupan por valores de priority_label. Las tasas de los grupos calculadas de WI_COUNT se muestran en el gráfico circular, en orden de prioridad.

El tipo del elemento de trabajo, distinto de defecto, se configura como WI_TYPE.

El estado no terminado se configura como STATE_NAME
PriorityPRIORITY_ID y WI_PRIORITY se almacenan como variable de priority_map (Valor predeterminado: new Object () ) como clave y valor, respectivamente, en el script onFetch.

priority_map es utilizado para priority_label en Live_Workitem_Cnt. priority_map y priority_label se calculan de la misma manera que en un informe de elementos de trabajo asignados.

Para mostrar información de un área de proyecto mediante un gráfico circular, se siguen los mismos pasos que para el primer informe con gráfico circular. La Figura 4 muestra la cantidad de elementos de trabajo no terminados, distintos de defectos, por área de proyecto en dos áreas de proyecto, en orden de prioridad.

Figura 4. Elementos de trabajo no terminados en orden de prioridad
Elementos de trabajo no terminados en orden de prioridad

Productividad y contribuciones

El primer informe con gráfico de barras muestra la cantidad de elementos de trabajo que cada desarrollador ha terminado (Figura 5). Los gerentes lo examinan al final de las iteraciones para ver quién ha sido el más productivo.

Se necesitan seis clases de tablas (Tabla 5) para crear el informe de la Figura 5. Los parámetros de informes en las tablas Project_Area, Live_teamarea, Live_devline, Live_iteration son parámetros en cascada en este orden.

Tabla 5. Tablas para informar productividad
TablaExplicación
Live_ContributorTodos los CONTRIBUTOR_ITEMID filtrados por Live_teamarea son concatenados en la variable contributor_param (Valor predeterminado: "") en el script onFetch.

contributor_param se configura como CONTRIBUTOR_ITEMID en Live_Workitem_Cnt.
com.ibm.team.process.DevelopmentLine (Live_devline)Esta tabla pertenece a la captura de pantalla de Live.

El itemId seleccionado en parámetro de informes se utiliza para configurar internalDevelopmentLine.itemId en Live_iteration.
com.ibm.team.process.Iteration (Live_iteration)Esta tabla pertenece a la captura de pantalla de Live.

El itemId seleccionado en parámetro de informes se configura como la variable iteration_param (Valor predeterminado: "").

Si no se selecciona, todos los itemId filtrados mediante Live_devline son concatenados en iteration_param en el script onFetch.

iteration_param se configura como ITERATION_ITEMID en Live_Workitem_Cnt (la manera de calcular y configurar iteration_param es la misma para un informe de elementos de trabajo o defectos no terminados).
com.ibm.team.process.TeamArea (Live_teamarea)El itemId seleccionado en parámetro de informes se configura como TEAM_AREA_ITEMID en Live_Contributor.
Live_Workitem_CntLos elementos de trabajo terminados son contados por CONTRIBUTOR_NAME mediante WI_COUNT, y cada número se muestra en orden descendente.

El estado terminado se configura como STATE_NAME.
Project_Area,El PROJECT_AREA_ITEMID seleccionado en parámetro de informes se utiliza para configurar tres parámetros, projectArea.itemId en Live_teamarea, internalProjectArea.itemId en Live_devline y PROJECT_AREA_ITEMID en Live_Workitem_Cnt.

Para mostrar un resumen de la información de múltiples áreas de proyecto en un gráfico de barras, se utiliza un gráfico de barras apiladas y la columna PROJECT_AREA_NAME se configura como el agrupamiento opcional de la serie de Y. La Figura 5 muestra la cantidad de elementos de trabajo terminados por contribuidor en dos áreas de proyecto.

Figura 5. Elementos de trabajo terminados por cada desarrollador
Elementos de trabajo terminados por cada desarrollador

El segundo gráfico de barras muestra la cantidad de elementos de trabajo que fueron aprobados por los desarrolladores (Figura 6). Los gerentes lo examinan al final de las iteraciones para ver quién ha sido el mayor contribuidor.

Se necesitan 6 clases de tablas para reemplazar Live_Contributor, Live_Workitem_Cnt (Tabla 5) por Live_Contributor, Live_Workitem_Cnt (Tabla 6), para crear el informe de la Figura 6.

Tabla 6. Tablas diferentes para informar las contribuciones
TablaExplicación
Live_ContributorTodos los CONTRIBUTOR_ITEMID filtrados por Live_teamarea son concatenados en la variable contributor_param en el script onFetch. contributor_param se configura como APPROVAL_APPROVER_ITEMID en Live_Workitem_Cnt.
Live_Workitem_CntLos elementos de trabajo aprobados son contados por APPROVAL_APPROVER_NAME mediante WI_COUNT y cada número se muestra en orden descendente.

El estado de las aprobaciones terminadas se configura como APPROVAL_STATE.

Para mostrar un resumen de la información de múltiples áreas de proyecto en un gráfico de barras, siga los mismos pasos que para el primer informe con gráfico de barras. La Figura 6 muestra la cantidad de elementos de trabajo aprobados por contribuidor en dos áreas de proyecto.

Figura 6. Elementos de trabajo aprobados ordenados por desarrollador
Elementos de trabajo aprobados ordenados por desarrollador

Creando informes

Esta sección explica cómo crear informes cuando el proceso que se aplica a áreas del proyecto en Rational Team Concert es el scrum. Explica todos los pasos para crear un informe de los elementos de trabajo asignados. También explica los destaques de otros informes.

Elementos de trabajo asignados

La creación de un informe de Elementos de Trabajo Asignados abarca los siete pasos siguientes:

  1. Crear fuentes de datos
  2. Crear conjuntos de datos
  3. Crear parámetros de informe
  4. Configurar los parámetros de informe en los conjuntos de datos
  5. Crear columnas calculadas con variables
  6. Crear un parámetro de informe para ordenar tipos
  7. Crear el diseño

Crear fuentes de datos

Crear fuentes de datos COMMON y WORKITEMS.

  1. Seleccione Archivo > New > Reporty para Nombre de archivo, introduzca assigned_workitems.rptdesign.
  2. Haga clic en Next, seleccione Blank Report, y haga clic en Finish.
  3. Abra la vista Data Explorer .
  4. Seleccione New Data source haciendo clic con el botón derecho en Data Sourcesy siga estos pasos:
    1. Seleccione Create from a data source type in the following list.
    2. Seleccione Jazz Data Source en la lista.
    3. Introduzca COMMON en Data Source Name.
    4. Haga clic en Next.
  5. Seleccione estos valores de la lista en cada panel, y haga clic en Finish.
    • Enter Repository:su repositorio
    • Enter snapshot:COMMON_SNAPSHOT
    • Enter project area:su proyecto
  6. Repita los Pasos 4 y 5 seleccionando WORKITEMS_SNAPSHOT en el panel Enter snapshot para crear otra fuente de datos WORKITEMS.

Crear conjuntos de datos

Crear los conjuntos de datos Iteration, Live_Contributor, Project_Area, Live_Workitem_Cnt y Priority.

  1. Haga clic con el botón derecho en Data Setsy seleccione New Data Set, luego complete estos pasos:
    1. Haga clic en COMMON en Data Source Selection.
    2. Seleccione Jazz Simple Data Set en Data Set Type.
    3. Introduzca Iteration en Data Set Name.
    4. Haga clic en Next.
  2. Seleccione estos valores en cada panel, y haga clic en Finish.
    • Enter table name: ITERATION
    • Select columns: ENDDATE, ITERAITON_ITEMIDe ITERATION_NAME
    • Select parameters: PROJECT_AREA_ITEMID
  3. Seleccione el conjunto de datos COMMON y repita los pasos 1 y 2 para crear estos conjuntos de datos:
    • Data Set Name: Live_Contributor
      • Enter table name: LIVE_CONTRIBUTOR
      • Select columns: CONTRIBUTOR_ITEMID y CONTRIBUTOR_NAME
      • Select parameters: CONTRIBUTOR_ARCHIVED y PROJECT_AREA_ITEMID
    • Data Set Name: Project_Area
      • Enter table name: PROJECT_AREA
      • Select columns: PROJECT_AREA_ITEMID y PROJECT_AREA_NAME
      • Select parameters: PROJECT_AREA_ARCHIVED
  4. Seleccione la fuente de datos WORKITEMS y repita los pasos 1 y 2 para crear estos conjuntos de datos:
    • Data Set Name: Live_Workitem_Cnt
      • Enter table name: LIVE_WORKITEM_CNT
      • Select columns: WI_ID, SUMMARY, PROJECT_AREA_NAME, ITERATION_ITEMID, WI_PRIORITYy DUE_DATE
      • Select parameters: PROJECT_AREA_ITEMID, CONTRIBUTOR_ITEMIDy STATE_NAME
    • Data Set Name: Priority
      • Enter table name: PRIORITY
      • Select columns: PRIORITY_ID y WI_PRIORITY

Crear parámetros de informe

Crear el grupo de parámetros en cascada, ProjectArea y ContributorName.

  1. Haga clic con el botón derecho en Report Parameters para seleccionar New Cascading Parameter Group.
  2. Introduzca estos valores en General:
    • Cascading Parameter Group Name: ProjectAreaAndContributorName
    • Prompt text: Select ProjectArea and ContributorName
  3. Seleccione Multiple Data Sets.
  4. Haga clic en Add e introduzca y seleccione estos valores, luego haga clic en OK.
    • Introduzca ProjectArea en Name.
    • Seleccione Project_Area en Data Set.
    • Seleccione PROJECT_AREA_ITEMID en Value.
    • Seleccione PROJECT_AREA_NAME en Display Text.
  5. Seleccione estos valores:
    • Sort by: PROJECT_AREA_NAME
    • Sort direction: Ascending
  6. Repita los pasos 4 y 5 siguiendo estos pasos:
    • Introduzca ContributorName en Name.
    • Seleccione Live_Contributor en Data Set.
    • Seleccione CONTRIBUTOR_ITEMID en Value.
    • Seleccione CONTRIBUTOR_NAME en Display Text.
    • Haga clic en OK.
    • Seleccione CONTRIBUTOR_NAME en Sort by.
    • Seleccione Ascending en Sort direction.
  7. Haga clic en OK.

Configurar los parámetros de informe en los conjuntos de datos

Configurar los parámetros en estos conjuntos de datos : Iteration, Live_Contributor, Live_Workitem_Cnt y Project_Area.

Para recuperar elementos de trabajo no terminados, configure el estado a STATE_NAME en el diálogo de parámetros. El estado no terminado puede variar según los procesos de las áreas del proyecto o la personalización de los procesos del usuario. Abra el área del proyecto y la pestaña Configuración de Proceso y refiérase a los valores de los atributos de ID en las etiquetas de estado. El Listado 1 muestra valores con atributos de grupo que están en abierto o en progreso.

Consejo:
Tenga presente que el estado Resuelto del defecto tiene el mismo valor, 3, que el estado Finalizado de la tarea y ambos están en un grupo cerrado. Esto significa que los defectos que están en estado Resuelto no se muestran en el informe mediante el código del Listado 1. Una alternativa es crear dos conjuntos de datos Live_Workitem_Cnt para mostrar separadamente defectos y tareas, y, configurar STATE_NAME, respectivamente.

Listado1. Estados no terminados de elementos de trabajo en proceso scrum
'\'1\',\'2\',\'6\',\'com.ibm.team.workitem.buildTrackingWorkflow.state.s2\',\'com.ibm.te
am.apt.epic.workflow.state.s1\',\'com.ibm.team.apt.epic.workflow.state.s2\',\'com.ibm.te
am.apt.story.idea\',\'com.ibm.team.apt.story.tested\',\'com.ibm.team.apt.story.defined\'
,\'com.ibm.team.workitem.retrospectiveWorkflow.state.new\',\'com.ibm.team.workitem.retro
spectiveWorkflow.state.inprogress\',\'com.ibm.team.workitem.impedimentWorkflow.state.s1\
',\'com.ibm.team.rtc.workflow.adoption.state.s1\',\'com.ibm.team.rtc.workflow.adoption.s
tate.s2\''
  1. Haga clic en Iteration para seleccionar Parameters y luego haga clic en Edit para seleccionar estos valores:
    • Parameter name: PROJECT_AREA_ITEMID
      • Data Type: String
      • Linked to Report Parameter: ProjectArea
  2. Repita el paso 1 en los conjuntos de datos que siguen y seleccione e introduzca los valores de los parámetros como se indica:
    • Data set: Live_Contributor
      • Parameter name: CONTRIBUTOR_ARCHIVED
        • Data Type: Boolean
        • Default value: false
      • Parameter name: PROJECT_AREA_ITEMID
        • Data Type: String
        • Linked to Report Parameter: ProjectArea
    • Data set: Live_Workitem_Cnt
      • Parameter name: PROJECT_AREA_ITEMID
        • Data Type: String
        • Linked to Report Parameter: ProjectArea
      • Parameter name: CONTRIBUTOR_ITEMID
        • Data Type: String
        • Linked to Report Parameter: ContributorName
      • Parameter name: STATE_NAME
        • Data Type: String
        • Default value: Introduzca los estados no terminados de los elementos de trabajo (Listado 1)
    • Data set: Project_Area
      • Parameter name: PROJECT_AREA_ARCHIVED:
        • Data Type: Boolean
        • Default value: false

Crear columnas calculadas con variables

Crear columnas calculadas, priority_label y plazo con las variables project_area_array y priority_map .

WI_PRIORITY en Live_Workitem_Cnt puede no estar en un formato legible. Puede convertirse a WI_PRIORITY en Priority mediante una relación entre PRIORITY_ID en Priority y WI_PRIORITY en Live_Workitem_Cnt (vea el Listado 2). Entonces, WI_PRIORITY en Priority se almacena en priority_label con prefijos de valores numéricos que muestran un valor menor para una mayor prioridad (0 = más alta).

Listado 2. Una relación entre PRIORITY_ID y WI_PRIORITY
PRIORITY_ID (at Priority) = PROJECT_AREA_ITEMID (at Project_Area) + "p" + 
    WI_PRIORITY (at Live_Workitem_Cnt)

Cuando los archivos de informes se implementan en el servidor Rational Team Concert, el parámetro de informe de ProjectArea mantiene las áreas de proyecto seleccionadas en un formato con cada área de proyecto entre comillas y separadas por coma de las demás (Nota: ProjectArea mantiene un área de proyecto sin comillas ni coma al ejecutar archivos de informes en el entorno local.) El código del Listado 3 muestra cómo analizar ProjectArea y almacenar cada ID en la variable project_area_array . La información de las áreas de proyecto se utiliza para calcular la variable priority_map en el Listado 4.

Listado 3. Almacenar áreas de proyecto seleccionadas en project_area_array
var project_area_str = params["ProjectArea"].value; 
var project_area_ids = project_area_str.split(","); 
var str = ""; 
var arr = new Array(); 
for(var count = 0; count < project_area_ids.length; count++ ){ 
    var project_area_id = project_area_ids[count]; 
    project_area_id = project_area_id.replace(/\'/g, ""); 
    arr.push(project_area_id); 
} 
vars["project_area_array"] = arr
Listado 4. Añadir a priority_map
var priority_id = row["PRIORITY_ID"]; 
var wi_priority = row["WI_PRIORITY"]; 
var arr = vars["project_area_array"]; 

if(priority_id != null){ 
    for(var count = 0; count < arr.length; count++){ 
        var project_area_itemid = arr[count]; 
        if(priority_id.indexOf(project_area_itemid)>= 0){ 
            vars["priority_map"][priority_id] = wi_priority; 
        } 
    } 
}
  1. Haga clic con el botón derecho en Variables, seleccione New Variable, introduzca los siguientes valores y haga clic en OK:
    • Type: Report Variable
    • Nombre: priority_map
    • Default value: new Object ()
  2. Seleccione el conjunto de datos Priority , seleccione la pestaña Script , seleccione onFetche introduzca los scripts (Listado 4).

Nota:
El script almacena PRIORITY_ID y WI_PRIORITY en la variable priority_map como clave y valor, respectivamente.

  1. Haga clic en Live_Workitem_Cnty seleccione Computed Columns.
  2. Haga clic en New, introduzca los siguientes valores y haga clic en OK.
    • Column Name: priority_label
    • Data Type: String
    • Expression: Introduzca scripts (Listado 5)
Listado 5. Una expresión de priority_label
var map = vars["priority_map"]; 
var label = ""; 
for(var key in map){ 
    var val = map[key]; 
    if(key.indexOf(row["WI_PRIORITY"]) >= 0){ 
        if(val == "High"){ 
            label = "id0:" + val; 
        }else if(val == "Medium"){ 
            label = "id1:" + val; 
        }else if(val == "Low"){
            label = "id2:" + val; 
        }else if(val == "Unassigned"){
            label = "id3:" + val; 
        } 
        break; 
    } 
} 
label;

Crear un joint data set que incluya el Live_Workitem_Cnt_with_Iteration de Live_Workitem_Cnt y conjuntos de datos de Iteration. En el joint data set, cree una columna calculada, plazo. El plazo es la fecha de vencimiento si existe o la fecha de finalización de la iteración si no. La columna de plazo se utiliza para ordenar una tabla.

  1. Haga clic con el botón derecho en Data Setsy seleccione New Joint Data Set.
  2. Seleccione e introduzca los siguientes valores y haga clic en Finish.
    • Panel izquierdo
      • Pulldown: Live_Workitem_Cnt
      • Menu: ITERATION_ITEMID
    • Panel derecho
      • Pulldown: Iteration
      • Menu: ITERATION_ITEMID
    • Join Types: Left Outer Join
    • Data Set Name: Live_Workitem_Cnt_with_Iteration
  3. Haga clic en Live_Workitem_Cnt_with_Iteration, seleccione Computed Columnsy seleccione e introduzca los siguientes valores:
    • Column Name: deadline
    • Data Type: Date
    • Expression: Introduzca scripts (Listado 6)
Listado 6. Una expresión de plazo
if(row["DUE_DATE"]){ 
    row["DUE_DATE"]; 
}else if(row["ENDDATE"]){ 
    row["ENDDATE"]; 
}else{ 
    null; 
}

Crear un parámetro de informe para seleccionar el tipo ordenar

Crear un parámetro de informe SortType para ordenar por plazo o prioridad.

  1. Haga clic con el botón derecho en Report Parametersy seleccione New Parameter.
  2. Introduzca y seleccione estos valores:
    • Name: SortType
    • Prompt text: Select sort type.
    • Data type: String
    • Display type: Radio Button
  3. Haga clic en New, introduzca los siguientes valores y haga clic en OK. Repita el mismo paso dos veces y añada estos dos conjuntos de valores:
      • Display Text: deadline
      • Value: sort_by_deadline
      • Display Text: priority
      • Value: sort_by_priority

Crear el diseño

Es necesario añadir texto dinámico enlazado al conjunto de datos de Prioridad. Sin esto, un script onFetch no se ejecuta y la variable priority_map en el conjunto de datos de Prioridad permanece vacía.

  1. Añada Dynamic Text de la vista Palette.
    • Introduzca scripts para calcular la variable project_area_array (Listado 3).
    • Seleccione Hide Element para todos los resultados en la pestaña Visibility de la pestaña Properties en Property Editor.
  2. Añada Dynamic Text de la vista Palette.
    • Introduzca el texto "Priority data set for script onFetch".
    • Seleccione Hide Element para todos los resultados en la pestaña Properties del Property Editor.
    • Seleccione Priority en Data Set en la pestaña Binding en Property Editor.
  3. Añada Tablay configure Live_Workitem_Cnt_with_Iteration en Data Set en la pestaña Binding en el Property Editor.
  4. En la tabla añadida seleccione las siguientes columnas de resultados:
    • Live_Workitem_Cnt::WI_ID
    • Live_Workitem_Cnt::SUMMARY
    • Live_Workitem_Cnt::priority_label
    • Live_Workitem_Cnt::PROJECT_AREA_NAME
    • Iteration::ITERATION_NAME
    • deadline
  5. En el Property Editor en la tabla añadida, haga clic en Add en la pestaña Ordenar, introduzca y seleccione estos valores, y luego haga clic en OK.
    • Key: Introduzca scripts (Listado 7)
    • Direction: Ascending
    • Locale: Auto
    • Strength: ASCII
  6. Resolución de problemas:
    • Ejecute una tarea de recopilación de datos si los datos no aparecen en Preview Result en cada conjunto de datos. En administración de aplicaciones, haga clic en Reports, y luego haga clic en Run all data warehouse collection jobs.
    • Para cambiar el aspecto de la tabla, haga clic en el encabezado superior izquierdo de la tabla y edite las propiedades en el editor de propiedades. Por ejemplo. en la pestaña Advanced, configure solid y thin para estilo y ancho en la propiedad Box, respectivamente.
Listado 7. Clave primaria en la pestaña ordenar
var sorted_by = params["SortType"].value; 
sorted_by = sorted_by.replace(/\'/g, ""); 
if(sorted_by == "sort_by_deadline"){ 
    row["deadline"]; 
}else if(sorted_by == "sort_by_priority"){ 
    row["priority_label"]; 
}
Figura 7. Diseño de informe de elementos de trabajo asignados
Diseño de informe de elementos de trabajo asignados
Figura 8. Parámetro de solicitud
Parámetro de solicitud

Para crear el informe de la tabla mostrada en la Figura 2, el Listado 8 muestra los parámetros para APPROVAL_STATE, en Live_Workitem_Cnt, informar los elementos de trabajo con aprobaciones pendientes.

Listado 8. Estado pendiente configurado para APPROVAL_STATE
"com.ibm.team.workitem.approvalState.pending"

Elementos de trabajo no terminados en iteraciones

Esta sección complementa las explicaciones para los informes de defectos no terminados en orden de gravedad y elementos de trabajo en orden de prioridad.

La Tabla 7 muestra los valores de los parámetros de STATE_NAME y WI_TYPE para informar defectos no terminados. No terminado significa uno de los siguientes cuatro estados:

  • Nuevo
  • En progreso
  • Resuelto
  • Reabierto
Tabla 7. STATE_NAME y WI_TYPE en Live_Workitem_Cnt
NombreTipo de DatoExpresión
STATE_NAMEString'\'1\',\'2\',\'3\',\'6\''
WI_TYPEString"defect"

Si WI_SEVERITY en Live_Workitem_Cnt no está en formato humanamente legible, puede convertirse a WI_SEVERITY en Severity mediante una relación (Listado 9). Primero, las áreas de proyecto seleccionadas se almacenan en la variable project_area_array (Listado 3).

Listado 9. Una relación entre SEVERITY_ID y WI_SEVERITY
SEVERITY_ID (at Severity) = PROJECT_AREA_ITEMID (at Project_Area) + "v" + 
        WI_SEVERITY (at Live_Workitem_Cnt)

A continuación, SEVERITY_ID y WI_SEVERITY en Severity se almacenan en severity_map (Listado 10).

Listado 10. severity_map onFetch en Severity
var severity_id = row["SEVERITY_ID"]; 
var wi_severity = row["WI_SEVERITY"]; 
var arr = vars["project_area_array"]; 

if(severity_id != null){ 
    for(var count = 0; count < arr.length; count++){ 
        var project_area_itemid = arr[count]; 
        if(severity_id.indexOf(project_area_itemid) >= 0){ 
            vars["severity_map"][severity_id] = wi_severity; 
        } 
    } 
}

Si SEVERITY_ID en severity_map incluye WI_SEVERITY en Live_Workitem_Cnt, WI_SEVERITY en severity_map es retornado con prefijos de valores numéricos que muestran un valor menor para una mayor gravedad (Listado 11).

Listado 11. Columna calculada de severity_label en Live_Workite_Cnt
var map = vars["severity_map"]; 
var label = ""; 

for(var key in map){ 
    var val = map[key]; 
    if(key.indexOf(row["WI_SEVERITY"]) >= 0){ 
        if(val == "Blocker"){ 
            label = "id0:" + val; 
        }else if(val == "Critical"){ 
            label = "id1:" + val; 
        }else if(val == "Major"){ 
            label = "id2:" + val; 
        }else if(val == "Normal"){ 
            label = "id3:" + val; 
        }else if(val == "Minor"){ 
            label = "id4:" + val; 
        }else if(val == "Unclassified"){ 
            label = "id5:" + val; 
        } 
    } 
} 
label;

iteration_param se calcula en onFetch in Live_iteration (Listado 12).

Listado 12. iteration_param onFetch en Live_iteration
var userIter = params["Iteration"].value 

if(userIter == null || userIter == ""){ // only devline is selected. 
    var itemId = row["itemId"]; 
    var str = vars["iteration_param"]; 
    // itemId of one iteration is added to str at once. 
    if(itemId != null && str.indexOf(itemId) == -1 ){ 
        str += '\'' + itemId + '\'' + ","; 
        vars["iteration_param"] = str; 
    } 
}else{ // iteration is selected. 
    var str = vars["iteration_param"]; 
    if(str == ""){ 
        str = userIter + ","; 
        vars["iteration_param"] = str; 
    } 
}

Después de calcular, iteration_param se configura como ITERATION_ITEMID en Live_Workitem_Cnt (Listado 13).

Listado 13. iteration_param configurado en Live_Workitem_Cnt
var iteration_param = vars["iteration_param"]; 
if(iteration_param.length > 0){ 
    iteration_param = iteration_param.substr(0, iteration_param.length - 1);
} 
iteration_param;

La Tabla 8 muestra los elementos del informe en el diseño. Estos elementos están ordenados, de arriba abajo.

Tabla 8. Elementos de informe en el diseño.
Elementos de InformeTabla enlazadaExpresión
Dynamic textNoneAñadido para calcular la variable project_area_array (Listado 3).
Dynamic textLive_iterationAñadido para calcular la variable iteration_param en onFetch, no mostrada en el informe (verificando hide element en Visibility en el editor de propiedades).
Dynamic textSeverityAñadido para calcular la variable severity_map en onFetch, no mostrada en el informe.
TableLive_Workitem_CntPROJECT_AREA_NAME, WI_SEVERITY, WI_COUNT se seleccionan en columnas de resultados y severity_label se crea en las columnas calculadas (Listado 11). Aquí se presentan las configuraciones detalladas:

  1. Crear el grupo seleccionado Insert Group en el encabezado de fila.
    • Name: ProjectAreaGroup
    • Group On: PROJECT_AREA_NAME
  2. En cada grupo, el número de severity_label (calculado de WI_SEVERITY) es contado por WI_COUNT.
  3. Un gráfico se coloca en Group Header Row.
  4. Configurar severity_label en la pestaña ordenar:
    • Sort Key: row["severity_label"]
    • Sort Direction: Ascending
    • Sort Locale: Auto
    • Sort Strength: ASCII
Chart(Inherit Data from Container: Inherit Columns and Groups)Se muestra en el informe. Este elemento del gráfico del informe se coloca en la fila de encabezado de grupo en el elemento de la tabla de informe anterior.

Aquí se presentan las configuraciones detalladas:
  • Chart Type: Pie
  • Output Format: PNG (si SVG no funciona en una vista de navegador.)
  • Inherit Data from Container: Inherit Columns and Groups
  • Category Definition: row["severity_label"]
  • Slice size definition: row["WI_COUNT"]
  • Chart Title: Unfinished defects in order of severity
TableLive_Workitem_Cnt_listOpcional si es necesario revisar la lista de elementos de trabajo.
Figura 9. Diseño del informe de defectos no terminados
Diseño del informe de defectos no terminados

Para crear el gráfico circular que se muestra en la Figura 4, la Tabla 9 muestra los valores de los parámetros STATE_NAME y WI_TYPE para informar los elementos de trabajo excepto defectos y elementos de rastreo de construcción. No terminado significa dos grupos de estado: Abierto o En progreso, para cada tipo de elemento de trabajo. Estos se definen en el área de proyecto del proceso scrum.

Tabla 9. STATE_NAME y WI_TYPE en Live_Workitem_Cnt
NombreTipos de datosExpresión
STATE_NAMEStringListado 14
WI_TYPEStringListado 15
Listado 14. Expresión de STATE_NAME
'\'1\',\'2\',\'com.ibm.team.apt.epic.workflow.state.s1\',\'com.ibm.team.apt.epic.workflo
w.state.s2\',\'com.ibm.team.apt.story.idea\',\'com.ibm.team.apt.story.tested\',\'com.ibm
.team.apt.story.defined\',\'com.ibm.team.workitem.retrospectiveWorkflow.state.new\',\'co
m.ibm.team.workitem.retrospectiveWorkflow.state.inprogress\',\'com.ibm.team.workitem.imp
edimentWorkflow.state.s1\',\'com.ibm.team.rtc.workflow.adoption.state.s1\',\'com.ibm.tea
m.rtc.workflow.adoption.state.s2\''
Listado 15. Expresión de WI_TYPE
'\'com.ibm.team.apt.workItemType.epic\',\'com.ibm.team.apt.workItemType.story\',\'com.ib
m.team.workItemType.adoption\',\'com.ibm.team.workitem.workItemType.impediment\',\'com.i
bm.team.workitem.workItemType.retrospective\',\'task\''

Elementos de informe que reemplazan a Severity (texto dinámico) y Live_Workitem_Cnt (tabla y gráfico) en la Tabla 8 por Priority y Live_Workitem_Cnt (Tabla 10) utilizados para el diseño.

Tabla 10. Elementos del informe en el diseño, ordenados de arriba abajo
Elementos de InformeTabla enlazadaExpresión
Dynamic textPriorityAñadido para calcular la variable priority_map en onFetch, no mostrada en el informe.
TableLive_Workitem_CntWI_SEVERITY y severity_label (Tabla 8) se cambian a WI_PRIORITY y priority_label, respectivamente.

Configura priority_label en la pestaña Ordenar.
Chart(Inherit Data from Container: Inherit Columns and Groups)Se muestra en el informe. Este elemento del gráfico del informe se coloca en la fila de encabezado de grupo en el elemento de la tabla de informe anterior.

Las configuraciones distintas que las descritas aquí son las mismas que en la Tabla 8.
Category Definition:
row["priority_label"]

Productividad y contribuciones

Esta sección complementa las explicaciones de los informes de cuántos elementos de trabajo están terminados y aprobados en cada iteración.

La Tabla 11 muestra valores de STATE_NAME para informar elementos de trabajo terminados, excepto para un elemento de rastreo de construcción (Tabla 11). "Terminados" significa grupos de estado cerrados para cada tipo de elemento de trabajo. (Indica que los defectos con estado Resuelto también son contados.) Se define en el área de proyecto del proceso scrum.

Tabla 11. STATE_NAME en Live_Workitem_Cnt
NombreTipos de datosExpresión
STATE_NAMEStringListado 16
Listado 16. Expresión de STATE_NAME
'\'3\',\'4\',\'com.ibm.team.workitem.taskWorkflow.state.s4\',\'com.ibm.team.apt.epic.wor
kflow.state.s3\',\'com.ibm.team.apt.epic.workflow.state.s5\',\'com.ibm.team.apt.epic.wor
kflow.state.s6\',\'com.ibm.team.apt.storyWorkflow.state.s1\',\'com.ibm.team.apt.story.ve
rified\',\'com.ibm.team.apt.storyWorkflow.state.s2\',\'com.ibm.team.workitem.retrospecti
veWorkflow.state.finished\',\'com.ibm.team.workitem.retrospectiveWorkflow.state.s1\',\'c
om.ibm.team.workitem.impedimentWorkflow.state.s2\',\'com.ibm.team.workitem.impedimentWor
kflow.state.s3\',\'com.ibm.team.rtc.workflow.adoption.state.s4\',\'com.ibm.team.rtc.work
flow.adoption.state.s3\''

contributor_param se calcula en onFetch in Live_Contributor (Listado 17).

Listado 17. contributor_param en onFetch in Live_Contributor
var itemId = row["CONTRIBUTOR_ITEMID"]; 
var str = vars["contributor_param"]; 
if( itemId != null && str.indexOf(itemId) == -1 ){ 
    str += '\'' + itemId + '\'' + ","; 
    vars["contributor_param"] = str; 
}

Después de calcular, contributor_param se configura como CONTRIBUTOR_ITEMID en Live_Workitem_Cnt (Listado 18).

Listado 18. contributor_param configurado en Live_Workitem_Cnt
var contributor_param = vars["contributor_param"]; 
if(contributor_param.length > 0){ 
    contributor_param = contributor_param.substr(0, contributor_param.length - 1);
}
contributor_param;

La Tabla 12 muestra los elementos del informe en el diseño. Estos elementos están ordenados, de arriba abajo.

Tabla 12. Elementos de informe en el diseño.
Elementos de InformeTabla enlazadaExpresión
Dynamic textLive_iterationAñadido para calcular la variable iteration_param en onFetch, no mostrada en el informe (verificando hide element en Visibility en el editor de propiedades).
Dynamic textLive_ContributorSe ha añadido para el cálculo del contributor_param variable en onFetch, no mostrado en el informe.
ChartLive_Workitem_CntSe muestra en el informe. Aquí se presentan las configuraciones detalladas:

Seleccionar Tipo de Gráfico: Bar
  • Select Subtype: Stacked bar charts
  • Output Format: PNG (si SVG no funciona correctamente en una vista de navegador.)
Serie de Categoría (X): row["CONTRIBUTOR_NAME"]
  • Data Sorting: Ascending
  • Sort On: row["CONTRIBUTOR_NAME"]
  • Grouping Enabled: uncheck
Serie de Valor (Y): row["WI_COUNT"]
  • Aggregation expression: None
Agrupación opcional de Serie Y: row["PROJECT_AREA_NAME"]
  • Data Sorting: Descending
  • Sort On: row["PROJECT_AREA_NAME"]
  • Grouping Enabled: checked
  • Type: Text
  • Unit: String
  • Interval:1
Chart Title: La cantidad de elementos de trabajo terminados.
TableLive_Workitem_Cnt_listOptional. Use it if lists of work items need to be reviewed.
Figura 10. Diseño de informe de Elementos de Trabajo Terminados por desarrollador
Diseño de informe de Elementos de Trabajo Terminados por desarrollador

Para crear el informe con gráfico de barras de la Figura 6, la Tabla 13 muestra los parámetros para informar cuántos elementos de trabajo ha sido aprobados en las iteraciones.

Tabla 13. Parámetros configurados en Live_Workitem_Cnt
NombreTipo de DatoExpresión
APPROVAL_STATEString"com.ibm.team.workitem.approvalState.approved"
APPROVAL_APPROVER_ITEMIDStringConfigurado desde contributor_param. (Listado 18)

Los elementos de informe al reemplazar Live_Workitem_Cnt (Gráfico) en la Tabla 12 por Live_Workitem_Cnt (Tabla 14) se utilizan para el diseño de un informe.

Tabla 14. Elementos de informe en el diseño.
Elementos de InformeTabla enlazadaExpresión
ChartLive_Workitem_CntSe muestra en el informe. Las configuraciones distintas que las descritas aquí son las mismas que en la Tabla 12.

Serie de Categoría (X):
  • row["APPROVAL_APPROVER_NAME"]

Resumen

Este artículo ha explicado cómo crear informes para mostrar a los desarrolladores y gerentes la información necesaria en Rational Team Concert utilizando BIRT. El artículo ha explicado la información necesaria a ser informada para cada rol, con casos de uso. También ha explicado paso a paso cómo implementarla. Mediante estos informes, cada participante puede actuar para mantener los proyectos en buen estado.


Reconocimientos

El autor agradece a Masaki Wakao por la asesoría técnica.


Descargar

DescripciónNombretamaño
Sample report filessample_report_files.zip54KB

Recursos

Aprender

Obtener los productos y tecnologías

  • Descargue Rational Team Concert desde Jazz.net (es necesario registrarse).
  • Evaluate IBM software de la manera que le convenga: descárguelo para una evaluación, pruébelo online, úselo en un entorno de nube o pase algunas horas en SOA Sandbox aprendiendo cómo implementar eficientemente la arquitectura orientada al servicio.

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Rational
ArticleID=831155
ArticleTitle=Creación de informes personalizados a través de múltiples áreas de proyecto en Rational Team Concert
publish-date=08212012