PW01-L06 · Zmena logiky
Náhradná hodnota pri null
Nahraďte SQL ISNULL explicitnou kontrolou null.
Špecifické pre ProjectWise
Výsledok migrácieNebudete zamieňať null, chýbajúci objekt a prázdny text.
ProjectWise kontextVšeobecný výraz v ProjectWise CEL
SQL funkciaPôvodná konfigurácia ProjectWiseISNULL(prop, 'ABC')
prop == null ? 'ABC' : prop
Čo je odlišné
CEL vyžaduje, aby výraz pomenoval podmienku aj obe vetvy. To zviditeľňuje rozhodnutie, ktoré SQL ISNULL ukrýva vo funkcii.
- null nie je to isté ako prázdny string.
- Dereferencovanie null objektu skončí chybou ešte pred použitím náhradnej hodnoty.
- Niektoré objektové vlastnosti ProjectWise vracajú prázdny objekt namiesto null.
Cieľ migrácie
Vráťte náhradný text iba vtedy, keď je pôvodná hodnota null.
Čo sa mení
Namiesto SQL funkcie CEL používa explicitnú podmienku. Takýto zápis neznamená, že zachytí chybu spôsobenú skorším prístupom k vlastnosti null objektu.
Prečo je CEL riešenie presnejšie
Review môže skontrolovať podmienku aj oba výsledky. Zároveň je jasné, že prázdny string sa nezmení na náhradnú hodnotu.
Pred nasadením
Otestujte null, prázdny string a platnú hodnotu osobitne. Ak prop vzniká z objektu, najprv bezpečne skontrolujte tento objekt.
Zdroje
BENTLEY-PW-CEL-SQL-FUNCTIONS — náhrada ISNULL.BENTLEY-PW-CEL-NULLS — rozdiel medzi null objektom a prázdnym objektom.