FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

Finnish
FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)
  • Log in
  • Home
  • Alusta
  • ESM
  • Muu tekninen ESM-dokumentaatio
  • Handler-dokumentaatio

Handler - Expression

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Palveluhallinta
    Matrix42 Core -ratkaisu Matrix42 Intelligence Matrix42 Professional -ratkaisu
  • Identity Governance and Administration (IGA)
    IGA-ratkaisukirjasto IGA-yleiskatsaus
  • Alusta
    ESM ESS2 ESS Efecte Chat for Service Management Lisäosat
  • Julkaisutiedot M42 Professionalille, IGA:lle ja konversationaaliselle tekoälylle
    2026.1 2025.3 2025.2 2025.1 2024.2 2023.4 2023.3 2023.2 2023.1 2022.4 2022.3 Julkaisutiedot ja käytännöt
  • Muu materiaali
    Saavutettavuusselosteet Termit ja dokumentaatio-ohjeet
  • Palvelut
+ More
    • Palveluhallinta

    • Identity Governance and Administration (IGA)

    • Alusta

    • Julkaisutiedot M42 Professionalille, IGA:lle ja konversationaaliselle tekoälylle

    • Muu materiaali

    • Palvelut

Handler - Expression

Expression -handler käyttää Python-lauseketta arvon luomiseen pääattribuutille. Handler laskee lausekkeen ja palauttaa tuloksen automaattisesti pääattribuutin datakenttään sen jälkeen, kun tietokortti on tallennettu. Huomaa, että tuloksen sisältämiä HTML-tageja ei koodata (escape).

Mukautetut moduulit voidaan tallentaa hakemistoon, joka on määritetty alustan asetuksena python.path. Katso esimerkki alta.

ExpressionHandler ei toimi pakollisilla attribuuteilla.

ExpressionHandler toimii monivalintaisilla attribuuteilla. Monivalintaisilla attribuuteilla olemassa olevat arvot korvataan arvoilla, jotka on luonut ExpressionHandler. Huomaa, että jos ExpressionHandler tuottaa useita arvoja yksiarvoiselle attribuutille, tietokortin tallennus epäonnistuu.

Oletusnimike kohteelle Expression -handlerin painike on esitystekstin arvo text_calculate. Nimikkeen arvon voi ylikirjoittaa mallin lokalisointieditorissa.

 

Lisätietoja Pythonista saat osoitteesta https://www.python.org . Seuraavasta osoitteesta https://wiki.python.org/moin/BeginnersGuide/ löydät Pythonin aloittelijan oppaan.

Voit käyttää Expression-handleria esimerkiksi laskutoimituksiin, jotka kohdistuvat muiden attribuuttien arvoihin, jotka on merkitty pääattribuutin metatiedoissa niiden yksittäisillä attribuuttikoodeilla.

Expression-handleria voidaan käyttää viiteattribuutissa. Jos lauseke palauttaa PythonEntity, jota käytetään viitteen arvon asettamiseen. Jos lauseke palauttaa merkkijonon (String), sitä käytetään kohdetietokortin hakemiseen.

Jos esimerkiksi haluat laskea keskiarvon attribuuteista attribuutit Q1, Q2, Q3, ja Q4, liitä Expression-handler attribuuttiin Average ja merkitse seuraava Python-lauseke kohteen Average metatietoihin: ([attributeCodeQ1]+[attributeCodeQ2]+[attributeCodeQ3]+[attributeCodeQ4])/4 . Expression-handler laskee merkittyjen attribuuttiarvojen keskiarvon ja asettaa sen attribuutin Average arvoksi seuraavan kuvan mukaisesti.

Arvo Average, joka on luotu Expression-handlerilla:

Seuraavat taulukot sisältävät tietoa attribuuttiasetuksista ja metatietovaatimuksista Expression-handlerille. Pakolliset metatiedot on esitetty pakollisten attribuuttien metatietotaulukossa.

Expression-handlerin määritys poikkeaa muista handlereista. Tarvittavat metatietonimet on annettu valmiiksi, ylläpitäjän tarvitsee antaa vain arvot.

