Microsoft Dynamics AX 2012 R3 Reporting Cookbook
AX 2012 for Retail: “The number for one time customer is missing” and payment posts with earlier date than sales invoice when posting Retail Statements
We have seen a few different issues lately when customers have unmarked “Delivery Date Control” in System administration>Setup>Licensing>License configuration > Trade.
The first issue that can happen is the following error when posting the Retail statement:
” The number for one-time customer is missing.”
The error means that AX cannot find the default customer for the store (not that the customer has the One-time customer box marked).
The first thing to check is that the sysadmin user also receives the error on the one-time customer.
The second issue we see is that when posting a Retail statement the Payment posts with an earlier date than the sales invoice.
The work-around below has resolved both issues in the past.
Set transDate = salesHearder.DeliveryDate instead of transDate = salesHeader.ReceiptDateConfirmed in the RetailStatementSalesOrderCreator/Run class:
If you have the above issues and Delivery Date Control is not unmarked, I would suggest creating a support incident as this would involve further investigation.
Note:
"Microsoft provides programming examples for illustration only, without warranty expressed or implied, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. This mail message assumes that you are familiar with the programming language that is being demonstrated and the tools that are used to create and debug procedures."
This has not been officially tested by Microsoft and should be fully tested before implementation.
Integrating the Shipping Carrier Interface in AX 2012 with UPS WorldShip - Part 2
In this blog series, we will walk through the steps to configure Microsoft Dynamics AX 2012 to integrate with UPS WorldShip using the Shipping carrier interface located in Inventory and warehouse management. This integration will enable Dynamics AX 2012 to send sales order shipment information automatically into UPS WorldShip for processing. Once processed, UPS will send the shipping transaction information back to Dynamics AX.Configure UPS WorldShip for importing transactions from AX 2012 database using the Import/Export (option)
This is Part 2 of this series where we will run through configuring the import mapping between the UPS WorldShip and Dynamics AX 2012 databases using Open Database Connectivity (ODBC)
1. Toolbar > Import/Export Data (button) > Import/Export Wizard (option)
2. In the Import/Export Wizard - Main Menu - Step 1 of 5 (form), select: I need help with importing information into WorldShip
3. Click the Next (button)
4. In the Import/Export Wizard - Main Menu - Step 2 of 5 (form), select: Small Package Shipments
5. Click the Next (button)
6. In the Import/Export Wizard - Main Menu - Step 3 of 5 (form), set the following
a. Data connection Type: DAX2012_IMP
b. Click on the checkbox above the Sql Server/Oracle options
c. SQL Server: Selected
d. Datasource Type: Microsoft SQL Server
7. Click the Configure Data (button) to open the Supply advanced Setting (form)
8. In the Supply Advanced Settings (form), set the following
a. Server: DAX2012 (Note: this is the name of your database server)
b. Database: MicrosoftDynamicsAX (Note: this is the name of your AX database)
c. Trusted Connection: Marked
9. Click the OK (button) to close the Supply Advance Settings (form)
10. Import/Export Wizard - Main Menu - Step 3b of 5 (form)
11. Select Table Name: SHIPCARRIERSHIPPINGREQUEST
12. Next (button)
13. Import/Export Wizard - Main Menu - Step 4 of 5 (form)
14. Map the fields of the SHIPCARRIERSHIPPINGREQUEST (table) to the appropriate fields in the Ship To, Ship From, Third Party, Service, Options, and Reference tabs.
Note: Use the Import mapping table at the end of this blog for import mapping references between the WorldShip and Dynamics AX.
15. In the "Map your Small Packages Shipment Fields" section, Select PACKINGSLIPID
16. Click on the Define Primary Key (button)
Note: The PACKINGSLIPID will be the value that we use to pull the order information onto WorldShip using key in an import option that we will configure later in this blog series.
17. In the Map Name (field), enter the name of the map: DAX2012_IMPORT
18. Save Map (button)
19. Import/Export Wizard - Main Menu - Step 5 of 5 (form)
20. Select Exit to WorldShip
21. Finish (button) to close the Import/Export Wizard - Main Menu - Step 5 of 5 (form).
Import table and field mapping between UPS WorldShip and Dynamics AX 2012
If you missed the first installment of this series, you can reach it by following this link Part 1
John Bengson
How to request support for Dynamics Online
Support for Dynamics Online, including log-in issues, requires a new service request. If you have a service plan for Microsoft Dynamics that includes support, simply open a New Support Request.
If you're not enrolled in any of the above service plans, or your service plan does not include support, visit Microsoft Support or call 1-800-936-4900 in the US or Canada.
When initiating a new support request, please choose the following options:
- Choose the correct Product (ie. Microsoft Dynamics AX 2012)
- Under Support Topic select Company Wide
- Under Sub Topic select Dynamics Online
This will direct you to the correct Microsoft group to resolve your Dynamics Online questions.
Get Additional Support for Microsoft Dynamics AX
Visit the Microsoft Dynamics AX ForumExplore Service Plan Options
Five Factors for Choosing the Right Cloud for Microsoft Dynamics
Anytype Data Type
The AXUG Academy Dynamics AX Accounts Payable Setup Class Is Just Around The Corner
I just wanted to drop you all a quick note to remind you that the AXUG Academy Class that I am teaching on Accounts Payable Configuration within Dynamics AX 2012 is coming up next week. This is the fourth in the series, and continues on from the General Ledger, Cash and Bank Management and Accounts Receivable classes that we have held over the past few months.
Even if you are one of the enlightened ones that have already started taking these classes, you can easily start with this class. Here is the link to the AXUG Academy website with more information.
Academy – AX Configuration Series – Accounts Payable Setup April 2015
Friday, April 10, 2015 (12:45 PM) to Friday, April 10, 2015 (5:00 PM) (Eastern Time)
I have been rebuilding the training material for this class and all of the students will get a new and improved version of the Configuring Accounts Payable within Dynamics AX 2012 Bare Bones Configuration Guide Training Workbook which has been expanded (both page count wise and also physically) to make it easier to follow during the training. This book is not even available on Amazon yet (https://www.createspace.com/5405484)
All of the exercises have been reformatted to give you a quick reference guide, a thumbnail cheat sheet and also a detailed step by step guide with screen shots. Also we have improved the quality of the images so there is no more pixilation of the screen shots which makes is even betterer (I know this is not a real word).
Here is a quick summary of the class and also the areas that we will be going through:
Summary:
The Accounts Payable area is one of the three foundation financial modules within Dynamics AX that you will want to set up. It not only allows you to manage all of your vendor information, post your invoices, and make in your payments, but also allows you to manage approval workflows, and much more.
It’s not hard to configure either and this book is designed to give you step by step instructions to show you how to configure the payables area, and also how some of the basic transactions work to get you up and running and working with your vendors.
Configuring Accounts Payable Controls
Before we start adding vendors and creating invoices within the Accounts Payable module of Dynamics AX, there are a couple of codes and controls that need to be configured so that everything else later on in the book will run smoothly. In this section we will walk through everything that you need to set up to get the basic Accounts Payable features working.
Topics Covered:
- Configuring Payables Journals
- Configuring Vendor Posting Profiles
- Configuring Cash Payment Terms
- Configuring Net Days Payment Terms
- Configuring Net Day Of Month Payment Terms
- Configuring Equal Monthly Scheduled Payment Terms
- Configuring Proportional Monthly Scheduled Payment Terms
- Configuring Cash Discount Codes
- Configuring A Check Payment Method
- Configuring An Electronic Payment Method
- Configuring A Postdated Check Payment Method
- Configuring Accounts Payable Parameters
Configuring Vendor Accounts
Now that you have all of the codes and controls configured you can start adding some real data into the Accounts payable, and the best place to start is by setting up your vendors.
In this chapter we will show you how you can set up individual vendors, and also how you can load in all of your vendors in bulk through the Data Import Export Framework.
Topics Covered:
- Changing the Vendor Numbering Sequence
- Configuring Vendor Groups
- Creating A New Vendor Account
- Importing Vendors Using The Data Import Export Framework
- Updating Vendor Information Manually
- Performing Bulk Updates Using The Edit In Grid Function
- Performing Mass Updates Using Excel
Configuring Invoicing
Now that we have all of our vendors set up, we can start doing some real work by entering in invoices and processing payments.
Topics Covered:
- Creating An Invoice Journal
- Viewing All Open Vendor Invoices
Creating Vendor Payments
Once you have invoices within the system, you can start selecting invoices for payment and print checks.
Topics Covered:
- Creating A Payment Journal Using Payment Proposals
- Generating Payments From A Payment Journal
- Viewing Vendor Transaction History
Configuring Payables Invoice Journal Approvals
Payables is one of the most common areas within Finance that people want to add workflows and a great place to start within this module is to configure workflow approvals around the Payables Invoice Journals so that you can make sure that only the invoices that you want to pay get paid.
Topics Covered:
- Creating An Invoice Journal Workflow
- Defining Invoice Journal Approval Workflow Submission Instructions
- Assigning Multiple People To The Journal Approval Workflow Task
- Defining The Journal Approval Workflow Task Instructions With Context Links
- Publishing And Activating The Journal Approval Workflow
- Assign The Invoice Journal Workflow To The Invoice Journal
- Submitting AP Invoice Journals For Workflow Approval
- Accessing Workflow Tasks Through The Work Item Notifications
- Accessing Workflow Tasks Through The Work Item List
- Viewing Workflow Status And History
- Approving Workflow Tasks Through The Work Item List
- Posting AP Invoice Journals After Workflow Approvals Have Been Completed
- Adding Status Notifications To Workflows
- Publishing A New Version Of The AP Invoice Journal Approval Workflow
- Receiving Workflow Status Update Notifications
- Viewing Workflow Versions
- Viewing All Workflow Statuses
Here is the link for more information: http://www.dynamicsaxcompanions.com/Bare-Bones-Configuration-Guides/Configuring-Accounts-Payable
Last three classes on Configuring The General Ledger, Cash and Bank Management and Accounts Receivable classes were a great success and I hope to see some of you at this next class on the 10th. There is limited seating so reserve your place soon

AXUG Focus 2015: Your Source for Microsoft Dynamics AX Training
This year, AXUG Focus is doing things a little different. We invite all Microsoft Dynamics® AX users to join us in Orlando, Florida May 18-21 where you can pick and choose which Focus conference to attend best suited to your skills, interests, and Microsoft Dynamics AX training goals.
Customize your training experience at AXUG Focus based on your industry (Manufacturing & Supply Chain), role (BI & Reporting), or where you're organization is at with a current or future upgrade (Upgrading). Do your interests lie in all three Focus conferences? Attend all three! It's almost like we've created the Subway sandwich of conferences - you can create many different combinations that offer YOU a unique conference customized to fit YOUR needs.
Look at your options:
- AXUG Focus Manufacturing & Supply Chain - May 18-19
- AXUG Focus BI & Reporting - May 19-20
- AXUG Focus Upgrading - May 20-21
Let's add in Onsite Academy Classes:
- Upgrading AX 2012 - Data Migration - May 19
- Master Planning for AX 2012 - May 20
- BI101 Exploring & Customizing Role Centers for the Power User - May 21
Here are some scenarios...Let's say you're in the:
- Manufacturing industry and considering an upgrade: register to attend Focus Manufacturing & Supply Chain, Focus Upgrading, and get in a couple Academy classes starting Tuesday afternoon with Upgrading AX 2012-Data Migration, and rounding out your experience with Master Planning for AX 2012 on Wednesday.
- Process of Upgrading and your role is responsible for Business Intelligence: register to attend Focus BI & Reporting, Focus Upgrading, register for Upgrading AX 2012-Data Migration on Tuesday afternoon (you still get to attend the morning sessions at Focus BI & Reporting), and spend the better part of Thursday in the BI101 Academy class.
Isn't that fun? Select what you want and leave out what's not as important to you. Yes, there's some overlap of conference days and Academy sessions, but that's to help you get the most out of your time in Orlando! We don't want to limit your time in sunny Florida to only one track and think about one topic - if your interests overlap, so should your conference training. If you register to attend Focus Manufacturing & Supply Chain AND Focus BI & Reporting, look at the session schedule in advance and attend those that are most applicable to helping you reach your goals.
Speaking of sessions, have you seen the session schedule for each event? It's quite the line-up:
Register today and save your spot at AXUG Focus!
Install Dynamics AX 2012 R3 Step by Step (step 4)
Top Conferences for the Microsoft Dynamics Industry
One thing Microsoft has always excelled at is creating communities of engagement. Whether it’s with customers or developers Microsoft’s ecosystem has always been one of its greatest strengths and to some degree, one of the biggest reasons organizations look at Microsoft’s products.
The Dynamics community is no exception and, indeed, may be the best example of Microsoft’s ability to foster a diverse community of developers and users. If you have been thinking of attending a conference, however, which one would be the best fit? Let’s take a look at the available options and get a brief overview.
Microsoft Convergence
As the folks at Encore Business Solutions describe, Microsoft Convergence is like the night club of conferences. “It’s big, flashy, and action-packed with big name keynote speakers, including Senior VPs from Microsoft. The conference features information about new products and trends from Microsoft Dynamics. You’ll get tips and tricks, as well as knowledge that you can start using right away. You’ll leave inspired and excited about what’s next for Dynamics.”
One look at the keynote speakers that were at Convergence 2015 in Atlanta and it’s easy to see why Convergence draws such comparisons:
- Satya Nadella – Microsoft CEO
- Allison Watson– Corporate Vice President, US Marketing & Operations
- Chris Capossela – Executive Vice President and Chief Marketing Officer
- David Finn – Associate General Counsel and Executive Director, Microsoft Cybercrime Center
- James Phillips – Corporate Vice President
- Judson Althoff – President, Microsoft North America
- Julia White – General Manager, Office Division Product Management
- Kirill Tatarinov – Executive Vice President, Microsoft Business Solutions Group
- Seth Godin – World’s Foremost Marketing Provocateur
- Tony Prophet – Corporate Vice President, Microsoft Windows and Search Marketing
- Wayne Morris – Corporate Vice President, Microsoft Business Solutions Marketing
Because of the wealth of information provided, Microsoft emphasizes that “anyone interested in how Microsoft business solutions can help take their business to the next level should attend Convergence! Whether you’re the leader charged with making key, strategic decisions around the management of your business, or the technical manager responsible for technology implementation, or the individual user looking for ways to utilize your solution more productively, Convergence is designed for you.”
While Convergence 2015 has already happened in the U.S., European partners and users still have the conference to look forward to in Barcelona, November 30 – December 3.
In the U.S., Convergence 2016 will be in New Orleans, April 4-7, 2016.
Dynamics User Group Summit
Another major conference is the Dynamics User Group Summit, held October 12-16 in Reno-Tahoe, NV.
In contrast to Convergence, Summit is a more relaxed, subdued atmosphere. The organizers of the conference describe it as “the only Microsoft Dynamics user conferences designed and led by users, for users – and every attendee is focused on Dynamics solutions, so you can learn how they’ve overcome the same challenges you face every day. The conferences feature interactive learning at its best – you’ll engage in lively group discussions and give-and-take, and return home with practical ideas you can implement right away.”
In other words, where Convergence focuses on the big picture of the future of the Dynamics community and products, Summit is focused on the everyday aspects of using those products. Users will be able to discuss problems and solutions with other Dynamics users and discover better ways of using the applications. Because Summit focuses on AX, CRM, GP and NAV, the majority of Dynamics uses are sure to find helpful information at the conference.
Dynamics Technical Conference
The third major Dynamics event is the Dynamics Technical Conference. As its name implies, the conference has a greater technical focus and is aimed at:
- Solution Architects (functional and technical)
- Implementation Consultants (functional and technical)
- Application Developers
- Support Personnel
To help users get the most out of the conference, they have the opportunity to “interact directly with the people that build Microsoft Dynamics AX and Microsoft Dynamics CRM, along with their colleagues from Microsoft Dynamics Marketing, Microsoft Social Listening, Office, Parature, SharePoint, Visual Studio and more.”
While this year’s Technical Conference has already happened, 2016 promises to be another informative event.
With just a brief look at the available conferences for Dynamics users, it’s easy to see why Microsoft is so successful at building productive user communities. Whether you are interested in the big picture, the nitty-gritty day-to-day operations or the technical aspects of building on the Dynamics Platform, there’s a conference designed for you!
About the Author: Curt Finch is the CEO of Journyx, a Certified Microsoft Partner. Journyx maximizes the value of Microsoft Dynamics by adding enterprise time tracking. Journyx Accountlink for Microsoft Dynamics allows companies to quickly implement a complete time tracking solution using existing business data in Dynamics. Connect with Curt on Google+.
About Journyx
A Certified Microsoft Partner, Journyx enterprise time and expense tracking software is an add-on that integrates with Microsoft Dynamics GP as well as Project Accounting. Learn more at http://journyx.com/dynamics.
The post Top Conferences for the Microsoft Dynamics Industry appeared first on goERPcloud.
Fitting the AX Sandbox into your ERP Strategy
Whether you are a CIO of a large firm or a consultant working with a variety of clients, a comprehensive Microsoft Dynamics AX Sandbox will give you the opportunity to truly test the software against company needs.
Selecting an enterprise resource planning solution is one of the most critical steps in an ERP implementation strategy, and it is the first critical step that will determine success or failure of the project. The ERP product you select will either fit the company’s culture and functionality needs or not. No matter how smoothly the implementation goes, if the product isn’t a fit it ultimately results in failure. Choose the right product and it becomes the backbone of the organization for years, and the surest way to get a feel for how an ERP solution will fit in with the company is to try before you buy.
Panorama Consulting offers four things to consider when assessing ERP software.
- How is it to navigate the user interface and how well does the system fit your business operations?
- Can your easily execute business processes in the system?
- Are employees able to perform job functions without the software inhibiting their day-to-day responsibilities?
- Will the company be able to seamlessly, efficiently and effectively run its operations using the system?
This is where the goERPcloud Microsoft Dynamics AX sandbox shines. We’re not saying that Dynamics AX is guaranteed to be the right product for your project, but it is certainly a favorite solution among large enterprises because of its power, scalability, simple integration and of course the friendly Microsoft interface that most offices are already familiar with.
To see the powerful ERP solution in action, the best option is to test drive it for yourself using the goERPcloud Dynamics AX sandbox. Murray Fife, a Microsoft Dynamics AX expert, recently took a tour around the AX sandbox and found it to be ahead of its class.
“I was introduced to goERPcloud, and I have to admit this is a super cool offering,” said Fife in a blog. “They offer a free trial service for test driving Dynamics AX R3 where you can sign up for a 30 day trial, without having to give them a single digit of your credit card number. I didn’t buy it either, but I tried it out and gosh darn it – it worked like a charm.”
Whether or not AX turns out to be the right solution for your business, or your client’s business if you are a consultant, it definitely deserves a place on your short list. And being able to get into the AX sandbox and really get a feel for the solution will go a long way toward limiting risk when selecting ERP.
About goERPcloud
goERPcloud is the first on-demand Microsoft Dynamics Cloud Marketplace that allows you to test drive different flavors of Microsoft Dynamics AX, GP, NAV and CRM with preconfigured 3rd party applications. goERPcloud boasts a robust ecosystem of Microsoft Dynamics Partners, helping businesses find the cloud-based software solutions that best fit their current and future business needs. Since 2000 RoseASP.com, the power behind goERPcloud, has provided hosted Microsoft Dynamics ERP and CRM applications to businesses around the world. For more information about goERPcloud, visit www.goERPcloud.com.
The post Fitting the AX Sandbox into your ERP Strategy appeared first on goERPcloud.
Deploy Dynamics AX Reports Manually
Microsoft Dynamics Partner Roundup: Italy E-billing for AX, NAV; CRM CoffeeSender; New Cloud budgeting, Services automation partnerships
Microsoft Dynamics AX 2012 R3 Financial Management.
Today I’d like to share with you that my second book Microsoft Dynamics AX 2012 R3 Financial Management have been released in Feb 2015, this is the second edition of my first book with added extra chapters to shape the content, and make it more useful for readers. There is an effort behind the seen to get this job done, I am very grateful to all people who directly, indirectly motivated me.
In this edition you’ll find an exploration for basic functionalities of Financial Module in Microsoft Dynamics AX 2012 R3 “General ledger, Bank management, Accounts payable, Accounts receivable, Fixed assets, Inventory costing, Cash flow forecast, Financial dimensions, and Financial reporting .”
This all covered in a concept of exploring the functionalities setup, configuration, and how it could be applied in the real business, this in a vary of level of details for each topic.
The thanks message in the acknowledgement for people who helped, and support me in my entire life is not enough for all of them, there are a lot of other people who give me hints, and share experience, and knowledge. And above all of that Thank God to give me the ability and this opportunity to do all of that.
I wish you enjoying your reading, and keep learning from your daily practice.
Troubleshooting "The network path was not found" During AX Report Deployment
Primitive data types in AX 2012
AXPulse Advance Payroll Tax Engine for Microsoft Dynamics AX 2012
Using Technology to Empower the Customer and the Employee – Interview with Pepijn Richter

"We are moving away from automation to see how we can empower people, and look into the future" - Pepijn Richter, Director, ERP Product Marketing, Microsoft Corp.
Should technology innovations focus simply on automating processes? What if they also focused on empowering your customers, and your employees?
I was pleased to meet and interview Pepijn Richter, Director, ERP Product Marketing at Microsoft, during Microsoft’s Convergence 2015 event, and he had a lot to say, not only about the technology advances of Microsoft’s ERP solutions, but also about the trend toward customer and employee empowerment.
“It is the people that propel organizations forward and drive innovation,” commented Pepijn. “In the past, ERP was centered on transactional efficiency. If you look at how Microsoft products are coming together, we are finally helping the people doing day to day tasks to work smarter. We are moving away from automation to see how we can empower people, and look into the future.”
JJ Food Services
A good example of this approach is JJ Food Services, a UK based distributor of food products that services 60,000 customers, mainly small restaurant owners. They replaced their legacy systems with Microsoft Dynamics AX. Microsoft Dynamics AX now powers the entire operation—from HR, procurement, and sales to inventory/warehouse management and order processing.
Using Technology to Empower the Customer
Pepijn discussed how JJ Food Services uses technology to empower their customers. “A few years ago, their business changed from a call center to a complete online ordering model for customers. If you have a call center you have personal connection with the restaurant owner. You have the ability to recommend new products on the phone, to cross sell and upsell. Moving to an online model, you lose those opportunities because it is only digital engagement.
So they asked: how can we help the restaurant owner and simplify the order process? First, can we prepopulate the order form to make the order processing faster? Second, can we advise them on the next logical purchase, digitally? That is where the Microsoft system comes together.
Using Microsoft Azure Machine Learning (ML) we incorporated a “next logical purchase” algorithm. This is based historical data, which comes traditionally in ERP systems, combined with a customer’s click stream behavior in order to make predictions. The order is prepopulated based on previous orders but also suggestions are made based on what similar customers are ordering.”
JJ Food services has made the online shopping process faster and easier for the customer, and kept them engaged with the company.
Using Technology to Empower the Employee
Technology is also used to empower the JJ Food Services employees. “Sensors were installed that manage the temperature inside their delivery trucks. Using IoT, the quality of shipments is being monitored and serves as quality control. But the delivery person is so much more enabled; not only do they not have to monitor temperatures manually, but also provide the goods in the right condition to their customer. They can feel confident the job was done right. JJ Food Service drivers also have mobile apps that allow them to communicate back with headquarters and update their delivery schedules. In this way technology not only delights the customers, it empowers the employees,” said Pepijn.
Delta Airlines
Another good example of this empowerment is Delta Airlines which uses Microsoft Dynamics AX data to power smartphones used as mobile POS devices. These devices have dramatically reduced the amount of time flight attendants have to stand in the aisle to process in flight payments, thus providing a better experience for customers. But the technology has been extended so that Delta employees can also use the devices to more efficiently bid on flight schedules. Once again, technology that was intended to help the customer, has also improved the life of employees.
Pepijn concluded: “Research shows that from a business application perspective we always take the customer angle - how to deliver that consistent customer experience wherever you are. But it is so interesting to note that employee satisfaction also rises when you provide those services.
Companies can use technology to improve infrastructure and to run things more efficiently. But I think we are moving in the direction where organizations can use technology to change business process models.”
Any business person knows that keeping customers happy is the way to win business, but keeping employees happy and productive is the real key to a solid organization. Microsoft recognizes that and is pursuing its technology while focusing also on the human factor.
By ERP Software Blog Editors, www.erpsoftwareblog.com
Enterprise digital transformation still a competitive advantage
While technologies such as mobile, social, data analytics and cloud (third platform) have seen rapid adoption in all industries, most large businesses have yet to achieve true enterprise digital transformation.
While the majority of enterprises have adopted third platform technologies to enable some digital customer experiences, the technologies in most cases are not well integrated with other mission critical software and fail to offer truly innovative solutions to everyday business operations, according to an IDC study.
While most organizations have adopted short-term strategies to digitalization and are cautiously exploring the third platform, only about 8-percent have fully transformed to the digital age and these organizations have a significant advantage over the competition.
“We believe that (digital transformation) integration across the dimensions described in this benchmark — including leadership, work sourcing, omni-experience, operating models, and information — will become the core challenge for business leaders in the next five years,” said IDC’s Senior Vice President of IT Executive, Industry and Financial Research, Meredith Whalen. “Digital transformation is a foregone conclusion for most if not all businesses. The only choice for businesses is whether to hunker down and try to weather those disruptions, develop digital transformation competencies and become a disruptor, or split the difference and become a fast follower of disruptors.”
Many IT departments lack third platform expertise, but offerings such as public cloud services do not always fit the reporting, compliance, functionality and security needs of public companies and global enterprises.
For these organizations it is critical to find a managed service provider who can offer integrated ERP, customer relationship management, social media and industry specific solutions in a unified hosted or cloud based software bundle. What’s more, they need a service provider who can deliver compliance validated services for SOX, HIPAA, FDA and other industry regulations.
It is possible to achieve enterprise digital transformation and be up and running quickly when you outsource to the right provider. These organizations would do well to find provider with expertise in compliance and in providing services at the enterprise level.
The post Enterprise digital transformation still a competitive advantage appeared first on RoseASP, INC.
Microsoft Dynamics AX 2012 – Product Configurator as a Service
Microsoft Dynamics AX 2012 –
Product Configurator as a Service
<Export Version="1"> <AttributeTypes> <EcoResAttributeType Name="AlexInt" DataType="4" IsEnumeration="0" HasBounds="1"> <EcoResBoundedAttributeTypeValue Lower="0" Upper="1" /> </EcoResAttributeType> </AttributeTypes> <TableConstraintDefintions /> <Components> <PCClass Name="Alex" ReuseEnabled="0"> <EcoResCategoryTranslation FriendlyName="Alex" Description="" LanguageId="en-us" /> <EcoResAttribute Name="A" SolverName="A" AttributeType="AlexInt" IncludeInReuse="0"> <EcoResAttributeTranslation FriendlyName="A" Description="A" Language="en-us" /> </EcoResAttribute> <EcoResAttribute Name="B" SolverName="B" AttributeType="AlexInt" IncludeInReuse="0"> <EcoResAttributeTranslation FriendlyName="B" Description="B" Language="en-us" /> </EcoResAttribute> <PCComponentConstraint Name="AB" Description="AB"> <PCExpressionConstraint Expression="Implies[ A == 1, B == 0]" /> </PCComponentConstraint> </PCClass> </Components> <PCProductConfigurationModel Name="Alex" RootComponentClass="Alex" SolverStrategy="0"> <PCProductConfigurationModelTranslation Name="Alex" Description="Alex" Language="en-us" /> <PCConfigurationControl> <PCComponentControl UIOrder="1" /> </PCConfigurationControl> </PCProductConfigurationModel> </Export> |
<Model name="Alex"><Component name="Alex" componentId="52565427706" instanceId="1"><Attribute name="A" displayName="A" uniqueId="11290926482" instanceId="2" type="integer"><IntegerDomain from="0" to="1" /></Attribute><Attribute name="B" displayName="B" uniqueId="11290926483" instanceId="3" type="integer"><IntegerDomain from="0" to="1" /></Attribute><Constraint constraintId="AB" uniqueId="11290924754" constraintText="Implies[ A == 1, B == 0]" /></Component></Model> |
<Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /></Component></Session> |
<Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="1" /><Attribute name="B" uniqueId="11290926483" isUserSelected="0" type="integer" value="0" /></Component></Session> |
staticvoid PCSolveModelJob(Args _args) { InteropPermission interopPermission; Microsoft.Dynamics.Ax.Frameworks.Controls.ProductConfiguration.ProductConfigurationServer serverSolver; str modelXml = "<Model name=\"Alex\"><Component name=\"Alex\" componentId=\"52565427706\" instanceId=\"1\"><Attribute name=\"A\" displayName=\"A\" uniqueId=\"11290926482\" instanceId=\"2\" type=\"integer\"><IntegerDomain from=\"0\" to=\"1\" /></Attribute><Attribute name=\"B\" displayName=\"B\" uniqueId=\"11290926483\" instanceId=\"3\" type=\"integer\"><IntegerDomain from=\"0\" to=\"1\" /></Attribute><Constraint constraintId=\"AB\" uniqueId=\"11290924754\" constraintText=\"Implies[ A == 1, B == 0]\" /></Component></Model>"; boolean isFinished; str boundValues; str userSelectedValues_good = "<Session><Component name=\"Alex\" uniqueId=\"\"><Attribute name=\"A\" uniqueId=\"11290926482\" isUserSelected=\"1\" type=\"integer\" value=\"1\" /></Component></Session>"; str userSelectedValues_bad = "<Session><Component name=\"Alex\" uniqueId=\"\"><Attribute name=\"A\" uniqueId=\"11290926482\" isUserSelected=\"1\" type=\"integer\" value=\"1\" /><Attribute name=\"B\" uniqueId=\"11290926483\" isUserSelected=\"1\" type=\"integer\" value=\"1\" /></Component></Session>"; str userSelectedValues_okay = "<Session><Component name=\"Alex\" uniqueId=\"\"><Attribute name=\"A\" uniqueId=\"11290926482\" isUserSelected=\"1\" type=\"integer\" value=\"0\" /></Component></Session>"; PCExecuteVariantConfiguration executeVariantConfiguration = PCExecuteVariantConfiguration::construct(); PCConfigurationState configurationState = PCConfigurationState::construct(); interopPermission = new InteropPermission(InteropKind::ClrInterop); interopPermission.assert(); //bp deviation documented serverSolver = new Microsoft.Dynamics.Ax.Frameworks.Controls.ProductConfiguration.ProductConfigurationServer(modelXml); serverSolver.set_UserSelectedValues(userSelectedValues_good); isFinished = serverSolver.Solve(); if (isFinished) { info("Feasible solution"); boundValues = serverSolver.get_BoundValues(); info(boundValues); } else { info("Infeasible solution"); } CodeAccessPermission::revertAssert(); } |
<Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="1" /></Component></Session> |
<Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="1" /><Attribute name="B" uniqueId="11290926483" isUserSelected="0" type="integer" value="0" /></Component></Session> |
<Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="1" /><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="1" /></Component></Session> |
<Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /></Component></Session> |
<Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /></Component></Session> |
Scenario | Before | After |
A = 0 | <Session><Component name="Alex" uniqueId="" /></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /></Component></Session> |
A = 1 | <Session><Component name="Alex" uniqueId="" /></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="1" /></Component></Session> |
B = 0 | <Session><Component name="Alex" uniqueId="" /></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="0" /></Component></Session> |
B = 1 | <Session><Component name="Alex" uniqueId="" /></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="1" /></Component></Session> |
A = 0, B = 0 | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /></Component></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="0" /></Component></Session> |
A = 0, B = 1 | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /></Component></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="1" /></Component></Session> |
A = 1, B = 0 | ||
A = 1, B = 1 | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="1" /></Component></Session> | The value entered is not valid; it is either outside the defined domain range or it would contradict model constraints |
B = 0, A = 0 | <Session><Component name="Alex" uniqueId=""><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="0" /></Component></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="0" /><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="0" /></Component></Session> |
B = 0, A = 1 | <Session><Component name="Alex" uniqueId=""><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="0" /></Component></Session> | <Session><Component name="Alex" uniqueId=""><Attribute name="A" uniqueId="11290926482" isUserSelected="1" type="integer" value="1" /><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="0" /></Component></Session> |
B = 1, A = 0 | ||
B = 1, A = 1 | <Session><Component name="Alex" uniqueId=""><Attribute name="B" uniqueId="11290926483" isUserSelected="1" type="integer" value="1" /></Component></Session> | The value entered is not valid; it is either outside the defined domain range or it would contradict model constraints |
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace AlexConfigurator.Controllers { publicclassABController : Controller { // GET: AB publicActionResult Index() { return View(); } } } |
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace AlexConfigurator.Models { publicclassAB { publicint A { get; set; } publicint B { get; set; } } } |
@{ ViewBag.Title = "Index"; var a = Request.Params["A"]; var b = Request.Params["B"]; var output = ""; var service = new AlexConfigurator.ServiceReference1.AlexConfiguratorServiceClient(); service.ClientCredentials.Windows.ClientCredential.Domain = "contoso"; service.ClientCredentials.Windows.ClientCredential.UserName = "Admin"; service.ClientCredentials.Windows.ClientCredential.Password = "pass@word1"; var context = new AlexConfigurator.ServiceReference1.CallContext(); context.Company = "usmf"; var ret = service.solve(context, a.AsInt(), b.AsInt()); if (ret == true) { output = "Feasible"; } else { output = "Infeasible"; } ViewBag.Title = output; } <scripttype="text/javascript"> function Render() { var textA = document.getElementById('TextA'); var textB = document.getElementById('TextB'); var img = document.getElementById('Img'); var textAreaOutput = document.getElementById('TextAreaOutput'); if (textA.value == "" || textB.value == "" || (textA.value == "0"&& textB.value == "0")) { img.setAttribute("src", "/Images/NANB.png"); textAreaOutput.textContent = "NANB"; } elseif (textA.value == "0"&& textB.value == "1") { img.setAttribute("src", "/Images/NAB.png"); textAreaOutput.textContent = "NAB"; } elseif (textA.value == "1"&& textB.value == "0") { img.setAttribute("src", "/Images/ANB.png"); textAreaOutput.textContent = "ANB"; } elseif (textA.value == "1"&& textB.value == "1") { img.setAttribute("src", "/Images/AB.png"); textAreaOutput.textContent = "AB"; } } function Configure() { var textA = document.getElementById('TextA'); var textB = document.getElementById('TextB'); var url = "Index?"+ "A="+ textA.value.toString() + "&"+ "B="+ textB.value.toString(); return url; } </script> <h2>AlexConfigurator</h2> A:<inputid="TextA"type="text"value="@a"/> </br> B:<inputid="TextB"type="text"value="@b"/> </br></br> <imgid="Img"src="~/Images/NANB.png"alt=""/> </br></br> <inputid="ButtonRender"type="button"value="Render"onclick="Render()"/> <inputid="ButtonConfigure"type="button"value="Configure"onclick="document.location.href(Configure())"/> </br></br> <textareaid="TextAreaOutput"rows="2"cols="20">@output</textarea> |
[DataContractAttribute] publicclass AlexConfiguratorContract { int a; int b; } |
[DataMemberAttribute] publicint A(int _a = a) { a = _a; return a; } |
[DataMemberAttribute] publicint B(int _b = b) { b = _b; return b; } |
class AlexConfiguratorService { } |
[SysEntryPointAttribute(true)] publicboolean solve(int _a, int _b) { InteropPermission interopPermission; Microsoft.Dynamics.Ax.Frameworks.Controls.ProductConfiguration.ProductConfigurationServer serverSolver; str modelXml = "<Model name=\"Alex\"><Component name=\"Alex\" componentId=\"52565427706\" instanceId=\"1\"><Attribute name=\"A\" displayName=\"A\" uniqueId=\"11290926482\" instanceId=\"2\" type=\"integer\"><IntegerDomain from=\"0\" to=\"1\" /></Attribute><Attribute name=\"B\" displayName=\"B\" uniqueId=\"11290926483\" instanceId=\"3\" type=\"integer\"><IntegerDomain from=\"0\" to=\"1\" /></Attribute><Constraint constraintId=\"AB\" uniqueId=\"11290924754\" constraintText=\"Implies[ A == 1, B == 0]\" /></Component></Model>"; boolean isFinished; str boundValues; str userSelectedValues = strFmt("<Session><Component name=\"Alex\" uniqueId=\"\"><Attribute name=\"A\" uniqueId=\"11290926482\" isUserSelected=\"1\" type=\"integer\" value=\"%1\" /><Attribute name=\"B\" uniqueId=\"11290926483\" isUserSelected=\"1\" type=\"integer\" value=\"%2\" /></Component></Session>", _a, _b); PCExecuteVariantConfiguration executeVariantConfiguration = PCExecuteVariantConfiguration::construct(); PCConfigurationState configurationState = PCConfigurationState::construct(); boolean ret = false; interopPermission = new InteropPermission(InteropKind::ClrInterop); interopPermission.assert(); //bp deviation documented serverSolver = new Microsoft.Dynamics.Ax.Frameworks.Controls.ProductConfiguration.ProductConfigurationServer(modelXml); serverSolver.set_UserSelectedValues(userSelectedValues); info(userSelectedValues); isFinished = serverSolver.Solve(); if (isFinished) { boundValues = serverSolver.get_BoundValues(); ret = true; } else { ret = false; } CodeAccessPermission::revertAssert(); return ret; } |
protectedvoidnew() { executeSupplyLocation = PCExecuteSupplyLocation::construct(); sourceDocumentLineUtility = PCSourceDocumentLineUtility::construct(); validationNumberSequence = PCValidationNumberSequence::construct(); backEndConfiguration = PCBackEndConfiguration::construct(); xmlParseConfigurationInstance = PCXmlParseConfigurationInstance::construct(); configurationProductVariantFactory = PCConfigurationProductVariantFactory::construct(); configurationProductVariantDelete = PCConfigurationProductVariantDelete::construct(); releaseLegalEntities = new List(Types::Record); //alex:>> //runtimeConfiguratorFormFactory = PCRuntimeConfiguratorFormFactory::construct(); //priceBreakdownUpdater = PCRuntimePriceBreakdownUpdater::construct(); //alex:<< } |