Cuando escribe políticas personalizadas, puede utilizar varias APIs. Las API que puede utilizar dependen de los activos con los que trabaja y de lo que desea hacer con esos activos. Por ejemplo, puede utilizar diferentes APIs para actualizar el activo sobre el que se está ejecutando una política que las que utiliza para crear un activo.
Puede crear políticas utilizando las API de cliente Java.
RAMSession ramSession = getPolicyContext().getRAMSession();
RAMAsset ramAsset = getPolicyContext().getRAMAsset();
Puede utilizar varias de las clases de API de Rational Asset Manager Java™ para actualizar el activo actual. Por ejemplo, puede añadir una relación o establecer una acción. También puede utilizar las clases de API para trabajar con activos, atributos de activos y artefactos.
También puede utilizar la API Java para cambiar o crear otros activos además de aquel en el que se está ejecutando la política. Para obtener un mejor rendimiento al utilizar APIs de ram.client, limite las actualizaciones de activos a una sola sesión.
RAMSession session = getPolicyContext().getRAMSession();
RAMAsset currentAsset = this.getPolicyContext().getRAMAsset();
// Utilice las API de cliente para realizar los cambios en el activo ...
// También puede modificar o crear otros activos:
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") });
// Confirme los cambios en el repositorio de activos para el activo actual:
session.putAsset(currentAsset);
// Puede utilizar queueAssetForPut y luego putAssets para colocar en cola y luego
// confirmar todos los activos que ha cambiado en la sesión como una transacción:
session.queueAssetForPut(currentAsset);
// Confirmar los cambios de todos los activos que ha cambiado en la sesión:
session.putAssets(new NullProgressMonitor());
Para las API de cliente Java , consulte: paquete de cliente y paquete de datos común.
Consulte la sección Ejemplo de este tema y Utilización de la API Java de Rational Asset Manager para obtener ejemplos adicionales.
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("Rational Asset Manager Development"));
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 {
// Crear una consulta
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();
// Modificar un activo aquí, por ejemplo,
// crear una relación "DependsOn" de los activos de tipo Release e Implementation al activo Specification del mismo nombre mediante las API de cliente, de esta manera:
// Relationship theRelationships = session.getRelationships
// getRelationships().add(newItem);
}
}
}
// Capturar excepciones...
Result result = new Result();
result.setMessage("Success");
return result;
}
// Obtener el activo
RAMAsset ramAsset = getRAMAsset();
// Obtener la ubicación y el contenido de los artefactos
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);
}