Showing posts with label AX Architecture. Show all posts
Showing posts with label AX Architecture. Show all posts

September 03, 2024

Installing Planning Optimization Add ins in D365FO

Hi Folks, 

In this post lets understand how we can enable Planning optimization in D365FO sandbox. 

What is Master planning

Master planning fundamentally enables companies to forecast and align the future demand for raw materials and capacity with their objectives. It evaluates:

Current Availability: What raw materials and capacities are presently on hand?
Required Resources: What raw materials and capacities are needed to finalize production? 

This includes items that must be manufactured, purchased, transferred, or reserved as safety stock.
Using this data, master planning calculates the necessary requirements and generates planned orders.

For more details check Master planning home page

Prerequisite: Ensure the following prerequisites are met before installing the Planning Optimization Add-in:
  • Only works on an LCS-enabled high-availability environment (tier 2 or higher). OneBox environments are not supported.
  • Ensure your system is set up for Power Platform integration.
  • Your Microsoft Entra account must have a Supply Chain Management license. No extra license is needed for Planning Optimization, but a Supply Chain Management license is required.
  • Sign in to your Power Platform environment with an account that has administrator privileges and Read-Write access.
  • All the steps should be followed by one admin user.
Installing the Add-in

1. Check the right environment and verify current status of this, you can do this as showing in below image. 



2. Login into LCS with admin access and navigate to respective Sandbox environment. Under Power platform Integration, click on Setup, this is step to Install Power Platform Environment (not actual Add in yet)




Next screen,  Here you will see two template available, I would recommend to use with dual write so you still have option to use more features of it while doing this setup once. Here is quick difference in both

'Dynamics 365 standard' means this Finance and Operations environment will be connected to a Power Platform environment with Data verse. While Platform solutions for Dual-write and Virtual Entities will also be installed but not enabled. Data will not be written via Dual-write to the Power Platform environment by default, but can be configured to do so as part of a later step.'



You will be asked for confirmation and verification as this step can be reversed, so make sure you are on the right environment with right requirement. 

This step may take an hours to finish. Once this step is finish you will see Environment URI available there which means the Power plateform is configured for this environment. 

3. [This is an option step, as we are not using Dual write for this Add in]The next step is to Enable Dual write connection to start synch with Dataverse. (And  yes you are not along in this NAME changing game, we all are same boat dealing with new names every year , Almost.) 

4. Now when we have connected with Power platform environment, you are ready to install Add-ins.


Click on 'Install a new add-in' , you will a list of all available solutions/Add-in to install on this environment. Scroll to bottom in list and you will find 'Planning optimization', select that


And on next screen click on Install button. It will start the installation. Again it may take just few mins to finish. Once done you can see this under 'power Platform Intergation' tab in LCS environment page. 


5. Now lets validate things, Login to FO environment and Navigate to 'Master Planning > Setup > Planning Optimization Parameters'. You will find connection status = Connected. 




Common Issues and tips:
1. Missing user permissions: 
If you get an error message regarding missing user permissions while installing the Planning Optimization Add-in, follow these steps: (Validation failed. You must be an environment administrator in Microsoft Dataverse to perform this action. If the issue persists please contact Microsoft support)

Go to the Power Platform admin center.
Open the environment where you want to install the add-in.
Go to Settings > Users and select your user account from the list to see its details.
From your user details page, select the Client Access License (CAL) information link.
On the Client Access License (CAL) information page, make sure that Access Mode is set to Read-Write.

2. Enable configuration key
Put your system into maintenance mode from LCS portal.
Go to System administration > Setup > License configuration.
On the Configuration keys tab, select the check box for Planning Optimization.
Turn off maintenance mode.

3. Connection Status is not showing Connected
If the Connection stats is Connected, then you're ready to enable Planning Optimization. Use the Use Planning Optimization option to choose which planning engine is used for master planning. Below are other option you may see and what's the meaning of each, 

Read more:

-Harry Follow us on Facebook to keep in rhythm with us. https:fb.com/theaxapta

June 14, 2020

AppChecker in Dynamics 365 Finance and operations

Hi Folks,

 

You may have seen one checkbox for AppChecker while doing a model build or while creating deployable packages OR maybe somewhere else in this lockdown. :)

 

Have you ever wondered what this all about and why it can be useful in your project. Well this tool is another check to ensure that your custom code meets all MS best practice and it behaves kind of a gatekeeper to ensure your coding standards are met to avoid any further upgrade issue with #MSDyn365FO.

 

In other words (I mean using copy-paste ;)  it Allows you to get insights into what processes a particular application is performing, including stack traces and low level memory management data. It will complement Activity Tracking and will hopefully have its own dashboard in LCS where all of this data is overlaid for easy consumption.

 

