Solved

Coldfusion 10  EVALUATE

Posted on 2015-01-06
19
76 Views
Last Modified: 2015-01-27
The code below use to work in ColdFusion MX7. Upgraded to ColdFusion 10 and don't work no more.



<CFLOOP INDEX="ListIndex" LIST="#TRIM(UserGroup)#">
            
            <CFSET UserGroup = SpanExcluding(ListIndex, "|*|")>            
            <CFSET UserGroupType = Replace(ListIndex, "|*|","")>
            <CFSET UserGroupType = Replace(UserGroupType, UserGroup,"")>      
            
            
            
            
                  

            <CFSET StartDate = EVALUATE("FORM.StartDate#TRIM(UserGroup)##TRIM(UserGroupType)#")>
            <CFSET EndDate = EVALUATE("FORM.EndDate#TRIM(UserGroup)##TRIM(UserGroupType)#")>
            <CFSET OnGoing = EVALUATE("FORM.OnGoing#TRIM(UserGroup)##TRIM(UserGroupType)#")>
            <CFSET TempEndDate = EVALUATE("FORM.TempEndDate#TRIM(UserGroup)##TRIM(UserGroupType)#")>
            <CFSET SubscriberAcctNumber = EVALUATE("FORM.SubscriberAcctNumber#TRIM(UserGroup)##TRIM(UserGroupType)#")>

            <!--- check SubscriberAcctNumber length and pad with leading zeroes, if necessary --->
            <CFIF IsDefined("SubscriberAcctNumber") AND LEN(TRIM(SubscriberAcctNumber)) GT 0>
                  <CFIF LEN(TRIM(SubscriberAcctNumber)) LT 7 AND TRIM(SubscriberAcctNumber) GT "">
                        <CFSET SubscriberAcctNumberLength = LEN(TRIM(SubscriberAcctNumber))>
                        <CFLOOP CONDITION="SubscriberAcctNumberLength LT 7">
                              <CFSET SubscriberAcctNumber = 0 & TRIM(SubscriberAcctNumber)>
                              <CFSET SubscriberAcctNumberLength = LEN(SubscriberAcctNumber)>
                        </CFLOOP>
                  </CFIF>
            </CFIF>

            <CFQUERY NAME="AddModUser" DATASOURCE="DB">
                  { CALL prMembership       
                        ('#TRIM(UserID)#','#TRIM(UserGroup)#','#TRIM(UserGroupType)#','#TRIM(StartDate)#','#TRIM(EndDate)#','#TRIM(TempEndDate)#','','','#TRIM(OnGoing)#','#TRIM(SubscriberAcctNumber)#')      
                  }
            </CFQUERY>
            
      </CFLOOP>
0
Comment
Question by:smares323
  • 13
  • 6
19 Comments
 
LVL 39

Expert Comment

by:gdemaria
ID: 40534635
You forgot to ask a question!

But since you mention evaluate()  you can remove evaluate by doing this...

  <CFSET StartDate = FORM["StartDate#TRIM(UserGroup)##TRIM(UserGroupType)#"]>

instead of this..

  <CFSET StartDate = EVALUATE("FORM.StartDate#TRIM(UserGroup)##TRIM(UserGroupType)#")>
0
 

Author Comment

by:smares323
ID: 40534650
I get this error on the insert.

{ CALL prMembership       ('112973','WSJ','REGULAR','01/01/10,01/01/20','','','','','y,y','') }
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 40534667
That is not an error, what is the error message?

The thing that looks weird is  'y,y'  --- is that supposed to be two "y" ? or just "Y"

same thing with the date..t. here are 2 dates in this quote..

01/01/10,01/01/20
0
 

Author Comment

by:smares323
ID: 40534690
Ok the Evaluate use to filter the multiple records that where submitted.  that's actually 2 grouptype  that were selected and its not looping the startdate  and ongoing for each record. The Y is for the Ongoing field.
0
 

Author Comment

by:smares323
ID: 40534695
In the past the   Evaulate was for more then 1 record that was submitted through the form.

