- 43 Minutes à lire
- Imprimer
- SombreClair
- PDF
oData gestion des entités
- 43 Minutes à lire
- Imprimer
- SombreClair
- PDF
Description des propriétés
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant utilisateur |
Name | NON | Texte (500) | Nom complet |
CreatedBy | NON | Entité : User | Utilisateur ayant créé cet utilisateur |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur cet utilisateur |
CreatedOn | NON | Date et heure | Date UTC de création de l’utilisateur |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de l’utilisateur |
DeletedOn | NON | Date et heure | Date UTC d’archivage de l’utilisateur |
Gender | OUI | Énumération | Sexe Valeur possible :
|
Prefix | OUI | Énumération | Civilité Valeur possible :
|
Category | OUI | Énumération | Catégorie Valeur possible :
|
ExternalId | OUI | Texte (250) | Identifiant de l’utilisateur dans le SI client. |
FirstName | OUI | Texte (250) | Prénom |
LastName | OUI | Texte (250) | Nom |
Address | OUI | Texte (illimité) | Adresse |
City | OUI | Texte(250) | Ville |
Country | OUI | Texte(250) | Pays |
Fax | OUI | Texte(250) | Numéro de FAX |
WorkPhone | OUI | Texte(250) | Téléphone du bureau |
MobilePhone | OUI | Texte(250) | Téléphone portable |
PostalCode | OUI | Texte(50) | Code postal |
Coefficient | OUI | Texte (250) | Coefficient (salaire) |
DisabledOn | OUI | Date et heure | Date de désactivation du compte |
DrivingLicence | OUI | Texte(250) | Permis de conduire |
EnabledOn | OUI | Date et heure | Date d’activation du compte |
FirstLanguage | OUI | Texte (250) | Langue préférée |
FirstNameUse | OUI | Texte (250) | Prénom d'usage |
Language | OUI | Énumération | Langue de l’utilisateur Valeur possible :
|
LastNameUse | OUI | Texte (250) | Nom d'usage |
MaidenName | OUI | Texte (250) | Nom de jeune fille |
Nationality | OUI | Texte (250) | Nationalité |
Code | OUI | Texte (250) | Matricule de l’utilisateur |
CompletePictureUrl | NON | Texte (illimité) | url relative de « l’image profil » de l’utilisateur |
Login | OUI | Texte (250) | Login |
OUI | Texte (250) | ||
PositionTitle | OUI | Texte (250) | Intitulé du poste |
RateWorkingTime | OUI | Numérique | Taux de temps de travail |
BornOn | OUI | Date et heure | Date de naissance |
StartedOn | OUI | Date et heure | Date d’entrée dans la société |
FinishedOn | OUI | Date et heure | Date de sortie dans la société |
TimeZoneId | OUI | Texte (250) | Fuseau horaire. Voir en annexe partie 20.1.3 pour une liste des fuseau valides |
OptionalField1 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalField2 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalField3 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalField4 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalField5 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalField6 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalField7 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalField8 | OUI | Texte (illimité) | Champ texte optionnel |
OptionalEnumField1 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalEnumField2 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalEnumField3 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalEnumField4 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalEnumField5 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalEnumField6 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalEnumField7 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalEnumField8 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
Grade | OUI | Énumération | Grade de l’utilisateur Valeur possible :
|
Domains | OUI | Collection d’entités : Domains | Domaines dont l’utilisateur est membre. |
Establishments | OUI | Collection d’entités : Establishments | Etablissements dont l’utilisateur est membre. |
Structures | OUI | Collection d’entités : Structures | Structures dont l’utilisateur est membre. |
Jobs | OUI | Collection d’entités : Jobs | Emplois dont l’utilisateur est membre. |
Projects | OUI | Collection d’entités : Projects | Projets dont l’utilisateur est membre. |
Teams | OUI | Collection d’entités : Teams | Equipes dont l’utilisateur est membre. |
SocialGroups | NON | Collection d’entités : SocialGroups | Groupes communautaires dont l’utilisateur est membre. |
DynamicGroups | NON | Collection d’entités : DynamicGroups | Groupes dynamiques dont l’utilisateur est membre. |
UserRoles | NON | Collection d’entités : UserRoles | Roles appartenant à l’utilisateur. |
TutorResource | NON | Entité : TutorResource | Ressource formatrice. |
NoMailing | OUI | Booléen | Ne pas envoyer de mail. |
Légende :
Propriété Navigable
Recherche d’utilisateurs
Le nom de l’entité est « Users »
Pour récupérer la liste des utilisateurs il suffit de spécifier le nom de l’entité après le point d’entrée.
/odata-api/Users
Attention : il est recommandé de spécifier l’option $top pour limiter le nombre d’éléments retournés
La méthode d’envoi doit être « GET »
Pour rechercher un utilisateur par son nom, utiliser l’option de filtrage $filter.
/odata-api/Users?$filter=FirstName eq 'Pierre'
{ "@odata.context": "https://develop-qa.syfadis.com/odata-api/$metadata#Users",
"value": [
{
"Id": 18776068,
"ApplicationId": 9797632,
"DeletedOn": null,
"CreatedOn": "2018-05-16T14:36:12Z",
"ModifiedOn": "2023-09-12T13:58:53.2081327Z",
"Version": 71,
"Name": "Jean Dubois",
"Description": null,
"ExternalId": "user8",
"PrimaryDomainId": 114884610,
"Gender": "Male",
"Prefix": "Mister",
"Category": "Level3",
"FirstName": "Jean",
"LastName": "Dubois",
"Address": "12 avenue des Tulipes",
"City": "Rueil Malmaison",
"Country": "France",
"Fax": "",
"WorkPhone": "3 85 42 42 42",
"MobilePhone": "",
"PostalCode": "92012",
"Coefficient": "",
"DisabledOn": null,
"EnabledOn": null,
"FirstLanguage": null,
"FirstNameUse": null,
"Language": "French",
"LastNameUse": null,
"MaidenName": null,
"Nationality": "",
"Title": "Responsable pédagogique",
"Code": "user8",
"CompletePictureUrl": "/Files/Applications/9797632/Pictures/18776068/AllanShelton.jpg",
"Login": "apprenant8",
"Mail": "sebastien.xxxxx@gmail.com",
"PositionTitle": "Responsable pédagogique",
"RateWorkingTime": null,
"BornOn": "1968-01-02",
"StartedOn": "2000-01-02",
"FinishedOn": null,
"OptionalField1": "",
"OptionalField2": null,
"OptionalField3": null,
"OptionalField4": null,
"OptionalField5": null,
"OptionalField6": null,
"OptionalField7": null,
"OptionalField8": null,
"TimeZoneId": "",
"OptionalEnumField1": "None",
"OptionalEnumField2": "None",
"OptionalEnumField3": "None",
"OptionalEnumField4": "None",
"OptionalEnumField5": "None",
"OptionalEnumField6": "None",
"OptionalEnumField7": "None",
"OptionalEnumField8": "None",
"OptionalDateField1": null,
"OptionalDateField2": null,
"OptionalDateField3": null,
"Grade": "None",
"SyncToolsStatus": "Available",
"ConnectionState": "Disconnected",
"BlogId": null,
"AnonymisationStatus": "NotAnonymised",
"UserProjectStatus": null,
"TotalPercentRealized": null,
"SkillRequirementCoverage": null,
"NoMailing": false,
"PositionStartedOn": null,
"UserType": "None",
"Comments": "",
"PlatformMailTransfer": false,
"PictureUrl": "AllanShelton.jpg",
"Import_DomainExternalId": null,
"Import_CodeProfils": null,
"ManagerExternalId": null,
"StructureStartedOn": null,
"JobStartedOn": null,
"JobAge": 0,
"DomainStartedOn": null,
"EstablishmentStartedOn": null,
"PosteStartedOn": null,
"BlockedEducationally": false,
"BlockedAdministratively": false,
"PosteAge": 0,
"HideFirstConnectionWizard": false,
"ForceFirstConnectionWizard": false,
"FirstConnectionWizardSavedOn": null,
"ImageFile": "AllanShelton.jpg",
"ContractType": "None",
"ContractNature": "None",
"WorkTime": "None",
"ContractStart": null,
"ManagementLevel": "",
"TermsOfUseValidatedOn": "2021-01-26T09:17:37Z",
"AnonymisationFinishedOn": null,
"InterviewAvailability": true,
"CreatedBy": {
"Id": 0,
"Name": "Superviseur",
"TypeAlias": null,
"ExternalId": null,
"TypeName": null
},
"ModifiedBy": {
"Id": 18776100,
"Name": "Pellerin Guillaume",
"TypeAlias": null,
"ExternalId": null,
"TypeName": null
},
"DynamicFields": {},
"DeletedBy": null
}
]
}
Pour ne retourner qu’une liste de propriétés, utiliser l’opérateur $select
/odata-api/Users?$select=FirstName,LastName
Obtenir des informations sur un utilisateur
Pour récupérer toutes les informations sur un utilisateur en particulier, vous pouvez spécifier son identifiant de la manière suivante.
/odata-api/Users(327680)
Pour ne récupérer qu’une propriété précisément, vous pouvez la préciser de la manière suivante.
/odata-api/Users(327680)/Name
Autrement, utiliser l’opérateur $select pour spécifier les propriétés souhaitées.
Exemple pour récupérer les rôles d’un utilisateur (nom du rôle et domaine):
/odata-api/Users(3852664867)?$expand=UserRoles($expand=Role,Domain)
Création d’un utilisateur
Pour créer une entité, la requête doit être envoyée avec la méthode « POST » et spécifier les propriétés éditables de l’entité dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires et ne pouvez définir que les propriétés éditables.
L’url doit contenir le nom de l’entité à savoir « User ».
La requête suivante crée un nouvel utilisateur avec pour domaine principal le domaine ayant l'identifiant Syfadis 131072 et un domaine secondaire ayant l'identifiant 131079:
En réponse, le contenu de l’entité créée est retourné. Notez que les propriétés de navigation de sont pas incluses :
Seules les propriétés éditables peuvent être spécifiées.
Remarque : Si le mot de passe n’est pas spécifié dans le JSON et qu’il est obligatoire pour la création d’un utilisateur, vous pouvez le générer automatiquement en positionnant le paramètre Génération automatique de mot de passe à Vrai (dans Paramètres > La configuration, puis sous Paramètres > Annuaire > Login et mot de passe).
Les types de réponses possibles :
201 Created : OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section : Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Modification d’un utilisateur
Pour modifier une entité, la requête doit être envoyée avec la méthode « PATCH » et spécifier les propriétés éditables à mettre à jour, dans le corps au format JSON.
Nous recommandons l'utilisation du PATCH plutôt que celle du PUT pour les mises à jour d'entité.
Dans le cas où vous souhaitez récupérer l’ensemble des propriétés de l’entité, après sa mise à jour vous pouvez ajouter la préférence de type "return=representation" dans l'entête (Header) de la requête comme dans l’exemple ci-dessous. Cela permet la récupération de toutes les propriétés de l'objet après sa modification dans la réponse et contribue ainsi à réduire la charge de travail du serveur en limitant le nombre de requêtes.
La requête suivante modifie la propriété code pour l’utilisateur ayant l'identifiant Syfadis 327680.
En réponse, le contenu de l’entité mise à jour est retourné.
Seules les propriétés éditables sont modifiables.
Les types de réponses possibles :
200 OK: OK (Cas du header avec retour selon une représentation)
204 No Content: OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
404 NotFound: Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Archivage d’un utilisateur
Pour archiver une entité, la requête doit être envoyée avec la méthode « DELETE » en ciblant une entité.
La requête suivante archive l’utilisateur ayant l’identifiant Syfadis 327680 :
Les types de réponses possibles :
204 No Content: OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound: Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Restauration d’un utilisateur
Pour restaurer une entité, il faut appeler la fonction « Services.Restore ».
La requête suivante restaure l’utilisateur ayant l’identifiant Syfadis 327680.
POST /odata-api/Users(327680)/Services.Restore
Les types de réponses possibles :
204 No Content: OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound: Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Ajouter un rôle à un utilisateur
Pour ajouter un rôle à un utilisateur, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.AddUserRole » sur un utilisateur ciblé. Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
RoleId | X | Numérique | Identifiant Syfadis du rôle |
DomainId | X | Numérique | Identifiant Syfadis du domaine sur lequel le rôle est appliqué. |
L’action à appeler est : Services.AddUserRole
La requête suivante ajoute le rôle ayant l’identifiant Syfadis 229378 sur le domaine ayant l’identifiant Syfadis 163840 pour l’utilisateur ayant l’identifiant Syfadis 327680
Les types de réponses possibles :
201 Created : OK (la réponse contient une entité de type UserRole)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Actuellement il n'est pas possible d'ajouter un rôle au moment de la création de l'utilisateur
Retirer un rôle à un utilisateur
Pour retirer un rôle à un utilisateur, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.RemoveUserRole » sur un utilisateur ciblé. Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
UserRoleId | X | Numérique | Identifiant Syfadis de l’entité matérialisant le lien rôle-utilisateur (entité UserRole) |
L’action à appeler est : Services.RemoveUserRole
La requête suivante retire le rôle créé dans le chapitre « Ajouter un rôle à un utilisateur »
Définir l’image de profil d’un utilisateur
Pour ajouter une image de profil à un utilisateur, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.SetUserPicture » sur un utilisateur ciblé. Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
ImageContent | X | Binaire | Image de profil |
L’action à appeler est : Services.SetUserPicture
La requête suivante ajoute une image de profil à l’utilisateur ayant l’identifiant Syfadis 126976000
*** REQUEST ***
Http Method : POST
Http Headers :
Authorization : Basic c2ZlOjFCb3VnYWludmlsbCFlcg==
Http URI :
https://bpce.syfadis.local/odata-api/Users(126976000)/Services.SetUserPicture
Http body :
{
"ImageContent" : [137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,…]
}
*** RESPONSE ***
Status : 204 Created
Les types de réponses possibles :
204 No Content : OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Actuellement il n'est pas possible d'ajouter une image de profil au moment de la création de l'utilisateur.
Gestion des organismes de formation
Description des propriétés
Cette entité se nomme « TrainingProvider ». Elle est associée aux objets « Formation » et « Session de formation ».
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant du groupe |
CreatedBy | NON | Entité : User | Utilisateur ayant créé l’organisme de formation |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur l’organisme de formation |
CreatedOn | NON | Date et heure | Date UTC de création de l’organisme de formation |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de l’organisme de formation |
DeletedOn | NON | Date et heure | Date UTC de suppression de l’organisme de formation |
ExternalId | OUI | Texte(250) | Identifiant de l’organisme de formation dans le SI client |
Name | OUI | Texte(250) | Nom de l’organisme de formation |
Code | OUI | Texte(50) | Code de l’organisme de formation |
Description | OUI | Texte(Illimité) | Description de l’organisme de formation |
ActivityNumber | OUI | Texte(50) | Numéro d’activité |
SiretNumber | OUI | Texte(50) | Numéro SIRET |
SirenNumber | OUI | Texte(50) | Numéro SIREN |
SocialReason | OUI | Texte(250) | Raison sociale |
PhoneNumber | OUI | Texte(50) | Numéro de téléphone |
FaxNumber | OUI | Texte(50) | Numéro de fax |
Contact | OUI | Texte(250) | Contact |
OUI | Texte(250) | Adresse mail | |
WebUrl | OUI | Texte(250) | Url du site web |
SpecificInformation | OUI | Texte(Illimité) | Informations complémentaires |
Address1 | OUI | Texte(250) | Adresse (première partie) |
Address2 | OUI | Texte(250) | Adresse (seconde partie) |
City | OUI | Texte(250) | Ville |
PostalCode | OUI | Texte(50) | Code postal |
Country | OUI | Texte(250) | Pays |
PrimaryDomain | NON | Entité : Group | Domaine de gestion |
Gestion des groupes
Les groupes représentent un ensemble d’entités structurées de la même manière, et qui permet de regrouper les utilisateurs.
Les entités qualifiées de groupes sont :
Domains | Les domaines |
Establishments | Les établissements |
Jobs | Les emplois |
Projects | Les projets |
Structures | Les structures |
Teams | Les équipes |
Localisations | Les lieux de formation |
Description des propriétés
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant du groupe |
CreatedBy | NON | Entité : User | Utilisateur ayant créé ce groupe |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur ce groupe |
CreatedOn | NON | Date et heure | Date UTC de création du groupe |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification du groupe |
DeletedOn | OUI | Texte(250) | Date UTC de la suppression du groupe |
ExternalId | OUI | Texte(250) | Identifiant du groupe dans le SI client |
Name | OUI | Texte(250) | Nom du groupe |
Code | OUI | Texte(50) | Code du groupe |
Father0 | NON | Numérique | Identifiant du groupe père de niveau 0. |
Parent[groupe] *groupe = Type de groupe | OUI | Entité : Group | Groupe parent |
PrimaryDomain | OUI | Entité : Domain | Domaine de gestion |
Managers | OUI | Collection d’entités : User | Liste des responsables |
Members | NON | Collection d’entités : User | Liste des membres |
Légende :
Propriété Navigable
Rechercher des groupes
Pour récupérer la liste des groupes, il suffit de spécifier le nom de l’entité après le point d’entrée.
/odata-api/Domain
Attention : il est recommandé de spécifier l’option $top pour limiter le nombre d’éléments retournés.
La méthode d’envoi doit être « GET »
Pour rechercher un groupe par son nom, utiliser l’option de filtrage $filter.
/odata-api/Domains?$filter=Name eq 'Futurskill'
Obtenir des informations sur un groupe
Pour récupérer toutes les informations sur un groupe en particulier, vous pouvez spécifier son identifiant de la manière suivante.
/odata-api/Domains(163840)

