Deila með


Opin API fyrir Inventory Visibility

Nóta

Azure Active Directory er nú Microsoft Entra kenni. Læra meira

Þessi grein lýsir opinberum API sem eru veitt af Birgðasýnileika.

Almennt REST API innbótar birgðasýnileikans kynnir ýmsar tilteknar endastöðvar samþættingar. Það styður fjórar aðalsamskiptaleiðir:

  • Bókun á lagerbirgðum breytist í innbótina úr ytra kerfi
  • Að setja upp eða hnekkja magni lagerbirgða í innbótinni úr ytra kerfi
  • Að bóka frátekningartilvik í innbótina úr ytra kerfi
  • Fyrirspurn um núverandi lagermagn úr ytra kerfi

Eftirfarandi tafla sýnir API sem eru í boði eins og er:

Slóð Aðferð lýsing
/api/environment/{environmentId}/onhand Bóka Búðu til einn breytingaviðburð fyrir hendi
/api/environment/{environmentId}/onhand/bulk Bóka Búðu til marga breytingaviðburði
/api/environment/{environmentId}/setonhand/{inventorySystem}/bulk Bóka Stilla/hneka á lager magn
/api/environment/{environmentId}/onhand/reserve Bóka Búðu til einn mjúkan pöntunarviðburð
/api/environment/{environmentId}/onhand/reserve/bulk Bóka Búðu til marga mjúka bókunarviðburði
/api/environment/{environmentId}/onhand/unreserve Bóka Snúa við einum mjúkum pöntunarviðburði
/api/environment/{environmentId}/onhand/unreserve/bulk Bóka Snúa við mörgum mjúkum pöntunarviðburðum
/api/environment/{environmentId}/onhand/reserve/resyncjob Bóka Hreinsaðu upp pöntunargögn
/api/environment/{environmentId}/onhand/changeschedule Bóka Búðu til eina áætlaða breytingu á hendi
/api/environment/{environmentId}/onhand/changeschedule/bulk Bóka Búðu til margar breytingar á hendi með dagsetningum
/api/environment/{environmentId}/onhand/indexquery Bóka Fyrirspurn með því að nota póstaðferðina (mælt með)
/api/environment/{environmentId}/onhand Sækja Fyrirspurn með því að nota get aðferðina
/api/environment/{environmentId}/onhand/exactquery Bóka Nákvæm fyrirspurn með því að nota póstaðferðina
/api/environment/{environmentId}/allocation/allocate Bóka Búðu til einn úthlutunarviðburð
/api/environment/{environmentId}/allocation/unallocate Bóka Búðu til einn atburð sem ekki var úthlutað
/api/environment/{environmentId}/allocation/reallocate Bóka Búðu til einn endurúthluta atburði
/api/environment/{environmentId}/allocation/consume Bóka Búðu til einn neysluviðburð
/api/environment/{environmentId}/allocation/query Bóka Niðurstaða fyrirspurnaúthlutunar
/api/environment/{environmentId}/onhand/productsearch/indexquery Bóka Settu inn vísitölufyrirspurn með vöruleit
/api/environment/{environmentId}/onhand/productsearch/exactquery Bóka Sendu nákvæma fyrirspurn með vöruleit

Nóta

The {environmentId} hluti af leiðinni er auðkenni umhverfisins í Microsoft Dynamics Lífsferilsþjónusta.

Fjölforritaskilin getur skilað að hámarki 512 skrám fyrir hverja beiðni.

Sannvottun

Öryggistákn verkvangsins er notað til að kalla á opið API birgðasýnileika. Þess vegna verður þú að búa til a Microsoft Entra tákn með því að nota þitt Microsoft Entra umsókn. Þú verður þá að nota Microsoft Entra tákn til að fá aðgangslykill frá öryggisþjónustunni.

Til að ná í öryggistákn skal fylgja þessum skrefum.

  1. Skráðu þig inn á Azure gáttina og notaðu hana til að finna clientId og clientSecret gildi fyrir þína Dynamics 365 Supply Chain Management app.

  2. Sækja a Microsoft Entra tákn (aadToken) með því að senda inn HTTP beiðni sem hefur eftirfarandi eiginleika:

    • Vefslóð:https://login.microsoftonline.com/${aadTenantId}/oauth2/v2.0/token

    • Aðferð:GET

    • Líkamsefni (eyðublaðsgögn):

      Lykill Virði
      client_id ${aadAppId}
      client_secret ${aadAppSecret}
      grant_type client_credentials
      umfang 0cdb527f-a8d1-4bf8-9436-b352c68682b2/.sjálfgefið

    Þú ættir að fá a Microsoft Entra tákn (aadToken) sem svar. Niðurstaðan ætti að líkjast eftirfarandi dæmi.

    {
        "token_type": "Bearer",
        "expires_in": "3599",
        "ext_expires_in": "3599",
        "access_token": "eyJ0eX...8WQ"
    }
    
  3. Settu saman JavaScript Object Notation (JSON) beiðni sem líkist eftirfarandi dæmi.

    {
        "grant_type": "client_credentials",
        "client_assertion_type": "aad_app",
        "client_assertion": "{Your_Microsoft EntraToken}",
        "scope": "https://inventoryservice.operations365.dynamics.com/.default",
        "context": "{$LCS_environment_id}",
        "context_type": "finops-env"
    }
    

    Athugið eftirfarandi stig:

    • The client_assertion gildi verður að vera Microsoft Entra tákn (aadToken) sem þú fékkst í fyrra skrefi.
    • The context gildi verður að vera auðkenni líftímaþjónustu umhverfisins þar sem þú vilt dreifa viðbótinni.
    • Stilltu öll önnur gildi eins og sýnt er í dæminu.
  4. Sæktu aðgangslykil (access_token) með því að senda inn HTTP beiðni sem hefur eftirfarandi eiginleika:

    • Vefslóð:https://securityservice.operations365.dynamics.com/token
    • Aðferð:POST
    • HTTP haus: Láttu API útgáfuna fylgja með. (Lykillinn er Api-Version og gildið er 1.0.)
    • Innihald meginmáls: Láttu JSON beiðnina sem þú bjóst til í fyrra skrefi fylgja með.

    Þú ættir að fá aðgangslykil (access_token) sem svar. Þú verður að nota þennan lykil sem handhafalykil til að kalla á API birgðasýnileika. Hér er dæmi.

    {
        "access_token": "{Returned_Token}",
        "token_type": "bearer",
        "expires_in": 3600
    }
    

