Finance and Operations provides a set of rich security reports to help you understand the set of security roles running in your environment and the set of users assigned to each role. In addition to the reports noted in this topic, developers can generate a workbook containing all user security privileges for all roles using Visual…
Organizations and organizational hierarchies overview : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/organization-administration/organizations-organizational-hierarchies?toc=/dynamics365/commerce/toc.json Plan your organizational hierarchy : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/organization-administration/plan-organizational-hierarchy?toc=/dynamics365/commerce/toc.json Create an organization hierarchy : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/organization-administration/tasks/create-organization-hierarchy?toc=/dynamics365/commerce/toc.json Create a legal entity : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/organization-administration/tasks/create-legal-entity?toc=/dynamics365/commerce/toc.json Create an operating unit : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/organization-administration/tasks/create-operating-unit?toc=/dynamics365/commerce/toc.json
Task recorder resources : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/user-interface/task-recorder Task Recorder quick reference : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/user-interface/task-recorder-quick-reference Create documentation or training with Task Recorder : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/user-interface/task-recorder-training-docs
Records and record templates : https://docs.microsoft.com/en-us/dynamicsax-2012/appuser-itpro/records-and-record-templates Maintain record templates : https://docs.microsoft.com/en-us/dynamicsax-2012/appuser-itpro/maintain-record-templates Maintain records : https://docs.microsoft.com/en-us/dynamicsax-2012/appuser-itpro/maintain-records
This topic explains how to identify and resolve conflicts in segregation of duties. You can set up rules to separate duties that must be performed by different users. This concept is named segregation of duties. When the definition of a security role or the role assignments of a user violate the rules, the conflict is…
Alerts overview : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/get-started/alerts-overview Create alert rules : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/get-started/create-alerts?toc=/dynamics365/commerce/toc.json Batch processing of alerts : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/get-started/alerts-managing?toc=/dynamics365/commerce/toc.json Client alert notifications by email : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/get-started/alert-email-notifications?toc=/dynamics365/commerce/toc.json
This topic explains how to set up units of measure and unit conversions for products in Retail essentials. A unit of measure is a standard quantity, size, or other basis that is used for measurement or exchange. When you enter an order in Retail essentials, you specify a quantity and the unit of measure that…
This topic explains how to change the date for a session. By default, the current date is used when entering and posting journal entries or source documents. You can change the date that is used for your current session. Use this feature to back-date journal entries or source documents, as necessary. In the navigation pane,…
Copy configuration data between companies or legal entities overview : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/copy-configuration Configuration data packages : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/configuration-data-packages Configuration data packages (July 2017 release) : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/configuration-data-packages
Number sequences are used to generate readable, unique identifiers for master data records and transaction records that require identifiers. A master data record or transaction record that requires an identifier is referred to as a reference. Before you can create new records for a reference, you must set up a number sequence and associate it with…
Electronic signatures overview : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/organization-administration/electronic-signature-overview?toc=/dynamics365/commerce/toc.json Set up electronic signatures : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/organization-administration/tasks/set-up-electronic-signatures?toc=/dynamics365/commerce/toc.json
See Microsoft guideline : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/analytics/er-quick-start2-customize-report#ConfigureFramework
See Microsoft guideline article to generate “Person search report” : https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/gdpr/gdpr-person-search-report
See Microsoft guideline article to automate user acceptance tests–> https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/lifecycle-services/using-task-guides-and-bpm-to-create-user-acceptance-tests
This topic provides information about how to create, edit, and browse Business process modeler (BPM) libraries. It’s important to note You can browse a BPM library that is a global library or a corporate library. However, before you can edit and work with a BPM library, it must be part of your project in Microsoft…
Advanced filtering and query syntax You are a Dynamics 365 Finance system administrator.Data must be filtered based on given criteria to help users quickly reduce the number of records.You need to identify the appropriate syntax to solve user requirements This topic describes the filtering and query options that are available when you use the Advanced…
Sometimes error “The data value violates integrity constraints.” can occur while importing an excel file through a Data entity. Most of the time it can be caused by blank lines that you cannot see in the excel file. To solve it just delete blank lines. So open the source file and delete them
If something is going wrong on your Data Entity import you can check the execution log Go into your Data Entity import project anc click on “View Execution log” Here you can see a generic import error, but if you want to go deeper in detail click on “Staging log details” Here you can see…
Suppose you have a FormTreeControl and you want to delete a node of the tree. When the error “The transaction cannot be deleted because subtransactions exist” occurs it means that you cannot delete the node because it has sub node in the tree. Before you delete your node you must delete child nodes
Sometimes when you build a Data entity this error occur “Cannot generate chain of command subscription inialization code for…”. To solve just build entire model and its referenced packages
Go in System Administration –> Data Management Click on “Import” Give a unique name to the import Click on “Add file” Choose a data entity Create an excel file that has the same structure of the Data Entity staging table and fill it with the records you want to add into the target table. Save…
To make a Form control visible in the form X++ code just set the “Autodeclaration” control property to YES. In this example I want to use FormGidControl in the code
This example converts a List of string into a string delimited by comma
This function always rounds numbers down to a complete integer. The following example truncates 2.7147 to 2.00.
This will not work from a pre-event handler because you are the wrong side of super so the variables don’t exist yet.Or to be more precise if this approach isn’t working – i.e. you can’t get/see the variable you are after the chances areit hasn’t been instantiated yet but this is not going to be…
Recently I have been working on building data entity and there was one strange error wasting my time due to the lack of descriptiveness. The error was: Database synchronization failed. You may have to do a full build of the package ‘<package name>’ and all of its dependent packages. After a complete package build the…
Overview In Visual Studio we have solution that contains multiple projects. These projects helps us to organize and manage the elements. Each project contain elements from only one model. In order to move elements from one environment to another in D365, It can be easily done by using project package file which contains list of…
formDataSource formDataSource; formRun formRun; salesTable salesTable; int i; // Change data in calling datasource if(element.args() && element.args().caller() && element.args().caller().handle() == className2Id(‘formRun’)) { formRun = element.args().caller(); for (i = 0; i <= formRun.dataSourceCount(); i++) { formDataSource = formRun.datasource(i); if (formDataSource && formDataSource.table() == tablenum(salesTable)) // Search for specific table { salesTable = formDataSource.cursor(); break; } }…
Somethime it can happen tha you have to call a methode of a calling object This code explains how to do it common common; object object; // Call method from calling record if( element.args() && element.args().record() ) { common = element.args().record(); if(common.isFormDataSource()) { info(tableId2Name(common.TableId)); if(formDataSourceHasMethod(common.dataSource(), identifierStr(“someMethod”))) { object = common.dataSource(); object.someMethod(); } } }
Suppose you ha ve Form A that calls Form B. In Form B you want to call a method of Form A. How to do this? Follow these instructions. First in Form B declare 2 variables Then in the init method set callerobject Then in your method you can call the callerobject method. In this…
AX provides several ways of writing files. Depending upon scenario, you can use one. Apart from AX native filing, you can also use .NET interop to call .NET classes for reading/writing files. We will be showing few classes which are provided by AX for writing files. TextBufferThe TextBuffer class manages arbitrary text file content, and generates and…
To round number in AX, we can use 2 method. If we wanna round up, we can use RoundUp(real value, real unit) function and we can use RoundDown(real value, real unit) function if we wanna round down numbers. For example, we can see the source code of a job below : static void Rounding(Args _args){ real temp, roundingUp, roundingDown; …
We want to copy records from a grid that contains all records of a table to another that contains same type of records but only the one we selected from the first one This is what we want to obtain. First we must create a Form, then add two data source that points to the…
If you want to align Form buttons horizontally or vertically just set the “Arrange Method” property of the ButtonGroup Control If you select Vertical this will be the result
In a form we want to add 3 controls (1 tree and 2 grids), but this form appears very ugly because the number of columns has been set to 2 If you want to align these 3 controls in a unique row just set the number of columns to 3. So go to the main…
By default a Dialog – Basic form opens in a small size in the right of the screen like shown below If you want to open in a full size window just change the “Dialog Size” property of the form to “Full” This is the result
I added two normal button and I want to attach some images to them To do that you can use the “Normal image” property. Set “Add” for the Add Activity button, “Delete” for the “Delete Activity” button and “Refresh” for the Refresh button This is the result
Some forms and their controls are disabled by default (see image below) If you want to enable controls you have to press “Edit” button or double click on a control. To avoid editing all controls by default just set the form property “ViewEditMode” to Edit This will be the result. All control are immediatly editable…
Want to hide New and Delete buttons of a form? There are 2 ways The first is to override the init method of the form like this the other way is to set the “Show Delete button” and “Show New button” properties to NO, like shown in image below
If you want to avoid deleting record on a table that has child record related to other table just follow this instructions. You must create a relation between Table “Al0VendorActivity” and “Al0VendorSearcCriteria”. We want to avoid delete record from “Al0VendorActivity” if at least one record exists in the table “Al0VendorSearcCriteria”. Create a relation between the…
To refresh grid data of a Form grid just create a Command Button and set Command Property to Refresh Obviously the button must be created under a Group button object and this under an Action Pane which contains the data source that must be refreshed.
This example shows how to retrieve the selected node of a FormTreeControl and get its text name
If a grid has Multselection property enabled you can select more than a record. If you want to programmatically loop through selected record just follow this code using MultiSelectionHelper class
To detect selected line just use form data sources. Override active() method of the date source – it’s executed when a user switches to another record. The active record is in the automatic variable with same name as the data source. Here is an example
This example mark all records of a form grid record looping throught the data source
You can use FormDataSource.displayOption method This method is executed one time for each record before the record is displayed in a form. The displayOption method can be overridden on a form data source. Right-click the Methods node under the data source, point to Override Method, and then click displayOption. This is an example
This is the result we want to obtain To do this just enable these 2 properties of the Form grid object Multi select = Yes Show row labels = Yes (to enable checkbox)
In this example I’ll show how to obtain the source record from a caller object. Suppose you have a form A that calls form B. In Form B you want to know what is the data source of the Form A and if it’s a VendTable you want to retrieve the AccountNum field
Suppose you have a form A that calls form B. In Form B you want to know what is the data source of the Form A and do something….. This is the code to obtain the data source name of a caller object (such as Form, menu item, etc..).
Follow this code if you want to get the Record identifier (RecId) of a FormTreeControl node
If you want to mark a tree node as bold just folllow this code This will be the result
If you want to disable all form buttons contained in the main ActionPane just set ActionPane “Enabled” property to NO This will be the result
Trace parser is a very important utility program that helps developers to debug an application. It shows every SQL statement and every method called by applicatione followed by its call stack code These are the instructions to starts Tracing an application Enable Trace Parser Database Go to “System administration” > “Check Performance tools” Leave defaul…
When you create an action pane to insert some buttons (for example New, Delete, edit buttons) the dafault layout is that I inserted a “New” command button, but this is not imediatly visible. If you want to use it you have to click on three dots on the bar. If you want to make every…
If you have a Tree control on your form and want to collapse the whole tree with all items and subitems at once, you can use the following static method: SysFormTreeControl::collapseTree(FormTreeControl _formTreeControl, TreeItemIdx _treeItemIdx, int _toLevel = 0,int _level = 0 ) For example to expand the whole tree from the root item to the…
If you add a query range with a certain value to a Query, then next time you execute the query with another value the query doesn’t clear previous range. In order to clean the old values you have to use clearRanges() method see example below
If you want to get the current selected data source record you can use dataSource_ds.cursor() method See code below
If you want to use checkboxes in a FormTreeControl follow these instructions. In the tree contol set these 3 properties values : AutoDeclaration = Yes CascadeSelect = No Check Box = Yes To get this result Follow this code ActivityTree is the name of the FormControlTree control If you want to obtain tis result follow…
if you want to know which pattern a fomr utilize you can run a Visual studio utility called “Run form pattern report”. Access Visual Studio Go to tab Dynamics 365 –> Addins –> “Run form pattern report” Wait less then a minute and this message popup will appear. Open the file in the shown directory
OPen Source control explorer Go to Trunk –> Main –> Projects Search for your project Click View and the project will open in solution eplorer
Sometimes it can happen that some errors can occurs while cmpiling the Azure devops pipeline for a D365 file package creation. In this case the error say that the extended data table Category does not exists. But how can it be possibile?? CategoryId EDT is a standard EDT, but fortunately I found the solution. The…
Imagine you want to avoid saving a record of a table if a particular condition is met. You must access table and use ValidateWrite method Only one record can have this checkbox set to TRUE. If the use tries to set as TRUE another record the record cannot be saved. We will use the ValidateWrite…
If you want to block/interrupt the build of a project/solution just go to build—> cancel
If you have a Tree control on your form and want to expand the whole tree with all items and subitems at once, you can use the following static method: SysFormTreeControl::expandTree(FormTreeControl _formTreeControl, TreeItemIdx _treeItemIdx, int _toLevel = 0,int _level = 0 ) For example to expand the whole tree from the root item to the…
Suppose you have a Runbase dialog but before do something you want to ask user if he’s really sure he want to proceed with the elaboration. After clicking OK a popup dialog form opens and asks the user if he wants to proceed If ho click OK the elaboration starts, otherwise if he clicks on…
Suppose you have a Runbase dialog but before do something you want to ask user if he’s really sure he want to proceed with the elaboration. After clicking OK a popup dialog form opens and asks the user if he wants to proceed If ho click OK the elaboration starts, otherwise if he clicks on…
If you want to change a parent project to a given project follow this code It will create a RunBase class with two fields : Child Project Parent Project In Child project you will put the project id you want to change the Parent. In Parent project you will put the project id that will…
If you want to get all projct childs from a root project jus use ProjTable::getChildProjectsFromRootProject. The method returns a List of ProjTable. Here you can find an example on how to use it
List Class Contains any number of elements that are accessed sequentially.Lists are structures that can contain values of any X++ type.All the values in the list must be of the same type. Type is defined when the list is created and cannot be changed. All X++ types can be accessable using enum Types:: Lists can…
AX- D365FO – Get the root project or all the ancestors of a given project in ProjTable follow these instructions. To get the root project of a given project ProjTable::getRootProjId(ProjId) Returns the root project To get all the ancestors of a given project ProjTable::ancestors(projId); ProjTable::ancestors(projId) returns a container of all ancestor of a project
This is a runnable class that extensds Runbase thet we want to obtain :
Hi Everyone , There are multiple ways you can run Runnable class. One way is we can attach it to Menu item and add it to any form and execute it using menu item. Another way is set it up you project as startup object and runnable class as startup object in Visual Studio and…
To access the link home page of an ax environment follow these instructions Go to : https://lcs.dynamics.com/v2
Create new role Create new duty Insert duty into Role Create new privilege Insert menu items into Privilege Entry points
If you have done a query in a form and you you want to clean previouslu query filter you have to follo w this code
Friends, below code will help you to create projects and sub projects using code. If there is already a parent project and we need to create sub projects based on the format which is already defined, the sample job below is an example. [Please note: Try, test and modify as per your requirements]
This is the result we want to obtain Create a RunBasebatch class
If you cannot drag&Drop a data source field to a grid Form because the 2 fields are too far then do thid : How to do it You have to open 2 forms.
In one of my implementation I had requirement in this I had to create an Item in Ax using x++ code. Below code explains how we can create item in AX 2012 in a specific company.
You can change the license key, but try to do it in a test environment first. Then you can see if everything is OK after changing the license. Open the form “License Information” while navigation the following path: System administration, Licensing, Licence information Select the file and click OK. AX wants to synchronize the database.…
The Server is unavailable.Check your configuration and network connection and try again. Some time when we try to open the AX this error message appears. The reason for this error message is that AOS service is not started on your machine. Just go to start menu and than search for the services.msc file and than…
Following are they way to get Table Labelstatic void Job21(Args _args){ info(TablePName(CustTable));} Following are they way to get Field Label of the tablestatic void Job21(Args _args){ info(fieldPName(CustTable,AccountNum));} Following is the way to find Label , Name and Data type of all fields of any table.static void Job21(Args _args){ DictTable …
I seem to be getting the following message on a very specific object whenever I check it out and make a modification. Unable to save. Version of on the server is newer. You usually get this message whenever someone else has modified the object since you opened MorphX/AX. However I was the one who checked…
Set column Autodeclaration property to Yes Change the label property of the grid field
This is the result we want to obatain Inser diasply method into your form First add a new method to the Form Data Source
This topic provides information about the Simple List and Details form pattern. This pattern is used to maintain data for entities of medium complexity. Usage The Simple List and Details (SL+D) pattern is used to maintain data for entities of medium complexity. Entities of medium complexity are those entities that have six or more fields.…