Build Your First App¶
Overview¶
This page shows you how to build a simple app from scratch. The app, called AV Stock Room, tracks audio-visual equipment for the staff of a media company or department who want to borrow (check out) and return (check in) various items needed for their assignments. (The same app is featured in the Jitterbit University App Builder course, but for the sake of simplicity, there is no email reminder feature.)
To build the app, and to learn more about App Builder, work your way through the following sections one by one, previewing and testing the app at regular intervals as you progress. Instructions are deliberately brief, so as to focus your attention on the app's configuration settings. However, there are links to reference pages where you can find out more about each task.
Tip
If would like to see a working app without learning how to build one, you can quickly create an app from a template.
Create a New App¶
-
Create a new app from scratch and configure it using these app settings:
-
Name: Enter
AV Stock Room
followed by your initials, a date, or any name variation until the Identifier field (next) passes its uniqueness check. (If someone in your organization has taken the Jitterbit University App Builder course, the default identifier, based on the app name AV Stock Room, may already be taken and won't be available on the domain.) -
Identifier: If the value isn't accepted, change either Name or the first part of the identifier until it is.
-
Description: (Optional) Enter a description for the app.
-
Integration Environment: Select which integration environment this app uses (which API Manager APIs it can access, and which app runtime is used).
-
Language: You can't change this–English is preselected.
-
Culture: You can't change this–en-US is preselected.
-
Icon: (Optional) Select an icon and color to represent the app on the apps page.
-
-
Review your choices before saving–Identifier and Integration Environment can't be changed once the app is saved.
Domain Model¶
In this section you will build the app's domain model. (Settings not mentioned in this and later sections can be left as their default values.)
Dropdowns¶
-
Create a dropdown with the name
Status
(to represent the current status of a piece of equipment). -
Add these items:
-
Available
-
In Use
-
Returned
-
Lost/Damaged
-
Module 1: Equipment¶
-
Create a module with Singular Name
Equipment
, Plural NameEquipment
, and your choice of icon. -
Add a section named
Usage
, with Column Count 2, Open Section On, and Visible on Detail On. Place it between the General and System sections. -
A dd fields to the General section:
Field Type Label Visible
on DetailVisible
on ListsRequired
FieldOther Dropdown Status
On On On Dropdown: Status
Default Item(s): Available
Sort By: OrderText (Multi-Line) Description
On Off Off Large View: On Image Equipment Photo
On On Off -
Add this field to the Usage section:
Field Type Label Visible
on DetailVisible
on ListsOther Lookup Currently Checked Out By
On On Lookup From: Employee
Visible Fields: First Name, Last Name
Search Type: Contains
Sort By: Alphabetical -
Add buttons (with your choice of icon) to the module:
Label Color Visible
on DetailVisible
on ListsCheckout Equipment
Primary On On Return Equipment
Primary On On (A user will use these buttons to check in or out an item of equipment. Each button triggers a different UI flow when clicked.)
Module 2: Check Out¶
-
Create a module with Singular Name
Check Out
, Plural NameCheck Outs
, and your choice of icon. -
Add a section named
Usage
, with Column Count 2, Open Section On, and Visible on Detail On. Place it between the General and System sections. -
Add these fields to the General section:
Field Type Label Visible
on DetailVisible
on ListsRequired
FieldOther Lookup Employee
On On On Lookup From: Employee
Visible Fields: First Name, Last Name
Search Type: Contains
Sort By: AlphabeticalLookup Equipment
On On On Lookup From: Equipment
Search Type: Contains
Sort By: AlphabeticalDropdown Status
On On On Dropdown: Status
Default Item(s): In Use
Sort By: OrderText (Multi-Line) Comment
On Off Off Large View: On -
Add these fields to the Usage section:
Field Type Label Visible
on DetailVisible
on ListsRequired
FieldOther Date/Time Checked Out
On On On Default Value: Now Date Return Date
On On Off Date/Time Checked In
On On Off
Module 1: Equipment (Edit)¶
Reopen the Equipment module. Add this field to the Usage section:
Field Type | Label | Visible on Detail | Visible on Lists | Other |
---|---|---|---|---|
Lookup | Current Checkout Record | On | On | Lookup From: Check Out Search Type: Starts With Sort By: Alphabetical |
(This field is added separately because Lookup fields can't be added unless the module being looked up exists.)
Relations¶
Create these relations:
Singular/Plural Name | Module | Related Module | Relation Type | View Type on Detail Page | Related Field | Visible Fields |
---|---|---|---|---|---|---|
Checkout /Checkouts | Equipment | Check Outs | One To Many | Tabbed | Equipment | First Name (Employee) Last Name (Employee) Status Checked Out Checked In |
Equipment Checkout /Equipment Checkouts | Employees | Equipment | One To Many | Flat | Currently Checked Out By | Name Status |
(These relations let the app user see in the same view the Check Out records (in a separate tab) and Employee records (on the same page) for a selected item of equipment.)
Dependencies¶
Add this dependency:
Module | Action Type | Affecting Field | Affecting Field Values | Affected Area | Affected Section |
---|---|---|---|---|---|
Equipment | Display | Status | In Use Returned Lost/Damaged | Section | Usage |
(This makes an Equipment record's Usage section visible only when the record's Status is Available.)
Application Logic¶
Build the app's application logic, comprising two microflows, and two UI flows.
Microflow 1: Create Checkout Record¶
Create this microflow:
Setting Name | Value |
---|---|
Name | Create Checkout Record |
Description | Create record when item checked out |
Type | Record |
Module to Run | Equipment |
Enable Filtering | On |
Enable Filtering condition | Currently Checked Out By / Not Empty |
Record Name | Equipment |
When Record Is | Updated |
Run When the Value in the Related Field Changes Only | On |
Related Field | Currently Checked Out By |
Add these microflow steps:
-
Step type Find Record, settings:
Setting Name Value Description Find Employee Record
Module Employee Record Name Employee
Data Read Mode Read the First Record in the Selection Enable Filtering On Enable Filtering condition Assigned To > Employee Id / Equals / Records > Equipment > Currently Checked Out By -
Step type Create Record, settings:
Setting Name Value Description Create Checkout Record
Module Check Out Record Name Checkout Pre-added field settings:
Field Value Name Records > Equipment > Name Employee Records > Equipment > Currently Checked Out By Equipment Records > Equipment > ID Status Dropdowns > Status > In Use Checked Out Date and Time > Now ... > Today (The order of the pre-added fields in your app may be different and is not important.)
Add this field:
Field Value Return Date Date and Time > From the Beginning... > The Day > 5 Day After -
Step type Set Values, settings:
Setting Name Value Description Set Values
Set Record On Record Equipment Add these fields:
Field Value Status Dropdowns > Status > In Use Current Checkout Record Records > Checkout > ID
Connect these microflow steps as shown:
(This microflow creates a check-out record when an item of equipment is checked out, and links it to the user's Employee record.)
Microflow 2: Close Checkout Record¶
Create this microflow:
Setting Name | Value |
---|---|
Name | Close Checkout Record |
Type | Record |
Module to Run | Equipment |
Enable Filtering | On |
Enable Filtering condition | Status / Is / Dropdowns > Status > Returned |
Record Name | Returned Equipment |
When Record Is | Updated |
Run When the Value in the Related Field Changes Only | On |
Related Field | Status |
(This microflow will update a Check Out record whenever an Equipment item is checked in.)
Add these microflow steps:
-
Step type Find Record, settings:
Setting Name Value Description Find Checkout Record
Module Check Out Record Name Current Check Out Record
Data Read Mode Read the first record in the selection Enable Filtering On Enable Filtering condition ID / Equals / Records > Returned Equipment > Current Checkout Record -
Step type Set Values, settings:
Setting Name Value Description Set Equipment Values
Set Record On Record Returned Equipment Add these fields:
Field Value Currently Checked Out By (Leave blank) Current Checkout Record (Leave blank) Status Dropdowns > Status > Returned -
Step type Set Values, settings:
Setting Name Value Description Set Checkout Values
Set Record On Record Current Check Out Record Add these fields:
Field Value Checked In Date and Time > Now ... > Today Status Dropdowns > Status > Returned
Connect these microflow steps as shown:
UI Flow 1: Checkout Equipment¶
Create this UI flow:
Setting Name | Value |
---|---|
Name | Checkout Equipment |
Module to Run | Equipment |
View | Any |
Related Button | Checkout Equipment |
(This UI flow will keep the app user's UI view of data consistent with the back-end.)
Add these UI flow steps:
-
Step type Loop, settings:
Setting Name Value Plural Record Records Message Your equipment is being checked out...
-
Step type Find Record, settings:
Setting Name Value Description Find Employee Record
Module Employee Record Name Employee
Enable Filtering On Enable Filtering condition Assigned To > Employee ID / Equals / Logged In Employee > ID Sorting ID (Descending) Visible Fields All Fields -
Step type Update Record, settings:
Setting Name Value Description Update Employee Record
Record Records[current] Add this field:
Field Value Currently Checked Out By Records > Employee > Employee Id -
Step type Wait, settings: Wait For 3 Seconds.
-
Step type Refresh Data.
Connect these UI flow steps as shown:
UI Flow 2: Return Equipment¶
Create this UI flow:
Setting Name | Value |
---|---|
Name | Return Equipment |
Module to Run | Equipment |
View | Any |
Record Name | Equipment Return Records |
Related Button | Return Equipment |
(This UI flow will update the Equipment item's status field to be consistent with the back-end.)
Add these UI flow steps:
-
Step type Loop, settings:
Setting Name Value Plural Record Equipment Return Records Message Your equipment is being returned...
-
Step type Update Record, settings:
Setting Name Value Record Equipment Return Records[current] Add this field:
Field Value Status Dropdowns > Status > Returned -
Step type Wait, settings: Wait For 3 Seconds.
-
Step type Refresh Data.
Connect these UI flow steps as shown:
Configuration¶
In this section you will customize the app to make some small changes to how it looks.
Branding¶
-
Go to Configuration > Branding > Public Page. Click any number.
-
The Public Page settings dialog opens. Enter these values:
-
2-Title:
AV Stock Room
-
4-Headline:
Please log in
-
6-Button Color: choose a non-default color
-
8-Main Text:
Audio-visual equipment booking system
-
-
Click Save.
-
Go to App Page, then click any number. The App Page settings dialog opens. Enter these values:
-
2-Title:
Welcome to AV Stock Room
-
4-Menu Color: choose a non-default color
-
-
Click Save.
-
Preview the app. Note the following changes:
On the login screen:
-
The browser's tab label is AV Stock Room.
-
Above the user login name and password fields is the text Please log in.
-
Below the user login name and password fields, the login button is the color you chose on the Public Page tab.
-
At the bottom of the main region of the screen is the text Audio-visual equipment booking system.
On the app:
-
The browser's tab label is Welcome to AV Stock Room.
-
The menu, buttons, and labels are the color you chose on the App Page tab.
-
Publish¶
If you want to make the app available to other people in your organization, you can now publish it.
Important
Anyone can build and package an app, but only customers with an App Builder license can publish it.