Business Rules/Logic

Labels
AJAX(112) App Studio(9) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(178) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(184) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(3) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Business Rules/Logic
Wednesday, July 25, 2012PrintSubscribe
Working with Business Rules in Designer

The framework of a generated application can be extended with custom business rules to handle client- and server-side events. The events are typically raised in response to user interface actions. There are several types of business rules:

JavaScript business rules are executed by the client web browser. All other types of business rules are executed on the server. Business rules have uniform access to field values and application framework facilities. The application framework orchestrates execution of business rules, which allows the developer to implement business logic that is not bound to user interface elements.

Business rules can be found in the Project Browser by clicking on the Rules tab when a controller is selected.

Rules tab for a controller in the Project Browser.

A new business rule can be created by using the New | New Rule action on the action bar.

New Rule action on the action bar.

A business rule can be edited by using the context menu action Open.

Open context menu option in the Project Browser.     Business rule edit form in the Project Browser.

The context menu option Sync will select the relevant business rule node in the Project Explorer.

Sync context menu option the Project Browser.     Synced business rule node in the Project Explorer.

The definition of JavaScript, Email, and SQL business rules can be entered in the Script property.

Script text box allows direct editing of a business rule.

Code business rule files must be edited in an external text editor, such as Visual Studio. The Edit Rule action on the action bar will open the .cs(vb) file in Visual Studio.

Edit Rule action on the action bar will open the business rule in Visual Studio.

The Id of a business rule can be changed in the Project Explorer. Click on the Id property to start editing. The context menu action Rename in the Project Explorer also performs the same function.

Rename Id link in the edit form in the Project Browser.     Rename context menu option in the Project Explorer.

Business rules can be deleted using the context menu option Delete in the Project Explorer.

Delete context menu option in the Project Explorer.

Business rules can be moved to a different controller by dragging the business rule node.

Dragging a business rule onto a controller node.     Update business rule moved under Employees controller.

Wednesday, July 25, 2012PrintSubscribe
Overview of Business Rules

Business rules extend the functionality of a web application through SQL, C# or Visual Basic, JavaScript, or Email.

Business Rule Properties:

Property Description
Command Argument Specifies the argument of a command that will trigger the business rule. The property value is a regular expression.
Command Name Specifies the names of commands that will trigger the business rule to fire. The property value is a regular expression.

For example: Update|Insert|Delete
Controller Specifies which controller the business rule will apply to.
Id Specifies the Id of the business rule.
Name Specifies a user-friendly name of the business rule.
Phase Specifies the phase of the command in which the rule will fire. Calculate command can only use “Execute” phase.
Script Specifies the script of the rule. C#/Visual Basic rules can be edited in Visual Studio using the Edit Rule action on the action bar.
Type Specifies the type. Available options are: SQL, C#/Visual Basic, Email, JavaScript.
View Specifies which views will permit the rule to be triggered. The property value is a regular expression.

For example: editForm1|grid1

Learn to work with business rules in the Project Designer.

Learn to drag and drop business rules in the Project Explorer.

Common Tasks:

Task Description
SQL Validation Learn to create an SQL Business Rule to perform validation.
Shared Code Business Rule Learn to use the shared business rules file.
Custom Code Business Rule Learn to use custom business rules.
JavaScript Validation Learn to create a JavaScript Business Rule to perform validation.
Simple Email Notification Learn to create a simple notification using an Email Business Rule.
Tuesday, July 24, 2012PrintSubscribe
FileName Action

Actions Export to Spreadsheet, Download, and Report will produce a file when executed on the server. The file name is a concatenation of the data controller and the view.

Customers generated report file named after the controller and view.

Let’s create a business rule that will assign custom names to the output files.

First, enable shared business rules and regenerate the project. Start the Project Designer and click Develop on the toolbar to open the project in Visual Studio.

In the Solution Explorer, double-click on ~\App_Code\Rules\SharedBusinessRules.cs(vb) file.

SharedBusinessRules file in the Solution Explorer.

Replace the default code with the following:

C#:

using System;
using MyCompany.Data;
using System.IO;

namespace MyCompany.Rules
{
    public partial class SharedBusinessRules : MyCompany.Data.BusinessRules
    {

        public SharedBusinessRules()
        {
        }

        // 1. "Actions | Export to Spreadsheet" in any controller
        [ControllerAction(".", "FileName", "ExportRowset")]
        public void AssignFileNameToExportSpreadsheet(string fileName)
        {
            UpdateFieldValue("FileName", String.Format("Live {0} Data Link.iqy", 
                ControllerName));
        }

        // 2. "Actions | Download" in 'Suppliers' controller
        [ControllerAction("Suppliers", "FileName", "ExportCsv")]
        public void AssignFileNameToDownloadCsv(string fileName)
        {
            UpdateFieldValue("FileName", String.Format("{0:yyyy-MM-dd} Supplier List.csv", 
                DateTime.Now));
        }

        // 3. "Report |.." in any data controller
        [ControllerAction(".", "FileName", "Report")]
        [ControllerAction(".", "FileName", "ReportAsPdf")]
        [ControllerAction(".", "FileName", "ReportAsExcel")]
        [ControllerAction(".", "FileName", "ReportAsWord")]
        [ControllerAction(".", "FileName", "ReportAsImage")]
        public void FormatReportFileName(string fileName)
        {
            UpdateFieldValue("FileName", String.Format("{0:yyyy-MM-dd} {1}{2}",
                DateTime.Now,
                Arguments.Controller,
                Path.GetExtension(fileName)));
        }
    }
}

Visual Basic:

Imports MyCompany.Data
Imports System
Imports System.IO

Namespace MyCompany.Rules

    Partial Public Class SharedBusinessRules
        Inherits MyCompany.Data.BusinessRules

        Public Sub New()
            MyBase.New()
        End Sub

        ' 1. "Actions | Export to Spreadsheet" in any controller
        <ControllerAction(".", "FileName", "ExportRowset")>
        Public Sub AssignFileNameToExportSpreadsheet(fileName As String)
            UpdateFieldValue("FileName", String.Format("Live {0} Data Link.iqy",
                                                       ControllerName))
        End Sub

        ' 2. "Actions | Download" in 'Suppliers' controller
        <ControllerAction("Suppliers", "FileName", "ExportCsv")>
        Public Sub AssignFileNameToDownloadCsv(fileName As String)
            UpdateFieldValue("FileName", String.Format("{0:yyyy-MM-dd} SupplierList.csv",
                                                       DateTime.Now))
        End Sub

        ' 3. "Report |.." in any data controller
        <ControllerAction(".", "FileName", "Report")>
        <ControllerAction(".", "FileName", "ReportAsPdf")>
        <ControllerAction(".", "FileName", "ReportAsExcel")>
        <ControllerAction(".", "FileName", "ReportAsWord")>
        <ControllerAction(".", "FileName", "ReportAsImage")>
        Public Sub FormatReportFileName(fileName As String)
            UpdateFieldValue("FileName", String.Format("{0:yyyy-MM-dd} {1}{2}",
                                                       DateTime.Now,
                                                       Arguments.Controller,
                                                       Path.GetExtension(fileName)))
        End Sub
    End Class
End Namespace

Save the file.

The implementation handles FileName action with arguments equal to the action command names that require an output file. For example, Export to Spreadsheet action has it’s command set to “ExportRowset”. The application framework will try to obtain a custom filename from the business rules by raising an internal action with command name of “FileName” and argument of “ExportRowset”. If the business rules are updating the filename, then the new name will be assigned to the output file.

Press Ctrl+F5 keyboard shortcut to run the web application. Navigate to the Suppliers page. On the action bar, click Actions | Download.

Download action in the suppliers grid view.

The name of the file will be the current date followed by “Supplier List”.

Download action produced a file with a custom name.

Report action file output will be named with the date and controller name.

PDF Report produced a file with a custom name.

The Export to Spreadsheet action will name the file “Live Suppliers Data Link”.

Export action also produces a file with a custom name.