Skip to main content

Dynamics

Dynamics

creating simple
Written By: Deepak Gupta

Blog

Creating Simple Tile Element In Dynamics AX

September 26, 2019 7-Minute read

Tile is a new element in form design in latest version of Dynamics AX. As with tiles at other places in Microsoft products, it is used to provide key information on dashboard with or without graphical image. Tile also have drill down functionality to go to an item which have detailed information about the topic.

In this walkthrough, I’ll create a simple counting tile which displays the number of record in a table.

As a pre-requisite, I have a simple table ‘SONTable2’ with two string fields – ID and Description.

Firstly, create a query based upon this table. I have set the Dynamics field property to ‘Yes’.

Secondly, create a new form which displays the record of this table in the grid. This can be a normal form which is used upon drill-down. I have used the same query as data source to this form.

Here is how this form looks like in UI

Make sure there is some data in the table/form, in order to generate valid count in tile.

Third step, create a display menu item for this form. Key point is to mention query property in this menu item to the query already created for tile.

Fourth step, create a new tile. Mention the label, name of display menu item (created above), menu item type and ‘Type’ property to ‘Count’. Leave ‘Query’ property blank.

Lastly, create a form which will hold this tile. Create a new ‘Tile button’ and point to the tile.

To open this form, you may create other menu item, add it to menu etc. I am just setting this form as ‘Startup object’ in VS to open it. And below is the result.

Clicking on the tile will take me to the ‘SonForm’ form again which shows the four records.

basic analytics
Written By: Deepak Gupta

Blog

Basic Analytics Artifacts

September 26, 2019 7-Minute read

AX 7 has changed the way analytics components are designed, deployed and used in this software. The perspectives and aggregate data entity are now first class member of AOT. Aggregate data entities can now be used as a data source in the form directly which was not possible in case of cubes earlier. This post describes the concepts of dimensions, measures and data entities. Their use in forms will be described in later posts.

Perspectives

As the name suggest, it is a different way to represent the transactional data. Generally data is arranged in such a way that it helps in making business decisions. For example, sales transactional data will have records about individual sales while business decision maker will like to have aggregate sales per region.

There are two main type of perspectives – Dimensions and Measures.

Aggregate measures :

Measures are the numeric fields which contains aggregate data of transactions. It may be count of records, average of some number or sum of a number. E.g. Aggregate sales.

Aggregate dimensions :

Dimensions are data fields which can be used to divide the measured data (aggregate measure) E.g. regions of sale. So total sales can be dividedin sales per region of sale.

In Dynamics AX, aggregate dimensions can be defined separately to a measure. But every dimension will not apply to all the measures. In a measure, developer need to define what dimensions are applicable to it.

Aggregate data entity (ADE)

ADE is a formal data model which uses aggregate measure(s) as its data source(s) and it havefields much like a normal table view. These fields can be chosen from the related measure’s fieldsandits related dimensions. ADE can be directly used as data source in forms or queries or code.

I’ll write another post to walk-through to create the above artifacts in AX 7. Stay-tuned.

Tags:
AX 7, BI, Perspective, Measure, Dimension, Aggregate data entity

tips and tricks
Written By: Urminavo Das

Blog

Tips And Tricks To Clear Rainier Development

September 26, 2019 7-Minute read

Cleared this examination few days back, scoring over 90%. Sharing few tips and areas we can emphasize on for clearing this examination, which might be helpful -

- For experienced persons (having hands-on experience on Rainier), it will not be that much tough to clear the exam.

- For experienced persons (but not having hands-on experience on Rainier), it will not be that much tough to clear the exam. But please go through the Visual Studio environment and the related study materials, as this environment is completely new, along with the changes being incorporated.

- For freshers or profiles having mid-level or less experience, it will not be very tough to clear the examination. But please go through all the study materials being published by Microsoft, and understand them. Only Question/Answer blocks might not help you fully.

