tim borntreger, director of client service. agenda introduction to dataforms adding & editing...

of 50 /50
Dataforms 101 Tim Borntreger, Director of Client Service

Author: camron-small

Post on 29-Jan-2016

215 views

Category:

Documents


0 download

Embed Size (px)

TRANSCRIPT

PowerPoint Presentation

Dataforms 101Tim Borntreger,Director of Client ServiceAgendaIntroduction to DataformsAdding & Editing DataformsAdding & Editing Dataform FieldsQuestions

Welcome-Another exciting year with record attendance.-Lots of exciting happenings and 2Introduction To DataformsConfigurable data management through Dataformsprovide some ofthe most dynamic and powerful capabilities embedded within ClientSpace. 3Dataform EngineDynamically create and manage configurable data collection pointsThe Dataform Schema should be carefully modeledAllows for Workflow SystemizationAllows for granular security, down to the field level

What we call Dataforms are a suite of tools that comprise the Dataforms Engine.

Dynamically create and manage configurable data collection pointsGlobal Administrators have the ability to create and maintain configurable web-based data entry forms to match their data management requirements. Using Dataforms, Global administrators can add, delete, or modify fields on existing forms, arrange and group related fields into Field Sets. Dataforms can be related to other Dataforms in a one-to-one or one-to-many relationships to each other. The configuration of these Dataforms results in a relational data model with tables and properly typed (i.e. integer, decimal, varchar) data fields embedded within the ClientSpace database.

The Dataform Schema should be carefully modeledThe Dataform Schema should be carefully modeled with the same care and strategic mindset as would be taken during the data modeling phase of any custom software development project. With careful planning and implementation, ClientSpace Dataforms can provide the tools to design and build the solution most suited to your business needs.

Allows for Workflow SystemizationGlobal Administrators can configure Field Display Logic, Business Rules, Custom Links, Template Tasks, and even Dataform Cloning to automate workflow and system automation. Well discuss Field Display Logic, Business Rules, & Custom Links later in Dataforms 201.

Allows for granular security, down to the field levelSecurity comes in many flavors throughout the ClientSpace application, Dataform security being one of them. 4Dataform EngineAdding a Dataform will add a new table to the DBFields appears as columns in the tableDataform Element Types willControl what values are acceptable to be storedControl how data will be stored in the tableForeign KeysCode Values

All Dataforms must exist within a workspace. The one exception to this rule is the designated Dataform that is associated with the Other Info tab on the Organization Detail page or the Contact Detail. Different types of workspaces may include various sets of relational Dataforms with some forms overlapping from workspace to workspace. The Dataforms that are related to a workspace are inherited from the template used to create the workspace.

Adding a Dataform will generate a new table to the databaseIn addition to creating the new database table, all the fields in the administrative Field Set are created automatically too, including the Primary Key field.

Additionally, during creation, a set of stored procedures is constructed for each Dataform. These stored procedures allow various parts of the application to interact with the tables and fields.

Fields appear as columns in the table

Dataform Element Types willControl what values are acceptable to be stored. For example, does this field accept number or letters. If numbers, should it be a decimal or an integer, and etc.Control how data will be stored in the table. Often times, the values that a user may see on the Dataform is not what is stored in the database. Certain Element Types will store a primary key that references another record stored in another table. This is known as the foreign key. Or other element types, such as a Lookup store a code value that represents the value the user users in a list when it is dropped down.5Before You BeginCareful planning is a must!What type of data needs to be tracked?How will the data be used?What relations will this Dataform have with other Dataforms?Adhere to relational database best practicesBefore sitting down to create a Dataform, it is a good idea to get an image in your mind what type of data you need to track with this Dataform, how that data will be used in ClientSpace and other systems andthe relationship between this Dataform and others in your system.

Careful planning and an adherence to best practices can save you a lot of pain and anguish down the road after the Dataform has been rolled out and data has been collected.6Adding & Editing DataformsOnce the Dataform is well thought out and designed, the first thing to do, is to add the Dataform. This process will actually create a new table in the database with the pre-determined system columns.7Adding a DataformFrom System Administration:Click Add Dataform Link

From System Administration:Click Dataform Admin LinkClick Add button

