Services

Consommer les services Flower depuis l'API JS


Cette section décrit comment consommer les services exposés par FlowerDocs directement depuis l’API JS.

Composants

Tout comme la couche de service, un service par catégorie de composant est mis à dispotion :

  • Document : JSAPI.get().document()
  • Dossier : JSAPI.get().folder()
  • Dossier virtuel : JSAPI.get().virtualFolder()
  • Tâche : JSAPI.get().task()

CRUD & Recherche

Fonctions Description
create(Component[] components, successCallback, errorCallback) Création de nouveaux composants d’une même catégorie
get(String[] ids, successCallback, errorCallback) Récupération des composants à partir de leurs identifiants
update(Component[] components, successCallback, errorCallback) Mise à jour des composants
doDelete(String[] ids, successCallback, errorCallback) Suppression des composants à partir de leurs identifiants
search(SearchRequest request, successCallback, errorCallback) Recherche de composants basée sur une requête

Nota : Les paramètres successCallback et errorCallback sont décrit dans la partie Gestion des réponses et erreurs L’exemple ci-dessous permet de créer un document et le sauvegarder dans Flower:

var bill = new Document();
bill.setName("FC140023 ");
bill.setClassId("ProviderBill");

var documentAPI = JSAPI.get().document();
documentAPI.create(new Array(bill), function(documents)
{
   JSAPI.get().getNotificationAPI().sendInformation(documents.length + " documents were created");
});

Les dossiers & leurs contenus

Fonctions Description
addChildren(String folderId, ComponentReference[] children, boolean replace) Ajout d’enfants à un dossier
deleteChildren(String folderId, ComponentReference[] children) Suppression d’enfants d’un dossier

L’exemple ci-dessous permet d’ajouter un document dans un dossier:

var child = new ComponentReference("documentId", "DOCUMENT");
var folderAPI = JSAPI.get().folder();
folderAPI.addChildren("folderId", new Array(child), false, function()
{
	JSAPI.get().getNotificationAPI().sendInformation("The document has been added as child");
});

Le contenu d’un dossier est déterminé à partir de références de composant qui peuvent être instanciées tel que :

var reference = new ComponentReference();
reference.setId("componentId");
reference.setCategory("componentCategory");

Les tâches

Fonctions Description
answer(String[] ids, Answer answer) Application d’une réponse à plusieurs tâches
assign(String[] ids, String userId) Assignation de tâche à un utilisateur

L’exemple ci-dessous permet d’appliquer une réponse à une tâche:

var taskAPI = JSAPI.get().task();
taskAPI.answer(new Array("taskId"), new Answer("Validate"), function()
{
    JSAPI.get().getNotificationAPI().sendInformation("Answer was applied");
});

Gestion des réponses et erreurs

Toutes les fonctions possèdent deux types de callback :

  • Un callback exécuté en cas de succès success
  • Un callback, optionnel, exécuté en cas d’erreur error

L’exemple ci-dessous permet de mettre à jour un document :

var documentAPI = JSAPI.get().document();
documentAPI.get(new Array("unknown"), 
	function(documents){
		console.info("Success!");
	},
	function(error){
		console.error("Documents could not be get: " + error);
	}
);

Classe de composants

Tout comme la couche de service, un service par catégorie de composant est mis à dispotion :

  • Classe de document : JSAPI.get().documentClass()
  • Classe de dossier : JSAPI.get().folderClass()
  • Classe de dossier virtuel : JSAPI.get().virtualFolderClass()
  • Classe de tâche : JSAPI.get().taskClass()

Pour chacun de ces services, la fonction `get permettant de récupérer la classe de composant est disponible. Comme les services de composants, toutes les fonctions possèdent deux callback, un de succès et un d’erreur (cf Gestion des réponses et erreurs).

var documentClassAPI = JSAPI.get().documentClass();
documentClassAPI.get(new Array("unknown"), 
	function(documentClasses){
		console.info("Success !");
	},
	function(error){
		console.error("Document classes could not be get: " + error);
	}
);