[open-ils-commits] r955 - in conifer/branches/rel_1_6_0: apache conf (dbs)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Aug 11 22:26:49 EDT 2010


Author: dbs
Date: 2010-08-11 22:26:47 -0400 (Wed, 11 Aug 2010)
New Revision: 955

Modified:
   conifer/branches/rel_1_6_0/apache/eg_vhost.conf
   conifer/branches/rel_1_6_0/conf/fm_IDL.xml
Log:
Update Conifer config files for 1.6.1


Modified: conifer/branches/rel_1_6_0/apache/eg_vhost.conf
===================================================================
--- conifer/branches/rel_1_6_0/apache/eg_vhost.conf	2010-08-11 17:47:48 UTC (rev 954)
+++ conifer/branches/rel_1_6_0/apache/eg_vhost.conf	2010-08-12 02:26:47 UTC (rev 955)
@@ -263,7 +263,22 @@
     allow from all
 </LocationMatch>
 
+# ----------------------------------------------------------------------------------
+# Self-serve password interface
+# ----------------------------------------------------------------------------------
+<Location /opac/password>
+    SetHandler perl-script
+    PerlHandler OpenILS::WWW::PasswordReset::password_reset
+    Options +ExecCGI
+    PerlSendHeader On
+    allow from all
 
+    # Force clients to use HTTPS
+    RewriteEngine On
+    RewriteCond %{HTTPS} !=on [NC]
+    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
+</Location>
+
 # ----------------------------------------------------------------------------------
 # Supercat feeds
 # ----------------------------------------------------------------------------------
@@ -378,10 +393,11 @@
 <Location /exporter>
     SetHandler perl-script
     PerlSetVar OILSProxyTitle "Exporter Login"
-    PerlSetVar OILSProxyDescription "Please log in to export records"
+    PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to export records"
     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
     PerlHandler OpenILS::WWW::Proxy OpenILS::WWW::Exporter
     Options +ExecCGI
+    PerlSendHeader On
     allow from all
 </Location>
 
@@ -391,7 +407,7 @@
 <Location /reporter/>
     SetHandler perl-script
     PerlSetVar OILSProxyTitle "Report Login"
-    PerlSetVar OILSProxyDescription "Please log in to view this report"
+    PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to view this report"
     PerlSetVar OILSProxyPermissions "VIEW_REPORT_OUTPUT"
     PerlHandler OpenILS::WWW::Proxy
     Options +ExecCGI
@@ -404,8 +420,8 @@
 # ----------------------------------------------------------------------------------
 <LocationMatch .*/selfcheck.xml>
     SetHandler perl-script
-    PerlSetVar OILSProxyTitle "Selfcheck Login"
-    PerlSetVar OILSProxyDescription "Please log in to activate the selfcheck interface"
+    PerlSetVar OILSProxyTitle "Self-check Login"
+    PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to activate the self-check interface"
     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
     PerlHandler OpenILS::WWW::Proxy
     Options +ExecCGI
@@ -454,7 +470,7 @@
  
     SetHandler perl-script
     PerlSetVar OILSProxyTitle "Dojo Admin Login"
-    PerlSetVar OILSProxyDescription "Please log in to administer Evergreen"
+    PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to administer Evergreen"
     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
     PerlHandler OpenILS::WWW::Proxy
     Options +ExecCGI
@@ -479,7 +495,8 @@
     AddOutputFilter INCLUDES;XMLENT .xml
 	SetHandler perl-script
 	PerlSetVar OILSProxyTitle "Vandelay Login"
-	PerlSetVar OILSProxyDescription "Please log in to import MARC records"
+	PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to import MARC records"
+
 	PerlSetVar OILSProxyPermissions "IMPORT_MARC"
 	PerlHandler OpenILS::WWW::Proxy
 	Options +ExecCGI

Modified: conifer/branches/rel_1_6_0/conf/fm_IDL.xml
===================================================================
--- conifer/branches/rel_1_6_0/conf/fm_IDL.xml	2010-08-11 17:47:48 UTC (rev 954)
+++ conifer/branches/rel_1_6_0/conf/fm_IDL.xml	2010-08-12 02:26:47 UTC (rev 955)
@@ -23,112 +23,100 @@
 
 <IDL xmlns="http://opensrf.org/spec/IDL/base/v1" xmlns:idl="http://opensrf.org/spec/IDL/base/v1" xmlns:oils_persist="http://open-ils.org/spec/opensrf/IDL/persistence/v1" xmlns:oils_obj="http://open-ils.org/spec/opensrf/IDL/objects/v1" xmlns:reporter="http://open-ils.org/spec/opensrf/IDL/reporter/v1" xmlns:permacrud="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 
+	<!-- Conifer specific IDL -->
+	<class id="rhr" oils_obj:fieldmapper="resolver::holdings_record" oils_persist:virtual="true">
+		<fields>
+			<field name="public_name" oils_persist:virtual="true" />
+			<field name="target_url" oils_persist:virtual="true" />
+			<field name="target_coverage" oils_persist:virtual="true" />
+			<field name="target_embargo" oils_persist:virtual="true" />
+		</fields>
+	</class>
+
+
 	<!-- Virtual classes -->
-	<class id="mups" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_payment_summary" oils_persist:virtual="true">
+	<class id="mups" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_payment_summary" oils_persist:virtual="true" reporter:label="User Payment Summary">
 		<fields>
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="usr" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field name="forgive_payment" oils_obj:array_position="4" oils_persist:virtual="true" />
-			<field name="work_payment" oils_obj:array_position="5" oils_persist:virtual="true" />
-			<field name="credit_payment" oils_obj:array_position="6" oils_persist:virtual="true" />
-			<field name="goods_payment" oils_obj:array_position="7" oils_persist:virtual="true" />
+			<field name="usr" oils_persist:virtual="true" />
+			<field name="forgive_payment" oils_persist:virtual="true" />
+			<field name="work_payment" oils_persist:virtual="true" />
+			<field name="credit_payment" oils_persist:virtual="true" />
+			<field name="goods_payment" oils_persist:virtual="true" />
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 		</links>
 	</class>
 
-	<class id="mwps" controller="open-ils.cstore" oils_obj:fieldmapper="money::workstation_payment_summary" oils_persist:virtual="true">
+	<class id="mwps" controller="open-ils.cstore" oils_obj:fieldmapper="money::workstation_payment_summary" oils_persist:virtual="true" reporter:label="Workstation Payment Summary">
 		<fields>
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="workstation" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field name="cash_payment" oils_obj:array_position="4" oils_persist:virtual="true" />
-			<field name="check_payment" oils_obj:array_position="5" oils_persist:virtual="true" />
-			<field name="credit_card_payment" oils_obj:array_position="6" oils_persist:virtual="true" />
+			<field name="workstation" oils_persist:virtual="true" />
+			<field name="cash_payment" oils_persist:virtual="true" />
+			<field name="check_payment" oils_persist:virtual="true" />
+			<field name="credit_card_payment" oils_persist:virtual="true" />
 		</fields>
 		<links>
 			<link field="workstation" reltype="has_a" key="id" map="" class="aws"/>
 		</links>
 	</class>
 
-	<class id="brn" controller="open-ils.cstore" oils_obj:fieldmapper="biblio::record_node" oils_persist:virtual="true">
+	<class id="brn" controller="open-ils.cstore" oils_obj:fieldmapper="biblio::record_node" oils_persist:virtual="true" reporter:label="Record Node">
 		<fields>
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="true" />
-			<field name="children" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field name="owner_doc" oils_obj:array_position="9" oils_persist:virtual="true" />
-			<field name="intra_doc_id" oils_obj:array_position="5" oils_persist:virtual="true" />
-			<field name="parent_node" oils_obj:array_position="10" oils_persist:virtual="true" />
-			<field name="node_type" oils_obj:array_position="8" oils_persist:virtual="true" />
-			<field name="namespace_uri" oils_obj:array_position="7" oils_persist:virtual="true" />
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="true" />
-			<field name="value" oils_obj:array_position="11" oils_persist:virtual="true" />
+			<field name="id" oils_persist:virtual="true" />
+			<field name="children" oils_persist:virtual="true" />
+			<field name="owner_doc" oils_persist:virtual="true" />
+			<field name="intra_doc_id" oils_persist:virtual="true" />
+			<field name="parent_node" oils_persist:virtual="true" />
+			<field name="node_type" oils_persist:virtual="true" />
+			<field name="namespace_uri" oils_persist:virtual="true" />
+			<field name="name" oils_persist:virtual="true" />
+			<field name="value" oils_persist:virtual="true" />
 		</fields>
 	</class>
 
-	<class id="mvr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::virtual_record" oils_persist:virtual="true">
+	<class id="mvr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::virtual_record" oils_persist:virtual="true" reporter:label="Virtual Record">
 		<fields>
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="title" oils_obj:array_position="19" oils_persist:virtual="true" />
-			<field name="author" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field name="doc_id" oils_obj:array_position="6" oils_persist:virtual="true" />
-			<field name="doc_type" oils_obj:array_position="7" oils_persist:virtual="true" />
-			<field name="pubdate" oils_obj:array_position="12" oils_persist:virtual="true" />
-			<field name="isbn" oils_obj:array_position="9" oils_persist:virtual="true" />
-			<field name="publisher" oils_obj:array_position="13" oils_persist:virtual="true" />
-			<field name="tcn" oils_obj:array_position="18" oils_persist:virtual="true" />
-			<field name="subject" oils_obj:array_position="16" oils_persist:virtual="true" />
-			<field name="types_of_resource" oils_obj:array_position="21" oils_persist:virtual="true" />
-			<field name="call_numbers" oils_obj:array_position="4" oils_persist:virtual="true" />
-			<field name="edition" oils_obj:array_position="8" oils_persist:virtual="true" />
-			<field name="online_loc" oils_obj:array_position="10" oils_persist:virtual="true" />
-			<field name="synopsis" oils_obj:array_position="17" oils_persist:virtual="true" />
-			<field name="physical_description" oils_obj:array_position="11" oils_persist:virtual="true" />
-			<field name="toc" oils_obj:array_position="20" oils_persist:virtual="true" />
-			<field name="copy_count" oils_obj:array_position="5" oils_persist:virtual="true" />
-			<field name="series" oils_obj:array_position="15" oils_persist:virtual="true" />
-			<field name="serials" oils_obj:array_position="14" oils_persist:virtual="true" />
-			<field name="performer_notes" oils_obj:array_position="22" oils_persist:virtual="true" />
-			<field name="extent" oils_obj:array_position="23" oils_persist:virtual="true" />
+			<field name="title" oils_persist:virtual="true" />
+			<field name="author" oils_persist:virtual="true" />
+			<field name="doc_id" oils_persist:virtual="true" />
+			<field name="doc_type" oils_persist:virtual="true" />
+			<field name="pubdate" oils_persist:virtual="true" />
+			<field name="isbn" oils_persist:virtual="true" />
+			<field name="publisher" oils_persist:virtual="true" />
+			<field name="tcn" oils_persist:virtual="true" />
+			<field name="subject" oils_persist:virtual="true" />
+			<field name="types_of_resource" oils_persist:virtual="true" />
+			<field name="call_numbers" oils_persist:virtual="true" />
+			<field name="edition" oils_persist:virtual="true" />
+			<field name="online_loc" oils_persist:virtual="true" />
+			<field name="synopsis" oils_persist:virtual="true" />
+			<field name="physical_description" oils_persist:virtual="true" />
+			<field name="toc" oils_persist:virtual="true" />
+			<field name="copy_count" oils_persist:virtual="true" />
+			<field name="series" oils_persist:virtual="true" />
+			<field name="serials" oils_persist:virtual="true" />
 		</fields>
 	</class>
 
 	<class id="ex" controller="open-ils.cstore" oils_obj:fieldmapper="ex" oils_persist:virtual="true">
 		<fields>
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="err_msg" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field name="type" oils_obj:array_position="4" oils_persist:virtual="true" />
+			<field name="err_msg" oils_persist:virtual="true" />
+			<field name="type" oils_persist:virtual="true" />
 		</fields>
 	</class>
 
 	<class id="perm_ex" controller="open-ils.cstore" oils_obj:fieldmapper="perm_ex" oils_persist:virtual="true">
 		<fields>
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="err_msg" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field name="type" oils_obj:array_position="4" oils_persist:virtual="true" />
+			<field name="err_msg" oils_persist:virtual="true" />
+			<field name="type" oils_persist:virtual="true" />
 		</fields>
 	</class>
 
-	<class id="amtr" controller="open-ils.cstore" oils_obj:fieldmapper="action::matrix_test_result" oils_persist:virtual="true">
+	<class id="amtr" controller="open-ils.cstore" oils_obj:fieldmapper="action::matrix_test_result" oils_persist:virtual="true" reporter:label="Matrix Test Result">
 		<fields oils_persist:primary="matchpoint">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Matchpoint ID" name="matchpoint" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Success" name="success" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Failure Part" name="fail_part" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Matchpoint ID" name="matchpoint" reporter:datatype="id"/>
+			<field reporter:label="Success" name="success" reporter:datatype="bool"/>
+			<field reporter:label="Failure Part" name="fail_part" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="matchpoint" reltype="has_a" key="id" map="" class="ccmm"/>
@@ -139,12 +127,9 @@
 	<!-- Actually in the DB -->
 	<class id="vibtf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::import_bib_trash_fields" oils_persist:tablename="vandelay.import_bib_trash_fields" reporter:label="Import/Overlay Fields for Removal">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.import_bib_trash_fields_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Field ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Field" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Field ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Field" name="field" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -159,33 +144,30 @@
 		</permacrud>
 	</class>
 
-	<class id="vii" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::import_item" oils_persist:tablename="vandelay.import_item" reporter:label="Import Item Attribute Definition">
+	<class id="vii" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::import_item" oils_persist:tablename="vandelay.import_item" reporter:label="Import Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.import_item_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Import Item ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Import Record" name="record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Attribute Definition" name="definition" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Call Number" name="call_number" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Copy Number" name="copy_number" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Status" name="status" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Shelving Location" name="location" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Circulate" name="circulate" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Deposit" name="deposit" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Deposit Amount" name="deposit_amount" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Reference" name="ref" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Holdable" name="holdable" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Price" name="price" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Barcode" name="barcode" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulate As MARC Type" name="circ_as_type" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Alert Message" name="alert_message" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Public Note" name="pub_note" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Private Note" name="priv_note" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Import Item ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Import Record" name="record" reporter:datatype="link"/>
+			<field reporter:label="Attribute Definition" name="definition" reporter:datatype="link"/>
+			<field reporter:label="Owning Library" name="owning_lib" reporter:datatype="int"/>
+			<field reporter:label="Circulating Library" name="circ_lib" reporter:datatype="int"/>
+			<field reporter:label="Call Number" name="call_number" reporter:datatype="text"/>
+			<field reporter:label="Copy Number" name="copy_number" reporter:datatype="int"/>
+			<field reporter:label="Status" name="status" reporter:datatype="int"/>
+			<field reporter:label="Shelving Location" name="location" reporter:datatype="int"/>
+			<field reporter:label="Circulate" name="circulate" reporter:datatype="bool"/>
+			<field reporter:label="Deposit" name="deposit" reporter:datatype="bool"/>
+			<field reporter:label="Deposit Amount" name="deposit_amount" reporter:datatype="money"/>
+			<field reporter:label="Reference" name="ref" reporter:datatype="bool"/>
+			<field reporter:label="Holdable" name="holdable" reporter:datatype="bool"/>
+			<field reporter:label="Price" name="price" reporter:datatype="money"/>
+			<field reporter:label="Barcode" name="barcode" reporter:datatype="text"/>
+			<field reporter:label="Circulation Modifier" name="circ_modifier" reporter:datatype="text"/>
+			<field reporter:label="Circulate As MARC Type" name="circ_as_type" reporter:datatype="text"/>
+			<field reporter:label="Alert Message" name="alert_message" reporter:datatype="text"/>
+			<field reporter:label="Public Note" name="pub_note" reporter:datatype="text"/>
+			<field reporter:label="Private Note" name="priv_note" reporter:datatype="text"/>
+			<field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="vqbr"/>
@@ -211,33 +193,30 @@
 
 	<class id="viiad" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::import_item_attr_definition" oils_persist:tablename="vandelay.import_item_attr_definition" reporter:label="Import Item Attribute Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.import_item_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Tag" name="tag" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Keep" name="keep" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Call Number" name="call_number" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Status" name="status" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Shelving Location" name="location" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulate" name="circulate" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Deposit" name="deposit" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Deposit Amount" name="deposit_amount" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Reference" name="ref" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Holdable" name="holdable" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Price" name="price" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Barcode" name="barcode" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulate As MARC Type" name="circ_as_type" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Alert Message" name="alert_message" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Public Note" name="pub_note" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Private Note" name="priv_note" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Copy Number" name="copy_number" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Tag" name="tag" reporter:datatype="text"/>
+			<field reporter:label="Keep" name="keep" reporter:datatype="bool"/>
+			<field reporter:label="Owning Library" name="owning_lib" reporter:datatype="text"/>
+			<field reporter:label="Circulating Library" name="circ_lib" reporter:datatype="text"/>
+			<field reporter:label="Call Number" name="call_number" reporter:datatype="text"/>
+			<field reporter:label="Status" name="status" reporter:datatype="text"/>
+			<field reporter:label="Shelving Location" name="location" reporter:datatype="text"/>
+			<field reporter:label="Circulate" name="circulate" reporter:datatype="text"/>
+			<field reporter:label="Deposit" name="deposit" reporter:datatype="text"/>
+			<field reporter:label="Deposit Amount" name="deposit_amount" reporter:datatype="text"/>
+			<field reporter:label="Reference" name="ref" reporter:datatype="text"/>
+			<field reporter:label="Holdable" name="holdable" reporter:datatype="text"/>
+			<field reporter:label="Price" name="price" reporter:datatype="text"/>
+			<field reporter:label="Barcode" name="barcode" reporter:datatype="text"/>
+			<field reporter:label="Circulation Modifier" name="circ_modifier" reporter:datatype="text"/>
+			<field reporter:label="Circulate As MARC Type" name="circ_as_type" reporter:datatype="text"/>
+			<field reporter:label="Alert Message" name="alert_message" reporter:datatype="text"/>
+			<field reporter:label="Public Note" name="pub_note" reporter:datatype="text"/>
+			<field reporter:label="Private Note" name="priv_note" reporter:datatype="text"/>
+			<field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="text"/>
+			<field reporter:label="Copy Number" name="copy_number" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -254,17 +233,16 @@
 
 	<class id="vbq" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::bib_queue" oils_persist:tablename="vandelay.bib_queue" reporter:label="Import/Overlay Bib Queue">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queue_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Queue ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Complete" name="complete" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Type" name="queue_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Queue ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Complete" name="complete" reporter:datatype="bool"/>
+			<field reporter:label="Type" name="queue_type" reporter:datatype="text"/>
+			<field reporter:label="Item Import Attribute Definition" name="item_attr_def" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="item_attr_def" reltype="has_a" key="id" map="" class="viiad"/>
 		</links>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
@@ -278,19 +256,16 @@
 
 	<class id="vqbr" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::queued_bib_record" oils_persist:tablename="vandelay.queued_bib_record" reporter:label="Queued Bib Record">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_record_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Create Time" name="create_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Import Time" name="import_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="MARC" name="marc" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Queue" name="queue" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Bib Source" name="bib_source" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Final Target Record" name="imported_as" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Purpose" name="purpose" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Attributes" name="attributes" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="text"/>
-			<field reporter:label="Matches" name="matches" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Record ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Create Time" name="create_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Import Time" name="import_time" reporter:datatype="timestamp"/>
+			<field reporter:label="MARC" name="marc" reporter:datatype="text"/>
+			<field reporter:label="Queue" name="queue" reporter:datatype="link"/>
+			<field reporter:label="Bib Source" name="bib_source" reporter:datatype="link"/>
+			<field reporter:label="Final Target Record" name="imported_as" reporter:datatype="link"/>
+			<field reporter:label="Purpose" name="purpose" reporter:datatype="text"/>
+			<field reporter:label="Attributes" name="attributes" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Matches" name="matches" oils_persist:virtual="true" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="queue" reltype="has_a" key="id" map="" class="vbq"/>
@@ -311,15 +286,12 @@
 
 	<class id="vqbrad" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::bib_attr_definition" oils_persist:tablename="vandelay.bib_attr_definition" reporter:label="Queued Bib Record Attribute Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.bib_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="XPath" name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Remove RegExp" name="remove" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Code" name="code" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="XPath" name="xpath" reporter:datatype="text"/>
+			<field reporter:label="Remove RegExp" name="remove" reporter:datatype="text"/>
+			<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
 		</fields>
 		<links/>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -337,13 +309,10 @@
 
 	<class id="vqbra" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::queued_bib_record_attr" oils_persist:tablename="vandelay.queued_bib_record_attr" reporter:label="Queued Bib Record Attribute">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_bib_record_attr_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Attribute ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Record" name="record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Field" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Value" name="attr_value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Attribute ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Record" name="record" reporter:datatype="link"/>
+			<field reporter:label="Field" name="field" reporter:datatype="link"/>
+			<field reporter:label="Value" name="attr_value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="vqbr"/>
@@ -361,14 +330,11 @@
 
 	<class id="vbm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::bib_match" oils_persist:tablename="vandelay.bib_match" reporter:label="Queued Bib Record Match">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.bib_match_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Match ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Queued Record" name="queued_record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Matched Attribute" name="matched_attr" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Evergreen Record" name="eg_record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Field Type" name="field_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Match ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Queued Record" name="queued_record" reporter:datatype="link"/>
+			<field reporter:label="Matched Attribute" name="matched_attr" reporter:datatype="link"/>
+			<field reporter:label="Evergreen Record" name="eg_record" reporter:datatype="link"/>
+			<field reporter:label="Field Type" name="field_type" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="queued_record" reltype="has_a" key="id" map="" class="vqbr"/>
@@ -387,14 +353,11 @@
 
 	<class id="vaq" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::authority_queue" oils_persist:tablename="vandelay.authority_queue" reporter:label="Import/Overlay Authority Queue">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queue_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Queue ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Complete" name="complete" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Type" name="queue_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Queue ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Complete" name="complete" reporter:datatype="bool"/>
+			<field reporter:label="Type" name="queue_type" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -411,18 +374,15 @@
 
 	<class id="vqar" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::queued_authority_record" oils_persist:tablename="vandelay.queued_authority_record" reporter:label="Queued Authority Record">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_record_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Create Time" name="create_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Import Time" name="import_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="MARC" name="marc" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Queue" name="queue" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Final Target Record" name="imported_as" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Purpose" name="purpose" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Attributes" name="attributes" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="text"/>
-			<field reporter:label="Matches" name="matches" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Record ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Create Time" name="create_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Import Time" name="import_time" reporter:datatype="timestamp"/>
+			<field reporter:label="MARC" name="marc" reporter:datatype="text"/>
+			<field reporter:label="Queue" name="queue" reporter:datatype="link"/>
+			<field reporter:label="Final Target Record" name="imported_as" reporter:datatype="link"/>
+			<field reporter:label="Purpose" name="purpose" reporter:datatype="text"/>
+			<field reporter:label="Attributes" name="attributes" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Matches" name="matches" oils_persist:virtual="true" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="queue" reltype="has_a" key="id" map="" class="vaq"/>
@@ -442,15 +402,12 @@
 
 	<class id="vqarad" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::authority_attr_definition" oils_persist:tablename="vandelay.authority_attr_definition" reporter:label="Queued Authority Record Attribute Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.authority_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="XPath" name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Remove RegExp" name="remove" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Code" name="code" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="XPath" name="xpath" reporter:datatype="text"/>
+			<field reporter:label="Remove RegExp" name="remove" reporter:datatype="text"/>
+			<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
 		</fields>
 		<links/>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -468,13 +425,10 @@
 
 	<class id="vqara" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::queued_authority_record_attr" oils_persist:tablename="vandelay.queued_authority_record_attr" reporter:label="Queued Authority Record Attribute">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_authority_record_attr_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Attribute ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Record" name="record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Field" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Value" name="attr_value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Attribute ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Record" name="record" reporter:datatype="link"/>
+			<field reporter:label="Field" name="field" reporter:datatype="link"/>
+			<field reporter:label="Value" name="attr_value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="vaqr"/>
@@ -492,13 +446,10 @@
 
 	<class id="vam" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::authority_match" oils_persist:tablename="vandelay.authority_match" reporter:label="Queued Authority Record Match">
 		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.authority_match_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Match ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Queued Record" name="queued_record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Matched Attribute" name="matched_attr" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Evergreen Record" name="eg_record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Match ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Queued Record" name="queued_record" reporter:datatype="link"/>
+			<field reporter:label="Matched Attribute" name="matched_attr" reporter:datatype="link"/>
+			<field reporter:label="Evergreen Record" name="eg_record" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="queued_record" reltype="has_a" key="id" map="" class="vqbr"/>
@@ -518,15 +469,12 @@
 
 	<class id="auoi" controller="open-ils.cstore" oils_obj:fieldmapper="actor::usr_org_unit_opt_in" oils_persist:tablename="actor.usr_org_unit_opt_in" reporter:label="User Sharing Opt-in">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.usr_org_unit_opt_in_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Opt-in ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Workstation" name="opt_in_ws" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Staff Member" name="staff" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="User" name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Allowed Org Unit" name="org_unit" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Opt-in Date/Time" name="opt_in_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
+			<field reporter:label="Opt-in ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Workstation" name="opt_in_ws" reporter:datatype="link"/>
+			<field reporter:label="Staff Member" name="staff" reporter:datatype="link"/>
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Allowed Org Unit" name="org_unit" reporter:datatype="link"/>
+			<field reporter:label="Opt-in Date/Time" name="opt_in_ts" reporter:datatype="timestamp"/>
 		</fields>
 		<links>
 			<link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
@@ -538,18 +486,15 @@
 
     <class id="czs" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::z3950_source" oils_persist:tablename="config.z3950_source" reporter:label="Z39.50 Source">
         <fields oils_persist:primary="name">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Z39.50 Source" name="name" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-            <field reporter:label="Label" name="label" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-            <field reporter:label="Host" name="host" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text"/>
-            <field reporter:label="Port" name="port" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="int"/>
-            <field reporter:label="DB" name="db" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="text"/>
-            <field reporter:label="Record Format" name="record_format" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="text"/>
-            <field reporter:label="Transmission Format" name="transmission_format" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
-            <field reporter:label="Auth" name="auth" oils_obj:array_position="10" oils_persist:virtual="false"  reporter:datatype="bool"/>
-            <field reporter:label="Attrs" name="attrs" oils_obj:array_position="11" oils_persist:virtual="true"  reporter:datatype="link"/>
+            <field reporter:label="Z39.50 Source" name="name" reporter:datatype="id"/>
+            <field reporter:label="Label" name="label" reporter:datatype="text" oils_persist:i18n="true"/>
+            <field reporter:label="Host" name="host"  reporter:datatype="text"/>
+            <field reporter:label="Port" name="port"  reporter:datatype="int"/>
+            <field reporter:label="DB" name="db"  reporter:datatype="text"/>
+            <field reporter:label="Record Format" name="record_format"  reporter:datatype="text"/>
+            <field reporter:label="Transmission Format" name="transmission_format"  reporter:datatype="text"/>
+            <field reporter:label="Auth" name="auth"  reporter:datatype="bool"/>
+            <field reporter:label="Attrs" name="attrs" oils_persist:virtual="true"  reporter:datatype="link"/>
         </fields>
         <links>
             <link field="attrs" reltype="has_many" key="source" map="" class="cza"/>
@@ -566,121 +511,121 @@
 
     <class id="cza" controller="open-ils.cstore" oils_obj:fieldmapper="config::z3950_attr" oils_persist:tablename="config.z3950_attr" reporter:label="Z39.50 Attribute">
         <fields oils_persist:primary="id" oils_persist:sequence="config.z3950_attr_id_seq">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Z39.50 Attr ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-            <field reporter:label="Z39.50 Source" name="source" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Label" name="label" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-            <field reporter:label="Code" name="code" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="int"/>
-            <field reporter:label="Format" name="format" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="int"/>
-            <field reporter:label="Truncation" name="truncation" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="int"/>
+            <field reporter:label="Z39.50 Attribute ID" name="id" reporter:datatype="id"/>
+            <field reporter:label="Z39.50 Source" name="source" reporter:datatype="link"/>
+            <field reporter:label="Name" name="name" reporter:datatype="text"/>
+            <field reporter:label="Label" name="label" reporter:datatype="text" oils_persist:i18n="true"/>
+            <field reporter:label="Code" name="code"  reporter:datatype="int"/>
+            <field reporter:label="Format" name="format"  reporter:datatype="int"/>
+            <field reporter:label="Truncation" name="truncation"  reporter:datatype="int"/>
         </fields>
         <links>
             <link field="source" reltype="has_a" key="name" map="" class="czs"/>
         </links>
     </class>
 
-	<class id="ath" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::hook" oils_persist:tablename="action_trigger.hook" reporter:label="Trigger hook point">
+	<class id="ateo" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::event_output" oils_persist:tablename="action_trigger.event_output" reporter:label="Event Output">
+		<fields oils_persist:primary="id" oils_persist:sequence="action_trigger.event_output_id_seq">
+			<field reporter:label="Output ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Create Date/Time" name="create_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Data" name="data" reporter:datatype="text"/>
+			<field reporter:label="Is Error" name="is_error" reporter:datatype="bool"/>
+			<field reporter:label="Events" name="events" oils_persist:virtual="true"  reporter:datatype="link"/>
+			<field reporter:label="Events" name="error_events" oils_persist:virtual="true"  reporter:datatype="link"/>
+		</fields>
+		<links>
+            <link field="events" reltype="has_many" key="template_output" map="" class="atev"/>
+            <link field="error_events" reltype="has_many" key="error_output" map="" class="atev"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<retrieve/>
+				<delete permission="ADMIN_TRIGGER_TEMPLATE_OUTPUT DELETE_TRIGGER_TEMPLATE_OUTPUT" global_required="true"/>
+			</actions>
+		</permacrud>
+	</class>
+
+	<class id="ath" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::hook" oils_persist:tablename="action_trigger.hook" reporter:label="Trigger Hook Point">
 		<fields oils_persist:primary="key">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Hook Key" name="key" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Core Type" name="core_type" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Passive" name="passive" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="bool"/>
+			<field reporter:label="Hook Key" name="key" reporter:datatype="text"/>
+			<field reporter:label="Core Type" name="core_type" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Passive" name="passive"  reporter:datatype="bool"/>
 		</fields>
 		<links/>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_TRIGGER_HOOK" global_required="true"/>
+				<create permission="ADMIN_TRIGGER_HOOK CREATE_TRIGGER_HOOK" global_required="true"/>
 				<retrieve/>
-				<update permission="ADMIN_TRIGGER_HOOK" global_required="true"/>
-				<delete permission="ADMIN_TRIGGER_HOOK" global_required="true"/>
+				<update permission="ADMIN_TRIGGER_HOOK UPDATE_TRIGGER_HOOK" global_required="true"/>
+				<delete permission="ADMIN_TRIGGER_HOOK DELETE_TRIGGER_HOOK" global_required="true"/>
 			</actions>
 		</permacrud>
 	</class>
 
-	<class id="atcol" controller="open-ils.cstore" oils_obj:fieldmapper="action_trigger::collector" oils_persist:tablename="action_trigger.collector" reporter:label="Trigger Evironment Collector">
+	<class id="atcol" controller="open-ils.cstore" oils_obj:fieldmapper="action_trigger::collector" oils_persist:tablename="action_trigger.collector" reporter:label="Trigger Environment Collector">
 		<fields oils_persist:primary="module">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Module Name" name="module" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
 	</class>
 
 	<class id="atval" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::validator" oils_persist:tablename="action_trigger.validator" reporter:label="Trigger Condition Validator">
 		<fields oils_persist:primary="module">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Module Name" name="module" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_TRIGGER_VALIDATOR" global_required="true"/>
+				<create permission="ADMIN_TRIGGER_VALIDATOR CREATE_TRIGGER_VALIDATOR" global_required="true"/>
 				<retrieve/>
-				<update permission="ADMIN_TRIGGER_VALIDATOR" global_required="true"/>
-				<delete permission="ADMIN_TRIGGER_VALIDATOR" global_required="true"/>
+				<update permission="ADMIN_TRIGGER_VALIDATOR UPDATE_TRIGGER_VALIDATOR" global_required="true"/>
+				<delete permission="ADMIN_TRIGGER_VALIDATOR DELETE_TRIGGER_VALIDATOR" global_required="true"/>
 			</actions>
 		</permacrud>
 	</class>
 
 	<class id="atreact" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::reactor" oils_persist:tablename="action_trigger.reactor" reporter:label="Trigger Event Reactor">
 		<fields oils_persist:primary="module">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Module Name" name="module" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_TRIGGER_REACTOR" global_required="true"/>
+				<create permission="ADMIN_TRIGGER_REACTOR CREATE_TRIGGER_REACTOR" global_required="true"/>
 				<retrieve/>
-				<update permission="ADMIN_TRIGGER_REACTOR" global_required="true"/>
-				<delete permission="ADMIN_TRIGGER_REACTOR" global_required="true"/>
+				<update permission="ADMIN_TRIGGER_REACTOR UPDATE_TRIGGER_REACTOR" global_required="true"/>
+				<delete permission="ADMIN_TRIGGER_REACTOR DELETE_TRIGGER_REACTOR" global_required="true"/>
 			</actions>
 		</permacrud>
 	</class>
 
 	<class id="atclean" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::cleanup" oils_persist:tablename="action_trigger.cleanup" reporter:label="Trigger Event Cleanup">
 		<fields oils_persist:primary="module">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Module Name" name="module" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_TRIGGER_CLEANUP" global_required="true"/>
+				<create permission="ADMIN_TRIGGER_CLEANUP CREATE_TRIGGER_CLEANUP" global_required="true"/>
 				<retrieve/>
-				<update permission="ADMIN_TRIGGER_CLEANUP" global_required="true"/>
-				<delete permission="ADMIN_TRIGGER_CLEANUP" global_required="true"/>
+				<update permission="ADMIN_TRIGGER_CLEANUP UPDATE_TRIGGER_CLEANUP" global_required="true"/>
+				<delete permission="ADMIN_TRIGGER_CLEANUP DELETE_TRIGGER_CLEANUP" global_required="true"/>
 			</actions>
 		</permacrud>
 	</class>
 
 	<class id="atenv" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::environment" oils_persist:tablename="action_trigger.environment" reporter:label="Trigger Event Environment Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="action_trigger.environment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Event Definition" name="event_def" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Field Path" name="path" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Collector" name="collector" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Label" name="label" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Event Definition" name="event_def" reporter:datatype="link"/>
+			<field reporter:label="Field Path" name="path" reporter:datatype="text"/>
+			<field reporter:label="Collector" name="collector" reporter:datatype="link"/>
+			<field reporter:label="Label" name="label" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="event_def" reltype="has_a" key="id" map="" class="atevdef"/>
@@ -688,16 +633,16 @@
 		</links>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_TRIGGER_EVENT_DEF">
+				<create permission="ADMIN_TRIGGER_EVENT_DEF CREATE_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </create>
-				<retrieve permission="ADMIN_TRIGGER_EVENT_DEF">
+				<retrieve permission="ADMIN_TRIGGER_EVENT_DEF VIEW_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </retrieve>
-				<update permission="ADMIN_TRIGGER_EVENT_DEF">
+				<update permission="ADMIN_TRIGGER_EVENT_DEF UPDATE_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </update>
-				<delete permission="ADMIN_TRIGGER_EVENT_DEF">
+				<delete permission="ADMIN_TRIGGER_EVENT_DEF DELETE_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </delete>
 			</actions>
