Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Milano Salesforce DUG 25/05 - Summer'17 Release Best Features


Published on


Published in: Technology
  • Be the first to comment

  • Be the first to like this

Milano Salesforce DUG 25/05 - Summer'17 Release Best Features

  1. 1. Summer ‘17 Release Milano & Cagliari DG Meetup 2017-05-25 @enreeco Enrico Murru Salesforce MVP Architect @ WebResults
  2. 2. Restyled Lightning Experience Migration Assistant (Classic) Better Assistance with Summer 17
  3. 3. More detailed info about how to modify JS buttons and links to be suitable for LEX Restyled Lightning Experience Migration Assistant (Classic)
  4. 4. Get a glimpse of which profiles are more likely to be the pilot testers in your ORG Restyled Lightning Experience Migration Assistant (Classic)
  5. 5. At the end list of required checklist to enable LEX Restyled Lightning Experience Migration Assistant (Classic)
  6. 6. Users that cannot be switched don’t have the Lightning Experience User permission Switch users to LEX Restyled Lightning Experience Migration Assistant (Classic)
  7. 7. In Setup, enable the Hide Option to Switch to Salesforce Classic permission in profiles and permission set Make Lightning Experience the Only Experience Restyled Lightning Experience Migration Assistant (Classic)
  8. 8. LEX App Press Ctrl + / (WIN) or Cmd + / (Mac) Keyboard Shortcuts (LEX) LEX Cloud Console
  9. 9. Improved Favorites selection and search Simplified Favorites List (LEX)
  10. 10. External Data Source with Federated Search External Search Engines with Federated Search (GA)
  11. 11. Easily search on external systems External Search Engines with Federated Search (GA)
  12. 12. ● Name (First Name, Middle Name, Last Name) ● Email ● Phone ● Mobile Phone ● Fax ● Address (Street, City) ● Title ● Website ● Description ● Company Encryptstandard Lead fields Encrypt Sensitive Lead Fields (Beta) Must be activated through Salesforce support
  13. 13. The date picker on date fields now displays when you click in the field. Previously, you clicked the date picker icon to display the date picker Jump to Today’s Date With One Click (LEX)
  14. 14. Create a matching rule: Enhance duplicate checking on Accounts, Contacts and Leads Streamlined Handling of Potential Duplicates (LEX)
  15. 15. Activate the Duplicate Rules: Enhance duplicate checking on Accounts, Contacts and Leads Streamlined Handling of Potential Duplicates (LEX)
  16. 16. Create a duplicate with or without block creation: Enhance duplicate checking on Accounts, Contacts and Leads Streamlined Handling of Potential Duplicates (LEX)
  17. 17. Relies on current data set state: Matching rules are blocked if matches too many records Ineffective Matching Rules Can’t Be Activated
  18. 18. The Cases related list on person account records now includes cases where the person account is listed in the Contact Name field. Previously, only cases where the person account was listed in the Account Name field appeared in the Cases related list. Person Accounts Show All Cases in Related Lists (LEX)
  19. 19. ● Expand single feed nodes ● Expand all nodes ● Filter feeds based on type Less Is More - the Compact Case Feed Service Improvements: Case (LEX)
  20. 20. ● View all Case Comments from Related List or Feeds ● Edit and Delete Case comments from Related List ● Create a Quick Action to create a new Case Comment Create, Edit, Delete Case Comments Service Improvements: Case (LEX)
  21. 21. Disable on Setup > Support Settings > Show Email Attachments in Case Attachments Related List Email attachments on attachment related list Service Improvements: Case (LEX)
  22. 22. Create a new Case Quick Action of type Send Email adding the HTML Body field on the action layout. Supports: ● Text color ● Background color ● Anchors ● Font menu ● Size menu ● Format (paragraph) menu Better Rich-Test toolbar for HTML email Service Improvements: Case (LEX)
  23. 23. The Case specific action links the log to current Case and Case contact. Previously you could only use the Global action and had to link manually with case. Case “Log a Call” quick action Service Improvements: Case (LEX)
  24. 24. LockerService, a powerful security architecture for custom Lightning components, is enforced for all Lightning components created in Summer ’17 (API version 40.0) and later. LockerService isn’t enforced for components with API version 39.0 and lower, which covers any component created before Summer ’17 Critical update since Summer ’16, is enforced for all orgs in Summer ’17 Critical Update Activation: LockerService in Communities
  25. 25. To give admins more time to prepare community users, the TLS 1.0 disablement deadline for Salesforce Communities has been extended to March 2018. The extended March 2018 deadline applies to both Lightning and Visualforce communities. Partner portals, customer portals, and and sites are still subject to the July 2017 deadline. All licensed and unlicensed community users (guest users) must upgrade to browsers that are compliant with TLS 1.1 or above. Details on TLS1.0 retirement here. On July 22, 2017, Salesforce is disabling support for TLS 1.0 for all ORGs in production Extended Deadline for TLS 1.0 Disablement in Communities
  26. 26. ● Add appropriate messaging to your communities to inform your users about TLS 1.0 disablement. Educate both licensed and guest users about browser requirements for TLS version compatibility. ● Encourage users to check their browsers for compatibility with our test site. If their browser is compliant, the web site displays a “Test passed” message. ● Ensure that the TLS 1.1 or above is enabled for your API integrations. Prepare for the deactivation Extended Deadline for TLS 1.0 Disablement in Communities
  27. 27. The New Partner Community Solution Partner Central
  28. 28. ● Overview of entire partner life cycle ● Partner recruitment, onboarding, channel sales, channel marketing in one place ● Automate lead ditribution ● Configure quick actions to get partners access to company’s channel sales pipeline ● Share sales data in a central repository ● Integrates with Service Cloud features (partners can open cases) ● Customize global search ● Like other Lightning communities: • Build custom pages and use custom branding • Expose wathever CRM objects suites to your needs • Customize content on partner geo-location Designed with partner relationship management (PRM) workflows in mind Partner Central
  29. 29. Enabled from Setup > Communities Settings. One page to rule communities, with relevant links all together Communities Workspaces
  30. 30. CMS Connect lets you bring your AEM content, such as headers, footers, and banners, into your community. Dynamically render your components, CSS, and JavaScript on community pages for consistent branding, authentication, and ease of maintenance. CMS Connect is available in communities that are based on Customer Service (Napili), Partner Central, and any Lightning Bolt solutions. Connect Your Content Management System (CMS) to Your Community (Beta)
  31. 31. ● Define the CMS server URL ● A root path to configure language and components to access the proper CMS artifacts Create a new CMS Connection Connect Your Content Management System (CMS) to Your Community (Beta)
  32. 32. ● Defines as many language as you need Create a new CMS Connection Connect Your Content Management System (CMS) to Your Community (Beta)
  33. 33. ● Define up to 10 CSS and 10 JS file per CMS connection Create a new CMS Connection Connect Your Content Management System (CMS) to Your Community (Beta)
  34. 34. By defining multiple CMS connections, define the load order (css and script files) Define the load order Connect Your Content Management System (CMS) to Your Community (Beta)
  35. 35. Include heade and footer source from the CMS connection Import header/footer Connect Your Content Management System (CMS) to Your Community (Beta)
  36. 36. Import specific components from the CMS connection Connect Your Content Management System (CMS) to Your Community (Beta)
  37. 37. Create, customize, and test your community in your sandbox environment and then migrate the community to production when testing is complete. Found the communities on the Network component type. Keep in mind that: ● you can only make updates with change sets, create the community in the target ORG first ● When you deploy an inbound change set, it completely overwrites the community in the destination org (e.g. deletes pages) ● Navigation Menu items are supported. However, for menu items that link to objects, list views are reset to the default list view. Also, custom list views for standard objects aren't included as dependency ● Community migration is also supported via the Metadata API. Change sets are now available for Lightning communities and Salesforce Tabs + Visualforce communities Communities fully supported by Change Sets
  38. 38. Configuration in the Community Builder: Use the App Launcher to switch back and forth between your Salesforce org and your communities Switch between Communities and ORG
  39. 39. Stay on Top of What Happens in Your Communities Enable global notification icon
  40. 40. Chrome Extension to analyze your community and identifies issues that impact performance Analyze and Improve Community Performance (Dev Prev)
  41. 41. Overall score against major Lightning best practices Analyze and Improve Community Performance (Dev Prev)
  42. 42. Waterfall of network requests Analyze and Improve Community Performance (Dev Prev)
  43. 43. Timelines gives a profile of each component’s rendering life Analyze and Improve Community Performance (Dev Prev)
  44. 44. Memory usage Analyze and Improve Community Performance (Dev Prev)
  45. 45. Components displays the life cycle of each component, to target potential leaks or unexpected rendering behavior Analyze and Improve Community Performance (Dev Prev)
  46. 46. Cost tab displays the amount of time each component was busy processing: the lower the better Analyze and Improve Community Performance (Dev Prev)
  47. 47. List of all actions performed on the page, along with their timing information Analyze and Improve Community Performance (Dev Prev)
  48. 48. If you use many components in your Lightning community, improve community performance with browser caching. Performance is about the same for the first page load, but subsequent page loads are faster. The cache is encrypted and secure. Improve Community Performance with Browser Caching
  49. 49. Rich Content Editor HTML Editor New Community Builder Components
  50. 50. Create public links sharable outside the Community Share Public Links to Your Files
  51. 51. Use Chatter Rich Publisher Apps to integrate your custom apps into the Chatter publisher and to view the app’s payload in a feed. Chatter Rich Publisher Apps for Communities (pilot)
  52. 52. Enhanced Stream notifications and quick add for followed records Chatter Feed Streams
  53. 53. Improved performances, mentions and topic selection Improved Chatter publisher
  54. 54. Share with a group and post views Improved Chatter publisher
  55. 55. Improved tile list view for group management Chatter Groups Management
  56. 56. Common file actions directly from feed Files actions on feed
  57. 57. Improved share options for Files
  58. 58. Previously, the maximum number of files per org was 10 million. We’ve tripled this limit, raising it to 30 million. The number of daily content versions (files that you can add or modify in a 24-hour period) has increased from 36,000 to 200,000. The delivery bandwidth limit has doubled from 10 GB to 20 GB. Moving from Documents & Attachments to Salesforce Files Enjoy More Room for Files
  59. 59. Personalize Home and Record Pages with Einstein Recommendations Lightning App Builder: New Lightning Page Components
  60. 60. Add a Launch Pad for All Your Third-Party Apps on Your Home Pages Lightning App Builder: New Lightning Page Components
  61. 61. Setup now lets you open new tabs from List and Details views with right-click Open More Tabs from Setup with Right-Click
  62. 62. The Object Manager tab lets you access quick actions, recent list views, and recent items. It also gives you a shortcut to create a new object Find Your Way to Object Manager More Quickly
  63. 63. Improved object setup page: object details always visible, scrolling details page, quick find search Find Your Way to Object Manager More Quickly
  64. 64. ● Format text as bold, italicized, underlined, or strikethrough ● Create bulleted and numbered lists ● Change paragraph indentation ● Insert a hyperlink ● Insert an image ● Remove formatting ● No Undo/Redo buttons: use shortcuts instead No changes have been made to rich text editors in Salesforce Classic Rich Text Editors for Custom Fields Get a New Look (LEX)
  65. 65. ● Custom button or link to execute onClick JavaScript. • See Custom Buttons or Links (Classic) ● Lightning Experience Quick Action button. • Create JavaScript in a Lightning Experience component executed through a Quick Action button (LEX) ● Custom Visualforce page with an Apex controller to redirect to the correct URL. • Take this approach if you can execute client-side conditional logic to redirect the user to where you want. Create an empty Visualforce page and an Apex controller. Pass the required values from the link to the controller. Then execute the logic to determine the URL in the controller method, to perform the redirect Cannot execute JS on HYPERLINK function Block Execution of JavaScript in the HYPERLINK Function (Critical Update)
  66. 66. Flow component for the Lightning App Builder Embed your Flows in Lightning Pages (GA)
  67. 67. Lightning runtime now respects the URL parameter retURL. Previously, only the Classic runtime respected the parameter. This change applies to both Lightning Experience and Salesforce Classic. The URL parameter retURL lets you control what happens when a flow interview finishes Redirect Flows That Render in Lightning Runtime
  68. 68. This feature is available in Lightning Experience, Salesforce Classic, and all versions of the Salesforce1 mobile app. However, it takes effect only for flows that use Lightning runtime. Turn your flows into guided UIs that respond to users’ inputs and selections Dynamically Update Flow Screen Fields (Pilot)
  69. 69. Choose CSV separation character Data Import Wizard enhancements
  70. 70. Easy filter fields when mapping CSV columns Data Import Wizard enhancements
  71. 71. Match Look-Up Fields with an External ID Data Import Wizard enhancements
  72. 72. The Time type tracks time or indicates date-independent time. You can use it to indicate business hours, preferred contact times, repeated event times, … The Time type is essentially a timestamp without the date included. ● The Time type uses a 24-hour notation ● You can display time in HH:MM, for example, 14:40 ● Time can include milliseconds (HH:MM:SS.MS) • e.g. 14:40:50.617 ● Time values are not localized or associated with a time zone • e.g. if you enter 15:00, for 3 pm, all users see the same value Track Time with the New Time Field Type (Pilot) Custom Field and Picklist Administration
  73. 73. Define default picklist values with the Default formula at the field level: Define Default Values at the Field Level Custom Field and Picklist Administration
  74. 74. ● You can only promote fields that have fewer than 1,000 values (both active and inactive) ● You can only promote restricted picklists. If you want to promote an unrestricted picklist, first convert it to a restricted picklist ● You cannot promote a field to an existing global value set ● After a field is promoted, you can’t demote it back Promote Your Picklist Fields to Global Value Sets Custom Field and Picklist Administration
  75. 75. Custom single-select picklists can have: ● Up to 1,000 values ● Up to 255 characters per value Custom multi-select picklists can have: ● Up to 500 values ● Up to 255 characters per value Users can select up to 100 values at a time on a record. You can have up to 500 picklist global value sets in an org. Global Value Sets Get Higher Limits Custom Field and Picklist Administration
  76. 76. Metadata API allow exportation of password policies Export Profile Password Policies
  77. 77. When a user’s session is about to expire, a browser notification pops up in the foreground Remove the Surprise of Session Timeout (LEX)
  78. 78. If enabled, logging out of your org logs you out of all connected apps (where Salesforce is the Identity Provider and the connected apps are Service Providers) Balance security and usability when determining whether to use it. Logging the user out of all connected apps improves security, but not necessarily usability. Logs out from every connected app SAML Single Logout (SLO) Is Available (Beta)
  79. 79. Customize the Health Check security baseline to compare your org’s security settings with your industry standards Import a Custom Security Baseline into Health Check (GA)
  80. 80. Create policies against real-time events The carousel cards provide information and statistics to help you decide which policies you need Transaction Security Lightning Experience
  81. 81. You can monitor various aspects of your Chatter posts. The new entity resource types for Chatter are: ● Chatter Message ● Feed Comment ● Feed Item ● Idea ● Question Salesforce Classic supports all Chatter resources, while Lightning Experience supports only the Feed Comment and Feed Item resources Monitor Chatter Posts with New Resources and Actions Transaction Security Lightning Experience
  82. 82. Example of Feed Item policy (1) Transaction Security Lightning Experience
  83. 83. Example of Feed Item policy (2) Transaction Security Lightning Experience
  84. 84. Example of Feed Item policy (3) Transaction Security Lightning Experience
  85. 85. ● JavaScript ES5 Strict Mode Enforcement “use strict” • JavaScript strict mode makes code more robust and supportable, enforces errors if (e.g.): - You must declare variables with the var keyword - You must explicitly attach a variable to the window object to make the variable available outside a library - The libraries that your components use must also work in strict mode ● DOM Access Containment • A component can only traverse the DOM and access elements created by a component in the same namespace. This behavior prevents the anti-pattern of reaching into DOM elements owned by components in another namespace • It’s an anti-pattern for any component to “reach into” another component, regardless of namespace. LockerService only prevents cross-namespace access. Your good judgment should prevent cross- component access within your own namespace as it makes components tightly coupled and more likely to break Locker Service is implicitly activated for components with API level above 40.0 Locker Service Features Activated
  86. 86. ● Restrictions to Global References • LockerService applies restrictions to global references: window, element and document objects expose only a subset of their APIs, to guarantee DOM access containment and isolate components • Details: ● Access to Supported JavaScript API Framework Methods Only • You can access published, supported JavaScript API framework methods only • Previously, unsupported methods were accessible, which exposed your code to the risk of breaking when unsupported methods were changed or removed Locker Service is implicitly activated for components with API level above 40.0 Locker Service Features Activated
  87. 87. When a component is set to at least API version 40.0, which is the version for Summer ’17, LockerService is enabled. LockerService is disabled for any component created before Summer ’17 because these components have an API version less than 40.0. To disable LockerService for a component, set its API version to 39.0 or lower. LockerService is enabled for a component or an application purely based on component version. The containment hierarchy within an application or a component doesn’t factor into LockerService enforcement. For consistency and ease of debugging, we recommend that you set the same API version for all components in your app, when possible. Disabling LockerService for a Component
  88. 88. Override View, New, Edit, and Tab object actions using Lightning components Override Standard Actions with Lightning Components
  89. 89. n/a: override action cannot be accessed There are two additional standard actions, Accept and Clone. These actions are more complex, and overriding them is an advanced project. Overriding them with Lightning components isn’t supported What can we actually override? Override Standard Actions with Lightning Components
  90. 90. ● Overrides that use Lightning components don’t affect Salesforce Classic • If you override a standard action with a Visualforce page, it overrides the action in Salesforce Classic, Lightning Experience, and Salesforce1 • If you override a standard action with a Lightning component, it overrides the action in Lightning Experience and Salesforce1, but the standard Salesforce page is used in Salesforce Classic ● A Lightning record page for an object takes precedence over an override of the object’s View action. • That is, if you override the View action for an object, and you also create and assign a Lightning record page for the object, the Lightning record page is used. The override has no effect. This is true whether the override uses a Lightning component or a Visualforce page How and Where You Can Use Lightning Component Action Overrides Override Standard Actions with Lightning Components
  91. 91. Use the lightning:actionOverride interface Override Standard Actions with Lightning Components
  92. 92. ● force:hasRecordId • enable the component to be assigned the ID of the current record • adds the component’s attribute recordId ● force:hasSObjectName • enable the component to be assigned the API name of current record’s sObject type • adds the component’s attribute sObjectName Access Current Record Details Override Standard Actions with Lightning Components
  93. 93. ● Lightning Data Service handles sharing rules and field-level security for you. ● Lightning Data Service also improves performance and user-interface consistency ● Use the new force:recordData component (force:recordPreview deprecated) ● Target record complies with the UI API ● targetFields shows a simplified version of the object and updates when the Lightning Data Service detects a record change • e.g. is equivalent to v.targetRecord.fields.Name.value Use Lightning Data Service to load, create, edit, or delete a record in your component, without using Apex code Lightning Data Service (Beta)
  94. 94. It’s now easier for your users to report errors they encounter, and for you to find and fix those errors. This change affects all users, and doesn’t depend on debug mode being enabled Display more details for more Lightning component errors Find Component Markup Errors Faster with Improved Error Messages
  95. 95. The framework logs a browser console warning if your component has a JavaScript function (client-side action) with the same name as an Apex method (server-side action). The warning is logged only in debug mode and can help in troubleshooting an otherwise hard-to-debug issue. Browser Console Warnings for JavaScript and Apex Actions with the Same Name
  96. 96. When a component is rendered or rerendered, the aura:valueRender event, also known as the render event, is fired. Handle this event to perform post-processing on the DOM or react to component rendering or rerendering. The event is preferred and easier to use than the alternative of creating a custom renderer. Use the aura:valueRender Event Instead of a Custom Renderer
  97. 97. ● If a component is invalid, cmp.get() returns null. • Previously, the framework returned an InvalidComponent error. ● If you call cmp.set() on an invalid component, nothing happens and no error occurs. ● The cmp.isValid() call returns false for an invalid component. • You don’t need a cmp.isValid() check in the callback in a client-side controller when you reference the component associated with the client-side controller. The framework automatically checks that the component is valid. • Similarly, you don’t need a cmp.isValid() check during event handling or in a framework lifecycle hook, such as the init event. If you reference a component in asynchronous code, such as setTimeout() or setInterval(), or when you use Promises, a cmp.isValid() call checks that the component is still valid before processing the results of the asynchronous request. • In many scenarios, the cmp.isValid() call isn’t necessary because a null check on a value retrieved from cmp.get() is sufficient. • The main reason to call cmp.isValid() is if you’re making multiple calls against the component and you want to avoid a null check for each result. Streamlined Validity Checks for Components
  98. 98. The lightning:container component allows you to upload an app developed with a third- party framework as a static resource, and host the content in a Lightning component. You can specify the Content Security Policy (CSP) and the landing page of your content with a JSON file in your static resource, giving you more fine-grained control over the security of your content. More details on Lightning Container. Choose a CSP Level for lightning:container (Dev Prev)
  99. 99. Previously, we advised against using the instanceof operator in JavaScript code when LockerService is activated. This restriction has been removed, except when checking arrays. Except when checking arrays, feel free to use instanceof in your components or upload static resources for third-party libraries that use instanceof in their internals. To check if a given object is an array, use Array.isArray(objToTest) instead of instanceof. LockerService uses the standard JavaScript Proxy object. Proxy doesn’t support using instanceof with a native array. Removed LockerService Restriction on instanceof in JavaScript
  100. 100. Advanced PDF renders Visualforce pages as PDF files with broader support for modern HTML standards, such as CSS3, JavaScript, and HTML5. This change applies to both Lightning Experience and Salesforce Classic. To use Advanced PDF, set renderAs="advanced_pdf" in the tag of a Visualforce page with API version 40.0 or later. Advanced PDF pages time out after rendering for 2 minutes, which includes asynchronous processing time. Because Advanced PDF is built on Chromium, it’s easy to preview your Visualforce pages in Google Chrome. To preview a page, from Chrome, select File > Print. Use Advanced PDF to Render Visualforce Pages as PDF Files (Pilot)
  101. 101. Make a SOQL query in Workbench to get information from the VisualforceAccessMetrics object. Each VisualforceAccessMetrics object tracks the daily page view count in the DailyPageViewCount field. The date the metrics were collected is specified in MetricsDate, and the ID of the tracked Visualforce page is specified in ApexPageId. Page views are tallied the day after the page is viewed, and each VisualforceAccessMetrics object is removed after 90 days To query metrics on the Visualforce pages in your org, use the VisualforceAccessMetrics object in the Salesforce SOAP API Access Visualforce Page Metrics Using the SOAP API
  102. 102. When a JavaScript method in an Apex class calling a remote action throws an exception, the action isn’t completed. Previously, when a method threw an exception, the action was completed. For example, when you created an Apex class that used a remote action to add an account to your org and that method threw an exception, the account was added. Now, the account isn’t added. With this enhancement, JavaScript remoting methods that throw exceptions no longer cause changes in your org. Roll Back Changes in Your Org When Remote JavaScript Methods Throw Exceptions
  103. 103. Metadata is used for org settings that admins control, or configuration information applied by installed apps and packages. Previously, accessing metadata required using the Metadata API, but you can now use classes in the Metadata namespace to access metadata components from Apex code Metadata access in Apex is currently limited to custom metadata records and page layouts. You can retrieve, create, or update custom metadata, but you cannot delete metadata through Apex. Details on the features here. Access to Metadata with the Metadata Namespace Retrieve and Deploy Metadata in Apex
  104. 104. Platform events are part of Salesforce’s enterprise messaging platform. The platform provides an event-driven messaging architecture to enable apps to communicate inside and outside of Salesforce. Custom data in your events are stored in custom fields that you define. Platform events simplify the process of communicating changes and responding to them without writing complex logic. Publishers and subscribers communicate with each other through events. Multiple subscribers can listen to the same event and carry out different actions. Read here for more details. Monitor ORG events Enterprise Messaging Platform
  105. 105. A platform event is a special kind of sObject. An event notification is an instance of the platform event, similar to how a record is an instance of a custom object. Unlike custom objects, you can’t view event records in the Salesforce user interface, and platform events don’t have page layouts. Platform events aren’t transactional and can’t be rolled back. Also, platform events are retained for 24 hours and CometD subscribers can retrieve past events using a unique ID (the ReplayId field value). Define your own custom platform event Enterprise Messaging Platform
  106. 106. To request a higher number of events delivered to CometD clients, contact Salesforce to purchase an add-on license. The add-on license increases your daily limit of delivered events by 100,000 more events. License limits Enterprise Messaging Platform
  107. 107. ● Add Validation Rules for Custom Metadata Type Fields ● Custom Metadata Types Support Long Text Areas (GA) Custom Metadata Types
  108. 108. Thank Y u