Posts Tagged ‘ Power Virtual Agents

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

Dynamics 365 Finance and Operations için yeni bir X++ geliştirme sanal makinesi nasıl ayağa kaldırılır?

Bu yazıda yeni bir X++ geliştirmeleri için yeni bir sanal makine nasıl ayağa kaldırılır adım adım anlatmaya çalışacağım. Bu örnekte bir müşteri ortamında bunu asıl yapacağınızı anlatacağım. Partner veya eğitim amaçlı sanal makinelerde benzer bir mantığa sahip.

Öncelikle Lifecycle Services’a giriş yapıyoruz. Projemizi seçip hamburger menüden Cloud-hosted environments’ı seçiyoruz.

Resim-1

Read more

Dynamics 365 Finance and Operations Data Entity nedir ve nasıl oluşturulur?

Bu yazıda X++ ile yeni bir Data Entity nedir ve nasıl oluşturulur anlatmaya çalışacağım. Öncelikle Data Entity nedir ondan bahsedelim.

Data Entity: Manalı veri kümesi diye özetleyebiliriz. Özellikle Ax2012 ile veri yapısı Normalizasyon mantığına uygun olarak çok fazla tabloya bölündü. Bu sebepten belli bir veriyi görmek ve işlem yapmak için birçok tablonun bir araya gelmesi gerekiyor. Data Entity bizim için bu veri kaynaklarını bir araya getirip anlamlı bir veri kümesi üzerinden işlemleri yapabilmemize olanak sağlıyor. Bizim örneğimizde olduğu gibi kitap ile ilgili 3 tablomuz var ve bunlar aslında birbiriyle ilişkili bir Data Entity ile bu tabloları tek yapıda görüp işlem yapabiliyoruz.

Çok fazla kullanım alanı var. Bunları zamanla anlatmaya çalışacağım. Şimdi yeni bir Data Entity Visual Studio üzerinden nasıl oluşturulur onu görelim.  Benim YouTube kanalım için yaptığım örnek bir kütüphane projem var. Onun üzerinden devam edeceğim.

  1. Projeye sağ tıklayıp AddNew item ile yeni Add New Item diyaloğunu açalım.
  2. Data Model > Data Entity, seçip Data Entity adını tanımlayalım.
  3. Add’e tıklayıp Data entity wizard’ı açalım.

Resim-1

Read more

RunBaseBatch Framework İle Toplu İş Nasıl Oluşturulur?

Bu yazıda Dynamics 365 Finance and Operations için yeni bir toplu iş (Batch Job) nasıl oluşturulur anlatmaya çalışacağım. RunBaseBatch kullanarak bir örnek oluşturacağım. İleriki yazılarımda SysOperation ile de örnekler vereceğim. Toplu iş nedir ona bakalım. Bir işi farklı sunucuda ve belli zamanda istersek tekrarlayan şekilde çalıştırmaya yarayan bir alt yapı diyebiliriz. En basit örneği vereyim. Merkez bankası her gün kurları belli saatte açıklıyor. Sizin bu değerleri alıp sisteme kaydetmeniz gerekiyor. Bunun için bir sınıf yazdınız ve bu sınıf servise bağlanıyor ve değerleri alıyor. Ancak bunun her gün aynı saatte tetiklenmesi lazım. İşte burada toplu iş devreye giriyor ve size bu ayarları yapma imkânı veriyor.

Bu örnekte çok basit bir sınıf oluşturup çalıştıracağız. Öncelikle yeni bir proje oluşturuyorum.

Resim-1

Read more

How to Define Authorization from Dynamics 365 Finance and Operations Development Environment?

In this article, I will try to explain how to create authorization objects from Visual Studio through the Dynamics 365 Finance and Operations development environment. In my article named How to Define Authorization from Dynamics 365 Finance and Operations Interface? I explained how the authorization objects are created from the interface. As I said in that article, my preference is to create the authorization from the development environment. There are several reasons. Most importantly, objects created from the development environment can be included in version control. In this way, they will be directly in your package and the transfer to the desired environment will be made with your development. I think it’s easier to manage.

I will now do the same example that I did in my previous article through Visual Studio. My test user only has the System user role.

Image-1

My test user can only see two modules in these roles.

Image-2

I want to authorize the All customers form.

Image-3

I find the relevant MenuItem on VS. This will be my entry point (EntryPoint) and all authorization assignments will be done through this entry point.

Image-4

I go to my project and add a new object.

Image-5

First, we will create a Privilege. I select and name it, and click add.

Image-6

Drag and drop the CustTableListPage MenuItem to the Entry Points tab of the Privilege created. Entry point is created. From its properties, select delete as the Access Level. Delete means full authorization. You can choose the level you want from here. Update and Correct might be confusing for you. Update is the data update authorization. Correct is used in tables with Valid Time State property.  Valid Time State is a mechanism that allows you to perform automatic date checks. I will prepare an article about this later.

