AgileApps Support Wiki Pre Release

Difference between revisions of "Exercise 02: Creating Applications and Defining Objects"

From AgileApps Support Wiki
Line 153: Line 153:


===Additional Concepts Related to Lookups===
===Additional Concepts Related to Lookups===
:* Rollup Summary Fields
:* '''Rollup Summary Fields'''
:** Can combine information from multiple records of a related Object
:** Can combine information from multiple records of a related Object
:** Get a record Count, Sum, Average, Max, or Min value from those records (see ch. 4)
:** Get a record Count, Sum, Average, Max, or Min value from those records (see ch. 4)
:* Record Locators
:* '''Record Locators'''
:** A Lookup field contains a pointer to a record (generally a record#)
:** A Lookup field contains a pointer to a record (generally a record#)
:*** Record Locators tell which fields to display to identify a record when:
:*** Record Locators tell which fields to display to identify a record when:
Line 163: Line 163:
:***: c) Searching
:***: c) Searching
:*** Example: When selecting a User, you see First Name + Last Name
:*** Example: When selecting a User, you see First Name + Last Name
:* Lookup-derived Fields
:* '''Lookup-derived Fields'''
:** Lookup-derived fields are copies of fields contained in a target record a Lookup points to
:** Lookup-derived fields are copies of fields contained in a target record a Lookup points to
:*** Example: OrderItems contains a Lookup to a Products table
:*** Example: OrderItems contains a Lookup to a Products table
:*** The Products table might include inventory information and where to order more
:*** The Products table might include inventory information and where to order more
:*** Product name could be copied into the OrderItem record for easy reference
:*** Product name could be copied into the OrderItem record for easy reference
:* External Lookup Fields
:* '''External Lookup Fields'''
:** When the record is accessed, External Lookup fields invoke a Web Service to perform:
:** When the record is accessed, External Lookup fields invoke a Web Service to perform:
:*** a Lookup to retrieve one target-record  from an external server AND/OR
:*** a Lookup to retrieve one target-record  from an external server AND/OR

Revision as of 04:07, 29 December 2022

Introduction

Types of AgileApps Applications

  • Dynamic Case Management (DCM) Application
    • Automates the handling of Cases, Incidents, or Investigations
    • Allows for process variants for dynamic behavior
  • Service Desk Application
    • An example of a Dynamic Case Management system
    • Specialized to provide additional features for customer support
  • Database (DB) Application
    • A generic Web-based database application
    • Like a spreadsheet but with extra capabilities

Dynamic Case Management (DCM) Application

The front-line of customer, partner, and employee engagement A case is a unit of work A case Object can have a different name (other than “case”) Examples:

  • Service Requests
    • Customer Service
    • Claims Management
    • Employee, Supplier, and Partner on-boarding & off-boarding
    • Complex, high-value proposals
  • Incident Management
    • Order Exception Management
    • Complaint Management
    • Dispute Resolution
    • Employee Health and Safety
  • Investigations
    • Customer Analysis
    • Regulation, Audit requests, and tracking
    • Compliance Tracking
    • Fraud investigations

Three Ways of Creating an Application

  • Start with a sample application and customize it
  • Create a new application:
    • Import your Object and data from a spreadsheet
  • Create a new application:
    • Use the Wizard to start “from scratch”

Creating an Application from a Sample Application

  • Select from many pre-built applications in the Marketplace
    • Software AG owned source of pre-built applications
    • Download for use with cloud tenants only
    • Number of the available application may vary from time to time



Marketplace Applications.PNG

  • Customize as required

Create a New Application by Importing Spreadsheet Data

  • Object structure and Data only – no formulas
  • Paste spreadsheet data



Paste Spreadsheet Data.png

  • OR: Load from File



Load From File.png

Creating a New Application Using the Wizard

  • Use to create a custom application from scratch
  • You specify Object definitions by filling in the form



Create New Application Create Using Wizard Acme Onboarding.PNG

  • Hint:
  • Type a Field Label carefully (because it is used to create the field name)
    • The label can change - the internal name never does

Components of an AgileApps Application

  • An AgileApps application is composed of Objects and Object Relationships
  • An AgileApps application may also include:
    • Forms, Web Forms, Pages, Views, Templates, Reports, Dashboards (display data)
    • Validations, Business Rules
    • Macros, Processes
  • An AgileApps application can integrate global and external system elements:
    • Web Services, Global Picklists
    • Java classes
    • Web Tabs

