4

Am I missing it or is there nothing in the API to allow us to access the Workflow (and Translation) settings tab in a Publication through the Core Service?

I basically want to set the Enable Workflow Process Associations in Shared Schemas and Structure Groups on the Workflow Tab to checked.

4

Translation settings tab is most likely app data, workflow might be the same. So to change these settings you'd have to change the app data on that Publication, but you'd have to figure out what format it is exactly in (it is XML, but what elements etc.) and under which application ID it sits.

See App data tm:Rights (as an example)

  • I'd figured as much Bart - meaning not really supported to mess with the XML. I've reached out to support to with our suggestion to see what they come back with. Thanks again. I'll confirm they are App Data and mark as the answer when/if that's the case. – Dylan .. Mark Saunders Feb 3 '16 at 12:28
  • App data with the application ID tm:Rights :( – Dylan .. Mark Saunders Feb 3 '16 at 12:31
3

As far as workflow inheritance, that's a property on the Publication object. you can translate my PowerShell to something meaningful to you... :)

$tridionPub = Get-TridionPublication -Name $PublicationName -AllPublications $AllPublications
#$Inherit is param, either $true or $false
$tridionPub.ShareProcessAssociations = $Inherit
Update-TridionItem -Item $tridionPub
  • Interesting - I can set it in the scope of writing the value out but I can't find any way to save / commit the change back into the CM. – Dylan .. Mark Saunders Feb 3 '16 at 23:25
  • core service has Update method. for me, it's like this: $client = Get-TridionCoreServiceClient $client.Update($Item, (New-Object Tridion.ContentManager.CoreService.Client.ReadOptions)) – Warner Soditus Feb 4 '16 at 17:17
2

Using LinqPad and CoreService we can easily access the ShareProcessAssociations value thus:

var allPubs = Tridion.Publications;

foreach (var pub in allPubs)
{
    var pubData = (PublicationData) Tridion.Read(pub.Id, new ReadOptions());
    string pubName = pub.Title + " [" + pub.Id + "]";
    string wflow = "WFLOW = N";

    if(pubData.ShareProcessAssociations == true){
        wflow = "WFLOW = Y";
    }
    Console.WriteLine(wflow + "\t" + pubName);
}

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.