adding template_output table to support storing just one copy of batch output
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 31 Mar 2009 16:51:44 +0000 (16:51 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 31 Mar 2009 16:51:44 +0000 (16:51 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12735 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/examples/fm_IDL.xml
Open-ILS/src/sql/Pg/400.schema.action_trigger.sql

index 52ec74f..269aff8 100644 (file)
@@ -580,6 +580,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
         </links>
     </class>
 
+       <class id="atto" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::template_output" oils_persist:tablename="action_trigger.template_output" reporter:label="Event output">
+               <fields oils_persist:primary="id" oils_persist:sequence="action_trigger.template_output_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="Output ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
+                       <field reporter:label="Create Date/Time" name="create_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
+                       <field reporter:label="Data" name="data" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+                       <field reporter:label="Events" name="events" oils_obj:array_position="6" oils_persist:virtual="true"  reporter:datatype="link"/>
+               </fields>
+               <links>
+            <link field="events" reltype="has_many" key="template_output" map="" class="atev"/>
+               <links/>
+               <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+                       <actions>
+                               <retrieve/>
+                               <delete permission="ADMIN_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" />
@@ -756,12 +777,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <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="Template Output" name="template_output" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
                        <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"/>
                </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="atto"/>
                </links>
        </class>
 
index ffd9906..9409285 100644 (file)
@@ -131,10 +131,16 @@ CREATE TABLE action_trigger.event (
     complete_time   TIMESTAMPTZ,
     update_process  INT,
     state           TEXT        NOT NULL DEFAULT 'pending' CHECK (state IN ('pending','invalid','found','collecting','collected','validating','valid','reacting','reacted','cleaning','complete','error')),
-    template_output TEXT,
+    template_output BIGINT      REFERENCES action_trigger.event_output (id),
     error_output    TEXT
 );
 
+CREATE TABLE action_trigger.event_output (
+    id              BIGSERIAL   PRIMARY KEY,
+    create_time     TIMESTAMPTZ NOT NULL DEFAULT NOW(),
+    data            TEXT        NOT NULL
+);
+
 CREATE TABLE action_trigger.event_params (
     id          BIGSERIAL   PRIMARY KEY,
     event_def   INT         NOT NULL REFERENCES action_trigger.event_definition (id) DEFERRABLE INITIALLY DEFERRED,