Nóta

https://securityservice.operations365.dynamics.com/token Vefslóðin er almenn vefslóð öryggisþjónustunnar. Þegar þú hringir í slóðina er fyrsta svarið http tilvísunarsvar með stöðukóðann 307 í svarhausunum og færsla með lyklinum „Staðsetning“ sem inniheldur markslóð öryggisþjónustunnar. Vefslóðin er á þessu sniði: https://gw.{$geo}-il101.gateway.prod.island.powerapps.com/securityservice/token. Til dæmis, ef umhverfið þitt er staðsett í bandarískum landfræðilegum svæðum gæti vefslóðin verið https://gw.us-il101.gateway.prod.island.powerapps.com/securityservice/token. Ef 307 svarstöðukóði er ekki viðunandi fyrir þig geturðu smíðað raunverulega vefslóð handvirkt í samræmi við FinOps umhverfið þitt. Einfaldasta leiðin er að opna https://gw.as-il101.gateway.prod.island.powerapps.com/securityservice/token með vafranum þínum og afrita síðan heimilisfangið í veffangastikuna.

Stofna tilvik lagerbreytinga

Tvö API eru til staðar til að búa til tilvik lagerbreytinga:

  • Búðu til eina skrá: /api/environment/{environmentId}/onhand
  • Búðu til margar skrár: /api/environment/{environmentId}/onhand/bulk

Eftirfarandi tafla tekur saman merkingu hvers reits í meginmáli JSON.

Kenni svæðis lýsing
id Einkvæmt auðkenni fyrir tiltekið breytingartilvik. Ef endursending á sér stað vegna bilunar í þjónustu er þetta auðkenni notað til að tryggja að sami atburður verði ekki talinn tvisvar í kerfinu.
organizationId Auðkenni fyrirtækisins sem er tengt við viðburðinn. Þetta gildi er varpað í fyrirtæki eða auðkenni gagnasvæðis í Supply Chain Management.
productId Kennimerki afurðarinnar.
quantities Magnið sem lagerbirgðirnar þurfa að breytast um. Til dæmis, ef 10 nýjum bókum er bætt við hillu verður þetta gildi quantities:{ shelf:{ received: 10 }}. Ef þrjár bækur eru teknar úr hillunni eða seldar verður þetta gildi quantities:{ shelf:{ sold: 3 }}.
dimensionDataSource Gagnagjafi víddanna sem notaðar eru í tilviki og fyrirspurn bókunarbreytingar. Ef gagnagjafi er tilgreindur er hægt að nota sérstilltar víddir úr tilgreindum gagnagjafa. Birgðasýnileiki getur notað skilgreiningu víddar til að varpa sérstilltum víddum í almennar sjálfgefnar víddir. Ef ekkert dimensionDataSource gildi er tilgreint geturðu aðeins notað almennu grunnvíddir í fyrirspurnum þínum.
dimensions Gagnvirkt par lyklagildis. Gildunum er varpað í sumar víddirnar í Supply Chain Management. Hins vegar geturðu líka bætt við sérsniðnum víddum (til dæmis Uppruni) til að gefa til kynna hvort atburðurinn kemur frá Supply Chain Management eða ytra kerfi.

Nóta

Ef gagnaskiptareglan þín er stillt á eftir vöruauðkenni, siteId og locationId eru valfrjálsar stærðir. Annars eru þær nauðsynlegar stærðir. Þessi regla á einnig við um úthlutun, mjúkan varasjóð og breytingaáætlun API.

Eftirfarandi undirkaflar veita dæmi sem sýna hvernig á að nota þessi API.

Búðu til einn breytingaviðburð fyrir hendi

Þetta API býr til eitt tilvik lagerbreytinga.

Path:
    /api/environment/{environmentId}/onhand
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        id: string,
        organizationId: string,
        productId: string,
        dimensionDataSource: string, # Optional
        dimensions: {
            [key:string]: string,
        },
        quantities: {
            [dataSourceName:string]: {
                [key:string]: number,
            },
        },
    }

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls. Í þessu dæmi er fyrirtækið með sölustaðakerfi (POS) sem vinnur færslur í verslun og þar af leiðandi birgðabreytingar. Viðskiptavinurinn hefur skilað rauðum stuttermabol í verslunina þína. Til að endurspegla breytinguna birtir þú stakan breytingarviðburð fyrir bolurinn vöruna. Þessi viðburður mun auka magn bols vörunnar um 1.

