App Building Guidelines



Similar documents
How To Use Query Console

CMS Training Manual. A brief overview of your website s content management system (CMS) with screenshots. CMS Manual

Content Management System User Guide

UOFL SHAREPOINT ADMINISTRATORS GUIDE

Tips and Tricks SAGE ACCPAC INTELLIGENCE

Go Kiwi Internet Content Management System Version 5.0 (K5) TRAINING MANUAL

Quick Start Guide Mobile Entrée 4

Migrating to Excel 2010 from Excel Excel - Microsoft Office 1 of 1

Generating Open For Business Reports with the BIRT RCP Designer

Site Configuration Mobile Entrée 4

Password Memory 6 User s Guide

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1

Settings 1 September 2015

DiskPulse DISK CHANGE MONITOR

What is OneDrive for Business at University of Greenwich? Accessing OneDrive from Office 365

Chapter 14: Links. Types of Links. 1 Chapter 14: Links

Installing Lync. Configuring and Signing into Lync

Getting started with OneDrive

7 Steps to Successful Data Blending for Excel

Version USER GUIDE

Sage Accpac ERP 5.6A. CRM Analytics for SageCRM I User Guide

Dell SonicWALL SRA 7.5 Secure Virtual Meeting and Secure Virtual Assist

Microsoft Office 365 includes the entire Office Suite (Word, Excel, PowerPoint, Access, Publisher, Lync, Outlook, etc ) and an OneDrive account.

How to Create and Send a Froogle Data Feed

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1

Hypercosm. Studio.

TIBCO Spotfire Automation Services 6.5. User s Manual

2013, Active Commerce 1

Webmail Instruction Guide

Content Management System Help. basic tutorial on Evergreen s CMS

Support/ User guide HMA Content Management System

PASTPERFECT-ONLINE DESIGN GUIDE

Adobe Dreamweaver CC 14 Tutorial

Office 2013 files: Storing, accessing and sharing on the network and the cloud

Introducing our new Editor: Creator

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

How to Edit Your Website

ACS ChemWorx User Guide

Technical Support Set-up Procedure

E-Commerce Installation and Configuration Guide

BT MEDIA JOOMLA COMPONENT

CONVERSION GUIDE PPC s Engagement Manager to Engagement CS

darlingharbour.com Content Management System Tenant User Guide

Updating KP Learner Manager Enterprise X On Your Server

Teamstudio USER GUIDE

TRANSFORM YOUR MEDE8ER TV WALL FROM THIS: TO THIS: LIBRARY VIEW SHOW VIEW SEASON VIEW FULL SYNOPSIS AND INFO

Resource Optimization Settings New to 9.5: Cache Data for Relational Databases Select Tool & Filter Tool: Optimize by Reducing Data...

Qsync Install Qsync utility Login the NAS The address is :8080 bfsteelinc.info:8080

Creating Online Surveys with Qualtrics Survey Tool

Work with the MiniBase App

Business Objects InfoView Quick-start Guide

An Oracle White Paper May Creating Custom PDF Reports with Oracle Application Express and the APEX Listener

CREATING AND EDITING CONTENT AND BLOG POSTS WITH THE DRUPAL CKEDITOR

USER GUIDE MANTRA WEB EXTRACTOR.

Novell ZENworks 10 Configuration Management SP3

ITP 101 Project 3 - Dreamweaver

Installing and Running the Google App Engine On Windows

CUNY TUMBLEWEED (SECURE TRANSPORT) USER GUIDE

Getting Started with Access 2007

Table of Contents. OpenDrive Drive 2. Installation 4 Standard Installation Unattended Installation

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

Important Release Information and Technical and Deployment Support Notes

COGNOS Query Studio Ad Hoc Reporting

Google Apps Migration

Dreamweaver CS6 Basics

E-Commerce Installation and Configuration Guide

Bulk Downloader. Call Recording: Bulk Downloader

EMC Documentum Webtop

Building A Very Simple Web Site

Enhancing the SAS Enhanced Editor with Toolbar Customizations Lynn Mullins, PPD, Cincinnati, Ohio

Getting Started with Dynamic Web Sites

1. Digital Asset Management User Guide Digital Asset Management Concepts Working with digital assets Importing assets in

How To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For

Content Author's Reference and Cookbook

COGNOS 8 Business Intelligence

