Share via


API de calcul d’émission généralisé

Sommet technique Microsoft Cloud for Sustainability, mai 2024

Vous pouvez utiliser l’API msdyn_runEmissionCalculationService pour calculer les émissions des activités à l’aide d’un modèle de calcul sans créer de profil de calcul. En tant qu’abonné de Microsoft Sustainability Manager, vous pouvez utiliser cette URL pour accéder à l’API :

{organization url}/api/data/v{version}/msdyn_runEmissionCalculationService

Dans cette URL, URL de l’organisation fait référence à l’URL de base de l’organisation sur laquelle Microsoft Sustainability Manager est installé et auquel l’utilisateur peut accéder. Version fait référence à la version de l’API web (par exemple, 9.2).

Obtenir des ID d’entité

Il existe plusieurs façons d’obtenir les ID d’entités telles que les données d’activité et le modèle de calcul. Parmi celles-ci figurent l’API web XRM, l’API cliente et directement via l’URL de l’entité sur Microsoft Sustainability Manager.

Paramètres d’entrée

En tant qu’API personnalisée Dataverse, la durée d’exécution de l’API de calcul généralisé des émissions est limitée à deux minutes. Les calculs plus longs expireront, de sorte que la taille de l’entrée est limitée conformément à la table suivante.

Nom  Type Obligatoire ? Description
activityIds Tableau de chaîne Oui Liste des ID des enregistrements de données d’activité à utiliser dans le calcul. Jusqu’à 500 ID d’activité peuvent être inclus dans l’entrée.
calculationModelId Chaîne Oui ID du modèle de calcul à utiliser dans le calcul des émissions.
version Chaîne Non Le numéro de version de l’API identifie la version de l’API qui doit être appelée. Les tests ne sont actuellement disponibles que dans la version 1.0.0. Si non spécifiée, utilisez la dernière version.

Paramètres de sortie

Au niveau le plus élevé, la sortie est une chaîne JSON contenant une liste d’entités de sortie d’émission généralisées. Pour chaque activité éligible, l’entité de sortie peut contenir les émissions évaluées ou les erreurs rencontrées lors du calcul en fonction de la réussite du calcul. Vérifiez toujours l‘indicateur IsErrorRecord d’un enregistrement sortant avant d’essayer d’y accéder.

Entité sortante des émissions généralisées

L’entité sortante des émissions généralisées n’existe pas dans Dataverse. Il s’agit d’un ensemble d’attributs pertinents de l’entité d’émission et de l’entité d’erreur de calcul. L’API de calcul des émissions généralisées renvoie une liste de ces entités, chaque entité correspondant à un enregistrement de données d’activité éligible dans l’entrée.

L’entité sortante contient les attributs suivants :

Nom  Type Description
ActivityId Chaîne ID de l’enregistrement des données d’activité utilisé pour le calcul.
ActivityName Chaîne Nom de l’enregistrement des données d’activité utilisé pour le calcul.
IsErrorRecord Entier Une valeur booléenne indiquant si le calcul pour cette activité donnée a rencontré des erreurs. Si true, le calcul a échoué et les erreurs rencontrées peuvent être visualisées via l’attribut ErrorJson.
ErrorJson Chaîne Chaîne JSON représentant les erreurs de calcul rencontrées lors du traitement de cette activité donnée. Cette valeur est null si IsErrorRecord est false.
Nom  Chaîne Nom de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true.
CH4 Decimal Valeur CH4 de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de CH4.
CH4Unit Chaîne Nom de l’unité pour la valeur CH4 de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de CH4.
CO2 Decimal Valeur CO2 de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de CO2.
CO2Unit Chaîne Nom de l’unité pour la valeur CO2 de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de CO2.
CO2e Decimal Valeur CO2e de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de CO2e.
CO2eUnit Chaîne Nom de l’unité pour la valeur CO2e de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de CO2e.
HFC Decimal Valeur HFCs de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de HFCs.
HFCsUnit Chaîne Nom de l’unité pour la valeur HFCs de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de HFCs.
N2O Decimal Valeur N2O de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de N2O.
N2OUnit Chaîne Nom de l’unité pour la valeur N2O de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de N2O.
NF3 Decimal Valeur NF3 de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de NF3.
NF3Unit Chaîne Nom de l’unité pour la valeur NF3 de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de NF3.
PFC Decimal Valeur PFCs de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de PFCs.
PFCsUnit Chaîne Nom de l’unité pour la valeur PFCs de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de PFCs.
SF6 Decimal Valeur SF6 de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas de SF6.
SF6Unit Chaîne Nom de l’unité pour la valeur SF6 de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas de SF6.
OtherGHGs Decimal Autre valeur de gaz à effet de serre de l’émission calculée pour cette activité. Cette valeur est 0 si IsErrorRecord est true ou si l’émission ne contient pas d’autres GHG.
OtherGHGsUnit Chaîne Nom de l’unité pour une autre valeur de gaz à effet de serre de l’émission calculée pour cette activité. Cette valeur est null si IsErrorRecord est true ou si l’émission ne contient pas d’autres GHG.