<CFSET StartDate = EVALUATE("FORM.StartDate#TRIM(UserGroup)##TRIM(UserGroupType)#")>
             <CFSET EndDate = EVALUATE("FORM.EndDate#TRIM(UserGroup)##TRIM(UserGroupType)#")>
             <CFSET OnGoing = EVALUATE("FORM.OnGoing#TRIM(UserGroup)##TRIM(UserGroupType)#")>
             <CFSET TempEndDate = EVALUATE("FORM.TempEndDate#TRIM(UserGroup)##TRIM(UserGroupType)#")>
             <CFSET SubscriberAcctNumber = EVALUATE("FORM.SubscriberAcctNumber#TRIM(UserGroup)##TRIM(UserGroupType)#")>
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 40534723
> In the past the   Evaulate was for more then 1 record that was submitted through the form.

Ok, that was the past.  How is it now?  Do you still have more than one record in your form?   How are you looping them now?
0
 

Author Comment

by:smares323
ID: 40534735
Also MX7 the Evaulate would allow each startdate to insert in its own UserGroup record not like this 01/01/10,01/01/20
0
 

Author Comment

by:smares323
ID: 40534742
<!---------------->
<CFPARAM NAME="UserID" DEFAULT="">



<CFIF TRIM(UserID) GT "">

      <CFQUERY NAME="Subscribed" DATASOURCE="db">
            { CALL prUGMembership ('#TRIM(UserID)#') }
      </CFQUERY>      
      <!--- <cfdump var="#Subscribed#"> --->
      
      <CFQUERY NAME="AllGroups" DATASOURCE="db">
            { CALL prUGTypesList }
      </CFQUERY>
      <!--- <cfdump var="#AllGroups#"> --->
<CFELSE>
      <CFABORT>
</CFIF>



      <CFSET GroupList = "">
      <CFSET OnGoingList = "">
      
      <CFOUTPUT QUERY="Subscribed">
            
            <CFSET GroupList = "#TRIM(GroupList)##TRIM(UserGroup)##TRIM(UserGroupType)#,">            
            <!-- 101,239,48,39,932 -->
            <CFIF TRIM(OnGoing) IS "Y">
                  <CFSET OnGoingList = "#TRIM(OnGoingList)##TRIM(UserGroup)##TRIM(UserGroupType)#,">
            </CFIF>            
      </CFOUTPUT>
      

      
      
      
