Esempio: eliminare un rapporto

L'archivio dei contenuti è un database che memorizza le informazioni sugli oggetti API di BI Bus. È possibile utilizzare i metodi dell'API BI Bus per eliminare gli oggetti dall'archivio dei contenuti. Ad esempio, si potrebbe voler eliminare un report perché non viene più utilizzato.

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:

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:

  • faultIfObjectReferenced
  • force
  • recursive

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

  1. Crea un array di oggetti baseClass .
  2. Creare un oggetto deleteOptions e impostarne le proprietà.

    Negli esempi di codice, la proprietà force è impostata su true.

  3. Utilizzare il metodo query(searchPath, properties, sortBy, options) per recuperare il report dall'archivio dei contenuti. Questa azione restituisce un oggetto baseClass .

    Negli esempi, il percorso di ricerca del report è specificato dall'utente.

  4. Aggiungere il rapporto all'array baseClass .
  5. Chiamare il metodo delete(objects, options) , utilizzando come parametri l'array baseClass che contiene il report e l'oggetto deleteOptions .

    Suggerimento: Chiedere all'utente di confermare l'eliminazione degli oggetti selezionati.

    Non è possibile annullare un'operazione di cancellazione.

  6. Controllare il numero intero restituito per il numero di oggetti eliminati dall'archivio dei contenuti.