Taulukko 1. Attribuutin asetukset

Handlerin nimi Tietotyyppi
Expression Mikä tahansa tietotyyppi paitsi embedded reference tai back reference.

Taulukko 2. Pakolliset attribuutin metatiedot

Nimi Arvo Kuvaus
expression [Python expression]

Kelvollinen Python-lauseke (tai skripti, jos isScript on käytössä) arvon laskemiseksi.

Jos lauseketta ei voida jäsentää, viitatun attribuutin arvo on tyhjä tai tapahtuu virhe, tulos on tyhjä.

isScript [Checked | unchecked]

Kun tämä valinta on valittuna, lauseke tulkitaan Python-skriptinä.

Skriptit ovat lausekkeita monipuolisempia ja voivat sisältää useita rivejä, silmukoita ja muita kontrollirakenteita. Ne ovat myös monimutkaisempia määrittää. Katso skriptiesimerkkejä alta. Jos haluat, että lauseke tulkitaan skriptinä, valitse tämä valintaruutu.

Tulosarvo täytyy asettaa muuttujaan nimeltä _result . Jos haluat pitää attribuutin tulosteen tyhjänä, älä aseta mitään muuttujaan _result.

Lisää esimerkkimäärityksiä alla.

Taulukko 3. Valinnaiset attribuutin metatiedot

Nimi Arvo Kuvaus
debug true/false

Oletuksena "null"-tuloksia ei näytetä. Jos tämä metatieto asetetaan arvoon true, null-arvot näytetään. Muilla kuin merkkijono-/tekstiattribuuteilla tämä myös estää tietokortin lajittelun.

Huomio: ÄLÄ käytä tätä tuotantoympäristössä. Tämä voi rikkoa kaikki tietokortin tallennustoiminnot, kuten monivalintamuokkauksen, siirron, roskakoriin siirron ja roskakorin tyhjentämisen, jos lauseke on virheellinen.

showButton true/false Oletuksena count -painike näytetään. Jos tämä metatieto asetetaan arvoon false, count -painiketta ei näytetä. Painike laskee arvot (tallennettuna muuttujaan _result) vain nykyiselle attribuutille.
alwaysExecute true/false Jos tämä on true, lauseke suoritetaan (pääkäyttäjänä) aina, kun tietokortti tallennetaan. Oletusarvo on false: lauseke suoritetaan (nykyisenä käyttäjänä) vain, jos tietokortin tallentavalla käyttäjällä on oikeudet tähän attribuuttiin.
searchAttribute attributeCode

Kohdemallin/-mallien attribuuttikoodi. Viitehaku rajataan tähän attribuuttiin. Tätä asetusta voidaan käyttää, kun ExpressionHandler-handleria käytetään viiteattribuutissa.

Huomio: Tämän attribuutin on oltava yksilöllinen kohdemallissa/-malleissa.

Huomio: Jos createEmptyReferences on true, tämän attribuutin on oltava kohdemallin/-mallien pääattribuutti.

createEmptyReferences true/false Jos tämä on true ja viitteen kohdetietokorttia ei löydy, se luodaan ja tallennetaan kansioon, joka on määritetty metatiedossa referenceTargetFolder. Tätä asetusta voidaan käyttää, kun ExpressionHandler-handleria käytetään viiteattribuutissa ja referenceTargetFolder-metatiedolla on arvo.
referenceTargetFolder folderCode Sen kansion koodi, johon viitteen kohdetietokortit luodaan. Tätä asetusta voidaan käyttää, kun ExpressionHandler-handleria käytetään viiteattribuutissa ja createEmptyReferences on true.
isHtmlOutput true/false

Oletuksena lausekkeen tulos käsitellään merkkijonona. Jos tämä metatieto asetetaan arvoon true, se kertoo ExpressionHandler:lle, että lausekkeen tulos käsitellään HTML (NOT ESCAPED)-muodossa (ei koodattuna). Jos arvo on false, tulos käsitellään pelkkänä merkkijonona. Oletusarvo on false.

