web-dev-qa-db-ja.com

テキストフィールドからの移行時にskip_on_emptyが機能しないのはなぜですか?

Drupal 7人のユーザーをDrupal 8.に移行しようとしています。Drupal 7には、ユーザーのグループです。Drupal 8では、分類法の語彙です。したがって、次のパイプラインを使用しています。

  field_user_group:
    -
      plugin: skip_on_empty
      method: process
      source: field_directorate
    -      
      plugin: extract
      index:
        - 0
        - value
    -
      plugin: entity_generate
      value_key: name
      bundle_key: vid
      bundle: groups
      entity_type: taxonomy_term
      ignore_case: true

field_directorateはD7のソースフィールドであり、field_user_groupはD8のターゲットです。

その値が設定されていないレコードはskip_on_emptyプラグイン、空白のままにしましたが、extractプラグインから次のエラーが発生しているため、そのプラグインは失敗しているようです(プロセスをパイプラインの次のプラグインに続行させます)。

配列のインデックスがありません、抽出に失敗しました。

ドキュメント によれば、

Skip_on_emptyプロセスプラグインは、現在の入力値が空(空の文字列、NULL、FALSE、0、 '0'、または空の配列かどうかを確認します)。その場合、選択したメソッドに応じて、プロパティまたは行全体の以降の処理はスキップされ、移行されません。

extractに到達するまでの処理はどうですかskip_on_empty空の配列で値をスキップすることになっていますか?

値が設定されたレコードでは正常に機能します。

1
colan

これは Getプロセスプラグインが空の配列に複数を設定 が原因であると考えています。

1
colan