Esempio: eliminare un rapporto
Gli esempi di codice di questa sezione mostrano come eseguire le seguenti operazioni:
- recuperare un report dall'archivio dei contenuti utilizzando il metodo
query(searchPath, properties, sortBy, options) - eliminare un report dall'archivio dei contenuti utilizzando il metodo
delete(objects, options)
Prima di utilizzare questi metodi, è necessario eseguire le seguenti operazioni:
- connettersi al IBM® Cognos® Analytics server (vedere Esempio - connettersi a un server IBM Cognos Analytics )
- se è richiesta l'autenticazione, accedere al server BI (vedere Esempio - accesso a un server IBM Cognos Analytics )
Negli esempi di codice, l'oggetto è un report e il suo genitore è una cartella o un pacchetto.
Metodi
Per eliminare i rapporti si possono utilizzare i seguenti metodi.
query(searchPath, properties, sortBy, options)delete(objects, options)
Per le autorizzazioni e le capacità necessarie per ciascun metodo, consultare il capitolo Metodi della Guida per gli sviluppatori del kit di sviluppo software.
Codice java
Per vedere il codice nel suo contesto, si veda il seguente esempio:
installation_location/sdk/java/ReportDelete/DeleteReport.java
Il seguente frammento di codice Java™ dimostra come sia possibile eliminare un report dall'archivio dei contenuti.
delOptions.setForce(true);
delOptions.setFaultIfObjectReferenced(false);
delOptions.setRecursive(true);
try
{
if (reportToBeDeleted != null)
{
System.out.println("Deleting report: " + reportToBeDeleted);
BaseClass reportsForDeletion[] =
new BaseClass[] { reportToBeDeleted.getBaseClassObject()};
int delReturnCode =
connection.getCMService().delete(reportsForDeletion, delOptions); Codice C#
Per vedere il codice nel suo contesto, si veda il seguente esempio:
installation_location/sdk/csharp/DeleteReport/DeleteReport.cs
Il seguente frammento di codice C# dimostra come sia possibile eliminare un report dall'archivio dei contenuti.
deleteOptions del = new deleteOptions();
del.force = true;
// The recursive option guarantees that every report history
// attached to this report will also be deleted.
del.recursive = true;
// extract the baseClass from the report parameter
baseClass[] bc = new baseClass[1];
bc[0] = report.baseclassobject;
int nbItemsDeleted = cBICMS.delete( bc, del );
if (nbItemsDeleted>0)
{
resultMessage = "...The item \"" + report.searchPath.value +
"\" was successfully deleted.";
} Spiegazione
Quando si utilizza il metodo query(searchPath, properties, sortBy, options) , è necessario specificare il parametro search per identificare il singolo oggetto che si desidera recuperare.
Si può anche specificare il parametro properties per impostare le proprietà da restituire e il parametro options per impostare le opzioni dell'operazione di query, come il numero massimo di oggetti nel set di risultati. Negli esempi di codice, il parametro options non è specificato. Il metodo query(searchPath, properties, sortBy,
options) restituisce il rapporto richiesto dall'utente.
In tutti gli esempi di codice, il parametro del percorso di ricerca è rappresentato dalla variabile reportToBeDeleted. Questo valore viene utilizzato per costruire il riferimento richiesto dal metodo delete(objects,
options) . Il percorso di ricerca specifica gli oggetti che si desidera eliminare. Gli oggetti dell'archivio di contenuti sono organizzati in un'unica gerarchia che inizia con un singolo oggetto principale. L'oggetto principale, visualizzato in un percorso di ricerca come una barra (/), contiene tutti gli oggetti disponibili nell'archivio dei contenuti.
Gli oggetti sono collegati ad altri oggetti tramite relazioni genitore-figlio (contenimento) e tramite riferimenti. Le relazioni genitore-figlio sono utilizzate per costruire la proprietà del percorso di ricerca per gli oggetti persistenti nell'archivio dei contenuti. Queste relazioni descrivono la posizione degli oggetti nell'archivio dei contenuti e si riflettono negli elementi del percorso di ricerca di ciascun oggetto.
Ad esempio, il seguente percorso di ricerca mostra la posizione nell'archivio dei contenuti del report denominato Order Product List nella cartella denominata SDK Report Samples:
/content/package[@name='GO
Data Warehouse (query)']/folder[@name='SDK Report Samples']/report[@name='Order
Product List']
Per informazioni sulla gestione dei contenuti, consultare la Guida per gli sviluppatori del Software Development Kit.
In tutti gli esempi di codice, il parametro proprietà è rappresentato dalla variabile props. Il parametro properties specifica l'insieme di proprietà che si desidera restituire. Si usa il tipo propEnum per definire il parametro properties, perché questo insieme di enumerazioni contiene tutte le proprietà possibili per tutti gli oggetti persistiti nell'archivio dei contenuti. Nell'esempio Java, vengono restituite le proprietà searchPath e defaultName .
In tutti gli esempi di codice, i risultati del metodo query(searchPath,
properties, sortBy, options) sono utilizzati come valore per il parametro objects nella chiamata al metodo delete(objects,
options) . Gli oggetti persistiti nell'archivio dei contenuti sono tutte istanze di classi presenti nell'insieme di enumerazioni classEnum. Queste classi sono tutte derivate dalla classe baseClass. Pertanto, il parametro objects è di tipo baseClass per consentire la specificazione di qualsiasi classe di oggetto persistito.
Quando si utilizza il metodo delete(objects, options) , è possibile specificare le seguenti opzioni di eliminazione:
faultIfObjectReferencedforcerecursive
Se non si imposta l'opzione recursive su true, gli oggetti che hanno discendenti non vengono eliminati e viene restituita un'eccezione. L'opzione force influisce sulle autorizzazioni necessarie a un utente per eliminare un oggetto. In entrambi gli esempi di codice, il parametro options è rappresentato dalla variabile del, che imposta l'opzione force su true.
Negli esempi di codice, viene restituito un valore intero che indica il numero di oggetti eliminati. Se il valore è maggiore di 0, l'operazione di cancellazione è riuscita.
Passi da compiere per scrivere i propri programmi
- Crea un array di oggetti
baseClass. - Creare un oggetto
deleteOptionse impostarne le proprietà.Negli esempi di codice, la proprietà
forceè impostata sutrue. - Utilizzare il metodo
query(searchPath, properties, sortBy, options)per recuperare il report dall'archivio dei contenuti. Questa azione restituisce un oggettobaseClass.Negli esempi, il percorso di ricerca del report è specificato dall'utente.
- Aggiungere il rapporto all'array
baseClass. - Chiamare il metodo
delete(objects, options), utilizzando come parametri l'arraybaseClassche contiene il report e l'oggettodeleteOptions.Suggerimento: Chiedere all'utente di confermare l'eliminazione degli oggetti selezionati.
Non è possibile annullare un'operazione di cancellazione.
- Controllare il numero intero restituito per il numero di oggetti eliminati dall'archivio dei contenuti.