API de cálculo generalizado de emissões
Pode utilizar a API msdyn_runEmissionCalculationService para calcular as emissões de atividades utilizando num modelo de cálculo sem criar um perfil de cálculo. Como subscritor do Microsoft Sustainability Manager, pode utilizar este URL para aceder à API:
{organization url}/api/data/v{version}/msdyn_runEmissionCalculationService
Neste URL, o URL da organização refere-se ao URL base da organização Microsoft Sustainability Manager na qual está instalado e ao qual o utilizador pode aceder. Versão refere-se à versão da API da Web (por exemplo, 9.2).
Obter IDs de entidade
Existem várias formas de obter os IDs das entidades, tais como os dados de atividade e o modelo de cálculo. Estas incluem a XRM WebAPI, a API do cliente e diretamente através do URL da entidade no Microsoft Sustainability Manager.
Parâmetros de entrada
Tal como a API personalizada Dataverse, o runtime da API de cálculo de emissão generalizada está limitado em dois minutos. Os cálculos mais demorados excedem o tempo limite, pelo que o tamanho da entrada está restringido de acordo com a tabela a seguir.
Nome | Tipo | Necessária? | Descrição |
---|---|---|---|
activityIds | Matriz de cadeias de carateres | Sim | A lista de IDs dos registos de dados de atividade a serem utilizados no cálculo. É possível incluir até 500 IDs de atividade na entrada. |
calculationModelId | Cadeia (de carateres) | Sim | O ID do modelo de cálculo a ser utilizado no cálculo de emissões. |
versão | Cadeia (de carateres) | Não | O número de versão da API identifica a versão da API que deve ser invocada. Atualmente a única versão disponível é a 1.0.0. Se não for especificado, será utilizada a versão mais recente. |
Parâmetros de saída
Ao nível mais alto, a saída é uma cadeia JSON que contém uma lista de entidades de saída de emissão generalizada. Para cada atividade elegível, a entidade de saída poderá conter emissões avaliadas ou os erros encontrados durante o cálculo com base no êxito do cálculo. Verifique sempre o sinalizador IsErrorRecord de um registo de saída antes de o tentar aceder.
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 generalizada de emissão devolve uma lista destas entidades, com cada entidade correspondente a um registo de dados de atividade elegível na entrada.
A entidade de saída tem os seguintes atributos:
Nome | Tipo | Descrição |
---|---|---|
ActivityId | Cadeia (de carateres) | O ID do registo de dados de atividade utilizado para o cálculo. |
ActivityName | Cadeia (de carateres) | O nome do registo de dados de atividade utilizado para o cálculo. |
IsErrorRecord | Booleano | Um valor booleano que indica se o cálculo desta determinada atividade encontrou erros. Se for verdadeiro, o cálculo falhou e os erros encontrados podem ser visualizados através do atributo ErrorJson. |
ErrorJson | Cadeia (de carateres) | Cadeia JSON que representa quaisquer erros de cálculo encontrados durante o processamento desta determinada atividade. Este valor é nulo se IsErrorRecord for false. |
Nome | Cadeia (de carateres) | Nome da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro. |
CH4 | Decimal | Valor CH4 da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver CH4. |
CH4Unit | Cadeia (de carateres) | Nome da unidade para o valor CH4 da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver CH4. |
CO2 | Decimal | Valor CO2 da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver CO2. |
CO2Unit | Cadeia (de carateres) | Nome da unidade para o valor CO2 da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver CO2. |
CO2e | Decimal | Valor CO2e da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver CO2e. |
CO2eUnit | Cadeia (de carateres) | Nome da unidade para o valor CO2e da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver CO2e. |
HFCs | Decimal | Valor HFCs da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver HFCs. |
HFCsUnit | Cadeia (de carateres) | Nome da unidade para o valor HFCs da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver HFCs. |
N2O | Decimal | Valor N2O da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver N2O. |
N2OUnit | Cadeia (de carateres) | Nome da unidade para o valor N2O da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver N2O. |
NF3 | Decimal | Valor NF3 da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver NF3. |
NF3Unit | Cadeia (de carateres) | Nome da unidade para o valor NF3 da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver NF3. |
PFCs | Decimal | Valor PFCs da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver PFCs. |
PFCsUnit | Cadeia (de carateres) | Nome da unidade para o valor PFCs da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver PFCs. |
SF6 | Decimal | Valor SF6 da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver SF6. |
SF6Unit | Cadeia (de carateres) | Nome da unidade para o valor SF6 da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver SF6. |
OtherGEEs | Decimal | Outro valor de gases com efeito de estufa da emissão calculado para esta atividade. Este valor é 0 se IsErrorRecord for verdadeiro ou se a emissão não tiver outros GEEs. |
OtherGEEsUnit | Cadeia (de carateres) | Nome da unidade oara outro valor de gases com efeito de estufa da emissão calculado para esta atividade. Este valor é nulo se IsErrorRecord for verdadeiro ou se a emissão não tiver outros GEEs. |
Exemplos
No exemplo seguinte, a API é invocada com um ID de dados de atividade válido que resulta numa resposta de não erro.
Entrada:
{
"activityDataIds": [
"decc7c96-9180-ed11-aacf-000d3a1477fd”
],
"calculationModelId": "0b533a50-399e-ec11-b400-00224823f2de",
"version": "1.0.0"
}
Saída:
[
{
"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 seguinte, a API é invocada com um ID de dados de atividade inválido que resulta numa resposta de erro. O registo de atividade em questão não tem o campo de custo, que o modelo de cálculo requer na entrada. Como resultado, o registo de saída tem um erro JSON que contém a pilha de exceções de cálculo encontradas durante a avaliação do registo. O código de erro de serviço das exceções encontradas pode ajudar o utilizador a compreender o que correu mal. Neste caso, EmissionCalvalueActionFieldValueNullBlankException 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"
}
Saída:
[
{
"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
}]
]
Invocvar APIs Personalizadas
Para mais informações, aceda a Criar e utilizar APIs Personalizadas.