Posts Tagged ‘ Power Apps

How to Create a Batch Job with SysOperation Framework?

In this article, I will try to explain how to create a new Batch Job for Dynamics 365 Finance and Operations using SysOperation.  We can say that SysOperation is a more advanced version of RunBaseBatch. It has many different uses. In this example I will explain its usage as a normal batch job. As for its structure, SysOperation uses the MVC (Model – View – Controller) design pattern. The basic classes of this structure are:

Service: The service class is derived from the SysOperationServiceBase class. It is the class in which the process is done. Our codes should be in this class.

Data Contract: It is the model class for which we define attributes. The DataContractAttribute attribute is used to get data from the dialog.

Controller: The control class is derived from the SysOperationServiceController class. Stores information about the batch job. Such as dialog and progress bar.

UI Builder: The UI Builder class is derived from the SysOperationAutomaticUIBuilder class and is used to provide more advanced interfaces to dialogs.

In this example I will do the same as we did with RunBaseBatch using the first 3 classes. First I create a new project.

Image-1

I add a new class.

Image-2

The first class is the control class. We haven’t created the service class yet, but I identified and typed its name.

Image-3

Let’s create the service class now.

Image-4

I write the code below. Actually I need the Contract class here. Let’s create it.

Image-5

I create the Contract class. Usually this class should be created first. But if your design is clear, it doesn’t matter which one you start with. You won’t be typing these codes over and over every time, you will use them from a template.

Image-6

I want to get two variables here and edit my class accordingly.

Image-7

I create a MenuItem.

Image-8

I link my control class to the MenuItem.

Image-9

After this stage, compilation is required. It’s not enought to just compile the project. Therefore I click Build models.

Image-10

Click Select all on the screen that opens and start a Build operation.

Image-11

After the Build operation is completed, mark your MenuItem as the starting object and run the project. Our class worked. You can run it directly just like you did with RunBaseBatch.

Image-12

You can add it to a batch job if you want. I added it to a batch and set it to run one time.

Image-13

Now let’s open the Batch Jobs form. Let’s find our own batch job and take a look at the progress. It is Ended, which means it worked and finished. If it was a recurring job, it would be in Waiting state. I click on Batch job History to check what our batch job has done and whether it worked correctly.

Image-14

I click Log from the details of the job and it shows the output of the batch. It worked without any problems.

Image-15

In this article, I tried to explain how to create a new batch job using SysOperation. SysOperation is a very extensive topic. I will continue to explain it with different viewpoints. Especially Parallel processing works very well in terms of performance. I’ll explain how to use it in an example.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Batch Jobs, SysOperation, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

How to Move Dynamics 365 Finance and Operations Security Objects?

In this article, I will explain how you can move security objects to different environments through Dynamics 365 Finance and Operations application. To do this, I prefer to create objects in Visual Studio and follow the classic development process. However, a software developer is needed for this, and software developers do not always do the security work. So we can perform the same process from the interface. Actually, this is a standard Export / Import process. Now let’s see how it is done.

I will use the role I created in my previous article. I open the System Administration-> Security Configuration form.

Image-1

I choose the role I want to export and click Data->Export.

Image-2

It creates an xml file. You can save it anywhere you want.

Image-3

It is useful to examine XML, you can see more clearly what you have exported.

Image-4

This is the Export process. Let’s delete this role first in order to be able to Import it.

Image-5

Deleted or imported objects go to the Unpublished Objects tab. When you publish from here, the process is completed. To complete the deletion, click Publish All.

Image-6

Click Import from the same menu.

Image-7

Select the Exported file from the window that opens.

Image-8

After the selection, import process takes place. Your objects go to Unpublished Objects again. Here, different objects appeared. I investigated the reason for this. When exporting, people say that related objects appear here. It didn’t make much sense, but you should click Publish All.  After that, if you look at the Role list, you can see that the role you deleted appear.

Image-9

In this article, I briefly explained how security objects can be Exported / Imported through the application. There is a point to note here. If the security objects belong to a newly developed application, these objects must be moved first. Otherwise, you make an incorrect operation.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Security Export Import, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

What is Dynamics 365 Finance and Operations Segregation of Duties?