Few generic tips and areas to emphasize on -

  • Go through the study materials being published by Microsoft, and understand them. The questions might not always be direct, so you need to understand the concepts and select the answers.
  • Primary areas which can be emphasized on -
  • Configure Visual Studio, so that we can work seamlessly on it.
  • Understand "Application Explorer", ways of managing and organizing the same.
  • Create and manage solutions, projects, elements.
  • Create and manage models.
  • Create and manage packages.
  • Understand "Solution Explorer", "Element Designer", "Properties" window along with other commonly used terminologies.
  • Understand the relation between packages, models, projects and elements.
  • Understand Over-layering and Extensions, reference models.
  • Import and export of projects and packages.
  • Options to synchronize database (project specific as well as generic).
  • Options to manage builds and rebuilds (project specific, solution specific as well as model specific).
  • Understand "Dynamics AX 7" menu and the various options.
  • Understand Application Stack, along with the objects lying in the individual layers of the same.
  • Understand Server Architecture, along with the flow.
  • Understand Cloud Architecture, along with the involved components.
  • Create and manage labels, understanding label versions (language specific) and searching labels.
  • Create and manage resource files, types of files which can be associated.
  • Base enums, element values and their saving in SQL.
  • Primitive data types.
  • Extended data types, understanding which properties can be changed (in case of extending an existing EDT) and which properties cannot be changed.
  • Create and manage Tables.
  • Table indexes, different types of indexes and their usages.
  • Table relations, different types of relations ("OnDelete" property).
  • Table inheritance and properties required to implement the same.
  • "InMemory" and "TempDB" tables, along with their usages.
  • Basic level understanding of the table methods.
  • Creating and managing queries, understanding nesting of data sources, dynamic filters.
  • Creating and managing forms, differnet type of form controls, data sources.
  • Understanding form patterns and sub-patterns.
  • Create and manage different types of menu items.
  • Create and manage menus.
  • Managing and using code editor.
  • X++ language (data types, variable declarations and their usages, statements, loops, basic syntax).
  • Runnable classes and its usage.
  • Classes and objects
  • Class inheritance.
  • Different type of class methods and their executions.
  • Key properties for all the elements.
  • Base practices and advantages for all elements.
  • Basic understanding of debugger and its execution.
  • Basic understanding of comparison tools.
  • TTS blocks.
  • Data manipulation (read, insert, update, delete).
  • Exception handling (Try, Catch, Retry, Finalize).
  • Security architecture - roles, duties, privileges, process cycles, permissions, security properties on key elements.
  • Basic understanding of BI.
  • Basic understanding of OData.
  • Basic understanding of Reporting Services.

All the Best for the examination.

walkthrough
Written By: Deepak Gupta

Blog

Walkthrough - Create Basic Analytics Artifacts

September 26, 2019 7-Minute read

As a pre-requisite to create analytics artifacts, the base tables (generally transactional) & underlying data types are needed. For this walkthrough, I have four tables – TransData, ProductGrade, AreaMaster & GenderMaster. The latter three tables are master tables each having two fields Id and Description. ‘TransData’ table is a transaction table which have ‘TransDate’ as date type field and ‘Amount’ as a real type field and three more fields which are pointing to the Ids of three master tables respectively. The idea is to have transactional data based on area, product grade type & purchasing person’s gender.

Aggregate Dimensions

Dimensions are slicers on which aggregate data is divided for analysis. In our case it will be area, gender and product grade.

Create an aggregate dimension by choosing to add a new item to project and choosing ‘Aggregate Dimension’. Name the new item as ‘Area’. Choose the ‘Table’ property of the dimension to ‘AreaMaster’. Under attributes node, create a new dimension attribute node. Name it ‘AreaId’ and choose ‘Usage’ property as ‘Key’.

Under dimension field reference node, choose property of ‘Dimension Field’ to ‘AreaId’.

Similarly create aggregate dimensions for ‘Gender’ and ‘ProductGrade’.

Aggregate Measures

Once the dimensions are created, measures need to be created. It will be sum on transaction amount in our example.

