Unfortunately, there isn’t a way out-of-the-box to do what you want. You either have to write some Java code to leverage the IS internal API or you have to write some code to traverse through the flow.xml files and compile this information.
Just out of curiosity, I wanted to see how easy it would be to do the latter. So here’s a sample PowerShell script I threw together. I apologize for the lack of comments but if your packages are available on a Windows machine, give it a try. I ran it using PowerShell v4, by the way.
This should give you back the service name, the document being published, and the publish step’s comment:
Param(
$packagesDir = 'C:\SoftwareAG\IntegrationServer\instances\default\packages'
)
$packages = Get-ChildItem -Path $packagesDir -Directory | ? {$_.name -notlike 'Wm*' -and $_.name -ne 'Default'}
foreach($p in $packages) {
$flows = Get-ChildItem -Recurse -Path $p -Include flow.xml
foreach($f in $flows) {
try {
$xml = [xml](Get-Content $f)
$publishes = $xml.SelectNodes("//INVOKE[@SERVICE='pub.publish:publish']")
$nsPosition = $f.FullName.IndexOf('\ns\')
$service = $f.FullName.Substring($nsPosition + 4).Replace('\flow.xml', '').Replace('\','.') -replace "(.*)\.(.*)", '$1:$2'
foreach($p in $publishes) {
$document = (($p.MAP | ? MODE -eq 'INPUT').MAPSET | ? FIELD -like '*documentTypeName*').DATA.Values.value.'#text'
New-Object -TypeName PSObject -Property @{Flow = $service; Document = $document; Comment = $p.COMMENT}
}
}
catch {
Write-Error "Error processing ($f): $_"
}
}
}
Percio
#Integration-Server-and-ESB#Flow-and-Java-services#webMethods