Further journal enhancements

#1016
This commit is contained in:
Sipke Schoorstra 2021-05-20 19:04:55 +02:00
parent 1834f5686d
commit c8a0bb32ab
2 changed files with 45 additions and 20 deletions

View file

@ -55,7 +55,7 @@ namespace Elsa.Handlers
var data = new
{
exception = exceptionModel
Exception = exceptionModel
};
await WriteEntryAsync("Faulted", exception.Message, notification.ActivityExecutionContext, data, cancellationToken);

View file

@ -4,7 +4,7 @@ import moment from 'moment';
import {enter, leave, toggle} from 'el-transition'
import {
ActivityBlueprint,
ActivityDescriptor, PagedList, WorkflowBlueprint, WorkflowExecutionLogRecord, WorkflowModel,
ActivityDescriptor, PagedList, SimpleException, WorkflowBlueprint, WorkflowExecutionLogRecord, WorkflowModel,
} from "../../../../models";
import {activityIconProvider} from "../../../../services/activity-icon-provider";
import {createElsaClient} from "../../../../services/elsa-client";
@ -238,21 +238,14 @@ export class ElsaWorkflowInstanceJournal {
const recordClass = record.id === selectedRecordId ? 'elsa-border-blue-600' : 'hover:elsa-bg-gray-100 elsa-border-transparent';
const recordData = record.data || {};
const filteredRecordData = {};
const wellknownDataKeys = {State: true, Input: null, Outcomes: true, Exception: true};
for (const key in recordData) {
if (!recordData.hasOwnProperty(key))
continue;
const lowerKey = key.toLowerCase();
if (lowerKey == 'state')
continue;
if (lowerKey == 'input')
continue;
if (lowerKey == 'outcomes')
if (!!wellknownDataKeys[key])
continue;
const value = recordData[key];
@ -276,6 +269,20 @@ export class ElsaWorkflowInstanceJournal {
const deltaTimeText = durationToString(deltaTime);
const outcomes = !!recordData.Outcomes ? recordData.Outcomes || [] : [];
const exception = !!recordData.Exception ? recordData.Exception : null;
const renderExceptionMessage = (exception: any) => {
//const exceptionList = flattenExceptions(exception);
return (
<div>
<div class="elsa-mb-4">
<strong class="elsa-block elsa-font-bold">{exception.Type}</strong>
{exception.Message}
</div>
{!!exception.InnerException ? <div class="elsa-ml-4">{renderExceptionMessage(exception.InnerException)}</div> : undefined}
</div>
);
}
return (
<li>
@ -327,15 +334,7 @@ export class ElsaWorkflowInstanceJournal {
</dd>
</div>
) : undefined}
{collection.map(filteredRecordData, (v, k) => (
<div class="sm:elsa-col-span-2">
<dt class="elsa-text-sm elsa-font-medium elsa-text-gray-500 elsa-capitalize">{k}</dt>
<dd class="elsa-mt-1 elsa-text-sm elsa-text-gray-900 elsa-mb-2 elsa-overflow-x-scroll">
<pre onClick={e => clip(e.currentTarget)}>{v}</pre>
</dd>
</div>
))}
{record.message ? (
{!!record.message && !exception ? (
<div class="sm:elsa-col-span-2">
<dt class="elsa-text-sm elsa-font-medium elsa-text-gray-500">
Message
@ -345,6 +344,32 @@ export class ElsaWorkflowInstanceJournal {
</dd>
</div>
) : undefined}
{!!exception ? (
[<div class="sm:elsa-col-span-2">
<dt class="elsa-text-sm elsa-font-medium elsa-text-gray-500">
Exception
</dt>
<dd class="elsa-mt-1 elsa-text-sm elsa-text-gray-900">
{renderExceptionMessage(exception)}
</dd>
</div>,
<div class="sm:elsa-col-span-2">
<dt class="elsa-text-sm elsa-font-medium elsa-text-gray-500">
Exception Details
</dt>
<dd class="elsa-mt-1 elsa-text-sm elsa-text-gray-900">
<pre onClick={e => clip(e.currentTarget)}>{JSON.stringify(exception, null, 1)}</pre>
</dd>
</div>]
) : undefined}
{collection.map(filteredRecordData, (v, k) => (
<div class="sm:elsa-col-span-2">
<dt class="elsa-text-sm elsa-font-medium elsa-text-gray-500 elsa-capitalize">{k}</dt>
<dd class="elsa-mt-1 elsa-text-sm elsa-text-gray-900 elsa-mb-2 elsa-overflow-x-scroll">
<pre onClick={e => clip(e.currentTarget)}>{v}</pre>
</dd>
</div>
))}
</div>
</dl>
</div>