Course 80638: MICROSOFT DYNAMICS AX 2012 R3 FOR RETAIL IN BRICK AND MORTAR STORES: DEVELOPMENT AND CUSTOMIZATION

Size: px
Start display at page:

Download "Course 80638: MICROSOFT DYNAMICS AX 2012 R3 FOR RETAIL IN BRICK AND MORTAR STORES: DEVELOPMENT AND CUSTOMIZATION"

Transcription

1 Course 80638: MICROSOFT DYNAMICS AX 2012 R3 FOR RETAIL IN BRICK AND MORTAR STORES: DEVELOPMENT AND CUSTOMIZATION

2 This courseware is provided as-is. Information and views expressed in this courseware, including URL and other Internet Web site references, may change without notice. Unless otherwise noted, the examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or should be inferred. This courseware does not provide you with any legal rights to any intellectual property in any Microsoft product. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this courseware may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means or for any purpose, without the express written permission of Microsoft Corporation. Copyright 2012 Microsoft Corporation. All rights reserved. Microsoft, Microsoft Dynamics, Microsoft PowerPoint, Microsoft SQL Server data management software and Microsoft Dynamics NAV are trademarks of the Microsoft group of companies. All other trademarks are property of their respective owners.

3 MICROSOFT LICENSE TERMS MICROSOFT INSTRUCTOR-LED COURSEWARE These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to your use of the content accompanying this agreement which includes the media on which you received it, if any. These license terms also apply to Trainer Content and any updates and supplements for the Licensed Content unless other terms accompany those items. If so, those terms apply. BY ACCESSING, DOWNLOADING OR USING THE LICENSED CONTENT, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT ACCESS, DOWNLOAD OR USE THE LICENSED CONTENT. If you comply with these license terms, you have the rights below for each license you acquire. 1. DEFINITIONS. a. Authorized Learning Center means a Microsoft IT Academy Program Member, Microsoft Learning Competency Member, or such other entity as Microsoft may designate from time to time. b. Authorized Training Session means the instructor-led training class using Microsoft Instructor-Led Courseware conducted by a Trainer at or through an Authorized Learning Center. c. Classroom Device means one (1) dedicated, secure computer that an Authorized Learning Center owns or controls that is located at an Authorized Learning Center s training facilities that meets or exceeds the hardware level specified for the particular Microsoft Instructor-Led Courseware. d. End User means an individual who is (i) duly enrolled in and attending an Authorized Training Session or Private Training Session, (ii) an employee of a MPN Member, or (iii) a Microsoft full-time employee. e. Licensed Content means the content accompanying this agreement which may include the Microsoft Instructor-Led Courseware or Trainer Content. f. Microsoft Certified Trainer or MCT means an individual who is (i) engaged to teach a training session to End Users on behalf of an Authorized Learning Center or MPN Member, and (ii) currently certified as a Microsoft Certified Trainer under the Microsoft Certification Program. g. Microsoft Instructor-Led Courseware means the Microsoft-branded instructor-led training course that educates IT professionals and developers on Microsoft technologies. A Microsoft Instructor-Led Courseware title may be branded as MOC, Microsoft Dynamics or Microsoft Business Group courseware. h. Microsoft IT Academy Program Member means an active member of the Microsoft IT Academy Program. i. Microsoft Learning Competency Member means an active member of the Microsoft Partner Network program in good standing that currently holds the Learning Competency status. j. MOC means the Official Microsoft Learning Product instructor-led courseware known as Microsoft Official Course that educates IT professionals and developers on Microsoft technologies. k. MPN Member means an active silver or gold-level Microsoft Partner Network program member in good standing.

4 l. Personal Device means one (1) personal computer, device, workstation or other digital electronic device that you personally own or control that meets or exceeds the hardware level specified for the particular Microsoft Instructor-Led Courseware. m. Private Training Session means the instructor-led training classes provided by MPN Members for corporate customers to teach a predefined learning objective using Microsoft Instructor-Led Courseware. These classes are not advertised or promoted to the general public and class attendance is restricted to individuals employed by or contracted by the corporate customer. n. Trainer means (i) an academically accredited educator engaged by a Microsoft IT Academy Program Member to teach an Authorized Training Session, and/or (ii) a MCT. o. Trainer Content means the trainer version of the Microsoft Instructor-Led Courseware and additional supplemental content designated solely for Trainers use to teach a training session using the Microsoft Instructor-Led Courseware. Trainer Content may include Microsoft PowerPoint presentations, trainer preparation guide, train the trainer materials, Microsoft One Note packs, classroom setup guide and Prerelease course feedback form. To clarify, Trainer Content does not include any software, virtual hard disks or virtual machines. 2. USE RIGHTS. The Licensed Content is licensed not sold. The Licensed Content is licensed on a one copy per user basis, such that you must acquire a license for each individual that accesses or uses the Licensed Content. 2.1 Below are five separate sets of use rights. Only one set of rights apply to you. a. If you are a Microsoft IT Academy Program Member: i. Each license acquired on behalf of yourself may only be used to review one (1) copy of the Microsoft Instructor-Led Courseware in the form provided to you. If the Microsoft Instructor-Led Courseware is in digital format, you may install one (1) copy on up to three (3) Personal Devices. You may not install the Microsoft Instructor-Led Courseware on a device you do not own or control. ii. For each license you acquire on behalf of an End User or Trainer, you may either: 1. distribute one (1) hard copy version of the Microsoft Instructor-Led Courseware to one (1) End User who is enrolled in the Authorized Training Session, and only immediately prior to the commencement of the Authorized Training Session that is the subject matter of the Microsoft Instructor-Led Courseware being provided, or 2. provide one (1) End User with the unique redemption code and instructions on how they can access one (1) digital version of the Microsoft Instructor-Led Courseware, or 3. provide one (1) Trainer with the unique redemption code and instructions on how they can access one (1) Trainer Content, provided you comply with the following: iii. you will only provide access to the Licensed Content to those individuals who have acquired a valid license to the Licensed Content, iv. you will ensure each End User attending an Authorized Training Session has their own valid licensed copy of the Microsoft Instructor-Led Courseware that is the subject of the Authorized Training Session, v. you will ensure that each End User provided with the hard-copy version of the Microsoft Instructor- Led Courseware will be presented with a copy of this agreement and each End User will agree that their use of the Microsoft Instructor-Led Courseware will be subject to the terms in this agreement prior to providing them with the Microsoft Instructor-Led Courseware. Each individual will be required to denote their acceptance of this agreement in a manner that is enforceable under local law prior to their accessing the Microsoft Instructor-Led Courseware, vi. you will ensure that each Trainer teaching an Authorized Training Session has their own valid licensed copy of the Trainer Content that is the subject of the Authorized Training Session,

5 vii. you will only use qualified Trainers who have in-depth knowledge of and experience with the Microsoft technology that is the subject of the Microsoft Instructor-Led Courseware being taught for all your Authorized Training Sessions, viii. you will only deliver a maximum of 15 hours of training per week for each Authorized Training Session that uses a MOC title, and ix. you acknowledge that Trainers that are not MCTs will not have access to all of the trainer resources for the Microsoft Instructor-Led Courseware. b. If you are a Microsoft Learning Competency Member: i. Each license acquired on behalf of yourself may only be used to review one (1) copy of the Microsoft Instructor-Led Courseware in the form provided to you. If the Microsoft Instructor-Led Courseware is in digital format, you may install one (1) copy on up to three (3) Personal Devices. You may not install the Microsoft Instructor-Led Courseware on a device you do not own or control. ii. For each license you acquire on behalf of an End User or Trainer, you may either: 1. distribute one (1) hard copy version of the Microsoft Instructor-Led Courseware to one (1) End User attending the Authorized Training Session and only immediately prior to the commencement of the Authorized Training Session that is the subject matter of the Microsoft Instructor-Led Courseware provided, or 2. provide one (1) End User attending the Authorized Training Session with the unique redemption code and instructions on how they can access one (1) digital version of the Microsoft Instructor- Led Courseware, or 3. you will provide one (1) Trainer with the unique redemption code and instructions on how they can access one (1) Trainer Content, provided you comply with the following: iii. you will only provide access to the Licensed Content to those individuals who have acquired a valid license to the Licensed Content, iv. you will ensure that each End User attending an Authorized Training Session has their own valid licensed copy of the Microsoft Instructor-Led Courseware that is the subject of the Authorized Training Session, v. you will ensure that each End User provided with a hard-copy version of the Microsoft Instructor-Led Courseware will be presented with a copy of this agreement and each End User will agree that their use of the Microsoft Instructor-Led Courseware will be subject to the terms in this agreement prior to providing them with the Microsoft Instructor-Led Courseware. Each individual will be required to denote their acceptance of this agreement in a manner that is enforceable under local law prior to their accessing the Microsoft Instructor-Led Courseware, vi. you will ensure that each Trainer teaching an Authorized Training Session has their own valid licensed copy of the Trainer Content that is the subject of the Authorized Training Session, vii. you will only use qualified Trainers who hold the applicable Microsoft Certification credential that is the subject of the Microsoft Instructor-Led Courseware being taught for your Authorized Training Sessions, viii. you will only use qualified MCTs who also hold the applicable Microsoft Certification credential that is the subject of the MOC title being taught for all your Authorized Training Sessions using MOC, ix. you will only provide access to the Microsoft Instructor-Led Courseware to End Users, and x. you will only provide access to the Trainer Content to Trainers.

6 c. If you are a MPN Member: i. Each license acquired on behalf of yourself may only be used to review one (1) copy of the Microsoft Instructor-Led Courseware in the form provided to you. If the Microsoft Instructor-Led Courseware is in digital format, you may install one (1) copy on up to three (3) Personal Devices. You may not install the Microsoft Instructor-Led Courseware on a device you do not own or control. ii. For each license you acquire on behalf of an End User or Trainer, you may either: 1. distribute one (1) hard copy version of the Microsoft Instructor-Led Courseware to one (1) End User attending the Private Training Session, and only immediately prior to the commencement of the Private Training Session that is the subject matter of the Microsoft Instructor-Led Courseware being provided, or 2. provide one (1) End User who is attending the Private Training Session with the unique redemption code and instructions on how they can access one (1) digital version of the Microsoft Instructor-Led Courseware, or 3. you will provide one (1) Trainer who is teaching the Private Training Session with the unique redemption code and instructions on how they can access one (1) Trainer Content, provided you comply with the following: iii. you will only provide access to the Licensed Content to those individuals who have acquired a valid license to the Licensed Content, iv. you will ensure that each End User attending an Private Training Session has their own valid licensed copy of the Microsoft Instructor-Led Courseware that is the subject of the Private Training Session, v. you will ensure that each End User provided with a hard copy version of the Microsoft Instructor-Led Courseware will be presented with a copy of this agreement and each End User will agree that their use of the Microsoft Instructor-Led Courseware will be subject to the terms in this agreement prior to providing them with the Microsoft Instructor-Led Courseware. Each individual will be required to denote their acceptance of this agreement in a manner that is enforceable under local law prior to their accessing the Microsoft Instructor-Led Courseware, vi. you will ensure that each Trainer teaching an Private Training Session has their own valid licensed copy of the Trainer Content that is the subject of the Private Training Session, vii. you will only use qualified Trainers who hold the applicable Microsoft Certification credential that is the subject of the Microsoft Instructor-Led Courseware being taught for all your Private Training Sessions, viii. you will only use qualified MCTs who hold the applicable Microsoft Certification credential that is the subject of the MOC title being taught for all your Private Training Sessions using MOC, ix. you will only provide access to the Microsoft Instructor-Led Courseware to End Users, and x. you will only provide access to the Trainer Content to Trainers. d. If you are an End User: For each license you acquire, you may use the Microsoft Instructor-Led Courseware solely for your personal training use. If the Microsoft Instructor-Led Courseware is in digital format, you may access the Microsoft Instructor-Led Courseware online using the unique redemption code provided to you by the training provider and install and use one (1) copy of the Microsoft Instructor-Led Courseware on up to three (3) Personal Devices. You may also print one (1) copy of the Microsoft Instructor-Led Courseware. You may not install the Microsoft Instructor-Led Courseware on a device you do not own or control. e. If you are a Trainer. i. For each license you acquire, you may install and use one (1) copy of the Trainer Content in the form provided to you on one (1) Personal Device solely to prepare and deliver an Authorized Training Session or Private Training Session, and install one (1) additional copy on another Personal Device as a backup copy, which may be used only to reinstall the Trainer Content. You may not install or use a copy of the Trainer Content on a device you do not own or control. You may also print one (1) copy of the Trainer Content solely to prepare for and deliver an Authorized Training Session or Private Training Session.

7 ii. You may customize the written portions of the Trainer Content that are logically associated with instruction of a training session in accordance with the most recent version of the MCT agreement. If you elect to exercise the foregoing rights, you agree to comply with the following: (i) customizations may only be used for teaching Authorized Training Sessions and Private Training Sessions, and (ii) all customizations will comply with this agreement. For clarity, any use of customize refers only to changing the order of slides and content, and/or not using all the slides or content, it does not mean changing or modifying any slide or content. 2.2 Separation of Components. The Licensed Content is licensed as a single unit and you may not separate their components and install them on different devices. 2.3 Redistribution of Licensed Content. Except as expressly provided in the use rights above, you may not distribute any Licensed Content or any portion thereof (including any permitted modifications) to any third parties without the express written permission of Microsoft. 2.4 Third Party Programs and Services. The Licensed Content may contain third party programs or services. These license terms will apply to your use of those third party programs or services, unless other terms accompany those programs and services. 2.5 Additional Terms. Some Licensed Content may contain components with additional terms, conditions, and licenses regarding its use. Any non-conflicting terms in those conditions and licenses also apply to your use of that respective component and supplements the terms described in this agreement. 3. LICENSED CONTENT BASED ON PRE-RELEASE TECHNOLOGY. If the Licensed Content s subject matter is based on a pre-release version of Microsoft technology ( Pre-release ), then in addition to the other provisions in this agreement, these terms also apply: a. Pre-Release Licensed Content. This Licensed Content subject matter is on the Pre-release version of the Microsoft technology. The technology may not work the way a final version of the technology will and we may change the technology for the final version. We also may not release a final version. Licensed Content based on the final version of the technology may not contain the same information as the Licensed Content based on the Pre-release version. Microsoft is under no obligation to provide you with any further content, including any Licensed Content based on the final version of the technology. b. Feedback. If you agree to give feedback about the Licensed Content to Microsoft, either directly or through its third party designee, you give to Microsoft without charge, the right to use, share and commercialize your feedback in any way and for any purpose. You also give to third parties, without charge, any patent rights needed for their products, technologies and services to use or interface with any specific parts of a Microsoft software, Microsoft product, or service that includes the feedback. You will not give feedback that is subject to a license that requires Microsoft to license its software, technologies, or products to third parties because we include your feedback in them. These rights survive this agreement. c. Pre-release Term. If you are an Microsoft IT Academy Program Member, Microsoft Learning Competency Member, MPN Member or Trainer, you will cease using all copies of the Licensed Content on the Pre-release technology upon (i) the date which Microsoft informs you is the end date for using the Licensed Content on the Pre-release technology, or (ii) sixty (60) days after the commercial release of the technology that is the subject of the Licensed Content, whichever is earliest ( Pre-release term ). Upon expiration or termination of the Pre-release term, you will irretrievably delete and destroy all copies of the Licensed Content in your possession or under your control.

8 4. SCOPE OF LICENSE. The Licensed Content is licensed, not sold. This agreement only gives you some rights to use the Licensed Content. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the Licensed Content only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the Licensed Content that only allows you to use it in certain ways. Except as expressly permitted in this agreement, you may not: access or allow any individual to access the Licensed Content if they have not acquired a valid license for the Licensed Content, alter, remove or obscure any copyright or other protective notices (including watermarks), branding or identifications contained in the Licensed Content, modify or create a derivative work of any Licensed Content, publicly display, or make the Licensed Content available for others to access or use, copy, print, install, sell, publish, transmit, lend, adapt, reuse, link to or post, make available or distribute the Licensed Content to any third party, work around any technical limitations in the Licensed Content, or reverse engineer, decompile, remove or otherwise thwart any protections or disassemble the Licensed Content except and only to the extent that applicable law expressly permits, despite this limitation. 5. RESERVATION OF RIGHTS AND OWNERSHIP. Microsoft reserves all rights not expressly granted to you in this agreement. The Licensed Content is protected by copyright and other intellectual property laws and treaties. Microsoft or its suppliers own the title, copyright, and other intellectual property rights in the Licensed Content. 6. EXPORT RESTRICTIONS. The Licensed Content is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the Licensed Content. These laws include restrictions on destinations, end users and end use. For additional information, see 7. SUPPORT SERVICES. Because the Licensed Content is as is, we may not provide support services for it. 8. TERMINATION. Without prejudice to any other rights, Microsoft may terminate this agreement if you fail to comply with the terms and conditions of this agreement. Upon termination of this agreement for any reason, you will immediately stop all use of and delete and destroy all copies of the Licensed Content in your possession or under your control. 9. LINKS TO THIRD PARTY SITES. You may link to third party sites through the use of the Licensed Content. The third party sites are not under the control of Microsoft, and Microsoft is not responsible for the contents of any third party sites, any links contained in third party sites, or any changes or updates to third party sites. Microsoft is not responsible for webcasting or any other form of transmission received from any third party sites. Microsoft is providing these links to third party sites to you only as a convenience, and the inclusion of any link does not imply an endorsement by Microsoft of the third party site. 10. ENTIRE AGREEMENT. This agreement, and any additional terms for the Trainer Content, updates and supplements are the entire agreement for the Licensed Content, updates and supplements. 11. APPLICABLE LAW. a. United States. If you acquired the Licensed Content in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.

9 b. Outside the United States. If you acquired the Licensed Content in any other country, the laws of that country apply. 12. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the Licensed Content. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. 13. DISCLAIMER OF WARRANTY. THE LICENSED CONTENT IS LICENSED "AS-IS" AND "AS AVAILABLE." YOU BEAR THE RISK OF USING IT. MICROSOFT AND ITS RESPECTIVE AFFILIATES GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT AND ITS RESPECTIVE AFFILIATES EXCLUDES ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 14. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT, ITS RESPECTIVE AFFILIATES AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO US$5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. This limitation applies to o anything related to the Licensed Content, services, content (including code) on third party Internet sites or third-party programs; and o claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. Please note: As this Licensed Content is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. Remarque : Ce le contenu sous licence étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. EXONÉRATION DE GARANTIE. Le contenu sous licence visé par une licence est offert «tel quel». Toute utilisation de ce contenu sous licence est à votre seule risque et péril. Microsoft n accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection dues consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d adéquation à un usage particulier et d absence de contrefaçon sont exclues. LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. Cette limitation concerne: tout ce qui est relié au le contenu sous licence, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers; et. les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d une autre faute dans la limite autorisée par la loi en vigueur.

10 Elle s applique également, même si Microsoft connaissait ou devrait connaître l éventualité d un tel dommage. Si votre pays n autorise pas l exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l exclusion ci-dessus ne s appliquera pas à votre égard. EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. Revised September 2012