Obtenir des informations sur un groupe
Création d’un groupe
Pour créer une entité, la requête doit être envoyée avec la méthode « POST » et spécifier les propriétés éditables de l’entité dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires et ne pouvez définir que les propriétés éditables
L’url doit contenir le nom de l’entité à savoir l’une des valeurs indiquées au début de ce chapitre
La requête suivante crée une structure nommée FuturSkill :
En réponse, le contenu de l’entité créée est retourné :
Seules les propriétés éditables peuvent être spécifiées
Les types de réponses possibles :
201 Created : OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Modification d’un groupe
Pour modifier une entité, la requête doit être envoyée avec la méthode « PATCH » et spécifier les propriétés éditables à mettre à jour, dans le corps au format JSON.
Nous recommandons l'utilisation du PATCH plutôt que celle du PUT pour les mises à jour d'entité.
Dans le cas où vous souhaitez récupérer l’ensemble des propriétés de l’entité, après sa mise à jour vous pouvez ajouter la préférence de type "return=representation" dans l'entête (Header) de la requête comme dans l’exemple ci-dessous. Cela permet la récupération de toutes les propriétés de l'objet après sa modification dans la réponse et contribue ainsi à réduire la charge de travail du serveur en limitant le nombre de requêtes.
La requête suivante modifie la propriété code pour la structure ayant l'identifiant Syfadis 2228224.
En réponse, le contenu de l’entité mise à jour est retourné :
Seules les propriétés éditables sont modifiables
Les types de réponses possibles :
200 OK: OK (Cas du header avec retour selon une représentation)
204 No Content: OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound: Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Archiver un groupe
Pour archiver une entité, la requête doit être envoyée avec la méthode « DELETE » en ciblant une entité.
La requête suivante archive la structure ayant l’identifiant Syfadis 2228224
Les types de réponses possibles :
204 No Content: OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound: Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Restaurer un groupe
Pour restaurer une entité, il faut appeler la fonction « Services.Restore ».
La requête suivante restaure la structure ayant l’identifiant Syfadis 2228224
POST /odata-api/Structures(2228224)/Services.Restore
Les types de réponses possibles :
204 No Content: OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound: Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Gestion des sessions
Il existe deux types de sessions dans Syfadis.
Les sessions de formation (TrainingSessions)
Les sessions d’évaluation (EvaluationSessions)
Session de formation
Propriété | Obligatoire | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de la session | |
CreatedBy | NON | Entité : User | Utilisateur ayant créé cette session | |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur cette session | |
CreatedOn | NON | Date et heure | Date UTC de création de la session | |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de la session | |
DeletedOn | NON | Date et heure | Date UTC d’archivage de la session | |
ExternalId | OUI | Texte(250) | Identifiant de la session dans le SI client | |
Name | OUI | Texte(250) | Nom de la session | |
Code | OUI | Texte(50) | Code de la session | |
Status | NON | Énumération | Etat de la session : Valeur possible :
| |
PriceByUser | OUI | Numérique | Prix de la session par utilisateur | |
PriceBySession | OUI | Numérique | Prix de la session | |
LearningMode | OUI | Énumération | Mode d’apprentissage de la formation au moment de la création de la session. Valeur possible :
| |
Duration | NON | Complexe Type : Duration | Durée estimée | |
DurationHours | NON | Numérique | Durée estimée en heures | |
TimeAvailable | NON | Complexe Type : Duration | ||
TimeEstimated | NON | Complexe Type : Duration | Temps estimé | |
RegisteringClosingDate | OUI | Date et heure | Date de clôture de la session | |
UserCount | NON | Numérique | Nombre d’utilisateurs actuellement inscrits sur la session. | |
UserCountMin | OUI | Numérique | Nombre minimum d’utilisateurs requis pour la session (Seuil de rentabilité) | |
UserCountMax | OUI | Numérique | Nombre maximum d’utilisateurs pour cette session (Capacité d’accueil) | |
StartedOn | X | NON | Date et heure | Date UTC de début de la session |
FinishedOn | X | NON | Date et heure | Date UTC de fin de la session |
Modality | X | OUI | Énumération | Modalité d’inscription : Valeur possible :
|
OrganisationModality | OUI | Énumération | Mode d'organisation Valeur possible :
| |
TrainingRequestCategory | OUI | Énumération | Catégorie d'action de formation Valeur possible :
| |
Imputable | OUI | Binaire | Session Imputable | |
IsCancelled | NON | Binaire | Est annulée | |
CancelDescription | NON | Texte (500) | Description de l’annulation | |
CancelReason | NON | Énumération | Raison de l’annulation Valeur possible :
| |
PlanningComplete | NON | Énumération | Planning Complet Valeur possible :
| |
TrainingProvider | OUI | Entité : TrainingProvider | Organisme de formation associé à la session | |
Manager | OUI | Entité : User | Responsable administratif | |
Tutors | NON | Collection d’entités : User | Formateurs de la session | |
Training | NON | Entité : Training | Formation associé à cette session | |
PrimaryDomain | OUI | Entité : Group | Domaine de gestion de la session | |
Localisations | OUI | Entité : Group | Lieu de formation de la session | |
OptionnalEnumField1 à 3 | NON | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. | |
AvailablePlaces | NON | Numérique | Nombre de places disponibles |
Légende : Propriété Navigable
Session d’évaluation
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de la session |
CreatedBy | NON | Entité : User | Utilisateur ayant créé cette session |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur cette session |
CreatedOn | NON | Date et heure | Date UTC de création de la session |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de la session |
DeletedOn | NON | Date et heure | Date UTC d’archivage de la session |
ExternalId | NON | Texte(250) | Identifiant de la session dans le SI client |
Name | OUI | Texte(250) | Nom de la session |
Code | OUI | Texte(50) | Code de la session |
Description | OUI | Texte(illimité) | Description de la session |
PriceByUser | OUI | Numérique | Prix de la session par utilisateur |
Status | NON | Énumération | Statut de la session Valeur possible :
|
AccessConstraint | NON | Énumération | Contrainte d’accès Valeur possible :
|
RegisteringClosingDate | OUI | Date et heure | Date de clôture des inscriptions |
UserCount | NON | Numérique | Nombre d’utilisateurs actuellement inscrit sur la session. |
StartedOn | OUI | Date et heure | Date UTC de début de la session |
FinishedOn | OUI | Date et heure | Date UTC de fin de la session |
Modality | OUI | Énumération | Modalité d’inscription : Valeur possible :
|
IsCancelled | NON | Binaire | Est annulée |
CancelDescription | NON | Texte (500) | Description de l’annulation |
CancelReason | NON | Énumération | Raison de l’annulation Valeur possible :
|
Évaluation | NON | Entité : Évaluation | Évaluation associé à la session Propriété navigable |
PrimaryDomain | NON | Entité : Domain | Domaine de gestion de la session |
Evaluators | OUI | Entité : User | Evaluateur de la session |
Légende :
Propriété Navigable
Rechercher des sessions
Pour récupérer la liste des sessions, il suffit de spécifier le nom de l’entité après le point d’entrée.
/odata-api/ TrainingSessions
/odata-api/ ÉvaluationSessions
Attentio : il est recommandé de spécifier l’option $top pour limiter le nombre d’éléments retournés.
La méthode d’envoi doit être « GET »
Pour rechercher une session par son nom, utiliser l’option de filtrage $filter.
/odata-api/ TrainingSessions?$filter=contains(Name,'session')
Obtenir des informations sur une session
Pour récupérer toutes les informations sur une session en particulier, vous pouvez spécifier son identifiant de la manière suivante.
/odata-api/EvaluationSessions(2850816)
Rechercher les séances présentielles ou classes virtuelles d’une session
Le nom de l’entité à requêter est « MeetingSessions »
/odata-api/MeetingSessions
La méthode d’envoi doit être « GET »
Pour obtenir la liste des séances présentielles d’une session, utiliser l’option de filtrage $filter.
/odata-api/MeetingSessions?$filter=TrainingSession/Id eq 2247950336 and MeetingMode eq 'Presential'
*** REQUEST ***
Http Method : GET
Http Headers :
Authorization : Basic c2ZlOjFCb3VnYWludmlsbCFlcg==
Http URI :
https://demo.condate.com/odata-api/MeetingSessions?$filter=TrainingSession/Id eq 2247950336 and MeetingMode eq 'Presential'
*** RESPONSE ***
Status : 200 OK
Body : {
"@odata.context": "https://demo.condate.com/odata-api/$metadata#MeetingSessions",
"value": [
{
"Id": 2311913488,
"Name": "Séance présentielle",
"ExternalId": null,
"CreatedBy": {
"Id": 0,
"Name": "Superviseur"
},
"ModifiedBy": {
"Id": 0,
"Name": "Superviseur"
},
"CreatedOn": "2022-06-15T13:23:42.2486119Z",
"ModifiedOn": "2022-06-15T13:41:54.8040112Z",
"DeletedOn": null,
"Description": null,
"Duration": {
"Length": 9.00000,
"Scale": "Hours"
},
"DurationHours": 9.00000,
"StartedOn": "2022-05-09T07:00:00Z",
"FinishedOn": "2022-05-10T15:00:00Z",
"TimeZoneId": null,
"MeetingMode": "Presential"
}
]
}
Les types de réponses possibles :
200 OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Pour obtenir la liste des séances de classe virtuelle d’une session, utiliser l’option de filtrage $filter.
/odata-api/MeetingSessions?$filter=TrainingSession/Id eq 2247950336 and MeetingMode eq ' VirtualClass'
Obtenir les informations sur une séance présentielle ou classe virtuelle
Pour récupérer toutes les informations sur une séance en particulier, incluant les lieux et salles de formation, utiliser la requête suivante.
odata-api/MeetingSessions(2311913488)?$expand=Localisation,Rooms
*** REQUEST ***
Http Method : GET
Http Headers :
Authorization : Basic c2ZlOjFCb3VnYWludmlsbCFlcg==
Http URI :
https://demo.condate.com/odata-api/MeetingSessions(2311913488)?$expand=Localisation,Rooms
*** RESPONSE ***
Status : 200 OK
Body :
{
"@odata.context": "https://v60.syfadis.com/odata-api/$metadata#MeetingSessions",
"value": [
{
"Id": 2311913488,
"Name": "Séance présentielle",
"ExternalId": null,
"CreatedBy": {
"Id": 0,
"Name": "Superviseur"
},
"ModifiedBy": {
"Id": 0,
"Name": "Superviseur"
},
"CreatedOn": "2022-06-15T13:23:42.2486119Z",
"ModifiedOn": "2022-06-15T13:41:54.8040112Z",
"DeletedOn": null,
"Description": null,
"Duration": {
"Length": 9.00000,
"Scale": "Hours"
},
"DurationHours": 9.00000,
"StartedOn": "2022-05-09T07:00:00Z",
"FinishedOn": "2022-05-10T15:00:00Z",
"TimeZoneId": null,
"MeetingMode": "Presential",
"Localisation": {
"Id": 208797726,
"CreatedBy": {
"Id": 0,
"Name": "Superviseur"
},
"ModifiedBy": null,
"CreatedOn": "2018-05-30T12:23:33Z",
"ModifiedOn": null,
"DeletedOn": null,
"ExternalId": null,
"Name": "Golf de Rennes",
"Code": null,
"Father0": null,
"Father1": null,
"Father2": null,
"Father3": null,
"Father4": null,
"Father5": null,
"Father6": null,
"Father7": null,
"Father8": null,
"Depth": 0,
"StartedOn": null,
"FinishedOn": null,
"Address": "Golf de Rennes\nLe Temple du Cerisier",
"City": "Saint Jacques de la Lande",
"Contact": null,
"Country": "France",
"Description": null,
"Email": null,
"FaxNumber": null,
"MobileNumber": null,
"PhoneNumber": null,
"PostalCode": "35136",
"ShortNumber": null
},
"Rooms": [
{
"Id": 2312896513,
"Code": "",
"Name": "Salle 2",
"Description": "Au fond du golf",
"CreatedBy": {
"Id": 0,
"Name": "Superviseur"
},
"ModifiedBy": null,
"CreatedOn": "2022-06-15T13:41:13.0883475Z",
"ModifiedOn": null,
"DeletedOn": null,
“ExternalID": null,
"Capacity": null,
'"RoomType": "None"
}
]
}
]
}
Les types de réponses possibles :
200 OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Création d’une session
Pour créer une entité de type session, la requête doit être envoyée avec la méthode « POST » et appeler l‘action « Service.Create ». Enfin, celle-ci doit spécifier les propriétés éditables de l’entité dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires et ne pouvez définir que les propriétés éditables
L’url doit contenir le nom de l’entité à savoir l’une des valeurs indiquées au début de ce chapitre
Les types de réponses possibles :
201 Created : OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Session de formation
En plus des propriétés éditables obligatoires, vous devez au minimum spécifier les propriétés obligatoires suivantes :
Propriété | Obligatoire | Type | Commentaire/description |
TrainingId | X | Numérique | Identifiant Syfadis de la formation |
L’action à appeler est : Services.Create
La requête suivante crée une Session de formation
Session d’évaluation
En plus des propriétés éditables obligatoires, vous devez au minimum spécifier les propriétés obligatoires suivantes :
Propriété | Obligatoire | Type | Commentaire/description |
ÉvaluationId | X | Numérique | Identifiant Syfadis de l’évaluation |
L’action à appeler est : Services.Create
La requête suivante crée une Session d’évaluation
Modification d’une session
Modification des propriétés éditable
Pour modifier les propriétés éditables d’une entité, la requête doit être envoyée avec la méthode « PATCH » et spécifier les propriétés éditables à mettre à jour, dans le corps au format JSON.
Nous recommandons l'utilisation du PATCH plutôt que celle du PUT pour les mises à jour d'entité.
Dans le cas où vous souhaitez récupérer l’ensemble des propriétés de l’entité, après sa mise à jour vous pouvez ajouter la préférence de type "return=representation" dans l'entête (Header) de la requête comme dans l’exemple ci-dessous. Cela permet la récupération de toutes les propriétés de l'objet après sa modification dans la réponse et contribue ainsi à réduire la charge de travail du serveur en limitant le nombre de requêtes.
La requête suivante modifie la propriété code pour la session de formation ayant l'identifiant Syfadis 2850818.
En réponse, le contenu de l’entité mise à jour est retourné :
Les types de réponses possibles :
200 OK : OK (Cas du header avec retour selon une représentation)
204 No Content : OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound: Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Modification des dates (formation)
Uniquement disponible pour les sessions de formation.
Pour modifier les dates de début et/ou de fin de session, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.Update ». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
SessionId | X | Numérique | Identifiant de la session |
StartedOn | Date et heure | Date de début de la session | |
FinishedOn | Date et heure | Date de fin de la session |
L’action à appeler est : Services.Update
La requête suivante prolonge la date de fin de la session :
Les types de réponses possibles :
200 OK: OK (Cas du header avec retour selon une représentation)
204 No Content : OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Modification des tuteurs et du lieu (formation)
Uniquement disponible pour les sessions de formation
Pour modifier les dates de début et/ou de fin de session, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.Update ». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
SessionId | X | Numérique | Identifiant de la session |
TutorIds | Collection de numérique | Liste des identifiants Syfadis des utilisateurs désignés comme Tuteur de la session | |
LocalisationId | Numérique | Identifiant du lieu de formation (Id de l’entité « Localisation ») |
Les tuteurs ne sont affectés qu’aux éléments racines
L’action à appeler est : Services.Update
La requête suivante, ajouter deux tuteurs à la session :
Les types de réponses possibles :
200 OK : OK (Cas du header avec retour selon une représentation)
204 No Content : OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Emargement des présences
Uniquement dans le cadre des formations contenants des séances présentielles (MeetingSession).
Pour émarger les présences d’un utilisateur sur un MeetingSession, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.Attendance». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
MeetingSessionId | X | Numérique | Identifiant du MeetingSession |
TraineeId | X | Numérique | Identifiant de l’inscription |
TraineePresence | X | Enumeration | Présences : Valeur possible :
|
PresenceHours | Numérique | Heures de présences | |
AbsenceJustified | Enumeration | L’absence est-elle justifiée ? Valeur possible :
| |
AbsenceReason | Texte | Raison de l’absence |
Les tuteurs ne sont affectés qu’aux éléments racines
L’action à appeler est : Services.Attendance
La requête suivante, emarger une inscription :
Emargement du tuteur
Uniquement dans le cadre des formations contenants des séances présentielles (MeetingSession).
Pour faire émarger un tuteur, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.TutorAttendance ». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
MeetingSessionId | X | Numérique | Identifiant du MeetingSession |
TutorId | X | Numérique | Identifiant du tuteur |
PresenceHours | X | Numérique | Nombre d’heures de présence |
L’action à appeler est : Services.TutorAttendance
Les types de réponses possibles:
204 No Content: OK
400 Bad Request : Erreur technique ou fonctionnelle
Récupérer les informations sur l’émargement d’un élément présentiel
Pour récupérer les informations d’émargement pour une séance présentielle, une classe virtuelle ou une mise en situation, il faut requêter l’entité TraineePresenceViews.
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant unique |
Trainee | NON | Entité : Trainee | Inscription liée à la séance |
MeetingSession | NON | Entité : MeetingSession | Elément présentiel |
ComponentRun | NON | Entité : AbstractCourseComponentRun | Informations sur l’émargement |
Propriété Navigable
Exemple de requête pour récupérer les informations sur l’émargement d’un élément présentiel :
odata-api/TraineePresenceViews?filter=MeetingSession/Id eq 100 &expand=ComponentRun,Trainee($expand=User)
L’entité « AbstractCourseComponentRun » navigable depuis « TraineePresenceViews » contient les informations sur l’élément présentiel:
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant unique |
TraineePresence | NON | Énumération | 0 : Non défini 1 : Inconnu 2 : Présent 3 : Absent 4 : Présence partielle |
PresenceHours | NON | Numérique | Nombre d’heures de présence |
AbsenceJustified | NON | Énumération | 0 : Non défini 1 : Oui 2 : Non |
AbsenceReasonType | NON | Énumération | 0 : Non défini 1 : Autres |
AbsenceReason | NON | Texte | Raison de l’absence |
Déposer des documents
Uniquement dans le cadre des formations contenants des séances présentielles (MeetingSession)
Pour déposer un document dans le MeetingSession, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.AttendanceSheet». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
MeetingSessionId | X | Numérique | Identifiant du MeetingSession |
DocumentName | X | Texte | Nom du document avec l’extension |
DocumentContent | X | Texte | Contenu du fichier à charger Tableau d’octets (bytes) |
L’action à appeler est : Services. AttendanceSheet
La requête suivante, permet de déposer un fichier dans la séance de la session :
Archivage d’une session
Pour archiver une entité, la requête doit être envoyée avec la méthode « DELETE » en ciblant une entité.
La requête suivante archive la session de formation ayant l’identifiant Syfadis 2850818
Les types de réponses possibles :
204 No Content : OK
400 Bad Request : Erreur technique ou fonctionnelle
404 NotFound : Enregistrement inexistant
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Annulation d’une session
Pour annuler une session, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.Cancel ».
Exemple pour annuler la session avec l’identifiant Syfadis « 1234 » :
POST https://demo.condate.com/odata-api/TrainingSessions(1234)/Services.Cancel
{
"CancelReason": "3",
"CancelDescription": "Formateur en arrêt",
"Chargeable": true
}
Ci-dessous les propriétés à envoyer à l’action :
Propriété | Obligatoire | Type | Commentaire/description |
CancelReason | X | Énumeration | 0 : Non défini 1 : Session reportée 2 : Rentabilité de la session 3 : Annulation automatique 4 : Formation inadaptée 5 : Problème logistique 6 : Indisponibilité du collaborateur 7 : Collaborateur archivé 8 : Session annulée, supprimée ou terminée |
CancelDescription | X | Texte | Description de l’annulation |
Chargeable | Boolean | A facturer |
Les types de réponses possibles :
204 No Content : OK
400 Bad Request : Erreur technique ou fonctionnelle
404 NotFound : Enregistrement inexistant
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Gestion des inscriptions
Il existe deux types d’inscription dans Syfadis.
Les inscriptions au session de formation (Trainees)
Les inscriptions au session d’évaluation (ÉvaluationTrainees)
Inscription de formation
Propriété | Editable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de l’inscription |
CreatedBy | NON | Entité : User | Utilisateur ayant créé cette inscription |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur cette inscription |
CreatedOn | NON | Date et heure | Date UTC de création de la inscription |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de l’inscription |
DeletedOn | NON | Date et heure | Date UTC d’archivage de l’inscription |
ExternalId | NON | Texte(250) | Identifiant de l’inscription dans le SI client |
StartedOn | NON | Date et heure | Date UTC de début de l’inscription |
FinishedOn | NON | Date et heure | Date UTC de fin de l’inscription |
TrainingRequestCategory | NON | Énumération | Catégorie d'action de formation Valeur possible :
|
TrainingRequestType | NON | Énumération | Accepté au titre de Valeur possible :
|
TrainingRequestPriority | NON | Énumération | Priorité inscription Valeur possible :
|
PedagogicCost | NON | Numérique | Coût pédagogique |
TrainingHours | NON | Numérique | Heures de formation |
IsDif | NON | Énumération | Valeur possible :
|
IsBlackListed | NON | Binaire | Est black listé |
Imputable | NON | Énumération | Est Imputable Valeur possible :
|
RegistrationOrigin | NON | Énumération | Origine de l'inscription Valeur possible :
|
AccessTime | NON | Complexe Type : Duration | Limitation d'accès |
AccessTimeInSeconds | NON | Numérique | Limitation d'accès en seconde |
LmsTimeEstimated | NON | Numérique | Temps estimé pour la formation E-Learning |
LmsTimeSpend | NON | Numérique | Temps passé en minutes |
LmsProgress | NON | Énumération | État de progression Valeur possible :
|
LmsProgressPercent | NON | Numérique | Progression en pourcentage |
LmsSuccess | NON | Énumération | État de validation Valeur possible :
|
LmsSuccessDate | NON | Date et heure | Date UTC du dernier « succès » de la formation |
LmsLastScore | NON | Numérique | Dernier score obtenu |
LmsBestScore | NON | Numérique | Meilleur score obtenu |
LmsRequiredScore | NON | Numérique | Score requis |
LmsLastAccessedOn | NON | Date et heure | Date UTC du dernier accès à la formation |
LmsAccessCount | NON | Numérique | Nombre d'accès |
LmsAttemptCount | NON | Numérique | Nombre de tentatives |
TraineePresence | NON | Énumération | Présence Valeur possible :
|
ConvocationPresence | NON | Énumération | Présence de l'apprenant (convocation) Valeur possible :
|
AbsenceJustified | NON | Énumération | Absence justifiée Valeur possible :
|
AbsenceReason | NON | Texte(illimité) | Motif de l’absence |
PresenceHours | NON | Numérique | Heures de présence |
PresentialTotalDuration | NON | Numérique | Heures totales estimées pour la formation présentielle |
LmsFirstCompletedOn | NON | Date et heure | Date UTC de la 1er complétude de la formation |
LmsFirstPassedOn | NON | Date et heure | Date UTC du 1er statut « succès » de la formation |
AbsenteeismPercent | NON | Numérique | Taux d'absentéisme |
Certificated | NON | Binaire | Est Certifié |
CertificatedOn | NON | Date et heure | Date UTC de certification |
CancelReason | NON | Énumération | Motif d'annulation Valeur possible :
|
CancelDescription | NON | Texte(500) | Commentaire d'annulation |
IsCancelled | NON | Binaire | Est annulée |
IsCharged | NON | Binaire | A facturer |
TrainingSession | NON | Entité : TrainingSession | Session associée à l’inscription. |
User | NON | Entité : User | Utilisateur inscrit. |
Légende :
Propriété Navigable
Inscription d’évaluation
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de l’inscription |
CreatedBy | NON | Entité : User | Utilisateur ayant créé cette inscription |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur cette inscription |
DeletedBy | NON | Entité : User | Utilisateur ayant réalisé l’archivage |
CreatedOn | NON | Date et heure | Date UTC de création de l’inscription |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de l’inscription |
DeletedOn | NON | Date et heure | Date UTC d’archivage de l’inscription |
ExternalId | OUI | Texte(250) | Identifiant de l’inscription dans le SI client |
StartedOn | NON | Date et heure | Date UTC de début de l’inscription |
FinishedOn | NON | Date et heure | Date UTC de fin de l’inscription |
Description | OUI | Texte(illimité) | |
CancelDescription | NON | Énumération | Motif d'annulation Valeur possible : None = 0 WrongDates = 1 Rentability = 2 Automatically = 3 TrainingRequired = 4 LogisticalProblem = 5 Unavailable = 6 |
CancelReason | NON | Texte(500) | Commentaire d'annulation |
IsBlackListed | NON | Binaire | Est blacklisté |
IsCancelled | NON | Binaire | Est annulée |
IsCharged | NON | Binaire | A facturer |
LmsProgress | NON | Énumération | Etat de progression Valeur possible : 0 : None 1 : NotAttempted 2 : Incomplete 3 : Completed |
LmsProgressPercent | NON | Numérique | Progression en pourcentage |
LmsSuccess | NON | Énumération | Etat de validation Valeur possible : 0 : None 1 : Yes 2 : No |
LmsTimeSpend | NON | Numérique | Temps passé en minutes |
Login | NON | Texte (250) | Login de restriction |
RegistrationOrigin | NON | Énumération | Origine de l'inscription Valeur possible : None = 0 BackOffice = 1 SelfService = 2 Employee = 3 Manager = 4 HumanResource = 5 Cursus = 6 CursusDiagnosis = 7 SessionChoice = 8 Positionning = 9 Import = 10 ProvisionnalPlan = 11 |
RestrictedLogin | NON | Binaire | Est soumis au login de restriction |
StartedOn | NON | Date et heure | Date UTC de début de l’inscription |
FinishedOn | NON | Date et heure | Date UTC de fin de l’inscription |
ÉvaluationSession | NON | Entité : ÉvaluationSession | Session associée à l’inscription/ |
User | NON | Entité : User | Utilisateur inscrit. |
Managers | NON | Entité : User | Responsable de l’évaluation |
Légende :
Propriété Navigable
Rechercher des inscriptions
Pour récupérer la liste des inscriptions, il suffit de spécifier le nom de l’entité après le point d’entrée.
/odata-api/ Trainees
/odata-api/ ÉvaluationTrainees
Attention : il est recommandé de spécifier l’option $top pour limiter le nombre d’éléments retournés.
La méthode d’envoi doit être « GET »
Pour rechercher une inscription par rapport à un utilisateur
/odata-api/Trainees?$filter=User/Id eq 327680&$expand=User
Obtenir des informations sur une inscription
Pour récupérer toutes les informations sur une inscription en particulier, vous pouvez spécifier son identifiant de la manière suivante.
/odata-api/Trainee(2916356)
Création d’une inscription
Pour créer une entité de type inscription, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.Register ». Enfin celle-ci doit spécifier les propriétés éditables de l’entité dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires et ne pouvez définir que les propriétés éditables.
L’url doit contenir le nom de l’entité à savoir l’une des valeurs indiquées au début de ce chapitre.
En plus des propriétés éditables obligatoires, vous devez au minimum spécifier les propriétés obligatoires suivantes :
Propriété | Obligatoire | Type | Commentaire/description |
SessionId | X | Numérique | Identifiant Syfadis de la session de formation/évaluation |
UserId | X | Numérique | Identifiant Syfadis de l’utilisateur à inscrire |
L’action à appeler est : Services.Register
La requête suivante crée une inscription de formation
Les types de réponses possibles :
201 Created : OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 Not Found : SessionId ou UserId invalide
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Modification d’une inscription
Modification des propriétés éditables
La mise à jour des propriétés d’une inscription n’est pas possible actuellement.
Modification des dates (Formation)
Uniquement disponible pour les inscriptions de formation
Pour modifier les dates de début et/ou de fin d’inscription, la requête doit être envoyée avec la méthode « POST » et appeler l’action.
« Services.ChangeDates ». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
TraineeId | X | Numérique | Identifiant de l’inscription |
StartedOn | Date et heure | Date de début de l’inscription | |
FinishedOn | Date et heure | Date de fin de l’inscription |
L’action à appeler est : Services.ChangeDates
La requête suivante décale l’inscription dans le temps:
Les types de réponses possibles :
200 OK: OK (Cas du header avec retour selon une représentation)
204 No Content: OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound : Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Modification de la session (Formation)
Uniquement disponible pour les inscriptions de formation
Pour modifier l’inscription de session, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Service.ChangeSession ». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
TraineeId | X | Numérique | Identifiant Syfadis de l’inscription |
SessionId | X | Numérique | Identifiant Syfadis de la nouvelle session |
L’action à appeler est : Services.ChangeSession
La requête suivante change l’inscription de session:
Les types de réponses possibles :
200 OK : OK (Cas du header avec retour selon une représentation)
204 No Content : OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound : Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Archivage d’une inscription
Pour archiver une entité, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.Unregister ». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
TraineeId | X *Si inscription de formation | Numérique | Identifiant Syfadis de l’inscription de formation |
EvaluationTraineeId | X *Si inscription d’évaluation | Numérique | Identifiant Syfadis de l’inscription d’évaluation |
Seul une des deux propriétés doivent être spécifié.
L’url doit contenir le nom de l’entité à savoir l’une des valeurs indiquées au début de ce chapitre
L’action à appeler est : Services.Unregister
La requête suivante archive l’inscription de formation ayant l’identifiant Syfadis 2916366
Les types de réponses possibles :
204 No Content: OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound : Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Gestion des formations / évaluations
Les Formations (Trainings)
Les Évaluations (Évaluations)
Les formations
Propriété | Editable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de la formation |
CreatedBy | NON | Entité : User | Utilisateur ayant créé la formation |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur cette formation |
CreatedOn | NON | Date et heure | Date UTC de création de la formation |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de la formation |
DeletedOn | NON | Date et heure | Date UTC d’archivage de la formation |
ExternalId | OUI | Texte(250) | Identifiant de la formation dans le SI client |
Name | OUI | Texte(500) | Nom de la formation |
Code | OUI | Texte(50) | Code de la formation |
Description | OUI | Texte(illimité) | Description de la formation |
GroupingCode | OUI | Texte(50) | Code de regroupement de la formation |
TrainingCategory | OUI | Énumération | Catégorie Valeur possible : None = 0 Assignment = 1 Évaluation = 2 Satisfaction = 3 |
Language | OUI | ResourceLanguage | Langue de la formation |
PriceByUser | OUI | Numérique | Prix par stagiaire |
PriceBySession | OUI | Numérique | Prix par session |
UserCountMin | OUI | Numérique | Seuil de rentabilité |
UserCountMax | OUI | Numérique | Capacité d'accueil |
WaitingTraineeThreshold | OUI | Numérique | Seuil d'apprenant en liste d'attente |
LearningMode | OUI | Énumération | Modalité d'apprentissage Valeur possible : None=0 Presential=1 ELearning=2 Blended=3 VirtualClass=4 Mobile=5 Video=6 MOOC=7 Regulation=8 Certifying=9 |
DiplomaName | OUI | Texte(250) | Diplôme décerné |
Goal | OUI | Texte(Illimité) | Objectifs |
Content | OUI | Texte(Illimité) | Programme détaillé |
Duration | OUI | Complexe Type : Duration | Durée estimée |
DurationHours | OUI | Numérique | Durée estimée en heure |
TimeAvailable | OUI | Complexe Type : Duration | Durée d'accès en libre-service |
AccessTime | OUI | Complexe Type : Duration | Limitation d'accès |
AccessTimeInSeconds | OUI | Numérique | Limitation d'accès en secondes |
OrganisationModality | OUI | Énumération | Mode d'organisation Valeur possible : None = 0, IntraEntreprise = 1, InterEntreprise = 2, Intern = 3 |
CpfCode | OUI | Texte(50) | Code CPF |
ValidationType | OUI | Énumération | Type de validation Valeur possible : None = 0 Certificate = 1 Diploma = 2 Qualification = 3 TrainingCertificate = 4 |
RequiredEducationLevel | OUI | Énumération | Niveau d'étude requis Valeur possible : None = 0 Level1 = 1 Level2 = 2 Level3 = 3 Level4 = 4 Level5 = 5 Level6 = 6 |
SpecificCondition | OUI | Texte(illimité) | Conditions spécifiques |
GlobalRate | NON | Numérique | Note moyenne |
RateCount | OUI | Numérique | Nombre d'avis |
Rate1Count | OUI | Numérique | Nombre d'avis 1 étoile |
Rate2Count | OUI | Numérique | Nombre d'avis 2 étoile |
Rate3Count | OUI | Numérique | Nombre d'avis 3 étoile |
Rate4Count | OUI | Numérique | Nombre d'avis 4 étoile |
Rate5Count | OUI | Numérique | Nombre d'avis 5 étoile |
Owner | OUI | Numérique | Identifiant de l’utilisateur propriétaire de la formation. |
OptionalEnumField1 à 8 | OUI | Énumération | Valeurs possibles définies dans Paramètres > Les énumérations. |
OptionalField1 à 8 | OUI | Texte (illimité) | Champs texte optionnels |
OptionalDateField1 à 3 | OUI | Date | Champs date optionnels |
OptionalDecimalField1 à 3 | OUI | Numérique | Champs numérique optionnels |
CompletePictureUrl | OUI | Texte (250) | Url de l’image associée à la formation |
Jobs | OUI | Collection d’entités : Job | Emplois visés |
PrimaryDomain | NON | Entité : Domaine | Domaine de gestion |
TrainingThemes | OUI | Collection d’entités : TrainingThemes | Thèmes de formation |
RequiredTrainings | OUI | Collection d’entités : Training | Formations requises |
Manager | OUI | Entité : User | Responsable administratif |
EducationalManager | OUI | Entité : User | Responsable pédagogique |
TrainingProvider | NON | Entité : TrainingProvider | Organisme de formation principal (premier organisme de la liste). |
TrainingProviders | NON | Collection d’entités : TrainingProvider | Liste des organismes de formations |
PublishOnLxp | OUI | Énumération | Publié sur un Lxp Valeur possible : None = 0, //Non configuré Yes = 1, No = 2 |
RegisterUserOnTrainingUrl | NON | Texte | Lien d’inscription à une formation |
StartTrainingPlayerUrl | NON | Texte | Url pour démarrer le player |
OUI | Numérique | Durée de consultation du contenu après la date de fin d’inscription | |
OUI | Booléen | Peut consulter le contenu après la date de fin d’inscription | |
OUI | Énumération | Disponible sur mobile Valeur possible : None = 0, //Non configuré Yes = 1, No = 2 | |
Import_PageDataCatalogCode (CHAMP OBSOLETE) | NON | Texte | Code de la mise en page de type « Formation du catalogue » |
Import_PageDataMyTrainingCode (CHAMP OBSOLETE) | NON | Text | Code de la mise en page de type « Session d'un apprenant » |
Légende :
Propriété Navigable
Modification de la mise en page Catalogue & Session
Pour modifier la mise en page Catalogue et Session d’une Formation, la requête doit être envoyée avec la méthode « POST » et appeler l’une des deux actions suivantes :
Service.SetMyTrainingsPageData
Service.SetCatalogPageData
Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
TrainingId | X | Numérique | Identifiant Syfadis de la Formation |
PageDataCode | X | Texte (250) | Code de la mise en Page |
Modification des Privilèges Front & Back Office
Pour modifier les privilèges Front ou Back Office d’une formation, la requête doit être envoyée avec la méthode « POST » et appeler l’une des six actions suivantes :
Service.SetFrontOfficeUserPrivilege
Service.SetFrontOfficeGroupPrivilege
Service.SetFrontOfficeDomainPrivilege
Service.SetBackOfficeUserPrivilege
Service.SetBackOfficeGroupPrivilege
Service.SetBackOfficeDomainPrivilege
Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
TrainingId | X | Numérique | Identifiant Syfadis de la Formation |
OwnerId | X | Numérique | Identifiant Syfadis du destinataire : -Utilisateur -Groupe -Domaine |
Privilege | X | Texte (250) | Nom du privilège cible : -View -Edit -Duplicate -Register -SelfService -CreateSession -CreateCursusSession -EditPuplication -LaunchGroupSession -EmitNeed -CreateSessionFO |
State | X | Booléen | Etat du privilège a définir |
Les évaluations
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de l’évaluation |
CreatedBy | NON | Entité : User | Utilisateur ayant créé l’évaluation |
ModifiedBy | NON | Entité : User | Utilisateur ayant fait la dernière modification sur cette évaluation |
CreatedOn | NON | Date et heure | Date UTC de création de l’évaluation |
ModifiedOn | NON | Date et heure | Date UTC de dernière modification de l’évaluation |
DeletedOn | NON | Date et heure | Date UTC d’archivage de l’évaluation |
ExternalId | OUI | Texte(250) | Identifiant de l’évaluation dans le SI client |
Name | OUI | Texte(500) | Nom de l’évaluation |
Description | OUI | Texte(Illimité) | Description de l’évaluation |
Code | OUI | Texte(50) | Code de l’évaluation |
GroupingCode | OUI | Texte(50) | Code de regroupement de l’évaluation |
Goal | OUI | Texte(Illimité) | Objectifs |
Category | OUI | Énumération | Catégorie Valeur possible : None = 0 Assignment = 1 Évaluation = 2 Satisfaction = 3 |
Language | OUI | ResourceLanguage | Langue de l’évaluation |
PriceByUser | OUI | Numérique | Prix par stagiaire |
GlobalRate | NON | Numérique | Note moyenne |
RateCount | OUI | Numérique | Nombre d'avis |
Rate1Count | OUI | Numérique | Nombre d'avis 1 étoile |
Rate2Count | OUI | Numérique | Nombre d'avis 2 étoile |
Rate3Count | OUI | Numérique | Nombre d'avis 3 étoile |
Rate4Count | OUI | Numérique | Nombre d'avis 4 étoile |
Rate5Count | OUI | Numérique | Nombre d'avis 5 étoile |
Duration | OUI | Complexe Type : Duration | Durée estimée |
Owner | OUI | Numérique | Identifiant du propriétaire de l’évaluation |
TimeAvailable | OUI | Complexe Type : Duration | Durée d'accès en libre-service |
ValidationType | OUI | Énumération | Type de validation Valeur possible : None = 0 Certificate = 1 Diploma = 2 Qualification = 3 TrainingCertificate = 4 |
CompletePictureUrl | OUI | Texte (250) | Url de l’image associée à l’évaluation |
Jobs | OUI | Collection d’entités : Jobs | Emploi associé à l’évaluation |
PrimaryDomain | NON | Entité : Domains | Domaine de gestion de l’évaluation |
Import_PageDataCatalogCode (CHAMP OBSOLETE) | OUI | Texte | Code de la mise en page de type « Évaluation du catalogue » |
Légende :
Propriété Navigable
Rechercher des Formations / évaluations
Pour récupérer la liste des formations ou évaluations, il suffit de spécifier le nom de l’entité après le point d’entrée.
/odata-api/Trainings
/odata-api/Évaluations
Attention, il est recommandé de spécifier l’option $top pour limiter le nombre d’éléments retournés.
La méthode d’envoi doit être « GET »
Pour rechercher une formation / évaluation par son nom, utiliser l’option de filtrage $filter.
/odata-api/Training?$filter=contains(Name,'word')
Obtenir des informations sur une formation / évaluation
Pour récupérer toutes les informations sur une formation / évaluation en particulier, vous pouvez spécifier son identifiant de la manière suivante.
/odata-api/Évaluations(753673)
Création d’une formation / évaluation
Pour créer une entité, la requête doit être envoyée avec la méthode « POST » et spécifier les propriétés éditables de l’entité dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires et ne pouvez définir que les propriétés éditables.
L’url doit contenir le nom de l’entité à savoir l’une des valeurs indiquées au début de ce chapitre.
La requête suivante crée une formation nommée FuturSkill:
En réponse, le contenu de l'entité créée est retourné :
Les types de réponses possibles :
201 Created : OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Modification d’une formation / évaluation
Pour modifier une entité, la requête doit être envoyée avec la méthode « PATCH » et spécifier les propriétés éditables à mettre à jour, dans le corps au format JSON.
Nous recommandons l'utilisation du PATCH plutôt que celle du PUT pour les mises à jour d'entité.
Dans le cas où vous souhaitez récupérer l’ensemble des propriétés de l’entité, après sa mise à jour vous pouvez ajouter la préférence de type "return=représentation" dans l'entête (Header) de la requête comme dans l’exemple ci-dessous. Cela permet la récupération de toutes les propriétés de l'objet après sa modification dans la réponse et contribue ainsi à réduire la charge de travail du serveur en limitant le nombre de requêtes.
La requête suivante modifie les propriétés nom et code pour la formation ayant l'identifiant Syfadis 2686977.
En réponse, le contenu de l’entité mise à jour est retourné :
Les types de réponses possibles :
200 OK : OK (Cas du header avec retour selon une représentation)
204 No Content : OK (Cas sans représentation)
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound : Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Archivage d’une formation / évaluation
Pour archiver une entité, la requête doit être envoyée avec la méthode « DELETE » en ciblant une entité.
La requête suivante archive la formation ayant l’identifiant Syfadis 2686977
Les types de réponses possibles :
204 No Content : OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section Sécurité et authentification)
404 NotFound : Enregistrement inexistant
500 Internal Server : Vérifier la casse de l’entité dans l’URL
Gestion du tracking communautaire
Description des propriétés
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de l’élément de suivi |
Timestamp | NON | Date et heure | Date et heure de l’action |
ActionType | NON | Énumération | Type d’action effectuée Valeurs possibles : View = 0 Post = 1 |
User | NON | Entité : User | Utilisateur ayant effectué l’action |
CorrectedUser | NON | Entité : User | Utilisateur corrigé, dans le cas d’une action de correction |
Post | NON | Entité : Post | Post consulté ou créé (si applicable) |
Information | NON | Entité : Information | Actualité consultée ou créée (si applicable) |
Conversation | NON | Entité : Conversation | Conversation consultée ou créée (si applicable) |
Contribution | NON | Entité : Contribution | Contribution consultée ou créée (si applicable) |
WikiPage | NON | Entité : WikiPage | Page de Wiki consultée ou créée (si applicable) |
Examination | NON | Entité : Examination | Ressource examen consultée ou créée (si applicable) |
Quiz | NON | Entité : Quiz | Quiz consulté ou créé (si applicable) |
PracticalCase | NON | Entité : PraticalCase | Cas pratique consulté ou créé (si applicable) |
Session | NON | Entité : TrainingSession | Session de formation à laquelle appartient l’élément communautaire consulté ou créé (si applicable) |
SocialGroup | NON | Entité : SocialGroup | Groupe communautaire auquel appartient l’élément communautaire consulté ou créé (si applicable) |
Recherche des éléments de trackings communautaires
TrackingViews
Pour récupérer les informations de suivi des éléments communautaire sur un groupe communautaire ou une session de formation, il suffit de spécifier le nom de l’entité après le point d’entrée.
/odata-api/TrackingViews
Attention, il est recommandé de spécifier l’option $top pour limiter le nombre d’éléments retournés.
La méthode d’envoi doit être « GET »
Pour rechercher les données d’une session en particulier, il faut utiliser l’option de filtrage $filter.
Pour remonter les données sur l’utilisateur par exemple, il faut utiliser l’option d’élargissement $expand.
Pour sélectionner les autres données remontées, il faut utiliser l’option de sélection $select.
Voici un exemple de requête permettant de rechercher le tracking communautaire sur la session dont le code est « SESS_TEST », en remontant l’heure, le type d’action, et le nom de l’utilisateur :
/odata-api/TrackingViews?$expand=User($select=Name)&$filter=Session/Code eq 'SESS_TEST'&$select=Timestamp,ActionType
Gestion des notations des formations/évaluations
Description des propriétés
Propriété | Éditable | Type | Commentaire/description |
Id | NON | Numérique | Identifiant de la notation |
User | NON | Entité : EntityReference | Identifiant et nom de l’utilisateur ayant effectué la notation |
CatalogItem | NON | Entité : EntityReference | Identifiant et nom de la formation ou évaluation concernée par la notation |
Rate | NON | Numérique | Note attribuée |
Title | NON | Texte(250) | Titre du commentaire attribué |
Comment | NON | Texte(2000) | Commentaire attribué |
Recherche des notations
Le nom de l’entité est « ItemRatings ».
Pour récupérer les notations attribuées à une formation ou une évaluation, il suffit de spécifier le nom de l’entité après le point d’entrée.
/odata-api/ItemRatings
Attention : il est recommandé de spécifier l’option $top pour limiter le nombre d’éléments retournés.
La méthode d’envoi doit être « GET ».
Pour rechercher les données d’une formation ou évaluation en particulier, il faut utiliser l’option de filtrage $filter.. Le filtrage n’est possible qu’avec un identifiant ou un nom de formation/évaluation.
Pour sélectionner les données à remonter, il faut utiliser l’option de sélection $select.
Voici un exemple de requête permettant de rechercher les notations sur une formation dont l’identifiant est 143, en remontant la note et le nom de l’utilisateur :
/odata-api/ItemRatings?$filter=CatalogItem/Id eq 143&$select=User,Rate
Notation d’une formation/évaluation
Pour définir la notation d’un utilisateur donné à une formation ou évaluation, la requête doit être envoyée avec la méthode « POST » et appeler l’action « Services.RateCatalogItemForUser ». Enfin celle-ci doit spécifier les propriétés listées dans le tableau ci-dessous dans le corps au format JSON.
Vous devez spécifier au minimum les propriétés obligatoires.
Propriété | Obligatoire | Type | Commentaire/description |
UserId | X | Numérique | Identifiant de l’utilisateur |
CatalogItemId | X | Numérique | Identifiant de la formation ou Évaluation |
Rate | X | Numérique | Note attribuée (entre 1 et 5) |
Title | Texte(250) | Titre du commentaire | |
Comment | Texte(2000) | Commentaire |
L’action à appeler est : Services.RateCatalogItemForUser.
La requête suivante définit une note de 2 attribuée par l’utilisateur ayant l’identifiant Syfadis 126976000 sur la formation ayant l’identifiant Syfadis 51183616.
*** REQUEST ***
Http Method : POST
Http Headers :
Authorization : Basic c2ZlOjFCb3VnYWludmlsbCFlcg==
Http URI :
https://demo.xxxx.com/odata-api/ItemRatings/Services.RateCatalogItemForUser
Http body :
{
"UserId" : 126976000,
"CatalogItemId" : 51183616,
"Rate" : 2
}
*** RESPONSE ***
Les types de réponses possibles :
200 OK
400 Bad Request : Erreur technique ou fonctionnelle
401 xxxxxxxxx : Erreur de sécurité (voir section : Sécurité et authentification)
500 Internal Server : Vérifier la casse de l’entité dans l’URL