@@ -706,23 +651,22 @@
 
 	<class id="atevdef" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::event_definition" oils_persist:tablename="action_trigger.event_definition" reporter:label="Trigger Event Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="action_trigger.event_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Active" name="active" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Owning Library" name="owner" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Hook" name="hook" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="link"/>
-			<field reporter:label="Validator" name="validator" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="link"/>
-			<field reporter:label="Reactor" name="reactor" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="link"/>
-			<field reporter:label="Success Cleanup" name="cleanup_success" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="link"/>
-			<field reporter:label="Failure Cleanup" name="cleanup_failure" oils_obj:array_position="10" oils_persist:virtual="false"  reporter:datatype="link"/>
-			<field reporter:label="Processing Delay" name="delay" oils_obj:array_position="11" oils_persist:virtual="false"  reporter:datatype="interval"/>
-			<field reporter:label="Processing Delay Context Field" name="delay_field" oils_obj:array_position="12" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Processing Group Context Field" name="group_field" oils_obj:array_position="13" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Template" name="template" oils_obj:array_position="14" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Environmet Entries" name="env" oils_obj:array_position="15" oils_persist:virtual="true"  reporter:datatype="link"/>
-			<field reporter:label="Parameters" name="params" oils_obj:array_position="16" oils_persist:virtual="true"  reporter:datatype="link"/>
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Enabled" name="active" reporter:datatype="bool"/>
+			<field reporter:label="Owning Library" name="owner"  reporter:datatype="org_unit"/>
+			<field reporter:label="Hook" name="hook"  reporter:datatype="link"/>
+			<field reporter:label="Validator" name="validator"  reporter:datatype="link"/>
+			<field reporter:label="Reactor" name="reactor"  reporter:datatype="link"/>
+			<field reporter:label="Success Cleanup" name="cleanup_success"  reporter:datatype="link"/>
+			<field reporter:label="Failure Cleanup" name="cleanup_failure"  reporter:datatype="link"/>
+			<field reporter:label="Processing Delay" name="delay"  reporter:datatype="interval"/>
+			<field reporter:label="Max Event Validity Delay" name="max_delay"  reporter:datatype="interval"/>
+			<field reporter:label="Processing Delay Context Field" name="delay_field"  reporter:datatype="text"/>
+			<field reporter:label="Processing Group Context Field" name="group_field"  reporter:datatype="text"/>
+			<field reporter:label="Template" name="template"  reporter:datatype="text"/>
+			<field reporter:label="Name" name="name"  reporter:datatype="text"/>
+			<field reporter:label="Environmet Entries" name="env" oils_persist:virtual="true"  reporter:datatype="link"/>
+			<field reporter:label="Parameters" name="params" oils_persist:virtual="true"  reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -736,62 +680,58 @@
 		</links>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_TRIGGER_EVENT_DEF" context_field="owner"/>
-				<retrieve permission="ADMIN_TRIGGER_EVENT_DEF" context_field="owner"/>
-				<update permission="ADMIN_TRIGGER_EVENT_DEF" context_field="owner"/>
-				<delete permission="ADMIN_TRIGGER_EVENT_DEF" context_field="owner"/>
+				<create permission="ADMIN_TRIGGER_EVENT_DEF CREATE_TRIGGER_EVENT_DEF" context_field="owner"/>
+				<retrieve permission="ADMIN_TRIGGER_EVENT_DEF VIEW_TRIGGER_EVENT_DEF" context_field="owner"/>
+				<update permission="ADMIN_TRIGGER_EVENT_DEF UPDATE_TRIGGER_EVENT_DEF" context_field="owner"/>
+				<delete permission="ADMIN_TRIGGER_EVENT_DEF DELETE_TRIGGER_EVENT_DEF" context_field="owner"/>
 			</actions>
 		</permacrud>
 	</class>
 
 	<class id="atev" controller="open-ils.cstore" oils_obj:fieldmapper="action_trigger::event" oils_persist:tablename="action_trigger.event" reporter:label="Trigger Event Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="action_trigger.event_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Event ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Target ID" name="target" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Event Definition" name="event_def" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Add Time" name="add_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Run Time" name="run_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Start Time" name="start_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Update Time" name="update_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Complete Time" name="complete_time" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="State" name="state" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Template Output" name="template_output" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Error Output" name="error_output" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Update Process" name="update_process" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="int"/>
+			<field reporter:label="Event ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Target ID" name="target" reporter:datatype="int"/>
+			<field reporter:label="Event Definition" name="event_def" reporter:datatype="link"/>
+			<field reporter:label="Add Time" name="add_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Run Time" name="run_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Start Time" name="start_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Update Time" name="update_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Complete Time" name="complete_time" reporter:datatype="timestamp"/>
+			<field reporter:label="State" name="state" reporter:datatype="text"/>
+			<field reporter:label="Template Output" name="template_output" reporter:datatype="link"/>
+			<field reporter:label="Error Output" name="error_output" reporter:datatype="text"/>
+			<field reporter:label="Update Process" name="update_process" reporter:datatype="int"/>
 		</fields>
 		<links>
 			<link field="event_def" reltype="has_a" key="id" map="" class="atevdef"/>
+			<link field="template_output" reltype="has_a" key="id" map="" class="ateo"/>
+			<link field="error_output" reltype="has_a" key="id" map="" class="ateo"/>
 		</links>
 	</class>
 
 	<class id="atevparam" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::event_param" oils_persist:tablename="action_trigger.event_params" reporter:label="Trigger Event Parameter">
-		<fields oils_persist:primary="id" oils_persist:sequence="action_trigger.environment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Event ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Event Definition" name="event_def" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Parameter Name" name="param" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Parameter Value" name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+		<fields oils_persist:primary="id" oils_persist:sequence="action_trigger.event_params_id_seq">
+			<field reporter:label="Event ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Event Definition" name="event_def" reporter:datatype="link"/>
+			<field reporter:label="Parameter Name" name="param" reporter:datatype="text"/>
+			<field reporter:label="Parameter Value" name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="event_def" reltype="has_a" key="id" map="" class="atevdef"/>
 		</links>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_TRIGGER_EVENT_DEF">
+				<create permission="ADMIN_TRIGGER_EVENT_DEF CREATE_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </create>
-				<retrieve permission="ADMIN_TRIGGER_EVENT_DEF">
+				<retrieve permission="ADMIN_TRIGGER_EVENT_DEF VIEW_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </retrieve>
-				<update permission="ADMIN_TRIGGER_EVENT_DEF">
+				<update permission="ADMIN_TRIGGER_EVENT_DEF UPDATE_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </update>
-				<delete permission="ADMIN_TRIGGER_EVENT_DEF">
+				<delete permission="ADMIN_TRIGGER_EVENT_DEF DELETE_TRIGGER_EVENT_DEF">
                     <context link="event_def" field="owner"/>
                 </delete>
 			</actions>
@@ -800,12 +740,9 @@
 
 	<class id="aws" controller="open-ils.cstore" oils_obj:fieldmapper="actor::workstation" oils_persist:tablename="actor.workstation" reporter:label="Workstation">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.workstation_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Workstation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Workstation Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
+			<field reporter:label="Workstation ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Workstation Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Owning Library" name="owning_lib"  reporter:datatype="org_unit"/>
 		</fields>
 		<links>
 			<link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
@@ -814,14 +751,11 @@
 
 	<class id="ccm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::circ_modifier" oils_persist:tablename="config.circ_modifier" reporter:label="Circulation Modifier">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="SIP2 Media Type" name="sip2_media_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Magnetic Media" name="magnetic_media" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Code" name="code" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="SIP2 Media Type" name="sip2_media_type" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Magnetic Media" name="magnetic_media" reporter:datatype="bool"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -836,11 +770,8 @@
 
 	<class id="ccpbt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="container::copy_bucket_type" oils_persist:tablename="container.copy_bucket_type" reporter:label="Copy Bucket Type" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Label" name="label" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Code" name="code" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Label" name="label" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -855,11 +786,8 @@
 
 	<class id="ccnbt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="container::call_number_bucket_type" oils_persist:tablename="container.call_number_bucket_type" reporter:label="Call Number Bucket Type" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Label" name="label" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Code" name="code" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Label" name="label" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -874,11 +802,8 @@
 
 	<class id="cbrebt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="container::biblio_record_entry_bucket_type" oils_persist:tablename="container.biblio_record_entry_bucket_type" reporter:label="Bibliographic Record Bucket Type" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Label" name="label" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Code" name="code" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Label" name="label" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -893,11 +818,8 @@
 
 	<class id="cubt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="container::user_bucket_type" oils_persist:tablename="container.user_bucket_type" reporter:label="User Bucket Type" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Label" name="label" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Code" name="code" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Label" name="label" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -912,11 +834,8 @@
 
 	<class id="cvrfm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::videorecording_format_map" oils_persist:tablename="config.videorecording_format_map" reporter:label="Videorecording Format" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="id"/>
-			<field reporter:label="Format" name="value" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Code" name="code" reporter:selector="value" reporter:datatype="id"/>
+			<field reporter:label="Format" name="value" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -931,29 +850,26 @@
 
 	<class id="chmm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::hold_matrix_matchpoint" oils_persist:tablename="config.hold_matrix_matchpoint" reporter:label="Hold Matrix Matchpoint">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.hold_matrix_matchpoint_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Matchpoint ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Active?" name="active" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="User Home Library" name="user_home_ou" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Request Library" name="request_ou" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Pickup Library" name="pickup_ou" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Owning Library" name="item_owning_ou" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Item Circ Library" name="item_circ_ou" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="User Permission Group" name="usr_grp" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Requestor Permission Group" name="requestor_grp" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="12" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="MARC Type" name="marc_type" oils_obj:array_position="13" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="MARC Form" name="marc_form" oils_obj:array_position="14" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="Videorecording Format" name="marc_vr_format" oils_obj:array_position="15" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="Reference?" name="ref_flag" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Holdable?" name="holdable" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Range is from Owning Lib?" name="distance_is_from_owner" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Transit Range" name="transit_range" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Max Holds" name="max_holds" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Max includes Frozen" name="include_frozen_holds" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Copy Age Hold Protection Rule" name="age_hold_protect_rule" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Matchpoint ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Active?" name="active" reporter:datatype="bool"/>
+			<field reporter:label="User Home Library" name="user_home_ou" reporter:datatype="org_unit"/>
+			<field reporter:label="Request Library" name="request_ou" reporter:datatype="org_unit"/>
+			<field reporter:label="Pickup Library" name="pickup_ou" reporter:datatype="org_unit"/>
+			<field reporter:label="Owning Library" name="item_owning_ou" reporter:datatype="org_unit"/>
+			<field reporter:label="Item Circ Library" name="item_circ_ou" reporter:datatype="org_unit"/>
+			<field reporter:label="User Permission Group" name="usr_grp" reporter:datatype="link"/>
+			<field reporter:label="Requestor Permission Group" name="requestor_grp" reporter:datatype="link"/>
+			<field reporter:label="Circulation Modifier" name="circ_modifier" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="MARC Type" name="marc_type" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="MARC Form" name="marc_form" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="Videorecording Format" name="marc_vr_format" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="Reference?" name="ref_flag" reporter:datatype="bool"/>
+			<field reporter:label="Holdable?" name="holdable" reporter:datatype="bool"/>
+			<field reporter:label="Range is from Owning Lib?" name="distance_is_from_owner" reporter:datatype="bool"/>
+			<field reporter:label="Transit Range" name="transit_range" reporter:datatype="link"/>
+			<field reporter:label="Max Holds" name="max_holds" reporter:datatype="int"/>
+			<field reporter:label="Max includes Frozen" name="include_frozen_holds" reporter:datatype="bool"/>
+			<field reporter:label="Copy Age Hold Protection Rule" name="age_hold_protect_rule" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="user_home_ou" reltype="has_a" key="id" map="" class="aou"/>
@@ -968,6 +884,7 @@
 			<link field="marc_form" reltype="has_a" key="code" map="" class="cifm"/>
 			<link field="marc_vr_format" reltype="has_a" key="code" map="" class="cvrfm"/>
 			<link field="age_hold_protect_rule" reltype="has_a" key="id" map="" class="crahp"/>
+            <link field="transit_range" reltype="has_a" key="id" map="" class="aout"/>
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
@@ -981,25 +898,22 @@
 
 	<class id="ccmm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::circ_matrix_matchpoint" oils_persist:tablename="config.circ_matrix_matchpoint" reporter:label="Circulation Matrix Matchpoint">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.circ_matrix_matchpoint_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Matchpoint ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Active?" name="active" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Org Unit" name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Permission Group" name="grp" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="7" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="MARC Type" name="marc_type" oils_obj:array_position="8" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="MARC Form" name="marc_form" oils_obj:array_position="9" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="Videorecording Format" name="marc_vr_format" oils_obj:array_position="10" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
-			<field reporter:label="Reference?" name="ref_flag" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="User Age: Lower Bound" name="usr_age_lower_bound" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User Age: Upper Bound" name="usr_age_upper_bound" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulate?" name="circulate" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Duration Rule" name="duration_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Recurring Fine Rule" name="recurring_fine_rule" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Script Test" name="script_test" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Matchpoint ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Active?" name="active" reporter:datatype="bool"/>
+			<field reporter:label="Org Unit" name="org_unit" reporter:datatype="org_unit"/>
+			<field reporter:label="Permission Group" name="grp" reporter:datatype="link"/>
+			<field reporter:label="Circulation Modifier" name="circ_modifier" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="MARC Type" name="marc_type" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="MARC Form" name="marc_form" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="Videorecording Format" name="marc_vr_format" oils_persist:primitive="string" reporter:datatype="link"/>
+			<field reporter:label="Reference?" name="ref_flag" reporter:datatype="bool"/>
+			<field reporter:label="User Age: Lower Bound" name="usr_age_lower_bound" reporter:datatype="text"/>
+			<field reporter:label="User Age: Upper Bound" name="usr_age_upper_bound" reporter:datatype="text"/>
+			<field reporter:label="Circulate?" name="circulate" reporter:datatype="bool"/>
+			<field reporter:label="Duration Rule" name="duration_rule" reporter:datatype="link"/>
+			<field reporter:label="Recurring Fine Rule" name="recurring_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="Max Fine Rule" name="max_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="Script Test" name="script_test" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
@@ -1022,29 +936,61 @@
         </permacrud>
 	</class>
 
-	<class id="ccmcmt" controller="open-ils.cstore" oils_obj:fieldmapper="config::circ_matrix_circ_mod_test" oils_persist:tablename="config.circ_matrix_circ_mod_test" reporter:label="Circulation Matrix Circulation Modifier Subtest">
+	<class id="ccmcmt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::circ_matrix_circ_mod_test" oils_persist:tablename="config.circ_matrix_circ_mod_test" reporter:label="Circulation Matrix Circulation Modifier Subtest">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.circ_matrix_circ_mod_test_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Test ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Matchpoint ID" name="matchpoint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Items Out" name="items_out" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Circulation Modifier" name="circ_mod" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Test ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Matchpoint ID" name="matchpoint" reporter:datatype="link"/>
+			<field reporter:label="Items Out" name="items_out" reporter:datatype="int"/>
 		</fields>
 		<links>
 			<link field="matchpoint" reltype="has_a" key="id" map="" class="ccmm"/>
+		</links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="matchpoint" field="org_unit"/>
+                </create>
+                <retrieve/>
+                <update permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="matchpoint" field="org_unit"/>
+                </update>
+                <delete permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="matchpoint" field="org_unit"/>
+                </delete>
+            </actions>
+        </permacrud>
+	</class>
+
+	<class id="ccmcmtm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::circ_matrix_circ_mod_test_map" oils_persist:tablename="config.circ_matrix_circ_mod_test_map" reporter:label="Circulation Matrix Circulation Modifier Subtest Circulation Modifier Set">
+		<fields oils_persist:primary="id" oils_persist:sequence="config.circ_matrix_circ_mod_test_map_id_seq">
+			<field reporter:label="Entry ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Circulation Modifier Subtest ID" name="circ_mod_test" reporter:datatype="link"/>
+			<field reporter:label="Circulation Modifier" name="circ_mod" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="circ_mod_test" reltype="has_a" key="id" map="" class="ccmcmt"/>
 			<link field="circ_mod" reltype="has_a" key="code" map="" class="ccm"/>
 		</links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="circ_mod_test" jump="matchpoint" field="org_unit"/>
+                </create>
+                <retrieve/>
+                <update permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="circ_mod_test" jump="matchpoint" field="org_unit"/>
+                </update>
+                <delete permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="circ_mod_test" jump="matchpoint" field="org_unit"/>
+                </delete>
+            </actions>
+        </permacrud>
 	</class>
 
 	<class id="cit" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::identification_type" oils_persist:tablename="config.identification_type" reporter:label="Identification Type">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.identification_type_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Identification ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Identification Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Identification ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Identification Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1059,14 +1005,11 @@
 
 	<class id="asvq" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::survey_question" oils_persist:tablename="action.survey_question" reporter:label="User Survey Question">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.survey_question_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Answers" name="answers" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Responses" name="responses" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Question ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Question" name="question" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Survey" name="survey" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Answers" name="answers" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Responses" name="responses" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Question ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Question" name="question" reporter:datatype="text"/>
+			<field reporter:label="Survey" name="survey" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="survey" reltype="has_a" key="id" map="" class="asv"/>
@@ -1090,23 +1033,20 @@
 	</class>
 	<class id="mbts" controller="open-ils.cstore" oils_obj:fieldmapper="money::billable_transaction_summary" oils_persist:tablename="money.materialized_billable_xact_summary" reporter:label="Billable Transaction Summary" oils_persist:readonly="true">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Balance Owed" name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Transaction ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Last Billing Note" name="last_billing_note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Last Billing Timestamp" name="last_billing_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Billing Type" name="last_billing_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Last Payment Note" name="last_payment_note" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Last Payment Timestamp" name="last_payment_ts" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Payment Type" name="last_payment_type" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Total Owed" name="total_owed" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Total Paid" name="total_paid" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Billed User" name="usr" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transaction Finish Time" name="xact_finish" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Transaction Start Time" name="xact_start" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Transaction Type" name="xact_type" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Balance Owed" name="balance_owed" reporter:datatype="money"/>
+			<field reporter:label="Transaction ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Last Billing Note" name="last_billing_note" reporter:datatype="text"/>
+			<field reporter:label="Last Billing Timestamp" name="last_billing_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Billing Type" name="last_billing_type" reporter:datatype="text"/>
+			<field reporter:label="Last Payment Note" name="last_payment_note" reporter:datatype="text"/>
+			<field reporter:label="Last Payment Timestamp" name="last_payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Payment Type" name="last_payment_type" reporter:datatype="text"/>
+			<field reporter:label="Total Owed" name="total_owed" reporter:datatype="money"/>
+			<field reporter:label="Total Paid" name="total_paid" reporter:datatype="money"/>
+			<field reporter:label="Billed User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Transaction Finish Time" name="xact_finish" reporter:datatype="timestamp" />
+			<field reporter:label="Transaction Start Time" name="xact_start" reporter:datatype="timestamp" />
+			<field reporter:label="Transaction Type" name="xact_type" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -1114,45 +1054,48 @@
 	</class>
 	<class id="aun" controller="open-ils.cstore" oils_obj:fieldmapper="actor::usr_note" oils_persist:tablename="actor.usr_note" reporter:label="User Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.usr_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Creation Date/Time" name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Creating Staff" name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Note ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Is OPAC Visible?" name="pub" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Note Title" name="title" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User" name="usr" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Note Content" name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Creation Date/Time" name="create_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Creating Staff" name="creator" reporter:datatype="link"/>
+			<field reporter:label="Note ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Is OPAC Visible?" name="pub" reporter:datatype="bool"/>
+			<field reporter:label="Note Title" name="title" reporter:datatype="text"/>
+			<field reporter:label="User" name="usr" reporter:datatype="link" />
+			<field reporter:label="Note Content" name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
 		</links>
 	</class>
+	<class id="aupr" controller="open-ils.cstore" oils_obj:fieldmapper="actor::usr_password_reset" oils_persist:tablename="actor.usr_password_reset" reporter:label="User password reset requests">
+		<fields oils_persist:primary="id" oils_persist:sequence="actor.usr_password_reset_id_seq">
+			<field reporter:label="Request ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="UUID" name="uuid" reporter:datatype="text"/>
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Request Time" name="request_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Was Reset?" name="has_been_reset" reporter:datatype="bool"/>
+		</fields>
+		<links>
+			<link field="usr" reltype="has_a" key="id" class="au"/>
+		</links>
+	</class>
 	<class id="aus" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user_setting" oils_persist:tablename="actor.usr_setting" reporter:label="User Setting">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.usr_setting_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Setting ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User" name="usr" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Value" name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Setting ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Value" name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 		</links>
 	</class>
-	<class id="mafe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::author_field_entry" oils_persist:tablename="metabib.author_field_entry">
+	<class id="mafe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::author_field_entry" oils_persist:tablename="metabib.author_field_entry" reporter:label="Author Field Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.author_field_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="field" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="source" reporter:datatype="link"/>
+			<field name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="source" reltype="has_a" key="id" map="" class="bre"/>
@@ -1161,14 +1104,11 @@
 	</class>
 	<class id="aihu" controller="open-ils.cstore" oils_obj:fieldmapper="action::in_house_use" oils_persist:tablename="action.in_house_use" reporter:core="true" reporter:label="In House Use">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.in_house_use_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Use ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Item" name="item" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Using Library" name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Recording Staff" name="staff" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Use Date/Time" name="use_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
+			<field reporter:label="Use ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Item" name="item" reporter:datatype="int" />
+			<field reporter:label="Using Library" name="org_unit" reporter:datatype="org_unit"/>
+			<field reporter:label="Recording Staff" name="staff" reporter:datatype="link"/>
+			<field reporter:label="Use Date/Time" name="use_time" reporter:datatype="timestamp"/>
 		</fields>
 		<links>
 			<link field="item" reltype="has_a" key="id" map="" class="acp"/>
@@ -1178,14 +1118,11 @@
 	</class>
 	<class id="ancihu" controller="open-ils.cstore" oils_obj:fieldmapper="action::non_cat_in_house_use" oils_persist:tablename="action.non_cat_in_house_use" reporter:core="true" reporter:label="Non-cataloged In House Use">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.non_cat_in_house_use_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Use ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Item Type" name="item_type" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Using Library" name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Recording Staff" name="staff" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Use Date/Time" name="use_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
+			<field reporter:label="Use ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Item Type" name="item_type" reporter:datatype="link"/>
+			<field reporter:label="Using Library" name="org_unit" reporter:datatype="org_unit"/>
+			<field reporter:label="Recording Staff" name="staff" reporter:datatype="link"/>
+			<field reporter:label="Use Date/Time" name="use_time" reporter:datatype="timestamp"/>
 		</fields>
 		<links>
 			<link field="item_type" reltype="has_a" key="id" map="" class="cnct"/>
@@ -1195,19 +1132,16 @@
 	</class>
 	<class id="atc" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::transit_copy" oils_persist:tablename="action.transit_copy" reporter:core="true" reporter:label="Copy Transit">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.transit_copy_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Pretransit Copy Status" name="copy_status" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Destination" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Is Persistent? (unused)" name="persistant_transfer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Previous Hop (unused)" name="prev_hop" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Source" name="source" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transited Copy" name="target_copy" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Hold Transit" name="hold_transit_copy" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Pretransit Copy Status" name="copy_status" reporter:datatype="bool"/>
+			<field reporter:label="Destination" name="dest" reporter:datatype="link"/>
+			<field reporter:label="Receive Date/Time" name="dest_recv_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Transit ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Is Persistent? (unused)" name="persistant_transfer" reporter:datatype="bool"/>
+			<field reporter:label="Previous Hop (unused)" name="prev_hop" reporter:datatype="link"/>
+			<field reporter:label="Source" name="source" reporter:datatype="link"/>
+			<field reporter:label="Send Date/Time" name="source_send_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Transited Copy" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Hold Transit" name="hold_transit_copy" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="hold_transit_copy" reltype="might_have" key="id" map="" class="ahtc"/>
@@ -1229,17 +1163,14 @@
 	</class>
 	<class id="asvr" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::survey_response" oils_persist:tablename="action.survey_response" reporter:label="Survey Response">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.survey_response_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Answer" name="answer" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Answer Date/Time" name="answer_date" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Effective Answer Date/Time" name="effective_date" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Answer ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Question" name="question" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Response Group ID" name="response_group_id" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Survey" name="survey" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Responding User" name="usr" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Answer" name="answer" reporter:datatype="link"/>
+			<field reporter:label="Answer Date/Time" name="answer_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Effective Answer Date/Time" name="effective_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Answer ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Question" name="question" reporter:datatype="link"/>
+			<field reporter:label="Response Group ID" name="response_group_id" reporter:datatype="int" />
+			<field reporter:label="Survey" name="survey" reporter:datatype="link"/>
+			<field reporter:label="Responding User" name="usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="question" reltype="has_a" key="id" map="" class="asvq"/>
@@ -1262,17 +1193,14 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="ccbi" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket_item" oils_persist:tablename="container.copy_bucket_item">
+	<class id="ccbi" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket_item" oils_persist:tablename="container.copy_bucket_item" reporter:label="Copy Bucket Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.copy_bucket_item_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="target_copy" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="pos" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="notes" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link" />
+			<field name="bucket" />
+			<field name="id" reporter:datatype="id" />
+			<field name="target_copy" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp" />
+			<field name="pos" reporter:datatype="int" />
+			<field name="notes" oils_persist:virtual="true" reporter:datatype="link" />
 		</fields>
 		<links>
 			<link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
@@ -1280,38 +1208,32 @@
             <link field="notes" reltype="has_many" map="" key="item" class="ccbin"/>
 		</links>
 	</class>
-	<class id="ccbin" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket_item_note" oils_persist:tablename="container.copy_bucket_item_note">
+	<class id="ccbin" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket_item_note" oils_persist:tablename="container.copy_bucket_item_note" reporter:label="Copy Bucket Item Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.copy_bucket_item_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="item" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="item" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="item" reltype="has_a" key="id" map="" class="ccbi"/>
 		</links>
 	</class>
-	<class id="are" controller="open-ils.cstore" oils_obj:fieldmapper="authority::record_entry" oils_persist:tablename="authority.record_entry">
+	<class id="are" controller="open-ils.cstore" oils_obj:fieldmapper="authority::record_entry" oils_persist:tablename="authority.record_entry" reporter:label="Authority Record Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="authority.record_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="active" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="arn_source" oils_obj:array_position="4" oils_persist:virtual="false" />
-			<field name="arn_value" oils_obj:array_position="5" oils_persist:virtual="false" />
-			<field name="create_date" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="creator" oils_obj:array_position="7" oils_persist:virtual="false" />
-			<field name="deleted" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="edit_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="editor" oils_obj:array_position="10" oils_persist:virtual="false" />
-			<field name="id" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="last_xact_id" oils_obj:array_position="12" oils_persist:virtual="false" />
-			<field name="marc" oils_obj:array_position="13" oils_persist:virtual="false" />
-			<field name="source" oils_obj:array_position="14" oils_persist:virtual="false" />
-			<field name="fixed_fields" oils_obj:array_position="15" oils_persist:virtual="true" />
-			<field name="notes" oils_obj:array_position="16" oils_persist:virtual="true" />
+			<field name="active" reporter:datatype="bool"/>
+			<field name="arn_source" />
+			<field name="arn_value" />
+			<field name="create_date" reporter:datatype="timestamp"/>
+			<field name="creator" />
+			<field name="deleted" reporter:datatype="bool"/>
+			<field name="edit_date" reporter:datatype="timestamp"/>
+			<field name="editor" />
+			<field name="id" reporter:datatype="id" />
+			<field name="last_xact_id" />
+			<field name="marc" />
+			<field name="source" />
+			<field name="fixed_fields" oils_persist:virtual="true" />
+			<field name="notes" oils_persist:virtual="true" />
 		</fields>
 		<links>
 			<link field="editor" reltype="has_a" key="id" map="" class="au"/>
@@ -1320,15 +1242,12 @@
 			<link field="fixed_fields" reltype="might_have" key="record" map="" class="ard"/>
 		</links>
 	</class>
-	<class id="ard" controller="open-ils.cstore" oils_obj:fieldmapper="authority::record_descriptor" oils_persist:tablename="authority.rec_descriptor">
+	<class id="ard" controller="open-ils.cstore" oils_obj:fieldmapper="authority::record_descriptor" oils_persist:tablename="authority.rec_descriptor" reporter:label="Authority Record Descriptor">
 		<fields oils_persist:primary="id" oils_persist:sequence="authority.rec_descriptor_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="char_encoding" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" />
-			<field name="record" oils_obj:array_position="5" oils_persist:virtual="false" />
-			<field name="record_status" oils_obj:array_position="6" oils_persist:virtual="false" />
+			<field name="char_encoding" />
+			<field name="id" />
+			<field name="record" />
+			<field name="record_status" />
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="are"/>
@@ -1336,11 +1255,8 @@
 	</class>
 	<class id="clm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::language_map" oils_persist:tablename="config.language_map" reporter:label="Language Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Language Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="text"/>
-			<field reporter:label="Language" name="value" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Language Code" name="code" reporter:selector="value" reporter:datatype="text"/>
+			<field reporter:label="Language" name="value" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1352,26 +1268,23 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="mccp" controller="open-ils.cstore" oils_obj:fieldmapper="money::credit_card_payment" oils_persist:tablename="money.credit_card_payment">
+	<class id="mccp" controller="open-ils.cstore" oils_obj:fieldmapper="money::credit_card_payment" oils_persist:tablename="money.credit_card_payment" reporter:label="Credit Card Payment">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="approval_code" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="cash_drawer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="cc_number" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="cc_type" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="expire_month" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="expire_year" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="id" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="note" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="payment_ts" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="xact" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="payment_type" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="text"/>
-			<field name="payment" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="accepting_usr" />
+			<field name="amount" reporter:datatype="money" />
+			<field name="amount_collected" reporter:datatype="money" />
+			<field name="approval_code" reporter:datatype="text"/>
+			<field name="cash_drawer" reporter:datatype="link"/>
+			<field name="cc_number" reporter:datatype="text"/>
+			<field name="cc_type" reporter:datatype="text"/>
+			<field name="expire_month" reporter:datatype="int" />
+			<field name="expire_year" reporter:datatype="int" />
+			<field name="id" reporter:datatype="id" />
+			<field name="note" reporter:datatype="text"/>
+			<field name="payment_ts" reporter:datatype="timestamp"/>
+			<field name="xact" reporter:datatype="link"/>
+			<field name="payment_type" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field name="payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="payment" reltype="might_have" key="id" map="" class="mp"/>
@@ -1382,14 +1295,11 @@
 	</class>
 	<class id="cxt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::xml_transform" oils_persist:tablename="config.xml_transform" reporter:label="XML/XSLT Transform Definition">
 		<fields oils_persist:primary="name">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="field_class" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field reporter:label="Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Namespace URI" name="namespace_uri" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Namespace Prefix" name="prefix" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="XSLT" name="xslt" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="field_class" />
+			<field reporter:label="Name" name="name" reporter:datatype="text" />
+			<field reporter:label="Namespace URI" name="namespace_uri" reporter:datatype="text"/>
+			<field reporter:label="Namespace Prefix" name="prefix" reporter:datatype="text"/>
+			<field reporter:label="XSLT" name="xslt" reporter:datatype="text" />
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1401,19 +1311,16 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="cmf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::metabib_field" oils_persist:tablename="config.metabib_field">
+	<class id="cmf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::metabib_field" oils_persist:tablename="config.metabib_field" reporter:label="Metabib Field">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.metabib_field_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="field_class" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="weight" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="format" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="search_field" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool" />
-			<field name="facet_field" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="bool" />
+			<field name="field_class" />
+			<field name="id" reporter:datatype="id" />
+			<field name="name" reporter:datatype="text"/>
+			<field name="xpath" reporter:datatype="text"/>
+			<field name="weight" reporter:datatype="int" />
+			<field name="format" reporter:datatype="link"/>
+			<field name="search_field" reporter:datatype="bool" />
+			<field name="facet_field" reporter:datatype="bool" />
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1427,12 +1334,9 @@
 	</class>
 	<class id="cam" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::audience_map" oils_persist:tablename="config.audience_map" reporter:label="Audience Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Audience Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="text"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="Audience" name="value" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Audience Code" name="code" reporter:selector="value" reporter:datatype="text"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Audience" name="value"  reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1446,11 +1350,8 @@
 	</class>
 	<class id="cifm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::item_form_map" oils_persist:tablename="config.item_form_map" reporter:label="Item Form Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Item Form Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="text"/>
-			<field reporter:label="Item Form" name="value" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Item Form Code" name="code" reporter:selector="value" reporter:datatype="text"/>
+			<field reporter:label="Item Form" name="value"  reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1464,20 +1365,19 @@
 	</class>
 	<class id="acn" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::call_number" oils_persist:tablename="asset.call_number" reporter:label="Call Number/Volume">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.call_number_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Copies" name="copies" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Create Date/Time" name="create_date" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Creating User" name="creator" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Is Deleted" name="deleted" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Last Edit Date/Time" name="edit_date" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Editing User" name="editor" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Call Number/Volume ID" name="id" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Call Number Label" name="label" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="11" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Bib Record" name="record" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Notes" name="notes" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Copies" name="copies" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Create Date/Time" name="create_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Creating User" name="creator" reporter:datatype="link"/>
+			<field reporter:label="Is Deleted" name="deleted" reporter:datatype="bool"/>
+			<field reporter:label="Last Edit Date/Time" name="edit_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Editing User" name="editor" reporter:datatype="link"/>
+			<field reporter:label="Call Number/Volume ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Call Number Label" name="label" reporter:datatype="text"/>
+			<field reporter:label="Owning Library" name="owning_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Bib Record" name="record" reporter:datatype="link"/>
+			<field reporter:label="Notes" name="notes" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="URI Maps" name="uri_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="URIs" name="uris" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="editor" reltype="has_a" key="id" map="" class="au"/>
@@ -1486,6 +1386,8 @@
 			<link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="notes" reltype="has_many" key="call_number" map="" class="acnn"/>
 			<link field="copies" reltype="has_many" key="call_number" map="" class="acp"/>
+			<link field="uris" reltype="has_many" key="call_number" map="uri" class="auricnm"/>
+			<link field="uri_maps" reltype="has_many" key="call_number" map="" class="auricnm"/>
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
@@ -1498,63 +1400,53 @@
 	</class>
 	<class id="auri" controller="open-ils.cstore" oils_obj:fieldmapper="asset::uri" oils_persist:tablename="asset.uri" reporter:label="Electronic Access URI">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.uri_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="URI ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="URI" name="href" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Label" name="label" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Use Information" name="use_restriction" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Active" name="active" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="URI ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="URI" name="href" reporter:datatype="text"/>
+			<field reporter:label="Label" name="label" reporter:datatype="text"/>
+			<field reporter:label="Use Information" name="use_restriction" reporter:datatype="text"/>
+			<field reporter:label="Active" name="active" reporter:datatype="bool"/>
+			<field reporter:label="Call Number Maps" name="call_number_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Call Numbers" name="call_numbers" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
-		<links/>
+		<links>
+			<link field="call_numbers" reltype="has_many" key="uri" map="call_number" class="auricnm"/>
+			<link field="call_number_maps" reltype="has_many" key="uri" map="" class="auricnm"/>
+        </links>
 	</class>
 	<class id="auricnm" controller="open-ils.cstore" oils_obj:fieldmapper="asset::uri_call_number_map" oils_persist:tablename="asset.uri_call_number_map" reporter:label="Electronic Access URI to Call Number Map">