Huomio: Tämä asetus on merkityksellinen vain merkkijono- ja tekstiattribuuteille.

Huomio: Tämä asetus ei ole käytettävissä E6-sarjan tuoteperheessä

executeEarly true/false

Oletuksena lauseke suoritetaan samaan aikaan muiden handlereiden kanssa sen jälkeen, kun oletusarvot on asetettu ja ehdolliset attribuutit ("Enable if"-toiminto) on otettu käyttöön, mutta ennen viivästettyjä preSave-handlereita. Jos tämä metatieto asetetaan arvoon true, lauseke suoritetaan ennen kuin oletusarvot asetetaan ja ehdolliset attribuutit ("Enable if"-toiminto) otetaan käyttöön. Oletusarvo on false.

Huomio: Tätä metatietoa ei ole tarkoitettu käytettäväksi yhdessä executeLate-metatiedon kanssa. Määrityksiä, joissa molemmat on otettu käyttöön, ei tueta.


Tämä metatieto mahdollistaa käyttötapauksen, jossa attribuutteja otetaan käyttöön lausekkeen avulla tuodun datan perusteella, ja samalla sallitaan datan tuominen käyttöön otettuihin attribuutteihin saman tallennustoimenpiteen aikana. Nykyinen toteutus tukee datan tuontia manuaalisesti käyttäen REST API, csv import task ja WebAPI-rajapintaa. Tarkemmin sanottuna ylläpitäjät voivat luoda määrityksen, jossa Self-Service (ESS) tuo dataa WebAPI-rajapinnan kautta attribuutteihin, jotka otetaan käyttöön lausekkeen ja ehdollisten attribuuttien toiminnon ("Enable if"-toiminto) avulla tuodun datan tai muiden ehtojen perusteella.

Kun metatieto asetetaan arvoon true, seuraava tulee mahdolliseksi:

  1. Self-Service (ESS) luo uuden tietokortin tai päivittää olemassa olevan tietokortin WebAPI-rajapinnan kautta ja tuo arvon/arvoja "Enable if"-lapsiattribuuttiin/-attribuutteihin.
  2. Jos "Execute early" on käytössä, lauseke suoritetaan. Lauseke asettaa tietyn arvon pääattribuuttiin. Pääattribuuttiin asetetun arvon on oltava se todellinen arvo, joka ottaa lapsiattribuutin/-attribuutit käyttöön.
  3. Ehdollisten attribuuttien toiminto ("Enable if"-toiminto) otetaan käyttöön. Näin ollen lapsiattribuutit otetaan käyttöön, ja niihin tuodut arvot säilyvät.

Huomio: Metatieto on suunniteltu edellä kuvattua käyttötapausta varten, joten muita käyttötapauksia ei tueta.

executeLate true/false

Oletuksena lauseke suoritetaan samaan aikaan muiden handlereiden kanssa sen jälkeen, kun oletusarvot on asetettu ja ehdolliset attribuutit ("Enable if"-toiminto) on otettu käyttöön, mutta ennen viivästettyjä preSave -handlereita. Jos tämä metatieto asetetaan arvoon true, lauseke suoritetaan sen jälkeen, kun kaikki muut handlerit, mukaan lukien viivästetyt, on suoritettu ja niiden arvot on otettu käyttöön. Oletusarvo on false.

Huomio: Tätä metatietoa ei ole tarkoitettu käytettäväksi yhdessä executeEarly-metatiedon kanssa. Määrityksiä, joissa molemmat on otettu käyttöön, ei tueta.


Tämä metatieto mahdollistaa käyttötapauksen, jossa käytetään viivästettyjen preSave -handlereiden (SLADeadline ja AttributeCombiner) tulostetta lausekkeissa. Tarkemmin sanottuna ylläpitäjät voivat käyttää esimerkiksi AttributeCombiner -arvoja lausekkeissa, myös silloin, kun tietokortteja tuodaan ulkoisista lähteistä (ESS, WebAPI, ...)

