преобразование значений между областями данных - PullRequest
0 голосов
/ 09 июля 2019

Мне нужно написать более сотни интеграций между многими системами.Этот уровень интеграции должен быть в состоянии конвертировать коды.Каждая система использует коды для представления типов бизнеса, таких как insurance_type, customer_type и т. Д. Каждый из них имеет набор допустимых значений.Эти значения не одинаковы для разных систем и могут даже меняться со временем.

Я начинаю искать библиотеки отображения предметной области в Java.Я не нашел ничего подходящего.Я думал о: CloverETL, Pentaho ETLou GETL, но все они слишком сложны для моей необходимости или не поддерживать.

Цель состоит в том, чтобы исключить правила преобразования из кода, чтобы они могли развиваться со временем без необходимости в новом исполняемом развертывании.

Я ищу инструмент, библиотеку, которая позволила бы мне отображать сопоставление, похожее на это:

{
  "domains" :[
    {
      "name": "type police host",
      "values": [
        {
          "code" : "0001",
          "description":"Habitation",
          "start_date":"2019-06-30",
          "end_date":""},
        {
          "code" : "0002",
          "description":"Automobile",
          "start_date":"2019-06-30",
          "end_date":""}
        ]
    },
    {
      "name": "type police web",
      "values": [
        {
          "code" : "Habitation",
          "description":"Habitation",
          "start_date":"2019-06-30",
          "end_date":""}
      ]
    }
  ],
  "conversions" : [
    {
    "from": "type police host",
    "to": "type police web",
    "rules" : [
      {
        "from": ["0001"],
        "to" : "Habitation",
        "start_date":"2019-06-30",
        "end_date":""},
      {
        "from": [ "0003","0004"],
        "to" : "Deux roues",
        "start_date":"2019-06-30",
        "end_date":""}
      ]
    }
  ]
}

Из приведенного выше файла конфигурации я мог бы делать что-то вроде convertsAsOf("2019-07-10", "type police host", "type police web", "0001") и будет возвращено "Habitation".Любое предложение библиотеки, которая сделает это?

...