-		<fields oils_persist:primary="id" oils_persist:sequence="asset.uri_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="URI" name="uri" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Call Number" name="call_number" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+		<fields oils_persist:primary="id" oils_persist:sequence="asset.uri_call_number_map_id_seq">
+			<field reporter:label="ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="URI" name="uri" reporter:datatype="int"/>
+			<field reporter:label="Call Number" name="call_number" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="uri" reltype="has_a" key="id" map="" class="auri"/>
 			<link field="call_number" reltype="has_a" key="id" map="" class="acn"/>
 		</links>
 	</class>
-	<class id="cst" controller="open-ils.cstore" oils_obj:fieldmapper="config::standing" oils_persist:tablename="config.standing">
+	<class id="cst" controller="open-ils.cstore" oils_obj:fieldmapper="config::standing" oils_persist:tablename="config.standing" reporter:label="Standing Penalty">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.standing_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="value" oils_obj:array_position="4" oils_persist:virtual="false" oils_persist:i18n="true" />
+			<field name="id" reporter:datatype="id" />
+			<field name="value" oils_persist:i18n="true" />
 		</fields>
 		<links/>
 	</class>
-	<class id="mous" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_user_summary" oils_persist:tablename="money.open_usr_summary">
+	<class id="mous" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_user_summary" oils_persist:tablename="money.open_usr_summary" reporter:label="Open User Summary">
 		<fields oils_persist:primary="usr" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="balance_owed" reporter:datatype="money" />
+			<field name="total_owed" reporter:datatype="money" />
+			<field name="total_paid" reporter:datatype="money" />
+			<field name="usr" reporter:datatype="link"/>
 		</fields>
 		<links/>
 	</class>
-	<class id="mct" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::collections_tracker" oils_persist:tablename="money.collections_tracker">
+	<class id="mct" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::collections_tracker" oils_persist:tablename="money.collections_tracker" reporter:label="Collections Tracker">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.collections_tracker_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="collector" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="enter_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="location" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="usr" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="collector" />
+			<field name="enter_time" reporter:datatype="timestamp"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="location" reporter:datatype="link"/>
+			<field name="usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -1564,42 +1456,39 @@
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
                 <create permission="money.collections_tracker.create" context_field="location"/>
-                <retrieve/>
+                <retrieve permission="money.collections_tracker.create" context_field="location"/> 
                 <delete permission="money.collections_tracker.create" context_field="location"/>
             </actions>
         </permacrud>
 	</class>
 	<class id="bre" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="biblio::record_entry" oils_persist:tablename="biblio.record_entry" reporter:core="true" reporter:label="Bibliographic Record">
 		<fields oils_persist:primary="id" oils_persist:sequence="biblio.record_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Call Numbers" name="call_numbers" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Fixed Field Entry" name="fixed_fields" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Is Active?" name="active" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Record Creation Date/Time" name="create_date" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Record Creator" name="creator" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Is Deleted?" name="deleted" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Last Edit Data/Time" name="edit_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Editing User" name="editor" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="11" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Record ID" name="id" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Last Transaction ID" name="last_xact_id" oils_obj:array_position="13" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="MARC21Slim" name="marc" oils_obj:array_position="14" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Overall Quality" name="quality" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Record Source" name="source" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="17" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="18" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Metarecord" name="metarecord" oils_obj:array_position="19" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Language Code" name="language" oils_obj:array_position="20" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Non-MARC Record Notes" name="notes" oils_obj:array_position="21" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Indexed Keyword Field Entries" name="keyword_field_entries" oils_obj:array_position="22" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Indexed Subject Field Entries" name="subject_field_entries" oils_obj:array_position="23" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Indexed Title Field Entries" name="title_field_entries" oils_obj:array_position="24" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Indexed Author Field Entries" name="author_field_entries" oils_obj:array_position="25" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Indexed Series Field Entries" name="series_field_entries" oils_obj:array_position="26" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Flattened MARC Fields " name="full_record_entries" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Simple Record Extracts " name="simple_record" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Call Numbers" name="call_numbers" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Fixed Field Entry" name="fixed_fields" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Is Active?" name="active" reporter:datatype="bool"/>
+			<field reporter:label="Record Creation Date/Time" name="create_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Record Creator" name="creator" reporter:datatype="link"/>
+			<field reporter:label="Is Deleted?" name="deleted" reporter:datatype="bool"/>
+			<field reporter:label="Last Edit Data/Time" name="edit_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Editing User" name="editor" reporter:datatype="link"/>
+			<field reporter:label="Fingerprint" name="fingerprint"  reporter:datatype="text"/>
+			<field reporter:label="Record ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Last Transaction ID" name="last_xact_id"  reporter:datatype="text"/>
+			<field reporter:label="MARC21Slim" name="marc"  reporter:datatype="text"/>
+			<field reporter:label="Overall Quality" name="quality" reporter:datatype="int" />
+			<field reporter:label="Record Source" name="source" reporter:datatype="link"/>
+			<field reporter:label="TCN Source" name="tcn_source"  reporter:datatype="text"/>
+			<field reporter:label="TCN Value" name="tcn_value"  reporter:datatype="text"/>
+			<field reporter:label="Metarecord" name="metarecord" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Language Code" name="language" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Non-MARC Record Notes" name="notes" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Indexed Keyword Field Entries" name="keyword_field_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Indexed Subject Field Entries" name="subject_field_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Indexed Title Field Entries" name="title_field_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Indexed Author Field Entries" name="author_field_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Indexed Series Field Entries" name="series_field_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Flattened MARC Fields " name="full_record_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Simple Record Extracts " name="simple_record" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="editor" reltype="has_a" key="id" map="" class="au"/>
@@ -1625,50 +1514,44 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="aouhoo" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_unit::hours_of_operation" oils_persist:tablename="actor.hours_of_operation">
+	<class id="aouhoo" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_unit::hours_of_operation" oils_persist:tablename="actor.hours_of_operation" reporter:label="Hours of Operation">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="dow_0_close" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="dow_0_open" oils_obj:array_position="4" oils_persist:virtual="false" />
-			<field name="dow_1_close" oils_obj:array_position="5" oils_persist:virtual="false" />
-			<field name="dow_1_open" oils_obj:array_position="6" oils_persist:virtual="false" />
-			<field name="dow_2_close" oils_obj:array_position="7" oils_persist:virtual="false" />
-			<field name="dow_2_open" oils_obj:array_position="8" oils_persist:virtual="false" />
-			<field name="dow_3_close" oils_obj:array_position="9" oils_persist:virtual="false" />
-			<field name="dow_3_open" oils_obj:array_position="10" oils_persist:virtual="false" />
-			<field name="dow_4_close" oils_obj:array_position="11" oils_persist:virtual="false" />
-			<field name="dow_4_open" oils_obj:array_position="12" oils_persist:virtual="false" />
-			<field name="dow_5_close" oils_obj:array_position="13" oils_persist:virtual="false" />
-			<field name="dow_5_open" oils_obj:array_position="14" oils_persist:virtual="false" />
-			<field name="dow_6_close" oils_obj:array_position="15" oils_persist:virtual="false" />
-			<field name="dow_6_open" oils_obj:array_position="16" oils_persist:virtual="false" />
-			<field name="id" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="org_unit" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="org_unit"/>
+			<field name="dow_0_close" />
+			<field name="dow_0_open" />
+			<field name="dow_1_close" />
+			<field name="dow_1_open" />
+			<field name="dow_2_close" />
+			<field name="dow_2_open" />
+			<field name="dow_3_close" />
+			<field name="dow_3_open" />
+			<field name="dow_4_close" />
+			<field name="dow_4_open" />
+			<field name="dow_5_close" />
+			<field name="dow_5_open" />
+			<field name="dow_6_close" />
+			<field name="dow_6_open" />
+			<field name="id" reporter:datatype="id" />
+			<field name="org_unit" oils_persist:virtual="true" reporter:datatype="org_unit"/>
 		</fields>
 		<links>
-			<link field="org_unit" reltype="might_have" key="id" map="" class="aou"/>
+			<link field="id" reltype="might_have" key="id" map="" class="aou"/>
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_HOURS_OF_OPERATION" context_field="org_unit"/>
+                <create permission="CREATE_HOURS_OF_OPERATION" context_field="id"/>
                 <retrieve/>
-                <update permission="UPDATE_HOURS_OF_OPERATION" context_field="org_unit"/>
-                <delete permission="DELETE_HOURS_OF_OPERATION" context_field="org_unit"/>
+                <update permission="UPDATE_HOURS_OF_OPERATION" context_field="id"/>
+                <delete permission="DELETE_HOURS_OF_OPERATION" context_field="id"/>
             </actions>
         </permacrud>
 	</class>
-	<class id="aoucd" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_unit::closed_date" oils_persist:tablename="actor.org_unit_closed">
+	<class id="aoucd" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_unit::closed_date" oils_persist:tablename="actor.org_unit_closed" reporter:label="Closed Dates">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_closed_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="close_end" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="close_start" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="org_unit" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field name="reason" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="close_end" reporter:datatype="timestamp" />
+			<field name="close_start" reporter:datatype="timestamp" />
+			<field name="id" reporter:datatype="id" />
+			<field name="org_unit" reporter:datatype="org_unit"/>
+			<field name="reason" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
@@ -1682,17 +1565,14 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="crcd" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::rules::circ_duration" oils_persist:tablename="config.rule_circ_duration">
+	<class id="crcd" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::rules::circ_duration" oils_persist:tablename="config.rule_circ_duration" reporter:label="Circulation Duration Rule">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.rule_circ_duration_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="extended" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" reporter:selector="name"/>
-			<field name="max_renewals" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="normal" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field name="shrt" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="interval"/>
+			<field name="extended" reporter:datatype="interval"/>
+			<field name="id" reporter:datatype="id" reporter:selector="name"/>
+			<field name="max_renewals" reporter:datatype="int" />
+			<field name="name" reporter:datatype="text"/>
+			<field name="normal" reporter:datatype="interval"/>
+			<field name="shrt" reporter:datatype="interval"/>
 		</fields>
 		<links>
 		</links>
@@ -1705,29 +1585,26 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="mobts" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_billable_transaction_summary" oils_persist:tablename="money.open_billable_xact_summary">
+	<class id="mobts" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_billable_transaction_summary" oils_persist:tablename="money.open_billable_xact_summary" reporter:label="Open Billable Transaction Summary">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="last_billing_note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="last_billing_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="last_billing_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="last_payment_note" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="last_payment_ts" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="last_payment_type" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="total_owed" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field name="total_paid" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field name="usr" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="xact_finish" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="xact_start" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="xact_type" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="xact" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="grocery" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="circulation" oils_obj:array_position="19" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="billing_location" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="balance_owed" reporter:datatype="money"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="last_billing_note" reporter:datatype="text"/>
+			<field name="last_billing_ts" reporter:datatype="timestamp"/>
+			<field name="last_billing_type" reporter:datatype="text"/>
+			<field name="last_payment_note" reporter:datatype="text"/>
+			<field name="last_payment_ts" reporter:datatype="timestamp"/>
+			<field name="last_payment_type" reporter:datatype="text"/>
+			<field name="total_owed" reporter:datatype="money"/>
+			<field name="total_paid" reporter:datatype="money"/>
+			<field name="usr" reporter:datatype="link"/>
+			<field name="xact_finish" reporter:datatype="timestamp" />
+			<field name="xact_start" reporter:datatype="timestamp" />
+			<field name="xact_type" reporter:datatype="text"/>
+			<field name="xact" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="grocery" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="circulation" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="billing_location" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -1739,65 +1616,65 @@
 	</class>
 	<class id="au" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user" oils_persist:tablename="actor.usr" reporter:core="true" reporter:label="ILS User">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.usr_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="All Addresses" name="addresses" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="All Library Cards" name="cards" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="All Circulations" name="checkouts" oils_obj:array_position="5" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="All Hold Requests" name="hold_requests" oils_obj:array_position="6" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="All Permissions" name="permissions" oils_obj:array_position="7" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="All User Settings" name="settings" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Standing Penalties" name="standing_penalties" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Statistical Category Entries" name="stat_cat_entries" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Survey Responses" name="survey_responses" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="ws_ou" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="wsid" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Active" name="active" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Alert Message" name="alert_message" oils_obj:array_position="15" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Barred" name="barred" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Physical Address" name="billing_address" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Current Library Card" name="card" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Claims-returned Count" name="claims_returned_count" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Record Creation Date/Time" name="create_date" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="User Credit Balance" name="credit_forward_balance" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Daytime Phone" name="day_phone" oils_obj:array_position="22" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Date of Birth" name="dob" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Email Address" name="email" oils_obj:array_position="24" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Evening Phone" name="evening_phone" oils_obj:array_position="25" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Privilege Expiration Date" name="expire_date" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Name" name="family_name" oils_obj:array_position="27" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="First Name" name="first_given_name" oils_obj:array_position="28" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Home Library" name="home_ou" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="User ID" name="id" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Primary Identification Type" name="ident_type" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Secondary Identification Type" name="ident_type2" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Primary Identification" name="ident_value" oils_obj:array_position="33" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Secondary Identification" name="ident_value2" oils_obj:array_position="34" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="last_xact_id" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Mailing Address" name="mailing_address" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Is Group Lead Account" name="master_account" oils_obj:array_position="37" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Internet Access Level" name="net_access_level" oils_obj:array_position="38" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Other Phone" name="other_phone" oils_obj:array_position="39" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Password (obfuscated)" name="passwd" oils_obj:array_position="40" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Photo URL" name="photo_url" oils_obj:array_position="41" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Prefix" name="prefix" oils_obj:array_position="42" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Main (Profile) Permission Group" name="profile" oils_obj:array_position="43" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Middle Name" name="second_given_name" oils_obj:array_position="44" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Standing (unused)" name="standing" oils_obj:array_position="45" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Suffix/Title" name="suffix" oils_obj:array_position="46" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Is Super User" name="super_user" oils_obj:array_position="47" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Family Linkage or other Group" name="usrgroup" oils_obj:array_position="48" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="OPAC/Staff Client User Name" name="usrname" oils_obj:array_position="49" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="OPAC/Staff Client Holds Alias" name="alias" oils_obj:array_position="50" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Juvenile" name="juvenile" oils_obj:array_position="51" oils_persist:virtual="false"  reporter:datatype="bool"/>
-			<field reporter:label="Additional Permission Groups" name="groups" oils_obj:array_position="52" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Is Deleted" name="deleted" oils_obj:array_position="53" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="User Notes" name="notes" oils_obj:array_position="54" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Demographic Info" name="demographic" oils_obj:array_position="55" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Billable Transactions" name="billable_transactions" oils_obj:array_position="56" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Checkins" name="checkins" oils_obj:array_position="57" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulations Performed as Staff" name="performed_circulations" oils_obj:array_position="58" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="All Addresses" name="addresses" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="All Library Cards" name="cards" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="All Circulations" name="checkouts" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="All Hold Requests" name="hold_requests" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="All Permissions" name="permissions" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="All User Settings" name="settings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Standing Penalties" name="standing_penalties" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Statistical Category Entries" name="stat_cat_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Survey Responses" name="survey_responses" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="ws_ou" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="wsid" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Active" name="active" reporter:datatype="bool"/>
+			<field reporter:label="Alert Message" name="alert_message"  reporter:datatype="text"/>
+			<field reporter:label="Barred" name="barred" reporter:datatype="bool"/>
+			<field reporter:label="Physical Address" name="billing_address" reporter:datatype="link"/>
+			<field reporter:label="Current Library Card" name="card" reporter:datatype="link"/>
+			<field reporter:label="Claims-returned Count" name="claims_returned_count" reporter:datatype="int" />
+			<field reporter:label="Record Creation Date/Time" name="create_date" reporter:datatype="timestamp"/>
+			<field reporter:label="User Credit Balance" name="credit_forward_balance" reporter:datatype="money" />
+			<field reporter:label="Daytime Phone" name="day_phone"  reporter:datatype="text"/>
+			<field reporter:label="Date of Birth" name="dob" reporter:datatype="timestamp"/>
+			<field reporter:label="Email Address" name="email"  reporter:datatype="text"/>
+			<field reporter:label="Evening Phone" name="evening_phone"  reporter:datatype="text"/>
+			<field reporter:label="Privilege Expiration Date" name="expire_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Name" name="family_name"  reporter:datatype="text"/>
+			<field reporter:label="First Name" name="first_given_name"  reporter:datatype="text"/>
+			<field reporter:label="Home Library" name="home_ou" reporter:datatype="org_unit"/>
+			<field reporter:label="User ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Primary Identification Type" name="ident_type" reporter:datatype="link"/>
+			<field reporter:label="Secondary Identification Type" name="ident_type2" reporter:datatype="link"/>
+			<field reporter:label="Primary Identification" name="ident_value"  reporter:datatype="text"/>
+			<field reporter:label="Secondary Identification" name="ident_value2"  reporter:datatype="text"/>
+			<field name="last_xact_id" reporter:datatype="text"/>
+			<field reporter:label="Mailing Address" name="mailing_address" reporter:datatype="link"/>
+			<field reporter:label="Is Group Lead Account" name="master_account" reporter:datatype="bool"/>
+			<field reporter:label="Internet Access Level" name="net_access_level" reporter:datatype="link"/>
+			<field reporter:label="Other Phone" name="other_phone"  reporter:datatype="text"/>
+			<field reporter:label="Password" name="passwd"  reporter:datatype="text"/>
+			<field reporter:label="Photo URL" name="photo_url"  reporter:datatype="text"/>
+			<field reporter:label="Prefix" name="prefix"  reporter:datatype="text"/>
+			<field reporter:label="Main (Profile) Permission Group" name="profile" reporter:datatype="link"/>
+			<field reporter:label="Middle Name" name="second_given_name"  reporter:datatype="text"/>
+			<field reporter:label="Standing (unused)" name="standing" reporter:datatype="link"/>
+			<field reporter:label="Suffix/Title" name="suffix"  reporter:datatype="text"/>
+			<field reporter:label="Is Super User" name="super_user" reporter:datatype="bool"/>
+			<field reporter:label="Family Linkage or other Group" name="usrgroup" reporter:datatype="int"/>
+			<field reporter:label="OPAC/Staff Client User Name" name="usrname"  reporter:datatype="text"/>
+			<field reporter:label="OPAC/Staff Client Holds Alias" name="alias"  reporter:datatype="text"/>
+			<field reporter:label="Juvenile" name="juvenile"  reporter:datatype="bool"/>
+			<field reporter:label="Additional Permission Groups" name="groups" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Is Deleted" name="deleted" reporter:datatype="bool"/>
+			<field reporter:label="User Notes" name="notes" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Demographic Info" name="demographic" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Billable Transactions" name="billable_transactions" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Money Summary" name="money_summary" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Open Billable Transactions" name="open_billable_transactions_summary" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Checkins" name="checkins" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulations Performed as Staff" name="performed_circulations" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Reservations" name="reservations" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="demographic" reltype="might_have" key="id" map="" class="rud"/>
@@ -1818,6 +1695,8 @@
 			<link field="permissions" reltype="has_many" key="usr" map="perm" class="pupm"/>
 			<link field="settings" reltype="has_many" key="usr" map="" class="aus"/>
 			<link reporter:label="Billable Transactions" field="billable_transactions" reltype="has_many" key="usr" map="" class="mbt"/>
+			<link field="open_billable_transactions_summary" reltype="has_many" key="usr" map="" class="mobts"/>
+			<link field="money_summary" reltype="might_have" key="usr" map="" class="mus"/>
 			<link field="standing_penalties" reltype="has_many" key="usr" map="" class="ausp"/>
 			<link field="addresses" reltype="has_many" key="usr" map="" class="aua"/>
 			<link field="survey_responses" reltype="has_many" key="usr" map="" class="asvr"/>
@@ -1825,17 +1704,15 @@
 			<link reporter:label="Check-ins Performed as Staff" field="checkins" reltype="has_many" key="checkin_staff" map="" class="circ"/>
 			<link field="cards" reltype="has_many" key="usr" map="" class="ac"/>
 			<link reporter:label="Circulations Performed as Staff" field="performed_circulations" reltype="has_many" key="circ_staff" map="" class="circ"/>
+			<link field="reservations" reltype="has_many" key="usr" map="" class="bresv"/>
 		</links>
 	</class>
-	<class id="aous" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit_setting" oils_persist:tablename="actor.org_unit_setting">
+	<class id="aous" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit_setting" oils_persist:tablename="actor.org_unit_setting" reporter:label="Organizational Unit Setting">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_setting_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="name" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field name="value" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field name="id" />
+			<field name="name"  reporter:datatype="text"/>
+			<field name="org_unit" reporter:datatype="org_unit"/>
+			<field name="value"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
@@ -1843,16 +1720,13 @@
 	</class>
 	<class id="acpn" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::copy_note" oils_persist:tablename="asset.copy_note" reporter:label="Copy Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.copy_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Note Creation Date/Time" name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Note Creator" name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Note ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Copy" name="owning_copy" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Is OPAC Visible?" name="pub" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Note Title" name="title" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Note Content" name="value" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field reporter:label="Note Creation Date/Time" name="create_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Note Creator" name="creator" reporter:datatype="link"/>
+			<field reporter:label="Note ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Copy" name="owning_copy" reporter:datatype="link"/>
+			<field reporter:label="Is OPAC Visible?" name="pub" reporter:datatype="bool"/>
+			<field reporter:label="Note Title" name="title"  reporter:datatype="text"/>
+			<field reporter:label="Note Content" name="value"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="owning_copy" reltype="has_a" key="id" map="" class="acp"/>
@@ -1877,44 +1751,35 @@
 	</class>
 	<class id="mfr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::full_rec" oils_persist:tablename="metabib.full_rec" reporter:label="Flattened MARC Fields">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.full_rec_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Field ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Indicator 1" name="ind1" oils_obj:array_position="4" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Indicator 2" name="ind2" oils_obj:array_position="5" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Bib Record Entry" name="record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Subfield" name="subfield" oils_obj:array_position="7" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Tag" name="tag" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Normalized Value" name="value" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field reporter:label="Field ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Indicator 1" name="ind1" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Indicator 2" name="ind2" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Bib Record Entry" name="record" reporter:datatype="link"/>
+			<field reporter:label="Subfield" name="subfield" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Tag" name="tag"  reporter:datatype="text"/>
+			<field reporter:label="Normalized Value" name="value"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="bre"/>
 		</links>
 	</class>
-	<class id="mmr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord" oils_persist:tablename="metabib.metarecord">
+	<class id="mmr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord" oils_persist:tablename="metabib.metarecord" reporter:label="Metarecord">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.metarecord_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="fingerprint" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="master_record" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="mods" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="source_records" oils_obj:array_position="7" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="fingerprint"  reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="master_record" reporter:datatype="link"/>
+			<field name="mods"  reporter:datatype="text"/>
+			<field name="source_records" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="master_record" reltype="has_a" key="id" map="" class="bre"/>
 			<link field="source_records" reltype="has_many" key="metarecord" map="source" class="mmrsm"/>
 		</links>
 	</class>
-	<class id="cnal" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::net_access_level" oils_persist:tablename="config.net_access_level">
+	<class id="cnal" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::net_access_level" oils_persist:tablename="config.net_access_level" reporter:label="Net Access Level">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.net_access_level_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field name="name" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field name="name"  reporter:datatype="text"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1926,14 +1791,11 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="ppl" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="permission::perm_list" oils_persist:tablename="permission.perm_list">
+	<class id="ppl" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="permission::perm_list" oils_persist:tablename="permission.perm_list" reporter:label="Permission List">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.perm_list_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="code" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="description" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:selector="code" reporter:datatype="id"/>
+			<field name="code"  reporter:datatype="text"/>
+			<field name="description"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field name="id" reporter:selector="code" reporter:datatype="id"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -1945,50 +1807,41 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="mmrsm" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord_source_map" oils_persist:tablename="metabib.metarecord_source_map" oils_persist:field_safe="true">
+	<class id="mmrsm" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord_source_map" oils_persist:tablename="metabib.metarecord_source_map" oils_persist:field_safe="true" reporter:label="Metarecord Source Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.metarecord_source_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="metarecord" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="metarecord" reporter:datatype="link"/>
+			<field name="source" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="source" reltype="has_a" key="id" map="" class="bre"/>
 			<link field="metarecord" reltype="has_a" key="id" map="" class="mmr"/>
 		</links>
 	</class>
-	<class id="mkfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::keyword_field_entry" oils_persist:tablename="metabib.keyword_field_entry">
+	<class id="mkfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::keyword_field_entry" oils_persist:tablename="metabib.keyword_field_entry" reporter:label="Keyword Field Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.keyword_field_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="value" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field name="field" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="source" reporter:datatype="link"/>
+			<field name="value"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="source" reltype="has_a" key="id" map="" class="bre"/>
 			<link field="field" reltype="has_a" key="id" map="" class="cmf"/>
 		</links>
 	</class>
-	<class id="mcp" controller="open-ils.cstore" oils_obj:fieldmapper="money::cash_payment" oils_persist:tablename="money.cash_payment">
+	<class id="mcp" controller="open-ils.cstore" oils_obj:fieldmapper="money::cash_payment" oils_persist:tablename="money.cash_payment" reporter:label="Cash Payment">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="cash_drawer" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="note" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="payment_ts" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="xact" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="payment_type" oils_obj:array_position="11" oils_persist:virtual="true"  reporter:datatype="text"/>
-			<field name="payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="accepting_usr" reporter:datatype="link"/>
+			<field name="amount" reporter:datatype="money" />
+			<field name="amount_collected" reporter:datatype="money" />
+			<field name="cash_drawer" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="note"  reporter:datatype="text"/>
+			<field name="payment_ts" reporter:datatype="timestamp"/>
+			<field name="xact" reporter:datatype="link"/>
+			<field name="payment_type" oils_persist:virtual="true"  reporter:datatype="text"/>
+			<field name="payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="payment" reltype="might_have" key="id" map="" class="mp"/>
@@ -1997,20 +1850,17 @@
 			<link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
 		</links>
 	</class>
-	<class id="mfp" controller="open-ils.cstore" oils_obj:fieldmapper="money::forgive_payment" oils_persist:tablename="money.forgive_payment">
+	<class id="mfp" controller="open-ils.cstore" oils_obj:fieldmapper="money::forgive_payment" oils_persist:tablename="money.forgive_payment" reporter:label="Forgive Payment">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="note" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="payment_type" oils_obj:array_position="10" oils_persist:virtual="true"  reporter:datatype="text"/>
-			<field name="payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="accepting_usr" reporter:datatype="link"/>
+			<field name="amount" reporter:datatype="money" />
+			<field name="amount_collected" reporter:datatype="money" />
+			<field name="id" reporter:datatype="id" />
+			<field name="note"  reporter:datatype="text"/>
+			<field name="payment_ts" reporter:datatype="timestamp"/>
+			<field name="xact" reporter:datatype="link"/>
+			<field name="payment_type" oils_persist:virtual="true"  reporter:datatype="text"/>
+			<field name="payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="payment" reltype="might_have" key="id" map="" class="mp"/>
@@ -2020,26 +1870,23 @@
 	</class>
 	<class id="mrd" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::record_descriptor" oils_persist:tablename="metabib.rec_descriptor" reporter:label="Basic Record Descriptor">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.rec_descriptor_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Audn" name="audience" oils_obj:array_position="3" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="BLvl" name="bib_level" oils_obj:array_position="4" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Cat Form" name="cat_form" oils_obj:array_position="5" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Character Encoding" name="char_encoding" oils_obj:array_position="6" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Ctrl" name="control_type" oils_obj:array_position="7" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="ELvl" name="enc_level" oils_obj:array_position="8" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Descriptor ID" name="id" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Form" name="item_form" oils_obj:array_position="10" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Lang" name="item_lang" oils_obj:array_position="11" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Type" name="item_type" oils_obj:array_position="12" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="LitF" name="lit_form" oils_obj:array_position="13" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Pub Status" name="pub_status" oils_obj:array_position="14" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Bib Record Entry" name="record" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="TMat" name="type_mat" oils_obj:array_position="16" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Video Recording Format" name="vr_format" oils_obj:array_position="17" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Date1" name="date1" oils_obj:array_position="18" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
-			<field reporter:label="Date2" name="date2" oils_obj:array_position="19" oils_persist:virtual="false" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Audn" name="audience" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="BLvl" name="bib_level" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Cat Form" name="cat_form" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Character Encoding" name="char_encoding" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Ctrl" name="control_type" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="ELvl" name="enc_level" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Descriptor ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Form" name="item_form" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Lang" name="item_lang" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Type" name="item_type" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="LitF" name="lit_form" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Pub Status" name="pub_status" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Bib Record Entry" name="record" reporter:datatype="link"/>
+			<field reporter:label="TMat" name="type_mat" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Video Recording Format" name="vr_format" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Date1" name="date1" oils_persist:primitive="string"  reporter:datatype="text"/>
+			<field reporter:label="Date2" name="date2" oils_persist:primitive="string"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="bre"/>
@@ -2052,15 +1899,12 @@
 		</links>
 	</class>
 
-	<class id="csp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::standing_penalty" oils_persist:tablename="config.standing_penalty">
+	<class id="csp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::standing_penalty" oils_persist:tablename="config.standing_penalty" reporter:label="Standing Penalty">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.standing_penalty_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field name="name" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="label" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
-			<field name="block_list" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field name="name"  reporter:datatype="text"/>
+			<field name="label"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field name="block_list" reporter:datatype="text"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -2072,16 +1916,13 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="pgpt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="permission::grp_penalty_threshold" oils_persist:tablename="permission.grp_penalty_threshold">
+	<class id="pgpt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="permission::grp_penalty_threshold" oils_persist:tablename="permission.grp_penalty_threshold" reporter:label="Group Penalty Threshold">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.grp_penalty_threshold_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id" reporter:label="ID"/>
-			<field name="grp" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="link" reporter:label="Group"/>
-			<field name="penalty" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="link" reporter:label="Penalty"/>
-			<field name="threshold" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="float" reporter:label="Threshold"/>
-			<field name="org_unit" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link" reporter:label="Org Unit"/>
+			<field name="id" reporter:selector="name" reporter:datatype="id" reporter:label="ID"/>
+			<field name="grp"  reporter:datatype="link" reporter:label="Group"/>
+			<field name="penalty"  reporter:datatype="link" reporter:label="Penalty"/>
+			<field name="threshold" reporter:datatype="float" reporter:label="Threshold"/>
+			<field name="org_unit" reporter:datatype="org_unit" reporter:label="Org Unit"/>
 		</fields>
 		<links>
 			<link field="penalty" reltype="has_a" key="id" map="" class="csp"/>
@@ -2097,15 +1938,12 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="ccs" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::copy_status" oils_persist:tablename="config.copy_status" oils_persist:restrict_primary="100">
+	<class id="ccs" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::copy_status" oils_persist:tablename="config.copy_status" oils_persist:restrict_primary="100" reporter:label="Copy Status">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.copy_status_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="holdable" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field name="name" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
-			<field name="opac_visible" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field name="holdable" reporter:datatype="bool"/>
+			<field name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field name="name"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field name="opac_visible" reporter:datatype="bool"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -2117,18 +1955,16 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="ausp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::user_standing_penalty" oils_persist:tablename="actor.usr_standing_penalty" oils_persist:restrict_primary="100">
+	<class id="ausp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::user_standing_penalty" oils_persist:tablename="actor.usr_standing_penalty" oils_persist:restrict_primary="100" reporter:label="User Standing Penalty">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.usr_standing_penalty_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" reporter:label="ID" />
-			<field name="set_date" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="timestamp" reporter:label="Set Date"/>
-			<field name="usr" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" reporter:label="User"/>
-			<field name="staff" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link" reporter:label="Staff"/>
-			<field name="standing_penalty" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link" reporter:label="Standing Penalty"/>
-			<field name="org_unit" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link" reporter:label="Org Unit"/>
-			<field name="note" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" reporter:label="Note"/>
+			<field name="id" reporter:datatype="id" reporter:label="ID" />
+			<field name="set_date" reporter:datatype="timestamp" reporter:label="Set Date"/>
+			<field name="usr" reporter:datatype="link" reporter:label="User"/>
+			<field name="staff" reporter:datatype="link" reporter:label="Staff"/>
+			<field name="standing_penalty" reporter:datatype="link" reporter:label="Standing Penalty"/>
+			<field name="org_unit" reporter:datatype="link" reporter:label="Org Unit"/>
+			<field name="stop_date" reporter:datatype="timestamp" reporter:label="Stop Date"/>
+			<field name="note" reporter:datatype="text" reporter:label="Note"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -2147,41 +1983,35 @@
 	</class>
 	<class id="aua" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user_address" oils_persist:tablename="actor.usr_address" reporter:label="User Address">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.usr_address_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Type" name="address_type" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="City" name="city" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Country" name="country" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="County" name="county" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Address ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Postal Code" name="post_code" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="State" name="state" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Street (1)" name="street1" oils_obj:array_position="10" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Street (2)" name="street2" oils_obj:array_position="11" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="User" name="usr" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Valid Address?" name="valid" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Within City Limits?" name="within_city_limits" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Replaces" name="replaces" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Pending" name="pending" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Type" name="address_type"  reporter:datatype="text"/>
+			<field reporter:label="City" name="city"  reporter:datatype="text"/>
+			<field reporter:label="Country" name="country"  reporter:datatype="text"/>
+			<field reporter:label="County" name="county"  reporter:datatype="text"/>
+			<field reporter:label="Address ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Postal Code" name="post_code" reporter:datatype="text"/>
+			<field reporter:label="State" name="state"  reporter:datatype="text"/>
+			<field reporter:label="Street (1)" name="street1"  reporter:datatype="text"/>
+			<field reporter:label="Street (2)" name="street2"  reporter:datatype="text"/>
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Valid Address?" name="valid" reporter:datatype="bool"/>
+			<field reporter:label="Within City Limits?" name="within_city_limits" reporter:datatype="bool"/>
+			<field reporter:label="Replaces" name="replaces" reporter:datatype="link"/>
+			<field reporter:label="Pending" name="pending" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 			<link field="replaces" reltype="has_a" key="id" map="" class="aua"/>
 		</links>
 	</class>
-	<class id="acnn" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::call_number_note" oils_persist:tablename="asset.call_number_note">
+	<class id="acnn" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::call_number_note" oils_persist:tablename="asset.call_number_note" reporter:label="Call Number Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.call_number_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="call_number" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="create_date" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="creator" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="pub" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="title" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="value" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field name="call_number" />
+			<field name="create_date" reporter:datatype="timestamp"/>
+			<field name="creator" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="pub" reporter:datatype="bool"/>
+			<field name="title"  reporter:datatype="text"/>
+			<field name="value"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="call_number" reltype="has_a" key="id" map="" class="acn"/>
@@ -2203,18 +2033,15 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="arn" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="authority::record_note" oils_persist:tablename="authority.record_note">
+	<class id="arn" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="authority::record_note" oils_persist:tablename="authority.record_note" reporter:label="Authority Record Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="authority.record_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="edit_date" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="editor" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="record" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="create_date" reporter:datatype="timestamp"/>
+			<field name="creator" reporter:datatype="link"/>
+			<field name="edit_date" reporter:datatype="timestamp"/>
+			<field name="editor" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="record" reporter:datatype="link"/>
+			<field name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="are"/>
@@ -2230,40 +2057,37 @@
 	</class>
 	<class id="circ" controller="open-ils.cstore" oils_obj:fieldmapper="action::circulation" oils_persist:tablename="action.circulation" reporter:core="true" reporter:label="Circulation">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron" name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Record Creation Date/Time" name="create_time" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="text"/>
