Package org.uengine.kernel

Examples of org.uengine.kernel.Activity


      Adapter adpt = getAdapter(item.getClass());
      if(adpt==null){
        continue;
      }
     
      Activity convertedAct = (Activity)adpt.convert(item, keyedContext);
      if(convertedAct!=null){
        if(convertedAct instanceof SequenceActivity){
          SequenceActivity seq = (SequenceActivity)convertedAct;
          Vector childActs = seq.getChildActivities();
          for(Iterator iter = childActs.iterator(); iter.hasNext();){
            Activity act = (Activity)iter.next();
            dstProc.addChildActivity(act);
          }
        }else
          dstProc.addChildActivity(convertedAct);             
      }
View Full Code Here


        draftAct.setExtValue1(psMsg.getMainParam());
      }
      if (StringUtils.hasText(psMsg.getSubParam())) {
        draftAct.setExtValue2(psMsg.getSubParam());
      }
      Activity approvalLineAct = draftAct.getParentActivity();
      while (!(approvalLineAct instanceof ExternalApprovalLineActivity)) {
        approvalLineAct = approvalLineAct.getParentActivity();
      }
     
      ComplexActivity parent = (ComplexActivity) approvalLineAct;
      if (parent.getChildActivities().size() > 1) {
        parent.getChildActivities().clear();
        parent.addChildActivity(draftAct);
      }
     
      String preApprovalType = null;
      for (Approver approver : approverList) {
        if (ExternalApprovalActivity.APPROVAL_TYPE_DRAFT.equalsIgnoreCase(approver.getType())) {
          approver.setTracingTag(draftAct.getTracingTag());
          approver.setTaskId(draftAct.getTaskIds(instance)[0]);
          approver.setTruthEmpCode(approver.getEmpCode());
          approver.setStatus(ExternalApprovalActivity.SIGN_DRAFT);
          approver.setEndDate(new Timestamp(Calendar.getInstance().getTimeInMillis()));
          approver.setComment(psMsg.getComment());
          approvalActs.add(draftAct);
          continue;
        }
        ExternalApprovalActivity childAct = (ExternalApprovalActivity) draftAct.clone();
        childAct.setName("결재");
        childAct.setTracingTag(null);
        childAct.setRole(null);
        childAct.setApprovalTypeByString(approver.getType());
       
        RoleMapping rm = RoleMapping.create();
        rm.setEndpoint(approver.getEmpCode());
        rm.fill(instance);
       
        // 결재 -> 합의
        if (!ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(preApprovalType) && ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(approver.getType())) {
          AllActivity allAct = new AllActivity();
          allAct.setTracingTag(null);
         
          parent.addChildActivity(allAct);
          parent = allAct;
        // 합의 -> 결재
        } else if (ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(preApprovalType) && !ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(approver.getType())) {
          parent = (ComplexActivity) approvalLineAct;
        }
       
        parent.addChildActivity(childAct);
        childAct.setApprover(instance, rm);
       
        approver.setTracingTag(childAct.getTracingTag());
       
        preApprovalType = approver.getType();
        approvalActs.add(childAct);
      }
     
