Inc. 5000 Fastest-Growing Company in the US

inc-5000-logo
Replaceable Attributes in D365 Operations

We were working for an extension modelling in Dynamics 365 for Operations in standard Bank module. The standard process is to download theย โ€œBank Positive Payโ€ file information, which will be downloaded as text file. Standard business scenario We were working for an extension modelling in Dynamics 365 for Operations in standard Bank module. The standard process is to download theย โ€œBank Positive Payโ€ file information, which will be downloaded as text file. Change Request The approach was to avoid this manual process andย automate the bank Positive Pay process. We bypassed the standard downloading process and instead transferred these positive pay files into Azure BLOB storage automatically. Then from Azure BLOB storage, an external web service will pick these files for automatic payment processing, usually an FTP service which works for most banks. Figure 1. Data Management in Dynamics 365 for Finance and Operations The reasons include the business policies on data security and operational efficiency. The reasons could differ based on business cases, however the focus here is on the programming aspect. Analysis If you further examine the arrangement of the code to deliver the file, the standard code downloads the file. (Classes/BankPositivePayExport/sendFileToDestination) /// <summary> /// Send file to destination. /// </summary> [Replaceable] protectedvoid sendFileToDestination() { str downloadUrl = DMFDataPopulation::getAzureBlobReadUrl(str2Guid(fileId)); Filename filename = strFmt(‘%1-%2%3’, bankPositivePayTable.PayFormat, bankPositivePayTable.PositivePayNum, this.getFileExtensionFromURL(downloadUrl)); System.IO.Stream stream = File::UseFileFromURL(downloadUrl); File::SendFileToUser(stream, filename); } As per Chain of Command (or Event Handlers), we have option to only write custom code either before method execution or after method execution. But in this case since standard method was already downloading file. Challenge here was to see how we can block or bypass the standard code. Since NEXT command is mandatory in calling Chain of Command method, when this NEXT command is called standard code will get executed and file will be downloaded to the local computer. <Chain of command> Pre code NEXT () <standard code of sending positive pay>Mandatory Post code <End of Chain of command> Resolution About Replaceable Attributes With replaceable method, we need not call NEXT command in Chain of Command (CoC) and completely override the logic written by standard Microsoft code. But Microsoft suggests using this NEXT command conditionally. As part of this blog, letโ€™s see how to mitigate the scenario of blocking the standard local file storage and get the file stored in Azure BLOBโ€™s. Create an extension class for โ€œClasses/BankPostivePayExportโ€ usingMicrosoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Blob; [ExtensionOf(classStr(BankPositivePayExport))] finalclass BankPositivePayExport_Extension { } By replaceable attribute, write code to store in Azure BLOB This method is actual replaceable method in โ€œClasses/BankPostivePayExportโ€. Following code explains how we wrote custom logic to download the file and send it for Azure BLOB storage. /// <summary> /// Sends file to Blob storage /// </summary> protectedvoid sendFileToDestination() { #define.Underscore(“_”) #define.DOT(“.”) #define.XML(“XML”) #define.FILENAME(“ASCPositivePay”) if (this.parmBankPositivePayNum()) { BankPositivePayTableascbankPositivePayTable; ascbankPositivePayTable= BankPositivePayTable::find(this.parmPostitivePayNum()); ASCDownloadURL downloadURL; ascDownloadURL = DMFDataPopulation::getAzureBlobReadUrl(str2Guid(fileId)); Filename filename = strFmt(โ€™%1%2%3%4%5โ€™, #FILENAME, ascbankPositivePayTable.PositivePayNum, #Underscore, System.String::Format(โ€™{0:MM.dd.yy}โ€™, today()), #DOT + #XML); System.IO.Stream stream = File::UseFileFromURL(downloadUrl); CloudBlobContainer blobContainer; blobContainer = this.connectToBlob(“<Name from Azure Key vault>”, “<Key from Azure Key Value>”, “<BLOB Folder name>”); this.uploadFile(blobContainer, stream, filename); } } Establish connect to Azure BLOB container Following code establishes the connection with Azure BLOB. As a safety measure directly storage account name, account key and container name is not advisable, these values should be stored in Azure Key Vault and picked based on tokens (Note: Concept of storing and retrieving from key vault is outside scope of this blog, you can refer toย Azure Key Vaultย article on how to store and retrieve storage keys) /// <summary> /// Establish connection to blob storage /// </summary> /// <param name = “_storageAccountName”>Storage account name</param> /// <param name = “_accountKey”>Account key</param> /// <param name = “_blobContainerName”>Blob container name</param> /// <returns>Blob container</returns> public CloudBlobContainer connectToBlob(ASCStorageAccount _storageAccountName, ASCAccountKey _accountKey, ASCBLOBContainer _blobContainerName) { CloudBlobClient blobClient; CloudBlobContainer blobContainer; CloudStorageAccount storageAccount; ASCConnectionString connectionString; connectionString = strfmt(@ASC:ConnectionString, _storageAccountName, _accountKey); storageAccount = CloudStorageAccount::Parse(connectionString); blobClient = storageAccount.CreateCloudBlobClient(); blobContainer = blobClient.GetContainerReference(_blobContainerName); return blobContainer; } Labels @ASC:ConnectionString= โ€DefaultEndpointsProtocol=https;AccountName=%1;AccountKey=%2;EndpointSuffix=core.windows.netโ€ Custom method to upload file to Azure BLOB This is a custom method, which explains how the BLOB container is uploaded to Azure BLOB. This method takes file stream, blob container name and blob file name as input to create files in Azure BLOB. /// <summary> /// Uploads the file to the blob /// </summary> /// <param name = “_blobContainer”>Blob container</param> /// <param name = “_stream”>File stream</param> /// <param name = “_fileName”>File name</param> publicvoid uploadFile(CloudBlobContainer_blobContainer, System.IO.Stream_stream, FileName_fileName) { _blobContainer.CreateIfNotExistsAsync(); try { ttsbegin; CloudBlockBlob blockblob =blobContainer.GetBlockBlobReference(_fileName); if(blockblob && !blockblob.Exists(null, null)) { if(_stream) { blockblob.UploadFromStreamAsync(_stream).Wait(); blockBlob.FetchAttributes(null,null,null); BlobProperties BlobProperties = blockblob.Properties; if(BlobProperties.Length == _stream.Length) { info(strFmt(“@ASC:FileUploadedSuccessfully”, _fileName)); } } } else { info(strFmt(“@ASC:FileAlreadyExists”, _fileName)); } ttscommit; } catch { info(“@ASC:ErrorUploadingFile”); } } Labels @ASC:ErrorUploadingFile =โ€œError while uploading fileโ€ @ASC:FileAlreadyExists =โ€œFile already existsโ€ @ASC:FileUploadedSuccessfully=โ€œFile uploaded successfullyโ€ Conclusion We find this Replaceable Attribute cool and very beneficial in blocking the standard code completely and writing our own custom code. To know more about Doโ€™s and Donโ€™tโ€™s of using replaceable methods, refer to the Microsoft documentation: https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/extensibility/extensibility-attributes#replaceable This blog focuses on the ability to customize a standard behavior. However, we recommend to thoroughly evaluate the need to customize.