-			<field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Check In Library" name="checkin_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Check In Staff" name="checkin_staff" reporter:datatype="link"/>
+			<field reporter:label="Check In Date/Time" name="checkin_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Library" name="circ_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Circulating Staff" name="circ_staff" reporter:datatype="link"/>
+			<field reporter:label="Desk Renewal" name="desk_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Due Date/Time" name="due_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulation Duration" name="duration" reporter:datatype="interval"/>
+			<field reporter:label="Circ Duration Rule" name="duration_rule" reporter:datatype="link"/>
+			<field reporter:label="Fine Interval" name="fine_interval" reporter:datatype="interval"/>
+			<field reporter:label="Circ ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Max Fine Amount" name="max_fine" reporter:datatype="money" />
+			<field reporter:label="Max Fine Rule" name="max_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="OPAC Renewal" name="opac_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Phone Renewal" name="phone_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Recurring Fine Amount" name="recuring_fine" reporter:datatype="money" />
+			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="Remaining Renewals" name="renewal_remaining" reporter:datatype="int" />
+			<field reporter:label="Fine Stop Reason" name="stop_fines" reporter:datatype="text"/>
+			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Item" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Patron" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" reporter:datatype="timestamp" />
+			<field reporter:label="Check Out Date/Time" name="xact_start" reporter:datatype="timestamp" />
+			<field reporter:label="Record Creation Date/Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Transaction Billings" name="billings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Transaction Payments" name="payments" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Base Transaction" name="billable_transaction" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulation Type" name="circ_type" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Billing Totals" name="billing_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Totals" name="payment_total" oils_persist:virtual="true" reporter:datatype="money"/>
 		</fields>
 		<links>
 			<link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
@@ -2285,48 +2109,45 @@
 	</class>
 	<class id="combcirc" controller="open-ils.cstore" oils_obj:fieldmapper="action::all_circulation" oils_persist:tablename="action.all_circulation" reporter:core="true" reporter:label="Combined Aged and Active Circulations" oils_persist:readonly="true">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron ZIP" name="usr_post_code" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Record Creation Date/Time" name="create_time" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="text"/>
-			<field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Patron Home Library" name="usr_home_ou" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron Profile Group" name="usr_profile" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron Birth Year" name="usr_birth_year" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Call Number" name="copy_call_number" oils_obj:array_position="37" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Shelving Location" name="copy_location" oils_obj:array_position="38" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Copy Owning Library" name="copy_owning_lib" oils_obj:array_position="39" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Copy Circulating Library" name="copy_circ_lib" oils_obj:array_position="40" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Bib Record" name="copy_bib_record" oils_obj:array_position="41" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Check In Library" name="checkin_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Check In Staff" name="checkin_staff" reporter:datatype="link"/>
+			<field reporter:label="Check In Date/Time" name="checkin_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Library" name="circ_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Circulating Staff" name="circ_staff" reporter:datatype="link"/>
+			<field reporter:label="Desk Renewal" name="desk_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Due Date/Time" name="due_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulation Duration" name="duration" reporter:datatype="interval"/>
+			<field reporter:label="Circ Duration Rule" name="duration_rule" reporter:datatype="link"/>
+			<field reporter:label="Fine Interval" name="fine_interval" reporter:datatype="interval"/>
+			<field reporter:label="Circ ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Max Fine Amount" name="max_fine" reporter:datatype="money" />
+			<field reporter:label="Max Fine Rule" name="max_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="OPAC Renewal" name="opac_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Phone Renewal" name="phone_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Recurring Fine Amount" name="recuring_fine" reporter:datatype="money" />
+			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="Remaining Renewals" name="renewal_remaining" reporter:datatype="int" />
+			<field reporter:label="Fine Stop Reason" name="stop_fines" reporter:datatype="text"/>
+			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Item" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Patron ZIP" name="usr_post_code" reporter:datatype="text"/>
+			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" reporter:datatype="timestamp" />
+			<field reporter:label="Check Out Date/Time" name="xact_start" reporter:datatype="timestamp" />
+			<field reporter:label="Record Creation Date/Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Transaction Billings" name="billings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Transaction Payments" name="payments" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Base Transaction" name="billable_transaction" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulation Type" name="circ_type" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Billing Totals" name="billing_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Totals" name="payment_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Patron Home Library" name="usr_home_ou" reporter:datatype="link"/>
+			<field reporter:label="Patron Profile Group" name="usr_profile" reporter:datatype="link"/>
+			<field reporter:label="Patron Birth Year" name="usr_birth_year" reporter:datatype="int"/>
+			<field reporter:label="Call Number" name="copy_call_number" reporter:datatype="link"/>
+			<field reporter:label="Shelving Location" name="copy_location" reporter:datatype="link"/>
+			<field reporter:label="Copy Owning Library" name="copy_owning_lib" reporter:datatype="link"/>
+			<field reporter:label="Copy Circulating Library" name="copy_circ_lib" reporter:datatype="link"/>
+			<field reporter:label="Bib Record" name="copy_bib_record" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
@@ -2344,7 +2165,7 @@
 			<link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
 			<link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
 			<link field="copy_call_number" reltype="has_a" key="id" map="" class="acn"/>
-			<link field="copy_location" reltype="has_a" key="id" map="" class="acl"/>
+			<link field="copy_location" reltype="has_a" key="id" map="" class="acpl"/>
 			<link field="copy_owning_lib" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="copy_circ_lib" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="copy_bib_record" reltype="has_a" key="id" map="" class="bre"/>
@@ -2352,48 +2173,45 @@
 	</class>
 	<class id="acirc" controller="open-ils.cstore" oils_obj:fieldmapper="action::aged_circulation" oils_persist:tablename="action.aged_circulation" reporter:core="true" reporter:label="Aged (patronless) Circulation">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron ZIP" name="usr_post_code" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Record Creation Date/Time" name="create_time" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="text"/>
-			<field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Patron Home Library" name="usr_home_ou" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron Profile Group" name="usr_profile" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron Birth Year" name="usr_birth_year" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Call Number" name="copy_call_number" oils_obj:array_position="37" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Shelving Location" name="copy_location" oils_obj:array_position="38" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Copy Owning Library" name="copy_owning_lib" oils_obj:array_position="39" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Copy Circulating Library" name="copy_circ_lib" oils_obj:array_position="40" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Bib Record" name="copy_bib_record" oils_obj:array_position="41" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Check In Library" name="checkin_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Check In Staff" name="checkin_staff" reporter:datatype="link"/>
+			<field reporter:label="Check In Date/Time" name="checkin_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Library" name="circ_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Circulating Staff" name="circ_staff" reporter:datatype="link"/>
+			<field reporter:label="Desk Renewal" name="desk_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Due Date/Time" name="due_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulation Duration" name="duration" reporter:datatype="interval"/>
+			<field reporter:label="Circ Duration Rule" name="duration_rule" reporter:datatype="link"/>
+			<field reporter:label="Fine Interval" name="fine_interval" reporter:datatype="interval"/>
+			<field reporter:label="Circ ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Max Fine Amount" name="max_fine" reporter:datatype="money" />
+			<field reporter:label="Max Fine Rule" name="max_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="OPAC Renewal" name="opac_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Phone Renewal" name="phone_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Recurring Fine Amount" name="recuring_fine" reporter:datatype="money" />
+			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="Remaining Renewals" name="renewal_remaining" reporter:datatype="int" />
+			<field reporter:label="Fine Stop Reason" name="stop_fines" reporter:datatype="text"/>
+			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Item" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Patron ZIP" name="usr_post_code" reporter:datatype="text"/>
+			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" reporter:datatype="timestamp" />
+			<field reporter:label="Check Out Date/Time" name="xact_start" reporter:datatype="timestamp" />
+			<field reporter:label="Record Creation Date/Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Transaction Billings" name="billings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Transaction Payments" name="payments" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Base Transaction" name="billable_transaction" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulation Type" name="circ_type" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Billing Totals" name="billing_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Totals" name="payment_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Patron Home Library" name="usr_home_ou" reporter:datatype="link"/>
+			<field reporter:label="Patron Profile Group" name="usr_profile" reporter:datatype="link"/>
+			<field reporter:label="Patron Birth Year" name="usr_birth_year" reporter:datatype="int"/>
+			<field reporter:label="Call Number" name="copy_call_number" reporter:datatype="link"/>
+			<field reporter:label="Shelving Location" name="copy_location" reporter:datatype="link"/>
+			<field reporter:label="Copy Owning Library" name="copy_owning_lib" reporter:datatype="link"/>
+			<field reporter:label="Copy Circulating Library" name="copy_circ_lib" reporter:datatype="link"/>
+			<field reporter:label="Bib Record" name="copy_bib_record" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
@@ -2411,23 +2229,235 @@
 			<link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
 			<link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
 			<link field="copy_call_number" reltype="has_a" key="id" map="" class="acn"/>
-			<link field="copy_location" reltype="has_a" key="id" map="" class="acl"/>
+			<link field="copy_location" reltype="has_a" key="id" map="" class="acpl"/>
 			<link field="copy_owning_lib" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="copy_circ_lib" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="copy_bib_record" reltype="has_a" key="id" map="" class="bre"/>
 		</links>
 	</class>
-	<class id="ccnbi" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket_item" oils_persist:tablename="container.call_number_bucket_item">
+
+	<class id="brt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="booking::resource_type" oils_persist:tablename="booking.resource_type" reporter:label="Resource Type">
+		<fields oils_persist:primary="id" oils_persist:sequence="booking.resource_type_id_seq">
+			<field reporter:label="Resource Type ID" name="id" reporter:datatype="id" reporter:selector="name"/>
+			<field reporter:label="Resource Type Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Fine Interval" name="fine_interval" reporter:datatype="interval"/>
+			<field reporter:label="Fine Amount" name="fine_amount" reporter:datatype="money"/>
+			<field reporter:label="Max Fine Amount" name="max_fine" reporter:datatype="money"/>
+			<field reporter:label="Owning Library" name="owner" reporter:datatype="org_unit"/>
+			<field reporter:label="Catalog Item" name="catalog_item" reporter:datatype="bool"/>
+			<field reporter:label="Bibliographic Record" name="record" reporter:datatype="link"/>
+			<field reporter:label="Transferable" name="transferable" reporter:datatype="bool"/>
+			<field reporter:label="Inter-booking and Inter-circulation Interval" name="elbow_room" reporter:datatype="interval"/>
+			<field reporter:label="Resources" name="resources" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Resource Attributes" name="resource_attrs" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Target Resource Types" name="tgt_rsrc_types" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="record" reltype="has_a" key="id" map="" class="bre"/>
+			<link field="resources" reltype="has_many" key="type" map="" class="brsrc"/>
+			<link field="resource_attrs" reltype="has_many" key="type" map="" class="bra"/>
+			<link field="tgt_rsrc_types" reltype="has_many" key="type" map="" class="bresv"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_BOOKING_RESOURCE_TYPE" global_required='true'/>
+				<retrieve />
+				<update permission="ADMIN_BOOKING_RESOURCE_TYPE" global_required='true'/>
+				<delete permission="ADMIN_BOOKING_RESOURCE_TYPE" global_required='true'/>
+			</actions>
+		</permacrud>
+	</class>
+
+	<class id="brsrc" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="booking::resource" oils_persist:tablename="booking.resource" reporter:label="Resource">
+		<fields oils_persist:primary="id" oils_persist:sequence="booking.resource_id_seq">
+			<field reporter:label="Resource ID" name="id" reporter:datatype="id" reporter:selector="barcode" />
+			<field reporter:label="Owning Library" name="owner" reporter:datatype="org_unit"/>
+			<field reporter:label="Resource Type" name="type" reporter:datatype="link"/>
+			<field reporter:label="Overbook" name="overbook" reporter:datatype="bool"/>
+			<field reporter:label="Barcode" name="barcode" reporter:datatype="text"/>
+			<field reporter:label="Is Deposit Required" name="deposit" reporter:datatype="bool"/>
+			<field reporter:label="Deposit Amount" name="deposit_amount" reporter:datatype="money"/>
+			<field reporter:label="User Fee" name="user_fee" reporter:datatype="money"/>
+			<field reporter:label="Resource Attribute Maps" name="attr_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Reservation Target Resources" name="tgt_rsrcs" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Reservation Current Resources" name="curr_rsrcs" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Catalog Item" name="catalog_item" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="type" reltype="has_a" key="id" map="" class="brt"/>
+			<link field="attr_maps" reltype="has_many" key="resource" map="" class="bram"/>
+			<link field="tgt_rsrcs" reltype="has_many" key="targeted_resource" map="" class="bresv"/>
+			<link field="curr_rsrcs" reltype="has_many" key="current_resource" map="" class="bresv"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_BOOKING_RESOURCE" global_required='true'/>
+				<retrieve />
+				<update permission="ADMIN_BOOKING_RESOURCE" global_required='true'/>
+				<delete permission="ADMIN_BOOKING_RESOURCE" global_required='true'/>
+			</actions>
+		</permacrud>
+	</class>
+	
+	<class id="bra" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="booking::resource_attr" oils_persist:tablename="booking.resource_attr" reporter:label="Resource Attribute">
+		<fields oils_persist:primary="id" oils_persist:sequence="booking.resource_attr_id_seq">
+			<field reporter:label="Resource Attribute ID" name="id" reporter:datatype="id" reporter:selector="name" />
+			<field reporter:label="Owning Library" name="owner" reporter:datatype="org_unit"/>
+			<field reporter:label="Resource Attribute Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Resource Type" name="resource_type" reporter:datatype="link"/>
+			<field reporter:label="Is Required" name="required" reporter:datatype="bool"/>
+			<field reporter:label="Valid Values" name="valid_values" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Resource Attribute Maps" name="attr_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="resource_type" reltype="has_a" key="id" map="" class="brt"/>
+			<link field="valid_values" reltype="has_many" key="attr" map="" class="brav"/>
+			<link field="attr_maps" reltype="has_many" key="attr" map="" class="bram"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_BOOKING_RESOURCE_ATTR" global_required='true'/>
+				<retrieve />
+				<update permission="ADMIN_BOOKING_RESOURCE_ATTR" global_required='true'/>
+				<delete permission="ADMIN_BOOKING_RESOURCE_ATTR" global_required='true'/>
+			</actions>
+		</permacrud>
+	</class>
+	
+	<class id="brav" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="booking::resource_attr_value" oils_persist:tablename="booking.resource_attr_value" reporter:label="Resource Attribute Value">
+		<fields oils_persist:primary="id" oils_persist:sequence="booking.resource_attr_value_id_seq">
+			<field reporter:label="Resource Attribute Value ID" name="id" reporter:datatype="id" reporter:selector="valid_value" />
+			<field reporter:label="Owning Library" name="owner" reporter:datatype="org_unit"/>
+			<field reporter:label="Resource Attribute" name="attr" reporter:datatype="link"/>
+			<field reporter:label="Valid Value" name="valid_value" reporter:datatype="text"/>
+			<field reporter:label="Resource Attribute Maps" name="attr_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Resource Attribute Value Maps" name="attr_val_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="attr" reltype="has_a" key="id" map="" class="bra"/>
+			<link field="attr_maps" reltype="has_many" key="id" map="" class="bram"/>
+			<link field="attr_val_maps" reltype="has_many" key="attr_value" map="" class="bravm"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_BOOKING_RESOURCE_ATTR_VALUE" global_required='true'/>
+				<retrieve />
+				<update permission="ADMIN_BOOKING_RESOURCE_ATTR_VALUE" global_required='true'/>
+				<delete permission="ADMIN_BOOKING_RESOURCE_ATTR_VALUE" global_required='true'/>
+			</actions>
+		</permacrud>
+	</class>
+	
+	<class id="bram" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="booking::resource_attr_map" oils_persist:tablename="booking.resource_attr_map" reporter:label="Resource Attribute Map">
+		<fields oils_persist:primary="id" oils_persist:sequence="booking.resource_attr_map_id_seq">
+			<field reporter:label="Resource Attribute Map ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Resource" name="resource" reporter:datatype="link"/>
+			<field reporter:label="Resource Attribute" name="resource_attr" reporter:datatype="link"/>
+			<field reporter:label="Attribute Value" name="value" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="resource" reltype="has_a" key="id" map="" class="brsrc"/>
+			<link field="resource_attr" reltype="has_a" key="id" map="" class="bra"/>
+			<link field="value" reltype="has_a" key="id" map="" class="brav"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_BOOKING_RESOURCE_ATTR_MAP" global_required='true'/>
+				<retrieve />
+				<update permission="ADMIN_BOOKING_RESOURCE_ATTR_MAP" global_required='true'/>
+				<delete permission="ADMIN_BOOKING_RESOURCE_ATTR_MAP" global_required='true'/>
+			</actions>
+		</permacrud>
+	</class>
+	
+	<class id="bresv" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="booking::reservation" oils_persist:tablename="booking.reservation" reporter:label="Reservation">
+		<fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
+			<field reporter:label="Transaction ID" name="id" reporter:datatype="id" />
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction Start Date/Time" name="xact_start" reporter:datatype="timestamp"/>
+			<field reporter:label="Unrecovered Debt" name="unrecovered" reporter:datatype="bool"/>
+			<field reporter:label="Billing Line Items" name="billings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Payment Line Items" name="payments" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Billing Totals" name="billing_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Totals" name="payment_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Summary" name="summary" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Request Time" name="request_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Start Time" name="start_time" reporter:datatype="timestamp"/>
+			<field reporter:label="End Time" name="end_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Capture Time" name="capture_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Cancel Time" name="cancel_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Pickup Time" name="pickup_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Return Time" name="return_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Booking Interval" name="booking_interval" reporter:datatype="interval"/>
+			<field reporter:label="Fine Interval" name="fine_interval" reporter:datatype="interval"/>
+			<field reporter:label="Fine Amount" name="fine_amount" reporter:datatype="money"/>
+			<field reporter:label="Max Fine Amount" name="max_fine" reporter:datatype="money"/>
+			<field reporter:label="Target Resource Type" name="target_resource_type" reporter:datatype="link"/>
+			<field reporter:label="Target Resource" name="target_resource" reporter:datatype="link"/>
+			<field reporter:label="Current Resource" name="current_resource" reporter:datatype="link"/>
+			<field reporter:label="Request Library" name="request_lib" reporter:datatype="link"/>
+			<field reporter:label="Pickup Library" name="pickup_lib" reporter:datatype="link"/>
+			<field reporter:label="Capture Staff" name="capture_staff" reporter:datatype="link"/>
+			<field reporter:label="Attribute Value Maps" name="attr_val_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
+			<link field="payments" reltype="has_many" key="xact" map="" class="mp"/>
+			<link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
+			<link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
+			<link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
+			<link field="summary" reltype="might_have" key="id" map="" class="mbts"/>
+			<link field="target_resource_type" reltype="has_a" key="id" map="" class="brt"/>
+			<link field="target_resource" reltype="has_a" key="id" map="" class="brsrc"/>
+			<link field="current_resource" reltype="has_a" key="id" map="" class="brsrc"/>
+			<link field="request_lib" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="pickup_lib" reltype="might_have" key="id" map="" class="aou"/>
+			<link field="capture_staff" reltype="might_have" key="id" map="" class="au"/>
+			<link field="attr_val_maps" reltype="has_many" key="reservation" map="" class="bravm"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_BOOKING_RESERVATION" global_required='true'/>
+				<retrieve />
+				<update permission="ADMIN_BOOKING_RESERVATION" global_required='true'/>
+				<delete permission="ADMIN_BOOKING_RESERVATION" global_required='true'/>
+			</actions>
+		</permacrud>
+	</class>
+	
+	<class id="bravm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="booking::reservation_attr_value_map" oils_persist:tablename="booking.reservation_attr_value_map" reporter:label="Reservation Attribute Value Map">
+		<fields oils_persist:primary="id" oils_persist:sequence="booking.reservation_attr_value_map_id_seq">
+			<field reporter:label="Reservation Attribute Value Map" name="id" reporter:datatype="id"/>
+			<field reporter:label="Reservation" name="reservation" reporter:datatype="link"/>
+			<field reporter:label="Attribute Map" name="attr_value" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="reservation" reltype="has_a" key="id" map="" class="bresv"/>
+			<link field="attr_value" reltype="has_a" key="id" map="" class="brav"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP" global_required='true'/>
+				<retrieve />
+				<update permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP" global_required='true'/>
+				<delete permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP" global_required='true'/>
+			</actions>
+		</permacrud>
+	</class>
+
+	<class id="ccnbi" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket_item" oils_persist:tablename="container.call_number_bucket_item" reporter:label="Call Number Bucket Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.call_number_bucket_item_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="target_call_number" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="pos" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="notes" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link" />
+			<field name="bucket" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="target_call_number" reporter:datatype="link" />
+			<field name="create_time" reporter:datatype="timestamp" />
+			<field name="pos" reporter:datatype="int" />
+			<field name="notes" oils_persist:virtual="true" reporter:datatype="link" />
 		</fields>
 		<links>
 			<link field="target_call_number" reltype="has_a" key="id" map="" class="acn"/>
@@ -2435,58 +2465,46 @@
             <link field="notes" reltype="has_many" map="" key="item" class="ccnbin"/>
 		</links>
 	</class>
-	<class id="ccnbin" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket_item_note" oils_persist:tablename="container.call_number_bucket_item_note">
+	<class id="ccnbin" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket_item_note" oils_persist:tablename="container.call_number_bucket_item_note" reporter:label="Call Number Bucket Item Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.call_number_bucket_item_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="item" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="item" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="item" reltype="has_a" key="id" map="" class="ccnbi"/>
 		</links>
 	</class>
-	<class id="cbreb" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket" oils_persist:tablename="container.biblio_record_entry_bucket">
+	<class id="cbreb" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket" oils_persist:tablename="container.biblio_record_entry_bucket" reporter:label="Bibliographic Record Entry Bucket">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.biblio_record_entry_bucket_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="items" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
+			<field name="items" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="btype" reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="name" reporter:datatype="text"/>
+			<field name="owner" reporter:datatype="link"/>
+			<field name="pub" reporter:datatype="bool"/>
+			<field name="create_time" reporter:datatype="timestamp" />
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
 			<link field="items" reltype="has_many" key="bucket" map="" class="cbrebi"/>
 		</links>
 	</class>
-	<class id="cbrebn" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket_note" oils_persist:tablename="container.biblio_record_entry_bucket_note">
+	<class id="cbrebn" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket_note" oils_persist:tablename="container.biblio_record_entry_bucket_note" reporter:label="Bibliographic Record Entry Bucket Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.biblio_record_entry_bucket_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="bucket" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="bucket" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="bucket" reltype="has_a" key="id" map="" class="cbreb"/>
 		</links>
 	</class>
-	<class id="ahcm" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_copy_map" oils_persist:tablename="action.hold_copy_map">
+	<class id="ahcm" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_copy_map" oils_persist:tablename="action.hold_copy_map" reporter:label="Hold Copy Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.hold_copy_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="hold" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="target_copy" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="hold" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="target_copy" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="hold" reltype="has_a" key="id" map="" class="ahr"/>
@@ -2495,15 +2513,12 @@
 	</class>
 	<class id="ahn" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_notification" oils_persist:tablename="action.hold_notification" reporter:label="Hold Notification">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.hold_notification_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Hold" name="hold" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Notification ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Notification Method" name="method" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Notification Note" name="note" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Notifying Staff" name="notify_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Notification Date/Time" name="notify_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
+			<field reporter:label="Hold" name="hold" reporter:datatype="link"/>
+			<field reporter:label="Notification ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Notification Method" name="method"  reporter:datatype="text"/>
+			<field reporter:label="Notification Note" name="note"  reporter:datatype="text"/>
+			<field reporter:label="Notifying Staff" name="notify_staff" reporter:datatype="link"/>
+			<field reporter:label="Notification Date/Time" name="notify_time" reporter:datatype="timestamp"/>
 		</fields>
 		<links>
 			<link field="hold" reltype="has_a" key="id" map="" class="ahr"/>
@@ -2512,19 +2527,17 @@
 	</class>
 	<class id="acpl" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::copy_location" oils_persist:tablename="asset.copy_location" reporter:label="Copy/Shelving Location">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.copy_location_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Can Circulate?" name="circulate" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="bool"/>
-			<field reporter:label="Is Holdable?" name="holdable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Hold Capture Requires Verification" name="hold_verify" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Location ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Is OPAC Visible?" name="opac_visible" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Owning Org Unit" name="owning_lib" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
+			<field reporter:label="Can Circulate?" name="circulate"  reporter:datatype="bool"/>
+			<field reporter:label="Is Holdable?" name="holdable" reporter:datatype="bool"/>
+			<field reporter:label="Hold Capture Requires Verification" name="hold_verify" reporter:datatype="bool"/>
+			<field reporter:label="Location ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Name" name="name"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Is OPAC Visible?" name="opac_visible" reporter:datatype="bool"/>
+			<field reporter:label="Owning Org Unit" name="owning_lib"  reporter:datatype="org_unit"/>
 		</fields>
 		<links>
 			<link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="distribution_formula_entries" reltype="has_many" key="location" map="" class="acqdfe"/>
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
@@ -2535,15 +2548,131 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="ascecm" controller="open-ils.cstore" oils_obj:fieldmapper="asset::stat_cat_entry_copy_map" oils_persist:tablename="asset.stat_cat_entry_copy_map">
+	<class id="svr" controller="open-ils.cstore" oils_obj:fieldmapper="serial::virtual_record" oils_persist:virtual="true" reporter:label="Serial Virtual Record">
+		<fields>
+			<field name="id" oils_persist:virtual="true" />
+			<field name="location" oils_persist:virtual="true" />
+			<field name="owning_lib" oils_persist:virtual="true" />
+			<field name="holdings" oils_persist:virtual="true" />
+			<field name="current_holdings" oils_persist:virtual="true" />
+			<field name="supplements" oils_persist:virtual="true" />
+			<field name="current_supplements" oils_persist:virtual="true" />
+			<field name="indexes" oils_persist:virtual="true" />
+			<field name="current_indexes" oils_persist:virtual="true" />
+			<field name="online" oils_persist:virtual="true" />
+			<field name="missing" oils_persist:virtual="true" />
+			<field name="incomplete" oils_persist:virtual="true" />
+		</fields>
+	</class>
+	<class id="sre" controller="open-ils.pcrud open-ils.cstore" oils_obj:fieldmapper="serial::record_entry" oils_persist:tablename="serial.record_entry" reporter:label="Serial Record Entry">
+		<fields oils_persist:primary="id" oils_persist:sequence="serial.record_entry_id_seq">
+			<field name="active" reporter:datatype="bool"/>
+			<field reporter:label="Bib Record" name="record" reporter:datatype="link"/>
+			<field name="create_date" reporter:datatype="timestamp"/>
+			<field name="creator" />
+			<field name="deleted" reporter:datatype="bool"/>
+			<field name="edit_date" reporter:datatype="timestamp"/>
+			<field name="editor" />
+			<field name="id" reporter:datatype="id" />
+			<field name="last_xact_id" />
+			<field name="marc" />
+			<field name="source" />
+			<field reporter:label="Owning Org Unit" name="owning_lib" reporter:datatype="org_unit"/>
+		</fields>
+		<links>
+			<link field="record" reltype="has_a" key="id" map="" class="bre"/>
+			<link field="editor" reltype="has_a" key="id" map="" class="au"/>
+			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
+			<link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="CREATE_MFHD_RECORD" context_field="owning_lib"/>
+				<retrieve/>
+				<update permission="UPDATE_MFHD_RECORD" context_field="owning_lib"/>
+				<delete permission="DELETE_MFHD_RECORD" context_field="owning_lib"/>
+			</actions>
+		</permacrud>
+	</class>
+	<class id="ssub" controller="open-ils.cstore" oils_obj:fieldmapper="serial::subscription" oils_persist:tablename="serial.subscription" reporter:label="Subscription">
+		<fields oils_persist:primary="id" oils_persist:sequence="serial.subscription_id_seq">
+			<field name="active" reporter:datatype="bool"/>
+			<field reporter:label="Call Number" name="call_number" reporter:datatype="link"/>
+			<field reporter:label="URI" name="uri" reporter:datatype="link"/>
+			<field reporter:label="Start date" name="start_date" reporter:datatype="timestamp"/>
+			<field reporter:label="End date" name="end_date" reporter:datatype="timestamp"/>
+		</fields>
+		<links>
+			<link field="call_number" reltype="might_have" key="id" map="" class="acn"/>
+			<link field="uri" reltype="might_have" key="id" map="" class="auri"/>
+		</links>
+	</class>
+	<class id="sbu" controller="open-ils.cstore" oils_obj:fieldmapper="serial::binding_unit" oils_persist:tablename="serial.binding_unit" reporter:label="Binding Unit">
+		<fields oils_persist:primary="id" oils_persist:sequence="serial.binding_unit_id_seq">
+			<field name="active" reporter:datatype="bool"/>
+			<field reporter:label="Subscription" name="subscription" reporter:datatype="link"/>
+			<field reporter:label="Label" name="label" />
+		</fields>
+		<links>
+			<link field="subscription" reltype="has_a" key="id" map="" class="ssub"/>
+		</links>
+	</class>
+	<class id="siss" controller="open-ils.cstore" oils_obj:fieldmapper="serial::issuance" oils_persist:tablename="serial.issuance" reporter:label="Issuance">
+		<fields oils_persist:primary="id" oils_persist:sequence="serial.issuance_id_seq">
+			<field name="id" reporter:datatype="id" />
+			<field name="subscription" reporter:datatype="link"/>
+			<field name="target_copy" reporter:datatype="link"/>
+			<field name="location" reporter:datatype="link"/>
+			<field name="binding_unit" reporter:datatype="link"/>
+			<field name="label" />
+		</fields>
+		<links>
+			<link field="subscription" reltype="has_a" key="id" map="" class="ssub"/>
+			<link field="target_copy" reltype="might_have" key="id" map="" class="acp"/>
+			<link field="location" reltype="might_have" key="id" map="" class="acpl"/>
+			<link field="binding_unit" reltype="might_have" key="id" map="" class="sbu"/>
+		</links>
+	</class>
+	<class id="sbsum" controller="open-ils.cstore" oils_obj:fieldmapper="serial::bib_summary" oils_persist:tablename="serial.bib_summary" reporter:label="Bib Summary">
+		<fields oils_persist:primary="id" oils_persist:sequence="serial.bib_summary_id_seq">
+			<field name="id" reporter:datatype="id" />
+			<field name="subscription" reporter:datatype="link"/>
+			<field name="generated_coverage" reporter:datatype="text"/>
+			<field name="textual_holdings" reporter:datatype="text"/>
+		</fields>
+		<links>
+			<link field="subscription" reltype="has_a" key="id" map="" class="ssub"/>
+		</links>
+	</class>
+	<class id="sssum" controller="open-ils.cstore" oils_obj:fieldmapper="serial::sup_summary" oils_persist:tablename="serial.sup_summary" reporter:label="Supplemental Issue Summary">
+		<fields oils_persist:primary="id" oils_persist:sequence="serial.sup_summary_id_seq">
+			<field name="id" reporter:datatype="id" />
+			<field name="subscription" reporter:datatype="link"/>
+			<field name="generated_coverage" reporter:datatype="text"/>
+			<field name="textual_holdings" reporter:datatype="text"/>
+		</fields>
+		<links>
+			<link field="subscription" reltype="has_a" key="id" map="" class="ssub"/>
+		</links>
+	</class>
+	<class id="sisum" controller="open-ils.cstore" oils_obj:fieldmapper="serial::index_summary" oils_persist:tablename="serial.index_summary" reporter:label="Index Summary">
+		<fields oils_persist:primary="id" oils_persist:sequence="serial.index_summary_id_seq">
+			<field name="id" reporter:datatype="id" />
+			<field name="subscription" reporter:datatype="link"/>
+			<field name="generated_coverage" reporter:datatype="text"/>
+			<field name="textual_holdings" reporter:datatype="text"/>
+		</fields>
+		<links>
+			<link field="subscription" reltype="has_a" key="id" map="" class="ssub"/>
+		</links>
+	</class>
+
+	<class id="ascecm" controller="open-ils.cstore" oils_obj:fieldmapper="asset::stat_cat_entry_copy_map" oils_persist:tablename="asset.stat_cat_entry_copy_map" reporter:label="Statistical Category Entry Copy Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.stat_cat_entry_copy_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="owning_copy" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="stat_cat" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="stat_cat_entry" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="owning_copy" reporter:datatype="link"/>
+			<field name="stat_cat" reporter:datatype="link"/>
+			<field name="stat_cat_entry" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owning_copy" reltype="has_a" key="id" map="" class="acp"/>
@@ -2553,11 +2682,8 @@
 	</class>
 	<class id="citm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::item_type_map" oils_persist:tablename="config.item_type_map" reporter:label="Item Type Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Item Type Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="text"/>
-			<field reporter:label="Item Type" name="value" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Item Type Code" name="code" reporter:selector="value" reporter:datatype="text"/>
+			<field reporter:label="Item Type" name="value"  reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -2571,11 +2697,8 @@
 	</class>
 	<class id="cblvl" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::bib_level_map" oils_persist:tablename="config.bib_level_map" reporter:label="Bib Level Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Bib Level Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Bib Level" name="value" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Bib Level Code" name="code"  reporter:datatype="text"/>
+			<field reporter:label="Bib Level" name="value"  reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -2589,14 +2712,11 @@
 	</class>
 	<class id="sra" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="search::relevance_adjustment" oils_persist:tablename="search.relevance_adjustment" reporter:label="Relevance Adjustment">
 		<fields oils_persist:primary="id" oils_persist:sequence="search.relevance_adjustment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="id"/>
-			<field reporter:label="Active" name="active" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="bool"/>
-			<field reporter:label="Index Field" name="field" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="link"/>
-			<field reporter:label="Bump Type" name="bump_type" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Multiplier" name="multiplier" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="number"/>
+			<field reporter:label="ID" name="id"  reporter:datatype="id"/>
+			<field reporter:label="Active" name="active"  reporter:datatype="bool"/>
+			<field reporter:label="Index Field" name="field"  reporter:datatype="link"/>
+			<field reporter:label="Bump Type" name="bump_type"  reporter:datatype="text"/>
+			<field reporter:label="Multiplier" name="multiplier"  reporter:datatype="number"/>
 		</fields>
 		<links>
             <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
@@ -2610,13 +2730,10 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="lasso" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_lasso" oils_persist:tablename="actor.org_lasso">
+	<class id="lasso" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_lasso" oils_persist:tablename="actor.org_lasso" reporter:label="Org Lasso">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_lasso_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="name" reporter:datatype="text"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -2628,14 +2745,11 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="lmap" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_lasso_map" oils_persist:tablename="actor.org_lasso_map">
+	<class id="lmap" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_lasso_map" oils_persist:tablename="actor.org_lasso_map" reporter:label="Org Lasso Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_lasso_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="lasso" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="lasso" reporter:datatype="link"/>
+			<field name="org_unit" reporter:datatype="org_unit"/>
 		</fields>
 		<links>
 			<link field="lasso" reltype="has_a" key="id" map="" class="lasso"/>
