Pri náhrade CHARINDEX zohľadnite rozdielne číslovanie pozícií.
Špecifické pre ProjectWise
Výsledok migrácie
Vyhnete sa typickej chybe posunu o jeden znak.
ProjectWise kontext
Všeobecný výraz v ProjectWise CEL
SQL funkciaPôvodná konfigurácia ProjectWise
CHARINDEX('C', 'ABC')
CELProjectWise CEL
'ABC'.indexOf('C') + 1
Čo je odlišné
SQL CHARINDEX vracia v tomto mapovaní pozíciu počítanú od 1. CEL indexOf() pracuje s indexom od 0, preto dokumentovaný ekvivalent pripočíta 1.
SQL výsledok pre C je 3, samotné CEL indexOf() vráti 2.
Pripočítanie 1 je potrebné iba vtedy, keď ďalšia logika očakáva SQL číslovanie.
indexOf() je rozšírenie ProjectWise CEL, nie prenositeľná záruka každého hostiteľa CEL.
Cieľ migrácie
Zachovajte číselný výsledok existujúcej logiky založenej na CHARINDEX.
Čo sa mení
ProjectWise CEL indexOf() počíta od nuly. Oficiálny migračný príklad preto pripočíta 1, aby zachoval výsledok SQL výrazu.
Prečo je CEL riešenie presnejšie
Posun je viditeľný priamo vo výraze. Ak nová logika používa pozíciu iba ako index CEL, pripočítanie nemusí byť potrebné; rozhoduje spotrebiteľ výsledku.
Pred nasadením
Otestujte znak na začiatku, uprostred, na konci a chýbajúci znak. Neprenášajte automaticky SQL index do ďalšej CEL funkcie.