API расчета общих выбросов
Microsoft Cloud for Sustainability
Вы можете использовать API-интерфейс msdyn_runEmissionCalculationService для расчета выбросов от деятельности с использованием модели расчета без создания профиля расчета. Будучи подписчиком Microsoft Sustainability Manager, вы можете использовать этот URL-адрес для доступа к API-интерфейсу:
{organization url}/api/data/v{version}/msdyn_runEmissionCalculationService
В этом URL-адресе url организации относится к базовому URL-адресу организации, в которой установлено Microsoft Sustainability Manager, и к которой пользователь может получить доступ. Версия относится к версии веб-API (например, 9.2).
Получение идентификаторов сущностей
Существует множество способов получить идентификаторы таких сущностей, как данные о деятельности и модель расчета. К ним относятся XRM WebAPI, клиентский API и непосредственно через URL-адрес сущности в Microsoft Sustainability Manager.
Входные параметры
В качестве пользовательского API-интерфейса Dataverse время выполнения API-интерфейса обобщенного расчета выбросов ограничено двумя минутами. Для более длительных вычислений истечет время ожидания, поэтому размер входных данных ограничен в соответствии со следующей таблицей.
Полное имя | Type | Обязательное? | Описание |
---|---|---|---|
activityIds | Массив строк | Да | Список идентификаторов записей данных о деятельности, которые будут использоваться в расчетах. Во входные данные можно включить до 500 идентификаторов деятельности. |
calculationModelId | String | Да | Идентификатор модели расчета, используемый для расчета выбросов. |
версия | String | No | Номер версии API определяет версию API, которая должна быть вызвана. В настоящее время доступна только версия 1.0.0. Если не указано, используется последняя версия. |
Выходные параметры
На самом высоком уровне выходные данные представляют собой строку JSON, содержащую список обобщенных выходных сущностей выбросов. Для каждого охватываемого вида деятельности выходная сущность может содержать оцененные выбросы или ошибки, возникшие во время расчета, в зависимости от того, был ли расчет успешным. Всегда проверяйте флаг IsErrorRecord записи выходных данных, прежде чем пытаться получить к ней доступ.
Сущность выходных данных обобщенных выбросов
Сущность выходных данных обобщенных выбросов не существует в Dataverse. Это набор соответствующих атрибутов сущности выбросов и сущности ошибки расчета. API-интерфейс обобщенного расчета выбросов возвращает список этих сущностей, каждой из которых соответствует соответствующая запись данных о деятельности во входных данных.
Сущность выходных данных имеет следующие атрибуты:
Полное имя | Type | Описание |
---|---|---|
ActivityId | String | ИД записи данных о деятельности, использованных для расчета. |
ActivityName | String | Имя записи данных о деятельности, использованных для расчета. |
IsErrorRecord | Логический | Логическое значение, указывающее, возникли ли ошибки при вычислении данного действия. Если true, расчет не удался, и обнаруженные ошибки можно просмотреть с помощью атрибута ErrorJson. |
ErrorJson | String | Строка JSON, представляющая любые ошибки вычислений, возникшие при обработке данного действия. Это значение равно NULL, если IsErrorRecord имеет значение false. |
Полное имя | String | Название выброса, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true. |
CH4 | Decimal | Значение CH4, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит CH4. |
CH4Unit | String | Название единицы измерения для значения CH4, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит CH4. |
CO2 | Decimal | Значение CO2, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит CO2. |
CO2Unit | String | Название единицы измерения для значения CO2, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит CO2. |
CO2-эквивалент | Decimal | Значение CO2-экв., рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит CO2-экв. |
CO2eUnit | String | Название единицы измерения для значения CO2-экв., рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит CO2-экв. |
HFC | Decimal | Значение HFCs, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит HFCs. |
HFCsUnit | String | Название единицы измерения для значения HFCs, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит HFCs. |
N2O | Decimal | Значение N2O, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит N2O. |
N2OUnit | String | Название единицы измерения для значения N2O, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит N2O. |
NF3 | Decimal | Значение NF3, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит NF3. |
NF3Unit | String | Название единицы измерения для значения NF3, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит NF3. |
PFC | Decimal | Значение PFCs, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит PFCs. |
PFCsUnit | String | Название единицы измерения для значения PFCs, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит PFCs. |
SF6 | Decimal | Значение SF6, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит SF6. |
SF6Unit | String | Название единицы измерения для значения SF6, рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит SF6. |
OtherGHGs | Decimal | Значение выбросов прочих парниковых газов, рассчитанное для данного вида деятельности. Это значение равно 0, если IsErrorRecord имеет значение true или если выброс не содержит прочих GHGs. |
OtherGHGsUnit | String | Название единицы измерения для значения прочих парниковых газов., рассчитанного для данного вида деятельности. Это значение равно NULL, если IsErrorRecord имеет значение true или если выброс не содержит прочих парниковых газов. |
Примеры
В следующем примере API-интерфейс вызывается с действительным идентификатором данных о деятельности, что приводит к получению ответа без ошибок.
Входные данные:
{
"activityDataIds": [
"decc7c96-9180-ed11-aacf-000d3a1477fd”
],
"calculationModelId": "0b533a50-399e-ec11-b400-00224823f2de",
"version": "1.0.0"
}
Выходные данные:
[
{
"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
}
]
В следующем примере API-интерфейс вызывается с недействительным идентификатором данных о деятельности, что приводит к получению ответа с ошибкой. В рассматриваемой записи деятельности отсутствует поле затрат, которое требуется для модели расчета во входных данных. В результате выходная запись содержит ошибку JSON, содержащую стек исключений вычислений, обнаруженных при оценке записи. Код ошибки службы обнаруженных исключений может помочь пользователю понять, что пошло не так. В этом случае EmissionCalculationActionFieldValueNullBlankException указывает, что обязательное поле пусто.
Входные данные:
{
"activityDataIds": [
"22a8b098-4b8b-ed11-aad1-000d3a5bc56a"
],
"calculationModelId": "0b533a50-399e-ec11-b400-00224823f2de",
"version": "1.0.0"
}
Выходные данные:
[
{
"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
}]
]
Вызов пользовательских API-интерфейсов
Для получения дополнительной информации перейдите в раздел Создание и использование пользовательских API-интерфейсов.