@@ -2650,54 +2764,45 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="aoup" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit_proximity" oils_persist:tablename="actor.org_unit_proximity">
+	<class id="aoup" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit_proximity" oils_persist:tablename="actor.org_unit_proximity" reporter:label="Org Unit Proximity">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_proximity_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="from_org" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field name="to_org" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field name="prox" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
+			<field name="id" reporter:datatype="id" />
+			<field name="from_org" reporter:datatype="org_unit"/>
+			<field name="to_org" reporter:datatype="org_unit"/>
+			<field name="prox" reporter:datatype="int" />
 		</fields>
 		<links>
 			<link field="from_org" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="to_org" reltype="has_a" key="id" map="" class="aou"/>
 		</links>
 	</class>
-	<class id="ssr" controller="open-ils.cstore" oils_obj:fieldmapper="search::search_result" oils_persist:tablename="search.search_result" oils_persist:readonly="true">
+	<class id="ssr" controller="open-ils.cstore" oils_obj:fieldmapper="search::search_result" oils_persist:tablename="search.search_result" oils_persist:readonly="true" reporter:label="Search Result">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_proximity_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Relevance" name="rel" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="float"/>
-			<field reporter:label="Record" name="record" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Total Results" name="total" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Checked" name="checked" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Visible" name="visible" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Deleted" name="deleted" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Excluded" name="excluded" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="int"/>
+			<field reporter:label="ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Relevance" name="rel" reporter:datatype="float"/>
+			<field reporter:label="Record" name="record" reporter:datatype="link"/>
+			<field reporter:label="Total Results" name="total" reporter:datatype="int" />
+			<field reporter:label="Checked" name="checked" reporter:datatype="int"/>
+			<field reporter:label="Visible" name="visible" reporter:datatype="int"/>
+			<field reporter:label="Deleted" name="deleted" reporter:datatype="int"/>
+			<field reporter:label="Excluded" name="excluded" reporter:datatype="int"/>
 		</fields>
 		<links/>
 	</class>
 	<class id="asv" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::survey" oils_persist:tablename="action.survey" reporter:label="Survey">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.survey_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Questions" name="questions" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Responses" name="responses" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Survey End Date/Time" name="end_date" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Survey ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="OPAC Survey?" name="opac" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Owning Library" name="owner" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Poll Style?" name="poll" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Is Required?" name="required" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Survey Start Date/Time" name="start_date" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Display in User Summary" name="usr_summary" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Questions" name="questions" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Responses" name="responses" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text"/>
+			<field reporter:label="Survey End Date/Time" name="end_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Survey ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="OPAC Survey?" name="opac" reporter:datatype="bool"/>
+			<field reporter:label="Owning Library" name="owner" reporter:datatype="org_unit"/>
+			<field reporter:label="Poll Style?" name="poll" reporter:datatype="bool"/>
+			<field reporter:label="Is Required?" name="required" reporter:datatype="bool"/>
+			<field reporter:label="Survey Start Date/Time" name="start_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Display in User Summary" name="usr_summary" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -2713,22 +2818,19 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="aoa" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_address" oils_persist:tablename="actor.org_address">
+	<class id="aoa" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_address" oils_persist:tablename="actor.org_address" reporter:label="Org Address">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_address_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="address_type" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="city" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="country" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="county" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="org_unit" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field name="post_code" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="state" oils_obj:array_position="10" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="street1" oils_obj:array_position="11" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="street2" oils_obj:array_position="12" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="valid" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field name="address_type"  reporter:datatype="text"/>
+			<field name="city"  reporter:datatype="text"/>
+			<field name="country"  reporter:datatype="text"/>
+			<field name="county"  reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="org_unit" reporter:datatype="org_unit"/>
+			<field name="post_code"  reporter:datatype="text"/>
+			<field name="state"  reporter:datatype="text"/>
+			<field name="street1"  reporter:datatype="text"/>
+			<field name="street2"  reporter:datatype="text"/>
+			<field name="valid" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
@@ -2744,41 +2846,39 @@
 	</class>
 	<class id="ahr" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_request" oils_persist:tablename="action.hold_request" reporter:core="true" reporter:label="Hold Request">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.hold_request_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="status" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field reporter:label="Transit" name="transit" oils_obj:array_position="4" oils_persist:virtual="true" />
-			<field reporter:label="Capture Date/Time" name="capture_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Currently Targeted Copy" name="current_copy" oils_obj:array_position="6" oils_persist:virtual="false" />
-			<field reporter:label="Notify by Email?" name="email_notify" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Hold Expire Date/Time" name="expire_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Fulfilling Library" name="fulfillment_lib" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Fulfilling Staff" name="fulfillment_staff" oils_obj:array_position="10" oils_persist:virtual="false" />
-			<field reporter:label="Fulfillment Date/Time" name="fulfillment_time" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Hold Type" name="hold_type" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Holdable Formats (for M-type hold)" name="holdable_formats" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Hold ID" name="id" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Notifications Phone Number" name="phone_notify" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Pickup Library" name="pickup_lib" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Last Targeting Date/Time" name="prev_check_time" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Requesting Library" name="request_lib" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Request Date/Time" name="request_time" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Requesting User" name="requestor" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Item Selection Depth" name="selection_depth" oils_obj:array_position="21" oils_persist:virtual="false" />
-			<field reporter:label="Selection Locus" name="selection_ou" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Target Object ID" name="target" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Hold User" name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Hold Cancel Date/Time" name="cancel_time" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="notify_time" oils_obj:array_position="26" oils_persist:virtual="true" reporter:datatype="timestamp"/>
-			<field name="notify_count" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="int" />
-			<field reporter:label="Notifications" name="notifications" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Bib Record link" name="bib_rec" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Eligible Copies" name="eligible_copies" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Currently Frozen" name="frozen" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Thaw Date (if frozen)" name="thaw_date" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Cancelation cause" name="cancel_cause" oils_obj:array_position="33" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Cancelation note" name="cancel_note" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="status" oils_persist:virtual="true" />
+			<field reporter:label="Transit" name="transit" oils_persist:virtual="true" />
+			<field reporter:label="Capture Date/Time" name="capture_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Currently Targeted Copy" name="current_copy" />
+			<field reporter:label="Notify by Email?" name="email_notify" reporter:datatype="bool"/>
+			<field reporter:label="Hold Expire Date/Time" name="expire_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Fulfilling Library" name="fulfillment_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Fulfilling Staff" name="fulfillment_staff" />
+			<field reporter:label="Fulfillment Date/Time" name="fulfillment_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Hold Type" name="hold_type" reporter:datatype="text"/>
+			<field reporter:label="Holdable Formats (for M-type hold)" name="holdable_formats" reporter:datatype="text"/>
+			<field reporter:label="Hold ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Notifications Phone Number" name="phone_notify" reporter:datatype="text"/>
+			<field reporter:label="Pickup Library" name="pickup_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Last Targeting Date/Time" name="prev_check_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Requesting Library" name="request_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Request Date/Time" name="request_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Requesting User" name="requestor" reporter:datatype="link"/>
+			<field reporter:label="Item Selection Depth" name="selection_depth" />
+			<field reporter:label="Selection Locus" name="selection_ou" reporter:datatype="org_unit"/>
+			<field reporter:label="Target Object ID" name="target" reporter:datatype="link"/>
+			<field reporter:label="Hold User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Hold Cancel Date/Time" name="cancel_time" reporter:datatype="timestamp"/>
+			<field name="notify_time" oils_persist:virtual="true" reporter:datatype="timestamp"/>
+			<field name="notify_count" oils_persist:virtual="true" reporter:datatype="int" />
+			<field reporter:label="Notifications" name="notifications" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Bib Record link" name="bib_rec" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Eligible Copies" name="eligible_copies" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Currently Frozen" name="frozen" reporter:datatype="bool"/>
+			<field reporter:label="Thaw Date (if frozen)" name="thaw_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Shelf Time" name="shelf_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Cancelation cause" name="cancel_cause" reporter:datatype="link" />
+			<field reporter:label="Cancelation note" name="cancel_note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="fulfillment_lib" reltype="has_a" key="id" map="" class="aou"/>
@@ -2798,29 +2898,33 @@
 	</class>
 	<class id="aou" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_unit" oils_persist:tablename="actor.org_unit" reporter:label="Organizational Unit" oils_persist:field_safe="true">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Subordinate Organizational Units" name="children" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="org_unit"/>
-			<field reporter:label="Billing Address" name="billing_address" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Holds Receiving Address" name="holds_address" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Organizational Unit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="ILL Receiving Address" name="ill_address" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Mailing Address" name="mailing_address" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Organizational Unit Type" name="ou_type" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Parent Organizational Unit" name="parent_ou" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Short (Policy) Name" name="shortname" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Email Address" name="email" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Phone Number" name="phone" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Users" name="users" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Closed Dates" name="closed_dates" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulations" name="circulations" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Settings" name="settings" oils_obj:array_position="19" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Addresses" name="addresses" oils_obj:array_position="20" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Checkins" name="checkins" oils_obj:array_position="21" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Workstations" name="workstations" oils_obj:array_position="22" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Subordinate Organizational Units" name="children" oils_persist:virtual="true" reporter:datatype="org_unit"/>
+			<field reporter:label="Billing Address" name="billing_address" reporter:datatype="link"/>
+			<field reporter:label="Holds Receiving Address" name="holds_address" reporter:datatype="link"/>
+			<field reporter:label="Organizational Unit ID" name="id" reporter:datatype="org_unit" reporter:selector="shortname"/>
+			<field reporter:label="ILL Receiving Address" name="ill_address" reporter:datatype="link"/>
+			<field reporter:label="Mailing Address" name="mailing_address" reporter:datatype="link"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Organizational Unit Type" name="ou_type" reporter:datatype="link"/>
+			<field reporter:label="Parent Organizational Unit" name="parent_ou" reporter:datatype="link"/>
+			<field reporter:label="Short (Policy) Name" name="shortname" reporter:datatype="text"/>
+			<field reporter:label="Email Address" name="email" reporter:datatype="text"/>
+			<field reporter:label="Phone Number" name="phone" reporter:datatype="text"/>
+			<field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool"/>
+			<field reporter:label="Users" name="users" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Closed Dates" name="closed_dates" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulations" name="circulations" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Settings" name="settings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Addresses" name="addresses" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Checkins" name="checkins" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Workstations" name="workstations" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Reservation Requests" name="resv_requests" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Reservation Pickups" name="resv_pickups" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Resource Types" name="rsrc_types" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Resources" name="resources" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Resource Attributes" name="rsrc_attrs" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Attribute Values" name="attr_vals" oils_persist:virtual="true" reporter:datatype="link"/>
+
 		</fields>
 		<links>
 			<link field="billing_address" reltype="has_a" key="id" map="" class="aoa"/>
@@ -2837,6 +2941,14 @@
 			<link field="addresses" reltype="has_many" key="org_unit" map="" class="aoa"/>
 			<link field="checkins" reltype="has_many" key="checkin_lib" map="" class="circ"/>
 			<link field="workstations" reltype="has_many" key="owning_lib" map="" class="aws"/>
+			<link field="distribution_formulas" reltype="has_many" key="owner" map="" class="acqdf"/>
+			<link field="distribution_formula_entries" reltype="has_many" key="owning_lib" map="" class="acqdfe"/>
+			<link field="resv_requests" reltype="has_many" key="request_lib" map="" class="bresv"/>
+			<link field="resv_pickups" reltype="has_many" key="pickup_lib" map="" class="bresv"/>
+			<link field="rsrc_types" reltype="has_many" key="owner" map="" class="brt"/>
+			<link field="resources" reltype="has_many" key="owner" map="" class="brsrc"/>
+			<link field="rsrc_attrs" reltype="has_many" key="owner" map="" class="bra"/>
+			<link field="attr_vals" reltype="has_many" key="owner" map="" class="brav"/>
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
@@ -2850,32 +2962,26 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="ccnb" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket" oils_persist:tablename="container.call_number_bucket">
+	<class id="ccnb" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket" oils_persist:tablename="container.call_number_bucket" reporter:label="Call Number Bucket">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.call_number_bucket_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="items" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
+			<field name="items" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="btype" reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="name"  reporter:datatype="text"/>
+			<field name="owner" reporter:datatype="link"/>
+			<field name="pub" reporter:datatype="bool"/>
+			<field name="create_time" reporter:datatype="timestamp" />
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
 			<link field="items" reltype="has_many" key="bucket" map="" class="ccnbi"/>
 		</links>
 	</class>
-	<class id="ccnbn" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket_note" oils_persist:tablename="container.call_number_bucket_note">
+	<class id="ccnbn" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket_note" oils_persist:tablename="container.call_number_bucket_note" reporter:label="Call Number Bucket Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.call_number_bucket_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="bucket" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="bucket" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="bucket" reltype="has_a" key="id" map="" class="ccnb"/>
@@ -2883,14 +2989,11 @@
 	</class>
 	<class id="asc" controller="open-ils.cstore" oils_obj:fieldmapper="asset::stat_cat" oils_persist:tablename="asset.stat_cat" reporter:label="Asset Statistical Category">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.stat_cat_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Entries" name="entries" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Stat Cat ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" reporter:selector="name"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Owning Library" name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="org_unit"/>
+			<field reporter:label="Entries" name="entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Stat Cat ID" name="id" reporter:datatype="id" reporter:selector="name"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool"/>
+			<field reporter:label="Owning Library" name="owner" reporter:datatype="org_unit"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -2899,13 +3002,10 @@
 	</class>
 	<class id="ac" controller="open-ils.cstore" oils_obj:fieldmapper="actor::card" oils_persist:tablename="actor.card" reporter:label="Library Card">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.card_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="IsActive?" name="active" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Barcode" name="barcode" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Card ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="User" name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="IsActive?" name="active" reporter:datatype="bool"/>
+			<field reporter:label="Barcode" name="barcode" reporter:datatype="text"/>
+			<field reporter:label="Card ID" name="id" reporter:datatype="id" />
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -2913,61 +3013,49 @@
 	</class>
 	<class id="actsc" controller="open-ils.cstore" oils_obj:fieldmapper="actor::stat_cat" oils_persist:tablename="actor.stat_cat" reporter:label="User Statistical Category">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.stat_cat_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Entries" name="entries" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Stat Cat ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" reporter:selector="name"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Owning Library" name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="org_unit"/>
+			<field reporter:label="Entries" name="entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Stat Cat ID" name="id" reporter:datatype="id" reporter:selector="name"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool"/>
+			<field reporter:label="Owning Library" name="owner" reporter:datatype="org_unit"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="entries" reltype="has_many" key="stat_cat" map="" class="actsce"/>
 		</links>
 	</class>
-	<class id="msefe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::series_field_entry" oils_persist:tablename="metabib.series_field_entry">
+	<class id="msefe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::series_field_entry" oils_persist:tablename="metabib.series_field_entry" reporter:label="Series Field Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.series_field_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="value" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field name="field" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="source" reporter:datatype="link"/>
+			<field name="value"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="source" reltype="has_a" key="id" map="" class="bre"/>
 			<link field="field" reltype="has_a" key="id" map="" class="cmf"/>
 		</links>
 	</class>
-	<class id="cub" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket" oils_persist:tablename="container.user_bucket">
+	<class id="cub" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket" oils_persist:tablename="container.user_bucket" reporter:label="User Bucket">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.user_bucket_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="items" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
+			<field name="items" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="btype" reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="name"  reporter:datatype="text"/>
+			<field name="owner" reporter:datatype="link"/>
+			<field name="pub" reporter:datatype="bool"/>
+			<field name="create_time" reporter:datatype="timestamp" />
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
 			<link field="items" reltype="has_many" key="bucket" map="" class="cubi"/>
 		</links>
 	</class>
-	<class id="cubn" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket_note" oils_persist:tablename="container.user_bucket_note">
+	<class id="cubn" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket_note" oils_persist:tablename="container.user_bucket_note" reporter:label="User Bucket Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.user_bucket_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="bucket" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="bucket" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="bucket" reltype="has_a" key="id" map="" class="cub"/>
@@ -2975,18 +3063,15 @@
 	</class>
 	<class id="mcrp" controller="open-ils.cstore" oils_obj:fieldmapper="money::credit_payment" oils_persist:tablename="money.credit_payment" reporter:label="House Credit Payment">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Pyament ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Payment Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transaction" name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="10" oils_persist:virtual="true"  reporter:datatype="text"/>
-			<field reporter:label="Payment link" name="payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Amount Collected" name="amount_collected" reporter:datatype="money" />
+			<field reporter:label="Pyament ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Payment Note" name="note"  reporter:datatype="text"/>
+			<field reporter:label="Payment Timestamp" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Payment Type" name="payment_type" oils_persist:virtual="true"  reporter:datatype="text"/>
+			<field reporter:label="Payment link" name="payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="payment" reltype="might_have" key="id" map="" class="mp"/>
@@ -2994,18 +3079,15 @@
 			<link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
 		</links>
 	</class>
-	<class id="afr" controller="open-ils.cstore" oils_obj:fieldmapper="authority::full_rec" oils_persist:tablename="authority.full_rec">
+	<class id="afr" controller="open-ils.cstore" oils_obj:fieldmapper="authority::full_rec" oils_persist:tablename="authority.full_rec" reporter:label="Full Authority Record">
 		<fields oils_persist:primary="id" oils_persist:sequence="authority.full_rec_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="ind1" oils_obj:array_position="4" oils_persist:virtual="false" />
-			<field name="ind2" oils_obj:array_position="5" oils_persist:virtual="false" />
-			<field name="record" oils_obj:array_position="6" oils_persist:virtual="false" />
-			<field name="subfield" oils_obj:array_position="7" oils_persist:virtual="false" />
-			<field name="tag" oils_obj:array_position="8" oils_persist:virtual="false" />
-			<field name="value" oils_obj:array_position="9" oils_persist:virtual="false" />
+			<field name="id" reporter:datatype="id" />
+			<field name="ind1" />
+			<field name="ind2" />
+			<field name="record" />
+			<field name="subfield" />
+			<field name="tag" />
+			<field name="value" />
 		</fields>
 		<links>
 			<link field="record" reltype="has_a" key="id" map="" class="are"/>
@@ -3013,14 +3095,11 @@
 	</class>
 	<class id="cnct" controller="open-ils.cstore" oils_obj:fieldmapper="config::non_cataloged_type" oils_persist:tablename="config.non_cataloged_type" reporter:label="Non-cataloged Type">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.non_cataloged_type_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Circulation Duration" name="circ_duration" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Non-cat Type ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="In House?" name="in_house" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Name" name="name" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="7" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
+			<field reporter:label="Circulation Duration" name="circ_duration" reporter:datatype="interval"/>
+			<field reporter:label="Non-cat Type ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="In House?" name="in_house" reporter:datatype="bool"/>
+			<field reporter:label="Name" name="name"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Owning Library" name="owning_lib"  reporter:datatype="org_unit"/>
 		</fields>
 		<links>
 			<link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
@@ -3028,18 +3107,15 @@
 	</class>
 	<class id="aout" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::org_unit_type" oils_persist:tablename="actor.org_unit_type" reporter:label="Organizational Unit Type">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_type_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Subordinate Types" name="children" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Can Have Users?" name="can_have_users" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Can Have Volumes?" name="can_have_vols" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Type Depth" name="depth" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Type ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Type Name" name="name" oils_obj:array_position="8" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="OPAC Label" name="opac_label" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Parent Type" name="parent" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Org Units" name="org_units" oils_obj:array_position="11" oils_persist:virtual="true"  reporter:datatype="org_unit"/>
+			<field reporter:label="Subordinate Types" name="children" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Can Have Users?" name="can_have_users" reporter:datatype="bool"/>
+			<field reporter:label="Can Have Volumes?" name="can_have_vols" reporter:datatype="bool"/>
+			<field reporter:label="Type Depth" name="depth" reporter:datatype="int" />
+			<field reporter:label="Type ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Type Name" name="name"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="OPAC Label" name="opac_label"  reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Parent Type" name="parent" reporter:datatype="link"/>
+			<field reporter:label="Org Units" name="org_units" oils_persist:virtual="true"  reporter:datatype="org_unit"/>
 		</fields>
 		<links>
 			<link field="parent" reltype="has_a" key="id" map="" class="aout"/>
@@ -3055,19 +3131,16 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="bren" controller="open-ils.cstore" oils_obj:fieldmapper="biblio::record_note" oils_persist:tablename="biblio.record_note">
+	<class id="bren" controller="open-ils.cstore" oils_obj:fieldmapper="biblio::record_note" oils_persist:tablename="biblio.record_note" reporter:label="Bib Record Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="biblio.record_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="edit_date" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="editor" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="record" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="value" oils_obj:array_position="10" oils_persist:virtual="false"  reporter:datatype="text"/>
+			<field name="create_date" reporter:datatype="timestamp"/>
+			<field name="creator" reporter:datatype="link"/>
+			<field name="edit_date" reporter:datatype="timestamp"/>
+			<field name="editor" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="pub" reporter:datatype="bool"/>
+			<field name="record" reporter:datatype="link"/>
+			<field name="value"  reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
@@ -3075,15 +3148,12 @@
 			<link field="record" reltype="has_a" key="id" map="" class="bre"/>
 		</links>
 	</class>
-	<class id="mucs" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_circulation_summary" oils_persist:tablename="money.usr_circulation_summary">
+	<class id="mucs" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_circulation_summary" oils_persist:tablename="money.usr_circulation_summary" reporter:label="User Circulation Summary">
 		<fields oils_persist:primary="usr" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="balance_owed" reporter:datatype="money" />
+			<field name="total_owed" reporter:datatype="money" />
+			<field name="total_paid" reporter:datatype="money" />
+			<field name="usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -3091,20 +3161,17 @@
 	</class>
 	<class id="mg" controller="open-ils.cstore" oils_obj:fieldmapper="money::grocery" oils_persist:tablename="money.grocery" reporter:label="Grocery Transaction">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Billing Location" name="billing_location" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transaction ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="User" name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transaction Finish Timestamp" name="xact_finish" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Transaction Start Timestamp" name="xact_start" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Billings" name="billings" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Payments" name="payments" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Billable Transaction link" name="billable_transaction" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Billing Location" name="billing_location" reporter:datatype="link"/>
+			<field reporter:label="Transaction ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note"  reporter:datatype="text"/>
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Transaction Finish Timestamp" name="xact_finish" reporter:datatype="timestamp" />
+			<field reporter:label="Transaction Start Timestamp" name="xact_start" reporter:datatype="timestamp" />
+			<field reporter:label="Billings" name="billings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Payments" name="payments" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Billable Transaction link" name="billable_transaction" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Billing Totals" name="billing_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Totals" name="payment_total" oils_persist:virtual="true" reporter:datatype="money"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -3116,15 +3183,12 @@
 			<link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
 		</links>
 	</class>
-	<class id="cbs" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::bib_source" oils_persist:tablename="config.bib_source">
+	<class id="cbs" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::bib_source" oils_persist:tablename="config.bib_source" reporter:label="Bib Source">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.bib_source_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="source" reporter:datatype="id"/>
-			<field name="quality" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="transcendant" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field name="id" reporter:selector="source" reporter:datatype="id"/>
+			<field name="quality" reporter:datatype="int" />
+			<field name="source" reporter:datatype="text"/>
+			<field name="transcendant" reporter:datatype="bool"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -3138,21 +3202,18 @@
 	</class>
 	<class id="mbt" controller="open-ils.cstore" oils_obj:fieldmapper="money::billable_transaction" oils_persist:tablename="money.billable_xact" reporter:label="Billable Transaction">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Transaction ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="User" name="usr" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transaction Start Date/Time" name="xact_start" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Unrecovered Debt" name="unrecovered" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Grocery Billing link" name="grocery" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulation Billing link" name="circulation" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Billing Line Items" name="billings" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Payment Line Items" name="payments" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Payment Summary" name="summary" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Transaction ID" name="id" reporter:datatype="id" />
+			<field reporter:label="User" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction Start Date/Time" name="xact_start" reporter:datatype="timestamp"/>
+			<field reporter:label="Unrecovered Debt" name="unrecovered" reporter:datatype="bool"/>
+			<field reporter:label="Grocery Billing link" name="grocery" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulation Billing link" name="circulation" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Billing Line Items" name="billings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Payment Line Items" name="payments" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Billing Totals" name="billing_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Totals" name="payment_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Summary" name="summary" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="grocery" reltype="might_have" key="id" map="" class="mg"/>
@@ -3167,30 +3228,24 @@
 	</class>
 	<class id="actsce" controller="open-ils.cstore" oils_obj:fieldmapper="actor::stat_cat_entry" oils_persist:tablename="actor.stat_cat_entry" reporter:label="User Stat Cat Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.stat_cat_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Stat Cat" name="stat_cat" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Entry Value" name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Entry ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Entry Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Stat Cat" name="stat_cat" reporter:datatype="link"/>
+			<field reporter:label="Entry Value" name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="stat_cat" reltype="has_a" key="id" map="" class="actsc"/>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
 		</links>
 	</class>
-	<class id="cubi" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket_item" oils_persist:tablename="container.user_bucket_item">
+	<class id="cubi" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket_item" oils_persist:tablename="container.user_bucket_item" reporter:label="User Bucket Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.user_bucket_item_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="target_user" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="pos" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="notes" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link" />
+			<field name="bucket" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="target_user" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp" />
+			<field name="pos" reporter:datatype="int" />
+			<field name="notes" oils_persist:virtual="true" reporter:datatype="link" />
 		</fields>
 		<links>
 			<link field="target_user" reltype="has_a" key="id" map="" class="au"/>
@@ -3198,28 +3253,22 @@
             <link field="notes" reltype="has_many" map="" key="item" class="cubin"/>
 		</links>
 	</class>
-	<class id="cubin" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket_item_note" oils_persist:tablename="container.user_bucket_item_note">
+	<class id="cubin" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket_item_note" oils_persist:tablename="container.user_bucket_item_note" reporter:label="User Bucket Item Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.user_bucket_item_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="item" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="item" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="item" reltype="has_a" key="id" map="" class="cubi"/>
 		</links>
 	</class>
-	<class id="mus" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_summary" oils_persist:tablename="money.usr_summary">
+	<class id="mus" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_summary" oils_persist:tablename="money.usr_summary" reporter:label="User Summary">
 		<fields oils_persist:primary="usr" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="balance_owed" reporter:datatype="money" />
+			<field name="total_owed" reporter:datatype="money" />
+			<field name="total_paid" reporter:datatype="money" />
+			<field name="usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -3227,12 +3276,9 @@
 	</class>
 	<class id="clfm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::lit_form_map" oils_persist:tablename="config.lit_form_map" reporter:label="Literary Form" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="LitF Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="LitF Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="LitF Name" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="LitF Code" name="code" reporter:datatype="text"/>
+			<field reporter:label="LitF Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="LitF Name" name="value" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -3246,18 +3292,15 @@
 	</class>
 	<class id="mwp" controller="open-ils.cstore" oils_obj:fieldmapper="money::work_payment" oils_persist:tablename="money.work_payment" reporter:label="Work Payment">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Payment ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transaction ID" name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Payment link" name="payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Amount Collected" name="amount_collected" reporter:datatype="money" />
+			<field reporter:label="Payment ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Payment Timestamp" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction ID" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Payment link" name="payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Payment Type" name="payment_type" oils_persist:virtual="true" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="payment" reltype="might_have" key="id" map="" class="mp"/>
@@ -3267,18 +3310,15 @@
 	</class>
 	<class id="mgp" controller="open-ils.cstore" oils_obj:fieldmapper="money::goods_payment" oils_persist:tablename="money.goods_payment" reporter:label="Goods Payment">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Payment ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transaction ID" name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Payment link" name="payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Amount Collected" name="amount_collected" reporter:datatype="money" />
+			<field reporter:label="Payment ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Payment Timestamp" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction ID" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Payment link" name="payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Payment Type" name="payment_type" oils_persist:virtual="true" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="payment" reltype="might_have" key="id" map="" class="mp"/>
@@ -3286,36 +3326,33 @@
 			<link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
 		</links>
 	</class>
-	<class id="aoc" controller="open-ils.cstore" oils_obj:fieldmapper="action::open_circulation" oils_persist:tablename="action.open_circulation">
+	<class id="aoc" controller="open-ils.cstore" oils_obj:fieldmapper="action::open_circulation" oils_persist:tablename="action.open_circulation" reporter:label="Open Circulation">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="circulation" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="checkin_lib" reporter:datatype="link"/>
+			<field name="checkin_staff" reporter:datatype="link"/>
+			<field name="checkin_time" reporter:datatype="timestamp"/>
+			<field name="circ_lib"  reporter:datatype="org_unit"/>
+			<field name="circ_staff" reporter:datatype="link"/>
+			<field name="desk_renewal" reporter:datatype="bool"/>
+			<field name="due_date" reporter:datatype="timestamp"/>
+			<field name="duration" reporter:datatype="interval"/>
+			<field name="duration_rule" reporter:datatype="link"/>
+			<field name="fine_interval" reporter:datatype="interval"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="max_fine" reporter:datatype="money" />
+			<field name="max_fine_rule" reporter:datatype="link"/>
+			<field name="opac_renewal" reporter:datatype="bool"/>
+			<field name="phone_renewal" reporter:datatype="bool"/>
+			<field name="recuring_fine" reporter:datatype="money" />
+			<field name="recuring_fine_rule" reporter:datatype="link"/>
+			<field name="renewal_remaining" reporter:datatype="int" />
+			<field name="stop_fines" reporter:datatype="text"/>
+			<field name="stop_fines_time" reporter:datatype="timestamp"/>
+			<field name="target_copy" reporter:datatype="link"/>
+			<field name="usr" reporter:datatype="link"/>
+			<field name="xact_finish" reporter:datatype="timestamp" />
+			<field name="xact_start" reporter:datatype="timestamp" />
+			<field name="circulation" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="circulation" reltype="might_have" key="id" map="" class="circ"/>
@@ -3324,32 +3361,26 @@
 			<link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
 		</links>
 	</class>
-	<class id="msfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::subject_field_entry" oils_persist:tablename="metabib.subject_field_entry">
+	<class id="msfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::subject_field_entry" oils_persist:tablename="metabib.subject_field_entry" reporter:label="Subject Field Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.subject_field_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="field" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="source" reporter:datatype="link"/>
+			<field name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="source" reltype="has_a" key="id" map="" class="bre"/>
 			<link field="field" reltype="has_a" key="id" map="" class="cmf"/>
 		</links>
 	</class>
-	<class id="crrf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::rules::recuring_fine" oils_persist:tablename="config.rule_recuring_fine">
+	<class id="crrf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::rules::recuring_fine" oils_persist:tablename="config.rule_recuring_fine" reporter:label="Recurring Fine Rule">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.rule_recuring_fine_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="high" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field name="low" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="normal" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="recurance_interval" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="interval"/>
+			<field name="high" reporter:datatype="money" />
+			<field name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field name="low" reporter:datatype="money" />
+			<field name="name" reporter:datatype="text"/>
+			<field name="normal" reporter:datatype="money" />
+			<field name="recurance_interval" reporter:datatype="interval"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -3363,20 +3394,17 @@
 	</class>
 	<class id="mckp" controller="open-ils.cstore" oils_obj:fieldmapper="money::check_payment" oils_persist:tablename="money.check_payment" reporter:label="Check Payment">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Workstation link" name="cash_drawer" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Check Number" name="check_number" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Payment ID" name="id" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transaction link" name="xact" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Payment link" name="payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Amount Collected" name="amount_collected" reporter:datatype="money" />
+			<field reporter:label="Workstation link" name="cash_drawer" reporter:datatype="link"/>
+			<field reporter:label="Check Number" name="check_number" reporter:datatype="int" />
+			<field reporter:label="Payment ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Payment Timestamp" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction link" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Payment link" name="payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Payment Type" name="payment_type" oils_persist:virtual="true" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="payment" reltype="might_have" key="id" map="" class="mp"/>
@@ -3387,42 +3415,39 @@
 	</class>
 	<class id="acp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::copy" oils_persist:tablename="asset.copy" reporter:core="true" reporter:label="Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.copy_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Statistical Category Entries" name="stat_cat_entries" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Age Hold Protection" name="age_protect" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Alert Message" name="alert_message" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Barcode" name="barcode" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Call Number/Volume" name="call_number" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Circulation Type (MARC)" name="circ_as_type" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Can Circulate" name="circulate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Copy Number on Volume" name="copy_number" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Creation Date/Time" name="create_date" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Creating User" name="creator" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Is Deleted" name="deleted" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Is Deposit Required" name="deposit" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Deposit Amount" name="deposit_amount" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Precat Dummy Author" name="dummy_author" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Precat Dummy Title" name="dummy_title" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Last Edit Date/Time" name="edit_date" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Editing User" name="editor" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Fine Level" name="fine_level" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Is Holdable" name="holdable" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="bool" />
-			<field reporter:label="Copy ID" name="id" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Loan Duration" name="loan_duration" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Shelving Location" name="location" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="bool" />
-			<field reporter:label="Price" name="price" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Is Reference" name="ref" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Copy Status" name="status" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Copy Notes" name="notes" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Stat-Cat entry maps" name="stat_cat_entry_copy_maps" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulations" name="circulations" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Total Circulations" name="total_circ_count" oils_obj:array_position="34" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Holds" name="holds" oils_obj:array_position="35" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Statistical Category Entries" name="stat_cat_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Age Hold Protection" name="age_protect" reporter:datatype="link"/>
+			<field reporter:label="Alert Message" name="alert_message" reporter:datatype="text"/>
+			<field reporter:label="Barcode" name="barcode" reporter:datatype="text"/>
+			<field reporter:label="Call Number/Volume" name="call_number" reporter:datatype="link"/>
+			<field reporter:label="Circulation Type (MARC)" name="circ_as_type" reporter:datatype="text"/>
+			<field reporter:label="Circulating Library" name="circ_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Circulation Modifier" name="circ_modifier" reporter:datatype="link"/>
+			<field reporter:label="Can Circulate" name="circulate" reporter:datatype="bool"/>
+			<field reporter:label="Copy Number on Volume" name="copy_number" reporter:datatype="text"/>
+			<field reporter:label="Creation Date/Time" name="create_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Creating User" name="creator" reporter:datatype="link"/>
+			<field reporter:label="Is Deleted" name="deleted" reporter:datatype="bool"/>
+			<field reporter:label="Is Deposit Required" name="deposit" reporter:datatype="bool"/>
+			<field reporter:label="Deposit Amount" name="deposit_amount" reporter:datatype="money" />
+			<field reporter:label="Precat Dummy Author" name="dummy_author" reporter:datatype="text"/>
+			<field reporter:label="Precat Dummy Title" name="dummy_title" reporter:datatype="text"/>
+			<field reporter:label="Last Edit Date/Time" name="edit_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Editing User" name="editor" reporter:datatype="link"/>
+			<field reporter:label="Fine Level" name="fine_level" reporter:datatype="int"/>
+			<field reporter:label="Is Holdable" name="holdable" reporter:datatype="bool" />
+			<field reporter:label="Copy ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Loan Duration" name="loan_duration" reporter:datatype="int"/>
+			<field reporter:label="Shelving Location" name="location" reporter:datatype="link"/>
+			<field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool" />
+			<field reporter:label="Price" name="price" reporter:datatype="money" />
+			<field reporter:label="Is Reference" name="ref" reporter:datatype="bool"/>
+			<field reporter:label="Copy Status" name="status" reporter:datatype="link"/>
+			<field reporter:label="Copy Notes" name="notes" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Stat-Cat entry maps" name="stat_cat_entry_copy_maps" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulations" name="circulations" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Total Circulations" name="total_circ_count" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Holds" name="holds" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="age_protect" reltype="has_a" key="id" map="" class="crahp"/>
@@ -3438,6 +3463,7 @@
 			<link field="stat_cat_entries" reltype="has_many" key="owning_copy" map="stat_cat_entry" class="ascecm"/>
 			<link field="circulations" reltype="has_many" key="target_copy" map="" class="circ"/>
 			<link field="total_circ_count" reltype="might_have" key="id" map="" class="erfcc"/>
