Create Bundle & Start the Associated workflow Through Event System
Updated: Aug 27, 2019
Hi All, Today I’m going to share how to create a bundle, add items and start the workflow automatically on page creation. From my experience, most of the customer prefers this feature.
We will do it through the event system. But before that, we need to do some preparation for that.
To achieve this I have used one Editorial schema and one Embedded Schema which will contain the mapping between structure group ids and bundle schema id. You can consider this mapping through the app.config file as well. But I prefer to handle it through component to avoid code deployment in case of any changes we need to do on the mapping configuration in the future.
Here are the schema details –
Embedded Schema:NameStructure Group Bundle Schema MappingSchema TypeEmbedded Schema
XML NameDescriptionTypeMandatorystructureGroupIdsStructure Group Id (Separated by “,”)TextTruebundleSchemaIdBundle Schema IdTextTrue
Editorial Schema:NameBundle ConfigurationSchema TypeSchema
XML NameDescriptionTypeMandatoryAllow MultiplefolderIdFolder Id (Bundle will be created under this folder id)TextTrueFalsestructureGroupBundleSchemaMappingA mapping between Structure Group And Bundle SchemaEmbedded
(Structure Group Bundle Schema Mapping)TrueTrue
Bundle Schema:NameBundle Schema For Task ProcessSchema TypeBundle SchemaAssociated Bundle ProcessTask Process
Once schemas are ready, you need to create that mapping component. Here is a sample one for reference –
Event system code will read the content of this component and create a list of Mapping.
If repository id of the newly created page belongs to any of the structure group id lists, then it will create a bundle based on the corresponding bundle schema into the provided folder id.
Add that page along with components associated with this page into that bundle.
Start the Associated Bundle Process
Here is the Class Library project.
Added only tcmid of the configuration component in the app.config file.
Below method helps to read the configuration component and assign those values into the model –
Now based on this data it will determine the bundle schema.
Using that schema the code will create a Bundle, add pages and components into it (You can make it as configurable through the app.config file) and start the bundle process –
I have already uploaded the source code into GitHub. Check this link to download the source code.
Here is the Deployment Procedure:
Build the project.
Deploy the dll and config file under the <Tridion-Home>\bin folder.
Add the entry of the dll into the ContentManager.config file and restart the Tridion services.
That’s all. Hope you like it.