dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #11778
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 3441: Applied patch from Jason. Makes the 1.4 import of calculated data elements more robust.
------------------------------------------------------------
revno: 3441
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2011-04-21 17:24:52 +0200
message:
Applied patch from Jason. Makes the 1.4 import of calculated data elements more robust.
modified:
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dhis14/xml/converter/OrganisationUnitConverter.java
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/service/DefaultImportObjectManager.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dhis14/xml/converter/OrganisationUnitConverter.java'
--- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dhis14/xml/converter/OrganisationUnitConverter.java 2011-02-17 09:51:48 +0000
+++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dhis14/xml/converter/OrganisationUnitConverter.java 2011-04-21 15:24:52 +0000
@@ -28,6 +28,7 @@
*/
import static org.hisp.dhis.importexport.dhis14.util.Dhis14TypeHandler.convertBooleanToDhis14;
+import static org.hisp.dhis.importexport.dhis14.util.Dhis14TypeHandler.convertBooleanFromDhis14;
import java.util.Collection;
import java.util.Map;
@@ -44,6 +45,7 @@
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.organisationunit.OrganisationUnitService;
+
/**
* @author Lars Helge Overland
* @version $Id: OrganisationUnitConverter.java 6455 2008-11-24 08:59:37Z larshelg $
@@ -61,9 +63,11 @@
private static final String FIELD_VALID_FROM = "ValidFrom";
private static final String FIELD_VALID_TO = "ValidTo";
private static final String FIELD_ACTIVE = "Active";
+ private static final String FIELD_COMMENT = "Comment";
private static final String FIELD_SELECTED = "Selected";
private static final String FIELD_LAST_USER = "LastUserID";
private static final String FIELD_LAST_UPDATED = "LastUpdated";
+ private static final String FIELD_ALT_NAME = "OrgUnitNameAlt1"; //1.4 has multiple alternative names. Support the first.
private static final int VALID_FROM = 34335;
private static final int VALID_TO = 2958465;
@@ -119,6 +123,7 @@
writer.writeElement( FIELD_VALID_FROM, String.valueOf( VALID_FROM ) );
writer.writeElement( FIELD_VALID_TO, String.valueOf( VALID_TO ) );
writer.writeElement( FIELD_ACTIVE, convertBooleanToDhis14( unit.isActive() ) );
+ writer.writeElement (FIELD_COMMENT, unit.getComment() );
writer.writeElement( FIELD_SELECTED, String.valueOf( 0 ) );
writer.writeElement( FIELD_LAST_USER, String.valueOf( 1 ) );
writer.writeElement( FIELD_LAST_UPDATED, Dhis14DateUtil.getDateString( unit.getLastUpdated() ) );
@@ -137,10 +142,13 @@
unit.setId( Integer.valueOf( values.get( FIELD_ID ) ) );
unit.setName( values.get( FIELD_NAME ) );
unit.setShortName( values.get( FIELD_SHORT_NAME ) );
+ unit.setOpeningDate( Dhis14DateUtil.getDate( Integer.parseInt( values.get( FIELD_VALID_FROM ) ) ) );
+ unit.setClosedDate( Dhis14DateUtil.getDate( Integer.parseInt( values.get( FIELD_VALID_TO ) ) ) );
unit.setCode( values.get( FIELD_CODE ) );
- unit.setActive( true );
+ unit.setActive( convertBooleanFromDhis14(values.get( FIELD_ACTIVE ) ) ) ;
+ unit.setComment( values.get( FIELD_COMMENT ) );
unit.setLastUpdated( Dhis14DateUtil.getDate( values.get( FIELD_LAST_UPDATED ) ) );
-
+ //unit.setAlternativeName( values.get( FIELD_ALT_NAME ));
importObject( unit, params );
}
}
=== modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/service/DefaultImportObjectManager.java'
--- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/service/DefaultImportObjectManager.java 2011-02-22 23:05:45 +0000
+++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/service/DefaultImportObjectManager.java 2011-04-21 15:24:52 +0000
@@ -493,14 +493,21 @@
CalculatedDataElement object = (CalculatedDataElement) importObject.getObject();
object.getCategoryCombo().setId( categoryComboMapping.get( object.getCategoryCombo().getId() ) );
object.getExpression().setExpression(
- expressionService.convertExpression( object.getExpression().getExpression(), dataElementMapping,
- categoryOptionComboMapping ) );
- importer.importObject( object, params );
+ expressionService.convertExpression( object.getExpression().getExpression(), dataElementMapping, categoryOptionComboMapping ) );
+
+ try
+ {
+ importer.importObject( object, params );
+ }
+ catch ( ClassCastException e )
+ {
+ log.warn( "Cannot convert a regular data element to a calculated data element", e );
+ }
}
importObjectStore.deleteImportObjects( CalculatedDataElement.class );
- log.info( "Imported CalculatedDataElements" );
+ log.info( "Imported CalculatedDataElements" );
}
@Transactional
@@ -1073,6 +1080,9 @@
@Transactional
public void importDataValues()
{
+ Integer importedObjects = 0;
+ Integer failedObjects = 0;
+
BatchHandler<DataValue> batchHandler = batchHandlerFactory.createBatchHandler( DataValueBatchHandler.class )
.init();
@@ -1088,20 +1098,28 @@
for ( ImportDataValue importValue : importValues )
{
DataValue value = importValue.getDataValue();
-
- value.getDataElement().setId( dataElementMapping.get( value.getDataElement().getId() ) );
- value.getPeriod().setId( periodMapping.get( value.getPeriod().getId() ) );
- value.getSource().setId( sourceMapping.get( value.getSource().getId() ) );
- value.getOptionCombo().setId( categoryOptionComboMapping.get( value.getOptionCombo().getId() ) );
-
- importer.importObject( value, params );
+ try
+ {
+ value.getDataElement().setId( dataElementMapping.get( value.getDataElement().getId() ) );
+ value.getPeriod().setId( periodMapping.get( value.getPeriod().getId() ) );
+ value.getSource().setId( sourceMapping.get( value.getSource().getId() ) );
+ value.getOptionCombo().setId( categoryOptionComboMapping.get( value.getOptionCombo().getId() ) );
+ importer.importObject( value, params );
+ importedObjects++;
+
+ } catch ( Exception e )
+ {
+ importedObjects--;
+ failedObjects++;
+ log.error( "Object import failed" + e );
+ }
}
batchHandler.flush();
importDataValueService.deleteImportDataValues();
- log.info( "Imported DataValues" );
+ log.info( importReport( importedObjects,failedObjects ) );
}
// -------------------------------------------------------------------------
@@ -1134,4 +1152,22 @@
importObjectStore.deleteImportObjects( type );
}
+
+ private String importReport(Integer importedObjects, Integer failedObjects)
+ {
+ Integer totalObjects = importedObjects + failedObjects;
+ String importReportString = "";
+ if (failedObjects > 0 )
+ {
+ importReportString = totalObjects.toString() + " values handled.\n" + importedObjects.toString() + " new values successfully imported.\n"
+ + failedObjects.toString() + " were not imported due to errors.";
+ return importReportString;
+ }
+ else
+ {
+ importReportString = importedObjects.toString() + " values were imported.";
+ return importReportString;
+ }
+
+ }
}