> For the complete documentation index, see [llms.txt](https://docs.flosum.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flosum.com/devops/devops-es/pipeline/operaciones-del-pipeline/operacion-del-pipeline-analisis-de-codigo.md).

# Operación del pipeline: análisis de código

{% hint style="warning" %}

#### Escrito para la antigua interfaz de usuario

Este artículo fue escrito para la antigua interfaz de usuario. Las instrucciones todavía se pueden usar, pero las capturas de pantalla están desactualizadas. En algunos casos, los elementos mencionados en las instrucciones se han movido o cambiado. Si no puede encontrar un elemento, consulte el [¿Dónde quedó?](/devops/devops-es/transicion-a-la-nueva-ui-ux/donde-quedo.md) artículo.
{% endhint %}

## ![](https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FG5ZbxX918xOHwbAwAJ4n%2FSummary2-Small-Icon.svg?alt=media\&token=da26a67f-ff7f-47b3-8669-06be960dc2d7) Descripción general

El **Análisis de código** la operación analiza los metadatos de Salesforce para identificar problemas de calidad de código antes del despliegue. Mediante el análisis estático de código, informa de las infracciones de reglas en las clases Apex, desencadenadores y otros componentes de una rama para confirmar que cumplen con sus estándares de programación definidos. El conjunto de reglas de Análisis de código cubre:

* **Estilo de programación y mejores prácticas**: Mejore la legibilidad, el mantenimiento y la coherencia en todo su código.
* **Mejores prácticas de seguridad**: Identifique vulnerabilidades comunes y patrones de riesgo en su código.
* **Sugerencias de rendimiento**: Resalte la lógica ineficiente antes de que afecte a los usuarios finales.

Puede establecer un umbral de severidad para abortar la canalización cuando las infracciones alcancen o superen un nivel especificado. Ejecutar Análisis de código en su canalización ayuda a mantener una calidad de código coherente y le permite desplegar componentes fiables, seguros y con buen rendimiento.

Este artículo explica cómo configurar y usar la operación de Análisis de código. Consulte las siguientes secciones para obtener más información:

* [#scan-types](#scan-types "mention")
* [#severity-levels](#severity-levels "mention")
* [#code-scan-operation-configuration](#code-scan-operation-configuration "mention")
* [#code-scan-results-1](#code-scan-results-1 "mention")

{% hint style="info" %}

#### Mejores prácticas

* Ejecute Análisis de código automáticamente antes de cada despliegue.
* Establezca umbrales de severidad basados en las reglas de CI/CD.
* Revise regularmente el **Resultado del análisis de código** y corrija los problemas recurrentes.
* Combine **Análisis de código** con un **Paso manual** para exigir una revisión y aprobación antes del despliegue en producción.
* Mantenga configuraciones coherentes **Análisis de código** en todos los entornos.
  {% endhint %}

### Tipos de análisis

La operación de Análisis de código admite dos tipos de análisis: **Apex PMD** y **Flosum Scan**. Revise las descripciones siguientes para elegir el tipo de análisis que mejor se ajuste a los estándares de calidad de su equipo. En el menú desplegable de tipo de comprobación, Flosum Scan aparece como Flosum.

#### Apex PMD

**Apex PMD** es un conjunto de reglas de código abierto que detecta problemas comunes en los componentes de Salesforce. Incluye menos reglas que Flosum Scan y completa los análisis más rápido, por lo que es una opción ligera para obtener comentarios rápidos. Elija Apex PMD cuando sus comprobaciones básicas satisfagan sus necesidades o prefiera detectar menos problemas.

#### Flosum Scan

**Flosum Scan** es el conjunto de reglas más completo de DevOps, diseñado para equipos que exigen el más alto estándar de calidad de código. Incluye todas las reglas de Apex PMD más cientos de comprobaciones adicionales, aproximadamente 6 veces la cobertura de Apex PMD, y amplía el análisis estático a lenguajes que Apex PMD no cubre, incluidos **Salesforce Flow** y **TypeScript**. Esta cobertura ampliada ofrece un análisis más profundo y una validación más estricta, dándole mayor confianza en cada despliegue. Elija Flosum Scan para la protección más completa de su código de Salesforce.

{% hint style="info" %}

#### ¿Por qué Flosum Scan?

* **Cobertura de idiomas más amplia**: Añade soporte de primera clase para **Salesforce Flow** y **TypeScript**y ninguno de los cuales es analizado por **Apex PMD**.
* **Cobertura más profunda de Lightning**: Incluye 381 reglas para **JavaScript** y **Lightning Web Components**, en comparación con 19 en **Apex PMD**.
* **Validación de metadatos más sólida**: Aplica 18 reglas a **los metadatos de Salesforce**, en comparación con 2 en **Apex PMD**.
* **En expansión continua**: El **Flosum Scan** conjunto de reglas es mantenido por Flosum y crecerá para mantenerse al ritmo de los cambios de la plataforma Salesforce.
  {% endhint %}

#### Cobertura de reglas por idioma

La tabla siguiente enumera los idiomas admitidos por cada tipo de análisis. El gráfico compara la cobertura de reglas de cada tipo de análisis en los idiomas admitidos. Use esta información para confirmar que el tipo de análisis que seleccione proporciona suficientes conjuntos de reglas para los idiomas utilizados en su rama.

<table><thead><tr><th width="399.666748046875">Idioma</th><th align="center">Apex PMD</th><th align="center">Flosum Scan</th></tr></thead><tbody><tr><td>JavaScript / Lightning Web Components</td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td></tr><tr><td>TypeScript</td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FzwOFIIvK4ue9gjxBh5iX%2FX-Icon.svg?alt=media&amp;token=bbcd7bc0-1097-450d-b6ce-62677c4c4097" alt="" data-size="line"></td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td></tr><tr><td>Apex</td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td></tr><tr><td>los metadatos de Salesforce</td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td></tr><tr><td>HTML / Salesforce Lightning Design System</td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td></tr><tr><td>Salesforce Flow</td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FzwOFIIvK4ue9gjxBh5iX%2FX-Icon.svg?alt=media&amp;token=bbcd7bc0-1097-450d-b6ce-62677c4c4097" alt="" data-size="line"></td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td></tr><tr><td>Visualforce</td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td><td align="center"><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FFyAlTI4AIHg46Nb6SL90%2FCheckBox-Icon.svg?alt=media&amp;token=3ab847f7-5568-405e-aa0a-23e02f38d451" alt="" data-size="line"></td></tr></tbody></table>

<figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FmEJomEj5Qdzu2DhZttFe%2FPipelineOperationCodeScan-Chart-01.png?alt=media&amp;token=f613ed31-b5e6-431f-af8f-24fa0d48a3bf" alt=""><figcaption></figcaption></figure>

### Niveles de severidad

Cuando el Análisis de código encuentra un problema, asigna un nivel de severidad que refleja lo crítico que es el problema para la calidad de su código. Use estos niveles para priorizar las correcciones y establecer el umbral de severidad que determina cuándo falla la operación.

<table><thead><tr><th width="150">Nivel de severidad</th><th>Descripción</th></tr></thead><tbody><tr><td>Bloqueante</td><td>Riesgos de seguridad graves o errores críticos que pueden provocar fallos del sistema o pérdida de datos.</td></tr><tr><td>Crítico</td><td>Problemas significativos que normalmente infringen los estándares de Salesforce AppExchange.</td></tr><tr><td>Mayor</td><td>Infracciones de buenas prácticas o problemas de rendimiento que afectan al mantenimiento.</td></tr><tr><td>Menor</td><td>Problemas de calidad de código de bajo impacto o incoherencias de estilo.</td></tr><tr><td>Información</td><td>Mensajes informativos que no requieren ninguna acción.</td></tr></tbody></table>

## Configuración de la operación de Análisis de código

{% hint style="info" %}
Las instrucciones siguientes se aplican a la configuración de esta operación de canalización. Para obtener instrucciones generales sobre cómo agregar un paso de canalización y establecer el siguiente paso, consulte el siguiente artículo.

[Agregar un paso al pipeline](/devops/devops-es/pipeline/configurar-los-pasos-del-pipeline/agregar-un-paso-al-pipeline.md)
{% endhint %}

{% stepper %}
{% step %}

### Seleccione la operación y el tipo

1. Haga clic en el **menú desplegable de** Operación.
2. Seleccione **Análisis de código**.

   <div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FJylQJG03TIzkfefDNYLj%2FPipelineOperationCodeScan-Config-S01-01.png?alt=media&amp;token=50da9df9-7700-4111-b356-1d43b6601806" alt="" width="563"><figcaption></figcaption></figure></div>
3. Haga clic en el **tipo de comprobación** Operación.
4. Seleccione **Apex PMD** o **Flosum**. **Flosum** es el tipo de Flosum Scan. Consulte la sección Tipos de análisis anterior para obtener más detalles.

   <div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FkMG1WoaoeonBhuJpbd9u%2FPipelineOperationCodeScan-Config-S01-02.png?alt=media&amp;token=14189fc7-aaf4-443f-9c2b-2a36f9cb4911" alt="" width="563"><figcaption></figcaption></figure></div>

{% endstep %}

{% step %}

### Introduzca la descripción y el umbral

1. (Opcional) En el **Descripción** cuadro de texto, introduzca un resumen de lo que realiza este Análisis de código.
2. Haga clic en el **Umbral de severidad** Operación.
3. Seleccione el nivel mínimo de severidad que hará que falle la operación de Análisis de código. Consulte la sección Niveles de severidad anterior para obtener más detalles.

   <div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FA6IsOXnlWyUCGVXt6kL4%2FPipelineOperationCodeScan-Config-S02-01.png?alt=media&amp;token=571b2ca8-d64f-4a4f-a48a-d9f29c889b2d" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
El **Umbral de severidad** significa que si se encuentra un problema con el nivel de severidad seleccionado o superior, el Análisis de código fallará.
{% endhint %}
{% endstep %}
{% endstepper %}

## Resultados del Análisis de código

{% hint style="info" %}
Una vez que se inicia una canalización, su progreso y resultados se pueden ver desde la **Actividades** pestaña de la rama que ejecutó la canalización. Las instrucciones a continuación le muestran cómo revisar los resultados de esta operación. Para obtener instrucciones generales sobre cómo acceder a los resultados de la canalización desde la rama, consulte el siguiente artículo.

* [Ver los resultados del pipeline](/devops/devops-es/pipeline/acciones-del-pipeline/ver-los-resultados-del-pipeline.md)
  {% endhint %}

{% stepper %}
{% step %}

### Resumen y registro

Una vez completado el Análisis de código, puede ver el resumen de resultados seleccionando el **Análisis de código** paso de los resultados de la canalización.

<div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FCqkIBlg2aZej5hNl2buC%2FPipelineOperationCodeScan-Results-S01-01.png?alt=media&amp;token=0f223c77-c928-428b-8552-b78e9abcb0c4" alt="" width="563"><figcaption></figcaption></figure></div>

El **El resumen** de los resultados del Análisis de código muestra la siguiente información:

<table><thead><tr><th width="200.3333740234375">Campos</th><th>Descripción</th></tr></thead><tbody><tr><td>Estado</td><td><p><strong>Completado</strong> si todos los problemas encontrados están por debajo del umbral de severidad establecido.</p><p><strong>Excepción</strong> si cualquier problema alcanza o supera el umbral de severidad.</p></td></tr><tr><td>Duración</td><td>Tiempo que tardó el Análisis de código en completarse, mostrado en horas, minutos y segundos.</td></tr><tr><td>Fecha de inicio/finalización</td><td>La fecha y hora en que el Análisis de código comenzó y terminó.</td></tr><tr><td>Problemas encontrados</td><td>Número de problemas encontrados en cada nivel de severidad.</td></tr><tr><td>Registro</td><td>Entradas del registro del trabajo de Análisis de código. Use el registro para revisar el estado del trabajo y cualquier mensaje de error.</td></tr></tbody></table>

Ejemplo de un registro de Análisis de código:

{% code overflow="wrap" expandable="true" %}

```
[22 de mayo de 2026 1:09 p. m.]: [info] Trabajo iniciado
[22 de mayo de 2026 1:09 p. m.]: [info] Inicio de la creación del proyecto de Salesforce
[22 de mayo de 2026 1:09 p. m.]: [info] Creación del proyecto de Salesforce completada
[22 de mayo de 2026 1:09 p. m.]: [info] Inicio de la recuperación de componentes de Salesforce
[22 de mayo de 2026 1:09 p. m.]: [info] Recuperación de componentes de Salesforce completada
[22 de mayo de 2026 1:09 p. m.]: [info] Inicio del analizador de código
[22 de mayo de 2026 1:10 p. m.]: [info] Analizador de código completado
[22 de mayo de 2026 1:10 p. m.]: [error] Trabajo fallido: el análisis de código superó el valor permitido: "Menor"
```

{% endcode %}
{% endstep %}

{% step %}

### Resultados del Análisis de código

Puede ver los Resultados del Análisis de código para saber qué archivos de su rama presentaron problemas y cuántos hubo de cada nivel de severidad.

1. Haga clic en **Ver resultado**.

   <div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FrOAv0f836UScNKtf3aS0%2FPipelineOperationCodeScan-Results-S02-01.png?alt=media&amp;token=a15a8b79-c6f1-47f9-8b0f-4f88264ae34a" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Actualmente, las etiquetas de nivel de severidad de la **Resultado del análisis de código** página difieren de las etiquetas usadas en otras secciones del Análisis de código. Este problema menor se resolverá pronto. Mientras tanto, use la siguiente correspondencia para traducir los niveles de severidad:

* **Crítico → Bloqueante**
* **Alto → Crítico**
* **Medio → Mayor**
* **Bajo → Menor**
* **Menor → Información**
  {% endhint %}

En la parte superior de la página de resultados está el número total de problemas encontrados para cada nivel de severidad. Debajo de los totales hay una lista de archivos de componentes con problemas, junto con un gráfico de barras de problemas organizados por severidad.

<div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FaJKENrYjN8xUipfT7eFB%2FPipelineOperationCodeScan-Results-S02-02.png?alt=media&amp;token=d942f17b-de32-4f35-8474-0fca346a4c6f" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### Resultados a nivel de archivo

Los resultados a nivel de archivo explican la causa de cada problema y dónde ocurre en el archivo de origen. Revise cada problema y, cuando corresponda, realice los cambios necesarios en el componente.

1. Haga clic en un archivo de la lista para ver la lista completa de problemas.

   <div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FCP8sA4LTlyR8ZVbTguv7%2FPipelineOperationCodeScan-Results-S03-01.png?alt=media&amp;token=4df75b5f-1c1c-4dd3-bbc3-b556d01af65d" alt="" width="563"><figcaption></figcaption></figure></div>
2. Si está disponible, haga clic en **Mostrar más** para ver más problemas encontrados en este archivo.

La captura de pantalla y la tabla siguientes explican la información mostrada para cada problema.

<div align="left"><figure><img src="https://2574462044-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRpUu5iMlzMFAudyBvMOl%2Fuploads%2FHdwii7OwDPNZ8z4dOuIC%2FPipelineOperationCodeScan-Results-S03-02.png?alt=media&amp;token=9556a7af-d237-43f8-968f-55b1212b8694" alt="" width="563"><figcaption></figcaption></figure></div>

<table><thead><tr><th width="199.66668701171875">Columna</th><th>Descripción</th></tr></thead><tbody><tr><td>Nivel de severidad</td><td>Un círculo de color con una letra en su interior indica el nivel de severidad. La letra coincide con la primera letra del nombre del nivel de severidad, y el color coincide con el nivel. Nota: Mayor y Menor empiezan ambos por M, pero Mayor es naranja y Menor es verde.</td></tr><tr><td>Nombre de la regla</td><td>El nombre de la regla que marcó el problema.</td></tr><tr><td>Descripción de la infracción</td><td>Una descripción de la causa del problema.</td></tr><tr><td>Ubicación de la infracción</td><td>La línea y el número de columna donde se encontró el problema.</td></tr></tbody></table>
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.flosum.com/devops/devops-es/pipeline/operaciones-del-pipeline/operacion-del-pipeline-analisis-de-codigo.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