Segregation of Duties görev ayrılığı olarak çevriliyor. Let me explain it with an example. Let’s say you want two critical Duties not to be assigned to the same person. For example, two duties such as invoice processing and payment should not be assigned to the same person. You are in a company where thousands of people work and it is not possible to track at a certain stage. Here SoD comes into play. A definition you make through Duty gives you a warning for such situations and allows you to control them.

Let’s see an example using the security objects we used in previous articles. Open the Security Configuration form.

Image-1

From the Segregation of duties tab, click on the Segregation of duties rules button. This form is also available directly on the menu. You can see it in Image-9.

Image-2

There are no records yet in the form that opens. Let’s create one by clicking New.

Image-3

Specify a name and select two Duties. I have chosen two sample Duties. The only thing I pay attention to is, I know which roles these two Duties are used in. I will need it to show the example. Of course, you will make this definition according to your business needs.

Image-4

After saving, it comes to my test user. FD Customer listing task is attached due to its current role. I add a new role and select one that includes Customer Invoicing. When I click add, there is a warning saying that a conflict occurred. If I click Yes, it will create a solution record for me.

Image-5

The record created includes information about this operation. I can accept assignment with the Allow Assignment option.

Image-6

Accepting means overriding the rule, so it asks for an explanation. After providing one, we have added the role. We could have blocked it if we wanted to.

Image-7

When you create a new SoD, you can check if there are anything that does not follow this rule. There is something that doesn’t follow my rule, but since we created an override record it didn’t appear here.

Image-8

You can follow the created records from the menu in Image-9.

Image-9

In this article, I have tried to explain briefly what Segregation of Duties is. Although it is a very nice feature, it still has many deficiencies. For example, it only works with Duty, but there is no solution for direct Privileges assigned to a Role. It asks when adding it to the role, but it does not have a mechanism that controls the changing duty contents afterwards. It is possible to use it. Especially if you do not define authorization other than Duty and create your Duties with the right logic, you can use it very easily. Investments are still being made in this feature, I think it will become much more developed in a short time.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Segregation of Duties, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

How to Move Developments to Dynamics 365 Finance and Operations Test and Live Environments? 3- Build

How to Move Developments to Dynamics 365 Finance and Operations Test and Live Environments? 3- Build

In this article, I will talk about how to perform the Build operation required to move the developments we made from Visual Studio for Dynamics 365 Finance and Operations to Test and Live environments. Build needs to be performed on a certain Branch. When Build is complete, if there is no error, it will generate a Deployable Package for us. We need this package for code migration.

You have to perform Build through Azure DevOps, not from Visual Studio. After logging in as a user with admin rights, open the Pipelines tab. Unified Operations platform – Build Main will be created automatically when you set Azure DevOps settings via LCS. We will take this as basis. Since our environment is only Main Branch, I continue without making any changes in the basic settings.  First let’s see how we can run it, then we will examine the other settings.

Image-1

Click the Edit button from the ellipsis menu.

Image-2

Build steps are listed.

Image-3

If you want to build a different Branch, you need to change the Server path. We are making a change here.

Image-4

You can right click and Disable steps that are not required at this time. I disabled the Deploy Reports step because I do not have a report development.

Image-5

The main step is Build the solution. Our Branch path is here again. If you want to build a different Branch, you should change this as well.

Image-6

Click Queue. Whn you click Run in the popup window, Build operation starts.

Image-7

You can follow the Build steps.

Image-8

If it completes with no errors, it will look like the following. If it gives errors, it is necessary to examine the logs and errors. Generally there are not very complex problems. There are cases such as missing reference, incorrect Check-in, but there may be situations that need to be further examined. You can open it by clicking on the record.

Image-9

When you enter, all your previous Builds will be listed. You can view their status and information. The first record is our last Build, completed without error. Click to open it.

Image-10

You can see details about the Build here. Click and open the relevant part (3 published).

Image-11

Under Packages, Deployable Package starting with AxDeployableRuntime is created. We need to download it from here and upload it to the LCS. I will explain this in my next article.  At this stage, the Build operation is done. Now let’s look at how you can create a new Pipeline.

Image-12