{
    "id": "Test201",
    "organizationId": "usmf",
    "productId": "T-shirt",
    "dimensionDataSource": "pos",
    "dimensions": {
        "siteId": "1",
        "locationId": "11",
        "posMachineId": "0001",
        "colorId": "red"
    },
    "quantities": {
        "pos": {
            "inbound": 1
        }
    }
}

Eftirfarandi dæmi sýnir sýnishorn af efnisinnihaldi án dimensionDataSource. Í þessu tilviki, dimensions verður grunnmálin. Ef dimensionDataSource er stillt getur dimensions verið annað hvort gagnauppsprettuvíddir eða grunnvíddir.

{
    "id": "Test202",
    "organizationId": "usmf",
    "productId": "T-shirt",
    "dimensions": {
        "siteId": "1",
        "locationId": "11",
        "colorId": "red"
    },
    "quantities": {
        "pos": {
            "inbound": 1
        }
    }
}

Búðu til marga breytingaviðburði

Þetta forritaskil getur búið til breytingaviðburði, alveg eins og single-event API geta. Eini munurinn er sá að þetta API getur búið til margar færslur á sama tíma. Þess vegna eru Path og Body gildin mismunandi. Fyrir þetta API býður Body upp á fjölda skráa. Hámarksfjöldi skráa í hverri runu er 512. Þess vegna getur forritaskilin fyrir magnbreytingar stutt allt að 512 breytingartilvik í einu.

Til dæmis vann POS vél í smásöluverslun eftirfarandi tvær færslur:

  • Ein skilapöntun af einum rauðum stuttermabol
  • Ein sölufærsla á þremur svörtum stuttermabolum

Í þessu tilviki geturðu látið báðar birgðauppfærslurnar fylgja með í einu API símtali.

Path:
    /api/environment/{environmentId}/onhand/bulk
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    [
        {
            id: string,
            organizationId: string,
            productId: string,
            dimensionDataSource: string, # Optional
            dimensions: {
                [key:string]: string,
            },
            quantities: {
                [dataSourceName:string]: {
                    [key:string]: number,
                },
            },
        },
        ...
    ]

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls.

[
    {
        "id": "Test203",
        "organizationId": "usmf",
        "productId": "T-shirt",
        "dimensionDataSource": "pos",
        "dimensions": {
            "SiteId": "Site1",
            "LocationId": "11",
            "posMachineId": "0001"
            "colorId": "red"
        },
        "quantities": {
            "pos": { "inbound": 1 }
        }
    },
    {
        "id": "Test204",
        "organizationId": "usmf",
        "productId": "T-shirt",
        "dimensions": {
            "siteId": "1",
            "locationId": "11",
            "colorId": "black"
        },
        "quantities": {
            "pos": { "outbound": 3 }
        }
    }
]

Stilla/hneka á lager magn

The Set on-hand API hnekkir núverandi gögnum fyrir tilgreinda vöru. Þessi virkni er venjulega notuð til að gera uppfærslur á birgðatalningu. Til dæmis, meðan á daglegri birgðatalningu stendur, gæti verslun komist að því að raunveruleg birgðastaða fyrir rauða stuttermabol er 100. Þess vegna verður að uppfæra magn á innleið POS í 100, óháð því hvað fyrra magn var. Þú getur notað þetta API til að hnekkja núverandi gildi.

Path:
    /api/environment/{environmentId}/setonhand/{inventorySystem}/bulk
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    [
        {
            id: string,
            organizationId: string,
            productId: string,
            dimensionDataSource: string, # Optional
            dimensions: {
                [key:string]: string,
            },
            quantities: {
                [dataSourceName:string]: {
                    [key:string]: number,
                },
            },
            modifiedDateTimeUTC: datetime,
        },
        ...
    ]

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls. Hegðun þessa API er frábrugðin hegðun API sem lýst er í Búa til breytingaviðburði á hendi hlutanum fyrr í þessari grein. Í þessu sýnishorni verður magn bolurinn vöru stillt á 1.

[
    {
        "id": "Test204",
        "organizationId": "usmf",
        "productId": "T-shirt",
        "dimensionDataSource": "pos",
        "dimensions": {
            "SiteId": "1",
            "LocationId": "11",
            "posMachineId": "0001"
            "colorId": "red"
        },
        "quantities": {
            "pos": {
                "inbound": 100
            }
        }
    }
]

Stofna tilvik frátekninga

Til að nota Reserve API verður þú að kveikja á pöntunareiginleikanum og ljúka við pöntunarstillinguna. Fyrir frekari upplýsingar (þar á meðal gagnaflæði og dæmi um atburðarás), sjá Fyrirtektir á birgðasýnileika.

Búðu til einn pöntunarviðburð

Hægt er að taka frá gagnvart mismunandi stillingum gagnagjafa. Til að stilla þessa tegund af fyrirvara skal fyrst tilgreina gagnagjafann í dimensionDataSource færibreytunni. Síðan, í dimensions færibreytunni, tilgreindu víddir í samræmi við víddarstillingarnar í markgagnagjafanum.

Þegar þú hringir í pöntunar-API geturðu stjórnað pöntunarstaðfestingunni með því að tilgreina Boolean ifCheckAvailForReserv breytu í meginmáli beiðninnar. Gildi True þýðir að staðfestingin er nauðsynleg, en gildið False þýðir að staðfestingin er ekki nauðsynleg. Sjálfgefið gildi er True.

