Как да експортирате AEM тагове в Excel

Вчера трябваше да експортирам всички AEM тагове в Excel файл. Докато сърфирах в търсене на най-доброто решение за това, разбрах, че почти всички съветват да напишете персонализиран код, който взема всички тагове и ги въвежда във файла Excel.

Смятам това решение за добро, но тъй като има много хора, които правят такива неща за първи път и вероятно ще им отнеме известно време, за да разберат как да го направят.

За тях нека споделим някои решения на този проблем.


person Tadija Malić    schedule 05.04.2019    source източник


Отговори (4)


За да получите списък с етикети, разделени със запетая, бих препоръчал да използвате командния ред, вградената Конструктор на AEM заявки, curl и jq (https://stedolan.github.io/jq/).

Общият подход:

  1. Използвайте конструктора на заявки, за да създадете JSON представяне на /etc/tags
  2. Използвайте curl, за да "изтеглите" JSON
  3. Използвайте jq, за да „анализирате“ JSON и да създадете CSV

Пример:

Експортирането на всички тагове под /etc/tags с техния път, заглавие и описание ще изглежда така:

curl \
    --user admin:admin \
    --silent \
    "http://localhost:4502/bin/querybuilder.json?p.hits=selective&p.limit=-1&p.properties=jcr%3atitle%20jcr%3apath%20jcr%3adescription&path=%2fetc%2ftags&type=cq%3aTag" \
    | jq --raw-output '.hits[] | [."jcr:path", ."jcr:title", ."jcr:description"] | @csv' \
    > tags.csv

Това ще изпрати GET заявка до вашия локален екземпляр на AEM (http://localhost:4502), ще се удостовери като потребител admin с парола admin (настройки по подразбиране за AEM), ще използва API за създаване на заявки (/bin/querybuilder.json), за да получите всички ресурси с тип cq:Tag под /etc/tags и от тези ресурси това би "избрало" свойствата jcr:path, jcr:title и jcr:description.

Полученият JSON изглежда така:

{
  "success": true,
  "results": 2,
  "total": 2,
  "more": false,
  "offset": 0,
  "hits": [
    {
      "jcr:path": "/etc/tags/experience-fragments",
      "jcr:description": "Tag structured used by the Experience Fragments feature",
      "jcr:title": "Experience Fragments"
    },
    {
      "jcr:path": "/etc/tags/experience-fragments/variation",
      "jcr:description": "A tag used by the experience fragments variations",
      "jcr:title": "Variation"
    },
  ]
}

След това командата по-горе ще прехвърли получения JSON от конструктора на заявки към jq, който ще използва „заявката“ .hits[] | [."jcr:path", ."jcr:title", ."jcr:description"], за да прочете само масива hits и на всеки елемент в този масив само jcr:path, jcr:title и jcr:description. След това получените масиви се използват като вход за @csv "форматиращ низ" на jq, който ще създаде правилен изход, разделен със запетая.

JSON от по-горе ще бъде форматиран, за да:

"/etc/tags/experience-fragments","Experience Fragments","Tag structured used by the Experience Fragments feature"
"/etc/tags/experience-fragments/variation","Variation","A tag used by the experience fragments variations"

Последната част от командата > tags.csv просто ще пренасочи изхода към файл, наречен tags.csv, вместо към командния ред.

AEM има дебъгер за създаване на заявки, който можете да използвате за създаване на заявки, които след това можете да използвате в командата на командния ред:

http://localhost:4502/libs/cq/search/content/querydebug.html

Параметрите на заявката, които използвах по-горе, ще изглеждат така в инструмента:

path=/etc/tags
type=cq:Tag
p.hits=selective
p.limit=-1
p.properties=jcr:title jcr:path jcr:description

Можете да добавяте свойства, както желаете, но за да се показват в CSV файла, трябва също да актуализирате заявката, използвана от jq.

Ако добавите преводи към маркерите си, те ще бъдат съхранени в свойство, наречено jcr:title.<language-code>. Ако преведете етикетите си на немски например, ще имате две свойства: jcr:title и jcr:title.de. Ако искате превода, трябва да разширите p.properties и да добавите jcr:title.de и т.н.

person Jens    schedule 05.04.2019
comment
Много добре! Не знаех за тази опция и мисля, че отговаря на този въпрос дори по-добре от моя отговор. - person Tadija Malić; 05.04.2019
comment
Има ли опция да получите колко пъти е рефериран всеки таг по този начин? - person Tadija Malić; 07.04.2019

Ако трябва да експортирате етикети, ето просто решение как лесно да ги експортирате и след това има няколко начина как да ги импортирате в Excel, без да е необходимо да пишете персонализиран код за това.

За да експортирате AEM тагове, направете следните 5 стъпки:

  1. Отворете мениджър на пакети
  2. Създаване на пакет (дайте му някакво смислено име)
  3. Edit created package
  4. Готово, Запазете
  5. Пакет Build
  6. Изтегляне на пакет

Тогава имате всички тагове вътре в {download_package_name}/jcr_root/etc/tags.

Сега има няколко начина за получаване на изтеглени етикети във файл на Excel. Ето как да направите това в Windows -

Източник: Има ли начин да експортирате структура на папка в excel?

Намерете папката в Windows Explorer, след това с Shift щракнете с десния бутон върху тази папка и изберете „Отваряне на командния прозорец тук“. Въведете следната подкана:

dir /a /s /b > filelist.txt

Това ви дава текстов файл, записан в горната ви папка, който можете да отворите в бележник, след което да копирате и поставите в документ на Excel.

person Tadija Malić    schedule 05.04.2019

В AEM има GUI за експортиране на съдържание като excel [е почти]. За да получите tsv файл с етикети в системата може да се използва груповият редактор на AEM. Отидете до '/etc/importers/bulkeditor.html' на сървъра. Задайте пътя като '/etc/tags' или поддърво. В полето за заявка въведете „type:Tag“. Изберете свойствата, които трябва да бъдат експортирани, и натиснете търсене. След това резултатите могат да бъдат експортирани в tsv файл чрез бутона за експортиране.

въведете описание на изображението тук

Препратки

person Sharath Madappa    schedule 05.04.2019
comment
Има ли начин да получите колко пъти всеки таг е рефериран по този начин? - person Tadija Malić; 07.04.2019
comment
опитайте localhost:4502/etc/tags/. Тази крайна точка ще даде броя. - person Sharath Madappa; 07.04.2019

Нямам привилегиите да коментирам приетия отговор, но реших, че би било полезно да добавя към отличния приет отговор: Ако сте на >= 6.4, тогава може да се наложи да промените пътя в заявката си до /content/ cq:tags (1) или потърсете и двата пътя, ако вашата инсталация е била надстроена с течение на времето и имате дълготрайни тагове. Получавах 0 посещения, въпреки че можех да видя няколкостотин, когато преглеждах http://localhost:4502/tagging

(1) https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/tagging-issue-in-aem-6-4/qaq-p/320994

Да се ​​​​надяваме, че този липса на отговор не се посреща прекалено с неодобрение.

person James G    schedule 17.06.2020