code: def execute(self, conn, app="", release_version="", pset_hash="", output_label="", 
                  global_tag='', transaction = False):
          
  	sql = self.sql
          binds = {}
  	setAnd=False
  	if not app == "":
  		sql += " A.APP_NAME=:app_name"
          	binds["app_name"]=app
  		setAnd=True
  	if not release_version == "":
  		if setAnd : sql += " AND "
  		sql += " R.RELEASE_VERSION=:release_version"
  		binds["release_version"]=release_version
  		setAnd=True
  	if not pset_hash == "":
  		if setAnd : sql += " AND "
  		sql += " P.PSET_HASH=:pset_hash"
  		binds["pset_hash"]=pset_hash
  		setAnd=True
  	if not output_label == "":
  		if setAnd : sql += " AND "
  		sql += " O.OUTPUT_MODULE_LABEL=:output_module_label"
  		binds["output_module_label"]=output_label
                  setAnd=True
          if not global_tag == "":
                  if setAnd : sql += " AND "
                  sql += " O.GLOBAL_TAG=:global_tag"
                  binds["global_tag"]=global_tag
  	if app == release_version == pset_hash  == global_tag == "":
              dbsExceptionHandler('dbsException-invalid-input', "%s Either app_name, release_version, pset_hash or global_tag must be provided", self.logger.exception)	
  
          result = self.dbi.processData(sql, binds, conn, transaction)
          plist = self.formatDict(result)
  	if len(plist) < 1: return -1
          return plist[0]["output_mod_config_id"]
docs: returns id for a given application