The United States Office Of Personnel Management eopf System Administrator Training Manual for eopf Version 4.0.

Image Galleries: How to Post and Display Images in Digital Commons

Document Manager 2.0. Corporate Administrator Guide

Designing and Implementing Forms 34

Joomla! template Blendvision v 1.0 Customization Manual

SnapLogic Tutorials Document Release: October 2013 SnapLogic, Inc. 2 West 5th Ave, Fourth Floor San Mateo, California U.S.A.

Litigation Support connector installation and integration guide for Summation

WatchDox for Mac User Guide

Master Data Services. SQL Server 2012 Books Online

Create Database Tables 2

AssetWise Performance Management. APM Remote Upgrade Guide

DCA. Document Control & Archiving USER S GUIDE

Advanced Aircraft Analysis 3.6 Network Floating License Installation

Migrating helpdesk to a new server

MICROSOFT ACCESS STEP BY STEP GUIDE

Virtual Exhibit 5.0 requires that you have PastPerfect version 5.0 or higher with the MultiMedia and Virtual Exhibit Upgrades.

Data Crow Creating Reports

WESTERNACHER OUTLOOK -MANAGER OPERATING MANUAL

JTouch Mobile Extension for Joomla! User Guide

Content Management System User Guide

Business Intelligence Tutorial

Chapter 12 Creating Web Pages

How to test and debug an ASP.NET application

Life after Microsoft Outlook Google Apps

Transcription:

App Building Guidelines

App Building Guidelines Table of Contents Definition of Apps... 2 Most Recent Vintage Dataset... 2 Meta Info tab... 2 Extension yxwz not yxmd... 3 Map Input... 3 Report Output... 3 Reading / Writing Files, Including Using Macros in an App... 4 %temp%... 4 Prohibited Tools and Events... 4 Unsupported App features for web... 4 Best Practices for Building Apps... 5 Actions -> Update/Change Value -> Replace a specific string... 5 Updating Detours... 5 Ending Detours... 5 Using the Error Message Tool... 5 Issuing Errors using the Message tool... 6 Updating raw XML, escaping HTML Metacharacters... 6 Allocate Variable Trees... 6 The Union Tool... 7 Tool Containers and App Organization... 7 Annotations for modules/apps... 8 Macro Specific Guidelines... 8 Macro Inputs... 8 Naming Tabs... 9 Supporting Macros... 9 2014 Alteryx, Inc. Page 1 Version 1.8, 4/8/14

Definition of Apps An Alteryx Analytic App is a self-contained program that performs a specific function for the user. The interface must be simple and the App designed with a single goal in mind. The App should perform a limited range of tasks, focused on an optimal user experience. Considering that users are running the Apps you are building in a web browser, the back-end design needs to be clever, elegant and efficient. Most Recent Vintage Dataset When authoring an App which uses a specific dataset, the selected dataset should be set to use the Most Recent Vintage version of the dataset. This means that Alteryx will automatically use the latest version of the dataset that is installed on the user s computer. This applies to Demographic Analysis tools (Allocate), Behavior Analysis tools (Solocast), Calgary tools, Drivetimes, Geocoder or for the Reference Base Map in the mapping tool. For example: Meta Info tab All of the information entered in the meta info tab will display in the App details on the web. There are quite a few things to fill in on the Meta Info tab of the Module Properties window. Custom Give the App a friendly name, for example the App file itself may be called Download_Weather_Data then the custom name would be the same but without the underscores, Download Weather Data. Description The description that is entered here will be the description that gets shown on the web for the app, so please make sure it is an accurate description and is user friendly. URL - The URL field provides the ability to include a link to an external website. Author Provide the details of the Analytic Application creator. o Name, Vintage (YYYY.Qtr) o Company o Copyright 2014 Alteryx, Inc. Page 2 Version 1.8, 4/8/14