From Cozy Coupe to the Real Deal: Why Training is the Key to Success

Twenty-five years ago, almost to the day, I was the picture of pure excitement. It was my 15th birthday, and I was standing in line at the DMV, ready to get my driverโ€™s permit. After years of studying car magazines, playing with Matchbox cars, and perfecting my laps around the house in my Cozy Coupe, I was convinced I was ready. I couldn’t wait to slide behind the wheel of the familyโ€™s 1998 Saturn SL2, pop in my Discman-to-tape-deck converter, and blast Led Zeppelin. Best of all, in my fantasy world, the state of Illinois and my parents would recognize my extensive “training” and let me skip driver’s ed entirely. Unfortunately, despite my best effortsโ€”including a PowerPoint presentation decked out in dazzling WordArtโ€”there was no getting around the most critical part of learning to drive: actual training. The Classic Excuses Weโ€™ve all heard them. Maybe weโ€™ve even said them: “Theyโ€™ll figure it out once they play around with it.“ “Just send a write-up with some screenshots.“ “Weโ€™ll hold a quick Teams meeting and call it a day.“ This kind of thinking is short-sighted and, frankly, a disaster waiting to happen. Training isnโ€™t just a checkboxโ€”itโ€™s an opportunity to ensure a successful implementation. Skimping on it is like skipping driverโ€™s ed and expecting no one to crash Why Intensive Training is Non-Negotiable? 1. Preparation The last thing management or a VAR wants on go-live day is a room full of people standing around in a panic. Training helps users get familiar with the system, understand processes, and recognize why certain decisions and features were implemented. 2. Buy-In Most users are skeptical of any system upgrade.ย โ€œEverything was working fine beforeโ€”why do we need this?โ€ Training is the time to turn skepticism into excitement by showing users how the new system will actually make their lives easier. 3. Collaboration System upgrades often feel like marching orders from the C-suite, which can create resistance. But training turns the transition into a shared effort. When employees feel involved, the upgrade becomes a team-building opportunity instead of a source of frustration. 4. Reprieve A well-trained team reduces the burden on both management and the VAR. When multiple employees understand the system, they become in-house resources, making troubleshooting and ongoing training much easier. 5. Course Correction Hands-on training gives decision-makers direct access to the people who actually use the system. These frontline users often catch potential issues, risks, and areas for improvementโ€”something that, of course, wasย totally covered in the pre-project surveys and documentation. (Right?). Building an Effective Training Approach Thereโ€™s no one-size-fits-all method for training because corporate cultures vary. What works for a small industrial manufacturer wonโ€™t necessarily work for a multinational chemical company. That said, the most effective strategy Iโ€™ve seen (outside of the training method I once tried to sell before the state of Illinois shut me down) is getting on the floor with the users: Get to know them. Become someone they can approach without fear of reprimand or embarrassment. Explainย whyย the system is changingโ€”not justย how. Walk through real-life examples. Listen to their concerns and answer their questions (seriously, donโ€™t flake on this). And for the love of all that is good,ย be encouraging! If a user figures out a process on their own or explains a workflow correctly, celebrate it. That kind of enthusiasm spreads, and before you know it, the whole organization is engaged. Training is the Key to Success A well-managed, comprehensive training program will make or break a system implementation. When users are empowered and theย โ€œbecause management said soโ€ย barrier is removed, companies build stronger systems, foster collaboration, and turn employees into system experts. Plus, leadership and the implementation partner gain a more proactive, informed workforce, making go-live far smoother. So donโ€™t just toss the keys to your team and act surprised when someone crashes through a chain-link fence. Train them first. About the Author Matthew Newcomb is an experienced and certified Microsoft Dynamics AX & 365 Supply Chain Functional Consultant, specializes in Advanced Warehousing and Production, whoโ€™s been navigating the twists and turns of ERP implementations long enough to know that training makes all the difference. As a functional solution architect, business analyst, and project wrangler, he helps companies get the most out of their Microsoft Dynamics solutionsโ€”without the headaches. When not untangling digital roadmaps, you might find Matt getting the Led out.