Main Pipelines are created by default. If you want to create them in other Branches, you either make all the definitions manually, which is very demanding, or you can use the Clone or Export features. For both cases, do not forget to change the path settings for the new Pipeline.

Image-13

You can Import the Exported file from the following path again. Generally code is transferred to live environment from Main or Release Branch, and to test environment from Dev Branch. Of course, these are approaches that vary depending on the project and the team.

Image-14

In this article, I tried to explain how Build is triggered through Azure DevOps. A machine is required for Build right now, but we will soon be able to do this thanks to an agent. It will be a faster and inexpensive solution. By completing this stage, we have reached the final stage in code migration. In my next article, I will explain how we deploy code over LCS.

Regards.

www.fatihdemirci.net

Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Build, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

How to Add a User to Dynamics 365 Finance and Operations?

In this article, I will try to explain how to define new users for Dynamics 365 Finance and Operations. If you want to add users to the test and live systems, you usually use import from Azure Active Directory. If you want to create a test user for your development machine, you can create a new user. Let’s take a look at both now.

First, open the System Administration->Users form. You must login as a user with the Admin right. If this is a development environment, the account you used for installation already has this right. I explained it in my previous articles.

Image-1

Click Import users, and the page that opens lists the users we can import. You can import the users you want.

Image-2

An information message appears. Then you need to grant the users the necessary roles. In the old version, there was a role assignment tab during Import. The new version does not have it. I think it was a nice feature. It gets messy especially when I transfer multiple users.

Image-3

Now let’s add a user that is not in Azure Active Directory. For example, I need to do some tests on my own development machine, or consultants need to do the initial tests in VM. Of course, security should be involved in these tests because when I open the application via VS, it opens as Admin and does not have any security restrictions. I need a user to assign the required roles. So I need to create a new user.

I click New and start creating. I enter the user information. I used a Hotmail account. You need to change the Provider according to the account you use.

  1. If it’s an account that’s in its own AAD Domain: https://sts.windows.net
  2. If it’s an account that’s in a different AAD Domain: https://sts.windows.net/XXXXX.XXX, (https://sts.windows.net/emiralfg.com)
  3. If it’s a Microsoft account: https://sts.windows.net/hotmail.com

Image-4

User is created after saving. In Image-4 the Provider is missing. It should be as in Image-5. Add new role by clicking Assign Role. Here you can assign any role you want. You can also have your own roles created for testing. Since I want to use it like Admin, I assigned the role of Admin.

Image-5

I try to open an InPrivate browser, paste the address of the environment, and login with my user.

Image-6

I entered the environment without any problems. Since I logged in from a different environment, a few security steps were required, but it didn’t cause any problems.

Image-7

In this article, I tried to explain how to add users to different environments of Dynamics 365. Security and user management is very important. Many details are available and I plan to mention them in the following articles.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Import User, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

How to Update the Version in Dynamics 365 Finance and Operations Environments?

In this article, I will try to explain how you can update the versions of your Dynamics 365 Finance and Operations environments. First of all, we should give credit where it is due. Microsoft made the ERP system update almost like the Windows 10 update with a very good solution. I think the One Version approach is a revolution in business software. All customers using ERP in the cloud have to receive updates published periodically. The good thing here is that Microsoft updates the system at will, thanks to the Extension approach. Your developments are rarely affected by this. In the old system, it was a process that took months to even upgrade to a higher update. Now you can get it done in days or even hours.

In this article, I will explain how to upgrade a demo environment from CU34 to CU35.  First, select your project.

Image-1

Select the environment you want to update.

Image-2

Your environment information appears. Go down and look at the update information.

Image-3

It says that there is an update. Click View Update.

Image-4

It shows all of the update packages. Click Save package.

Image-5

Here I have selected all the packages. You must do this for the version update. If you need different updates, you can choose the package directly from here. Then click Save package.

Image-6

Name the package and click Save package.

Image-7

This takes some time depending on the size of the package.

Image-8

If it completes without error, the following explanation will appear. Complete the process by clicking Done.

Image-9

Go to the Asset library and open the Software deployable package tab. Package has arrived but has not been approved yet. We have to wait for a while.

Image-10

After approval, open your environment again and click Apply updates.

