code: public <K extends Serializable & Comparable> Process<K> newProcess()
      {
          final String queueOwner = partition == null ? null : partition.getQueueOwnerKey();
          Callback<ProcessWrapper<K>> callback = new Callback<ProcessWrapper<K>>() {
  
              @Override
              protected void doAction() {
  
                  ProcessWrapper<K> process = ProcessWrapper.getNewInstance(
                          queueOwner, is_persistent, implementation_options);
  
                  ProcessPersistence<ProcessEntity<K>,K> processHome = 
                          process.setDetails(process_name, queue, process_description, user,
                                             occurrence, visibility, access, resilience, output,
                                             pre_processes, post_processes, keep_completed,
                                             process_listeners, locale, implementation_options);
  
                  if (report_type != null)
                      process.setReportType(report_type);
  
                  if(source_name != null)
                      process.setSourceName(source_name);
  
                  setupProcess(new Process(process));
  
                  preSubmitBatchJobProcessing();
  
                  if (is_persistent) processHome.persist();
  
                  process.getContainingServer().submitProcess(process);
  
                  _return(process);
              }
          };
  
          QueujTransaction<K> transaction = (QueujTransaction<K>)QueujFactory.getTransaction();
          return new Process<K>(transaction.doTransaction(queueOwner, is_persistent, callback, true));
      }
docs: Creates the Process using the parameters that have been set.