Configuración de Procesamiento Personalizado

La Configuración de Procesamiento Personalizado es una configuración dinámica extensible que proporciona la capacidad de configurar custom Configuraciones con tipos de datos flexibles a nivel de entidad de procesamiento. A diferencia de las categorías de configuración predefinidas, las Configuraciones de Procesamiento Personalizadas permiten a las implementaciones definir sus propias claves de configuración con valores asociados de varios tipos, proporcionando la máxima flexibilidad para los requisitos específicos del cliente.

IPF Coreadmite los siguientes tipos de valores de configuración para Configuraciones de Procesamiento Personalizado:

  • Configuración Booleana — Valor de configuración que representa indicadores o conmutadores de verdadero/falso.

  • Configuración de cadenas — Valores de configuración que almacenan valores de cadena.

  • Configuración de Números — Valores de configuración que almacenan datos numéricos.

  • Configuración de Arreglos de Cadenas — Valores de configuración que almacenan múltiples valores de texto como un arreglo.

  • Configuración de Arreglos Numéricos — Valores de configuración que almacenan múltiples valores numéricos como un arreglo.

Los ajustes de procesamiento personalizados proporcionan una estructura flexible de clave-valor donde las implementaciones del cliente pueden definir sus propias custom configurando claves y valores asociados de acuerdo con sus requisitos específicos sin requerir cambios en el modelo de dominio central.

Configuración de Procesamiento Personalizado

Propiedades de Configuración Dinámica

Nombre Descripción

settingName

Nombre de la propiedad de configuración. Combinado con un processingEntity de DPS La estructura de configuración representa un identificador único para la configuración.

settingCategory

Campo de discriminación desde el lado de uso/negocio

settingFormat

Campo discriminador que identifica el tipo del valor de configuración.

Valores posibles: BOOLEAN CADENA NÚMERO STRING_ARRAY NUMBER_ARRAY

valor De Configuración

El objeto anidado de un tipo que depende de la propiedad settingFormat. Tiene una propiedad value que contiene el valor de configuración real.

Tipos posibles: BooleanSettingValue StringSettingValue Número Configuración Valor StringArraySettingValue NumberArraySettingValue

Tipo de configuración

DPSv2 introdujo un nuevo atributo de Tipo de Configuración. Este se utiliza para la generación de todos API puntos finales para una configuración particular. También se utiliza en la construcción index-config.<tipo de configuración>. SETTING_TYPE = "customprocessingsettings"

Campos buscables

Los campos buscables para la Configuración de Procesamiento Personalizado son:

  • estado

  • processingEntity

  • settingName

  • categoría De Configuración

Índices

DPSv2 proporciona una opción para configurar índices para cada ajuste. Los índices predeterminados para la Configuración de Procesamiento Personalizado son:

ipf.dps.mongodb.index-config.customprocessingsettings {
    index-1 = ["status:ASC"]
    index-2 = ["processingEntity:ASC"]
    index-3 = ["payload.settingName:ASC"]
    index-4 = ["payload.settingCategory:ASC"]
}

Esto puede ser anulado o actualizado. Simplemente tenga en cuenta que cuando el campo está bajo carga, debe proporcionar un índice como:`index-x = ["values.payload.fieldX:ASC"]`.

Campo processingEntity se añade a la búsqueda de configuración, por lo que para un mejor rendimiento se recomienda que se cree un índice para processingEntity se crea.

Notifications

La configuración de procesamiento personalizado anula la predeterminada. DPS mecanismo de notificación v2 con un custom Kafka-implementación basada. En lugar de utilizar el estándar DpsCrudNotification tipo, CPS implementa CpsNotificationServiceKafkaAdapter que envía CpsCrudNotification mensajes a través de Kafka.

Implementación de Notificaciones Personalizadas

El CpsNotificationServiceKafkaAdapter implementa DpsNotificationServicePort y proporciona:

  • Modelo de notificación personalizada: Utiliza CpsCrudNotification en lugar del estándar DpsCrudNotification

  • Kafka-entrega basada: Notifications se envían a través de Kafka temas utilizando SendConnector

  • Notificación selectiva: Solo envía notificaciones para acciones CREADAS, ACTUALIZADAS y ELIMINADAS (se omiten las acciones programadas).

  • Estructura de carga aplanada: Extrae y aplana el valor de configuración de la estructura anidada para una mejor utilización.

Estructura de Notificación