You can get more details on AppChecker on below links

 

Application checker on GitHub

 

Biggest Takeaways From Microsoft BizApp Summit 2019

 

Enjoy home arrest for few more days..... No week or maybe another month.

Cheers!!!

Harry

 

-Harry Follow us on Facebook to keep in rhythm with us. https:fb.com/theaxapta

January 20, 2020

D365 Finance and operations Cloud offering

Every cloud implementation of D365 Finance and operations offers three types of environments.

Tier-1 environment: Tier 1 environments include Develop and test boxes. As a standard MS provides one develop/test instance for the duration of the subscription. This instance is a non-production single-box instance and can be used for Development OR Unit testing OR an automated build environments. Customer can purchase additional develop/test instances separately as an optional add-on. Provisioning for Tier-1 occurs When the Design phase starts. The provisioning process requires that Microsoft Azure DevOps be configured.

Tier-2 environment: Tier 2 environments includes a Standard Acceptance Testing (SAT) Or User acceptance testing (UAT). As subscription plan One Standard Acceptance Testing (UAT) instance is provided for the duration of the subscription. This instance is a non-production multi-box instance which  can be use for UAT, integration testing, and training. Customer can purchase additional sandbox/staging instances separately as an optional add-on. Provisioning for Tier-2 occurs During on-boarding with the Microsoft FastTrack team.

Production environment– One production instance is provided per tenant. The production multi-box instance includes disaster recovery and high availability. It will be provisioned when the implementation approaches the operate phase, after the required activities in the LCS methodology and a successful go-live assessment are completed. There is no option to buy another environment this category. Provisioning for production environments occurs at the time of production system readiness phase. A production deployment request must be submitted in LCS. Deployment is done through the Dynamics Service Engineering (DSE) team within two business days.

Additionally, the following file storage and database storage are included:
File storage - Every customer receives 100 GB of file/Azure blob cloud storage for files and binary data. Additional file/blob storage can be purchased.

Database storage - Every Finance and Operations apps subscription includes 10 GB of Azure SQL Database storage per customer at no additional charge. Additional storage capacity is provided at no charge as an organization increases the number of user and device service licenses.

Difference between Tier-1 vs. Tier-2 and higher
Tier-1
Tier-2 and higher
Single-box environment
Multi-box environment
All components are installed on the same server, a Virtual Machine. These components include Application Object Server (AOS), the database, Dynamics 365 Retail, and Management Reporter. These components include Application Object Server (AOS), the database, Dynamics 365 Retail, and Management Reporter.
Components are installed on multiple cloud services, and typically include more than one Application Object Server (AOS).
Microsoft SQL Server is used.
Azure SQL Database is used.
The architecture differs from the architecture of the production environment to maximize efficiency and cost of the development team.
The architecture is the same as the architecture of the production environment, even though this type of environment has a different sizing and isn't enabled for disaster recovery.
The environment can be deployed in various ways. For example, it can be deployed as an add-on, it can be cloud-hosted, or it can be deployed as an environment image (VHD).
The environment can be deployed only as a standard environment or an add-on environment. It can't be cloud-hosted.
The environment isn't suitable for UAT or performance testing.
The environment is suitable for UAT and performance testing.


-Harry Follow us on Facebook to keep in rhythm with us. https:fb.com/theaxapta

PS: This post refers to Microsoft Doc website. 

May 19, 2015

Error: Fields are not visible in Form while added in table and field group

Issue: I added below fields in a new table (I picked from DirPartyTable, yes we prefer to copy new fields from other table ;) )
1. FirstName
2. Middle Name
3. Last Name
While i add the same in a Form these fields are not visible at all.

Possible reason:
In DirPartyTable  the configuration key for all above fields is set to “SysDeletedObjects60”, also these fields are prefixed “DEL”  that means these fields may deprecated in next version on AX.
image

Solution:
Here is very simple solution, Just remove the configuration key from YOUR NEW table fields(don’t play with DirPartyTable, do it in your new table).
than synch table and restore your form. Now check all fields should visible on form.
Also you can have a look on table “DirPersonName”. Here you will found the same fields.

- Harry

November 16, 2013

Error: An unbalanced X++ TTSBEGIN/TTSCOMMIT pair has been detected.

Error: An unbalanced X++ TTSBEGIN/TTSCOMMIT pair has been detected.



Error:

When trying to create a new record(s) in any table system sows following error
eg. Sales Order and this error always appear.
clip_image001


Possible Reason(s):
TTS level '1' usually leaves your Ax session in an unusable state
that you can't close properly.
Check all code for form or class from where this error comes and count the ttsbegin and ttscommit there must be same like if u write 2 ttsbegin u must have to write 2 ttscommit.