Adding a new Dataform canbe initiated one of two ways. Either by clicking the Add Dataform link directly from the System Administration view..

Or by clicking the Add button from within the Data Form Admin search dialog:

This will bring you to the Dataform Properties dialog.8Key Dataform Properties

Dataform Name:This is the name youll see through out the application.The Dataform Name field can be changed after createdTechnical Table Names areAuto-generated from the Dataform NameCannot be changed after createdTable Naming ConventionsNetwise created tables are auto prepended with gen_Custom tables are auto prepended with gen_zDisplay Name:Displayed name of the Dataform within the applicationThe Dataform Name field can be changed after created

The Dataform Name field can be changed after the initial save to provide for a more descriptive title of the Dataform. A best practice is to make the Dataform name as short as possible while still being descriptive. While you may want the title of the Dataform to read 'Family Medical and Leave Act Data', a better table name would be 'gen_zFMLA'. To accomplish this, save the form initially with Dataform Name set to FMLA, then change the Dataform Name field to the more descriptive 'Family Medical and Leave Act Data after saving.

Technical Table Names areTechnical Table Names areAuto-generated from the Dataform NameCannot be changed after created

The Dataform Engine will automatically generate a table name based on what you keyed the Dataform Name field. The technical table name is unchangeable after the initial save. Careful planning before you click 'Add will save a lot of trouble down the road when trying to build reports and logic on the table. Consider the name of a Dataform carefully, as the only way to change a the technical name is to delete the Dataform and any data you may have stored in it, and start over.

Generated Table NamesAuto prepended with gen_ or gen_z

Tables generated by NetWiseare automatically generated based on Dataform Name preceded by gen_. Custom tables created by our clients are distinguished from normal gen tables with a leading gen_z.

9Key Dataform Properties

Friendly Name:Coming soon.This is something youll really going to love!Friendly Name:Coming soon.This is something youll really going to love!10Key Dataform Properties

Dataform Group:Grouping Dataforms makes your forms much easier to search for from in the Workspace.Dataform Group: Grouping Dataforms makes your forms easier to search from in the Workspace.11Key Dataform Properties

Default Category for Attached Tasks:On creation of a Task from this Dataform, the category field of the task will default to the selected value.Default Category for Attached Tasks: On creation of a Task from this Dataform, the category field of the task will default to the selected value.12Key Dataform Properties

Default Time Tracking Category:On creation of a Time Tracking record from this Dataform, the category field of the record will default to this selected value.Default Time Tracking Category: On creation of a Time Tracking record from this Dataform, the category field of the record will default to the selected value.13Key Dataform Properties

CRM Notes:Determines if this form can have CRM Notes attached. If so, the CRM Note icon will be visible in Classic. In CSNext the Activities section will be visible in the Action Center.

CRM Notes:Determines if this form can have CRM Notes attached. If so, the CRM Note icon will be visible in Classic. In CSNext the Activities section will be visible in the Action Center.

Here is an example.14Key Dataform Properties

Comment Label Style:Mouse Over (default) - Label changes color on hover, hand appearson hover to indicate click function.Hyperlink - Label is underlined, hand appears on hover to indicate click function.Comment Label Style:Mouse Over (default) - Label changes color on hover, hand appearson hover to indicate click function.Hyperlink - Label is underlined, hand appears on hover to indicate click function.15Key Dataform Properties

Description:Put a short description of the field and it's purpose here.Description: Put a short description of the field and it's purpose here.16Extended Dataform Properties

Below the configuration fields at the top of the Edit Dataform Dialog is an array of checkboxes that allow you to further customize the Dataform and how it will be used in the system - these include:17Extended Dataform Properties

Secured:Secures the form and generates a Security Entity for the field in the format of gen_TableName. This Security Entity can then be added to Roles where permissions such as View, Add, or Edit can be assigned.18Extended Dataform Properties

Can Have Multiple:Dataforms come in two basic flavors:

TheSingle-Dataform has a one and only one instance with its Workspace. This is great for recording specifics about an individual or client where there is only ever one record per workspace

The Multi-Dataform has a many instances with its Workspace. This is great for recording multiple instances of something, such as physical locations for a client, or paycheck records for an employee.