Extension yxwz not yxmd When authoring an app, make sure you have actually saved the file as an yxwz file even if you first saved your module as an yxmd and then changed the module type to Analytic App. If the file extension is left as an yxmd then when you double click it won t open as an App but just as a module. Note: Apps created in 9.0 can no longer be saved as *.yxmd files. Map Input The Map Input tool gives the App consumer the ability to select a location or draw a polygon or line using the map input feature. Map questions should be short but descriptive and a base map should always be used. When choosing a base map, make sure you select Most Recent Vintage. Finally, if Draw mode is selected, ensure User Can Label Features is always checked. This gives the user the option to add a name to each of their custom polygons. Report Output When publishing an App to the web if the output of the report is rendered as PCXML, the application provides the option for the end users to not only preview the report on the web, but to also download the report in any of our supported report formats. Supported report formats include; PDF, Microsoft Word, Microsoft Excel and HTML. When authoring an App the output can be any of our supported report formats, to utilize PCXML set the Output Mode in the Render tool to Choose a Specific Output File, and for the Output File use Name of the App.pcxml, for example Geography Analysis.pcxml. Note: When previewing a report in PCXML you will not see footers, but they will be available when downloaded as a PDF, Word or Excel document. 2014 Alteryx, Inc. Page 3 Version 1.8, 4/8/14

