Compartir a través de


API de cálculo de emisiones generalizado

Microsoft Cloud for Sustainability Cumbre tecnológica noviembre de 2024.

Puede usar 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 se refiere 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 tienen un tiempo de espera prolongado, por lo que el tamaño de entrada está restringido de acuerdo con la siguiente tabla.

Nombre Tipo ¿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 Cadena ID del modelo de cálculo a utilizar en el cálculo de emisiones.
version Cadena 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 podría contener las 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:

Nombre Tipo Descripción
ActivityId Cadena El identificador del registro de datos de actividad usados para el cálculo.
ActivityName Cadena El nombre del registro de datos de actividad usados 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 Cadena Cadena JSON que representa cualquier error de cálculo encontrado al procesar esta actividad dada. Este valor es nulo si IsErrorRecord es falso.
Nombre Cadena 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 Cadena 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 Cadena 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 Cadena 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 Cadena 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 Cadena 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 Cadena 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 Cadena 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 Cadena 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 Cadena 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, se invoca la API con un identificador de datos de actividad válido, lo 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. En el registro de actividad en cuestión falta el campo de coste, que el modelo de cálculo requiere 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.