Migrate EWS Apps to Microsoft Graph for Exchange Online in D365 Finance and Operations

Exchange Web Services (EWS) is a legacy protocol that has been in use since Exchange Server 2007. In August 2018, Microsoft announced that there wonโ€™t be any active investment in EWS APIs for Exchange Online. We recommend that you migrate your EWS apps that access Exchange Online to Microsoft Graph. Checkout the below recording on how to set this up in D365 Finance and Operations. The exchange email provider stopped sending emails as of September 15, 2024. https://www.ascent365.com/wp-content/uploads/2025/03/Switch-from-Exchange-to-Microsoft-Graph-for-email-settings.mp4 About the Author Sohena Hafiz is the Founder and CEO of Ascent Innovations, with 20 years of experience in Microsoft Dynamics and 16 years leading ERP implementations. She has been directly involved in 50+ ERP projects, including 30+ in D365, across industries like industrial equipment, steel fabrication, food manufacturing, banking, recycling, retail, and the public sector.

Why upgrade from Dynamics AX to Dynamics 365 Finance and Operations?

Dynamics AX is a popular enterprise resource planning (ERP) software that has been widely used by businesses for several years. However, Microsoft has now released a newer version of the software calledย Dynamics 365 Finance and Operations, which offers many improvements and advantages overย Dynamics AX. Here are some reasons why itโ€™s time to upgrade from Dynamics AX to Dynamics 365 Finance and Operations: ย  1. Cloud-based Solution: Dynamics 365 Finance and Operations is a cloud-based solution that provides greater flexibility, scalability, and accessibility. With cloud-based solutions, you donโ€™t have to worry about maintaining and updating on-premises hardware and software. ย  2. Improved User Interface: Dynamics 365 Finance and Operations has a modern and intuitive user interface that is easy to use and navigate. This can improve user productivity and reduce training time. ย  3. Advanced Reporting and Analytics: Dynamics 365 Finance and Operations comes with built-in reporting and analytics capabilities that allow you to make more informed business decisions. The software provides real-time insights into your business operations, which can help you identify areas for improvement. ย  4. Integration with Other Microsoft Products: Dynamics 365 Finance and Operations integrates with other Microsoft products such as Office 365, Power BI, and Azure, providing a seamless user experience and better collaboration across different teams and departments. ย  5. Continuous Updates and Support: With Dynamics 365 Finance and Operations, you will receive continuous updates and support from Microsoft. This means you will always have access to the latest features and functionalities, as well as any necessary security patches and bug fixes. ย  In summary, upgrading from Dynamics AX to Dynamics 365 Finance and Operations can provide several benefits, including a cloud-based solution, improved user interface, advanced reporting and analytics, integration with other Microsoft products, and continuous updates and support. 1. Functional Enhancements Few new features and functionalities those were not available in Microsoft Dynamics AX, that are now built-into Dynamics 365 Finance and Operations. Advance Warehousing Transportation Management Mobile Time sheet Project Enhancements Auto Bank Reconciliation Positive Pay Enhanced Financial Dimensions RFQ (request for quotation) Purchase Requisition Public Sector Azure Dev Ops Task Recorder Automated Testing Suite Global Address Book Office 365 Add-in Vendor Collaboration Portal Retail & POS Product Catalogs Trade Allowance There are many more additional functionalities available through App Source, from Microsoft and third-party providers. Of course, the framework exists to build your own in future. 2. Integrated Business Operations With Dynamics 365, people and processes are all integrated, resulting in a much better experience for your employees and your clients. Your data and workflow seamlessly moves across all your departments. You get to build your software system according to your business operations, and not have to tweak or twist because of mosaic of systems you may have. Finance Operations Project Management Customer Service Talent Sales Field Service Retail 3. Business Insights With Dynamics 365, you can now easily realize the benefits of latest technologies like Artificial Intelligence and Machine Learning, Business Intelligence and Forecasting. Leverage the unlimited power of Flow (integration), Power Apps (extensibility) and Power BI (insights), giving your business a real advantage. 4. Web Client Modern & Mobile-friendly User Experience. Dynamics 365 Finance and Operations has a user-friendly interface and is available anywhere, anytime, on any device. Savings on the user training and improved user productivity. 5. Microsoft Cloud Leader in the cloud space. Office 365 โ€“ Active Directory & Authentication Top quality infrastructure maintenance Scalability & flexibility Consistent Upgrades Built-in Disaster Recovery Cybersecurity Monitoring & Threat Management Intrusion detection & Ongoing Application Penetration testing 6. Cost of Ownership Freeing up your infrastructure workforce to work on other projects. Cloud model provides more visibility into the operating costs of your solution. Huge savings in the total cost of application (infrastructure, application maintenance, software license combined). 7. Support Lifecycle Support forย Dynamics AXย is nearing its end and current users are transitioning toย D365 Finance and Operations. Software Patches, Application Updates, Security fixes would not be available in time or not at all. The Application Support resources and User forums will start drying up. Our Microsoft certified professionals are ready to guide you through the process, and request a personalized TCO comparison. About the Author Sohena Hafiz is the President atย Ascent Innovations LLC. Sohena has extensive experience both in Technical and Functional roles over 22 years delivering customer-centric solutions in Microsoft Dynamics AX and Dynamics 365 Finance & Operations.

