Append correlation Properties in Launch editor event

This commit is contained in:
theaubmov 2024-06-07 00:06:56 +01:00
parent 8641d5cb0f
commit e21d0be90d
3 changed files with 16 additions and 6 deletions

View File

@ -1,6 +1,6 @@
import { HeaderButton } from '@bpmn-io/properties-panel';
import { useService } from 'bpmn-js-properties-panel';
import {getMessageRefElement} from "../../MessageHelpers";
import { findCorrelationProperties, findCorrelationPropertiesAndRetrievalExpressionsForMessage, findCorrelationPropertiesByMessage, getMessageRefElement } from "../../MessageHelpers";
/**
* Sends a notification to the host application saying the user
@ -8,7 +8,7 @@ import {getMessageRefElement} from "../../MessageHelpers";
* update the value and send it back.
*/
export function MessageLaunchEditorButton(props) {
const { element } = props;
const { element, moddle } = props;
const sendEvent = 'spiff.message.edit';
const listenEvent = 'spiff.message.update';
@ -16,6 +16,12 @@ export function MessageLaunchEditorButton(props) {
const eventBus = useService('eventBus');
const messageRef = getMessageRefElement(element);
const correlationProperties = findCorrelationPropertiesAndRetrievalExpressionsForMessage(element);
const parsedCorrelationProperties = correlationProperties.map(item => ({
id: item.correlationPropertyModdleElement.id,
retrievalExpression: item.correlationPropertyRetrievalExpressionModdleElement.messagePath.body
}));
let messageId = null;
if (messageRef && messageRef.id) {
messageId = messageRef.id;
@ -28,10 +34,14 @@ export function MessageLaunchEditorButton(props) {
id: `message_launch_message_editor_button`,
onClick: () => {
eventBus.fire(sendEvent, {
value: messageId,
value: {
messageId,
correlation_properties: parsedCorrelationProperties
},
eventBus,
listenEvent,
});
// Listen for a response, to update the script.
eventBus.once(listenEvent, (response) => {
messageRef.id = response.value;

View File

@ -40,9 +40,8 @@ export function MessageSelect(props) {
const messageId = value;
const { businessObject } = element;
let oldMessageRef = (businessObject.eventDefinitions) ? businessObject.eventDefinitions[0].messageRef : businessObject.messageRef;
let definitions = getRoot(element.businessObject);
if (!definitions.get('rootElements')) {
if (!definitions || !definitions.get('rootElements')) {
definitions.set('rootElements', []);
}

View File

@ -39,7 +39,8 @@ export function createMessageGroup(
id: 'messageLaunchEditorButton',
element,
translate,
component: MessageLaunchEditorButton
component: MessageLaunchEditorButton,
moddle
}
];