Ef þú vilt bakfæra frátekningu eða afpanta tiltekið birgðamagn skaltu stilla magnið á neikvætt gildi og stilla ifCheckAvailForReserv færibreytuna á False til að sleppa staðfestingunni. Það er líka sérstakt unreserve API til að gera slíkt hið sama. Munurinn er aðeins í því hvernig API-in tvö eru kölluð. Það er auðveldara að snúa við tilteknum pöntunarviðburði með því að nota reservationId með afpöntun API. Fyrir frekari upplýsingar, sjá Afpanta pantaðan viðburð kafla.

Path:
    /api/environment/{environmentId}/onhand/reserve
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        id: string,
        organizationId: string,
        productId: string,
        dimensionDataSource: string,
        dimensions: {
            [key:string]: string,
        },
        quantityDataSource: string, # optional
        quantities: {
            [dataSourceName:string]: {
                [key:string]: number,
            },
        },
        modifier: string,
        quantity: number,
        ifCheckAvailForReserv: boolean,
    }

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls.

{
    "id": "reserve-0",
    "organizationId": "SCM_IV",
    "productId": "iv_contoso_product",
    "quantity": 1,
    "quantityDataSource": "iv",
    "modifier": "softReservOrdered",
    "ifCheckAvailForReserv": true,
    "dimensions": {
        "siteId": "iv_contoso_site",
        "locationId": "iv_contoso_location",
        "colorId": "red",
        "sizeId": "small"
    }
}

Eftirfarandi dæmi sýnir árangursríkt svar.

{
    "reservationId": "RESERVATION_ID",
    "id": "ohre~id-822-232959-524",
    "processingStatus": "success",
    "message": "",
    "statusCode": 200
}

Búðu til marga pöntunarviðburði

Þetta forritaskil er magnútgáfa af forritaskilum fyrir einn viðburð.

Path:
    /api/environment/{environmentId}/onhand/reserve/bulk
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    [
        {
            id: string,
            organizationId: string,
            productId: string,
            dimensionDataSource: string,
            dimensions: {
                [key:string]: string,
            },
            quantityDataSource: string, # optional
            quantities: {
                [dataSourceName:string]: {
                    [key:string]: number,
                },
            },
            modifier: string,
            quantity: number,
            ifCheckAvailForReserv: boolean,
        },
        ...
    ]

Snúið pöntunarviðburði

Unreserve API þjónar sem öfug aðgerð fyrir Frápantunar atburði. Það býður upp á leið til að snúa við pöntunarviðburði sem tilgreindur er af reservationId eða til að minnka pöntunarmagnið.

Snúa við einum pöntunarviðburði

Þegar bókun er búin til verður a reservationId innifalið í svarhlutanum. Þú verður að gefa upp það sama reservationId til að hætta við pöntunina og innihalda það sama organizationId, productId og dimensions notað fyrir pöntunar-API hringja. Að lokum, tilgreindu OffsetQty gildi sem táknar fjölda hluta sem losa á við fyrri fyrirvara. Fyrirvara getur annað hvort verið snúið við að fullu eða að hluta eftir því sem tilgreint er OffsetQty. Til dæmis, ef 100 einingar af hlutum voru fráteknar, geturðu tilgreint OffsetQty: 10 til að taka frá 10 af upphaflegri áskilinni upphæð.

Path:
    /api/environment/{environmentId}/onhand/unreserve
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        id: string,
        organizationId: string,
        productId: string,
        reservationId: string,
        dimensions: {
            [key:string]: string,
        },
        OffsetQty: number
    }

Eftirfarandi kóði sýnir dæmi um líkamsefni.

{
    "id": "unreserve-0",
    "organizationId": "SCM_IV",
    "productId": "iv_contoso_product",
    "reservationId": "RESERVATION_ID",
    "dimensions": {
        "siteid":"iv_contoso_site",
        "locationid":"iv_contoso_location",
        "ColorId": "red",
        "SizeId": "small"
    },
    "OffsetQty": 1
}

Eftirfarandi kóði sýnir dæmi um árangursríkan viðbragðsaðila.

{
    "reservationId": "RESERVATION_ID",
    "totalInvalidOffsetQtyByReservId": 0,
    "id": "ohoe~id-823-11744-883",
    "processingStatus": "success",
    "message": "",
    "statusCode": 200
}

Nóta

Í svarhlutanum, þegar OffsetQty er minna en eða jafnt og pöntunarmagnið, verður processingStatussuccess“ og totalInvalidOffsetQtyByReservId verður 0.

Ef OffsetQty er hærri en áskilin upphæð verður processingStatuspartialSuccess“ og totalInvalidOffsetQtyByReservId vera munurinn á OffsetQty og áskilinni upphæð.

Til dæmis, ef pöntunin hefur magnið 10 og OffsetQty hefur gildið 12, totalInvalidOffsetQtyByReservId væri 2.

Snúa við mörgum pöntunarviðburðum

Þetta forritaskil er magnútgáfa af forritaskilum fyrir einn viðburð.

Path:
    /api/environment/{environmentId}/onhand/unreserve/bulk
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    [      
        {
            id: string,
            organizationId: string,
            productId: string,
            reservationId: string,
            dimensions: {
                [key:string]: string,
            },
            OffsetQty: number
        }
        ...
    ]

Hreinsaðu upp pöntunargögn

hreinsa bókunargögn API er notað til að hreinsa upp söguleg pöntunargögn. Meginmálið ætti að vera listi yfir gagnagjafa. Ef listinn er tómur verða allar gagnaveitur hreinsaðar upp.

Path:
    /api/environment/{environmentId}/onhand/reserve/resyncjob
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    [      
        "iv",
        "pos"
    ]

Fyrirspurn um lagerbirgðir