//      tempPd.registerToProcessDefinition(false, false);
      pm.changeProcessDefinition(instanceId, tempPd);
      // 결재선 다이나믹 체인지 End
     
      instance.setProperty(approvalLineAct.getTracingTag(), ExternalApprovalLineActivity.KEY_APPR_KEY, psMsg.getApprovalKey());
      approvalLineDAO.update(al);
      approverDAO.update(approverList);
     
      if (psMsg.isFirstTaskCompleted()) {
        pm.completeWorkitem(instanceId, draftAct.getTracingTag(), null, new org.uengine.kernel.ResultPayload());
View Full Code Here

      draftAct.setExtValue1(adacMsg.getMainParam());
    }
    if (StringUtils.hasText(adacMsg.getSubParam())) {
      draftAct.setExtValue2(adacMsg.getSubParam());
    }
    Activity approvalLineAct = draftAct.getParentActivity();
    while (!(approvalLineAct instanceof ExternalApprovalLineActivity)) {
      approvalLineAct = approvalLineAct.getParentActivity();
    }
   
    ComplexActivity parent = (ComplexActivity) approvalLineAct;
    if (parent.getChildActivities().size() > 1) {
      parent.getChildActivities().clear();
      parent.addChildActivity(draftAct);
    }
   
    String preApprovalType = null;
    for (Approver approver : approverList) {
      if (ExternalApprovalActivity.APPROVAL_TYPE_DRAFT.equalsIgnoreCase(approver.getType())) {
        approver.setTracingTag(draftAct.getTracingTag());
        approver.setTaskId(adacMsg.getTaskId());
        approver.setTruthEmpCode(approver.getEmpCode());
        approver.setStatus(ExternalApprovalActivity.SIGN_DRAFT);
        approver.setEndDate(new Timestamp(Calendar.getInstance().getTimeInMillis()));
        approver.setComment(adacMsg.getComment());
        continue;
      }
      ExternalApprovalActivity childAct = (ExternalApprovalActivity) draftAct.clone();
      childAct.setName("결재");
      childAct.setTracingTag(null);
      childAct.setRole(null);
      childAct.setApprovalTypeByString(approver.getType());
     
      RoleMapping rm = RoleMapping.create();
      rm.setEndpoint(approver.getEmpCode());
      rm.fill(instance);
     
      // 결재 -> 합의
      if (!ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(preApprovalType) && ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(approver.getType())) {
        AllActivity allAct = new AllActivity();
        allAct.setTracingTag(null);
       
        parent.addChildActivity(allAct);
        parent = allAct;
      // 합의 -> 결재
      } else if (ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(preApprovalType) && !ExternalApprovalActivity.APPROVAL_TYPE_COOPERATION.equals(approver.getType())) {
        parent = (ComplexActivity) approvalLineAct;
      }
     
      parent.addChildActivity(childAct);
      childAct.setApprover(instance, rm);
     
      approver.setTracingTag(childAct.getTracingTag());
     
      preApprovalType = approver.getType();
    }
   
    pm.changeProcessDefinition(adacMsg.getInstanceId(), tempPd);
    // 결재선 다이나믹 체인지 End
   
    instance.setProperty(approvalLineAct.getTracingTag(), ExternalApprovalLineActivity.KEY_APPR_KEY, adacMsg.getApprovalKey());
    approvalLineDAO.update(approvalLine);
    approverDAO.update(approverList);
   
    pm.completeWorkitem(adacMsg.getInstanceId(), adacMsg.getTracingTag(), adacMsg.getTaskId(), new org.uengine.kernel.ResultPayload());
  }
