Jaa


Yleisen päästölaskennan ohjelmointirajapinta

Microsoft Cloud for Sustainability Tech Summit, marraskuu 2024.

Voit käyttää yleistettyä msdyn_runEmissionCalculationService-ohjelmointirajapintaa toimintojen päästöjen laskemiseen laskentamallin avulla luomatta laskentaprofiilia. Tämän URL-osoitteen avulla voit Microsoft Sustainability Manager -tilaajana käyttää ohjelmointirajapintaa:

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

Tässä URL-osoitteessa organisaation URL-osoite viittaa organisaation perus-URL-osoitteeseen, jonka Microsoft Sustainability Manager on asentanut ja johon käyttäjällä voi käyttöoikeus. Versio viittaa verkko-ohjelmointirajapinnan versioon (esimerkiksi 9.2).

Entiteettitunnuksen hankkiminen

Entiteettien, kuten aktiviteettitietojen ja laskentamallin, tunnuksia voi käyttää monella eri tavalla. Näitä ovat XRM WebAPI, asiakkaan ohjelmointirajapinta ja suoraan entiteetin URL-osoite Microsoft Sustainability Managerissa.

Syöteparametrit

Dataversen mukautettuna ohjelmointirajapintana yleisen päästölaskennan ohjelmointirajapinna:n suoritusaika on rajoitettu kahteen minuuttiin. Pitkät laskelmat aikakatkaistaan, joten syötön kokoa rajoitetaan seuraavan taulukon mukaisesti.

Name Type Onko pakollinen? Kuvaus
activityIds Merkkijonomatriisi Kyllä Laskutoimituksessa käytettävä aktiviteettitietotietueiden tunnusluettelo. Tuloksissa voi olla enintään 500 aktiviteettitunnusta.
calculationModelId String Kyllä Päästöjen laskennassa käytettävä laskentamallin tunnus.
version String Ei Ohjelmointirajapinnan versionumero määrittää sen ohjelmointirajapinnan version, joka tulisi käynnistää. Tällä hetkellä 1.0.0 on ainoa käytettävissä oleva versio. Käytetään uusinta versiota ellei muuta ole määritetty.

Tulosparametrit

Ylimmällä tasolla tulos on JSON-merkkijono, joka sisältää luettelon yleisistä päästöjen tulosentiteeteistä. Kunkin hyväksyttävän aktiviteetin osalta tulosentiteetti voi sisältää arvioidut päästöt tai laskelman aikana havaitut virheen sen perusteella, onnistuiko laskelma. Tarkista aina IsErrorRecord-lippu, ennen kuin yrität käyttää sitä.

Yleinen päästöjen tulosentiteetti

Yleistä päästöjen tulosentiteettiä ei ole olemassa Dataversessä. Se on olennaisten määritteiden kokoelma päästöjen entiteetistä ja laskennan virhe-entiteetistä. Yleisesti käytettävä laskennan ohjelmointirajapinta palauttaa luettelon näistä entiteeteistä, ja kukin kohde vastaa syötteessä vastaavaa oikeutettua aktiviteettitietuetta.

Tulosentiteetillä on seuraavat määritteet:

Name Type Description
ActivityId String Laskelmassa käytetyn aktiviteetin tietotietueen tunnus.
ActivityName String Laskelmassa käytetyn aktiviteetin tietotietueen nimi.
IsErrorRecord Totuusarvo Totuusarvo, joka ilmaisee, onko tässä aktiviteetissa tapahtunut laskentavirheitä. Jos arvo on tosi, laskutoimituksen epäonnistuminen ja kohdatut virheet voidaan tarkastella ErrorJson-määritteen kautta.
ErrorJson String JSON-merkkijono, joka vastaa annettua aktiviteettia käsiteltäessä ilmenneitä laskentavirheitä. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on epätosi.
Name String Tälle aktiviteetille lasketun päästön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi.
CH4 Desimaaliluku Tälle aktiviteetille lasketun päästön CH4-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä CH4:ta.
CH4Unit String Tälle aktiviteetille lasketun päästön CH4-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä CH4:ta.
CO2 Desimaaliluku Tälle aktiviteetille lasketun päästön CO2-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä CO2:ta.
CO2Unit String Tälle aktiviteetille lasketun päästön CO2-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä CO2:ta.
CO2e Desimaaliluku Tälle aktiviteetille lasketun päästön CO2e-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä CO2e:tä.
Co2eUnit String Tälle aktiviteetille lasketun päästön CO2e-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä CO2e:tä.
HFC-yhdisteet Desimaaliluku Tälle aktiviteetille lasketun päästön HFCs-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä HFCs:ä.
HFCsUnit String Tälle aktiviteetille lasketun päästön HFCs-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä HFCs:ä.
N2O Desimaaliluku Tälle aktiviteetille lasketun päästön N2O-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä N2O:ta.
N2OUnit String Tälle aktiviteetille lasketun päästön N2O-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä N2O:ta.
NF3 Desimaaliluku Tälle aktiviteetille lasketun päästön NF3-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä NF3:ta.
NF3Unit String Tälle aktiviteetille lasketun päästön NF3-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä NF3:ta.
PFC-yhdisteet Desimaaliluku Tälle aktiviteetille lasketun päästön PFCs-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä PFCs:ta.
PFCsUnit String Tälle aktiviteetille lasketun päästön PFCs-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä PFCs:ta.
SF6 Desimaaliluku Tälle aktiviteetille lasketun päästön SF6-arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä SF6:ta.
SF6Unit String Tälle aktiviteetille lasketun päästön SF6-arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä SF6:ta.
OtherGHGs Desimaaliluku Tälle aktiviteetille laskettujen päästöjen muiden kasvihuonekaasujen arvo. Tämä arvo on 0, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä muuta GHGs:ta.
OtherGHGsUnit String Tälle aktiviteetille laskettujen päästöjen muiden kasvihuonekaasujen arvon yksikön nimi. Tämä arvo on tyhjäarvo, jos IsErrorRecord-arvo on tosi tai jos se ei sisällä muita GHGs:ta.

Esimerkkejä

Seuraavassa esimerkissä ohjelmointirajapinta käynnistetään kelvollisella aktiviteetin tietotunnuksella, mikä aiheuttaa nonerror-vastauksen.

Syöte:

{

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

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

  "version": "1.0.0"

}

Tuloste:

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

Seuraavassa esimerkissä ohjelmointirajapinta käynnistetään virheellisen aktiviteettitietotunnuksen avulla, jolloin saadaan virhevastaus. Kyseisestä aktiviteettitietueesta puuttuu kustannuskenttä, jota laskentamalli tarvitsee syötteessä. Tämän vuoksi tulostietueessa on JSON-virhe, joka sisältää tietuetta arvioitaessa kohdattujen laskentapoikkeusten pinon. Poikkeusten palveluvirhekoodi voi auttaa käyttäjää ymmärtämään, mikä meni vikaan. Tässä tapauksessa EmissionCalculationActionFieldValueNullBlankException ilmaisee, että pakollinen kenttä on tyhjä.

Syöte:

{

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

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

  "version": "1.0.0"

}

Tuloste:

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

Mukautettujen ohjelmointirajapintojen kutsuminen

Lisätietoja on kohdassa Mukautettujen ohjelmointirajapintojen luominen ja käyttö.