Notaðu forritið forritið til að sækja núverandi birgðagögn fyrir vörurnar þínar. Þú getur notað þetta forritaskil hvenær sem þú þarft að vita birgðirnar, svo sem þegar þú vilt skoða birgðir vöru á vefverslun þinni fyrir rafræn viðskipti, eða þegar þú vilt athuga framboð á vörum á milli svæða eða í nærliggjandi verslunum og vöruhúsum. Forritaskilin styður sem stendur fyrirspurnir um allt að 5.000 einstök atriði eftir productID gildi. Einnig er hægt að tilgreina mörg siteID og locationID gildi í hverri fyrirspurn. Þegar gagnaskiptireglan þín er stillt á Eftir staðsetningu eru hámarksmörkin skilgreind með eftirfarandi jöfnu:

NumOf(SiteID) × NumOf(LocationID) <= 10.000.

Fyrirspurn með því að nota póstaðferðina

Fyrirspurn eftir póst API er fáanleg í tveimur útgáfum. Eftirfarandi tafla sýnir muninn.

API útgáfa 1.0 API útgáfa 2.0
Aðeins er hægt að spyrjast fyrir um eitt auðkenni fyrirtækis. Getur spurt um mörg fyrirtækisauðkenni.
Getur spurt allt að 10.000 samsetningar vefsvæða og vöruhúsa. Getur spurt meira en 10.000 samsetningar af auðkenni fyrirtækja, vefsvæðum og vöruhúsum. Getur skilað niðurstöðum á mörgum síðum.

Eftirfarandi undirkaflar sýna hvernig á að nota hverja API útgáfu.

Fyrirspurn eftir pósti API útgáfa 1.0

Path:
    /api/environment/{environmentId}/onhand/indexquery
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        dimensionDataSource: string, # Optional
        filters: {
            organizationId: string[],
            productId: string[],
            siteId: string[],
            locationId: string[],
            [dimensionKey:string]: string[],
        },
        groupByValues: string[],
        returnNegative: boolean,
    }

Í meginmáli hluta þessarar beiðni,er dimensionDataSource valfrjáls breytu. Ef það er ekki stillt,verður filters farið með það sem grunnvíddir.

Færibreytan returnNegative stýrir því hvort niðurstöðurnar innihalda neikvæðar færslur.

Fyrirspurnargögn geymd eftir staðsetningu

Þessi hluti á við þegar regla deildaskiptingar gagna er stillt á Eftir staðsetningu.

  • organizationId ætti að vera fylki sem inniheldur nákvæmlega eitt gildi.
  • productId getur innihaldið eitt eða fleiri gildi. Ef það er tómt fylki mun kerfið skila öllum vörum fyrir tilgreinda staði og staði. Í þessu tilfelli,og siteId ætti ekki að vera tómt. locationId
  • siteId og locationId eru notuð til skiptingar. Hægt er að tilgreina fleiri en eitt gildi og siteId eitt locationId í fyrirspurnarbeiðni á lager . Ef bæði fylkin eru tóm mun kerfið skila öllum svæðum og staðsetningum fyrir tilgreindar afurðir. Í þessu tilfelli,ætti ekki að vera tómt. productId

Við mælum með að nota færibreytuna groupByValues á þann hátt sem er í samræmi við stillingar vísis. Sjá On-later index configuration fyrir frekari upplýsingar.

Fyrirspurnargögn geymd af afurðarkenni

Þessi hluti á við þegar regla deildaskiptingar gagna er stillt á Eftir afurðarkenni . Í þessu tilfelli þarf tvo filters reiti: organizationId, productId.

  • organizationId ætti að vera fylki sem inniheldur nákvæmlega eitt gildi.
  • productId ætti að vera fylki með minnst einu gildi.

Ólíkt því sem er þegar gögn eru geymd eftir staðsetningu, ef þú tilgreinir ekki gildi fyrir siteId og locationId, verða birgðaupplýsingar fyrir hvert afurðarkenni safnað saman á öll vefsvæði og/eða staði.

Nóta

Ef breytingaáætlun lagerbirgða og ATP-eiginleikar hafa verið virkjaðir getur fyrirspurnin einnig innihaldið færibreytuna QueryATP Boole, sem stýrir því hvort niðurstöður fyrirspurnarinnar innihalda ATP-upplýsingar. Frekari upplýsingar og dæmi er að finna í Sýnileiki birgða breytingaáætlanir á lager og tiltækt til loforðs.

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls. Það sýnir að hægt er að spyrjast fyrir um lagerbirgðir frá mörgum birgðageymslum (vöruhúsum).

{
    "dimensionDataSource": "pos",
    "filters": {
        "organizationId": ["usmf"],
        "productId": ["T-shirt"],
        "siteId": ["1"],
        "locationId": ["11","12","13"],
        "colorId": ["red"]
    },
    "groupByValues": ["colorId", "sizeId"],
    "returnNegative": true
}

Eftirfarandi dæmi sýnir hvernig á að spyrjast fyrir um allar afurðir á tilteknu svæði og staðsetningu.

{
    "filters": {
        "organizationId": ["usmf"],
        "productId": [],
        "siteId": ["1"],
        "locationId": ["11"],
    },
    "groupByValues": ["colorId", "sizeId"],
    "returnNegative": true
}

Fyrirspurn eftir pósti API útgáfa 2.0

Path:
    /api/environment/{environmentId}/onhand/indexquery?pageNumber={pageNumber}&pageSize={pageSize}
Method:
    Post
