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.
Skráðu þig inn á Azure gáttina og notaðu hana til að finna
clientId
ogclientSecret
gildi fyrir þína Dynamics 365 Supply Chain Management app.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" }
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.
- The
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ð er1.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 }
- Vefslóð:
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 processingStatus
„success“ og totalInvalidOffsetQtyByReservId
verður 0.
Ef OffsetQty
er hærri en áskilin upphæð verður processingStatus
„partialSuccess“ 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,ogsiteId
ætti ekki að vera tómt.locationId
siteId
oglocationId
eru notuð til skiptingar. Hægt er að tilgreina fleiri en eitt gildi ogsiteId
eittlocationId
í 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 erusiteId
oglocationId
á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 samsvaradimensions
.
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 ogdimensions
reiturinn í útgáfu 1.0, en getur nú einnig innihaldiðorganizationId
. Þú getur tilgreint lyklana í hvaða röð sem er. filters
hlutinn styður ekki lengurorganizationId
reitinn. Þess í stað geturðu tekið meðorganizationId
meðal víddanna íkeys
reitnum (til dæmiskeys: ["organizationId", "siteId", "locationId"]
) og skilgreint auðkennisgildi fyrirtækis í samsvarandi stöðu ívalues
reitur (til dæmisvalues: ["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:
- Þú verður að vera að keyra Dynamics 365 Supply Chain Management 10.0.36 eða nýrri.
- Birgðasýnileiki útgáfa 1.2.2.54 eða síðar verður að vera uppsett og sett upp eins og lýst er í Setja upp og setja upp Birgðasýnileika.
- Leitarþjónusta birgðasýnileika verður að vera uppsett og sett upp eins og lýst er í Setja upp vöruleit fyrir birgðasýnileika.
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 . |
Fyrirspurn með vöruleit
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
}
}
}
]
Nákvæm fyrirspurn með vöruleit
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.
Athugasemdir
https://aka.ms/ContentUserFeedback.
Væntanlegt: Á árinu 2024 munum við hætta með GitHub-mál sem ábendingaleið fyrir efni og skipta því út fyrir nýtt ábendingakerfi. Frekari upplýsingar er að finna hér:Senda inn og skoða endurgjöf fyrir