Ticking the box will make it a multi-dataform.19Extended Dataform Properties

Search On Load:

Multi-Dataforms present as a list of records, whether this list is populated automatically when you land on the Dataform or require the user to click the 'Search' button to populate the list is a function of Search On Load property.20Extended Dataform Properties

Show Attachments Icon:

Adds the Paperclip iconto the Dataform in Classic or the Attachments section in the Action Center, providing the ability to attach files to the Dataform.21Extended Dataform Properties

Show Tasks Icon:Adds the Tasks Icon to the top of the Dataform in Classic or the Tasks section in Next in the Action Center. Tasks added from this Dataform will be linked to this Dataform.22Extended Dataform Properties

Show Notification Icon:Adds the Dataform Subscriber iconto the Dataform in Classic or the Subscribers section in Next, which allows you to automatically notify system users via email of any change to the form.23Extended Dataform Properties

Show Printer Icon:Adds the Printer Iconto the Dataform which allows you to print the form on click. This feature will likely be deprecated in the near future. Instead you can just use the browsers print command.24Extended Dataform Properties

Show Administrative fields: This will display a hidden Field Set on the Dataform containing automatically maintained database information about the form such as:ID: Primary key (pk) of the Dataform record. This is the unique identifier of the record in the database table.GUID: Globally Unique ID of the record in the database. GUIDS are unique across tables, making this a really, really unique identifier.Date CreatedCreated By UserDate UpdatedUpdated By UserWorkspace: Displays the project name the Dataform is attached to.ImportID: The ImportID is set by the system and is used when auto-updating synchronized data via file uploads, etc...25Extended Dataform Properties

Enable Time Tracking:Adds the Time Tracker iconsto the Dataform in Classic and the Time Tracker section in the Action Center. Time tracked from this icon will be linked to this Dataform.26Extended Dataform Properties

Show on Landing Page (Next):This enables this dataform so it can be found on the dataform search area on the Landing Page.27Extended Dataform Properties

Exclude from BI:BI stands for Business Intelligence. If this box is ticked then this form will not be visible in the Ad-Hoc Reporting data sources.28Extended Dataform Properties

Allow Cloning:Adds the 'Save and New' button to the add dialog, can save time when creating lots of data records manually. It also displays the Cloning icon for setting logic to trigger Dataform Cloning criteria.29Extended Dataform Properties

Use Transaction:Selecting this wraps each Dataform save operation in a transaction, insuring that should any part of the save fails, the transaction is rolled back and the save does not happen. Youll want to use this with caution.30Extended Dataform Properties

Organization (Other Info) Form:Checking this will attach this Dataform to the Organization record, instead of the workspace (Project) record. The Dataform will be visible on the Other Info tab of the Organization.31Extended Dataform Properties

Contact (Other Info) Form:Checking this will attach this Dataform to the Contact record, instead of the workspace (Project) record. The Dataform will be visible on the Other Info tab of the Contact.32Extended Dataform Properties

Suppress Child Form Dropdown:Suppresses the dropdown in the upper left of Dataform for any Parent / Child Dataform relationships.33Extended Dataform Properties

Suppress History Icon:Removes the History Icon from the Dataform. Historized Dataforms are forms that are generated (using specially coded Dataform business logic) from a former instance of the Dataform - the Employee Benefits Form in our PEO module is an example of this. See you account manager if you are interested in Historized Dataforms)34Demo: Build a DataformAdd a Client Certificates Multi-DataformRename the Dataform Name to get rid of the appended zExpose the form to workspaces by adding to the Template workspace.Sync workspace.DEMO:Add a Client Certificates DataformRename the Dataform Name to get rid of the appended zExpose the form to workspaces by adding to the Template workspace.Sync workspace.

35Adding & Editing Dataform FieldsNow that you have the container for your data, it is time to start adding the fields that will store the individual pieces of information you want to track. Dataform fields can be as simple as a few fields together on a page, or can be complex, dynamic groupings of fieldsthat hide or display based on predetermined logic. Taking the time to map out in your mind, or on a piece of scrap paper your Dataform layout will pay off in the overall amount of time you will invest in the final version of the Dataform.

