title: Jenkins groovy.lang.MissingPropertyException: No such property: for class: Script1
body: <p>The purpose of this program is to replace all TFS user's password. It works if I directly use the userid and password inside the code, but fails with this error when I convert it to a paramaterized build. </p>
  
  <pre><code>Started by user Jirong Hu
  [EnvInject] - Loading node environment variables.
  Building remotely on public_jenprodslave_1 in workspace D:\public_jenprodslave_1\workspace\DevOps\Update-TFSPlugin-Password
  param userid value : devops_test_user
  ERROR: Build step failed with exception
  groovy.lang.MissingPropertyException: No such property: userid_param_value for class: Script1
  
  
  import hudson.model.*
  import hudson.triggers.*
  import hudson.util.Secret;
  import hudson.plugins.tfs.TeamFoundationServerScm
  
  def thr = Thread.currentThread()
  def build = thr?.executable
  def resolver = build.buildVariableResolver
  
  def userid_param = "userid"
  def userid_param_value = resolver.resolve(userid_param)
  println "param ${userid_param} value : ${userid_param_value}"
  
  def password_param = "password"
  def password_param_value = resolver.resolve(password_param)
  //println "param ${password_param} value : ${password_param_value}"
  
  
  updateTFSPluginPassword(Hudson.instance.items)
  
  def updateTFSPluginPassword(items) {    
  
      for(item in items) {
          if (item.class.canonicalName != 'com.cloudbees.hudson.plugins.folder.Folder') {
  
            if (item.scm instanceof TeamFoundationServerScm) {                                    
  
              // Update the TFS user id here:
              //if (item.scm.getUserName() == 'devops_test_user') {
              if (item.scm.getUserName() == userid_param_value) {
                  println("Working on project &lt;$item.name&gt;")
                  println item.scm.getType()
                  println item.scm.getServerUrl()
                  println item.scm.getProjectPath()
                  println item.scm.getWorkspaceName()
                  println item.scm.isUseUpdate()
                  println item.scm.getUserName()
                  println item.scm.getPassword()
  
                  // Update the TFS user password hash here:                  
                  Secret secret = Secret.fromString(password_param_value)
  
                  tfsSCM = new TeamFoundationServerScm(item.scm.getServerUrl(), 
                                                       item.scm.getProjectPath(), 
                                                       null, 
                                                       item.scm.isUseUpdate(), 
                                                       item.scm.getWorkspaceName(), 
                                                       item.scm.getUserName(), 
                                                       secret) 
                  item.scm = tfsSCM
  
                  println ("")
  
              }            
            }
  
          }  else  {              
              updateTFSPluginPassword(((com.cloudbees.hudson.plugins.folder.Folder) item).getItems())
          }      
      }
  }
  </code></pre>