2017-07-12 1 views
0

Après avoir utilisé l'analyseur de code de ColdFusion 2016 sur notre base de code, il nous donne l'erreur suivante.A propos d'une erreur rencontrée lors de l'analyse de code pour la conversion vers ColdFusion 2016

Non _ [B5O] Utilisation incorrecte de la fonction WRITELOG.La fonction WRITELOG ne peut pas être utilisée dans les instructions de substitution.

<cfoutput>#writeLog("DS001", "#This.Name#", "SDC601", ArrayNew(1))#</cfoutput> 

Que signifie cette erreur? Que dois-je faire pour résoudre le problème?

Nous émigrons de ColdFusion 7 à ColdFusion 2016.

Répondre

0

Comment/Pourquoi utilisez-vous <cfscript> syntaxe dans les <cfoutput> balises? Si votre code est compris entre <cfscript>, alors les tags <cfoutput> ne seraient pas valides. De toute façon, ces balises ne sont pas nécessaires lors de l'appel de la fonction writelog ou <cflog>. Cela m'amène à croire que le code que vous avez partagé n'est pas le code réel.

Il semble que vos valeurs pour l'appel de fonction soient incorrectes. Je ne sais pas comment cela a fonctionné dans ColdFusion 7 (encore une fois, ce n'est probablement pas un exemple du code réel). Voici un extrait from the documentation for the writelog function:

Syntaxe de la fonction

WriteLog (text, type, application, file, log) 

Pour la notation de position, la séquence doit être suivie exactement de la même manière que prévu dans la syntaxe. Si vous ne fournissez pas l'un des paramètres, utilisez une chaîne vide à la place. Cela ne s'applique pas aux valeurs booléennes pour lesquelles vous devez fournir des valeurs correctes même si vous devez les ignorer.

Le code que vous partagiez est:

writeLog("DS001", "#This.Name#", "SDC601", ArrayNew(1)) 

Ce qui signifie que vous utilisez la notation de position et ColdFusion interprète que:

text  = "DS001" 
type  = "#This.Name#" 
application = "SDC601" 
file  = ArrayNew(1) 
log   = 

Le code doit être modifié pour transmettre les valeurs dans le bon ordre lors de l'utilisation de cette syntaxe. Et je ne suis pas sûr pourquoi vous essayez de passer un tableau vide dans la fonction. Aucun des attributs n'accepte un tableau.