Jaa


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

  1. Laskettu kenttä -tyypin DS1-tietolähde, joka sisältää lausekkeen SPLIT ("D1|_D2|D3", "|").
  2. Avaa Taloushallinnon dimensioiden arvot -sivu ja valitse CostCenter-dimensio.
  3. Syötä seuraavat dimensioarvot: D1, _D2 ja D3.

Lajitteleminen muistissa

  1. Määritä Laskettu kenttä -tyypin DS2-tietolähde, joka sisältää lausekkeen ORDERBY("InMemory", DS1, DS1.Value).
  2. Huomaa, että lauseke FIRST(DS2).Value palauttaa tekstiarvon "D1", lauseke INDEX(DS2, COUNT(DS2)).Value palauttaa tekstiarvon "_D2", ja lauseke STRINGJOIN(DS2, DS2.Value, "|") palauttaa tekstiarvon "D1|D3|_D2".

Lajitteleminen tietokannassa

  1. Määritä DS3-tietolähde, joka on Taulukkotietueet-tyyppiä, joka viittaa FinancialDimensionValueEntity-entiteettiin.
  2. Määritä Laskettu kenttä -tyypin DS4-tietolähde, joka sisältää lausekkeen FILTER(DS3, DS3.FinancialDimension="CostCenter").
  3. Määritä Laskettu kenttä -tyypin DS5-tietolähde, joka sisältää lausekkeen ORDERBY(DS4, DS4.DimensionValue).
  4. Huomaa, että lauseke FIRST(DS5).Value palauttaa tekstiarvon "_D2", lauseke INDEX(DS5, COUNT(DS5)).Value palauttaa tekstiarvon "D3", ja lauseke STRINGJOIN(DS5, DS5.Value, "|") palauttaa tekstiarvon "_D2|D1|D3".

Lisäresurssit

Luettelotoiminnot