El CpsCrudNotification contiene:

Campo Descripción

claveÚnica Lógica

Identificador único que combina el nombre de la entidad de procesamiento y la configuración.

settingType

El tipo de configuración (" customprocessingsettings)

acción

Acción CRUD realizada: CREADA, ACTUALIZADA o ELIMINADA

processingEntity

El contexto de la entidad de procesamiento

carga útil

Carga útil de notificación aplanada que contiene:

- settingCategory: Categoría de la configuración - settingName: Nombre de la configuración - settingFormat: Tipo de formato (BOOLEANO, CADENA, NÚMERO, ARREGLO_DE_CADENAS, ARREGLO_DE_NÚMEROS) - settingValue: El valor de configuración actual (extraído de la estructura anidada)

Configuración

Notificationspuede ser habilitado/deshabilitado a nivel de configuración. Notifications están habilitados por defecto:

ipf.cps.should-send-notification.custom-processing-settings = true

Cuando está habilitado, el CpsNotificationServiceKafkaAdapter enviaré Kafka mensajes al tema configurado para todas las operaciones de CREACIÓN, ACTUALIZACIÓN y ELIMINACIÓN en Configuraciones de Procesamiento Personalizadas.

Dependencia del Módulo

Para utilizar el Kafka servicio de notificación, incluya la siguiente dependencia:

<dependency>
    <groupId>com.iconsolutions.ipf</groupId>
    <artifactId>cps-dynamic-settings-notification-service-kafka</artifactId>
</dependency>

El módulo proporciona Spring Boot autoconfiguración y anulará automáticamente la configuración predeterminada DPS servicio de notificación cuando esté presente en el classpath.

Historia

Hay una opción para desactivar el historial a nivel de configuración. El historial está habilitado por defecto:

ipf.cps.should-save-history.custom-processing-settings = true

Configuración de Tipos de Valor

Valor de Configuración Booleano

Los valores de configuración booleanos representan una configuración simple de verdadero/falso.

Propiedades

Nombre Descripción

Valor

Valor booleano (verdadero/falso)

Para el tipo BooleanSettingValue,settingFormat la propiedad debe ser establecida a BOOLEAN

Ejemplo

{
  "settingName": "enableFeatureX",
  "settingCategory": "category",
  "settingFormat": "BOOLEAN",
  "settingValue": {
    "value": true
  }
}

Valor de configuración de cadena

Los valores de configuración de cadena almacenan datos de configuración basados en texto.

Propiedades

Nombre Descripción

Valor

Valor de cadena

Para el tipo StringSettingValue,settingFormat la propiedad debe ser establecida en STRING

Ejemplo

{
  "settingName": "notificationEmail",
  "settingCategory": "category",
  "settingFormat": "STRING",
  "settingValue": {
    "value": "admin@example.com"
  }
}

Valor de Configuración de Número

Los valores de configuración de números almacenan datos de configuración numérica (enteros o decimales).

Propiedades

Nombre Descripción

Valor

Valor numérico (entero o decimal)

Para el tipo NumberSettingValue,settingFormat la propiedad debe ser establecida en NUMBER

Ejemplo

{
  "settingName": "maxRetryAttempts",
  "settingCategory": "category",
  "settingFormat": "NUMBER",
  "settingValue": {
    "value": 3
  }
}

Configuración de Valor de Array de Cadenas

El arreglo de cadenas para la configuración de valores almacena múltiples valores de texto como una lista.

Propiedades

Nombre Descripción

Valor

Array de valores de cadena

Para el tipo StringArraySettingValue,settingFormat la propiedad debe ser establecida en STRING_ARRAY

Ejemplo

{
  "settingName": "supportedCountries",
  "settingCategory": "category",
  "settingFormat": "STRING_ARRAY",
  "settingValue": {
    "value": ["US", "GB", "DE", "FR"]
  }
}

Configuración de Valor de Array Numérico

La configuración de la matriz de números almacena múltiples valores numéricos como una lista.

Propiedades

Nombre Descripción

Valor

Array de valores numéricos

Para el tipo StringArraySettingValue,settingFormat la propiedad debe ser establecida en NUMBER_ARRAY

Ejemplo

{
  "settingName": "allowedErrorCodes",
  "settingCategory": "category",
  "settingFormat": "NUMBER_ARRAY",
  "settingValue": {
    "value": [400, 403, 404]
  }
}