If You Sense Problems in Your D365 Implementation, You Probably Have Them

ERP implementations are complex. Delays, budget overruns, and lack of progress donโ€™t just happen randomly. If youโ€™re noticing signs of trouble, chances are the problems already existโ€”and theyโ€™re growing. Most organizations donโ€™t take action until issues become unavoidable. By then, recovery is costly, timelines are unmanageable, and executive confidence is eroding. The key to avoiding major failure is recognizing the warning signs early and acting before itโ€™s too late. Top 5 Warning Signs Your D365 Project Is in Trouble 1. Unclear Business Objectives When asked, can your team articulate the business goals behind the implementation? If thereโ€™s hesitation, itโ€™s a problem. A project without a clear, well-communicated vision will driftโ€”features will be built that donโ€™t serve the business, priorities will shift unpredictably, and leadership will struggle to measure success. What this leads to: Endless revisions and scope changes Disconnected business and technical teams A system that is functional but not useful 2. Persistent Project Delays Without Justifications Delays happen, but they should always have a clear reason and a corrective action plan. If deadlines are constantly shifting and explanations are vague, the project is already losing control. Endless revisions and scope changes Disconnected business and technical teams A system that is functional but not useful What this leads to: Rising costs with no clear ROI Low confidence from leadership and stakeholders Rushed decisions leading to poor implementation quality 3. Gaps in System Design and Customization A well-implemented ERP system should align with your actual business processesโ€”not force users into workarounds. If teams are struggling with usability, or the system feels unnecessarily complicated, design issues may be at the core. Common red flags: Over-customization โ€“ When simple processes require excessive modifications, creating unnecessary complexity. Under-customization โ€“ When critical business functions are missing, forcing teams to operate outside the system. Lack of user input โ€“ Functional teams werenโ€™t involved in the design phase, leading to misaligned workflows. 4. Poor Testing and Quality Assurance Rushing through testing to keep the project โ€œon trackโ€ is a critical mistake. If user acceptance testing (UAT) is inconsistent, errors keep resurfacing, or teams donโ€™t trust the system, your project isnโ€™t ready for go-live. Key risk areas: Unidentified integration issues with other systems. Missing or incorrect data migration, leading to reporting errors. Incomplete training, leaving users unprepared for real-world use. 5. Low User Adoption and Resistance to Change The best ERP system is useless if people donโ€™t use it. If end users are hesitant, reverting to old processes, or complaining about the systemโ€™s usability, adoption problems are emerging. This often happens due to: Inadequate training โ€“ Users werenโ€™t prepared, so they default to manual workarounds. Process misalignment โ€“ The system doesnโ€™t fit their workflow, leading to frustration. Lack of executive buy-in โ€“ Leaders havenโ€™t reinforced the value of the system. Cost of Ignoring the Signs These warning signs donโ€™t fix themselves. The longer issues go unaddressed, the higher the recovery costs โ€“ both in budget and in business impact. If your D365 project is showing any of these signs, the best move is to act now. A structured, expert-led project assessment can uncover risks, define corrective actions, and reset the implementation on the path to success. Turning a Failing Project Around At Ascent Innovations, we specialize in rescuing D365 implementations before they spiral out of control. Our structured approach focuses on: Pinpointing root causes โ€“ A comprehensive project audit to identify critical gaps. Developing a risk mitigation plan โ€“ Addressing overlooked requirements, system misalignment, and leadership gaps. Rebuilding confidence โ€“ Establishing a realistic, achievable path to go-live with full executive alignment. Fix the Problems Before They Cost More If youโ€™re sensing trouble, itโ€™s not just intuitionโ€”itโ€™s a sign to act. A failing ERP project can drain resources, disrupt operations, and damage executive confidence. The sooner you assess the risks and take corrective action, the lower the cost and impact of recovery. Experience has no alternative. If your D365 implementation is off track, we can help you get it back under controlโ€”before itโ€™s too late. About the Author Kalyan Kumar is a Senior Consultant for D365 and AX implementations with a track record of over 30 successful ERP rollouts across industries, including manufacturing (discrete and process), service, trade and distribution, construction, real estate, and government.

