2016-07-15 84 views
0

我們有很多內容需要在AEM中導入。 什麼是導入它的最佳方式?是否有可能從excel文件導入?將內容導入AEM

check this example

一個很好的例子,對出口是這裏/etc/importers/bulkeditor.html我們可以將文件導出單「屬性/列」在那裏我可以定義根路徑和屬性。

我試過這個包,但dos不包含我喜歡的東西。 https://helpx.adobe.com/experience-manager/using/creating-custom-excel-service-experience.html

+0

內容來自哪裏?另一個AEM/CQ實例?或者一些第三方的東西.​​.? –

+0

實際上,我需要在一個頁面的屬性中添加相同的平臺。 – Skifteri

回答

0

http://localhost:4502/etc/importers/bulkeditor.html

documentation

我只是做了上面的鏈接上的說明測試和它的工作。

我的測試:

根路徑= /內容/ MyApp的路徑/ rootpage

查詢參數= 「JCR:標題」:網頁標題,我如何在搜索中包括

內容模式=選中

屬性/ Columnos = 吊帶:和resourceType爲JCR :標題

Custom properties/Columns = landingTags

Clicked Search ... and worked。

+0

Thanx回答。 是的,這工作也適合我!但我正在檢查一些反作用的事情。 所以我有文件,需要上傳它,並填寫財產!爲此,我正在尋找。 非常感謝 – Skifteri

0

將數據導入AEM可以通過很多方式完成。

什麼是您的「正確」方式,取決於您的具體要求。

  • 這是一次性導入還是您打算編寫一個 可重複使用的導入工具?
  • 是由程序員或管理員完成的,還是由編輯完成的?
  • 你需要容錯還是回滾?您是否在 上使用有效的實例?
  • ...

這裏有幾個或多或少常見的方式(廉價/快下令廣泛/舒適)鏈接到文件或實例一起:

  1. 寫(1)
  2. 上傳DAM中的數據,使用工作流啓動器(4)寫入EventHandler(2),(7)或工作流(3)並解析數據,之後更改存儲庫。
  3. 使用文件上傳部分(5)將數據分散到單獨的文件中,解析數據並更改存儲庫。

對於解析excel數據,我建議你使用apache poi(6),它已經包含在AEM中。但使用csv,json或xml等格式可能會爲您節省大量的分析工作。

(1):http://www.aemcq5tutorials.com/tutorials/adobe-cq5-aem-curl-commands/

(2):https://osgi.org/javadoc/r4v42/index.html?org/osgi/service/event/EventHandler.html

(3):https://docs.adobe.com/docs/en/aem/6-1/develop/extending/workflows/wf-extending.html

(4):https://docs.adobe.com/docs/en/aem/6-1/administer/operations/workflows/wf-start.html

(5):https://helpx.adobe.com/experience-manager/using/uploading-files-aem1.html

( 6):https://poi.apache.org/spreadsheet/index.html

(7):代碼示例

@Service 
@Component(immediate = true, policy = ConfigurationPolicy.OPTIONAL, description = "Listen to page modification events and track them.") 
@Properties(value = { @Property(name = "event.topics", value = { PageEvent.EVENT_TOPIC, DamEvent.EVENT_TOPIC}, propertyPrivate = true), 
         @Property(name = JobConsumer.PROPERTY_TOPICS, value = ModificationEventHandler.JOB_TOPICS, propertyPrivate = true) }) 
public class ModificationEventHandler implements EventHandler, JobConsumer { 
@Override public void handleEvent(Event event) { 
    logger.trace("Checking event."); 
    PageEvent pageEvent = PageEvent.fromEvent(event); 
    DamEvent damEvent = DamEvent.fromEvent(event); 
    Map<String, Object> properties = new HashMap<>(); 
    if (damEvent != null) { 
     // DamEvent is not serializable, so we cannot add the complete event to the map. 
     logger.trace("Event on {} is a dam event ({}).", damEvent.getAssetPath(), damEvent.getType().name()); 
     properties.put(DAM_EVENT_ASSET_PATH, damEvent.getAssetPath()); 
    } 
    if (pageEvent != null) { 
     logger.trace("Event is a page event."); 
     properties.put(PAGE_EVENT, pageEvent); 
    } 
    logger.trace("Adding new job."); 
    jobManager.addJob(JOB_TOPICS, properties); 
} 
0

的內容可以經由SlingPostServlet被導入與:operation=importhttps://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html#importing-content-structures。這是改編自第一個例子:

curl -u admin:admin http://localhost:4502/content/mysite/mypage \ 
    -F":operation=import" \ 
    -F":contentType=json" 
    -F":name=sample" \  
    -F":content={ 'jcr:primaryType': 'nt:unstructured', 'propOne' : 'propOneValue', 'childOne' : { 'childPropOne' : true } }" 

另一位作者友好的選項包含在ACS AEM ToolsCSV Asset Importer。您可以將Excel文件保存爲CSV,因此這應該是最簡單的選擇。