+			<link field="circ_modifier" reltype="has_a" key="code" map="" class="ccm"/>
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
@@ -3456,13 +3482,10 @@
 	</class>
 	<class id="crahp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::rules::age_hold_protect" oils_persist:tablename="config.rule_age_hold_protect" reporter:label="Age Hold Protection Rule">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.rule_age_hold_protect_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Item Age" name="age" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Rule ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Rule Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Allowed Proximity" name="prox" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
+			<field reporter:label="Item Age" name="age" reporter:datatype="interval"/>
+			<field reporter:label="Rule ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Rule Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Allowed Proximity" name="prox" reporter:datatype="int" />
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -3476,13 +3499,10 @@
 	</class>
 	<class id="crmf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::rules::max_fine" oils_persist:tablename="config.rule_max_fine" reporter:label="Max Fine Rule">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.rule_max_fine_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Max Fine Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Rule ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Rule Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Is Percent" name="is_percent" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Max Fine Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Rule ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Rule Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Is Percent" name="is_percent" reporter:datatype="bool"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -3496,17 +3516,14 @@
 	</class>
 	<class id="pgt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="permission::grp_tree" oils_persist:tablename="permission.grp_tree" reporter:label="Permission Group">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.grp_tree_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Child Groups" name="children" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Group ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
-			<field reporter:label="Group Name" name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field reporter:label="Parent Group" name="parent" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="User Expiration Interval" name="perm_interval" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Required Permission" name="application_perm" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Is User Group" name="usergroup" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Child Groups" name="children" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Group ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+			<field reporter:label="Group Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Parent Group" name="parent" reporter:datatype="link"/>
+			<field reporter:label="User Expiration Interval" name="perm_interval" reporter:datatype="interval"/>
+			<field reporter:label="Required Permission" name="application_perm" reporter:datatype="text"/>
+			<field reporter:label="Is User Group" name="usergroup" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="parent" reltype="has_a" key="id" map="" class="pgt"/>
@@ -3515,7 +3532,7 @@
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
                 <create permission="CREATE_PERM" global_required="true"/>
-                <retrieve permission="CREATE_PERM UPDATE_PERM DELETE_PERM" global_required="true"/>
+                <retrieve permission="STAFF_LOGIN" global_required="true"/>
                 <update permission="UPDATE_PERM" global_required="true"/>
                 <delete permission="DELETE_PERM" global_required="true"/>
             </actions>
@@ -3523,13 +3540,10 @@
 	</class>
 	<class id="asva" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::survey_answer" oils_persist:tablename="action.survey_answer" reporter:label="Survey Answer">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.survey_answer_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Responses using this Answer" name="responses" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Answer Text" name="answer" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Answer ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Question" name="question" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Responses using this Answer" name="responses" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Answer Text" name="answer" reporter:datatype="text"/>
+			<field reporter:label="Answer ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Question" name="question" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="question" reltype="has_a" key="id" map="" class="asvq"/>
@@ -3552,15 +3566,13 @@
 	</class>
 	<class id="ancc" controller="open-ils.cstore" oils_obj:fieldmapper="action::non_cataloged_circulation" oils_persist:tablename="action.non_cataloged_circulation" reporter:core="true" reporter:label="Non-cataloged Circulation">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.non_cataloged_circulation_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Circulation Date/Time" name="circ_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Non-cat Circulation ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Non-cat Item Type" name="item_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron" name="patron" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Circulating Staff" name="staff" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Circulating Library" name="circ_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Circulation Date/Time" name="circ_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Non-cat Circulation ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Non-cat Item Type" name="item_type" reporter:datatype="link"/>
+			<field reporter:label="Patron" name="patron" reporter:datatype="link"/>
+			<field reporter:label="Circulating Staff" name="staff" reporter:datatype="link"/>
+			<field reporter:label="Virtual Due Date/Time" name="duedate" reporter:datatype="timestamp" oils_persist:virtual="true"/>
 		</fields>
 		<links>
 			<link field="item_type" reltype="has_a" key="id" map="" class="cnct"/>
@@ -3569,15 +3581,12 @@
 			<link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
 		</links>
 	</class>
-	<class id="moucs" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_user_circulation_summary" oils_persist:tablename="money.open_usr_circulation_summary">
+	<class id="moucs" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_user_circulation_summary" oils_persist:tablename="money.open_usr_circulation_summary" reporter:label="Open User Circulation Summary">
 		<fields oils_persist:primary="usr" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="balance_owed" reporter:datatype="money" />
+			<field name="total_owed" reporter:datatype="money" />
+			<field name="total_paid" reporter:datatype="money" />
+			<field name="usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -3585,14 +3594,11 @@
 	</class>
 	<class id="aufh" controller="open-ils.cstore" oils_obj:fieldmapper="action::unfulfilled_hold_list" oils_persist:tablename="action.unfulfilled_hold_list" reporter:label="Unfulfilled Hold Targets">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.unfulfilled_hold_list_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Non-fulfilling Library" name="circ_lib" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Non-fulfilling Copy" name="current_copy" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Retargeting Date/Time" name="fail_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Hold" name="hold" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Record ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
+			<field reporter:label="Non-fulfilling Library" name="circ_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Non-fulfilling Copy" name="current_copy" reporter:datatype="link"/>
+			<field reporter:label="Retargeting Date/Time" name="fail_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Hold" name="hold" reporter:datatype="link"/>
+			<field reporter:label="Record ID" name="id" reporter:datatype="id" />
 		</fields>
 		<links>
 			<link field="hold" reltype="has_a" key="id" map="" class="ahr"/>
@@ -3600,15 +3606,12 @@
 			<link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
 		</links>
 	</class>
-	<class id="mtfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::title_field_entry" oils_persist:tablename="metabib.title_field_entry">
+	<class id="mtfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::title_field_entry" oils_persist:tablename="metabib.title_field_entry" reporter:label="Title Field Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.title_field_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="field" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="source" reporter:datatype="link"/>
+			<field name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="source" reltype="has_a" key="id" map="" class="bre"/>
@@ -3617,29 +3620,23 @@
 	</class>
 	<class id="actscecm" controller="open-ils.cstore" oils_obj:fieldmapper="actor::stat_cat_entry_user_map" oils_persist:tablename="actor.stat_cat_entry_usr_map"  reporter:label="User Statistical Category Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="actor.stat_cat_entry_usr_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Statistical Category" name="stat_cat" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Entry Text" name="stat_cat_entry" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User" name="target_usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Entry ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Statistical Category" name="stat_cat" reporter:datatype="link"/>
+			<field reporter:label="Entry Text" name="stat_cat_entry" reporter:datatype="text"/>
+			<field reporter:label="User" name="target_usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="target_usr" reltype="has_a" key="id" map="" class="au"/>
 			<link field="stat_cat" reltype="has_a" key="id" map="" class="actsc"/>
 		</links>
 	</class>
-	<class id="pgpm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="permission::grp_perm_map" oils_persist:tablename="permission.grp_perm_map">
+	<class id="pgpm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="permission::grp_perm_map" oils_persist:tablename="permission.grp_perm_map" reporter:label="Group Permission Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.grp_perm_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="depth" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="grantable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="grp" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="perm" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="depth" reporter:datatype="int" />
+			<field name="grantable" reporter:datatype="bool"/>
+			<field name="grp" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="perm" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="grp" reltype="has_a" key="id" map="" class="pgt"/>
@@ -3654,78 +3651,63 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="ccb" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket" oils_persist:tablename="container.copy_bucket">
+	<class id="ccb" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket" oils_persist:tablename="container.copy_bucket" reporter:label="Copy Bucket">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.copy_bucket_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="items" oils_obj:array_position="3" oils_persist:virtual="true" />
-			<field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
+			<field name="items" oils_persist:virtual="true" />
+			<field name="btype" reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="name" reporter:datatype="text"/>
+			<field name="owner" reporter:datatype="link"/>
+			<field name="pub" reporter:datatype="bool"/>
+			<field name="create_time" reporter:datatype="timestamp" />
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
 			<link field="items" reltype="has_many" key="bucket" map="" class="ccbi"/>
 		</links>
 	</class>
-	<class id="ccbn" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket_note" oils_persist:tablename="container.copy_bucket_note">
+	<class id="ccbn" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket_note" oils_persist:tablename="container.copy_bucket_note" reporter:label="Copy Bucket Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.copy_bucket_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="bucket" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="bucket" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="bucket" reltype="has_a" key="id" map="" class="ccb"/>
 		</links>
 	</class>
-	<class id="puwoum" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_work_ou_map" oils_persist:tablename="permission.usr_work_ou_map">
+	<class id="puwoum" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_work_ou_map" oils_persist:tablename="permission.usr_work_ou_map" reporter:label="User Work Org Unit Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.usr_work_ou_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="usr" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="work_ou" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="int" />
+			<field name="usr" reporter:datatype="link"/>
+			<field name="work_ou" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 			<link field="work_ou" reltype="has_a" key="id" map="" class="aou"/>
 		</links>
 	</class>
-	<class id="pupm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_perm_map" oils_persist:tablename="permission.usr_perm_map">
+	<class id="pupm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_perm_map" oils_persist:tablename="permission.usr_perm_map" reporter:label="User Permission Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.usr_perm_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="depth" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field name="grantable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="perm" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="usr" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field name="depth" reporter:datatype="int"/>
+			<field name="grantable" reporter:datatype="bool"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="perm" reporter:datatype="link"/>
+			<field name="usr" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 			<link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
 		</links>
 	</class>
-	<class id="puopm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_object_perm_map" oils_persist:tablename="permission.usr_object_perm_map">
+	<class id="puopm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_object_perm_map" oils_persist:tablename="permission.usr_object_perm_map" reporter:label="User Object Permission Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.usr_object_perm_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="object_id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="grantable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="perm" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="usr" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="object_type" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="object_id" reporter:datatype="text"/>
+			<field name="grantable" reporter:datatype="bool"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="perm" reporter:datatype="link"/>
+			<field name="usr" reporter:datatype="link"/>
+			<field name="object_type" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
@@ -3734,23 +3716,20 @@
 	</class>
 	<class id="mp" controller="open-ils.cstore" oils_obj:fieldmapper="money::payment" oils_persist:tablename="money.payment_view" reporter:core="true" reporter:label="Payments: All">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Cash Payment Detail" name="cash_payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Credit Card Payment Detail" name="credit_card_payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Credit Payment Detail" name="credit_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Check Payment Detail" name="check_payment" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Work Payment Detail" name="work_payment" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_obj:array_position="15" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Goods Payment Detail" name="goods_payment" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Payment ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Payment Date/Time" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Payment Type" name="payment_type" reporter:datatype="text"/>
+			<field reporter:label="Billable Transaction" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Voided?" name="voided" reporter:datatype="bool"/>
+			<field reporter:label="Cash Payment Detail" name="cash_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Credit Card Payment Detail" name="credit_card_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Credit Payment Detail" name="credit_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Check Payment Detail" name="check_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Work Payment Detail" name="work_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Goods Payment Detail" name="goods_payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="cash_payment" reltype="might_have" key="id" map="" class="mcp"/>
@@ -3765,23 +3744,20 @@
 	</class>
 	<class id="mbp" controller="open-ils.cstore" oils_obj:fieldmapper="money::bnm_payment" oils_persist:tablename="money.bnm_payment_view" reporter:core="true" reporter:label="Payments: Brick-and-mortar">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Cash Payment Detail" name="cash_payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Credit Card Payment Detail" name="credit_card_payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Credit Payment Detail" name="credit_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Check Payment Detail" name="check_payment" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Work Payment Detail" name="work_payment" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_obj:array_position="15" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Goods Payment Detail" name="goods_payment" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Payment ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Payment Date/Time" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Payment Type" name="payment_type" reporter:datatype="text"/>
+			<field reporter:label="Billable Transaction" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Voided?" name="voided" reporter:datatype="bool"/>
+			<field reporter:label="Cash Payment Detail" name="cash_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Credit Card Payment Detail" name="credit_card_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Credit Payment Detail" name="credit_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Check Payment Detail" name="check_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Work Payment Detail" name="work_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Goods Payment Detail" name="goods_payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="cash_payment" reltype="might_have" key="id" map="" class="mcp"/>
@@ -3796,20 +3772,17 @@
 	</class>
 	<class id="mndp" controller="open-ils.reporter" oils_obj:fieldmapper="money::non_drawer_payment" oils_persist:tablename="money.non_drawer_payment_view" reporter:core="true" reporter:label="Payments: Non-drawer Staff">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Work Payment Detail" name="work_payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Goods Payment Detail" name="goods_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Credit Payment Detail" name="credit_payment" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Payment ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Payment Date/Time" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Payment Type" name="payment_type" reporter:datatype="text"/>
+			<field reporter:label="Billable Transaction" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Voided?" name="voided" reporter:datatype="bool"/>
+			<field reporter:label="Work Payment Detail" name="work_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Goods Payment Detail" name="goods_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Credit Payment Detail" name="credit_payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="work_payment" reltype="might_have" key="id" map="" class="mwp"/>
@@ -3821,21 +3794,18 @@
 	</class>
 	<class id="mdp" controller="open-ils.cstore" oils_obj:fieldmapper="money::desk_payment" oils_persist:tablename="money.desk_payment_view" reporter:core="true" reporter:label="Payments: Desk">
 		<fields oils_persist:primary="id" oils_persist:sequence="">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Accepting User" name="accepting_usr" oils_obj:array_position="9" oils_persist:virtual="false" />
-			<field reporter:label="Cash Drawer" name="cash_drawer" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Voided?" name="voided" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Cash Payment" name="cash_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Credit Card Payment" name="credit_card_payment" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Check Payment" name="check_payment" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Payment ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Payment Date/Time" name="payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Payment Type" name="payment_type" reporter:datatype="text"/>
+			<field reporter:label="Billable Transaction" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Accepting User" name="accepting_usr" />
+			<field reporter:label="Cash Drawer" name="cash_drawer" reporter:datatype="link"/>
+			<field reporter:label="Voided?" name="voided" reporter:datatype="bool"/>
+			<field reporter:label="Cash Payment" name="cash_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Credit Card Payment" name="credit_card_payment" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Check Payment" name="check_payment" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="cash_payment" reltype="might_have" key="id" map="" class="mcp"/>
@@ -3846,17 +3816,14 @@
 			<link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
 		</links>
 	</class>
-	<class id="cbrebi" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket_item" oils_persist:tablename="container.biblio_record_entry_bucket_item">
+	<class id="cbrebi" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket_item" oils_persist:tablename="container.biblio_record_entry_bucket_item" reporter:label="Biblio Record Entry Bucket Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.biblio_record_entry_bucket_item_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="target_biblio_record_entry" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field name="pos" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
-			<field name="notes" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link" />
+			<field name="bucket" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="target_biblio_record_entry" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp" />
+			<field name="pos" reporter:datatype="int" />
+			<field name="notes" oils_persist:virtual="true" reporter:datatype="link" />
 		</fields>
 		<links>
 			<link field="target_biblio_record_entry" reltype="has_a" key="id" map="" class="bre"/>
@@ -3864,14 +3831,11 @@
             <link field="notes" reltype="has_many" map="" key="item" class="cbrebin"/>
 		</links>
 	</class>
-	<class id="cbrebin" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket_item_note" oils_persist:tablename="container.biblio_record_entry_bucket_item_note">
+	<class id="cbrebin" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket_item_note" oils_persist:tablename="container.biblio_record_entry_bucket_item_note" reporter:label="Biblio Record Entry Bucket Item Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="container.biblio_record_entry_bucket_item_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="item" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
+			<field name="id" reporter:datatype="id" />
+			<field name="item" reporter:datatype="link"/>
+			<field name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="item" reltype="has_a" key="id" map="" class="cbrebi"/>
@@ -3879,13 +3843,10 @@
 	</class>
 	<class id="asce" controller="open-ils.cstore" oils_obj:fieldmapper="asset::stat_cat_entry" oils_persist:tablename="asset.stat_cat_entry" reporter:label="Item Stat Cat Entry">
 		<fields oils_persist:primary="id" oils_persist:sequence="asset.stat_cat_entry_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Stat Cat" name="stat_cat" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Value" name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="Entry ID" name="id" reporter:datatype="int" />
+			<field reporter:label="Entry Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Stat Cat" name="stat_cat" reporter:datatype="link"/>
+			<field reporter:label="Value" name="value" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links>
 			<link field="stat_cat" reltype="has_a" key="id" map="" class="asc"/>
@@ -3893,13 +3854,10 @@
 		</links>
 	</class>
 
-	<class id="ahrcc" controller="open-ils.cstore open-ils.reporter-store open-ils.pcrud" oils_obj:fieldmapper="action::hold_request_cancel_cause" oils_persist:tablename="action.hold_request_cancel_cause" oils_persist:restrict_primary="100">
+	<class id="ahrcc" controller="open-ils.cstore open-ils.reporter-store open-ils.pcrud" oils_obj:fieldmapper="action::hold_request_cancel_cause" oils_persist:tablename="action.hold_request_cancel_cause" oils_persist:restrict_primary="100" reporter:label="Hold Request Cancel Cause">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.hold_request_cancel_cause_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Cause ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Cause Label" name="label" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Cause ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Cause Label" name="label" reporter:datatype="text" oils_persist:i18n="true" />
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -3913,22 +3871,52 @@
 	</class>
 
 
+	<class id="artc" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::reservation_transit_copy" oils_persist:tablename="action.reservation_transit_copy" reporter:core="true" reporter:label="Reservation Transit">
+		<fields oils_persist:primary="id" oils_persist:sequence="action.transit_copy_id_seq">
+			<field reporter:label="Copy Status at Transit" name="copy_status" reporter:datatype="link"/>
+			<field reporter:label="Destination Library" name="dest" reporter:datatype="org_unit"/>
+			<field reporter:label="Receive Date/Time" name="dest_recv_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Reservation requiring Transit" name="reservation" reporter:datatype="link"/>
+			<field reporter:label="Transit ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Is Persistent?" name="persistant_transfer" reporter:datatype="bool"/>
+			<field reporter:label="Previous Stop" name="prev_hop" reporter:datatype="link"/>
+			<field reporter:label="Sending Library" name="source" reporter:datatype="org_unit"/>
+			<field reporter:label="Send Date/Time" name="source_send_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Transited Copy" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Base Transit" name="transit_copy" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="transit_copy" reltype="might_have" key="id" map="" class="atc"/>
+			<link field="target_copy" reltype="has_a" key="id" map="" class="brsrc"/>
+			<link field="source" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="copy_status" reltype="has_a" key="id" map="" class="ccs"/>
+			<link field="dest" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="reservation" reltype="has_a" key="id" map="" class="bresv"/>
+		</links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="TRANSIT_COPY">
+                    <context link="target_copy" field="owner"/>
+                </create>
+                <retrieve/>
+                <update permission="UPDATE_TRANSIT" context_field="dest source"/>
+                <delete permission="DELETE_TRANSIT" context_field="dest source"/>
+            </actions>
+        </permacrud>
+	</class>
 	<class id="ahtc" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::hold_transit_copy" oils_persist:tablename="action.hold_transit_copy" reporter:core="true" reporter:label="Hold Transit">
 		<fields oils_persist:primary="id" oils_persist:sequence="action.transit_copy_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Copy Status at Transit" name="copy_status" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Destination Library" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Hold requiring Transit" name="hold" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transit ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Is Persistent?" name="persistant_transfer" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Previous Stop" name="prev_hop" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Sending Library" name="source" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transited Copy" name="target_copy" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Base Transit" name="transit_copy" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Copy Status at Transit" name="copy_status" reporter:datatype="link"/>
+			<field reporter:label="Destination Library" name="dest" reporter:datatype="org_unit"/>
+			<field reporter:label="Receive Date/Time" name="dest_recv_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Hold requiring Transit" name="hold" reporter:datatype="link"/>
+			<field reporter:label="Transit ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Is Persistent?" name="persistant_transfer" reporter:datatype="bool"/>
+			<field reporter:label="Previous Stop" name="prev_hop" reporter:datatype="link"/>
+			<field reporter:label="Sending Library" name="source" reporter:datatype="org_unit"/>
+			<field reporter:label="Send Date/Time" name="source_send_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Transited Copy" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Base Transit" name="transit_copy" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="transit_copy" reltype="might_have" key="id" map="" class="atc"/>
@@ -3951,19 +3939,16 @@
 	</class>
 	<class id="mb" controller="open-ils.cstore" oils_obj:fieldmapper="money::billing" oils_persist:tablename="money.billing" reporter:label="Billing Line Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.billing_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Billing Timestamp" name="billing_ts" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Legacy Billing Type" name="billing_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Billing ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Void Timestamp" name="void_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Voiding Staff Member" name="voider" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transaction" name="xact" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Type" name="btype" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Billing Timestamp" name="billing_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Legacy Billing Type" name="billing_type" reporter:datatype="text"/>
+			<field reporter:label="Billing ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Note" name="note" reporter:datatype="text"/>
+			<field reporter:label="Void Timestamp" name="void_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Voided?" name="voided" reporter:datatype="bool"/>
+			<field reporter:label="Voiding Staff Member" name="voider" reporter:datatype="link"/>
+			<field reporter:label="Transaction" name="xact" reporter:datatype="link"/>
+			<field reporter:label="Type" name="btype" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
@@ -3971,30 +3956,24 @@
 			<link field="btype" reltype="has_a" key="id" map="" class="cbt"/>
 		</links>
 	</class>
-	<class id="pugm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_grp_map" oils_persist:tablename="permission.usr_grp_map">
+	<class id="pugm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_grp_map" oils_persist:tablename="permission.usr_grp_map" reporter:label="User Group Map">
 		<fields oils_persist:primary="id" oils_persist:sequence="permission.usr_grp_map_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="grp" oils_obj:array_position="3" oils_persist:virtual="false" />
-			<field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="usr" oils_obj:array_position="5" oils_persist:virtual="false" />
+			<field name="grp" />
+			<field name="id" reporter:datatype="id" />
+			<field name="usr" />
 		</fields>
 		<links>
 			<link field="grp" reltype="has_a" key="id" map="" class="pgt"/>
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 		</links>
 	</class>
-	<class id="i18n" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::i18n_core" oils_persist:tablename="config.i18n_core" oils_persist:field_safe="true">
+	<class id="i18n" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::i18n_core" oils_persist:tablename="config.i18n_core" oils_persist:field_safe="true" reporter:label="i18n Core">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.i18n_core_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="fq_field" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="identity_value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="translation" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="string" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="fq_field" reporter:datatype="text"/>
+			<field name="identity_value" reporter:datatype="text"/>
+			<field name="translation" reporter:datatype="text"/>
+			<field name="string" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="translation" reltype="has_a" key="code" map="" class="i18n_l"/>
@@ -4008,16 +3987,13 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="fdoc" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::idl_field_doc" oils_persist:tablename="config.idl_field_doc" oils_persist:field_safe="true">
+	<class id="fdoc" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::idl_field_doc" oils_persist:tablename="config.idl_field_doc" oils_persist:field_safe="true" reporter:label="IDL Field Doc">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.idl_field_doc_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="fm_class" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="owner" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field name="string" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="fm_class" reporter:datatype="text"/>
+			<field name="field" reporter:datatype="text"/>
+			<field name="owner" reporter:datatype="org_unit"/>
+			<field name="string" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -4031,15 +4007,12 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="i18n_l" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::i18n_locale" oils_persist:tablename="config.i18n_locale" oils_persist:field_safe="true">
+	<class id="i18n_l" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::i18n_locale" oils_persist:tablename="config.i18n_locale" oils_persist:field_safe="true" reporter:label="Locale">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="marc_code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
-			<field name="description" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field name="code" reporter:datatype="id" />
+			<field name="marc_code" reporter:datatype="text"/>
+			<field name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -4051,15 +4024,12 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="cbt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::billing_type" oils_persist:tablename="config.billing_type" oils_persist:restrict_primary="100">
+	<class id="cbt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::billing_type" oils_persist:tablename="config.billing_type" oils_persist:restrict_primary="100" reporter:label="Billing Type">
 		<fields oils_persist:primary="id" oils_persist:sequence="config.billing_type_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" reporter:label="ID" />
-			<field name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" reporter:label="Name" oils_persist:i18n="true"/>
-			<field name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit" reporter:label="Org Unit" />
-            <field name="default_price" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money" reporter:label="Default Price"/>
+			<field name="id" reporter:datatype="id" reporter:label="ID" />
+			<field name="name" reporter:datatype="text" reporter:label="Name" oils_persist:i18n="true"/>
+			<field name="owner" reporter:datatype="org_unit" reporter:label="Org Unit" />
+            <field name="default_price" reporter:datatype="money" reporter:label="Default Price"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -4073,13 +4043,10 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="acqct" controller="open-ils.cstore open-ils.reporter-store open-ils.pcrud" oils_obj:fieldmapper="acq::currency_type" oils_persist:tablename="acq.currency_type">
+	<class id="acqct" controller="open-ils.cstore open-ils.reporter-store open-ils.pcrud" oils_obj:fieldmapper="acq::currency_type" oils_persist:tablename="acq.currency_type" reporter:label="Currency Type">
 		<fields oils_persist:primary="code">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Currency Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text" reporter:selector='label'/>
-			<field reporter:label="Currency Label" name="label" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Currency Code" name="code" reporter:datatype="text" reporter:selector='label'/>
+			<field reporter:label="Currency Label" name="label" reporter:datatype="text" oils_persist:i18n="true" />
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
@@ -4092,15 +4059,12 @@
         </permacrud>
 	</class>
 
-	<class id="acqexr" controller="open-ils.cstore open-ils.pcrud open-ils.reporter-store" oils_obj:fieldmapper="acq::exchange_rate" oils_persist:tablename="acq.exchange_rate">
+	<class id="acqexr" controller="open-ils.cstore open-ils.pcrud open-ils.reporter-store" oils_obj:fieldmapper="acq::exchange_rate" oils_persist:tablename="acq.exchange_rate" reporter:label="Exchange Rate">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.exchange_rate_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Exchange Rate ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="From Currency" name="from_currency" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="To Currency" name="to_currency" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Ratio" name="ratio" oils_obj:array_position="6" oils_persist:virtual="false" />
+			<field reporter:label="Exchange Rate ID" name="id" reporter:datatype="id" />
+			<field reporter:label="From Currency" name="from_currency" reporter:datatype="link" />
+			<field reporter:label="To Currency" name="to_currency" reporter:datatype="link" />
+			<field reporter:label="Ratio" name="ratio" />
 		</fields>
 		<links>
 			<link field="from_currency" reltype="has_a" key="code" map="" class="acqct"/>
@@ -4118,23 +4082,23 @@
 
 	<class id="acqpro" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::provider" oils_persist:tablename="acq.provider" reporter:label="Provider">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.provider_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Provider ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Provider Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit" />
-			<field reporter:label="Currency" name="currency_type" oils_obj:array_position="6" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" />
+			<field reporter:label="Provider ID" name="id" reporter:datatype="id" reporter:selector='code'/>
+			<field reporter:label="Provider Name" name="name" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Owner" name="owner" reporter:datatype="org_unit" />
+			<field reporter:label="Currency" name="currency_type" oils_persist:primitive="string" reporter:datatype="link" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field reporter:label="Holdings Tag" name="holding_tag" reporter:datatype="text" />
+			<field reporter:label="Addresses" name="addresses" oils_persist:virtual="true" reporter:datatype="link" />
 		</fields>
 		<links>
 			<link field="currency_type" reltype="has_a" key="code" map="" class="acqct"/>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+            <link field="addresses" reltype="has_many" map="" key="provider" class="acqpa"/>
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
                 <create   permission="ADMIN_PROVIDER" context_field="owner"/>
-                <retrieve permission="ADMIN_PROVIDER" context_field="owner"/>
+                <retrieve permission="ADMIN_PROVIDER MANAGE_PROVIDER VIEW_PROVIDER" context_field="owner"/>
                 <update   permission="ADMIN_PROVIDER" context_field="owner"/>
                 <delete   permission="ADMIN_PROVIDER" context_field="owner"/>
             </actions>
@@ -4143,20 +4107,17 @@
 
 	<class id="acqpa" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::provider_address" oils_persist:tablename="acq.provider_address" reporter:label="Provider Address">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.provider_address_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="address_type" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="city" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="country" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="county" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field name="provider" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="post_code" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="state" oils_obj:array_position="10" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="street1" oils_obj:array_position="11" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="street2" oils_obj:array_position="12" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field name="valid" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Address Type" name="address_type"  reporter:datatype="text"/>
+			<field reporter:label="City" name="city"  reporter:datatype="text"/>
+			<field reporter:label="Country" name="country"  reporter:datatype="text"/>
+			<field reporter:label="County" name="county"  reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id"/>
+			<field reporter:label="Provider" name="provider" reporter:datatype="link"/>
+			<field reporter:label="Post Code" name="post_code"  reporter:datatype="text"/>
+			<field reporter:label="State" name="state"  reporter:datatype="text"/>
+			<field reporter:label="Street 1" name="street1"  reporter:datatype="text"/>
+			<field reporter:label="Street 2" name="street2"  reporter:datatype="text"/>
+			<field reporter:label="Is Valid?" name="valid" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="provider" reltype="has_a" key="id" map="" class="acqpro"/>
@@ -4181,15 +4142,12 @@
 
 	<class id="acqpc" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::provider_contact" oils_persist:tablename="acq.provider_contact" reporter:label="Provider Contact">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.provider_contact_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field name="provider" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="role" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="email" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="phone" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field name="id" reporter:datatype="id"/>
+			<field reporter:label="Provider" name="provider" reporter:datatype="link"/>
+			<field reporter:label="Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Role" name="role" reporter:datatype="text"/>
+			<field reporter:label="Email" name="email" reporter:datatype="text"/>
+			<field reporter:label="Phone" name="phone" reporter:datatype="text"/>
         </fields>
 		<links>
 			<link field="provider" reltype="has_a" key="id" map="" class="acqpro"/>
@@ -4213,20 +4171,17 @@
     </class>
 	<class id="acqpca" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::provider_contact_address" oils_persist:tablename="acq.provider_contact_address" reporter:label="Provider Contact Address">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.provider_contact_address_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Type" name="address_type" oils_obj:array_position="3" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="City" name="city" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Country" name="country" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="County" name="county" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Address ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Postal Code" name="post_code" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="State" name="state" oils_obj:array_position="9" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Street (1)" name="street1" oils_obj:array_position="10" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Street (2)" name="street2" oils_obj:array_position="11" oils_persist:virtual="false"  reporter:datatype="text"/>
-			<field reporter:label="Contact" name="contact" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Valid Address?" name="valid" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Type" name="address_type"  reporter:datatype="text"/>
+			<field reporter:label="City" name="city"  reporter:datatype="text"/>
+			<field reporter:label="Country" name="country"  reporter:datatype="text"/>
+			<field reporter:label="County" name="county"  reporter:datatype="text"/>
+			<field reporter:label="Address ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Postal Code" name="post_code" reporter:datatype="text"/>
+			<field reporter:label="State" name="state"  reporter:datatype="text"/>
+			<field reporter:label="Street (1)" name="street1"  reporter:datatype="text"/>
+			<field reporter:label="Street (2)" name="street2"  reporter:datatype="text"/>
+			<field reporter:label="Contact" name="contact" reporter:datatype="link"/>
+			<field reporter:label="Valid Address?" name="valid" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="contact" reltype="has_a" key="id" map="" class="acqpc"/>
@@ -4249,19 +4204,64 @@
         </permacrud>
 	</class>
 
-	<class id="acqfs" controller="open-ils.cstore open-ils.reporter-store open-ils.pcrud" oils_obj:fieldmapper="acq::funding_source" oils_persist:tablename="acq.funding_source">
+	<class id="acqfc" controller="open-ils.cstore" oils_obj:fieldmapper="acq::fiscal_calendar" oils_persist:tablename="acq.fiscal_calendar" reporter:label="Fiscal Calendar">
+		<fields oils_persist:primary="id" oils_persist:sequence="acq.fiscal_calendar_id_seq">
+			<field reporter:label="Fiscal Calendar ID" name="id" reporter:datatype="id" reporter:selector='id'/>
+			<field reporter:label="Fiscal Calendar Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Years" name="years" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+            <link field="years" reltype="has_many" map="" key="calendar" class="acqfy"/>
+		</links>
+		<!--
+			For now, we don't have pcrud as one of the controllers, so the permacrud section is moot.
+			But here's what it should look like if we ever do use pcrud.
+		-->
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+				<retrieve permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+				<update permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+				<delete permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+			</actions>
+		</permacrud>
+	</class>
+
+	<class id="acqfy" controller="open-ils.cstore" oils_obj:fieldmapper="acq::fiscal_year" oils_persist:tablename="acq.fiscal_year" reporter:label="Fiscal Year">
+		<fields oils_persist:primary="id" oils_persist:sequence="acq.fiscal_year_id_seq">
+			<field reporter:label="Fiscal Year ID" name="id" reporter:datatype="id" reporter:selector='id'/>
+			<field reporter:label="Calendar" name="calendar" reporter:datatype="link"/>
+			<field reporter:label="Fiscal Year" name="year" reporter:datatype="int"/>
+			<field reporter:label="Year Begin" name="year_begin" reporter:datatype="timestamp"/>
+			<field reporter:label="Year End" name="year_end" reporter:datatype="timestamp"/>
+		</fields>
+		<links>
+			<link field="calendar" reltype="has_a" key="id" map="" class="acqfc"/>
+		</links>
+		<!--
+			For now, we don't have pcrud as one of the controllers, so the permacrud section is moot.
+			But here's what it should look like if we ever do use pcrud.
+		-->
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+				<retrieve permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+				<update permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+				<delete permission="ADMIN_ACQ_FISCAL_YEAR" global_required="true"/>
+			</actions>
+		</permacrud>
+	</class>
+
+	<class id="acqfs" controller="open-ils.cstore open-ils.reporter-store open-ils.pcrud" oils_obj:fieldmapper="acq::funding_source" oils_persist:tablename="acq.funding_source" reporter:label="Funding Source">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.funding_source_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Funding Source ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Funding Source Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit" />
-			<field reporter:label="Currency" name="currency_type" oils_obj:array_position="6" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" />
-			<field name="summary" oils_obj:array_position="8" oils_persist:virtual="true"/>
-			<field reporter:label="Allocations" name="allocations" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Credits" name="credits" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Funding Source ID" name="id" reporter:datatype="id" reporter:selector='code'/>
+			<field reporter:label="Funding Source Name" name="name" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Owner" name="owner" reporter:datatype="org_unit" />
+			<field reporter:label="Currency" name="currency_type" oils_persist:primitive="string" reporter:datatype="link" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field name="summary" oils_persist:virtual="true"/>
+			<field reporter:label="Allocations" name="allocations" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Credits" name="credits" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="currency_type" reltype="has_a" key="code" map="" class="acqct"/>
@@ -4271,41 +4271,36 @@
 		</links>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create   permission="CREATE_ACQ_FUNDING_SOURCE" context_field="owner"/>
