Master Scheduling and the Due Dates for Safety Stock Requirements in Microsoft Dynamics AX & 365 for Finance and Operations, Enterprise
Office operations over LAN for Local VHD of Dynamics 365 for finance and operations enterprise edition
Year-End Deferral Problems? Binary Stream Solves Them!
Year-End Deferral Solution
Are you faced with a slew of deferrals to clean up at year-end? Are you managing your deferrals to ensure maximum taxable benefits? Smart deferral of income and chargeable gains that allow you to defer taxes to the following year? You may find the thought of year-end deferrals enough to turn your stomach. However, managing deferrals efficiently and managing them to achieve maximum business advantages can be easy and virtually stress-free. Really! Binary Stream offers a year-end deferral solution.
Deferrals and Deferral Adjustments
Deferral entries are like postponed transactions; the money part has already happened. However, the income statement impact was put off until later. Adjustments are required to transform these entries from the balance sheet to the income statement. Prepaid expenses become current expenses and unearned revenues turn into current revenues.
Deferred Revenue Adjustment
With deferred revenue, your company gains the positive cash flow from a customer’s advance payment, without the need to record taxable revenue at the same time. Adjustments are necessary when you begin earning that money. At this time, you are required to shift all or part of your liability account to your revenue account.
Deferral of Income
Here’s where you can maximize your cash-in-hand by managing your deferrals smarter. Any payments your company can receive during the first week of January as opposed to December can cut your tax bill. Every penny deferred until January will not owe taxes until April the following year. Managing the instances you can implement deferral of income is extremely easy, doesn’t involve spreadsheets and leaves no room for error when you use a solution such as Binary Stream’s Advanced Revenue and Expense Deferrals (ARED).
Efficient Deferral Management
Efficient deferral management made easy with Advanced Revenue and Expense Deferrals. Here’s how:
- Define deferral “profiles” by item or by distribution type
- Choose not to auto-post to future periods
- Choose not to post to closed periods
- User-controlled reversed deferral journal entries (we do not reverse all postings at once)
- Out of the box inquiries to view deferred revenue by customer, item, etc.
- Place deferral schedules on hold
- Apply credit memos to deferral schedules
- Various methods for cancelling schedules
- Import schedules
- Integrate to Recurring Billing Manager for recurring SOP invoicing
- Integrated VSOE calculations
- Prorate first and last period
- Manage different deferrals within the same invoice with extreme ease
Interested in learning more? Contact neil@binarystream.com
Microsoft pledges "highest-value support available" standard with Azure
Resolve default dimension through X++ [D365FO]
This one is resolving the Default dimension
public static void getDefaultDimension()
{
DimensionNameValueListContract dimensionNameValueListContract = new DimensionNameValueListContract();
dimensionNameValueListContract.parmValues(new List(Types::Class));
DimensionAttributeValueContract dimensionAttributeValueContract;
//Dimension 1 - repeat this for all other dimensions
dimensionAttributeValueContract = DimensionAttributeValueContract::construct('Department', '022');
dimensionNameValueListContract.parmValues().addEnd(dimensionAttributeValueContract);
//resolve the dimension
DimensionNameValueListServiceProvider dimensionNameValueListServiceProvider = DimensionNameValueListServiceProvider::newForDimensionNameValueListContract(dimensionNameValueListContract);
DimensionStorageResult dimensionStorageResult = dimensionNameValueListServiceProvider.resolve();
if (dimensionStorageResult.parmInvalidValue())
{
error("Invalid dimension");
}
info(strFmt("Default dimension RecId: %1", dimensionStorageResult.parmSavedRecId()));
}
Resolve Budget dimension through X++ [D365FO]
This one is to resolve budget dimensions. Be careful here to use the right class. Budget plan and Budget register use a different contract class.
public static void getBudgetLedgerDimension()
{
//use BudgetPlanningContract for Budget plan
//use BudgetAccountContract for Budget register
BudgetAccountContract budgetAccountContract = new BudgetAccountContract();
budgetAccountContract.parmValues(new List(Types::Class));
budgetAccountContract.parmAccountStructure('Manufacturing P&L');
DimensionAttributeValueContract attributeValueContract;
//Main account
attributeValueContract = DimensionAttributeValueContract::construct('MainAccount', '110180');
budgetAccountContract.parmValues().addEnd(attributeValueContract);
//Dimension 1 - repeat this for all other dimensions
attributeValueContract = DimensionAttributeValueContract::construct('Department', '022');
budgetAccountContract.parmValues().addEnd(attributeValueContract);
//resolve the dimension
BudgetDimensionCombinationServiceProvider budgetDimensionCombinationServiceProvider = BudgetDimensionCombinationServiceProvider::newForBudgetAccountContract(budgetAccountContract);
DimensionStorageResult dimensionStorageResult = budgetDimensionCombinationServiceProvider.resolve();
if (dimensionStorageResult.parmInvalidValue())
{
error("Invalid dimension");
}
info(strFmt("Budget Ledger RecId: %1", dimensionStorageResult.parmSavedRecId()));
}
Resolve ledger dimension through X++ [D365FO]
A bit of code to show how to resolve ledger dimensions. There are various codes out there but I thought I would write it in an easy way to understand. It is hard code but I did that for illustration purposes.
public static void getLedgerDimension()
{
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
DimensionSetSegmentName dimensionSet;
DimensionStorage dimStorage;
LedgerAccountContract ledgerAccountContract = new LedgerAccountContract();
ledgerAccountContract.parmValues(new List(Types::Class));
ledgerAccountContract.parmAccountStructure('Manufacturing B/S');
DimensionAttributeValueContract dimensionAttributeValueContract;
//Main account
ledgerAccountContract.parmMainAccount('110180');
//Dimension 1 - repeat this for all other dimensions
dimensionAttributeValueContract = DimensionAttributeValueContract::construct('Department', '022');
ledgerAccountContract.parmValues().addEnd(dimensionAttributeValueContract);
//resolve the dimension
LedgerDimensionCombinationServiceProvider dimensionServiceProvider = LedgerDimensionCombinationServiceProvider::newForLedgerAccountContract(ledgerAccountContract);
DimensionStorageResult dimensionStorageResult = dimensionServiceProvider.resolve();
if (dimensionStorageResult.parmInvalidValue())
{
error("Invalid dimension");
}
info(strFmt("Ledger dimension RecId: %1", dimensionStorageResult.parmSavedRecId()));
}
There are a few other ways that do the same. Another example is using this method.
LedgerAccountDimensionResolver::newResolver
Use find reference to get some examples. However I prefer this method above.
Safety stock in Dynamics 365 for Operations (and AX 2012 and AX 2009).
Consistency check for a single item in Dynamics 365 for Operations (and AX 2012 and AX 2009).
How to: Move security configurations across Dynamics 365 environments
As you might know, security related topics are one of my favorites. It is not only about the technical stuff how to configure the roles. It is also related to e.g. segregation of duties to prevent possible fraud. It is always fun to work together with a customer to get the best possible setup which is manageable for the application support department. One of the tasks is moving new security configurations between environments.
In this post I will tell you how to do this, but also a neat trick how to rename newly created security objects as the Security configuration form is not supporting this.
Type of security changes
It is possible to do changes related to the security in several ways:
- Development in Visual Studio
- Configuration on runtime
- Combination of the two above.
There is a slight difference in Dynamics 365 compared to Dynamics AX 2012 for managing the security. In AX 2012, all security changes ended as security objects in the Application Object Tree (AOT). So, using several code deployment options, the changes were applied on e.g. the production environment. Development changes in Dynamics 365 needs to be treated similar. Using a deployable package, you can move the objects to a live system.
New in Dynamics 365 is the configuration on runtime. Changes are kept in the database and when publishing the security changes, objects are changes on runtime only. There is no link with the development environment. This does not mean that you would change the security configuration on your production environment directly. Changes needs to be tested first. As there might be a lot of changes which needs several test cycles and reconfigurations, the logging will be dirty and not very readable if there are too many changes. So, like other developments, it is recommended to start in a dev/test environment. The production environment will only get a cumulative, approved security configuration which is logged only once.
Move the security changes
When you have changes in security configuration which needs to be moved to another environment, you can simply use action buttons on the security configuration form. I will show the steps in detail.
To start with, I created a new security role: The Sales Assistant. This person is able to view customer details and allowed to maintain sales orders. When this role is tested and working as expected, we want to move it to another environment. To do so: Click Data> Export. The security changes will be exported in XML format which can be downloaded. You can store the configuration file within an own library.
Now you can open another environment where you can import the security configuration. Open the Security configuration form. Then click Data> Import. You will be prompted to specify a file name. The file you just saved would be the one which needs to be provided. Then click on OK.
The file will be processed and the changes will be visible on the form. On the Unpublished objects tab page, you will find all modifications.
In this case, I used standard duties. If there were more changes, you could see more objects and object types. Note that exporting the security configurations will export all configurations; not only the one you are focusing on. To be able to have the imported configuration active, you have to Publish all or select one or more records and Publish selected.
Renaming security objects
When you have made a mistake in typing a friendly name for a new security role, duty or privilege, there is an option to create a new object and use the correct name or spelling. However, if you are live, the references are based on internal ID’s. There is no option within the security configuration form to change the name once the object was created.
There is one simple trick which I tried once and this is working like a charm.
As described above, you can export the security settings and save the file on your computer. Then use an (XML) editor to open the file. When you don’t have such software, you can even use Notepad.
Note that the name of the role is a GUID ID. This ID is the primary key for letting the import know if a new role should be created or an existing one should be modified. All newly configured security objects do have such GUID where objects created in Visual Studio would have a readable object name.
When you have saved the file, you can import the file and publish the changes to correct the name(s).
That’s all for now. Till next time!
Microsoft Dynamics CommunitySubscribe to this blogger RSS FeedMy book on Merging global address book records in AX 2012
The post How to: Move security configurations across Dynamics 365 environments appeared first on Kaya Consulting.
Batch Job Updates – The Corresponding AOS Validation Failed
copy UAT database to dev box SQL Server Dynamics 365 for finance and Operations
I followed below link and UAT database which was restored from Production DB by Microsoft Employee. that and download and restored on my local dev box VM.
I found this link so precise that no need to blog any more.
Axapta Manager (AxDynManagerV1.06)
Démarrage D365FO : Problèmes rencontrés après intégration des données et retour d’expérience
Change LinkType on FormDatasource in AX7 / D365
How to Change Your Dynamics 365 Trial to a Previous Version
Microsoft Q2 2018 Earnings Release: Azure up 98%, Dynamics 365 up 67%
MS Outlook synchronization (Part 1)
Microsoft Tech Summit is coming to Warsaw - register today!
No Groundhog Prediction Needed: HUGE savings on Focus through February 28
Although the Early Bird offer deadline is drawing near (less than 4 weeks left!), the buzz around Focus is just getting started! Focus, held May 21-24, 2018, will feature deep-dive learning split into two-day mini-conferences focused on Dynamics 365, AX, CRM, NAV, and Power BI. D365UG/AXUG sessions will be held May 23-24.
Break the cycle
Don’t keep making the same mistakes day after day like Bill Murray in the 1993 comedy film “Groundhog Day”. Join the 75% of professionals who take time to learn new skills for their job each year. Focus attendees will have the opportunity via 90-minute sessions to learn how to use Dynamics 365 & AX at a strategic and functional level to drive their business forward and can expect advanced discussions about business processes.
Focus on the tools and knowledge you need to achieve your goals this year and take the first step towards success when you register for Focus today.
Some things you don’t have to predict
Folklore says if it’s cloudy when a groundhog emerges from its burrow on February 2, then spring will arrive early. If it’s sunny, the groundhog will see its shadow and winter will last six more weeks. In 2017, Phil the groundhog saw his shadow. What are your predictions for 2018? Regardless, it’s guaranteed that at Focus the JW Marriott will be heating up with “hot” intermediate/advanced-level topics led by technical experts, such as:
- Project Accounting
- Functional
- Technical Dynamics 365 for Operations
- Master Planning
- Security and Compliance
Don’t forget! D365UG/AXUG sessions run concurrently with and in the same location as D365UG/CRMUG sessions so you are eligible to attend those as well. Submerge yourself within your learning tracks of choice and come away with best practices and sharpened skills to apply immediately back at the office.
Early Bird pricing ends February 28
You don't need to wait for Phil the groundhog's prediction! Shadow or no shadow, save $100 on your Focus registration when you register today.
[Register for Focus]
Not yet a D365UG/AXUG Member? Learn more about how user group members receive additional discounts.