collection element associated with artifact type empty

Document ID : KB000006933
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

“ROC - Assign environment package" assigns an environment artifact package to a deployment, yet the associated artifact collection element does not populate so the distributed artifact package cannot be processed in a collection element loop flow.

Environment:
Release Automation 6.x
Cause:

The collection element is populated with the artifact versions once the “ROC - Assign environment package" is executed. If an empty package is assigned which versions are added to later on using “ROC – Add version to artifact package”, that means the collection element is empty yet the package is distributed well. This prevents a (pre)deployment step to process the versions in a looped flow. 

Resolution:

Before assigning the artifact package (using “ROC - Assign environment package") to the deployment, make sure it contains all versions, either by:

  • creating the package from the ROC UI
  • including the versions in the xml definition of the package, e.g.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<p:package xmlns:p="http://www.example.org/ArtifactPackage"> 
<p:name>Package22</p:name> 
<p:artifactVersionByPath> 
<p:definition>artdef1</p:definition> 
<p:type>arrttyp1</p:type> 
<p:version>artver1</p:version> 
</p:artifactVersionByPath> 
<p:artifactVersionByPath> 
<p:definition>artdef1</p:definition> 
<p:type>arrttyp1</p:type> 
<p:version>artver2</p:version> 
</p:artifactVersionByPath> 
</p:package> 

  • add versions to the package with action “ROC – Add version to artifact package”
Additional Information:

Artifact versions that are added after the package is assigned to the deployment are still distributed to the agents. It's just not possible to process them in a collection loop. But they are within the target's artifact_store and can be referenced there as such.