Vous pouvez créer des stratégies en utilisant les API client Java.
RAMSession ramSession = getPolicyContext().getRAMSession();
RAMAsset ramAsset = getPolicyContext().getRAMAsset();
Vous pouvez utiliser plusieurs classes d'API Java™ Rational Asset Manager pour mettre à jour l'actif actuel. Par exemple, vous pouvez ajouter une relation ou définir une action. Vous pouvez également utiliser les classes d'API pour travailler avec des actifs, des attributs d'actifs et des artefacts.
Vous pouvez aussi utiliser les API Java pour changer ou créer des actifs en plus de celui sur lequel est exécutée la stratégie. Pour des performances optimales lors de l'utilisation d'API ram.client, limitez les mises à jours des actifs à une seule session.
RAMSession session = getPolicyContext().getRAMSession();
RAMAsset currentAsset = this.getPolicyContext().getRAMAsset();
// Utilisez les API client pour apporter des modifications à l'actif ...
// Vous pouvez également modifier ou créer d'autres actifs :
RAMAsset asset = session.createAsset("1.0");
asset.setName("Test Asset");
asset.setCommunity(session.getCommunity("Sample Application Development"));
asset.setAssetType(session.getAssetType("Business Solution"));
asset.setShortDescription("Test asset");
asset.setOwners(new RAMUser[] { session.getUser("admin") });
// Validez les modifications dans le référentiel d'actifs pour l'actif actuel :
session.putAsset(currentAsset);
// Vous pouvez utiliser queueAssetForPut et putAssets pour mettre en fil d'attente, puis
// valider tous les actifs que vous avez modifiés dans la session comme une seule transaction :
session.queueAssetForPut(currentAsset);
// Validez les modifications apportées à tous les actifs que vous avez modifiés dans la session :
session.putAssets(new NullProgressMonitor());
Pour les API du client Java, voir : package client et package de données communes.
Reportez-vous à la section Exemple de cette rubrique et à Utiliser l'API Java Rational Asset Manager pour des exemples supplémentaires.
RAMAsset myAsset = getPolicyContext().getRAMAsset();
AssetAttribute myAttribute = myAsset.getAssetAttribute("Family Name");
String[] myAttrValue = myAttribute.getValues();
myAttribute = myAsset.getAssetAttribute("Work Item");
myAttrValue = myAttribute.getValues();
myAttribute = myAsset.getAssetAttribute("Requirement");
myAttrValue = myAttribute.getValues();
SearchQuery query = session.createAssetQuery(queryParam);
int offset = 0;
int maxResults = 100;
query.setResultsStartIndex(offset);
query.setMaxResults(maxResults);
SearchResult result = session.getAssets(query);
RAMAsset newAsset = session.createAsset("1.0");
newAsset.setName("The new related asset");
newAsset.setCommunity(session.getCommunity("Développement Rational Asset Manager"));
newAsset.setAssetType(session.getAssetType("Specification"));
newAsset.setShortDescription("The Specification asset is required.");
AssetID id = new AssetID();
id.setGUID(newAsset.getId());
id.setVersion(newAsset.getVersion());
public Result test() {
try {
// Créer une requête
String queryParam = null;
RAMSession session = getPolicyContext().getRAMSession();
SearchQuery query = session.createAssetQuery(queryParam);
int offset = 0;
int maxResults = 100;
query.setResultsStartIndex(offset);
query.setMaxResults(maxResults);
SearchResult result = session.getAssets(query);
if (result != null && result.getAssetSearchResults() != null) {
AssetSearchResult[] assets = result.getAssetSearchResults();
for (AssetSearchResult asset : assets) {
AssetInformation assetInformation = asset.getAsset();
// Modifier un actif, par exemple
// créer une relation "DependsOn" des actifs de type Release et Implementation à
un actif Specification du même nom à l'aide des API du client, comme suit :
// Relationship theRelationships = session.getRelationships
// getRelationships().add(newItem);
}
}
}
// Intercepter des exceptions...
Result result = new Result();
result.setMessage("Success");
return result;
}
// Obtenir l'actif
RAMAsset ramAsset = getRAMAsset();
// Obtenir l'emplacement et le contenu des artefacts
RAMFolderArtifact srcFolderArtifact = (RAMFolderArtifact)ramAsset.getArtifactsRoot();
Artifact[] srcArtifacts = srcFolderArtifact.computeArtifactsAsFlatList(new NullProgressMonitor());
for (Artifact artifact : srcArtifacts) {
RAMArtifact ramArtifact = (RAMArtifact) artifact;
InputStream is = ramArtifact.downloadContents();
f = File.createTempFile("theArtifact", null, new File(ramSession.getLocalStorageLocation()));
UtilitiesCommon.copyStreams(is, new FileOutputStream(f), null, true, true);
}