<HTML>
<HEAD>
<Style Type="text/css">
.link1 {text-decoration:none; color:#000000;}
.button0 {font-size:7pt;}
.textEntry1 {font:9pt}
</Style>
</HEAD>

<BODY bgcolor="#ffffff" vlink=blue alink=blue>



<CFOUTPUT>
<FORM name="GroupForm" action="/admin/onlineAccount/userGroupSub.cfm?sid=#sid#&tkn=#tkn#&UserID=#UserID#" METHOD="POST" TARGET="list">
</CFOUTPUT>



<TABLE border=0 cellspacing=0 cellpadding=0 width=99%>
<TR>
<td width=5><spacer type=block></td>
<td>
      
      <table border=0 cellspacing=2 cellpadding=0 width=100%>         
      
      <TR bgcolor="#eeeeee">      
      <td colspan=2><font face=arial,helvetica size=1>
            <u>Available Groups</u>
      </td>
      <td><font face=arial,helvetica size=1>
            <u>Region</u>
      </td>
      <td><font face=arial,helvetica size=1>
            <u>On Going</u>
      </td>
      <td><font face=arial,helvetica size=1>
            <u>Subscriber<br>Account</u>
      </td>
      <td><font face=arial,helvetica size=1>
            <u>Start Date</u>
      </td>
      <td><font face=arial,helvetica size=1>
            <u>End Date</u>
      </td>
      </TR>
      
      <CFOUTPUT QUERY="AllGroups">
      
            
      <CFSET zGroup = "#TRIM(AllGroups.UserGroup)##TRIM(AllGroups.UserGroupType)#">
      <CFSET zTempEndDate = "">
      <CFSET zStartDate = "">
      <CFSET zEndDate = "">
      <CFSET zSubscriberID = "">

      <TR>            

            <td valign=top>                      
                  <input type="Checkbox" name="UserGroup" value="#TRIM(AllGroups.UserGroup)#|*|#TRIM(AllGroups.UserGroupType)#"<CFIF TRIM(GroupList) CONTAINS "#TRIM(AllGroups.UserGroup)##TRIM(AllGroups.UserGroupType)#"> checked</CFIF>>
          </td>         
            
            <td><font face=arial,helvetica size=1>                  
                <a href="##" title="#TRIM(AllGroups.UserGroupName)#" Class="link1">
                      #TRIM(AllGroups.UserGroup)# #TRIM(AllGroups.UserGroupType)#</a>
          </td>             
            
            <td><font face=arial,helvetica size=1>                  
                 #LEFT(RegionCode, 2)#          
               </td>
   
          <td>                  
                  <input type="text" size=1 name="OnGoing#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#" value="<CFIF TRIM(OnGoingList) CONTAINS "#TRIM(AllGroups.UserGroup)##TRIM(AllGroups.UserGroupType)#">Y</CFIF>" Class="textEntry1">
               </td>    
 
             <td>
               <CFLOOP QUERY="Subscribed">
                    <CFIF "#TRIM(zGroup)#" IS "#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#">
                              <CFSET zSubscriberID = "#Subscribed.SubscriptionAccountNumber#">
                              <CFSET zStartDate = DateFormat("#TRIM(Subscribed.StartDate)#","mm/dd/yy")>
                              <CFSET zEndDate = DateFormat("#TRIM(Subscribed.EndDate)#","mm/dd/yy")>
                              <CFSET zTempEndDate = DateFormat("#TRIM(Subscribed.TempEndDate)#","mm/dd/yy")>
                        </CFIF>
                  </CFLOOP>
                  
                  <!--- baseview account number ---><!--- #TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)# --->
                  <input type="text" name="SubscriberAcctNumber#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#" value="#zSubscriberID#" size="7" maxlength="30" Class="textEntry1">
            </td>
            <td>
                  <input type="text" name="StartDate#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#" value="#TRIM(zStartDate)#" size=7 maxlength=30 Class="textEntry1">
            </td>
            <td><input type="text" name="EndDate#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#" value="#TRIM(zEndDate)#" size=7 maxlength=30 Class="textEntry1">  
                     <input type="hidden" name="TempEndDate#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#" value="#TRIM(zTempEndDate)#">
            </td>                  
                  
      </TR>
      
      <CFIF zSubscriberID GT ''>
            <!--- query baseview --->
            <CFQUERY NAME="CA" DATASOURCE="CIRC">
                  SELECT subscription.account, subscription.status, subscription.expiration,
                        publication.publication_name, occupant.company, subscription.notes, publication.publicationcode
                  FROM subscription
                  INNER JOIN publication ON subscription.publicationID = publication.publication_id
                  INNER JOIN occupant ON occupant.name_id = subscription.namedentityid
                  WHERE subscription.account = '#zSubscriberID#'
            </CFQUERY>      
            <!--- <cfdump var="#CA#"> --->
            <CFIF IsDefined("CA.account") AND CA.account GT 0>
                  <tr>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td valign="top">
                              <font face=arial,helvetica size=1>                  
                              #CA.account#
                              <br />#CA.publication_name# <cfif trim(CA.publicationcode) gt "">(#trim(CA.publicationcode)#)</cfif>
                              <br />#CA.company#
                              <br />#CA.notes#
                        </td>
                        <td valign="top">
                                    <font face=arial,helvetica size=1>
                                    Status: #TRIM(CA.status)#
                                    <br /><CFIF #TRIM(CA.status)# EQ 1>Active<CFELSE><font color="red">Inactive</font></CFIF>
                                    </font>
                        </td>
                        <td valign="top">
                                    <font face=arial,helvetica size=1>                  
                                    Exp: #DateFormat(CA.expiration, "mm/dd/yy")#
                                    </font>
                        </td>                  
                  </tr>
            </CFIF>
      </CFIF>
      </CFOUTPUT>            
       
    <TR>
      <td colspan=5 height=50 align=center>
            <input type=submit value="  Save  " Class="button0">
      </td>
      </TR>
            
      </table>  
      

</td>
</TR>
<TR><td height=50>&nbsp;</td></TR>
</TABLE>


</form>
</BODY>
</HTML>
0
 

Author Comment

by:smares323
ID: 40534768
That's how in the form
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 

Author Comment

by:smares323
ID: 40534903
In the form im using a cfquery output to get usergroup value
0
 

Author Comment

by:smares323
ID: 40535663
Any suggestions or advice gdemaria
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 40535805
So, the problem is these two columns that are doubling the data, right?

{ CALL prMembership       ('112973','WSJ','REGULAR','01/01/10,01/01/20','','','','','y,y','') }

What is the name of the form field for this data:  '01/01/10,01/01/20

AND for this data :  'Y,Y'

We need to see if these fields are set up differently, they should have a name tag with a variable  NAME="XXX#variable#"
0
 

Author Comment

by:smares323
ID: 40535945
form.StartDate = 01/01/10,01/01/20
form.EndDate = doing the same
form.OnGoing = y,y
form.TempEndDate = doing the same
form.SubscriberAcctNumber = doing the same
0
 

Author Comment

by:smares323
ID: 40535966
Sorry I think you meant this

name="OnGoing#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#"
name="StartDate#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#"
name="EndDate#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#"
name="TempEndDate#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#"
name="SubscriberAcctNumber#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#"
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 40535971
So they are all duplicating?

On your form page, view the source and look for the startDate field

 <input type="text" name="StartDate#TRIM(Subscribed.UserGroup)##TRIM(Subscribed.UserGroupType)#"

You will probably see more than one field named  StartdateX where x is some value.    NAME="StartDateX" should be unique, there should only be one of them, the "X" value (whatever it is) needs to be different every time
0
 

Author Comment

by:smares323
ID: 40539192
gdemaria you were right about the name being unique, but I'm still getting an error if the recordcount is more then 19 records that the form submits. The evaluate did work also.

HTTP Status 500 - ROOT CAUSE:

type Exception report

message ROOT CAUSE:

description The server encountered an internal error that prevented it from fulfilling this request.

exception
0
 

Author Comment

by:smares323
ID: 40539213
type Exception report

message ROOT CAUSE:

description The server encountered an internal error that prevented it from fulfilling this request.

exception
javax.servlet.ServletException: ROOT CAUSE:
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
      at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:450)
      at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:119)
      at coldfusion.tagext.io.cache.ehcache.GenericResponseWrapper.sendError(GenericResponseWrapper.java:91)
      at coldfusion.filter.FormScope.parseQueryString(FormScope.java:524)
      at coldfusion.filter.FormScope.parsePostData(FormScope.java:468)
      at coldfusion.filter.FormScope.fillForm(FormScope.java:414)
      at coldfusion.filter.FormScope.setEncoding(FormScope.java:86)
      at coldfusion.runtime.CFPage.SetEncoding(CFPage.java:1194)
      at cfclassic2ecfm557356615._factor21(C:\ColdFusion10\cfusion\wwwroot\WEB-INF\debug\classic.cfm:19)
      at cfclassic2ecfm557356615._factor32(C:\ColdFusion10\cfusion\wwwroot\WEB-INF\debug\classic.cfm:12)
      at cfclassic2ecfm557356615.runPage(C:\ColdFusion10\cfusion\wwwroot\WEB-INF\debug\classic.cfm:1)
      at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244)
      at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:446)
      at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
      at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:33)
      at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:114)
      at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
      at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
      at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
      at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
      at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
      at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
      at coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:151)
      at coldfusion.CfmServlet.service(CfmServlet.java:219)
      at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
      at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:422)
      at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Thread.java:722)

      coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:70)
      coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)



note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs.
0
 
LVL 39

Accepted Solution

by:
gdemaria earned 500 total points
ID: 40541188
I actually just had this problem myself - it took me forever to find the solution!

This is a setting in the CFIDE/administrator because you have a lot of fields.   The setting limits the number of fields.

Go into the admin and choose Server Settings -> Settings and scroll down to find
Maximum number of POST request parameters

Change the value from 100 to something like 500.  That's the number of fields a form can post
0
 

Author Closing Comment

by:smares323
ID: 40573408
I also found the same solution. thanks for you time and effort.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

PROBLEM: How to add your own buttons to the bottom toolbar with paging info ( result count ). While creating a cfgrid, I ran into an issue where I wanted to embed my own custom buttons where the default ones ( insert / delete / etc… ) are for aes…
Hi, Even though I have created this Tutorial on My personal Blog, Some people might not able to find my website, So here i am posting it again Today, from the topic it is very clear that i will be showing you here the very basic usage of how we …
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…
Need to grow your business through quality cloud solutions? With everything required to build a cloud platform and solution, you may feel like the distance between you and the cloud is quite long. Help is here. Spend some time learning about the Con…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now