Moderniza tu aplicación de unidad central

En esta guía, aprenderás a usar la extensión de Cloud Code para VS Code y modernizar tu aplicación heredada para mainframe.

La reescritura de código de Mainframe Modernization permite un enfoque iterativo para la reescritura de código de clientes y socios. Por lo general, se usa después de completar una evaluación con Mainframe Assessment Tool (MAT). Esta extensión integra capacidades de IA generativa para unidades centrales para el análisis, la especificación, la generación y las pruebas de código, lo que proporciona una experiencia de desarrollo interactiva.

Antes de comenzar

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the Vertex AI API.

    Enable the API

  4. Instala la extensión de Cloud Code si aún no lo hiciste.
  5. Instala la Google Cloud CLI si aún no lo hiciste.
  6. Configura la reescritura de código de Mainframe Modernization

    En las siguientes secciones, se describe cómo configurar la reescritura de código de Mainframe Modernization. Primero, deberás habilitar la función de reescritura de código de Mainframe Modernization en tu IDE y, luego, conectarla a Vertex AI.

    Habilita la reescritura de código de modernización de la unidad central

    Para habilitar la reescritura de código de modernización de mainframe, sigue estos pasos:

    1. Abre la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.

    2. Selecciona el comando Preferences: Open User Settings (JSON).

      Para habilitar la reescritura de código de modernización de mainframe, agrega el parámetro de configuración "cloudcode.beta.enableMainframeModernization": true a tu archivo settings.json:

      {
          "cloudcode.updateChannel": "Insiders",
          "cloudcode.beta.enableMainframeModernization": true
      }
      
    3. Vuelve a abrir la paleta de comandos (presiona Ctrl/Cmd + Mayúsculas + P) y selecciona el comando Developer: Reload Window.

    Conecta la reescritura de código de Mainframe Modernization a Vertex AI

    Para conectar Mainframe Modernization Code Rewrite a Vertex AI, sigue estos pasos:

    1. En una ventana de la terminal, ejecuta el siguiente comando:

      gcloud auth application-default login
      
    2. Sigue las instrucciones en pantalla en la ventana del navegador web que se abrió recientemente.

    3. Sigue las instrucciones para acceder a Trusted Cloud by S3NS.

    4. Selecciona el proyecto que quieres usar.

    5. Ejecuta el comando Developer: Reload Window.

    Después de la configuración, puedes abrir cualquier espacio de trabajo o carpeta que incluya código de mainframe y ejecutar los comandos Generate Specification Summary y Generate Modernized Code en COBOL, JCL, Easytrieve y HLASM.

    Genera un resumen de especificaciones

    El comando Cloud Code: Generate Specification Summary for Active File te permite crear una especificación en lenguaje neutral para tu código heredado de mainframe. Se admiten COBOL, JCL, Easytrieve y HLASM.

    Puedes acceder a un resumen de especificaciones desde la paleta de comandos o desde la vista del Explorador:

    Paleta de comandos

    1. En el editor, selecciona el archivo fuente que deseas usar para que sea el archivo activo.

    2. Para abrir la paleta de comandos, presiona Ctrl/Cmd + Mayúsculas + P.

    3. Busca y selecciona el comando Cloud Code: Generate Specification Summary for Active File.

    Aparece un resumen de la especificación junto al código.

    Explorador

    1. En la barra de actividad, haz clic en Explorador o presiona Ctrl/Cmd + Mayúsculas + E.

    2. Haz clic con el botón derecho en el archivo fuente que prefieras y selecciona Generate Specification Summary.

    Aparece un resumen de la especificación junto al código.

    Anota el código heredado de la unidad central

    Para guiar el proceso de generación del resumen de especificaciones, puedes agregar comentarios para anotar tu código heredado. Para anotar un trabajo de JCL o un programa de COBOL, busca el botón add Agregar junto a la línea de definición del trabajo o programa:

    Trabajo de JCL

    Anota el trabajo de JCL

    Programa en COBOL

    Anota un programa en COBOL

    1. Para abrir una vista del CMS intercalada que te permita anotar tu trabajo o programa, haz clic en Agregar Agregar. Después de agregar tu comentario, haz clic en Crear nota para guardarlo.

    2. Cuando se guarde la anotación, usa el comando Generate Specification Summary para generar una especificación para tu trabajo o programa, guiada por tu comentario.

      Luego, puedes editar tu anotación para definir mejor la orientación proporcionada o borrarla si ya no quieres que el modelo la tenga en cuenta.

    Genera código modernizado

    El comando Cloud Code: Generate Modernized Code for Active File te permite crear código moderno a partir de tu código heredado de mainframe.

    Lenguajes fuente admitidos: COBOL, JCL, Easytrieve y HLASM.

    Lenguajes de destino admitidos: Java, C#, Python y SQL.

    Puedes acceder a este comando desde la paleta de comandos o desde la vista del Explorador:

    Paleta de comandos

    1. En el editor, selecciona el archivo fuente que deseas usar para que sea el archivo activo.

    2. Para abrir la paleta de comandos, presiona Ctrl/Cmd + Mayúsculas + P.

    3. Busca y selecciona el comando Cloud Code: Generate Modernized Code for Active File.

    4. Selecciona el idioma de destino en el que deseas que se genere el código modernizado.

      El código modernizado generado aparece en el editor como un nuevo archivo sin título.

    Explorador

    1. En la barra de actividad, haz clic en Explorador o presiona Ctrl/Cmd + Mayúsculas + E.

    2. Haz clic con el botón derecho en el archivo fuente para el que deseas generar código modernizado y selecciona Generar código modernizado.

    3. Selecciona el idioma de destino en el que deseas que se genere el código modernizado.

      El código modernizado generado aparece en el editor como un nuevo archivo sin título.

    Modificar la configuración

    La reescritura de código de Mainframe Modernization tiene los siguientes parámetros de configuración que puedes establecer en el alcance del espacio de trabajo o en el alcance de la configuración del usuario (global).

    Para modificar la configuración a nivel del espacio de trabajo, presiona Ctrl/Cmd + Mayúsculas + P para abrir la paleta de comandos y selecciona el comando Preferences: Open Workspace Settings (JSON).

    Para modificar la configuración a nivel de la configuración global del usuario, presiona Ctrl/Cmd+Mayús+P para abrir la paleta de comandos y selecciona el comando Preferences: Open User Settings (JSON).

    A continuación, se muestra un ejemplo de un archivo settings.json que incluye todas las propiedades de configuración de la extensión:

    {
        "cloudcode.beta.enableMainframeModernization": true,
        "cloudcode.beta.mainframeModernization.enableGoogleAnalytics": true,
        "cloudcode.beta.mainframeModernization.enableCloudLogging": false,
        "cloudcode.beta.mainframeModernization.model": "gemini-2.5-pro",
        "cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage": "csharp",
        "cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints": [
            "Do not print messages directly to the console; use a logging framework instead."
        ],
    }
    

    Cómo habilitar y inhabilitar Google Analytics

    Esta propiedad de configuración habilita o inhabilita la recopilación de estadísticas de uso para la extensión.

    • Nombre de la propiedad de configuración: cloudcode.beta.mainframeModernization.enableGoogleAnalytics.

    • Valor de configuración de ejemplo: false.

    • Valor predeterminado: true (Analytics está habilitado).

    Habilita y deshabilita Cloud Logging

    Esta propiedad de configuración controla si el registro está habilitado o no.

    • Nombre de la propiedad de configuración: cloudcode.beta.mainframeModernization.enableCloudLogging.

    • Valor de configuración de ejemplo: true.

    • Valor predeterminado: false (Cloud Logging está inhabilitado).

    Modelo

    Cuando se establece esta propiedad de configuración, Mainframe Modernization Code Rewrite usa el modelo de Gemini especificado en la configuración.

    • Nombre de la propiedad de configuración: cloudcode.beta.mainframeModernization.model

    • Valores de configuración de ejemplo: "gemini-1.5-flash", "gemini-1.5-pro", "gemini-2.0-flash", "gemini-2.0-flash-lite" o "gemini-2.5-pro".

    • Valor predeterminado: "(default)" (pregunta cada vez).

    Idioma de destino

    Cuando se establece esta propiedad de configuración, el comando Generate Modernized Code ya no te pide que selecciones el lenguaje de destino cuando generas código, sino que usa el lenguaje establecido en la propiedad.

    • Nombre de la propiedad de configuración: cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

    • Valores de configuración de ejemplo: "java", "csharp", "python" o "pgsql".

    • Valor predeterminado: null (pregunta cada vez).

    Sugerencias de la pila tecnológica para la generación de código

    Cuando se establece esta propiedad de configuración, el comando Generate Modernized Code pasa la lista especificada de sugerencias de pila tecnológica como instrucciones adicionales al LLM cuando genera código. Esta configuración se puede usar como guía para ajustar la arquitectura objetivo, los frameworks y el estilo de código.

    • Nombre de la propiedad de configuración: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

    • Valor de configuración de ejemplo:

      [
        "Do not print messages directly to the console; use a logging framework instead.",
        "when generating java code - use Spring Boot version 3 as the framework"
      ]
      
    • Valor predeterminado: [] (una lista vacía; no hay sugerencias de pila tecnológica).

    Borra los datos de reescritura de código de la modernización de la unidad central

    Para quitar todos los datos que Mainframe Modernization Code Rewrite almacena de forma local en el espacio de trabajo actual, sigue estos pasos:

    1. Para abrir la terminal, selecciona Ver > Terminal en la barra de menú o presiona el atajo de teclado .

    2. Ingresa los siguientes comandos en la terminal:

    Linux (Bash o Zsh)

    workspace_id=$(printf %s "$PWD$(stat -c '%i' .)" | md5sum | head -c 32)
    workspace_storage_dir="$HOME/.config/Code/User/workspaceStorage/$workspace_id"
    rm -r "$workspace_storage_dir/googlecloudtools.cloudcode/mainframe/"
    

    Windows (PowerShell)

    $workspacePath = (Get-Location).ToString()
    
    $tempFile = (New-TemporaryFile).FullName
    ($workspacePath.Substring(0, 1).ToLower() + $workspacePath.Substring(1) +
        (([decimal](Get-Date (Get-ItemProperty . |
            Select-Object -ExpandProperty CreationTimeUtc) -UFormat %s) * 1000) -split '\.')[0]
    ) | Out-File -FilePath $tempFile -Encoding ascii -NoNewline
    $workspaceId = (Get-FileHash -Algorithm MD5 -Path $tempFile).Hash.ToLower()
    Remove-Item $tempFile
    
    $workspaceStorageDir = "$env:APPDATA\Code\User\workspaceStorage\$workspaceId"
    Remove-Item -Recurse "$workspaceStorageDir\googlecloudtools.cloudcode\mainframe"
    

    Solucionar problemas

    En esta sección, se describen los problemas conocidos de la reescritura de código de Mainframe Modernization y se proporcionan pasos para solucionar problemas:

    Vertex AI no está disponible en el Trusted Cloud proyecto

    Si los comandos Generate Specification Summary o Generate Modernized Code se ejecutan durante mucho tiempo y, luego, fallan, es posible que la API de Vertex AI no esté habilitada o que haya superado su cuota en el proyecto seleccionado. Para confirmar que este es el problema, haz clic en el botón Ir al resultado.

    Si el botón Ir a la salida no está disponible, sigue los pasos que se indican en Cómo inspeccionar el canal de salida. En el canal de salida, busca un mensaje de error que contenga "Vertex.GenerateContent failed". Por ejemplo, a continuación, se muestra un mensaje de error que se produce porque la API de Vertex AI no está habilitada en el proyecto Trusted Cloud seleccionado:

    "generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent failed: 403 Forbidden (403)"

    Para resolver este problema, realiza una de las siguientes acciones:

    • Confirma que la API de Vertex AI esté habilitada en el proyecto Trusted Cloud.

    • Cambia a otro proyecto Trusted Cloud con la API de Vertex AI habilitada.

    Los comandos de reescritura de código de Mainframe Modernization no están disponibles

    Si los comandos como Generate Specification Summary o Generate Modernized Code no están disponibles en la paleta de comandos, es posible que no se haya instalado la herramienta de CLI de Mainframe Modernization. Para confirmar que este es el caso, verifica si falta el siguiente archivo ejecutable:

    • En Linux: ~/.cache/cloud-code/mainframe/bin/codegen
    • En Windows: %LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
    • En macOS: $HOME/Library/Application Support/cloud-code/mainframe/bin/codegen_macos

    Si es así, intenta resolver el problema realizando las siguientes tareas:

    1. Abre la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
    2. Selecciona el comando Cloud Code: Install or Update Mainframe Modernization Tools.
    3. Verifica que el archivo ejecutable ya no falte.
    4. Vuelve a abrir la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
    5. Selecciona el comando Developer: Reload Window.

    Inspecciona el canal de salida

    Para solucionar otros errores que no se mencionan en esta guía, intenta inspeccionar el canal de salida de la extensión. Para abrir el canal de salida, realiza las siguientes tareas:

    1. Abre la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
    2. Selecciona el comando Output: Show Output Channels.
    3. Selecciona el canal de salida Cloud Code Mainframe Modernization.