36Adding Fields to a DataformFrom System Administration:Click Dataform Admin LinkSearch & Select the DataformClick the Edit Attributes button

After clicking on the System Administration gear, click on Dataform Admin from the list. Double-click on the desired Dataform from the list or search to narrow the result. Click the Edit Attributes button to display the Field List View.

37Attribute/Field List ViewAttributes are more commonly referred to as Fields.Provides a listing of all fields on the DataformAllows for editing Dataform layoutColumn 1 = left side and Column 2 = right sideMulti Column controls which fields will be displayed in search results on multi-dataformsClicking on the Field Name displays Field Properties

Best Practice:Increment your rows by 5 or 10Restart numbering sequences within each Field SetDataforms are comprised of attributes or fields designed to organize and store information in a usable format.The field list will display all fields, within Field Sets, that are contained on the Dataform. Some of the properties of the fields can be set on the list page. However, most of the properties can be edited only by opening the field properties page.

Field Label (or Field Set Label): The field label will be displayed on the Dataform. Click on the field name to open the Field Properties page. Hovering the mouse over a field label will display additional information about the field. Such as the Table Name and Field Name.

Row: The row property determines the vertical ordering of fields and field sets. Fields that are within a field set areordered within that field set. Though the sort uses a standard numeric order, it is recommended that rows are initially set in increments offive. This allows for re-orderingfields or adding fields between rows without re-ordering the entire form.

Best Practices for field layout Leave space between your field rows in the numbering schemeshould you need to add more fields later (i.e. 5,10,15 etc...) Restart numbering sequences within each Fieldset to visually group the data elements together

Column: The column property is hard coded to dictate a two column format. Selecting column 1 will put the field in the left column; while 2 will put the field in the right column. Placing a field in column 2 even though there is not a field placed in column 1 will display the field on the left.

Multi Col: This column will only appear if the Dataform has the Can Have Multiple property selected. It is used to determine the fields that are shown in the search results list page of a multi-Dataform. A value of zero in the field will indicate that the field is not shown in the search result columns of the multi-dataform record list. Values greater then zero are shown on the list based on the number entered into the multi col field. The lowest numbered field in the Multi Col is used as the sort criteria for the list of records.

Required: This property can only be set from within the field properties page. When checked, the field must be completed in order for the Dataform to be saved.38Example Dataform Layout

This image shows a simple Dataform layout with the fields grouped in the Attorney Information Fieldset, this is shown side by side with the actual Dataform. Note that some data types occupy two columns in order to accommodate the nature of their presentation.

Lets drill in to the field properties window and learn more about some of the popular element types.39Field PropertiesProperties vary by Element TypesElement Types have built in data validationSome Element Types allow for configurable validationsElement Types are also referred to as Data Types

The Field Properties page contains all configurable properties of a Dataform field. The available properties and their behavior vary somewhat based on the Element Type. Not all properties are relevant to all Element Types.

The Element Type also controls the type of data that can be stored in the field (i.e. text, integers, decimal, dates, bit, and etc) and/or the interface that the user is given to view and edit the field. Basic validation to ensure proper data is entered into the field is built into each Element Type.

Additional validation can be setup in the field properties to govern the field length, minimum and maximum values, mark the field read only or required.

Lets look at some of the common Element Types.40Common Element TypesDate (datetime)Lookup (text)Field Set (no SQL field)Checkbox (bit) Integer (integer)Decimal (decimal)Money (decimal)Percent (decimal)Parent Form (foreign key) Text (varchar)Text-Wide (varchar)TextArea (text) Log (text)

There are over 30 Element Types that come with the ClientSpace application. Additional Element Types are often added upon request to handle unique data capture, validation, or user interface requirements. Here are some of the most commonly used Element Types.41Basic Field PropertiesField Label What the user will seeField Name Name seen from the DB viewRow Vertical PositionColumn Horizontal PositionComments Help Text

Field Label (or Field Set Label):The field label will be displayed on the Dataform to be seen by the User.

