(My version: v9.1p_2014-07-09/Enterprise Deployment (built 2014-07-31))
There is an error when using an audit data source for my data source. I followed the showcase example.
Here is my datasource:
Here is the generated SQL:
Which, of course, throws the error:
I am aware that, as a work around, I can:
1) create the table manually, or
2) set auditRevisionFieldName=""
But... I would be best to have the revision field and to not have to create the table manually.
Anyway, this is a bug originated from the 'sequence'/auto generated field on the datasource, right?
ResourcePoolID is of type sequence and auto generated in my datasource, so your generated SQL for the audit table states: ResourcePoolID integer auto_increment
The audit_revision field on the new audit table needs to auto increments, so your generated SQL for the audit table states: audit_revision integer auto_increment not null
On the audit table, ResourcePoolID does not need to be auto_increment... your generated SQL should drop the 'auto_increment' from the CREATE statement, right?
Thank you.
There is an error when using an audit data source for my data source. I followed the showcase example.
Here is my datasource:
Code:
<DataSource
ID="s3ninputresourcepools"
serverType="sql"
tableName="Resourcepool" tableForChangeColumns="Resourcepool"
audit="true"
autoCreateAuditTable="true">
<fields>
<field name="ScenariosPool_ScenarioID" type="integer" hidden="true" />
<field name="ResourcePoolID" type="sequence" primaryKey="true" hidden="true" autoGenerated ="true" />
<field name="ResourceID" type="integer" displayField="ResourceName" optionDataSource="s3ninput_resources" title="Resource" />
<field name="FacilityID" type="integer" displayField="FacilityName" optionDataSource="s3ninput_facility" title="Facility" />
<field name="Quantity" type="double" />
<field name="QuantityUnitID" type="integer" valueField="UnitID" displayField="UnitName" optionDataSource="s3ninput_units" title="Unit" />
<field name="DayType" type="text" title="Day type">
<valueMap>
<value id="Workdays">Work days</value>
<value id="Weekdays">Week days</value>
<value id="Holidays">Holidays</value>
<value id="Weekends">Weekends</value>
<value id="All">All</value>
</valueMap>
</field>
<field name="StartTime" type="time" title="Start time" />
<field name="EndTime" type="time" title="End time" />
</fields>
</DataSource>Code:
CREATE TABLE audit_s3ninputresourcepools
(ScenariosPool_ScenarioID integer default null,
ResourcePoolID integer auto_increment,
ResourceID integer default null, FacilityID integer default null, Quantity double default 0.0, QuantityUnitID integer default null, DayType varchar(255), StartTime time, EndTime time,
audit_revision integer auto_increment not null,
audit_operationType varchar(255), audit_changeTime datetime, audit_modifier varchar(255), CONSTRAINT audit_s3ninputresourcepools_UI
PRIMARY KEY (audit_revision))ENGINE=InnoDB onCode:
Incorrect table definition; there can be only one auto column and it must be defined as a key1) create the table manually, or
2) set auditRevisionFieldName=""
But... I would be best to have the revision field and to not have to create the table manually.
Anyway, this is a bug originated from the 'sequence'/auto generated field on the datasource, right?
ResourcePoolID is of type sequence and auto generated in my datasource, so your generated SQL for the audit table states: ResourcePoolID integer auto_increment
The audit_revision field on the new audit table needs to auto increments, so your generated SQL for the audit table states: audit_revision integer auto_increment not null
On the audit table, ResourcePoolID does not need to be auto_increment... your generated SQL should drop the 'auto_increment' from the CREATE statement, right?
Thank you.