Share via


API de cálculo de emisiones generalizado

Cumbre Técnica de mayo 2024 de Microsoft Cloud for Sustainability

Puede usasr la API msdyn_runEmissionCalculationService para calcular las emisiones de las actividades mediante un modelo de cálculo sin crear un perfil de cálculo. Como suscriptor de la Microsoft Sustainability Manager, puede usar esta URL para acceder a la API:

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

En esta URL, URL de la organización hace referencia a la URL base de la organización donde Microsoft Sustainability Manager está instalado y donde el usuario puede acceder. Versión hace referencia a la versión de la API web (por ejemplo, 9.2).

Obtener ID de entidad

Hay muchas formas de obtener los ID de entidades como los datos de actividad y el modelo de cálculo. Estos incluyen XRM WebAPI, la API de cliente y directamente a través de la URL de la entidad Microsoft Sustainability Manager.

Parámetros de entrada

Como API personalizada de Dataverse, el tiempo de ejecución de la API de cálculo de emisiones generalizadas tiene un límite de dos minutos. Los cálculos más largos se agotarán, por lo que el tamaño de entrada está restringido de acuerdo con la siguiente tabla.

Name Type ¿Obligatorio? Descripción
activityIds Matriz de cadenas Lista de ID de los registros de datos de actividad que se utilizarán en el cálculo. Se pueden incluir hasta 500 ID de actividad en la entrada.
calculationModelId String ID del modelo de cálculo a utilizar en el cálculo de emisiones.
version String No El número de versión de la API identifica la versión de la API que debe invocarse. Actualmente 1.0.0 es la única versión disponible. Si no se especifica, se utiliza la última versión.

Parámetros de salida

En el nivel más alto, la salida es una cadena JSON que contiene una lista de entidades de salida de emisiones generalizadas. Para cada actividad elegible, la entidad de salida puede contener emisiones evaluadas o los errores encontrados durante el cálculo en función de si el cálculo fue exitoso. Compruebe siempre el indicador IsErrorRecord de un registro de salida antes de intentar acceder a él.

Entidad de salida de emisiones generalizadas

La entidad de salida de emisiones generalizadas no existe en Dataverse. Es una colección de atributos relevantes de la entidad de emisión y la entidad de error de cálculo. La API de cálculo de emisiones generalizadas devuelve una lista de estas entidades, cada una de las cuales corresponde a un registro de datos de actividad elegible en la entrada.

La entidad de salida tiene los siguientes atributos:

Name Type Descripción
ActivityId String ID del registro de datos de actividad utilizado para el cálculo.
ActivityName String Nombre del registro de datos de actividad utilizado para el cálculo.
IsErrorRecord Booleana Un valor booleano que indica si el cálculo de esta actividad determinada encontró errores. Si es verdadero, el cálculo falló y los errores encontrados se pueden ver a través del atributo ErrorJson.
ErrorJson String Cadena JSON que representa cualquier error de cálculo encontrado al procesar esta actividad dada. Este valor es nulo si IsErrorRecord es falso.
Name String Nombre de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero.
CH4 Decimal Valor CH4 de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene CH4.
CH4Unit String Nombre de unidad para el valor CH4 de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene CH4.
CO2 Decimal Valor CO2 de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene CO2.
CO2Unit String Nombre de unidad para el valor CO2 de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene CO2.
CO2e Decimal Valor CO2e de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene CO2e.
CO2eUnit String Nombre de unidad para el valor CO2e de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene CO2e.
HFC Decimal Valor HFCs de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene HFCs.
HFCsUnit String Nombre de unidad para el valor HFCs de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene HFCs.
N2O Decimal Valor N2O de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene N2O.
N2OUnit String Nombre de unidad para el valor N2O de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene N2O.
NF3 Decimal Valor NF3 de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene NF3.
NF3Unit String Nombre de unidad para el valor NF3 de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene NF3.
PFC Decimal Valor PFCs de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene PFCs.
PFCsUnit String Nombre de unidad para el valor PFCs de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene PFCs.
SF6 Decimal Valor SF6 de la emisión calculada para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene SF6.
SF6Unit String Nombre de unidad para el valor SF6 de la emisión calculada para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene SF6.
OtherGHGs Decimal Valor de emisión de otros gases de efecto invernadero calculados para esta actividad. Este valor es 0 si IsErrorRecord es verdadero o si la emisión no contiene otros GEI.
OtherGHGsUnit String Nombre de unidad de otros gases de efecto invernadero calculados para esta actividad. Este valor es nulo si IsErrorRecord es verdadero o si la emisión no contiene GEI.

Ejemplos

En el siguiente ejemplo, la API se invoca con un ID de datos de actividad válido que genera una respuesta sin error.

Entrada:

{

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

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

  "version": "1.0.0"

}

Salida:

[
{
"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
}
]

En el siguiente ejemplo, la API se invoca con un ID de datos de actividad no válido que genera una respuesta con error. Al registro de actividad en cuestión le falta el campo de costo, que es requerido por el modelo de cálculo en la entrada. Como resultado, el registro de salida tiene un error JSON que contiene la pila de excepciones de cálculo encontradas al evaluar el registro. El código de error de servicio de las excepciones encontradas puede ayudar al usuario a comprender qué salió mal. En este caso, EmissionCalculationActionFieldValueNullBlankException indica que un campo obligatorio está en blanco.

Entrada:

{

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

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

  "version": "1.0.0"

}

Salida:

[
{ 
    "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 
  }] 
]

Invocación de API personalizadas

Para más información, vaya a Crear y usar API personalizadas.