code: protected <T, C> T processExecuteGroup(String name, C criteria, T result) throws CpoException {
      Connection c = null;
      T obj = null;
  
      try {
        c = getWriteConnection();
        obj = processExecuteGroup(name, criteria, result, c);
        commitLocalConnection(c);
      } catch (Exception e) {
        // Any exception has to try to rollback the work;
        rollbackLocalConnection(c);
        ExceptionHelper.reThrowCpoException(e, "processExecuteGroup(String name, Object criteria, Object result) failed");
      } finally {
        closeLocalConnection(c);
      }
  
      return obj;
    }
docs: Executes an Object whose MetaData contains a stored procedure. An assumption is that the object exists in the
  datasource.
  
  @param name     The filter name which tells the datasource which objects should be returned. The name also signifies
  what data in the object will be populated.
  @param criteria This is an object that has been defined within the metadata of the datasource. If the class is not
  defined an exception will be thrown. If the object does not exist in the datasource, an exception will be thrown.
  This object is used to populate the IN arguments used to retrieve the collection of objects.
  @param result   This is an object that has been defined within the metadata of the datasource. If the class is not
  defined an exception will be thrown. If the object does not exist in the datasource, an exception will be thrown.
  This object defines the object type that will be returned in the
  @return A result object populate with the OUT arguments
  @throws CpoException DOCUMENT ME!