Headers:
    Api-Version="2.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    # Same as version 1.0

Beiðnisniðið fyrir API útgáfu 2.0 er svipað og í útgáfu 1.0, en styður einnig tvær valfrjálsar breytur: pageNumber og pageSize sem gera kerfinu kleift að skipta einni stórri niðurstöðu í nokkur smærri skjöl. Niðurstöðunum er raðað eftir vöruhúsi (locationId), og færibreyturnar eru notaðar á eftirfarandi hátt til að skipta niðurstöðum á síður:

  • pageSize Ákvarðar fjölda vöruhúsa (locationId gilda) sem skilað er á hverri síðu.
  • pageNumber Ákvarðar blaðsíðunúmerið sem er skilað.

Beiðni um þetta snið skilar gögnum lagerbirgða frá vöruhúsanúmeri ({pageNumber} − 1) × {pageSize} og inniheldur gögn fyrir næstu {pageSize} vöruhús.

API útgáfa 2.0 svarar með skjali sem notar eftirfarandi uppbyggingu:

{
    Value: { # Response same as Api-Version=1.0 }
    nextLink: onhand/indexquery?pageNumber={pageNumber+1}&pageSize={pageSize}
}

Þegar beiðnin kemur að síðasta vöruhúsinu (locationId) er gildið nextLink auður strengur.

API útgáfa 2.0 gerir þér einnig kleift að tilgreina fleiri en eitt fyrirtækiskenni í beiðninni. Það er gert með því að hafa lista yfir kenni fyrirtækis aðgreindan með kommu í afmörkun beiðniskjalsins organizationId . Til dæmis, "organizationId": ["org1", "org2", "org3"].

Fyrirspurn með því að nota aðferðina sækja

Path:
    /api/environment/{environmentId}/onhand
Method:
    Get
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Query(Url Parameters):
    groupBy
    returnNegative
    [Filters]

Hér er sýnishorn fá slóð. Þessi beiðni um að sækja er nákvæmlega sú sama og bókunardæmið sem var sýnt hér á undan.

/api/environment/{environmentId}/onhand?organizationId=SCM_IV&productId=iv_contoso_product&siteId=iv_contoso_site&locationId=iv_contoso_location&colorId=red&groupBy=colorId,sizeId&returnNegative=true

Kerfið styður ekki fyrirspurnir um birgðir yfir mörg fyrirtækiskenni með GET-aðferðinni.

Nákvæm fyrirspurn á lager

Nákvæmar fyrirspurnir á lager líkjast venjulegum lagerfyrirspurnum, en þær gera þér kleift að tilgreina vörpunarstigveldi milli svæðis og staðsetningar. Til dæmis eru eftirfarandi tvö setur:

  • Svæði 1, sem er kortlagt á staðsetningu A
  • Svæði 2, sem er kortlagt á staðsetningu B

Fyrir reglulega lagerfyrirspurn, ef tilgreint "siteId": ["1","2"] er og "locationId": ["A","B"], mun sýnileiki birgða spyrjast sjálfkrafa fyrir um niðurstöðurnar fyrir eftirfarandi svæði og staðsetningar:

  • Svæði 1, staðsetning A
  • Lóðin 1, staðsetning B
  • Svæði 2, staðsetning A
  • Svæði 2, staðsetning B

Eins og þú sérð viðurkennir venjuleg fyrirspurn á lager ekki að staðsetning A sé aðeins til á svæði 1 og staðsetning B er aðeins til á svæði 2. Þess vegna gerir það óþarfar fyrirspurnir. Til að rúma þessa stigveldisvörpun er hægt að nota nákvæma fyrirspurn á lager og tilgreina staðsetningarvarpanir í meginmáli fyrirspurnarinnar. Í þessu tilfelli munt þú spyrjast fyrir og fá niðurstöður fyrir aðeins svæði 1, staðsetningu A og vefsvæði 2, staðsetningu B.

Nákvæm fyrirspurn á lager með póstaðferðinni

Nákvæm fyrirspurn á lager eftir API eftir API er fáanleg í tveimur útgáfum. Eftirfarandi tafla sýnir muninn.

API útgáfa 1.0 API útgáfa 2.0
Aðeins er hægt að spyrjast fyrir um eitt auðkenni fyrirtækis. Getur spurt um mörg fyrirtækisauðkenni.

Nákvæm fyrirspurn á lager eftir API útgáfu 1.0

Path:
    /api/environment/{environmentId}/onhand/exactquery
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        dimensionDataSource: string, # Optional
        filters: {
            organizationId: string[],
            productId: string[],
            dimensions: string[],
            values: string[][],
        },
        groupByValues: string[],
        returnNegative: boolean,
    }

Í meginmáli hluta þessarar beiðni,er dimensionDataSource valfrjáls breytu. Ef það er ekki stillt verður farið með dimensions in filters sem grunnvíddir. Það eru fjórir nauðsynlegir reiti fyrir filters: organizationId, productId, dimensions og values.

  • organizationId ætti aðeins að innihalda eitt gildi, en það er samt fylki.
  • productId gæti innihaldið eitt eða fleiri gildi. Ef það er tómt fylki verður öllum afurðum skilað.
  • Í dimensions fylkingunni eru siteId og locationId áskilin ef og aðeins ef gagnaskiptingarreglan þín er stillt á Eftir staðsetningu. Í þessu tilviki gætu þau birst með öðrum þáttum í hvaða röð sem er.
  • values gæti innihaldið einn eða fleiri aðskilda túlla af gildum sem samsvara dimensions.