-                <retrieve permission="VIEW_ACQ_FUNDING_SOURCE"   context_field="owner"/>
-                <update   permission="UPDATE_ACQ_FUNDING_SOURCE" context_field="owner"/>
-                <delete   permission="DELETE_ACQ_FUNDING_SOURCE" context_field="owner"/>
+                <create   permission="ADMIN_FUNDING_SOURCE" context_field="owner"/>
+                <retrieve permission="ADMIN_FUNDING_SOURCE MANAGE_FUNDING_SOURCE VIEW_FUNDING_SOURCE" context_field="owner"/>
+                <update   permission="ADMIN_FUNDING_SOURCE" context_field="owner"/>
+                <delete   permission="ADMIN_FUNDING_SOURCE" context_field="owner"/>
             </actions>
         </permacrud>
 	</class>
 
-	<class id="acqfscred" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_credit" oils_persist:tablename="acq.funding_source_credit">
+	<class id="acqfscred" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_credit" oils_persist:tablename="acq.funding_source_credit" reporter:label="Credit to Funding Source">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.funding_source_credit_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Credit ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Funding Source ID" name="funding_source" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" />
+			<field reporter:label="Credit ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Funding Source ID" name="funding_source" reporter:datatype="link" />
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Note" name="note" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="funding_source" reltype="has_a" key="id" map="" class="acqfs"/>
 		</links>
 	</class>
 
-	<class id="acqfdeb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_debit" oils_persist:tablename="acq.fund_debit">
+	<class id="acqfdeb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_debit" oils_persist:tablename="acq.fund_debit" reporter:label="Debit From Fund">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.fund_debit_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Debit ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Fund ID" name="fund" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Origin Amount" name="origin_amount" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Origin Currency" name="origin_currency_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Encumbrance" name="encumbrance" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Debit Type" name="debit_type" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" />
+			<field reporter:label="Debit ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link" />
+			<field reporter:label="Origin Amount" name="origin_amount" reporter:datatype="money" />
+			<field reporter:label="Origin Currency" name="origin_currency_type" reporter:datatype="link" />
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Encumbrance" name="encumbrance" reporter:datatype="text" />
+			<field reporter:label="Debit Type" name="debit_type" reporter:datatype="text" />
+			<field reporter:label="Create Time" name="create_time" reporter:datatype="timestamp" />
 		</fields>
 		<links>
 			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
@@ -4313,158 +4308,136 @@
 		</links>
 	</class>
 
-	<class id="acqf" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund" oils_persist:tablename="acq.fund">
+	<class id="acqf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::fund" oils_persist:tablename="acq.fund" reporter:label="Fund">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.fund_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Fund ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Org Unit" name="org" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit" />
-			<field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Year" name="year" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Currency Type" name="currency_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text" />
-			<field name="summary" oils_obj:array_position="9" oils_persist:virtual="true"/>
-			<field reporter:label="Allocations" name="allocations" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Debits" name="debits" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Fund ID" name="id" reporter:datatype="id" reporter:selector='code'/>
+			<field reporter:label="Org Unit" name="org" reporter:datatype="org_unit" />
+			<field reporter:label="Name" name="name" reporter:datatype="text" />
+			<field reporter:label="Year" name="year" reporter:datatype="int" />
+			<field reporter:label="Currency Type" name="currency_type" reporter:datatype="link" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field name="summary" oils_persist:virtual="true"/>
+			<field reporter:label="Allocations" name="allocations" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Debits" name="debits" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Tags" name="tags" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="org" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="currency_type" reltype="has_a" key="code" map="" class="acqct"/>
             <link field="allocations" reltype="has_many" key="fund" map="" class="acqfa"/>
             <link field="debits" reltype="has_many" key="fund" map="" class="acqfdeb"/>
+            <link field="tags" reltype="has_many" key="fund" map="" class="acqftm"/>
 		</links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="ADMIN_ACQ_FUND" context_field="org"/>
+                <retrieve permission="ADMIN_ACQ_FUND VIEW_FUND MANAGE_FUND" context_field="org"/>
+                <update permission="ADMIN_ACQ_FUND" context_field="org"/>
+                <delete permission="ADMIN_ACQ_FUND" context_field="org"/>
+            </actions>
+        </permacrud>
 	</class>
 
-	<class id="acqfat" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_allocation_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_allocation_total">
+	<class id="acqfat" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_allocation_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_allocation_total" reporter:label="Fund Allocation Total">
 		<fields oils_persist:primary="fund">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Fund ID" name="fund" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Total Allocation Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link" />
+			<field reporter:label="Total Allocation Amount" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
 		</links>
 	</class>
 
-	<class id="acqfdt" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_debit_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_debit_total">
+	<class id="acqfdt" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_debit_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_debit_total" reporter:label="Total Debit from Fund">
 		<fields oils_persist:primary="fund">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Fund ID" name="fund" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Total Debit Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link" />
+			<field reporter:label="Total Debit Amount" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
 		</links>
 	</class>
 
-	<class id="acqfet" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_encumbrance_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_encumbrance_total">
+	<class id="acqfet" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_encumbrance_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_encumbrance_total" reporter:label="Total Fund Encumbrance">
 		<fields oils_persist:primary="fund">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Fund ID" name="fund" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Total Encumbrance Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link" />
+			<field reporter:label="Total Encumbrance Amount" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
 		</links>
 	</class>
 
-	<class id="acqfst" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_spent_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_spent_total">
+	<class id="acqfst" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_spent_total" oils_persist:readonly="true" oils_persist:tablename="acq.fund_spent_total" reporter:label="Total Spent from Fund">
 		<fields oils_persist:primary="fund">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Fund ID" name="fund" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Total Spent Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link" />
+			<field reporter:label="Total Spent Amount" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
 		</links>
 	</class>
 
-	<class id="acqfcb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_combined_balance" oils_persist:readonly="true" oils_persist:tablename="acq.fund_combined_balance">
+	<class id="acqfcb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_combined_balance" oils_persist:readonly="true" oils_persist:tablename="acq.fund_combined_balance" reporter:label="Fund Combined Balance">
 		<fields oils_persist:primary="fund">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Fund ID" name="fund" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Balance after Spent and Encumbered" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link" />
+			<field reporter:label="Balance after Spent and Encumbered" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
 		</links>
 	</class>
 
-	<class id="acqfsrcct" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_credit_total" oils_persist:readonly="true" oils_persist:tablename="acq.funding_source_credit_total">
+	<class id="acqfsrcct" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_credit_total" oils_persist:readonly="true" oils_persist:tablename="acq.funding_source_credit_total" reporter:label="Total Credit to Funding Source">
 		<fields oils_persist:primary="funding_source">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Funding Source" name="funding_source" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Total Credits to Funding Source" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Funding Source" name="funding_source" reporter:datatype="link" />
+			<field reporter:label="Total Credits to Funding Source" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="funding_source" reltype="has_a" key="id" map="" class="acqfs"/>
 		</links>
 	</class>
 
-	<class id="acqfsrcat" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_allocation_total" oils_persist:readonly="true" oils_persist:tablename="acq.funding_source_allocation_total">
+	<class id="acqfsrcat" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_allocation_total" oils_persist:readonly="true" oils_persist:tablename="acq.funding_source_allocation_total" reporter:label="Total Allocation to Funding Source">
 		<fields oils_persist:primary="funding_source">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Funding Source" name="funding_source" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Total Allocated from Funding Source" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Funding Source" name="funding_source" reporter:datatype="link" />
+			<field reporter:label="Total Allocated from Funding Source" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="funding_source" reltype="has_a" key="id" map="" class="acqfs"/>
 		</links>
 	</class>
 
-	<class id="acqfsrcb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_balance" oils_persist:readonly="true" oils_persist:tablename="acq.funding_source_balance">
+	<class id="acqfsrcb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::funding_source_balance" oils_persist:readonly="true" oils_persist:tablename="acq.funding_source_balance" reporter:label="Funding Source Balance">
 		<fields oils_persist:primary="funding_source">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Funding Source" name="funding_source" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Balance Remaining" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Funding Source" name="funding_source" reporter:datatype="link" />
+			<field reporter:label="Balance Remaining" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="funding_source" reltype="has_a" key="id" map="" class="acqfs"/>
 		</links>
 	</class>
 
-	<class id="acqfsb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_spent_balance" oils_persist:readonly="true" oils_persist:tablename="acq.fund_spent_balance">
+	<class id="acqfsb" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_spent_balance" oils_persist:readonly="true" oils_persist:tablename="acq.fund_spent_balance" reporter:label="Fund Spent Balance">
 		<fields oils_persist:primary="fund">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Fund ID" name="fund" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Balance after Spent" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link" />
+			<field reporter:label="Balance after Spent" name="amount" reporter:datatype="money" />
 		</fields>
 		<links>
 			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
 		</links>
 	</class>
 
-	<class id="acqfa" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_allocation" oils_persist:tablename="acq.fund_allocation">
+	<class id="acqfa" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::fund_allocation" oils_persist:tablename="acq.fund_allocation" reporter:label="Fund Allocation">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.fund_allocation_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Allocation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Fund" name="fund" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Funding Source" name="funding_source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Amount" name="amount" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Percent" name="percent" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="float" />
-			<field reporter:label="Allocating User" name="allocator" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Note" name="note" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" />
+			<field reporter:label="Allocation ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Fund" name="fund" reporter:datatype="link" />
+			<field reporter:label="Funding Source" name="funding_source" reporter:datatype="link" />
+			<field reporter:label="Amount" name="amount" reporter:datatype="money" />
+			<field reporter:label="Percent" name="percent" reporter:datatype="float" />
+			<field reporter:label="Allocating User" name="allocator" reporter:datatype="link" />
+			<field reporter:label="Note" name="note" reporter:datatype="text" />
+			<field reporter:label="Create Time" name="create_time" reporter:datatype="timestamp" />
 		</fields>
 		<links>
 			<link field="allocator" reltype="has_a" key="id" map="" class="au"/>
@@ -4473,63 +4446,74 @@
 		</links>
 	</class>
 
-	<class id="acqpl" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::picklist" oils_persist:tablename="acq.picklist">
+	<class id="acqpl" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::picklist" oils_persist:tablename="acq.picklist" reporter:label="Pick List">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.picklist_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Picklist ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Org Unit" name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Name" name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="Creation Time" name="create_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Edit Time" name="edit_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Entries" name="entries" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link" />
-			<field reporter:label="Entry Count" name="entry_count" oils_obj:array_position="10" oils_persist:virtual="true"/>
+			<field reporter:label="Picklist ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Owner" name="owner" reporter:datatype="link" />
+			<field reporter:label="Org Unit" name="org_unit" reporter:datatype="link" />
+			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Creation Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Edit Time" name="edit_time" reporter:datatype="timestamp" />
+			<field reporter:label="Entries" name="entries" oils_persist:virtual="true" reporter:datatype="link" />
+			<field reporter:label="Entry Count" name="entry_count" oils_persist:virtual="true"/>
+			<field reporter:label="Creator" name="creator" reporter:datatype="link" />
+			<field reporter:label="Editor" name="editor" reporter:datatype="link" />
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
+			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
+			<link field="editor" reltype="has_a" key="id" map="" class="au"/>
 			<link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="entries" reltype="has_many" key="picklist" map="" class="jub"/>
 		</links>
 	</class>
 
-	<class id="acqpo" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::purchase_order" oils_persist:tablename="acq.purchase_order">
+	<class id="acqpo" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::purchase_order" oils_persist:tablename="acq.purchase_order" reporter:label="Purchase Order">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.purchase_order_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Purchase Order ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Creation Time" name="create_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Edit Time" name="edit_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Provider" name="provider" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="State" name="state" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Ordering Agency" name="ordering_agency" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Line Items" name="lineitems" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link" />
-			<field reporter:label="Line Item Count" name="lineitem_count" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link" />
+			<field reporter:label="Purchase Order ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Owner" name="owner" reporter:datatype="link" />
+			<field reporter:label="Creation Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Edit Time" name="edit_time" reporter:datatype="timestamp" />
+			<field reporter:label="Provider" name="provider" reporter:datatype="link" />
+			<field reporter:label="State" name="state" reporter:datatype="text" />
+			<field reporter:label="Ordering Agency" name="ordering_agency" reporter:datatype="org_unit" />
+			<field reporter:label="Creator" name="creator" reporter:datatype="link" />
+			<field reporter:label="Editor" name="editor" reporter:datatype="link" />
+			<field reporter:label="Order Date" name="order_date" reporter:datatype="timestamp" />
+			<field reporter:label="Name" name="name" reporter:datatype="text" />
+			<field reporter:label="Line Items" name="lineitems" oils_persist:virtual="true" reporter:datatype="link" />
+			<field reporter:label="Line Item Count" name="lineitem_count" oils_persist:virtual="true" reporter:datatype="link" />
+			<field reporter:label="Amount Encumbered" name="amount_encumbered" oils_persist:virtual="true" reporter:datatype="float" />
+			<field reporter:label="Amount Spent" name="amount_spent" oils_persist:virtual="true" reporter:datatype="float" />
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
+			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
+			<link field="editor" reltype="has_a" key="id" map="" class="au"/>
 			<link field="default_fund" reltype="has_a" key="id" map="" class="acqf"/>
 			<link field="provider" reltype="has_a" key="id" map="" class="acqpro"/>
 			<link field="lineitems" reltype="has_many" key="purchase_order" map="" class="jub"/>
 			<link field="ordering_agency" reltype="has_a" key="id" map="" class="aou"/>
 		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="CREATE_PURCHASE_ORDER" context_field="ordering_agency"/>
+				<retrieve permission="CREATE_PURCHASE_ORDER VIEW_PURCHASE_ORDER" context_field="ordering_agency"/>
+				<update permission="CREATE_PURCHASE_ORDER" context_field="ordering_agency"/>
+				<delete permission="CREATE_PURCHASE_ORDER" context_field="ordering_agency"/>
+			</actions>
+		</permacrud>
 	</class>
 
-	<class id="acqpon" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::po_note" oils_persist:tablename="acq.po_note">
+	<class id="acqpon" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::po_note" oils_persist:tablename="acq.po_note" reporter:label="PO Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.po_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="PO Note ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Purchase Order" name="purchase_order" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Creator" name="creator" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Creation Time" name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Edit Time" name="edit_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Editor" name="editor" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Vote Value" name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" />
+			<field reporter:label="PO Note ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Purchase Order" name="purchase_order" reporter:datatype="link" />
+			<field reporter:label="Creator" name="creator" reporter:datatype="link" />
+			<field reporter:label="Creation Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Edit Time" name="edit_time" reporter:datatype="timestamp" />
+			<field reporter:label="Editor" name="editor" reporter:datatype="link" />
+			<field reporter:label="Vote Value" name="value" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
@@ -4538,30 +4522,31 @@
 		</links>
 	</class>
 
-	<class id="jub" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem" oils_persist:tablename="acq.lineitem">
+	<class id="jub" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem" oils_persist:tablename="acq.lineitem" reporter:label="Line Item">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Lineitem ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Selecting Org Unit" name="selector" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Picklist" name="picklist" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Purchase Order" name="purchase_order" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Provider" name="provider" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Creation Time" name="create_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Edit Time" name="edit_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="MARC" name="marc" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Evergreen Bib ID" name="eg_bib_id" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Source Label" name="source_label" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Expected Receive Date" name="expected_recv_time" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="State" name="state" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Item Count" name="item_count" oils_obj:array_position="15" oils_persist:virtual="true" reporter:datatype="int" />
-			<field reporter:label="Descriptive Attributes" name="attributes" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link" />
-			<field reporter:label="Line Item Details" name="lineitem_details" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link" />
-			<field reporter:label="Line Item Notes" name="lineitem_notes" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="link" />
+			<field reporter:label="Lineitem ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Selecting User" name="selector" reporter:datatype="link" />
+			<field reporter:label="Picklist" name="picklist" reporter:datatype="link" />
+			<field reporter:label="Purchase Order" name="purchase_order" reporter:datatype="link" />
+			<field reporter:label="Provider" name="provider" reporter:datatype="link" />
+			<field reporter:label="Creation Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Edit Time" name="edit_time" reporter:datatype="timestamp" />
+			<field reporter:label="MARC" name="marc" reporter:datatype="text" />
+			<field reporter:label="Evergreen Bib ID" name="eg_bib_id" reporter:datatype="link" />
+			<field reporter:label="Source Label" name="source_label" reporter:datatype="text" />
+			<field reporter:label="Expected Receive Date" name="expected_recv_time" reporter:datatype="timestamp" />
+			<field reporter:label="State" name="state" reporter:datatype="text" />
+			<field reporter:label="Creator" name="creator" reporter:datatype="link" />
+			<field reporter:label="Editor" name="editor" reporter:datatype="link" />
+			<field reporter:label="Item Count" name="item_count" oils_persist:virtual="true" reporter:datatype="int" />
+			<field reporter:label="Descriptive Attributes" name="attributes" oils_persist:virtual="true" reporter:datatype="link" />
+			<field reporter:label="Line Item Details" name="lineitem_details" oils_persist:virtual="true" reporter:datatype="link" />
+			<field reporter:label="Line Item Notes" name="lineitem_notes" oils_persist:virtual="true" reporter:datatype="link" />
 		</fields>
 		<links>
-			<link field="selector" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="selector" reltype="has_a" key="id" map="" class="au"/>
+			<link field="editor" reltype="has_a" key="id" map="" class="au"/>
+			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
 			<link field="provider" reltype="has_a" key="id" map="" class="acqpro"/>
 			<link field="purchase_order" reltype="has_a" key="id" map="" class="acqpo"/>
 			<link field="picklist" reltype="has_a" key="id" map="" class="acqpl"/>
@@ -4572,18 +4557,15 @@
 		</links>
 	</class>
 
-	<class id="acqlin" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_note" oils_persist:tablename="acq.lineitem_note">
+	<class id="acqlin" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_note" oils_persist:tablename="acq.lineitem_note" reporter:label="Line Item Note">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_note_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="PO Line Item Note ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Line Item" name="lineitem" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Creator" name="creator" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Creation Time" name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Edit Time" name="edit_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Editor" name="editor" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Vote Value" name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" />
+			<field reporter:label="PO Line Item Note ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Line Item" name="lineitem" reporter:datatype="link" />
+			<field reporter:label="Creator" name="creator" reporter:datatype="link" />
+			<field reporter:label="Creation Time" name="create_time" reporter:datatype="timestamp" />
+			<field reporter:label="Edit Time" name="edit_time" reporter:datatype="timestamp" />
+			<field reporter:label="Editor" name="editor" reporter:datatype="link" />
+			<field reporter:label="Vote Value" name="value" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="creator" reltype="has_a" key="id" map="" class="au"/>
@@ -4592,17 +4574,14 @@
 		</links>
 	</class>
 
-	<class id="acqlia" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_attr" oils_persist:tablename="acq.lineitem_attr">
+	<class id="acqlia" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_attr" oils_persist:tablename="acq.lineitem_attr" reporter:label="Line Item Attribute">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Attribute Value ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Lineitem" name="lineitem" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Type" name="attr_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Name" name="attr_name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Value" name="attr_value" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Definition" name="definition" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text" />
+			<field reporter:label="Attribute Value ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Lineitem" name="lineitem" reporter:datatype="link" />
+			<field reporter:label="Type" name="attr_type" reporter:datatype="text" />
+			<field reporter:label="Name" name="attr_name" reporter:datatype="text" />
+			<field reporter:label="Value" name="attr_value" reporter:datatype="text" />
+			<field reporter:label="Definition" name="definition" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="lineitem" reltype="has_a" key="id" map="" class="jub"/>
@@ -4610,21 +4589,21 @@
 		</links>
 	</class>
 
-	<class id="acqlid" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_detail" oils_persist:tablename="acq.lineitem_detail">
+	<class id="acqlid" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_detail" oils_persist:tablename="acq.lineitem_detail" reporter:label="Line Item Detail">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_detail_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Item Detail ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="PO Line Item" name="lineitem" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Evergreen Copy ID" name="eg_copy_id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Barcode" name="barcode" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Call Number Label" name="cn_label" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Actual Receive Date" name="recv_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Fund" name="fund" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Fund Debit" name="fund_debit" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Shelving Location" name="location" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link" />
+			<field reporter:label="Item Detail ID" name="id" reporter:datatype="id" />
+			<field reporter:label="PO Line Item" name="lineitem" reporter:datatype="link" />
+			<field reporter:label="Evergreen Copy ID" name="eg_copy_id" reporter:datatype="link" />
+			<field reporter:label="Barcode" name="barcode" reporter:datatype="text" />
+			<field reporter:label="Call Number Label" name="cn_label" reporter:datatype="text" />
+			<field reporter:label="Actual Receive Date" name="recv_time" reporter:datatype="timestamp" />
+			<field reporter:label="Fund" name="fund" reporter:datatype="link" />
+			<field reporter:label="Fund Debit" name="fund_debit" reporter:datatype="link" />
+			<field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit" />
+			<field reporter:label="Shelving Location" name="location" reporter:datatype="link" />
+			<field reporter:label="Circ Modifier" name="circ_modifier" reporter:datatype="link" />
+			<field reporter:label="Note" name="note" reporter:datatype="text" />
+			<field reporter:label="Collection Code" name="collection_code" reporter:datatype="text" />
 		</fields>
 		<links>
 			<link field="lineitem" reltype="has_a" key="id" map="" class="jub"/>
@@ -4633,110 +4612,135 @@
 			<link field="fund_debit" reltype="has_a" key="id" map="" class="acqfdeb"/>
 			<link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
 			<link field="location" reltype="has_a" key="id" map="" class="acpl"/>
+			<link field="circ_modifier" reltype="has_a" key="code" map="" class="ccm"/>
 		</links>
 	</class>
 
-	<class id="acqliad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_attr_definition" oils_persist:tablename="acq.lineitem_attr_definition">
+	<class id="acqliad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_attr_definition" oils_persist:tablename="acq.lineitem_attr_definition" reporter:label="Line Item Attribute Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
 		</fields>
 		<links/>
 	</class>
 
-	<class id="acqlimad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_marc_attr_definition" oils_persist:tablename="acq.lineitem_marc_attr_definition">
+	<class id="acqlimad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_marc_attr_definition" oils_persist:tablename="acq.lineitem_marc_attr_definition" reporter:label="Line Item MARC Attribute Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="XPath" name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="XPath" name="xpath" reporter:datatype="text" />
+			<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
 		</fields>
 		<links/>
 	</class>
 
-	<class id="acqligad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_generated_attr_definition" oils_persist:tablename="acq.lineitem_generated_attr_definition">
+	<class id="acqligad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_generated_attr_definition" oils_persist:tablename="acq.lineitem_generated_attr_definition" reporter:label="Line Item Generated Attribute Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="XPath" name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="XPath" name="xpath" reporter:datatype="text" />
+			<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
 		</fields>
 		<links/>
 	</class>
-
-	<class id="acqlipad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_provider_attr_definition" oils_persist:tablename="acq.lineitem_provider_attr_definition">
+	<class id="acqliuad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_usr_attr_definition" oils_persist:tablename="acq.lineitem_usr_attr_definition" reporter:label="Line Item User Attribute Definition">
 		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="XPath" name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Provider" name="provider" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="User" name="usr" reporter:datatype="link" />
+			<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
 		</fields>
 		<links>
-			<link field="provider" reltype="has_a" key="id" map="" class="acqpro"/>
+			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 		</links>
 	</class>
 
-	<class id="acqliuad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_usr_attr_definition" oils_persist:tablename="acq.lineitem_usr_attr_definition">
-		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="User" name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link" />
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-		</fields>
-		<links>
-			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
-		</links>
+	<class id="acqlipad" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::lineitem_provider_attr_definition" oils_persist:tablename="acq.lineitem_provider_attr_definition" reporter:label="Line Item Provider Attribute Definition">
+	    <fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
+		<field reporter:label="Definition ID" name="id" reporter:datatype="id" />
+		<field reporter:label="Code" name="code" reporter:datatype="text" />
+		<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true" />
+		<field reporter:label="XPath" name="xpath" reporter:datatype="text" />
+		<field reporter:label="Provider" name="provider" reporter:datatype="link" />
+		<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
+        <field reporter:label="Remove" name="remove" reporter:datatype="text" />
+
+	    </fields>
+	    <links>
+		<link field="provider" reltype="has_a" key="id" map="" class="acqpro"/>
+	    </links>
+            <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+                <actions>
+                    <create permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </create>
+                    <retrieve permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </retrieve>
+                    <update permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </update>
+                    <delete permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </delete>
+                </actions>
+            </permacrud>
 	</class>
-
-	<class id="acqlilad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_local_attr_definition" oils_persist:tablename="acq.lineitem_local_attr_definition">
-		<fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Definition ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
-			<field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
-			<field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
+        
+	<class id="acqphsm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::provider_holding_subfield_map" oils_persist:tablename="acq.provider_holding_subfield_map" reporter:label="Provider Holding Subfield Map">
+	    <fields oils_persist:primary="id" oils_persist:sequence="acq.provider_holding_subfield_map_id_seq">
+		<field reporter:label="ID" name="id" reporter:datatype="id" />
+		<field reporter:label="Provider" name="provider" reporter:datatype="link" />
+		<field reporter:label="Name" name="name" reporter:datatype="text" />
+		<field reporter:label="Subfield" name="subfield" reporter:datatype="text" />
+	    </fields>
+	    <links>
+		<link field="provider" reltype="has_a" key="id" map="" class="acqpro"/>
+	    </links>
+            <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+                <actions>
+                    <create permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </create>
+                    <retrieve permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </retrieve>
+                    <update permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </update>
+                    <delete permission="ADMIN_PROVIDER">
+                        <context link="provider" field="owner"/>
+                    </delete>
+                </actions>
+            </permacrud>
+	</class>
+        
+	<class id="acqlilad" controller="open-ils.cstore open-ils.reporter-store" oils_obj:fieldmapper="acq::lineitem_local_attr_definition" oils_persist:tablename="acq.lineitem_local_attr_definition" reporter:label="Line Item Local Attribute Definition">
+	    <fields oils_persist:primary="id" oils_persist:sequence="acq.lineitem_attr_definition_id_seq">
+			<field reporter:label="Definition ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Code" name="code" reporter:datatype="text" />
+			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true" />
+			<field reporter:label="Is Identifier?" name="ident" reporter:datatype="bool"/>
 		</fields>
 		<links/>
 	</class>
 
-	<class id="rof" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::output_folder" oils_persist:tablename="reporter.output_folder">
+	<class id="rof" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::output_folder" oils_persist:tablename="reporter.output_folder" reporter:label="Output Folder">
 		<fields oils_persist:primary="id" oils_persist:sequence="reporter.output_folder_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="parent" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="name" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="shared" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="share_with" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="children" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="outputs" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="parent" reporter:datatype="link"/>
+			<field name="owner" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp"/>
+			<field name="name" reporter:datatype="text"/>
+			<field name="shared" reporter:datatype="bool"/>
+			<field name="share_with" reporter:datatype="link"/>
+			<field name="children" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="outputs" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
@@ -4746,20 +4750,17 @@
 			<link field="outputs" reltype="has_many" key="folder" map="" class="rs"/>
 		</links>
 	</class>
-	<class id="rtf" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::template_folder" oils_persist:tablename="reporter.template_folder">
+	<class id="rtf" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::template_folder" oils_persist:tablename="reporter.template_folder" reporter:label="Template Folder">
 		<fields oils_persist:primary="id" oils_persist:sequence="reporter.template_folder_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="parent" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="name" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="shared" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="share_with" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="children" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="templates" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="parent" reporter:datatype="link"/>
+			<field name="owner" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp"/>
+			<field name="name" reporter:datatype="text"/>
+			<field name="shared" reporter:datatype="bool"/>
+			<field name="share_with" reporter:datatype="link"/>
+			<field name="children" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="templates" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
@@ -4769,20 +4770,17 @@
 			<link field="templates" reltype="has_many" key="folder" map="" class="rt"/>
 		</links>
 	</class>
-	<class id="rrf" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::report_folder" oils_persist:tablename="reporter.report_folder">
+	<class id="rrf" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::report_folder" oils_persist:tablename="reporter.report_folder" reporter:label="Report Folder">
 		<fields oils_persist:primary="id" oils_persist:sequence="reporter.report_folder_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="parent" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="name" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="shared" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="share_with" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="children" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field name="reports" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="parent" reporter:datatype="link"/>
+			<field name="owner" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp"/>
+			<field name="name" reporter:datatype="text"/>
+			<field name="shared" reporter:datatype="bool"/>
+			<field name="share_with" reporter:datatype="link"/>
+			<field name="children" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="reports" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
@@ -4792,19 +4790,16 @@
 			<link field="reports" reltype="has_many" key="folder" map="" class="rr"/>
 		</links>
 	</class>
-	<class id="rt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::template" oils_persist:tablename="reporter.template">
+	<class id="rt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::template" oils_persist:tablename="reporter.template" reporter:label="Template">
 		<fields oils_persist:primary="id" oils_persist:sequence="reporter.template_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="data" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="folder" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="description" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="reports" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="owner" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp"/>
+			<field name="name" reporter:datatype="text"/>
+			<field name="data" reporter:datatype="text"/>
+			<field name="folder" reporter:datatype="link"/>
+			<field name="description" reporter:datatype="text"/>
+			<field name="reports" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
@@ -4812,22 +4807,19 @@
 			<link field="reports" reltype="has_many" key="template" map="" class="rr"/>
 		</links>
 	</class>
-	<class id="rr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::report" oils_persist:tablename="reporter.report">
+	<class id="rr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::report" oils_persist:tablename="reporter.report" reporter:label="Report">
 		<fields oils_persist:primary="id" oils_persist:sequence="reporter.report_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="create_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="template" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="data" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="folder" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="recur" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="recurance" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field name="name" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="description" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="runs" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="owner" reporter:datatype="link"/>
+			<field name="create_time" reporter:datatype="timestamp"/>
+			<field name="template" reporter:datatype="link"/>
+			<field name="data" reporter:datatype="link"/>
+			<field name="folder" reporter:datatype="link"/>
+			<field name="recur" reporter:datatype="bool"/>
+			<field name="recurance" reporter:datatype="interval"/>
+			<field name="name" reporter:datatype="text"/>
+			<field name="description" reporter:datatype="text"/>
+			<field name="runs" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="au"/>
@@ -4836,27 +4828,24 @@
 			<link field="runs" reltype="has_many" key="report" map="" class="rs"/>
 		</links>
 	</class>
-	<class id="rs" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::schedule" oils_persist:tablename="reporter.schedule">
+	<class id="rs" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::schedule" oils_persist:tablename="reporter.schedule" reporter:label="Schedule">
 		<fields oils_persist:primary="id" oils_persist:sequence="reporter.schedule_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field name="runner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="start_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="complete_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="run_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field name="email" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="excel_format" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="csv_format" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="html_format" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="error_code" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field name="error_text" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field name="report" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="folder" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field name="chart_pie" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="chart_bar" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field name="chart_line" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="bool"/>
+			<field name="id" reporter:datatype="id" />
+			<field name="runner" reporter:datatype="link"/>
+			<field name="start_time" reporter:datatype="timestamp"/>
+			<field name="complete_time" reporter:datatype="timestamp"/>
+			<field name="run_time" reporter:datatype="timestamp"/>
+			<field name="email" reporter:datatype="text"/>
+			<field name="excel_format" reporter:datatype="bool"/>
+			<field name="csv_format" reporter:datatype="bool"/>
+			<field name="html_format" reporter:datatype="bool"/>
+			<field name="error_code" reporter:datatype="int"/>
+			<field name="error_text" reporter:datatype="text"/>
+			<field name="report" reporter:datatype="link"/>
+			<field name="folder" reporter:datatype="link"/>
+			<field name="chart_pie" reporter:datatype="bool"/>
+			<field name="chart_bar" reporter:datatype="bool"/>
+			<field name="chart_line" reporter:datatype="bool"/>
 		</fields>
 		<links>
 			<link field="runner" reltype="has_a" key="id" map="" class="au"/>
@@ -4866,21 +4855,18 @@
 	</class>
 	<class id="rmsr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::materialized_simple_record" oils_persist:tablename="reporter.materialized_simple_record" reporter:label="Fast Simple Record Extracts">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Author (normalized)" name="author" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="ISBN" name="isbn" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="ISSN" name="issn" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Record ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Fingerprint" name="fingerprint" reporter:datatype="text"/>
+			<field reporter:label="Overall Record Quality" name="quality" reporter:datatype="int"/>
+			<field reporter:label="TCN Source" name="tcn_source" reporter:datatype="text"/>
+			<field reporter:label="TCN Value" name="tcn_value" reporter:datatype="text"/>
+			<field reporter:label="Title Proper (normalized)" name="title" reporter:datatype="text"/>
+			<field reporter:label="Author (normalized)" name="author" reporter:datatype="text"/>
+			<field reporter:label="Publisher (normalized)" name="publisher" reporter:datatype="text"/>
+			<field reporter:label="Publication Year (normalized)" name="pubdate" reporter:datatype="int"/>
+			<field reporter:label="ISBN" name="isbn" reporter:datatype="text"/>
+			<field reporter:label="ISSN" name="issn" reporter:datatype="text"/>
+			<field reporter:label="Full Bibliographic record" name="biblio_record" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/>
@@ -4888,54 +4874,48 @@
 	</class>
 	<class id="rssr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::super_simple_record" oils_persist:tablename="reporter.super_simple_record" reporter:label="Simple Record Extracts">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Author (normalized)" name="author" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="ISBN" name="isbn" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="ISSN" name="issn" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Record ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Fingerprint" name="fingerprint" reporter:datatype="text"/>
+			<field reporter:label="Overall Record Quality" name="quality" reporter:datatype="int"/>
+			<field reporter:label="TCN Source" name="tcn_source" reporter:datatype="text"/>
+			<field reporter:label="TCN Value" name="tcn_value" reporter:datatype="text"/>
+			<field reporter:label="Title Proper (normalized)" name="title" reporter:datatype="text"/>
+			<field reporter:label="Author (normalized)" name="author" reporter:datatype="text"/>
+			<field reporter:label="Publisher (normalized)" name="publisher" reporter:datatype="text"/>
+			<field reporter:label="Publication Year (normalized)" name="pubdate" reporter:datatype="int"/>
+			<field reporter:label="ISBN" name="isbn" reporter:datatype="text"/>
+			<field reporter:label="ISSN" name="issn" reporter:datatype="text"/>
+			<field reporter:label="Full Bibliographic record" name="biblio_record" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/>
 		</links>
 	</class>