AgileApps is Built on a Relational Database

  • The AgileApps platform is built on MySQL
  • Similar to a spreadsheet

    Spreadsheet.png

  • A relational database contains tables - selected data is shown in a View

    All Active Cases.png

An AgileApps Object is an Enhanced Database Table

  • An AgileApps Object consists of a database table, plus:
    • Forms and Layout Rules
    • Field and Form scripts
    • Email & Document templates
    • Macro-actions, Validations, Processes



All Fields.png

  • When you define a new Object:
    • internal table and default Forms are automatically generated
    • Object is added as a new tab to you application by default

Forms to Display Object Fields

  • As a developer/administrator at design-time:
    • Modify (default) Forms in the graphic Form editor
    • Create/clone new Forms
    • Assign them to Application Roles
    • Dynamically modify their behavior
  • As a User (Agent) at runtime:
    • Use Forms to view/enter data for a record

Defining Fields for an Object

  • Mandatory label
  • Displayed on the form
  • Display Type (Field data type)
  • Required or not
    • Field Name (internal)
    • Auto-filled
    • Must begin with an alphabetic character
    • Can contain alphabetical and numeric characters, and underscores
    • Cannot be a reserved word (ex. BLOB, BINARY)
    • Must be unique within the Object



New Field.png

Lookup Fields

  • A Lookup is a field that points to a record of another Object
  • A Lookup field defines a Many-to-One relationship
  • Example: Many OrderItems point to a single Order:



Lookup Fields.png

  • Notes:
    • There could be a Products Object, as well (depending on the design)
    • When you specify an Object Relationship in the application wizards, the Lookup field is created for you
    • You can also create the Lookup fields yourself
  • Important terms: Lookup, target, related records, Object Relationship

Lookup Fields and Object Relationships

Object Relationships can be configured:

  • in the application wizard
  • by adding child Objects to an Object
  • by adding Lookup fields



Application wizard.png

Types of Object Relationships

  • One-to-Many
    • Many related records can point to one target record
  • One-to-One
    • There can be one and only one related record for each target record
    • Uncommon:
      • Define a one-to-many relationship
      • Use program logic to restrict record creation
  • Many-to-Many
    • Example: Cases and Contributors
    • One Case has many Contributors, one Contributor works on many Cases
    • Internally, they are managed using junction Objects
    • A few good things about the platform are:
      • The platform makes them almost entirely invisible
      • When looking at a Case, you see all related Contributors
      • When looking at a Contributor, you see all related Cases

Additional Concepts Related to Lookups

  • Rollup Summary Fields
    • Can combine information from multiple records of a related Object
    • Get a record Count, Sum, Average, Max, or Min value from those records (see ch. 4)
  • Record Locators
    • A Lookup field contains a pointer to a record (generally a record#)
      • Record Locators tell which fields to display to identify a record when:
        a) Performing a Lookup
        b) Displaying the record
        c) Searching
      • Example: When selecting a User, you see First Name + Last Name
  • Lookup-derived Fields
    • Lookup-derived fields are copies of fields contained in a target record a Lookup points to
      • Example: OrderItems contains a Lookup to a Products table
      • The Products table might include inventory information and where to order more
      • Product name could be copied into the OrderItem record for easy reference
  • External Lookup Fields
    • When the record is accessed, External Lookup fields invoke a Web Service to perform:
      • a Lookup to retrieve one target-record from an external server AND/OR
      • a search that returns multiple target records from an external server. User can select one record from a pop-up

Types of Application Objects

  • An Application is composed of System Objects and Custom Objects
    • Some System Objects allow only limited customization:
      • User: Add fields and Business Rules
      • Team: Add Business Rules
  • Other System Objects are very customizable:
    • Cases and Tasks: Modify labels, add fields, add rules and processes
  • Some System Objects are not customizable:
    • UI case “banner” and sidebar-options are pre-defined (not customizable)
    • Articles, Attachments, History: not customizable
  • Custom Objects (those that you create) are very customizable:
    • No UI banners, sidebar options are not defined
    • All other options are available:
      • Add fields
      • Modify forms (the UI for displaying the data)


Exercise

In this exercise, you will generate three webMethods AgileApps Cloud applications in three different ways:


Previous

Next