Create a new item in the project and select ‘Aggregate measurement’ type for it. Name it ‘TransAggregateMeasurements’. Select the ‘Measurement group’ node and in properties, Choose ‘TransData’ in ‘Table’ property and set ‘TransData’ in ‘Name’ property.

Expand the Measures node and create ‘New measure’. Type name ‘SumAmount’, choose field ‘Amount’ and default aggregate ‘Sum’ in the properties.

Similarly create another measure for number of transactions.

Name – NoTrans

Field – RecId

Default Aggregate - Count

Now expand the Dimensions node. Two dimensions – ‘Company’ and ‘Date_’ will come by default. These dimensions can be used or deleted as per business requirement. In our case, ‘Company’ dimension is deleted and ‘Date_’ is linked to ‘TransDate’ in ‘TransData’ table. For that, expand the dimension node fully and choose ‘TransDate’ in the ‘Related Field’ property of ‘DimensionRelationConstraint’ Node under ‘Date_’ dimension.

Drag the area, gender and product grade dimensions from already created dimensions from the project under ‘Dimensions’ node.

Aggregate Data Entity

Aggregate data entity is a representation of aggregate measures and dimension in a tabular form. The data structure makes it easy to be used in forms, reports and code like any other normal AX table.

Create a new item in the project and choose ‘Aggregate data entity’. Name it ‘TransDataAggregate’. Drag the measure ‘TransAggregateMeasurements’ to the data source node of the data entity.

Expand all the nodes of data source. Drag the measures to the ‘Fields’ node. This will expose these measures as data entity’s fields. Next drag the dimensions to the ‘Fields’ node. For each such field, choose the ‘Attribute’ value in property window.

Now build the project & synchronize the database. Synchronizing is very important after you make any change to analytic artifacts. Otherwise, you may start seeing unwanted error messages.

The data entity is now ready to be used further. In the next post, I’ll walkthrough to use the data entity in user interface.

Tags:
AX 7, BI, Perspective, Measure, Dimension, Aggregate data entity, Walkthrough

calling restful
Written By: Deepak Gupta

Blog

Calling A Restful Service From Dynamics AX 2012

September 26, 2019 7-Minute read

Broadly there are three tasks which need to be done/required.

1. RESTful service & its complete parameter signature

2. VS API which calls this service

3. AX code which calls the VS API

I tried it with JSON based services. Unfortunately, I do not have any tool which can parse a JSON request and create a proxy for me (as I have for SOAP based services). So, I have to manually write code to format the service parameter string. For this reason it is very important to have correct format of request – from header to full body with all syntax. One punctuation mistake may end up in debugging nightmare.

In VS create a new project of type ‘Class library’. In this project create a public method which takes parameters from AX, calls the web service and return result to AX. Keep the incoming parameters as simple data type like string, int, double etc. as they easily marshalled between X++ and C#. Use arrays if needed in parameters. Create a separate method (private) for formatting web service parameter string. As the logic for formatting string can be complicated it is advisable to keep it separate from caller code. The API method will call this formatter method as needed. Use enough try catch in the API method as web services often throws errors for various reasons and there should not be any unhandled error.

Now deploy the VS project to AX. Make sure that assemblies at both server and client are updated.

Create a class in AX which calls the VS API with required parameters.

Happy DAXing

common performance
Written By: Feba Thomas

Blog

Common Performance Issues In X++

September 26, 2019 7-Minute read

Introduction:
With every passing day there is growth in data volume, user load, distribution and more. There are multiple issues that spring up as a result of this growth and many other factors that are difficult to gauge at an early stage. Ensuring the key scenarios in your application undergo performance test helps isolate and fix some of the issues in advance. The remaining issues are mostly unknown and may fall under the below categories.

This article lists most common performance issues observed in Microsoft DynamicsAX and possible steps to avoid them.

1. Table group and Cache lookup settingson table

Common Issue:
Wrong caching leads to unnecessary calls to the database leading to too many round trips to Server

Description of Suggestion/Fix:
The three tier architecture of Dynamics AX allows you to define caching on AOS and client. Not using caching properly is the first root cause for performance. Make sure the following rules are defined:

All your customized tables have relevant table group defined in AOT. For example, master data should have “Main” category and transactional data should be set to “Transaction” (header or line).

Don’t leave the default setting “None” for Cache Lookup and set the correct value to your table such as “EntireTable” for Parameter table and “Found” for Main group.

Review the cache limit for every table group in the server performance settings For best practice to setup Cache Lookup on tables Refer Cache Lookup Best Practice.

2. Use of display method and Display method caching

Common Issue:
Slow opening of Forms with huge Data

Description of Suggestion/Fix:
This is a common root cause of slow opening or refreshing of form object. It is quite easy to find such root cause by removing the display method and run Trace Parser tool to compare the two traces. In a scenario where a display method is used to display a column on a grid, the display method is executed for each row that is populated in the grid. That makes the overhead of the method quite expensive. The performance of display methods can be improved by caching them if they are calculated on AOS. Caching display methods can also improve performance when records are transferred from the server to the client. The value of all cached methods is set when data is fetched from the back-end database. In addition, the value is refreshed when the reread method is called on the form data source.

3. Caution on using Nested while loops for highly expanding tables

Common Issue:
Scenario Slowness

Description of Suggestion/Fix:

Review the need of using nested loops especially for getting the count / any other aggregate function can be done using a SQL query instead of running through the table For ex: Replace the Below code

Table1 table1;

intincCount;

WhileSelecttable1wheretable1.Field1 == "1001"

{ incCount++; }

WITH

Selectcount(RecId) fromtable1wheretable1.Field1== "1001";

incCount= table1.RecId;

4. SQL Queries on large tables/highly expanding tables without index optimization

Common Issue:
Scenario Slowness

Description of Suggestion/Fix:
We often write complex queries/stored procedures to achieve complex functionality on Reports or any business process. The impact of index is mostly unnoticed at the development stage as there is not much data in the table , especially when transactional tables are involved (highly expanding in real time) it will have a heavy impact on the performance in real time. Such queries should be index optimized beforehand.

The below guidelines are helpful while designing and implementing an index :
When designing indexes, follow these guidelines:

  • Use indexes on tables with numerous rows, on columns that are used in the WHERE clause of queries or in table joins, and on columns used in ORDER BY and GROUP BY queries.
  • Avoid infrequently used indexes on frequently updated columns. In addition, avoid having many indexes on a table that is frequently updated. Otherwise, you unnecessarily increase the insert and update times of your queries. To improve performance, minimize the total width of the indexed columns.
  • Use clustered and nonclustered indexes appropriately. Understand the purpose of each and choose the correct type for your scenario.
  • Use a covering index to reduce the query execution time of frequently used statements. A covering index is a nonclustered index that has all the columns that come in a WHERE clause and in the query column selection.
  • Maintain the correct order of columns in Index , exactly in the order they are entering into the query context , which ensures the index is used and optimally used.

5. Row by Row operation vs Bulk operation

Common Issue:
Query performance and High Round trips to server

Description of Suggestion/Fix:
The three bulk operations, Update_RecordSet, Insert_RecordSet and Delete_From operations are great way to improve the performance of X++ queries with only one RPC call to the database for multiple rows impacted. The problem is that overwriting the SYS method update(), insert() and delete() methods may break these features. Wrong customization can lead into a row by row operation. So it is recommended to verify the RPC calls with Trace Parser to verify the performance of the intended X++ code.

6. Pre-Allocation of non-continuous number sequences

Common Issue :
Intermittent Scenario Slowness

Description of Suggestion/Fix:
This is a crucial setting in the Dynamics AX application that needs to be reviewed every few months on production to match the usage of the number sequences. Basically, number sequences can be Continuous or Non Continuous. When they are non-continuous, you can allow pre allocation per ID and therefore reduce the database calls and improve performance. When consumption is high, like several ID per seconds, we have noticed Lock Escalation events on the table NumberSequenceTable. This is especially true when Dynamics AX batch are running and generate thousands of records for Journals Lines creation or Sales Order Invoicing. Please read this blog post to better estimate this consumption.

