1
A
回答
2
你可以只包括已知一些唯一標識符發件人在您的消息中作爲過程變量(請參閱,例如Camunda BPM REST API 'message' endpoint)。這樣一個過程變量然後由您的目標流程實例持有確實已收到該消息。
因此,在發送消息之後,您可以接着作爲接收流程實例的第二步查詢(例如參見Camunda BPM REST API 'get-instances' endpoint),其持有具有期望標識符的變量。
-2
AFAIK這樣做的唯一方法是如果在消息中包含源執行或進程ID。如果you're通過運行時服務API發送消息,那麼你的代碼應該是這個樣子:
String myPid = delegateExecution.getProcessInstanceId();
Map vars = new HashMap();
vars.put('senderProcessInstanceId',myPid);
delegateExecution
.getEngineServices()
.getRuntimeService()
.messageEventReceived("someMessage",targetExecution,vars);
執行此代碼後,接收過程中就可以檢索過程VAR的內容「senderProcessInstanceId」以便知道誰是發件人。
如果you're使用REST API,然後you'd使用
PUT runtime/executions/{executionId}
使用JSON身體像:
{
"action":"messageEventReceived",
"messageName":"myMessage"
"variables": [ {"name": "senderProcessInstanceId", "value":"xxxxx"} ]
}
相關問題
- 1. 如何實現單個消息的消息傳遞?
- 2. 這個函數如何知道哪個屬性被傳遞?
- 3. 線程間消息傳遞的實現
- 4. Android實時消息傳遞
- 5. JMS消息傳遞實現
- 6. 如何將消息傳遞給線程
- 7. 我怎麼知道,如果一個QuickBlox消息已被節流
- 8. 如何知道一個BPM流程succeded
- 9. Firebase消息傳遞:默認通知渠道不起作用
- 10. 使用Process PerformanceCounters我如何知道實例與哪個進程關聯?
- 11. 消息從RabbitMQ的信道傳遞到Java NIO通道
- 12. 如何知道哪些JMS偵聽器隊列聽消息?
- 13. 如何以PDU格式實現傳遞消息和傳入消息?
- 14. 傳遞給多個線程的消息
- 15. 我如何知道Firebase雲消息傳遞令牌未被使用?
- 16. 使用哪種消息傳遞協議?
- 17. windows-ce中有哪些消息傳遞技術可以保證消息傳遞?
- 18. Firebase雲消息傳遞重複通知
- 19. Firebase通知 - Firebase雲消息傳遞
- 20. Firebase通知和雲消息傳遞
- 21. nodejs如何傳遞實例?
- 22. Socket.IO消息傳遞到多個房間
- 23. 在不知道對象實例的情況下傳遞Func
- 24. 在不知道類型的情況下傳遞類的實例
- 25. 跨多個進程的NodeJS實時消息傳遞
- 26. MessageEndpointMappings如何知道設置訂閱與傳出消息?
- 27. Websphere消息代理多實例消息流
- 28. 如何在Google AppEngine上實現「實時」消息傳遞?
- 29. Objective-C消息傳遞,巧妙地處理未知消息
- 30. 「 - [CFNumber intValue]:發送到解除分配的實例的消息」,不知道
如何在消息中包含進程ID?首先,進程ID是在運行時生成的,而消息是在設計時定義的!其次,如果我知道進程ID將其包含在消息中,那麼它不會是找到它的問題!順便說一句,我正在使用REST API。謝謝你提到它,現在我把它包括在幹中。 – Mehran
我認爲Philippe Sevestre想提出的建議是,您在消息中包含一些發件人已知的唯一標識符,作爲processVariable(http://docs.camunda.org/latest/api-references/rest/#message)。然後這個processVariable會在您真正接收到該消息後由您的目標流程實例持有。在發送完消息後,您可以作爲第二步查詢流程實例(http://docs.camunda.org/latest/api-references/rest/#process-instance-get-instances),其中包含變量與預期的標識符。 –
我的回答是基於發送方使用Activiti的API來發送消息的假設。 –