importing-custom-data-in-d365-data-entities

Every organization hasย custom data that is specific to their operations/process. Most organizations see tremendous value in bringing over that data to work with your enterprise software system either interactively for transactions or use for reports/dashboards. Microsoft Dynamics 365 Finance and Operations has provided a Data Management Framework (DMF), that allows for the D365 system to be that one fully-integrated & all-encompassing system. We will walk through Data Management Framework of Dynamics 365 Finance & Operations. Data Management & Data Entity Data Management Framework of Microsoft Dynamics 365 for Finance and Operations utilizes data entities in Data migration Copy module setups and configurations Integrations In this example, we will see how data is imported through Data entity from an Excel file. Figure 1. Data Management in Dynamics 365 for Finance and Operations Sample Scenario D365 Finance & Operations allows for adding fields to existing Data entities, so most custom data can be included within that entity. For the sake of explaining the programming concept, we will create a new entity which is related to the existing master data entity, say Customer. There are many scenarios where users bring data from external systems and import into D365 on a daily/weekly basis. Figure 2. Sample excel data The user will make a list of customer accounts available, in an excel file, and then import that file in Dynamics 365 for Finance and Operations using theย Data management workspaceย through aย Data Entity. During the import, the system will find the related record of customer account in Customer master and store its record Id (CustTable.RecId) into a new tableย ASCCustRelatedTable as well as monthly account balance (and any other custom data fields). In case of any exception, user would able to view the error or warning details in the log of the Data management module. Building the solution First, we will create a tableย ASCCustRelatedTableย with all the required fields and index where we store the values ofย CustTable.RecIdย during the time of import from excel. In our case, we have fields and index as mentioned here Figure 3. ASCCustRelatedTable structure Figure 4. View of ASCCustRelatedTable in the development window After creating the tableย ASCCustRelatedTable, we would be creating a data entity. For this we must right click on the table and go toย Add-ins, then click onย Create data entity. By doing this, new data entityย ASCCustRelatedTableEntityalong with some dependent security privilege objects. Figure 5. Creating new entity from ASCCustRelatedTable Figure 6. New entity and security objects from ASCCustRelatedTable The user will only import an excel file that contains a list of customer account, but we require to store the record Id of Customer master (CustTable.RecId) into a separate tableย ASCCustRelatedTable as well as monthly account balance. To achieve this, we must create a new classย ASCCustRelatedTableEntityEventsย and subscribeย MappingEntityToDataSourceย event of data entityย ASCCustRelatedTableEntity. We would be initializing the value ofย CustTableRecIdย andย MABย fields through thisย MappingEntityToDataSourceevent which would be executed during the time of excel import.   Here is how the assignment would be CustTableRecId = CustTable.RecId MAB = CustTable.BalanceCurrency() We can change and utilize the event as per your need and business scenarios. Figure 7. Assigning values to the fields of the ASCCustRelatedTable through MappingEntityToDataSource After all these steps, we should build and synchronize our Visual Studio solution. Testing Log in to your Microsoft Dynamics 365 for Finance and Operations environment & open the workspaceย Data management. Click onย Import, choose the data entityย ASCCustRelatedTableEntity and add your source excel file with the list of customers. Figure 8. Data management workspace โ€“ Import This is how the import project looks Figure 9. Data management โ€“ Import project Click onย Importย in the action pane and records will get inserted into the tableย ASCCustRelatedTableย along with the fieldย CustTableRecIdย andย MAB. Figure 10. ASCCustRelatedTable table browser In case of an error, we can refer the log. Figure 11. Data management โ€“ Import projectโ€™s log information

Microsoft Dynamics 365 Finance & Operations โ€“ Deployment options

