<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://uat.community.rws.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>03 - Developer Forum - Recent Threads</title><link>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum</link><description>Ask the community questions about development with Tridion Docs</description><dc:language>en-US</dc:language><generator>Telligent Community 12 Non-Production</generator><lastBuildDate>Thu, 26 Mar 2026 15:26:20 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum" /><item><title>IshRemoteMcpServer with AI Toolkit or Continue extension in VSCode</title><link>https://uat.community.rws.com/thread/60175?ContentTypeID=0</link><pubDate>Fri, 23 Jan 2026 03:02:12 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:a9093948-1ed2-443c-9239-70e54971abde</guid><dc:creator>Colin Ferguson</dc:creator><slash:comments>2</slash:comments><comments>https://uat.community.rws.com/thread/60175?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/60175/ishremotemcpserver-with-ai-toolkit-or-continue-extension-in-vscode/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;My request: Can you figure out how to get IshRemoteMcpServer to work correctly with either the AI Toolkit or Continue extensions in VSCode?&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s the reason: Our corporate policies prevent us from using most external AI models such as github Copilot or Claude. So to test IshRemoteMcpServer with our internal Tridion Docs environments I have to set up a local LLM instance (ollama in my case) and get it running with VSCode. It&amp;rsquo;s very slow and periodically throws errors (because VSCode throws a fit if it can&amp;#39;t&amp;nbsp;see&amp;nbsp;its native Copilot when chatting is occurring even to another LLM) but it (sort of) works&amp;hellip; I can start the MCP server and see the ishremote commands in the Tools menu. The model seems to recognize them but absolutely will NOT actually execute them. For example, I tell it to start an ishremote session and it shows me how to write powershell code to do it.&lt;/p&gt;
&lt;p&gt;So I thought I&amp;#39;d swap in a more powerful AI with better MCP tools handling. I set up an instance of ollama on a server with a decent GPU, and an LLM (llama2 for now) can now be addressed over port 11434 on that server. The problem now is that there is no way to configure a local LLM server in the native VSCode chat via a URL.&lt;/p&gt;
&lt;p&gt;So I tried installing the AI Toolkit extension, which supports local configs like this.&amp;nbsp;Then I configured IshRemoteMcpServer and&amp;nbsp;started the server via the extension interface. The first time, it times out: Unable to connect to MCP Server &amp;#39;IshRemoteMcpServer&amp;#39;. Error: MCP error -32001: Request timed out. Please verify your mcp.json configuration settings. MCP error -32001: Request timed out. The log file ended with:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;{&amp;quot;Level&amp;quot;:&amp;quot;Info&amp;quot;,&amp;quot;Message&amp;quot;:&amp;quot;Starting MCP Server&amp;quot;,&amp;quot;Timestamp&amp;quot;:&amp;quot;2026-01-22T21:36:02.1876440-05:00&amp;quot;}&lt;/p&gt;
&lt;p&gt;The second time, I get Unable to connect to MCP Server &amp;#39;IshRemoteMcpServer&amp;#39;. Error: Server&amp;#39;s protocol version is not supported: 0.3.0. Please verify your mcp.json configuration settings. Server&amp;#39;s protocol version is not supported: 0.3.0. The log file ended with:&lt;/p&gt;
&lt;p&gt;{&amp;quot;Level&amp;quot;:&amp;quot;Info&amp;quot;,&amp;quot;RequestId&amp;quot;:1,&amp;quot;Request&amp;quot;:&amp;quot;{\&amp;quot;method\&amp;quot;:\&amp;quot;initialize\&amp;quot;,\&amp;quot;params\&amp;quot;:{\&amp;quot;protocolVersion\&amp;quot;:\&amp;quot;2025-06-18\&amp;quot;,\&amp;quot;capabilities\&amp;quot;:{},\&amp;quot;clientInfo\&amp;quot;:{\&amp;quot;name\&amp;quot;:\&amp;quot;vsc-aitoolkit-IshRemoteMcpServer\&amp;quot;,\&amp;quot;version\&amp;quot;:\&amp;quot;0.28.2\&amp;quot;}},\&amp;quot;jsonrpc\&amp;quot;:\&amp;quot;2.0\&amp;quot;,\&amp;quot;id\&amp;quot;:1}&amp;quot;,&amp;quot;Message&amp;quot;:&amp;quot;Processing request&amp;quot;,&amp;quot;Timestamp&amp;quot;:&amp;quot;2026-01-22T21:36:02.2585314-05:00&amp;quot;}&lt;/p&gt;
&lt;p&gt;I tried the same exercise with the Continue extension and got exactly the same behavior.&lt;/p&gt;
&lt;p&gt;Log file for the second case attached. The log file for the first case looks exactly the same, except it ends one line earlier.[View:/cfs-file/__key/communityserver-discussions-components-files/215/IshRemoteMcpServer.log:900:600]&lt;/p&gt;</description></item><item><title>RE: IshRemoteMcpServer with AI Toolkit or Continue extension in VSCode</title><link>https://uat.community.rws.com/thread/192431?ContentTypeID=1</link><pubDate>Thu, 26 Mar 2026 15:26:20 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:46acaca5-268c-458b-80eb-0ac265d496f6</guid><dc:creator>Dave De Meyer</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/192431?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/60175/ishremotemcpserver-with-ai-toolkit-or-continue-extension-in-vscode/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;For your information...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ISHRemote v8.2&amp;nbsp;will be released soon announced over a blogpost on the community... besides the above ISHRemoteMcpServer with more progressive disclosure of tools (so less initial token usage), it will also contain support for recently released PowerShell 7.6.&lt;/li&gt;
&lt;li&gt;You need a Prerelease of ISHRemote (8.2.0-preview274 or higher) for PowerShell 7.6 as previous versions of ISHRemote do not work.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: IshRemoteMcpServer with AI Toolkit or Continue extension in VSCode</title><link>https://uat.community.rws.com/thread/190802?ContentTypeID=1</link><pubDate>Mon, 26 Jan 2026 17:19:44 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:d4adbe15-edfe-4a7a-96d3-d063c019ad3a</guid><dc:creator>Dave De Meyer</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/190802?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/60175/ishremotemcpserver-with-ai-toolkit-or-continue-extension-in-vscode/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p style="margin-top:0px;"&gt;&lt;br /&gt;For others watching this thread and think what is &amp;quot;&lt;strong&gt;ISHRemoteMcpServer&lt;/strong&gt;&amp;quot;, Colin had a look at the prerelease.&amp;nbsp;The work in progress is hiding in plain sight:&amp;nbsp;&lt;a id="" href="https://github.com/RWS/ISHRemote/blob/master/Doc/ReleaseNotes-ISHRemote-8.2.md"&gt;https://github.com/RWS/ISHRemote/blob/master/Doc/ReleaseNotes-ISHRemote-8.2.md&lt;/a&gt;&amp;nbsp;holding some animated gifs for inspiration. This is typically the source of the actual RWS Community blog post. But absolutely feel free to have a look already. The main goal for this first version is to have&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;ISHRemoteMcpServer&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;working in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://code.visualstudio.com"&gt;Visual Studio Code&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with standard solutions like&amp;nbsp;Claude, Gemini, OpenAI, Mistral, etc&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now given your question Colin,&amp;nbsp;it seems that your corporate policies put in a lot of&amp;nbsp;limitations for you. As you probably noticed in my description I stepped away from the (less expensive, older) GPT-4.1 to more powerful (more expensive, recent) Claud Sonnet 4.5 because it simply gave me a lot better result. These results for me was its choice on when to execute something, but also its choices in how it approached co-writing a PowerShell script.&amp;nbsp;That virtual assistant behaves differently, some suggests other execute more. That is something that&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;ISHRemoteMcpServer&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;does not really control. So you were right in switching the model &amp;#39;out&amp;#39; or &amp;#39;up&amp;#39;. There is no one-size fits all.&lt;/p&gt;
&lt;p&gt;You mention &amp;quot;&lt;span&gt;llama2&amp;quot;&amp;nbsp;which is quite old, and even your suggestion &amp;quot;Continue&amp;quot; on&amp;nbsp;&lt;a href="https://docs.continue.dev/guides/ollama-guide"&gt;https://docs.continue.dev/guides/ollama-guide&amp;nbsp;&lt;/a&gt;mentions to use&amp;nbsp;Llama 3.1 or Mistral or higher with MCP Tools. Can you try other more recent ones?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regarding the MCP Protocol Version &amp;quot;0.3.0&amp;quot;. I&amp;#39;ve updated the latest PowerShellGallery-hosted Prerelease (8.2.0-preview259), so you can update and try again. Hopefully the below story unblocks your efforts, and do not hesitate to write down some tips and tricks for people that have similar corporate policies.&amp;nbsp;&lt;/span&gt;&lt;span&gt;See&amp;nbsp;&lt;a id="" href="https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle"&gt;https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle&lt;/a&gt;&amp;nbsp;and in turn&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Update ISHRemoteMcpServer MCP Protocol Version from &amp;#39;0.3.0&amp;#39; to &amp;#39;2024-11-05&amp;#39; &amp;middot; Issue #228 &amp;middot; RWS/ISHRemote&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a id="" href="https://github.com/RWS/ISHRemote/issues/228"&gt;https://github.com/RWS/ISHRemote/issues/228&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best wishes,&lt;br /&gt;Dave&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Use ISHRemote to iterate through folders of type ISHModule excluding folders with keywords</title><link>https://uat.community.rws.com/thread/190330?ContentTypeID=1</link><pubDate>Mon, 05 Jan 2026 09:13:05 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:0bf1a6da-53ab-4be4-a3be-528df08d2de9</guid><dc:creator>Dave De Meyer</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/190330?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/60003/use-ishremote-to-iterate-through-folders-of-type-ishmodule-excluding-folders-with-keywords/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Ann,&lt;/p&gt;
&lt;p&gt;Line 1 indeed only pushes folders of type &amp;quot;ISHModule&amp;quot; to the pipeline (&amp;#39;|&amp;#39;) and eats/skips the non-ISHModule folders.&lt;/p&gt;
&lt;p&gt;Line 2 looks superfluous to me.&lt;/p&gt;
&lt;p&gt;Line 4 is a check on the folder name, so not the folder path.... So to compare to a file system; fname could hold &amp;quot;RWS&amp;quot; while its full folder path could be &amp;quot;C:\Program Files\RWS\&amp;quot;&lt;/p&gt;
&lt;p&gt;So instead of using fname property, perhaps you can try&amp;nbsp;fishfolderpath. It holds the path segments (without path separator \ or /). So to continue the above example it would hold &amp;quot;Program Files, RWS&amp;quot;&lt;/p&gt;
&lt;p&gt;Or you could do an extra call like&amp;nbsp;Get-IshFolderLocation -IshFolder $_&amp;nbsp; which would result in the full folder path with the path separators of your environment.&lt;/p&gt;
&lt;p&gt;Best wishes,&lt;br /&gt;Dave&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Use ISHRemote to iterate through folders of type ISHModule excluding folders with keywords</title><link>https://uat.community.rws.com/thread/60003?ContentTypeID=0</link><pubDate>Tue, 30 Dec 2025 13:09:02 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:18387ffa-fc3d-47dc-8b72-bc427d3cce3c</guid><dc:creator>Ann Jensen</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/60003?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/60003/use-ishremote-to-iterate-through-folders-of-type-ishmodule-excluding-folders-with-keywords/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am writing a script to collect list of topic GUIDs that live within any child folder of a give root folder in Tridion Docs but I want to exclude any folders that have keywords in their names like &amp;#39;archive&amp;#39;, &amp;#39;test&amp;#39;, and &amp;#39;exclude&amp;#39;.&lt;/p&gt;
&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:77b27a85-68f1-4e8c-a376-1f68b49c33b1:type=text&amp;text=%24ishFolders%20%3D%20Get-IshFolder%20-IshSession%20%24ishSession%20-FolderPath%20%24ishFolder%20-FolderTypeFilter%20%40%28%22ISHModule%22%29%20-Recurse%20%7C%0AWhere-Object%20-Property%20IshFolderType%20-EQ%20-Value%20ISHModule%20%7C%0AWhere-Object%20%7B%0A%24_.fname%20-notlike%20%22%2ARetire%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2ADeprecate%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2ATest%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2AAdmin%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2ADelete%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2AObsolete%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2ADuplicated%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2AArchive%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2ANot%20in%20use%2A%22%20-and%0A%24_.fname%20-notlike%20%22%2Ado%20not%20use%2A%22%0A%7D]&lt;/p&gt;
&lt;p&gt;On execution, I am still getting results of topics that live deep within folders that have keyword &amp;#39;archive&amp;#39; in them. The folder with the &lt;span&gt;keyword &amp;#39;archive&amp;#39; in&amp;nbsp;its name is&amp;nbsp;not of type ISHModule and I am not sure how to exclude these parent folders and all their child folders.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Any advice appreciated,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Ann&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Using ishRemote, how can I get the DITA OT log file contents in a Get-IshEvent request?</title><link>https://uat.community.rws.com/thread/59408?ContentTypeID=0</link><pubDate>Thu, 23 Oct 2025 20:57:10 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:1c9a265d-3f3c-40d3-805c-2f5b63b7570f</guid><dc:creator>Colin Ferguson</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/59408?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/59408/using-ishremote-how-can-i-get-the-dita-ot-log-file-contents-in-a-get-ishevent-request/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I dropped my question in the wrong forum, so I&amp;#39;m trying again :(&lt;/p&gt;
&lt;p&gt;I wrote this little PowerShell routine to get the log for a specific event. I can get the detail, but I cannot figure out how to get the contents of the DITA-OT log file. Can you help me?&lt;/p&gt;
&lt;p&gt;I tried looking at IshEventData for the DITAOTLogFile event but the byte array is 0 in length.&lt;/p&gt;
&lt;pre&gt;$targetServer = &amp;quot;xxxxxx&amp;quot;&lt;br /&gt;&lt;br /&gt;if($ishSession -eq $null) {&lt;br /&gt; $ishSession = New-IshSession -WsBaseUrl $targetServer&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$requestedMetadata = Set-IshRequestedMetadataField -IshSession $ishSession -Name &amp;quot;EVENTID&amp;quot; -Level &amp;quot;Progress&amp;quot; |&lt;br /&gt; Set-IshRequestedMetadataField -IshSession $ishSession -Name &amp;quot;EVENTTYPE&amp;quot; -Level &amp;quot;Progress&amp;quot; |&lt;br /&gt; Set-IshRequestedMetadataField -IshSession $ishSession -Name &amp;quot;EVENTDATATYPE&amp;quot; -Level &amp;quot;Detail&amp;quot; |&lt;br /&gt; Set-IshRequestedMetadataField -IshSession $ishSession -Name &amp;quot;DETAILID&amp;quot; -Level &amp;quot;Detail&amp;quot;&lt;br /&gt;&lt;br /&gt;$metadataFilter = Set-IshMetadataFilterField -IshSession $ishSession -Name &amp;quot;DESCRIPTION&amp;quot; -Level &amp;quot;Progress&amp;quot; -FilterOperator Like -Value &amp;quot;Publish process for GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx=3=HTMLOutput=en-us&amp;quot;&lt;br /&gt;&lt;br /&gt;$eventLog = Get-IshEvent -IshSession $ishSession -RequestedMetadata $requestedMetadata -EventTypes &amp;quot;PUBLISH&amp;quot; -MetadataFilter $metadataFilter&lt;br /&gt;&lt;br /&gt;$eventLog&lt;/pre&gt;</description></item><item><title>Using ISHRemote to Identify Where Topics Are Used in Publications</title><link>https://uat.community.rws.com/thread/59319?ContentTypeID=0</link><pubDate>Thu, 16 Oct 2025 08:23:41 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:9507fb46-7e7b-46ef-bdb7-b9b80dd3e34b</guid><dc:creator>Satoru Nakamura</dc:creator><slash:comments>2</slash:comments><comments>https://uat.community.rws.com/thread/59319?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/59319/using-ishremote-to-identify-where-topics-are-used-in-publications/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span data-contrast="auto"&gt;Hello&amp;nbsp;&lt;/span&gt;&lt;span data-contrast="auto"&gt;community,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I would like to find all publications that reference a specific topic (object) using ISHRemote.&lt;br /&gt;If there&amp;#39;s a cmdlet in the current ISHRemote version that supports this, I&amp;rsquo;d really appreciate your help.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m aware that the Publication Manager has a &amp;ldquo;Where Used&amp;rdquo; feature.&lt;br /&gt; However, since I need to check a large number of topics, I hope to automate this process using a PowerShell script.&lt;/p&gt;
&lt;p&gt;Background&lt;br /&gt;In Tridion Docs, there are multiple topics with identical content but different GUIDs.&lt;br /&gt;I want to identify which publications are using these topics.&lt;/p&gt;
&lt;p&gt;I have already downloaded the files of topic from the Web Client search to my local environment.&lt;/p&gt;
&lt;p&gt;Environment:&lt;br /&gt;ISHRemote Version: 8.1.0&lt;br /&gt;Tridion Docs Version: 15.2&lt;br /&gt;&lt;br /&gt;Thanks as always for developing such powerful tools and for supporting the community.&lt;/p&gt;</description></item><item><title>RE: Using ISHRemote to Identify Where Topics Are Used in Publications</title><link>https://uat.community.rws.com/thread/188307?ContentTypeID=1</link><pubDate>Thu, 16 Oct 2025 22:09:25 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:4e6cd6a2-ac07-4057-bfa1-dc6dfc1b0db1</guid><dc:creator>Satoru Nakamura</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/188307?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/59319/using-ishremote-to-identify-where-topics-are-used-in-publications/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Dave,&lt;/p&gt;
&lt;p&gt;Thank you very much for your detailed and insightful explanation.&lt;/p&gt;
&lt;p&gt;Your thorough description of the traversal from publication versions down to the topic level was extremely helpful in clarifying the process.&lt;br /&gt;I truly appreciate your explanation of the two approaches&amp;mdash;using Get-IShBaselineItem for a brute-force method and the more efficient API-based lookup.&lt;/p&gt;
&lt;p&gt;Thank you again for taking the time to share your expertise.&lt;br /&gt;It&amp;rsquo;s always a pleasure to learn from you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using ISHRemote to Identify Where Topics Are Used in Publications</title><link>https://uat.community.rws.com/thread/188293?ContentTypeID=1</link><pubDate>Thu, 16 Oct 2025 11:31:18 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:2d0f99d0-ed6b-472b-914c-6279695a15f1</guid><dc:creator>Dave De Meyer</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/188293?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/59319/using-ishremote-to-identify-where-topics-are-used-in-publications/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Satoru,&lt;/p&gt;
&lt;p&gt;The true reference of a topic can only be found by navigation every publication version from the top of the tree all the way down to the leaf - your topic. Along traversing that tree, your publication version points to a root DITA Map, the baseline explicitly holds a version for that DITA Map (or implicitly autocompletes), when conditions evaluate to true your DITA Map points to DITA submaps,&amp;nbsp;DITA submaps over versioning point to DITA Topics, DITA Topics to DITA Libraries, etc :)&lt;/p&gt;
&lt;p&gt;The &amp;quot;Where Used&amp;quot; of Publication Manager takes some acceptable shortcuts and it&amp;nbsp;checks if your topic is in a baseline assigned to a publication. Publication Manager upon opening of a publication version always adds all &amp;quot;used&amp;quot; content objects to a baseline which you typically Save to the CMS later. Publicaition Manager uses&amp;nbsp;&lt;a href="https://docs.rws.com/en-US/tridion-docs-main-documentation-1165616/publicationoutput-2-5-containing-70003"&gt;PublicationOutput 2.5 Containing&lt;/a&gt;&amp;nbsp;behind the scene if I remember correctly.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;To not keep you in suspense, there is no easy to consume cmdlet. Theoretically, to get you going, you could...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A. Iterate all your Publication Versions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Iterate all Publication Versions in your repository, in turn Get-IShBaselineItem and check if your topic GUIDs are in there. So a brute force iteration using the GUID-present-in-baseline premise.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="powershell"&gt;$publicationOutputs = Get-IshFolder -FolderPath &amp;#39;General\Mobile Phones Demo\Publications&amp;#39; | Get-IshFolderContent&amp;#160;
Get-IshBaselineItem -Id $publicationOutputs[0].fishbaseline_version_element | Where-Object -Property LogicalId -EQ -Value &amp;#39;GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;#39;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;B. Use that Publication Manager WhereUsed API call&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Over the API you can do a more efficient lookup, but you have to iterate all versions of your topic. So &amp;#39;1&amp;#39; below means version 1.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="powershell"&gt;$xml = [xml]$ishSession.PublicationOutput25.Containing(&amp;#39;GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;#39;,&amp;#39;1&amp;#39;,&amp;#39;&amp;#39;)
$xml.ishobjects.ishobject&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best wishes,&lt;br /&gt;Dave&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LastLogin data obtained by Find-IshUser cmdlet</title><link>https://uat.community.rws.com/thread/188249?ContentTypeID=1</link><pubDate>Wed, 15 Oct 2025 10:41:23 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:0b2a51db-2415-4090-9f92-bd28bac019e6</guid><dc:creator>Naoki Hirai</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/188249?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/59301/lastlogin-data-obtained-by-find-ishuser-cmdlet/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Dave,&lt;/p&gt;
&lt;p&gt;Thank you for your clarification. Now, I understand the last log-on timestamp of TD15 well.&lt;/p&gt;
&lt;p&gt;As a temporary solution, I retrieved the last log-on timestamp from the Access Management DB table directory. I hope the Find-IshUser cmdlet will be enhanced in the future.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Naoki&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>LastLogin data obtained by Find-IshUser cmdlet</title><link>https://uat.community.rws.com/thread/59301?ContentTypeID=0</link><pubDate>Wed, 15 Oct 2025 02:53:07 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:493fcea4-aed9-420f-ab2c-b4d8287ab040</guid><dc:creator>Naoki Hirai</dc:creator><slash:comments>2</slash:comments><comments>https://uat.community.rws.com/thread/59301?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/59301/lastlogin-data-obtained-by-find-ishuser-cmdlet/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Our company upgraded TD from TD14 to 15.2.0 last month (i.e. September, 2025).&lt;/p&gt;
&lt;p&gt;I was monitoring the number of active users by gathering last login information with the PowerShell script as follows:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Find-IshUser -IshSession $ishSession | Select-Object username,fishemail,fusergroup,fishlastloginon | sort @{Expression=&amp;quot;username&amp;quot;;Descending=$false} | Export-Csv &amp;lt;CSV file path&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Before upgrading TD, we were using ISHSTS for login authentication. Now, we are using a cloud-based IdP for login authentication. When I executed the above PowerShell script today, I realized the&amp;nbsp;fishlastloginon does not reflect the last login date logged in using the&amp;nbsp;cloud-based IdP.&amp;nbsp;It is believed that the last login date and time collected by the ISHRemote Find-IshUser cmdlet only pertains to login authentication using ISHSTS and Tridion Docs identity provider.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Could you let me how to obtain the last login date and time when logging in using both external IdP and Tridion Docs identity provider?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;I&amp;#39;m using ISHRemove 8.1.0.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Thank you in advance for your help.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Kind regards,&lt;br /&gt;Naoki&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>RE: LastLogin data obtained by Find-IshUser cmdlet</title><link>https://uat.community.rws.com/thread/188234?ContentTypeID=1</link><pubDate>Wed, 15 Oct 2025 06:41:10 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:b3eafd40-7e3b-4a8d-884e-388c6039d692</guid><dc:creator>Dave De Meyer</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/188234?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/59301/lastlogin-data-obtained-by-find-ishuser-cmdlet/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Naoki-san,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Have a look at&amp;nbsp;&lt;strong&gt;User&amp;#39;s Last Log On Timestamp Impact&lt;/strong&gt;&amp;nbsp;&lt;a href="https://uat.community.rws.com/product-groups/tridion/tridion-docs/b/weblog/posts/automating-on-tridion-docs---ishremote-v8-0-with-modern-authentication-is-now-available"&gt;https://community.rws.com/product-groups/tridion/tridion-docs/b/weblog/posts/automating-on-tridion-docs---ishremote-v8-0-with-modern-authentication-is-now-available&lt;/a&gt;.&amp;nbsp;When the identity provider is not the built-in one (like ISHID or earlier ISHSTS), the timestamp is indeed not maintained as the CMS is not offering the authentication anymore. And this is advised as external identity provider have this as their main business goal.&lt;/p&gt;
&lt;p&gt;A very fluffy idea was to extend Find-IshUser cmdlet but we never got it to top of the backlog. There is some data available in Access Management (typically &lt;a id="" href="https://ish.example.com/ISHAM/"&gt;https://ish.example.com/ISHAM/&lt;/a&gt;). Theoretically it is possible to link the user profiles (from ISHCM) with the login information (from ISHAM), so combining the two data silos. This was one of the ideas behind adding the OpenAPI proxy to Access Management&amp;nbsp;&lt;strong&gt;$ishSession.OpenApiAM10Client.UsersGetAsync().GetAwaiter().GetResult()&amp;nbsp;&lt;/strong&gt;which of course requires Access Management administrator api privileges.&lt;/p&gt;
&lt;p&gt;Best wishes,&lt;br /&gt;Dave&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to Customize the Output of Tridion Docs Publications?</title><link>https://uat.community.rws.com/thread/187941?ContentTypeID=1</link><pubDate>Mon, 06 Oct 2025 04:03:16 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:de86fe17-e8bb-48ae-a6d8-53f1e0ed1351</guid><dc:creator>Naoki Hirai</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/187941?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/53280/how-to-customize-the-output-of-tridion-docs-publications/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Raf san,&lt;/p&gt;
&lt;p&gt;I&amp;#39;d like to watch the&amp;nbsp;&amp;nbsp;&lt;a href="https://uat.community.rws.com/product-groups/tridion/tridion-docs/m/videos/4532"&gt;TXS 2020 Day 2: Integrating New Publishing Outputs SDL Tridion Docs&lt;/a&gt;&amp;nbsp;presentation. However, video is not publicly available and requires a login to view. If it&amp;#39;s appropriate, could you please share the login information with me via direct message?&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt;Naoki&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to Customize the Output of Tridion Docs Publications?</title><link>https://uat.community.rws.com/thread/53280?ContentTypeID=0</link><pubDate>Wed, 26 Jun 2024 06:14:04 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:cb43a0b6-a1c3-4ec2-8290-b7175b6f09cd</guid><dc:creator>Jason  Derulo</dc:creator><slash:comments>2</slash:comments><comments>https://uat.community.rws.com/thread/53280?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/53280/how-to-customize-the-output-of-tridion-docs-publications/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hey Tridion Docs fam!&lt;/p&gt;
&lt;p&gt;New to the scene here, and I&amp;#39;m tackling a project to customize the look and feel of our published content. Basically, I want our shiny new docs to match our company&amp;#39;s branding perfectly.&lt;/p&gt;
&lt;p&gt;Wondering if any of you customization wizards can lend a hand with these:&lt;/p&gt;
&lt;p&gt;Tridion Tweaks: What are the best ways to go about customizing output in Tridion Docs?&lt;br /&gt;Plugin Power? Are there any cool tools or plugins out there that can help me achieve this branding magic?&lt;br /&gt;Future-Proofing: How can I make sure my customizations won&amp;#39;t break when Tridion Docs updates?&lt;br /&gt;Learning Resources: Any hidden knowledge stashes or detailed guides I should be checking out?&lt;/p&gt;
&lt;p&gt;I also check this: &lt;a href="https://uat.community.rws.com/developers-more/developers/tridiondocs-developers/b/knowledge_center_developer_blog/posts/sdltridiondocshtmloutputcustomization" rel="noopener noreferrer" target="_blank"&gt;https://community.rws.com/developers-more/&lt;/a&gt;&lt;a href="https://www.igmguru.com/salesforce/salesforce-developer-training/" rel="noopener noreferrer" target="_blank"&gt;salesforcedeveloper&lt;/a&gt;&lt;a href="https://uat.community.rws.com/developers-more/developers/tridiondocs-developers/b/knowledge_center_developer_blog/posts/sdltridiondocshtmloutputcustomization"&gt;/tridiondocs-developers/b/knowledge_center_developer_blog/posts/sdltridiondocshtmloutputcustomization&lt;/a&gt;&lt;a href="https://www.igmguru.com/salesforce/salesforce-developer-training/" rel="noopener noreferrer" target="_blank"&gt;&lt;/a&gt;&amp;nbsp;But I have not found any solution so, basically, any tips, tricks, or war stories from your experience would be a huge help! Thanks a ton in advance for your expertise.&lt;/p&gt;
&lt;p&gt;Looking forward to crafting some seriously on-brand docs!&lt;/p&gt;</description></item><item><title>RE: Updating metadata on the publication version level</title><link>https://uat.community.rws.com/thread/186870?ContentTypeID=1</link><pubDate>Mon, 01 Sep 2025 09:15:11 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:78307252-c002-4a0f-aabd-e82e43691bd5</guid><dc:creator>Charles Craig</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/186870?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58870/updating-metadata-on-the-publication-version-level/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;That&amp;#39;s great Dave, thanks for the thorough explanation!&lt;/p&gt;
&lt;p&gt;best,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Updating metadata on the publication version level</title><link>https://uat.community.rws.com/thread/58870?ContentTypeID=0</link><pubDate>Thu, 28 Aug 2025 22:47:31 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:21189192-2975-4f20-8bef-8a9f019d3584</guid><dc:creator>Charles Craig</dc:creator><slash:comments>5</slash:comments><comments>https://uat.community.rws.com/thread/58870?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58870/updating-metadata-on-the-publication-version-level/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have the following use case I need to implement ASAP. I have several large lists of&amp;nbsp;pubs - the lists contain the GUIDs, the relevant versions, and metadata values that I need to write into a custom metadata field - FINFAPRODUCTMETADATA.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve tried investigating IshRemote, but&amp;nbsp;I haven&amp;#39;t been able to accomplish this - I&amp;#39;ve been poring over the help files and any examples I can find here in the dev forum, but to no avail so far.&amp;nbsp;Can this be done with IshRemote&amp;nbsp;cmdlets? Or would it be better/easier to use the API wrapper, eg calls like&amp;nbsp;&lt;span&gt;$mySession.PublicationOutput25.Find?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Note I don&amp;#39;t have any issues with general PS coding, eg the parsing of CSV files and such - the only problem I&amp;#39;m unable to solve is finding the correct way to find the objects in Tridion and then update the metadata field.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;One last thing I was hoping for wrt to this project... I also need to update the metadata of any pub versions that are later than the version I&amp;#39;m targeting. I&amp;#39;m aware that the Version field is a text field - I can write my own comparator for that. I&amp;#39;m just hoping that someone could point me to a working code example for listing all the versions of a publication.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;m on Tridion Docs 14sp4, btw, in case that matters. Thanks for any help!&lt;/span&gt;&lt;/p&gt;</description></item><item><title>RE: Updating metadata on the publication version level</title><link>https://uat.community.rws.com/thread/186854?ContentTypeID=1</link><pubDate>Mon, 01 Sep 2025 07:10:32 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:b7e0549e-c12d-4f4a-984d-61db34046a53</guid><dc:creator>Dave De Meyer</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/186854?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58870/updating-metadata-on-the-publication-version-level/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Charlie,&lt;/p&gt;
&lt;p&gt;Over the years ISHRemote defaults the -RequestedMetadata to human readable fields. The Id you are looking for is part of the System fields. The most optimal way to add this to the request is in the example below. Where I also gave you some inspiration for the PowerShell read-only PSNoteProperty shortcuts versus lengthy but still supported/correct Get-IshMetadataField usage.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="powershell"&gt;PS C:\PRIVATE\OneDrive\CODE\ISHRemoteScript&amp;gt; $p=Get-IshPublicationOutput -LogicalId GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -RequestedMetadata (Set-IshRequestedMetadataField -Level Logical -Name FISHMBPRODUCT -ValueType Id)

PS C:\PRIVATE\OneDrive\CODE\ISHRemoteScript&amp;gt; $p[0] | Get-IshMetadataField -Level Logical -Name FISHMBPRODUCT -ValueType Id
VPRODUCTFAMILYTRIDIONSITES
PS C:\PRIVATE\OneDrive\CODE\ISHRemoteScript&amp;gt; $p[0] | Get-IshMetadataField -Level Logical -Name FISHMBPRODUCT -ValueType Value
Tridion Sites (200)

PS C:\PRIVATE\OneDrive\CODE\ISHRemoteScript&amp;gt; $p[0].fishmbproduct_logical_id   
VPRODUCTFAMILYTRIDIONSITES
PS C:\PRIVATE\OneDrive\CODE\ISHRemoteScript&amp;gt; $p[0].fishmbproduct_logical_value
Tridion Sites (200)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;People that want more insights in what fields to use, check Get-IshTypeFieldDefinition or have a look on [Sample \- Descriptive, Basic and All Fields](&lt;a href="https://github.com/RWS/ISHRemote/blob/master/Doc/ReleaseNotes-ISHRemote-0.7.md#sample---descriptive-basic-and-all-fields)"&gt;github.com/.../ReleaseNotes-ISHRemote-0.7.md&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best wishes,&lt;br /&gt;Dave&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Updating metadata on the publication version level</title><link>https://uat.community.rws.com/thread/186823?ContentTypeID=1</link><pubDate>Fri, 29 Aug 2025 13:17:58 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:63a5dd47-37a9-4ede-b83c-df3b6bd94708</guid><dc:creator>Charles Craig</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/186823?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58870/updating-metadata-on-the-publication-version-level/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;One other quick query. The objects I&amp;#39;m editing&amp;nbsp;have the ISHMetadataBinding data type. I am able to set these values correctly - ie when I replace the Value with a backend ID like /1/2/3/4, it&amp;#39;s correctly stored, and I see the&amp;nbsp;correct full text string&amp;nbsp;when I open the publication properties, populated by the&amp;nbsp;metadatabinding.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, when I run this:&lt;br /&gt;&lt;code&gt;Get-IshMetadataField -IshSession $ishSession -Name &amp;quot;FINFAPRODUCTMETADATA&amp;quot; -Level Version -ValueType Value&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The full text strings are retrieved instead of the IDs, which are what I need. What am I missing here? Changing the ValueType to element or ID doesn&amp;#39;t help either.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Btw, the reason I need this&amp;nbsp;because I&amp;#39;ve realized I need to get the existing value first, as multiple values are already in this metadata field in many cases.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Thanks for any help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Updating metadata on the publication version level</title><link>https://uat.community.rws.com/thread/186805?ContentTypeID=1</link><pubDate>Fri, 29 Aug 2025 10:20:21 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:c5b2dcf8-113a-4107-8897-a7d7c8237119</guid><dc:creator>Charles Craig</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/186805?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58870/updating-metadata-on-the-publication-version-level/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Dave,&lt;/p&gt;
&lt;p&gt;Thanks so much for the quick reply, I was able to get it working by using your code as a starting point. Very much appreciated!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;best,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Updating metadata on the publication version level</title><link>https://uat.community.rws.com/thread/186790?ContentTypeID=1</link><pubDate>Fri, 29 Aug 2025 07:02:38 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:523227f6-fba1-48a5-93dd-7192f782574b</guid><dc:creator>Dave De Meyer</dc:creator><slash:comments>2</slash:comments><comments>https://uat.community.rws.com/thread/186790?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58870/updating-metadata-on-the-publication-version-level/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Charles,&lt;/p&gt;
&lt;p&gt;Worth the read is&amp;nbsp;&amp;nbsp;&lt;a href="https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/54729/using-ishremote-can-i-filter-results-where-version-is-less-than-or-equal-to-a-value/174383"&gt;RE: Using ISHRemote can I filter results where Version is less than or equal to a value?&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Some code snippets giving the ASAP to unblock as inspiration. I tested them on 15.2.0 but I think they work on 14SP4/14.0.4 as well.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="powershell"&gt;# As version is a string field, you can do an exact match
$requestedMetadata = Set-IshMetadataFilterField -Level Version -Name VERSION -FilterOperator Equal -Value &amp;#39;15&amp;#39;
Get-IshPublicationOutput -LogicalId GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -MetadataFilter $requestedMetadata
# As you are then updating the version level, it would be a good optimization to do that only once for that version and not for every PublicationOutput below (e.g. English PDF, French PDF, English...)

# Regarding version compare...
# FISHBRANCHNR is a system field which you need to explicitly get
# you get ALL of them all the time, if you specify $ishSession.DefaultRequestedMetadata=&amp;#39;All&amp;#39;
$requestedMetadata = (Set-IshRequestedMetadataField -Level Version -Name FISHBRANCHNR)
$p = Get-IshPublicationOutput -LogicalId GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -RequestedMetadata $requestedMetadata

# to give you an idea of what we retrieved, print the below
# where the version is just an integer, no branched version, then fishbranchnr is zero... in turn you can use PowerShell -lt operator when cast to an [int]
$p | Select-Object ishref,version_version_value,fishbranchnr_version_value

# Below is a client-side, so in PowerShell calculation, when there are no branches
$p | ForEach-Object { 
        if (($_.fishbranchnr_version_value -eq &amp;#39;0&amp;#39;) -and ([int]($_.version_version_value) -gt 10)) { Write-Output $_ }
    }

# when there are branches you could consider going &amp;#39;manual selection&amp;#39; by
$p | Out-GridView -PassThru
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Best wishes,&lt;br /&gt;Dave&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: In tridion docs, how to obtain user's name within the execution of WriteMetadataPlugin</title><link>https://uat.community.rws.com/thread/186679?ContentTypeID=1</link><pubDate>Tue, 26 Aug 2025 19:48:59 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:0885259b-daa8-498c-b2c0-705a7afbf07f</guid><dc:creator>Damian Jewett</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/186679?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58768/in-tridion-docs-how-to-obtain-user-s-name-within-the-execution-of-writemetadataplugin/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Which version of Tridion Docs?&lt;/p&gt;
&lt;p&gt;Have you tried using the Tridion Docs OpenAPI client from within your write plugin?&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://docs.rws.com/en-US/tridion-docs-main-documentation-1151795/openapi-web-services-samples-1159163"&gt;https://docs.rws.com/en-US/tridion-docs-main-documentation-1151795/openapi-web-services-samples-1159163&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://uat.community.rws.com/product-groups/tridion/tridion-docs/b/weblog/posts/tridion-docs-openapi-how-to-make-the-first-call?CommentId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;amp;focus=true"&gt;https://community.rws.com/product-groups/tridion/tridion-docs/b/weblog/posts/tridion-docs-openapi-how-to-make-the-first-call?CommentId=af926cf2-687d-4f2e-9b75-28cd6c9034d5&amp;amp;focus=true&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We were able to retrieve user data when working with projects in one of our plugins. Pseudocode looked something like this:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;projects&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;tridionDocsClient&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;GetProjectListByProjectIdAsync&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;request&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;...&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;fields&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;project&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;&amp;quot;fields&amp;quot;&lt;/span&gt;&lt;span&gt;];&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;foreach&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;field&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;fields&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; value&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;field&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;&amp;quot;value&amp;quot;&lt;/span&gt;&lt;span&gt;];&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt; != &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;userId&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;&amp;quot;id&amp;quot;&lt;/span&gt;&lt;span&gt;]?.&lt;/span&gt;&lt;span&gt;ToString&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;name&amp;nbsp;&lt;/span&gt;&lt;span&gt;= &lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&lt;span&gt;]?.&lt;/span&gt;&lt;span&gt;ToString&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>In tridion docs, how to obtain user's name within the execution of WriteMetadataPlugin</title><link>https://uat.community.rws.com/thread/58768?ContentTypeID=0</link><pubDate>Wed, 20 Aug 2025 09:08:58 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:2e9e6620-49e4-43f5-838a-ceea2f4e8181</guid><dc:creator>Lihao Lei</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/58768?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58768/in-tridion-docs-how-to-obtain-user-s-name-within-the-execution-of-writemetadataplugin/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Product: Tridion Docs 13.0.4630.2&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When the user Jack is setting metadata of certain language object using desktop client,&amp;nbsp;how does&amp;nbsp;WriteMetadataPlugin capture the username Jack?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;My situation: If Jack sets metadata (this metadata field is Language level) to certain language object, the WriteMetadataPlugin sets the same metadata to all language objects under the same GUID, but it causes recursive plugin calling, therefore I&amp;#39;m considering to distinguish from user-metadatasetting to plugin-metadatasetting, which requires capturing username.&lt;/p&gt;
&lt;p&gt;(Given that the metadata field is not convenient to transformed into Logical level, nor convenient to set up a new Logical metadata field.)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description></item><item><title>How to use the API  to get a list of publications with conditions set on them.</title><link>https://uat.community.rws.com/thread/58084?ContentTypeID=0</link><pubDate>Fri, 13 Jun 2025 12:56:49 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:e70391b0-fa36-476a-880d-0de20aa8ea2c</guid><dc:creator>Akheil Jain</dc:creator><slash:comments>2</slash:comments><comments>https://uat.community.rws.com/thread/58084?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58084/how-to-use-the-api-to-get-a-list-of-publications-with-conditions-set-on-them/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;We are troubleshooting some issues in our 15.1.2 environment and are in need to find a list of publications which have conditions set on them vs. contain content with conditions. Couldn&amp;#39;t figure out which field or class to use from the API to achieve this. TIA&lt;/p&gt;</description></item><item><title>RE: How to use the API  to get a list of publications with conditions set on them.</title><link>https://uat.community.rws.com/thread/186336?ContentTypeID=1</link><pubDate>Fri, 15 Aug 2025 16:37:07 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:118bb385-f634-4466-b7bc-57b24ac676bb</guid><dc:creator>Akheil Jain</dc:creator><slash:comments>0</slash:comments><comments>https://uat.community.rws.com/thread/186336?ContentTypeID=1</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/58084/how-to-use-the-api-to-get-a-list-of-publications-with-conditions-set-on-them/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Dave, thank you for that information, it was very helpful in understanding the architecture of Docs. To clarify my question I tried to run a API call to GetMetadata on a publication object and specified FISHCONTEXTS as a requested field and received an error (Usage of Field &amp;quot;FISHCONTEXTS&amp;quot; during a &amp;quot;READ&amp;quot; action is not allowed. 108001; ActionProtectedField). This throws a wrench in my plan to get a list of all publication version objects which has conditions (FISHCONTEXTS field not empty).&amp;nbsp;&lt;br /&gt;TIA&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Issue with publishing pubs with imported non-specialized topics and map via Oxygen Publishing Engine plugin. Tridion Docs 15.1</title><link>https://uat.community.rws.com/thread/54577?ContentTypeID=0</link><pubDate>Fri, 20 Sep 2024 14:53:01 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:c60a17b5-b2a3-4a31-beaa-cfcd176d446c</guid><dc:creator>Mario Madunic</dc:creator><slash:comments>1</slash:comments><comments>https://uat.community.rws.com/thread/54577?ContentTypeID=0</comments><wfw:commentRss>https://uat.community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/f/livecontent_developer_forum/54577/issue-with-publishing-pubs-with-imported-non-specialized-topics-and-map-via-oxygen-publishing-engine-plugin-tridion-docs-15-1/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Tridion Docs 15.1&lt;/p&gt;
&lt;p&gt;Oxygen Publishing Engine&lt;/p&gt;
&lt;p&gt;Transtype: pdf-css-html5&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been working with Oxygen&amp;#39;s Publishing Engine in Tridion Docs. I have been able to publish the test content that comes with Tridion Docs (Safety Recall 2008 Sport 2...) to PDF (transtype &lt;span&gt;pdf-css-html5&lt;/span&gt;). I imported some of our test content; a simple map with 3 topics, 2 pngs, and an svg. All imported no issue. However when I publish to transtype&amp;nbsp;&lt;span&gt;pdf-css-html5, the publish fails. (The test content publishes successfully when using transtype ishpdf.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I get the following error in the dita-ot log:&lt;/p&gt;
&lt;pre&gt;gen-list:
 [gen-list] [DOTJ037W][WARN] The XML schema and DTD validation function of the parser is turned off. Please make sure the input is normalized DITA with class attributes included, otherwise it will not be processed correctly.
 [gen-list] Using Xerces grammar pool for DTD and schema caching.
 [gen-list] Processing file:/C:/InfoShare/Data/Publish/Data/4s1plusanpr/work/1/en/GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.ditamap
 [gen-list] Processing file:/C:/InfoShare/Data/Publish/Data/4s1plusanpr/work/1/en/GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.xml
Error: Failed to run pipeline: The entity -//SDL//DTD DITA Topic//EN / file:///C:/InfoShare/Web/Author/ASP/DocTypes/dita-sdl/1.3/dtd/technicalContent/dtd/sdlTopic.dtd cannot not be resolved through catalogs. For security reasons files that are not listed in the DITA-OT catalogs and are not located in the DITA-OT directory are not read. You can disable this restriction by setting &amp;quot;-Dargs.disable.security.checks=yes&amp;quot; in the command line or the Oxygen transformation configuration dialog, the &amp;quot;Advanced&amp;quot; tab, in the &amp;quot;JVM Arguments&amp;quot; text field. Make sure all the input files come from a trusted source.
&lt;br /&gt;The path to the dtd is correct. I&amp;#39;ve added the files at InfoShare/Web/Author/ASP/DocTypes/dita-sdl/1.3/dtd into a base plugin including the catalog, using an extension point. I reran dita --install to pick up them up and still getting the same issue.&lt;br /&gt;What am I missing? Any pointers appreciated in resolving this.&lt;/pre&gt;
&lt;pre&gt;&lt;br /&gt; the topic&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt; &amp;lt;!DOCTYPE topic PUBLIC &amp;quot;-//SDL//DTD DITA Topic//EN&amp;quot; &amp;quot;topic.dtd&amp;quot;[]&amp;gt; &amp;lt;!-- Original file name: slide001.dita --&amp;gt;&amp;lt;topic id=&amp;quot;GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt; &amp;lt;title id=&amp;quot;GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;quot;&amp;gt;Front Cover&amp;lt;/title&amp;gt; &amp;lt;body&amp;gt; &amp;lt;fig&amp;gt; &amp;lt;image href=&amp;quot;GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;quot; alt=&amp;quot;&amp;quot; format=&amp;quot;svg&amp;quot; /&amp;gt; &amp;lt;/fig&amp;gt; &amp;lt;/body&amp;gt; &amp;lt;/topic&amp;gt;&lt;/pre&gt;</description></item></channel></rss>