NebulaLogger
NebulaLogger copied to clipboard
Logging in Flow does not have a way to set a parent transaction ID
Currently, Apex developers can use these methods to link together Log__c
records, providing traceability of a user's action across multiple related transactions.
-
Logger.setParentLogTransactionId(String)
-
Logger.getParentLogTransactionId()
-
Logger.getTransactionId()
Currently, Flow builders don't have an equivalent functionality. Nebula Logger's 3 Flow invocable logging classes - FlowLogEntry
, FlowLogRecordEntry
, and FlowCollectionLogEntry
- don't currently have a way to set a parent transaction ID. This would be helpful to have for async Flows (including screen Flows & scheduled Flows) to provide the same type of traceability. See discussion 625 for more context.
To add this functionality, I think the Flow classes would need to have 3 equivalent enhancements
- In the 3 invocable classes, add a new property
String parentLogTransactionId
as an equivalent to Apex'sLogger.setParentLogTransactionId(String)
.- The class
FlowLogger
would then use the value ofparentLogTransactionId
and callLogger.setParentLogTransactionId(parentLogTransactionId)
to store the value.
- The class
- Create a new invocable Flow -
LoggerFlowContext
- that returns an instance of inner class (FlowOutput
maybe?) with 2 properties-
String logTransactionId
- returns the value ofLogger.getTransactionId()
-
String parentLogTransactionId
- returns the value ofLogger.getParentLogTransactionId()
-
I think this would provide feature parity between Apex logging & Flow logging for setting a parent Log__c
.
I agree this would be a useful feature to have.