You can now deploy Microsoft Dynamics 365 for Finance and Operations in the cloud or on-premises. Cloud deployments offer a software system that is fully managed by Microsoft, while on-premises deployments as name suggests, are deployed locally within a customerโ€™s data center. ย  Important: On-premises deployments of Microsoft Dynamics 365 for Finance and Operations are NOT supported on any public cloud infrastructure, including Azure. ย  The following table provides a comparison of the capabilities provided by the two deployment options. Why cloud? Cloud deployments provide a cloud service that is easy to scale up or down as needed, as well as data centers that are fully managed by Microsoft. The time spent implementing Finance and Operations can be significantly shortened, fewer customizations may be required, and the costs of IT hardware and infrastructure are lower. Cloud deployments include high availability, disaster recovery, sandbox environments, and application lifecycle management combined with cloud-based systems of intelligence, infrastructure, compute, and database services in a single offering. When needed, data failover in the cloud, automated deployment and continuous updates, and elastic compute capacity are available. A cloud deployment also provides data aggregation, financial reporting, and intelligence. The cloud service provides customers with the greatest value, the broadest range of functionality, the best application lifecycle experience, the easiest and broadest integration with Microsoft Azure services, the best option for business insights and intelligence, and the most value for customersโ€™ technology investments. Why on-premises? With an on-premises deployment, existing data center investments can be leveraged. Customers can also configure their enterprise preferences to meet their needs. The regulatory and compliance requirements of their business, Comply with data sovereignty rules in regions where there are no Azure Data Centers, or Ensure business continuity in areas with limited public infrastructure. ย  A customerโ€™s business data and processes are disconnected from the cloud and are stored and run locally in the customerโ€™s or their partnerโ€™s data center. Some connectivity is required for system management and updates which are enabled through Microsoft Dynamics Lifecycle Services (LCS), a cloud-based application lifecycle management service. Customer data that is related to the configuration and application customization may be stored in the cloud. For customers who choose to run Finance and Operations in their own data center, the on-premises deployment option will have a similar user-interface and application functionality as other deployment options. However, customers must take on the following responsibilities: Stand up their own infrastructure. Configure their own high-availability and disaster recovery solutions. Stand up sandbox environments. Manage their infrastructure, including scheduling operating system updates. ย  The additional costs to deploy and manage these capabilities might lead to higher deployment costs and a greater Total Cost of Ownership (TCO). Tools for deploying the Finance and Operations software and updates will be available to partners and customers via Lifecycle Services. Unlike the cloud deployment option, Advanced Analytics and Azure Machine Learning services are not included in the on-premises deployment option. Talk to us regarding TCO comparison depending on your current and future state of your infrastructure. Features not implemented in on-premises deployments There are some features that have not yet been implemented and planned to be part of future releases. However, there are few features that are not intended for on-premise deployments. Features not yet implemented The following features have not yet been implemented in on-premises deployments. These features have not been deprecated. If these features are critical to your on-premises deployment, please let Microsoft know to help in prioritizing on theย Dynamics 365 Application Ideas site. Features not planned for on-premises deployments The following features are not intended for use in on-premises deployments. There are no plans to implement these features in on-premises deployments. About the Author Abdul Hafiz is a technology leader with 25+ years of experience in optimizing and implementing ERPs to modernize finance and operations. As a Partner at Ascent Innovations, he has led growth and delivery for 14 years. He holds a masterโ€™s degree in computer and information sciences from the University of Illinois and advises executive teams on how to modernize the enterprise to drive profitable growth.

All-in-one-Deployable Package (ADP)

