Skip to content

Commit

Permalink
Requester comment is stored into process start/end events.
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Mar 3, 2017
1 parent b34a2ef commit 35b261b
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 4 deletions.
Expand Up @@ -107,6 +107,7 @@ public class PageAuditLogDetails extends PageBase {
WorkflowConstants.AUDIT_ESCALATION_LEVEL_NUMBER,
WorkflowConstants.AUDIT_ESCALATION_LEVEL_NAME,
WorkflowConstants.AUDIT_ESCALATION_LEVEL_DISPLAY_NAME,
WorkflowConstants.AUDIT_REQUESTER_COMMENT,
WorkflowConstants.AUDIT_COMMENT,
WorkflowConstants.AUDIT_WORK_ITEM_ID,
WorkflowConstants.AUDIT_PROCESS_INSTANCE_ID);
Expand Down
Expand Up @@ -39,4 +39,5 @@ public class WorkflowConstants {
public static final String AUDIT_ESCALATION_LEVEL_DISPLAY_NAME = "wf.escalationLevelDisplayName";
public static final String AUDIT_WORK_ITEM_ID = "wf.workItemId";
public static final String AUDIT_PROCESS_INSTANCE_ID = "wf.processInstanceId";
public static final String AUDIT_REQUESTER_COMMENT = "wf.requesterComment";
}
Expand Up @@ -26,6 +26,7 @@
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.result.OperationResultStatus;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
import com.evolveum.midpoint.schema.util.WfContextUtil;
import com.evolveum.midpoint.security.api.SecurityEnforcer;
import com.evolveum.midpoint.util.exception.ObjectNotFoundException;
import com.evolveum.midpoint.util.exception.SchemaException;
Expand All @@ -38,8 +39,6 @@
import com.evolveum.midpoint.wf.impl.tasks.WfTask;
import com.evolveum.midpoint.wf.util.ApprovalUtils;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -94,6 +93,11 @@ public AuditEventRecord prepareProcessInstanceAuditRecord(WfTask wfTask, AuditEv
record.addPropertyValueIgnoreNull(WorkflowConstants.AUDIT_STAGE_DISPLAY_NAME, wfc.getStageDisplayName());
}
record.addPropertyValue(WorkflowConstants.AUDIT_PROCESS_INSTANCE_ID, wfc.getProcessInstanceId());
OperationBusinessContextType businessContext = WfContextUtil.getBusinessContext(wfc);
String requesterComment = businessContext != null ? businessContext.getComment() : null;
if (requesterComment != null) {
record.addPropertyValue(WorkflowConstants.AUDIT_REQUESTER_COMMENT, requesterComment);
}
return record;
}

Expand Down
Expand Up @@ -16,6 +16,8 @@

package com.evolveum.midpoint.wf.impl.policy.other;

import com.evolveum.midpoint.audit.api.AuditEventRecord;
import com.evolveum.midpoint.audit.api.AuditEventType;
import com.evolveum.midpoint.model.api.ModelExecuteOptions;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
Expand All @@ -24,6 +26,7 @@
import com.evolveum.midpoint.schema.util.WfContextUtil;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.test.util.TestUtil;
import com.evolveum.midpoint.wf.api.WorkflowConstants;
import com.evolveum.midpoint.wf.impl.activiti.ActivitiEngine;
import com.evolveum.midpoint.wf.impl.policy.AbstractWfTestPolicy;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand All @@ -33,6 +36,7 @@
import org.testng.annotations.Test;

import java.util.Collection;
import java.util.Collections;
import java.util.List;

import static com.evolveum.midpoint.test.IntegrationTestTools.display;
Expand Down Expand Up @@ -65,8 +69,11 @@ public void test100SimpleApprove() throws Exception {

// GIVEN

dummyAuditService.clear();

OperationBusinessContextType businessContext = new OperationBusinessContextType();
businessContext.setComment("req.comment");
final String REQUESTER_COMMENT = "req.comment";
businessContext.setComment(REQUESTER_COMMENT);

ObjectDelta<UserType> userDelta = createAssignmentUserDelta(userJackOid, roleRole1aOid, RoleType.COMPLEX_TYPE, null, null, null, true);
Collection<ObjectDelta<? extends ObjectType>> deltas = MiscSchemaUtil.createCollection(userDelta);
Expand All @@ -88,13 +95,22 @@ public void test100SimpleApprove() throws Exception {

WfProcessCreationEventType event1 = (WfProcessCreationEventType) events.get(0);
display("Event 1", event1);
assertEquals("Wrong requester comment", "req.comment", WfContextUtil.getBusinessContext(wfTask.getWorkflowContext()).getComment());
assertEquals("Wrong requester comment", REQUESTER_COMMENT, WfContextUtil.getBusinessContext(wfTask.getWorkflowContext()).getComment());

WorkItemEventType event2 = (WorkItemEventType) events.get(1);
display("Event 2", event2);

assertNotNull("Original assignee is null", event2.getOriginalAssigneeRef());
assertEquals("Wrong original assignee OID", userLead1Oid, event2.getOriginalAssigneeRef().getOid());

display("audit", dummyAuditService);
List<AuditEventRecord> records = dummyAuditService.getRecordsOfType(AuditEventType.WORKFLOW_PROCESS_INSTANCE);
assertEquals("Wrong # of process instance audit records", 2, records.size());
for (int i = 0; i < records.size(); i++) {
AuditEventRecord record = records.get(i);
assertEquals("Wrong requester comment in audit record #" + i, Collections.singleton(REQUESTER_COMMENT),
record.getPropertyValues(WorkflowConstants.AUDIT_REQUESTER_COMMENT));
}
}

}

0 comments on commit 35b261b

Please sign in to comment.