Image-7

Now create a Duty.

Image-8

Drag and drop the Privilege to the Duty you created.

Image-9

Next step is creating a role.

Image-10

If you want, you can grant Privilege directly to the role you created, but it’s best to follow the steps. That’s why we used Duty. You can drag and drop it. The new role is created.

Image-11

In some cases, it may be necessary to clear the Caches. You can call the SysFlusData class as shown in Image-12.

Image-12

Objects you create via VS will not appear directly in the application. I’m not so sure why but they are visible after DB sync. This is actually data. I don’t know why it needs that.

Image-13

After these operations, you will see the objects you have created when you open the application.

Image-14

You assign roles to our test user.

Image-15

When you log in to the application, you can see the All Customers form.

Image-16

In this article, I tried to explain how to create security objects via VS. You must take the security and authorization very seriously. If not set up correctly, it can get messy. Try to manage it from the highest level possible. If you go deep into details, it becomes very difficult to manage. Do it if the new role is really required. Use Duty to get things done as much as possible. Do not assign more than 3-5 roles to a user. Too many roles can lead to performance issues.

Regards.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Security , Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apss, 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

Yeni bir Dynamics 365 Finance and Operations uygulama projesini Microsoft Life Cycle Services (LCS) üzerinden nasıl ayarlanır.

Bu yazıda size Dynamics 365 Finance, Dynamics 365 Supply Chain Management veya Dynamics 365 Commerce için yeni bir lisans satışından sonra uyarlama projeyi başlatmak için gerekli olan adımları anlatmaya çalışacağım.

Öncelikle firmanın Tenant Administrator hesabıyla Azure Active Directory (Azure AD) de aşağıdaki adımları takip ederek aktivasyon işlemi yapılmalı:

  1. InPrivate/Incognito olarak yeni bir oturum oluşturun ve Microsoft 365 Admin Center’ı açın.
  2. Tenant Administrator hesabıyla giriş yapın.
  3. Billing > Products & services gidin ve orada aldığınız ürünün olduğundan emin olun. Eğer yoksa iş ortağınızla iletişime geçin.
  4. Eğer ürün aboneliği (Subscription)  aktifse uygulama projesi (Implementation Project) oluşturmayı tetiklemek için LCS ye giriş yapın.
  5. Yeni bir sayfada LCS’e Tenant Administrator hesabıyla giriş yapın.
  6. Ekrana çıkan kutucukları onaylayın böylece proje oluşturulmuş olacak.
  7. Tenant Administrator otomatik olarak Project Owner rolüne atanır. Bundan sonra projeyi LCS de görebilirsiniz.

Yukarıdaki adımları tamamladıktan sonra eğer bir sorun yoksa Resim-1 de görünen uyarlama(Implementation) projesi oluşacak.

Resim-1

Read more

Microsoft iş çözümlerini tanıyalım. ERP, CRM, BI, AI, Bulut ve ötesi.

Microsoft iş çözümlerini tanıyalım. ERP, CRM, BI, AI, Bulut ve ötesi.

Bu yazıda size Microsoft iş çözümlerini tanıtacağım. Microsoft iş çözümlerine çok fazla yatırım yapıyor. Bunun sonucu olarak sürekli yeni bir ürün çıkıyor veya olan bir üründe isim ve içerik değişikliği olabiliyor. Bu bazen bizim için bile kafa karıştırıcı oluyor. Çok ayrıntıya girmeden aşağıdaki resimde bulunan her kutucuğu size izah etmeye çalışacağım.


Resim-1

Read more

How to Define Privileges from Dynamics 365 Finance and Operations Interface?

In this article, I will explain how to create privilege objects from Dynamics 365 Finance and Operations interface. In my previous article, I explained how fatih.test user was created. I will show an example based on this user. I deleted all roles of the user except system user. I will define a new role and grant privilege a certain object.

Image-1

You can see the menus in Image-2 only when you enter the application with the System user role.

Image-2

In this example, I will define a role that is authorized only for the All Customers form.

Image-3

First, find the name All Cutomers MenuItem. I looked it up from the development environment. You can also see it on the form. CustTableListPage

Image-4

Open your application with a user that has admin privilege and open the System Administration -> Security Configuration form. Got to the Privileges tab and click Create new. Enter the name from the window that opens and click OK.

Image-5

You must define the privilege for the privilege created. We want to authorize a Display menu Item. While on the Display menu Item record, click Add references. Filter and select CustTableListpage from the window that opens. Select Grant for all of them and click OK. We have defined the authorization.

Image-6

Go to the Duties tab and Click New. Enter a name and create.

Image-7

