ofbiz-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicolas Malin (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (OFBIZ-2866) Allow entity-data-reader to indicate if it should insert, update, or upsert records
Date Fri, 20 Mar 2015 08:38:38 GMT

     [ https://issues.apache.org/jira/browse/OFBIZ-2866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Nicolas Malin reassigned OFBIZ-2866:

    Assignee: Nicolas Malin

> Allow entity-data-reader to indicate if it should insert, update, or upsert records
> -----------------------------------------------------------------------------------
>                 Key: OFBIZ-2866
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-2866
>             Project: OFBiz
>          Issue Type: Improvement
>          Components: framework
>    Affects Versions: Trunk
>            Reporter: Bob Morley
>            Assignee: Nicolas Malin
>         Attachments: OFBIZ-2866_EntityDataReaderInsertOrUpdate.patch
> This ticket is the result of forum conversation: http://www.nabble.com/Handling-one-time-seed-data-tt25136333.html
> What this support provides is the ability at the entity-data-reader level to indicate
if the entities loaded from that reader should insert, update, or upsert records into the
database.  The current process is an upsert.  This patch provides the following:
> - enhancement on entity-data-reader to indicate if "insert-values" and "update-values"
is true/false.  By default they are true/true; this provides the ability to re-execute "seed-initial"
data to pickup new records (but leave others unmodified) by setting the attributes to true/false
(effectively skipping updates).  In practice these are the only two flavors, but this design
provides the flexibility to do all four permutations.
> - resulting informational messages were showing the "read" total but calling this the
"changed" total.  A new object was created (entityDataLoadResults) which can hold any metrics
related to the data load.  Signature changes and some logic changes were put into place to
use this result and then nicely report a true "written / read" information message during
and at the end of the data load.
> - a bug was found when the dirty check in DelegatorImpl.storeAll where it was using the
GenericEntity.get method for the new/old value comparison.  This performed a resource lookup
so these values would always match.  I found this when testing my code using the GeoData --
I was changing the country name and it was not being properly updated.  The fix was to change
the protection on the GenericEntity.getFieldValue method and then use that in the DelegatorImpl.
 This does a check of the true database value vs. the value form the data loading entity (typically
xml file).
> There should be no changes other than the information messages coming out in both the
DataLoader and the WebToolsService.entityImportReaders.
> Configuration change can be applied as such:
> <entity-data-reader name="seed-initial" insert-values="true" update-values="false"/>
> Sample of the information messages from a load:
> 00005 of 00029 from file:/Users/rmorley/dev/ofbiz-trunk/ofbiz/specialpurpose/assetmaint/data/AssetMaintDemoData.xml
> =-=-=-=-=-=-= Finished the data load with 1086 rows changed of 12184 rows read.

This message was sent by Atlassian JIRA

View raw message