Skip to content

Modelado de CI con YAML en el sistema de tickets OTOBO

Este capítulo muestra cómo definir y ampliar sus Elementos de Configuración (CI) en el sistema de tickets OTOBO mediante YAML, desde la estructura de páginas y diseño hasta campos dinámicos y tipos de campos.


1. Estructura de las definiciones de CI

Cada definición de CI en OTOBO consta de varios componentes principales:

yaml
- Class:
    Name: <Clase de CI>
    Categories:
      - All
      - <Otras Categorías>
    NumberModule: AutoIncrement
    PermissionGroup: itsm-configitem
    VersionStringModule: Incremental
  Definition: |
    Pages:
      - Name: Summary
        Layout:
          Columns: 3
          ColumnWidth: 1fr 1fr 1fr
        Interfaces:
          - Agent
          - Customer
        Content:
          - Section: General Fields::General Information
            RowStart: 1
            ColumnStart: 1
          - Section: ITSM Model::Model
            RowStart: 1
            ColumnStart: 2
          - Section: CMDB Description::Description
            RowStart: 2
            ColumnStart: 1
            ColumnSpan: 2
  DynamicFields: {  }

1.1 Páginas

  • Name: Nombre de la pestaña en la vista detallada del agente.
  • Interfaces: Controla quién ve la pestaña (Agente, Cliente, …).
  • Content: Lista de secciones, con posición (RowStart, ColumnStart, si es necesario, Span).

1.2 Diseño

  • Columns: Número de columnas en la pestaña.
  • ColumnWidth: Especificaciones de ancho proporcional (por ejemplo, 1fr 2fr 1fr).

1.3 Roles

Los roles definen secciones y listas de campos reutilizables:

yaml
- Definition: |
    Sections:
      General Information:
        Content:
          - Header: Información general
          - DF: System-Name
          - DF: System-Version
      Relations:
        Type: ConfigItemLinks
        Header: Relaciones
  RoleName: CMDB General Fields
  • RoleName: Nombre único del rol.
  • Sections: Contiene una o más secciones con referencias a campos (DF:).

2. Campos Dinámicos (DynamicFields) y Tipos de Campos

Con DynamicFields, puede ampliar sus clases de CI con atributos individuales. Cada campo recibe un nombre, tipo y configuración:

yaml
DynamicFields:
  DynamicFieldName:
    FieldType: Text
    Label: Mi Etiqueta
    Name: System-Name
    ObjectType: ITSMConfigItem
    Config:
      DefaultValue: 'demo'
      MultiValue: '0'
      PossibleNone: '1'
      Tooltip: ''
  
  System-LifecycleStatus:
    FieldType: Dropdown
    Label: Estado del ciclo de vida del sistema
    Name: System-LifecycleStatus
    ObjectType: ITSMConfigItem
    Config:
      DefaultValue: ''
      MultiValue: '0'
      PossibleNone: '1'
      PossibleValues:
        demo: demo
        productive: productive
      Tooltip: ''

2.1 Tipos de Campos Importantes

FieldTypeDescripción
TextCampo simple de una línea
TextAreaCampo de texto libre multilínea
DateCampo de fecha (con restricciones a través de YearsInPast/...)
DropdownCampo de selección (Single/Multi a través de MultiValue)
AgentBúsqueda de usuario/agente LDAP
ConfigItemEnlace a otro CI (tipo de relación definible)
ScriptTemplateToolkitCampo calculado mediante plantilla (por ejemplo, sumas)

2.2 Opciones de Configuración

  • DefaultValue: Valor predeterminado al crear uno nuevo.
  • MultiValue: '0' (selección única) o '1' (múltiple).
  • PossibleNone: '1' para permitir la selección vacía.
  • PossibleValues: Pares clave-valor para campos desplegables.
  • EditFieldMode: por ejemplo, Dropdown, AutoComplete.
  • ReferenceFilterList, ReferencedObjectType: para campos de búsqueda.

3. Ejemplo

yaml
- Class:
    Name: CIName
    Categories:
      - All
      - IT
    NumberModule: AutoIncrement
    PermissionGroup: itsm-configitem
    VersionStringModule: Incremental
  Definition: |
    Pages:
      - Name: Intro
        Layout:
          Columns: 2
          ColumnWidth: 1fr 1fr
        Interfaces:
          - Agent
        Content:
          - Section: CMDB General Fields::Information
            RowStart: 1
            ColumnStart: 1
          - Section: CMDB General Fields::Risks
            RowStart: 2
            ColumnStart: 1
      - Name: Details
        Layout:
          Columns: 1
          ColumnWidth: 1fr
        Interfaces:
          - Agent
        Content:
          - Section: CMDB General Fields::Software
            RowStart: 1
            ColumnStart: 1
  DynamicFields:
    System-Name: {  }
    System-Version: {  }
    System-LifecycleStatus: {  }

4. Consejos y Buenas Prácticas

  • Modularidad: Utilice roles para secciones recurrentes.
  • Claridad: Agrupe campos relacionados en páginas propias.
  • Documentación: Comente sus archivos YAML y mantenga activados los desencadenadores de versión.
  • Pruebas: Valide los nuevos campos primero en una instancia de prueba.

Con esta estructura, puede adaptar la CMDB de OTOBO de forma flexible a los requisitos de su organización y mantenerla siempre transparente.