In order to add Privilege over the resulting Duty, we select the Privilege we created by clicking Add Reference.

Image-8

Go to the role tab and create a new role.

Image-9

Similarly, add the Duty you created previously as a reference.

Image-10

After these processes, the role privilege definition is finished. But first we need to Publish these objects.

Image-11

After publishing the privilge objects, go to your user, click Assign Roles and select the role you created from the screen that opens.

Image-12

When you log back into the system with your test user, you will see the menu you have authorized.

Image-13

In this article, I tried to explain how to create privilege objects in the simplest form through the application. Creating from the screen like this something I am not used to. I prefer to create it from the development environment. Also, objects are not created when you create them from the screen. Therefore you need to use Export-Import to move them to other environments. I will also talk about this feature. In addition, I will explain how to make privilege definitions through the development environment in my next article. Privilege is an extensive topic. I will try to talk about all the details.

Regards.

www.fatihdemirci.net

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

Dynamics 365 Finance and Operations Security Infrastructure?

In this article, I will try to explain the Dynamics 365 Finance and Operations security architecture. There is a docs article that I like very much, I will try to recap the topics by referencing it. It is very important to understand the security infrastructure. In today’s projects, managing security and authorization can be a very demanding process. In order to manage the needs correctly, it is necessary to know the infrastructure and the features, capabilities and constraints of security tools. In this article I will address the following topics. I did not translate them into Turkish. Sometimes there is a semantic shift, so I think explaning them is better.

•             Security architecture

•             Role-based security

•             Duties

•             Privileges

•             Permissions

•             Authentication

•             Authorization

•             Auditing

Finance and Operations application uses role-based security structure. Authorizations are given to roles, users are not directly authorized. Users are assigned roles. A user without any role has no authority in the system. The user assigned the admin role has full authorization. More precisely, they are not subject to any restrictions. Role-based security is a hierarchical structure as seen in Image-1.

Image-1

Role-based security

Role-based security has actually been created parallel to the work of business units. Role is the structure in which the necessary authorizations are gathered for a position with certain duties to fulfill those duties. The role is actually parallel to the employee’s actual job in the company. It does not mean that every employee has a role. In some cases, a single person may be managing different business processes. So they must have multiple roles. It is essential to organize roles according to the job, not the person. At least one role is required to log into the system. Generally, everyone is given the role of System User.  You can use the System administration > Users > Assign users to roles form to assign the role.

Role assignment is made by admin accounts. Basically, roles consist of Duties and Privileges.

Image-2

Duties

Duties are where the necessary authorizations are gathered to carry out a certain work process. A task can be assigned to multiple roles. Therefore, a change you make to the duty automatically affects the assigned roles. The role can be assigned directly in Privilege, but for a more manageable infrastructure, it is necessary to create and use the duties.

Image-3

Privileges

It is the structure where the authorizations required to do a certain job are gathered. For example, the payment cancellation privilege only has the authorization required to do this job. You can give this privilege directly to the role, but as I said above, it would be a better approach to collect them in duties and assign them to roles. Security and authorization objects are defined for all objects in the system. You can find and replace the ones you need and add new ones. Especially in new developments, it is absolutely necessary to create Privilege. Duty may not be required for every development. It may be enough to grant this authorization with a specific duty, but not without Privilege.

Image-4

Permissions

Permissions refers to the level of authorization to access a specific object. This can be a MenuItem or any object. Generally, authorization is given through the entry point. And these are usually MenuItems. In some cases we also use it to directly define authorization for an object of the form.

Authentication

This is my favorite feature in the new version. I can use all tools with a single email. One of them, of course, is the Finance and Operations application. To enter the application, your user login must be created. I explained it in my previous article. Usually users are expected to be in Microsoft Azure Active Directory (AAD), but you can also add external users. You can set up 2-step verification.

Authorization

Authorization controls access to the Finance and Operations application. Security permissions are used for this. Security permissions determine how certain objects of the application are accessed. These objects are: menus, menu items, action and command buttons, reports, service operations, web URL menu items, web controls and fields.

Finance and Operations application uses a context-based security, so we define the level of access to a certain object. When you associate a privilege with an entry point, you also define an access level. Such as Read, Delete, update.

Auditing

User login and logout times are recorded. You can access these records from the admin account. (System administration > Inquiries > User log).

In this article, I tried to introduce you to the security infrastructure. It is a very extensive and detailed topic. Generally, projects have a person or team responsible only for these processes. When not designed correctly, maintenance costs and problems can be annoying. It is imperative to place the due importance and test well during the project phase. Generally, since consultants have admin privileges, they can skip tests with the required roles. Here it is recommended that key users do tests with the relevant role, not as an admin. I will continue to address security-related issues.

Regards.

www.fatihdemirci.net

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

Page 7 of 11« First...5678910...Last »