ORDERBY ER-funktio
ORDERBY
-funktio palauttaa määritetyn luettelon Tietueluettelon arvoksi sen jälkeen, kun se on lajiteltu määritettyjen argumenttien mukaan. Nämä argumentit voivaan määrittää lausekkeina.
Syntaksi 1
ORDERBY (list, expression 1[, expression 2, …, expression N])
Syntaksi 2
ORDERBY (location, list, expression 1[, expression 2, …, expression N])
Muistiinpano
Tätä syntaksia tuetaan Microsoft Dynamics 365 Finance -versiossa 10.0.25 ja sitä myöhemmissä versioissa.
Argumentit
location
: Merkkijono
Paikka, jossa lajittelu suoritetaan. Seuraavat asetukset ovat kelvollisia:
- "Query"
- "InMemory"
list
: Tietueluettelo
Tietueluettelo-tietotyypin tietolähteen kelvollinen polku.
expression 1
: kenttä
Tietolähteen kentän kelvollinen polku, johon kutsutun funktion list
-argumentti viittaa. Viitatun kentän on oltava primitiivisen tietotyypin kenttä. Tämä argumentti on pakollinen.
expression N
: kenttä
Tietolähteen kentän kelvollinen polku, johon kutsutun funktion list
-argumentti viittaa. Viitatun kentän on oltava primitiivisen tietotyypin kenttä. Nämä lisäargumentit ovat valinnaisia.
Palautusarvot
Tietueluettelo
Tuloksena oleva tietueluettelo.
Käyttöhuomautukset
Syntaksi 1
Tietojen lajittelu tapahtuu aina sovelluspalvelimen muistissa. Lisätietoja on kohdassa esimerkki 1.
Syntaksi 2
Lajitteleminen muistissa
Kun location
-argumentin arvo on InMemory, tietojen lajittelu tapahtuu sovelluspalvelimen muistissa. Lisätietoja on kohdassa esimerkki 2.
Lajitteleminen tietokannassa
Kun location
-argumentin arvoksi määritetään Query, tietojen lajittelu tapahtuu tietokantatasolla. Tässä tapauksessa list
-argumentin on osoitettava johonkin seuraavista sähköisen raportoinnin (ER) tietolähteistä, jotka määrittävät sovelluslähteen, jota varten voidaan muodostaa suora tietokantakysely:
- Taulukon tietueet -tyypin tietolähde
- Taulukon tietueet -tyypin tietolähteen suhde
- Laskentakenttä-tyypin tietolähde
expression 1
- ja expression N
-argumenttien on osoitettava ER-tietolähteen kenttiin, jotka määrittävät sen sovelluslähteen sovellettavat kentät, jota varten voidaan muodostaa suora tietokantakysely.
Jos suoraa tietokantakyselyä ei voi määrittää, ER-mallin yhdistämismäärityksen suunnittelijassa ilmenee oikeellisuustarkistusvirhe. Näyttöön tulee sanoma, jonka mukaan toiminnon sisältävä ER ORDERBY
-funktio ei voi toimia suorituksen aikana.
Suorituskyvyn parantamiseksi on suositeltavaa käyttää Query-asetusta, kun lajittelu on konfiguroitu sovellustietolähteille, jotka saattavat sisältää suuren määrän tietueita (esimerkiksi tapahtumiin liittyvät sovellustaulut).
Muistiinpano
ORDEBY
-toimintoa sellaisenaan ei voi kääntää suoraksi tietokantakyselyksi. Siksi tämän toiminnon sisältävään ER-tietolähteeseen ei voi kohdistaa kyselyitä. Sitä ei myöskään voi käyttää ER-toimintojen, kuten FILTER- ja ALLITEMSQUERY-toimintojen, käyttöalueessa, jossa voidaan käyttää vain kyselykelpoisia tietolähteitä.
Lisätietoja on esimerkissä 3 ja esimerkissä 4.
Vertailukelpoisuus
Koska SQL-tietokantamoduuli ja Finance-sovelluspalvelin voivat käyttää eri järjestysarvoa yksittäiselle merkille, tietueluettelon lajittelutulos voi olla erilainen, kun lajittelussa käytetään Merkkijono-kenttää. Lisätietoja on kohdassa esimerkki 5.
Esimerkki 1: Oletussuoritus muistin sisällä
Jos syötät Lasketun kenttä-tyypin DS-tietolähteen, ja se sisältää lausekkeen SPLIT ("C|B|A", "|")
, lauseke FIRST( ORDERBY( DS, DS. Value)).Value
palauttaa tekstiarvon A.
Esimerkki 2: Erillinen suoritus muistin sisällä
Jos Toimittaja on määritetty Taulukon tietueet -tyypin ER-tietolähteeksi, joka viittaa VendTable-tauluun, sekä lauseke ORDERBY (Vendor, Vendor.'name()')
että lauseke ORDERBY ("InMemory", Vendor, Vendor.'name()')
palauttavat toimittajaluettelon, joka on lajiteltu nimen mukaan nousevassa järjestyksessä.
Kun lauseke ORDERBY ("Query", Vendor, Vendor.'name()')
konfiguroidaan ER-mallin määrityksen suunnittelussa, tarkistusvirhe tapahtuu suunnittelun aikana, koska polku Vendor.'name()'
viittaa sovellusmenetelmään, jonka logiikkaa ei voi muuntaa suoraksi tietokantakyselyksi.
Esimerkki 3: Tietokantakysely
Jos TaxTransaction on määritetty Taulukon tietueet -tyypin ER-tietolähteeksi, joka viittaa TaxTrans-taulukkoon, lauseke ORDERBY ("Query", TaxTransaction, TaxTransaction.TaxCode)
lajittelee tietueet sovellustietokannan tasolla ja palauttaa verotapahtumien luettelon, joka on lajiteltu verokoodin mukaan nousevassa järjestyksessä.
Esimerkki 4: Kyselykelpoiset tietolähteet
Jos TaxTransaction on määritetty Taulukon tietueet -tyypin ER-tietolähteeksi, joka viittaa TaxTrans-taulukkoon ER-tietolähde TaxTransactionFiltered, voidaan konfiguroida niin, että se sisältää lausekkeen FILTER(TaxTransaction, TaxCode="VAT19")
, joka hakee tapahtumia määritetylle verokoodille. Koska konfiguroitu ER-tietolähde TaxTransactionFiltered on kyselykelpoinen, lauseke ORDERBY ("Query", TaxTransactionFiltered, TaxTransactionFiltered.TransDate)
voidaan konfiguroida palauttamaan suodatettujen verotapahtumien luettelo, joka on lajiteltu tapahtumapäivämäärän mukaan nousevassa järjestyksessä.
Jos TaxTransactionOrdered määritetään Laskettu kenttä -tyypin ER-tietolähteeksi, joka sisältää lausekkeen ORDERBY ("Query", TaxTransaction, TaxTransaction.TransDate)
ja Laskettu kenttä -tyypin ER-tietolähteeksi, joka sisältää lausekkeen FILTER(TaxTransactionOrdered, TaxCode="VAT19")
, ER-mallin määrityksen suunnittelun aikana tapahtuu oikeellisuustarkistusvirhe. Tämä virhe ilmenee, koska FILTER-toiminnon ensimmäisen argumentin täytyy viitata kyselykelpoiseen ER-tietolähteeseen, mutta ORDERBY
-toiminnon sisältävä TaxTransactionOrdered-tietolähde ei ole kyselykelpoinen.
Esimerkki 5: Vertailukelpoisuus
Edellytykset
- Laskettu kenttä -tyypin DS1-tietolähde, joka sisältää lausekkeen
SPLIT ("D1|_D2|D3", "|")
. - Avaa Taloushallinnon dimensioiden arvot -sivu ja valitse CostCenter-dimensio.
- Syötä seuraavat dimensioarvot: D1, _D2 ja D3.
Lajitteleminen muistissa
- Määritä Laskettu kenttä -tyypin DS2-tietolähde, joka sisältää lausekkeen
ORDERBY("InMemory", DS1, DS1.Value)
. - Huomaa, että lauseke
FIRST(DS2).Value
palauttaa tekstiarvon "D1", lausekeINDEX(DS2, COUNT(DS2)).Value
palauttaa tekstiarvon "_D2", ja lausekeSTRINGJOIN(DS2, DS2.Value, "|")
palauttaa tekstiarvon "D1|D3|_D2".
Lajitteleminen tietokannassa
- Määritä DS3-tietolähde, joka on Taulukkotietueet-tyyppiä, joka viittaa FinancialDimensionValueEntity-entiteettiin.
- Määritä Laskettu kenttä -tyypin DS4-tietolähde, joka sisältää lausekkeen
FILTER(DS3, DS3.FinancialDimension="CostCenter")
. - Määritä Laskettu kenttä -tyypin DS5-tietolähde, joka sisältää lausekkeen
ORDERBY(DS4, DS4.DimensionValue)
. - Huomaa, että lauseke
FIRST(DS5).Value
palauttaa tekstiarvon "_D2", lausekeINDEX(DS5, COUNT(DS5)).Value
palauttaa tekstiarvon "D3", ja lausekeSTRINGJOIN(DS5, DS5.Value, "|")
palauttaa tekstiarvon "_D2|D1|D3".