Skip to main content
February 19, 2010
Question

Entirly dynamic IF conditions

  • February 19, 2010
  • 2 replies
  • 471 views

Hey All,

I am doing something a little strange. Basically I have a database table with some coldfusion If statments. Things like

"age GT 18" or

"name eq 'frank'"

etc. Basically it's a dynamic rule engine. Allows my users to place triggers in an app. Question is, how do I evalulate those conditions. I pull them from the database, loop over the query, but I can't actually get CF to parse the contructed IF statment. For example...

<cfset YearsOld = 67>

<cfquery name="GetConditions" datasource="webserver">
     Select *
     From SignUpFormAdditionalActions
     Where Active = 1
</cfquery>

<cfoutput>
     <cfloop query="GetConditions">
          <cfif GetConditions.Condition>
               Met #GetConditions.Name#. #GetConditions.Content#<br />
          </cfif>
          
     </cfloop>
</cfoutput>

And here is what my database looks like

I know this should be easy, I'm just kinda having a brain fart. Thanks!

This topic has been closed for replies.

2 replies

February 21, 2010

I figured it out.

February 19, 2010

Ah I figured it out. Using DE and evaluate.

<cfquery name="GetConditions" datasource="webserver">
     Select *
     From SignUpFormAdditionalActions
     Where Active = 1
</cfquery>

<cfoutput>
     <cfset YearsOld = 67>
     <cfloop query="GetConditions">
          <cfset result = #Evaluate(GetConditions.condition)#>
          
          <cfif result eq "yes">
               Passed #GetConditions.name#<br />
               <cfelse>
               Failed #GetConditions.name#<br />
          </cfif>     
     </cfloop>
</cfoutput>

Inspiring
February 21, 2010

Do you wanna mark the question as resolved?

Cheers.

--

Adam