GL Project API
Gérez les projets de grand livre (General Ledger) à travers différents systèmes ERP avec une API REST unifiée.
Créez et récupérez les projets GL, leurs segments hiérarchiques et leurs budgets pour Acomba et autres systèmes ERP supportant la gestion de projets comptables.
/Entity/GLProject/Entity/GLProjectAperçu
L’entité GLProject représente un projet de grand livre dans votre système ERP.
Dans Acomba, les projets GL permettent une gestion comptable multi-dimensionnelle avec jusqu’à 3 niveaux de segmentation et 3 budgets indépendants par projet. Cette API permet de créer et d’extraire les projets, leurs segments et leurs données budgétaires de manière standardisée.
Structure hiérarchique des projets Acomba
- Projet (TypeProjet = “Projet”) : Projet principal avec 3 segments optionnels
- Segment1, Segment2, Segment3 : Niveaux de segmentation hiérarchique pour organiser les projets
- 3 Budgets indépendants : Chaque projet peut avoir jusqu’à 3 budgets avec 14 périodes (0-13)
L’API utilise des endpoints REST standards avec les méthodes HTTP appropriées :
GET /Entity/GLProject– Récupérer les projets GL avec filtrage et expansion optionnelle des budgetsPOST /Entity/GLProject– Créer un nouveau projet GL
Les budgets peuvent être obtenus via le paramètre $expand pour obtenir les données détaillées des 3 budgets et de leurs 14 périodes.
Matrice de Support
Opérations supportées pour l’entité GLProject par système ERP :
| Système ERP | GET | POST | PUT |
|---|---|---|---|
| Acomba | ✓ Oui | ✓ Oui | ✗ Non |
| QuickBooks Online | ✗ Non | ✗ Non | ✗ Non |
| Avantage | ✗ Non | ✗ Non | ✗ Non |
| Sage 50 | ✗ Non | ✗ Non | ✗ Non |
| Servex | ✗ Non | ✗ Non | ✗ Non |
| Servicentre | ✗ Non | ✗ Non | ✗ Non |
GET GLProject
Récupère les projets de grand livre avec options de filtrage et d’expansion des budgets.
/Entity/GLProjectParamètres de requêtes
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| $filter | string | Optionnel | |
| $select | string | Optionnel | |
| $expand | string | Optionnel | |
| $top | integer | Optionnel | |
| $skip | integer | Optionnel |
TypeProjet : Utilisez TypeProjet eq 'Projet' pour n’obtenir que les projets réguliers, ou TypeProjet ne 'Projet' pour obtenir uniquement les segments (Segment1, Segment2, Segment3).
ValeurAuCompte : Utilisez ValeurAuCompte ne '0' pour exclure les périodes budgétaires à 0.
GET /Entity/GLProject Host: https://v4.api.onlineerp.solution.quebec/api Content-Type: application/json
// Obtenir uniquement les projets réguliers (exclure les segments) GET /Entity/GLProject?$filter=TypeProjet eq 'Projet' Host: https://v4.api.onlineerp.solution.quebec/api Content-Type: application/json // Obtenir uniquement les segments (exclure les projets réguliers) GET /Entity/GLProject?$filter=TypeProjet ne 'Projet' Host: https://v4.api.onlineerp.solution.quebec/api Content-Type: application/json
// Inclure les 3 budgets avec toutes les périodes GET /Entity/GLProject?$expand=Budget01,Budget02,Budget03 Host: https://v4.api.onlineerp.solution.quebec/api Content-Type: application/json // Inclure seulement Budget01 et exclure les valeurs à 0 GET /Entity/GLProject?$expand=Budget01&$filter=ValeurAuCompte ne '0' Host: https://v4.api.onlineerp.solution.quebec/api Content-Type: application/json
[
{
"NoUniqueSystemeSource": "12345",
"NoProjet": "PROJ-001",
"NomProjet": "Construction Édifice Principal",
"TypeProjet": "Projet",
"NoUniqueSystemeSourceSegment1": "456",
"NoUniqueSystemeSourceSegment2": "789",
"NoUniqueSystemeSourceSegment3": "012",
"Fiche_DerniereModification": "2024-01-15T10:30:00",
"Budget01": [
{
"NoPeriode": 0,
"ValeurAuCompte": 50000.00
},
{
"NoPeriode": 1,
"ValeurAuCompte": 48500.25
},
{
"NoPeriode": 2,
"ValeurAuCompte": 52000.00
},
// ... périodes 3 à 13
],
"Budget02": null,
"Budget03": null
},
{
"NoUniqueSystemeSource": "23456",
"NoProjet": "PHASE-A",
"NomProjet": "Phase A - Fondations",
"TypeProjet": "Segment1",
"NoUniqueSystemeSourceSegment1": "0",
"NoUniqueSystemeSourceSegment2": "0",
"NoUniqueSystemeSourceSegment3": "0",
"Fiche_DerniereModification": "2024-01-16T14:20:00",
"Budget01": [
{
"NoPeriode": 0,
"ValeurAuCompte": 15000.00
},
// ... autres périodes
],
"Budget02": null,
"Budget03": null
}
]
POST GLProject (Création)
Crée un nouveau projet de grand livre dans le système ERP. Permet de créer des projets ou des segments de projet.
/Entity/GLProjectChamps requis
| Champ | Type | Requis | Description |
|---|---|---|---|
| NoProjet | string | ✓ Required | Numéro unique du projet (max 15 caractères) |
| NomProjet | string | Optionnel | Description du projet (max 90 caractères) |
| TypeProjet | string | Optionnel | Type : “Projet”, “Segment1”, “Segment2”, “Segment3” (défaut: “Projet”) |
| NoUniqueSystemeSourceSegment1 | string | Optionnel | Id du segment 1 associé (pour les projets de type “Projet”) |
| NoUniqueSystemeSourceSegment2 | string | Optionnel | Id du segment 2 associé (pour les projets de type “Projet”) |
| NoUniqueSystemeSourceSegment3 | string | Optionnel | Id du segment 3 associé (pour les projets de type “Projet”) |
POST /Entity/GLProject
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
{
"NoProjet": "PROJ-2024-001",
"NomProjet": "Construction Édifice Principal",
"TypeProjet": "Projet", // Projet régulier avec segments optionnels
"NoUniqueSystemeSourceSegment1": "123", // Id du Segment1 (optionnel)
"NoUniqueSystemeSourceSegment2": "456", // Id du Segment2 (optionnel)
"NoUniqueSystemeSourceSegment3": "789" // Id du Segment3 (optionnel)
}
POST /Entity/GLProject
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
{
"NoProjet": "PHASE-A",
"NomProjet": "Phase A - Fondations",
"TypeProjet": "Segment1" // Créer un segment de niveau 1
}
{
"Success": true,
"ErpInternalId": "115", // Id Acomba du projet créé
"BusinessKey": "PROJ-2024-001", // NoProjet
"ErrorMessage": null
}
Le NoProjet est obligatoire et doit être unique dans Acomba (max 15 caractères). Les segments doivent être créés avant de pouvoir les associer à un projet via les champs NoUniqueSystemeSourceSegment1, NoUniqueSystemeSourceSegment2 et NoUniqueSystemeSourceSegment3.
Modèle de Données
Structure complète de l’entité GLProject :
| Champ | Type | Description |
|---|---|---|
| NoUniqueSystemeSource | string | Identifiant unique interne du système source (Id Acomba) |
| NoProjet | string | Numéro du projet ou du segment (clé primaire, max 15 caractères) |
| NomProjet | string | Description du projet ou du segment (max 90 caractères) |
| TypeProjet | string | Type de projet : “Projet”, “Segment1”, “Segment2”, “Segment3” ou “Inconnu” |
| NoUniqueSystemeSourceSegment1 | string | Id du premier segment associé au projet |
| NoUniqueSystemeSourceSegment2 | string | Id du deuxième segment associé au projet |
| NoUniqueSystemeSourceSegment3 | string | Id du troisième segment associé au projet |
| Fiche_DerniereModification | DateTime? | Date et heure de la dernière modification de la fiche |
| Budget01 | List<GLPeriodValue> | Premier budget avec 14 périodes (requiert $expand) |
| Budget02 | List<GLPeriodValue> | Deuxième budget avec 14 périodes (requiert $expand) |
| Budget03 | List<GLPeriodValue> | Troisième budget avec 14 périodes (requiert $expand) |
Structure GLPeriodValue
| Champ | Type | Description |
|---|---|---|
| NoPeriode | int | Numéro de la période (0-13, où 0 est le solde d’ouverture) |
| ValeurAuCompte | decimal | Montant budgété pour cette période |
Périodes : Acomba utilise 14 périodes (0-13). La période 0 représente le solde d’ouverture du projet.
Budgets null par défaut : Sans $expand, les budgets sont retournés à null pour optimiser les performances.
Segments : Les segments de projets permettent une hiérarchie à 3 niveaux si la segmentation a été activée dans les options de la société Acomba
Valeurs possibles pour TypeProjet
| Valeur | Description |
|---|---|
| “Projet” | Projet principal pouvant avoir jusqu’à 3 segments associés |
| “Segment1” | Premier niveau de segmentation hiérarchique |
| “Segment2” | Deuxième niveau de segmentation hiérarchique |
| “Segment3” | Troisième niveau de segmentation hiérarchique |
| “Inconnu” | Type non reconnu ou non défini |