Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Hauei aplikatzen zaie: Canvas aplikazioak
Dataverse formula-zutabeak
Mahaigaineko fluxuak
Modeloetan oinarritutako aplikazioak
Power Pages
Power Platform CLI
Akatsak hauteman eta balio alternatiboa ematen du edo neurriak hartzen ditu. Sortu errore pertsonalizatu bat edo pasa errore bat.
Oharra
Aplikazio batek Formula-mailako erroreen kudeaketa eginbidea desgaitu badu Ezarpenak>Eguneratzeak> Erretiratuta, funtzio horiek ez dira behar bezala funtzionatuko.
IfError
IfError funtzioak erroreak aurkitu arte probatzen ditu balioak. Funtzioak errore bat aurkitzen badu, funtzioak ebaluatu eta dagokion ordezko balioa itzultzen du eta ebaluazio gehiago gelditzen ditu. Balio lehenetsia ere eman daiteke erroreak aurkitzen ez direnean. IfError funtzioaren egiturak If funtzioaren antza badu: IfError erroreak probatzeko, berriz If probetarako egia.
Erabili IfError errorea balio baliozko batekin ordezkatzeko, beheko kalkuluak jarraitu ahal izateko. Adibidez, erabili funtzio hau erabiltzailearen sarrerak zeroz zatitzea eragin dezake:
IfError( 1/x, 0 )
Formula honek 0
itzultzen du x
ren balioa zero bada, 1/x
k errore bat sortzen baitu.
x
ez bada zero 1/x
itzultzen da.
Prozesu gehiago gelditzea
Formulak elkarrekin kateatzean sartu portaera-formulak, hala nola:
Patch( DS1, ... );
Patch( DS2, ... )
Bigarren Patch funtzioa DS2
ere saiatuko da PatchDS1
huts egin du. Errore baten irismena kateatzen den formula bakoitzera mugatzen da.
Erabili IfError ekintza bat egin eta ekintza arrakastatsua izapidetzen jarraitu besterik ez dago. Aplikatuz IfError adibide honetara:
IfError(
Patch( DS1, ... ), Notify( "problem in the first action" ),
Patch( DS2, ... ), Notify( "problem in the second action" )
)
Bada PatchDS1
arazo bat du, lehena Jakinarazi exekutatu da. Bigarrena ere ez da prozesatzen PatchDS2
. Lehen Patch arrakasta badu, bigarren Patch exekutatuko du.
Hornitzen bada, aukerakoa DefaultResult argumentua itzuliko da akatsik aurkitzen ez bada. Argudio hori gabe, azkena Balioa argumentua itzuli da.
Azken adibidean oinarrituta, itzuleraren balioa IfError arazoak egon ote ziren egiaztatzeko aukera dago:
IfError(
Patch( DS1, ... ), Notify( "problem in the first action" ); false,
Patch( DS2, ... ), Notify( "problem in the second action" ); false,
true
)
Moten bateragarritasuna
IfError k bere argumentu baten balioa itzultzen du. Itzul litezkeen balio guztien motak IfError bateragarria izan behar du.
Azken adibidean, AdabakiakOrdezkapen formuletarako erabiltzen diren boolearrekin bateragarria ez den erregistroa itzultzen du. edo DefaultResult. Oso ondo dago, izan ere, ez dago egoera horien itzuleraren balioa Patch deiak itzuliko lirateke IfError.
Oharra
Aldaketaren prozesuan jokaera dagoen bitartean, argudio guztien motak ere erabil daitezke IfError bateragarria izan behar du.
Lehen deskribatutako adibide bakarrean:
IfError( 1/x, 0 )
Motak 1/x
eta 0
bateragarriak ziren biak zenbakiak ziren bezala. Hala ez bada, bigarren argumentua behartzen da lehen argumentuaren motarekin bat etor dadin.
Excel-ek #DIV/0! zeroren zatiketa gertatzen denean erakusten du.
Ikusi IfError honako balio hauekin ordez:
IfError( 1/x, "#DIV/0!" )
Goiko formulak ez du funtzionatzen. Testu-katea "#DIV/0!"
lehen argumentuaren motara behartuta dago IfError, hau da, zenbaki bat.
IfError ren emaitza beste errore bat da, testu-katea ezin baita behartu. Konponbide gisa, bihurtu lehen argumentua testu-kate batera IfError beti testu-kate bat itzultzen da:
IfError( Text( 1/x ), "#DIV/0!" )
Goian ikusi den bezala, IfError errorea itzul dezake Ordezkoa edo DefaultResult errorea bada.
FirstError / AllErrors
Ordezko formulen barruan, aurkitutako erroreei buruzko informazioa erabilgarri dago FirstError erregistroak eta AllErrors taularen bidez. AllErrors erroreen informazio-erregistroen taula bat da, eta FirstError taula honetako lehen erregistrorako lasterbidea da. FirstError k First( AllErrors )ren balio bera ematen du beti.
Errore-erregistroen artean hauek daude:
Eremua | Idatzi | Deskribapenak |
---|---|---|
Jatorra | ErrorKind zenbakitzea (zenbakia) | Errorearen kategoria. |
Mezua | Testu-katea | Erroreari buruzko mezua, azken erabiltzaileari bistaratzeko egokia. |
Iturria | Testu-katea | Akatsa sortu den kokapena, txostena egiteko erabiltzen dena. Adibidez, kontrol-propietate bati loturiko formula baterako, balio hau ControlName.PropertyName forman dago. |
Behatua | Testu-katea | Kokapena errorea erabiltzaileari azaleratzen zaionean, salatzeko erabiltzen da. Adibidez, kontrol-propietate bati loturiko formula baterako, balio hau ControlName.PropertyName forman dago. |
Xehetasunak | Grabatu | Erroreari buruzko xehetasunak. Une honetan, sareko akatsetarako soilik ematen dira xehetasunak. Erregistro honek HttpStatusCode HTTP egoera-kodea eta HttpResponse erantzun-ren gorputza barne hartzen ditu. konektorea edo zerbitzua. |
Adibidez, hurrengo formula Button kontrola gisa erabilita OnSelect propietatean:
Set( a, 1/0 )
Eta formula hau OnSelect bigarren Botoia kontrolean:
IfError( a, Notify( "Internal error: originated on " & FirstError.Source & ", surfaced on " & FirstError.Observed ) )
Goiko adibidearen formulak honako botoia bistaratuko luke bi botoiak sekuentzialki aktibatzen direnean:
Normalean, errore bakarra egongo da FirstError rekin nahikoa lan egin dezakeena. Hala ere, hainbat errore itzul daitezkeen eszenatokiak daude. Adibidez, formula kateatzeko operadorea edo Aldibereko funtzioa erabiltzean. Egoera hauetan ere, FirstError salatzea nahikoa izan daiteke arazo bat agerian uzteko, erabiltzailea errore ugarirekin gainkargatu beharrean. Errore bakoitza banan-banan lan egiteko eskakizuna baduzu oraindik, AllErrors taula erabil dezakezu.
IsError
IsError funtzio-probak akats-balio bat lortzeko.
Itzuleraren balioa boolear bat da egia edo faltsua.
IsError erabiltzeak errorea gehiago prozesatzea eragozten du.
IsBlankOrError
IsBlankOrError funtzioaren probak balio hutsaren edo errore-balioaren eta honen baliokidea da: Or( IsBlank( X ), IsError( X ) )
.
Lehendik dauden aplikazioen erroreen kudeaketa gaitzen duzunean, kontuan hartu ordeztea IsBlankIsBlankOrError elementuarekin dagoen aplikazioaren portaera gordetzeko. Erroreen kudeaketa gehitu aurretik, hutsik balioa erabiltzen zen datu-baseetako balio nuluak eta errore-balioak adierazteko. Akatsen tratamenduak bi interpretazio hauek bereizten ditu hutsik erabiltzen jarraitzen duten aplikazioen portaera alda dezake horrek IsBlank.
Itzuleraren balioa boolear bat da egia edo faltsua.
IsBlankOrError erabiltzeak errorea gehiago prozesatzea eragozten du.
Erabili Errorea funtzioa errore pertsonalizatuak sortzeko eta txosten bat sortzeko. Esate baterako, baliteke balio jakin bat zure testuingururako baliozkoa den ala ez zehazteko logika izatea, arazoren bat automatikoki egiaztatu ez den zerbait. Zure errorea sortu eta itzul dezakezu, osatu Mota eta Mezua, goian deskribatutako erregistro bera erabiliz IfError funtzioa.
IfError-ren testuinguruan, erabili Error funtzioa errore bat berriro botatzeko edo pasatzeko. Adibidez, IfError n duzun logikak erabaki dezake kasu batzuetan errore bat modu seguruan baztertu daitekeela, baina beste kasu batzuetan errorea bidaltzea garrantzitsua da. IfError edo App.OnError barruan, erabili Error( FirstError) errore bat pasatzeko.
Error funtzioari erroreen taula bat ere pasa dakioke, AllErrors taulan aurkituko litzatekeen bezala. Erabili Error( AllErrors ) errore guztiak berriro botatzeko eta ez lehenengoa bakarrik.
hutsik erregistro edo taula huts bat Errorea era pasatzean ez da errorerik sortzen.
Sintaxia
Errore( Error Record )
Errorea( ErrorTaula )
- ErrorRecord – Beharrezkoa. Erroreen informazio erregistroa, Mota, Mezua eta beste eremu batzuk barne. Mota beharrezkoa da. FirstError zuzenean pasa daiteke.
- ErrorTable – Beharrezkoa. Erroreen informazio-erregistroen taula. Akats guztiak zuzenean pasa daitezke.
Errorea bada( Balioa1, Ordezpena1 [, Balioa2 , Ordezkatzea2,... [, DefaultResult ] ] )
- Balioak – Beharrezkoa. Errorearen balioa probatzeko formulak.
- Ordezkoak – Beharrezkoa. Bat datozenean ebaluatzeko eta balioesteko formulak Balioa argumentuek errore bat itzuli dute.
- DefaultResult – Aukerakoa. Formulak akatsik aurkitzen ez duen ebaluatzeko formulak.
IsError( Balioa )
IsBlankOrError( Balioa )
- Balioa – Beharrezkoa. Probatzeko formula.
Adibideak
IfError sinplea
Formula | Deskribapenak | Emaitza |
---|---|---|
Errorea bada (1, 2) | Lehenengo argumentua ez da errorea. Funtzioak ez du beste akatsik egiaztatu eta itzultzeko balio lehenetsirik. Funtzioak azkena itzultzen du balioa argumentua ebaluatu da. | 1 |
Errorea bada (1/0, 2) | Lehenengo argumentuak errore balioa itzultzen du (zero zatituta dagoelako). Funtzioak bigarren argumentua ebaluatzen du eta emaitza gisa itzultzen du. | 2 |
Errorea bada (10, 20, 30) | Lehenengo argumentua ez da errorea. Funtzioak ez du beste akatsik baina itzultzeko balio lehenetsi bat du. Funtzioak itzultzen du DefaultResult argumentua. | 30 |
Errorea bada (10, 11, 20, 21, 300) | Lehenengo argumentua 10 errorea ez da, beraz funtzioak ez du argumentu hori dagokion ordezkoa ebaluatzen 11. Hirugarren argumentua 20 errorea ez da, beraz funtzioak ez du argumentu hori dagokion ordezkoa ebaluatzen 21. Bosgarren argumentua 300 ez du dagokion ordezkapenik eta emaitza lehenetsia da. Funtzioak emaitza hori itzultzen du formulak ez baitu errorerik. | 300 |
IfError(1/0, Notify("Barne arazo bat egon da")) | Lehenengo argumentuak errore balioa itzultzen du (zero zatituta dagoelako). Funtzioak bigarren argumentua ebaluatzen du eta mezu bat bistaratzen dio erabiltzaileari. Itzuleraren balioa IfError itzulera balioa da Jakinarazi, lehendabiziko argumentuari mota berdinera helarazi zitzaion IfError (zenbaki bat). | 1 |
IsError sinplea
Formula | Deskribapenak | Emaitza |
---|---|---|
IsError( 1 ) | Argumentua ez da errorea. | faltsua |
IsError(Hutsik()) | Argumentua hutsa da, baina ez da akatsa. | faltsua |
IsError (1/0) | Argumentua errorea da. | egia |
If(IsError(1/0), Notify("Barne arazo bat egon da")) | Argumentuak IsError funtzioa errore balioa itzultzen du (zero zatituta dagoelako). Funtzio honek itzultzen du egia, horrek eragiten du Bada erabiltzaileari mezu bat bistaratzeko Notify funtzioarekin. Itzuleraren balioa If itzulera balioa da Jakinarazi, lehendabiziko argumentuari mota berdinera helarazi zitzaion If (boolearra). | egia |
Simple IsBlankOrError
Formula | Deskribapenak | Emaitza |
---|---|---|
IsBlankOrError( 1 ) | Argumentua ez da errorea edo hutsa. | faltsua |
IsBlankOrError(Hutsik()) | Argumentua hutsa da. | egia |
IsBlankOrError (1/0) | Argumentua errorea da. | egia |
Errore sinplea
Adibide honetan, datak bata bestearen aldean baliozkotzen dira, arazoren bat izanez gero errore bat sortuz.
If( StartDate > EndDate,
Error( { Kind: ErrorKind.Validation, Message: "Start Date must be before End Date" } ) )
Adibide honetan, errore batzuk pasatzen uzten dira eta beste batzuk kendu eta balio batekin ordezkatzen dira. Lehenengo kasuan, b akats-egoeran dago Balioa funtzioak argumentu baliogabea duelako. Formula idazleak hau ustekabekoa denez, erabiltzaileak ikus dezan pasatzen da. Bigarren kasuan, formula berarekin, b k 0 balioa du, eta ondorioz, zeroz zatitzea. Kasu honetan, formula-idazleak jakin dezake hori onargarria dela logika honetarako, errorea kendu (ez da pankartarik erakusten) eta -1 itzuli.
With( {a: 1, b: Value("a")},
IfError( a/b, If( FirstError.Kind <> ErrorKind.Div0, Error( FirstError ), -1 ) ) )
// returns an error with Kind = ErrorKind.InvalidArgument
With( {a: 1, b: 0} )
IfError( a/b, If( FirstError.Kind <> ErrorKind.Div0, Error( FirstError ), -1 ) ) )
// returns -1
AllErrors taula beste edozein taula bezala iragazi daiteke. Errorea funtzioarekin erabilita, espero diren erroreak kendu eta gainerako akatsak gorde eta jakinarazi. Esaterako, bagenekien zeroz zatitzea testuinguru jakin batean arazo bat izango ez zela, akats horiek iragazi litezke, gainerako akats guztiak bere horretan utziz formula honekin:
Error( Filter( AllErrors, Kind <> ErrorKind.Div0 ) )
Urratsez urrats
Gehitu Text input kontrola eta izendatu TextInput1 izen lehenespenez ez badu.
Gehitu Label kontrola eta izendatu Label1 izen lehenespenez ez badu.
Ezarri Label1 balioaren formularen Testua propietatea horrela:
IfError( Value( TextInput1.Text ), -1 )
TextInput1 balioan, sartu 1234.
Etiketak1 1234 balioa erakusten du Balio funtziorako baliozko sarrera bat baita.
TextInput1 balioan, sartu ToInfinity.
Etiketak1 -1 balioa erakusten du, hau ez baita Balio funtziorako baliozko sarrera bat. Balio funtzioa IfError-ekin estali gabe, etiketak ez luke baliorik erakutsiko errore-balioa gisa tratatzen den bezala hutsik.