Image-11

Select your package from the page that opens and click Apply.

Image-12

The confirmation screen will appear. Click Yes and continue.

Image-13

It says our version will be updated. Click Yes.

Image-14

After that, the update process starts. You can track the status of the environment here. If there is no problem within 1 hour, the process will be completed. If there is a problem, you can refer to the log to see the origination.

Image-15

When the update is complete, if there was a problem, there are options such as undo and retry.

Image-16

In this article, I explained how an environment is updated to the new version. It’s a very simple process. If you need to update multiple environments, you don’t need to create packages for all of them. You can use the same package for all your environments. Make sure your environment is open before starting the update. If you turn off the machine from Azure side, LCS doesn’t see it. After the update is complete, it is useful to start a synchronization via VS for demo environments like this.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Update, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

How to Create a Batch Job with RunBaseBatch Framework?

In this article, I will try to explain how to create a new Batch Job for Dynamics 365 Finance and Operations. I will create an example using RunBaseBatch. I will give examples with SysOperation in my future articles. Let’s look at what batch job is. It is an infrastructure that is used to run a job on a different server and at a certain time, repeatedly. Let me give you the simplest example. The central bank announces the exchange rates at a certain time every day. You need to take these values and save them in the system. You have written a class for this and that class connects to the service and gets the values. However, this has to be triggered at the same time every day. This is where batch jobs come in and allow you to make these settings.

In this example we will create and run a very simple class. First I create a new project.

Image-1

After the project the class is required, but we will not create it from scratch. We will duplicate the Tutorial_RunBaseBatch class from the samples.

Image-2

Let’s give a name to the class we duplicated. There are a few things to consider. First of all, don’t change the structure of the class. It works smoothly as is. If you don’t need dialogs, you can clear them. It is essential to derive from RunBaseBatch. You must use Pack Unpack. Pack Unpack ensures that your parameters are stored in the system. It is such an extensive topic that needs a dedicated article.

Image-3

When a class is duplicated, the name of the old class remains in a few places. These need to be fixed. I changed the Main method to this.

Image-4

Similarly, I changed the construct method in this way.

Image-5

Run method is where the main work is done. In this sample class a dialog opens and asks for the date and client code. I print the values coming from this dialog in the run method.

Image-6

I create a new MenuItem to run the class.  I select the Object and ObjectType.

Image-7

I mark the MenuItem as the starting point.

Image-8

When I run my project, the dialog screen opens. I enter a date and select a client. I select No for Batch processing. When I click OK, the class will directly work.

Image-9

The class worked and displayed the output on the screen.

Image-10

Now let’s see what happens when I click Yes. Of course, this appears because we derived our class from the RunBaseBatch class. After I defining a few important areas, I click Recurrence.

Image-11

Here I can determine how often and when this job will run. I can get it running every 10 minutes if I want, but it’s enough for me to run it once, so I leave it like that.

Image-12

The class did not work when I closed the screens by clicking OK. Instead, it showed the message saying that it added to queue.

Image-13

Now let’s open the Batch Jobs form.

Image-14

Let’s find our own batch job and take a look at the progress. It is Ended, which means it worked and finished. If it was a recurring job, it would be in Waiting state.  I open the advanced form by using the Switch to enhanced form option.

Image-15

This form includes more details. I will not mention all of them. I click on Batch job History to check what our batch job has done and whether it worked correctly.

Image-16

When I click Log from the screen that opens, I see that the date and customer information I selected appear on the screen. So my class worked. If there was an error I could check it here.

Image-17

In this article, I tried to explain how to create a new batch job using RunBaseBatch. Batch job is a very extensive topic. I will continue to explain it with different viewpoints.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Batch Jobs, RunBaseBatch, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations Data Management 1. How to Import Data?

In this article, I will introduce Dynamics 365 Finance and Operations data management infrastructure (Data Management Framework). The scope of data management is very large. I will try to talk about the basic principles in this series. Data is very important for every application, but the reason for the existence of ERP is to collect the data correctly and to create meaningful reports from the collected data. For this reason, the product has always had powerful tools for data management. With the cloud, these are now very advanced. Many different technologies such as CDS and Azure DataLake were involved. Of course, SQL and table structure remains, but with the added Data entities structure, we have a much more flexible and easily managed structure. In this section, I will try to explain how to manage Data Entity and Entity Packeges using the data management infrastructure.

