Hello!
I am trying to make a boolean field editable based on another boolean.
Can anyone provide me a code format of business rules for mobile and correct file where to put them.
Thanks.
Like
Hello,
You need to create a separate module and then add it to the mobile application manifest (PagesExtensions property of the object model) as described here or here. In this community post, I've provided an example of a business rule that activates a field based on conditions.
Best regards,
Oscar
Hello,
I also applied same business rule for a string which needs to be permanently read-only in Order section. So, I have put in the condition column Total amount as negative which will never be true. But, this is not working in mobile.
I have attached that business rule below. I have added this module in the page extensions of Order section also.
Terrasoft.sdk.Model.addBusinessRule("Order", {
ruleType: Terrasoft.RuleTypes.Activation,
events: [Terrasoft.BusinessRuleEvents.Load, Terrasoft.BusinessRuleEvents.ValueChanged],
triggeredByColumns: ["JFLOrderOneOffTotal" ],
conditionalColumns: [
{name: "JFLOrderOneOffTotal", value: "-1.00"}
],
dependentColumnNames: ["JFLPaymentMandateLink"]
});
I want to make "JFLPaymentMandateLink" field read only.
Hoping for an early reply.
malay garg,
Hello,
You need to install the emulator to debug the logic (can be found here). You need to check which value if passed for the JFLOrderOneOffTotal column and if the rule is triggered. Also you will need to recycle the application pool after creating a new rule and adding it to the page extensions in the manifest.
Best regards,
Oscar
Oscar Dylan,
Thanks for the information.
I am looking for a logic to make a Date, String, Integer field read only in mobile.
The column JFLOrderOneOffTotal was chosen because it can never be negative in my implementation, so the affected field would be always read only.
But, as this is not working , can you please suggest me proper logic to make these fields read only always.
Hoping for an early reply.
Regards,
Malay.
Malay,
You are welcome!
Yes, you can do it! See the example of my business rule below:
Terrasoft.sdk.Model.addBusinessRule("Account", { ruleType: Terrasoft.RuleTypes.Activation, events: [Terrasoft.BusinessRuleEvents.Load, Terrasoft.BusinessRuleEvents.ValueChanged], triggeredByColumns: ["UsrInteger"], conditionalColumns: [ {name: "UsrInteger", value: 1} ], dependentColumnNames: ["UsrWaranty","UsrDate","UsrDelivery"] });
Please note that the business rule name should be the same as the object for which the rule is created (not the module name, but the rule name ("Account" in my case, one of the arguments for the Terrasoft.sdk.Model.addBusinessRule method)). The module itself can have any name you want (in my case it is "UsrAccountReadOnly" that was then added to the manifest:
).
As a result all three columns became read-only: UsrWaranty - integer column, "UsrDate" - date column and "UsrDelivery" - string column:
The condition is that columns become unlocked when the UsrInteger column value is 1. Once this rule was created and the application pool restarted and relogin to the mobile app executed the rule started to work as expected. So you need to double-check your rule.
Best regards,
Oscar