Examples

Dans l’exemple suivant, l’API est appelée avec un ID de données d’activité valide, ce qui entraîne une réponse sans erreur.

Entrée :

{

  "activityDataIds": [
    "decc7c96-9180-ed11-aacf-000d3a1477fd”
  ],

  "calculationModelId": "0b533a50-399e-ec11-b400-00224823f2de",

  "version": "1.0.0"

}

Sortie :

[
{
"ActivityId": "decc7c96-9180-ed11-aacf-000d3a1477fd",
"ActivityName": "Passenger car",
"IsErrorRecord": false,
"ErrorJson": null,
"Name": "Employee Commuting 526",
"CH4": 2267.832,
"CH4Unit": "g",
"CO2": 107560.032,
"CO2Unit": "kg",
"CO2e": 108292.541736,
"CO2eUnit": kg,
"HFCs": 0,
"HFCsUnit": null,
"N2O": 2267.832,
"N2OUnit": "g",
"NF3": 0,
"NF3Unit": null,
"PFCs": 0,
"PFCsUnit": null,
"SF6": 0,
"SF6Unit": null,
"OtherGHGs": 0,
"OtherGHGsUnit": null
}
]

Dans l’exemple suivant, l’API est appelée avec un ID de données d’activité non valide, ce qui entraîne une réponse avec erreur. L’enregistrement d’activité en question manque le champ de coût, qui est requis par le modèle de calcul dans l’entrée. Par conséquent, l’enregistrement de sortie comporte une erreur JSON contenant la pile d’exceptions de calcul rencontrées lors de l’évaluation de l’enregistrement. Le code d’erreur de service des exceptions rencontrées peut aider l’utilisateur à comprendre ce qui s’est passé. Dans ce cas, EmissionCalculationActionFieldValueNullBlankException indique qu’un champ obligatoire est vide.

Entrée :

{

  "activityDataIds": [
       "22a8b098-4b8b-ed11-aad1-000d3a5bc56a"
  ],

  "calculationModelId": "0b533a50-399e-ec11-b400-00224823f2de",

  "version": "1.0.0"

}

Sortie :

[
{ 
    "ActivityId": "22a8b098-4b8b-ed11-aad1-000d3a5bc56a", 
    "ActivityName": null, 
    "IsErrorRecord": true, 
    "ErrorJson": { 
      "ServiceErrorCode": "ActivityCalculationModelExecutionException", 
      "UserMessageParameters": [ 
        "Invalid Fugitive Emissions" 
      ], 
      "InnerException": { 
        "ServiceErrorCode": "EmissionCalculationActionFieldValueNullBlankException", 
        "UserMessageParameters": [ 
          "Action 1" 
        ], 
        "InnerException": { 
          "ServiceErrorCode": null, 
          "UserMessageParameters": null, 
          "InnerException": { 
            "ServiceErrorCode": null, 
            "UserMessageParameters": null, 
            "InnerException": null 
          } 
        } 
      } 
    }, 
    "Name": null, 
    "CH4": 0, 
    "CH4Unit": null, 
    "CO2": 0, 
    "CO2Unit": null, 
    "CO2e": 0, 
    "CO2eUnit": null, 
    "HFCs": 0, 
    "HFCsUnit": null, 
    "N2O": 0, 
    "N2OUnit": null, 
    "NF3": 0, 
    "NF3Unit": null, 
    "PFCs": 0, 
    "PFCsUnit": null, 
    "SF6": 0, 
    "SF6Unit": null, 
    "OtherGHGs": 0, 
    "OtherGHGsUnit": null 
  }] 
]

Appel d’API personnalisées

Pour plus d’informations, voir : Créer et utiliser des API personnalisées.