Рейтинг:0

Перенос узлов с абзацем из json

флаг ru

Моя цель — импортировать json-файл в Drupal 8 с помощью модулей Migrate (migrate_plus, migrate_tools). Я использую модуль абзаца с такими полями, как имя (ссылка на объект) и состав (номер с плавающей запятой). И в узле у меня есть заголовок и другие поля с полем ссылки на абзац. Я импортирую, иногда узел будет сгенерирован с пустым именем абзаца. Если я сброшу миграцию и попытаюсь импортировать снова, журналы базы данных выдают следующую ошибку

Ошибка: неподдерживаемые типы операндов в Drupal\migrate\Plugin\migrate\process\SubProcess->transform() (строка 204 C:\xampp\htdocs\drupal-migration\core\modules\migrate\src\Plugin\migrate\process \SubProcess.php) #0 C:\xampp\htdocs\drupal-migration\core\modules\migrate\src\MigrateExecutable.php(394): Drupal\migrate\Plugin\migrate\process\SubProcess->transform(Array, Объект(Drupal\migrate_tools\MigrateBatchExecutable), Объект(Drupal\migrate\Row), 'field_ingredien...')

но я не могу понять, почему импорт не работает. Я потратил много времени на отладку.

А также узел не создается, если ic_ref значение пусто,

{
        "lcia_id": 3,
        "name": "Сублимированная черника",
        "нетто_вес": 1,
        "страна": "Великобритания",
        "ic_ref": ""
      }

Конфигурация миграции для компонентов (config/install/migrate_plus.migration.icm_config_group_json_source_node)

  item_selector: /данные/ингредиенты/
  поля:
    -
      имя: src_lcia_id
      этикетка: «Идентификатор LCIA»
      селектор: lcia_id
    -
      имя: src_name
      этикетка: «Название ингредиента»
      селектор: имя
    -
      имя: src_ic_ref
      label: 'ID параграфа IC'
      селектор: ic_ref
  идентификаторы:
    src_lcia_id:
      тип: целое число
процесс:
  заглавие:
    плагин: concat
    источник:
      - имя_источника
      - константы/TITLE_SUFFIX
  псевдо_mbe_ic_paragraph:
    плагин: migration_lookup
    миграция: icm_config_group_json_source_paragraph
    источник: src_ic_ref
  field_ingredient_composition:
    плагин: sub_process
    источник:
      - '@pseudo_mbe_ic_paragraph'
    процесс:
      target_id: '0'
      target_revision_id: '1'
пункт назначения:
  плагин: 'сущность: узел'
  default_bundle: ингредиент
миграция_зависимости:
  обязательный:
    - icm_config_group_json_source_paragraph
  по желанию: {  }

Конфигурация миграции для ингредиентов (config/install/migrate_plus.migration.icm_config_group_json_source_paragraph)

источник:
  item_selector: /данные/состав
  поля:
    -
      имя: src_lcia_id
      этикетка: «Идентификатор LCIA»
      селектор: lcia_id
    -
      имя: src_name
      этикетка: «Название ингредиента»
      селектор: имя
    -
      имя: src_composition
      этикетка: «Состав ингредиентов»
      селектор: композиция
  идентификаторы:
    src_lcia_id:
      тип: строка
процесс:
  field_ingredient_name: src_name
  field_ingredient_composition: src_composition
пункт назначения:
  плагин: 'entity_reference_revisions:paragraph'
  default_bundle: ингредиент_состав
миграция_зависимости: ноль

JSON-данные

  "данные": {
    "ингредиенты": [
      {
        "lcia_id": 1,
        "name": "Овсяные хлопья (обычные)",
        "нетто_вес": 1,
        "country": "Соединенное Королевство, Ирландия",
        "ic_ref": 1
      },
      {
        "lcia_id": 2,
        "name": "Ароматизированный сахар",
        "нетто_вес": 1,
        "страна": "Великобритания",
        "ic_ref": 2
      },
      {
        "lcia_id": 3,
        "name": "Сублимированная черника",
        "нетто_вес": 1,
        "страна": "Великобритания",
        "ic_ref": ""
      }
    ],
    "сочинение": [
      {
        "lcia_id": 1,
        "имя": "Сахар",
        "состав": 0,9398839137645107
      },
      {
        "lcia_id": 2,
        "имя": "Дрожжи",
        "состав": 0,04975124378109454
      }
    ]
  }
}```


Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.