Field Name: The name of the field that is created on the table. By default, the field label is stripped of its spaces and special characters and used as the Field Name. The field name can be overridden as needed and can be set to anything that is accepted by SQLServer as a valid field name.Duplicate field names are not accepted. Once the field is saved, the Field Name CANNOT be changed. So be sure to carefully map out your field naming standards prior to creating Dataforms.NetWise utilizes a standard naming convention when naming field based on the Element Type of the field and it is a recommended best practice to utilize these same conventions in your own field names. To learn more about these naming standards please refer to the Dataform Field Naming Standards document on the KnowledgeSpace.

Row: The row property determines the vertical ordering of fields and field sets. Fields that are within a field set areordered within that field set. Though the sort uses a standard numeric order, it is recommended that rows are initially set in increments offive. This allows for re-orderingfields or adding fields between rows without re-ordering the entire form.

Column: The column property ishard coded to dictate a two column format.Technically, you are able to select the same row and column for more than one field and they will align alphabetically. This will generally cause problems inthe presentation of the Dataform to the user.

Comments: The text entered into the comments act like online help for Dataform users. When Comments are added to any Dataform field, the field label on the Dataform will act as a hyperlinkdisplaying the Comment text in a popup.

Lets look at the extend field properties.42Extended Field Properties

Below the field properties is an array of checkboxes that allow you to further customize the field and how it will be used in the system - these include:

Make Required: This field is required to be completed prior to saving the Dataform. Do not make a checkbox required as you will always have to set it to 'checked.

Read Only: When checked it will ensure this field cannot be edited. This setting will supersede any Dataform security.

Form Searchable:Applies to Multi-Dataforms only. If ticked then then this field will be shown as a Search parameter.

Secured: Secures the field and generates a security entity for the field in the format of gen_TableName_FieldName. More in-depth training on this feature will be covered in a later session.

Audit this field: Selecting this will make the field auditable. This allows administrators of the Dataform or Global Administrators rights to see when, who, and before and after values when fields are updated. This feature should be used sparingly.

Allow Dataform Notification:This fieldwill the field be included in a Dataform Subscription Notifications.

Is Downloadable: If the user has access to the Download button in Classic, this field will be included in csv when they click the 'Download button. This feature will not be available in Next. Ad-hoc reports can be used instead.

Hidden: This feature is available for Field Sets only. As an alternative to setting fields as inactive, it is common practice to create a new Field Set called, Hidden Fields and make it hidden. Any fields in this field set will still be active in this system but hidden from view.

Active Sets whether the field appears on the Dataform or not. De-Activating a field is preferential to deleting it, as deleting the field removes it from the underlying SQL table and erases the data, by de-activating you retain the data for later use.

Let's look at a few examples of the common Element Types in order to get an idea of the different options for Dataform field configuration.

43Element Type: Field SetField SetKeeps related fields groupedField Sets can go inside another Field SetPrefix Field Name with fs

To help keep Dataforms organized and group related sets of fields they can be added to a Field Set. A box is drawn around all fields with the Field Set. Once a Field Set is created fields can be added to it. It is possible to even put a Field Set inside another Field Set.

44Element Type: Lookup (core)Lookup GroupMetadataPrefix Field Name with lu

Lookup Group: Fields that use the Lookup Element Type appear as a drop down list. The values the user can choose from are joined together within a Lookup Group. The Lookup Group is then associated with the Lookup field when it is configured. Using Lookup Groups simplifies the process of assigning values to a given field since many fields can use the same Lookup Group.

Lookups should be prefixed with a lower case lu. lu stands for Lookup.

Heres an example.45Element Type: Money, Percent, DecimalMask (decimal only)Search OperatorMinimumMaximum

Mask: Certain Element Types have multiple ways of being presented, such as dates (mm/dd/yyyy or yyyy/mm/dd) or decimal (number of decimal places). Some Element Types automatically control the mask. For example, a Money Element Type will enforce two decimal places and a dollar sign. Once a Mask is set and data exists in this field, the Mask cannot be changed.

Search Operator: Determines how the field can be searched on the multi-form searchpages. Between and Equal operators are your only choices. Between searches allow the user to enter a from and to value to find everything between the values. An Equal operator searches for all records that match that criteria.

Minimum/Maximum: Defines the minimum and maximum value that can be entered into the field.46Element Type: IntegerLengthSearch OperatorMinimumMaximum

