API de cálculo de emissão generalizada
Você pode usar a API msdyn_runEmissionCalculationService para calcular emissões para atividades usando um modelo de cálculo sem criar um perfil de cálculo. Como assinante do Microsoft Sustainability Manager, você pode usar esta URL para acessar a API:
{organization url}/api/data/v{version}/msdyn_runEmissionCalculationService
Nesta URL, a URL da organização refere-se à URL base da organização em que o Microsoft Sustainability Manager está instalado e o usuário pode acessar. Versão refere-se à versão da API da web (por exemplo, 9.2).
Como obter IDs de entidades
Há muitas maneiras de obter as IDs de entidades, como dados de atividade e modelo de cálculo. Elas incluem a API Web XRM, a API do cliente e diretamente pela URL da entidade no Microsoft Sustainability Manager.
Parâmetros de entrada
Como uma API personalizada do Dataverse, o tempo de execução da API de cálculo de emissão generalizada é limitado a dois minutos. Como cálculos mais longos expiram, o tamanho da entrada é restrito de acordo com a tabela a seguir.
Nome | Tipo | Obrigatório? | Descrição |
---|---|---|---|
activityIds | Matriz de cadeia de caracteres | Sim | Lista de IDs dos registros de dados de atividade a serem usados no cálculo. Até 500 IDs de atividade podem ser incluídos na entrada. |
calculationModelId | Cadeia de caracteres | Sim | ID do modelo de cálculo a ser utilizado no cálculo das emissões. |
versão | Cadeia de caracteres | Não | O número de versão da API identifica a versão da API que deve ser chamada. Atualmente, 1.0.0 é a única versão disponível. Se não for especificado, a versão mais recente será usada. |
Parâmetros de saída
No nível mais alto, a saída é uma string JSON contendo uma lista de entidades de saída de emissão generalizada. Para cada atividade elegível, a entidade de saída pode conter as emissões avaliadas ou os erros encontrados durante o cálculo com base no êxito do cálculo. Sempre verifique o sinalizador IsErrorRecord de um registro de saída antes de tentar acessá-lo.
Entidade de saída de emissão generalizada
A entidade de saída de emissões generalizadas não existe no Dataverse. É uma coleção de atributos relevantes da entidade de emissão e da entidade de erro de cálculo. A API de cálculo de emissão generalizada retorna uma lista dessas entidades, com cada entidade correspondendo a um registro de dados de atividade elegível na entrada.
A entidade de saída tem os seguintes atributos:
Nome | Tipo | Descrição |
---|---|---|
ActivityId | Cadeia de Caracteres | A ID do registro de dados da atividade usado para o cálculo. |
ActivityName | Cadeia de Caracteres | O nome do registro de dados da atividade usado para o cálculo. |
IsErrorRecord | Boolean | Um valor booliano que indica se o cálculo dessa atividade específica encontrou erros. Se for verdadeiro, o cálculo falhou e os erros encontrados podem ser visualizados por meio do atributo ErrorJson. |
ErrorJson | Cadeia de caracteres | Cadeia de caracteres JSON representando qualquer erro de cálculo encontrado durante o processamento desta determinada atividade. Este valor é nulo se IsErrorRecord for falso. |
Nome | Cadeia de caracteres | Nome da emissão calculada para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro. |
CH4 | Decimal | Valor de emissão de CH4 calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver CH4. |
CH4Unit | Cadeia de caracteres | Nome da unidade para o valor de emissão de CH4 calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver CH4. |
CO2 | Decimal | Valor de emissão de CO2 calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver CO2. |
CO2Unit | Cadeia de caracteres | Nome da unidade para o valor de emissão de CO2 calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver CO2. |
CO2e | Decimal | Valor de emissão de CO2e calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver CO2e. |
CO2eUnit | Cadeia de caracteres | Nome da unidade para o valor de emissão de CO2e calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver CO2e. |
HFCs | Decimal | Valor de emissão de HFCs calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver HFCs. |
HFCsUnit | Cadeia de caracteres | Nome da unidade para o valor de emissão de HFCs calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver HFCs. |
N2O | Decimal | Valor de emissão de N2O calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver N2O. |
N2OUnit | Cadeia de caracteres | Nome da unidade para o valor de emissão de N2O calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver N2O. |
NF3 | Decimal | Valor de emissão de NF3 calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver NF3. |
NF3Unit | Cadeia de caracteres | Nome da unidade para o valor de emissão de NF3 calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver NF3. |
PFCs | Decimal | Valor de emissão de PFCs calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver PFCs. |
PFCsUnit | Cadeia de caracteres | Nome da unidade para o valor de emissão de PFCs calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver PFCs. |
SF6 | Decimal | Valor de emissão de SF6 calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver SF6. |
SF6Unit | Cadeia de caracteres | Nome da unidade para o valor de emissão de SF6 calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver SF6. |
OtherGHGs | Decimal | Valor de emissão de outros gases de efeito estufa calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não contiver outros GHGs. |
OtherGHGsUnit | Cadeia de caracteres | Nome da unidade para outros valores de emissão de gases de efeito estufa calculados para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não contiver outros GHGs. |
Exemplos
No exemplo a seguir, a API é chamada com uma ID de dados de atividade válida, resultando em uma resposta sem erro.
Entrada:
{
"activityDataIds": [
"decc7c96-9180-ed11-aacf-000d3a1477fd”
],
"calculationModelId": "0b533a50-399e-ec11-b400-00224823f2de",
"version": "1.0.0"
}
Resultado:
[
{
"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
}
]
No exemplo a seguir, a API é chamada com uma ID de dados de atividade inválido, resultando em uma resposta de erro. O registro da atividade em questão tem o campo de custo ausente, o qual o modelo de cálculo requer na entrada. Como resultado, o registro de saída tem um erro JSON contendo a pilha de exceções de cálculo encontradas durante a avaliação do registro. O código de erro de serviço das exceções encontradas pode ajudar o usuário a entender o que deu errado. Nesse caso, EmissionCalculationActionFieldValueNullBlankException indica que um campo obrigatório está em branco.
Entrada:
{
"activityDataIds": [
"22a8b098-4b8b-ed11-aad1-000d3a5bc56a"
],
"calculationModelId": "0b533a50-399e-ec11-b400-00224823f2de",
"version": "1.0.0"
}
Resultado:
[
{
"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
}]
]
Invocação de APIs personalizadas
Para obter mais informações, acesse Criar e usar APIs personalizadas.