This shows you the differences between two versions of the page.

Link to this comparison view

think in technical terms [2016/09/14 14:19] (current)
Line 1: Line 1:
 +====== Think in Technical Terms ======
 +WorkXpress is based on a very simple concept; that you know your business better than anyone. ​
 +But in order to actually build software, you will have to learn to think of your business as combinations of five fundamental types of building blocks. As you answer these 5 questions, and as you recognize that each one corresponds to a building block type, you are successfully beginning to think technically!
 +  * What do you want to track? ("​Tables!"​ {{:​wxwiki:​concepts:​red_block.gif?​nolink&​16|}})
 +  * What do you want to know about the things you are tracking? ("​Fields!"​ {{:​wxwiki:​concepts:​orange_block.gif?​nolink&​16|}})
 +  * How are the things you are tracking connected? ​ ("​Relationships!"​ {{:​wxwiki:​concepts:​green_block.gif?​nolink&​16|}})
 +  * What web interfaces do you want your users to use?  ("​Forms!"​ {{:​wxwiki:​concepts:​blue_block.gif?​nolink&​16|}})
 +  * What do you want the computer to do automatically? ​ ("​Actions!"​ {{:​wxwiki:​concepts:​yellow_block.gif?​nolink&​16|}})
 +==== Track Things Using Tables and Records ====
 +For example: In Bob's business, he tracks contacts, accounts and products. ​ Bob would create three tables; Contacts, Accounts and Products. A specific Contact, "Jane Doe", would be a Record in the Contacts Table.
 +Definition: "​Records"​ are specific people, places, and things you are tracking in your application. ​ Records of the same type are grouped together into "​Tables"​. Tables are the red building block.
 +Steps: First Create a Table, then create specific records within that Table.
 +More Table Examples:
 +  * Contact ​ (a record in this table might be "Jane Doe")
 +  * Account ​ (a record in this table might be "Acme Company"​)
 +  * Task   (a record in this table might be "​Pickup Groceries"​)
 +  * Project ​ (a record in this table might be "​analyze last quarters sales results"​) ​
 +  * Part  (a record in this table might be "Q9042 - Left Assembly"​)
 +  * Appointment ​ (a record in this table might be "9:00 - 10:00, meet with Tom")
 +  * User  (a record in this table might be "​Smith,​ John")
 +  * Group  (a record in this table might be "​Administrators"​)
 +==== Information about Records are stored by Fields ====
 +For example: Bob wants to track details about his Contacts like their name, address and description. ​ So, Bob creates three fields in his Contacts Table; a short-text field called "​Name",​ an address field called "​Address",​ and a long-text field called "​Description"​.
 +Definition: ​ Fields store data that describe Records. Fields are the orange blocks.
 +Steps: Create Fields within a Table to store and display details about a Record. ​
 +More Field Examples:
 +  * Name (a Short Text Field)
 +  * Birthdate (a Date Field)
 +  * Description (a Long Text Field)
 +  * Cell Number (a Phone Number Field)
 +  * File Attachment (a File Upload Field)
 +  * Social Security Number (a Social Security Number Field)
 +  * Status (a Selector Field)
 +  * On/Off (a Checkbox Field)
 +  * Assigned To (a Selector Field configured to point at the User Table)
 +====== STOP! Review Tables and Fields ======
 +In the example below, Bob wants to create a Table called "​Contacts"​ to track specific Contact Records. ​ To describe those Records, he also creates Fields within the Table.
 +This is what he needs to create:
 +{{ ::​project-1-11.png |}}
 +==== Connect Records Using Relationship Blocks ====
 +For example: Bob knows that certain accounts are actually "​employers"​ of certain contacts. The connection is an "​employer to employee"​ connection. ​ Bob wants his software to indicate which Contacts are employed by which Accounts. ​ Therefore, Bob creates a Relationship Table from his Accounts Table to his Contacts Table called "​employer to employee"​.
 +Definition: A Relationship Table is a group of similar Relationships (Similar to how a Table is actually a group of similar Records). Relationships connect two different Records. ​ Relationship tables are the green block.
 +Steps: Create a relationship table between two or more tables. ​ Then, you can create specific relationships.
 +More relationship table examples:
 +  * Connect Accounts to Contacts via an "​Employer to Employee"​ relationship table
 +  * Connect Accounts to Users via an "​Account to Assigned Salesperson"​ relationship table
 +  * Connect Parts to Products via a "​Component Parts to Product"​ relationship table
 +  * Invite Users to an Appointment via a "​Invited Users to Appointment"​ relationship table
 +  * Invite Users to an Appointment optionally via an "​Optional Invited Users to Appointment"​ relationship table
 +  * Make Notes about a Patient via a "Notes to Patient"​ relationship table
 +  * Store Time Sheets about Project via a "Time Sheets to Project"​ relationship table
 +====== STOP! Review Tables and Relationships ======
 +Bob realizes that his application needs to show which Accounts employ which Contacts. ​ He knows he needs to create a relationship table called "​employer to employee"​ between the Account and Contact table. ​ He knows that specific Relationships will later connect specific records.
 +This is what he needs to create:
 +{{ ::​project-2-2.png |}}
 +==== Screens become Form Blocks ====
 +For example: ​ Bob wants to show a page about an Account. ​ On that page, he wants (1) general information about the account, and (2) a list of employees of that account. ​ Bob creates a page, puts a Field Grid Form at the top to show general account information,​ and then puts a List Form underneath to show the list of employees.
 +Definition: Screens organize how your application presents information (i.e. how it presents Fields). Screens become blue Form blocks.
 +Steps: On a Page, add a Form Block. ​ Within the Form, add Fields.
 +More Form Examples Include:
 +  * __Field Grid__ populated with Fields about an Account
 +  * __Field Grid__ used to add Notes
 +  * __Field Grid__ used to edit Notes
 +  * __List__ populated with Employees, and Fields about Employees
 +  * __Calendar__ populated with Appointments,​ and Fields about Appointments
 +  * __Tree__ populated with a list of Companies, where each Company expands to show its Employees
 +  * __Tab__ form that allows the user to choose different tabs, one with a list of Contacts, another with a list of Accounts
 +  * __Parent__ form that allows 3 Field Grids and a List to be edited all at the same time, but separately from the rest of the page
 +==== Automation, Rules and Workflow become Action Blocks ====
 +For example: ​ Bob knows that whenever an account record is updated, he wants to send an email to that accounts sales person notifying them of a change. ​ Bob creates an "Email Action"​ and sets it to fire whenever the account record is updated.
 +Definition: Actions are things the computer will do for you automatically. Actions are told when to act by "​triggers"​. ​ Actions are the yellow block.
 +Steps: Go to any page, find a trigger, and attach Actions to that trigger.
 +More Action Examples Include:
 +  * Send an Email
 +  * Send an SMS text message
 +  * Change a Status
 +  * Evaluate whether a value is incorrect, and if it is, give an error message
 +  * Evaluate whether the Current User is allowed to see this form, and if not, then hide it from them
 +  * When a link is clicked on, show a Flyout Menu
 +  * When a link is clicked on, Open a new page in a popup
 +  * When the Save Button is pressed on an Invoice, subtotal the costs, and save that Total 
 +  * When a different Employer is selected for a Contact, delete the relationship
 +====== FINAL REVIEW! The Five Blocks ======
 +In order to build software, you will have to think technically. Thinking technically is about transforming knowledge of your business into five blocks; tables (and their records), relationship table(and their relationships),​ fields, forms and actions (fired by triggers). ​ If you can do that, you can build sophisticated applications using WorkXpress.
 +=== Self Test ===
 +**Question 1:**  If Bob wants to track properties, maintenance companies and work orders, what blocks would he use?
 +**Question 2:**  In order to track the name, address, phone number and a description of each maintenance company, what blocks would he use?
 +**Question 3:**  Bob wants to connect work orders with properties. ​ What block would he use to do this?
 +**Question 4:**  Bob wants to create an interface that includes name, address and phone number of the property he is viewing, but also shows a list of work orders associated with that property. ​ What blocks would Bob use to show general information about the property, and to show a list of related work orders?
 +**Question 5:**  Everytime a work order is added to a property, Bob wants the system to email him notifying him of this new work order. ​ What building block would Bob use to send an email?
 +(Answers: ​ 1. Tables, 2. Fields, 3. Relationship tables, 4. Forms, 5. Actions)
think in technical terms.txt ยท Last modified: 2016/09/14 14:19 (external edit)
Copyright WorkXpress, 2019