Developer Training:: Vinyl Introduction Training Manual
Developer Training:: Vinyl Introduction Training Manual
1
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Table of Contents
Introduction ................................................................................................................................................................................................... 5
What is Vinyl?........................................................................................................................................................................................... 5
Course Objective ................................................................................................................................................................................... 5
Vinyl Layers ..................................................................................................................................................................................................... 5
Data Storage Layer ......................................................................................................................................................................... 5
Business Logic Layer ..................................................................................................................................................................... 5
UI Layer ................................................................................................................................................................................................... 5
Creating an Application ........................................................................................................................................................................ 6
Basic Vinyl Navigation ............................................................................................................................................................................ 7
Data Storage Layer .................................................................................................................................................................................... 7
Northwind Data Structure ............................................................................................................................................................. 8
Creating a Table .................................................................................................................................................................................... 8
Table Review ........................................................................................................................................................................................... 11
Business Logic Layer ............................................................................................................................................................................... 11
What is Business Logic? .................................................................................................................................................................. 11
Creating a Source Object for Tables ..................................................................................................................................... 12
Shortcut to Creating a Source Object............................................................................................................................ 14
Chapter Exercise: Create Source Objects ......................................................................................................................... 14
Creating a List Object ...................................................................................................................................................................... 15
Shortcut to Creating a List Object .................................................................................................................................... 16
Chapter Exercise: Create List Objects .................................................................................................................................. 17
The Concat Function........................................................................................................................................................................ 17
Audit Lite Tracking Information .............................................................................................................................................. 18
To Enable Audit Lite .................................................................................................................................................................... 18
Chapter Exercise: Enable Audit Lite on all Tables ...................................................................................................... 19
UI Layer ............................................................................................................................................................................................................ 19
Panel Types ............................................................................................................................................................................................20
Create a Page .......................................................................................................................................................................................20
Add a Customers Page .................................................................................................................................................................. 22
Chapter Exercise: Create Additional Pages .................................................................................................................... 23
Pop-up Pages ....................................................................................................................................................................................... 23
Add a Pop-up to the Customers Page.......................................................................................................................... 23
Chapter Exercise: Create Additional Pop-up Pages ................................................................................................ 25
Changing a Primary Key Control to a List Object ...................................................................................................... 25
2
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
3
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
4
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Introduction
What is Vinyl?
Vinyl is the first No-Code Enterprise Application Development Platform. Vinyl allows you to
create beautiful yet powerful applications and charts from multiple data sources, including
complex analytics all together on the same screen without writing a single line of code. Vinyl is
database agnostic, meaning it can work with any database type, and a key benefit of using
Vinyl is that the application turnaround time is a few weeks vs. a few years.
Course Objective
This course covers the basic skills needed to develop in Vinyl, as well as the methodology used
at Zudy to develop applications. In this course we will build out a simple order fulfillment Vinyl
application using the Northwind database as the data source. We will walk through the flow of
data from the Data Storage Layer in Vinyl to the UI Layer in Vinyl, so you can see how data can
become an application.
Vinyl Layers
These are the three layers of Vinyl: Data Storage L ayer, Business Logic Layer and the UI Layer.
Blue, Red, and Green are used to visuall y identif y the 3 different layers of V inyl.
UI Layer
Where you build the actual application and customize the user interface.
5
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Creating an Application
1) Regardless of your position in Vinyl, the Action Drawer icon will appear in the top right
corner of the page. Clicking on the icon will open a menu which can be used to navigate Vinyl.
2) Select Vinyl (IDE) to enter Vinyl’s Integrated Development Environment (IDE) where you can
reach all layers of Vinyl.
3) Once inside the Vinyl IDE, click the Build your application button under the Build menu.
4) Inside the Application Layer, click Create in the top left corner to add an application. There
will be many steps in the course where we click Create to build out the many different
components of the app.
5) Clicking Create brings you to a new page where you can create your application. Simply fill
out a name and click Save. Your application now needs a data source provided to work with.
6
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
6) Our application currently has no data. To add a Data Source to our app, go ahead and click
Create in the Data Sources panel. Here you will select the data source to connect to the app
from a list. In this example, we will select Northwinds because our Northwinds application
requires data from the Northwinds data source.
In this manual we use an example company called Northwinds and create a functional order
fulfillment application. Data for our Northwinds company is stored in the Northwinds
Database. The app we build with the Northwind database will be used to organize customers,
employees, orders, and such. We will explain the basic structure of a Vinyl application over
these next few chapters. We will do so by showing the flow of data from the Data Storage
Layer to the Application Layer, so you can see how data can become an application. This
application will barely have more initial functionality than an Excel spreadsheet, but we will
improve it as the manual continues.
7
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
The Tables and Primar y Key’s (PK’s) in the Northwinds Training Applicat ion
Creating a Table
To start, we are going to create a simple table for the application named Region, and then
manually create two records to store in this new Table. The new records we create will allow us
to differentiate the West Coast Market and East Coast Market.
8
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
1.) Regardless of your position in Vinyl, the Action Drawer icon , will appear in the top right
of the page. Click the Action Drawer to open the Action Drawer menu, and then select Vinyl
(IDE) to enter Vinyl’s Integrated Development Environment.
2.) Once inside the Vinyl IDE, click the Build your Application button in the Build menu, and
then the Data Storage Layer link on the resultant screen.
3.) Locate the database source you are working with (e.g., Northwinds) and click the Table gear
icon .
4.) Click the Create button to create a new Table. This will display a panel where you
can fill out basic information about your Table such as the Table Name. For our table, we will
name it Region and then click Save. Vinyl naming convention for Tables is always singular.
5.) Once your table is created we need to add columns to it, so we can populate it with data.
Click the Create button in the Columns panel. This will open a popup for the Column panel.
The first column to add is the first column we add to every table: the Primary Key (PK). A
Primary Key is important for every table because it is a unique identifier which ties the data
from different columns together in each record. The Region table could have different records
with the same information (e.g., same Region), so while a user on an application may identify a
Region by name, Vinyl requires an ID to uniquely identify it. Name the column RegionID
because this is the ID for the Region table.
Next review the Data Types section. For the Logical data type select Unique ID, and for the
Physical data type select UUID. The Physical data type value for a column refers to the type of
data being stored. A UUID data type automatically generates a unique 128 bit string of
characters. For example: aab52ad5-a946-44ac-91a3-0af17aab1986
You will also notice that there is a PK Settings area towards the bottom of the page. Since we
are adding the first column of a table they are defaulted to the correct settings, with
checkboxes indicating this column is considered the Primary Key. The Auto Gen field indicates
the column will be automatically generated whenever a new record is added, and the Allow
Nulls setting indicates whether null values are allowed for this column or not. With these
settings in place, the Primary Key column is complete. Click Save to add the Column to the
Table.
9
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
6.) Next, we will add a column that stores information about the Region name. Click Create to
add another Column, and name the column Region. Assign the Logical data type of String and
Physical data type of NVarchar. Click the Save button. A String data type will store any
combination of characters. This column is designed to capture and store Region name
information.
When you are finished, your Columns panel on the Table Definition page should look like the
screenshot below:
7.) Once the columns have all been added, your table structure is created but does not contain
any actual data records yet. We added the Primary Key which will differentiate our records, the
Region column which will hold descriptive information, but we haven’t yet added any records.
10
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
To add a record to your Table, click the Results button in the Table panel. This will open the
Dynamic page where you can add a record by clicking the Create button, filling in Region
information, then click the checkmark to save. Here you do not fill in RegionID because Vinyl
will auto generate this information. Add in the Region records you see below:
Table Review
Now that we have created the Region table, let’s review what we’ve done so far. We had an
empty application named Northwinds, with an empty data source named Northwinds. We
went into that data source and added a table called Region to store data on the Regions that
work with Northwinds. After the table was made, we added a Primary Key column, and a
Region column. We added the Primary Key because it is the unique identifier that will separate
each record of the Table, and we added the Region column so we could store names of the
different Region areas we want to work with. Finally, once our table and columns were set up,
we entered two data records into it (West Coast Region and East Coast Region).
Business Objects (also known as Rules) are used every time you want to modify or display data
to the user in the application. Simplistically Business Objects let you look at data in your
application. The first, most basic Rule we are going to cover is creating Source Objects. While
all the other Rules are used in some way to modify data for the user, the Business Object is the
only rule that can take data from a table and bring it to the Application layer for the user to see
and interact with it.
11
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
1. Click the Action Drawer icon and then select Vinyl (IDE).
2. Click on the Build your Application button in the Build menu.
3. Click the Business Logic Layer link.
4. Next locate your Northwinds Data Source, and click on the BOBJ icon for your Data
Source
5. Tables from your Data Storage Layer appear on the left side of the page, and Rules from
your Business Logic Layer appear on the right-hand side. Currently, the right-hand side is
empty because we haven’t built any Rules yet.
6. Click the Create button in the Rules panel to the right of your screen to create a new
Business Object
7. The page you are brought to is the Business SQL page, where you can create rules. Here we
will create a Source Object for our newly created Region table. The purpose of this object
will be to expose data from our Region table to the application layer.
Give the new Business Object we’re creating the Name Region (Source), and select the
Purpose as Business Object. The Name we assigned for this Business Object follows Zudy
standard naming conventions for rules, which is Table (Purpose/Details). The Target for this
Business Object will be Region, because although a business object may include data from
many different tables it can only modify the data of one table at a time.
12
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
9. Click the SQL icon to enter the components of your rule, where you can develop its
functionality
10. The first step to designing any rule is to add Tables to it in the Tables panel. The Tables
added here determine what data the rule can work with (as opposed to the Target of the
rule chosen when creating it, which decides what table can be modified with the rule). For
now, the only table we need is the Region table, because the purpose of this rule is to show
data from the Region table. Verify that the Region table is visible in the Tables panel. If it
isn’t, click the Create button and select it from the resultant list.
11. Next, we add the Columns that we want to display in the Columns panel. This is because
rules do not automatically show all the data from each table they contain as some tables
could potentially have hundreds of columns. For this Source business object for the Region
table, we want to display both Columns.
To add a column, click Create in the Columns panel. The first column we add will be the
RegionID Column, with a target of RegionID. When adding a column, the Column or
Expression part of it denotes what column of data from a table is supplying data, and the
Target decides what column can have data modified by this column. In this example, data
is coming from the Region table RegionID column and going to the Region table RegionID
column. Click the checkmark button to save the Column added.
To add another column, click the Create button again in the Columns panel. This time
select the Region Column and Target the Region column. When you are finished your
Columns panel should look like this:
13
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Always clicking Results after creating any Rule is part of the Vinyl methodology. Whenever
you have an opportunity to check Results in the app you’re working on, you should do so.
1. Click on the Action Drawer icon and select Vinyl (IDE) from the menu
2. Select Build your application from the Build menu
3. Click on the Business Logic Layer
4. Locate the data source you want to work with, and click on the corresponding BOBJ icon
5. Click the Table cog icon for the Table you wish to create the Source Object for
6. Click the Source button in the Actions area
7. When Vinyl finishes creating the Source Object, you will see the message “Source object
has been created”
8. Click on the Results button to check your results. This is best practice to always check.
Be sure to always check Results after creating any Source Object (or Rule for that matter).
Checking Results will allow you to quickly see if the results are what you are expecting, or if
there are any errors or unforeseen issues. If you do not check results on your Source Object (or
Rule) you will see a red “X” appear next to the Source Object or Rule. Checking the Results
turns the red “X” into a green checkmark icon.
14
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
1.) To create a List Object, go to the Business Logic page and then click to select the Category
table and Create under the Rules panel. The Name will be Category (List), the Purpose is
Business Object, and the Target is the Category table.
The Category (List) List Object. Resu lts have not been checked yet , so Status displays a red ‘x’.
2.) Enter the components of the object by clicking the SQL gear icon, where we add the tables
we need to pull data from. This is a list object for the Category table, so we only need to
add the Category table.
3.) Next, we add the columns we will need. A list object is used to create a drop-down menu
populated by the records of a Table in Vinyl. It uses the Primary Key of the table to
differentiate between the different records, and instead of the key value it displays the
contents of the Title column in the table.
For our example, we will be making a Category table list, so instead of seeing a CategoryID,
you will see the name of the Category. To do this, we need to add two columns: the
CategoryID which Targets CategoryID and the Category column, which Targets Category.
Once these are added, and you’ve checked your Results, your List Object is ready to go.
15
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
To generate a list object, the table you would like to generate it for must have a column with a
Usage of ‘Title’ selected (a usage tells the table what the column will be used for). To generate
this business object, go to the Table Definition page of your table and click the List button on
the bottom.
1. Click on the Action Drawer icon and select Vinyl (IDE) from the menu
2. Select Build your application from the Build menu
3. Click on the Business Logic Layer
4. Locate the data source you want to work with, and click on the corresponding BOBJ icon
5. Click the Table cog icon for the Table you wish to create the List Object for
6. Review the existing Columns and determine which one should be set as Title. Setting a
Column as Title means it is what will be used for the Table List Business Object drop down
menu items. Expand the Column to set as Title, click the Edit button and set the Usage
value to be Title. Click Save.
7. Click the List button in the Actions area
8. When Vinyl finishes creating the List Object, you will see the message “List object has been
created”.
9. Click on the Results button to check your results. This is best practice to always check.
16
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Category
Customer
Order
Product
Reach
Region
Shipper
Supplier
To combine two Columns into one you can use the Concatenation function (or Concat
function) in Vinyl. A Concat function uses the pipe symbols || to indicate that values (columns,
numbers, strings, etc.) on either side are separate. The single quote character is used in
between the double pipe symbols to add a space character to make the resultant information
legible. Note that a concatenated field cannot be edited at the application page layer.
In this example, the Concat function we will implement will merge the first and last name of
our Employee data into one column or field which can then be used by the application as a list
object. To accomplish this we’ll create a new Business Object rule on the Employee table.
1. Click on the Action Drawer icon and select Vinyl (IDE) from the menu
2. Select Build your application from the Build menu
3. Click on the Business Logic Layer
4. Locate the data source you want to work with, and click on the corresponding BOBJ icon
5. Select the Employee table from the Tables panel, then click on Create under Rules
6. Select the Purpose as Business Object
7. Set the Target as Employee
8. Assign the Name as Employee (Full Name List)
9. Click the Save button
10. Click the SQL icon, and click on the PK button to bring in the Primary Key value for the
Employee table, then Proceed
11. Click Create under Columns and add in the Concat function expression “E.FirstName||’
‘||E.LastName
12. Provide the Alias as FullName. No Target is required.
17
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
The Employee (Ful l Name List) Business Object SQL Definit ion
Users who have permission to read data from a table that contains Audit Information will have
permission to view Audit Data.
1. Click on the Action Drawer icon and select Vinyl (IDE) from the menu
2. Select Build your application from the Build menu
3. Click on the Business Logic Layer
4. Locate the data source you want to work with, and click on the corresponding BOBJ icon
5. Click the Table cog icon for the Category table
6. Under Actions, click the Audit button
7. When Vinyl has finished adding Audit Lite information to the table, you will see the new
audit fields appear in the Columns panel
18
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Customer
Employee
Order
OrderDetail
Product
Reach
Region
Shipper
Supplier
User
UI Layer
The UI Layer is where the developer can create and design the UI/UX for the application,
including Pages that users will use to navigate the Vinyl application. In the previous chapters,
we created a table in the Data Storage layer called Region, filled it with data, and then created
a Business Object in the Business Logic Layer to expose this data to the UI layer. Now that the
data is prepared, the last step needed to create an application out of it is creating a page on
the UI layer.
Pages in Vinyl have three components: Page, Panel, and Control. The Page is just a shell with
no data that contains a single Panel or multiple Panels. A Panel sits on top of the page and
contains data which it derives from the business object(s) you direct it to. A Control lets you
identify what specific component of data from that data source you want to display or look at.
19
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Panel Types
Panels in Vinyl can be defined as either a Single-row Panel (SRP) or a Multi-row Panel (MRP).
There are other Panel types in Vinyl, but we will not work with those in this course.
Single-row Panel - only shows information for one record at a time. In some instances, you
might use a Pop-up page with a Single-row Panel in order to show more granular data
than a page with a Multi-row Panel can display.
Multi-row Panel – shows information for multiple records
Create a Page
Let’s proceed to add in a Page to our application that will display all the Category records in
our order fulfillment app.
1. Click on the Action Drawer icon and select Vinyl (IDE) from the menu
2. Select Build your application from the Build menu
3. Click on the UI Layer button
4. This will bring you to the Applications page, where you can see all the Applications in your
instance of Vinyl.
5. Identify your app, and click on the Pages icon for your application
6. This brings you to the Pages panel where all Pages for the app appear. We haven’t created
any Pages yet, so none will appear at this stage. Click the Create button.
7. Assign the page Name as Categories. This page will show multiple records for Categories,
so we name it as a plural value.
8. Click Save
9. Click Create under Panels
10. Since we are looking to display multiple records of data on this Panel, select Multi-row
Panel (or MRP)
11. The Source Rule is where you select what Business Object you want to use to retrieve data
from, in this case we will select Category (Source). We want the Source object, not the List
object, as we’ll want to add many Controls to the page.
12. Leave the Name as Categories
20
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
16. Vinyl sets some default information based on our selection, for this Control we will leave
the defaults and click Save
17. Click the Create + button to add another Control
18. For the Column value, select Description
19. Leave the defaults set and click Save
20. Click the x icon to close out the Control designer window, and then click Run to preview
your Categories page. Note there is now a Categories Menu item in the top-right corner,
21
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
automatically created by adding this new page to the app. We’ll look at modifying a
navigation Menu later.
22
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
13. Follow the steps described previously and add in the following Controls:
a. ContactLastName
b. ContactEmail
c. City
d. State
14. Click the Run button to preview your page
Employees
Shippers
Suppliers
Products
Regions
Pop-up Pages
Pop-up pages are used in Vinyl when you want to open a new window on an existing page and
then use this window to display additional data through Controls. Pop-up pages are useful
when you want to display much more than 5-6 Controls on a Page. Pop-up pages are created
as Single Row Panels (SRP), and can contain as much data as you add, as they can infinitely
scroll vertically.
1. Navigate to the Customers page in the app by clicking on it from the main navigation
menu
2. Click on the Action Drawer icon
3. Select Add a page from the menu
4. Assign the Name as Customer. Remember our Pop-up Page is going to be a Single-row
Panel and will therefore only be showing data for one (singular) Customer record.
5. Scroll down in the Page panel and place a check under Pop. Doing this indicates to Vinyl
this new Page will be a Pop-up.
A check has been placed under Pop to indicate it will be a Pop-up Page
6. Click Save
7. Click Create under Panels
8. Since we will only be looking at one single record in this Page, set the Type to Single-row
Panel
9. For Source Rule, select Customer (Source)
10. Leave the Name as Customer and click Save
23
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
11. Click Create under Controls. On this page we will add in all Controls, since we are not
constrained by horizontal space on a Pop-up page. Pop up pages can grow exponentially
vertically. On a non-Pop-up page you ideally want to limit Controls to 5-6 in total.
12. We will want to logically group together similar data in the Controls we are adding. As a
first step we’ll add in Controls for all the Column options available, except for the
CustomerID (do not add this Column).
13. Click Run when finished adding in the Controls and check that the results are as expected
14. As a second step, we’ll look at reorganizing the Controls into more logical groupings.
Position is the value for Controls which determines order of appearance. In an SRP, the
lowest Position value shows up at the top of the Page, and the highest Position shows up at
the bottom of the Page. Position value gets auto-incremented in 10’s to make adjusting this
value easier.
If we wanted to order the Controls so that Customer comes first, then Contact, then
Location we would modify the Position values as follows:
The Position values are reworked to provide logical groupings of data on the Pop-up Page
15. Next, we will link the Customers Page to the Customer Pop-up page. First navigate to the
Customers page (if you aren’t already there).
16. Click on the Action Drawer menu and select Design this page
17. Double click to open the Customers panel, and click Edit under Link Page
24
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Upon clicking Save, the Link Criteria gets auto populated by Vinyl. The Link Criteria is what
binds the pages and determines the correct Customer record to pull up when clicking on a
link to the Customer Pop-up page.
20. Go back to the Customers page and refresh. You should now see a Pop-up icon that
appears to the right of each Customer record on the Customers page. Double clicking on
the Pop-up icon takes you to the corresponding Customer record.
Employee
Shipper
Supplier
Product
For each Pop-up Page, add every Control available to each Page, except for the Primary Key of
the table itself. After you’ve created the Pop-up Pages, link them to their corresponding MRP
Panel from the corresponding Page in the order fulfillment app.
Earlier in this manual we went over how to create List Objects for all the Northwinds tables you
may need them for. We will work with those List Objects as we edit the Primary Key UUID
controls to be List Objects instead.
1. Navigate to the Products page and click on the right chevron icon to open the Product
Pop-up page.
2. Click on the Action Drawer icon, and select Design this page
3. Double click on the Supplier ID control from the Controls panel
4. Click the Edit button
5. Change the Control Type value from Text to List
6. List Objects require you to configure information for List Control Properties:
a. Data Object – where the data for the List comes from. For this example, select
Supplier (List)
b. Key – The Primary Key control. For this example, select Supplier ID
c. Title – The actual value or information that will appear on the front end. For this
example, select Supplier
25
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
7. Modify the Name field so that it reads Supplier (instead of Supplier ID)
8. Click Save
9. Go to the application and refresh, and make sure that the Supplier control now appears as
a drop-down List Object if you go to Edit the Product page
The Supplier List now allo ws you to select Suppliers from a drop down menu
26
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
The first thing we’ll need to do is add a new Region ID column to the Employee table, and then
we will add it to the application as a List Object.
27
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
1. Navigate back to the Business Logic page, and make sure that the Employee table is
selected from the Tables panel
2. Click the SQL cogs icon for the Employee (Source) Business Object, from the Rules panel
3. Click the All button for the Employee table and then Proceed. This will bring in any
remaining columns not already added to the Columns panel. In this case, it will bring in the
RegionID column.
28
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
1. Navigate to the Employees page, and click on the Pop-up icon to view the Employee Pop-
up page
2. Click the Action Drawer icon
3. Select Design this page from the menu
4. Click Create under Controls
5. For Column, select RegionID
6. Change the Name to be Region
7. Change the Control Type to List
8. Select Region (List) as the Data Object
9. Set the Key to RegionID
10. Set the Title to Region
11. Click Save
12. Close out of the Control window by clicking the X icon
13. Edit the Position value for the Region Control so that it appears before the Employee
location information
14. If your Region value for the Employee record you are viewing is blank, click on the Edit
button and select one of the values you populated for this list from the Regions page
earlier. Make sure to go through a few more employee’s records and select East Coast for
some and West Coast for the others. This will be helpful when we get to the Reach section
in the Advanced Manual.
29
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
want the Photo to display the actual image on the page, we can change the Control Type value
and then tell Vinyl to cast the Photo control as a different data type.
1. Navigate to the Employees page, and click on the Pop-up icon to view the Employee Pop-
up page
2. Click the Action Drawer icon
3. Select Design this page
4. Modify the Position value for the Photo Control so that it is the first Control that appears on
the page. Assign the Position the value of 1.
5. Click on the Pop-up icon for the Photo Control
6. Edit the Control Type and select Image
7. Edit the Image Purpose value to be Photo
8. Click on the Business Logic icon under the Employee Panel
9. Click on the SQL icon for the Employee (Source) Business Object
10. Locate the E.Photo Control, and click the Pop-up icon
11. Under Cast Options, select the Logical Data Type as Photo
12. Click Save
13. Go back to the Employee Pop-up page in the app, refresh, and you should now see the
Employee Photo appear on the page:
14. If we want the Photo field to allow us to download it and upload a new file, click on the
Action Drawer menu and select Design this page
15. Click Create under Controls
16. Select Photo as the Column to target
17. Select the Control Type as File
18. Edit the Name to be Photo Upload
19. Assign the Position value of 2
20. Click Save
21. Go back to the Employee Pop-up page, refresh, and you should now be able to download
and upload photos
30
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
1. Go to the Employees page, and click on the Pop-up icon to view the Employee Pop-up
page
2. Click the Action Drawer icon
3. Select Design this page
4. Locate the Notes Control, and click on the pop-up icon
5. Click the Edit button
6. Change the Control Type from Text to HTML
7. Click Save
8. Go back to the Employee pop-up page in the app, refresh, and you should now see the
Notes field displays the appropriate HTML formatting. If you now Edit the HTML field, you’ll
note that there is a WYSIWYG editor available to modify content easily (e.g., bold text,
italicize text, etc.).
31
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
To make changes to these features, you do so through the Control Options panel. Settings
available through Control Options include:
6. Go back to the Param page, refresh, and you should see there is no Delete button
32
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
33
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
After we have added in a second Panel to a Page we will look at how to link the Panels so that
data viewed in the second Panel is displayed dynamically based on the record selected in the
first Panel. In the example we’ll review, we will add in an Orders Panel to the Customers Page.
When we add in the binding, the Orders Panel will display Orders data based on which
Customer record is selected from the Customers Panel.
Example of Customers Page with second Orders Panel Added and Binding to Link Pan els
34
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
The Binding Pan el and Binding Columns informat ion is config ured
8. At this point, if you go back to the app, refresh the page, and click on a Customer record
you will see the Orders panel will only show the associated Orders for the Customer record
selected.
35
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
17. Add the remaining Controls. For CustomerID and ShipperID change these to be List
Control Type rather than Text, edit their Name and select the appropriate List business
objects.
Areas of opportunity for organizing improvement include: Ship Cost and Shipper appearing
toward the top of the page, Dates grouped together, Shipping information (Address, City,
State, Zip) appearing together and toward the bottom of the page.
36
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Here we bind the higher-level Orders Panel to the l ower level Order Panel
If you refresh the Application view, the Orders panel will now have a chevron arrow icon
appear to the right of all Order line items. This icon can be clicked on and you will be taken to
the corresponding Order page and information.
37
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Panel and notice the Line Totals don’t automatically update when we change information
about the order quantity. We will correct this by adding a Refresh Rate to the Panel.
O.UnitPrice*O.Quantity*(1-O.Discount)
The Business Logic Layer where the Line Total is Added to OrderDetail (Sourc e)
18. Go back to the app and refresh. You should now see the Line Total Control appear in the
Order Details panel.
The Order Details Panel with the Line Total colum n added
39
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
8. Click Save
40
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Note: If you want to change a field from Read Only to Available, you could change the
corresponding Control State value accordingly.
Default Rules
If you want to default certain data into a new record(s) upon creating the new record, you can
use a Default Rule. For example, you may want to default the Unit Price value into a new
record being created on the Order Details panel.
Default Rules are created in the same manner in which all Rules are created, and are created
in the same area of the Business Logic Layer in Vinyl as the other Rules. The Rule Type selected
when creating a Rule determines how it can be applied and where it can be used.
In this exercise we will create an Inner Join, which is used to provide instruction on how data
should be combined from two or more tables, based on the related column between them. An
Inner Join takes all the records from multiple tables that have matching values in both tables.
Joins
When creating Business Objects in the Business Logic Layer, it is sometimes necessary to draw
against two separate tables in order to display data from both. To do this, you use a join and
join the tables together. There are three types of joins - Inner, Left Outer, and Right Outer.
41
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
The diagram on the left represents an Inner join, because it returns only the values that
exist in both tables. For example, if you inner joined the Product and Category tables,
you would only see Product records that have a CategoryID which matches one from
the Category table, and you would only see Category records with a CategoryID that
exists in the Product table.
The middle diagram represents a Left Outer join, which returns all values from table A
regardless of their appearance in table B. For example, if you left outer joined the
Product and Category tables, you would see every single Product, but you would not
see any Category records that do not have a matching CategoryID in the Product table.
The third diagram represents a Right Outer join, which is just the opposite of a left
outer. Using one or the other does not matter because you can always switch a table
from the left to the right side of the join and it achieves the same effect.
Earlier we set the Unit Price control to Read Only, so end users will not be able to edit the value
either. Let’s step through creating a Default Rule to set our Unit Price control values.
24. Click the Results button to make sure there are no errors, and you see the results you are
expecting
Business Logic L ayer Def ault Rul e to default v alu e f or Unit Price
Now if you refresh the application and try adding a new record to the Order Details panel, the
Unit Price value will default based on the Product selected. If you get a Primary Key constraint
error, you need to select a Product that is not already being displayed in the Order Details MRP
(this is because ProductID is a Primary Key and you cannot have more than one of the same
value as such).
43
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
List Retrieve
A list control allows you to look at a set of records and pull back the ID value into whatever you
are editing. List retrieve expands this functionality, as it allows you to pull back other values
from the list into whatever you are editing, such as retrieving the Unit Price from a list of
Products. We will create a List Retrieve to get the Unit Price value by augmenting our existing
Product (List) Rule to include Unit Price and then leverage that Rule from our Panel.
The Business Logic Layer where we modify the (Product List) business object
Now when you refresh the application, updating the Product will automatically reflect the
corresponding value for Unit Price.
Validation Rules
Validations are what you use when you want data to be in a certain format before it can be
stored. Validations can be applied on the table or Business Object. In this example we’ll create
a Validation Rule upon Save and apply it to a Business Object, so if you try and save one of the
Order Detail records it will validate how much the Discount is and if it’s greater than .1 it will
not allow you to save it. Note that .1 corresponds with 10%.
44
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Business Logic L ayer wher e the OrderDetail (Discount Valid ation ) Rul e SQL gets defined
45
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
Now if you go back to the application Order page and test, you will not be able to save an
Order Detail record with a Discount value greater than .1.
Val idatio n Error displays when a Discount greater than .1 is input and the record is Saved
11. Add the DiscountMaximum Column to the Param (Source) business object
12. Add the Discount Maximum Control to the Param page
13. Edit the Discount Maximum field on the Param page to provide a value. For example, enter
.2 to enforce a 20% maximum discount value.
47
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
For the purpose of learning how editing navigation menus work in Vinyl, we will edit our
navigation menu so that it only has Customers and Config (for Configuration), and Config will
be a Nested Menu containing the balance of menu items underneath it (Products, Categories,
etc.). Vinyl methodology for navigation is to have your main process page(s) listed on the top
right-hand side of the page, ancillary pages reside underneath a Configuration nested menu,
and if you have a Home page that should appear over on the top left hand side of the page.
48
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
CRUD Rules
In Vinyl, CRUD Rules are used when you want to update data in mass quantities. For example,
you could have a CRUD Insert Rule to insert records. Another example is a CRUD Delete, where
you might have a rule that deletes all the Order Details for an Order if you want to clear the
Order. In this example we will look at creating CRUD Rules to illustrate the Upper and Lower
Functions, and once we’ve created our CRUD Rules we will place them on a button. With these
rules, we will use the Employees page and have the rules change the First Name and Last
Name columns.
49
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
e. Business Layer – select if you want the rule to go through the Business Layer as it
runs (will take Validations and logic into account)
7. Select Update as the Action
8. Select Employee as the Target
9. Assign the Name as Employee (FirstName Upper Update)
10. Click Save
11. Click the SQL cogs icon
12. Click Create in the Tables panel, and select the Employee table
13. Click the PK button for the Employee table to bring in the Primary Key
14. Click Create under Columns
15. Enter the following Upper function syntax:
Upper(E.FirstName)
10. Use the Technical Help section to provide a brief description of the Action, such as
“Capitalizes the First Name field”, and then click Save
Add the Event to the Employee (Source) busin ess object so it can be used on the Employee Panel.
The black circle f ill ed in under Actions, for the UpperFirstName Event is because V inyl recognizes
there is logic on the table.
8. Click Save
51
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
52
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018
INTRODUCTION TO VINYL 2.3
53
© 2018 Zudy Software - All material and information contained within this site confidential and proprietary.
No distribution, copying, or dissemination of the contents is allowed without prior written permission.
Last Modified 9/28/2018