web-dev-qa-db-ja.com

フィールドをインポートしないフィードインポートをデバッグする方法

Drupal Commerce(csvから)に商品をインポートするように設定されたフィードインポートがあります。私の商品タイプには、インポートによって値を割り当てる必要があるいくつかの用語参照フィールドがあります。ほとんどのこれらは正常に機能します(例:field_product_unit、field_product_discount_category)、ただし1つを除く:field_product_group。用語名で分類用語を検索しています。

以前は製品グループのインポートが機能していたが、何らかの理由で機能しなくなった。単一の値はインポートされません。それがいつ私にやってくるのか正確には特定できません。機能するフィールドと機能しないフィールドの間に明らかな違いはありません。唯一のわずかな違いは、製品グループが階層的であり、他の分類リストは階層を使用しないことです。

エラーメッセージや「この用語が見つかりません」という通知が表示されません。

私は以下を試しました:

  • csv値に一致する用語の名前をチェックおよびダブルチェックしました。
  • 分類用語名をテキストフィールドにインポートする(入力フィールドが見つかるようにするため):正常に機能します。
  • 私の分類法リストはすべて多言語の名前と説明を使用しています。そこで混乱を避けるために、1つの言語にリセットしました。違いはありません。

どうすれば今すぐ続行できますか?何がうまくいかないのか、どうしたら分かりますか?

最初のステップとして、フィールドが適切に解析されたかどうかを確認できます。

Sites/all/modules/feeds/plugins/FeedsProcessor.inc:

180行目にdebug($item)を追加します。

  public function process(FeedsSource $source, FeedsParserResult $parser_result) {
    $state = $source->state(FEEDS_PROCESS);

    while ($item = $parser_result->shiftItem()) {
       debug($item); // debug entry

      // Check if this item already exists.
      $entity_id = $this->existingEntityId($source, $parser_result);
     ...

debug()は、デバッグ情報を出力できるコア関数です。

https://api.drupal.org/api/drupal/includes!common.inc/function/debug/7 および/または

http://blog.boombatower.com/drupal-7-debug-and-simpletest-verbose?utm_source=buffer&utm_campaign=Buffer&utm_content=buffer5ee6f&utm_medium=Twitter

結果はdrupal_set_message()を使用して処理され、 http://example.com/admin/reports/dblog に表示されます(おそらく構成によって異なります)。

次のように、インポートされた行ごとに1つの通知が表示されます。

User notice:

array (
  'title' => 'This is a test title',
  'body' => 'And a test body',
  'tax' => 'And a taxonomy term',
  '' => '',
)

代替:ダウンロード( http://drupal.org/project/devel 、またはdrush dl develから)および開発モジュール(admin/modulesの開発)を有効にする、またはdrush en develを使用してdrupal_debug()を使用するか、またはdevelモジュールの別のツール。

4
Ursula

製品が複数のグループでタグ付けされている場合、フィールドは配列になるため、単一の用語として処理されませんか?私はこの問題に最近遭遇し、フィード改ざんモジュールで解決しました。

ビューからノードをCSVファイルとしてエクスポートする際に、「Taxonomy all terms」フィールドを選択し、語彙を選択しました。デフォルトでは、ビューはこのフィールドの複数のタグをコンマで区切りますが、区切り文字を変更できます-パイプが好きなので使用しました。

次に、フィードのインポート設定で改ざんタブにアクセスし、そのフィールドで[分解]を選択します。改ざんすると、選択した区切り文字(この場合はパイプ)の入力を求められます。

これが役に立てば幸い: https://drupal.org/project/feeds_tamper

0
CarlosM