You are currently working on UAT 

Can we Copy specific folder content from Repository from Demo site to other site.

Screenshot of Trados Studio showing the VAMP folder expanded with subfolders: A Guidelines, B Common, C Arc, Import, and Tests.

 

from above image i need to copy VAMP folder to another site.



Generated Image Alt-Text
[edited by: Trados AI at 6:44 AM (GMT 0) on 5 Mar 2024]
emoji
Parents
  • Hi Swapnil

    I can give you few suggestions on the PowerShell script for copying a folder. For the start, get ISHRemote library from the Powershell Gallery site.
    Then you will need two functions, one for downloading content from the source location to a local drive and the second one for uploading content to the target site
    - Download
    o Get source folder recursively, e.g. $sourceFolderTree = Get-IshFolder -IshSession $ishSession -FolderPath $ishFolderPath –Recurse
    o Loop over folders foreach($sourceFolder in $sourceFolderTree)
    o Get folder path for each folder and make local path out of it $sourceFolderPath = Get-IshFolderLocation -IshSession $ishSession -FolderId $sourceFolder.IshFolderRef
    o Get folder metadata and save it to a Xml file(if needed) $ishSession.Folder25.GetMetadataByIshFolderRef
    o Get logical objects from the current folder: $folderLogicalObjects = Get-IshFolderContent -IshSession $ishSession -FolderId $sourceFolder.IshFolderRef
    o Then you need to distinguish whether it is DocumentObj folder("ISHModule", "ISHMasterDoc", "ISHLibrary", "ISHIllustration", "ISHTEMPLATE") or Publication folder ("ISHPublication")
    o For DocumentObj folder you need to get a list of language objects $folderLanguageObjects = Get-IshDocumentObj -IshSession $ishSession -LogicalId $logicalIds -RequestedMetadata $requestedMetadata then you can get data object using $folderObjectDataPath = Get-IshDocumentObjData -IshSession $ishSession -IshObject $folderLanguageObject -FolderPath $folderPathOnDisk
    o For Publication folder you can use the following cmd-let to get output: Get-IshPublicationOutput. Then you will also need a baseline object and save it to a file ($ishSession.Baseline25.GetBaseline)

    - Upload
    o For upload you will need to create with the script every target folder based on the folder on your local disk (Add-IshFolder)
    o For DocumentObj, Sort files by version, add objects using the Add-IshDocumentObj cmd-let (for images you will need to provide resolutions)
    o For Publication objects you will need to do again sorting by version, add PublicationOutput as well as baseline and baseline items with commands Add-IshBaseline, Set-IshBaselineItem, Add-IshPublicationOutput

    It is much easier if you skip PublicationOutput and Baseline objects. Also remember that this will not copy system LOVs, so Author, Language and others – they need to be created separately (manually)
Reply
  • Hi Swapnil

    I can give you few suggestions on the PowerShell script for copying a folder. For the start, get ISHRemote library from the Powershell Gallery site.
    Then you will need two functions, one for downloading content from the source location to a local drive and the second one for uploading content to the target site
    - Download
    o Get source folder recursively, e.g. $sourceFolderTree = Get-IshFolder -IshSession $ishSession -FolderPath $ishFolderPath –Recurse
    o Loop over folders foreach($sourceFolder in $sourceFolderTree)
    o Get folder path for each folder and make local path out of it $sourceFolderPath = Get-IshFolderLocation -IshSession $ishSession -FolderId $sourceFolder.IshFolderRef
    o Get folder metadata and save it to a Xml file(if needed) $ishSession.Folder25.GetMetadataByIshFolderRef
    o Get logical objects from the current folder: $folderLogicalObjects = Get-IshFolderContent -IshSession $ishSession -FolderId $sourceFolder.IshFolderRef
    o Then you need to distinguish whether it is DocumentObj folder("ISHModule", "ISHMasterDoc", "ISHLibrary", "ISHIllustration", "ISHTEMPLATE") or Publication folder ("ISHPublication")
    o For DocumentObj folder you need to get a list of language objects $folderLanguageObjects = Get-IshDocumentObj -IshSession $ishSession -LogicalId $logicalIds -RequestedMetadata $requestedMetadata then you can get data object using $folderObjectDataPath = Get-IshDocumentObjData -IshSession $ishSession -IshObject $folderLanguageObject -FolderPath $folderPathOnDisk
    o For Publication folder you can use the following cmd-let to get output: Get-IshPublicationOutput. Then you will also need a baseline object and save it to a file ($ishSession.Baseline25.GetBaseline)

    - Upload
    o For upload you will need to create with the script every target folder based on the folder on your local disk (Add-IshFolder)
    o For DocumentObj, Sort files by version, add objects using the Add-IshDocumentObj cmd-let (for images you will need to provide resolutions)
    o For Publication objects you will need to do again sorting by version, add PublicationOutput as well as baseline and baseline items with commands Add-IshBaseline, Set-IshBaselineItem, Add-IshPublicationOutput

    It is much easier if you skip PublicationOutput and Baseline objects. Also remember that this will not copy system LOVs, so Author, Language and others – they need to be created separately (manually)
Children
No Data