11 MODULE 1: INTRODUCTION TO RETAIL POINT OF SALE (POS) AND OVERVIEW Module Overview Objectives Microsoft Dynamics AX 2012 R3 for Retail supports multiple retail channels. Retail channels include online stores, online marketplaces, and brick-and-mortar stores. In Retail, a brick-and-mortar store is called a retail store. Introduction Course objectives Prerequisites Technical overview INTRODUCTION Training is an important component of maintaining the value of a Microsoft Dynamics investment. Quality training from industry experts keeps you up-todate and helps you develop the skills necessary for fully maximizing the value of your solution. Microsoft Dynamics provides different kinds of training to meet everyone s needs, from online training, classroom training, or training materials. Select the training type that will best help you stay ahead of the competition. Online Training Online training delivers convenient, detailed training in the comfort of your own home or office. Online training provides immediate access to training 24 hours a /*day. It is perfect for the customer who does not have the time or budget to travel. Online training options combine the efficiency of online training with the thorough product coverage of classroom training. Classroom Training Classroom training provides, comprehensive learning through hands-on interaction. From demonstrations to presentations to classroom activities, you receive practical experience with instruction from our certified staff of experts.

12 Training Materials Training materials help you learn at your own pace, in your own time, with information-packed training manuals. The many training manuals features many tips, tricks, and insights that you can reference continuously. Microsoft Dynamics Courseware The Microsoft Dynamics courseware consists of detailed training manuals that are designed from a training perspective. These manuals include advanced topics, in addition to training objectives, exercises, interactions, and quizzes. Look for a complete list of manuals that are available for purchase on CustomerSource or PartnerSource. Microsoft Dynamics Courseware Contents Microsoft Dynamics courseware contains labs and quick interactions. These help improve your learning experience through practical application. Lab Within the Microsoft Dynamics training materials, you will find labs. These labs are typically offered in two levels to accommodate each student s variety of knowledge and expertise. We suggest that you try the High level steps first. If you need help completing the task, look to the information in the Detailed steps. High level steps High levels steps are the most challenging. These steps are designed for the experienced student who requires little instruction to complete the required task. Detailed steps Detailed steps are geared toward new users who require detailed instructions and explanations to complete the lab. Detailed steps guide you through the whole task. This includes navigation.

13 Student Objectives What do you hope to learn by participating in this course? List three main objectives here

14 Course Objectives The main objective of this course on Microsoft Dynamics AX 2012 R3 for Retail in Brick and Mortar Stores Customization and Extensibility is to understand the following: 1. Introduction to Retail Point of Sale and Overview a. Introduction b. Course objectives c. Prerequisites d. Retail POS overview 2. Retail POS Extensibility Technical Overview 3. Install Retail POS a. Customizing Retail POS Themes POS Skins Creating New Skins Set Color Properties b. User Interface Extensibility How to modify a form in Retail POS c. Trigger Extensibility How to modify the trigger project d. Services Extensibility How to modify the services project e. Blank Operations Extensibility Setup a blank operation Add custom logic to the blank operation f. Custom Fields on POS Layouts g. Real Time Service Extensibility Extending the RetailTransactionServiceEx Class h. POS Database Tool Extensibility i. POS Payment Connector 4. Extending Retail Modern POS a. Architecture of Retail Modern POS b. Retail Modern POS Customization and Extensibility 5. Extensibility Testing Considerations 6. Extensibility Deployment and Hotfix update considerations The course also contains labs on extending Retail POS and Modern POS.

15 Point of Sale (POS) Overview Microsoft Dynamics AX for Retail POS is the point of sale (POS) program for Microsoft Dynamics AX. Microsoft Dynamics AX Retail POS is a solution that brings speed, power, flexibility, dependability, and ease of use to the point-of-sale. A Retail Brick and Mortar Store implementing AX 2012 R3 can use two types of POS Retail POS - Fixed POS Terminal that uses a Windows Forms based touch User Interface (UI). Modern POS - Windows 8 based POS that is created by using HTML5 development. Tasks are performed by using a POS register and the graphical UI. Both are easy to use and can be set up to meet the requirements of many industries, such as grocery, fashion and specialty retailers. Lesson Objectives Discuss the Microsoft Dynamics POS Overview.

16 Retail POS Retail POS has a dynamic interface that can be configured and customized for your type of business and store procedures. Additionally, Retail POS can work offline. This helps make sure that your stores remain fully operational during network interruptions. All data is automatically updated when the connection is restored. Modern POS Microsoft Dynamics AX 2012 R3 includes Modern POS, a point-of-sale app for PCs, tablets, and phones. Sales staff can process sales transactions, customer orders, and perform daily operations and inventory management with mobile devices anywhere in the store, as well as at PC-based registers. The Modern POS app running on a device is a thin client. It must connect to Microsoft Dynamics AX Retail Server. Retail Server performs the business logic and processing for Modern POS. Modern POS is a smaller POS installation that is primarily designed for Windows 8. Modern POS mostly uses Retail Server for the Master data and RTS for calls. Disclaimer: The Retail Modern POS is comprised of pre-release components. All pre-release features and functionality are preliminary based on current expectations, and are subject to change without notice.

17 Microsoft Dynamics Retail Components Microsoft Dynamics POS interacts with the following retail components to perform end-to-end operations: Commerce Data Exchange: Async Server Commerce Data Exchange: Real time service Store and offline database Microsoft Dynamics AX for Retail Async Server Synch service is the integrated service that periodically sends data between the headquarters office and the store database. Communications that use sync service are managed through distribution locations and Retail Scheduler in Retail Headquarters (HQ). Microsoft Dynamics AX for Retail Real time Service Together with Async Server and Retail Scheduler, real-time service completes the communications mechanism of Microsoft Dynamics AX for Retail. Real time service provides real-time, synchronous communication between POS registers and Microsoft Dynamics AX. It can be used to authenticate cashier logon credentials, send loyalty requests, and exchange up-to-the-minute physical inventory information between the headquarters office and the stores, and more. Channel Database Each store must have its own database, and a single database is used for multiple registers, this is known as the channel Database. This helps make sure that the same master data is available to all POS registers in the store. Offline Database You can also create an offline databases on POS computers. An offline database helps make sure that the store s operations can continue even if the connection to the shared database server is lost. If the connection to the shared database server is lost, the POS computers switch to offline databases. The shared database and the offline databases are kept in sync by using Microsoft Sync framework. The store and the offline database can be set up by using the create database utility.

18 Module Review Module Review and Takeaways How does Enterprise work and key component of Enterprise POS. What is Real Time Service and how it is used POS. How POS Data is synchronized and What is Offline Database What is Modern POS Test Your Knowledge Test your knowledge with the following questions. 1. What is Channel Database? 2. What is Offline Database? 3. Can an offline database be shared across multiple terminals? 4. Describe any two operations that cannot be performed when the POS store database is offline.

19 Test Your Knowledge Solutions MODEL ANSWER: 7. Each store must have its own database, and a single database is used for multiple registers, this is known as the channel Database. 8. An offline database helps make sure that the store s operations can continue even if the connection to the shared database server is lost. If the connection to the shared database server is lost, the POS computers switch to offline databases. 9. No. Only the store database can be shared across multiple terminals. 10. Close a shift and print a Z-report.

20 MODULE 2: RETAIL POS EXTENSIBILITY TECHNICAL OVERVIEW Overview This module discusses the Microsoft Dynamics AX 2012 POS extensibility and its operations. This includes information on the following: Retail POS Modern POS (MPOS) Note: The Retail Modern POS is comprised of pre-release components. All prerelease features and functionality are preliminary based on current expectations, and are subject to change without notice. Objectives Describe the technical framework and capabilities of Retail POS and Modern POS.

21 Retail POS Capabilities Microsoft Dynamics AX for Retail POS is the point of sale (POS) program for Retail. You can use Retail POS to perform the following tasks: Process sales Operate the cash drawer Scan bar codes Print customer receipts Calculate the sales total Calculate tax Calculate the change that is due back from the amount that is paid Issue product refunds Suspend transactions Process customer loyalty transactions Issue credit memos Issue gift cards Scan bar codes Receive payments Print receipts Create and track customer orders Process debit cards and credit cards Check inventory, plus many more. When the store database is offline, the following operations cannot be performed: Print the X-report Print the Z-report Close a shift Blind-close a shift View blind-closed shifts Suspend a shift, plus more

22 When the connectivity to HQ is not working (CDX: Real time service connection down), the following operations cannot be performed: a. Inventory Lookup b. Gift Card Operations c. Loyalty Operations d. Customer Order Operations, plus more Framework and Extensibility Microsoft Dynamics AX for Retail POS is a fully customizable point of sale (POS) component of Microsoft Dynamics AX 2012 for Retail. You can use Retail POS to process sales, operate the cash drawer, and scan bar codes or print customer receipts, among other business tasks. Lesson Objectives Customize or extend Microsoft Dynamics AX 2012 Retail POS. POS Extension To customize business logic in Retail POS, you must install the Retail Software Development Kit (SDK). The SDK is included with Microsoft Dynamics AX 2012, and includes the following folders: POS Plug-ins Contains code that you use to extend and customize Retail POS. For more information about how to install Retail POS Plug-ins, refer to Install Retail SDK ( ) Commerce Runtime Contains services that you use to extend and customize the online store for Microsoft Dynamics AX 2012 for Retail. The details of this are not explained in this course. POS Clients Contains the code for the Windows Modern Point of Sale Application and Windows Phone Point of Sale Application, together with native code for Peripherals. Hardware Station Contains the code for Hardware Station service that enables you to customize the possibilities of the hardware station.

23 Online Channel Contains the code that you can use to extend the data flow between online retail channels like e-commerce. Retail POS Plug-ins Retail POS Plug-ins contains a set of services and application triggers. Most of the functionality in Retail POS is implemented by using services. For example, you use the Customer service for tracking, adding or deleting customers from the Retail POS register.

24 These services are a collection of the.net Framework assemblies that implement public interfaces. Refer to the POS Extensibility Interface Definition course document for more information. Retail POS loads the services at run time and invokes their functionality through these interfaces. Because Retail POS Plug-ins is included with the C# source code for these assemblies, you can customize or replace services and triggers to extend features in Retail POS, such as calculating taxes. By default, Retail POS Plug-ins is installed in the following directory C:\Users\...\Documents\Retail SDK\POS Plug-ins\. The folder contains two Visual Studio solutions one for services and the other for triggers. Triggers are used to insert custom code before or after Retail POS operations, such as issuing a gift certificate, a customer add, a clear, or a payment, and more. For example: Before you issue a gift card, if you want to do a validation such as whether the customer is eligible to issue a gift card, you can perform the validation here. The Microsoft.Dynamics.Retail.Pos.Contracts.dll assembly exposes all the public interfaces to be used for implementing extensions and customizations to the following Retail POS functionality: Operations Services Triggers Commerce Data Exchange: Real-time Service

25 Operations An operation is an activity that occurs in Retail POS. Operations can be a single step or multiple steps. Refer to the POS Framework course document for more information. Services Services include one or more operations and implement a single, unique interface. You can make partial modifications to an existing service and continue to use the remaining functionality. Or, you can replace the complete service assembly with your own custom code. For more information about how to implement services, refer to How to modify a Form at Interface for Services Features in the Retail POS are services that interact with the program through interfaces. Services include one or more operations and implement a single, unique interface. Each service implements an interface. The developer can make partial or full modifications to the service s project. Microsoft Dynamics AX 2012 is sent out with a collection of core services that can be customized or replaced by using Retail POS Plug-ins. For descriptions of all the services interfaces that are available in Retail POS, refer to Interfaces for Services."( ) Triggers Triggers are events that are raised by Retail POS that you can use to insert custom code before or after operations. There are two types of triggers: Pre-triggers Post-triggers Refer to the POS Framework course document for more information. Interface for Triggers Similar to services, triggers also implement unique interfaces. The developer can use triggers to perform pre-validations and post validations. Each trigger interface has a set of methods that can be extended by the developers for customization. Pre-triggers provide another layer of verification and can return false if the operation should be canceled. Post-triggers let you respond to an operation after it is finished. Triggers can be extended in the same manner as services. For descriptions of all the triggers interfaces that are available in Retail POS, refer to Interfaces for Triggers.( )

26 Technical Background of Retail POS Retail POS is a Windows Forms based solution that is designed to include extensibility. It uses the Microsoft MEF framework to manage dependency injection and provide Inversion of control through which extensibility is performed. Retail POS uses Microsoft Synch framework for Synching Offline Database and Channel Database. Development Requirements Some development requirements for Retail POS include the following: Knowledge of C# and.net Visual Studio experience Knowledge of Windows Forms development How to read, understand and write OOPS based applications Modern POS Capabilities Modern POS includes the following capabilities: Supports most of the capabilities that are provided by Retail POS except for the limitations of hardware capabilities to interact with Windows 8 Framework. There is no offline capability and uses RTS for order creation. Supports the hardware station feature that can be used to remote print and uses hardware that is not attached directly to the POS computer.

27 Framework and Extensibility Figure 2-1 : Modern POS Architecture Source Code Unlike Retail POS, the complete Source code for Modern POS is available with Retail SDK. This lets you customize Modern POS. Open Framework Information about the open framework includes the following: Modern POS uses the Rest API that is provided by Retail Server and also the data that is received is in the ODATA format that is a Universal Format that is used by Microsoft and other third-party software vendors. More information about ODATA can be found at The Rest API is fast becoming the most used standard for the communication between the Server and clients. The Retail server component uses these universally accepted components and this helps make the customization easier.

28 Figure 2-2 : Technical Overview of Retail POS Requires Windows 8 computer real-time or Intel architectures Application is deployed and updated by using PowerShell Requires Activation from the back office, and Retail Server is also configured through the same application Development Requirements Development requirements include the following: Windows 8 Intel Architecture Visual Studio Experience HTML5 and Javascript knowledge Knowledge of web APIs with HTTP C# and.net fundamental knowledge

29 Commerce Data Exchange: Real-time Service Calls Retail POS can make real-time calls to Microsoft Dynamics AX 2012 by using the Commerce Data Exchange: Real-time Service. This service provides real-time, synchronous communication between Microsoft Dynamics AX 2012 and individual Retail POS terminals. Lesson Objectives Explain the real-time service functionality of Microsoft Dynamics AX 2012 POS. Real-time Service Calls Retail POS uses real-time service calls to start the Retail POS functionality, such as Issue Gift Card or Create Customer. You can create custom, real-time service functionality in Retail Headquarters and call the functionality from Retail POS.

30 Module Review Module Review and Takeaways Elements discussed in this module include a brief description of how to extend Retail POS, the Retail POS Plug-ins operations, and the services, triggers and real-time services. Tools Tools to use in Retail POS include the following: Visual Studio 2010 Ultimate or a more recent version to customize Microsoft Dynamics AX 2012 POS. Morphx development site to customize the Real-time service that is used in headquarters. Test Your Knowledge Test your knowledge with the following questions. 1. How is Retail POS plug-ins used? 2. When is POS Plug-ins used? 3. Describe the two main components of Retail POS plug-ins. 4. When should Real-time services be used? 5. Explain the difference between services and triggers. 6. Using which Framework Modern POS is created? 7. What is a REST API and How it is used in Retail Server?

31 Test Your Knowledge Solutions MODEL ANSWER: 1. Retail POS Plug-ins contain sets of services and application triggers that are used to extend POS. 2. To extend or customize POS. 3. Services and triggers 4. Any real-time, synchronous communication between Microsoft Dynamics AX 2012 and individual Retail POS terminals like gift card, or loyalty. 5. Services contains the core business logic and triggers are events that are raised by Retail POS that let you insert custom code before or after operations. 6. Modern POS is created using Windows 8 Modern Architecture. 7. The Rest API is fast becoming the most used standard for the communication between the Server and clients. The Retail server component uses these universally accepted components and this helps make the customization easier.

32 MODULE 3 - DEVELOPMENT AND CUSTOMIZATION OF RETAIL POS Module Overview This module describes how to extend and customize the Retail POS on Microsoft Dynamics AX 2012 R3. The module covers the following topics on Retail POS extensibility Customizing Retail POS Themes o POS Skins o Creating New Skins o Set Color Properties User Interface Extensibility o How to modify a form in Retail POS Trigger Extensibility o How to modify the trigger project Services Extensibility o How to modify the services project Blank Operations Extensibility o Setup a blank operation o Add custom logic to the blank operation Custom Fields on POS Layouts Real Time Service Extensibility o Extending the RetailTransactionServiceEx Class POS Database Tool Extensibility POS Payment Connector

33 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Retail POS Themes This lesson describes how to change Microsoft Dynamics AX for Retail POS registers by creating new Retail POS skins. To create or modify existing Retail POS skins, you must obtain a license from DevExpress. Retail POS uses DXExperience Winforms that are created by DevExpress. Although you can develop your own forms without using DevExpress, we recommend that you use these forms for consistency. Lesson Objectives Explain how to create or modify existing Retail POS skins. 03-2

34 Module 3: Development and Customization of Retail POS POS Skins Create a New Skin To create a new skin, follow these steps. 1. Browse to the SkinEditor tool. This tool is typically found at <root>\program Files (x86)\devexpress \Components\Tools\Windows Forms (where is the version number of the product). 2. Double-click the SkinEditor icon to start the tool. 3. Click File->New to open the New Project window. 4. Set the Project Name to MyFirstCustomSkin. 5. Change the Template Skin: field from DevExpressStyle to Office 2010 Blue by using the drop-down arrow. 6. Set the Skin Name: field to MyFirstCustomSkin, and then click the OK button. Now the new skin project is installed in the SkinEditor tool, and lists the User Interface (UI) elements that are called Products. For the rest of this topic, Products will be known as controls. 03-3

35 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Set Color Properties on the New Skin To set the color properties on the new skin, follow these steps. 1. Select the common property from the SkinEditor tool. 03-4

36 Module 3: Development and Customization of Retail POS 2. Set the Common > Control color property to Blue. 3. Set the Common > ControlText color property to White. 4. Click File->Save. 5. Convert the project into an assembly that will be used by Retail POS. Click File->Create Assembly. You should see a confirmation dialog similar to the following: 03-5

37 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization The newly generated skin assemblies are put in the <root>:\users\<username>\documents\my DXSkins\ directory. There will be a folder in that directory with the same name as your skin, in this case MyFirstCustomSkin. Inside that folder, you will find a MyFirstCustomSkin.dll. Start Retail POS with the New Skin For Retail POS to install the new skin, you must put the skin assembly in the Retail POS runtime folder. Copy the MyFirstCustomSkin.dll to the Skins folder in the Retail POS runtime directory. You must also make Retail POS aware of the new skin. Use Commerce Data Exchange To use Commerce Data Exchange follow these steps. 1. Open Microsoft Dynamics AX for Retail Headquarters, and then browse to Retail > Setup > POS > Profiles > Visual Profiles. 2. Right-click Theme on the drop-down menu, and then click View Details. 3. Click the New button, and then set the Retail POS skin name field to MyFirstCustomSkin. 4. Close the Retail POS skins form, and then with the Retail POS visual profiles form open, set Theme on the drop-down menu to MyFirstCustomSkin. 5. Close the Retail POS visual profiles form. 03-6

38 Module 3: Development and Customization of Retail POS 6. Browse to Retail >Periodic >Data Distribution >Distribution Schedule. Select the 1090 job and then click the Run directly button. Doing this updates the new skin to Retail POS. You can run the following query against the AXRetailPOS database to make sure that this procedure worked: SELECT RETAIL POSSKINNAME, * from RetailVisualProfile 7. Start Retail POS and the new skin s visualization effects should display similar to the following image. 03-7

39 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization User-Interface Extensibility User-Interface Extensibility Overview Microsoft Dynamics AX for Retail POS introduces a new way to customize forms by using the Interaction service. Multiple developers can use this service to customize one or more forms in one service. If there are multiple customizations, the Interaction service installs only the first customization it finds for a form. This module also explains how to customize forms that are not part of the Interaction services. 03-8

40 Module 3: Development and Customization of Retail POS How to Modify a Form in Microsoft Dynamics AX 2012 R3 Retail POS This lesson explains how to modify the Microsoft Dynamics AX 2012 R3 Retail POS forms in Interaction service and other services forms. Lesson Objectives Explain how to customize a form by using the InteractionDefault service. Explain how to customize forms in POS Plugins without having to use the InteractionDefault service. Customize Forms by Using InteractionDefault Service Forms that use this new pattern are included in the InteractionDefaults service. The list is located at \services\interactiondefault\winformstouch. 03-9

41 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization To customize the Interaction form, follow these steps. 1. In the folder where you installed the Retail POS SDK, open the Microsoft Dynamics AX for Retail POS Plug-ins folder. 2. Open the Services folder and double-click the Services Visual Studio solution file. In this step, you override the LogOnForm form. This form has a dependency on the ManagerAccessForm. 3. To change the background color, right-click the LogOnForm.cs from 03-10

42 Module 3: Development and Customization of Retail POS InteractionDefaults project, and then select View Code. 4. Add the following code to the OnLoad() method for the first line of the method to change the back ground color to dark red. Sample code to change the form background color ((Form)this.BackColor = Color.DarkRed; 5. Compile the InteractionDefaults project. 6. Copy the new assembly to the Pos\Extensions folder or \Extensions in the Root Folder (RetailPOS), and then start Retail POS. The LogOnForm should resemble the following: How to Modify a Form in the Microsoft Dynamics Ax 2012 R2/R3 POS Item Search Form This topic explains how to add a new column to the existing Item search form and view that form in the POS UI. For example, you will add the column SerachName of the Item in the Item search form. You will fetch this column value from the ECORESPRODUCT table

43 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization To customize the ItemSearch form, follow these steps. 1. By default, in the folder where you installed the Retail POS Software Development Kit (SDK), it will be located at C:\Users\...\Documents\Retail SDK\POS Plug-ins. 2. Open the Microsoft Dynamics AX for Retail POS Plug-ins folder. For more information about how to install the Retail SDK, refer to the Installation guide. 3. Open the Services folder, and then double-click the Visual Studio solution file, services.sln. 4. Open the Services folder, and then double-click the Services Visual Studio solution file. 5. Click the Dialog project, and then expand the WinFormsTouch Folder. Click frmitemsearch.cs and select view code. To modify the forms, you must have a DevExpres license. 6. Add the following code in the variable declaration section of the frmitemsearch class to declare the new column. private DevExpress.XtraGrid.Columns.GridColumn colsearchstring; 7. Initialize the column in InitializeComponent() method. this.colsearchstring = new evexpress.xtragrid.columns.gridcolumn(); 8. You must add the column in the gridview to appear in the form. For this include the new column in the range and set the column properties in InitializeComponent() method. this.grdview.columns.addrange(new DevExpress.XtraGrid.Columns.GridColumn[] { this.colitemname, this.colitemid, this.colsearchstring, this.colitemprice, this.colitemunitofmeasure, this.colitemtaxrate, this.colitemownthirdproduc, this.colitemroundtrunc}); // // colsearchstring // this.colsearchstring.caption = "Search name"; this.colsearchstring.fieldname = "SEARCHNAME"; this.colsearchstring.name = "colsearchstring"; this.colsearchstring.optionscolumn.allowsort = DevExpress.Utils.DefaultBoolean.False; this.colsearchstring.sortmode = DevExpress.XtraGrid.ColumnSortMode.Custom; this.colsearchstring.visible = true; this.colsearchstring.visibleindex = 0; this.colsearchstring.width = 161; 03-12

44 Module 3: Development and Customization of Retail POS 9. Now, modify the Item Search query to include the new column in the search criteria so that you can filter and display in the GetItemList() method. string query = string.format("select ITEMID, ITEMNAME, '' AS ITEMPRICE,I.SEARCHNAME, I.UNITOFMEASURE, I.INVENTPRODUCTTYPE_BR " + "FROM ( " + " SELECT IT.INVENTPRODUCTTYPE_BR, IT.ITEMID, COALESCE(TR.NAME, IT.ITEMNAME, IT.ITEMID) AS ITEMNAME, IT.DATAAREAID, ISNULL(IM.UNITID, '') AS UNITOFMEASURE, ROW_NUMBER() " + " OVER (ORDER BY IT.{0} {1}) AS ROW " + " FROM ASSORTEDINVENTITEMS IT " + " JOIN INVENTTABLEMODULE IM ON IT.ITEMID = IM.ITEMID AND IM.MODULETYPE = 2 " + " JOIN ECORESPRODUCT AS PR ON PR.RECID = IT.PRODUCT " + " LEFT JOIN ECORESPRODUCTTRANSLATION AS TR ON PR.RECID = TR.PRODUCT AND TR.LANGUAGEID " + " WHERE IT.STORERECID {2}) I " + "WHERE I.DATAAREAID=@DATAAREAID AND I.ROW AND I.ROW ", sortby, asc, search); 10. Build the project in release mode and replace the Dialog.dll in the Retail POS\Services\Extension folder. This path is applicable only for Microsoft Dynamics AX 2012 R2. For later versions use POS\Extensions. 11. Start the POS, and then click the Product search button that is added in the POS layout. The Item search form should resemble the following form: 03-13

45 03-14 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization

46 Trigger Extensibility Module 3: Development and Customization of Retail POS Trigger Extensibility Overview Triggers are used to capture events that start before and after Microsoft Dynamics AX for Retail POS operations. You can insert custom logic before the operation runs or after it is completed. The Retail POS IOperationTriggers interface introduces new generic triggers called the PreProcessOperation and PostProcessOperation. Lesson Objectives Explain how to extend triggers in Retail POS. Explain how to customize triggers and how the triggers are used

47 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization How to Modify the Trigger Project This lesson explains how to modify the triggers. To extend the triggers, you will use the operation triggers as an example and then customize these triggers. You will update the GiftCardBalance operation by asking the customer if he or she wants to add his or her balance after it is verified. How to Modify the OperationsTrigger Project To modify the OperationsTrigger project, follow these steps. 1. Back up the existing assembly before any modification. If you must revert for any reason, the original assemblies will be available in such scenarios. 2. Browse to the folder where the Retail POS Software Development Kit (SDK) is installed. By default, it will be located at C:\Users\...\Documents\Retail SDK\POS Plug-ins\. 3. Open the Triggers folder, and then double-click the Triggers Visual Studio solution file. 4. Add a reference to the following assemblies that are located in the Retail POS runtime folder: o DevExpress.Utils.v11.2.dll o POSProcesses.dll o System.Windows.Forms.dll 5. Update the GiftCardBalance operation by asking the customer if he or she wants to add to his or her balance after it is verified. 6. Open the OperationTriggers.cs file and locate the PostProcessOperation method. 7. Add the following C# code: public void PostProcessOperation(IPosTransaction postransaction, PosisOperations posisoperation) { if (posisoperation == PosisOperations.GiftCardBalance) { using (var form = new LSRetailPosis.POSProcesses.frmMessage("Would you like to add to your gift card amount?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSForm(form); if (form.dialogresult == DialogResult.OK) { //reference existing or new logic for adding money to customer gift cards } } } 03-16

48 Module 3: Development and Customization of Retail POS else { LSRetailPosis.ApplicationLog.Log("IOperationTriggersV1.PostProcessOperatio n", "After the operation has been processed this trigger is called.", LSRetailPosis.LogTraceLevel.Trace); } } 8. After you build the project, put the assembly in the Retail POS\Services\Extensions folder. This path applies only to Microsoft Dynamics AX 2012 R2. For later versions, use POS\Extensions. 9. Start the POS runtime and perform the Gift card balance operation. 10. After you receive the balance, the dialog box appears with the customer message that is written in the post process

49 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Services Extensibility Services Extensibility Overview Microsoft Dynamics AX 2012 includes a collection of core services that can be customized or replaced by using Retail POS Plug-ins. You can also create new services that can be started from existing services or triggers. Lesson Objectives Explain how to extend services in Microsoft Dynamics AX 2012 R2 POS

50 Module 3: Development and Customization of Retail POS How to Modify the Services Project Services include one or more operations and implement a single, unique interface. You can change an existing service and continue to use the remaining functionality. Lesson Objectives Explain how to modify the Z-Report by using EOD services project. How to Modify the Z-Report If, in the Z-report, you want to print the count of a returned transaction in the shift, follow these steps. 1. Before the modification, take the backup of the existing assembly so that the original assemblies will then remain available if you must revert to them. 2. Browse to the folder where you installed the Retail POS Software Development Kit (SDK). By default, this folder will be located at C:\Users\...\Documents\Retail SDK\POS Plug-ins\. 3. Open the Services folder, and then double-click the Services Visual Studio solution file. 4. Browse to the EOD project, and then double-click the BatchPrinting.cs file and add the following new method: public static int CalculateReturnransactionCount(Batch batch) { int count = 0; DbConnection connection = ApplicationSettings.Database.LocalConnection; if (connection.state!= ConnectionState.Open) connection.open(); string query = "SELECT COUNT(S.TRANSACTIONID) FROM RETAILTRANSACTIONTABLE H INNER JOIN RETAILTRANSACTIONSALESTRANS S ON " + "H.TRANSACTIONID = S.TRANSACTIONID AND H.STORE = S.STORE AND H.TERMINAL = S.TERMINALID AND H.DATAAREAID = S.DATAAREAID " + "WHERE H.STORE " + "AND H.BATCHTERMINALID " + "AND H.DATAAREAID " + "AND H.BATCHID " + "AND S.QTY > 0"; using (DbCommand dbcommand = new SqlCommand()) { dbcommand.connection = connection; dbcommand.commandtext = query; dbcommand.parameters.clear(); if (batch!= null) { dbcommand.parameters.add(new 03-19

51 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization batch.storeid)); dbcommand.parameters.add(new batch.terminalid)); dbcommand.parameters.add(new batch.batchid)); dbcommand.parameters.add(new ApplicationSettings.Database.DATAAREAID)); } count = DBUtil.ToInt32(dBCommand.ExecuteScalar()); } return count; 5. Locate the Print method (this Batch batch, ReportType reporttype) in the BatchPrinting.cs file and then add the following line of code after the line reportlayout.prepareheader(batch, reporttype); reportlayout.appendline(string.format("return count- {0}",CalculateNegativeTransaction(batch))); 6. After you do this, build the project and put the assembly in the Retail POS\Services\Extensions folder. This path applies only to Microsoft Dynamics AX 2012 R2. For later versions, use POS\Extensions. 7. Start the POS runtime and perform the Z-report operation to view the changes in the report

52 Module 3: Development and Customization of Retail POS Blank Operation Extensibility Blank Operation Extensibility Overview You can use Blank Operations to extend Microsoft Dynamics AX for Retail Point-of-Sale (POS) by adding custom logic to the Retail POS register buttons. In the Retail POS register design layout, you can add many blank operation buttons and specify the operations information for each button. Later in this module, you will learn how to add a blank operation and specify the operation information. Lesson Objectives Explain how to create a blank operation. Add the blank operation to the POS layout

53 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Blank Operation on the Retail POS Register This lesson explains how to set up a blank operation and add custom logic to the blank operation Set Up a Blank Operation on the Retail POS Register To set up a blank operation on the Retail POS register, follow these steps. 1. Start Retail POS. Right-click the Cashier Tasks button, and then select Button Properties. The Configure button form opens. 2. In the Action drop-down menu, select Blank Operation. The Operation number field is a string value that Retail POS uses to identify the Blank Operation. Because you can send multiple blank operations to Retail POS at the same time, you must give each blank operation a unique identity so that Retail POS can distinguish which blank operation to execute. You can use the Blank Operation param field to send an optional string parameter. The Operation number and Blank Operation param values combine to form the method signature of the Blank Operation. In this scenario, set the Operation number to MyTask and leave the Blank Operation param value to My Param. 3. You can use the fields in the Appearance tab on the right-side of the Configure button form to customize the appearance of the button. For example, you can set the text value that displays on the button when Retail POS is started. Change the button name to MyOperation, as shown in the following image: 03-22

54 Module 3: Development and Customization of Retail POS Add Custom Logic to the Blank Operation To add custom logic to the Blank Operation, follow these steps. 1. Browse to the folder where you installed the Retail POS Software Development Kit (SDK). By default, the folder will be located at C:\Users\...\Documents\Retail SDK\POS Plug-ins\. 2. Open the Services folder, and then double-click the Services Visual Studio solution file. 3. Browse to the Blank Operations project and expand it. 4. Right-click the reference node and then click Add reference and browse for the assemblies POSProcessess in the Retail POS folder and then select it, and then click OK. 5. Open the BlankOperation.cs file and find the BlankOperation method, as shown in the following C# code example: public void BlankOperation(IBlankOperationInfo operationinfo, IPosTransaction postransaction) Notice that the BlankOperation method takes two parameters: an operationinfo object and a postransaction object. The operationinfo object contains the MyTask operation number and the My Param operation parameter that you set on the MyOperation button of the Retail POS register. Retail POS uses that Operation number to identify the Blank Operation that is being passed. The postransaction object contains all the information about the current transaction. Several Blank Operations can be handled in the one BlankOperation method. Use a C# Switch statement on the operationinfo.operationid value to capture the specific Blank Operation that you must have. You can do this by adding the following code to the BlankOperation method. public void BlankOperation(IBlankOperationInfo operationinfo, IPosTransaction postransaction) { switch (operationinfo.operationid) { case "MyTask": //TODO: insert method call to your custom logic LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSStatusPanelText("My task operation is clicked"); operationinfo.operationhandled = true; break; } 6. Compile the BlankOperations project. 7. Copy the new assembly to the POS\Services\Extension folder, and then start Retail POS. This path applies only for Microsoft Dynamics AX 2012 R2. For 03-23

55 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization later versions, use POS\Extensions. 8. Click the Cashier Tasks button, and then click the MyOperation button. You will receive the following message in the status panel: Custom Fields on POS Layouts This lesson explains how to add custom fields to Point-of-Sale (POS) layouts. In Microsoft Dynamics AX for Retail 2012 R2 and R3, you can also add custom fields on POS Receipt layouts. Lesson Objectives Explain how to add fields to the receipt layout

56 Module 3: Development and Customization of Retail POS Custom Fields on the POS Layout This lesson explains how to add fields to the receipt. You will learn how to add a line item field that shows the time that the item is added to a transaction and a header field that shows the total quantity of the whole transaction. Add Fields to the Receipt Layout To create custom fields, follow these steps. 1. When you create the custom fields, as with the custom fields for till layout, receipt fields are defined in Headquarters on the Custom Fields form (Retail > Setup > POS > Profiles > Custom fields). For this example, you will create two fields, both of the type Receipt: TotalQty and TimeScanned. Any fields that are created in custom fields are available in all three sections of the receipt format designer Header, Lines, and Footer. The Caption text ID is a unique identifier for the text that will show in the receipt format designer (unlike the custom fields for till layout that use the Name in the designer, and the Caption text ID in the POS). The Caption text ID is still stored in the RetailLanguageText table and is only used at Headquarters. To add the custom fields to the Receipt Layout, follow these steps. After the fields are created they can immediately be added to any receipt format. 2. Browse to Retail > Setup > POS > Receipt formats, and then click the Designer button for any receipt format

57 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization If the fields and labels are created correctly, you should be able to find the fields and labels in the field list for any of the three sections

58 Module 3: Development and Customization of Retail POS Note: You did not correctly create the RetailLanguageText record, if something appears that resembles (22000)??Missing String??. 3. Find a place to drag the Total Quantity field and the Time Scanned field to the header section and give each field a hard-coded text label. Make sure that you press the Save button when you are finished

59 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization To connect the custom fields in code, follow these steps. 1. Before the modification, take the backup of the existing assembly so that the original assemblies remain available if you must revert to the original assemblies. 2. Browse to the folder where you installed the Retail POS Software Development Kit (SDK). By default, it will be located at C:\Users\...\Documents\Retail SDK\POS Plug-ins\. 3. Open the Services folder, and then double-click the Services Visual Studio solution file. 4. Locate the FormModulation.cs file in the Printing service. Values for the header field and the footer field are handled in the GetInfoFromTransaction() method and for lines it is the GetInfoFromSaleLineItem() method. Locate the switch statement for GetInfoFromTransaction() from the following code example. switch (iteminfo.variable.toupperinvariant().replace(" ", string.empty)) { case "DATE": return ((IPosTransactionV1)theTransaction).BeginDateTime.ToShortDateString(); case "TIME24H": return ((IPosTransactionV1)theTransaction).BeginDateTime.ToString("HH:mm"); 03-28

60 Module 3: Development and Customization of Retail POS 5. To print a value for the custom field, you have to add the field name to the switch statement. case "TOTALQTY": return thetransaction.saleitems.sum(s => s.quantity).tostring(); To use PartnerData fields for line items, follow these steps. The header example used a simple calculated field to print a value. However, you want to extend the RetailTransaction object to store extended values that can then be printed on the receipt. You can do this with the PartnerData object that is introduced in Microsoft Dynamics AX for Retail 2012 Feature Pack. The PartnerData object is a dynamic collection that can be defined at run time instead of compile time. Fields can be stored at the transaction level, the sales line level, or the payment line level. These fields are then stored in transaction object and can be used in triggers or services. In the example, you will create a field that is named TimeAdded on the sales line and then use it when you print the receipt. 1. Open the Triggers solution in Visual Studio and browse to the ItemTriggers project. Now you have to add several things to the project before you add the code. o o o The PartnerData object relies on a feature that is introduced in C# 4.0. To use PartnerData in any of the POS code, the project must add a reference to Microsoft.Csharp The example uses the SaleLineItem POS object. This object is in the Transaction class. The project also requires a reference to the Transaction.DLL file from the POS installation folder. Make sure that you set the Copy Local property to False when you add this reference. Finally, a using LSRetailPosis.Transaction.Line.SaleItem; line must be added to the top of the ItemTriggers.cs file. 2. After this is set up, you must add the following lines to the PreSale() method: using LSRetailPosis.Transaction.Line.SaleItem; [...] public void PreSale(IPreTriggerResult pretriggerresult, ISaleLineItem salelineitem, IPosTransaction postransaction) { SaleLineItem s = (SaleLineItem)saleLineItem; s.partnerdata.timeadded = System.DateTime.Now.ToString("HH:mm:ss"); 03-29

61 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 3. Now you must read the TimeAdded value when you print sales lines on the receipt. This is performed in the FormModulation.cs again, this time in the GetInfoFromSaleLineItem() method. switch (iteminfo.variable.toupperinvariant().replace(" ", string.empty)) { case "TIMESCANNED": returnvalue = saleline.partnerdata.timeadded; break; case "TAXID": returnvalue = saleline.taxgroupid; break; 4. Compile the ItemTriggers.dll and Printing.dll and then copy them to the POS\Services\Extension subfolder in the POS installation. This path applies only to Microsoft Dynamics AX 2012 R2. For later versions, use POS\Extensions. 5. Start POS and print a receipt by doing a sale transaction so that you will able to view the modification in POS. Similar to this, you can also add custom fields on the following: Payment Grid Product Receipt Grid Totals Area 03-30

62 Module 3: Development and Customization of Retail POS Real-Time Services Extensibility With Real-time Service, retail clients can interact with Microsoft Dynamics AX retail functionality in real time. You can extend Commerce Data Exchange: Real-time Service by adding extension methods to the RetailTransactionServiceEx class. [For more details see ) The RetailTransactionServiceEx class is used as a service class between Microsoft Dynamics AX and the Point-of-Sale (POS). Lesson Objectives Explain how to extend Commerce Data Exchange - Real time service for POS

63 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Extend the RetailTransactionServiceEx Class To extend Real-time Service, you must create a new method in the RetailTransactionServiceEx class. All transaction service new methods should be created in this class. RetailTransactionServiceEx Class To extend the Real-time service, the methods must meet the following criteria: They must be a public static method. The return value must be a container length two or more. The first two elements must be a Boolean value that indicates whether the method call is successful and a String value that you can use for a comment or error message. The other items in the container can be of any type. This includes nested containers. The method parameters must be one of the following Microsoft Dynamics AX primitive: o o o o o o o Boolean date int int64 str guid Real To add a method, follow these steps. Example: 1. In the Application Object Tree (AOT), right-click Classes > RetailTransactionServiceEx, point to New, and then click Method. 2. Add the custom business logic. The following example shows a method that takes a customer account number and returns a greeting message that uses the customer s name. For example, if customer account number 1001 is associated with a customer named Sandy, the method would return Hello Sandy! public static container Hello(AccountNum accountnumber) { CustTable custtable; DirPartyTable dirpartytable; container result = [false, '']; 03-32

64 Module 3: Development and Customization of Retail POS if (accountnumber) { select firstonly Name from dirpartytable exists join custtable where custtable.accountnum == accountnumber && dirpartytable.recid == CustTable.Party; if (dirpartytable) { result = [true, 'Success!', strfmt("hello %1!", dirpartytable.name)]; } else { result = [false, 'Customer not found']; } } else { result = [false, 'accountnumber is null.']; } } return result; Here, you are calling the new method by using the POS BlankOperation. public void BlankOperation(IBlankOperationInfo operationinfo, IPosTransaction postransaction) { switch (operationinfo.operationid) { case "MyTask": try { var response = Application.Instance.TransactionService.InvokeExtension("Hello", "2014"); if (response.count == 1) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSStatusPanelText(response [0] as string); } } catch (CommunicationException ex) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSStatusPanelText("Request failed: {0}", ex.message); } operationinfo.operationhandled = true; break; } } 03-33

65 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization After you do this, compile the BlankOperations project and copy the new assembly to the POS\Services\Extension folder and then start Retail POS. This path applies only to Microsoft Dynamics AX 2012 R2. For later versions, use POS\Extensions. Example: 3. Click the Cashier Tasks button, and then click the MyTask button. (Add the MyTask blank operation button if it is not yet added). For more information, refer to the blank operation extension document for how to add a custom blank operation button and how to customize this button). If the account number exists it displays the customer name on the status panel. 4. To modify the existing methods in transaction service class (RetailTransactionService), add a new pre-event handler or a post event handler for that method and write the new method logic in the RetailTransactionServiceEx. If a gift card is issued and you want to update a web service, create a new Post handler and set the class as RetailTransactionServiceEx and the method as UpdateGiftCardService. UpdateGiftCardService is the new method that is implemented in the RetailTransactionServiceEx class to update the gift card web service. public static void UpdateGiftCardService (XppPrRetail POStArgs _args) { // All the gift card arguments can be fetched from the _args parameter // write your logic to update the service } 5. To create a post handler, right-click the giftcardaddto method, and then select New Event Handler Subscription. 6. Now, set the properties shown as follows: By doing it in this manner, both the existing code and the custom code are managed separately

66 Module 3: Development and Customization of Retail POS POS Database Tool Extensibility for Store and Offline Database The Retail Store Database Utility is used to create the store and the offline database. The utility is also used to create a configuration file that is used to identify Point of Sale (POS) registers. By default, the tool will create the standard retail POS tables for both the store and the offline database. This module explains how to extend this tool to execute custom SQL scripts for both the store and the offline database. Lesson Objectives Explain how to extend the Retail Store Database utility to execute custom SQL scripts

67 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization CreateDatabase Service The CreateDatabase services project is part of the Retail Software Development Kit (SDK). The SDK can be used to create and extend the retail database. This lesson explains how to extend the CreateDatabase project to execute custom SQL scripts. You will create a custom SQL script and try to execute the script by using the retail store database utility. After the tool successfully runs, you can verify that the commands in the custom script are executed and that the commands updated the POSISINFO table with a current version. Extend CreateDatabase Service To extend the CreateDatabase service, follow these steps. 1. Before the modification, make a backup of the existing assembly so that the original assemblies will remain available if you must revert to them. 2. Browse to the folder where you installed the Retail POS SDK. By default, it will be located in C:\Users\...\Documents\Retail SDK\POS Plug-ins\. Open the Services\CreateDatabase folder and double-click the CreateDatabase project file and then add the following library references from the Retail POS folder: o o o o o o o o DataAccess EntityFramework POSResources SystemSettings Transaction Microsoft.Dynamcics.Retail.Pos.Contracts Microsoft.Dynamcics.Retail.Pos.DataEntity Microsoft.Dynamcics.Retail.Pos.DataManager 1. Right-click the upgrade folder in the project and then click Add- >New Item and in the dialog box. Select Text File and name it Upgrade sql, and then click OK. This creates a blank text file in the Upgrades folder

68 Module 3: Development and Customization of Retail POS SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO 2. Now, copy the following statement into that file and then click the Save icon. CREATE TABLE [dbo].[extensionsample]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [StoreNumber] [nvarchar](50) NOT NULL, [StoreName] [nvarchar](50) NULL, CONSTRAINT [PK_ExtensionSample] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO 3. Double-click the POSISUPGRADES.xml file in the Upgrades folder and then add the following section in the XML file after the last </POSISUPGRADES> end section. <POSISUPGRADES> <UPGRADEVERSION> </UPGRADEVERSION> <UPGRADESCRIPT>Upgrade sql</UPGRADESCRIPT> </POSISUPGRADES> 4. The overall POSISUPGRADES.xml file will resemble the following: <?xml version="1.0" standalone="yes"?> <NewDataSet> <xs:schema id="newdataset" xmlns="" xmlns:xs=" xmlns:msdata="urn:schemasmicrosoft-com:xml-msdata"> <xs:element name="newdataset" msdata:isdataset="true" msdata:maindatatable="posisupgrades" msdata:usecurrentlocale="true"> <xs:complextype> <xs:choice minoccurs="0" maxoccurs="unbounded"> <xs:element name="posisupgrades"> <xs:complextype><xs:sequence> <xs:element name="upgradeversion"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:maxlength value="15" /> </xs:restriction> </xs:simpletype> </xs:element> <xs:element name="upgradescript" minoccurs="0"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:maxlength value=" " /> </xs:restriction> </xs:simpletype> </xs:element> </xs:sequence> </xs:complextype> 03-37

69 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization </xs:element> </xs:choice> </xs:complextype> </xs:element> </xs:schema> <!-- Upgrade Id : AppMajor.AppMinor.DbVersion.ReservedForPartners --> <POSISUPGRADES> <UPGRADEVERSION> </UPGRADEVERSION> <UPGRADESCRIPT>Upgrade sql</UPGRADESCRIPT> </POSISUPGRADES> <POSISUPGRADES> <UPGRADEVERSION> </UPGRADEVERSION> <UPGRADESCRIPT>Upgrade sql</UPGRADESCRIPT> </POSISUPGRADES> </NewDataSet> Note: In the POSISUPGRADES.xml always enter the Upgrade Version as a numeric. The Upgrade Version should be greater than the earlier version. The assembly will always query the XML for the script version which is greater than the base version. If you enter a lesser or non-numeric value the script will not be executed. Example: If the earlier upgrade script version is , then the next version will be and so on. The script file name can be any name in the XML file. 5. Compile the project and put the assembly in C:\Program Files (x86)\microsoft Dynamics AX\60\Retail Database Utility\Services. 6. Start the RetailDatabaseUtility and enter the store server and the offline server name. Also enter the database details together with the Store, terminal and Datatarea ID, and then click continue. In the dialog box, you can view the customer script that is being executed and the ExtensionSample custom table that is being created in both the store and the offline database

70 POS Payment Connector Module 3: Development and Customization of Retail POS Microsoft Dynamics AX 2012 R2 /R3 includes a unified payment processing architecture for processing credit card transactions. You can extend this architecture by creating your own payment connector. This payment connector can be used for a single assembly in three locations retail stores (POS registers), online stores, and the Microsoft Dynamics AX Accounts Receivable module. Microsoft Dynamics AX 2012 R2/R3includes one payment connector the Dynamics Payment Connector. This payment connector is used to connect to the Dynamics Online Payment Services provider. You can extend Payment Services to include an additional payment connector by implementing a specific interface. After you deploy a new payment connector, all the Microsoft Dynamics AX payment configuration pages display the required fields to configure the payment connector. After you configure the payment connector, you can validate it, and then use the payment connector on a retail channel. The new payment connector can also support the new touch screen payment terminal devices. Lesson Objectives Explain how to create the payment connector to work on all Microsoft Dynamics channels for payment processing. Disclaimer You can copy, alter, adapt, modify or create derivative works of the Microsoft Dynamics AX Payment Software Development Kit (SDK) and this TemplateConnector for payment card processing. Additionally, you must use the Microsoft Dynamics SDK and the TemplateConnector only with Microsoft Dynamics AX 2012 R2 /R3 in your internal business operations and with valid licenses of Microsoft Dynamics AX You must not permit or authorize any third-party to distribute any of the derivative works of the Microsoft Dynamics AX Payment SDK and the TemplateConnector

71 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Payment Connector You can use the payment connector to connect any Microsoft Dynamics channel to the payment SDK to process payments. You can also use the payment connector to connect to different payment devices, such as Hydra. The payment connector extends from a different interface to achieve the functionality that is described earlier. Some components of the main interface follow: IPaymentManager The Microsoft.Dynamics.Retail.PaymentManager.Reference.IPaymentManager is the interface that is used for all payment devices. This interface exposes the methods and events for handling devices. IPaymentProcessor The Microsoft.Dynamics.Retail.PaymentSDK.IPaymentProcessor is the interface that is used for all payment processing methods. This interface exposes the methods and events for handling payments. ISessionOperation The Microsoft.Dynamics.Retail.PaymentSDK.ISessionOperation is the interface that is used to maintain the session for processing. This interface exposes the methods and events for handling sessions. Some key methods of the payment connector include the following: Methods Authorize Refund Void Description Used to authorize the payment. Used to refund the payment. Used to Void the transaction

72 Module 3: Development and Customization of Retail POS Create a Payment Connector To create the payment connector, follow these steps. 1. Install RetailPOS from the Microsoft Dynamics AX Setup and then unzip the TemplateConnector.zip file. For the TemplateConnector source code, download location and license information, refer to the Microsoft Software License Terms agreement and the developer and demonstration license agreement. 2. Open TemplateConnector.csproj by using Visual Studio. For Visual Studio requirements, refer the Development Environment Requirements document. 3. Right-click the TemplateConnector project, and then click properties. Rename the assembly name to the name that you want the assembly to be called. 4. On the Signing tab, sign your assembly with a strong name key file. This is required if you want to deploy your payment connector to the GAC for the online store

73 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 5. Open TemplateConnector.cs and change the following properties. List the countries that the connector supports. 6. Click View > Task List to display the task list. The task list shows all the elements that you should customize for payment

74 Module 3: Development and Customization of Retail POS Custom Business Logic You can use the template as a basis for the payment connector. However, you must add custom business logic to make it function. The areas in the template that require your attention are marked as TODOs in the task list. For operations, such as authorize, capture, linked refund, and void, you must create logic to call out to your payment provider. The logic can use information from two places merchant properties as they are entered in Microsoft Dynamics AX (IP address, username, password, and so on) and the payment request for this transaction (card number, transaction amount, payment amount, and so on) that is provided by the application. The results of the call to the payment provider are then sent back to the application as a response object. Each of these is a key and, or value data structure. Map the payment request properties and the merchant properties to the data that is required by the provider. When the payment provider returns a response, the data should be extracted and entered in the variables as noted in the example. If you must store a stable state that is returned by the payment provider, you can create new properties in the response property bag. Then you can use these properties in future calls to the payment provider. Merchant properties contain metadata that Microsoft Dynamics AX uses to display a UI to enter the values. The values that are entered by the user in Microsoft Dynamics AX are then automatically passed to the payment provider. In the example, there is a merchant property named IPAddress to show how this is performed

75 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Any error codes that are returned from the payment provider must be mapped to the enumerated error codes in the Microsoft.Dynamics.Retail.Payment SDK. The message that is contained in the error code can be customized if the error code is mapped correctly. Deploy the Payment Connector How to use the connector in the channels is described in the following section. Microsoft Dynamics AX Copy the connector assembly to the Microsoft Dynamics AX client and the following server Connectors directories: %Program Files (x86)%\microsoft Dynamics AX\60\Client\Bin\Connectors %Program Files%\Microsoft Dynamics 03-44

76 Module 3: Development and Customization of Retail POS AX\60\Server\MicrosoftDynamicsAX\bin\Connectors Now, restart the application object server (AOS). Microsoft Dynamics AX for Retail POS Copy the connector assembly to %Pos%\Connectors. (To copy this dll to multiple installations of POS, you can use System Center.) After the connect assembly is installed, start POS. Entering Merchant Properties Merchant properties for the payment connector must be entered in each location that you plan to process card payments. When the assembly is deployed to Microsoft Dynamics AX, it is automatically included in the payment connector options and the custom merchant properties are available in the three forms. Retail Stores In Microsoft Dynamics AX, browse to Retail > Setup > POS > Profiles > Hardware profiles. Select an existing hardware profile or create a new profile. In the EFT Service FastTab, select Payment Connector from the first drop-down menu. The payment connector should then be available to select in the second drop-down menu. After you select it, your merchant properties should display: 03-45

77 03-46 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization

78 Module 3: Development and Customization of Retail POS Accounts Receivable To use the payment connector in the Microsoft Dynamics AX Accounts Receivable module, you must browse to Accounts Receivable > Setup > Payment > Payment services. Create a new payment service and give it a name. Select the payment connector from the Payment connector drop-down menu and complete the merchant properties: 03-47

79 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization LAB EXTENSIBILITY RETAIL POS This lab provides steps on how to extend Blank Operations, Triggers, Services and CDX: Real time Service. Objectives Understand how to create blank operation to and add it to POS layout. Understand how to extend triggers in AX 2012 R3 POS Understand how to extend services in AX 2012 R3 POS Understand how to extend Commerce Data Exchange- Real time service for POS 03-48

80 Module 3: Development and Customization of Retail POS Exercise 1: Blank Operation Extensibility Blank Operations enable you to extend Microsoft Dynamics AX for Retail POS by adding custom logic to the Retail POS register buttons. In the Retail POS register design layout you can add any number of blank operation button and specify the operations information for each button. Later in this guide we will see how to add blank operation and specify the operation information. Exercise Scenario We will add an item to POS transaction and the get the description of the item and try to search the item description in the Web browser by opening the internet explorer with the search text (item description) Task 1: Adding custom logic to the Blank Operation to get item description and search in Bing High Level Steps Detailed Steps using System; Open the Blank Operation project in Visual studio Add Blank Operation on the Retail POS register Adding item to POS transaction Open the Blank Operation project in Visual studio a. Open Retail POS Plug-ins from the folder where you installed the Retail POS SDK. By default it will be C:\Users\...\Documents\Retail SDK\POS Plug-ins\.For more information about how to install Retail POS Plug-ins, see Install the Retail SDK. b. Open the Services folder and double-click the Services Visual Studio solution file. c. Go to the Blank Operations project and expand it. d. Right click the reference node and click Add reference and browse for the assemblies POSProcessess in Retail POS folder and select it and click ok. e. Right-click the BlankOperation project and select properties. In the properties windows click Build and set the Configuration to Release and also change the build mode to Release from the drop down menu in the visual studio menu bar. f. Open the BlankOperation.cs file and add the below line in the namespace section g. Open the BlankOperation method in BlankOperation.cs file and find the BlankOperation method, then copy paste the code inside 03-49

81 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization the method public void BlankOperation(IBlankOperationInfo operationinfo, IPosTransaction postransaction)as shown in the below snippet: public void BlankOperation(IBlankOperationInfo operationinfo, IPosTransaction postransaction) { try { switch (operationinfo.operationid) { case "BingSearch": LSRetailPosis.Transaction.RetailTransaction retailtransaction = postransaction as LSRetailPosis.Transaction.RetailTransaction; if (retailtransaction == null retailtransaction.saleitems.count == 0) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSStatusPanelText("Please add item to transaction"); operationinfo.operationhandled = true; return; } string description = retailtransaction.getitem(operationinfo.itemlineid).description; System.Diagnostics.Process.Start("IExplore.exe", " + description); operationinfo.operationhandled = true; break; } } Catch(Exception ex) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSStatusPanelText(ex.Messa ge); } } h. Compile and Build the BlankOperations project by right clicking the BlankOperation project in Visual studio and select Build. i. Once the build completed (Succeeded message will be displayed in the visual studio output window), copy the BlankOperation.dll assembly from C:\Users\...\Documents\Retail SDK\POS Plugins\Services\BlankOperations\Bin\Release to the Retail Pos\ Extensions folder

82 Module 3: Development and Customization of Retail POS Add Blank Operation on the Retail POS register a. Launch Retail POS by clicking the Retail POS on the start page, and login to POS using the below operator id and password: i. Operator Id: ii. Password: 123 b. If it is first time log on to POS, then POS will display the Shift form, in that please click "Add a new Shift". c. After logging in right-click on the POS button grid area and select Add row. After that a new row will be created with empty buttons. Then right-click any empty button and select Button Properties a new form will popup. d. In the Action drop-down list box, select Blank Operation. The Operation number field is a string value that Retail POS uses to identify your Blank Operation. Because you can send multiple blank operations to Retail POS simultaneously, you must give each one a unique identity for Retail POS to distinguish which ones to execute. e. The Blank Operation param field enables you to send an optional string parameter. The Operation number and Blank Operation param values combine to form the method signature of your Blank Operation. In this scenario, set the Operation number to BingSearch and leave the Blank Operation param value. Adding item to POS transaction a. Add any item to POS by clicking the product search or Sales or product sale or by entering/scanning the item barcode. If you click sales button, categories of item will be displayed, in that click any category and then click any item from that category. The clicked item will be added to POS transaction and then click the newly added blank operation button it should open the internet explorer with Bing search web page and search text as your item description

83 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Results Bing search result will be displayed in the internet explore with search text as item description. Exercise 2: Request for Loyalty card by using Triggers Triggers are used to capture events that fire before and after Microsoft Dynamics AX for Retail POS operations. You can insert custom logic before the operation runs or after it has completed. Exercise Scenario We want to prompt the cashier for loyalty card request from the customer after the first item added to transaction Task 1: Item Trigger Extensibility High Level Steps Perform loyalty prompt request. Detailed Steps Perform loyalty prompt request. a. Open Retail POS Plug-ins from the folder where you installed the Retail POS SDK. By default it will be C:\Users\...\Documents\Retail SDK\POS Plug-ins\.For more information about how to install Retail POS Plug-ins, see Install the Retail SDK. b. Open the Triggers folder and double-click the Triggers Visual Studio solution file. c. Open the ItemTriggers project because all the item related triggers operations are done in this project d. Please add reference to the following assemblies located in the Retail POS runtime folder by right-clicking the itemtriggers project and select Add Reference: i. DevExpress.Utils.v11.2.dll (Needed only if POS was not installed to the default location on the local machine.) ii. POSProcesses.dll (Needed only if POS was not installed to the default location on the local machine.) iii. System.Windows.Forms.dll iv. Microsoft.Dynamics.Retail.Pos.SystemCore.dll v. Transaction.dll (Needed only if POS was not installed to the default location on the local machine.) 03-52

84 Module 3: Development and Customization of Retail POS 03-53

85 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization e. Right-click the ItemTriggers project and select properties. In the properties windows click Build and set the Configuration to Release and also change the build mode to Release from the drop down menu in the visual studio menu bar. f. Select the ItemTriggers.cs file in ItemTriggers project and double click the file. g. Add the following code below the namespace section to use the referenced libraries as shown in the below code: Namespace Microsoft.Dynamics.Retail.Pos.ItemTriggers { using System.Windows.Forms; using Microsoft.Dynamics.Retail.Pos.SystemCore; using LSRetailPosis.Transaction; using LSRetailPosis.POSProcesses; h. Now we will add code in the PostSale() method in the ItemTriggers,cs file. After the addition of every item this method is called by the system. So we can add our custom code in this method to prompt the operator for adding loyalty card. i. Copy the below code in the PostSale() method In the below code we are checking the item count is 1 and previously no loyalty card added then prompt the user for adding loyalty card, if they click yes we will run the standard loyalty request operation RetailTransaction retailtransaction = postransaction as RetailTransaction; if (retailtransaction!= null && retailtransaction.saleitems.count == 1 && retailtransaction.loyaltyitem.loyaltycardnumber == null) { using (frmmessage message = new frmmessage("do you want to add loyalty card to transaction?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { DialogResult result = messgae.showdialog(); if (result == DialogResult.Yes) { PosApplication.Instance.RunOperation(Contracts.PosisOperations.LoyaltyRequ est, null, postransaction); } } } j. After that compile and build the ItemTriggers project by right clicking the ItemTriggers project in Visual studio and select Build

86 Module 3: Development and Customization of Retail POS k. Once the build completed (Succeeded message will be displayed in the visual studio output window), copy the ItemTriggers.dll assembly from C:\Users\...\Documents\Retail SDK\POS Plugins\Triggers\ItemTriggers\Bin\Release to the Retail Pos\ Extensions folder. l. Launch Retail POS by clicking the Retail POS on the start page, and login to POS using the below operator id and password: i. Operator Id: ii. Password: 123 Results m. If it is first time log on to POS, then POS will display the Shift form, in that please click "Add a new Shift". n. Add any item to POS by clicking the product search or Sales or product sale or by entering/scanning the item barcode. If you click sales button, categories of item will be displayed, in that click any category and then click any item from that category. o. The system will prompt the operator for adding the loyalty card to transaction. Popup will be shown to the POS operator for requesting loyalty card request. Exercise 3: Adding manager approval to maximum line discount amount Exercise Scenario Currently the maximum line discount amount doesn t have manger approval functionality for giving the discount amount greater than what is defined in the functionality profile, but in scenarios where the operator want to give more discount is not possible. To avoid this we can make the POS to prompt for the manger access to override the discount defined in the functionality profile

87 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Task 1: Override the discount amount defined in functionality profile High Level Steps Prompt the user for manager credentials to override the discount amount. Detailed Steps Prompt the user for manager credentials to override the discount amount. a. Open Retail POS Plug-ins from the folder where you installed the Retail POS SDK. By default it will be C:\Users\...\Documents\Retail SDK\POS Plug-ins\.For more information about how to install Retail POS Plug-ins, see Install the Retail SDK. b. Open the Services folder and double-click the Services Visual Studio solution file. c. Go to the Discount project and expand it. d. Right-click the Discount project and select properties. In the properties windows click Build and set the Configuration to Release and also change the build mode to Release from the drop down menu in the visual studio menu bar. e. Please add reference to the following assemblies located in the Retail POS runtime folder by right-clicking the Discount project and select Add Reference from Retail POS folder: i. Microsoft.Practices.Prism.Interactivity ii. Microsoft.Dynamics.Retail.Notification.Contracts f. Open the Discount.cs file and add the below lines in the namespace section as shown below: namespace Microsoft.Dynamics.Retail.Pos.DiscountService { using Microsoft.Practices.Prism.Interactivity.InteractionRequest; using Microsoft.Dynamics.Retail.Notification.Contracts; g. Locate the AuthorizeLineDiscountAmount() method in Discount.cs file. The logic that enforces the maximum line discount amount is defined in this method

88 Module 3: Development and Customization of Retail POS h. We will override this method to ask for the manger credential and if success then we will allow the operator to give discount greater than the maximum amount defined in functionality profile. i. Clear all the code inside the AuthorizeLineDiscountAmount() method j. Copy the below code and paste it in the AuthorizeLineDiscountAmount() method. bool returnvalue = true; decimal itempricewithoutdiscount = salelineitem.price * salelineitem.quantity; maximumdiscountamt *= salelineitem.quantity; if (FiscalPrinter.FiscalPrinter.Instance.FiscalPrinterEnabled() &&!FiscalPrinter.FiscalPrinter.Instance.AuthorizeLineDiscountAmount(saleLine Item, linediscountitem, maximumdiscountamt)) { returnvalue = false; } else if (linediscountitem.amount > itempricewithoutdiscount) { returnvalue = false; string message = ApplicationLocalizer.Language.Translate(3177); //The discount amount is too high. The discount amount cannot exceed the item price. using (frmmessage dialog = new frmmessage(message, MessageBoxButtons.OK, MessageBoxIcon.Information)) { POSFormsManager.ShowPOSForm(dialog); } } else if (linediscountitem.amount > maximumdiscountamt / salelineitem.quantity) { returnvalue = false; string maximumamountrounded = this.application.services.rounding.round(maximumdiscountamt, true); decimal maximumdiscountpct = (itempricewithoutdiscount == decimal.zero)? decimal.zero : (100m * maximumdiscountamt / itempricewithoutdiscount); ManagerAccessConfirmation manageraccessinteraction = new ManagerAccessConfirmation(); InteractionRequestedEventArgs request = new InteractionRequestedEventArgs(managerAccessInteraction, () => { }); Application.Services.Interaction.InteractionRequest(request); if (manageraccessinteraction.confirmed) { // Manager auth was successful returnvalue = true; } else { string message = 03-57

89 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization ApplicationLocalizer.Language.Translate(3173, maximumamountrounded, maximumdiscountpct.tostring("n2")); //The discount amount is too high. The discount percentage limit is set to xxxx %. using (frmmessage dialog = new frmmessage(message, MessageBoxButtons.OK, MessageBoxIcon.Information)) { POSFormsManager.ShowPOSForm(dialog); } } } return returnvalue; If the discount amount is greater than maximum value we are asking for the manager confirmation. If the confirmation is true then we are allowing for the discount by passing the standard functionality. k. After that compile and build the Discount project by right clicking the Discount project in Visual studio and select Build. l. Once the build completed (Succeeded message will be displayed in the visual studio output window), copy the Discount.dll assembly from C:\Users\...\Documents\Retail SDK\POS Plugins\Services\Discount\Bin\Release to the Retail Pos\ Extensions folder. m. Launch Retail POS by clicking the Retail POS on the start page, and login to POS using the below operator id and password: i. Operator Id: ii. Password: 123 n. If it is first time log on to POS, then POS will display the Shift form, in that please click "Add a new Shift". o. Add any item to POS by clicking the product search or Sales or product sale or by entering/scanning the item barcode. If you click sales button, categories of item will be displayed, in that click any category and then click any item from that category. p. Next increase the item quantity such that the final price of the item is greater than We can increase the quantity by clicking the following buttons in the POS layout(sales->tasks->edit line->set quantity) 03-58

90 Module 3: Development and Customization of Retail POS q. After that click the Discounts button and select the Line discount amount and try to give discount amount of 9001 and click OK, next system will ask for the manager log on information to authorize the discount. Use the below operator id and password: i. Operator Id: ii. Password: 123 Results r. Next system will pop up a reason code selection form, in that select any reason code (The Reason code form will pop up only if it is configured in HQ). s. If it is success then the system will give the discount else it will through the error message. Overrides the maximum amount discount defined in the functionality profile. Exercise 4: View Inventory status of the item across all stores Real-time Service enables retail clients to interact with Microsoft Dynamics AX retail functionality in real time. Exercise Scenario The existing inventory status functionality will allow us to view the item status of the stores which belong to the same legal entity. We will modify the query in retail transaction service class to fetch the inventory status of items across all the legal entities. Task 1: Modify the RetailTransactionService class High Level Steps Update inventorylookup method to include item inventory status across all the stores 03-59

91 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Detailed Steps Update inventorylookup method to include item inventory status across all the stores a. Open AX from the Desktop icon and then click Ctrl+D to open development workspace b. In the AOT, Go to classes and expand it. c. Select RetailTransactionService, class and point to inventorylookup method d. Open the inventorylookup method by double clicking it e. In this method we will modify the query to search across all legal entities by including the cross company query and Change company functionality to fetch across all legal entities. f. Comment the existing inventorylookup code and Copy the below code and paste it the inventorylookup method. RetailTransactionService transactionservice = new RetailTransactionService(); InventDimCombination inventdimcombination = InventDimCombination::findVariantId(_variantId); InventDim inventdim; InventDimParm inventdimparm; InventOnhand inventonhand; RetailStoreTable retailstoretable; RetailChannelTable retailchanneltable; DirPartyTable dirpartytable; container InventLocation InventQty output = [true,'']; inventlocation; availphysical; try { //New line added for Extending while select crosscompany InventLocation from retailstoretable join omoperatingunitid from retailchanneltable where retailchanneltable.recid == retailstoretable.recid join Name from dirpartytable where dirpartytable.recid == retailchanneltable.omoperatingunitid join InventSiteId, InventLocationId from inventlocation where inventlocation.inventlocationid == retailstoretable.inventlocation { inventdim.inventsizeid = inventdimcombination.inventdim().inventsizeid; inventdim.inventcolorid = inventdimcombination.inventdim().inventcolorid; inventdim.inventstyleid = inventdimcombination.inventdim().inventstyleid; inventdim.configid = inventdimcombination.inventdim().configid; inventdim.inventsiteid = inventlocation.inventsiteid; 03-60

92 Module 3: Development and Customization of Retail POS inventdim.inventlocationid = inventlocation.inventlocationid; //New line added for Extending changecompany(inventlocation.dataareaid) { inventdim = InventDim::findDim(inventDim); if (inventdim.recid) { inventdimparm.initfrominventdim(inventdim); inventonhand = InventOnhand::newItemDim(_itemId,inventDim,inventDimParm); availphysical = inventonhand.availphysical(); output = conins(output,conlen(output)+1, _itemid, inventlocation.inventlocationid, dirpartytable.name, availphysical); } } } } catch { RetailTracer::Error('RetailTransactionService', funcname(), 'An error has occcured.'); throw error("@ret2382"); } return output; g. Compile the method by clicking F7 or compile icon in the tab. h. Launch Retail POS by clicking the Retail POS on the start page, and login to POS using the below operator id and password: i. Operator Id: ii. Password: 123 Results i. If it is first time log on to POS, then POS will display the Shift form, in that please click "Add a new Shift". j. After logging in right-click on the POS button grid area and select Add row. After that a new row will be created with empty buttons. Then right-click any empty button and select Button Properties a new form will popup. k. In the Action drop-down list box, select Inventory lookup and click OK. l. After that click the newly added inventory lookup button. m. The system will display the inventory status across all legal entities. View the inventory status across all the stores

93 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Test Your Knowledge Test your knowledge with the following questions. 1. How can you update the new skin that is created by using the tool in Retail POS? 2. How do you use a payment connector? 3. How do you deploy the payment connector in Microsoft Dynamics AX? 4. What are triggers? 5. What is the class used for extending Real Time Service. 6. What are the Supported Data Types for Real Time Service calls? 7. How to add Custom Payment Type in Microsoft Dynamics Ax 2012? 8. How to add Custom SQL Scripts while creating Store Database? 03-62

94 Module 3: Development and Customization of Retail POS Test Your Knowledge Solutions 1. For Retail POS to install the new skin, you must put the skin assembly in the Retail POS runtime folder. Copy the MyFirstCustomSkin.dll to the Skins folder in the Retail POS runtime directory. Also update the new skin name in Retail >Setup >POS >Profiles >Visual Profiles, and then run the N-1090 scheduler job. 2. You can use the payment connector to connect any Microsoft Dynamics AX channel to the payment SDK for payment processing. 3. Copy the connector assembly to the Microsoft Dynamics AX client and the server Connectors directories: o o %Program Files (x86)%\microsoft Dynamics AX\60\Client\Bin\Connectors %Program Files%\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX\bin\Connectors 4. Triggers are used to capture events that start before and after Microsoft Dynamics AX for Retail POS operations 5. To extend Real-time Service, you must create a new method in the RetailTransactionServiceEx class 6. Supported Datatypes are I. Boolean II. date III. int IV. int64 V. str VI. guid VII. Real 7. Microsoft Dynamics AX 2012 R2/R3 includes a unified payment processing architecture for processing credit card transactions. You can extend this architecture by creating your own payment connector. 8. The CreateDatabase services project is part of the Retail Software Development Kit (SDK). The SDK can be used to create and extend the retail database. This lesson explains how to extend the CreateDatabase project to execute custom SQL scripts

95 MODULE 4: EXTENDING RETAIL MODERN POS Module Overview Microsoft Dynamics AX 2012 R3 includes Modern POS, a point-of-sale app for PCs, tablets, and phones. Sales staff can process sales transactions, customer orders, and perform daily operations and inventory management with mobile devices anywhere in the store, as well as at PC-based registers. The Modern POS app running on a device is a thin client. It must connect to Microsoft Dynamics AX Retail Server. Retail Server performs the business logic and processing for Modern POS The Modern POS system behavior can be customized in several ways. For example, modifying the information that is made available to modern POS by extending a commerce entity to include a new column from the Microsoft Dynamics AX database. The new column in commerce runtime can then be used in a service and workflow, and exposed in the commerce runtime API. If the commerce entity is modified, the corresponding controller and metadata in Retail Server have to be customized. In other extensibility scenarios, every layer of the stack need not be modified. For example, simply modify the way a workflow behaves without modifying the database schema. The Retail SDK includes apps for various clients. You can customize those apps to match the branding of your organization or to extend their functionality. Objectives Note: The Retail Modern POS is comprised of pre-release components. All pre-release features and functionality are preliminary based on current expectations, and are subject to change without notice. The objective of this module is to enable the student gain an understanding of 1. Understanding of the Retail Modern POS architecture 2. Extending the Retail Modern POS

96 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Architecture of the Retail Modern POS The topic describes the architecture of Microsoft Dynamics AX Retail Modern point of sale (POS). Lesson Objectives Understand the various components of the Microsoft Dynamics AX Retail Modern point of sale(pos) architecture Modern POS Topology Modern POS clients can communicate with Retail Servers that are deployed in your store or in a data center. Modern POS clients can also communicate with peripheral devices such as cash drawers, credit card readers, and printers by using Microsoft Dynamics AX Hardware Station. Hardware Station must be deployed in your store and all Modern POS clients can connect to the same Hardware Station. On supported laptops, tablets, and phones, Modern POS users can perform a variety of retail tasks. These include processing sales transactions, viewing customer orders, managing daily operations and inventory, or viewing role-based reports. The Microsoft Dynamics AX Modern POS device is a client. It does not perform business functions or data processing. All business functions are provided by Microsoft Dynamics AX Retail Server. The diagram below illustrates the Retail Modern POS Topology 04-2

97 Module 4: Extending Retail Modern POS FIGURE 04.1: MODERN POS COMPONENTS Modern POS Architecture The Modern POS app running on a device is a thin client. It must connect to Microsoft Dynamics AX Retail Server. Retail Server performs the business logic and processing for Modern POS. The view, view-controller, and devices layers depend on the operating system (for example, Windows Surface) on which you plan to deploy Modern POS. The other layers are operating system independent and use Typescript classes and modules to perform Modern POS functionality such as workflows and entities. The diagram below illustrates the Retail Modern POS Architecture FIGURE 04.2: RETAIL MODERN POS ARCHITECTURE Cascading Style Sheets and HTML5 Cascading style sheets is a style sheet language that is used to describe the look and format of a document that is written in a markup language. Although 04-3

98 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization frequently used to style web pages and interfaces that are written in HTML and XHTML, the language can be applied to any kind of XML document. This includes plain XML, SVG and XUL. Cascading style sheets is a cornerstone specification of the web and most webpages use Cascading style sheets to describe their presentation. Information on the web technologies that can be used to theme HTML5 pages can be found at Overview of Retail Server Architecture This topic describes the architecture of Retail Server. Retail Server provides services and business logic for Modern Point of Sale (POS) clients. Retail Server is installed by using Microsoft Dynamics AX Setup.exe or Windows PowerShell. You can install it on a server in a store or in a datacenter. The Microsoft Dynamics AX Commerce runtime is wrapped in a Retail Server layer. Retail Server uses a web API with OData to support thin clients within the store like tablets and phones. Commerce runtime communicates through Commerce Data Exchange services to Microsoft Dynamics AX for Retail Headquarters. Retail Server utilizes the following concepts. Entity type Concept Description An entity type is an entity that has a lifecycle you want to monitor. Each entity type has a key. An example of an entity type is Customer. Complex type A complex type is an OData concept that is designed to avoid duplication by grouping certain related properties. These related properties can be reused in multiple entities. For example, Customer is an entity type that has a customer address, which is a wrapper that contains an address line, city, state, and zip code. Customer address is a complex type that can be reused by other entity types like Order, because the Order entity type would need the same address information that is associated with the Customer entity. Controller A controller is a mapping for an entity type that controls CRUD behaviors and actions for the entity type. Microsoft Dynamics AX provides a controller for 04-4

99 Module 4: Extending Retail Modern POS Concept Description each commerce entity. You can customize the following controllers: Carts Catalogs Categories Commerce Commerce Lists Composite Key Entity Controller Assembly Resolver Customers Employees Non-Bind able Action Org Units Picking Lists Products Purchase Orders Sales Orders Shifts Stock Counts Journals Transfer Orders Metadata Metadata defines the contract between the client and the server. To extend the Retail Server you can create your own entity type or complex type, extend an existing controller, add a new controller, and customize the metadata. If the commerce runtime is customized, then the various components in Retail Server should also be customized to expose those changes to Modern POS clients. Overview of Microsoft Dynamics AX Retail Server Architecture with Extensibility 04-5

100 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Figure 04.3: Retail Server Architecture Retail Modern POS Customization and Extensibility The Modern POS system behavior can be customized in several ways. For example, modifying the information that is made available to modern POS by extending a commerce entity to include a new column from the Microsoft Dynamics AX database. The new column in commerce runtime can then be used in a service and workflow, and exposed in the commerce runtime API. If the commerce entity is modified, the corresponding controller and metadata in Retail Server have to be customized. In other extensibility scenarios, every layer of the stack need not be modified. For example, simply modify the way a workflow behaves without modifying the database schema. The Retail SDK includes apps for various clients. You can customize those apps to match the branding of your organization or to extend their functionality. Customization of the Retail Modern POS may involve the following 1. Extending Microsoft Dynamic AX and Commerce Data Exchange 2. Extending Commerce Run Time 3. Extending Retail Server 4. Extending the Modern POS Client 04-6

101 Module 4: Extending Retail Modern POS Lesson Objectives This lesson provides an overview of the various components involved in extending the Retail Modern POS Extending Microsoft Dynamics AX The following are the main tasks to be done on the Microsoft Dynamics AX side Task Details References Customize the database schema If you add one or more new fields to a table in Microsoft Dynamics AX, a commerce entity in the commerce runtime automatically includes those fields as long as you make changes to the stored procedure or view to return the additional field. Customize the Data in a Commerce Entity oft.com/en- US/library/jj as px Walkthrough: Adding a table for customer preferences to the AX 2012 database oft.com/en- US/library/dn aspx Customize Commerce Data Exchange: Real-time Service Enable debugging Commerce Data Exchange: Real-time Service is a Windows Communication Foundation (WCF) service that uses.net Business Connector to enable retail clients to communicate with Microsoft Dynamics AX in real time. You can customize Real-time Service by adding extension methods to the RetailTransactionServiceEx class. You can use the X++ debugger to debug from commerce runtime to Realtime Service to Microsoft Dynamics AX, but you must Extend the Commerce Data Exchange: Real-time Service oft.com/en- US/library/dn aspx Debug X++ Code for Retail oft.com/en- 04-7

102 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Task Details References create Microsoft Dynamics AX configurations for your local client and Business Connector, and then update the Business Connector configuration in the registry editor. Extend the Commerce Runtime US/library/dn aspx The commerce runtime is a set of assemblies that enables your store to obtain interactive data based on a shopping cart. The commerce runtime includes several services that query for real-time data. It also includes workflow business logic that enforces rules for your store. Task Details References Customize data in a commerce entity The CommerceEntity class is a property bag of key value pairs of C# properties. These properties provide string representations of fields from the database so that you do not need to remember the names of columns in your database when you write code. For any existing data type, if you add one or more new fields to a table in Microsoft Dynamics AX, the commerce entity automatically includes those fields as long as you make changes to the stored procedure or view to return the additional field. Customize the Data in a Commerce Entity osoft.com/en- US/library/jj aspx Walkthrough: Adding a table for customer preferences to the AX 2012 database osoft.com/en- US/library/dn aspx Walkthrough: Extending the CRT to add customer preference data for Retail clients osoft.com/en- US/library/dn aspx 04-8

103 Module 4: Extending Retail Modern POS Task Details References Customize services Microsoft Dynamics AX offers many services in the commerce runtime that support the basic functionality of a store. If one of these services does not meet the needs of your store, you can replace it with your own service and continue to use the other services that are installed with the commerce runtime. Services Overview for Commerce Runtime osoft.com/en- US/library/jj aspx Integrate a Service into the Commerce Runtime osoft.com/en- US/library/jj aspx Walkthrough: Integrating a new Shipping Service osoft.com/en- US/library/jj aspx Customize workflow The commerce runtime includes workflow business logic that enforces rules for your business. You can use the workflows that are included in commerce runtime or create your own. Create Commerce Runtime Workflows osoft.com/en- US/library/jj aspx Use the API You can use the API for things like getting information about items, price calculation, shipping calculation, and placing orders. You can extend the API to fit your business processes..net Framework Classes for Microsoft Dynamics AX Commerce Runtime osoft.com/en- US/library/jj aspx 04-9

104 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Task Details References Deploy your commerce runtime customizations After you customize the functionality of your store in the commerce runtime, use the GAC utility to copy your new DLLs to your solution Extend Retail Server The Microsoft Dynamics AX Commerce runtime is wrapped in a Retail Server layer. Retail Server uses a web API with OData to support thin clients within the store like tablets and phones. Commerce runtime communicates through Commerce Data Exchange services to Microsoft Dynamics AX for Retail Headquarters. Task Details References Create a new controller Extend an existing controller Extend metadata (OData) If you create a new commerce entity or complex type, you need to create a new controller to expose actions that you want to be available. After you create a new controller, you must modify the metadata to use it. You can integrate a new controller or extend on of the controllers that come with Microsoft Dynamics AX. If you add a commerce entity or action, you must modify the metadata to use it. Metadata defines a contract between client and server. It exposes the entity definition and action definition, so when you make a change on the server side, you can use a tool on the client side to generate proxy code, reducing maintenance effort for developers. To consume new commerce entities and actions, you must extend the metadata, otherwise the client won t know about it. Create a new Retail Server Controller osoft.com/en- US/library/dn aspx Extend a Retail Server OData Controller osoft.com/en- US/library/dn aspx Extend the metadata osoft.com/en- US/library/dn aspx 04-10

105 Module 4: Extending Retail Modern POS Task Details References Use Web API and OData controllers together Retail Server reference You can create your own Web API controller and extend the Web API configuration as an alternative to using the standard OData controllers. You can reference API documentation for the Microsoft.Dynamics.Retail.RetailServe rlibrary assembly. Use Web API and OData controllers together osoft.com/en- US/library/dn aspx.NET Framework Classes for Microsoft Dynamics AX Retail Server osoft.com/en- US/library/dn aspx Incorporate your changes You need to copy the DLL into the retail server bin folder. You need to repackage the new DLL into the same MSI installation package. You also need to modify the Web.config file to make sure the DLL is processed, just like the commerceruntime.config file. Extend Modern POS Client You can customize the look and feel of a Modern POS client to make it an extension of your brand. We recommend that you use your own file names and namespaces for any customizations. Task Details References Extend Modern POS for a Windows client You can install the Windows 8.1 packaged Modern POS app by using the Microsoft Dynamics AX setup wizard, but you can t extend it. The Retail SDK includes sample code that you can use to extend the Windows 8.1 Modern POS app to meet your needs. To use the Windows 8.1 Modern POS sample code that is included in the Retail SDK, you must Retail SDK microsoft.com/ EN- US/library/dn aspx TypeScript for Visual Studio 2012 and

106 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Task Details References install TypeScript for Visual Studio 2012 and rosoft.com/enus/download/d etails.aspx?id= Windows Dev Center crosoft.com/en - US/windows/ap ps/ Extend Modern POS for Windows Phone client Enable Modern POS for Windows Phone reports The Retail SDK includes sample code that you can use to create your own Windows Phone Modern POS app. The Windows Phone app in the Retail SDK contains code you can use for reports. You must install Silverlight libraries, uncomment code from certain files in the Windows Phone app, and then add references to the Silverlight toolkit. Retail SDK microsoft.com/ EN- US/library/dn aspx Windows Phone Dev Center r.windowsphon e.com/en-us Enable reports for Microsoft Dynamics AX Retail Windows Phone Point of Sale microsoft.com/ EN- US/library/dn aspx Package your changes After you have customized one of the mobile apps that are available in the Retail SDK, you can Create an app package 04-12

107 Module 4: Extending Retail Modern POS Task Details References package your solution so that it can be installed on devices. To package your app, in Visual Studio, click Project > Store > Create App Packages. On the Create Your Packages screen, select No, and then complete the wizard. crosoft.com/en - us/windows/ap ps/hh as px Install a customiz ed app After you extend one of the apps that are available in the Retail SDK, you must use sideloading to install it to devices. Install Modern POS microsoft.com/ EN- US/library/dn aspx#Cu stomized 04-13

108 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Exercise 1: Extensibility of MPOS Exercise Scenario This exercise illustrates adding a field to a retail channel that enables customers to opt in to receive special offers by . In this scenario, the retailer wants to indicate whether customers wish to receive about special offers in a modern POS client. The exercise should be completed in the following order: 1. Extend Microsoft Dynamics AX: Adding a table for customer preferences to the AX 2012 database 2. Extend Commerce Run Time: Extending the CRT to add customer preference data for Retail clients 3. Extend CDX: Extending retail data distribution infrastructure for customer preferences 4. Extend Modern POS: Extending the Modern POS UI to collect customer preferences Task 1: Extend Microsoft Dynamics AX: Adding a table for customer preferences to the AX 2012 database and Extend Dynamics AX 2012 R3 customer form to collect/update preference High Level Steps Create the RetailCustPreferences table Add the new fields to Customer form Detailed Steps Create the RetailCustPreferences table Create a new Dynamics AX 2012 R3 table 1. Launch to Dynamics AX 2012 R3, go to (press Ctrl+Shift+W) AOT > Data Dictionary > Tables 2. Create a new table RetailCustPreference 04-14

109 Module 4: Extending Retail Modern POS 3. Create a new field OptIn as enum NoYes 04-15

110 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 4. Create a new relationship with CustTable 04-16

111 Module 4: Extending Retail Modern POS 5. Add a Primary Key based foreign key to the CustTable relation, and set the SourceEDT as CustAccount, rename the newly created field CustTable to AccountNum 6. Set the ExtendedDataType of field AccountNum as CustAccount, and Mandatory as Yes 04-17

112 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 7. Save the changes and click Synchronize to sync the changes to database 04-18

113 Module 4: Extending Retail Modern POS 8. Generate the CIL code for the new table by clicking Compile Add the new fields to Customer form 1. Launch to Dynamics AX 2012 R3, go to AOT > Forms > CustTable 2. Add RetailCustPreference as a Data Source with JoinSource as CustTable and LinkType as OuterJoin 04-19

114 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 3. Add a new UI group named CustomerPreference with Caption as Customer Preference to CustTable form under Retail fasttab 4. Add a new field OptIn from table RetailCustPreference within the CustomerPreference group 04-20

115 Module 4: Extending Retail Modern POS 5. Update method CustTable: write to set retailcustpreference.accountnum = custtable.accountnum; 6. Update method CustTable: validatewrite to set retailcustpreference.accountnum = custtable.accountnum; 04-21

116 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 7. Save and compile the changes 8. Go to Accounts receivable > Common > Customers > All customers, edit a customer record, go to Retail fasttab, check Opt In checkbox, and save. Task 2: Extend Commerce Run Time: Extending the CRT to add customer preference data for Retail clients High Level Steps In the CRT, each entity is represented by a key-value pair. The key has the name of the column name in the table or view. The value is the value of the field for that column in the view. When you create the new fields in the CustomersView, the new key-value pair is included in the property bag. For more information see Customize the Data in a Commerce Entity- US/library/jj aspx Next, you will modify the stored procedure associated with the CustomersView view. This enables writing the data back to Microsoft Dynamics AX. Create a new table in Channel Database for CRT to use Modify the CustomersView view in the channel database Set up and run a subjob to synchronize values for the new data field to the online channel database Update the SQL Server Stored Procedure Code Detailed Steps 04-22

117 Module 4: Extending Retail Modern POS In the CRT, each entity is represented by a key-value pair. The key has the name of the column name in the table or view. The value is the value of the field for that column in the view. When you create the new fields in the CustomersView, the new key-value pair is included in the property bag. For more information see Customize the Data in a Commerce Entity - US/library/jj aspx. Next, you will modify the stored procedure associated with the CustomersView view. This enables writing the data back to Microsoft Dynamics AX. Create a new table in Channel Database for CRT to use 1. Open Microsoft SQL Server Management Studio. 2. In Object Explorer, expand the database node for and then expand the Tables node. 3. Scroll down to the RetailCustPreferences table. Right-click the table, point to Script table as, then point to CREATE to, and then click New Query Editor Window. 4. Go to the top line of the generated script and change the USE statement to the name of the channel database (aka the CRT database). The default name for this database after you install Microsoft Dynamics AX 2012 R3 is AxRetailSP. If that is the name of your channel database, the following example illustrates the USE statement. USE [AxRetailSP] 5. Remove the PARTITION field. 6. Change all instances of dbo to ax for the field names. 7. Click Execute or press F5 to run the script. Modify the CustomersView view in the channel database You must add the OptIn field to the CustomersView view in the channel database to make the new field available in the Retail online sample store. (SELECT TOP (1) OPTIN FROM dbo.retailcustpreferences 1. Open Microsoft SQL Server Management Studio. You must be logged on to the computer with the account that has permissions to modify the Retail databases. 2. In Object Explorer, expand the database node for your channel database. The default name for this database after you install Microsoft Dynamics AX 2012 R3 is AxRetailSP. 3. Expand the Views node and right-click dbo.customersview. 4. Click Script View as, ALTER to, New Query Editor Window. 5. Add the following lines to the query to include the OptIn field in the CustomersView

118 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization WHERE (ACCOUNTNUM = dbo.custtable.accountnum)) AS OptIn, 6. Save your changes and re-run the query. Set up and run a subjob to synchronize values for the new data field to the online channel database You run jobs to synchronize data from AX 2012 to the CRT. For more information, see In the AX 2012 Distribution schedule form, create a subjob under the Customer job for RetailCustPreferences. Run the jobs that synchronize initial data in AX 2012 to the distribution location Update the SQL Server Stored Procedure Code Review the entire contents of the sample code for CommerceRuntimeScripts.sql available at There are four places where code has been inserted. Search for SDKSAMPLE_CUSTOMERPREFERENCES to find them. Note: SAMPLE CODE NOTICE THIS SAMPLE CODE IS MADE AVAILABLE AS IS. MICROSOFT MAKES NO WARRANTIES, WHETHER EXPRESS OR IMPLIED, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OR CONDITIONS OF MERCHANTABILITY. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS SAMPLE CODE REMAINS WITH THE USER. NO TECHNICALSUPPORT IS PROVIDED. YOU MAY NOT DISTRIBUTE THIS CODE UNLESS YOU HAVE A LICENSE AGREEMENT WITH MICROSOFT THAT ALLOWS YOU TO DO SO. Task 3: Extend CDX: Extending retail data distribution infrastructure for customer preferences High Level Steps Add the RetailCustPreferences table in the data distribution to the CRT for the Retail channel Create a Sub Job Detailed Steps Add the RetailCustPreferences table in the data distribution to the CRT for the Retail channel The channel schema is the XML description of the data sent from AX 2012 to the 04-24

119 Module 4: Extending Retail Modern POS channel database. 1. Launch to Dynamics AX 2012 R3, go to Retail > Setup > Retail scheduler, open Retail channel schema, and select AX 2012 R3 2. Create a new Location tables with table name as ax.retailcustpreferences 3. Add four Location fields, ACCOUNTNUM, DATAREAID, OPTIN, RECID Field name Type Length ACCOUNTNUM None 0 DATAREAID None

120 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Field name Type Length OPTIN None 0 RECID None 0 4. Close the Location fields and Location tables forms. Create a Sub Job Next create a Subjob of the CustTable job to move data in the new table to the channel database. 1. Create a new subjob RetailCustPreference with the following highlighted data by going to Retail > Setup > Retail scheduler > Scheduler subjobs form 04-26

121 Module 4: Extending Retail Modern POS 2. Enter RetailCustPreference in the Subjob number and Description fields. 3. Select AX2012R3 for Retail Channel Schema 4. Select ax.retailcustpreferences for Channel table name 5. Select RetailCustPreferences for Microsoft Dynamics AX Table name 6. On Scheduler subjob form action pane, click Transfer field list to open the Field list form 7. On the Field list form, click Functions and then click Match fields to generate all matching fields. The From Field and To Field columns are filled in

122 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 8. Click OK on the message dialog to close the Field List form 9. Next click Retail > Setup > Retail scheduler, open Retail channel schema, and select AX 2012 R3, in the Retail data distribution fast tab, 10. Copy the XML in the Table Distribution field into an editor such as 04-28

123 Module 4: Extending Retail Modern POS Notepad++. [To copy all the XML position your cursor and click before the first character (<). Using the scrollbar, scroll to the bottom of the file. Press Shift and then click after the last character (>). This ensures that all the XML is selected.] 11. In the XML search for the line <Table name= RetailCustTable >. There are two instances it appears. 12. Add the following highlighted RetailCustPreference definition after the final line in both of the <Table name= RetailCustTable > code blocks. You add the code after the </Table> statement. <Table name="retailcustpreferences"> <LinkGroup> <Link type="fieldmatch" fieldname="accountnum" parentfieldname="accountnum" /> </LinkGroup> </Table> 13. Copy the entire new XML file into the Table Distribution window on the Retail channel schema form. 14. Close the Retail Channel Schema form 15. Open the Scheduler Jobs form ( click Retail > Setup > Retail scheduler > Scheduler jobs form) 16. Select 1010 to select the Customer job and then select RetailCustPreference for the subjob

124 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 17. On the Retail Channel Schema form, select AX 2012 R3 for the schema name and then click Generate Classes to generate needed CDX Async classes Task 4: Extend Modern POS to collect preferences High Level Steps Extend Modern POS user interface to collect preference Detailed Steps Extend Modern POS user interface to collect preference 04-30

125 Module 4: Extending Retail Modern POS 1. Go to C:\Microsoft Dynamics\Retail SDK\POS Clients\Windows\C1, launch Visual Studio 2012 and open POS.sln Windows 8 POS project 2. Add the following two UI resource texts in POS\Assets\Strings\en- US\resources.resjson under section CUSTOMERADDEDIT RESOURCES. RANGE: [ ] // HOL a. Add the following code to the contractor of class CustomerAddEditViewModel this. optin = ko.observable(false); 04-31

126 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization this. optin.subscribe((new optin) => { //if (this._ optinproperty && this._ optinproperty.value) { 0); // this._ optinproperty.value.integervalue = (new optin? 1 : //}? 1 : 0)); this.addupdateextensionproperty(this._ optin_key, (new optin }); // HOL // HOL b. Add the following method to class CustomerAddEditViewModel private addupdateextensionproperty(key: string, intvalue: number) { if (this.customerproxy) { if (!this.customerproxy.extensionproperties()) { this.customerproxy.extensionproperties = ko.observablearray([]); 04-32

127 Module 4: Extending Retail Modern POS } var properties = this.customerproxy.extensionproperties().filter((property) => { }); return property.key === key; var optinp: Model.Entities.CommercePropertyClass; if (ArrayExtensions.hasElements(properties)) { } optinp = properties[0]; else { } optinp = new Model.Entities.CommercePropertyClass(); optinp.key = key; this.customerproxy.extensionproperties().push( optinp); if (! optinp.value) { optinp.value = new Model.Entities.CommercePropertyValueClass(); } } } // HOL optinp.value.integervalue = intvalue; 04-33

128 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization c. Add the following code in the call back of this.customermanager.getcustomerdetailsasync in method CustomerAddEditViewModel.LoadCustomer // HOL => { var properties = customer.extensionproperties.filter((property) return property.key === this._ optin_key; }); if (ArrayExtensions.hasElements(properties)) { var optinproperty= properties[0]; if ( optinproperty.value) { === 1); this. optin( optinproperty.value.integervalue } } 04-34

129 Module 4: Extending Retail Modern POS // HOL 3. Extend the customer page to add preference in Views\Customer\CustomerAddEditView.html under the Phone number section <!-- HOL: preference --> <div> <br /> <input tabindex="8" type="checkbox" id="specialoffertabread" data-bind="checked: customeraddeditviewmodel. optin"/> <label for="specialoffertabread" data-bind="resx: { textcontent: 'string_1366' }">Receive special offers?</label> </div> 04-35

130 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization select No 4. Build the project by going to BUILD > Build Solution in Visual Studio Create a package by selecting POS project, then go to menu PROJECT > Store > Create App Packages, 6. Follow the steps and enter needed info, click Create to create the 04-36

131 Module 4: Extending Retail Modern POS package 7. Deploy the package location to deploy the package Go to..\pos Clients\Windows\C1\AppPackages\RetailModernPOS_x64_Test, right click Add-AppDevPackage.ps1 and select Run with PowerShell, and follow the steps to complete the deployment 8. Test your app Exercise 2: Customization of the Modern POS from Microsoft Dynamics AX HQ Exercise Scenario In this scenario you will walkthrough simple customizations of the Modern POS which can be done from the Retail HQ Task 1: Add an image to the database High Level Steps Add a Login Image and Welcome Screen Image Detailed Steps Add a Login Image and Welcome Screen Image 04-37

132 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization To add an image to the database, follow these steps. Before you start the task select an image for the Login Page and Welcome Page of the Modern POS and save the image files in a folder of the computer where this configuration will be done 1. In Microsoft Dynamics AX browse to Retail > Setup > POS> Images, click New and then enter Image ID: 9000 and then click Select image. / 2. Browse to the folder where the images are maintained and select the login screen image. / 3. Click New, enter Image ID 9001, click Select image, and then select the Welcome Screen image. / 4. Click Close. / Task 2: Add a new visual profile High Level Steps Create a new visual profile setup Detailed Steps Create a new visual profile setup To create a new visual profile, follow these steps 1. Browse to AX > Retail > Setup > POS > Profiles > Visual profiles, and then click New. / Specify the following information and close the form. o o o o o Profile number: HOL1 Description: HOL Visual Profile Application Type: Modern POS for Windows Theme: Dark Accent color: Red o Login background:

133 Task 3: Create a new Register High Level Steps Create a new Modern POS Register Detailed Steps Create a new Modern POS Register To create a new register, follow these steps. Module 4: Extending Retail Modern POS 1. In Microsoft Dynamics AX browse to Retail > Setup > POS > POS registers, and then click New. / Specify the following information and close the form. o o o o o Register number: HOUSTON-12 Name: HOL Register Store: Houston Hardware profile: HW002 Visual profile: HOL1 Task 4: Create a new button grid for the Modern POS High Level Steps Create new button grid to be used by the Modern POS UI Detailed Steps Create new button grid to be used by the Modern POS UI To create a new button grid, follow these steps. 1. Browse to Retail > Setup > POS> Button grids, click New and specify the following, and then click Designer. o o Button grid ID: HOL1 Name: HOL Tasks 2. Expand the form so that all the options are visible, and then select New design. / 3. Specify 6 rows and 4 columns, and then click OK. / 04-39

134 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Create a button grid with the following layout by deleting buttons and setting the row and column span for the remaining buttons. Specify the button grid operations, colors, fonts, and images for each button. Task 5: Define a Screen Layout High Level Steps Create a new screen layout to be used by the Modern POS Detailed Steps Create a new screen layout to be used by the Modern POS To define a new screen layout, follow these steps. 1. In Microsoft Dynamics AX, browse to Retail > Setup > POS > Screen layouts, click New and then specify the following: Screen layout ID: HOL1 Name: HOL1 Device application: Windows 8 Height: 768 Width: In the Button grids section click Add and then select the following: o o o Welcome screen 1 = 850 Get Started Transation screen 1 = HOL1 HOL Tasks Transaction screen 2 = FAB802 Payment methods 3. In the Images section, click Add and specify the following, and then click Designer.Add Welcome screen 1 = Use the drag-and-drop designer to add the following components to the layout: 04-40

135 Module 4: Extending Retail Modern POS o o o Tab control that contains: Transaciton button grid 1 Customer panel (Select elements to show) Receipt pane with the following columns: Lines Product name, Quantity, Total (without tax) Payments Payment method, Currency, Amount Delivery Product name, Delivery method, Status Totals panel Right column: Subtotal Tax Payment 2. Click OK to save your changes. Task 6: Add the screen layout to a user and replicate changes to channel High Level Steps Assign the newly create screen layout to a user Replicate changes to channel 04-41

136 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Detailed Steps Assign the newly create screen layout to a user To assign the screen layout to a user, follow these steps. 1. In Microsoft Dynamics AX, browse to Retail > Common > Workers. Find worker Thomas Hamborg, and then click Edit. / 2. Click the Retail option and then click Add screen layout HOL1. 3. Close the form when you are finished. Replicate changes to channel To replicate changes to the channels, follow these steps. Results 1. In Microsoft Dynamics AX, browse to Retail > Periodic > Data distribution > Distribution schedule. 2. Select job 1090 Registers and then click Run now. / Add an Image 3. Select job 1060 Staff and then click Run now. 4. Give the jobs some time to finish and then return to Modern POS. Create a new visual profile Create a new Modern POS Register 04-42

137 MODULE 5: EXTENSIBILITY TESTING CONSIDERATIONS Module Overview This module explains the different ways to test Point of Sale (POS) and the information that you must consider before testing begins. Objectives Explain the testing considerations for several testing types for the POS customization.

138 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Testing Types of Testing Unit Testing Unit tests are written by developers and run under a unit testing framework, such as Microsoft Visual Studio Team System or NUnit. Unit tests isolate and verify discrete units of program logic. Unit tests isolate the logic by replacing dependencies on the run-time environment, such as SharePoint, with testprovided substitutes. Isolation lets unit tests run quickly, and developers can run unit tests frequently. Acceptance Testing Acceptance tests consist of multiple steps that represent realistic usage scenarios for the whole application. These tests verify that an application meets the requirements of the intended users. Their scope includes usability, functional correctness, and performance. Generally, test engineers create these tests. Configuration Testing Configuration testing is performed by the performance testing engineers. The objective is to determine minimal and optimal configuration of hardware and software, and the effect of adding or modifying configurations. Functional Testing Functional testing is performed by functional and, or testing teams. This is a type of black box testing that bases its test cases on the specifications of the Microsoft Dynamics AX POS implementation that is being tested. Integration Testing Integration testing is performed by testing teams. The Microsoft Dynamics AX POS implementation usually involves integrations with several modules, and external devices, such as a magnetic strip reader MSR, and the bar code scanner components, such as payment gateway. Integration testing is performed by combining all the modules, devices and external components and testing them as a group. Performance Testing Performance testing is performed by the performance engineer. Performance 05-2

139 Module 5: Extensibility Testing Considerations testing involves Functional testing that is performed to evaluate the compliance of a system or component that has specified performance requirements. User Interface (UI) Testing User Testing is performed by functional and, or testing teams to check how userfriendly the application is. POS Automation Testing Some standard POS operations testing can be automated by using the standard POS test Automation functionality. If you modify the POS shortcut and append a -te as a command-line argument, POS will run in a special test mode where POS runs the tests that are set up in the Retail POS database. For example: To automate the POS operation, insert records in the POSISTESTs table and the POSISTESTPROCESS table by using the following scripts: INSERT INTO [dbo].[posistests] ([NAME],[ITERATIONS]) VALUES (<NAME, nvarchar(50),>,<iterations, int,>) GO INSERT INTO [dbo].[posistestprocesses] ([TESTID],[PROCESSID],[EXTRAINFO],[TIMETOWAIT],[ITEMLINEID],[TENDERLINEID],[NUMPADQUANTITY],[NUMPADVALUE]) VALUES (<TESTID, int,>,<processid, int,>,<extrainfo, nvarchar(50),>,<timetowait, int,>,<itemlineid, int,>,<tenderlineid, int,>,<numpadquantity, numeric(28,12),>,<numpadvalue, nvarchar(50),>) GO Hardware Testing Hardware testing tests the hardware devices that are connected to a POS application that has different configurations. Before the device is tested with POS, you must test all the hardware devices that have the test utility that is provided by the device manufacturer. This helps make sure that the devices are working correctly. 05-3

140 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Bar Code Scanner Bar code scanner testing checks whether the scanner reads the code of an item correctly and displays the price that corresponds to that item. Printers Printer testing verifies whether the correct information that is related to an item is printed on different receipts that are generated at the printer. The correct information that is related to the customer, such as the items ordered and the total should be printed on the receipts. Weighing Scale Weight scale testing is used to weigh items sold by weight. The scale should display the exact quantity of an item that is put on the scale and the price should be displayed according to the weight of the item. Cash Drawer Cash draw testing checks whether the cash drawer opens when an order is submitted or when a check is settled. Line Display The testing of the tower displays the item that is ordered and the price. This helps the customer view the item he or she ordered. Line display testing also displays the amount due, the amount tendered and the change that is given to the customer. A tower is tested against this information to check whether correct information is displayed on the tower. Keyboard Keyboard testing checks whether the correct keyed data is displayed and processed. EFT Testing Before the EFT solution is deployed in production, it should be tested several times by using the test emulator or the test Portable Electronic Device (PED) that is provided by the payment service provider. EFT testing should also display the PCI complaint. ISV Integration Testing If there is integration to any Independent Software Vendor (ISV), test all the POS 05-4

141 standard operations. Module 5: Extensibility Testing Considerations 05-5

142 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Challenges Multiple Configurations Testing a POS application that has different settings and configurations is a cumbersome task. Test cases should be designed that include each scenario (valid or invalid) in detail. Therefore, a significant budget should be available to test applications which will help prevent major issues at the customer end. Peripheral Issues The peripheral issues can be related to devices that are connected to a POS, such as bar code scanners, scales, printers, towers and cash drawers. Complex Interfaces Integration of the POS system involves several interconnected systems and thirdparty elements. Systematic test design techniques are followed to reduce the complexity of interfaces. Test Lab Maintenance Because lots of hardware is usually connected to a POS, hardware requires a large amount of space to house. You also have to put some effort and expense in to keeping the hardware in good repair. Upgrades Rapid technological advancements are necessary for frequent hardware and software upgrades that require more infrastructures. PCI Compliance Care must be taken to implement the PCI-compliant, tamper-proof infrastructure at all POS terminals to protect cardholder data and identity. 05-6

143 Testing Considerations Module 5: Extensibility Testing Considerations Testing considerations include the following: Unit Testing Considerations Ability of the system to correctly process incorrect transactions Systems or components pass data and control correctly to one another Acceptance Testing Considerations Define the acceptance criteria Define the Suite of Tests Could include both functional testing and UI testing Configuration Testing Considerations Frequency of the data distribution batches Must have offline POS Must have a hardware configuration for every terminal for every store server Functional Testing Considerations Identification of functions that the Microsoft Dynamics AX POS implementation is expected to perform How to create input data based on the functional specifications Determination of output based on the functional specifications Execution of the test case Comparison of actual and expected outputs Integration Testing Considerations Test data while integrating with the external components Emulators (or actual devices) for individual devices End to end functional testing (smoke testing) after all the modules are integrated Performance Testing Considerations Install testing for all terminals for each store server and for each store server for every real-time server Data volumes Install testing of POS for item scanning Frequency of the scheduler jobs 05-7

144 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Hardware configuration and sizing Network latency and bandwidth UI Testing Considerations Ease of usage Screen resolution of the target systems 05-8

145 Module Review Module 5: Extensibility Testing Considerations Module Review and Takeaways This module explained the different kinds of testing that is involved in the POS deployment. Additionally, the module explained the testing challenges that are involved and the elements that you must consider before testing begins. Test Your Knowledge Test your knowledge with the following questions. 1. Which command is used to start POS in test mode? 2. In which table is the POS Automation test scripts inserted? 05-9

146 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Test Your Knowledge Solutions MODEL ANSWER: 1. -te 2. POSISTESTs and POSISTESTPROCESS 05-10

147 MODULE 6: EXTENSIBILITY DEPLOYMENT AND HOTFIX UPDATE CONSIDERATIONS Module Overview This module provides information and resources to help you successfully deploy the Microsoft Dynamics AX 2012 R3 Point of Sale (POS) customization and hotfixes. The module describes the steps that are involved in the planning of and the considerations for the Retail POS customization and hotfix deployment. We strongly recommend that you install all updates in a test or backup environment before you install them in production environments. Then validate the update against the implementation, customizations, data, and processes that are currently used in your organization. Objectives The objectives are: Explain POS customization/update deployment planning. Explain the steps that are required for the retail hotfix or for the update deployment.

148 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Planning POS Customization deployment This lesson describes the planning that is required for the deploying POS customizations. If you are running a retail environment, there are additional steps that you must perform to deploy updates and hotfixes to computers running Retail POS, Commerce Data Exchange components, or a store database. Retail software at the store can be updated in any order or simultaneously. Updates for retail environments may be either binary or application updates. Application updates are installed like other Microsoft Dynamics AX application updates, by installing to a database server, and then recompiling. Only binary updates require additional steps. We recommend that you perform these steps initially in a test environment local to your headquarters, validate that all fixes perform as anticipated and then roll them out to your stores. Updates included in a hotfix should be applied to all computers that host the updated components. For example, you should run the same version of Commerce Data Exchange: Synch Service at all stores and at headquarters. Environments that run different versions of the same Retail component are not supported. In some cases, deployed fixes will not be fully available until all components included in the hotfix have been updated. For example, a Commerce Data Exchange: Real-time Service update might also require a code change at headquarters. These steps are in addition to the processes described in the topics Apply updates and hotfixes at and Apply updates to database, AOS, and clients at

149 Module 6: Extensibility Deployment and Hotfix Update Considerations Deployment Components The types of computers that are used in a typical Microsoft Dynamics AX 2012 R3 Retail deployment are shown in the following table: Deployment Types of computers location Head office AOS computer with Retail headquarters component installed Database server You must modify the Microsoft Dynamics AX database server only if the settings for Microsoft SQL Server do not comply with the Payment Card Industry (PCI) Data Security Standard. Communications server that hosts Commerce Data Exchange: Real-time Service and Async Server. If you prefer, you can have two communications servers, one for each of these applications. Microsoft Dynamics AX client computers with Retail headquarters component installed Retail Server, if you are using Modern POS Web servers that host the online store Brick-andmortar stores Computer that hosts the channel database and Async Client Point of sale (POS) devices Correct planning before a system is deployed can minimize the downtime of the system. The deployment should be conducted in the following environments before the system is deployed in the production environment. Test environment This is the environment where Microsoft Dynamics AX POS customizations and solutions, possibly from different vendors, are deployed, integrated, and tested. Staging or pre-production environment This is the environment that is built based on the production environment. Typically, it contains business data from the production system. Microsoft Dynamics AX models and customizations are moved to a staging environment after they are integrated and tested on a test environment. Production environment This is the final environment that customers use to run their business. 06-3

150 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Deploy POS Customizations This topic describes the deployment process for updates. Updates include hotfixes, cumulative updates, service packs, and feature packs. Before You Begin Before you deploy updates in a retail environment, following these steps. 1. At the store, bring offline registers online and make sure that offline transactions have been synchronized with the store database. [Note : If you skip this step, severe data damage and possible financial losses can occur. After you upgrade the store database, you can no longer synchronize transactions from existing offline databases] 2. Run P jobs to synchronize local transactions with headquarters. For more information, refer to Schedule and run jobs in Retail Scheduler. 3. Back up the store database by using Microsoft SQL Server Management Studio. All instances of these applications must be updated to the same version. Partly updated environments are not supported. It is likely that deployed fixes will not be fully available until all components in an environment are running the same versions. Updates for retail environments can be either binary or application updates. Application updates are installed the same as other Microsoft Dynamics AX application updates, by installing to a database server, and then recompiling. Only binary updates require additional actions. You must synchronize your databases with headquarters, back up the database, and install binary updates to non-database and database components. Then, if you have customized Retail POS, you must re-merge your code changes to services and triggers, compile, and re-deploy. Before you deploy the POS customized libraries, make a backup of the existing Retail POS folder and then copy the custom libraries. Copy the customized services or triggers library to POS\Extension. For more information about the retail general deployment, refer to topic Deploy Updates in a Retail Environment

151 Module 6: Extensibility Deployment and Hotfix Update Considerations Merge Any Existing Code Changes with POS and Redeploy When updates are applied to POS, the updates replace all the modified services and triggers libraries. If you have customized services or triggers, they will be overridden by the hotfix. As a best practice, you should put all the customized service or triggers libraries in the POS\Extension folder. This helps avoid the hotfix from overriding your customization. However, if you have put the customizations in the Services for Triggers folder, you must re-merge the code changes to the services and triggers, and then complete and re-deploy the code changes. Also verify that the code changes in the hotfix do not conflict with the code. However, if the code changes do conflict, merge the code, compile and then re-deploy the code changes in the POS\Extension folder. After you install the hotfix, if there is any code change in services or triggers, the corresponding files will be available in the updated Retail Software Development Kit (SDK) folder. By default, the files will be located in C:\Users\...\Documents\Retail SDK\POS Plug-ins\. If you have customized Retail POS, you must re-merge your code changes to services and triggers, compile, and then re-deploy the customized assemblies. For more information about how to handle customizations in an update, see the blog post AX for Retail: Managing and Maintaining POS Customizations from the Microsoft Dynamics AX Support team. Merging Code from ISV If you have an Independent Software Vendor (ISV) code in your POS, then the ISV code should also be merged with the code changes from the hotfix. Then you can compile and re-deploy the code changes in in POS\Extension folder. Merging Code in TFS Branch If there are multiple developers working on the POS customization then the hotfix code changes should be merged in the code branch. By doing this, all developers will have the latest code. 06-5

152 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Update the Retail Channel Configuration Utility (Retail Store Database Utility) on one computer If a retail database update is included in the update that you are applying, an updated version of the Retail Channel Configuration Utility is included in the update. Note: In AX 2012 R2 and AX 2012 Feature Pack, the Retail Channel Configuration Utility is called the Retail Store Database Utility. At the store, start by updating the Retail Channel Configuration Utility on one computer. If other Retail software is installed on this computer, you can also update that software. o o Browse to the location where you extracted the files for the update, and then double-click AxUpdate.exe. Install updates. You do not have to restart the Application Object Server (AOS) after you install the binary retail components. Upgrade the store database by using the Retail Channel Configuration Utility (Retail Store Database) If an update includes a schema change, the updated version of Retail POS will not run until the store database has been upgraded. To upgrade retail databases, you must run an updated version of the Retail Channel Configuration Utility. Upgrade the store database before you upgrade offline databases on POS registers. 1. Start the Retail Channel Configuration Utility. 2. Enter the information for the store database and then click Apply or Continue. Database upgrade scripts are executed. If there is an offline database on the computer where the utility is installed and run, you are prompted to provision again, and then the offline database is also upgraded. 06-6

153 Module 6: Extensibility Deployment and Hotfix Update Considerations Apply updates on remaining computers and upgrade offline databases After the store database has been updated, you can upgrade offline databases and update all other retail software at the store. Caution: It can take several hours to upgrade offline databases. Offline mode is not available until the store database has been provisioned and an offline database has been created on at least one register. If your environment relies heavily on offline mode, consider these factors when you plan the update. 1. On each computer in the environment, including POS registers, update all Retail components that are offered in the hotfix installer. This ensures that the local copy of the Retail Channel Configuration Utility is updated with the latest offline database schema. 2. On each computer where offline mode will be available, run the Retail Channel Configuration Utility to upgrade offline databases Install Update to CDX: Real-Time Service If you have any modification in real-time service classes, then the code must be merged with the changes in the hotfix. To avoid this, as a best practice always write the customized code in the RetailTransactionServiceEx class so that the customized code will not have any effect on the hotfix or the update installation. For more information about Microsoft Dynamics AX hotfixes and how to update a deployment, refer to Apply Hotfix and Update AX [ ] 06-7

154 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Module Review Module Review and Takeaways This module explained the following: How to merge a POS customization with a POS hotfix. How to install updates to a database and non-database retail components. How to install updates to CDS: Real-time service. Test Your Knowledge Test your knowledge with the following questions. 1. Which areas should be considered to merge the POS code hotfix? 2. Which tool is used to deploy POS database updates? 06-8

155 Module 6: Extensibility Deployment and Hotfix Update Considerations Test Your Knowledge Solutions MODEL ANSWER: 1. Customized and ISV code 2. Retail Database Utility 06-9

156 Module 7: LAB MPOS - Extensibility Objective of this lab In this lab, you will learn the following: 1. Extend CDX, CRT and Ecommerce and MPOS to collect of the Customer.. Extending Commerce DB, CRT and Retail Server Scenario Allow call center users using Dynamics AX 2012 R3 to collect/modify customer s preference Extend Dynamics AX database to store preference 1. Extend Dynamics AX 2012 R3 customer form to collect/update preference 2. Configure CDX Async to send preference to channels Detailed Steps Create a new Dynamics AX 2012 R3 table 1. Launch to Dynamics AX 2012 R3, go to (press Ctrl+Shift+W) AOT > Data Dictionary > Tables 2. Create a new table RetailCustPreference

157 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 3. Create a new field OptIn as enum NoYes

158 4. Create a new relationship with CustTable

159 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 5. Add a PrimaryKey based foreign key to the CustTable relation, and set the SourceEDT as CustAccount, rename the newly created field CustTable to AccountNum 6. Set the ExtendedDataType of field AccountNum as CustAccount, and Mandatory as Yes

160 7. Save the changes and click Synchronize to sync the changes to database

161 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 8. Generate the CIL code for the new table by clicking Compile

162 9. Extend Form CustTable 10. Launch to Dynamics AX 2012 R3, go to AOT > Forms > CustTable 11. Add RetailCustPreference as a Data Source with JoinSource as CustTable and LinkType as OuterJoin 12. Add a new UI group named CustomerPreference with Caption as Customer Preference to CustTable form under Retail fasttab

163 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 13. Add a new field OptIn from table RetailCustPreference within the CustomerPreference group

164 14. Update method CustTable: write to set retailcustpreference.accountnum = custtable.accountnum; 15. Update method CustTable: validatewrite to set retailcustpreference.accountnum = custtable.accountnum; 16. Save and compile the changes

165 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 17. Go to Accounts receivable > Common > Customers > All customers, edit a customer record, go to Retail fasttab, check Opt In checkbox, and save. Configure CDX Asycn 18. Launch to Dynamics AX 2012 R3, go to Retail > Setup > Retail scheduler, open Retail channel schema, and select AX 2012 R3 19. Create a new Location tables with table name as ax.retailcustpreference

166 20. Add four Location fields, ACCOUNTNUM, OPTIN, RECID

167 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization 1. Create a new subjob RetailCustPreference with the following highlighted data by going to Retail > Setup > Retail scheduler > Scheduler subjobs form 2. On Schedular subjob form, click Transfer field list to open the Field list form 3. On the Field list form, click Functions > Match fields to generate all matching fields.

168 4. Go to Retail > Setup > Retail scheduler, open Retail channel schema, and select AX 2012 R3, in the Retail data distribution fasttab, add the following highlighted RetailCustPreference definition to the Table distribution

169 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization <Table name="custtable"> <LinkGroup> <Link type="fieldmatch" fieldname="party" parentfieldname="recid" /> </LinkGroup> <Table name="retailcustpreference"> <LinkGroup> <Link type="fieldmatch" fieldname="accountnum" parentfieldname="accountnum" /> </LinkGroup> </Table> <Table name="retailcusttable"> <LinkGroup> <Link type="fieldmatch" fieldname="accountnum" parentfieldname="accountnum" /> </LinkGroup> </Table> </Table> 5. Add subjob RetailCustPreference to job 1010 by going to Retail > Setup > Retail scheduler > Scheduler jobs form

170 6. Click Generate classes to generate needed CDX Async classes

171 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Extend mobile POS to collect preferences Scenario Allow mobile POS to collect/modify customer s preference. Task Overview 1. Extend channel database to store preference 2. Configure CDX Async services to send preference to channels 3. Extend Commerce Runtime and Retail Server to read/save preference 4. Extend CDX real-time service to save preference to central DYNAMICSAX 2012 R3 5. Extend mobile POS user interface to collect preference Detailed Steps Extend channel database to store preference 1. Launch to SQL Server Management Studio, connect to local SQL server 2. Create a new table [ax].[retailcustpreference] for databases RetailHoustonStore, RetailContosoStorefront, RetailBostonStore, RetailFabrikamStorefront, RetailNewYorkStore, RetailParisStore, and RetailSeattleStore with the following SQL script /****** Object: Table [ax].[retailcustpreference] Script Date: 01/24/ :36:42 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [ax].[retailcustpreference]( [DATAAREAID] [nvarchar](4) NOT NULL, [RECID] [bigint] NOT NULL, [ OPTIN] [int] NOT NULL, [ACCOUNTNUM] [nvarchar](20) NOT NULL, CONSTRAINT [I_103992RECID] PRIMARY KEY CLUSTERED

172 ( [RECID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [ax].[retailcustpreference] WITH CHECK ADD CHECK (([RECID]<>(0))) GO ALTER TABLE [ax].[retailcustpreference] ADD DEFAULT ('dat') FOR [DATAAREAID] GO ALTER TABLE [ax].[retailcustpreference] ADD DEFAULT ((0)) FOR [ OPTIN] GO ALTER TABLE [ax].[retailcustpreference] ADD DEFAULT ('') FOR [ACCOUNTNUM] GO 3. Alter ax.customerview to return OPTIN data for databases RetailHoustonStore, RetailContosoStorefront, RetailBostonStore, RetailFabrikamStorefront, RetailNewYorkStore, RetailParisStore, and RetailSeattleStore with the following SQL script /****** Object: View [crt].[customersview] Script Date: 1/27/2014 6:54:07 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO

173 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization ALTER VIEW [crt].[customersview] AS ( SELECT ct.accountnum AS ACCOUNTNUMBER, ct.recid, ct.createddatetime, dpt.recid AS PARTY, dpt.name, dpn.recid AS PERSONNAMEID, dpn.firstname, dpn.middlename, dpn.lastname, dpt.partynumber, dpt.instancerelationtype, ceap.locator PHONE, ceap.locatorextension PHONEEXT, ceap.recordid PHONERECORDID, ceae.locator , ceae.recordid RECORDID, ceau.locator URL, ceau.recordid URLRECORDID, ceacp.locator CELLPHONE, ceacp.recordid CELLPHONERECORDID,

174 rct.receipt RECEIPT , dpt.languageid AS LANGUAGE, ct.dataareaid, rct.recid RETAILCUSTOMERRECID, ct.currency, ct.invoiceaccount, ct.creditmax, ct.onetimecustomer, ct.markupgroup, ct.pricegroup, ct.custgroup, ct.blocked, ct.orgid, ct.multilinedisc, ct.usepurchrequest, ct.linedisc, ct.incltax, ct.enddisc, ct.taxgroup, ct.creditrating, ct.taxlicensenum, ct.vatnum, ct.identificationnumber, isnull(rcp. optin, 0) as OPTIN FROM [ax].custtable ct JOIN [ax].dirpartytable dpt ON ct.party = dpt.recid

175 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization LEFT OUTER JOIN ax.retailcusttable rct ON ct.accountnum = rct.accountnum AND ct.dataareaid = rct.dataareaid LEFT OUTER JOIN ax.dirpersonname dpn ON dpt.recid = dpn.person AND (GETUTCDATE() BETWEEN dpn.validfrom AND dpn.validto) -- phone LEFT OUTER JOIN [crt].customerelectronicaddressesview ceap ON dpt.recid = ceap.dirpartyrecordid AND ceap.methodytpe = 1 AND ceap.isprimary = 1 AND ceap.parentlocation = LEFT OUTER JOIN [crt].customerelectronicaddressesview ceae ON dpt.recid = ceae.dirpartyrecordid AND ceae.methodytpe = 2 AND ceae.isprimary = 1 AND ceae.parentlocation = 0 -- url LEFT OUTER JOIN [crt].customerelectronicaddressesview ceau ON dpt.recid = ceau.dirpartyrecordid AND ceau.methodytpe = 3 AND ceau.isprimary = 1 AND ceau.parentlocation = 0 -- cellphone LEFT OUTER JOIN [crt].customerelectronicaddressesview ceacp ON dpt.recid = ceacp.dirpartyrecordid AND ceacp.methodytpe = 1 AND ceacp.isprimary = 0 AND ceacp.ismobilephone = preference LEFT OUTER JOIN ax.retailcustpreference rcp on ct.accountnum = rcp.accountnum AND ct.dataareaid = rcp.dataareaid )

176 GO 4. Alter [crt].[createupdatecustomer] to save MAILOPTIN to table ax.retailcustpreference table for databases RetailHoustonStore, RetailContosoStorefront, RetailBostonStore, RetailFabrikamStorefront, RetailNewYorkStore, RetailParisStore, and RetailSeattleStore with the following SQL script Add the following SQL script after the upsert for table RETAILCUSTTABLE -- HOL MERGE INTO [ax].retailcustpreference USING (SELECT DISTINCT tp.parentrecid, tp.propertyvalue as [ OPTIN], ct.accountnum, ct.dataareaid tp JOIN ax.custtable ct on ct.recid = tp.parentrecid WHERE tp.parentrecid <> 0 and tp.propertyname = ' OPTIN') AS SOURCE ON [ax].retailcustpreference.recid = SOURCE.PARENTRECID and [ax].retailcustpreference.dataareaid = SOURCE.DataAreaID and [ax].retailcustpreference.accountnum = SOURCE.ACCOUNTNUM WHEN MATCHED THEN UPDATE SET [ OPTIN] = source.[ optin] WHEN NOT MATCHED THEN INSERT ( RECID,DATAAREAID, OPTIN,ACCOUNTNUM ) VALUES ( SOURCE.PARENTRECID,SOURCE.DATAAREAID,SOURCE. OPTIN,SOURCE.AccountNum ); <> 0 BEGIN GOTO exit_label; END; -- HOL

177 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Send customer data to channels 1. Launch to Dynamics AX 2012 R3, go to Retail > Periodic > Data distribution > Distribution schedule, run job 1010 Customers to send data to channels

178 Extend mobile POS to add preference on the customer edit page 1. Go to C:\Microsoft Dynamics\Retail SDK\POS Clients\Windows\C1, lanuch Visual Studio 2012 and open POS.sln Windows 8 POS project 2. Add the following two UI resource texts in POS\Assets\Strings\en-US\resources.resjson under section CUSTOMERADDEDIT RESOURCES. RANGE: [ ]

179 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization a. Add the following code to the contractor of class CustomerAddEditViewModel // HOL this. optin = ko.observable(false); 0)); }); // HOL this. optin.subscribe((new optin) => { //if (this._ optinproperty && this._ optinproperty.value) { // this._ optinproperty.value.integervalue = (new optin? 1 : 0); //} this.addupdateextensionproperty(this._ optin_key, (new optin? 1 :

180 b. Add the following method to class CustomerAddEditViewModel // HOL private addupdateextensionproperty(key: string, intvalue: number) { if (this.customerproxy) { if (!this.customerproxy.extensionproperties()) { this.customerproxy.extensionproperties = ko.observablearray([]); } { var properties = this.customerproxy.extensionproperties().filter((property) => return property.key === key; }); var optinp: Model.Entities.CommercePropertyClass; if (ArrayExtensions.hasElements(properties)) { optinp = properties[0]; } else { optinp = new Model.Entities.CommercePropertyClass(); optinp.key = key; this.customerproxy.extensionproperties().push( optinp); } if (! optinp.value) { optinp.value = new Model.Entities.CommercePropertyValueClass(); } } } // HOL optinp.value.integervalue = intvalue; c. Add the following code in the call back of this.customermanager.getcustomerdetailsasync in method CustomerAddEditViewModel.LoadCustomer // HOL

181 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization var properties = customer.extensionproperties.filter((property) => { return property.key === this._ optin_key; }); if (ArrayExtensions.hasElements(properties)) { var optinproperty= properties[0]; if ( optinproperty.value) { this. optin( optinproperty.value.integervalue === 1); } } // HOL 3. Extend the customer page to add preference in Views\Customer\CustomerAddEditView.html under the Phone number section

182 <!-- HOL: preference --> <div> <br /> <input tabindex="8" type="checkbox" id="specialoffertabread" data-bind="checked: customeraddeditviewmodel. optin"/> offers?</label> <label for="specialoffertabread" data-bind="resx: { textcontent: 'string_1366' }">Receive special </div> 4. Build the project by going to BUILD > Build Solution in Visual Studio Create a package by selecting POS project, then go to menu PROJECT > Store > Create App Packages, select No

183 Microsoft Dynamics AX 2012 R3 for Retail in Brick in Brick and Mortar Stores: Development and Customization Follow the steps and enter needed info, click Create to create the package

Altiris Patch Management Solution for Windows 7.6 from Symantec Third-Party Legal Notices

Altiris Patch Management Solution for Windows 7.6 from Symantec Third-Party Legal Notices Appendix A Altiris Patch Management Solution for Windows 7.6 from Symantec Third-Party Legal Notices This appendix includes the following topics: Third-Party Legal Attributions CabDotNet MICROSOFT PLATFORM

More information

Altiris Patch Management Solution for Windows 7.5 SP1 from Symantec Third-Party Legal Notices

Altiris Patch Management Solution for Windows 7.5 SP1 from Symantec Third-Party Legal Notices Appendix A Altiris Patch Management Solution for Windows 7.5 SP1 from Symantec Third-Party Legal Notices This appendix includes the following topics: Third-Party Legal Attributions CabDotNet XML-RPC.NET

More information

MICROSOFT SOFTWARE LICENSE TERMS FOR A VIRTUAL HARD DISK IMAGE OF EVALUATION COPIES OF THE MICROSOFT PRODUCTS IDENTIFIED IN EXHIBIT A

MICROSOFT SOFTWARE LICENSE TERMS FOR A VIRTUAL HARD DISK IMAGE OF EVALUATION COPIES OF THE MICROSOFT PRODUCTS IDENTIFIED IN EXHIBIT A MICROSOFT SOFTWARE LICENSE TERMS FOR A VIRTUAL HARD DISK IMAGE OF EVALUATION COPIES OF THE MICROSOFT PRODUCTS IDENTIFIED IN EXHIBIT A These license terms are an agreement between Microsoft Corporation

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT VISUAL STUDIO 2008 PROFESSIONAL EDITION AND TRIAL EDITION

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT VISUAL STUDIO 2008 PROFESSIONAL EDITION AND TRIAL EDITION MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT VISUAL STUDIO 2008 PROFESSIONAL EDITION AND TRIAL EDITION These license terms are an agreement between Microsoft Corporation (or based on where you live, one

More information

for this software, unless other terms accompany those items. If so, those terms apply.

for this software, unless other terms accompany those items. If so, those terms apply. MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT VISUAL BASIC 2010 EXPRESS These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please

More information

Boost.Org : Boost C++ Libraries

Boost.Org : Boost C++ Libraries Components of NetMotion Locality (the Software ) may be subject to licenses from third parties, including open source communities, that govern the use of those components ( Third Party Licenses ). Any

More information

Machine Automation Controller NJ-series Database Connection CPU Units. User s Manual NJ501-1520 NJ501-1420 NJ501-1320. CPU Unit W527-E1-03

Machine Automation Controller NJ-series Database Connection CPU Units. User s Manual NJ501-1520 NJ501-1420 NJ501-1320. CPU Unit W527-E1-03 Machine Automation Controller NJ-series Database Connection CPU Units User s Manual NJ501-1520 NJ501-1420 NJ501-1320 CPU Unit W527-E1-03 OMRON, 2013 All rights reserved. No part of this publication may

More information

Sun Management Center Change Manager 1.0.1 Release Notes

Sun Management Center Change Manager 1.0.1 Release Notes Sun Management Center Change Manager 1.0.1 Release Notes Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 817 0891 10 May 2003 Copyright 2003 Sun Microsystems, Inc. 4150

More information

Solaris 10 Documentation README

Solaris 10 Documentation README Solaris 10 Documentation README Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 817 0550 10 January 2005 Copyright 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa

More information

Microsoft Band Software Development Kit Terms of Use

Microsoft Band Software Development Kit Terms of Use Microsoft Band Software Development Kit Terms of Use (LAST UPDATED June 2015) These terms are an agreement ( Agreement ) between Microsoft Corporation (or based on where you live, one of its affiliates)

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SECURITY ESSENTIALS 1.0

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SECURITY ESSENTIALS 1.0 MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SECURITY ESSENTIALS 1.0 These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2012 STANDARD FOR EMBEDDED SYSTEMS

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2012 STANDARD FOR EMBEDDED SYSTEMS MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2012 STANDARD FOR EMBEDDED SYSTEMS These license terms are an agreement between you and the server manufacturer that distributes the software with

More information

Sun StorEdge A5000 Installation Guide

Sun StorEdge A5000 Installation Guide Sun StorEdge A5000 Installation Guide for Windows NT Server 4.0 Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No. 805-7273-11 October 1998,

More information

Mayfair EULA for Journal Office

Mayfair EULA for Journal Office Mayfair EULA for Journal Office 9-April-2014 Page 1 of 9 Mayfair EULA for Journal Office Mayfair Software End User License Agreement Software programs which you received either installed on on the device

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2012 STANDARD

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2012 STANDARD MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2012 STANDARD These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please

More information

Course Outline. ttttttt

Course Outline. ttttttt 80537 - Microsoft Dynamics AX 2012 R2 for Retail in Brick and Mortar Stores: Installation and Configuration General Description Microsoft Dynamic AX for Retail is an integrated solution that is designed

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2003 R2 STANDARD EDITION, ENTERPRISE EDITION, STANDARD x64 EDITION, ENTERPRISE x64 EDITION

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2003 R2 STANDARD EDITION, ENTERPRISE EDITION, STANDARD x64 EDITION, ENTERPRISE x64 EDITION MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2003 R2 STANDARD EDITION, ENTERPRISE EDITION, STANDARD x64 EDITION, ENTERPRISE x64 EDITION These license terms are an agreement between you and

More information

Microsoft Software License Terms Explained

Microsoft Software License Terms Explained MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT DYNAMICS CRM 2011 BUSINESS READY LICENSING These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates)

More information

for this software, unless other terms accompany those items. If so, those terms apply.

for this software, unless other terms accompany those items. If so, those terms apply. MICROSOFT SOFTWARE LICENSE TERMS WINDOWS VISTA ENTERPRISE SERVICE PACK 1 Your use of this software is subject to the terms and conditions of your volume license agreement. You may not use this software

More information

N1 Grid Service Provisioning System 5.0 User s Guide for the Linux Plug-In

N1 Grid Service Provisioning System 5.0 User s Guide for the Linux Plug-In N1 Grid Service Provisioning System 5.0 User s Guide for the Linux Plug-In Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 819 0735 December 2004 Copyright 2004 Sun Microsystems,

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT EXCHANGE SERVER 2007 ENTERPRISE EDITION, STANDARD EDITION, EVALUATION EDITION

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT EXCHANGE SERVER 2007 ENTERPRISE EDITION, STANDARD EDITION, EVALUATION EDITION MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT EXCHANGE SERVER 2007 ENTERPRISE EDITION, STANDARD EDITION, EVALUATION EDITION These license terms are an agreement between Microsoft Corporation (or based on

More information

for this software, unless other terms accompany those items. If so, those terms apply.

for this software, unless other terms accompany those items. If so, those terms apply. MICROSOFT SOFTWARE LICENSE TERMS WINDOWS VISTA BUSINESS These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them.

More information

Windows Azure Pack Installation and Initial Configuration

Windows Azure Pack Installation and Initial Configuration Windows Azure Pack Installation and Initial Configuration Windows Server 2012 R2 Hands-on lab In this lab, you will learn how to install and configure the components of the Windows Azure Pack. To complete

More information

Sun Management Center 3.6 Version 5 Add-On Software Release Notes

Sun Management Center 3.6 Version 5 Add-On Software Release Notes Sun Management Center 3.6 Version 5 Add-On Software Release Notes For Sun Fire, Sun Blade, Netra, and Sun Ultra Systems Sun Microsystems, Inc. www.sun.com Part No. 819-7977-10 October 2006, Revision A

More information

Solaris 9 9/05 Installation Roadmap

Solaris 9 9/05 Installation Roadmap Solaris 9 9/05 Installation Roadmap This document is a guide to the DVD-ROM, CD-ROMs, and documents involved in installing the Solaris 9 9/05 software. Unless otherwise specified, this document refers

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2003 AND MICROSOFT WINDOWS SERVER 2003 R2 PRODUCTS

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2003 AND MICROSOFT WINDOWS SERVER 2003 R2 PRODUCTS MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2003 AND MICROSOFT WINDOWS SERVER 2003 R2 PRODUCTS These license terms are an agreement between you and [OEM]. Please read them. They apply to

More information

Retail Deployment Guide. Microsoft Dynamics AX 2012 Feature Pack

Retail Deployment Guide. Microsoft Dynamics AX 2012 Feature Pack Retail Deployment Guide Microsoft Dynamics AX 2012 Feature Pack Microsoft Corporation February 2012 Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT DEVELOPER NETWORK (MSDN) SUBSCRIPTION OPERATING SYSTEMS, PROFESSIONAL, AND PREMIUM EDITIONS

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT DEVELOPER NETWORK (MSDN) SUBSCRIPTION OPERATING SYSTEMS, PROFESSIONAL, AND PREMIUM EDITIONS MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT DEVELOPER NETWORK (MSDN) SUBSCRIPTION OPERATING SYSTEMS, PROFESSIONAL, AND PREMIUM EDITIONS These license terms are an agreement between Microsoft Corporation

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT OFFICE 2010 DESKTOP APPLICATION SOFTWARE

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT OFFICE 2010 DESKTOP APPLICATION SOFTWARE MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT OFFICE 2010 DESKTOP APPLICATION SOFTWARE Below are two separate sets of license terms. Only one set applies to you. If you are using the software pre-installed

More information

MICROSOFT SOFTWARE LICENSE TERMS WINDOWS 7 ULTIMATE FOR EMBEDDED SYSTEMS WINDOWS 7 PROFESSIONAL FOR EMBEDDED SYSTEMS (ALL VERSIONS)

MICROSOFT SOFTWARE LICENSE TERMS WINDOWS 7 ULTIMATE FOR EMBEDDED SYSTEMS WINDOWS 7 PROFESSIONAL FOR EMBEDDED SYSTEMS (ALL VERSIONS) MICROSOFT SOFTWARE LICENSE TERMS WINDOWS 7 ULTIMATE FOR EMBEDDED SYSTEMS WINDOWS 7 PROFESSIONAL FOR EMBEDDED SYSTEMS (ALL VERSIONS) These license terms are an agreement between you and Kontron Europe GmbH.

More information

Page 1 of 5. Microsoft Software License Terms for: Windows XP Embedded and Windows Embedded Standard Runtime

Page 1 of 5. Microsoft Software License Terms for: Windows XP Embedded and Windows Embedded Standard Runtime Microsoft Software License Terms for: Windows XP Embedded and Windows Embedded Standard Runtime These license terms are an agreement between you and Baxter Healthcare Corporation ( Baxter ). Please read

More information

Sun StorEdge Availability Suite Software Point-in-Time Copy Software Maximizing Backup Performance

Sun StorEdge Availability Suite Software Point-in-Time Copy Software Maximizing Backup Performance Sun StorEdge Availability Suite Software Point-in-Time Copy Software Maximizing Backup Performance A Best Practice Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. 650-960-1300 Part

More information

You may distribute those documents and projects non-commercially. If you wish to use these media elements or templates for any other purpose, go to

You may distribute those documents and projects non-commercially. If you wish to use these media elements or templates for any other purpose, go to MICROSOFT SOFTWARE LICENSE TERMS 2007 MICROSOFT OFFICE SYSTEM DESKTOP APPLICATION SOFTWARE Below are three separate sets of License Terms. Only one set applies to you. To determine which License Terms

More information

PointCentral Subscription Agreement v.9.2

PointCentral Subscription Agreement v.9.2 PointCentral Subscription Agreement v.9.2 READ THIS SUBSCRIPTION AGREEMENT ( AGREEMENT ) CAREFULLY BEFORE INSTALLING THIS SOFTWARE. THIS AGREEMENT, BETWEEN CALYX TECHNOLOGY, INC., DBA CALYX SOFTWARE (

More information

ZIMPERIUM, INC. END USER LICENSE TERMS

ZIMPERIUM, INC. END USER LICENSE TERMS ZIMPERIUM, INC. END USER LICENSE TERMS THIS DOCUMENT IS A LEGAL CONTRACT. PLEASE READ IT CAREFULLY. These End User License Terms ( Terms ) govern your access to and use of the zanti and zips client- side

More information

1. GRANT OF LICENSE. Formdocs LLC grants you the following rights provided that you comply with all terms and conditions of this EULA:

1. GRANT OF LICENSE. Formdocs LLC grants you the following rights provided that you comply with all terms and conditions of this EULA: END-USER LICENSE AGREEMENT FOR FORMDOCS SOFTWARE IMPORTANT-READ CAREFULLY: This End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Formdocs

More information

Crestron VMK-WIN TouchPoint Virtual Mouse & Keyboard Software for Windows Installation Guide

Crestron VMK-WIN TouchPoint Virtual Mouse & Keyboard Software for Windows Installation Guide Crestron VMK-WIN TouchPoint Virtual Mouse & Keyboard Software for Windows Installation Guide This document was prepared and written by the Technical Documentation department at: Crestron Electronics, Inc.

More information

Sun Grid Engine 5.2.3 Release Notes

Sun Grid Engine 5.2.3 Release Notes Sun Grid Engine 5.2.3 Release Notes Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 U.S.A. 650-960-1300 Part No. 816-2082-10 July 2001 For more information, go to http://www.sun.com/gridware

More information

END-USER LICENSE AGREEMENT FOR DELL, THIRD PARTY AND MICROSOFT SOFTWARE

END-USER LICENSE AGREEMENT FOR DELL, THIRD PARTY AND MICROSOFT SOFTWARE END-USER LICENSE AGREEMENT FOR DELL, THIRD PARTY AND MICROSOFT SOFTWARE Before using your computer, please read the Dell End User Software License Agreement ( DELL EULA ) that came with your computer.

More information

reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this

reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this MICROSOFT SOFTWARE LICENSE TERMS 2007 MICROSOFT OFFICE SYSTEM DESKTOP APPLICATION SOFTWARE Below are three separate sets of License Terms. Only one set applies to you. To determine which License Terms

More information

Microsoft Dynamics GP. Electronic Signatures

Microsoft Dynamics GP. Electronic Signatures Microsoft Dynamics GP Electronic Signatures Copyright Copyright 2006 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is the responsibility of the user. Without

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2005 (CAL VERSIONS)

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2005 (CAL VERSIONS) MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT SQL SERVER 2005 (CAL VERSIONS) These license terms are an agreement between you and [OEM]. Please read them. They apply to the software included on this server.

More information

Welcome to InFixi Exchange Mailbox Recovery Software. Help Guide. Exchange Mailbox recovery software

Welcome to InFixi Exchange Mailbox Recovery Software. Help Guide. Exchange Mailbox recovery software Welcome to InFixi Exchange Mailbox Recovery Software Help Guide Exchange Mailbox Recovery Software 1 Introduction about InFixi Exchange Mailbox Recovery Software InFixi Exchange Mailbox Recovery software

More information

Section 1: If you license MICROSOFT OFFICE FOR MAC 2011 TRIAL, the Section 1 License Terms apply.

Section 1: If you license MICROSOFT OFFICE FOR MAC 2011 TRIAL, the Section 1 License Terms apply. Below are seven separate sets of License Terms for Office for Mac 2011 and related software. Only one set of license terms in Sections 1 to 4 may apply to you; Sections 5-7 may not apply to you. You can

More information

Lab Answer Key for Module 6: Configuring and Managing Windows SharePoint Services 3.0. Table of Contents Lab 1: Configuring and Managing WSS 3.

Lab Answer Key for Module 6: Configuring and Managing Windows SharePoint Services 3.0. Table of Contents Lab 1: Configuring and Managing WSS 3. Lab Answer Key for Module 6: Configuring and Managing Windows SharePoint Services 3.0 Table of Contents Lab 1: Configuring and Managing WSS 3.0 1 Information in this document, including URL and other Internet

More information

Sun TM SNMP Management Agent Release Notes, Version 1.6

Sun TM SNMP Management Agent Release Notes, Version 1.6 Sun TM SNMP Management Agent Release Notes, Version 1.6 Sun Microsystems, Inc. www.sun.com Part No. 820-5966-12 December 2008, Revision A Submit comments about this document by clicking the Feedback[+]

More information

LICENSOR: Specify the total number of server licenses for which the end user is licensed under this agreement.

LICENSOR: Specify the total number of server licenses for which the end user is licensed under this agreement. (For ISV Royalty Program Only) Microsoft SQL Server 2008 R2 Standard 1 (Runtime) Server Licenses: User Client Access Licenses: Device Client Access Licenses: 2 3 4 END-USER LICENSE AGREEMENT These license

More information

Microsoft Dynamics GP. econnect Installation and Administration Guide Release 9.0

Microsoft Dynamics GP. econnect Installation and Administration Guide Release 9.0 Microsoft Dynamics GP econnect Installation and Administration Guide Release 9.0 Copyright Copyright 2006 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is the

More information

End User License Agreement for the Intel(R) Software Development Products

End User License Agreement for the Intel(R) Software Development Products IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING. Do not copy, install, or use the Materials provided under this license agreement ("Agreement"), until you have carefully read the following terms and

More information

Microsoft Dynamics GP. Pay Steps for Human Resources Release 9.0

Microsoft Dynamics GP. Pay Steps for Human Resources Release 9.0 Microsoft Dynamics GP Pay Steps for Human Resources Release 9.0 Copyright Copyright 2006 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is the responsibility of

More information

Veritas Storage Foundation 5.0 Software for SPARC

Veritas Storage Foundation 5.0 Software for SPARC Veritas Storage Foundation 5.0 Software for SPARC Release Note Supplement Sun Microsystems, Inc. www.sun.com Part No. 819-7074-10 July 2006 Submit comments about this document at: http://www.sun.com/hwdocs/feedback

More information

Request For Quote. Reference Manual. Integrates with Microsoft Dynamics GP v10

Request For Quote. Reference Manual. Integrates with Microsoft Dynamics GP v10 Request For Quote Reference Manual Integrates with Microsoft Dynamics GP v10 . Copyright Program Copyright 1996-2009 Integrated Software, Inc. Portions Copyright 2005-2008 Microsoft Corporation, Portions

More information

The software on this device includes software licensed by Company from Microsoft Corporation or its affiliates.

The software on this device includes software licensed by Company from Microsoft Corporation or its affiliates. WINDOWS PHONE 7 SOFTWARE LICENSE TERMS These license terms are an agreement between you and Nokia ( Company ), the party distributing the software and device. These terms apply to the software that came

More information

RockWare Click-Wrap Software License Agreement ( License )

RockWare Click-Wrap Software License Agreement ( License ) RockWare, Inc. ( RockWare ) 2221 East Street, Suite 101 Golden CO 80401 USA RockWare Click-Wrap Software License Agreement ( License ) IMPORTANT - READ ALL OF THE TERMS AND CONDITIONS IN THIS LICENSE CAREFULLY

More information

Microsoft Dynamics GP. Audit Trails

Microsoft Dynamics GP. Audit Trails Microsoft Dynamics GP Audit Trails Copyright Copyright 2007 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is the responsibility of the user. Without limiting

More information

FME SOFTWARE LICENSE AGREEMENT

FME SOFTWARE LICENSE AGREEMENT FME SOFTWARE LICENSE AGREEMENT IMPORTANT READ CAREFULLY: This FME Software License Agreement ("Agreement") is a legal agreement between You (either an individual or a single legal entity) and Safe Software

More information

MyShortcut. Administrator's Guide

MyShortcut. Administrator's Guide MyShortcut Administrator's Guide January 2011 www.lexmark.com Lexmark and Lexmark with diamond design are trademarks of Lexmark International, Inc., registered in the United States and/or other countries.

More information

PerfectForms End-User License Agreement

PerfectForms End-User License Agreement PerfectForms End-User License Agreement 2011 PerfectForms Page 1 of 12 Contents 1. DEFINITIONS... 4 2. GRANT OF RIGHTS... 4 3. FEES... 5 4. CONFIGURATION... 5 5. INTELLECTUAL PROPERTY... 5 6. TERM AND

More information

Microsoft Dynamics 80639 Training

Microsoft Dynamics 80639 Training Table of Contents Microsoft Dynamics 80639 Training Retail in ecommerce Stores: Installation and Configuration for Microsoft Dynamics AX 2012 R3 1 Microsoft Retail in ecommerce Stores: Installation and

More information

Sun Cluster 2.2 7/00 Data Services Update: Apache Web Server

Sun Cluster 2.2 7/00 Data Services Update: Apache Web Server Sun Cluster 2.2 7/00 Data Services Update: Apache Web Server Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 U.S.A. 650-960-1300 Part No. 806-6121 July 2000, Revision A Copyright 2000

More information

Xcalibur Global Version 1.2 Installation Guide Document Version 3.0

Xcalibur Global Version 1.2 Installation Guide Document Version 3.0 Xcalibur Global Version 1.2 Installation Guide Document Version 3.0 December 2010 COPYRIGHT NOTICE TRADEMARKS 2010 Chip PC Inc., Chip PC (Israel) Ltd., Chip PC (UK) Ltd., Chip PC GmbH All rights reserved.

More information

C. System Requirements. Apple Software is supported only on Apple-branded hardware that meets specified system requirements as indicated by Apple.

C. System Requirements. Apple Software is supported only on Apple-branded hardware that meets specified system requirements as indicated by Apple. ENGLISH APPLE INC. SOFTWARE LICENSE AGREEMENT FOR APPLE STORE APPLICATION PLEASE READ THIS SOFTWARE LICENSE AGREEMENT ("LICENSE") CAREFULLY BEFORE USING THE APPLE SOFTWARE. BY USING THE APPLE SOFTWARE,

More information

Pervasive Software Inc. Pervasive PSQL v11 Insurance License Agreement

Pervasive Software Inc. Pervasive PSQL v11 Insurance License Agreement Pervasive Software Inc. Pervasive PSQL v11 Insurance License Agreement IMPORTANT: DO NOT INSTALL THE ENCLOSED OR DOWNLOADED SOFTWARE UNTIL YOU HAVE READ THIS PERVASIVE PSQL LICENSE AGREEMENT ( AGREEMENT

More information

Omniquad Exchange Archiving

Omniquad Exchange Archiving Omniquad Exchange Archiving Deployment and Administrator Guide Manual version 3.1.2 Revision Date: 20 May 2013 Copyright 2012 Omniquad Ltd. All rights reserved. Omniquad Ltd Crown House 72 Hammersmith

More information

Extension Module (XMOD): Batch Order Management (BOM)

Extension Module (XMOD): Batch Order Management (BOM) Extension Module (XMOD): Batch Order Management (BOM) 1999-Present Kryptronic, Inc. All rights reserved worldwide. Kryptronic, the Kryptronic logo and all Kryptronic software names and logos are trademarks

More information

Nexinto Business Cloud Terms Microsoft Volume Licensing End user License Terms

Nexinto Business Cloud Terms Microsoft Volume Licensing End user License Terms Nexinto Business Cloud Terms Microsoft Volume Licensing End user Inhalt 1. Definitions... 2 2. Ownership of products... 2 3. Use of Client Software... 3 4. Use of Redistribution Software... 3 5. Copies...

More information

Sun StorEdge RAID Manager 6.2.21 Release Notes

Sun StorEdge RAID Manager 6.2.21 Release Notes Sun StorEdge RAID Manager 6.2.21 Release Notes formicrosoftwindowsnt Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No. 805-6890-11 November

More information

Dell Enterprise Reporter 2.5. Configuration Manager User Guide

Dell Enterprise Reporter 2.5. Configuration Manager User Guide Dell Enterprise Reporter 2.5 2014 Dell Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software license

More information

Software License Agreement

Software License Agreement Software License Agreement GRANT OF LICENSE This Accusoft Corporation ("ACCUSOFT") Agreement ("LICENSE") grants YOU ("LICENSEE") a non-exclusive and non-transferable right to use the trial mode version

More information

Service Agreement: January 2008

Service Agreement: January 2008 International Consultants in Medicine Service Agreement: January 2008 Prior to enrolling in the service as a Member of any degree, you must agree to the following terms and conditions. You may accept these

More information

BIMASS and You - A Copyright Infringement Conclusions

BIMASS and You - A Copyright Infringement Conclusions PRODUCT SCHEDULE Hosted Exchange This Product Schedule (the Schedule ), between BIMASS and ( You ) is effective immediately and is issued pursuant to and incorporates by reference the terms and conditions

More information

Microsoft Software License Terms Windows 7 Professional

Microsoft Software License Terms Windows 7 Professional Microsoft Software License Terms Windows 7 Professional IMPORTANT READ CAREFULLY. These license terms are an agreement between you and the computer manufacturer that distributes the software with the computer,

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2008 R2 FOR EMBEDDED SYSTEMS TELECOMMUNICATIONS STANDARD

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2008 R2 FOR EMBEDDED SYSTEMS TELECOMMUNICATIONS STANDARD MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2008 R2 FOR EMBEDDED SYSTEMS TELECOMMUNICATIONS STANDARD These license terms are an agreement between you and Unify GmbH & Co. KG. Please read

More information

FILEMAKER PRO ADVANCED SOFTWARE LICENSE

FILEMAKER PRO ADVANCED SOFTWARE LICENSE FILEMAKER PRO ADVANCED SOFTWARE LICENSE IMPORTANT -- READ CAREFULLY: BY INSTALLING, COPYING, DOWNLOADING, ACCESSING OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE.

More information

EULA - Page 2 of 5 any service, account, computer systems or networks associated with the Internet-based services provided by ESI-TECNALIA.

EULA - Page 2 of 5 any service, account, computer systems or networks associated with the Internet-based services provided by ESI-TECNALIA. EULA - Page 1 of 5 END-USER LICENSE AGREEMENT FOR ESI-TECNALIA SOFTWARE IMPORTANT READ CAREFULLY: This End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single

More information

CRM to Exchange Synchronization

CRM to Exchange Synchronization CRM to Exchange Synchronization Installation, Configuration and End-User Instructions VERSION 1.0 DATE PREPARED: 9/1/2012 DEVELOPMENT: BRITE GLOBAL, INC. 2012 Brite Global, Incorporated. All rights reserved.

More information

BlackBerry Desktop Manager Version: 1.0.1. User Guide

BlackBerry Desktop Manager Version: 1.0.1. User Guide BlackBerry Desktop Manager Version: 1.0.1 User Guide SWD-857131-0929025909-001 Contents Basics... 2 About BlackBerry Desktop Manager... 2 System requirements: BlackBerry Desktop Manager... 2 Set up your

More information

Creating and Deploying Active Directory Rights Management Services Templates Step-by-Step Guide

Creating and Deploying Active Directory Rights Management Services Templates Step-by-Step Guide Creating and Deploying Active Directory Rights Management Services Templates Step-by-Step Guide Microsoft Corporation Published: January 2008 Author: Brian Lich Editor: Carolyn Eller Abstract This step-by-step

More information

C-DAC Medical Informatics Software Development Kit End User License Agreement

C-DAC Medical Informatics Software Development Kit End User License Agreement C-DAC Medical Informatics Software Development Kit End User License Agreement BY DOWNLOADING AND INSTALLING, COPYING OR OTHERWISE USING THE CENTRE FOR DEVELOPMENT OF ADVANCED COMPUTING ( C-DAC ) MEDICAL

More information

MicrosoftDynam ics GP 2015. TenantServices Installation and Adm inistration Guide

MicrosoftDynam ics GP 2015. TenantServices Installation and Adm inistration Guide MicrosoftDynam ics GP 2015 TenantServices Installation and Adm inistration Guide Copyright Copyright 2014 Microsoft Corporation. All rights reserved. Limitation of liability This document is provided as-is.

More information

Sun Microsystems, Inc. ("Sun") ENTITLEMENT for SOFTWARE. Licensee/Company: Entity receiving Software.

Sun Microsystems, Inc. (Sun) ENTITLEMENT for SOFTWARE. Licensee/Company: Entity receiving Software. Sun Microsystems, Inc. ("Sun") ENTITLEMENT for SOFTWARE Licensee/Company: Entity receiving Software. Effective Date: Date of delivery of the Software to You. Software: JavaFX 1.2 Software Development Kit

More information

Sun Management Center 3.6 Version 4 Add-On Software Release Notes

Sun Management Center 3.6 Version 4 Add-On Software Release Notes Sun Management Center 3.6 Version 4 Add-On Software Release Notes For Sun Fire, Sun Blade, Netra, and Sun Ultra Systems Sun Microsystems, Inc. www.sun.com Part No. 819-4989-10 July 2006, Revision A Submit

More information

1. GRANT OF LICENSE. Acunetix Ltd. grants you the following rights provided that you comply with all terms and conditions of this EULA:

1. GRANT OF LICENSE. Acunetix Ltd. grants you the following rights provided that you comply with all terms and conditions of this EULA: Acunetix Web Vulnerability Scanner Licensed Copies: 1 END USER LICENSE AGREEMENT IMPORTANT READ CAREFULLY: This End User License Agreement ("EULA") is a legal agreement between you (either an individual

More information

Introduction to Hyper-V High- Availability with Failover Clustering

Introduction to Hyper-V High- Availability with Failover Clustering Introduction to Hyper-V High- Availability with Failover Clustering Lab Guide This lab is for anyone who wants to learn about Windows Server 2012 R2 Failover Clustering, focusing on configuration for Hyper-V

More information

Microsoft Dynamics GP. Workflow Installation Guide Release 10.0

Microsoft Dynamics GP. Workflow Installation Guide Release 10.0 Microsoft Dynamics GP Workflow Installation Guide Release 10.0 Copyright Copyright 2008 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is the responsibility of

More information

END-USER LICENSE AGREEMENT FOR DIGIMETRICS AURORA SOFTWARE

END-USER LICENSE AGREEMENT FOR DIGIMETRICS AURORA SOFTWARE END-USER LICENSE AGREEMENT FOR DIGIMETRICS AURORA SOFTWARE IMPORTANT READ CAREFULLY: This End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity)

More information

/ WMS / LITE INDUSTRIAL)

/ WMS / LITE INDUSTRIAL) Acknowledgements Trademark Information COREflex Software Microsoft, Windows, Windows NT/ 2000/ XP, and Access are registered trademarks of Microsoft Corporation. Quickbooks is a registered trademark of

More information

If you do not wish to agree to these terms, please click DO NOT ACCEPT and obtain a refund of the purchase price as follows:

If you do not wish to agree to these terms, please click DO NOT ACCEPT and obtain a refund of the purchase price as follows: IMPORTANT: READ THIS AGREEMENT CAREFULLY. THIS IS A LEGAL AGREEMENT BETWEEN AVG TECHNOLOGIES CY, Ltd. ( AVG TECHNOLOGIES ) AND YOU (ACTING AS AN INDIVIDUAL OR, IF APPLICABLE, ON BEHALF OF THE INDIVIDUAL

More information

EventTracker: Support to Non English Systems

EventTracker: Support to Non English Systems EventTracker: Support to Non English Systems Publication Date: April 25, 2012 EventTracker 8815 Centre Park Drive Columbia MD 21045 www.eventtracker.com Introduction This document has been prepared to

More information

Sun Cobalt Control Station. Using the LCD Console

Sun Cobalt Control Station. Using the LCD Console Sun Cobalt Control Station Using the LCD Console Copyright 1997-2001 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303-4900 U.S.A. All rights reserved. Sun Microsystems, Inc. has

More information

SMARTDRAW SOFTWARE LICENSE AGREEMENT

SMARTDRAW SOFTWARE LICENSE AGREEMENT SMARTDRAW SOFTWARE LICENSE AGREEMENT PLEASE READ CAREFULLY: SMARTDRAW SOFTWARE, LLC ("SMARTDRAW") IS WILLING TO LICENSE THE SMARTDRAW SOFTWARE ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED

More information

CITRIX SYSTEMS, INC. SOFTWARE LICENSE AGREEMENT

CITRIX SYSTEMS, INC. SOFTWARE LICENSE AGREEMENT CITRIX SYSTEMS, INC. SOFTWARE LICENSE AGREEMENT PLEASE READ THIS SOFTWARE LICENSE AGREEMENT CAREFULLY BEFORE DOWNLOADING, INSTALLING OR USING CITRIX OR CITRIX-SUPPLIED SOFTWARE. BY DOWNLOADING OR INSTALLING

More information

Partners in Care Welch Allyn Connex Software Development Kit License Agreement

Partners in Care Welch Allyn Connex Software Development Kit License Agreement This Software Development Kit End User ( Agreement ) is between Welch Allyn, Inc. ( Welch Allyn ) and the Customer identified in the purchase order ( Customer or You ), and it governs the Software Development

More information

Service Description: Cisco Prime Home Hosted Services. This document describes the Cisco Prime Home Hosted Services.

Service Description: Cisco Prime Home Hosted Services. This document describes the Cisco Prime Home Hosted Services. Service Description: Cisco Prime Home Hosted Services This document describes the Cisco Prime Home Hosted Services. Related Documents: The following documents also posted at www.cisco.com/go/servicedescriptions/

More information

SunFDDI 6.0 on the Sun Enterprise 10000 Server

SunFDDI 6.0 on the Sun Enterprise 10000 Server SunFDDI 6.0 on the Sun Enterprise 10000 Server Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No.: 806-3610-11 November 1999, Revision A Send

More information

END USER LICENSE AGREEMENT

END USER LICENSE AGREEMENT END USER LICENSE AGREEMENT 1. SCOPE OF THIS AGREEMENT. This END USER LICENSE AGREEMENT ("EULA") is a legal agreement between you (either an individual or a single entity) and TradeStation ("TS") governing

More information

XANGATI END USER SOFTWARE LICENSE TERMS AND CONDITIONS

XANGATI END USER SOFTWARE LICENSE TERMS AND CONDITIONS XANGATI END USER SOFTWARE LICENSE TERMS AND CONDITIONS IMPORTANT: PLEASE READ BEFORE DOWNLOADING, INSTALLING OR USING THE XANGATI, INC. ("LICENSOR") SOFTWARE YOU HAVE LICENSED ("SOFTWARE"). BY EXECUTING

More information

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2008 FOR EMBEDDED SYSTEMS, STANDARD

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2008 FOR EMBEDDED SYSTEMS, STANDARD MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2008 FOR EMBEDDED SYSTEMS, STANDARD These license terms are an agreement between you and [OEM]. Please read them. They apply to the software included

More information

the computer manufacturer that distributes the software with the computer, or

the computer manufacturer that distributes the software with the computer, or MICROSOFT SOFTWARE LICENSE TERMS WINDOWS 7 STARTER These license terms are an agreement between you and the computer manufacturer that distributes the software with the computer, or the software installer

More information

THOMSON REUTERS (TAX & ACCOUNTING) INC. FOREIGN NATIONAL INFORMATION SYSTEM TERMS OF USE

THOMSON REUTERS (TAX & ACCOUNTING) INC. FOREIGN NATIONAL INFORMATION SYSTEM TERMS OF USE THOMSON REUTERS (TAX & ACCOUNTING) INC. FOREIGN NATIONAL INFORMATION SYSTEM TERMS OF USE 1. License and Permitted Use The Foreign National Information System (FNIS) is licensed, not sold. Subject to the

More information