The data management infrastructure consists of the following objects.

  • Data entities – They are meaningful data sets. It is a structure that consists of one or more data sources to view and process a certain data. Data Entity allows us to bring these data sources together and perform transactions over a meaningful data set. It is suitable for reuse. It is used for integration, data transfer and many other purposes.
  • Data project – A project record that holds edited Data Entity and relationships. It can be reused.
  • Data job – Includes run Data Projects, uploaded files and recurring processes.
  • Job history – Keeps the history of transactions.
  • Data package – It is a compressed structure with Data project manifest and Data files. It is created over the data job. It allows importing and exporting multiple files in one operation.

You can use this structure for three different scenarios:

  • Data migration
  • Set up and copy configurations
  • Integration

Let’s get to the topic of this article. We’ll start with a very simple data transfer. We will transfer the vendor group. (VendGroup). Log in to Dynamics 365 Finance and Operations and open Workspaces > Data management worksheet.

Image-1

Click Framework parameters Tile. Tile’ı nasıl çevirmek lazım emin olamadım. En iyi uygunu tuğla veya fayans gibi duruyor ama ben karo diyeceğim. J  You can make many settings from the screen that opens. Now just select the View defaults section as Enhanced view.

Image-2

This is now the advanced view. You can return to the old view by selecting Standard view.

Image-3

Click on the Import tile.

Image-4

Enter the basic information and click Add File.

Image-5

By the way, the data I will transfer is a csv as shown below.

Image-6

From the window that opens, I first select the Entity I want to transfer from. I determine the format. I select my file by clicking Upload and add.

Image-7

I click Yes.

Image-8

Here it says some relationships are missing between my file and the Entity. I can do it here if I want. I lick No for now.

Image-9

Transfer failed due to lack of relationships. However, the project was created. I click the icon under view map.

Image-10

It shows the links between my file and the Entity. Since the headings in my file are tags, it could not auto-match. I can do it manually from here.

Image-11

I have completed my mappings and I save.

Image-12

I go to my project and click Import.

Image-13

It adds the transfer to the working list.

Image-14

It quickly completed the transfer because my data was too little.

Image-15

Now I can open the VendGroup form and see the records I imported.

Image-16

In this article, I made an introduction to data management and performed a very simple data transfer. I will talk about very different uses of this structure in my following articles. Both consultants and software developers need to know the capabilities of this very well. There are many different uses. It is a structure that will save you a lot of time with proper use.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Data Management Framework, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

How to Move Developments to Dynamics 365 Finance and Operations Test and Live Environments? 2- Merging Code Between Dev and Main Branch.

In this article, I will talk about Merge, which is the second step required to move the developments we made from Visual Studio for Dynamics 365 Finance and Operations to Test and Live environments.  Merge is basically to transfer code between different folders and branches. Our example has two Branches: Dev and Main. The general approach is to transfer the code to Test environment with Dev Build. Then for the approved developments, it is necessary to perform Code Merge from Dev Branch to Main Branch and then create a Build on Main and transfer to live environment. Of course, these are just approaches that you may choose from. You should decide on one of these methodologies according to your own team and the requirements of the project.

So, how do we Merge from Dev to Main? First, open Visual Studio with admin rights.  Open the Team Explorer-> Source Control Explorer screen. In my previous articles, I explained how to connect DevBox to Azure DevOps. So, I directly see my Azure DevOps project. We used a different folder structure in this project.

Image-1

Right click on the Branch you want to start Merge and select Branching and Merging-> Merge.

Image-2

Source Control Merge Wizard opens. Source Branch and Target Branch appears automatically. You can change them if you want. Here I need to talk about Changeset. Changeset is a structure that contains all the objects in a check-in. An automatic ID is created and the transfer operations are usually done with this ID. Select Selected changesets here and continue. I will talk about the other option below.

Image-3

All Changesets that have not been merged will be listed. You are free to choose.

Image-4