Solution:
To resolve this error this TTS level should be ZERO, Run this job to get rid of that error, this job will find the tts level where its greater than zero and make it zero by calling TTSABORT.
static void TheAxaptaResetTTS(Args _args)
{
    while (appl.ttsLevel() > 0)
    {
        info(strfmt("Level %1 aborted",appl.ttsLevel()));
        ttsAbort;
    }
}


Other Info: 
ttsBegin: marks the beginning of a transaction. This ensures data integrity, and guarantees that all updates performed until the transaction ends (by ttsCommit or ttsAbort) are consistent (all or none).
ttsCommit: marks the successful end of a transaction. This ends and commits a transaction. MorphX guarantees that a committed transaction will be performed according to intentions.











December 05, 2012

Dynamics Ax Layers

 Dynamics Ax Layers

Dynamics AX 2009 consists of sixteen application object layers that contain all the
elements you see in the AOT.
These layers can be looked at as an onion with multiple layers. In the middle is the
core application in the SYS layer and the outermost layer is the user layer USR.
Therefore, when any application element is being executed the system will look at
the outermost code layer first to see if there is any code for that element; if not, it peels a layer off the onion, and tries the next layer. When it hits a layer where the element exists, it will use the code from this layer, and will not continue to peel off layers to find code for that element in the innermost layers.
Layers with their description



SYS The standard application is implemented at the lowest level,
the SYS layer.The application objects in the standard
application can never be deleted.

GLS Country/region specific changes will be developed in GLS
Layer.For e.g as you all know that Tax structure differs
from country to country.So such localization functionality
can be developed in GLS layer.

HFX HFX is an application object patch layer reserved by
Microsoft for future patching or other updates.

SL1, SL2,or SL3 A layer where the distributor can implement
vertical partner solutions.

BUS When a business partner creates their own generic solution,
their modifications are saved in the BUS layer and the top-
level application objects are used.

VAR Value Added Resellers (VAR) can make modifications or new
developments to the VAR layer as specified by the customers
or as a strategy of creating an industry-specific solution.
Such modifications are saved in the VAR layer.

CUS The supervisor or administrator of an end user installation
might want to make modifications that are generic to the
company. Such modifications are saved in the CUS (CUStomer)
layer.

USR End users might want to make their own modifications, such
as in their reports.These modifications are saved in the USR
layer.
-Harry

November 06, 2012

Differences among reread(), refresh(),research()

Differences among reread(), refresh(),research()

When working with Forms, commonly after opened the form we need to do some operations with existing data. In few cases we need to interact with data base again and again in order to do. For that we will use these methods. But some times its create confuse what exactly use of these methods, when should we call these methods and why, here is brief info these methods...

refresh() : this method will refresh the data in the data source cache. But it will not interact with the data base to fetch the new/updated record values. What ever values have fetched in the previous query will store in data source cache, this method will just refresh the data source cache only.

reread(): this method will interact with the data base and runs the query against the data base in order to fetch the new/updated record values. But this will not show the updated values in the form until calling the refresh method. that means it will update the data source form cache only but not existing form control values.
So it is better to call the methods as shown here, like reread and after refresh methods in order to fetch the new / updated values from the data base.

formDataSource.reread()
formDataSource.refresh()


research():Calling research() will rerun the existing form query against the database, therefore updating the list with new/removed records as well as updating all existing rows.

- Harry





October 16, 2012

Types of delete action

Types of delete action

In Table node there is a sub node called "Delete Action". In axapta there is mainly three type of delete action. Each of them have their own specific use. Here is the simplest defination for each of them.
Cascade
A cascading deletion action will delete all records in the related table, where the foreign key is equivalent to the primary key of the current table. That is, deleting the parent record will also delete the child record(s) in the related table.
This cascading will take place whether the deletion is performed in code or directly by a user through the user interface.
Restricted
A restricting delete action will raise an error message if the user tries to delete a record, where records exist in the related table where the foreign key is equivalent to the primary key of the current table.
This error will only appear if the deletion is performed through the user interface. A deletion from X++ code will be allowed to proceed and will not be cascaded to the related table. In this case the programmer should call .validateDelete() themselves prior to the call to .delete()
Cascade+Restricted
This delete action normally works as a Restricted delete action. However if the deletion is performed through X++ code, no error will be raised and the deletion will be cascaded to the related table.


for more details on delete action follow these links


- Harry



October 09, 2012

Build numbers of Axapta

Build numbers of Microsoft Dynamics Ax

Hi all,



