Le service DocumentClassService expose toutes les opérations disponibles autour des composants de type DocumentClass.
Récupération des classes de documents
Récupération de toutes les classes de documents
Les exemples ci-dessous indiquent comment récupérer toutes les classes de documents.
# <CORE_HOST>: URL de base de FlowerDocs Core
# <TOKEN>: jeton d'authentification
curl -X GET "<CORE_HOST>/rest/documentclass" \
-H "token: <TOKEN>"
@Autowired
private DocumentClassService docClassService;
public List<DocumentClass> getAllDocumentClass() throws FunctionalException, TechnicalException
{
return docClassService.getAll();
}
Récupération d’une liste définie de classes de documents
Les exemples ci-dessous indiquent comment récupérer une liste de classes de documents à partir de leurs identifiants.
# <CORE_HOST>: URL de base de FlowerDocs Core
# <TOKEN>: jeton d'authentification
# <IDS>: liste d'identifiants de classes de documents
curl -X GET "<CORE_HOST>/rest/documentclass/<IDS>" \
-H "token: <TOKEN>"
@Autowired
private DocumentClassService docClassService;
public List<DocumentClass> getDocumentClasses() throws FunctionalException, TechnicalException
{
List<Id> docClassesIds = Lists.newArrayList(new Id("docClassId"));
docClassesIds.add(new Id("docClass2Id"));
return docClassService.get(docClassesIds);
}
Création de classes de documents
Les exemples ci-dessous indiquent comment créer une classe de documents.
# <CORE_HOST>: URL de base de FlowerDocs Core
# <TOKEN>: jeton d'authentification
curl -X POST "<CORE_HOST>/rest/documentclass" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"id": "CourrierTest",
"data": {
"owner": "fadmin",
"creationDate": "2024-03-07 1353.401 +0100",
"lastUpdateDate": "2024-03-07 1353.401 +0100",
"ACL": "acl-courrier"
},
"tagCategories": [
"InfoCourrier",
"InfoClient"
],
"tagReferences": [
{
"tagName": "RefClient",
"mandatory": false,
"multivalued": false,
"technical": false,
"readonly": false,
"order": 0,
"descriptions": [
{
"value": "Internal customer reference allowing to classify it",
"language": "EN"
},
{
"value": "Référence interne du client permettant de faire le lien avec son dossier",
"language": "FR"
}
]
}
],
"displayNames": [
{
"value": "Courrier Test",
"language": "FR"
}
],
"descriptions": [
{
"value": "Test Document issu d'\''une chaîne d'\''acquisition",
"language": "FR"
}
],
"RetentionDuration": {
"value": 0,
"unit": "MONTH"
},
"category": "DOCUMENT",
"active": false,
"technical": false
}
]'
@Autowired
private DocumentClassService docClassService;
public void createDocumentClasses() throws FunctionalException, TechnicalException
{
List<Id> tagCat = new ArrayList<Id>();
tagCat.add(new Id("InfoCourrier"));
tagCat.add(new Id("InfoClient"));
List<I18NLabel> tagRefLabels = new ArrayList<>();
I18NLabel tagReflabelFR = new I18NLabel(
"Référence interne du client permettant de faire le lien avec son dossier", "FR");
I18NLabel tagReflabelEN = new I18NLabel("Internal customer reference allowing to classify it", "EN");
tagRefLabels.add(tagReflabelFR);
tagRefLabels.add(tagReflabelEN);
List<I18NLabel> docClassLabels = new ArrayList<>();
I18NLabel docClasslabelFR = new I18NLabel("Test Document issu d'une chaîne d'acquisition", "FR");
docClassLabels.add(docClasslabelFR);
TagReference tag = new TagReference();
tag.setTagName("NumReference");
tag.setDescriptions(tagRefLabels);
List<TagReference> tags = new ArrayList<>();
tags.add(tag);
DocumentClass docClass = new DocumentClass();
docClass.setId(new Id("CourrierTest"));
docClass.setData(new Data());
docClass.getData().setOwner("admin");
docClass.getData().setCreationDate(new Date());
docClass.getData().setACL(new Id("acl-courrier"));
docClass.setTagCategories(tagCat);
docClass.setTagReferences(tags);
docClass.setDescriptions(docClassLabels);
docClass.setCategory(com.flower.docs.domain.component.Category.DOCUMENT);
List<DocumentClass> docClasses = new ArrayList<>();
docClasses.add(docClass);
docClassService.create(docClasses);
}
Modification de classes de documents
Les exemples ci-dessous indiquent comment modifier une classe de documents.
# <CORE_HOST>: URL de base de FlowerDocs Core
# <TOKEN>: jeton d'authentification
# <IDS>: liste des identifiants de classe de documents à mettre à jour, séparés par des virgules
curl -X POST "<CORE_HOST>/rest/documentclass/<IDS>" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"id": "CourrierTest",
"data": {
"owner": "fadmin",
"creationDate": "2024-03-07 1353.401 +0100",
"lastUpdateDate": "2024-03-07 1353.401 +0100",
"ACL": "acl-courrier"
},
"tagCategories": [
"InfoClient"
],
"tagReferences": [
{
"tagName": "RefClient",
"mandatory": true,
"multivalued": false,
"technical": false,
"readonly": false,
"order": 0
}
],
"displayNames": [
{
"value": "Courrier Test",
"language": "FR"
}
],
"descriptions": [
{
"value": "Test Document issu d'\''une chaîne d'\''acquisition",
"language": "FR"
}
],
"RetentionDuration": {
"value": 0,
"unit": "MONTH"
},
"category": "DOCUMENT",
"active": false,
"technical": false
}
]'
@Autowired
private DocumentClassService docClassService;
public List<DocumentClass> updatedocClass(DocumentClass docClass) throws FunctionalException, TechnicalException
{
TagReference tag = new TagReference();
tag.setTagName("NameClient");
docClass.getTagCategories().remove(new Id("InfoCourrier"));
docClass.getTagReferences().add(tag);
List<DocumentClass> docClasses = new ArrayList<>();
docClasses.add(docClass);
return docClassService.update(docClasses);
}
En utilisant le service REST, les informations non renseignées seront vidées : il faut envoyer la totalité de la classe de document et pas seulement les informations à modifier.
Suppression de classes de documents
Les exemples ci-dessous indiquent comment supprimer une liste de classes de documents.
# <CORE_HOST>: URL de base de FlowerDocs Core
# <TOKEN>: jeton d'authentification
# <IDS>: liste des identifiants de classe de documents à supprimer, séparés par des virgules
curl -X DELETE "<CORE_HOST>/rest/documentclass/<IDS>" \
-H "token: <TOKEN>"
@Autowired
private DocumentClassService docClassService;
public void deleteDocumentClasses() throws FunctionalException, TechnicalException
{
List<Id> docClassesIds = Lists.newArrayList(new Id("docClassId"));
docClassService.delete(docClassesIds);
}
La suppression ne fait aucun contrôle : il faut donc vérifier qu’il n’y a pas d’instances en cours avant la suppression d’une classe de document.