Kun metatieto asetetaan arvoon true, seuraava tulee mahdolliseksi:

  1. Self-Service (ESS) luo uuden tietokortin tai päivittää olemassa olevan tietokortin WebAPI -rajapinnan kautta ja tuo arvon/arvoja attribuutteihin, jotka ovat osa jotakin AttributeCombiner -arvoa.
  2. Jos "Execute late" on käytössä, lauseke suoritetaan AttributeCombiner-toiminnon jälkeen. Lauseke käyttää AttributeCombiner-arvoa jossain toiminnossa. Arvo on olemassa ja ajan tasalla.
  3. Lausekkeen logiikka suoritetaan, ja prosessi siirtyy muihin executeLate -handlereihin tai tietokortin tallennusprosessiin.

Huomio: Metatieto on suunniteltu edellä kuvattua käyttötapausta varten, joten muita käyttötapauksia ei tueta.

Expression-handler mahdollistaa myös pääsyn viitattuihin tietokortteihin. Nykyiseen korttiin voidaan viitata sanalla this, ja muihin tietokortteihin niiden luokka-attribuutin koodilla, joka on määritetty pääkortissa. Tällä hetkellä tuetut menetelmät viitatuille tietokorteille ovat:

Taulukko 4. Tietokortin käyttömenetelmät

Nimi Palauttaa Esimerkki
get(attributecode) Yksittäinen arvo, joka löytyy annetulla attribuuttikoodilla varustetusta kentästä. Jos attribuutti on monivalintainen, palautetaan ensimmäinen arvo. Jos attribuutti on viite, palautetaan PythonEntity-objekti. this.get("$support_person:email$")
getAll(attributecode) Taulukko, joka sisältää annetulla attribuuttikoodilla varustetusta kentästä löytyvät arvot. Jos attribuutti on viite, palautetaan taulukko PythonEntity-objekteja. max(getAll("product_prices"))
getTemplateName() Yksittäinen merkkijonoarvo, joka sisältää tietokortin mallin nimen. this.getTemplateName()
getTemplateCode() Yksittäinen merkkijonoarvo, joka sisältää tietokortin mallin koodin. this.getTemplateCode()
getFolderCode() Yksittäinen merkkijonoarvo, joka sisältää sen kansion koodin, johon tietokortti tallennetaan. Jos tuodun tietokortin XML sisältää arvon tälle attribuutille, se lasketaan uudelleen oikeaksi. this.getFolderCode()
getFolderName() Yksittäinen merkkijonoarvo, joka sisältää sen kansion nimen, johon tietokortti tallennetaan. Jos tuodun tietokortin XML sisältää arvon tälle attribuutille, se lasketaan uudelleen oikeaksi. this.getFolderName()
getFolderModuleCode() Yksittäinen merkkijonoarvo, joka sisältää sen moduulin koodin, johon tämä tietokortti on tallennettu. Mahdolliset arvot ovat: equipment - CMDB; contract - Contract; job - Service Desk; solution - Solution; change - Change Management; procurement - Procurement; client - Organization; admin - Users; system - vain sisäiset järjestelmän tietokortit. Käytettävissä olevat moduulit otetaan käyttöön lisensoinnin mukaan. Jotkin tuotteet saattavat olla vanhentuneita eivätkä enää käytettävissä. this.getFolderModuleCode()
getEntityId() Yksittäinen merkkijonoarvo, joka sisältää tietokortin id-tunnisteen. Tämän menetelmän palautusarvoa voidaan käyttää tarkistamaan, onko tietokortti tallennettu vai ei. Jos palautusarvo on 'none', tietokorttia ei ole vielä tallennettu. this.getEntityId()
getReferrers(templateCode) Taulukko, joka sisältää PythonEntities-objektit, jotka liittyvät malliin, joka on määritetty parametrilla templateCode. Jos parametri jätetään tyhjäksi, menetelmä palauttaa taulukon, joka sisältää PythonEntities-objektit, jotka liittyvät kaikkiin malleihin. this.getReferrers('incident') this.getReferrers()
isHidden() Yksittäinen true/false-arvo. Tämän menetelmän palautusarvoa voidaan käyttää tarkistamaan, onko tietokortti piilotettu vai ei. this.isHidden()