Here theAxapta Versions, with a description of the version represented.
in following tables all build version numbers are split into three parts. 
First one is  the client version number , followed by the application version. Formatted 
like: Build #client version/application version/localization vertsion e.g. #1951.7500/514-320/OP023-196 - for 3.0 KR2 client and 3.0 SP4 application.

Dynamics AX 2012
Build number Version
6.0.852.78 2012 Beta
6.0.947.0 2012 RTM
6.0.947.61 2012 Cumulative Update 1 (CU1)
6.0.947.280 2012 Cumulative Update 2 (CU2)
6.0.947.862 2012 Feature Pack
6.0.1108.670 2012 Feature Pack with CU3





Dynamics AX 2009
Build number Version RPC interface version
5.0.593.0 2009 RTM 50444.0 (C50C.0000)
5.0.593.439 2009 Hotfix Rollup 1 (RU1) N/A
5.0.593.662 2009 Hotfix Rollup 2 (RU2) N/A
5.0.593.827 2009 Hotfix Rollup 3 (RU3) N/A
5.0.593.1084 2009 Hotfix Rollup 4 (RU4) N/A
5.0.593.1287 2009 Hotfix Rollup 5 (RU5) N/A
5.0.593.1429 2009 Hotfix Rollup 6 (RU6) N/A
5.0.1000.52 2009 SP1 50444.0 (C50C.0000)
5.0.1500.358 2009 SP1 Hotfix Rollup 1 (RU1) 50444.0 (C50C.0000)
5.0.1500.809 2009 SP1 Hotfix Rollup 2 (RU2) 50444.0 (C50C.0000)
5.0.1500.1313 2009 SP1 Hotfix Rollup 3 (RU3) 50444.0 (C50C.0000)
5.0.1500.2116 2009 SP1 Hotfix Rollup 4 (RU4) 50444.0 (C50C.0000)
5.0.1500.2985 2009 SP1 Hotfix Rollup 5 (RU5) 50444.0 (C50C.0000)
5.0.1500.3761 2009 SP1 Hotfix Rollup 6 (RU6) 50444.0 (C50C.0000)
5.0.1500.4570 2009 SP1 Hotfix Rollup 7 (RU7) 50444.0 (C50C.0000)
5.0.1500.6491 2009 SP1 Hotfix Rollup 8 (RU8) 50444.0 (C50C.0000)





Dynamics AX 4.0
Build number Version RPC interface version
4.0.1659.26 4.0 RTM 41638.0 (A2A6.0000)
4.0.1659.35 4.0 RTM (localized) N/A
4.0.2163.0 4.0 SP1 42060.0 (A44C.0000)
4.0.2500.XXX 4.0 SP1 DIS layer hotfixes 42060.0 (A44C.0000)
4.0.2501.116 4.0 SP2 42060.0 (A44C.0000)
4.0.2503.XXX 4.0 SP2 DIS layer hotfixes 42060.0 (A44C.0000)





Axapta 3.0
Build number Client version AOCP version
1951.8 3.0 N/A
1951.17 3.0 SP1 60029 (0xEA7D)
1951.18 3.0 SP1 N/A
1951.2410 3.0 SP2 60031 (0xEA7F)
1951.2411 3.0 SP2 Hotfixed 60031 (0xEA7F)
1951.3730 3.0 SP3 60031 (0xEA7F)
1951.3733 3.0 SP3 Hotfixed 60031 (0xEA7F)
1951.4060 3.0 SP4 60031 (0xEA7F)
1951.5160 3.0 SP5 61031 (0xEE67)
1951.6710 3.0 Kernel Rollup 1 61031 (0xEE67)
1951.7500 3.0 Kernel Rollup 2 63031 (0xF637)
1951.7609 3.0 Kernel Rollup 3 63031 (0xF637)
Build number Application version
514-90 3.0 SP2
514-193 3.0 SP3
514-320 3.0 SP4
514-513 3.0 SP5
514-859 3.0 SP6


-Harry

July 21, 2012

Form class and tables are used by a specific Dynamics AX form/functional

How to find out which Form class and tables are used by a specific Dynamics AX form/functional 


Hi Friends,


This Technique will help you every where when you need to find the back End of any form report.











This is a basic tip for developers who are starting with Dynamics AX. So, to find the form class and tables that are used by a functional process (like when you are executing and seeing an AX form), what we need to do first is to find out the form class name. To find the AOT form class name, open that form that's used in a process and Right-click on the form (over any record, for example) and select Setup. From there we can see the Form class definition and drill down to see all the tables it is using and so on.



















In red circle you found the table/Class name and its respective field.
For practice just  choose a form and try to find all related tables and used fields.
this will very help full for you to under stand the Form.


- Harry