Bbva workshop

467 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
467
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Introduce the day. Poll the audience for level of experience. You’ll want to know who is a Java dev and who is a new or experienced to our platform.
  • Introduce Yourselves
    Note: this is a slide if there is only one presenter
  • Safe Harbor
  • Our next tutorials will add in the logic we’ve been talking about and walk through locking down the system.
    If you are pressed on time, #4 is optional.
  • Change this slide to match the local internet requirements.
  • Highlight that this is not just a day of talking to them, this is a dialogue and they should ask questions as they like – even ones that don’t pertain to the current “section”. Projects they’re working on, features they have heard about, etc.
  • The attendees should have gotten a DE org when they registered. Have them look in their inbox if they did not realize this.
    Otherwise, hey should create a brand new DE org if they have not done so recently. They should not use a Trial, Sandbox or Production org.
    Emphasize our DE orgs are free and do not expire (they are not product trials)
  • THERE IS NOT A CURRENT ONLINE VERSION OF THE NEW WORKBOOK DRAFT
  • Salesforce is often thought of as a CRM company, but these stats show we have platform services in use as well
  • 1.4 million includes Force.com, Heroku and ExactTarget
  • Our platform is not merely a cloud hosting service, it is a series of tools and features that enable developers to be successful.
  • On our platform, as you building your data model – you are getting a lot more than just a relational database. You get a mobile app, right out of the gate.
  • Our Basics workshop covers the declarative side of our platform, but let’s do a quick review.
  • You get our API’s, automatically extended: REST, SOAP, Bulk, Streaming
  • And our programmatic features are automatically aware of the data model as well.
  • Chatter is an example of a robust framework you get right out of the gate with Salesforce1.
  • A foundation of the Salesforce1 platform is the ability to create applications with a click – not with code.
  • These are the core business requirements of the Warehouse application
  • Let’s have an exercise in requirements gathering. Here is some of the core needs for our Warehouse application. What nouns here should we be looking at to model our data with?
  • Let’s have an exercise in requirements gathering. Here is some of the core needs for our Warehouse application. What nouns here should we be looking at to model our data with?
  • Here is an overview of what our data model will look like. What is a lookup? What is a master detail?
    POTENTIAL DEMO: View this in Schema Builder
  • Validation rules allow us to put some sanity into our data model. It is baked right into the model itself, and keeps us from entering bad data.
  • This is how the system sees the flow of a validation rule. Note that we are going to define a statement which if TRUE means the data Is bad
  • Time for the first tutorial – getting your data model together and customizing the interface.
  • Our next bit of declarative logic is formula fields
  • These fields will be familiar to anyone who uses Excel heavily. Formula fields are treated like other fields, but calculate in real time.
  • Here is an example that you’ll add to the data model. We want our value to be calculated, not manually entered.
  • Next up are roll-up fields, which allow us to calculate data, again in real time, based on child records.
  • For example, we want our invoices to track a total value based on the line items associated with it – in real time.
  • We need a master-detail relationship here.
  • Workflows allow us to chain logic to specific events in the system.
  • For instance, when an invoice is updated – we might want a time-based workflow that 30 days later checks the status. If the status is open, the invoice is old and should be set to pending.
  • We can take several actions based on workflows.
  • In our data model, we update a field if it is blank based on the related merchandise.
  • Approvals allows us to add a human step into the business logic.
  • We define them similar to workflows, but here we are defining actions that humans interve on.
  • We have an interface built into Salesforce for using approvals. And here are some other features with Approvals.
  • Your data needs to be secure, and you should also have control over who can do what with it.
  • Some basic features of our security and sharing framework
  • Our next tutorials will add in the logic we’ve been talking about and walk through locking down the system.
    If you are pressed on time, #4 is optional.
  • Update this slide with specifics about lunch
  • The Salesforce1 platform has an entire reporting engine built right in
  • Here are some features
  • Dashboards are widgets we can use to represent distinct bits of data to users.
  • Some features of dashboards
  • Alongside the reporting and charting engine is an API
  • For instance, I can get the data from this report if I hit this endpoint.
  • Let’s create a report and dashboard for our warehouse
  • As we mentioned this morning, you’ve been building a mobile app all along.
  • Salesforce1 mobile offers features for a wide range of users.
  • What you get from Salesforce1 mobile is based on what you build in your instance of Salesforce. Compare this to what they’ve been building today.
  • It is highly customizable using actions, Visualforce and Canvas.
  • Visualforce is the user interface sibling to Apex. It also runs in the cloud, in your instance – and it allows you to create brand new experiences for your customers and users.
  • Remember how this morning we said that the platform automatically extends our programmatic features?
  • What do we mean by components? Well you’d start with a page component, and that will define how the whole page is going to be rendered. And then you can add things like a form and fields for the form. Now everything you see here will be HTML when it gets outputted. So you’d have and HTML form, HTML input tags, etc. To the browser, it is just standard HTML.
    But how are we binding data here? We define a controller, which gets access to server-side logic. Whenever you see these brackets and that exclamation point, you’re looking at dynamically bound data which will effect how the component is rendered.
    However, the server-side logic here is a little interesting.
    POTENTIAL DEMO: Do Standard Controller demo, then go back to describe custom controllers and extensions.
  • We have options, though. While a lot of Visualforce relies on bound forms to transmit data (and a viewstate), we can also talk directly to Apex via JavaScript and avoid the viewstate. This is more JavaScript friendly and also has a small footprint.
  • Going back to Saleforce1 Mobile – there are different places we can embed VF. One is mobile cards.
  • Another is actions.
    POTENTIAL DEMO: Find Nearby.
  • If you are familiar with Java or C#, you are going to be familiar with Apex. It is OO and uses dot notation. However, Apex is completely cloud based – you can compile and debug right in your browser. Because it runs right in your instance it is also a “first class” citizen – meaning we can do actions right within Apex without any additional configuration or libraries.
  • For when declarative logic is not enough, we provide Apex. Apex is a cloud-based programming language, very similar to Java – except that you can code, compile and deploy all right from your Salesforce instance. You’ll see how we can create robust programmatic functions right from your browser.
  • If you are familiar with Java or C#, you are going to be familiar with Apex. It is OO and uses dot notation. However, Apex is completely cloud based – you can compile and debug right in your browser. Because it runs right in your instance it is also a “first class” citizen – meaning we can do actions right within Apex without any additional configuration or libraries.
  • Let’s take a look at an example Apex class
  • Overview of Apex Triggers
    POTENTIAL DEMO: Chatter Blacklist
  • Overview of Apex Controllers
  • Overview of Scheduled and Batch Apex
  • More features of Apex
  • How do we balance what Apex can do?
  • Heroku supports Ruby, JVM, Node and Python offically, however there are many 3rd party buildpacks that provide unofficial support for other open source languages
  • Heroku offers a powerful and clean interface via the command line and web console to manage your applications and addons.
  • ** Approved for customer-facing use**
    This week’s “Heroku App of the Week” continues in the vein of hardware and software working together.  It's a great story supporting the "Internet of Customers" and delivering on one of the Platform's key value propositions - "Connect Everything." The company is called Automatic Labs.  (www.automatic.com)
    Their product is a hardware device that plugs into your car’s data port.  (Every gasoline powered car built since 1996 has this port, called OBD2)  The hardware communicates with your smart phone (either IOS or Android) via Bluetooth.  The magic of their solution is they gather all kinds of data about your trips, driving habits, your car’s location, etc.   The app is a great tool, and showcases some of the amazing mobile appsthat can be built with Heroku.
    If this sounds like something you want to have in your own vehicles, the folks at Automatic Labs are giving all Salesforce employees a 25% discount.  Go to this link https://www.automatic.com/order/coupon/?coupon=herokudrive2014 and you’ll be all set.  Happy Driving!
  • Let’s wrap by talking about the wider Salesforce1 platform. There are lots of things we didn’t get a chance to talk about today.
  • For instance, we talked about how your data model automatically extends what VF and Apex can do – but what about our API’s? We have several.
  • And Canvas, which allows your third party apps to appear in Salesforce …. And Salesforce1 Mobile.
    POTENTIAL DEMO: Shipify.
  • Salesforce1 Mobile is one of our offerings, but you can also create your own custom applications.
    POTENTIAL DEMO: Quick Start on forceios / forcedroid
  • We also have an entire marketplace for finding, buying and selling apps.
    NOTE: Chatter Blacklist as a Labs App (Free and Unmanaged)
  • Heroku provides a framework for easily deploying the applications in the language of your choice.
    POTENTIAL DEMO: Quick PHP deployment.
  • But if you are going to remember one URL….
  • Update this slide with local DUG information
  • Because thank you
  • Bbva workshop

    1. 1. Salesforce1 Platform Basics
    2. 2. David Scruggs Platform Engineer @davescruggs dscruggs@salesforce.com
    3. 3. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal quarter ended July 31, 2011. This document and others are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
    4. 4. What are we doing?  Setup and Introductions  Salesforce1 Platform Overview  Declarative Development  User Interface  Mobility  Programmatic Development and Heroku
    5. 5. Setup and Introductions
    6. 6. Login and get ready Internet Username/Password SF13/SF13
    7. 7. Be interactive
    8. 8. http://developer.force.com/join http://bit.ly/heroku_qs http://eclipse-plugin.herokuapp.com/ SETUP: Free Developer Environment
    9. 9. Online Workbook http://bit.ly/basics_book http://bit.ly/heroku_qs If needed: http://bit.ly/c9heroku If you’re interested: http://bit.ly/force_apex_book
    10. 10. Salesforce1 Platform Overview
    11. 11. Salesforce is a Platform Company. Period. -Alex Williams, TechCrunch 500M API Calls Per Day6B Lines of Apex 4M+ Apps Built on the Platform 72B Records Stored Salesforce1 Platform
    12. 12. 1.4 million…and growing
    13. 13. Core Services Chatter Multi- language Translation Workbench Email ServicesAnalytics Cloud Database Scheema Builder Search Visualforce MonitoringMulti-tenant Apex Data-level Security Workflows APIs Mobile Services Social APIs Analytics APIs Bulk APIsRest APIs Metadata APIs Soap APIs Private App Exchange Custom Actions Identity Mobile Notifications Tooling APIs Mobile Packs Mobile SDK Offline Support Streaming APIs Geolocation ET 1:1 ET Fuel Heroku1 Heroku Add-Ons Sharing Model ET API Salesforce1 Platform
    14. 14. Every Object, Every Field: Salesforce1 Mobile Accessible AppExchange Apps: Dropbox Concur Evernote ServiceMax More Custom Apps and Integrations: SAP Oracle Everything Custom More Sales, Service and Marketing Accounts Cases Campaigns Dashboards More
    15. 15. Declarative and Programmatic Declarative Programmatic Visualforce Pages Visualforce Components Apex Controllers Apex Triggers Metadata API REST API Bulk API Formula Fields Validation Rules Workflows and Approvals Objects Fields Relationships Page Layouts Record Types User Interface Business Logic Data Model
    16. 16. Your App Every Object, Every Field: API Enabled GET POST PATCH DELETE OAuth 2.0 HTTPS
    17. 17. Every Object, Every Field: Apex and Visualforce Enabled Visualforce Pages Visualforce Components Apex Controllers Apex Triggers Custom UICustom UI Custom LogicCustom Logic
    18. 18. Chatter Framework for the social enterprise
    19. 19. Declarative Development
    20. 20. Declarative Applications Business logic expressed without programming
    21. 21. Warehouse Application Requirements  Track price and inventory on hand for all merchandise  Create invoices containing one or more merchandise items as a line items  Present total invoice amount and current shipping status
    22. 22. Warehouse Application Requirements  Track price and inventory on hand for all merchandise  Create invoices containing one or more merchandise items as a line items  Present total invoice amount and current shipping status
    23. 23. Warehouse Application Requirements  Track price and inventory on hand for all merchandise  Create invoices containing one or more merchandise items as a line items  Present total invoice amount and current shipping status
    24. 24. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 15 $15 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200
    25. 25. Declarative Logic: Validation Rules Formulas which validate data before being entered or modified
    26. 26. How Validation Rules Work WHEN THENIF Line Item is added or Updated Quantity__c <= 0 Error: “Line Item’s Quantity Should Be Greater Than 0” Record is inserted or updated Statement evaluates to true Block Insert/Update Return error message
    27. 27. Hands On Tutorials #1: Create your data model #2: Customize your user interface
    28. 28. Declarative Logic: Formula Fields Fields which can calculate data in real time
    29. 29. Formula Fields  Excel style formulas  Functions can be nested  Support for commons functions – Math – Text – Date & Time – Logical CASE( MONTH( date ), 1, "January", 2, "February", 3, "March", 4, "April", 5, "May", 6, "June", 7, "July", 8, "August", 9, "September", 10, "October", 11, "November", "December", )
    30. 30. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 15 $15 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200 Formula Field Item Total = Unit Price X Quantity
    31. 31. Declarative Logic: Roll-Up Summary Fields Fields which can summarize data based on child records
    32. 32. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 15 $15 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200 Roll-Up Field Sum of Line Item Value
    33. 33. Child of Master-Detail Count or Aggregate Roll-Up Summary Fields
    34. 34. Declarative Logic: Workflows Event based actions to express business logic
    35. 35. How Workflows Work WHEN THENIF Invoice is updated 30 days later, status is open Change status to “Pending” Record is inserted or updated Defined Conditions are met Perform Workflow actions
    36. 36. Workflow Actions Task Outbound Message Update FieldEmail
    37. 37. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 20 $20 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200 Workflow Rule When updated, if unit price is blank then fill it with the Merchandise price value
    38. 38. Declarative Logic: Approvals Framework for approval on record updates
    39. 39. Approvals Define Criteria Define Actions
    40. 40. • Single / Multi / Skip Processes • Role and User based Routing • Chatter and Email Approvals Approvals
    41. 41. Security and Identity Services Services to authenticate users and control data visibility
    42. 42. Security and Identity Services • User Profiles • User Groups and Hierarchies • Permission Sets • SSO / SAML • OAuth 2.0 • Connected Apps
    43. 43. Hands On Tutorials #3: Add App Logic with Clicks, Not Code #4: Secure your System
    44. 44. Mobility
    45. 45. LUNCHSalesforce1 Mobile iOS and Android app for Salesforce1
    46. 46. Stay Up to Date with Notifications & Feeds Developers Stay Up to Date with Notifications & Feeds Customers Salesforce1 Mobile Users Distribute, & Manage Apps and Identity Administrators Embed Apps to Extend Business Processes ISVs Use Visualforce, HTML5, CSS, & JavaScript to Customize UI
    47. 47. Salesforce1 Mobile Specify order and pin favorites Control visibility with profiles & permission sets Personalize with recent items Add apps
    48. 48. Declarative & programmatic actions Universal Notifications Custom apps with HTML5, JavaScript, Visualforce, and Force.com Canvas Global and contextual actions Salesforce1
    49. 49. Hands On Tutorials #7: Create a Salesforce1 App
    50. 50. User Interface
    51. 51. Visualforce Component-based user interface framework on Salesforce1
    52. 52. Every Object, Every Field: Apex and Visualforce Enabled Visualforce Pages Visualforce Components Apex Controllers Apex Triggers Custom UICustom UI Custom LogicCustom Logic
    53. 53. <apex:page StandardController="Contact" extensions="duplicateUtility" action="{!checkPhone}"> <apex:form> <apex:outputField var="{!Contact.FirstName}” /> <apex:outputField var="{!Contact.LastName}" /> <apex:inputField var="{!Contact.Phone}" /> <apex:commandButton value="Update" action="{!quicksave}" /> </apex:form> </apex:page> Visualforce Components Standard & Custom Controllers Custom Extensions  Data bound components Controller Callbacks
    54. 54. • Apex Forms Visualforce component bound to an Apex Method • Javascript Remoting Annotated Apex methods exposed to JavaScript Interacting with Data
    55. 55. Mobile Cards  Display Visualforce or Related Lookups 1. Record header 2. Mobile cards display above all related items 3. Set width to 100%. It sizes automatically. Mobile card content can’t be scrolled. 4. Control height from the PLE 5. Related lists display after mobile cards
    56. 56. Publisher Actions  Create actions and add them to the Chatter publisher • Global vs Object Level • Create actions • Log-a-call actions • Update actions • Custom actions • VF • Canvas
    57. 57. Visualforce Use Cases • Embed custom UI into tabs and layouts • Visualforce dashboards • Generate PDF • Email templates
    58. 58. Programmatic Development and Heroku
    59. 59. Apex Cloud-based programming language on Salesforce1
    60. 60. Introduction to Apex • Object-Oriented Language • Dot Notation Syntax • Cloud based compiling, debugging and unit testing • “First Class” Citizen on the Platform
    61. 61. public with sharing class myControllerExtension implements Util { private final Account acct; public Contact newContact {get; set;} public myControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); } public PageReference associateNewContact(Id cid) { newContact = [SELECT Id, Account from Contact WHERE Id =: cid LIMIT 1]; newContact.Account = acct; update newContact; } } Apex Anatomy Class and Interface based Scoped Variables Inline SOQL Inline DML
    62. 62. Apex Triggers • Event Based Logic • Associated with Object Types • Before or After: • Insert • Update • Delete • Undelete
    63. 63. Custom Controllers and Extensions • Provide Custom Logic to Visualforce • Extensions can be used with Standard Controllers • One controller can span multiple pages • Can expose logic via Remote Action
    64. 64. Asynchronous Apex • Batch & Scheduled Interfaces • Asynchronous processing • Can handle queues of data • Can be scheduled to run later • Similar to a cron job
    65. 65. Apex Use Cases • Outbound Email • Inbound Email • Custom API Endpoints • HTTP callouts
    66. 66. Declarative before Programmatic Use declarative features when possible: • Quicker to build • Easier to maintain and debug • Possible addition of new features • Do not count against governor limits For example: • Will a workflow suffice instead of a trigger? • Will a custom layout work instead of Visualforce?
    67. 67. What is Heroku? Everything you need to build, run and scale customer apps Run virtually any language at any scale Dynos Enterprise grade Postgres as a service Databases Marketplace for logging, data and more Add-ons
    68. 68. Supported Languages Buildpacks Databases Heroku supports…  Ruby  Node.js  Java  Python  PHP (beta) – Dart – GO! – Scala – Clojure – Erlang – Perl – And more…  Postgres  Redis  Mongo  CouchDB  Hadoop  TempDB  MySQL  Elasticsearch  Neo4j
    69. 69. Heroku is…
    70. 70. Smart driving assistant tracks driving, parking and vehicle performance Developers able to focus on feature development by using Heroku Add-ons to provide infrastructure services Product improvements deployed frequently to delight early adopters Help people drive smarter and bring the power of connectivity to every car Admittedly “obsessive about creating great user experiences in well-engineered products,” Automatic knew the Heroku platform would provide the flexibility their product requires while allowing them to focus less on infrastructure and more on user experience.
    71. 71. Heroku Demo
    72. 72. Heroku Exercises http://bit.ly/heroku_qs Alternatively: http://bit.ly/c9heroku
    73. 73. Double-click to enter title Double-click to enter text The Wrap Up
    74. 74. LUNCHSalesforce1 APIs Family of APIs on the Salesforce1 Platform
    75. 75. LUNCHCanvas Framework for embedding third party apps in Salesforce
    76. 76. LUNCHMobile SDK Development Kit for building hybrid and native iOS and Android apps
    77. 77. LUNCHAppExchange Enterprise marketplace for Salesforce1 Apps
    78. 78. LUNCHHeroku Polyglot framework for hosting applications
    79. 79. Double-click to enter title Double-click to enter text http://developer.force.com
    80. 80. Developer Groups Join a Salesforce Developer Group http://bit.ly/fdc-dugs Los Angeles Salesforce Developer Group: http://www.meetup.com/Los-Angeles-Force-com-Developer-Group/ Become a User Group Leader Email: April Nassi <anassi@salesforce.com>
    81. 81. simplicity is the ultimate form of sophistication - Da Vinci
    82. 82. Thank You

    ×