@Override
 public void createDataInstance(final SDataInstance dataInstance) throws SDataInstanceException {
   try {
     final InsertRecord insertRecord = new InsertRecord(dataInstance);
     final SInsertEvent insertEvent = getInsertEvent(dataInstance);
     recorder.recordInsert(insertRecord, insertEvent);
   } catch (final SRecorderException e) {
     throw new SCreateDataInstanceException("Imposible to create data intance.", e);
   }
 }
 @Override
 public void createProcessInstance(final SProcessInstance processInstance)
     throws SProcessInstanceCreationException {
   final InsertRecord insertRecord = new InsertRecord(processInstance);
   SInsertEvent insertEvent = null;
   if (eventService.hasHandlers(PROCESSINSTANCE, EventActionType.CREATED)) {
     insertEvent =
         (SInsertEvent)
             BuilderFactory.get(SEventBuilderFactory.class)
                 .createInsertEvent(PROCESSINSTANCE)
                 .setObject(processInstance)
                 .done();
   }
   try {
     recorder.recordInsert(insertRecord, insertEvent);
     setProcessState(processInstance, ProcessInstanceState.INITIALIZING);
   } catch (final SRecorderException sre) {
     throw new SProcessInstanceCreationException(sre);
   } catch (final SProcessInstanceModificationException spicme) {
     throw new SProcessInstanceCreationException(spicme);
   }
 }