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, August 1, 2012PrintSubscribe
Handling “Custom” Actions

Code On Time web applications can have “Custom” actions that trigger business rules.

For example, let’s implement a custom action on orders form to count the number of order details that belong to the order.

Creating Action

Start the Project Designer. In the Project Explorer, switch to the Controllers tab. Right-click on Orders / Actions / ag2 action group node, and press New Action.

New Action context menu option for action group in the Project Explorer.

Give this action the following properties:

Property Value
Command Name Custom
Command Argument CountOfOrders
Header Text Count of Order Details

Press OK to save the action.

Creating Business Rule

In the Project Explorer, right-click on Orders / Business Rules node, and press New Business Rule.

New Business Rule context menu option for Business Rules node in the Project Explorer.

Assign the following properties:

Property Value
Type SQL
Command Name Custom
Command Argument CountOfOrders
Phase Execute
Script
declare @CountofOrderDetails int

select distinct @CountofOrderDetails = count(ProductID)
from "Order Details"
where OrderID = @OrderID

set @Result_ShowViewMessage = 
    'This order contains ' +
    cast(@CountofOrderDetails as nvarchar) +
    ' order details.'

Press OK to save the business rule. On the toolbar, press Browse to generate the web app.

Navigate to the Orders page. Select an order – you will see the action Count of Order Details on the form.

Count of Order Details button displayed on the form.

Click on the Count of Order Details button, and a message will appear above the view displaying the count of order details.

When Count of Order Details is pressed, a message is displayed above the view.

Wednesday, July 25, 2012PrintSubscribe
Data Action Notifications

Notifications can be displayed as confirmations after any data manipulation operations.

Let’s implement a code business rule to display a notification after every Update, Insert, and Delete action.

Enable shared business rules. Generate the web app.

Start the Project Designer. On the toolbar, press Develop to open the project in Visual Studio.

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

Replace the existing code with the following:

C#:

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using MyCompany.Data;

namespace MyCompany.Rules
{
    public partial class SharedBusinessRules : MyCompany.Data.BusinessRules
    {
        protected override void AfterSqlAction(ActionArgs args, ActionResult result)
        {
            base.AfterSqlAction(args, result);
            if (result.Errors.Count == 0 && args.CommandName == "Update" ||
                args.CommandName == "Insert" || args.CommandName == "Delete")
            {
                Result.ShowAlert("The action {0} has been completed.", args.CommandName);
                Result.Continue();
            }
        }
    }
}

Visual Basic:

Imports MyCompany.Data
Imports System
Imports System.Collections.Generic
Imports System.Data
Imports System.Linq

Namespace MyCompany.Rules

    Partial Public Class SharedBusinessRules
        Inherits MyCompany.Data.BusinessRules

        Protected Overrides Sub AfterSqlAction(args As ActionArgs, result As ActionResult)
            If (result.Errors.Count = 0 And Arguments.CommandName = "Update" Or
                Arguments.CommandName = "Insert" Or Arguments.CommandName = "Delete") Then
                result.ShowAlert("The action {0} has been completed.", Arguments.CommandName)
            End If
        End Sub

    End Class
End Namespace

Save the file. Press Ctrl+F5 to run the web application from Visual Studio.

Navigate to any page, edit a record, and save. A popup window will open, displaying a notification.

Data Action Notification displayed in a popup window.

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.