Utilizing Axapta Application Layers
Utilizing Axapta Application Layers
DISCLAIMER This material is for informational purposes only. Microsoft Business Solutions ApS disclaims all warranties and conditions with regard to use of the material for other purposes. Microsoft Business Solutions ApS shall not, at any time, be liable for any special, direct, indirect or consequential damages, whether in an action of contract, negligence or other action arising out of or in connection with the use or performance of the material. Nothing herein should be construed as constituting any kind of warranty. COPYRIGHT NOTICE Copyright 2002 Microsoft Business Solutions ApS, Denmark. TRADEMARK NOTICE Microsoft, Great Plains, bCentral and Microsoft Windows 2000 are either registered trademarks or trademarks of Microsoft Corporation or Great Plains Software, Inc. in the United States and/or other countries. Great Plains Software, Inc. and Microsoft Business Solutions ApS are whollyowned subsidiaries of Microsoft Corporation. Navision is a registered trademark of Microsoft Business Solutions ApS in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. No part of this document may be reproduced or transmitted in any form or by any means, whole or in part without the prior written permission of Microsoft Business Solutions ApS. Information in this document is subject to change without notice. Any rights not expressly granted herein are reserved. The Arial font was used. DocID: AX-300-TIP-046-v01.00-ENUS
TABLE OF CONTENTS
1INTRODUCTION ..................................................................................................1 2AXAPTA APPLICATION LAYER TECHNOLOGY.............................................................2 2.1Application Layers..........................................................................................2 2.2Patch layers....................................................................................................5 2.3Application development................................................................................5 2.4Application layer distribution..........................................................................7 2.5Application runtime- and development codes..............................................9 2.6Application upgrade......................................................................................10 3AXAPTA ADD-ON SOLUTION PROGRAM.................................................................13 3.1Implementation.............................................................................................13 3.2Implementation layer....................................................................................13 4APPENDIX 15
1 Introduction
This technical information paper describes how to utilize the Axapta application layers. The target audience for this document is anyone working with developing additional functionality for Axapta, as well as anyone guiding customers in the purchase of execution/development access to Axapta. The document will give an overview of the unique application layer technology in Axapta, the different layer components, how to distribute application developments, and how to get access to the development environment and the execution access to the created business logic. The application layer technology in Axapta is a hierarchy of application levels, which ensures that modifications and additions can be made without
interfering directly with the application objects on the level below the current level. This document will also give an introduction to the Add-on Solution Program for Axapta partners, and the consequences in regards to the utilization of the application layers.
Application layer categories: Layer name System (SYS layer) Layer description This is the innermost layer where the standard Axapta application is implemented. The layer is controlled and maintained solely by Microsoft Business Solutions. The application objects in the standard application can never be deleted. ID range: 1-8000 Global Solutions (GLS layer) Microsoft Business Solutions has an option of certifying and distributing strategic global solutions that have not been developed in-house. These solutions are delivered as a standard part of the Axapta product. The solutions have been created with the same development standards as the standard application, and qualified as such. Solution examples; Shop Floor Control, Human Resource management. ID range: 8001-16000 Distributor (DIS layer)
The local Microsoft Business Solutions offices are provided with a DIS layer to include country-specific functionality, developed locally in between two releases. Local developments are to be included in the next coming global release. The local offices are maintaining this layer locally.
in-house. Solutions in the LOS layer are protected by the license code framework that the standard application utilizes. Solution examples; Payroll, EDI ID range: 18001-20000 Business solution (BUS layer) Business partners are given the opportunity to develop and distribute vertical and horizontal solutions to other partners and customers using the BUS layer.
Solutions in the BUS layer are protected by the same license code framework that the standard application utilizes. Note the BUS layer is reserved for the Add-on Solution program and requires a signed agreement to utilize for development and distribution. Dor more information, see Add-on Solution Program section on page 13. ID range: 20001-30000 Value Added Reseller (VAR layer) Business partners are provided with a separate layer that they can use without any business related restrictions. This means that any developments the partner would like to do for their customers can be added to this layer.
The business partner must keep a catalogue of what application functionality and what VAR/BUS configurations customers have been able to correctly update to their installation.
ID range: 30001-40000 Customer (CUS layer) Corporate enterprises, as well as business partners, are given the opportunity to modify their installations. If a corporate enterprise has an internal IT department with Axapta programming skills, this would be the layer to add generic enterprise modifications. The Customer and User layers are included in order to support enterprises and individual companies in their need for in-house development, without jeopardizing the modifications made by the business partner. This means that application code made in the VAR layer will not be changeable. ID range: 40001-50000 User (USR layer) Individual companies or companies within an enterprise can utilize this layer to make
customizations that are unique to the customers' installation, including reports via the report wizard.
The USR layer, in combination with the CUS layer, can be used if the corporate enterprise develops a enterprise specific vertical. However, in order to comply with local market needs, additional requirements would need to be implemented. This setup would require more than one installation as changes made in the USR layer and any other layer will be available to all company accounts within the same installation ID range: 50001-60000
1.
Develop and pre-test modifications on a non-customer version; the business partner-environment. The modifications are developed and tested on a standard installation, complete with a separate database. However, as the environment is rarely entirely identical to the one at the customer site (for example with respect to network and number of users), verification cannot be completed at the business partner site. Separate installations also enable business partner to apply service packs and upgrades within the business partner environment first.
2.
Move the modifications to the customer site on a non-production version; the TEST-environment.
Modifications should never be made directly in a production environment. It is necessary to use the TEST-environment if additional modifications are needed at the customer's site. For more information, see the on-site development section below. It is important that modifications made to the application in the TEST-environment are synchronized with the business partner-environment. Having a system with an application that is identical to the customer's improves the customer service and the possibilities for support from home.
3.
Move the modifications to a production version at the customer's; the PRODUCTION-environment. This is the final, thoroughly tested version of the customer's modifications. Modifications should never be made in the production environment.
The application development can physical be performed in many different places, but seen from a product license point of view, there is a strong distinction between developing at the customers site using the property of the customer, and in-house application development on property of the business partner.
On-site application development On-site application development in Axapta is defined as people working on the property (computer, server, and so forth) of the customer using the license codes purchase by the customer from Microsoft Business Solutions. If customers prefer to have adjustments/new developments made to their installation on-site/locally, they must purchase the development suite (X++, MorphX and Web MorphX ) even though all developments are saved in the VAR/VAP layer. For more information see Application runtime- and development codes on page 9.
In-house application development In-house application development in Axapta is defined as people working on the property (computer, server, and so forth) of the business partner, using the license codes given to the business partner by Microsoft Business Solutions. All business partners, as a part of the agreement with Microsoft Business Solutions being a Solution Center, are given the proper license codes to utilize the entire development environment. This means that the business
partners do not have to purchase anything in order to development in Axapta. The utilization of the business partner license codes are only allowed when working on the business partner property, which means that the license codes are not allowed to be utilized in any customer installations, not even for demonstration, evaluation, or validation purposes.
When shipping an entire layer file, all Ids are maintained. However, when application developments are shipped as an export file (.xpo) all objects are assigned a new Id when the export file is imported. This implies that you cannot combine the two principles. Distribution process example: 1. The business partner installs an application at the customer site. The application at the customer site corresponds exactly to the one at the business partner site 2. An error is discovered. A hotfix is produced by the business partner and sent to the customer site as an XPO file. The hotfix includes a new table. When the hotfix is imported at the customer site it is placed in the USR layer and given an Id in the range 50001-60000 3. The customer adds new functionality to the installation. The new functionality builds on the table in the hotfix
The business partner has now been working in parallel and has added some new features to the VAR layer. The business partner decides to ship a new version to the customer in a new VAR layer. 4. The new layer also includes the hotfix. Therefore the customer decides to clean up the installation by deleting the previously installed hotfix. 5. Now the code made by the customer (which was based on the table in the hotfix) does not work anymore as the id of the table has changed. The customer now has to modify the customizations to comply with the new situation by integrating with the used tables resided in the VAR layer instead of the USR layer.
6.
The development codes opening the layers are included in the license letter sent from Microsoft Business Solutions, and not in the license file. You need to specify the application layer into which the business logic needs to go, for example VAR, and then type the delivered codes in the Code and Confirm fields.
Note The development codes opening the layers do not give access to the development tools. These need to be purchased individually.
4.
5.
6.
7.
Import the exported application file into the layer where the comparison conflicts were manually implemented. Note Because the conflicts between the layers are removed from the export/development project, there should be no problem
10
importing the export files, as they would be considered as normal additions to the existing layer 8. 9. Delete the BUS layer because the merged application layer now contains everything from the BUS layer Delete all data in the Axapta installation
This process should always be performed in the business partner environment and the TEST-environment prior to performing the live merge process. The process described above is the standard process for performing the merge/upgrade process in one sequence, but there could be differences. The application layer merging would be performed and completed at the business partner site prior to starting the process at the customer site: 1. Perform a complete merge process in the TEST-environment: a. and data b. c. d. e. Export all data from the Axapta installation Utilize the merge application layer from the business partner (physical layer file - .aod file) Delete the BUS layer Delete the data in the Axapta installation f. Import the exported data into the merged application Backup the entire TEST-environment, application
2.
Perform a complete merge process in the Production-environment: a. b. c. d. e. f. Backup the entire Production-environment, application and data Export all data from the Axapta installation Utilize the merge application layer from the business partner (physical layer file - .aod file) Delete the BUS layer Delete the data in the Axapta installation Import the exported data into the merged application
It is very important to monitor the merge process performed in the TESTenvironment as it will provide an indication on the timeframe required,
11
potential pitfalls, and help you gain general experiences for when you perform the actual merge process in the PRODUCTION-environment.
12
3.1 Implementation
The protection of the add-on solution is implemented by using the new license code setup and configuration key setup developed for Axapta 3.0. Configuration keys are used to enable required system functionality. These keys are controlled by a license code object. Configuration keys can also inherit from another configuration key. When a license code is purchased, the parent configuration key that the license code object controls is enabled. Additional information on license codes and configuration keys are available in Navision Axapta. Additional information on Configuration and Security keys is available in Developers Guide.
13
Solution Program Addendum) with Microsoft Business Solutions for the Addon Solution Program. The protection of modules will not be available in any layer other than the BUS layer. Please note that technical conflicts may occur between different add-on solutions. It is the responsibility of the business partner to implement the add-on solutions to make sure that does not happen.
14
4 Appendix
Important documentation references Axapta Application Development Best Practices Handbook (online help file, Ax-300-DVG-003-v01.00-ENUS.chm) Axapta Developers Guide (online help file, Ax-300-DVG-002-v01.00ENUS.chm) Add-on Solution Program for Microsoft Business Solutions Axapta (Contact your local Microsoft Business Solutions office)
15