Taulukko 5. Tietokortin muokkausmenetelmät

Nimi Toiminnallisuus Esimerkki
set(attributecode, value)

Muuttaa attribuutin arvoa. Huomio: Älä muuta viitattujen tietokorttien arvoja äläkä käytä viitepolkuja.

Huomio: Älä muuta viitattujen tietokorttien arvoja äläkä käytä viitepolkuja.
Jos viitattujen tietokorttien arvoja asetetaan, ainakin seuraavat toiminnot eivät toimi:

  • Kuuntelijoita/handlereita ei suoriteta.
  • Historiaa ei päivitetä.
  • Myös muita ongelmia voi ilmetä.
this.set("priority", 1)
add(attributecode, value)

Lisää arvon attribuuttiin.

Huomio: Älä muuta viitattujen tietokorttien arvoja äläkä käytä viitepolkuja. Katso lisätiedot kohdasta set-method.

this.add("keywords", "email")

Skriptiesimerkkejä

Oletetaan: 1) "car" on monivalintainen viite of _this_ template 2) "limit" on kokonaislukuattribuutti of _car_ template 3) Hae raja yksittäisestä car-viitteestä:

car.get("car_limit")

Laske autojen rajojen kokonaissumma. Tämä edellyttää isScript -vaihtoehtoa:

_result=0
for i in car:
 _result+=i.get("car_limit")

Määritä kentän arvo kahden muun perusteella. Edellyttää isScript-vaihtoehtoa:

_result='No'
if client_status=='Accepted' and dealer_status=='Yes':
 _result='Yes'

Tietokortin näkyvyys (joko this tai tietokortin käyttömenetelmillä löydetty tietokortti) voidaan tarkistaa menetelmällä isHidden. Huomaa, että jos tarkistat sen tietokortin näkyvyyden, johon attribuutti kuuluu, attribuutin, jossa on DatacardHiddenState-handler, on oltava ennen Expression-attribuuttia, jotta menetelmä toimii!

if this.isHidden():
 _result = 'This data card is hidden'
        
car = this.get("car")
if car.isHidden():
 _result = 'Car is hidden'
else:
 _result = 'Car is visible'

Equals-funktiolla voit selvittää esimerkiksi, viittaavatko kaksi viitettä samaan tietokorttiin.

ref1 = this.get("ref1")
ref2 = this.get("ref2")
if ref1 != None and ref2 != None:
if ref1.equals(ref2):
 _result = 'Ref1 and ref2 refer to the same data card'
else:
 _result = 'Ref1 and ref2 refer to different data cards'       

Attribuutit ilman arvoja

Alla oleva skripti havainnollistaa tavan tarkistaa, että tietyllä attribuutilla on arvo. Jos attribuuttia koodilla myDate1 tai myDate2 ei ole olemassa, tai jos tällä tietokortilla ei ole arvoa kummallekaan näistä attribuuteista, tulos on 0. Jos molemmat attribuutit ovat olemassa ja niillä on arvo, palautetaan 1.

date1 = this.get("myDate1")
date2 = this.get("myDate2")

if date1 is None or date2 is None:
 _result = 0
else:
 _result = 1      

Jos haluat käyttää lyhyempää tapaa tarkistaa, onko attribuutilla arvo, käytä tätä (tässä attr_code on attribuutin koodi):

if attr_code:
 _result = '...'

Jos haluat tarkistaa, ettei attribuutilla ole arvoa, käytä tätä (tässä attr_code on attribuutin koodi):

if not attr_code:
 _result = '...'

Erikoismerkkejä sisältävien merkkijonojen käsittely

Virheellisten merkkien välttämiseksi on suositeltavaa käyttää aina u-etuliitettä unicode-merkkijonojen edessä erikoismerkkien sijaan. Esimerkiksi:

 _result = u'Text with some special characters like: ä, ö, ź, ć, ę, ð etc.'          