Introduction Microsoft has recently released a feature calledย All-in-one-Deployable Package (ADP). This is designed to eliminate deployment errors that many programmers deal with and improve deployment efficiency and reliability. We analyzed how it will impact our projects and how this concept plays a vital role in deployment process. This blog series is as result of our analysis. We have taken a business scenario to explain how package movement should be carried out before ADP and after ADP. Scenario: Current model architecture On an enhancement in Human resource management solution, we have created two new models: Time and Attendance and PTO Management models Time and Attendance Letโ€™s consider Time and attendance model containing elements with respect to employeeโ€™s working hours, clock-in, clock-out and time taken on breaks. Table -ASCTimeAndAttendanceTable Form โ€“ ASCTimeAndAttendanceForm Class โ€“ ASCTimeAndAttendanceClass PTO Management Letโ€™s consider PTO (Personal Time Off) Management or Leave Management model with elements handling the employeeโ€™s time-off requests, approvals and the utilization. Table โ€“ ASCLeaveRequestTable Form โ€“ ASCLeaveRequestForm Class โ€“ ASCLeaveRequestClass Let us see how package deployment is done currently and how package deployment should be done after introduction to All in one deployable package (ADP). To make this blog series clear, we have split up this blog content into two-part series: Part-1: Current deployment scenarios (Before ADP) Part-2: Deployment approach with ADP Part-1. Current deployment scenarios (Before ADP) How model movement is done currently (Before ADP) In order to deploy our code and customizations to a runtime environment (demo, sandbox, production), we must create aย deployable package. Currently deployments are carried out in two ways: Package generation from Visual Studio Package generation from DevOps Package generation from Visual Studio In order to deploy our code and customizations to a runtime environment (demo, sandbox, production), we have created aย deployable packageย of our models throughย Visual Studio Dev tools (Dynamics 365 Menu > Create Deployable package) and then we would upload to the Asset library in LCS. Package generation from DevOps Azure DevOps provides pipelines that can be used to automate builds. There are two types of pipelines: YML and Classic. We have followed the classic pipeline which is Team Foundation Version Control (TFVC). We have installed the NuGet package, built solution/projects, then the new deployable package would be created. We can then publish the deployable package artifact as build output. If you are following package generation from DevOps, there is no impact of ADP as that packages the entire models at all times. How it works? Initial deployment to Production For the initial deployment process, we have selected all the models i.e. Time and Attendance and Leave Management. So, our deployable package contains both the models. Going further to add the below changes which we have explained deployment-wise. Deployment -1: Changes in single model We have created a new inquiry form to list down employeeโ€™s clock-in and clock-out information. For this, we have created a new form ASC Time And Attendance Inquiry Form with existing table ASC Time And Attendance Table as data source Our deployable package contains only Time and Attendance model now. Deployment -2: Change in multiple models Change Request – 1 A request came in to add a new feature for Work From Home maintenance. In order to accommodate this, we have created a new form ASC Time And Attendance WFH Form with new table ASC Time And Attendance WFH Table. Change Request – 2 A new validation โ€œEmployee cannot take more than 2 days of Optional leave in a yearโ€ should be added when an employee creates new leave request. For this, we have added validation in the ValidateWrite of the ASC Leave Request Table. Both these models would be a part of deployable package. Now, in Part-2, let us see how the same scenario can be handled with ADP approach. Part-2: All in one deployable package What is ADP? In this concept, we create a deployable package with all the customized models instead of the specific model(s) with our customizations. We follow same set of procedures here, but we would beย selecting all our customized models every timeย we create a new deployable package regardless of changes being done in the model elements or not. So, anย ADP All-in-one Deployable Package is a software deployable package that contains all the models and binaries that you currently have in an environment. How it works? Letโ€™s consider the same set of scenarios we explained in Part-1and try to implement them with respect to ADP (All in one data packages). Initial deployment /Existing deployment For the initial deployment process, we have selected all the models i.e. Time and Attendanceand Leave Management. So, our deployment package contains both the models. Deployment โ€“ 1: Changes in single model For the initial deployment process, we have selected all the models i.e. Time and Attendanceand Leave Management. So, our deployment package contains both the models. Deployment โ€“ 2: Change in multiple models Change – 1 Employeeโ€™s work from home details listed in a new form ASC Time And Attendance WFH with new table ASC Time And Attendance WFH Table Change – 2 A new validation โ€œEmployee cannot avail more than 2 days of Optional leave in a yearโ€ should be added when an employee creates new leave request. For this, we have added validation in the ValidateWrite of the ASC Leave Request Table. As part of deployable package creation, both these models would be a part of it. Benefits of following the ADP model deployment approach This approach helps the multi-member development teams, this process becomes even more important when dealing with multiple sprints, releasing features in parallel as well in Support mode. This concept helps developers tremendously by drastically reducing the risk of deployment errors and helps with the overall project efficiency. Some of the common issues multi-member development teams face: Consider we already moved our deployable package containing Time and Attendance and Leave Management to Test environment. We have modified an object ASCLeaveRequestTable in the model Leave Management, based on a Change Request. If we create deployable package with only … Read more

Microsoft Dynamics 365 for Finance and Operations begin One Version era

Microsoft Dynamics 365 for Finance and Operations has entered the so-called One Version era, in which customers will say goodbye to traditional ERP upgrades and apply an ongoing and mandatory series of smaller updates to their systems on a monthly to quarterly basis. ย  Microsoft has made the case for the transition, hoping to convince current Finance and Operations (D365FO) customers that the new approach will benefit them in the long-run, and that Dynamics AX customers that upgrade will never have to endure another upgrade project in the future. This is in line with Microsoft Office 365 Upgrade philosophy. ย  The transition comes at a time when D365FO is growing and adapted at a far higher pace than ever before in the ERP product family. ย  Customer mix 30% Enterprise and 70% midsize. 77% are New Implementations vs. 23 percent Upgrades. ย  Functional usage in D365FO production environments Finance: 98 percent Supply chain management: 82 percent SCM Human capital management: 81 percent Warehouse Management: 63 percent Project Accounting: 16 percent ย  Another reason is due to improved upgrade and migration tools and the approaching end of life of various versions of AX. ย  The current model calls for customers to apply at least one update every three months, meaning a customer can skip two monthly updates but then must deploy the next one. For each update the customer can specify the week, day (Saturday or Sunday for most, but some industries like retail are opting for mid-week), and the time. ย  Another validation step for new updates will be the Release Validation Program, which brings customer-specific projects into an environment where they can be validated ahead of a release. Test results are checked by Microsoft and any defects are shared with the customer. This program requires sharing code and data with a team at Microsoft, Customer responsibilities and response The users historically have been unwilling to make frequent updates when they knew a system was working well, but One Version forces them to do just that. In theory, that risk from more frequent updates should be mitigated by two factors. First, early adopters will be getting these updates ahead of the majority of customers, and those teams should detect and report problems a month or more in advance of more conservative customers. Second, partners will be seeing the same update across all customers, meaning they should be able to predict the most common issues in any given month or quarter across all their D365FO clients. The users did not raise significant concerns or questions in response to his guidance, which helped Microsoft propel in this direction at a faster pace. The business leaders have adopted to this model of SaaS and see the value in the long run. Microsoft is also actively investigating customer needs and have engaged an independent consulting firm to report back to Microsoft on what customers say they need in various scenarios and industries (for example, FDA-regulated manufacturers, public sector regulations, ITAR compliance). Microsoft has already heard feedback from the community, which initially raised concerns, and is now in the process of adapting these principles. About the Author Abdul Hafiz is a technology leader with 25+ years of experience in optimizing and implementing ERPs to modernize finance and operations. As a Partner at Ascent Innovations, he has led growth and delivery for 14 years. He holds a masterโ€™s degree in computer and information sciences from the University of Illinois and advises executive teams on how to modernize the enterprise to drive profitable growth.

