Special note
For any latest changes to this data structure see the bottom of the page for any updates based on new builds.
Basics (older builds 20 and below)
###################################
# BlogsURL: ownerUserId, publicitemsloop_controlstring
###################################
#basics
blogsURL=aspire:\\reports\\blogs\\blogs.html
blogsURL.formHandlerName=BUFH
Request.BUFH.form_handler.class_request.classname=com.ai.htmlgen.DBHashTableFormHandler1
#main data
request.BUFH.maindatarequest.classname=com.ai.db.DBRequestExecutor2
request.BUFH.maindatarequest.db=reportsDB
request.BUFH.maindatarequest.stmt=(your-sql-statement)
#the loop of public items
request.BUFH.publicitemsloop.class_request.className=com.ai.htmlgen.GenericTableHandler6
request.BUFH.publicitemsloop.query_request.className=com.ai.db.DBRequestExecutor2
request.BUFH.publicitemsloop.query_request.db=reportsDB
request.BUFH.publicitemsloop.query_request.stmt=(your-select-statement)
You can do this in Build 20 and above
###################################
# BlogsURL: ownerUserId, publicitemsloop_controlstring
###################################
#basics
blogsURL=aspire:\\reports\\blogs\\blogs.html
blogsURL.dataRequestName=BUFH
request.BUFH.classname=com.ai.htmlgen.DBHashTableFormHandler1
#main data
request.BUFH.maindatarequest.classname=com.ai.db.DBRequestExecutor2
request.BUFH.maindatarequest.db=reportsDB
request.BUFH.maindatarequest.stmt=(your-sql-statement)
#the loop of public items
request.BUFH.publicitemsloop.class_request.className=com.ai.htmlgen.GenericTableHandler6
request.BUFH.publicitemsloop.query_request.className=com.ai.db.DBRequestExecutor2
request.BUFH.publicitemsloop.query_request.db=reportsDB
request.BUFH.publicitemsloop.query_request.stmt=(your-select-statement)
You can reuse data definitions
url1=aspire:\\reports\\blogs\\blogs.html
url1.dataRequestName=EmptyData
url2=aspire:\\reports\\blogs\\blogs.html
url2.dataRequestName=EmptyData
request.EmptyData.classname=com.ai.htmlgen.DBHashTableFormHandler1
maindata and loop data names are optional
url1=aspire:\\reports\\blogs\\blogs.html
url1.dataRequestName=EmptyData
request.EmptyData.classname=com.ai.htmlgen.DBHashTableFormHandler1
The above is a valid definition with out any main data or loop data spec. This data structure will have url data and also session data and also application data.
A complete example
###################################
# BlogsURL: ownerUserId, publicitemsloop_controlstring
###################################
#basics
blogsURL=aspire:\\reports\\blogs\\blogs.html
blogsURL.formHandlerName=BUFH
Request.BUFH.form_handler.class_request.classname=com.ai.htmlgen.DBHashTableFormHandler1
#main data
request.BUFH.maindatarequest.classname=com.ai.db.DBRequestExecutor2
request.BUFH.maindatarequest.db=reportsDB
request.BUFH.maindatarequest.stmt=select first_name as user_first_name ,last_name as user_last_name ,email as user_email from users where user_id = {ownerUserId.quote}
#children specification for XML support
BUFH.loopnames=publicitemsloop
#To cover the last page
BUFH.publicitemsloop.eliminateLoop=yes
request.BUFH.publicitemsloop.eliminateLoop=yes
#the loop of public items
request.BUFH.publicitemsloop.class_request.className=com.ai.htmlgen.RandomTableHandler6
request.BUFH.publicitemsloop.query_request.className=com.ai.db.DBRequestExecutor2
request.BUFH.publicitemsloop.query_request.db=reportsDB
request.BUFH.publicitemsloop.query_request.stmt=SELECT * FROM filed_items AS fi, reports AS r, folders AS f WHERE 1=1 And fi.item_id=r.report_id And fi.folder_id=f.folder_id and f.public='Y' and f.owner_user_id={ownerUserId.quote} ORDER BY r.last_updated_on DESC