7. Replace select * with field list and use Exist Join

Common Issue:
Scenario Slowness

Description of Suggestion/Fix:
This is one of the most common issue with huge performance impact.Use the Field list and Exist join when possible. For every X++ Select statement, make sure you only retrieve the necessary fields. Same idea with Exists Join statement where you can reduce the amount of communication between the AOS and the database. This is especially true when customization adds lot of new fields on existing tables.

For example, replace the following code:While select Table1 {

    Select Table2 where Table2.Field1 == Table1.Field1; Print Table2.Field2;

}

WITH

While select Field1 from Table1 Join Field1, Field2 from Table2

Where Table2.Field1 == Table1.Field1; {

    Print Table2.Field2;

}

8. Unnecessary Joins across multiple tables with huge data

Common Issue:
Query slowness

Description of Issue/Fix:
It is a general observation that there exist multiple joins on the most time taking , complex queries to achieve complex functionality. A common mistake that occurs is having unnecessary joins among related tables regardless of whether data is utilized from joined tables or not.

For Example:

You can replace the following query:

While select Field1 from Table1

Join Field1, Field2 from Table2

Join Field2,Field3 from Table3

Where Table2.Field1 == Table1.Field1

&& table3.field2 == table2.Field2; {

    Print Table2.Field2;

Join Field2,Field3 from Table3

Where Table2.Field1 == Table1.Field1

&& table3.field2 == table2.Field2; {

    Print Table2.Field2;

}

WITH

While select Field1 from Table1

Join Field1, Field2 from Table2

Where Table2.Field1 == Table1.Field1{

    Print Table2.Field2;

}

9. Outdated statistics on highly growing tables leading to poor execution plans

Common Issue:
Long running queries

Description if Suggestion/Fix:
It is a common observation that despite turning the AUTO UPDATE STATISTICS to “true” we sometimes encounter outdated stats leading to poor execution plans and hence long running SQLs.

TO diagnose this issue , after the expensive query is identified , you can run the “Set Statistics Profile on” before running the expensive query for Analysis. Observe the output to compare the Actual Rows and Estimated Rows. If the difference is too high either or both of the following two suggestions can be considered :

a. Check if there is room for query Optimization (like by adding a new filter/range to span a smaller set of records.)

b. Update statistics With Full scan on the table

10. AX/SQL Configuration affecting performance

Common Issue:
Overall System/Process slowness

Description of Suggestion/Fix:
Sometimes there is no clue from the code and still the overall system is slow or a specific scenario is inconsistently showing poor performance. Some of this attributes to inappropriate setting for AX / SQL server configurable parameters. Please refer Top 10 issues from AX Health Check blog post to know more about these settings.

restrict development
Written By: Deepak Gupta

Blog

Restrict Development Access

September 26, 2019 7-Minute read

I have seen situations where it is required for certain AX users to have the administrative access on an environment but not for creating/editing/deleting code or objects. This is particularly difficult to achieve because the standard AX role ‘System Administration’ automatically gives all code access including editing.

On the other hand if a new role is creating by having all duties in AX, the users’ system response time becomes too slow because runtime permission check seems to take ‘forever’.

Another option is to remove the X++ development license from the environment. But doing that means that nobody will be able to even view the code. That is generally not desirable. Sometime viewing code is the quickest way to find whether a new change has been reflected in the environment correctly.

To find a solution, I tried multiple avenues but eventually got stuck to version control framework. This is where I find similarities in the current system behaviour and what I needed – user able to view the code, debug it but not create, edit or delete it.

I created a new class by extending the version control class for MorphX version control and override all methods like ‘allowCreate’, ‘allowEdit’ etc. to return false. Once that is done, I added a new enum element in the version control type enumerator and have the construct of the main version control class changed to accommodate initialization of my new class object based upon the enum value. Few more simple changes into version control parameter form and the project is ready.

Now in an environment administrator can simple enable newly created version control system and all the users in ‘System Administration’ role are not able to change any code. They can view it or debug it.

living it up
Written By: Mohammed Ajmal

Blog

Living It Up With Dynamics 365 – Upgrade, Start Afresh And Succeed!

September 26, 2019 7-Minute read

Innovating with technology is the only recipe for success, and even still an upgrade to MS Dynamics 365 is your much needed haven. Recognizing your need to become a world leading Distribution or Retail business may seem highly camouflaged, if you don’t consider the desirable and unique cohesion of a number of functions, such as Sales, Marketing, Manufacturing, Finance, Operations, etc., within your organization. But here’s your answer - the new upgrade does all this for you.

60% of businesses say they consider a Cloud-based ERP model for their next implementation and with getting the MS Dynamics 365 upgrade, scaling your infrastructure or managing expansive workloads, has never been easier. Key factors while considering an ideal implementation, don’t you think? And yes, do you anticipate a need for it?

Upgradation means one thing, getting slick and smart with your assets to cater to a heightened need which is more than just for the sake of utility. This “heightened need” can be particularly described as, fueling CRM and ERP systems whereby, they become a factor in transforming business completely. Therefore, considering ERP modernization becomes vital, as an old ERP model would be equivalent to not having one at all, and if you get the current upgrade MS ensures that you DO NOT have to modernize or go in for any new modernizations or re-implementations in future. This is one of the key reasons why you need MS Dynamics 365, as older systems may not have the functionality that the newer one will have.

Secondly, there is a greater need for your business than ever – adding value. Inefficiencies in a system are expensive, but if that’s what’s rattling you, modernizing your ERP at the cost of inefficiency is even dearer.

So what can you do except wait with bated breath for the new version of MS Dynamics to hit your business. Yes. I most positively said hit! And find your forthcoming ventures with the briskness of Sonata’s platforms together with those that MS has on offer (Power Apps, Flow, Power BI, etc), which can lead to the primary purpose of crunching rich data and bringing about a mass but highly sustainable, enduring and palpable solution – all of it being Cloud-borne. So what are you waiting for?

The beneficial aspects of MS Dynamics 365 are several. Are your software developers hassled by writing too much code? Is accessibility to a new feature or update a concern? Or does an even pressing matter – Greater ROI preoccupy you? If your answer is a resounding yes to one or all of these Qs, MS Dynamics 365’s new features, and your obtaining this upgrade, will serve as a quick fix to this conundrum.

What’s more, regardless of one’s Company size or industry, MS Dynamics 365’s ERP platform can help provide streamlined IT, greater security, seamless migration to the Cloud and efficient data management, creating a most unified and integrated environment! Greater security means youth for your business and an ERP moved to Cloud means staying fresh and current. And how is that? Moving to Cloud can help you unlock new capabilities to make implementations easier and improve productivity.

So when push comes to shove, the only thing you can do is take stock of your current systems in CRM and ERP, and be zealous and highly extensible when it comes to getting that upgradation. Remember, always being forthcoming is vital and crucial, and only careful deliberation will help you get in the right direction. As the title of my blog suggests, it’s upgrade and succeed – but the punch line’s actually – deliberate and upgrade, and succeed!

Sonata is here to help you make the swift transition from earlier versions of MS Dynamics to 365, if you’re an existing customer but are raring to go with the new upgrade. Its (Sonata’s) proprietary upgrade tool allows you to quickly and directly upgrade your existing systems onto Dynamics 365, while retaining your customizations.

Your next or fresh upgrade is not a hop, skip and jump away but just by few simple clicks to get in touch with us. Now do you want to scale differently?

have you planned
Written By: Rathi Rao

Blog

Have You Planned Your Upgrade Yet?

September 26, 2019 7-Minute read

It is official now, Microsoft ended its mainstream support to AX 2009 as of 10th of October 2018. First launched in 2008, this marks an end of an era!

Microsoft Dynamics AX 2012 R1 and R2 also reach the end of support but R3 continues. Ending mainstream support for a Microsoft’s product means no more product enhancements or security updates, hotfixes or feature requests.

We at Sonata are nostalgic, with a long history of being integral to these products as part of product engineering and support team along with Microsoft. But looking ahead, the all new Dynamics 365 leverages the power of the Cloud and we are excited to be able to help customers build intelligent business solutions and transform the way we work today.

If you’re thinking that Dynamics AX is working well for you and you don’t want to upgrade, here’s what you should be mulling over–

  1. Today the world is going digital and you are missing out on opportunities to enhance customer experience, improve employee productivity and get instant access to business insights based on your data.
  2. You can do away with customizations that are not keeping up to the demands of the industry and are available today as standard product features in Microsoft Dynamics 365
  3. Make the most out of the 40% discount on upgrading to Microsoft Dynamics 365
  4. Lastly, it’s not complex! Check with us on how you can simplify and accelerate your migration

MS Dynamics 365 unifies CRM and ERP capabilities into applications that work seamlessly together and empower businesses to better engage with customers, employees, optimize operations and potentially reinvent products and business models.

Speak to Sonata to determine how MS Dynamics 365 can help transform your business and reach out to us for the easiest way to upgrade and migrate to Dynamics 365, by exercising your safest bet by getting the upgrade.

Sonata is in the Top 1% of Dynamics Partners worldwide, Gold Certified, with Microsoft accreditations and recognitions built over 12+ Years of track record. We have a global scale, over 180+ Dynamics Engagements, expertise on the entire stack of Dynamics 365 - Cortana, Power BI, Flow, Power Apps, Azure to consider.

So hurry! It’s well past 10th Oct already! To know more about Sonata’s Upgrade Tool click here.

microsoft dynamics
Written By: Michael Abishai Ambrose

Blog

Microsoft Dynamics Inner Circle – A Touchstone For Sonata

September 26, 2019 7-Minute read

One of the more elite groups consisting of strategic Microsoft Dynamics partners from across the globe, Inner Circle has dubbed us, Sonata Software as its member for 2018-2019! This membership is limited primarily to the top 1% of Microsoft partners worldwide. Our ability to innovate and being sighted as agents for digital transformation, is what assisted us in getting this membership.

Our focus on Cloud-based industry solutions, helped us gain this recognition, and we are honored to achieve it. We have delivered transformative solutions to our customers and have grown our business significantly in 2018. The selection criteria included Sales achievements and growth during the 2018 fiscal. Our recognition reflects this growth, helping us to focus on delivering exemplary customer experiences.

Cecilia Flombaum, a Senior Director at Microsoft, at One Commercial Partner org, had this to say and complimented us on becoming an Inner Circle member: “Partners are a fundamental component of our go-to-market strategy and we greatly value their contribution toward growing our business. Sonata Software is one of our closest partners and has worked closely with us to deliver great value to our customers. We are thrilled to present this well-deserved recognition to the Company as we welcome it to our Inner Circle for Microsoft Dynamics. We greatly appreciate Sonata Software’s unblemished delivery track record and its investment into building re-usable frameworks and methodologies on Microsoft Dynamics.”

Our engagement with Microsoft Dynamics goes far back, to the time when Microsoft Dynamics 365 products were engineered, right to upgrading the first few customers onto Dynamics 365. In addition to being spelled out as a member of Inner Circle, Sonata is also a member of Microsoft’s Global Advisory Council. For Sonata, Microsoft Dynamics is also at the heart of our Platformation™ methodology that helps pave the easiest way for enterprises in transitioning to a digitally able environment.

Sonata Software comprises a superior mix and some of the largest Dynamics 365 customers spanning the whole globe. We have a potent team of Dynamics 365 as well as AX and CRM consultants. Further, we are a Tier-1 CSP for Microsoft in a number of countries. What’s more, we have also developed IP’s on the Dynamics platform – Brick & Click for Retail and Modern Distribution for Manufacturing and CPG.

For further information on Sonata’s MS Dynamics capabilities, visit: MS Dynamics