On myös tärkeää käyttää u-etuliitettä merkkijonoja vertailtaessa. Seuraava vertailu palauttaa aina arvon false:

string_attribute_value == 'ää'  

Yllä oleva vertailu tulisi tehdä näin:

 string_attribute_value == u'ää'    

Satunnaislukujen generointi

Oletetaan, että attribuutin koodi on "random_figure" ja haluamme laskea luvun vain kerran. Tämä skripti antaa sinulle luvun väliltä 1–100. isScript-vaihtoehto tarvitaan moduulien tuomiseen.

import random
if random_figure is None:
 _result = random.randint(1, 100)
else:
 _result = random_figure        

Laskeminen päivämäärillä

Erityistä DateUtil-luokkaa voidaan käyttää päivämäärillä laskemiseen. DateUtil.daysBetween(date1, date2) laskee, kuinka monta päivää on date1 ja date2-päivämäärän välillä. Vastaavat menetelmät kaikille aikaväleille:

DateUtil.yearsBetween(date1, date2)
DateUtil.monthsBetween(date1, date2)
DateUtil.daysBetween(date1, date2)
DateUtil.hoursBetween(date1, date2)
DateUtil.minutesBetween(date1, date2)
DateUtil.secondsBetween(date1, date2)

DateUtil.addDays(date, number) lisää annetun määrän päiviä annettuun päivämäärään ja palauttaa uuden päivämäärän. Jos annettu luku on negatiivinen, päiviä vähennetään annetusta päivämäärästä. Vastaavia menetelmiä on olemassa myös muille aikaväleille:

DateUtil.addYears(date, number)
DateUtil.addMonths(date, number)
DateUtil.addDays(date, number)
DateUtil.addHours(date, number)
DateUtil.addMinutes(date, number)
DateUtil.addSeconds(date, number)

DateUtil.currentDate() palauttaa nykyisen päivämäärän ja kellonajan. Tätä voidaan käyttää muiden menetelmien kanssa, kuten alla olevassa lausekkeessa:

_result = DateUtil.addHours(DateUtil.currentDate(), this.get("priority_high")     

Tässä tapauksessa lauseke lisää kentässä "priority_high" olevan tuntimäärän nykyiseen päivämäärään.

Viitteet ja viitepolut

Arvoja voi hakea viitteistä kahdella tavalla. Suositeltu tapa on käyttää viitepolkuja. Tällä $code1:code2$-merkinnällä ei tarvitse tarkistaa, onko arvoa kohteelle code1 todella olemassa. Jos muokkaat Company-value-arvoa, sinun täytyy lisätä None-tarkistus sille. Kaikki koodit on tietenkin kirjoitettava oikein. Voit käyttää this.getAll("$person:company$") useiden arvojen hakemiseen.

this.get("$person:company$")        

Seuraava esimerkki on vanha ja vanhentunut tapa, jota ei enää suositella. Hakemalla jokaisen polun osan erikseen sinun täytyy lisätä None-tarkistukset jokaiselle osalle (this.get("person") != None).

this.get("person").get("company")         

Muiden attribuuttien arvojen muuttaminen

Yksittäisen arvon asettaminen

this.set("priority", 1)
this.set("description", (description or "") + "\n(For more information, contact service desk)")        

Useiden arvojen asettaminen

this.set("keywords", ["email", "communication"])

Arvojen lisääminen

this.add("keywords", "email")
---
this.add("keywords", ["email", "communication"])
---
if this.get("rollback_count") == None:
this.set("rollback_count", 0)
else:
 this.set("rollback_count", (this.get("rollback_count")+1))      

Arvojen kopioiminen viitepoluista

this.set("prices", this.getAll("$items:price$"))
this.set("total_price", sum(this.getAll("$items:price$") or []))

Arvojen tyhjentäminen

this.set("keywords", None)
this.set("keywords", [])
# Calling add with the same parameters doesn't do anything.

Attribuutit, joissa on CommentHandler

CommentHandler tallentaa kommentit tietokortteina. Lausekkeille kommentit palautetaan muodossa PythonComments. PythonComment sisältää menetelmiä kommentin viestin, kirjoittajan ja päivämäärän hakemiseen. Kirjoittaja on viite henkilön tietokorttiin. Kirjoittaja palautetaan muodossa PythonEntity. Päivämäärä palautetaan päivämäärä-aika-arvona kuten muillakin entiteettitiedoilla. Kommentteja ei voi muokata lausekkeissa. Olemassa olevia kommentteja ei voi asettaa minkään viiteattribuutin kohdearvoksi (eli niitä ei voi siirtää). CommentUtil voidaan käyttää uuden kommentin luomiseen. Kommentin viesti on annettava kommenttia luotaessa. Uusia kommentteja voidaan lisätä CommentHandler-attribuuttiin (set-menetelmää ei tueta). Päivämääräksi asetetaan kommentin luontiajankohta. Kirjoittajaksi asetetaan nykyisen käyttäjän henkilön tietokortti. Jos nykyisellä käyttäjällä ei ole henkilön tietokorttia, kommentin luonti epäonnistuu.

Oikeudet kommentteihin annetaan CommentHandler -attribuutin oikeuksien perusteella. Yleensä käyttäjillä ei ole oikeuksia kommentoida tietokortteja itse. Käyttäjillä ei myöskään välttämättä ole oikeuksia kirjoittajiin. Näistä syistä saattaa olla tarpeen asettaa alwaysExecute -metatieto joissakin tapauksissa kommentteja käsitteleville lausekkeille.

 

Taulukko 6. PythonComment-käyttömenetelmät

Menetelmä Palauttaa
getAuthor() PythonEntity
getComment() Kommentin viesti merkkijonoarvona.
getDate() Kommentin luontiajankohta muodossa Date.
getType() Kommentin tyyppi merkkijonoarvona. Arvo on 'file-attached' kommenteille, jotka luodaan automaattisesti, kun käyttäjät liittävät tiedostoja. Muut mahdolliset tyypit ovat 'user-written' ja 'pythonapi-generated'.
setComment Asettaa kommentin viestin. Voidaan käyttää olemassa olevan kommentin viestin muuttamiseen. Viesti voidaan tyhjentää, mutta sitä ei voi asettaa arvoon null.

Taulukko 7. CommentUtil -menetelmät

Menetelmä Palauttaa Esimerkki
createComment(message) Palauttaa PythonComment joka sisältää parametrina annetun kommentin viestin. Kirjoittajaksi tulee nykyisen käyttäjän henkilön tietokortti ja päivämääräksi luontiajankohta CommentUtil.createComment(message)
createComment(message, date, author, type)

Luo PythonComment annetuilla parametreilla.

 

date -parametri voi olla merkkijono muodossa YYYY-MM-DD tai se voidaan asettaa arvoon None nykyisen ajankohdan käyttämiseksi. Päivämäärän odotettu muoto on:

%Y-%m-%dT%H:%M:%S

 

author -parametrin tulisi vastata arvoa attribuutissa, joka on määritetty alustan asetuksilla 'ngss.person.uid.attribute.code' (ensisijainen) tai 'servlet.auth.person.uid.attribute.code' (varajärjestely), joka on liitetty henkilöön, tai None, jolloin käytetään nykyistä käyttäjää.

 

type-parametri hyväksyy joko 'user-written' tai 'pythonapi-generated', ja oletusarvo on 'user-written', jos sitä ei ole määritetty. Tyhjät parametrit voidaan välittää käyttäen None. Esimerkiksi: CommentUtil.createComment("Sample message", None, None, "user-written").

CommentUtil.createComment(message)
deleteComment(comment) Poistaa taustalla olevan kommenttientiteetin, jota edustaa PythonComment annettu parametrina. Poistaminen tekee PythonComment -instanssista käyttökelvottoman (älä kutsu sen gettereitä/settereitä, aseta sitä CommentHandler -attribuutin arvoksi tai yritä poistaa sitä uudelleen). CommentUtil.deleteComment(comment)


Taulukko 8. Kommentteihin liittyvät PythonEntity-menetelmät

Menetelmä Palauttaa Esimerkki
getAllCommentsOrdered(attribute_code) Palauttaa kommentit muodossa PythonComments järjestettynä uusimmasta vanhimpaan comment handler-attribuutista this.getAllCommentsOrdered("ngss_comments")
getLatestComment(attribute_code) Palauttaa uusimman kommentin muodossa PythonComment comment handler -attribuutista this.getLatestComment("ngss_comments")

Alla on esimerkkejä kommenttien käytöstä lausekkeissa.

Asettaa kaikki ei-tyhjät kirjoittajat toiseen monivalintaiseen viitekenttään.

_result = []
comments = this.getAll("ngss_comments")
for comment in comments:
    if comment.getAuthor() != None:
        _result.append(comment.getAuthor())

Luo uuden kommentin ja liittää sen CommentHandler -attribuuttiin:

this.add("ngss_comments", CommentUtil.createComment("Added by expression"))

Luo uuden kommentin tietyllä päivämäärällä, kirjoittajalla ja tyypillä ja liittää sen CommentHandler -attribuuttiin:

this.add("ngss_comments", CommentUtil.createComment("Added by expression", "2020-01-01", "admin", "pythonapi-generated"))     

Poistaa kommentin kommentin viestin arvon perusteella:

comments = this.getAll("ngss_comments")
for comment in comments:
   if comment.getComment() != None and 'secret' in comment.getComment():
      CommentUtil.deleteComment(comment)

Tyhjentää kommenttien viestit niiden sisällön perusteella:

comments = this.getAll("ngss_comments")
for comment in comments:
   if comment.getComment() != None and 'secret' in comment.getComment():
      comment.setComment('')  

Hakee kaikki tämän entiteetin kommentit järjestettynä luontiajan mukaan laskevasti:

comments = this.getAllCommentsOrdered("ngss_comments")
for comment in comments:
   if comment.getComment() != None:
      comment.getComment()  

Hakee uusimman kommentin:

comment = this.getLatestComment("ngss_comments")
   if comment != None and comment.getComment() != None:
      comment.getComment()

Mukautettujen moduulien käyttö

Moduulin määrittäminen: Luo tiedosto stringutils.py seuraavalla sisällöllä hakemistoon, joka on ilmoitettu alustan asetuksessa python.path:

def reverse(value):
   if value is None:
       return None
   else:
       return str(value)[::-1]

Moduulin tuominen ja käyttäminen. isScript-vaihtoehto tarvitaan moduulien tuomiseen.

 import stringutils
 _result = stringutils.reverse(attribute_to_be_reversed)

Funktioiden tuominen ja käyttäminen moduulista. Useita funktioita voidaan tuoda erottamalla funktioiden nimet pilkuilla.

 from stringutils import reverse
 _result = reverse(attribute_to_be_reversed)

Moduuleja kehitettäessä käytä reload(module) moduulitiedoston muutosten käyttöönottamiseksi. Moduulin uudelleenlataus heikentää suorituskykyä, joten poista rivi, kun moduuli on valmis käytettäväksi tuotantoympäristössä.

 import stringutils
 reload(stringutils) #remove this line when module is ready

Python-versio

Python-versiota voidaan hallita alustan asetuksella python.version. Tarkista nykyinen versio tällä.

 import sys
 _result = sys.version

Was this article helpful?

Yes
No
Give feedback about this article

Table of Contents

Related Articles

  • Yleiskatsaus käsittelijöihin
  • EQL-editori
  • Handler - IDGenerator
  • Attribute Metadata - ShowCode
  • Attribute Metadata - PrintTemplateName

Copyright 2026 – Matrix42 Professional.

Matrix42 homepage


Knowledge Base Software powered by Helpjuice

0
0
Expand