tag:blogger.com,1999:blog-48897483200102742062024-03-17T05:28:01.613-04:00AX WONDERSMicrosoft Dynamics AX, Sharepoint and .NET (C#, ASP.NET) development blog.AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.comBlogger182125tag:blogger.com,1999:blog-4889748320010274206.post-75724346831394786042021-01-11T17:40:00.003-05:002021-01-11T17:40:42.973-05:00D365 Customer Insights - Why we need it? <p> </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqnt5miH32wSlg8wPT6tQYMlKGbLDaSr0KL9X3AHBWb9ZtMoM8XqjbYOTPCSwW25HozWiIdXdhtH3fTBIRiHCtw_jHyt0_WKA5QjrQx4TyOLoZix-MXtAvqoc5EI0W10g85ojNxNAw4ccc/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="352" data-original-width="625" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqnt5miH32wSlg8wPT6tQYMlKGbLDaSr0KL9X3AHBWb9ZtMoM8XqjbYOTPCSwW25HozWiIdXdhtH3fTBIRiHCtw_jHyt0_WKA5QjrQx4TyOLoZix-MXtAvqoc5EI0W10g85ojNxNAw4ccc/" width="320" /></a></div><br /><br /><p></p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">Straight out of the box, Customer Insights comes equipped with the <noindex><a href="https://www.akaes.com/microsoft-power-platform/" rel="nofollow" style="background: 0px 0px; border: 0px; color: #33739f; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Power Platform</a></noindex>. This makes it easy to import data from just about any source, including <noindex><a href="https://www.akaes.com/microsoft-power-bi/" rel="nofollow" style="background: 0px 0px; border: 0px; color: #33739f; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Power BI</a></noindex>, <noindex><a href="https://www.akaes.com/microsoft-powerapps/" rel="nofollow" style="background: 0px 0px; border: 0px; color: #33739f; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Power Apps</a></noindex>, Microsoft Access, Excel, JSON, Microsoft Graph, and REST APIs. Thanks to Customer Insights’ built-in customer profiles, your staff will have a complete view of each customer’s journey. These profiles are easy to customize, too, with the ability to segment them as needed. The end result is valuable information for your business.</p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;"> </p><h3 style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 10px 0px 0px; vertical-align: baseline;"><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">6 Reasons to Use Customer Insights</strong></h3><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">Are you already gathering and analyzing customer data? If so, here are six reasons why you should consider using Customer Insights to make your analysis even more powerful.</p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;"> </p><ol style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; list-style-image: initial; list-style-position: initial; margin: 0px; outline: 0px; padding: 4px 0px 0px 16px; vertical-align: baseline;"><li style="background: 0px 0px; border: 0px; list-style: outside decimal; margin: 0px 0px 0px 30px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Identifying Trends</strong></li></ol><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">With Dynamics 365 Customer Insights, you can recognize changes in customer trends before you competitors do. With this information in hand, you’ll be able to adapt your offerings to customer demand ahead of your competitors.</p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;"> </p><ol start="2" style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; list-style-image: initial; list-style-position: initial; margin: 0px; outline: 0px; padding: 4px 0px 0px 16px; vertical-align: baseline;"><li style="background: 0px 0px; border: 0px; list-style: outside decimal; margin: 0px 0px 0px 30px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Customer Feedback Integration</strong></li></ol><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">Customer Insights makes it easy to incorporate customer feedback into your existing product profiles. This gives you the ability to quickly see how customers rate products, along with how your customers think they could be improved.</p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;"> </p><ol start="3" style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; list-style-image: initial; list-style-position: initial; margin: 0px; outline: 0px; padding: 4px 0px 0px 16px; vertical-align: baseline;"><li style="background: 0px 0px; border: 0px; list-style: outside decimal; margin: 0px 0px 0px 30px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Better Business Decisions</strong></li></ol><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">Thanks to Customer Insights’ powerful capabilities, you’ll be able to forecast changes in the market and make smarter business decisions.</p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;"> </p><ol start="4" style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; list-style-image: initial; list-style-position: initial; margin: 0px; outline: 0px; padding: 4px 0px 0px 16px; vertical-align: baseline;"><li style="background: 0px 0px; border: 0px; list-style: outside decimal; margin: 0px 0px 0px 30px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Inventory Management</strong><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"> </strong></li></ol><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">By using Customer Insights to anticipate customer demand, you can ensure that you have enough inventory for the coming weeks and months. This results in an optimal inventory level throughout the year.</p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;"> </p><ol start="5" style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; list-style-image: initial; list-style-position: initial; margin: 0px; outline: 0px; padding: 4px 0px 0px 16px; vertical-align: baseline;"><li style="background: 0px 0px; border: 0px; list-style: outside decimal; margin: 0px 0px 0px 30px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Improved Products and Services</strong></li></ol><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">Customer Insights can give your business detailed insight into the changing needs of your target market. By amassing and analyzing this data, you can design products and services tailored to meet your customers’ needs.</p><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;"> </p><ol start="6" style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; list-style-image: initial; list-style-position: initial; margin: 0px; outline: 0px; padding: 4px 0px 0px 16px; vertical-align: baseline;"><li style="background: 0px 0px; border: 0px; list-style: outside decimal; margin: 0px 0px 0px 30px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="background: 0px 0px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Easy to Use</strong></li></ol><p style="background: 0px 0px rgb(255, 255, 255); border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15.12px; margin: 0px; outline: 0px; padding: 2px 20px 4px 0px; vertical-align: baseline;">Customer data processing can be complicated, sometimes involving complex programming languages and database management. But with Customer Insights, anyone in your organization can quickly find answers to important questions, like “when should we target our audience with this messaging?”</p>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-19453134783728331892020-11-02T12:22:00.005-05:002020-11-02T12:22:37.976-05:00<p> </p><h2 class="heading-anchor" id="what-is-machine-learning" style="background-color: white; box-sizing: inherit; color: #171717; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 2rem; line-height: 1.3; margin: 32px 0px 12px -1.875rem; outline-color: inherit; padding: 0px 0px 0px 1.875rem; position: relative; text-align: center;">What is machine learning?</h2><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">This technological world is shifting towards technologies like <a href="https://mindmajix.com/artificial-intelligence-course-training" rel="noopener" style="box-sizing: border-box; color: #003bbb; cursor: pointer; margin: 0px; padding: 0px; position: relative; text-decoration-line: none;" target="_blank">artificial intelligence</a>, IoT,<a href="https://mindmajix.com/machine-learning-training" rel="noopener" style="box-sizing: border-box; color: #003bbb; cursor: pointer; margin: 0px; padding: 0px; position: relative; text-decoration-line: none;" target="_blank"> machine learning</a> and deep learning. The fourth industrial revolution which has combined the concept of a machine with the power of intelligence is providing our successful results in terms of modern automated chatbots, voice and text-enabled searches, face recognition, and many more valuable products.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">Well, these products are the outcome of the complex machine learning and deep learning algorithms used to develop such data-oriented models. After the introduction of cloud computing where a user can leverage virtual resources such as infrastructure, storage, networking, testing platform, etc., the development of such applications has increased. Azure machine learning is one such cloud-enabled service that is being used for training, deploying, managing, and automating machine learning (ML) models at a massive scale. Let’s explore it in this article.</p><h3 id="public" style="background-color: white; box-sizing: border-box; color: #222222; font-family: Nunito, sans-serif; font-size: 20px; margin: 0px 0px 20px; padding: 0px; text-align: justify;"><span style="box-sizing: border-box; font-size: 14pt; margin: 0px; padding: 0px;">What is Azure Public cloud?</span></h3><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">Microsoft Azure, which is also known as Windows Azure, is <a href="https://mindmajix.com/azures-public-cloud" rel="noopener" style="box-sizing: border-box; color: #003bbb; cursor: pointer; margin: 0px; padding: 0px; position: relative; text-decoration-line: none;" target="_blank">Microsoft’s public cloud computing platform</a> developed for providing varieties of cloud services. These services include the platform for computation, networking, storage, analytics, IoT, and Artificial Intelligence application development. One can easily go with the service of their choice and create a scalable application, test, and deploy it. And, the best part is, you will only pay for what you use.</p><h3 style="background-color: white; box-sizing: border-box; color: #222222; font-family: Nunito, sans-serif; font-size: 20px; margin: 0px 0px 20px; padding: 0px; text-align: justify;"><span style="box-sizing: border-box; font-size: 14pt; margin: 0px; padding: 0px;">What is Machine Learning?</span></h3><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">Machine learning technology refers to the various techniques used to train existing data for fetching valuable insights from it. By leveraging ML models and provided data, we can predict future behaviors, trends, and outcomes. The ML algorithms have the ability to learn without explicitly programmed.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">With ML-based predictions, you can make your application or devices much smarter serving you the best from it. For example, you may have observed the recommendations while shopping online. Yes, these recommendation engines are empowered by complex ML algorithms. One more example of ML can be seen in making transactions through credit or debit cards where these ML models compare the information through a transaction database for identifying fraudulent transactions.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">Well, you must be wondering how these models can provide accurate outcomes. Let’s understand it with the Azure ML services which will help you provide a crystal clear view of ML model development and deployment.</p><h3 id="azure-machine-learning" style="background-color: white; box-sizing: border-box; color: #222222; font-family: Nunito, sans-serif; font-size: 20px; margin: 0px 0px 20px; padding: 0px; text-align: justify;"><span style="box-sizing: border-box; font-size: 14pt; margin: 0px; padding: 0px;">What is the Azure Machine Learning service?</span></h3><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">Azure machine learning services allow you to create, test, manage, deploy, migrate, or monitor ML models in a scalable cloud-based environment. Azure machine learning services support thousands of open-source packages available in Python such as TensorFlow and Matplotlib. The supported ML tools make it easy to explore, transform, create, and test data models. E.g., Azure Machine Learning for Visual Studio Code and Jupyter notebooks. Azure ML services assist us with automated model generation and tuning to develop efficient and accurate models.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">The best part about Azure ML service - you can train your model over the local machine and then deploy it on the cloud. Azure offers computing services like Azure Databricks, Azure Machine Learning Compute, and advanced hyperparameter tuning services allowing you to create better models.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">Once you have created the right model, it’s time to deploy it over containers like Docker which makes it easy to deploy it to Azure Kubernetes Service or Azure Container Instances.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">You can take care of deployed models and monitor various executions to get the best outcome. Once it is deployed, you will get asynchronous predictions (real-time) on a massive amount of data.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">The advanced machine learning pipelines make a collaborative environment in all steps, including data preparation for deployment.</p><h3 id="azure-machine-learning-services" style="background-color: white; box-sizing: border-box; color: #222222; font-family: Nunito, sans-serif; font-size: 20px; margin: 0px 0px 20px; padding: 0px; text-align: justify;"><span style="box-sizing: border-box; font-size: 14pt; margin: 0px; padding: 0px;">What you can do with the Azure Machine learning Service?</span></h3><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">Azure machine learning service has the potential to auto-train and autotunes a model. The Azure machine learning software development kit (SDK) available for <a href="https://mindmajix.com/python-training" rel="noopener" style="box-sizing: border-box; color: #003bbb; cursor: pointer; margin: 0px; padding: 0px; position: relative; text-decoration-line: none;" target="_blank">Python</a> and open-source packages allows us to create and train accurate deep learning and ML models in an Azure machine learning service workspace. Various ML components can be accessed through Python packages like Scikit-learn, PyTorch, MXNet, TensorFlow, Microsoft Cognitive Toolkit (CNTK), etc.</p><p style="background-color: white; box-sizing: border-box; color: #4a4a4a; font-family: Nunito, sans-serif; font-size: 0.925rem; line-height: 25px; margin: 5px 0px; padding: 0px 0px 10px; text-align: justify;">After creating the model, you need to create a container like Docker which should be tested locally. Once tested successfully, you can deploy it as a web service using Azure Kubernetes service or Azure Container service. Now, the Azure portal or Azure Machine Learning SDK for Python will assist you to manage the deployed web model. It will help you to evaluate model metrics, redeployment of modified versions, and model tracking simultaneously.</p><p style="background-color: white; box-sizing: inherit; color: #171717; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><br /></p>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-41733824618481371362017-10-04T11:13:00.004-04:002017-10-04T11:13:53.340-04:00Module "ApplicationSuite" has invalid reference to module ...<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNbM6VhJ6VPrqNZRZZa0PySED8XAJwQ50TH2KeTMFkJghsaBRJHK2bs9g-DEjuXVL3ZP-Lz-TCDkULghx3iUYDclNoDdMZHrCaLbQngxbr-czM7_BxqpWeTLCP_m1PyG9wnM9JSSp-Coi5/s1600/D365+Logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="149" data-original-width="337" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNbM6VhJ6VPrqNZRZZa0PySED8XAJwQ50TH2KeTMFkJghsaBRJHK2bs9g-DEjuXVL3ZP-Lz-TCDkULghx3iUYDclNoDdMZHrCaLbQngxbr-czM7_BxqpWeTLCP_m1PyG9wnM9JSSp-Coi5/s320/D365+Logo.png" width="320" /></a></div>
<br />
<br />
<br />
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Hi
folks - </span><span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><o:p></o:p></span><br />
<br />
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">While
working on a project, I imported an AxModel (D365) that caused me to have the
following error when I tried to <strong><span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">build</span></strong> the models.</span><br />
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghcaZOBWmr7deSDqsVRol5ApoImef7pW1L2TVfTI0Ahip0x5T2O6MexIAUVNGnqHD2nueIjUu1OjS_H3PRBwcUj_1E61N0k2lm2wTuD0GDef2fN-m1wuv-q53-ozxsAHK19pbSkiDnx0wL/s1600/App_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="183" data-original-width="487" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghcaZOBWmr7deSDqsVRol5ApoImef7pW1L2TVfTI0Ahip0x5T2O6MexIAUVNGnqHD2nueIjUu1OjS_H3PRBwcUj_1E61N0k2lm2wTuD0GDef2fN-m1wuv-q53-ozxsAHK19pbSkiDnx0wL/s1600/App_1.png" /></a></div>
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="separator" style="margin: 1em 0in;">
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">This has to do with a non-existing reference in the new module
descriptor file. In my case, in order to solve the problem I went to the <strong><span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">AOS Service /
PackageLocalDirectory/Application Suite</span></strong> and opened the
descriptor file.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo5PNvtcRzSmbaJ6oQuyZua2saVoi4zjh36EiSkTuwPgXxZ6TKlyLNUvRApM0CZTeH2XWbaCM_pXtMuMleRXC1EExNoR_BBG7YcvTBPV5UDQh7iIv5-Px1LYZj2hs_1zF5MZ8uTjmwH7Vq/s1600/App_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="101" data-original-width="750" height="86" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo5PNvtcRzSmbaJ6oQuyZua2saVoi4zjh36EiSkTuwPgXxZ6TKlyLNUvRApM0CZTeH2XWbaCM_pXtMuMleRXC1EExNoR_BBG7YcvTBPV5UDQh7iIv5-Px1LYZj2hs_1zF5MZ8uTjmwH7Vq/s640/App_2.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">I opened the file and searched for the "retail"
keyword and deleted the line from the file and saved it. </span><br />
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjak4IUqmwhRX9ITRgDd2j-W_3cplRYFZaKBhLOSWrAwcvDzSOzIAjFadzwxnQc7j206tzoDoP-OVktcuQ9TyP0Iw6vrbcttbi0NFtqMDO8_-y29BRNG10M75To1Mg6eO_549dPpyKneblW/s1600/App_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="655" data-original-width="846" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjak4IUqmwhRX9ITRgDd2j-W_3cplRYFZaKBhLOSWrAwcvDzSOzIAjFadzwxnQc7j206tzoDoP-OVktcuQ9TyP0Iw6vrbcttbi0NFtqMDO8_-y29BRNG10M75To1Mg6eO_549dPpyKneblW/s640/App_3.png" width="640" /></a></div>
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><o:p></o:p></span><br />
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><br />
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">After
deleting the line, I refreshed the models.</span><span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"> </span><br />
<span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGhWvobL7Fv4ftwT1C3F0Ps1VkUsslVZ-2o2O4ofZy2jtMlvtkHaWr6EGJ2h0hBFydTHYZXGX4sIdZt3wN9jyoC8P7Le9cGINHmjJJrsLDAvyba4MeCUyqkiguHU_5bLB1n6Pnv8OUQ5bX/s1600/App_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="343" data-original-width="696" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGhWvobL7Fv4ftwT1C3F0Ps1VkUsslVZ-2o2O4ofZy2jtMlvtkHaWr6EGJ2h0hBFydTHYZXGX4sIdZt3wN9jyoC8P7Le9cGINHmjJJrsLDAvyba4MeCUyqkiguHU_5bLB1n6Pnv8OUQ5bX/s640/App_4.png" width="640" /></a></div>
<span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><o:p></o:p></span><br />
<br />
<span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="color: #444444;">After that, I build the application again and I was able
to keep working on my build. </span><o:p></o:p></span><br />
<br />
<span style="color: #444444; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Thanks
folks, I hope this helps.</span><span style="font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"> <o:p></o:p></span><br />
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-64164677219579941202017-09-11T16:06:00.003-04:002017-09-11T16:20:14.274-04:00Common Data Service - Working with Existing Entities<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="689" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s320/TriBridge.png" width="320" /></a></div>
<br />
<br />
<ol style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;" type="1"><a href="https://www.blogger.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Sing in to </span><a href="https://web.powerapps.com/environments/"><span style="font-family: "segoe ui"; font-size: 11pt;">https://web.powerapps.com/environments/</span></a></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">If you want to work with an existing environment</span><span style="font-family: "segoe ui"; font-size: 11pt;"> choose the CDS environment you want to work with. NOTE that Microsoft does not recommend using the </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">default </span><span style="font-family: "segoe ui"; font-size: 11pt;">environment. If you need to create a new environment, go to</span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;"> Steps – Create a new CDS Environment</span><span style="font-family: "segoe ui"; font-size: 11pt;">. </span></li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-HuR_-kUu2cqZPONlhchK58lYzw4DWv8UbcS3dPno_9uTz-7oQqYKCGeSVHIvWtHm8L6okfqL2ioyQj3fGYm9I9MrnKwsCbovAAjT5Tyq1PVGSos4bipt3CKGcl6x42G19EljZqw8tlgo/s1600/CDS+Choose+Environment.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="335" data-original-width="1600" height="134" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-HuR_-kUu2cqZPONlhchK58lYzw4DWv8UbcS3dPno_9uTz-7oQqYKCGeSVHIvWtHm8L6okfqL2ioyQj3fGYm9I9MrnKwsCbovAAjT5Tyq1PVGSos4bipt3CKGcl6x42G19EljZqw8tlgo/s640/CDS+Choose+Environment.png" width="640" /></a></div>
<span style="font-family: "calibri";"></span><br />
<div style="font-family: "Segoe UI"; font-size: 11pt; margin: 0in 0in 0in 0.75in;">
<a href="https://www.blogger.com/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br /></div>
<ol style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;" type="1">
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;" value="3"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Click Common Data Service </span><span style="font-family: "wingdings"; font-size: 11pt; font-style: normal; font-weight: normal;">à </span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Entities to see a list of entities in the chosen environment. </span></li>
</ol>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb1V-tIkBVp-QtHu7xIJuX35vFqvcx1kXO_VDHJhPPsIpa8Rszd3x_WL5mTyM_7js-t2OG7Oe3waz6B5IUtno6Vqafz0WbjplWJV4Jb8S2ThCQme59aA38LhASXxkQnFmBtUrvAYL8Gyuu/s1600/CDS+Look+up+exisiting+entities.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="732" data-original-width="1600" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb1V-tIkBVp-QtHu7xIJuX35vFqvcx1kXO_VDHJhPPsIpa8Rszd3x_WL5mTyM_7js-t2OG7Oe3waz6B5IUtno6Vqafz0WbjplWJV4Jb8S2ThCQme59aA38LhASXxkQnFmBtUrvAYL8Gyuu/s640/CDS+Look+up+exisiting+entities.png" width="640" /></a></div>
<br />
<br />
<ol style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;" type="1">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="4"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Click on the chosen entity to view data, export data, or modify it.</span></li>
</ol>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT1MjM8YcSfucqXzoJlaPjpR_8Y4NsTYHFTEJ2TkVv2aR-2sBFNRhniA2sXkyZxkd6mGUOkosNn-BNo2jXCATeeyIS350W8YPaOdHkliG-iiApnNo7Sf-uKAjoNcxj-RliZk7Csw_DgtWQ/s1600/CDS+-+Sample+Entity+Export.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="301" data-original-width="1344" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT1MjM8YcSfucqXzoJlaPjpR_8Y4NsTYHFTEJ2TkVv2aR-2sBFNRhniA2sXkyZxkd6mGUOkosNn-BNo2jXCATeeyIS350W8YPaOdHkliG-iiApnNo7Sf-uKAjoNcxj-RliZk7Csw_DgtWQ/s640/CDS+-+Sample+Entity+Export.png" width="640" /></a></div>
<div style="font-family: "Segoe UI"; font-size: 11pt; margin: 0in 0in 0in 0.75in;">
</div>
<br />
<ol style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.75in; margin-top: 0in; unicode-bidi: embed;" type="a">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">The </span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: bold;">Open in Excel</span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;"> option will download an Excel file. You can change data directly in the spreadsheet and publish it back to the CDS entity you are working with. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">The </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Export Data</span><span style="font-family: "segoe ui"; font-size: 11pt;"> option will download a CSV file along with XML documents. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">The </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Import Data</span><span style="font-family: "segoe ui"; font-size: 11pt;"> option will give you the ability to import data via CSV. Just keep in mind that the column mapping must be the same as the one you can download. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">You can view the data directly in the CDS entity by clicking the </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Data</span><span style="font-family: "segoe ui"; font-size: 11pt;"> tab. </span></li>
</ol>
<br />
<ol style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;" type="1">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="5"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Once you have made changes to the chosen entity, you can choose to create or work with an existing project. Please see the </span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: bold;"> <a href="http://axwonders.blogspot.com/2017/09/common-data-service-create-new-power.html" target="_blank">Working with new Projects</a></span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;"> if you want to create a new one, or </span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: bold;"><a href="http://axwonders.blogspot.com/2017/09/common-data-service-working-with_11.html" target="_blank">Working with existing Projects</a></span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;"> if you want to modify an existing project. </span></li>
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">You may choose to create new entities for the different customizations done to either Sales or Operations. To create a new entity follow </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;"> <a href="http://axwonders.blogspot.com/2017/09/common-data-service-create-new-cds.html" target="_blank">Working with a new CDS Entity</a></span><span style="font-family: "segoe ui"; font-size: 11pt;">.</span></li>
</ol>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbbfcMzZ8P7LsGEJs6LPboDu4ldKQliAAbV0fop6bix6p-O4qvqQKRxuI8b5gFsgHLdyqp69RYF3FhiXBJzOvM9UIXll599EHo9iCufjiJSB8EJXMvOwvPlOAWgkeF1jNi-iNwv3GtX37Z/s1600/AAAA-COMBO.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="114" data-original-width="441" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbbfcMzZ8P7LsGEJs6LPboDu4ldKQliAAbV0fop6bix6p-O4qvqQKRxuI8b5gFsgHLdyqp69RYF3FhiXBJzOvM9UIXll599EHo9iCufjiJSB8EJXMvOwvPlOAWgkeF1jNi-iNwv3GtX37Z/s320/AAAA-COMBO.png" width="320" /></a></div>
<br />
<a href="https://www.blogger.com/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br />AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-45600525082784964592017-09-11T16:06:00.002-04:002017-09-11T16:14:10.273-04:00Common Data Service - D365 for Operations and Sales CDM Integration Setup and Concepts<a href="https://www.blogger.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="689" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s320/TriBridge.png" width="320" /></a></div>
<br />
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The following set of
posts will discuss the setup, and integration concepts for the Common Data
Service. I do want to provide my gratitude to Tribridge for allowing me to be
part of a project where the Common Data Service was needed. </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
In case, you the
reader, don't know about the Common Data Service,<span style="mso-spacerun: yes;"> </span>in a nutshell "<span style="font-style: italic;">The Common Data Service is the Microsoft Azure–based business
application platform that enables you to easily build and extend applications
with their business data. The Common Data Service does the heavy lifting of
bringing together your data from across the Dynamics 365 family of services so
you can focus on building and delivering the apps, insights and process
automation that matter to you and your customers with PowerApps, Power BI, and
Microsoft Flow.</span>"</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Please read the
entire article here <a href="https://docs.microsoft.com/en-us/common-data-service/entity-reference/introduction">https://docs.microsoft.com/en-us/common-data-service/entity-reference/introduction</a></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The content will be
divided in small posts, which be accessible from the links below. Please see of
the preliminary information we gathered while setting up the environments
needed for this project. </div>
<br />
<div style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="font-weight: bold;">Prerequisites</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
In order to create
new Power Apps CDS projects the following is needed:</div>
<br />
<ol style="direction: ltr; font-family: Calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;" type="1">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "calibri"; font-size: 11pt; font-style: normal; font-weight: normal;">Global Admin role in an
Office 365 tenant where Dynamics 365 for Operations and Dynamics 365 for
Sales.<span style="mso-spacerun: yes;"> </span></span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11pt;">KB4036524 - This hotfix
enables sales order line synchronization with the Data Integration feature
from Finance and Operations to Sales..</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11pt;">KB4036461 - This hotfix
enables sales order synchronization with the Data Integration feature from
Finance and Operations to Sales. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11pt;">Prospect to cash solution for
Dynamics 365 for Sales, version 1.14.0.0 (v14) or later. (</span><a href="https://mbs.microsoft.com/customersource/Global/365Enterprise/downloads/product-releases/MD365FNOPENTProspectToCash"><span style="font-family: "calibri"; font-size: 11pt;">https://mbs.microsoft.com/customersource/Global/365Enterprise/downloads/product-releases/MD365FNOPENTProspectToCash</span></a><span style="font-family: "calibri"; font-size: 11pt;">). (Done for D365 for Sales
Customer Engagement).</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11pt;">Microsoft Dynamics 365 for
Finance and Operations, Enterprise edition July 2017 update with Platform
update 8 (App 7.2.11792.56024 w/ Platform 7.0.4565.16212). Support for App
7.1 will be added with a hotfix.</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11pt;">Dynamics 365 Sales,
Enterprise Edition. The integration solution is compatible with Microsoft
Dynamics 365 Customer Engagement Version 1612 (8.2.1.207) (DB 8.2.1.207)
online.</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11pt;">An environment in the Common
Data Service. The environment must have a database for integration and you
must be an environment administrator for that database.</span></li>
</ol>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
</div>
<br />
<div style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="font-weight: bold;">Solution Flow</span></div>
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"></span><br />
<span style="font-family: "verdana" , sans-serif; font-size: x-small;">The following is our
vision of the entire process (at a very high-level).</span> <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaFpIlU6DvncdMtWcJbW3Zklnd25YWSB0_pfQOVUz4bDfaVv90sN7AnfOfKQz77yGdOKzoQKTEhGaHMCWgpVcw8HdaLskIgTBnZ-EL2GuCOXygxVaGEl5kQXUgnUSe7DcDQ1GUTwdgsM8i/s1600/CDS+-+Visio+Last.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="625" data-original-width="932" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaFpIlU6DvncdMtWcJbW3Zklnd25YWSB0_pfQOVUz4bDfaVv90sN7AnfOfKQz77yGdOKzoQKTEhGaHMCWgpVcw8HdaLskIgTBnZ-EL2GuCOXygxVaGEl5kQXUgnUSe7DcDQ1GUTwdgsM8i/s640/CDS+-+Visio+Last.png" width="640" /></a></div>
<br />
<br />
<br />
<div style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="font-weight: bold;">Content Links</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The following links
contain the information we gathered to work with existing environments and
entities, environment, connection sets and Projects creation, among others. <br />
<br />
<a href="http://axwonders.blogspot.com/2017/09/common-data-service-create-new-cds.html" rel="nofollow" target="_blank">Create a new CDS Environment </a><br />
<br />
<a href="http://axwonders.blogspot.com/2017/09/common-data-service-create-new-power.html" target="_blank">Create a new Power Apps (CDS) Project</a><br />
<br />
<a href="http://axwonders.blogspot.com/2017/09/common-data-service-working-with_11.html" target="_blank">Working with Existing Power Apps (CDS) Projects</a><br />
<br />
<a href="http://axwonders.blogspot.com/2017/09/common-data-service-working-with.html" target="_blank">Working with Existing CDS Entities</a><br />
<br />
<a href="http://axwonders.blogspot.com/2017/09/common-data-service-working-with_34.html" target="_blank">Working with Existing Projects/Tasks Mapping </a><br />
<br />
<br />
That's all for now. I'll be adding interesting articles on how to setup each project in CDS. <br />
<br />
<br />
<br />
</div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-11182426494418646032017-09-11T16:06:00.001-04:002017-09-11T16:17:34.330-04:00Common Data Service - Working with Existing Power Apps Projects<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="689" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s320/TriBridge.png" width="320" /></a></div>
<br />
<br />
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">To access exiting Power Apps projects go here </span><a href="https://admin.powerapps.com/dataintegration/"><span style="font-family: "segoe ui"; font-size: 11pt;">https://admin.powerapps.com/dataintegration/</span></a></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Click Data Integration </span><span style="font-family: "wingdings"; font-size: 11pt;">à</span><span style="font-family: "segoe ui"; font-size: 11pt;"> Projects </span><span style="font-family: "wingdings"; font-size: 11pt;">à</span><span style="font-family: "segoe ui"; font-size: 11pt;"> ProjectName [ID]</span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwAeXW5vp3smWnKRV0vgDdxYK96jpU79iKnhDtW9a2EkZ_dZKa1rrT18uKpw56eWsy-qh-4r47slneDbVPU0SteAgaoxKoNjEg1J4ifm0W3wi8CcQJpQrlKYy6LehHpxfjz6DDo6ok4xJS/s1600/CDS+-+Working+with+projects+select.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="410" data-original-width="1600" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwAeXW5vp3smWnKRV0vgDdxYK96jpU79iKnhDtW9a2EkZ_dZKa1rrT18uKpw56eWsy-qh-4r47slneDbVPU0SteAgaoxKoNjEg1J4ifm0W3wi8CcQJpQrlKYy6LehHpxfjz6DDo6ok4xJS/s640/CDS+-+Working+with+projects+select.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">From the below screen you will be able to (1) modify a task map, (2) Schedule project (Continuous auto-execution), and (3) look at the Execution History (This is where you will be able to see errors/warning if they happen).</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">To modify a task map see </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;"><a href="http://axwonders.blogspot.com/2017/09/common-data-service-working-with_34.html" target="_blank">Working with existing project/task mappings</a></span><span style="font-family: "segoe ui"; font-size: 11pt;">.</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">To create a recurring schedule, click on Scheduling and click the </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Recur Every</span><span style="font-family: "segoe ui"; font-size: 11pt;"> radio button. Choose a time frame, a start date, and end date if applicable. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHKMx7WSa5tVJKHEKDgWR4_4aP-knnkbEVucp_a2s-5jqJehxnjJXd6OHkS_NG9ootwTxzOv-psAs8OjS5Fm-wd3XJnnI09RJB7rKvoXe0yCqLxOFUVwjTtkMrrbdSKJRCPtassL8Y3gS0/s1600/CDS+-+Working+with+projects+select+schedule.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="659" data-original-width="1600" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHKMx7WSa5tVJKHEKDgWR4_4aP-knnkbEVucp_a2s-5jqJehxnjJXd6OHkS_NG9ootwTxzOv-psAs8OjS5Fm-wd3XJnnI09RJB7rKvoXe0yCqLxOFUVwjTtkMrrbdSKJRCPtassL8Y3gS0/s640/CDS+-+Working+with+projects+select+schedule.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">To run a project, you can do so from (1) the Scheduling tab, Execution History tab, or (3) from the project list (Click the … button and choose run project). </span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjN5AGH6HWfT98V8_5s72tnODk2dXnDUlOUgBDfPzXGc25EpwgZXSWqOkhZUnpoVjHWWKi01mTEsJO8duVMUe6y1UHSu8nWAFadb2zCMcnzpMuqLIVnTFSQzRnaPtNzV5oLkdnU0ZsYs2/s1600/CDS+-+Working+with+projects+select+schedule+-+run.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="828" data-original-width="753" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjN5AGH6HWfT98V8_5s72tnODk2dXnDUlOUgBDfPzXGc25EpwgZXSWqOkhZUnpoVjHWWKi01mTEsJO8duVMUe6y1UHSu8nWAFadb2zCMcnzpMuqLIVnTFSQzRnaPtNzV5oLkdnU0ZsYs2/s320/CDS+-+Working+with+projects+select+schedule+-+run.png" width="291" /></a></div>
<div style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">To examine a status (Complete/Error/Warning), go to the Execution history either by going into the Project and then clicking the Execution History tab, or by simply the … button and choosing Execution History. </span></li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKsfXNoFxeyyHaSYr9_FzWPuFCBlgstgbHF2ZWgAYTN1rEdD48GhSomEuyJRwyRGbtdiLpJ-X0YTHxvHSTa0CArEI59ygb_zc6xqydhUp0yEiDdgCKOFOmdOe7MdPxTqekcHzsMc_Zlcnh/s1600/CDS+-+Working+with+projects+select+schedule+error+warnoing+complete.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="746" data-original-width="1600" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKsfXNoFxeyyHaSYr9_FzWPuFCBlgstgbHF2ZWgAYTN1rEdD48GhSomEuyJRwyRGbtdiLpJ-X0YTHxvHSTa0CArEI59ygb_zc6xqydhUp0yEiDdgCKOFOmdOe7MdPxTqekcHzsMc_Zlcnh/s640/CDS+-+Working+with+projects+select+schedule+error+warnoing+complete.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s1600/AAAA-COMBO.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="114" data-original-width="441" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s320/AAAA-COMBO.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-61657358037322028472017-09-11T16:06:00.000-04:002017-09-11T16:06:02.163-04:00Common Data Service - Create a new CDS Environment<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="689" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s320/TriBridge.png" width="320" /></a></div>
<br />
<br />
<br />
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Sing in to </span><a href="https://admin.powerapps.com/environments"><span style="font-family: "segoe ui"; font-size: 11pt;">https://admin.powerapps.com/environments</span></a><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;"> OR</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Sign in to D365, and click
the Admin icon</span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLqPlf8MsBQAZlO3TMqqO27DUHWeFJRpTs6odR00E1HfTK20cGIMb-aYXbI6ZqpU-fA5SN339ffeOH2j06w2hFofmDD1MH1UPyMEUCjtp1trP6qc3DAVj7NB3ijrm1lmTnJf0yK3RMCHiz/s1600/CDS+-+DB+Setup+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="788" data-original-width="1600" height="313" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLqPlf8MsBQAZlO3TMqqO27DUHWeFJRpTs6odR00E1HfTK20cGIMb-aYXbI6ZqpU-fA5SN339ffeOH2j06w2hFofmDD1MH1UPyMEUCjtp1trP6qc3DAVj7NB3ijrm1lmTnJf0yK3RMCHiz/s640/CDS+-+DB+Setup+2.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">From there go to Admin
Center, and choose Power Apps. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw5zYGC0gIWrhyVC2DOdC-ggTUBClNVTKXUJ4Q24VirPVNrimMhPEHdxHptfEWTh1tl4hQN8LhgQ99sQogZPTrOdwEUwh7QzOitcEs61ISXhh-F69RjyvgYIe9NN608Kf_ge4QrVK3o8rO/s1600/CDS+-+DB+Setup+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1308" data-original-width="1600" height="522" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw5zYGC0gIWrhyVC2DOdC-ggTUBClNVTKXUJ4Q24VirPVNrimMhPEHdxHptfEWTh1tl4hQN8LhgQ99sQogZPTrOdwEUwh7QzOitcEs61ISXhh-F69RjyvgYIe9NN608Kf_ge4QrVK3o8rO/s640/CDS+-+DB+Setup+3.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">If you
want to create a New CDS Environment</span><span style="font-family: "segoe ui"; font-size: 11pt;"> click Environments </span><span style="font-family: "wingdings"; font-size: 11pt;">à</span><span style="font-family: "segoe ui"; font-size: 11pt;"> New Environment. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjarm_AJCIBYZTGJA8edDOO7zmS2LwvJ8sEfOAL8F5RT2tnkzz9rMiaPq8W4Hz7AkJY9T5AtfO53Np7nwynxWSG3mATlIGahPEB9967FXQaUQKiiaJL0lTQ76t9ljWA7S3-fltSJ9M0XLVW/s1600/AAA_Create+New+CDS+Env.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="174" data-original-width="1335" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjarm_AJCIBYZTGJA8edDOO7zmS2LwvJ8sEfOAL8F5RT2tnkzz9rMiaPq8W4Hz7AkJY9T5AtfO53Np7nwynxWSG3mATlIGahPEB9967FXQaUQKiiaJL0lTQ76t9ljWA7S3-fltSJ9M0XLVW/s640/AAA_Create+New+CDS+Env.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">The </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">New
Environment</span><span style="font-family: "segoe ui"; font-size: 11pt;">
form will come up. Add an environment name and set the Region. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWlDEJ8vOnMRaTbgLJXZrWmahCB5E7B4Gs5VoOMAcZdBN8MAS85ZwLkIGYLoYb6Pm3a1Ukkw2D-Y8dHY3JPeIMjEDE2SJrbDSd3rdPuyio73Pmwohphf9IQhG5t6LJWAzrOdBiMBJWEaNI/s1600/AAA_Create+New+CDS+Env2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="500" data-original-width="660" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWlDEJ8vOnMRaTbgLJXZrWmahCB5E7B4Gs5VoOMAcZdBN8MAS85ZwLkIGYLoYb6Pm3a1Ukkw2D-Y8dHY3JPeIMjEDE2SJrbDSd3rdPuyio73Pmwohphf9IQhG5t6LJWAzrOdBiMBJWEaNI/s320/AAA_Create+New+CDS+Env2.png" width="320" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Click Create environment.
This process can take a while. Please note that the new CDS Environment
process will create a new CDS Database for you and it is created with
sample data. Also, keep in mind that the creation of a new environment
uses defaults for the CDS Organization (ORG0001), and it will use the
default CRM price list used in both the Products and Sales Order
integration templates. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">If you need to add a new
organization, the Organization entity must be updated. To do so, access
this link (</span><a href="https://docs.microsoft.com/en-us/common-data-service/entity-reference/dynamics-365-integration"><span style="font-family: "segoe ui"; font-size: 11pt;">https://docs.microsoft.com/en-us/common-data-service/entity-reference/dynamics-365-integration</span></a><span style="font-family: "segoe ui"; font-size: 11pt;">) and go to the </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Preparing
the Common Data Service</span><span style="font-family: "segoe ui"; font-size: 11pt;"> section and follow the instructions on how to update
the Organization ID. You will see something like the below:</span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2tXn3RLc7dZjWDMAZO6cd7sZGXSUdDCygd-MwDtBoM9YwXsSMRC9qo370YA2ttm0FfKzGsOGh_Yig-9s45ovPZxYEKc6GJCVnazCP73ELEx5PbSiCdrGMeq_y0EpvmFXVaYgQKiHdxK2Y/s1600/CDS+-+DB+Setup+11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="597" data-original-width="1600" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2tXn3RLc7dZjWDMAZO6cd7sZGXSUdDCygd-MwDtBoM9YwXsSMRC9qo370YA2ttm0FfKzGsOGh_Yig-9s45ovPZxYEKc6GJCVnazCP73ELEx5PbSiCdrGMeq_y0EpvmFXVaYgQKiHdxK2Y/s640/CDS+-+DB+Setup+11.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Security will have to be
setup for the new Database </span><a href="https://powerapps.microsoft.com/en-us/guided-learning/learning-common-data-service-security/"><span style="font-family: "segoe ui"; font-size: 11pt;">https://powerapps.microsoft.com/en-us/guided-learning/learning-common-data-service-security/</span></a><span style="font-family: "segoe ui"; font-size: 11pt;">. For this, click in to
your new CDS environment, and click in the </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Security </span><span style="font-family: "segoe ui"; font-size: 11pt;">tab, and then set the </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Environment
Roles</span><span style="font-family: "segoe ui"; font-size: 11pt;">, </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">User
Roles</span><span style="font-family: "segoe ui"; font-size: 11pt;">, and </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Permission
Sets</span><span style="font-family: "segoe ui"; font-size: 11pt;">. The
below </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Tribridge (default)</span><span style="font-family: "segoe ui"; font-size: 11pt;"> environment is just a sample. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhys4Xo0qF39j2mEkNMLPk2Kc7krpioCNpt74uTLCw1WllMnxj0ZnMu9qgzlAaEgA0-J0czaLTIPGvcMaDGAMOdnCGl6pixmZF1zDXmcvP8qDcugd_3iOoI8XLI1Wt0hdd8lF4P6BYZiOU_/s1600/AAA_Create+New+CDS+Env3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="560" data-original-width="1090" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhys4Xo0qF39j2mEkNMLPk2Kc7krpioCNpt74uTLCw1WllMnxj0ZnMu9qgzlAaEgA0-J0czaLTIPGvcMaDGAMOdnCGl6pixmZF1zDXmcvP8qDcugd_3iOoI8XLI1Wt0hdd8lF4P6BYZiOU_/s640/AAA_Create+New+CDS+Env3.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s1600/AAAA-COMBO.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="114" data-original-width="441" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s320/AAAA-COMBO.png" width="320" /></a></div>
</div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
</ul>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-50288028338186507762017-09-11T16:05:00.003-04:002017-09-11T16:05:56.187-04:00Common Data Service - Working with Existing Projects/Tasks Mapping<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="689" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s320/TriBridge.png" width="320" /></a></div>
<br />
<br />
<br />
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">To access exiting Power Apps projects go here </span><a href="https://admin.powerapps.com/dataintegration/"><span style="font-family: "segoe ui"; font-size: 11pt;">https://admin.powerapps.com/dataintegration/</span></a></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Click Data Integration </span><span style="font-family: "wingdings"; font-size: 11pt;">à</span><span style="font-family: "segoe ui"; font-size: 11pt;"> Projects </span><span style="font-family: "wingdings"; font-size: 11pt;">à</span><span style="font-family: "segoe ui"; font-size: 11pt;"> ProjectName [ID]</span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSNFs5cARtiWhZOx4DZFEhHSmdezwSsVify9n5f6H4hvgRDtaYW2KxuQED4svSgU0caRQy2_GQqKYzgYo32xoUR3yZORUFygrtpUTMuVY7e3_dct7-AsTHQHJLH5ZfPSiMl1iLr25s-JwG/s1600/CDS+-+Working+with+projects+select.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="410" data-original-width="1600" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSNFs5cARtiWhZOx4DZFEhHSmdezwSsVify9n5f6H4hvgRDtaYW2KxuQED4svSgU0caRQy2_GQqKYzgYo32xoUR3yZORUFygrtpUTMuVY7e3_dct7-AsTHQHJLH5ZfPSiMl1iLr25s-JwG/s640/CDS+-+Working+with+projects+select.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Click in the project name to access its tasks, and then click on a task (i.e. SalesInvoiceHeader). </span></li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp6b4KJnz5UJXiy9CB4D3HfPDhMMCf9zyS8QTVCdniWzAV66zr1EysBwiZGeM5MF6xgLhaWWxjeW5WzAKcVgdDDtrqrEjaSZTUNk_QQz9c5tY2_MVvPoe03A9R2BryxgqaaAY85GtDnkD2/s1600/CDS+-+Working+with+projects+tasks+-+access+project+tasks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="448" data-original-width="1600" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp6b4KJnz5UJXiy9CB4D3HfPDhMMCf9zyS8QTVCdniWzAV66zr1EysBwiZGeM5MF6xgLhaWWxjeW5WzAKcVgdDDtrqrEjaSZTUNk_QQz9c5tY2_MVvPoe03A9R2BryxgqaaAY85GtDnkD2/s640/CDS+-+Working+with+projects+tasks+-+access+project+tasks.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">There are two mapping sections. </span></li>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Source to CDS – i.e. Sales Orders Template, which will move data from D365 for Ops to CDS, and then from CDS to D365 for Sales. The </span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: bold;">transformations</span><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;"> (see below for more info) are done at this stage. This means that if there is data to be transformed from D365 for Ops to D365 for Sales, it will be transformed at the time that is written into CDS, this is done to avoid having two transformations from CDS to Destination. </span></li>
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">CDS to Destination – The CDS contains the data already transformed and ready to be push to the target system without major data manipulation. Note that the data in CDS can be used to integrate with external systems. </span></li>
</ul>
</ul>
<div style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgq9glsbefooErfKhGZt0XxJBinsQg3JGfT6DciEh0FET3_OVuyOvsy26UHBc7lJfAsrEudRXWgQJCA-4L2zHMl43sR9ez-2VeIqA5J0RuQervaC-uYuanhINh_MOiSjzs68roalww_bSl/s1600/AAA_CDS+Source+Invoice.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="671" data-original-width="1600" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgq9glsbefooErfKhGZt0XxJBinsQg3JGfT6DciEh0FET3_OVuyOvsy26UHBc7lJfAsrEudRXWgQJCA-4L2zHMl43sR9ez-2VeIqA5J0RuQervaC-uYuanhINh_MOiSjzs68roalww_bSl/s640/AAA_CDS+Source+Invoice.png" width="640" /></a></div>
<div style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">You can create JSON </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">transformations</span><span style="font-family: "segoe ui"; font-size: 11pt;"> for your data by using the Edit Transformation function. You have 4 choices:</span></li>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">Default: Where the Source to CDS explicitly sets a default value to be always the same i.e. ORG001. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Truncate: A fixed length i.e. Notes. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Value Map: Transforms data from source to system. i.e. Unit of Measure for “Pieces” in D365 for Ops is “pcs”, and in D365 for Sales is “Piece”. </span></li>
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Country Region Code: Related to a picklist in CDS for pre-defined mapping of countries. </span></li>
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">See about mappings and projects in posts stating with Common Data Service Project Setup. </span></li>
</ul>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s1600/AAAA-COMBO.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="114" data-original-width="441" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s320/AAAA-COMBO.png" width="320" /></a></div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-6792202384266237022017-09-11T16:05:00.002-04:002017-09-11T16:16:07.890-04:00Common Data Service - Create a new Power Apps Project<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="689" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5WRrSEcFWmhEsL00xH-qtGH9CdGhyphenhyphenMUUtwygt6XRucdma_-Ye3whsFjno5CG3nM20X_gvFYtGUfrfNWvzlazESHI9CapIV21q3lXDCA3NjNhz41T2pHVhOoE0l8G-K8FGBKHln_2Ihah/s320/TriBridge.png" width="320" /></a></div>
<br />
<br />
<br />
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;" value="1"><span style="font-family: "segoe ui"; font-size: 11pt; font-style: normal; font-weight: normal;">To create a new Power App Project go here </span><a href="https://admin.powerapps.com/dataintegration/"><span style="font-family: "segoe ui"; font-size: 11pt;">https://admin.powerapps.com/dataintegration/</span></a></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">In order to create a new Project, you will need to create a new </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Connection Set </span><span style="font-family: "segoe ui"; font-size: 11pt;">(use to authenticate each environment - CDS, Operations, Sales or Customer Engagement). </span><span style="font-family: "segoe ui"; font-size: 11pt;">Please note that once you have created a new connection set with the chosen CDS environment, this can be used for other projects as well.</span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Click </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Data Integration</span><span style="font-family: "segoe ui"; font-size: 11pt;"> and then </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">New Project</span><span style="font-family: "segoe ui"; font-size: 11pt;">. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB-cW6s9UTj1zPwXLF7NEMHm7xl67eMiShihanfMU_zeNkNTOA3lPK3jV_b4aXZgsPHDd2-RUI6K55XD_Wh_2RyJmWUQne4A59yRlTHcwGa5TyHwrcR1SM8A2hLgLbEGWR6FxUTwiSoN9G/s1600/CDS+-+New+Project+Creation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="258" data-original-width="1600" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB-cW6s9UTj1zPwXLF7NEMHm7xl67eMiShihanfMU_zeNkNTOA3lPK3jV_b4aXZgsPHDd2-RUI6K55XD_Wh_2RyJmWUQne4A59yRlTHcwGa5TyHwrcR1SM8A2hLgLbEGWR6FxUTwiSoN9G/s640/CDS+-+New+Project+Creation.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">The New Data Integration Project wizards appears. At this point you will be able to provide a Project Name.</span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWGVqJ8U9VQoR0H-JoZcWijTTUHjdRRkQ9oUinNNKEdo_Smt0eij7KXGR5mc0ObKNPgudmc06N6plCYemuTlOghDj2gAHj9cJioHbPZNL60OBE4e0dHkANy5OHhP4hEwFFeo9Zp7ttTu3L/s1600/CDS+-+New+Project+Creation+Wizard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="726" data-original-width="1600" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWGVqJ8U9VQoR0H-JoZcWijTTUHjdRRkQ9oUinNNKEdo_Smt0eij7KXGR5mc0ObKNPgudmc06N6plCYemuTlOghDj2gAHj9cJioHbPZNL60OBE4e0dHkANy5OHhP4hEwFFeo9Zp7ttTu3L/s640/CDS+-+New+Project+Creation+Wizard.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Select a template. The available templates for Order to Cash are provided by Microsoft, and they provide the integration to move data between D365 for Operations and D365 for Sales, or vice versa. Or, an integration to only move data from the system of record to the CDS. For example, the templates Accounts (Sales to CDS), and Sales Quotes (Sales to CDS) are a good example of a system of record to CDS integration. </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">NOTE</span><span style="font-family: "segoe ui"; font-size: 11pt;">: You don’t have to work with the out-of-the-box templates, you can create your own. </span></li>
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Click </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Next</span><span style="font-family: "segoe ui"; font-size: 11pt;">, and then choose your connection set. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0dfIe4FQqPKUD1BOy9_7G5FuKiqP3TukxYr8m37hH87hh6j6pzZ78AUu38m6Mq1uDe11qio64vSlXTqFKvi-u4U6yUg4NCRMDjmannVEItMlp35EFzR_yEeknIi6SVuVbAK44zlr5xzP/s1600/CDS+-+New+Project+Creation+Wizard+connection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="629" data-original-width="1520" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0dfIe4FQqPKUD1BOy9_7G5FuKiqP3TukxYr8m37hH87hh6j6pzZ78AUu38m6Mq1uDe11qio64vSlXTqFKvi-u4U6yUg4NCRMDjmannVEItMlp35EFzR_yEeknIi6SVuVbAK44zlr5xzP/s640/CDS+-+New+Project+Creation+Wizard+connection.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Choose your Organizations. This data comes from connection set configuration. </span></li>
</ul>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxbtt5Ax-2VriG_lT9LDketc0BiumLajyfAckAfv6qouyJiChrWkO0DCnqOHr54OQuQFv5YTdwMqoa9pXeGaW4bu3DO50R4RNqG4FIZK-OT2u9YP20bzD9eof1expd1FxP8d2WM8kVJk5h/s1600/CDS+-+Create+new+Environment+connection+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="897" data-original-width="1600" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxbtt5Ax-2VriG_lT9LDketc0BiumLajyfAckAfv6qouyJiChrWkO0DCnqOHr54OQuQFv5YTdwMqoa9pXeGaW4bu3DO50R4RNqG4FIZK-OT2u9YP20bzD9eof1expd1FxP8d2WM8kVJk5h/s640/CDS+-+Create+new+Environment+connection+2.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjje1m2qUyWNYRppGSCLK_a2yfgxGKPxVi8kQNrpTq6SRdS5LssV5UZFeDwQ3cVVRzg6MNDpHQggbzHBchpXU9PD_q5H55-VgWVJ2hV6VW-ayZ9dwt6yN5cAK9CJMQr-VWUQ7kORWL61nV1/s1600/CDS+-+New+Project+Creation+Wizard+organization.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="666" data-original-width="1504" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjje1m2qUyWNYRppGSCLK_a2yfgxGKPxVi8kQNrpTq6SRdS5LssV5UZFeDwQ3cVVRzg6MNDpHQggbzHBchpXU9PD_q5H55-VgWVJ2hV6VW-ayZ9dwt6yN5cAK9CJMQr-VWUQ7kORWL61nV1/s640/CDS+-+New+Project+Creation+Wizard+organization.png" width="640" /></a></div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<div style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;">
<span style="font-family: "segoe ui"; font-size: 11pt;"></span> </div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
<li style="margin-bottom: 0px; margin-top: 0px; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Finally confirm the project. Once confirmed, you will see your new project under the Projects tabs. To modify, run, schedule, and delete existing projects, please see </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Steps – Work with existing projects</span><span style="font-family: "segoe ui"; font-size: 11pt;">. </span></li>
<li style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;"><span style="font-family: "segoe ui"; font-size: 11pt;">Once the project is created, you will be able to work on the mappings. For example, you might want to add a new UOM in CRM to comply with the requirements of the Product CDS integration template. For this, you will have to modify existing mappings. For more information see </span><span style="font-family: "segoe ui"; font-size: 11pt; font-weight: bold;">Steps – <a href="http://axwonders.blogspot.com/2017/09/common-data-service-working-with_34.html" target="_blank">Working with existing project/task mappings</a></span><span style="font-family: "segoe ui"; font-size: 11pt;">. </span></li>
</ul>
<div style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;">
<span style="font-family: "segoe ui";"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s1600/AAAA-COMBO.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="114" data-original-width="441" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFY_hiolWSoD3dcfy2KyOMbPzCNDGn6DSLa5VgiB5Vk0n7MYYbu1UReNKr_Vxn996PB6u4DP2cS7HyJkBpRQvnhlilcXbxkCEfwSo9dHbylb5xK0nORGdXmCNA5j9Qtb5fma90OgaproL/s320/AAAA-COMBO.png" width="320" /></a></div>
<div style="margin-bottom: 8pt; margin-top: 0pt; vertical-align: middle;">
</div>
<ul style="direction: ltr; font-family: "Segoe UI"; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;">
</ul>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-43500858805129210952017-08-28T09:10:00.000-04:002017-08-28T09:10:23.919-04:00RESTful Services - Dealing with REST vs WCF <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJo-gfJnumVGW3bG9YxBBZp5ABPqJl8FqeKkUrsrggRTd49fR1R98ubcJCNj38PdZn2AbwX4Uo2e5tcVIqmphMIsDF5fTRzf3ntFuAHQCZw0WUT1j8Qi0J0MrgcidMpNHcKZQH8hIX4eYW/s1600/D365+Logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="149" data-original-width="337" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJo-gfJnumVGW3bG9YxBBZp5ABPqJl8FqeKkUrsrggRTd49fR1R98ubcJCNj38PdZn2AbwX4Uo2e5tcVIqmphMIsDF5fTRzf3ntFuAHQCZw0WUT1j8Qi0J0MrgcidMpNHcKZQH8hIX4eYW/s400/D365+Logo.png" width="400" /></a></div>
<br />
<br />
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Hi folks - </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
With the advent of
the new changes around the Common Data Service (CDS), there are new concepts to
be learned as Microsoft Dynamics AX Architects/Developers. If you would like to
learn more about this, please go to <a href="https://powerapps.microsoft.com/en-us/guided-learning/learning-common-data-service/">https://powerapps.microsoft.com/en-us/guided-learning/learning-common-data-service/</a></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The purpose of this
post is to provide a simple basic understanding of what REST is, its rules, and
a simple example on how it differs from WCF, which has been the main service
layer in Dynamics AX<span style="mso-spacerun: yes;"> </span>2012. </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Moving on, in recent
years, it has become clear that HTTP is not just for serving up HTML/HTML5
pages. It is also a powerful platform for building Web APIs (D365 for Ops is a
good example) using a handful of verbs (GET, POST, and so forth) plus a few simple
concepts such as URIs and headers. </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Additionally there
are six guiding constraints that define a RESTful system, these constraints
restrict the ways that the server may process and respond to client requests so
that, by operating within these constraints, the service gains desirable non-functional
properties, such as performance, scalability, simplicity, modifiability,
visibility, portability, and reliability. <span style="font-weight: bold;">If a
service violates any of the required constraints, it cannot be considered
RESTful.</span></div>
<br />
<div style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="font-weight: bold;">REST constraints</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<span style="font-style: italic;">Client-server architecture</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The first
constraints added to the hybrid style are those of the client-server
architectural style. The principle behind the client-server constraints is the
separation of concerns. Separating the user interface concerns from the data
storage concerns improves the portability of the user interface across multiple
platforms. It also improves scalability by simplifying the server components.</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<span style="font-style: italic;">Stateless protocol</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The client–server
communication is constrained by no client context being stored on the server
between requests. Each request from any client contains all the information
necessary to service the request, and session state is held in the client. The
session state can be transferred by the server to another service such as a
database to maintain a persistent state for a period and allow authentication.
The client begins sending requests when it is ready to make the transition to a
new state. While one or more requests are outstanding, the client is considered
to be in transition. The representation of each application state contains
links that may be used the next time the client chooses to initiate a new
state-transition.</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<span style="font-style: italic;">Cacheability</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Clients and
intermediaries can cache responses. Responses must therefore, implicitly or
explicitly, define themselves as cacheable or not to prevent clients from
reusing stale or inappropriate data in response to further requests.
Well-managed caching partially or completely eliminates some client–server
interactions, further improving scalability and performance.</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<span style="font-style: italic;">Layered system</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
A client cannot
ordinarily tell whether it is connected directly to the end server, or to an
intermediary along the way. Intermediary servers may improve system scalability
by enabling load balancing and by providing shared caches. They may also
enforce security policies.</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<span style="font-style: italic;">Code on demand</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Servers can
temporarily extend or customize the functionality of a client by transferring
executable code. Examples of this may include compiled components such as<span style="mso-spacerun: yes;"> </span>client-side scripts such as JavaScript.</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<span style="font-style: italic;">Uniform interface</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The uniform
interface constraint is fundamental to the design of any REST service. It
simplifies and decouples the architecture, which enables each part to evolve
independently. The four constraints for this uniform interface are:</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<span style="font-style: italic;">Resource identification in requests</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Individual resources
are identified in requests, for example using URIs in Web-based REST systems.
The resources themselves are conceptually separate from the representations
that are returned to the client. For example, the server may send data from its
database as HTML, XML or JSON, none of which are the server's internal
representation. A good example of this can be seeing in power apps when
creating JSON mappings. </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The above is
important to understand as when creating RESTful services to interact with our
power apps or flow, these constraints will help us to create a true MVC pattern
(using MS tools) so we can take advantage of scalability, reusability, and
smart data management. Let's look at a simple comparison between WCF and
REST.<span style="mso-spacerun: yes;"> </span></div>
<br />
<div style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="font-weight: bold;">Services - WCF/REST</span></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Unlike WCF where a
service is an address to a physical file (i.e. an address that maps directly to
a service class or .svc file), <span style="font-weight: bold;">Service addresses
</span>with MVC are REST-style <span style="font-weight: bold;">routes</span>
that map to controller methods - they fit nicely with REST-API Specs. </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Let's look at an
example of a Task Management routine with WCF:</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
[Service Contract]</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
public interface
ITaskService</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
[Operation
Contract]</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Task
GetTask(long Task ID);</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
}</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
public class
TaskService : ITaskService</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
{</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
private
readolny IRepository _repository;</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Public
TaskService(IRepository repository)</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;">
_repository
= repository;</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
}</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Public
Task GetTask(long taskId)</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Return
_repository.Get<Task>(taskId);</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
}</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
}</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The resulting
service for the above WCF service will look like this: <a href="http://myserver/?TaskService.svc">http://MyServer?TaskService.svc</a></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The below code
achieves the same result than the above one. The only difference is that is
built with MVC4 and it also is JavaScript friendly (JavaScript meaning for any
web based app). The main difference is that the below code would involve <span style="font-weight: bold;">creating a controller instead of a service class</span>.
Further, the method that takes care of retrieving the TaskId exist in the
controller itself, unlike WCF where it would be defined by a contract. </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Public class
TaskController : <span style="font-weight: bold;">Controller </span></div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
{</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
private
readolny IRepository _repository;</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Public
TaskController(IRepository repository)</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;">
_repository
= repository;</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
}</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Public
<span style="font-weight: bold;">ActionResult</span> Get(long taskId)</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;">
Return
JSON(_repository.Get<Task>(taskId));</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
}</div>
}<br />
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
In order to retrieve
a single task - the MVC4 will not need SOAP, or any service class to contract
with along with an operation. The call will look like this (assuming there is
an appropriately<span style="mso-spacerun: yes;"> </span>configured route. </div>
<br />
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
<a href="http://myserver/Task/Get/001">http://MyServer/Task/Get/001</a></div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Let's move further,
and look an example with the <span style="font-weight: bold;">ApiController</span>.
The URL will look different as the above example contains the <span style="font-weight: bold;">Get</span> in the URL. The ApiController base class
was built to enable RESTful services, and by using it we would only need to
return the object(s) in a collection and the data related to that collection. </div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Public class
TaskController : ApiController</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
private
readolny IRepository _repository;</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Public
TaskController(IRepository repository)</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;">
_repository
= repository;</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
}</div>
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
Public
Task Get(long taskId)</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
{</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;">
Return
repository.Get<Task>(taskId));</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;">
}</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
}</div>
<br />
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
The URL will look
like this <a href="http://myserver/Task/001">http://MyServer/Task/001</a></div>
<br />
<br />
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
If we note, in the
address above we don't include the method name (i.e. Get) like we did in the
example where we were using the Controller base class instead of the
ApiController one. The amazing reason for this is because when using the
ApiController base class, it automatically maps to the corresponding controller
methods, therefore it helps us to create API the flows more naturally with the
REST architecture. </div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
Thanks all for now!</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3drzL-beDDZctaQtj5P53Doku00Umt5eFnhFHYjb_esfp5b83OhqNDzMk5G0Azvcf4cuxXu6YCp29clj_2rjeejkOj6Xb3zp6Fj6kxTxEP9CFnMY0BOzlXsxqmiFBRTR36akeR3EniCRU/s1600/.NET+COre+Logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="98" data-original-width="513" height="76" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3drzL-beDDZctaQtj5P53Doku00Umt5eFnhFHYjb_esfp5b83OhqNDzMk5G0Azvcf4cuxXu6YCp29clj_2rjeejkOj6Xb3zp6Fj6kxTxEP9CFnMY0BOzlXsxqmiFBRTR36akeR3EniCRU/s400/.NET+COre+Logo.png" width="400" /></a></div>
<div align="center" style="font-family: Calibri; font-size: 11pt; margin: 0in;">
</div>
<div style="font-family: Calibri; font-size: 11pt; margin: 0in;">
</div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-54551247029613773452015-12-15T10:18:00.001-05:002015-12-15T10:30:26.460-05:00The forecast has not been generated. The Database with 'Name' = Demand Forecast initial Test' doesn't exist in the collection. <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: "verdana" , sans-serif;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s400/PowerfulSimply3.jpg" width="400" /></span></a></div>
<span style="color: #444444; font-family: "verdana" , sans-serif;"></span><br />
<span style="color: #444444; font-family: "verdana" , sans-serif;"></span><br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">Hi There!</span><br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">I hope everyone is having a good week so far.</span><br />
<span style="color: #444444;"> </span><br />
<span style="color: #444444;">On another note, I have been working on a few issues around demand forecasting in AX2012 R3 CU8, and after our infrastructure team installed the Analysis services, users were getting the following error:</span><br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">"<em>The forecast has not been generated. The Database with 'Name' = Demand Forecast initial Test' doesn't exist in the collection."</em></span><br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">The actual solution is pretty simple, but I thought the resolution from LCS was too general and it did not provide the details I was looking for. If you access LCS Issue Search for this specific issue (</span><a href="https://fix.lcs.dynamics.com/Issue/Solution/834451?bugId=1703068&qc=70e497218e943038e1e3d5bb836399fc9cfcbd2e3447897bcbd793236dcf12fd"><span style="color: blue;">https://fix.lcs.dynamics.com/Issue/Solution/834451?bugId=1703068&qc=70e497218e943038e1e3d5bb836399fc9cfcbd2e3447897bcbd793236dcf12fd</span></a><span style="color: #444444;">), you will see the following statement:</span><br />
<span style="color: #444444;"></span><br />
<div style="text-align: center;">
<span style="color: #444444;"><em>"Add the AOS service account to the OLAP Database Roles."</em></span></div>
<div style="text-align: center;">
<span style="color: #444444;"></span> </div>
<span style="color: #444444;">Great!, pretty straight forward, but which role and database? The following are the steps that will hopefully help someone save some time on this. </span><br />
<br /><span style="color: #444444;"><strong>STEPS</strong></span><br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">A user runs the Demand Forecast in AX and gets the following error message - The forecast has not been generated. The Database with 'Name' = Demand Forecast initial Test' doesn't exist in the collection.</span><br />
<span style="color: #444444;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY0ihez-o0fI5YkjuFScQjGZUvyMKr1LzYkbhXp3Vk2UQWVAC3M9rgy5D1PD-6Lssg8tojwhOmXuuHTAKiE5t7e4qxHQV9nnKtIalp3BcPX7ps0z4svkWZ7IjU4cqRMktpzTIHA86jg6q8/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY0ihez-o0fI5YkjuFScQjGZUvyMKr1LzYkbhXp3Vk2UQWVAC3M9rgy5D1PD-6Lssg8tojwhOmXuuHTAKiE5t7e4qxHQV9nnKtIalp3BcPX7ps0z4svkWZ7IjU4cqRMktpzTIHA86jg6q8/s640/1.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVHH5CEQvMcn31a-jfAkPxPfiTkC6DJETey8AK1ScLq4j7BmH-kYGCd-5rHwI4mMSTpAlpUKGgd1PHSGW-zr3RvZdB2TJqsrwoLAVwYkAJddZO-JKJkdD95BOa47woWhQon0eiliP2tqsY/s1600/2+-+Copy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a> </div>
<br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">To solve the problem these are the steps to be followed:</span><br />
<span style="color: #444444;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaXDb6XaqSzmK8WaLvBmxdio7qsFo_rRdyPLEsPOJ0xQay0noWUKxrMCdUAV0CqJQQUzutZZcLurdux4Y_FoclDOTu8fD41CaWun4Pk7UqlZID16WMuRg_G8_rgnIY8fmY1tO_wWpmBRti/s1600/2+-+Copy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaXDb6XaqSzmK8WaLvBmxdio7qsFo_rRdyPLEsPOJ0xQay0noWUKxrMCdUAV0CqJQQUzutZZcLurdux4Y_FoclDOTu8fD41CaWun4Pk7UqlZID16WMuRg_G8_rgnIY8fmY1tO_wWpmBRti/s640/2+-+Copy.png" width="640" /></a></div>
<br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">1.Go to the Analysis Server and look for the Demand Forecast Initial Database and Expand the Roles node. <br />2.Right click in the Production Planner and go to properties.<br />3.Go to Membership and click Add.<br />4.Add the AOS AX Service account. </span><br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;"></span><br />
<span style="color: #444444;">That's all for now. Have a great week!</span><br />
<span style="font-family: "verdana"; font-size: xx-small;"><br />
<span style="font-family: "segoe ui";"><span style="font-family: "verdana"; font-size: xx-small;"><o:p><span style="font-family: "segoe ui" , sans-serif; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Mangal; mso-bidi-font-size: 10.0pt; mso-bidi-language: HI; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: "Segoe UI"; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="color: #444444; font-family: "verdana" , sans-serif;"> </span><span style="color: #444444;">
<span style="font-family: "verdana" , sans-serif;">
<span style="font-family: "times new roman"; font-size: xx-small;">
</span></span></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSAWNl81kM8-rF5YBJuaupcd8Ol5uw_dbimf8o1OWZ2d1gdpScRGEQiGfymbfW65-Y3hCOrXsW09mcY-hFiQtMlhJCu4t6KveWTAHnt5tsPdE5H50V9qLr6gtTOVsXrZMR40SSKFxeVaFq/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: "verdana" , sans-serif;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSAWNl81kM8-rF5YBJuaupcd8Ol5uw_dbimf8o1OWZ2d1gdpScRGEQiGfymbfW65-Y3hCOrXsW09mcY-hFiQtMlhJCu4t6KveWTAHnt5tsPdE5H50V9qLr6gtTOVsXrZMR40SSKFxeVaFq/s400/PowerfulSimply2.jpg" width="400" /></span></a></div>
<span style="color: #444444;">
<span style="font-family: "verdana" , sans-serif;">
</span></span></o:p><span style="color: #444444; font-family: "verdana" , sans-serif;"> </span></span><span style="color: #444444; font-family: "verdana" , sans-serif;"> </span></span><br /><span style="font-family: "verdana" , sans-serif;"><span style="color: #444444;">
<span style="font-family: "segoe ui";"><span style="font-family: "verdana"; font-size: xx-small;"><o:p><span style="font-family: "segoe ui" , sans-serif; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Mangal; mso-bidi-font-size: 10.0pt; mso-bidi-language: HI; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: "Segoe UI"; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span></o:p></span></span><br />
<span style="font-family: "times new roman"; font-size: xx-small;">
</span></span></span></span><span style="font-family: "verdana" , sans-serif;"></span><span style="color: #444444;"></span><br />AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-63948676065728252182015-01-24T15:25:00.000-05:002015-01-24T15:28:12.280-05:00TFS Online - Creating and Connecting to TFS Online with AX2012<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s1600/PowerfulSimply3.jpg" height="102" width="400" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Hi There,</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">I hope everyone is having a great weekend so far, and that you are ready for a great post about TFS Online and how to connect to it. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Before continuing with the step-by-step directions on how to connect to TFS Online, I wanted to share a few links that I think will of interest to you if you are looking to go with this option in your Microsoft Dynamics AX implementation. In addition, really soon I'll post my view on branching and what might work best for a big implementation. Also, I'll be posting information on how to use the Scrum template. This is creating features, backlog items, sprints, associating sprints with backlog items, and these with features, etc. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<a href="http://www.visualstudio.com/en-us/products/what-is-visual-studio-online-vs.aspx" target="_blank"><span style="color: blue; font-family: Verdana, sans-serif;">What is visual studio online?</span></a><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<a href="http://www.visualstudio.com/en-us/visual-studio-online-pricing-vs.aspx" target="_blank"><span style="color: blue; font-family: Verdana, sans-serif;">Visual Studio Online Pricing</span></a><span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">With the above out of the way, let's jump into creating a new visual studio online project, and connecting to an instance of AX2012R3. In the following steps I'm assuming you already have a Visual Studio Online account, and that you have your repository and branching implemented (although I will cover this topics very, very soon). </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;">Go to <span style="font-family: "Arial",sans-serif; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-US;">https://<strong><em>YOURPROJECTNAME</em></strong>.visualstudio.com/DefaultCollection</span></span></span></li>
</ul>
<span style="font-family: "Arial",sans-serif; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-US;"></span><span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<ul>
<li><span style="font-family: "Arial",sans-serif; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-US;"></span><span style="color: #444444; font-family: Verdana, sans-serif;">Go to control panel, and click <strong>DefaultCollection</strong>. Once there go to administration tasks and choose the option <em>create new team project</em> as shown below. </span></li>
</ul>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMb3Yvnp2O3IQZY6SEWqLjuKoO1AjrVhY2v4RN3dh3_39hlHfAWaIL7GzX_Fpk1Hz3N-Zy0dqdfbS0JnID_mEPtyMup7W8atoc6qD1Nk7UJ1qc-yY02koJPA7iL-DYvm6X8YGGJJ3PFLHe/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMb3Yvnp2O3IQZY6SEWqLjuKoO1AjrVhY2v4RN3dh3_39hlHfAWaIL7GzX_Fpk1Hz3N-Zy0dqdfbS0JnID_mEPtyMup7W8atoc6qD1Nk7UJ1qc-yY02koJPA7iL-DYvm6X8YGGJJ3PFLHe/s1600/1.png" height="301" width="400" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Give your project a name and choose a process template. In my case I chose an Scrum template. For more information on process templates </span><a href="https://msdn.microsoft.com/en-us/library/vstudio/ms400752(v=vs.110).aspx" target="_blank"><span style="color: blue; font-family: Verdana, sans-serif;">go to this link.</span></a><span style="color: #444444; font-family: Verdana, sans-serif;"> </span></li>
</ul>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqgWJbkuJe3wWgmZ0gZ94muXKaOdm3U7MWaqJreBvzhoEq3wmlRPefAnH25fNoiXhV8Yg4sqPI6TrutuqgPdDy-MIzXJBWJ5u7ePu-_MH48y_kEsnCtH-NxGqP9PB-6RMlqn8rpShnQgpE/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqgWJbkuJe3wWgmZ0gZ94muXKaOdm3U7MWaqJreBvzhoEq3wmlRPefAnH25fNoiXhV8Yg4sqPI6TrutuqgPdDy-MIzXJBWJ5u7ePu-_MH48y_kEsnCtH-NxGqP9PB-6RMlqn8rpShnQgpE/s1600/2.png" height="299" width="320" /></span></a></div>
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Once you create your new Visual Studio Online project, you should see the following. </span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzVhqEPyIPsQOnC8BR7-dQYSbl3fNytFeu4Pq66U4O2aKk_kqJU2TUbSSeeCDbLDoVZ1bU1HbFNgL9OtQYQEZTMwGdAIdRKcNgsaqNhjgtD-2hX2qPWYc7H0A30bPZo53a2DfHy3DUPlLc/s1600/outcome.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzVhqEPyIPsQOnC8BR7-dQYSbl3fNytFeu4Pq66U4O2aKk_kqJU2TUbSSeeCDbLDoVZ1bU1HbFNgL9OtQYQEZTMwGdAIdRKcNgsaqNhjgtD-2hX2qPWYc7H0A30bPZo53a2DfHy3DUPlLc/s1600/outcome.png" height="327" width="640" /></span></a></div>
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">At this step is where you would have to create your branches, and local server (or workstations) repositories. The following is a quick guide to branching, simple but very effective, </span><a href="http://blog.tfsserver.com/a-straightforward-guide-to-branching/" target="_blank"><span style="color: blue; font-family: Verdana, sans-serif;">click this link to open it</span></a><span style="color: #444444; font-family: Verdana, sans-serif;">. </span></li>
</ul>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">After your branching and repositories are good to go open a development work space in AX2012R3 (or earlier), and go to Version Control / Version Control Parameters</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK9fsieDD4WWCOTDoa9O56brYUMlkA_ZWx5wt7wTTr8HoDq-2U7VAYxa_Ghwy5LgJ6l3janVWqfAOfpx_kJlQ5m6qMU6g2Mi7vFnImt260xwEsqUh-Gj4T7B8r_l4AogfDffOK0pXjUeMI/s1600/1.png" /></span></div>
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Under <em>General</em> fill out the following information:</span></li>
</ul>
<span style="color: #444444; font-family: Verdana, sans-serif;">
</span><br />
<div class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">a.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Version Control Status = Enable</span></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">b.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Version Control System = Team Foundation Server</span></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">c.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Repository Folder = [Choose a local repository]</span></span></div>
<div class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">d.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Mark the two check boxes (as shown below)<o:p></o:p></span></span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;">
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPsqH2sRQYTfHT-YF-xiLWqZ-eb7vbfOFaxWC7bm-vvILwENaf1RejQUBYK5oWk_qfC7hdimJWfQVvvQ942HuW_DVVfLdx1O_0bviYHZBXz-ECIDeW_ZcnMz0jXxtd9CbLlAfBo9zl4SL/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPsqH2sRQYTfHT-YF-xiLWqZ-eb7vbfOFaxWC7bm-vvILwENaf1RejQUBYK5oWk_qfC7hdimJWfQVvvQ942HuW_DVVfLdx1O_0bviYHZBXz-ECIDeW_ZcnMz0jXxtd9CbLlAfBo9zl4SL/s1600/2.png" height="380" width="640" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Under Team Foundation Server fill out the following information</span></li>
</ul>
<span style="color: #444444; font-family: Verdana, sans-serif;">
</span><br />
<div class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">a.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Team Foundation Server URL = </span></span><a href="https://your-project-name.visualstudio.com/DefaultCollection"><span style="color: #444444; font-family: Verdana, sans-serif;">https://YOUR-PROJECT-NAME.visualstudio.com/DefaultCollection</span></a></div>
<div class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">b.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Team Foundation Project Name = YOUR PROJECT NAME</span></span></div>
<div class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">c.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Branch Folder = YOUR BRANCH (i.e. Development, QA, UNT, etc)</span></span></div>
<div class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span></div>
<div class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;">
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEze-osanmBgooRAUNqJV1rC79gaiFCeBtJmdRfBy3I0sH9I5zFCht3ssvuvOpNdUIN3ZJvYCkrqAZSUw43H7ds_smmy6lwqXr2kKVrRxbVCMy_SxTwfztekuUqRhz592dZ4lcwnHzLJdo/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEze-osanmBgooRAUNqJV1rC79gaiFCeBtJmdRfBy3I0sH9I5zFCht3ssvuvOpNdUIN3ZJvYCkrqAZSUw43H7ds_smmy6lwqXr2kKVrRxbVCMy_SxTwfztekuUqRhz592dZ4lcwnHzLJdo/s1600/3.png" height="222" width="640" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">If you are using the Visual Studio 2010 SP1, you'll be fine. If not you'll get the following error</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4GO-eVAGFSEUbCxDZgL8AGnW08Mjf1EyICfTO059wtLGSMV7htx0aPLfSQqTEnHKUB6oxEixb9q_9DRHibEeO-Aso1cWGz3L4o6KHOcSV-bxx591xI4iVGrvNTQ4pT1ouasM6PEUX1ryl/s1600/error.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4GO-eVAGFSEUbCxDZgL8AGnW08Mjf1EyICfTO059wtLGSMV7htx0aPLfSQqTEnHKUB6oxEixb9q_9DRHibEeO-Aso1cWGz3L4o6KHOcSV-bxx591xI4iVGrvNTQ4pT1ouasM6PEUX1ryl/s1600/error.png" height="160" width="640" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">To resolve this, please follow the steps:</span></li>
</ul>
<span style="color: #444444; font-family: Verdana, sans-serif;">
</span><br />
<div class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">a.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Go to </span></span><a href="http://www.microsoft.com/en-us/download/confirmation.aspx?id=29082"><span style="color: blue; font-family: Verdana, sans-serif;">http://www.microsoft.com/en-us/download/confirmation.aspx?id=29082</span></a></div>
<div class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0pt 1in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><span style="mso-bidi-font-family: Arial; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">b.<span style="font-family: "Times New Roman"; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span></span><!--[endif]-->Download and install the KB2662296<o:p></o:p></span></span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;">
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwbCNA9BQVsLNHAw3qGEnwWmsYot8F4m8LZtm51q1dsCmqkTZM0hGkMDPDBolj6lBAPxGl_pozO3NGWqVRE8nfWYo5kZuXYA7hu45h58vmsQXOjx71-6GX9p1uSrkxaZSeWE4bVSlvV08R/s1600/KB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwbCNA9BQVsLNHAw3qGEnwWmsYot8F4m8LZtm51q1dsCmqkTZM0hGkMDPDBolj6lBAPxGl_pozO3NGWqVRE8nfWYo5kZuXYA7hu45h58vmsQXOjx71-6GX9p1uSrkxaZSeWE4bVSlvV08R/s1600/KB.png" height="376" width="400" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Once you have installed the above KB, restart your AOS and open AX2012R3 again. You'll see the following screen, which means that after signing in, you are ready to start enjoying the benefits of TFS online. </span></li>
<span style="color: #444444; font-family: Verdana, sans-serif;">
</span></ul>
<span style="font-family: "Arial",sans-serif; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-US;"></span><span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS-6IiWOY_hWrsixDSar5W6Uh6vBNj5050NJJvicZn-sfhmhutUMQcNgenThfaG2drTlPND4TgwgMxqXDEGAiS2iv7_gS6xgaftFH1oJRqkLiZsDrzKKPRQH_6r3dB4bkT40N0jDqkYDqN/s1600/AFter+KB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS-6IiWOY_hWrsixDSar5W6Uh6vBNj5050NJJvicZn-sfhmhutUMQcNgenThfaG2drTlPND4TgwgMxqXDEGAiS2iv7_gS6xgaftFH1oJRqkLiZsDrzKKPRQH_6r3dB4bkT40N0jDqkYDqN/s1600/AFter+KB.png" height="392" width="640" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">This is all for now. Remember to check my blog for updates on how to use (in my own way that is) the ALM features that TFS online offers. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Have a great week ... </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk-gc9PZ5tseQfJ3ZyvsUhQclpQdjKWbL61hVYZXQ1cfC6mpKnKPzm4-ZDM1mF64vMqVUAyUpN7hJRl0NmQSpccp98kNCcnaw8X-DRBUYB3flDA2CGj1vbdtqIFh4YJFCfEgbYIJP7dx35/s1600/Visual%20Studio%20Online%20Logo_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk-gc9PZ5tseQfJ3ZyvsUhQclpQdjKWbL61hVYZXQ1cfC6mpKnKPzm4-ZDM1mF64vMqVUAyUpN7hJRl0NmQSpccp98kNCcnaw8X-DRBUYB3flDA2CGj1vbdtqIFh4YJFCfEgbYIJP7dx35/s1600/Visual%20Studio%20Online%20Logo_3.png" height="132" width="640" /></span></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-88208644381397082032014-03-15T12:27:00.004-04:002014-03-15T12:27:22.872-04:00Automated Deployment with Windows Azure - AX 2012 R3<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" height="143" width="400" /></a></div>
<div style="text-align: center;">
<span style="font-family: Verdana, sans-serif;"> </span></div>
<span style="font-family: Verdana;"></span><br />
<span style="font-family: Verdana, sans-serif;">Hi there!</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">I hope everyone had a great and productive week. I certainly did. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">On this post I would like to share what I learnt about Automated <span style="color: blue;">Deployment with Windows Azure</span> at the AX 2012 R3 Tech Conference. As always, I would like to extend my gratitude to <a href="http://www.tribridge.com/" target="_blank">TriBridge</a> for taking me to this event. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">As discussed in previous events, Microsoft said that it was moving to a cloud environment where it would provide a service to host and run AX instances in the cloud. At this stage, Microsoft offers a wide variety of services to an organization that provide a well-designed infrastructure for development, testing and small-scale production environments. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><div>
<span style="font-family: Verdana, sans-serif;">The following is the Azure Hosting Model (Blue boxes is what Azure is proving us)</span></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihvHLLnx0Z5Ebfm4zmLl7WjMUc9R22iium7qPdKnVN6Y6visuGsEobsFoGkXf4wlRUeMzMwnOtHRCWQD3S6Q-ql6C9NwtnFlNutiJn1DUacoA98g7KQ5k8LSA2xJ7-YHbnsK4BvTDNEkUK/s1600/AzureDep_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihvHLLnx0Z5Ebfm4zmLl7WjMUc9R22iium7qPdKnVN6Y6visuGsEobsFoGkXf4wlRUeMzMwnOtHRCWQD3S6Q-ql6C9NwtnFlNutiJn1DUacoA98g7KQ5k8LSA2xJ7-YHbnsK4BvTDNEkUK/s1600/AzureDep_1.png" height="315" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;"><strong>Azure Setup</strong></span> </span><br />
<span style="font-family: Verdana, sans-serif;"></span><div>
<span style="font-family: Verdana, sans-serif;">Only AX 2012 R3 is certified and supported for Azure at this time. When asking Microsoft about older CU (i.e. CU6), they said it could be possible to work with these versions, and there are a number of companies that are doing it, but it is not supported. </span></div>
<div>
</div>
<div>
<span style="font-family: Verdana, sans-serif;">A very cost-effective concept is that <span style="color: blue;">Azure takes care of all the back-end processes when creating a new Azure instance</span>. Microsoft accomplished this by using a set of automated scripts that install, and slightly configures the instance. However, customer specific configuration as well as customer specific network details are not part of the automated process for obvious reasons. </span></div>
<span style="font-family: Verdana, sans-serif;"></span><div>
<span style="font-family: Verdana, sans-serif;">Moving right along, Azure provides a very good cost effective solution for hosting. Azure calls it, “Pay-as-you-Go”, which mean that a user will be charged a certain amount of money only when he/she is using the Azure instance. </span></div>
<span style="font-family: Verdana, sans-serif;"></span><div>
<span style="font-family: Verdana, sans-serif;">One of the main benefits of this solution is that any device with RDP capabilities can access the Azure instances. </span></div>
<div>
<span style="font-family: Verdana, sans-serif;"></span> </div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><strong>Azure Deployment Services</strong></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd8hasCkSV9EauhN8LcBqm09CpLJWQk6DkPx9Xk0eGr0e4DPP1-psmZv7C60bAVwjEy2-S0MZEbN8C5VB8CsgBAOuprPR5iqTQ6Yp0P4wOzrhRzNUMKn3Rx5fer8n3ztHhko49p8m7NMAA/s1600/AzureDep_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd8hasCkSV9EauhN8LcBqm09CpLJWQk6DkPx9Xk0eGr0e4DPP1-psmZv7C60bAVwjEy2-S0MZEbN8C5VB8CsgBAOuprPR5iqTQ6Yp0P4wOzrhRzNUMKn3Rx5fer8n3ztHhko49p8m7NMAA/s1600/AzureDep_2.png" height="205" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Microsoft provides a robust framework for deploying Microsoft Dynamics AX Instances to Azure. The following are most of the steps needed to make use of these services.</span><br />
<div>
<span style="font-family: Verdana, sans-serif;"></span></div>
<ol>
<li><span style="font-family: Verdana, sans-serif;">A user/Organization must get an Azure subscription ID by signing into the Azure website. </span></li>
<li><span style="font-family: Verdana, sans-serif;">There is a 3 month free trial available. </span></li>
<li><span style="font-family: Verdana, sans-serif;">A new subscription will include 20 cores for a basic deployment of a development and test environments. </span></li>
<li><span style="font-family: Verdana, sans-serif;">The Azure subscription service will setup the instance automatically. </span></li>
<li><span style="font-family: Verdana, sans-serif;">Azure will provide different topologies (Development, Test, and Production, which needs more than 20 cores in a real business deployment scenario).</span></li>
<li><span style="font-family: Verdana, sans-serif;">By default, Azure creates 2 machines per instance to support maintenance. </span></li>
<li><span style="font-family: Verdana, sans-serif;">A typical development Dev/Test deployment takes approximately 8-10 hours. </span></li>
<li><span style="font-family: Verdana, sans-serif;">The deployment process is an “intelligent” process that retries failures. In addition a user can define the maximum number of retries, which helps on troubleshooting times. </span></li>
<li><span style="font-family: Verdana, sans-serif;">Azure provides a Demo instance with Contoso data. </span></li>
<li><span style="font-family: Verdana, sans-serif;">Azure provide Lifecycle services as a default feature in each instance.</span></li>
</ol>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;"><strong>Post Deployment Considerations</strong></span> </span><br />
<br /><span style="font-family: Verdana, sans-serif;">Although Azure does many of the configuration tasks automatically, there are a number of post-deployment actions we need to follow up after each setup. The following describes the steps needed after deployment. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrynEdRyDbGtxUkQJgbNC6wL2Hft5OHt8pi9erRYlr6oYn7se9ZtG0ST_4JgW8R0hZJq54umq0ygv-se21wQ0jfzLXHL4Rurm6x3fPctajbiZQz4NjGZT8a0wobSDdosSeeMg6HnXXWtYg/s1600/AzureDep_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrynEdRyDbGtxUkQJgbNC6wL2Hft5OHt8pi9erRYlr6oYn7se9ZtG0ST_4JgW8R0hZJq54umq0ygv-se21wQ0jfzLXHL4Rurm6x3fPctajbiZQz4NjGZT8a0wobSDdosSeeMg6HnXXWtYg/s1600/AzureDep_3.png" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">In addition, an important point to take in consideration is setting up TFS, Outlook and Lync (if available for a customer). Microsoft can help a customer/partner to set these applications. </span><br />
<br /><span style="font-family: Verdana, sans-serif;">One important point is the existence of <span style="color: blue;">SQL Server Always On feature</span>, which brings SQL Server high availability and disaster recovery to a whole new level by allowing multiple copies of the database to be highly available. <span style="color: blue;">Always On Availability Groups allow you to fail over a group of databases as a single entity</span>, unlike database mirroring where you can only do so one database at a time. Further, this architecture also offers SQL Witness. Its main task is to monitor the mirroring scenario and to initiate automatic failover.</span><br />
<br /><span style="font-family: Verdana, sans-serif;">Azure also provides a <span style="color: blue;">REST</span> interface instead of a SOAP one. <span style="color: blue;">REST is a simple stateless architecture that generally runs over HTTP</span>, and is often used in mobile applications, social networking Web sites, and automated business processes. </span><br />
<br /><span style="font-family: Verdana, sans-serif;">Finally, Microsoft recommends starting virtual machines in Azure in a sequence, otherwise the IP addresses will not match the VM’s sub-nets. A question was asked to Microsoft to expand on this issue, and they are not sure why this happens. The good news, however, is that they are working on it. </span><br />
<span style="font-family: Verdana, sans-serif;">The following is the Azure portal possible architecture that Microsoft is working on. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitbSOvbY2iXR-gLmV4d2f907iRYIIm2cqbIMLr1OTrMxlJhZCVKsflVWczz7Ptfdf0te752xN2VGjxaAuaWLlli1xMNIZcfZLTIovom5sMnLefPANYpO46OarQDpBsCv7_Lck0s2wgRJ46/s1600/AzureDep_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitbSOvbY2iXR-gLmV4d2f907iRYIIm2cqbIMLr1OTrMxlJhZCVKsflVWczz7Ptfdf0te752xN2VGjxaAuaWLlli1xMNIZcfZLTIovom5sMnLefPANYpO46OarQDpBsCv7_Lck0s2wgRJ46/s1600/AzureDep_4.png" height="505" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"><br />Check out TriBridge Cloud Services at <a href="http://www.tribridge.com/solutions/expertise/cloud-computing" target="_blank">TriBridge Concerto</a>. We provide cloud hosting for all your needs. Also, check our <a href="http://www.tribridge.com/careers/tribridge-careers" target="_blank">TriBridge Careers</a> page and get on our winning team. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" height="143" width="400" /></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<div>
<span style="font-family: Verdana, sans-serif;"></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"></span></div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com1tag:blogger.com,1999:blog-4889748320010274206.post-86395753999320090052014-03-07T18:36:00.004-05:002014-03-07T18:38:52.022-05:00Create Dynamics AX Builds using the X++ Server - AX 2012 R3<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.tribridge.com/" target="_blank"><img alt="http://www.tribridge.com" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" height="143" width="400" /></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span> </div>
<span style="color: #444444; font-family: Verdana;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Hi There! </span><br />
<br />
<span style="color: #444444; font-family: Verdana, sans-serif;">I hope everybody is doing great! I had the opportunity to attend to the <span style="color: black;"><strong>MS AX 2012 R3 Tech Conference</strong></span> thanks to </span><a href="http://www.tribridge.com/" target="_blank"><span style="color: red; font-family: Verdana, sans-serif;">TriBridge</span></a><span style="color: #444444; font-family: Verdana, sans-serif;">. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Microsoft has worked hard in improving the X++ compiler for the new release. The new compiler is also available in CU7. </span><br />
<br />
<span style="color: blue; font-family: Verdana, sans-serif;">X++ Compiler Performance</span><br />
<br />
<span style="color: #444444; font-family: Verdana, sans-serif;">In the past releases, the X++ compiler has been the bottleneck of build and installation scenarios across the board. For this, Microsoft has recommended the following tips to improve the compiler performance (CU7 and up only)</span><br />
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">One single machine deployment</span></li>
<ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">SQL Server</span></li>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">AOS</span></li>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Client</span></li>
</ul>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">16GB of memory available.</span></li>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Don’t constrain SQL Server memory consumption.</span></li>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Installation of the KB2844240 Hotfix (AX 2012 R2) – Index Optimizations. </span></li>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Faster CPUs is a much better option than multiple slow ones. </span></li>
<li><span style="color: #444444; font-family: Verdana, sans-serif;">Solid state drives, which are typically more resistant to physical shock, run silently, have lower access time, and less latency.</span></li>
</ul>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"><span style="color: blue;">How the Microsoft Dynamics AX compiler works</span> </span><br />
<br />
<span style="color: #444444; font-family: Verdana, sans-serif;">The following depicts the phases of the X++ compiler in previous versions of Microsoft Dynamics AX. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFPMOyhUlAAVEnrn86pAZ7t_WFwvzL00KlBS1q0RdGwPVeL5SacgCa4DWOsPCXrZL91uCvvG7GEyIjC1pNm9c4uS-UsO3_vD7f1V5QiiLA4ZXREoYgxgv4-4B56i1DkWyUdKA_MTOn_81b/s1600/BuildR3_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFPMOyhUlAAVEnrn86pAZ7t_WFwvzL00KlBS1q0RdGwPVeL5SacgCa4DWOsPCXrZL91uCvvG7GEyIjC1pNm9c4uS-UsO3_vD7f1V5QiiLA4ZXREoYgxgv4-4B56i1DkWyUdKA_MTOn_81b/s1600/BuildR3_1.png" /></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span> </div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">It is important to note that in earlier versions of Microsoft Dynamics AX the build performance is affected by the metadata moving from the client to the server metadata. In addition, the long compiling times are due to the deserialization of metadata and in memory cache. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"><em>The following is the architecture for the current compiler</em></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigWdRwJFlz8sdTDxS7MWSH96xBdqZoCDWjm2AbHDYiAIX_KGfR5nC67XRlyK8KhtjE96Ov37e9cEAQ7YNIx3cBmj4Bb70wxXzSTv9NViaE5RvGnMeCaI8A0BLNWt2czmCIGlfiwO5FAFDK/s1600/BuildR3_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigWdRwJFlz8sdTDxS7MWSH96xBdqZoCDWjm2AbHDYiAIX_KGfR5nC67XRlyK8KhtjE96Ov37e9cEAQ7YNIx3cBmj4Bb70wxXzSTv9NViaE5RvGnMeCaI8A0BLNWt2czmCIGlfiwO5FAFDK/s1600/BuildR3_2.png" /></a></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"><span style="color: blue;">R3 Compiler Improvements</span> </span><br />
<br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Microsoft enhanced the compiler by allowing us to use the Build.exe command or the client. However, from an architectural point of view, they removed the client portion of the compiler in the R3 release. </span><br />
<span style="color: #444444; font-family: Verdana;"></span><br />
<em><span style="color: #444444; font-family: Verdana;">The following is the new architecture improvements</span></em><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKKccTYLNZtAAQZhVyqwIb9FKZGQKj048ZpTcdCXna6H7UUvekjScuhyphenhyphenbQIK47hb8dcwzEo1WXUmJ9kIpJhDZkixShFPvR9dsofVMJRpqprqXVDt-IZW08EXGRivkjiedtp6J1_PsrQjAc/s1600/BuildR3_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKKccTYLNZtAAQZhVyqwIb9FKZGQKj048ZpTcdCXna6H7UUvekjScuhyphenhyphenbQIK47hb8dcwzEo1WXUmJ9kIpJhDZkixShFPvR9dsofVMJRpqprqXVDt-IZW08EXGRivkjiedtp6J1_PsrQjAc/s1600/BuildR3_3.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">A few key points to underline is that the AOS now contains the logging information, therefore there is no cache in memory. </span><span style="color: #444444; font-family: Verdana, sans-serif;">In addition, logs are generated in each AOS. In case of a multi AOS deployment scenario, the AXBuild.exe process automatically consolidate these into one log. </span><br />
<span style="color: #444444; font-family: Verdana;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Finally, when using the parallel compiler, the CPU usage is extremely high. In a multi CPU scenario, the AXBuild.exe process will automatically balance the load between CPU’s. Also, is important to understand that parallel does not mean multi-threading, the new compiler is very much still a single-thread process.</span><br />
<br />
<br />
<span style="color: #444444; font-family: Verdana, sans-serif;"><em>The following picture depicts what a parallel compiler output looks like</em><br />
<br />
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="color: #444444; font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF7pgQnNGUkrSMPQ0F21-5RCQAestj1hEwxJmjyzJEPjFMroXd2QGvTBL1GkoBwXzrrOHPTgueKz5LSM9VqrfEb0FDK03JTtFdhg60xzkHRzCpUZXpsb0K4QNjJ8P1GAQtkhYKrn3SAEBB/s1600/BuildR3_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF7pgQnNGUkrSMPQ0F21-5RCQAestj1hEwxJmjyzJEPjFMroXd2QGvTBL1GkoBwXzrrOHPTgueKz5LSM9VqrfEb0FDK03JTtFdhg60xzkHRzCpUZXpsb0K4QNjJ8P1GAQtkhYKrn3SAEBB/s1600/BuildR3_4.png" /></a></span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;">
<br />
<br /> </span><span style="font-family: Verdana, sans-serif;"><span style="color: #444444; font-family: Verdana, sans-serif;">Visit </span><a href="http://www.tribridge.com/"><span style="color: red; font-family: Verdana, sans-serif;">http://www.tribridge.com/</span></a><span style="color: #444444; font-family: Verdana, sans-serif;"> and learn about our Dynamics AX practice, services and focus, as well as our cloud services Concerto. Join our winning club!</span><br /><span style="color: #444444;"></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" height="143" width="400" /></a></div>
<div align="center">
</div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-83785680108554193502014-02-18T15:45:00.000-05:002014-02-18T15:45:15.246-05:00Microsoft Dynamics AX 2012 R3 - New Data Import Export Framewrok Changes<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDeoxXoZaFITy_1j_MczP_H2By98oMFysr2WOX2shiySKotxqzr__JOcud_VUUvKQJ5NeglHLJGplj4Edjb4TOz3rPMUwaKZGylghC1SvGA5OqQHSkQWMzVPcACZDy4AKv74RAFIGGg4e_/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDeoxXoZaFITy_1j_MczP_H2By98oMFysr2WOX2shiySKotxqzr__JOcud_VUUvKQJ5NeglHLJGplj4Edjb4TOz3rPMUwaKZGylghC1SvGA5OqQHSkQWMzVPcACZDy4AKv74RAFIGGg4e_/s1600/TriBridge.png" height="143" width="400" /></span></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Hi There! </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">I hope everybody is doing great! I had the opportunity to attend to the MS AX 2012 R# Tech Conference thanks to </span><a href="http://www.tribridge.com/" target="_blank"><span style="color: red; font-family: Verdana, sans-serif;">TriBridge</span></a><span style="color: #444444; font-family: Verdana, sans-serif;">. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">In this post I would like to discuss the new <span style="color: blue;">Data Import Export Framework</span> or DIXF. As you probably know by now, this new framework is shipped with both CU7 and R3.</span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">So, what can new DIXF do? Well to start, one of the few new key features is that the DIXF runs on top of the <span style="color: blue;">SSIS service interface</span> allowing incremental runs (UPSERT). Of course, it can import/export data, and Microsoft added the capability to <span style="color: blue;">compare and copy data between instances</span> as well. In addition, the new DIXF version ships with the ability to choose different data sources such as text, MS Excel, and XML files. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">Further, the new DIXF can be used to extract data directly from various ODBC*** sources such as SQL, MS Access, and MS Excel. This new additions will help us streamline our data migrations and data transfers much better. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">***For ODBC types we are going to have to provide a connection string in order to simplify the data selection process. The one cool thing I saw was that we can create new rows under Mapping Details to add mandatory fields i.e. ACCOUNTNUM in case a specific legacy system does not include it. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">When this scenario is true, the custom value provided can be automatically filled by a number sequence value (if we want to) by choosing the “AUTO” option in that specific row, which would take a new AccountNum from the numbering sequence system. However, we can also choose to have default values as in older versions. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">In terms of the DIXF entities, the new <span style="color: blue;">DIXF ships with a 150 entities</span> in comparison to the 78 (I think) it came with in earlier versions. These include master data, documents, journals, parameters, party, products, and configuration data. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">Another cool addition is the addition of <span style="color: blue;">folder support</span>. We are going to be able to move stuff around automatically (needs to be pre-defined) to different folders in our domain based on the operations we are executing. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">The following are a few other additions:</span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;"><span style="color: blue;">Parallel Execution</span>: Ability to dissect data in bundles (i.e. 1,000 rows / bundles = 100 rows per task).</span><br />
<span style="color: #444444; font-family: Verdana;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">This is particularly useful when large data loads need to take place. The tool provides the ability to allocate a group of records to tasks. This combination will create a bundle, and each bundle is independent of each other. See the following diagram for a visual representation of it:</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_mJaAko3mXZA8ZBoCjQQjJ-vt9i45Yuno6D2HUYaUYyAzSsqvmP03ds00utVfiUpI31cXJPTUBDYX5Fv5cpQWi0GVnMrjRqAG_5qNUY-UHciYnu9-Zbx12U0a3OPS3hiXBMAhPKSZ728q/s1600/Task+in+parallel+DIXF.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_mJaAko3mXZA8ZBoCjQQjJ-vt9i45Yuno6D2HUYaUYyAzSsqvmP03ds00utVfiUpI31cXJPTUBDYX5Fv5cpQWi0GVnMrjRqAG_5qNUY-UHciYnu9-Zbx12U0a3OPS3hiXBMAhPKSZ728q/s1600/Task+in+parallel+DIXF.png" height="218" width="640" /></span></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<br /><span style="color: #444444; font-family: Verdana, sans-serif;"><span style="color: blue;">Role Base Security</span>: Provides a security framework for the different levels on an organization, this is built on top of the existing security framework (i.e. Production cannot import HR data).</span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;"><span style="color: blue;">Mapper Control</span>: Allows flexible mapping between custom entities and staging objects. In addition, mapping effort is reduced when using AX friendly column names (i.e. ITEMID).</span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;"><span style="color: blue;">Custom Entity Wizard</span>: We can compare data in different companies. This becomes specially interesting and useful to compare parameter data between a gold and test instances for example. When using this tool to import data that contains discrepancies, the system inserts the data into a staging table where it is compared by another process in a specific number of companies and/or instances, and finally it gets updated. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">At this point, a user can use the Comparison form to move records between different instances.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"><br />See the process in the following diagram:</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw5Dyra8hPklOqX2woaAAidzetw3vQFrki4x9Kj2DhTWww200AZRuHjxVqx65F7yQTc3VBBYlmig3bfcjjy3RElSN7cZq-hNfSmrLEWfpOxc_Ra8B4_FNHdSvclabRo1LqBD6ucdU61mG9/s1600/DIXF+comparison.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw5Dyra8hPklOqX2woaAAidzetw3vQFrki4x9Kj2DhTWww200AZRuHjxVqx65F7yQTc3VBBYlmig3bfcjjy3RElSN7cZq-hNfSmrLEWfpOxc_Ra8B4_FNHdSvclabRo1LqBD6ucdU61mG9/s1600/DIXF+comparison.png" height="336" width="400" /></span></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">NOTE: Sometimes the entity Wizard will only create a portion of the requirements and a technical consultant would have to finish the rest. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;"><span style="color: blue;">System Configuration Data</span>: BI-Analysis and Reporting Services, Project Server Integration, EP, Batch Settings, Number Sequences, Email Parameters, AIF, System Service Accounts.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"><strong>DIXF Import Process</strong></span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">The import Process us done by using an abstraction layer that uses SSIS behind the DIXF framework. Within this abstraction layer, we can add possible X++ customizations.</span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">I asked the question on what would be the <span style="color: blue;">recommendation for migrating data from legacy systems</span> – the following is what I could get from their recommendation (I was taking notes).There are two types of data migration architecture that consolidate both importing and cleansing data.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"><br />The <span style="color: blue;">first option</span> is to have a middle tier that can process the data from a legacy system, to an external system and clean it before it goes to Microsoft Dynamics AX. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDMUeCI6OfjhgmSrGT0X2dCwIsQNCb90XQVrAyewGDwGcZjfPBUmA3-ecUC4LSVZwkbTV93-0rkzOL47Zh4Af6l6VgKBp5xJvs3-47Lv-RVXYBQ6-RvC2uOIxAQBuAWzPkZ2tpdUntY_A8/s1600/Option+1+Import.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDMUeCI6OfjhgmSrGT0X2dCwIsQNCb90XQVrAyewGDwGcZjfPBUmA3-ecUC4LSVZwkbTV93-0rkzOL47Zh4Af6l6VgKBp5xJvs3-47Lv-RVXYBQ6-RvC2uOIxAQBuAWzPkZ2tpdUntY_A8/s1600/Option+1+Import.png" /></span></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">The <span style="color: blue;">second option</span> is to do it directly import the data from a legacy system to Microsoft Dynamics AX. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxkugyL3-W1Qk4pQ3RhbanAZv5DHSVnghjJcg9ZraxpREccCUuXV7ooxVlTHoDo9gRjtwIAKh7Lbb7w_65su9L6LhPwxW4ry2WKugLPLx7u4dsBCq9ykXdTIwZEAPEd2zc8Wqx2-NUyuIl/s1600/Option+2+Import.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxkugyL3-W1Qk4pQ3RhbanAZv5DHSVnghjJcg9ZraxpREccCUuXV7ooxVlTHoDo9gRjtwIAKh7Lbb7w_65su9L6LhPwxW4ry2WKugLPLx7u4dsBCq9ykXdTIwZEAPEd2zc8Wqx2-NUyuIl/s1600/Option+2+Import.png" /></span></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">Microsoft recommends to <span style="color: blue;">keep the data cleansing business logic inside of AX</span>. The reason is that Microsoft Dynamics provides a data migration framework that is both extensible and customizable. The framework provides entity classes that can be extended to a process specific needs. In addition to the entity classes, the framework also provides the ability to create custom staging entities for further processing prior to the final push to an entity. This can be depicted in the following picture:</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOIENybb_ahUauT2f_ZjP5HVmgyLjihHI-1AbJlmOBbOG-3VvvvSzSCoO93SIf2XNP57tzzUv7HMPovbM7TNcpKZsz5fov9whzgklbPF3VuSsPW24hFyhnrNFXRhs2kJsdimEpg0m4JqlO/s1600/DIXF+Data+Cleansing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOIENybb_ahUauT2f_ZjP5HVmgyLjihHI-1AbJlmOBbOG-3VvvvSzSCoO93SIf2XNP57tzzUv7HMPovbM7TNcpKZsz5fov9whzgklbPF3VuSsPW24hFyhnrNFXRhs2kJsdimEpg0m4JqlO/s1600/DIXF+Data+Cleansing.png" /></span></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">The DIXF also provides a new error log preview function that allows a user to narrow down an error to the smallest unit possible to understand exactly where the error is occurring. This was not true in older versions of the DIXF. Further, the new DIXF also provides an Execution History function that allows a user to review and validate the staging data before the actual import to an entity. </span><br />
<br /><span style="color: blue; font-family: Verdana, sans-serif;"><strong>DIXF Export Process</strong></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">As mentioned earlier, because the DIXF also uses SSIS to export data from the framework, bulk exports can also be easily accomplished. In addition, as in older versions of DIXF, we can also generate our own source mapping and sample files. However, a cool new addition to the DIXF is that these files now can be of different types such as XLS, XML, Text, Tab delimited, Etc. </span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">This approach sounds good and valid, however, in my mind here could be a double edge sword with the fact that XLS files might open the door for a few data consistency problems as this type of files can contain formulas. I would suggest to always understand your source files, especially our XLS ones. </span><br />
<br /><span style="color: blue; font-family: Verdana, sans-serif;"><strong>DIXF Architecture</strong></span><br />
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">The following is the new DIXF architecture for R3. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH_6KOU2BK2andVCzJeygkYNm5lk8hxuQZqXWYC9i2fo5w5MT_J3Z92H7_1Md8CmzwH9H_8X3_TmovM5oHiSavLgzntRywuF4-IYSTbwyR8GLU1nQzz8OUstcRynLv0bxLXY8Lcs33gCNe/s1600/DIXF+Arch.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH_6KOU2BK2andVCzJeygkYNm5lk8hxuQZqXWYC9i2fo5w5MT_J3Z92H7_1Md8CmzwH9H_8X3_TmovM5oHiSavLgzntRywuF4-IYSTbwyR8GLU1nQzz8OUstcRynLv0bxLXY8Lcs33gCNe/s1600/DIXF+Arch.png" /></span></a></div>
<br /><span style="color: #444444; font-family: Verdana, sans-serif;">Visit </span><a href="http://www.tribridge.com/"><span style="color: red; font-family: Verdana, sans-serif;">http://www.tribridge.com/</span></a><span style="color: #444444; font-family: Verdana, sans-serif;"> and learn about our Dynamics AX practice, services and focus, as well as our cloud services Concerto. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: #444444; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_1ku0ecIQj8wqAydbQ9y9JJECCYQminXD-NEgoyT0q6X-8gDc-ctxWilZgXj3mV3-9ZPeh_kwVd-yT01pNjlpks_A4oX1fIACaW2VEykZNiIbRA7kL8L9nYsyrH_B0roO-IR1dc4YGDCW/s1600/TriBridge.png" height="143" width="400" /></span></a></div>
<div align="center">
<span style="color: #444444; font-family: Verdana, sans-serif;"></span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com2tag:blogger.com,1999:blog-4889748320010274206.post-30890188488688281002014-02-02T13:57:00.004-05:002014-02-02T13:57:59.851-05:00Microsoft Dynamics AX 2012 R3 Tech Conference <div class="separator" style="clear: both; text-align: center;">
<a href="http://www.microsoft.com/dynamics/axtechconference/Default.aspx" target="_blank"><img alt="http://www.microsoft.com/dynamics/axtechconference/Default.aspx" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWSG0841HG3fQ25KjPj_mRuk6fnn5LFmZVvZFJ7EyYMd4WwJdLZWhctOnlUe71hdWp88l7UiFBDN1Yf9IOEPlHexDsErXWWsZpWhZreOKkna6UTnaR9hGIXQlRTC_8ZWy8rqyKKVd1l0IK/s1600/AX+r3+top.png" /></a></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span></div>
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Hi there!</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">I will be attending to the Dynamics AX 2012 R3 tech conference in Seattle with my team members from </span><a href="http://www.tribridge.com/" target="_blank"><span style="color: blue; font-family: Verdana, sans-serif;">TriBridge</span></a><span style="color: #444444; font-family: Verdana, sans-serif;">. In addition, in this post I would like to share the courses I will be taking at the Tech Conference and give my readers a snapshot of what each course is going to cover. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Finally, my goal will be to write a blog entry for each of the courses in depth. So follow my blog for the next couple of weeks as I will be posting very interesting information from these amazing courses. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">In a nutshell, the </span><a href="http://www.microsoft.com/dynamics/axtechconference/Default.aspx"><span style="color: blue; font-family: Verdana, sans-serif;">Microsoft Dynamics AX Technical Conference 2014</span></a><span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"> begins on Monday February 3<span style="font-size: small;"><sup>rd</sup> in Seattle (Bellevue, Washington). As far as I know, this is yet the biggest event for the upcoming Dynamics AX 2012 R3 release, which will introduce many new features in both the technical and functional dimensions of the application.</span></span></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">Below is a list of the courses I will be taking and a brief description of each. I will link each of the titles below to a new blog post in the next few days, so be sure to check this page for updated information (Each title will be in blue when ready to be explored)</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"> </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><strong>Day in the life of a Microsoft Dynamics AX Solution Architect</strong> </span></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">The main focus of this course will be to learn how the roles and responsibilities of a solution architect apply to the different phases of an implementation project. I will be enjoying this course.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><strong>Data import/export framework for Microsoft Dynamics AX 2012 R3</strong> </span></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">The focus of this course is to experience the new entity-based import/export framework, which will help us manage our import/export, integration, configuration, and data migration needs.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<strong><span style="color: #444444; font-family: Verdana, sans-serif;">Automated deployment of AX 2012 R3 in Windows Azure using lifecycle services</span></strong><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">I believe this course is critical to any solution and/or technical architect as well for any developers as it will allow us to learn about the new features that Microsoft has developed for lifecycle services that will automate the deployment of Microsoft Dynamics AX 2012 R3 environments with Windows Azure. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<strong><span style="color: #444444; font-family: Verdana, sans-serif;">Building Microsoft AX services integration with the Microsoft Windows Azure Service Bus</span></strong><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">As the one above, this course will also be critical for architects and developer alike. This course will cover the new Windows Azure Service Bus Adapter for the Application Integration Framework, which will allow us to deploy Microsoft Dynamics AX Services through the Azure Service Bus, making Microsoft Dynamics AX Services accessible from the cloud. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<strong><span style="color: #444444; font-family: Verdana, sans-serif;">Data synchronization to multiple instances of Microsoft Dynamics AX</span></strong><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">This course will help us learn the Data Management (MDM) in Microsoft Dynamics AX 2012 R3, and how it simplifies master data synchronization across multiple Microsoft Dynamics AX instances by utilizing conceptual business entities, metadata, and declarative configuration. </span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<strong><span style="color: #444444; font-family: Verdana, sans-serif;">Optimizing the performance of Microsoft Dynamics AX deployment</span></strong><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">I'm really looking forward to this course as it will cover some techniques that could help us gain higher performance in our Microsoft Dynamics AX deployment. A few key points that will be introduced will be design-patterns, parameter configuration and implementation pit-falls.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<strong><span style="color: #444444; font-family: Verdana, sans-serif;">Create Microsoft Dynamics AX builds using the new X++ server-side parallel compiler</span></strong><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">In this course we are going to go through an overview of the new X++ server side parallel compiler as well as best practices on how to apply the new compiler in creating Microsoft Dynamics AX builds in the context of multiple development environments integrated via TFS version control.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><strong>Technical Deep Dive - warehouse management</strong> </span></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">This is a course that will be critical for me and I'm sure for the majority of Microsoft Dynamics AX professionals out there, as it will dive into the technical challenges for the new warehouse management inventory reservation system. by exploring the new data models as well as the interaction between work and reservations.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><strong>Warehouse and transportation management hands on experience</strong> </span></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">This will be an hands-on experience course to preview the functionality available in Microsoft Dynamics AX 2012 R3 for warehouse management and transportation management.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: #444444;"><strong>Tracking dimension at work! See the new item tracing, batch attributes-based pricing and batch merge within Microsoft Dynamics AX 2012 R3</strong> </span></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">This course will dive in to understanding how the potency of products is taken into account when calculating consumption for batch orders, leveraging potency pricing to improve the sales process and utilize the new batch merge capability to achieve a potency level requirement from a customer during sales.</span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;"></span><br />
<span style="color: #444444; font-family: Verdana, sans-serif;">This is all for now. Follow me on this adventure in both my blog and twitter. </span><br />
<span style="color: #444444; font-family: Verdana;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.microsoft.com/dynamics/axtechconference/Default.aspx" target="_blank"><img alt="http://www.microsoft.com/dynamics/axtechconference/Default.aspx" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYAdk3YHYC06YziHIojLMTariMe9coMfxU9dy4VGlmIryahA6OJ7OqJjdbz3wYw_fAQLSoRTIJg6vAaB3kCL-mWr8nNQ23_L1Cztg-QDnNRgPVn5TDimz2j10_pHCH1JCbXXXA3PtPJ3-A/s1600/AX+r3+botton.png" /></a></div>
<div align="center">
</div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-66114378911620960482013-08-27T10:07:00.005-04:002013-08-27T10:07:27.976-04:00Create, Deploy, Troubleshoot and Consume external services in AX 2012 R2<span style="font-family: Verdana, sans-serif;"> </span><div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s400/PowerfulSimply3.jpg" width="400" /></a></span></div>
<br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Hi There!</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">I hope everyone is having a great week so far. Summer is almost over here in the US, and I feel like I haven't taken much advantage of it this year. The good thing, however, is that I have been able to really focus on service development lately, and a ton of other cool AX stuff.</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">On this post I would like to share with you how to <span style="color: blue;">Create, Deploy, Troubleshoot and consume an external service in AX 2012 R2</span>. As we all know, this has changed dramatically from AX 2009 services. It used to be very easy to consume services in AX 2009 (you can see an example in my post </span><a href="http://axwonders.blogspot.com/2011/04/consume-currency-exchange-rates-web.html" target="_blank"><span style="font-family: Verdana, sans-serif;">Consume a Currency Exchange Rates Web Service from AX 2009 - WFC )</span></a><span style="font-family: Verdana, sans-serif;">.</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">In AX 2012 R2, however, this has become somewhat more involved. They are not necessarily harder to create and consume, but they require a few more steps to be setup. Now, the great advantage is that you can resolve the business logic either in the client itself (C# project) or in AX 2012 R2 (Server deployment). This comes handy for business that don't necessarily want to have an AX developer in house and/or large scale integration projects, among other reasons. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Let's get to it!</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Open visual studio and create a new <span style="color: blue;">Class Library Project</span>. Give it a name and click OK. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlTOnzH7h6q0Y7n7ahdD1TBdukyQ980butwQmQkhElx4IMjiYnVcwoZ_TX8i2VrFEHo2_kN5_ms88vZBRLx0BFLC2DGQSeyLZihDCdZmKHDaF7qfJKC_t74PFM532hPQnnoWmZWp48ZBr-/s1600/Serv1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlTOnzH7h6q0Y7n7ahdD1TBdukyQ980butwQmQkhElx4IMjiYnVcwoZ_TX8i2VrFEHo2_kN5_ms88vZBRLx0BFLC2DGQSeyLZihDCdZmKHDaF7qfJKC_t74PFM532hPQnnoWmZWp48ZBr-/s1600/Serv1.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Right click the <span style="color: blue;">Project Name references</span> folder and click the <span style="color: blue;">Add Service Reference</span> button. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZovSOu5Evu4N9Vz5J2oOdKmV0TxLN6JSFIP5epd2fVMKsxSOsEFez8wpOT755ZfxE7tWji0C3CSbqTYjbkc0SRUrIudBktDoA0esAKvUN5xTZ18HEpge5O7bXOJeOSIWgLkyY-ex82qTU/s1600/Serv2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZovSOu5Evu4N9Vz5J2oOdKmV0TxLN6JSFIP5epd2fVMKsxSOsEFez8wpOT755ZfxE7tWji0C3CSbqTYjbkc0SRUrIudBktDoA0esAKvUN5xTZ18HEpge5O7bXOJeOSIWgLkyY-ex82qTU/s1600/Serv2.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Paste the </span><a href="http://www.webservicex.net/genericbarcode.asmx?WSDL"><span style="font-family: Verdana, sans-serif;">http://www.webservicex.net/genericbarcode.asmx?WSDL</span></a><span style="font-family: Verdana, sans-serif;"> URL into the <span style="color: blue;">Address</span> bar. This is a Barcode Generator service. Give it a name and click OK. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis1hiWcGw2TIxpeZ7govYplUc9WxFOeo9LQF6161XJGs0k1zulIV9S75SsqOtD7gC7wh-xnXkeolVhr2Tg9x8Qsgo_ggq0UJqdfcheHYsJSZeGstarL__3WkXaNoY9C4uGi8tSkkAK6TMB/s1600/Serv3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis1hiWcGw2TIxpeZ7govYplUc9WxFOeo9LQF6161XJGs0k1zulIV9S75SsqOtD7gC7wh-xnXkeolVhr2Tg9x8Qsgo_ggq0UJqdfcheHYsJSZeGstarL__3WkXaNoY9C4uGi8tSkkAK6TMB/s1600/Serv3.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">This will create a new <span style="color: blue;">Service Reference</span> and a new <span style="color: blue;">AppConfig</span> file where both the basic and custom bindings are <span style="color: blue;">automatically</span> generated for you. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM88bjpFRs7TaV8MMwchvWhKs0DXQGTMxrlSdYZY_PBIZzqHoZlV7O-6xxukdfejprXhXv4oLSyKb8EZTAFsyv-Y_CBW50IrrrsG5TUXSo5FWsTsrU9g9zDjRh9rCt65S4MLZ91mTD3uVS/s1600/Serv4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM88bjpFRs7TaV8MMwchvWhKs0DXQGTMxrlSdYZY_PBIZzqHoZlV7O-6xxukdfejprXhXv4oLSyKb8EZTAFsyv-Y_CBW50IrrrsG5TUXSo5FWsTsrU9g9zDjRh9rCt65S4MLZ91mTD3uVS/s1600/Serv4.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Right click the <span style="color: blue;">Project Name</span> and choose <span style="color: blue;">Add "Service Name" to AOT.</span> This will add the <span style="color: blue;">Csharp</span> Project to the AOT under <span style="color: blue;">Visual Studio Projects/Csharp Projects.</span> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD4SyOOGFZPIpna7OnJALkSdjuS2NNJ0tjqlS1yF7d4sUbGyOI4aygBsaGfGRGBThX25Bixi7_Cb7lj0HOUBuv8B1eaeb__Pk8WkoNBItYEAyxGsqkttMdaY9MMb1RFdnJf6ikU-yZaXOe/s1600/Serv6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD4SyOOGFZPIpna7OnJALkSdjuS2NNJ0tjqlS1yF7d4sUbGyOI4aygBsaGfGRGBThX25Bixi7_Cb7lj0HOUBuv8B1eaeb__Pk8WkoNBItYEAyxGsqkttMdaY9MMb1RFdnJf6ikU-yZaXOe/s1600/Serv6.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Once the project has been <span style="color: blue;">added</span> to the <span style="color: blue;">AOT</span>, you can choose the following properties and deploy the service. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjouHOz58d8GSaQxkgMDdJ1ciPl16hGHSi2DAXYzJfIyl5l6UO1ykQoY16OtnO9p5Qr1NCDDDDpihiBs7lXWU0mO1zMd0HzXQbjuHijurakgscx-4Ej60vlGg59dfQgqGIPM71T_fNmyoMq/s1600/Serv7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjouHOz58d8GSaQxkgMDdJ1ciPl16hGHSi2DAXYzJfIyl5l6UO1ykQoY16OtnO9p5Qr1NCDDDDpihiBs7lXWU0mO1zMd0HzXQbjuHijurakgscx-4Ej60vlGg59dfQgqGIPM71T_fNmyoMq/s1600/Serv7.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">NOTE: If you choose to deploy to the server, you will need to enable <span style="color: blue;">Hot Swapping Assemblies</span> on the <span style="color: blue;">server configuration file</span>. See the following for more info (</span><a href="http://msdn.microsoft.com/en-us/library/gg889279.aspx"><span style="font-family: Verdana, sans-serif;">http://msdn.microsoft.com/en-us/library/gg889279.aspx</span></a><span style="font-family: Verdana, sans-serif;">). If you choose to do this, you will have to restart the <span style="color: blue;">AOS</span>. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS-zouz6DTjy4tmhx_tqqILaG6lj1z9lg-FocI_DE3P94gCgvn1JAbmjV3CHyDrNCnG162XB664f9OYvkn_R1StnRu1376LM6iz6bLKJcmPBispjZpPHpbK6lUtrtRKZKhEmxg_AyGMFVY/s1600/Error_WhenDeployingWithServer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS-zouz6DTjy4tmhx_tqqILaG6lj1z9lg-FocI_DE3P94gCgvn1JAbmjV3CHyDrNCnG162XB664f9OYvkn_R1StnRu1376LM6iz6bLKJcmPBispjZpPHpbK6lUtrtRKZKhEmxg_AyGMFVY/s640/Error_WhenDeployingWithServer.jpg" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6dWiq3vVBG4lYMB5hbzVfuJW4I3OMiKM9NoMtBn3MWblbpx8iS-8MYZS8X2gdIRlj2kGwL4TneoBcNoN0eZkomMoIdviV3oFJwnEDiZGDa1iTA6TSCO0fcKzEs17pfRXzB4rcev0w0v9m/s1600/ServerConfig_ShownMod.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6dWiq3vVBG4lYMB5hbzVfuJW4I3OMiKM9NoMtBn3MWblbpx8iS-8MYZS8X2gdIRlj2kGwL4TneoBcNoN0eZkomMoIdviV3oFJwnEDiZGDa1iTA6TSCO0fcKzEs17pfRXzB4rcev0w0v9m/s1600/ServerConfig_ShownMod.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">After it is deployed, you would add a code similar to the one below. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> static void <span style="color: blue;">TestBarcodeGenService</span>(Args _args)<br />{<br /> <span style="color: blue;">Ed_SampleBarcodeGenerator</span>.EdGenBarcode.BarCodeSoapClient service;<br /> <span style="color: blue;">Ed_SampleBarcodeGenerator</span>.EdGenBarcode.BarCodeData barCodeData;<br /> System.Exception ex;<br /> System.Type type;<br /> ;</span><br />
<span style="font-family: Verdana, sans-serif;"> try<br /> {<br /> service = new <span style="color: blue;">Ed_SampleBarcodeGenerator</span>.EdGenBarcode.BarCodeSoapClient();<br /> service.GenerateBarCode(barCodeData, "0000992882");<br /> }<br /> catch(Exception::CLRError)<br /> {<br /> ex = CLRInterop::getLastException();<br /> info(CLRInterop::getAnyTypeForObject(ex.ToString()));<br /> }</span><br />
<span style="font-family: Verdana, sans-serif;">}</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> Well ... that's all for now folks. Stay tuned, there is going to be a huge load of useful information in the next few weeks. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBwcbDQ3QSl8l9fYcXqcbh6HqHNeRXxhGsXcB1dcR-E6qsp6eTCNVbSfv8V9ZovlVV8kLL_Dcov0MLUoM-VroOsyh-CADZSZb0tzkr0OzCYAcUpRxpBQurN0a8y7k6T88g-CgdI5F61VlN/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBwcbDQ3QSl8l9fYcXqcbh6HqHNeRXxhGsXcB1dcR-E6qsp6eTCNVbSfv8V9ZovlVV8kLL_Dcov0MLUoM-VroOsyh-CADZSZb0tzkr0OzCYAcUpRxpBQurN0a8y7k6T88g-CgdI5F61VlN/s400/PowerfulSimply2.jpg" width="400" /></a></span></div>
<br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com2tag:blogger.com,1999:blog-4889748320010274206.post-21614642199312024892013-08-23T09:54:00.002-04:002013-08-23T09:54:53.596-04:00Create a Transfer Journal using AX 2012 R2 Document Services and C#<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8iiLD6csSTo81FxoaVElCCWHF7FhEQ-xsISMWM8dB7ujrM_2Y5YiAZWLQz-iZYQM0CgkE6koczHk4t8Hys_84RYcVc7FFodadczGsDAfbqoRDEZxi7KPPolkXff5dYH8T2ZKJzanr5hP-/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8iiLD6csSTo81FxoaVElCCWHF7FhEQ-xsISMWM8dB7ujrM_2Y5YiAZWLQz-iZYQM0CgkE6koczHk4t8Hys_84RYcVc7FFodadczGsDAfbqoRDEZxi7KPPolkXff5dYH8T2ZKJzanr5hP-/s400/PowerfulSimply3.jpg" width="400" /></a></span></div>
<br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Hi there,</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">On this post I would like to share some C# code to create a <span style="color: blue;">Transfer Journal</span> using C#. I have written a few post in the past about services and they will help you understand how to create a service, service groups, deployment, etc. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<a href="http://axwonders.blogspot.com/2013/08/create-counting-journal-in-ax-2012-r2.html" target="_blank"><span style="font-family: Verdana, sans-serif;">Create Counting Journals</span></a><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<a href="http://axwonders.blogspot.com/2013/04/how-to-choose-right-service-in-ax-2012.html" target="_blank"><span style="font-family: Verdana, sans-serif;">How to choose the right service</span></a><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<a href="http://axwonders.blogspot.com/2012/01/microsoft-dynamics-ax-2012-services-and.html" target="_blank"><span style="font-family: Verdana, sans-serif;">AX 2012 Services and AIF</span></a><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<a href="http://axwonders.blogspot.com/2012/04/ax-2012-services-document-types.html" target="_blank"><span style="font-family: Verdana, sans-serif;">Services Types</span></a><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<a href="http://axwonders.blogspot.com/2012/04/creating-service-in-ax-2012-consuming.html" target="_blank"><span style="font-family: Verdana, sans-serif;">Creating a service in AX 2012</span></a><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">Back to the creation of a Transfer Journal with C#, this is an interesting code as we need to instantiate two different instances of the <span style="color: blue;">InventDim</span> Table; <span style="color: blue;">InventDimIssue</span> and <span style="color: blue;">InventDimReceipt</span>. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;">InventDimIssue</span> can be thought as the <strong><u>From</u></strong> values and <span style="color: blue;">InventDimReceipt</span> can be thought as the <strong><u>To</u></strong> values (i.e. <em>From Warehouse</em> ==> <em>To Warehouse</em>). </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">In addition, another interesting point is that AX uses the <em>InventJournalTable</em> and <em>InventJournalTrans</em> for all the inventory journal entries, and we specified, in C#, which entity (<span style="color: blue;">AXD</span>) will be using. </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">The following is the code:</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">private void InventTransferJourTest()<br />{<br /> InventTransferJournal.CallContext callContext = new InventTransferJournal.CallContext();</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> InventTransferJournal.<strong><span style="color: blue;">TransferJournalServiceClient</span></strong> servClient = new InventTransferJournal.TransferJournalServiceClient();</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> InventTransferJournal.<strong><span style="color: blue;">AxdTransferJournal</span></strong> transjournal = new InventTransferJournal.AxdTransferJournal();</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> InventTransferJournal.AxdEntity_InventJournalTable journalheader = new InventTransferJournal.AxdEntity_InventJournalTable();</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> //Header<br /> callContext.Company = "CEU";<br /> journalheader.JournalNameId = "TransferJourId";<br /> journalheader.Description = "Transfer Journal";<br /> //End header</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> //Lines<br /> InventTransferJournal.AxdEntity_InventJournalTrans journalLines = new InventTransferJournal.AxdEntity_InventJournalTrans();</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> journalLines.ItemId = "123456";<br /> journalLines.Qty = 45;<br /> journalLines.TransDate = DateTime.Now;</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> InventTransferJournal.AxdEntity_InventDimIssue inventDimIssue = new InventTransferJournal.AxdEntity_InventDimIssue();</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> inventDimIssue.InventBatchId = "RUT";<br /> inventDimIssue.InventLocationId = "21";<br /> inventDimIssue.InventSiteId = "1";</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> journalLines.<strong><span style="color: blue;">InventDimIssue</span></strong> = new InventTransferJournal.AxdEntity_<strong><span style="color: blue;">InventDimIssue</span></strong>[1] { inventDimIssue };</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> InventTransferJournal.AxdEntity_<strong><span style="color: blue;">InventDimReceipt</span></strong> inventDimReceipt = new InventTransferJournal.AxdEntity_<strong><span style="color: blue;">InventDimReceipt</span></strong>();</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> inventDimReceipt.InventSiteId = "2";<br /> inventDimReceipt.InventLocationId = "11";<br /> inventDimReceipt.InventBatchId = "RSR";</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> journalLines.InventDimReceipt = new InventTransferJournal.AxdEntity_InventDimReceipt[1] { inventDimReceipt };<br /> //End Lines</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> journalheader.InventJournalTrans = new InventTransferJournal.AxdEntity_InventJournalTrans[1] { journalLines };</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"> transjournal.InventJournalTable = new InventTransferJournal.AxdEntity_InventJournalTable[1] {journalheader};</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> try<br /> {<br /> servClient.create(callContext, transjournal);<br /> }<br /> catch (Exception e)<br /> {<br /> MessageBox.Show(e.InnerException.ToString());<br /> }<br />}<br /> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> That's all for today and stay tuned as in the next few weeks I will be talking about TFS and how to work with AX 2012 in a way that we utilize the TFS server to its max capacity. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Have a great weekend!</span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKU3vd4zylvEnXBq1pUqK2Bt8p9vHj5bSz81vOQH6DXyjGRVtQW_ccUiBeGCUexAshNIsP3LxBa9sorDP672M3jmyDYSsrSyRatUwkA6LHx8QrlyjzLzbJwAWwSIxCyqlgTj7lJPw-MrA_/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKU3vd4zylvEnXBq1pUqK2Bt8p9vHj5bSz81vOQH6DXyjGRVtQW_ccUiBeGCUexAshNIsP3LxBa9sorDP672M3jmyDYSsrSyRatUwkA6LHx8QrlyjzLzbJwAWwSIxCyqlgTj7lJPw-MrA_/s400/PowerfulSimply2.jpg" width="400" /></a></span></div>
<br />AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com2tag:blogger.com,1999:blog-4889748320010274206.post-29126148861394212652013-08-22T10:01:00.004-04:002013-08-22T10:02:35.365-04:00Create Counting Journal in AX 2012 R2 using Document Services<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s400/PowerfulSimply3.jpg" width="400" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Hi There,</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">It has been a long time since I created my last post. I have been very busy learning new things about AX 2012 R2 and other related technologies such as the Data Import/Export framework, TFS and AX 2012, SharePoint Development for the Enterprise Portal, among other. Everything will come in its own time and I'm planning in sharing a lot in the weeks to come, so stay tuned!</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">On this post I would like to share some C# code to create a Counting Journal in AX 2012 R2 using the <span style="color: blue;">InventCountingJournalService</span> that ships with AX. Let's keep in mind that the AX 2012 R2 document services are a extremely low cost option of providing this features to an external client with no AX development whatsoever. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">So, I would like to start from the beginning:</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">1- Create a <strong>Service Group</strong></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi10CZZITiNyqahyb6IZBBR8X9X0z-75Yqiu1UVBgMUG5TimiEQq5lL_7GnQ4TqTnusAnwzPza9dykh5yKNOwpJmoZfnQOl5AlHgW5iNkLs6q8BREyYz392NrE_000-SWzYfSaw5Ls57xCp/s1600/Counting1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi10CZZITiNyqahyb6IZBBR8X9X0z-75Yqiu1UVBgMUG5TimiEQq5lL_7GnQ4TqTnusAnwzPza9dykh5yKNOwpJmoZfnQOl5AlHgW5iNkLs6q8BREyYz392NrE_000-SWzYfSaw5Ls57xCp/s1600/Counting1.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"></span><br /></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">2- Add the <span style="color: blue;">InventCountingJournalService</span> to the Service Group</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">3- <strong>Deploy</strong> the Service Group. This will output the following.</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCsWFcfXJ55Gp6v82pZ2GEXjsSBZqTyfvp7eFHvtH9QZhAxPARS_gV3FFKejO9vLR44GEoTZhcd96TueJ9W-Ykx0uiMjrSnEPgyh1BDGAXxMto52YEC0j4zZLDVL_A2lIIfojxGLinfEcc/s1600/Counting2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCsWFcfXJ55Gp6v82pZ2GEXjsSBZqTyfvp7eFHvtH9QZhAxPARS_gV3FFKejO9vLR44GEoTZhcd96TueJ9W-Ykx0uiMjrSnEPgyh1BDGAXxMto52YEC0j4zZLDVL_A2lIIfojxGLinfEcc/s1600/Counting2.jpg" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqNAUqh5VAjhPg0UqeEQlroTVS_lJQY9NV_6EOEZQV0fh4ty3TICYXUWUxj_tlX7ID2J7OUyoolWoTwJneC28DlVr9lDqwjLLHKRMfghQxppDyR_4hYiikd1NlFK0SOVKkbSDVafM6jsRs/s1600/Counting3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqNAUqh5VAjhPg0UqeEQlroTVS_lJQY9NV_6EOEZQV0fh4ty3TICYXUWUxj_tlX7ID2J7OUyoolWoTwJneC28DlVr9lDqwjLLHKRMfghQxppDyR_4hYiikd1NlFK0SOVKkbSDVafM6jsRs/s1600/Counting3.jpg" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"> </span></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">4- Get the <strong>WSDL URI</strong> from the inbound ports form.</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLqwvjc2yo9gkyE1mUTuCph_Sie8cvU2kMlXBjsVdDq0zQPZqJ6paTzzZrozAthO9nkMpA4kRtmn7V1hcG3CQBmGKgiXjAUBwZFnEg73Gc9y2tCpz8vWPa2Z-Ec_xgJ5rrkqRHkTqMriDn/s1600/Counting4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLqwvjc2yo9gkyE1mUTuCph_Sie8cvU2kMlXBjsVdDq0zQPZqJ6paTzzZrozAthO9nkMpA4kRtmn7V1hcG3CQBmGKgiXjAUBwZFnEg73Gc9y2tCpz8vWPa2Z-Ec_xgJ5rrkqRHkTqMriDn/s640/Counting4.jpg" width="640" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">5- Go to Visual Studio, create a new windows form project, add a button and double click the button to create a button event. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">6- Right - Click the Service References and choose <strong>Add Service Reference</strong>.</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFi3YBYApj7CukEJgmCr3ZPgxNC1rspSn_qDfnGfJOQwMP2juHN772PXPhzRXnAb0qavZfOafx9UHM2v2EBnbdq9pl237J6ueLYYWNmV2MqITM_rUfJXK1zpwxrxIlKei35ZdMVgl_buyQ/s1600/Counting5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFi3YBYApj7CukEJgmCr3ZPgxNC1rspSn_qDfnGfJOQwMP2juHN772PXPhzRXnAb0qavZfOafx9UHM2v2EBnbdq9pl237J6ueLYYWNmV2MqITM_rUfJXK1zpwxrxIlKei35ZdMVgl_buyQ/s320/Counting5.jpg" width="320" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">7 - Past the <strong>WSDL URI</strong> and click GO</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIxqksSDWFSQeeo8lkJlvOSVxSC1WhTsHDK5MNj-bVKGZ5ew-T6F5Ss7dWyKfO07Z4ak3qiaNtDx8MV8C5KNTEca8TS8NgXZ1tmDUzgOkllPc7hmVdM1SkLcT1nggNx4D8rpIErDqmVtdQ/s1600/Counting6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIxqksSDWFSQeeo8lkJlvOSVxSC1WhTsHDK5MNj-bVKGZ5ew-T6F5Ss7dWyKfO07Z4ak3qiaNtDx8MV8C5KNTEca8TS8NgXZ1tmDUzgOkllPc7hmVdM1SkLcT1nggNx4D8rpIErDqmVtdQ/s1600/Counting6.jpg" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">8- Give your service a name i.e. <strong>InventCountingJournnal</strong> </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">9 - Write the following code and test. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> private void InventCountingJournal()</span><br />
<span style="font-family: Verdana, sans-serif;"> {</span><br />
<span style="font-family: Verdana, sans-serif;"> InventCountingJournal.CallContext <strong>callContext</strong> = new InventCountingJournal.CallContext();</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> InventCountingJournal.CountingJournalServiceClient <strong>servClient</strong> = new InventCountingJournal.CountingJournalServiceClient();</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> InventCountingJournal.AxdCountingJournal <strong>countJournal</strong> = new InventCountingJournal.AxdCountingJournal();</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> InventCountingJournal.AxdEntity_InventJournalTable <strong>journalHeader</strong> = new InventCountingJournal.AxdEntity_InventJournalTable();</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> //Header</span><br />
<span style="font-family: Verdana, sans-serif;"> <strong>callContext</strong>.Company = "CEU";</span><br />
<span style="font-family: Verdana, sans-serif;"> journalHeader.JournalNameId = "CountJour";</span><br />
<span style="font-family: Verdana, sans-serif;"> journalHeader.Description = "Counting Journal";</span><br />
<span style="font-family: Verdana, sans-serif;"> //Header</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> //lines</span><br />
<span style="font-family: Verdana, sans-serif;"> InventCountingJournal.AxdEntity_InventJournalTrans <strong>journalLines</strong> = new InventCountingJournal.AxdEntity_InventJournalTrans();</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> journalLines.ItemId = "12345";</span><br />
<span style="font-family: Verdana, sans-serif;"> journalLines.Qty = 50;</span><br />
<span style="font-family: Verdana, sans-serif;"> journalLines.TransDate = DateTime.Now;</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> InventCountingJournal.AxdEntity_InventDim <strong>inventDim</strong> = new InventCountingJournal.AxdEntity_InventDim();</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> inventDim.InventBatchId = "3";</span><br />
<span style="font-family: Verdana, sans-serif;"> inventDim.InventLocationId = "1";</span><br />
<span style="font-family: Verdana, sans-serif;"> inventDim.InventSiteId = "3";</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> journalLines.InventDim = new InventCountingJournal.AxdEntity_InventDim[1] { inventDim };</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> //Lines</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> journalHeader.InventJournalTrans = new InventCountingJournal.AxdEntity_InventJournalTrans[1] { <strong>journalLines</strong> };</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> countJournal.InventJournalTable = new InventCountingJournal.AxdEntity_InventJournalTable[1] { <strong>journalHeader</strong> };</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"> servClient.create(<strong>callContext</strong>, <strong>countJournal</strong>);</span><br />
<span style="font-family: Verdana, sans-serif;"> }</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">You can test this by clicking the button, and calling this method. A new counting journal would be created in AX. Then, you can either have a batch posting all the journals or simply have a user doing it manually. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">That's all for now!</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEqwjYLs4iqGVNKfjlwmxEDaOhsckPQWsFBYAvwo1dhEaGZK5iCbH0fi0W8KeeIcppfIuR_0Ym6Fi6ZZmsbYjYFCgx8Rc2DHQ5iq6iIpIN6XTHn1_YAKWktQOHvlAfzYbFev9qTBxeLXTq/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEqwjYLs4iqGVNKfjlwmxEDaOhsckPQWsFBYAvwo1dhEaGZK5iCbH0fi0W8KeeIcppfIuR_0Ym6Fi6ZZmsbYjYFCgx8Rc2DHQ5iq6iIpIN6XTHn1_YAKWktQOHvlAfzYbFev9qTBxeLXTq/s400/PowerfulSimply2.jpg" width="400" /></span></a></div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com1tag:blogger.com,1999:blog-4889748320010274206.post-87884068771206468752013-04-12T11:42:00.003-04:002013-04-12T11:42:44.681-04:00SpotLight - From Power View to Cube <div align="center">
<span style="font-family: Verdana, sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s400/PowerfulSimply3.jpg" width="400" /></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Hi there!</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Today I would like to share a very interesting post written by Brandon George about the <span style="color: blue;">BI Semantic Model</span> and its relationship to Microsoft Dynamics AX R2. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh97-X6FMHM_ikBs6SLTz0MywUh7hJg0QiBI3ahrroKisGg4xrxl0q2au-CvZ0_cW1Vg834HffdHev_2ccPg1X0JAzOgouvSXqr8BSyY0nLPIWBlJYrlbiiHYinCFu33fZbNNtmeOr7EdoC/s1600/Brandon_BiSemantic.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh97-X6FMHM_ikBs6SLTz0MywUh7hJg0QiBI3ahrroKisGg4xrxl0q2au-CvZ0_cW1Vg834HffdHev_2ccPg1X0JAzOgouvSXqr8BSyY0nLPIWBlJYrlbiiHYinCFu33fZbNNtmeOr7EdoC/s1600/Brandon_BiSemantic.bmp" /></span></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">On his post, he presents a broad overview of the BI Semantic Model and give us a full review of it by providing a set of posts to further our knowledge around extending, creating and deploying the solutions. It is just amazing to see how far Brandon has taken the BI Semantic Model, and I really thank him for sharing it with us. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">From the post:</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">"<em><span style="color: blue;">you should see how simple it really is to empower yourself and your company or clients to truly start embracing the full <b>BI Semantic Model.</b> When <b>Microsoft Dynamics AX</b> is your system of record, and acting as your main data mart, then you have a great <b>BI</b> offering built right into the product.</span></em>"</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><a href="http://dynamics-ax.blogspot.com/2013/04/from-power-view-to-cube-and-back-again.html" target="_blank">You can access his post from here.</a></span><br />
<span style="font-family: Verdana;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaoyDlFa-N7R1wpVkLs0jL1L2qDRzpp97GFNxcqhqBuXXrSZISZQ0PAbvs3iBCszt9_SnDPPeh6y5adEfs4NxR55cmqM4hozhMonwmQ9hebVhJg8AAnv71qs-mdA-kNuORVKp_P60njmBv/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaoyDlFa-N7R1wpVkLs0jL1L2qDRzpp97GFNxcqhqBuXXrSZISZQ0PAbvs3iBCszt9_SnDPPeh6y5adEfs4NxR55cmqM4hozhMonwmQ9hebVhJg8AAnv71qs-mdA-kNuORVKp_P60njmBv/s400/PowerfulSimply2.jpg" width="400" /></a></div>
<div align="center">
</div>
<span style="font-family: Verdana, sans-serif;"></span>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-4172858885601002292013-04-11T17:11:00.000-04:002013-04-11T17:11:16.997-04:00AX 2012 CIL - How does it work?<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Hi There,</span><br />
<br /><span style="font-family: Verdana, sans-serif;">On this post I would like to talk about a bit more about the <span style="color: blue;">CIL</span> and what happens in the background. Recently I had to go through a process to find a CIL error I got after deploying a service. You can read my post <a href="http://axwonders.blogspot.com/2013/04/solving-error-cil-generator-found.html" target="_blank">solving the error "The CIL generator found errors and could not save the new assembly"</a> for more information on this.</span><br />
<br /><span style="font-family: Verdana, sans-serif;">After digging a bit more on the CIL errors, I started researching on how exactly the NetModule files are generated under the XppIL folder and why. In addition, I also was intrigued by the source files and their relationship to debugging services and or batch jobs in Visual Studio. </span><br />
<span style="font-family: Verdana, sans-serif;"><br />Just for the record, I’m not an expert on this, and the following information has been taken from different sources and from my own experience in the past few hours being “exposed” to the services virus (it is kind of addictive).</span><br />
<br /><span style="font-family: Verdana, sans-serif;">So, what is CIL? CIL stands for <span style="color: blue;">Common Intermediate Language</span> and it works together with the CLI or <span style="color: blue;">Common Language Infrastructure</span>, which is basically a set of rules on programming languages that will compile with the CIL. I created a diagram to help me understand this concept on a visual way. </span><br />
<span style="font-family: Verdana;"></span><br />
<span style="font-family: Verdana, sans-serif;">Please note that I took the diagram from a book, but I modified it to my own needs.</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY8HfWWknb6CnYu9bEWDNdEx0vC3G83ppw9Nt4i7DgyJF9NXEaFda5DB_GKfVjnwM9supzlE9allqWdnttqSEwLc9JJRRWNlJOVI2Ep8B_nUCP5oqfLPR2lM0_fAs-M1R5TuUSPby-kpXn/s1600/Vizio.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY8HfWWknb6CnYu9bEWDNdEx0vC3G83ppw9Nt4i7DgyJF9NXEaFda5DB_GKfVjnwM9supzlE9allqWdnttqSEwLc9JJRRWNlJOVI2Ep8B_nUCP5oqfLPR2lM0_fAs-M1R5TuUSPby-kpXn/s1600/Vizio.jpg" /></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">As you can see, now we have the ability to compile P-Code to CIL, and therefore AX 20212 is able to run X++ code directly into the CIL, which is much faster the P-Code compiler we had before. </span><br />
<br /><span style="font-family: Verdana, sans-serif;">As you probably know, we have two types of CIL compilations, the <span style="color: blue;">incremental CIL</span> and the <span style="color: blue;">full CIL compilation</span>. The major difference between the two of them is that the <span style="color: blue;">incremental CIL would compile only the objects that were modified since the last incremental compilation</span>. For what I have learned, the full CIL generation is mandatory when we do modify anything on the XppIL folder.</span><br />
<br /><span style="font-family: Verdana, sans-serif;">On the XppIL folder, I noticed that we have a bunch of files there. These files are NetModule type files and they only contain type metadata and compiled code. It is important not to confuse a NetModule type file with .NET assemblies, as these contain and assembly manifest and managed code. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA-pZVq35nMiV2FjVtnLPT4PSuh26gKImAA4ELHeBFv5hPcMquArwE0DtoNnpf-884V2Dw3EgtslMZZ451BdM8X1Za5_KWrNYUBskhAePCSrSpDcP9rQujBiDjcH5nzJIrv-doipT0esJM/s1600/XppILFolder.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA-pZVq35nMiV2FjVtnLPT4PSuh26gKImAA4ELHeBFv5hPcMquArwE0DtoNnpf-884V2Dw3EgtslMZZ451BdM8X1Za5_KWrNYUBskhAePCSrSpDcP9rQujBiDjcH5nzJIrv-doipT0esJM/s1600/XppILFolder.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<br /><span style="font-family: Verdana, sans-serif;">Now the really interesting portion of this is that within the XppIL folder there is a folder named “source”, and within this folder we find a bunch of files with the .xpp extension, which have x++ source code and are used to debug CIL code in Visual Studio when working with services and batches. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigHlorQmEfYWzPKfENnPCVC4OTlknwIReb_e_UErXg-jDWmSVjqm2_jJlcWFI8mSTwLl1-n7zpHl1qPb2h9U20kkuQb-ef1FEdogaFakh1-n8l2L3yu7IeCKBwWVu8XccF3QRUyXTKNNGZ/s1600/Source+FOlder.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigHlorQmEfYWzPKfENnPCVC4OTlknwIReb_e_UErXg-jDWmSVjqm2_jJlcWFI8mSTwLl1-n7zpHl1qPb2h9U20kkuQb-ef1FEdogaFakh1-n8l2L3yu7IeCKBwWVu8XccF3QRUyXTKNNGZ/s1600/Source+FOlder.jpg" /></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Further, another interesting point to this is that the “existence” of the source folder is directly related to our server configuration when choosing to enable debugging on the server. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_CePJ4IL2Rrb7jV3bcRiGQtp8w0NvOuI8nWJ8afwVJhBZ7_o5YgXqKax3BjH5puDcL_yuH-MfaWaUXvM4ywGDxN5UpKjRSG4MxQd4yIUdanynESLgZocwmnTxpe3DkQ8g9bF0zQapLfir/s1600/ServerCOnfig.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_CePJ4IL2Rrb7jV3bcRiGQtp8w0NvOuI8nWJ8afwVJhBZ7_o5YgXqKax3BjH5puDcL_yuH-MfaWaUXvM4ywGDxN5UpKjRSG4MxQd4yIUdanynESLgZocwmnTxpe3DkQ8g9bF0zQapLfir/s640/ServerCOnfig.jpg" width="640" /></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<br /><span style="font-family: Verdana, sans-serif;">Until the next post!</span>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com6tag:blogger.com,1999:blog-4889748320010274206.post-49158599147627665532013-04-11T13:42:00.000-04:002013-04-11T15:52:01.335-04:00Solving the error " The CIL generator found errors and could not save the new assembly"<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8iiLD6csSTo81FxoaVElCCWHF7FhEQ-xsISMWM8dB7ujrM_2Y5YiAZWLQz-iZYQM0CgkE6koczHk4t8Hys_84RYcVc7FFodadczGsDAfbqoRDEZxi7KPPolkXff5dYH8T2ZKJzanr5hP-/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8iiLD6csSTo81FxoaVElCCWHF7FhEQ-xsISMWM8dB7ujrM_2Y5YiAZWLQz-iZYQM0CgkE6koczHk4t8Hys_84RYcVc7FFodadczGsDAfbqoRDEZxi7KPPolkXff5dYH8T2ZKJzanr5hP-/s400/PowerfulSimply3.jpg" width="400" /></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Hi There!</span><br />
<br />
<span style="font-family: Verdana, sans-serif;">On this post I would like to discuss how to solve the CIL compilation error when deploying services for the first time in AX 2012. I have been working on a newly installed AX 2012 CU2 instance this week, and I deployed both <span style="color: blue;">basic</span> and <span style="color: blue;">enhanced</span> services. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">This action was successfully done and I did not experience any issues. However, when I created a new service group and I deployed it, I encounter an error saying “<span style="color: blue;">The CIL generator found errors and could not save the new assembly</span>”. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnyqzgcbyKCwzDALJKsEIMZzD8te0XCBc-GEcfOoRao0yBSVvdPGrbhN1N2Wjd5x-DuF0DALko_6as0U4YmRJHWmOF74ZfzuJt9UKEN921XRh03L_feD3HwDoBInZ2mozEg8AhrG9ZlFwH/s1600/BasicService_Error.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnyqzgcbyKCwzDALJKsEIMZzD8te0XCBc-GEcfOoRao0yBSVvdPGrbhN1N2Wjd5x-DuF0DALko_6as0U4YmRJHWmOF74ZfzuJt9UKEN921XRh03L_feD3HwDoBInZ2mozEg8AhrG9ZlFwH/s1600/BasicService_Error.jpg" /></span></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span></div>
<br />
<span style="font-family: Verdana, sans-serif;">Now, this instance of AX 2012 is using a restored DB backup from another instance as I needed some data and objects already existing. It makes sense to think that this issue is true from the premise that I never went through a full AX and CIL compilation. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">In addition, when generating the services through the installation, the references to the .NET Module File and the AX Application DLL were correct, but where they referring to the correct .NET Assembly types for the WFC generated endpoints? I truly don’t know the answer to this and I asked for help.</span><br />
<br />
<span style="font-family: Verdana, sans-serif;">My friend <span style="color: blue;"><strong>Bill Bartolotto</strong></span> (</span><a href="http://www.linkedin.com/profile/view?id=53636476&locale=en_US&trk=tyah2" target="_blank"><span style="font-family: Verdana, sans-serif;">you can contact him here at his LinkedIn profile</span></a><span style="font-family: Verdana, sans-serif;">) went through this problem and he helped me solved it in my instance. Bill has a vast experience in AX architecture and is really knowledgeable in AX 2012.</span><br />
<br />
<span style="font-family: Verdana, sans-serif;">So, how do we fix this problem?</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="color: blue;"><span style="font-family: Verdana, sans-serif;">Step 1: <strong>Stop the AOS</strong></span></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;">Atep 2: <strong>Delete all of the source in the</strong></span> <em><span style="color: red;">C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX\bin\XppIL directory</span></em></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">When you do this, just delete all the files within the XppIL folder that are outside of other folders. Make a backup just in case, and the files would be generated while the full compilation is taking place.</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKpp-ATKsAG1b7mwOzfNe9cOudde9yxVb64JPG5mGHNd38WWrij9N8WmD83yj_tdBo9XMZszwuQHYNb8ZdQyDGVicJnhJrgs9Yxqxb9pQeSYK0thUuFvAIiPUjwxWf3Z0Q23vyo9nS3C_A/s1600/BasicService_Error_AOSRestart3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKpp-ATKsAG1b7mwOzfNe9cOudde9yxVb64JPG5mGHNd38WWrij9N8WmD83yj_tdBo9XMZszwuQHYNb8ZdQyDGVicJnhJrgs9Yxqxb9pQeSYK0thUuFvAIiPUjwxWf3Z0Q23vyo9nS3C_A/s1600/BasicService_Error_AOSRestart3.jpg" /></span></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="color: blue;"><span style="font-family: Verdana, sans-serif;">Step 3: <strong>Start the AOS</strong></span></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyhTwUCkGeRHpX921dBIn2OYjR-KDjAa2E7xSxEqjzSjZ1nxLePfRWgd-9XW18ZSbFw6u-4QVaFR34A2-3iVktMEoGTih2Ou7Z6FiZbI_hFnuo6-U-YNXbVJEQxGo4QlBNu6x34eORlmRF/s1600/BasicService_Error_AOSRestart.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyhTwUCkGeRHpX921dBIn2OYjR-KDjAa2E7xSxEqjzSjZ1nxLePfRWgd-9XW18ZSbFw6u-4QVaFR34A2-3iVktMEoGTih2Ou7Z6FiZbI_hFnuo6-U-YNXbVJEQxGo4QlBNu6x34eORlmRF/s320/BasicService_Error_AOSRestart.jpg" width="320" /></span></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;">Step 3:</span> <strong><span style="color: blue;">Perform a full compile</span></strong> (<span style="color: red;">it will not work without doing this</span>)</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh6U_psEPyopvSETvzqgs0f_1gixRijsbjhO3P13dmcdokaIjqizhKh-f5A5Rn7hui_P-KJT6UdEpyLIM8yldmOJ0AvdM8pIgQxaYO1fEPdZiAj0A-I5udZDQ0HSjMRl0Hsr-TCSgWgKww/s1600/BasicService_Error_AOSRestart2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh6U_psEPyopvSETvzqgs0f_1gixRijsbjhO3P13dmcdokaIjqizhKh-f5A5Rn7hui_P-KJT6UdEpyLIM8yldmOJ0AvdM8pIgQxaYO1fEPdZiAj0A-I5udZDQ0HSjMRl0Hsr-TCSgWgKww/s1600/BasicService_Error_AOSRestart2.jpg" /></span></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="color: blue;"><span style="font-family: Verdana, sans-serif;">Step 4:<strong> Perform a full CIL generation</strong></span></span><br />
<strong><span style="color: blue; font-family: Verdana, sans-serif;"></span></strong><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTjzYDug__2ancCjjCxAxlgn_rMImh7jSWVinuPtchAL3kQD69RZoFAQyRlRbszqrWNyXeIXuzoSVHy2tS65vTlxwCq4uToyXggjJD2puGDDUFy88UDqEUHzxnkAh8_Vwl9VxLSGizFx3z/s1600/BasicService_Error_AOSRestart4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTjzYDug__2ancCjjCxAxlgn_rMImh7jSWVinuPtchAL3kQD69RZoFAQyRlRbszqrWNyXeIXuzoSVHy2tS65vTlxwCq4uToyXggjJD2puGDDUFy88UDqEUHzxnkAh8_Vwl9VxLSGizFx3z/s1600/BasicService_Error_AOSRestart4.jpg" /></span></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span></div>
<br />
<span style="font-family: Verdana, sans-serif;">The drawback of this fix is that it takes a long time to complete. However, this fixes the issue, which is the desired outcome, and the services deployment and incremental CIL compilations moving forward would be error free.</span><br />
<span style="font-family: Verdana;"></span><br />
<span style="font-family: Verdana;">As you can see, the service was deployed correctly and if I opened my inbound port I'll see it there.</span><br />
<span style="font-family: Verdana;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix4bOaIq8CUgBv0kJjJYRp1nSM1fYQ5OpqYQYeIZ93y0Sh9ZgRdPNGw1-ag46UKT8FX6p36aJydLM47Fs3NaIYDTga63GYr5B7DDaR6vGvuzyNmtpOx0rcFfmEl0_vZYg-7HDDicl8f9Sn/s1600/BasicService6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix4bOaIq8CUgBv0kJjJYRp1nSM1fYQ5OpqYQYeIZ93y0Sh9ZgRdPNGw1-ag46UKT8FX6p36aJydLM47Fs3NaIYDTga63GYr5B7DDaR6vGvuzyNmtpOx0rcFfmEl0_vZYg-7HDDicl8f9Sn/s640/BasicService6.jpg" width="640" /></a></div>
<br />
<br />
<span style="color: blue; font-family: Verdana, sans-serif;"><u><strong>UPDATE:</strong></u></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">After a FULL CIL compilation I got the following errors:</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfoP0ACnRKBD0ykNStwH2d6mIEa2pqNN0hmOrvddmGwHC6tSHUbXfHBp_cGHWhe73JODi7E26MqFO5HYs_ybZVIJa9g5Oge-O_iDqht_Tr7W8wrqCk4HhBKRyAoXeBqJhSvObK49eZWOX8/s1600/BasicService_Error_AOSRestart5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfoP0ACnRKBD0ykNStwH2d6mIEa2pqNN0hmOrvddmGwHC6tSHUbXfHBp_cGHWhe73JODi7E26MqFO5HYs_ybZVIJa9g5Oge-O_iDqht_Tr7W8wrqCk4HhBKRyAoXeBqJhSvObK49eZWOX8/s1600/BasicService_Error_AOSRestart5.jpg" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: blue; font-family: Verdana, sans-serif;">AOT > Class> ReleaseUpdateDB41_Basic</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWn87n6y53rtsita6EwzGbNoRkIeHy6gaL_qJ8DIiLFmrh3Q2A8xHccrC3hrq2ixgmgmhmZx2h3jZBW5HM1nBGn2LdUlvE4xCU5R6JSGgza8hPMv4G2gRFyVnbcQEIe4r0QKOdt_eUCS_X/s1600/BasicService_Error_AOSRestart6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWn87n6y53rtsita6EwzGbNoRkIeHy6gaL_qJ8DIiLFmrh3Q2A8xHccrC3hrq2ixgmgmhmZx2h3jZBW5HM1nBGn2LdUlvE4xCU5R6JSGgza8hPMv4G2gRFyVnbcQEIe4r0QKOdt_eUCS_X/s1600/BasicService_Error_AOSRestart6.jpg" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">I just went to the object in question and compiled them separately.</span> </div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1m6Lx-CO1PyEJDAY68O1B2SPpjk1CWmHyEsEkVnAWnTU5P3CFTUigPGJWh5jWM9kmBA4KWgmg4xnJu_eVJZr2anRnY91QwoqmpF4iMBMT3bfc2vz6EE7SECnyDJgrUq4114ykka5pz-pa/s1600/BasicService_Error_AOSRestart7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1m6Lx-CO1PyEJDAY68O1B2SPpjk1CWmHyEsEkVnAWnTU5P3CFTUigPGJWh5jWM9kmBA4KWgmg4xnJu_eVJZr2anRnY91QwoqmpF4iMBMT3bfc2vz6EE7SECnyDJgrUq4114ykka5pz-pa/s1600/BasicService_Error_AOSRestart7.jpg" /></a></div>
<div align="center">
<span style="font-family: Verdana, sans-serif;"></span> </div>
<span style="font-family: Verdana, sans-serif;">The outcome would correctly compiled all the artifacts, including my new service gorup. </span><br />
<span style="font-family: Verdana;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdEoLJOM4_aav_ZEDYYm817k456deQPOVLTq3JlirAY34PENvOT_0OU70DR8tpZ8z8roBYPbwTtF5niTmq2A0acdWG5gKJwPX6_cqp6hyA26bDxMtwzgXmoH9aHgfGwiAbMTSkY4JUHiX-/s1600/BasicService_Error_AOSRestart8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdEoLJOM4_aav_ZEDYYm817k456deQPOVLTq3JlirAY34PENvOT_0OU70DR8tpZ8z8roBYPbwTtF5niTmq2A0acdWG5gKJwPX6_cqp6hyA26bDxMtwzgXmoH9aHgfGwiAbMTSkY4JUHiX-/s1600/BasicService_Error_AOSRestart8.jpg" /></a></div>
<br />
<span style="font-family: Verdana;"></span><br />
<span style="font-family: Verdana, sans-serif;">Until the next post!</span><br />
<span style="font-family: Verdana;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEqwjYLs4iqGVNKfjlwmxEDaOhsckPQWsFBYAvwo1dhEaGZK5iCbH0fi0W8KeeIcppfIuR_0Ym6Fi6ZZmsbYjYFCgx8Rc2DHQ5iq6iIpIN6XTHn1_YAKWktQOHvlAfzYbFev9qTBxeLXTq/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEqwjYLs4iqGVNKfjlwmxEDaOhsckPQWsFBYAvwo1dhEaGZK5iCbH0fi0W8KeeIcppfIuR_0Ym6Fi6ZZmsbYjYFCgx8Rc2DHQ5iq6iIpIN6XTHn1_YAKWktQOHvlAfzYbFev9qTBxeLXTq/s400/PowerfulSimply2.jpg" width="400" /></a></div>
AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com4tag:blogger.com,1999:blog-4889748320010274206.post-61703394916897470292013-04-10T18:38:00.001-04:002013-04-10T18:39:31.818-04:00How to choose the right service in AX 2012?<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0y5TnCoMhegvsGonoSBHa7ddMu_xX5yKL2_cQxuqALd_gwwK75PAGuDoxqSKu7VDnhcFrFrGk-Pi49KGLioETWoMxY_Gl2FzjqI7nN-QoDA-xKaYjYhcTmFidJr5sS6bCzLlOcWlmnbx/s400/PowerfulSimply3.jpg" width="400" /></a></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">Hi there!</span><br />
<br />
<span style="font-family: Verdana, sans-serif;">I hope you are having a great week. On today’s post I would like to discuss the difference between <span style="color: blue;">Document Services</span> and <span style="color: blue;">Custom Services</span> in AX 2012. Microsoft made a lot of changes from AX 2009 and AX 2012 and it seems to have created a sort of gray area on when to use a Document Service or a Custom Service.</span><br />
<br />
<span style="font-family: Verdana, sans-serif;">Both document and custom services can handle any business entity. So, how do we know which one to use? </span><br />
<br />
<span style="font-family: Verdana, sans-serif;">On one hand, the <span style="color: blue;">document services</span> framework handles a lot of complexity out-of-the-box. For example, the framework parses the incoming XML, and validates it against a schema (XSD) document, and then the correct service action is called. This is simple as most of the logic that is needed to create, delete, update, etc. already exists, which simplifies the developer’s job. Now, what about sharing data contracts between applications? </span><br />
<br />
<span style="font-family: Verdana, sans-serif;">On the other hand, <span style="color: blue;">custom services</span> are flexible because they use the .NET XML serializer. The issue with this is that no validation is done, which creates a problem because any validation needs to be written in code by a developer. </span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">However, custom services would allow us to share data contacts between applications, which is a plus in today’s world given the complexity of integration we are experiencing. For example, custom services would allow a company that uses AX 2012, SharePoint and .NET applications to share data contracts, making sure that the entities are the same for all the components of the architecture, and this is huge!</span><br />
<span style="font-family: Verdana;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTHuq6eHPh1l0jhnrUEUTzjbhmTjsOy970L0tBSgISkwAxHRX7-eTVcZiLl416G-XEBUEiDZF5e9LoInUp84TtSSAbP2yRtPXUYHTzi4y5JYvL7w0xhcoY7aJlp7IK3OOhe74x8TygaLA-/s1600/img.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTHuq6eHPh1l0jhnrUEUTzjbhmTjsOy970L0tBSgISkwAxHRX7-eTVcZiLl416G-XEBUEiDZF5e9LoInUp84TtSSAbP2yRtPXUYHTzi4y5JYvL7w0xhcoY7aJlp7IK3OOhe74x8TygaLA-/s320/img.jpg" width="320" /></a></div>
<div align="center">
</div>
<br />
<span style="font-family: Verdana, sans-serif;">So, to summarize and share my own experience with services, I take into consideration the following rules when trying to decide which service to use:</span><br />
<span style="font-family: Verdana;"></span><br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableMediumGrid1Accent1" style="border-collapse: collapse; border: currentColor; mso-border-alt: solid #7BA0CD 1.0pt; mso-border-themecolor: accent1; mso-border-themetint: 191; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: -1;"><td style="background: rgb(211, 223, 238); border: 1pt solid rgb(123, 160, 205); mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div align="center" class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-yfti-cnfc: 5; text-align: center;">
<b><span style="font-family: Calibri;">Use Custom Services When<o:p></o:p></span></b></div>
</td><td style="background: rgb(211, 223, 238); border-color: rgb(123, 160, 205) rgb(123, 160, 205) rgb(123, 160, 205) rgb(0, 0, 0); border-style: solid solid solid none; border-width: 1pt 1pt 1pt 0px; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-left-alt: solid #7BA0CD 1.0pt; mso-border-left-themecolor: accent1; mso-border-left-themetint: 191; mso-border-themecolor: accent1; mso-border-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div align="center" class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-yfti-cnfc: 1; text-align: center;">
<b><span style="font-family: Calibri;">Use Document Services When<o:p></o:p></span></b></div>
</td></tr>
<tr style="mso-yfti-irow: 0;"><td style="background: rgb(167, 191, 222); border-color: rgb(0, 0, 0) rgb(123, 160, 205) rgb(123, 160, 205); border-style: none solid solid; border-width: 0px 1pt 1pt; mso-background-themecolor: accent1; mso-background-themetint: 127; mso-border-themecolor: accent1; mso-border-themetint: 191; mso-border-top-alt: solid #7BA0CD 1.0pt; mso-border-top-themecolor: accent1; mso-border-top-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-yfti-cnfc: 68;">
<span style="font-family: Calibri;">Exposing entities that have low complexity<o:p></o:p></span></div>
</td><td style="background: rgb(167, 191, 222); border-color: rgb(0, 0, 0) rgb(123, 160, 205) rgb(123, 160, 205) rgb(0, 0, 0); border-style: none solid solid none; border-width: 0px 1pt 1pt 0px; mso-background-themecolor: accent1; mso-background-themetint: 127; mso-border-bottom-themecolor: accent1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #7BA0CD 1.0pt; mso-border-left-themecolor: accent1; mso-border-left-themetint: 191; mso-border-right-themecolor: accent1; mso-border-right-themetint: 191; mso-border-top-alt: solid #7BA0CD 1.0pt; mso-border-top-themecolor: accent1; mso-border-top-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-yfti-cnfc: 64;">
<span style="font-family: Calibri;">Exposing entities that have a high complexity.</span></div>
</td></tr>
<tr style="mso-yfti-irow: 1;"><td style="background: rgb(211, 223, 238); border-color: rgb(0, 0, 0) rgb(123, 160, 205) rgb(123, 160, 205); border-style: none solid solid; border-width: 0px 1pt 1pt; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-themetint: 191; mso-border-top-alt: solid #7BA0CD 1.0pt; mso-border-top-themecolor: accent1; mso-border-top-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-yfti-cnfc: 4;">
<span style="font-family: Calibri;">Sharing data contracts between company-wide applications<o:p></o:p></span></div>
</td><td style="background: rgb(211, 223, 238); border-color: rgb(0, 0, 0) rgb(123, 160, 205) rgb(123, 160, 205) rgb(0, 0, 0); border-style: none solid solid none; border-width: 0px 1pt 1pt 0px; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #7BA0CD 1.0pt; mso-border-left-themecolor: accent1; mso-border-left-themetint: 191; mso-border-right-themecolor: accent1; mso-border-right-themetint: 191; mso-border-top-alt: solid #7BA0CD 1.0pt; mso-border-top-themecolor: accent1; mso-border-top-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;">
<span style="font-family: Calibri;">Data validation is required.</span></div>
</td></tr>
<tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes;"><td style="background: rgb(167, 191, 222); border-color: rgb(0, 0, 0) rgb(123, 160, 205) rgb(123, 160, 205); border-style: none solid solid; border-width: 0px 1pt 1pt; mso-background-themecolor: accent1; mso-background-themetint: 127; mso-border-themecolor: accent1; mso-border-themetint: 191; mso-border-top-alt: solid #7BA0CD 1.0pt; mso-border-top-themecolor: accent1; mso-border-top-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-yfti-cnfc: 68;">
<span style="font-family: Calibri;">Creating logic that has nothing to do with the AX 2012 structures.<o:p></o:p></span></div>
</td><td style="background: rgb(167, 191, 222); border-color: rgb(0, 0, 0) rgb(123, 160, 205) rgb(123, 160, 205) rgb(0, 0, 0); border-style: none solid solid none; border-width: 0px 1pt 1pt 0px; mso-background-themecolor: accent1; mso-background-themetint: 127; mso-border-bottom-themecolor: accent1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #7BA0CD 1.0pt; mso-border-left-themecolor: accent1; mso-border-left-themetint: 191; mso-border-right-themecolor: accent1; mso-border-right-themetint: 191; mso-border-top-alt: solid #7BA0CD 1.0pt; mso-border-top-themecolor: accent1; mso-border-top-themetint: 191; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-yfti-cnfc: 64;">
<span style="font-family: Calibri;">Inheriting logic to create, delete, update and read data from entities. </span></div>
</td></tr>
</tbody></table>
<br />
<span style="font-family: Verdana;"></span><br />
<span style="font-family: Verdana, sans-serif;">It is clear that Microsoft has provided us with a lot of new ways to integrate applications by allowing us to expose the AX 2012 business logic very easily and by providing the framework to using attributes to extend our classes, and also by introducing the WCF architecture, which help us move away a bit from solely X++.</span><br />
<span style="font-family: Verdana, sans-serif;"><br />Until the next time!</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaoyDlFa-N7R1wpVkLs0jL1L2qDRzpp97GFNxcqhqBuXXrSZISZQ0PAbvs3iBCszt9_SnDPPeh6y5adEfs4NxR55cmqM4hozhMonwmQ9hebVhJg8AAnv71qs-mdA-kNuORVKp_P60njmBv/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaoyDlFa-N7R1wpVkLs0jL1L2qDRzpp97GFNxcqhqBuXXrSZISZQ0PAbvs3iBCszt9_SnDPPeh6y5adEfs4NxR55cmqM4hozhMonwmQ9hebVhJg8AAnv71qs-mdA-kNuORVKp_P60njmBv/s400/PowerfulSimply2.jpg" width="400" /></a></div>
</span><br />AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0tag:blogger.com,1999:blog-4889748320010274206.post-46396642297406581942013-03-22T11:03:00.000-04:002013-03-22T11:05:00.384-04:00Copy, Set, Delete, Get Product Categories and Attributes in AX 2012 X++<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">Hi there,<br /><br />I hope you had a great week and that you are ready for a great and restful weekend. In this post I would like to spotlight the work of one of my customers. His name is <a href="http://www.linkedin.com/profile/view?id=49922315&locale=en_US&trk=tyah" target="_blank">Colin Mitchell</a> and he is a senior solutions architect for <a href="http://www.turck.com/" target="_blank">TURCK</a>, a world leader cable manufacturer.</span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br />Colin and I worked on a very challenging project together for about 5 months. Colin created a super smart application that would allow <a href="http://www.turck.com/" target="_blank">TURCK </a>sales and product managers to quickly configure a cable specification in real time. If we think about it, engineering approval processes are the key to a quality product and eventually happy customers. </span></span><br />
<br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">However, why do we need to involve “human” interaction if a new product could be analyzed automatically based on certain quality rules? Well, Colin and his team created a software solution that would decide, in real time, if the product that was being created needed to go through a required approval process or not. </span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br />So, what was the challenge? The challenge was implementing the same “intelligence” into Microsoft Dynamics AX 2012. For this, <a href="http://www.turck.com/" target="_blank">TURCK </a>purchased <a href="http://www.erpsolutions.biz/" target="_blank">ERPSolutions</a>’ <a href="http://www.erpsolutions.biz/ecm.htm" target="_blank">Total Engineering Change Management</a>. </span></span><br />
<br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">My role was to modify the <a href="http://www.erpsolutions.biz/default.htm" target="_blank">ERPSolutions </a><a href="http://www.erpsolutions.biz/ecm.htm" target="_blank">Total Engineering Change Management</a> software by implementing TURCK’s vision into it. </span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br />So, what was the outcome? It was a very successful project. And it was successful not only because capable people were working on it, but because Colin was involved each step of the way. On this thought, Colin created a solution to <span style="color: blue;">copy, set, delete and get Microsoft Dynamics AX product categories and attributes from one product to another</span>. This might sound easy, but believe me is not. Colin and I spent countless hours working on his vision, but he was the one who came up with the final and working solution. </span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br />I need to add that despite Microsoft willingness to find a solution for us, they couldn’t. This post is about sharing what he created. I got his permission to do so and I thought it would be a great idea and great benefit for all us to get this knowledge and high level of analysis. </span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br /><i><b>The Process</b></i></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br />Colin when about creating a table relationship diagram (depicted below) with how product categories and attributes are related to a product. </span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br /></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP_9kapUAtfrbi03EAs3klVnA3Fb00ssrqXIsWJJLI37sy8i-8uL-4YBWMeNNgbpn0z-2bVoqnh5LRs_rzcaUlnq9v6fZnyo4OkA5sXsUY1AYuLEx3_gB11liLJEbWB1O7N58nETkIo7lV/s1600/Colin'sDB.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP_9kapUAtfrbi03EAs3klVnA3Fb00ssrqXIsWJJLI37sy8i-8uL-4YBWMeNNgbpn0z-2bVoqnh5LRs_rzcaUlnq9v6fZnyo4OkA5sXsUY1AYuLEx3_gB11liLJEbWB1O7N58nETkIo7lV/s1600/Colin'sDB.jpg" /></a></div>
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br /></span></span>
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br />Then, Colin wrote a class to achieve the following:</span></span><br />
<br />
<ul>
<li><i><span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">Copy product attributes and categories</span></span></i></li>
<li><i><span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">Delete product attributes</span></span></i></li>
<li><i><span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">Get product attributes</span></span></i></li>
<li><i><span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">Set product attributes</span></span></i></li>
</ul>
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br />The code sample is extensive and self-explanatory as Colin included really good comments in each step. </span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br /><i><b>Note</b></i>: <span style="color: red;">The following code is to be used at your own risk. </span></span></span><br />
<br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">Just as a final note, I would like to thank <a href="http://www.linkedin.com/profile/view?id=49922315&locale=en_US&trk=tyah" target="_blank">Colin Mitchel</a> for allowing me to share his work in my blog. In addition, I would like to point out that, successful software implementations still exist, and they are successful because of the customer willingness to learn, share, understand and succeed. <a href="http://www.turck.com/" target="_blank">TURCK </a>was one of those customers, and Colin is a clear example of discipline, intelligence and willingness to go beyond his comfort zone and master a new language. He has really become an amazing X++ master. <br /> </span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><a href="http://www.linkedin.com/profile/view?id=49922315&locale=en_US&trk=tyah" target="_blank">You can contact Colin in his Linked In profile here.</a></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br /></span></span>
<i><b><span style="color: #444444;"><span style="font-family: Verdana,sans-serif;">Code:</span></span></b></i><span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"> </span></span></span><br />
<br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"> #//© 2013 TURCK, Inc. All Rights Reserved.<br /> #/// <summary><br /> #/// copies all category hierarchies, categories, attributes and attribute values from one product to another<br /> <br /> #server static void <span style="color: blue;"><i>copyAttributesToProduct</i></span>(itemID _sourceItem, itemID _destinationItem)<br /> #{<br /> #<br /> # RefRecId sourceProductRecId, destinationProductRecId, productInstanceRecId_AfterInsert, ecoResTextValueRecId_AfterInsert;<br /> #<br /> # EcoResProduct sourceProduct = EcoResProduct::find(InventTable::find(_sourceItem).Product);<br /> # EcoResProduct destinationProduct = EcoResProduct::find(InventTable::find(_destinationItem).Product);<br /> #<br /> # EcoResProductCategory ecoResProductCategory, ecoResProductCategory_ForInsert;<br /> # EcoResCategory ecoResCategory;<br /> # EcoResCategoryAttributeLookup ecoResCategoryAttributeLookup;<br /> #<br /> # EcoResAttribute ecoResAttribute;<br /> # EcoResAttributeValue ecoResAttributeValue, ecoResAttributeValue_ForInsert;<br /> # EcoResProductInstanceValue ecoResProductInstanceValue, ecoResProductInstanceValue_ForInsert;<br /> # EcoResTextValue ecoResTextValue, ecoResTextValue_ForInsert;<br /> #<br /> # if (sourceProduct && destinationProduct)<br /> # {<br /> #<br /> # // our source and destination products<br /> # // both exist.<br /> #<br /> # sourceProductRecId = sourceProduct.RecId;<br /> # destinationProductRecId = destinationProduct.RecId;<br /> #<br /> # if (sourceProductRecId != destinationProductRecId)<br /> # {<br /> #<br /> # // we know that the source and destination products<br /> # // aren't the same product.<br /> #<br /> # // the purpose of this code is to copy categories,<br /> # // attributes and attribute value from one product to another,<br /> # // so we have to delete any existing objects from our<br /> # // destination product first. Let's go ahead and do that...<br /> #<br /> # // note that we may use the delete_from statement here, too.<br /> # // i used delete() for testing, to look at each value as<br /> # // it's being deleted.<br /> #<br /> # // first delete all existing categories, attribute, and values<br /> # // if they exist<br /> #<br /> # ProductAttributesManager::deleteCategoriesAndAttributeValues(destinationProductRecId);<br /> #<br /> # // now we need to add our destination product to the ecoResProductInstanceValue<br /> # // table. The important thing to know here is that the Product field is indexed<br /> # // and doesn't allow duplicates -- that is to say, we add our product ONCE.<br /> #<br /> # // note that ecoResProductInstanceValue extends the ecoResInstanceValue table<br /> # // but no worries, we can write all of our values at once. The only trick<br /> # // is that the "InstanceRelationType" field is a system field, which means<br /> # // we can't call it normally. We need to use the overwriteSystemfields variable<br /> # // and incorporate the fieldNum function, passing the ID of the EcoResProductInstanceValue<br /> # // table to the field. When we're finished, we turn the overwriteSystemfields off again.<br /> #<br /> # ttsBegin;<br /> # select forUpdate ecoResProductInstanceValue_ForInsert;<br /> # ecoResProductInstanceValue_ForInsert.Product = destinationProductRecId;<br /> # new OverwriteSystemFieldsPermission().assert();<br /> # ecoResProductInstanceValue_ForInsert.overwriteSystemfields(true);<br /> # ecoResProductInstanceValue_ForInsert.(fieldNum(EcoResProductInstanceValue, InstanceRelationType)) = tableName2id("EcoResProductInstanceValue");<br /> # ecoResProductInstanceValue_ForInsert.insert();<br /> # ecoResProductInstanceValue_ForInsert.overwriteSystemfields(false);<br /> # CodeAccessPermission::revertAssert();<br /> # ttsCommit;<br /> #<br /> # if (ecoResProductInstanceValue_ForInsert)<br /> # {<br /> # // IMPORTANT!<br /> #<br /> # // we've now written our destination product into the ecoResProductInstanceValue table.<br /> # // in doing so, we've created an important value which we need to keep<br /> # // track of - the value of the RecID field for the new value we've written into<br /> # // the ecoResProductInstanceValue table. This is the "InstanceValue" which we'll<br /> # // write to the EcoResAttributeValue table. Let's put this value in a variable.<br /> #<br /> # productInstanceRecId_AfterInsert = ecoResProductInstanceValue_ForInsert.RecId;<br /> #<br /> # // the next step is to copy our source product's product categories over to our<br /> # // destination product. we do that by writing into the ecoResProductCategory table.<br /> #<br /> # // NOTE that products in AX 2012 can be associated with many category hierarchies,<br /> # // so to make sure we copy of all them, we need to use a WHILE loop, which will find each<br /> # // category and allow us to interact with them.<br /> #<br /> # // we now need to move into discovering the relationships between categories and<br /> # // and attributes. the relationship between products and categories is stored in the<br /> # // ecoResProductCategory table. while it has a series of relationships<br /> # // to other tables (for example, categories and hierarchies), the one we care about<br /> # // is the relationship between the product and the category. additional information<br /> # // about the category is located in the ecoResCategory table, so let's join<br /> # // them as part of our WHILE loop.<br /> #<br /> # while<br /> # select ecoResProductCategory where ecoResProductCategory.Product == sourceProductRecId // <--- we are asking for the data from our SOURCE product<br /> # join ecoResCategory where ecoResCategory.RecId == ecoResProductCategory.Category<br /> # {<br /> # // now, while we're looping, write each product category from<br /> # // our source product to our destination product. The ecoResProductCategory<br /> # // table is indexed on the Product and Category fields, allowing<br /> # // us to have multiple categories for each product.<br /> #<br /> # ttsBegin;<br /> # select forUpdate ecoResProductCategory_ForInsert;<br /> # ecoResProductCategory_ForInsert.Product = destinationProductRecId; // <--- use the RecID of our DESTINATION product<br /> # ecoResProductCategory_ForInsert.Category = ecoResProductCategory.Category;<br /> # ecoResProductCategory_ForInsert.CategoryHierarchy = ecoResProductCategory.CategoryHierarchy;<br /> # ecoResProductCategory_ForInsert.insert();<br /> # ttsCommit;<br /> #<br /> # if (ecoResProductCategory_ForInsert)<br /> # {<br /> # // we've "copied" the product category information for category X<br /> # // from our source product to our destination product. the actual<br /> # // structure of the hierarchy isn't something we need to write, but<br /> # // in order to write attribute values we need to know more about<br /> # // categories and their relationship to the attributes.<br /> #<br /> # // that relationship is maintained in a series of three tables:<br /> #<br /> # // ecoResCategory -> ecoResCategoryAttributeLookup<br /> # // ecoResCategoryAttributeLookup -> ecoResAttribute<br /> #<br /> # // we join these tables together while we're looping through<br /> # // each category and create a second loop inside our<br /> # // main "category" loop...<br /> #<br /> # while<br /> # select ecoResCategoryAttributeLookup where ecoResCategoryAttributeLookup.Category == ecoResCategory.RecId // <--- ecoResCategory.RecId comes from our main "category" loop<br /> # join ecoResAttribute where ecoResAttribute.RecId == ecoResCategoryAttributeLookup.Attribute<br /> # {<br /> #<br /> # // we're looping through our second WHILE statement, which will give us every attribute<br /> # // for every category for every category hierarchy. now, in reality, AX allows only<br /> # // one procurement category - where attributes are defined - so in daily use we will<br /> # // be dealing with multiple category hierarchies, categorys, but only one of them<br /> # // (the procurement category) will have attributes.<br /> #<br /> # // example: if the product has two category hierarchies, with two categories within<br /> # // each category hierarchy, and one attribute within each category,<br /> # // the result would be:<br /> #<br /> # // product categoryhierarchy 1 category 1 attribute 1<br /> # // product categoryhierarchy 1 category 1 attribute 2<br /> # // product categoryhierarchy 1 category 2 attribute 1<br /> # // product categoryhierarchy 1 category 2 attribute 2<br /> # // product categoryhierarchy 2 category 1<br /> # // product categoryhierarchy 2 category 1<br /> # // product categoryhierarchy 2 category 2<br /> # // product categoryhierarchy 2 category 2<br /> #<br /> # // so, at this point we know everything except the attribute values.<br /> # // to get that, we need to check the ecoResAttributeValue table. That<br /> # // table has three fields:<br /> #<br /> # // Attribute -- join to the ecoResAttribute.RecID field<br /> # // InstanceValue -- join to the ecoResProductInstanceValue.RecID field where the ecoResProductInstanceValue.Product field is our source product's RecID<br /> # // Value -- join to the ecoResTextValue.RecID field, but this is not a field value we're going to copy (see below)<br /> #<br /> # select ecoResAttributeValue where ecoResAttributeValue.Attribute == ecoResAttribute.RecId<br /> # join ecoResProductInstanceValue where ecoResProductInstanceValue.RecId == ecoResAttributeValue.InstanceValue && ecoResProductInstanceValue.Product == sourceProductRecId<br /> # join ecoResTextValue where ecoResTextValue.RecId == ecoResAttributeValue.Value;<br /> #<br /> # // the join to the ecoResTextValue table gives us access to the TextValue<br /> # // field in that table. We're going to need that.<br /> #<br /> # // So. now we need to copy the attribute values from our source product to our<br /> # // destination product. to do that, we do perform the following operations<br /> # // in the order listed:<br /> #<br /> # // 1. write a new record into the EcoResTextValue table, and save the resulting RecID into a variable<br /> # // 2. write a new record into the EcoResAttributeValue table using the EcoResTextValue.RecID variable as the Value field<br /> #<br /> # // we have the same system field situation that we had above in the ecoResProductInstanceValue<br /> # // table, but fortunately we know how to handle it below.<br /> #<br /> # if (ecoResAttributeValue.Attribute > 0) // <--- make sure that we have a valid attribute<br /> # {<br /> # ttsBegin;<br /> # select forUpdate ecoResTextValue_ForInsert;<br /> # ecoResTextValue_ForInsert.TextValue = ecoResTextValue.TextValue;<br /> # new OverwriteSystemFieldsPermission().assert();<br /> # ecoResTextValue_ForInsert.overwriteSystemfields(true);<br /> # ecoResTextValue_ForInsert.(fieldNum(EcoResTextValue, InstanceRelationType)) = tableName2id("EcoResTextValue");<br /> # ecoResTextValue_ForInsert.insert();<br /> # ecoResTextValue_ForInsert.overwriteSystemfields(false);<br /> # CodeAccessPermission::revertAssert();<br /> # ttsCommit;<br /> # }<br /> #<br /> # if (ecoResTextValue_ForInsert)<br /> # {<br /> # ecoResTextValueRecId_AfterInsert = ecoResTextValue_ForInsert.RecId; // <--- REALLY important value here! The returned RecID from our write to ecoResTextValue<br /> #<br /> # // our last step is to wrap up all these values and<br /> # // write them to the ecoResAttributeValue table.<br /> #<br /> # ttsBegin;<br /> # select forUpdate ecoResAttributeValue_ForInsert;<br /> # ecoResAttributeValue_ForInsert.Attribute = ecoResAttributeValue.Attribute; // <--- the RecID of the attribute we're dealing with in the loop<br /> # ecoResAttributeValue_ForInsert.InstanceValue = productInstanceRecId_AfterInsert; // <--- the resulting RecID from writing into ecoResProductInstanceValue<br /> # ecoResAttributeValue_ForInsert.Value = ecoResTextValueRecId_AfterInsert; // <--- the resulting RecID from writing into ecoResTextValue<br /> # ecoResAttributeValue_ForInsert.insert();<br /> # ttsCommit;<br /> #<br /> # if (!ecoResAttributeValue_ForInsert)<br /> # {<br /> # throw error('An exception was raised - could not write attribute data to table ecoResAttributeValue. (ProductAttributesCopy/copyAttributesToProduct)');<br /> # }<br /> # }<br /> # else<br /> # {<br /> # throw error('An exception was raised - could not write destination product attribute text to table ecoResTextValue. (ProductAttributesCopy/copyAttributesToProduct)');<br /> # }<br /> #<br /> # } // while<br /> #<br /> # }<br /> # else<br /> # {<br /> # throw error('An exception was raised - could not write destination product category to table ecoResProductCategory. (ProductAttributesCopy/copyAttributesToProduct)');<br /> # }<br /> #<br /> # } // while<br /> #<br /> # }<br /> # else<br /> # {<br /> # throw error('An exception was raised - could not write destination product to table EcoResProductInstanceValue. (ProductAttributesCopy/copyAttributesToProduct)');<br /> # }<br /> #<br /> # }<br /> # else<br /> # {<br /> # throw error('An exception was raised - the source and destination products are the same. (ProductAttributesCopy/copyAttributesToProduct)');<br /> # }<br /> # }<br /> # else<br /> # {<br /> # throw error('An exception was raised - the source or destination product does not exist. (ProductAttributesCopy/copyAttributesToProduct)');<br /> # }<br /> #<br /> #}<br /> </span></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><br /> #//© 2013 TURCK, Inc. All Rights Reserved.<br /> #/// <summary><br /> #/// deletes all attribute values from a product. The attributes themselves remain, but the values are cleared<br /> <br /> #static void <span style="color: blue;">deleteAttributeValues</span>(RefRecId _productRecID)<br /> #{<br /> #<br /> # EcoResProductInstanceValue ecoResProductInstanceValue;<br /> #<br /> # ttsBegin;<br /> #<br /> # while select forUpdate ecoResProductInstanceValue where ecoResProductInstanceValue.Product == _productRecID && _productRecID > 0<br /> # {<br /> # // ecoResProductInstanceValue is not a source of delete actions, but it extends table<br /> # // EcoResInstanceValue which DOES have a cascade delete action on EcoResAttributeValue.<br /> #<br /> # // So, we will delete our product out of table ecoResProductInstanceValue (if it exists),<br /> # // and our attribute values will be deleted out of EcoResAttributeValue, too. Further,<br /> # // EcoResAttributeValue is the source of a cascade delete on table EcoResValue, which is<br /> # // extended by table EcoResTextValue. EcoResTextValue is the source of yet another<br /> # // cascade delete action on table EcoResTextValueTranslation. So to sum up, when we<br /> # // delete our product from table ecoResProductInstanceValue, it cleans up all attribute<br /> # // values out there.<br /> #<br /> # ecoResProductInstanceValue.delete();<br /> # }<br /> #<br /> # ttsCommit;<br /> #<br /> #}<br /> </span></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><br /> #//© 2013 TURCK, Inc. All Rights Reserved.<br /> #/// <summary><br /> #/// deletes the product <-> category relationship from a product. Also delete all attribute values.<br /> #/// </summary><br /> <br /> #static void <span style="color: blue;">deleteCategoriesAndAttributeValues</span>(RefRecId _productRecID)<br /> #{<br /> #<br /> # EcoResProductCategory ecoResProductCategory;<br /> #<br /> # //first delete all attribute values so we don't leave any broken data<br /> # //hanging out there<br /> #<br /> # ProductAttributesManager::deleteAttributeValues(_productRecID);<br /> #<br /> # ttsBegin;<br /> # while select forUpdate ecoResProductCategory where ecoResProductCategory.Product == _productRecID && _productRecID > 0<br /> # {<br /> # // ecoResProductCategory is not a source of delete actions, which allows us<br /> # // to remove categories from products without destroying the<br /> # // categories and hierarchies within them. We delete the<br /> # // product <-> category relationship.<br /> # ecoResProductCategory.delete();<br /> # }<br /> # ttsCommit;<br /> #<br /> #}<br /> </span></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><br /> #//© 2013 TURCK, Inc. All Rights Reserved.<br /> #/// <summary><br /> #/// returns the value of the desired item's product attribute<br /> #/// </summary><br /> <br /> #static AttributeValueText <span style="color: blue;">getProductAttributeValue</span>(itemID _itemId, str _attributeName)<br /> #{<br /> #<br /> # RefRecId itemRecID;<br /> #<br /> # EcoResProduct product = EcoResProduct::find(InventTable::find(_itemId).Product);<br /> #<br /> # EcoResProductCategory ecoResProductCategory;<br /> # EcoResCategory ecoResCategory;<br /> # EcoResCategoryAttributeLookup ecoResCategoryAttributeLookup;<br /> #<br /> # EcoResAttribute ecoResAttribute;<br /> # EcoResAttributeValue ecoResAttributeValue;<br /> # EcoResProductInstanceValue ecoResProductInstanceValue;<br /> # EcoResTextValue ecoResTextValue;<br /> #<br /> # if (product)<br /> # {<br /> #<br /> # itemRecID = product.RecId;<br /> #<br /> # while<br /> # select ecoResProductCategory where ecoResProductCategory.Product == itemRecID<br /> # join ecoResCategory where ecoResCategory.RecId == ecoResProductCategory.Category<br /> # {<br /> # while<br /> # select ecoResCategoryAttributeLookup where ecoResCategoryAttributeLookup.Category == ecoResCategory.RecId<br /> # join ecoResAttribute where ecoResAttribute.RecId == ecoResCategoryAttributeLookup.Attribute<br /> # {<br /> # select ecoResAttributeValue where ecoResAttributeValue.Attribute == ecoResAttribute.RecId<br /> # join ecoResProductInstanceValue where ecoResProductInstanceValue.RecId == ecoResAttributeValue.InstanceValue && ecoResProductInstanceValue.Product == itemRecID<br /> # join ecoResTextValue where ecoResTextValue.RecId == ecoResAttributeValue.Value;<br /> #<br /> # if (strLwr(strLRTrim(ecoResAttribute.Name)) == strLwr(strLRTrim(_attributeName)))<br /> # {<br /> # return ecoResTextValue.TextValue;<br /> # }<br /> #<br /> # }<br /> # }<br /> #<br /> # }<br /> # else<br /> # {<br /> # throw error('An exception was raised - the product does not exist. (ProductAttributesCopy/getProductAttributeValue)');<br /> # }<br /> #<br /> # return '';<br /> #<br /> #}<br /> <br /> #//© 2013 TURCK, Inc. All Rights Reserved.<br /> #static void <span style="color: blue;">setProductAttributeValue</span>(itemID _itemId, str _attributeName, str 1999 _attributeValue)<br /> #{<br /> #<br /> # RefRecId itemRecID;<br /> #<br /> # EcoResProduct product = EcoResProduct::find(InventTable::find(_itemId).Product);<br /> #<br /> # EcoResProductCategory ecoResProductCategory;<br /> # EcoResCategory ecoResCategory;<br /> # EcoResCategoryAttributeLookup ecoResCategoryAttributeLookup;<br /> #<br /> # EcoResAttribute ecoResAttribute;<br /> # EcoResAttributeValue ecoResAttributeValue;<br /> # EcoResProductInstanceValue ecoResProductInstanceValue;<br /> # EcoResTextValue ecoResTextValue, ecoResTextValue_ForUpdate, ecoResTextValue_ForValidation;<br /> #<br /> # if (product)<br /> # {<br /> #<br /> # itemRecID = product.RecId;<br /> #<br /> # while<br /> # select ecoResProductCategory where ecoResProductCategory.Product == itemRecID<br /> # join ecoResCategory where ecoResCategory.RecId == ecoResProductCategory.Category<br /> # {<br /> # while<br /> # select ecoResCategoryAttributeLookup where ecoResCategoryAttributeLookup.Category == ecoResCategory.RecId<br /> # join ecoResAttribute where ecoResAttribute.RecId == ecoResCategoryAttributeLookup.Attribute<br /> # {<br /> # select ecoResAttributeValue where ecoResAttributeValue.Attribute == ecoResAttribute.RecId<br /> # join ecoResProductInstanceValue where ecoResProductInstanceValue.RecId == ecoResAttributeValue.InstanceValue && ecoResProductInstanceValue.Product == itemRecID<br /> # join ecoResTextValue where ecoResTextValue.RecId == ecoResAttributeValue.Value;<br /> #<br /> # if (strLwr(strLRTrim(ecoResAttribute.Name)) == strLwr(strLRTrim(_attributeName)))<br /> # {<br /> # if (strLwr(strLRTrim(ecoResTextValue.TextValue)) != strLwr(strLRTrim(_attributeValue)))<br /> # {<br /> #<br /> # ttsBegin;<br /> # while select forUpdate ecoResTextValue_ForUpdate<br /> # where ecoResTextValue_ForUpdate.RecId == ecoResTextValue.RecId<br /> # {<br /> # ecoResTextValue_ForUpdate.TextValue = _attributeValue;<br /> # ecoResTextValue_ForUpdate.update();<br /> # }<br /> # ttsCommit;<br /> #<br /> # select ecoResTextValue_ForValidation where ecoResTextValue_ForValidation.RecId == ecoResTextValue.RecId;<br /> #<br /> # if (ecoResTextValue_ForValidation.TextValue != _attributeValue)<br /> # throw error('An exception was raised - could not update the attribute value. (ProductAttributesCopy/setProductAttributeValue)');<br /> #<br /> # }<br /> # }<br /> #<br /> # }<br /> # }<br /> #<br /> # }<br /> # else<br /> # {<br /> # throw error('An exception was raised - the product does not exist. (ProductAttributesCopy/setProductAttributeValue)');<br /> # }<br /> #<br /> #}<br /><br /> </span></span></span><br />
<span style="color: #444444;"><span style="font-family: Verdana,sans-serif;"><br /></span></span>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com10tag:blogger.com,1999:blog-4889748320010274206.post-30191889873894795122013-01-25T11:15:00.000-05:002013-01-25T11:17:04.241-05:00SpotLight: How to use X++ Delegates in Dynamics AX 2012 <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8zAhZroDfYHWTazj2U6Hl45nEaDVDG2GuGpv1pF_agLvvZFicjGKhBdkyAR5IYVCpj_FBKo3ceG4nHNZoxu92vA47zYAFJJSSfx4X0G7sLwPtBTEXnMbPCulWoFDpGCpGk-5tjDju6tP3/s1600/PowerfulSimply3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8zAhZroDfYHWTazj2U6Hl45nEaDVDG2GuGpv1pF_agLvvZFicjGKhBdkyAR5IYVCpj_FBKo3ceG4nHNZoxu92vA47zYAFJJSSfx4X0G7sLwPtBTEXnMbPCulWoFDpGCpGk-5tjDju6tP3/s400/PowerfulSimply3.jpg" width="400" /></a></div>
<br />
<span style="font-family: Verdana,sans-serif;">Hi there,</span><br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;">I hope you are ready for a long and restful weekend. Certainly, I'm as this has been a tough week with lots of new challenges and lots of new learning, which is great. </span><br />
<br />
<span style="font-family: Verdana,sans-serif;">On this post I would like to point out a very interesting post about <span style="color: blue;">using delegates in Microsoft Dynamics AX 2012</span>. The post was written by Marcos Calderon, who works for Microsoft as their SDE Lead. </span><br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;">In his post he starts by showing us how to create a delegate in Microsoft Dynamics AX 2012, then he explains what delegates are and why they are used. He also explains what <span style="color: blue;">Event Handlers</span> are and their relationship to the AX 2012 AOT. </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoC_Z6oausazxej4R3yrC1C5K6RjQr_sH-3hBxJjVaqG5UjBFhyphenhypheno6pliDxuKfRYjeYkhwDvdogx42eN-QB-meXQY74Aimd68OuF5WDpqq7cgNbfU6YZ4dKUzX-jMKIeQ7Oac8DA7a4LLSP/s1600/add+delagates+to+AX.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoC_Z6oausazxej4R3yrC1C5K6RjQr_sH-3hBxJjVaqG5UjBFhyphenhypheno6pliDxuKfRYjeYkhwDvdogx42eN-QB-meXQY74Aimd68OuF5WDpqq7cgNbfU6YZ4dKUzX-jMKIeQ7Oac8DA7a4LLSP/s1600/add+delagates+to+AX.jpg" /></a></span></div>
<div style="text-align: center;">
<br /></div>
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;">Finally, he give us an example on how to add an event handler <span style="color: blue;">programmatically </span>in X++, and how to publish the subscriber into the same tier for later use. </span><br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;">From the post:</span><br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;">"<i>...X++ delegates expose the publisher -subscriber pattern where a delegate defines a clear contract in a publisher class. This contract is used when an event occurs where the event can be a change of state, where all interested classes receive notification that the event has occurred.</i>"</span><br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;"><a href="http://blogs.msdn.com/b/x/archive/2011/08/02/how-to-use-x-delegates-in-dynamics-ax-2012.aspx" target="_blank">You can access his post from here</a>.</span><br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;">Well folks, that's all for now and until the next post!</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSAWNl81kM8-rF5YBJuaupcd8Ol5uw_dbimf8o1OWZ2d1gdpScRGEQiGfymbfW65-Y3hCOrXsW09mcY-hFiQtMlhJCu4t6KveWTAHnt5tsPdE5H50V9qLr6gtTOVsXrZMR40SSKFxeVaFq/s1600/PowerfulSimply2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSAWNl81kM8-rF5YBJuaupcd8Ol5uw_dbimf8o1OWZ2d1gdpScRGEQiGfymbfW65-Y3hCOrXsW09mcY-hFiQtMlhJCu4t6KveWTAHnt5tsPdE5H50V9qLr6gtTOVsXrZMR40SSKFxeVaFq/s400/PowerfulSimply2.jpg" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
<span style="font-family: Verdana,sans-serif;"><br /></span>AxWondershttp://www.blogger.com/profile/01901411966215366187noreply@blogger.com0