Getting D365 Right the First Time: Why Fundamentals Matter

ERP implementations are among the hardest things a business can do. They touch every part of an organization, bringing both transformation and disruption. The difference between success and failure often comes down to one thing: getting the fundamentals right. ย  I founded Ascent Innovations because Iโ€™ve seen firsthand what happens when an ERP project doesnโ€™t have the right leadership, expertise, and structure behind it. The truth is, a D365 implementation is not the time for trial and error. Itโ€™s like choosing a surgeon for heart or brain surgeryโ€”you want to know the expert you trusted will be there, not handing things off while they go golfing. ย  At Ascent, we donโ€™t just advise from the sidelines. I personally hire, train, and work alongside our team, ensuring that every project benefits from real experienceโ€”not just certification exam course prep level knowledge. Why the Details Matter D365 should be a game-changer for your business, but only if the foundation is solid. That foundation comes down to four things: Data โ€“ If your data is wrong, everything built on top of it will be wrong. Processesย โ€“ ERP should support your business, not force you into workarounds. Integrationย โ€“ Systems need to talk to each other, otherwise efficiency breaks down. Analytics โ€“ If you canโ€™t trust your reporting, you canโ€™t make informed decisions. ย  If any of these are overlooked, rushed, or mishandled, the result is the sameโ€”delays, budget overruns, and a system that doesnโ€™t deliver what was promised. The 5 Most Critical D365 Implementation Fundamentals 1. Data Accuracy and Migration Your ERP is only as good as the data inside it. Messy, incomplete, or inaccurate data leads to incorrect reports, broken workflows, and user frustration ย  What Needs to Happen Data cleansing before migrationโ€”not after problems surface. Structured mapping to ensure all critical relationships stay intact. Rigorous validation to prevent surprises post-go live. Data translations and transformation for accuracy and efficiency. 2. Business Process Alignment ERP success isnโ€™t just about technologyโ€”itโ€™s about how your business operates. If key workflows arenโ€™t well-defined and integrated, the system will never fully support your team. ย  What we focus on: End-to-end process analysisย โ€“ Understanding how departments interact. Fit-gap assessmentsย โ€“ Identifying where D365 meets your needs and where adjustments are required. Thoughtful customization โ€“ Only where it adds business value, not adding complexity. 3. System Integration An ERP does not operate in isolation. It needs to connect seamlessly with everything from CRM and eCommerce to payroll, warehouse management and other external systems. Where failures happen: Incomplete integration planning leading to manual workarounds. Weak data mapping that creates reporting discrepancies. Delayed testing that uncovers issues too late. ย  How we solve it: Early-stage integration planning to map system dependencies. Test-driven validation to ensure real-world functionality before go-live. Scalable architecture that grows with your business. 4. Reporting and Analytics Decisions should be based on real-time, accurate data. If leadership cannot trust the numbers coming from the system, they will revert to spreadsheetsโ€”and the entire ERP investment loses its value. ย  What matters: Finance and supply chain reportsย need to be accurate from day one. Role-based dashboardsย so each team sees relevant insights. Data governance policies to prevent long-term reporting issues. 5. User Readiness and Training Even the best system fails if people do not know how to use it. Training is not an afterthoughtโ€”it is a core part of success. ย  Our approach: Power users trained earlyย to act as internal champions.ย  Train the trainersย โ€“ power users will become the go-to users for their respective department as first level support Practical, role-specific trainingย instead of generic system overviews.ย  Post-go-live support to ensure long-term adoption. Why Leadership and Experience Matter D365 implementation is not a textbook exercise. Itโ€™s a complex transformation that requires leadership, foresight, and real experience. This is why I still practice, mentor, and work alongside my teamโ€”because when problems arise, leadership should be in the room solving them, not just checking in. At Ascent Innovations, we believe ERP should be predictable, rewarding, and successfulโ€”but that only happens when the right fundamentals are in place from the start. Letโ€™s Have a Conversation I encourage you to explore our website and see how we approach D365 projects, but there is no substitute for a real conversation. If you are considering implementation, or if your current project is not where it should be, we would welcome a conversation. Even if, for whatever reason, you do not choose usโ€”and we hope you doโ€”our mission is always your success. About the Author Sohena Hafiz is the Founder and CEO of Ascent Innovations, with 20 years of experience in Microsoft Dynamics and 16 years leading ERP implementations. She has been directly involved in 50+ ERP projects, including 30+ in D365, across industries like industrial equipment, steel fabrication, food manufacturing, banking, recycling, retail, and the public sector.

๐Ÿ” Annual Food Drive!

(November 3 to 17)

Weโ€™re proud to partner with the Schaumburg Township Food Pantry to support local families in need this season.

“If you can’t feed a hundred people, then just feed one”