Length: Defines the maximumlength of the field entry. Thisproperty is valid for text and integer data types.

Search Operator: Can use Equal or Between

Minimum: Limit the smallest valid number.

Maximum: Limit the largest valid number.

Here is an example47Element Types: Log, Text Area, Text-Wide, TextNo special properties

No special properties

Lets look at an example of each48Element Type: DateDefault To Current DateSelect a MaskShould be named DateDOB

Default to Current Date: Only available on Date fields, defaults field on save. Similarly, using the Time Element Type has a Default to Current Time property.

Mask: The Mask property is available on this data type too.

Prepend Date fields with the word Date.

Lets look at an example.49Element Type: CheckboxPrefix Field Name with the word Is, Has, or Can

Checkboxes store a Boolean value (True/False, Yes/No, 1/0), so they should start with the word Is, Has or Can, depending on what sounds more correct. For example: IsPrimaryLocation. If Ticked the database will hold TRUE and if unticked then it will hold FALSE.

Lets look at an example checkbox. 50Element Type: File Upload Manager - DatabasePrefix Field Name with sf

File Upload Manager fields should be prefixed with a lowercase sf. sf stands for Secure File.

Lets look at an example field.51Element Type: Parent FormBuilds Relationships between Dataforms1 to 11 to ManyThe primary key of the parent record is stored on the child record.

Parent - Child relationships between Dataforms allows you to build a fully relational structure to your ClientSpace Information, knitting Dataforms together to create a data structure that mirrors the real world. An example of this, can be found on our Employee record which has only one Benefit record. In database administration this is known as a One to One relationship, one benefit record, and one employee record. This ability to dynamically associate data together in a cohesive structure is one of the most powerful capabilities of the ClientSpace system.

There are also 1 to Many relationships too. An example of this could be an invoicing system. A single invoice can have several payment applied to it.

Just because a dataform is a multi-dataform does not make it a one to many relationship. Multi-dataform just means that a workspace can have more than one record. One to One and One to Many for Parent forms is strictly related to how the two tables will be related for a given record.

Parent Form fields are always added from the Child form so in our example above, there would be an Employee field on the Benefit record. To build relationships between these two Dataform, whether its a one-to-one relationship or a one-to-many; you need to use the Parent Form Element Type.

In a one-to-one relationship, each parent record can be related to only one child record. This commonly is configured in a tabbed layout. If configured with a Dataform header link it would open that record.

In one-to-many relationships, parent records can be related to multiple child records. This is commonly configured with a Dataform header link in the Parent Dataform to the child Dataform. The link would display of a list of records to drill into.

The primary key of the parent record is stored on the child record. This is known as a foreign key

52Element Type: Parent FormParent FormOne To OneUncheck = many child recordsForm Link NamePrefix with fkSuffix with ID

Parent Form: The name of the Parent Form were linking to.

One to One: (unchecked means we can have many employment records). In this example, we are saying that an employee an only have one employment record.

Form Link Name: This is value that references the Child Dataform in the Related Dataform drop down list found in the upper left of the Parent Dataform in classic only. Its very common to suppress the Related Dataform list and instead configure a Custom Header Link to open the child form instead.

On these parent form datatype fields the system actually stores the ID of the parent form record. This is what is called a Foreign Key so we would use a standard naming convention for this field of fk (foreign key) Employee (Dataform name) ID or fkEmployeeID.

53Demo: Add Fields to a DataformStatus (Active, Expiring Soon, Expired)Certificate UploadGeneral Liability checkbox & Policy Number fieldWork Comp checkbox and Policy Number field

Effective and Expiration DatesNotes Log Renewal Certificate Requested On and By fields. Place in a Field Set.Client Insurance Certificates Fields 20 minutesStatus lookup (Active, Expiring Soon, Expired)Certificate Upload as File Upload fieldPolicy Information as a Field SetGeneral Liability as a checkbox fieldWork Comp as a checkbox fieldGL Policy Number as Text fieldWC Policy Number as Text fieldEffective Date as DateExpiration Date as Date Notes as a LogRenewal Certificate Request Information field setRequested On date fieldRequested By user field

54