When choosing, be careful not to leave any spaces between Changesets. Spaces can cause a lot of Conflicts and they are annoying to deal with. You should track this regularly and properly. Click Next to proceed.

Image-5

A summary screen appears and if you click Finish, the process is completed. In this environment, I do not continue as Merge is not ready yet.

Image-6

Let’s see what happens if we continue with the other option. If proceed by selecting All changes up to a specific version, we can Merge according to certain types.

  • Changeset: When you select this option you can enter any Changeset number. In addition, you can search for Changeset by clicking (…) here and select the Changeset you want from the search window.
  • Date: This option allows you to choose changes for a certain date.
  • Label: It is a mechanism that allows you to take snapshots of your development. If you use it, you can make choices for it here.
  • Label Version: It allows you to choose versions if you are using the Label mechanism.
  • Workspace Version: With this option, Devbox allows you to choose the workspace you are working on.

Image-7

If you choose Changeset, you can search for a specific Changeset number and proceed with the results.

Image-8

In this article, I talked about the Merge logic used for transferring code between branches. It is not essential to transfer the code for the test and the live, but it is necessary to determine the right strategy and automate them. The DevOps engineer has become a very important role for our applications. Now that we have transferred the codes, we can move on to the 3rd stage, Build creation.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Merge, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

How to Move Developments to Dynamics 365 Finance and Operations Test and Live Environments? 1- Developing and Sending to Azure DevOps.

In this article, I will try to explain how to move the developments we made from Visual Studio for Dynamics 365 Finance and Operations to Test and Live environments. I thought of wrapping it up in a single article, but I realized it would be too long so I divided it into sections. In this first article, we will make a new development and compile it, then we will do the first tests in our development environment, and finally, we will send our development to Azure DevOps. In the other articles of this series, I will explain how to Build in Azure DevOps and how to move the package to test and live environments.

Let’s have a look at our example. I will write a simple class and make an information screen appear when it is run. Then I’ll create a MenuItem and connect it to the Menu. In my previous articles, we created the DmrWMS model and the DMRWms1 project. I will use this project. Right click on the project and click Add New Items. Select Class as its type, name it and click Add.

Image-1

I added the following codes to the class. It has a very simple structure. I made it work on its own with Main. I gave an Info in the Run method.

Image-2

Now let’s create the Menu Item that is necessary to run our class and add it to the menu. Select Action Menu Item from the Add New Items section, name it and click Add.

Image-3

Select the Object Type Class from the resulting Menu Item properties. Select the class you created as Object. Do not forget to set Label as it will appear in the menu.

Image-4

Let’s test the development now. Right click on the project and click Build.

Image-5

If Build is completed without any errors, mark the Menu Item we created as Set as Startup Object and run it by clicking Start.

Image-6

It called the Menu Item class and displayed the notification on the screen. Our code works J

Image-7

Now we can add it to a menu. Since I want to add it to a standard menu, I must use Extension. I will explain the Extension logic in my next articles, but here you can think of it as an extension of the standard object. You can add new things without breaking the standard. I created an Extension of the AcountsPayable menu with the Create extension option, as shown in the picture.

Image-8

I drag and drop my own Menu Item under PeriodicTask to the resulting menu.

Image-9

I Build my project again and run it.  Build Test appears in the menu. Our development is almost ready to send to version control. Normally it is necessary to add security related objects here. I’m skipping them for now.

Image-10

I click Team Explorer-> Panding Changes.

Image-11

I should see all the objects I’ve created. If there is something missing, I need to add it with Add to Source Control. If you have followed me here, it will automatically add when the object is created. I add a comment and click Check In.

Image-12

I click Yes to complete the process.

Image-13

When I check my Azure DevOps project, I can see all my objects. I am now ready to run Build.

Image-14

In this article, we have made the initial preparation to move developments to test and live environments. We created a simple project, performed the first tests and sent it to Azure DevOps. After this stage, if I had a Dev Branch, I had to perform Merge first. But in our example, since we work directly with main, we are ready to start Build. I will talk about how to perform Merge later.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps,Build, Deploy to Test,  Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apps, Power Virtual Agents, what is Dynamics 365, Dynamics 365 ERP, Dynamics 365 CRM

Page 1 of 212