View Full Code Here

        approverDAO.add(_approverList);
     
      // 바로 이전 결재로 반려
      } else if (rejectOption == ExternalApprovalLineActivity.LOOPING_OPTION_BACK_TO_PREV) {
        Vector<? extends Activity> childActs = approvalLineAct.getChildActivities();
        Activity currentAct = instance.getProcessDefinition().getActivity(aacMsg.getTracingTag());
        int prevIndex = 0;
        if (currentAct.getParentActivity() instanceof AllActivity) {
          prevIndex = childActs.indexOf(currentAct.getParentActivity()) - 1
        } else {
          prevIndex = childActs.indexOf(approvalAct) - 1;
        }
       
        Activity prevAct = childActs.get(prevIndex);
       
        Approver prevApprover = approverDAO.getByInstanceIdAndTracingTag(aacMsg.getApprovalKey(), Integer.parseInt(instance.getInstanceId()), prevAct.getTracingTag());
       
        prevAct.compensateToThis(instance);
       
        // ExternalApprovalActivity 의 afterExecute() 를 타기 때문에 강제로 다시 update
        approverDAO.update(prevApprover);
       
       
View Full Code Here

   
    ApproverDAO approverDAO = new ApproverDAO(DefaultConnectionFactory.create().getDataSource());
    List<Approver> approverList = approverDAO.list(alcMsg.getApprovalKey());
 
    ProcessDefinition tempPd = (ProcessDefinition) instance.getProcessDefinition().clone();
    Activity draftAct = tempPd.getActivity(approverList.get(0).getTracingTag());
    Activity approvalLineAct = draftAct.getParentActivity();
    while (!(approvalLineAct instanceof ExternalApprovalLineActivity)) {
      approvalLineAct = approvalLineAct.getParentActivity();
    }
   
    ComplexActivity parent = (ComplexActivity) approvalLineAct;
    final Vector childActs = new Vector();
    ActivityForLoop forLoop = new ActivityForLoop() {
      public void logic(Activity act) {
        try {
          if (act instanceof ExternalApprovalActivity) {
            childActs.add(act);
          }
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
      }
    };
    forLoop.run(parent);
   
    int readyIndex = -1;
    for (int i = 0; i < childActs.size(); i++) {
      Activity approvalAct = (Activity) childActs.get(i);
      if (Activity.STATUS_READY.equalsIgnoreCase(approvalAct.getStatus(instance))) {
        if (readyIndex == -1) {
          readyIndex = i;
        }
        parent.removeChildActivity(approvalAct);
      }
View Full Code Here

  }
 
  public String getActivityWebId(GraphActivity graphAct, ProcessInstance instance, Map options) {
    String instId = null;
    String divId = null;
    Activity activity = graphAct.getReferenceActivity();
   
    if (instance instanceof EJBProcessInstance) {
      instId = "instance_" + instance.getInstanceId();
    } else {
      instId = "definistion_" + activity.getProcessDefinition().getId();
    }
   
    instId += "_act_" + SubProcessActivityViewer.getAbsoluteParentTracingTag(options, instance, null);
   
    if (graphAct.isStartGraphActivity()) {
      divId = instId + "start";
    } else if (graphAct.isEndGraphActivity()) {
      divId = instId + "end";
    } else {
      divId = instId + activity.getTracingTag();
    }
   
    return divId;
  }
View Full Code Here

 
  private StringBuffer getActivityContent(GraphActivity graphAct, ProcessInstance instance, Map options, boolean isVirtical) {
    StringBuffer sb = new StringBuffer();

    ActivityViewer sav = null;
    Activity act = graphAct.getReferenceActivity();
    String divId = getActivityWebId(graphAct, instance, options);
   

    if (act instanceof SubProcessActivity) {
      sav = DefaultActivityViewer.createViewer(act);
View Full Code Here

 
  private String appendSwitchActivityDescription(Activity activity, SwitchActivity switchActivity, Vector<Activity> children, StringBuffer sb) {
    String description = "";
   
    for (int childCount = 0; childCount < children.size(); childCount++) {
      Activity childActivity = children.get(childCount);

      if (isFirstSwitchActivity(activity, childActivity)) {
        Condition condition = switchActivity.getConditions()[childCount];
        sb.append("[ "+condition.getDescription()+" ]");
        break;
View Full Code Here

    //����
    for(int i=0 ; i < activityList.size() ;  i++){
      ActivityPosition ap = (ActivityPosition)activityList.get(i);
      int from = ap.getFrom();
      int to = ap.getTo();
      Activity act = ap.getActivity();
      String actNAme = act.getName().toString();
      Role role = ((HumanActivity) act).getRole();
      String roleName = role.getDisplayName().getText();
     
      sb.append("<tr><td bgcolor=#F4F4F4>"+actNAme+"</td><td bgcolor=#F4F4F4>"+roleName+"</td>");
      for(int j=0 ; j < maxOfTo ;  j++){
View Full Code Here

      return duration;
    }else if(act instanceof AllActivity || act instanceof SwitchActivity){
      ComplexActivity complexActivity = (ComplexActivity)act;
      int maxOfDuration = 0;
      for(int i=0; i<complexActivity.getChildActivities().size(); i++){
        Activity child = (Activity) complexActivity.getChildActivities().get(i);
        int durationOfChild = traverse(child, currentFrom, context);
        if(durationOfChild > maxOfDuration) maxOfDuration = durationOfChild;       
      }
      return maxOfDuration;
    }else if(act instanceof ComplexActivity){
      int initialCurrentFrom = currentFrom;
      ComplexActivity complexActivity = (ComplexActivity)act;
      for(int i=0; i<complexActivity.getChildActivities().size(); i++){
        Activity child = (Activity) complexActivity.getChildActivities().get(i);
        currentFrom += traverse(child, currentFrom, context);
      }
     
      return currentFrom - initialCurrentFrom;
    }
View Full Code Here

TOP

Related Classes of org.uengine.kernel.Activity

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.