diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/message_instance.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/message_instance.py index 6443f149..3c278b92 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/message_instance.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/message_instance.py @@ -100,6 +100,11 @@ class MessageInstanceModel(SpiffworkflowBaseDBModel): # We know we have a match, and we can just return if we don't have to figure out the key return True + if self.correlation_keys == {}: + # Then there is nothing more to match on -- we accept any message with the given name. + return True + + # Loop over the receives' correlation keys - if any of the keys fully match, then we match. for expected_values in self.correlation_keys.values(): if self.payload_matches_expected_values( diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py index 0d0060bc..ddd4f497 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py @@ -1,6 +1,6 @@ """Message_service.""" from spiffworkflow_backend.models.db import db -from spiffworkflow_backend.models.message_instance import MessageInstanceModel +from spiffworkflow_backend.models.message_instance import MessageInstanceModel, MessageTypes from spiffworkflow_backend.models.message_instance import MessageStatuses from spiffworkflow_backend.models.message_triggerable_process_model import ( MessageTriggerableProcessModel, @@ -42,7 +42,8 @@ class MessageService: # Find available messages that might match available_receive_messages = MessageInstanceModel.query.filter_by( - name=message_instance_send.name, status=MessageStatuses.ready.value + name=message_instance_send.name, status=MessageStatuses.ready.value, + message_type=MessageTypes.receive.value ).all() message_instance_receive: MessageInstanceModel | None = None try: diff --git a/spiffworkflow-frontend/src/interfaces.ts b/spiffworkflow-frontend/src/interfaces.ts index f86a7bb5..4c28376c 100644 --- a/spiffworkflow-frontend/src/interfaces.ts +++ b/spiffworkflow-frontend/src/interfaces.ts @@ -112,12 +112,13 @@ export interface MessageInstance { process_model_identifier: string; process_model_display_name: string; process_instance_id: number; - message_identifier: string; + name: string; message_type: string; failure_cause: string; status: string; created_at_in_seconds: number; message_correlations?: MessageCorrelations; + correlation_keys: any; } export interface ReportFilter { diff --git a/spiffworkflow-frontend/src/routes/MessageInstanceList.tsx b/spiffworkflow-frontend/src/routes/MessageInstanceList.tsx index a9ec6b69..c1a1658e 100644 --- a/spiffworkflow-frontend/src/routes/MessageInstanceList.tsx +++ b/spiffworkflow-frontend/src/routes/MessageInstanceList.tsx @@ -64,14 +64,14 @@ export default function MessageInstanceList() { open={!!messageInstanceForModal} passiveModal onRequestClose={handleCorrelationDisplayClose} - modalHeading={`Message ${messageInstanceForModal.id} (${messageInstanceForModal.message_identifier}) ${messageInstanceForModal.message_type} data:`} + modalHeading={`Message ${messageInstanceForModal.id} (${messageInstanceForModal.name}) ${messageInstanceForModal.message_type} data:`} modalLabel="Details" > {failureCausePre}
Correlations:
{JSON.stringify( - messageInstanceForModal.message_correlations, + messageInstanceForModal.correlation_keys, null, 2 )} @@ -95,21 +95,24 @@ export default function MessageInstanceList() { > ); } + let processLink = External Call + let instanceLink = + if (row.process_instance_id != null) { + processLink = FormatProcessModelDisplayName(row) + instanceLink = + + {row.process_instance_id} + + } return ({row.id} -{FormatProcessModelDisplayName(row)} -- - {row.process_instance_id} - - -{row.message_identifier} +{processLink} +{instanceLink} +{row.name} {row.message_type}