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.
GET {{core}}/rest/documentclass HTTP/1.1
-- Paramètre d'URL --
core: host de FlowerDocs core
-- Headers --
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.
GET {{core}}/rest/documentclass/{ids} HTTP/1.1
-- Paramètre d'URL --
core: host de FlowerDocs core
ids: liste d'identifiants de classes de documents
-- Headers --
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.
POST {{core}}/rest/documentclass HTTP/1.1
-- Paramètre d'URL --
core: host de FlowerDocs core
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
{
"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.
POST {{core}}/rest/documentclass/{ids} HTTP/1.1
-- Paramètre d'URL --
core: host de FlowerDocs core
ids : liste des identifiants de classe de documents à mettre à jour, séparés par des virgules
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
{
"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.
DELETE {{core}}/rest/documentclass/{ids} HTTP/1.1
-- Paramètre d'URL --
core: host de FlowerDocs core
ids : liste des identifiants de classe de documents à supprimer, séparés par des virgules
-- Headers --
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.