0

To feed the transport package to search engine(FAST) we want to know to which item type transport package belongs to.

Eg. If I publish a Page, how can I identify from the Transport Package that this Transport Package belongs to a Page or a Multimedia Component or a Content Component.

Investigation : After doing some investigation found that when we publish a Page, in Pages.xml we have only one element under element. But when we publish any component we may have more than one element under element. Or sometime we don't have Page.xml itself. But yes from this much info we cannot decide that Transport Package belong to Page or Component.

Daniel Neagu
  • 1,711
  • 11
  • 13
user1453602
  • 1,165
  • 5
  • 14

1 Answers1

3

It's not possible to answer this question, since transport packages can contain multiple items of different types.

However, you could write a custom deployer processor which looks inside the package to see which types of items it contains. You could then choose to call the super method (and let normal processing continue), or implement your own logic, or do both.

The processor can be configured in the cd_deployer_conf.xml. Drop the jar file with your classes in the Tridion\lib folder so the deployer can access it.

Quirijn
  • 3,529
  • 12
  • 28
  • After doing some investigation found that when we publish a Page, in Pages.xml we have only one element under element. But when we publish any component we may have more than one element under element. Or sometime we don't have Page.xml itself. But yes from this much info we cannot decide that Transport Package belong to Page or Component. – user1453602 Nov 15 '12 at 14:23
  • I understand now that what you really want to know is which item was put in the publish queue by the user. That information is indeed lost by the time you get to the transport stage. Besides, I fail to see why this would be relevant to a FAST integration. – Quirijn Nov 15 '12 at 14:25
  • For search implementation we are using content push mechanism of FAST. Whenever any item (page, component) is published from Tridion we are catching the transport package, extracting required information from the transport package such as metadata information, binary files etc and passing it to content push APIs of FAST. Depending on different item types (schemas) we extract different information from package and pass it to FAST content push APIs – user1453602 Nov 15 '12 at 14:48
  • I still don't get why you are interested in knowing which item was put in the queue by the editor. All that matters is which items end up being published. You can find that out by looking at the pages.xml file, as you found out already. Any page that is in there will be deployed to the web site and should be processed by FAST. – Quirijn Nov 15 '12 at 15:39
  • Articles and Events are served on website in format www.abc.com/newsarticle.aspx?component_id=1234&template_id=5678 (when user hit it actual article is shown) To form this url while pushing the content to FAST we must know which item is published from Tridion. eg. If Article with TCM 1234 is published we must be able to push url as www.abc.com/newsarticle.aspx?component_id=1234&template_id=5678. When page is published from Tridion we need not create url in above fashion (we will use url published by Tridion) – user1453602 Nov 16 '12 at 07:33
  • So for each article and event component in the package, you call FAST with the special format, and for each page you call FAST with the url. Still no need to know whether an editor has put a page or a component in the publish queue. – Quirijn Nov 16 '12 at 08:35