dimensions í filters verður sjálfkrafa bætt við groupByValues.

Færibreytan returnNegative stýrir því hvort niðurstöðurnar innihalda neikvæðar færslur.

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls.

{
    "dimensionDataSource": "pos",
    "filters": {
        "organizationId": ["SCM_IV"],
        "productId": ["iv_contoso_product"],
        "dimensions": ["siteId", "locationId", "colorId"],
        "values" : [
            ["iv_contoso_site", "iv_contoso_location", "red"],
            ["iv_contoso_site", "iv_contoso_location", "blue"],
        ]
    },
    "groupByValues": ["colorId", "sizeId"],
    "returnNegative": true
}

Eftirfarandi dæmi sýnir hvernig á að spyrjast fyrir um allar vörur á mörgum stöðum og stöðum.

{
    "filters": {
        "organizationId": ["SCM_IV"],
        "productId": [],
        "dimensions": ["siteId", "locationId"],
        "values" : [
            ["iv_contoso_site_1", "iv_contoso_location_1"],
            ["iv_contoso_site_2", "iv_contoso_location_2"],
        ]
    },
    "groupByValues": ["colorId", "sizeId"],
    "returnNegative": true
}

Nákvæm fyrirspurn með pósti API útgáfu 2.0

Path:
    /api/environment/{environmentId}/onhand/exactquery
Method:
    Post
Headers:
    Api-Version="2.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        dimensionDataSource: string, # Optional
        filters: {
            productId: string[],
            keys: string[],
            values: string[][],
        },
        groupByValues: string[],
        returnNegative: boolean,
    }

API útgáfa 2.0 er frábrugðin útgáfu 1.0 á eftirfarandi hátt:

  • Í filters hlutanum er nú keys reitur í stað dimensions reits. keys reiturinn virkar eins og dimensions reiturinn í útgáfu 1.0, en getur nú einnig innihaldið organizationId. Þú getur tilgreint lyklana í hvaða röð sem er.
  • filters hlutinn styður ekki lengur organizationId reitinn. Þess í stað geturðu tekið með organizationId meðal víddanna í keys reitnum (til dæmis keys: ["organizationId", "siteId", "locationId"]) og skilgreint auðkennisgildi fyrirtækis í samsvarandi stöðu í values reitur (til dæmis values: ["SCM_IV", "iv_contoso_site_1", "iv_contoso_location_1"]).

Aðrir reitir eru eins og API útgáfu 1.0.

Fyrirspurn með vöruleit

Eftirfarandi forritaskil fyrir fyrirspurnir eru endurbætt til að styðja við vöruleit:

Nóta

Þegar þú birtir fyrirspurn um birgðasýnileika sem notar vöruleit skaltu nota productSearch beiðnibreytu (með ProductAttributeQuery hlut inni) til að finna eða sía eftir vöruauðkenni. Nýrri API styðja ekki lengur eldri productid beiðnarfæribreytuna í meginmáli beiðninnar.

Skilyrði

Áður en þú getur byrjað að nota forritaskil vöruleitar verður kerfið þitt að uppfylla eftirfarandi kröfur:

Vöruleitarsamningur

Vöruleitarsamningurinn skilgreinir reglurnar um samskipti við vöruleitarforritaskilin. Það veitir staðlaða leið til að lýsa getu og hegðun vöruleitarmöguleika. Þess vegna geta notendur auðveldlega skilið, haft samskipti við og smíðað forrit sem nota birgðasýnileika API.

Eftirfarandi dæmi sýnir sýnishorn af samningi.

{
    "productFilter": {
        "logicalOperator": "And",
        "conditions": [
            {
                "conditionOperator": "Contains",
                "productName": [
                    "Deluxe"
                ],
            },
        ],
        "subFilters": [
            {
                "conditions": [
                    {
                        "conditionOperator": "IsExactly",
                        "productType": [
                            "Item"
                        ]
                    }
                ]
            }
        ]
    },
    "attributeFilter": {
        "logicalOperator": "Or",
        "conditions": [
            {
                "attributeName": "Weight Limit",
                "attributeTypeName":"PoundDomain",
                "attributeArea": " ProductAttribute",
                "attributeValues": [
                    "370"
                ],
                "conditionOperator": "GreaterEqual"
            }
        ],
        "subFilters": [
            {
                "conditions": [
                    {
                        "attributeName": "Weight Limit",
                        "attributeTypeName":"PoundDomain",
                        "attributeArea": " ProductAttribute",
                        "attributeValues": [
                            "330"
                        ],
                        "conditionOperator": "LessEqual"
                    }
                ]
            }
        ]
    },
}

Eftirfarandi tafla lýsir reitunum sem eru notaðir í samningnum.

Kenni svæðis lýsing
logicalOperator Möguleg gildi eru And og Or. Notaðu þennan reit til að tengja saman mörg skilyrði eða skilyrði og undirsíur. Athugaðu að subFilters er í raun productFilter eða attributeFilter hlutur. Þess vegna geturðu haft subFilters inni subFilters.
conditionOperator Möguleg gildi eru IsExactly, IsNot, Contains, DoesNotContain, BeginsWith, IsOneOf, GreaterEqual, LessEqual og Between.
ProductFilter Notaðu þennan reit til að sía vörur eftir vörutengdum upplýsingum. Til dæmis er hægt að breyta productName í samningnum í Company, itemNumber, productSearchName, productType, productName, productDescription, inventoryUnitSymbol, salesUnitSymbol eða purchaseUnitSymbol til að passa við þarfir fyrirtækisins.
AttributeFilter Notaðu þennan reit til að sía vörur eftir eigindartengdum upplýsingum.
attributeArea Möguleg gildi eru ProductAttribute, DimensionAttribute og BatchAttribute.
Path:
    /api/environment/{environmentId}/onhand/productsearch/indexquery
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        productSearch: {ProductAttributeQuery contract object inherited from Product Search}
            dimensionDataSource: string, # Optional
            filters: {
                organizationId: string[],
                siteId: string[],
                locationId: string[],
                [dimensionKey:string]: string[],
            },
            groupByValues: string[],
            returnNegative: boolean,
    }

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls.