-	<class id="rsr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::simple_record" oils_persist:tablename="reporter.simple_record">
+	<class id="rsr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::simple_record" oils_persist:tablename="reporter.simple_record" reporter:label="Simple Record">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Metarecord" name="metarecord" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="5" oils_persist:virtual="false" />
-			<field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Uniform Title (normalized)" name="uniform_title" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Author (normalized)" name="author" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="int"/>
-			<field reporter:label="Series Title (normalized)" name="series_title" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Series Statement (normalized)" name="series_statement" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Summary (normalized)" name="summary" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="ISBN" name="isbn" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="ISSN" name="issn" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Topic Subjects (normalized)" name="topic_subject" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Geographic Subjects (normalized)" name="geographic_subject" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Genres (normalized)" name="genre" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Personal Name Subjects (normalized)" name="name_subject" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Corporate Name Subjects (normalized)" name="corporate_subject" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="External URI List (normalized)" name="external_uri" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="25" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Record ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Metarecord" name="metarecord" reporter:datatype="link"/>
+			<field reporter:label="Fingerprint" name="fingerprint" />
+			<field reporter:label="Overall Record Quality" name="quality" reporter:datatype="int"/>
+			<field reporter:label="TCN Source" name="tcn_source" reporter:datatype="text"/>
+			<field reporter:label="TCN Value" name="tcn_value" reporter:datatype="text"/>
+			<field reporter:label="Title Proper (normalized)" name="title" reporter:datatype="text"/>
+			<field reporter:label="Uniform Title (normalized)" name="uniform_title" reporter:datatype="text"/>
+			<field reporter:label="Author (normalized)" name="author" reporter:datatype="text"/>
+			<field reporter:label="Publisher (normalized)" name="publisher" reporter:datatype="text"/>
+			<field reporter:label="Publication Year (normalized)" name="pubdate" reporter:datatype="int"/>
+			<field reporter:label="Series Title (normalized)" name="series_title" reporter:datatype="text"/>
+			<field reporter:label="Series Statement (normalized)" name="series_statement" reporter:datatype="text"/>
+			<field reporter:label="Summary (normalized)" name="summary" reporter:datatype="text"/>
+			<field reporter:label="ISBN" name="isbn" reporter:datatype="text"/>
+			<field reporter:label="ISSN" name="issn" reporter:datatype="text"/>
+			<field reporter:label="Topic Subjects (normalized)" name="topic_subject" reporter:datatype="text"/>
+			<field reporter:label="Geographic Subjects (normalized)" name="geographic_subject" reporter:datatype="text"/>
+			<field reporter:label="Genres (normalized)" name="genre" reporter:datatype="text"/>
+			<field reporter:label="Personal Name Subjects (normalized)" name="name_subject" reporter:datatype="text"/>
+			<field reporter:label="Corporate Name Subjects (normalized)" name="corporate_subject" reporter:datatype="text"/>
+			<field reporter:label="External URI List (normalized)" name="external_uri" reporter:datatype="text"/>
+			<field reporter:label="Full Bibliographic record" name="biblio_record" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="metarecord" reltype="has_a" key="id" map="" class="mmr"/>
@@ -4944,12 +4924,9 @@
 	</class>
 	<class id="rud" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::user_demographic" oils_persist:tablename="reporter.demographic" reporter:label="User Demographics">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="User ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Date of Birth" name="dob" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="General Demographic Division" name="general_division" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="User ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Date of Birth" name="dob" reporter:datatype="timestamp"/>
+			<field reporter:label="General Demographic Division" name="general_division" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="id" reltype="might_have" key="id" map="" class="au"/>
@@ -4957,131 +4934,157 @@
 	</class>
 	<class id="rcirct" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::circulation_type" oils_persist:tablename="reporter.circ_type" reporter:label="Circulation Type">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Circulation Type" name="type" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Circulation ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Circulation Type" name="type" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="id" reltype="might_have" key="id" map="" class="circ"/>
 		</links>
 	</class>
-	<class id="rhrr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::hold_request_record" oils_persist:tablename="reporter.hold_request_record">
+	<class id="rhrr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::hold_request_record" oils_persist:tablename="reporter.hold_request_record" reporter:label="Hold Request Record">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Hold ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Hold Target" name="target" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Hold Request Type" name="hold_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Target Bib Record" name="bib_record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Hold ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Hold Target" name="target" reporter:datatype="int" />
+			<field reporter:label="Hold Request Type" name="hold_type" reporter:datatype="text"/>
+			<field reporter:label="Target Bib Record" name="bib_record" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="id" reltype="might_have" key="id" map="" class="ahr"/>
 			<link field="bib_record" reltype="has_a" key="id" map="" class="bre"/>
 		</links>
 	</class>
-	<class id="rxbt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::xact_billing_totals" oils_persist:tablename="reporter.xact_billing_totals">
+	<class id="rxbt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::xact_billing_totals" oils_persist:tablename="reporter.xact_billing_totals" reporter:label="Transaction Billing Totals">
 		<fields oils_persist:primary="xact">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Transaction ID" name="xact" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Unvoided Billing Amount" name="unvoided" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Voided Billing Amount" name="voided" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Total Billing Amount" name="total" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
+			<field reporter:label="Transaction ID" name="xact" reporter:datatype="int" />
+			<field reporter:label="Unvoided Billing Amount" name="unvoided" reporter:datatype="int" />
+			<field reporter:label="Voided Billing Amount" name="voided" reporter:datatype="money"/>
+			<field reporter:label="Total Billing Amount" name="total" reporter:datatype="money"/>
 		</fields>
 		<links>
 			<link field="xact" reltype="might_have" key="id" map="" class="mbt"/>
 		</links>
 	</class>
-	<class id="rxpt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::xact_paid_totals" oils_persist:tablename="reporter.xact_paid_totals">
+	<class id="rxpt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::xact_paid_totals" oils_persist:tablename="reporter.xact_paid_totals" reporter:label="Transaction Paid Totals">
 		<fields oils_persist:primary="xact">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Transaction ID" name="xact" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Unvoided Paid Amount" name="unvoided" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Voided (Returned) Paid Amount" name="voided" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Total Paid Amount" name="total" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
+			<field reporter:label="Transaction ID" name="xact" reporter:datatype="int" />
+			<field reporter:label="Unvoided Paid Amount" name="unvoided" reporter:datatype="int" />
+			<field reporter:label="Voided (Returned) Paid Amount" name="voided" reporter:datatype="money"/>
+			<field reporter:label="Total Paid Amount" name="total" reporter:datatype="money"/>
 		</fields>
 		<links>
 			<link field="xact" reltype="might_have" key="id" map="" class="mbt"/>
 		</links>
 	</class>
+	<class id="ergbhu" controller="open-ils.reporter-store" oils_obj:fieldmapper="extend_reporter::global_bibs_by_holding_update" oils_persist:tablename="extend_reporter.global_bibs_by_holding_update" reporter:label="Bib IDs by Holding Add/Delete Time (OCLC batch update)">
+		<fields oils_persist:primary="id">
+			<field reporter:label="Bib ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Update Time" name="holding_update" reporter:datatype="timestamp" />
+			<field reporter:label="Update Type" name="update_type" reporter:datatype="text" />
+		</fields>
+		<links>
+			<link field="id" reltype="has_a" key="id" map="" class="bre"/>
+		</links>
+	</class>
+	<class id="erfcc" controller="open-ils.reporter-store" oils_obj:fieldmapper="extend_reporter::full_circ_count" oils_persist:tablename="extend_reporter.full_circ_count" reporter:label="Total Circulation Count, Including Legacy">
+		<fields oils_persist:primary="id">
+			<field reporter:label="Copy ID" name="id" reporter:datatype="int" />
+			<field reporter:label="Total Circulation Count" name="circ_count" reporter:datatype="int" />
+		</fields>
+		<links>
+			<link field="id" reltype="has_a" key="id" map="" class="acp"/>
+		</links>
+	</class>
+	<class id="acqdf" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::distribution_formula" oils_persist:tablename="acq.distribution_formula" reporter:label="Distribution Formula">
+		<fields oils_persist:primary="id" oils_persist:sequence="acq.distribution_formula_id_seq">
+			<field reporter:label="Formula ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Formula Owner" name="owner" reporter:datatype="org_unit"/>
+			<field reporter:label="Formula Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Skip Count" name="skip_count" reporter:datatype="int"/>
+			<field reporter:label="Entries" name="entries" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="entries" reltype="has_many" key="formula" map="" class="acqdfe"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_ACQ_DISTRIB_FORMULA" context_field="owner"/>
+				<retrieve permission="ADMIN_ACQ_DISTRIB_FORMULA" context_field="owner"/>
+				<update permission="ADMIN_ACQ_DISTRIB_FORMULA" context_field="owner"/>
+				<delete permission="ADMIN_ACQ_DISTRIB_FORMULA" context_field="owner"/>
+			</actions>
+		</permacrud>
+	</class>
+	<class id="acqdfe" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::distribution_formula_entry" oils_persist:tablename="acq.distribution_formula_entry" reporter:label="Distribution Formula Entry">
+		<fields oils_persist:primary="id" oils_persist:sequence="acq.distribution_formula_entry_id_seq">
+			<field reporter:label="Entry ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Formula ID" name="formula" reporter:datatype="link"/>
+			<field reporter:label="Position" name="position" reporter:datatype="int"/>
+			<field reporter:label="Item Count" name="item_count" reporter:datatype="int"/>
+			<field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Location" name="location" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="formula" reltype="has_a" key="id" map="" class="acqdf"/>
+			<link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="location" reltype="has_a" key="id" map="" class="acpl"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_ACQ_DISTRIB_FORMULA">
+					<context link="formula" field="owner"/>
+				</create>
+				<retrieve permission="ADMIN_ACQ_DISTRIB_FORMULA">
+					<context link="formula" field="owner"/>
+				</retrieve>
+				<update permission="ADMIN_ACQ_DISTRIB_FORMULA">
+					<context link="formula" field="owner"/>
+				</update>
+				<delete permission="ADMIN_ACQ_DISTRIB_FORMULA">
+					<context link="formula" field="owner"/>
+				</delete>
+			</actions>
+		</permacrud>
+	</class>
 
-    <class id="ergbhu"
-           controller="open-ils.reporter-store"
-           oils_obj:fieldmapper="extend_reporter::global_bibs_by_holding_update"
-           oils_persist:tablename="extend_reporter.global_bibs_by_holding_update"
-           reporter:label="Bib IDs by Holding Add/Delete Time (OCLC batch update)">
-        <fields oils_persist:primary="id">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Bib ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-            <field reporter:label="Update Time" name="holding_update" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp" />
-            <field reporter:label="Update Type" name="update_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" />
-        </fields>
-        <links>
-            <link field="id" reltype="has_a" key="id" map="" class="bre"/>
-        </links>
-    </class>
 
-    <class id="erfcc" controller="open-ils.reporter-store" oils_obj:fieldmapper="extend_reporter::full_circ_count" oils_persist:tablename="extend_reporter.full_circ_count" reporter:label="Total Circulation Count, Including Legacy">
-        <fields oils_persist:primary="id">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Copy ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
-            <field reporter:label="Total Circulation Count" name="circ_count" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
-        </fields>
-        <links>
-            <link field="id" reltype="has_a" key="id" map="" class="acp"/>
-        </links>
-    </class>
-
 	<!-- ********************************************************************************************************************* -->
 	<!-- What follows is a set of example extensions that are useful for PINES.  Comment out or remove if you don't want them. -->
 	<!-- ********************************************************************************************************************* -->
 	<class id="rccc" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::classic_current_circ" oils_persist:tablename="reporter.classic_current_circ" reporter:core="true" reporter:label="Classic Circulation View">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Circulation" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Library Circulation Location Short (Policy) Name" name="circ_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Library Circulation Location Link" name="circ_lib_id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Circulation Date/Time" name="xact_start" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Copy Link" name="copy_id" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Circ Modifier" name="circ_modifier" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Owning Library Short (Policy) Name" name="owning_lib_name" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Item Language" name="language" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Literary Form" name="lit_form" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="MARC Form" name="item_form" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="MARC Type" name="item_type" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Shelving Location" name="shelving_location" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Patron Profile Group" name="profile_group" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Patron Age Demographic" name="demographic_general_division" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Call Number Link" name="call_number" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Call Number Label" name="call_number_label" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Call Number Dewey/Prefix" name="dewey" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Patron Link" name="patron_id" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron Home Library Link" name="patron_home_lib" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron Home Library Short (Policy) Name" name="patron_home_lib_shortname" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Patron County" name="patron_county" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Patron City" name="patron_city" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Patron ZIP Code" name="patron_zip" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Legacy CAT1 Link" name="stat_cat_1" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Legacy CAT2 Link" name="stat_cat_2" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Dewey Range -- Tens" name="dewey_range_tens" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Dewey Range -- Hundreds" name="dewey_range_hundreds" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Dewey Block -- Tens" name="dewey_block_tens" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Dewey Block -- Hundreds" name="dewey_block_hundreds" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Legacy CAT1 Value" name="stat_cat_1_value" oils_obj:array_position="33" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Legacy CAT2 Value" name="stat_cat_2_value" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Circulation" name="id" reporter:datatype="id" />
+			<field reporter:label="Library Circulation Location Short (Policy) Name" name="circ_lib" reporter:datatype="text"/>
+			<field reporter:label="Library Circulation Location Link" name="circ_lib_id" reporter:datatype="org_unit"/>
+			<field reporter:label="Circulation Date/Time" name="xact_start" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulation Type" name="circ_type" reporter:datatype="text"/>
+			<field reporter:label="Copy Link" name="copy_id" reporter:datatype="link"/>
+			<field reporter:label="Circ Modifier" name="circ_modifier" reporter:datatype="text"/>
+			<field reporter:label="Owning Library Short (Policy) Name" name="owning_lib_name" reporter:datatype="text"/>
+			<field reporter:label="Item Language" name="language" reporter:datatype="text"/>
+			<field reporter:label="Literary Form" name="lit_form" reporter:datatype="text"/>
+			<field reporter:label="MARC Form" name="item_form" reporter:datatype="text"/>
+			<field reporter:label="MARC Type" name="item_type" reporter:datatype="text"/>
+			<field reporter:label="Shelving Location" name="shelving_location" reporter:datatype="text"/>
+			<field reporter:label="Patron Profile Group" name="profile_group" reporter:datatype="text"/>
+			<field reporter:label="Patron Age Demographic" name="demographic_general_division" reporter:datatype="text"/>
+			<field reporter:label="Call Number Link" name="call_number" reporter:datatype="link"/>
+			<field reporter:label="Call Number Label" name="call_number_label" reporter:datatype="text"/>
+			<field reporter:label="Call Number Dewey/Prefix" name="dewey" reporter:datatype="text"/>
+			<field reporter:label="Patron Link" name="patron_id" reporter:datatype="link"/>
+			<field reporter:label="Patron Home Library Link" name="patron_home_lib" reporter:datatype="link"/>
+			<field reporter:label="Patron Home Library Short (Policy) Name" name="patron_home_lib_shortname" reporter:datatype="text"/>
+			<field reporter:label="Patron County" name="patron_county" reporter:datatype="text"/>
+			<field reporter:label="Patron City" name="patron_city" reporter:datatype="text"/>
+			<field reporter:label="Patron ZIP Code" name="patron_zip" reporter:datatype="text"/>
+			<field reporter:label="Legacy CAT1 Link" name="stat_cat_1" reporter:datatype="link"/>
+			<field reporter:label="Legacy CAT2 Link" name="stat_cat_2" reporter:datatype="link"/>
+			<field reporter:label="Dewey Range - Tens" name="dewey_range_tens" reporter:datatype="text"/>
+			<field reporter:label="Dewey Range - Hundreds" name="dewey_range_hundreds" reporter:datatype="text"/>
+			<field reporter:label="Dewey Block - Tens" name="dewey_block_tens" reporter:datatype="text"/>
+			<field reporter:label="Dewey Block - Hundreds" name="dewey_block_hundreds" reporter:datatype="text"/>
+			<field reporter:label="Legacy CAT1 Value" name="stat_cat_1_value" reporter:datatype="text"/>
+			<field reporter:label="Legacy CAT2 Value" name="stat_cat_2_value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="id" reltype="has_a" key="id" map="" class="circ"/>
@@ -5097,12 +5100,9 @@
 
 	<class id="rsce1" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::legacy_cat1" oils_persist:tablename="reporter.legacy_cat1" reporter:label="CAT1 Entry">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="id" />
-			<field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Entry Value" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Entry ID" name="id" reporter:selector="value" reporter:datatype="id" />
+			<field reporter:label="Entry Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Entry Value" name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -5111,12 +5111,9 @@
 
 	<class id="rsce2" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::legacy_cat2" oils_persist:tablename="reporter.legacy_cat2" reporter:label="CAT2 Entry">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="id" />
-			<field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Entry Value" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Entry ID" name="id" reporter:selector="value" reporter:datatype="id" />
+			<field reporter:label="Entry Owner" name="owner" reporter:datatype="link"/>
+			<field reporter:label="Entry Value" name="value" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -5125,44 +5122,41 @@
 
 	<class id="rccbs" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::classic_current_billing_summary" oils_persist:tablename="reporter.classic_current_billing_summary" reporter:core="true" reporter:label="Classic Open Transaction Summary">
 		<fields oils_persist:primary="id">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Transaction ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
+			<field reporter:label="Transaction ID" name="id" reporter:datatype="id" />
 
-			<field reporter:label="Billing Location Short (Policy) Name" name="billing_location_shortname" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Billing Location Name" name="billing_location_name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Billing Location Link" name="billing_location" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
+			<field reporter:label="Billing Location Short (Policy) Name" name="billing_location_shortname" reporter:datatype="text"/>
+			<field reporter:label="Billing Location Name" name="billing_location_name" reporter:datatype="text"/>
+			<field reporter:label="Billing Location Link" name="billing_location" reporter:datatype="org_unit"/>
 
-			<field reporter:label="User Home Library Short (Policy) Name" name="usr_home_ou_shortname" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User Home Library Name" name="usr_home_ou_name" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User Home Library Link" name="usr_home_ou" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="org_unit"/>
+			<field reporter:label="User Home Library Short (Policy) Name" name="usr_home_ou_shortname" reporter:datatype="text"/>
+			<field reporter:label="User Home Library Name" name="usr_home_ou_name" reporter:datatype="text"/>
+			<field reporter:label="User Home Library Link" name="usr_home_ou" reporter:datatype="org_unit"/>
 
-			<field reporter:label="User Barcode" name="barcode" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User Link" name="usr" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="User Barcode" name="barcode" reporter:datatype="text"/>
+			<field reporter:label="User Link" name="usr" reporter:datatype="link"/>
 
-			<field reporter:label="Transaction Start Date/Time" name="xact_start" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transaction End Date/Time" name="xact_finish" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transaction Type" name="xact_type" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Transaction Start Date/Time" name="xact_start" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction End Date/Time" name="xact_finish" reporter:datatype="timestamp"/>
+			<field reporter:label="Transaction Type" name="xact_type" reporter:datatype="text"/>
 
-			<field reporter:label="Total Paid" name="total_paid" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="Total Billed" name="total_owed" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="money"/>
+			<field reporter:label="Total Paid" name="total_paid" reporter:datatype="money"/>
+			<field reporter:label="Total Billed" name="total_owed" reporter:datatype="money"/>
 
-			<field reporter:label="Last Payment Date/Time" name="last_payment_ts" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Payment Note" name="last_payment_note" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Last Payment Type" name="last_payment_type" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Last Payment Date/Time" name="last_payment_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Payment Note" name="last_payment_note" reporter:datatype="text"/>
+			<field reporter:label="Last Payment Type" name="last_payment_type" reporter:datatype="text"/>
 
-			<field reporter:label="Last Billing Date/Time" name="last_billing_ts" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Last Billing Note" name="last_billing_note" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Last Billing Type" name="last_billing_type" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Last Billing Date/Time" name="last_billing_ts" reporter:datatype="timestamp"/>
+			<field reporter:label="Last Billing Note" name="last_billing_note" reporter:datatype="text"/>
+			<field reporter:label="Last Billing Type" name="last_billing_type" reporter:datatype="text"/>
 
-			<field reporter:label="User Age Demographic" name="demographic_general_division" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User County" name="patron_county" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User City" name="patron_city" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="User ZIP Code" name="patron_zip" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="User Age Demographic" name="demographic_general_division" reporter:datatype="text"/>
+			<field reporter:label="User County" name="patron_county" reporter:datatype="text"/>
+			<field reporter:label="User City" name="patron_city" reporter:datatype="text"/>
+			<field reporter:label="User ZIP Code" name="patron_zip" reporter:datatype="text"/>
 
-			<field reporter:label="Balance Owed" name="balance_owed" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="money"/>
-			<field reporter:label="User Profile Group" name="profile_group" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="Balance Owed" name="balance_owed" reporter:datatype="money"/>
+			<field reporter:label="User Profile Group" name="profile_group" reporter:datatype="text"/>
 
 		</fields>
 		<links>
@@ -5184,19 +5178,16 @@
 
 		</oils_persist:source_definition>
 		<fields oils_persist:primary="id" oils_persist:sequence="action.transit_copy_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Pretransit Copy Status" name="copy_status" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Destination" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id"/>
-			<field reporter:label="Is Persistent? (unused)" name="persistant_transfer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Previous Hop (unused)" name="prev_hop" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Source" name="source" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Transited Copy" name="target_copy" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Hold Transit" name="hold_transit_copy" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Pretransit Copy Status" name="copy_status" reporter:datatype="bool"/>
+			<field reporter:label="Destination" name="dest" reporter:datatype="link"/>
+			<field reporter:label="Receive Date/Time" name="dest_recv_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Transit ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Is Persistent? (unused)" name="persistant_transfer" reporter:datatype="bool"/>
+			<field reporter:label="Previous Hop (unused)" name="prev_hop" reporter:datatype="link"/>
+			<field reporter:label="Source" name="source" reporter:datatype="link"/>
+			<field reporter:label="Send Date/Time" name="source_send_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Transited Copy" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Hold Transit" name="hold_transit_copy" oils_persist:virtual="true" reporter:datatype="link"/>
 		</fields>
 		<links>
 			<link field="hold_transit_copy" reltype="might_have" key="id" map="" class="ahtc"/>
@@ -5209,39 +5200,36 @@
 
 	<class id="rodcirc" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::overdue_circs" oils_persist:tablename="reporter.overdue_circs" reporter:core="true" reporter:label="Overdue Circulation">
 		<fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
-			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-			<field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-			<field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false"  reporter:datatype="org_unit"/>
-			<field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
-			<field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
-			<field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
-			<field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
-			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
-			<field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-			<field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Patron" name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
-			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
-			<field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
-			<field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="text"/>
-			<field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="money"/>
-			<field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Check In Library" name="checkin_lib" reporter:datatype="org_unit"/>
+			<field reporter:label="Check In Staff" name="checkin_staff" reporter:datatype="link"/>
+			<field reporter:label="Check In Date/Time" name="checkin_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Library" name="circ_lib"  reporter:datatype="org_unit"/>
+			<field reporter:label="Circulating Staff" name="circ_staff" reporter:datatype="link"/>
+			<field reporter:label="Desk Renewal" name="desk_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Due Date/Time" name="due_date" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulation Duration" name="duration" reporter:datatype="interval"/>
+			<field reporter:label="Circ Duration Rule" name="duration_rule" reporter:datatype="link"/>
+			<field reporter:label="Fine Interval" name="fine_interval" reporter:datatype="interval"/>
+			<field reporter:label="Circ ID" name="id" reporter:datatype="id" />
+			<field reporter:label="Max Fine Amount" name="max_fine" reporter:datatype="money" />
+			<field reporter:label="Max Fine Rule" name="max_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="OPAC Renewal" name="opac_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Phone Renewal" name="phone_renewal" reporter:datatype="bool"/>
+			<field reporter:label="Recurring Fine Amount" name="recuring_fine" reporter:datatype="money" />
+			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" reporter:datatype="link"/>
+			<field reporter:label="Remaining Renewals" name="renewal_remaining" reporter:datatype="int" />
+			<field reporter:label="Fine Stop Reason" name="stop_fines" reporter:datatype="text"/>
+			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" reporter:datatype="timestamp"/>
+			<field reporter:label="Circulating Item" name="target_copy" reporter:datatype="link"/>
+			<field reporter:label="Patron" name="usr" reporter:datatype="link"/>
+			<field reporter:label="Transaction Finish Date/Time" name="xact_finish" reporter:datatype="timestamp" />
+			<field reporter:label="Check Out Date/Time" name="xact_start" reporter:datatype="timestamp" />
+			<field reporter:label="Transaction Billings" name="billings" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Transaction Payments" name="payments" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Base Transaction" name="billable_transaction" oils_persist:virtual="true" reporter:datatype="link"/>
+			<field reporter:label="Circulation Type" name="circ_type" oils_persist:virtual="true" reporter:datatype="text"/>
+			<field reporter:label="Billing Totals" name="billing_total" oils_persist:virtual="true" reporter:datatype="money"/>
+			<field reporter:label="Payment Totals" name="payment_total" oils_persist:virtual="true" reporter:datatype="money"/>
 		</fields>
 		<links>
 			<link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
@@ -5264,43 +5252,40 @@
 
     <class id="rocit" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::classic_item_list" oils_persist:tablename="reporter.classic_item_list" reporter:core="true" reporter:label="Classic Item List">
         <fields oils_persist:primary="id">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Title" name="title" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Author" name="author" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Pubdate" name="pubdate" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Copy ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id"/>
-            <field reporter:label="Price" name="price" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money"/>
-            <field reporter:label="Barcode" name="barcode" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Callnumber Label" name="call_number_label" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Dewy Tens" name="dewey_block_tens" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Dewy Hundreds" name="dewey_block_hundreds" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Use Count" name="use_count" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="int"/>
-            <field reporter:label="Circ Modifier" name="circ_modifier" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Shelving Location Name" name="shelving_location" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Legacy Stat Cat 1" name="stat_cat_1" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Legacy Stat Cat 2" name="stat_cat_2" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Legacy Stat Cat 1 Value" name="stat_cat_1_value" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Legacy Stat Cat 2 Value" name="stat_cat_2_value" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Edit Date" name="edit_date" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-            <field reporter:label="Create Date" name="create_date" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-            <field reporter:label="Owning Lib Name" name="owning_lib_name" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Circ Lib Name" name="circ_lib_name" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Owning Lib" name="owning_lib" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="Circ Lib" name="circ_lib" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="Creator" name="creator" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="Age Protection" name="age_protect" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="bool"/>
-            <field reporter:label="Reference" name="ref" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="bool"/>
-            <field reporter:label="Deposit Amount" name="deposit_amount" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Deleted" name="deleted" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="bool"/>
-            <field reporter:label="TCN" name="tcn_value" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Status" name="status" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="Stop Fines Reason" name="stop_fines" oils_obj:array_position="33" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Due Date" name="due_date" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="timestamp"/>
-            <field reporter:label="Patron Barcode" name="patron_barcode" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Patron Name" name="patron_name" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="text"/>
+            <field reporter:label="Title" name="title" reporter:datatype="text"/>
+            <field reporter:label="Author" name="author" reporter:datatype="text"/>
+            <field reporter:label="Pubdate" name="pubdate" reporter:datatype="text"/>
+            <field reporter:label="Copy ID" name="id" reporter:datatype="id"/>
+            <field reporter:label="Price" name="price" reporter:datatype="money"/>
+            <field reporter:label="Barcode" name="barcode" reporter:datatype="text"/>
+            <field reporter:label="Callnumber Label" name="call_number_label" reporter:datatype="text"/>
+            <field reporter:label="Dewy Tens" name="dewey_block_tens" reporter:datatype="text"/>
+            <field reporter:label="Dewy Hundreds" name="dewey_block_hundreds" reporter:datatype="text"/>
+            <field reporter:label="Use Count" name="use_count" reporter:datatype="int"/>
+            <field reporter:label="Circ Modifier" name="circ_modifier" reporter:datatype="text"/>
+            <field reporter:label="Shelving Location Name" name="shelving_location" reporter:datatype="text"/>
+            <field reporter:label="Legacy Stat Cat 1" name="stat_cat_1" reporter:datatype="text"/>
+            <field reporter:label="Legacy Stat Cat 2" name="stat_cat_2" reporter:datatype="text"/>
+            <field reporter:label="Legacy Stat Cat 1 Value" name="stat_cat_1_value" reporter:datatype="text"/>
+            <field reporter:label="Legacy Stat Cat 2 Value" name="stat_cat_2_value" reporter:datatype="text"/>
+            <field reporter:label="Edit Date" name="edit_date" reporter:datatype="timestamp"/>
+            <field reporter:label="Create Date" name="create_date" reporter:datatype="timestamp"/>
+            <field reporter:label="Owning Lib Name" name="owning_lib_name" reporter:datatype="text"/>
+            <field reporter:label="Circ Lib Name" name="circ_lib_name" reporter:datatype="text"/>
+            <field reporter:label="Owning Lib" name="owning_lib" reporter:datatype="link"/>
+            <field reporter:label="Circ Lib" name="circ_lib" reporter:datatype="link"/>
+            <field reporter:label="Creator" name="creator" reporter:datatype="link"/>
+            <field reporter:label="Age Protection" name="age_protect" reporter:datatype="link"/>
+            <field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool"/>
+            <field reporter:label="Reference" name="ref" reporter:datatype="bool"/>
+            <field reporter:label="Deposit Amount" name="deposit_amount" reporter:datatype="text"/>
+            <field reporter:label="Deleted" name="deleted" reporter:datatype="bool"/>
+            <field reporter:label="TCN" name="tcn_value" reporter:datatype="text"/>
+            <field reporter:label="Status" name="status" reporter:datatype="link"/>
+            <field reporter:label="Stop Fines Reason" name="stop_fines" reporter:datatype="text"/>
+            <field reporter:label="Due Date" name="due_date" reporter:datatype="timestamp"/>
+            <field reporter:label="Patron Barcode" name="patron_barcode" reporter:datatype="text"/>
+            <field reporter:label="Patron Name" name="patron_name" reporter:datatype="text"/>
         </fields>
         <links>
             <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
@@ -5313,13 +5298,10 @@
 
     <class id="rmocbbol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_circ_balance_by_owning_lib" oils_persist:tablename="money.open_circ_balance_by_owning_lib" reporter:core="true" reporter:label="Open Circulation Billing by Owning Library">
         <fields oils_persist:primary="id">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Billing Type" name="billing_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Total Billed" name="billed" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
+            <field reporter:label="Circulation ID" name="id" reporter:datatype="link"/>
+            <field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Billing Type" name="billing_type" reporter:datatype="text"/>
+            <field reporter:label="Total Billed" name="billed" reporter:datatype="money"/>
         </fields>
         <links>
             <link field="id" reltype="has_a" key="id" map="" class="circ"/>
@@ -5329,12 +5311,9 @@
 
     <class id="rmobbol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_balance_by_owning_lib" oils_persist:tablename="money.open_balance_by_owning_lib" reporter:core="true" reporter:label="Open Circulation Balance by Owning Library">
         <fields oils_persist:primary="owning_lib">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Billing Types" name="billing_types" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Balance" name="balance" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money"/>
+            <field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Billing Types" name="billing_types" reporter:datatype="text"/>
+            <field reporter:label="Balance" name="balance" reporter:datatype="money"/>
         </fields>
         <links>
             <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
@@ -5343,14 +5322,11 @@
 
     <class id="rmocbbcol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_circ_balance_by_circ_and_owning_lib" oils_persist:tablename="money.open_circ_balance_by_circ_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Billing by Circulating Library and Owning Library">
         <fields oils_persist:primary="id">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Billing Type" name="billing_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Total Billed" name="billed" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money"/>
+            <field reporter:label="Circulation ID" name="id" reporter:datatype="link"/>
+            <field reporter:label="Circulating Library" name="circ_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Billing Type" name="billing_type" reporter:datatype="text"/>
+            <field reporter:label="Total Billed" name="billed" reporter:datatype="money"/>
         </fields>
         <links>
             <link field="id" reltype="has_a" key="id" map="" class="circ"/>
@@ -5361,13 +5337,10 @@
 
     <class id="rmobbcol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_balance_by_circ_and_owning_lib" oils_persist:tablename="money.open_balance_by_circ_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Balance by Circulating Library and Owning Library">
         <fields oils_persist:primary="circ_lib">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Billing Types" name="billing_types" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Balance" name="balance" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
+            <field reporter:label="Circulating Library" name="circ_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Billing Types" name="billing_types" reporter:datatype="text"/>
+            <field reporter:label="Balance" name="balance" reporter:datatype="money"/>
         </fields>
         <links>
             <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
@@ -5377,14 +5350,11 @@
 
     <class id="rmocbbhol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_circ_balance_by_usr_home_and_owning_lib" oils_persist:tablename="money.open_circ_balance_by_usr_home_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Billing by User Home Library and Owning Library">
         <fields oils_persist:primary="id">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
-            <field reporter:label="User Home Library" name="home_ou" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Billing Type" name="billing_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Total Billed" name="billed" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money"/>
+            <field reporter:label="Circulation ID" name="id" reporter:datatype="link"/>
+            <field reporter:label="User Home Library" name="home_ou" reporter:datatype="org_unit"/>
+            <field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Billing Type" name="billing_type" reporter:datatype="text"/>
+            <field reporter:label="Total Billed" name="billed" reporter:datatype="money"/>
         </fields>
         <links>
             <link field="id" reltype="has_a" key="id" map="" class="circ"/>
@@ -5395,21 +5365,64 @@
 
     <class id="rmobbhol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_balance_by_usr_home_and_owning_lib" oils_persist:tablename="money.open_balance_by_usr_home_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Balance by User Home Library and Owning Library">
         <fields oils_persist:primary="home_ou">
-            <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
-            <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
-            <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
-            <field reporter:label="User Home Library" name="home_ou" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-            <field reporter:label="Billing Types" name="billing_types" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
-            <field reporter:label="Balance" name="balance" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
+            <field reporter:label="User Home Library" name="home_ou" reporter:datatype="org_unit"/>
+            <field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
+            <field reporter:label="Billing Types" name="billing_types" reporter:datatype="text"/>
+            <field reporter:label="Balance" name="balance" reporter:datatype="money"/>
         </fields>
         <links>
             <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
             <link field="home_ou" reltype="has_a" key="id" map="" class="aou"/>
         </links>
     </class>
+	<class id="acqft" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::fund_tag" oils_persist:tablename="acq.fund_tag" reporter:label="Fund Tag">
+		<fields oils_persist:primary="id" oils_persist:sequence="acq.fund_tag_id_seq">
+			<field reporter:label="Fund Tag ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Fund Tag Owner" name="owner" reporter:datatype="org_unit"/>
+			<field reporter:label="Fund Tag Name" name="name" reporter:datatype="text"/>
+			<field reporter:label="Map Entries" name="map_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+			<link field="map_entries" reltype="has_many" key="fund" map="" class="acqftm"/>
+		</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+			<actions>
+				<create permission="ADMIN_ACQ_FUND_TAG" context_field="owner"/>
+				<retrieve permission="ADMIN_ACQ_FUND_TAG ADMIN_ACQ_FUND VIEW_FUND MANAGE_FUND" context_field="owner"/>
+				<update permission="ADMIN_ACQ_FUND_TAG" context_field="owner"/>
+			<delete permission="ADMIN_ACQ_FUND_TAG" context_field="owner"/>
+			</actions>
+		</permacrud>
+	</class>
+	<class id="acqftm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="acq::fund_tag_map" oils_persist:tablename="acq.fund_tag_map" reporter:label="Fund Tag Map">
+		<fields oils_persist:primary="id" oils_persist:sequence="acq.fund_tag_map_id_seq">
+			<field reporter:label="Map Entry ID" name="id" reporter:datatype="id"/>
+			<field reporter:label="Fund ID" name="fund" reporter:datatype="link"/>
+			<field reporter:label="Tag ID" name="tag" reporter:datatype="link"/>
+		</fields>
+		<links>
+			<link field="fund" reltype="has_a" key="id" map="" class="acqf"/>
+			<link field="tag" reltype="has_a" key="id" map="" class="acqft"/>
+			</links>
+		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+    		<actions>
+				<create permission="ADMIN_ACQ_FUND_TAG">
+					<context link="tag" field="owner"/>
+				</create>
+				<retrieve permission="ADMIN_ACQ_FUND_TAG ADMIN_ACQ_FUND VIEW_FUND MANAGE_FUND">
+					<context link="tag" field="owner"/>
+				</retrieve>
+				<update permission="ADMIN_ACQ_FUND_TAG">
+					<context link="tag" field="owner"/>
+				</update>
+				<delete permission="ADMIN_ACQ_FUND_TAG">
+					<context link="tag" field="owner"/>
+				</delete>
+			</actions>
+		</permacrud>
+	</class>
 
-
 	<!-- ********************************************************************************************************************* -->
 
 </IDL>



More information about the open-ils-commits mailing list