Package org.uengine.kernel

Examples of org.uengine.kernel.RoleMapping


    if (getToRole() == null) {
      throw new UEngineException("Receiver is not set.");
    }
     
    RoleMapping roleMapping = getToRole().getMapping(instance, getTracingTag());
   
    if (roleMapping == null) {
      throw new UEngineException("Actual target receiver is not set yet.");
    }

     String nateOnId = roleMapping.getExtendedProperty(EXT_PROP_KEY_NateOnMessengerId);
   
    if (nateOnId == null) {
      roleMapping.fill(instance);
      nateOnId = roleMapping.getExtendedProperty(EXT_PROP_KEY_NateOnMessengerId);
    }
     
    if (nateOnId == null) {
      nateOnId = roleMapping.getEmailAddress();
    }
       
    if (nateOnId == null) {
      throw new Exception("There's no account information for instance messaging (Nate-on).");
    }
View Full Code Here


   
    if(instance instanceof SimulatorProcessInstance ||activity.STATUS_SKIPPED.equals(activity.getStatus(instance))) return;

    if(activity instanceof HumanActivity){
      try{
        RoleMapping rm = ((HumanActivity)activity).getRole().getMapping(instance);
        rm.fill(instance);
        if(rm == null) return;
        if(
            instance.isNew()
            && instance.getProcessDefinition().getInitiatorHumanActivityReference(instance.getProcessTransactionContext()).getActivity().equals(activity)
        ){ 
          ((EJBProcessInstance) instance).getProcessInstanceDAO().set("initEp", rm.getEndpoint());
          ((EJBProcessInstance) instance).getProcessInstanceDAO().set("initRSNM", rm.getResourceName());
        } else {
          StringBuffer endpoint = new StringBuffer();
          StringBuffer resourceName = new StringBuffer();
          do {
            if (endpoint.length() > 0) endpoint.append(";");
            endpoint.append(rm.getEndpoint());
           
            if (resourceName.length() > 0) resourceName.append(";");
            resourceName.append(rm.getResourceName());
          } while (rm.next());
          ((EJBProcessInstance)instance).getProcessInstanceDAO().set("currEp", endpoint.toString());
          ((EJBProcessInstance)instance).getProcessInstanceDAO().set("currRSNM", resourceName.toString());
          //((EJBProcessInstance)instance).getProcessInstanceDAO().set("currACT", activity.getName().getText());
        }
      }catch(Exception e){
View Full Code Here

    if(options!=null && options.containsKey("showUserPortrait") && instance!=null){
      options.put("prefferedActivityIconHeight", "25");
      HumanActivity humanActivity = (HumanActivity)activity;
      try {
        RoleMapping roleMapping = humanActivity.getRole().getMapping(instance);
        if(roleMapping!=null){
          if(roleMapping.getUserPortrait()==null) roleMapping.fill(instance);
          if(roleMapping.getUserPortrait()!=null)
            return roleMapping.getUserPortrait();
        }
      } catch (Exception e) {
      }
    }
   
View Full Code Here

//      if (a.getPreviousActivities().size() == 1)    continue;
     
      if (a instanceof HumanActivity) {
        HumanActivity  ha = (HumanActivity)a;
       
        RoleMapping  rm = ha.getRole().getMapping(instance);
       
        if (rm != null) {
          // 아래는 HumanActivity의 reserveWorkItem() 메소드를 옮겨온 것이다.
          WorkList worklist = instance.getWorkList();
         
          Map kpv = ha.createParameter(instance);
          KeyedParameter[] parameters = KeyedParameter.fromMap(kpv);   

          RoleMapping roleMapping = ha.getRole().getMapping(instance, ha.getTracingTag());   
          String[] taskIds = new String[roleMapping.size()];
         
          int idx = 0;
          do{
            taskIds[idx++] = worklist.reserveWorkItem(roleMapping.getEndpoint(), parameters, instance.getProcessTransactionContext());       
          }while(roleMapping.next());
         
          StringBuffer taskId = new StringBuffer();
          if (taskIds != null) {
            for (int j = 0; j < taskIds.length; j++) {
              if (taskId.length() > 0) taskId.append(",");
View Full Code Here

   */
  public void onPropertyChange(Activity activity, ProcessInstance instance,
      String propertyName, Object changedValue) throws Exception {
   
    if (propertyName.equals("roleMapping") && !instance.isNew()) {
      RoleMapping  rm = (RoleMapping)changedValue;
      ProcessDefinition  pd = (ProcessDefinition)activity;
      String      roleName = rm.getName();
     
      // 같은 roleName을 갖는 Activity를 찾는다.
      Vector  activities = pd.getChildActivities();
      for (int i = 0; i < activities.size(); i++) {
        Activity  a = (Activity)activities.get(i);
        if (a instanceof HumanActivity) {
          HumanActivity  ha = (HumanActivity)a;
          if (ha.getRole().getName().equals(roleName)) {
            // 변경된 Role 추가
            WorkList  workList = instance.getWorkList();
            String  userId = rm.getEndpoint();
           
            workList.reserveWorkItem(userId, KeyedParameter.fromMap(ha.createParameter(instance)), instance.getProcessTransactionContext());
          }
        }
      }
View Full Code Here

    throws Exception {
   
    if(activity instanceof HumanActivity){
      HumanActivity humanActivity = (HumanActivity)activity;
     
      RoleMapping theMapping = humanActivity.getRole().getMapping(instance);
     
      if(theMapping !=null){
        theMapping.beforeFirst();
        do{
          TransactionContext tc;
         
          if(DW_DSN!=null){
            tc = new SimpleTransactionContext(DW_DSN);
          }else{
            tc = instance.getProcessTransactionContext();
          }
         
          ResourceDimensionDAOType resourceDimensionDAOType = ResourceDimensionDAOType.getInstance(tc);
 
          if(resourceDimensionDAOType.existAnyResourceWhereRsrc_Id(theMapping.getEndpoint())) continue;
         
          if(theMapping.getGroupName()==null)
            theMapping.fill(instance);
 
          ResourceDimensionDAO resourceDimension = resourceDimensionDAOType.createDAOForInsert();{
            resourceDimension.setRsrc_Id(theMapping.getEndpoint());
            resourceDimension.setRsrc_Name(theMapping.getResourceName());
            resourceDimension.setGender(theMapping.isMale());
            resourceDimension.setDept_Name(theMapping.getGroupName());
            resourceDimension.setDept_Id(theMapping.getGroupId());
            if(theMapping.getBirthday()!=null)
              resourceDimension.setBirthDay(new Long(1900 + theMapping.getBirthday().getYear()));
          }
          resourceDimension.insert();
         
          if(tc instanceof SimpleTransactionContext)
            tc.releaseResources();
         
        }while(theMapping.next());
       
        theMapping.beforeFirst();
      }
    }
   
  }
View Full Code Here

   
    if(activity instanceof HumanActivity){
     
      HumanActivity humanActivity = (HumanActivity)activity;
     
      RoleMapping theMapping = humanActivity.getRole().getMapping(instance);
 
      theMapping.beforeFirst();

      TransactionContext tc;
     
      if(DW_DSN!=null){
        tc = new SimpleTransactionContext(DW_DSN);
      }else{
        tc = instance.getProcessTransactionContext();
      }

      PerformanceFactDAOType performanceFactDAOType = PerformanceFactDAOType.getInstance(tc);
      PerformanceFactDAO performanceFact = performanceFactDAOType.createDAOForInsert();{
        performanceFact.setACT_ID(humanActivity.getTracingTag());
        performanceFact.setINST_ID(new Long(instance.getInstanceId()));
        performanceFact.setROOTINST_ID(new Long(instance.getRootProcessInstanceId()));
        performanceFact.setACT_NAME(humanActivity.getName().getText());
        performanceFact.setCOST(new Long(humanActivity.getCost()));
        performanceFact.setDEF_ID(new Long(humanActivity.getProcessDefinition().getBelongingDefinitionId()));
        performanceFact.setDEF_NAME(humanActivity.getProcessDefinition().getName().getText());
        performanceFact.setPRSNGTIME(new Long(humanActivity.getElapsedTimeAsLong(instance) / 60000));
        performanceFact.setRsrc_Id(theMapping.getEndpoint());
        performanceFact.setMODTIME(new Timestamp(GlobalContext.getNow(instance.getProcessTransactionContext()).getTimeInMillis()));
       
       
        long timeId = 0;{
          java.util.Calendar startedTime = humanActivity.getOpenTime(instance);
View Full Code Here

    instance.getActualInitiatorHumanActivity().getActivity().compensateToThis(instance);
  }
 
  @SuppressWarnings({ "unchecked", "rawtypes" })
  public String processStart(ProcessStartMsg psMsg) throws Exception {
    RoleMapping loggedRoleMapping = RoleMapping.create();
    loggedRoleMapping.setEndpoint(psMsg.getInitiator());
    loggedRoleMapping.fill(null);

    Map genericContext = new HashMap();
    genericContext.put(HumanActivity.GENERICCONTEXT_CURR_LOGGED_ROLEMAPPING, loggedRoleMapping);
    genericContext.put("request", request);
    pm.setGenericContext(genericContext);

    String defVerId = pm.getProcessDefinitionProductionVersionByAlias(psMsg.getProcAlias());
    String instanceId = pm.initializeProcess(defVerId);
    ProcessInstance instance = pm.getProcessInstance(instanceId);
    if (StringUtils.hasText(psMsg.getInstanceName())) {
      instance.setName(psMsg.getInstanceName());
    }
    this.bindProcessInfo(instance, psMsg);
   
    HumanActivity initiatorHumanActivity = (HumanActivity) instance.getProcessDefinition().getInitiatorHumanActivityReference(instance.getProcessTransactionContext()).getActivity();
   
    if (initiatorHumanActivity instanceof ExternalApprovalActivity) {
     
      pm.executeProcess(instanceId);
     
      // 결재선 정보 가져오기
      ApproverDAO approverDAO = new ApproverDAO(DefaultConnectionFactory.create().getDataSource());
      ApprovalLineDAO approvalLineDAO = new ApprovalLineDAO(DefaultConnectionFactory.create().getDataSource());
      ApprovalLine al = approvalLineDAO.get(psMsg.getApprovalKey());
      al.setLineStatus(ExternalApprovalActivity.SIGN_DRAFT);
      al.setInstanceId(Integer.parseInt(instanceId));
     
      List<Approver> approverList = approverDAO.list(psMsg.getApprovalKey());
      List<HumanActivity> approvalActs = new ArrayList<HumanActivity>();
     
      // 결재선 다이나믹 체인지 Start
      ProcessDefinition tempPd = (ProcessDefinition) instance.getProcessDefinition().clone();
      HumanActivity draftAct = (HumanActivity) tempPd.getInitiatorHumanActivityReference(instance.getProcessTransactionContext()).getActivity();
      if (StringUtils.hasText(psMsg.getMainParam())) {
        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);
View Full Code Here

 
    ProcessInstance instance = pm.getProcessInstance(acMsg.getInstanceId());
    this.bindProcessInfo(instance, acMsg);
   
    HumanActivity hm = (HumanActivity) pm.getProcessInstance(acMsg.getInstanceId()).getProcessDefinition().getActivity(acMsg.getTracingTag());
    RoleMapping roleMapping = RoleMapping.create();
    roleMapping.setEndpoint(acMsg.getEndpoint());
    roleMapping.setName(hm.getRole().getName());
    roleMapping.fill(instance);
//    pm.putRoleMapping(acMsg.getInstanceId(), roleMapping);
//    pm.delegateRoleMapping(acMsg.getInstanceId(), roleMapping);
   
    pm.setGenericContext(genericContext);
    pm.completeWorkitem(acMsg.getInstanceId(), acMsg.getTracingTag(), acMsg.getTaskId(), new org.uengine.kernel.ResultPayload());
View Full Code Here

  }
 
  @SuppressWarnings({ "unchecked", "rawtypes" })
  public void approvalDraftActivityComplete(ApprovalDraftActivityCompleteMsg adacMsg) throws Exception {
   
    RoleMapping loggedRoleMapping = RoleMapping.create();
    loggedRoleMapping.setEndpoint(adacMsg.getEndpoint());
    loggedRoleMapping.fill(null);
   
    Map genericContext = new HashMap();
    genericContext.put(HumanActivity.GENERICCONTEXT_CURR_LOGGED_ROLEMAPPING, loggedRoleMapping);
    genericContext.put("request", request);
    pm.setGenericContext(genericContext);
   
    ProcessInstance instance = pm.getProcessInstance(adacMsg.getInstanceId());
    this.bindProcessInfo(instance, adacMsg);
   
    // 결재선 다이나믹 체인지 Start
    ApproverDAO approverDAO = new ApproverDAO(DefaultConnectionFactory.create().getDataSource());
    List<Approver> approverList = approverDAO.list(adacMsg.getApprovalKey());
   
    ApprovalLineDAO approvalLineDAO = new ApprovalLineDAO(DefaultConnectionFactory.create().getDataSource());
    ApprovalLine approvalLine = approvalLineDAO.get(adacMsg.getApprovalKey());
    approvalLine.setLineStatus(ExternalApprovalActivity.SIGN_DRAFT);
   
   
    ProcessDefinition tempPd = (ProcessDefinition) instance.getProcessDefinition().clone();
    HumanActivity draftAct = (HumanActivity) tempPd.getActivity(adacMsg.getTracingTag());
    if (StringUtils.hasText(adacMsg.getMainParam())) {
      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);
View Full Code Here

TOP

Related Classes of org.uengine.kernel.RoleMapping

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.