Reading / Writing Files, Including Using Macros in an App For web Apps you will only be able to read and write to files that are within the same folder as your App or a lower down folder, i.e. Any folder that is within the folder that contains the app. (Can be more than 1 level down.) This rule will also apply to Macros that you wish to use for your App, unless it is a standard macro which is part of the Alteryx product installer or a data installer. %temp% When developing an App to be published to the web, do not use the shortcut %temp% to write to the temp directory. You will encounter an error when trying to publish to the web. Keep all file paths with the module. If developing a chained app, it is especially important to use only the file name rather than any file path (e.g.: fileoutput.yxdb and NOT %temp%\fileoutput.yxdb or something similar. Prohibited Tools and Events The following tools and events are prohibited in applications published in the Analytics Gallery. o o o o o Download tool Email tool R tool Run Command tool Run Command and Email events (from Events tab in Module properties) If you have a good reason to need to use one of these tools or the events option, then you may apply for an exemption, which will allow your App to run. More information on applying for an exemption can be found here: http://gallery.alteryx.com/#!exemption Please note that the Predictive Macros included with the Designer Desktop which use of the R tool are allowed in the Analytics Gallery. Unsupported App features for web The following are not supported in the Analytics Gallery web environment. Folder Browse File Browse (Save as). Upload works fine on the web. If an App throws any errors in the Desktop environment, it will not be able to be published to the web. 2014 Alteryx, Inc. Page 4 Version 1.8, 4/8/14

Best Practices for Building Apps Actions -> Update/Change Value -> Replace a specific string When using the Action tool to Update/Change Value, unless actually needed, don t use the Replace a specific string: option. If you change the tool configuration in your module due to continued development, you may end up breaking that action tool, because that specific string may no longer exist. Obviously there will be times when you need to use that option but just bear in mind that if you change that string in the tool then you may need to also update the action tool. Updating Detours If you are using an Action tool to update a detour try to be complete and update the detour for both possibilities, i.e. detour left and detour right. Otherwise if you just update for the one condition and you change the module while developing then you haven t accounted for when you need the module to go the other way. Ending Detours All detours must end, especially before joining any data streams from a detour to anywhere else in the module. Detour End tools require no configuration, so they are easy to use. Make sure you use them, or end the detour with an Output tool. Using the Error Message Tool When writing questions, consider your user by anticipating common mistakes. You should be issuing error messaging using an Error Message tool. For example if the user must select an option, then throw an error when they don t select anything, this can avoid the engine throwing errors which may not be meaningful enough to the user to understand how to fix an error. Ideally have a throw error for every question that the user needs to fill in. You can also do more complex conditions to make sure they have filled things in correctly. For example, if they need to fill in a text box with up to 5 trade areas separated by commas (for example 1, 2, 3, 4, 5), you could use a regex condition to make sure there aren t more than 4 commas in the text box. 2014 Alteryx, Inc. Page 5 Version 1.8, 4/8/14

Issuing Errors using the Message tool Along these same lines, try to anticipate cases where the App may fail even when configured properly. For instance, the user may enter in an address that fails to geocode and renders no results. You can easily handle messaging in your App by Filtering bad geocodes and then use the message tool to return a message to the user: "The address you have provided did not geocode. Please check the address is valid and make appropriate changes to it or enter a different address and re-run." Updating raw XML, escaping HTML Metacharacters If you are updating raw xml for a tool or using special characters in your Apps then bear in mind that on the web this may not work as anticipated. For example a DropDown/ListBox Selection on the engine could contain text such as: Age By Sex Summary Report:<Report Type= summary >Age By Sex Summary Report</Report> Basic Demographic Summary Chart:<Report Type= summary >Basic Demographic Summary Chart</Report> But when this is used on the web it will not actually display the question correctly and therefore when this gets used in an action it will probably not have the desired effect. A solution is to change the text to be: Age By Sex Summary Report:<Report Type="summary">Age By Sex Summary Report</Report> Basic Demographic Summary Chart:<Report Type="summary">Basic Demographic Summary Chart</Report> Then if you are using the question response in an action you will need to update it to be: EscapeXMLMetacharacters([AllocateSummaryReport]) The Escape XML Metacharacters function was added to the Formula Library in version 8.0. You can access it from the Specialized category. This function will replace all XML metacharacters with their escaped versions. Allocate Variable Trees The web and the engine return different values when an Allocate variable tree is left empty. If the App has an Allocate variable tree as a question type then you may want to write a condition which checks if the user selected anything or left this empty. For the engine you could write something like: [AllocateVariables] == "<Variables />" Because when the variable tree has nothing selected <Variables /> is returned. However on the web the value returned is actually nothing, so you would need the condition to be: isempty([allocatevariables]) Obviously we want the Apps to work on both the web and the desktop so the condition actually needs to be: 2014 Alteryx, Inc. Page 6 Version 1.8, 4/8/14

[AllocateVariables] == "<Variables />" or isempty([allocatevariables]) If we are also worried about using the <, > and / characters on the web then we could change the condition to be: REGEX_CountMatches([AllocateVariables], "Variables") == 1 or isempty([allocatevariables]) The Union Tool It is best to keep manually configured Union tools out of any App because in most cases, the module changes at runtime. Instead of configuring the Union tool in manual mode, insert Select tools into each connection feeding into the Union tool. When configuring the Select tool, rename and reorder fields as necessary taking proper care to NOT include Dynamic/Unknown fields. Configure the Union tool using either Auto Config by Name or Auto Config by Field. Tool Containers and App Organization App organization is done in part by using different tool containers for different sections of the app. Tool containers can be color coded based on the function they are highlighting. For example, all the reporting tools are typically the last section of an App. Color-coding tool containers make it easier to understand what an app is doing, especially when viewed at a small zoom. This is helpful when troubleshooting or de-bugging an app that someone else has authored. Interface tools should be placed in their own containers and color coded as such. For multi-tabbed apps, we have found it helpful to place the tools that make up each tab in their own container. 2014 Alteryx, Inc. Page 7 Version 1.8, 4/8/14

Annotations for modules/apps Annotations are text boxes that are attached to a specific tool and can be very helpful in describing the role for individual tools. One major benefit is if you move the tool, the annotation moves with it. Under the module/app properties, set the Annotations to Show. If needed, you can also set individual annotations to be placed on either the top or bottom of a tool. This can be achieved by clicking on the tool, then clicking on the Annotation setting, then selecting or deselecting Place Annotation on the Top. Macro Specific Guidelines All previous guidelines apply to Macros as well as Apps, with the following exceptions that apply only to Macros. Macro Inputs Macro Inputs should include data. The inclusion of data makes it so much easier to troubleshoot or debug if something goes wrong. There is a text input embedded inside the Macro Input tool. This is the preferred method for macro inputs. If you need a bigger file to serve as the data input, it should be included with the macro where possible. Data file dependencies for a macro should be named as such: NameOfMacro.NameOfDataFile.yxdb 2014 Alteryx, Inc. Page 8 Version 1.8, 4/8/14

Input and Output Names should not have a tool number associated with them. From the Macro Input Properties tab, ensure the name is descriptive enough. The Name specified here will be visible to the user when they configure the Macro tool. When there are multiple inputs and outputs adding an abbreviation will help the user configure the tool: Naming Tabs Tab names should be descriptive for ease of use while the user is configuring the macro tool. Tabs will be visible to the user at configuration time. The default Tab name is Questions not a very descriptive name and this is usually an oversight when developing a macro (or app) with a single tab. Supporting Macros Supporting Macros used in a parent module should be present with the parent macro or in a supporting directory and named as such: NameOfParent.NameOfSupporting.yxmc 2014 Alteryx, Inc. Page 9 Version 1.8, 4/8/14