05-03-2023
03:16 PM
- last edited on
05-04-2023
05:16 AM
by
JackLacava
An allocation business rule is not allocating the rates properly . Hence we would like to debug the business rule and also figure out which intersections are passed and what is the value and allocation rate used in allocation calculation .
This allocation process involves a formula in UD7 member .
Please advise how to see the messages used in api.logmessage . Should we need to create a dashboard to capture the messages that are logged while running the allocations. Again, we are looking for which members used and the value / rate used to allocate.
Solved! Go to Solution.
05-04-2023 06:35 AM
@VVpackersYou can use the below methodology to start debugging your rule. I have read the below tip from this community.
1) Simplifying Log Message
Define a Boolean Constant LogSwitch
Public Const LogSwitch As Boolean = True
True- To turn on logging for your business rule
False - To turn off logging for your business rule
Use the below statement when writing a log
If LogSwitch = True Then brapi.ErrorLog.LogMessage(si, "My Workflow name is " &Workflow )
Also, To Log everything in a single string use the below format -
Dim log As String = String.Empty
'Append to “log” throughout business rule
log += “Message 1” & VbCrLf '<— VbCrLf is a .Net constant for “New Line”
log += “Message 2” & VbCrLf
'At the very end of Business Rule I write the log variable to the ErrorLog.
BRApi.ErrorLog.LogMessage(si, log)
05-03-2023 04:16 PM - edited 05-03-2023 05:15 PM
You can write debug messages to the log with BRApi.ErrorLog.LogMessage(si,"Message to log")
05-03-2023 05:13 PM
Anything written with Api.LogMessage or BRApi.ErrorLog.LogMessage will appear in the Error Log, which can be found in the System pane - NOT in the Task Activity Log.
05-04-2023 06:35 AM
@VVpackersYou can use the below methodology to start debugging your rule. I have read the below tip from this community.
1) Simplifying Log Message
Define a Boolean Constant LogSwitch
Public Const LogSwitch As Boolean = True
True- To turn on logging for your business rule
False - To turn off logging for your business rule
Use the below statement when writing a log
If LogSwitch = True Then brapi.ErrorLog.LogMessage(si, "My Workflow name is " &Workflow )
Also, To Log everything in a single string use the below format -
Dim log As String = String.Empty
'Append to “log” throughout business rule
log += “Message 1” & VbCrLf '<— VbCrLf is a .Net constant for “New Line”
log += “Message 2” & VbCrLf
'At the very end of Business Rule I write the log variable to the ErrorLog.
BRApi.ErrorLog.LogMessage(si, log)
05-04-2023 09:57 AM
Thanks for all your ideas . I am also trying to get messages out of a formula used in a UD7 member. How can I grab messages out of it ? Because I can see the messages from a business rule and not seeing from the messages I put in UD7 member formula.
05-04-2023 09:59 AM
Can you share some screenshots ?
05-04-2023 11:45 AM - edited 05-04-2023 11:48 AM
Make sure your UD7 member is assigned to a pass in the Formula Type property, or the formula won't run at all. Depending on how you're triggering this, you might need to set the Is Consolidated property too.
As @OS_Pizza said, you want to run your action "With Logging" and then look into the Task Activity Log, expanding Child Steps to verify if the formula is ever invoked and where:
Once you're sure the formula is invoked, you can start peppering it with LogMessage calls, which will appear in System Pane -> Error Log.
05-04-2023 09:57 AM - edited 05-04-2023 09:58 AM
I use
Sub Debug(si As SessionInfo, message As String)
isTestOrQa = True
If(isTestOrQa)Then BRApi.ErrorLog.LogMessage(si, message)
End Sub
05-04-2023 06:48 PM
Same for me except that since we're running it through our own debugging function I add as much useful info as I can (which would be a pain if repeating for every manual logmessage. For example, a better timestamp that allows sub-second sorting.
05-04-2023 10:42 AM
05-04-2023 10:47 AM
1. When you run Calculate.Run calculate using logging. This will show you if your formulae ran or not.
If it doesnt show up , that means your formulae never ran and the log entry wont be there.
2. You need to share the screenshot of your allocation rule that you have written and the portion where you are trying to debug.
05-04-2023 12:31 PM
If API is available, do NOT use BRAPI. I understand that this is for debugging but it does add time to calculations. The negative performance impact of accidentally leaving the switch turned on will be heavier if BRAPI is used.