Specifically, what object.method are you calling that returns a status of "Success"?
Here is code I use to get the ProcessCubeProcessInfo result of WorkFlowDataQuality.ExecuteProcessCube. Unfortunately AFAIK there is no handle to the actual process, and therefore no way to monitor it's progress. As you can see here, the method to launch the process simply fires it off and waits for a ProcessCubeProcessInfo result, then based on the value of ProcessCubeProcessInfo.Status, returns a bool.
What it sounds like you're saying is WorkflowDataQuality.ExecuteProcessCube returns immediately after being called?
result in the code below is a ProcessCubeProcessInfo object. Among other things, it should contain a List(of DataUnitInfo), process start, end, and duration times, status, and error messages.
I'm not handling any of that info, other than to validate status completed. Are you saying the status is returned before the calc finishes?
public bool Execute(WorkflowExecutionContext context)
{
var result = WorkflowDataQuality.ExecuteProcessCube(si, context.ClusterPk, context.StepType, false);
if (result.Status != WorkflowStatusTypes.Completed)
{
throw new WorkflowStepException(string.Format(
context.BaseMessage,
context.WorkflowInfo.CurrentStep().Name,
context.ProfileName,
result.DataUnitInfos,
result.ErrorMessage));
}
return true;
}