{
    "productSearch": {
        "productFilter": {
            "conditions": [
                {
                    "conditionOperator": "contains",
                    "productName": [
                        "speaker cable"
                    ],
                },
            ],
        },
    },
    "returnNegative": true, 
    "filters": 
    {
        "organizationId": ["usmf"], 
        "siteId": ["1"], 
        "locationId": ["13"],
    },
    "groupByValues": ["colorid"],
}

Eftirfarandi dæmi sýnir árangursríkt svar.

[
    {
        "productId": "M0030",
        "dimensions": {
            "ColorId": "White",
            "siteid": "1",
            "locationid": "13"
        },
        "quantities": {
            "fno": {
                "arrived": 0,
                "availordered": 20,
                "onorder": 5,
                "ordered": 20,
                "physicalinvent": 0,
                "reservordered": 0,
                "reservphysical": 0,
                "orderedsum": 20,
                "softreserved": 0
            },
            "iv": {
                "ordered": 0,
                "softreserved": 0,
                "softreservphysical": 0,
                "softreservordered": 0,
                "total ordered": 20,
                "total on order": 5,
                "availabletoreserve": 20,
                "totalavailable": 20,
                "totalordered": 20,
                "totalonorder": 5
            },
            "pos": {
                "inbound": 0,
                "outbound": 0
            },
            "@iv": {
                "@allocated": 0
            }
        }
    },
    {
        "productId": "M0030",
        "dimensions": {
            "ColorId": "Black",
            "siteid": "1",
            "locationid": "13"
        },
        "quantities": {
            "fno": {
                "arrived": 0,
                "availordered": 3,
                "ordered": 3,
                "physicalinvent": 0,
                "reservordered": 0,
                "reservphysical": 0,
                "orderedsum": 3,
                "softreserved": 0
            },
            "iv": {
                "ordered": 0,
                "softreserved": 0,
                "softreservphysical": 0,
                "softreservordered": 0,
                "total ordered": 3,
                "availabletoreserve": 3,
                "totalavailable": 3,
                "totalordered": 3
            },
            "pos": {
                "inbound": 0,
                "outbound": 0
            },
            "@iv": {
                "@allocated": 0
            }
        }
    }
]
Path:
    /api/environment/{environmentId}/onhand/productsearch/exactquery
Method:
    Post
Headers:
    Api-Version="1.0"
    Authorization="Bearer $access_token"
ContentType:
    application/json
Body:
    {
        productSearch: {ProductAttributeQuery contract object inherited from Product Search}
            dimensionDataSource: string, # Optional
            filters: {
                organizationId: string[],
                dimensions: string[],
                values: string[][],
            },
            groupByValues: string[],
            returnNegative: boolean,
    }

Eftirfarandi dæmi sýnir sýnishorn um efni meginmáls.

{
    "productSearch": {
        "productFilter": {
            "conditions": [
                {
                    "conditionOperator": "contains",
                    "productName": [
                        "speaker cable"
                    ],
                },
            ],
        },
    },
    "filters": {
        "organizationId": ["usmf"],
        "dimensions": ["siteId", "locationId", "colorid"],
        "values" : [
            ["1", "13", "Black"],
        ]
    },
    "groupByValues": [],
    "returnNegative": true
}

Eftirfarandi dæmi sýnir árangursríkt svar.

[
    {
        "productId": "M0030",
        "dimensions": {
            "ColorId": "Black",
            "siteid": "1",
            "locationid": "13"
        },
        "quantities": {
            "fno": {
                "arrived": 0,
                "availordered": 3,
                "ordered": 3,
                "physicalinvent": 0,
                "reservordered": 0,
                "reservphysical": 0,
                "orderedsum": 3,
                "softreserved": 0
            },
            "iv": {
                "ordered": 0,
                "softreserved": 0,
                "softreservphysical": 0,
                "softreservordered": 0,
                "total ordered": 3,
                "availabletoreserve": 3,
                "totalavailable": 3,
                "totalordered": 3
            },
            "pos": {
                "inbound": 0,
                "outbound": 0
            },
            "@iv": {
                "@allocated": 0
            }
        }
    }
]

ATP-afhendingarspá

Þú getur sett upp Birgðasýnileika til að gera þér kleift að skipuleggja framtíðar breytingar á hendi og reikna út ATP magn. ATP er magn vöru sem er tiltækt og hægt er að lofa viðskiptavinum á næsta tímabili. Notkun ATP útreiknings getur aukið getu þína til að uppfylla pöntunina til muna. Til að fá upplýsingar um hvernig á að virkja þennan eiginleika og hvernig á að hafa samskipti við birgðasýnileika í gegnum API þess eftir að eiginleikinn er virkjaður, sjá Birgðasýnileiki fyrirliggjandi breytingaráætlanir og hægt að lofa.

Úthlutun

Úthlutunartengd API eru staðsett í Úthlutun birgðasýnileika.