2

There is a design change request for our website. Hence we require data as to how many components will be affected with the change in an existing schema or how many total pages were using a component CT.

Is there any way with which I can export all data related to a number of schema and CTs and corresponding components and pages using those in excel sheet?

3

There is a Alchemy plugin on the store https://www.alchemywebstore.com/plugins/Document-Creator

It generates .docx file. Supported items: schema, pt, ct, tbb

2

You may want to take a look at Mark Richardson's sdl-tridion-core-service-samples library here: https://bitbucket.org/spiderbike/sdl-tridion-core-service-samples/src/master/

In particular, he has a Count components per schema.linq script that reports on how many Components are based on each Schema in the system: https://bitbucket.org/spiderbike/sdl-tridion-core-service-samples/src/master/Examples/Components/Count%20components%20per%20schema.linq

In the script, he uses a RepositoryItemsFilterData filter to get all of the Schemas in a given Publication, and then a UsingItemsFilterData filter to get all of the Components that are using each Schema.

That library, along with the Core Service Recipes in the Tridion Cookbook, should give you a good start: https://github.com/TridionPractice/tridion-practice/wiki/CookbookDocumentation#core-service-recipies

2

You can also do this quite easily in PowerShell, using the Tridion PowerShell Modules.

Following is a small script to return all of the Components currently using a given Schema:

[CmdletBinding()]
Param
(
    [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
    [ValidateNotNullOrEmpty()]
    [string] $SchemaId
)

$client = Get-TridionCoreServiceClient;
$filter = New-Object Tridion.ContentManager.CoreService.Client.UsingItemsFilterData;
$filter.ItemTypes = 'Component';
$filter.IncludedVersions = 'OnlyLatestVersions';

$items = $client.GetList($SchemaId, $filter);
Write-Output $items;

If you save that as WhereUsed.ps1, you can call it like so:

.\WhereUsed.ps1 tcm:13-954-8

It returns the objects, so you can easily pipe that into other cmdlets.

For instance, if you only want the ID and Title of all of the Components, you do this:

.\WhereUsed.ps1 tcm:13-954-8 | Select Id,Title

And finally, if you want to view that in Excel or another text editor, you could export it to CSV like this:

.\WhereUsed.ps1 tcm:13-954-8 | Select Id,Title | Export-Csv -NoTypeInformation -Path 'ComponentsUsingSchema.csv'

Isn't PowerShell great? :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.