Quantcast
Channel: Microsoft Dynamics 365 Community
Viewing all 10657 articles
Browse latest View live

Open API for JSON-based custom services in AX 7

$
0
0

If you’re familiar with SOAP web services, you likely know that they use Web Services Description Language (WSDL) to document what operations a service provide, what parameters they accept, what they return and so on. This information can be used to generate proxy classes, which you can use to communicate with remote systems simply by calling class methods and all implementation details are handled for you under the hood.

While SOAP-based services offer many configuration options (e.g. you can switch from TCP to HTTP just by changing a config) and great tooling, sometimes it’s beneficial to use a less sophisticated approach and expose and call services directly over HTTP (that’s why AX 7 added JSON-based endpoints for custom services). Almost everything can communicate over HTTP, it doesn’t require any extra libraries, it’s very flexible and so on. There are some patterns how to design such services (especially REST), but you can do whatever you want. But it means that you have to give up features like code generation of proxy classes. Or not?

While HTTP web services don’t have to use any descriptions similar to WSDL, it doesn’t mean they can’t. One of your options is Open API (also known as Swagger), which allows you to describe services in JSON or YAML. There are many tools for working with these descriptions, such as an editor, code generators for many languages, a generator of documentation, you can generate Open API descriptions for your WebAPI projects, there is a support for Open API in Azure Logic Apps, in Azure API Management and so on.

Let me show you an example of such a description for a custom service in AX 7 (Dynamics 365 for Finance and Operations, Enterprise Edition). You don’t have to examine it in detail, just notice that it describes available operations, what URL you must use to reach it, what parameters it expects, what it returns and so on, and it also contains additional textual annotations.

{"swagger":"2.0","info":{"title":"User management","description":"Services for user management offered by Microsoft Dynamics 365 for Finance and Operations, Enterprise Edition.","version":"1.0.0"},"host":"YourAX7Instance.cloudax.dynamics.com","basePath":"/api/services","schemes":["https"],"paths":{"/SysSecurityServices/SysUserManagement/getRolesForUser":{"post":{"summary":"Gets security roles","description":"Returns security roles currently assigned to the given user in Microsoft Dynamics 365 for Finance and Operations, Enterprise Edition.","operationId":"getRolesForUser","produces":["application/json"],"parameters":[{"name":"body","in":"body","description":"User ID as defined in UserInfo table.","required":true,"schema":{"$ref":"#/definitions/GetRolesRequest"}}],"responses":{"200":{"description":"Roles assigned to user","schema":{"type":"array","items":{"type":"string"},"example":["-SYSADMIN-","SYSTEMUSER"]}},"500":{"description":"Processing inside Dynamics 365 for Finance and Operations failed."}}}}},"definitions":{"GetRolesRequest":{"type":"object","required":["axUserId"],"properties":{"axUserId":{"type":"string","example":"admin"}}}}}

The first thing we can do with it is to show the same information in a more readable way. Open the online editor and paste the sample code there. On the right side, you’ll see it rendered as a nice HTML document:

Service documentation generated by editor.swagger.io

The editor can also use YAML (and will offer you to convert JSON to YAML), which is a more succinct format, therefore you may prefer it for manually edits. I intentionally used JSON, because we’ll need it in the next step.

Code generation

Now let’s generate code for calling the service, so we don’t have to do it all by hand and deal with all implementation details of communication over HTTP, with (de)serialization of values and so on.

Before you start, download and configure AX service samples from GitHub and verify that they work. Then create a new console application in ServiceSamples solution, where we’ll call a custom service through generated client classes. My code below assumes that the project is called JsonConsoleWithSwagger; you’ll have to adjust a few things if you use a different name.

Client classes can be generated by several different tools, therefore the following process is just an example; feel free to use other options in your projects.

Download and install NSwagStudio (if you use Chocolatey, as I do, all you need is cinst nswagstudio). Run NSwagStudio, paste the JSON on Swagger Specification tab, tick CSharp Client and change a few properties at CSharp Client tab:

  • Namespace: JsonConsoleWithSwagger (or something else, if you named the project in Visual Studio differently)
  • Class Name: UserManagementClient
  • Use and expose the base URL: No
  • Class style: Poco

You could use different parameters, such as different Class style, but this will suffice in our case.

Then press Generate Outputs, which will generate corresponding C# code. Copy it to clipboard, create a new class in your Visual Studio project and replace the file content with the generated code.

We need to add just two things – the actual URL of your AX instance and an authentication header. We don’t want to change the generated code itself, because we may need to regenerate it later and we would lose our changes. Fortunately, it’s not needed – the class is partial, therefore we can create another part of the same class in a separate file and keep generated code and custom code cleanly separated.

Create a new file in your project and paste the following code there:

usingAuthenticationUtility;usingSystem.Text;usingSystem.Net.Http; namespace JsonConsoleWithSwagger{publicpartialclass UserManagementClient{partialvoid PrepareRequest(HttpClient client, HttpRequestMessage request, StringBuilder urlBuilder){
            PrependAxInstanceUrl(urlBuilder);
            client.DefaultRequestHeaders.Add(OAuthHelper.OAuthHeader, OAuthHelper.GetAuthenticationHeader());} privatevoid PrependAxInstanceUrl(StringBuilder urlBuilder){string service = urlBuilder.ToString();
            urlBuilder.Clear();
            urlBuilder.Append(ClientConfiguration.Default.UriString);
            urlBuilder.Append("api/services/");
            urlBuilder.Append(service);}}}

PrependAxInstanceUrl() takes the address of your AX from configuration and puts it at the beginning of the request URL.

Then the code sets the authentication header with the help of OAuthHelper from AuthenticationUtility project, therefore we must add a reference to it:

The last step is adding code to Main() method of Program class to actually call the service. We create a request object (please provide an existing user ID there), create an instance of the UserManagementClient class generated from our Open API document and call the operation. It’s asynchronous, as recommended, but we don’t really need that here, therefore the code immediately asks for the result and waits for it. Then we iterate roles received from AX and puts them into console.

GetRolesRequest request =new GetRolesRequest(){
    AxUserId ="user7281"}; var roles =new UserManagementClient().GetRolesForUserAsync(request).Result; foreach(string role in roles){
    Console.WriteLine(role);}

That was easy – we didn’t have to bother about what exact parameters the services expects (and we would get a compile error if we did it wrong), we didn’t have to serialize objects to JSON or anything like that. The generator was able to create all the code for us, it just needed to know how the service looks like.

In this case, I wrote the Open API document by hand, which obviously took some time. A much better approach would be generating it from metadata of custom services in AX, and while I don’t have such a solution in the moment, it’s definitely doable. Some information is already in place (e.g. getting the list of operation is easy), services and service groups already have properties for description (although they’re currently empty in most cases) and things like parameter description can be included in XML documentation. It still doesn’t cover everything, but additional information can be easily provided in attributes. It’s exactly what Swashbuckle does, e.g. with SwaggerResponseAttribute and RequiredAttribute.

I think it’s something that Microsoft should use for its custom services, to provide documentation and to make custom services much easier to consume. Open API / Swagger is a natural choice for this purpose, because Microsoft is a founding member of Open API Initiative and already support it in several products. Maybe Microsoft could somehow utilize Swashbuckle inside the implementation of custom services, instead of building something new from scratch.

But even if Microsoft isn’t interested, I believe it would still be useful for many people, therefore the community could build a tool to extract information about custom services and generate Open API documents. It wouldn’t necessarily have to support all features (or not from the beginning); people can easily add textual annotations, examples and so on in Swagger Editor, if needed. But being able to automatically generate JSON-based client classes for any custom service would be really handy.


Error - "You entered a reason that already exists in the reason table and is not valid for one or more account types. Enter a different reason."

$
0
0

Greetings!

I came across this issue while trying to enter and post a Free Text Invoice in AX2012R3..."You entered a reason that already exists in the reason table and is not valid for one or more account types. Enter a different reason."

So to start with ... when I went to enter the "Reason Code" for this customer... it was not showing. I'm like "What the heck?" I checked my Customer Reasons form and it was there ..."Error" was my reason ID. So I entered it manually into the filed on the line details for that FTI line and to my surprise... the associated reason code text defaulted into the field in the Line Details. Huh???

So I then ran validation on that transaction (or try to post) ...and got the "You entered a reason that already exists in the reason table and is not valid for one or more account types. Enter a different reason." ERROR!!!

After some research ...here is the issue:

RESOLUTION:

In cases where a transaction is accessing both a Customer Account and a Main (GL) Account associated within the transaction (not accounts from the posting profiles)... you MUST select that the Reason code is available to BOTH the different reason codes. So in this case when I checked the Financial Reason Code also... the transaction posted fine. Who knew??? Have a great day! Mike

WEBINAR: AU/NZ - EDI Made Simple for Dynamics AX/365

$
0
0

Get the answers to your EDI for Dynamics AX and Dynamics 365 for Operations questions!

Microsoft Dynamics AX and Dynamics 365 customers have options when it comes to EDI or XML integration solutions. But without the right preparation and expertise, the effort can be riddled with expensive and complicated errors.

Cost accounting (3)

$
0
0
The previous post focused on classifying a company’s costs into primary and secondary cost elements. Within this post, we will continue on this classification topic and demonstrate how cost elements can...(read more)

Impact du paramètre réservation exclusive sur les ressources

$
0
0
Suite aux précédents articles concernant la production à capacité finie, j’ai voulu comprendre et étudier l’impact de ce paramètre sur les ressources et dans la planification des tâches. Voici une des...(read more)

New survey: 9 in 10 Microsoft Dynamics 365 users would recommend it, but roadblocks remain for some

$
0
0
Microsoft Dynamics 365 gets high marks from those who use it, but professionals working for Dynamics end user organizations - 365 or otherwise - face a range of job satisfaction risks. These findings come from the new  Dynamics salary survey from Microsoft ...read more

Dynamics Profile: A Microsoft MVP and AX/365 expert champions financial precision, community engagement

$
0
0
Whatever else are its mission and goals, ultimately, a company must determine if it is making a profit; that is why it is important for companies to understand Microsoft Dynamics AX/365 for Finance and Operations. That's according to first ...read more

Purchase requisition PunchOut – External catalog.

$
0
0
In the July 2017 release of D365 the purchase requisition punchOut capability is back. This existed in AX2012 with a sample protocol handler for OCI and I’ve posted about the usage of cXML which...(read more)

Deployment methodologies, Part 1: The promise of a proprietary approach to your Microsoft Dynamics project

$
0
0
Following is the first in a four-part exploration of deployment methodologies used by Microsoft Dynamics partners. The idea of “out of the box” enterprise software can be a double-edged sword for firms that sell and deploy it. Customers ...read more

July 2017 release – Dynamics AX 2012 R3

$
0
0

The July release for Dynamics AX 2012 R3 version is now available in LCS on the updates tile inside your R3 project. This update represents a typical collection of smaller functional improvements and technical fixes. Bugs were fixed in all areas with enhancements found in Warehouse & Transportation, Retail, DIXF and Project Accounting. Please see the full list of hotfixes below to search for your specific issue newly included in this release. This release is a cumulative package including all other fixes released in the prior CU12 update. This release is intended to give visibility into fixes recently shipped for R3, including some features and design changes that are newly released in this month.

Here are a few details related to this release:
• Primary Build: 6.3.5000.6242
• Number of Application hotfixes: 111
• Number of Binary hotfixes: 31

Details of the install process can be found here:

What is included in this month’s release?

Design Change Requests, Feature Requests & RegFs

KB DetailsDescription of issue or change request Description of enhancement
4032504DIXF Generate XML Schema Definition (XSD) File: Add a setting to allow optional fields to be missing in the XML fileThe changes in the hotfix include the following:

The DIXF Service's DMFConfig.xml file has an "AllowMissingElementsInXsdForOptionalFields" new configuration option. When setting to true, optional fields will have elements in the XSD file set to minOccurs='0' and maxOccurs='1'. It means that the element doesn't have to exist in the XML file.This only applies to the XSD file.

DIXF will still not accept XML files with missing elements. This XSD file can be used to validate an XML file before including the missing elements.

 

4024615Performance issue for the Retail Sales form when there are a large number of SQL records in the AX database.The changes in the fix address the issue by adding a button 'Search', and only execute query when this button is clicked.
4025460Guided partial location item cycle count where you don't need to count the full content of location.The changes in the hotfix include adding support to do partial cycle counting:

Work line breaks are added to cycle counting work template and partial cycle counting work will be generated during cycle counting planning.

 

4026032[Retail] When you try to add more than 50 fields to the receipt footer, you receive the following error message:

"Index was outside the bounds of the array."

The hotfix changes the maxNumberLabels as 100.

Fixes Released

KB NumberComplete Feature PathTitle
4032436AX RetailThe transactions on voucher XXXX do not balance as per date error when you run Post statement
4033001AX RetailThe shelf label quantity is the quantity being purchased instead of 1 when you print shelf label from Purchase order
4025768AX Retail\Solution\Call CenterTotal invoiced quantity does not show correct value on the Customer item statistics form (Call center)
4032643AX Retail\Solution\Call Center\CouponsThe transactions on voucher xxx do not balance as per <Date> error you invoice sales order with pro-rated charges
4033981AX Retail\Solution\Call Center\Customer service and inquiryThe Price details form misses the "Trade agreements" and "Potential trade agreements" tabs when it's opened in the retail sales orders from Call center
4024661AX Retail\Solution\Customers and loyaltyLoyalty card balance is negative after you return original sales
4025859AX Retail\Solution\Customers and loyalty\Customers and GroupsThe customer was saved error when saving new customer in POS if number sequence for Location ID is Alpha Numeric
4025921AX Retail\Solution\Financials\Statement PostingRetailTransactionId, RetailStoreId, RetailTerminalId and RetailCustTrans fields are empty in CustTrans table
4034022AX Retail\Solution\Financials\Statement PostingAccount number for transaction type Cost change variance does not exist error when you post Retail statement
4032208AX Retail\Solution\Merchandising\Catalog ManagementHidden attributes like RetailAttributesGlobalLookup and RetailAttributesGlobalLookupPOSDisallowDiscount are assigned to Product
4034657AX Retail\Solution\Merchandising\Product Enrichment and Product DetailsPricing simulator doesn't display all the applied discounts in "Offer code"
4025525AX Retail\Solution\Order managementYou cannot delete purchase order lines that are created by packages
4025196AX Retail\Solution\Order management\Back Office (Cross-Channel) Fulfilment of Retail Store Customer OrderIt's not possible to pick up Customer order in MPOS when Delivery reminder  sales quantity is increased
4025327AX Retail\Solution\Order management\Back Office (Cross-Channel) Fulfilment of Retail Store Customer OrderNo tax on customer order MPOS prepayment when "Sales tax on prepayment journal voucher" is activated in AR parameters
4025203AX Retail\Solution\Servicing\Channel DB (including Consolidated)Tender type description doesn't appear on the printed receipts after truncating the RETAILTRANSACTIONTABLEEX5 table
4025906AX Retail\Solution\Store operations and POSMPOS Transfer Order allows Receive now decimal quantity for items with UOM to be defined as Ea
4032160AX Retail\Solution\Store operations and POSThe focus in EPOS isn't on the Search or Enter quantity box when you exit the pop-up menu
3158692AX Retail\Solution\Store operations and POS\Daily OperationsThe print behavior of hardcoded receipts (such as X Report) is tied with template-based receipts
4034771AX Retail\Solution\Store operations and POS\Offline ModeEPOS doesn't switch to Offline mode reliably after you deploy KB 4012952
4033777AX Retail\Solution\Store operations and POS\Other Payments (Check, On-account etc)Private label card read leads to manual entry for credit cards on VeriFone device
4024775AX Retail\Solution\Store operations and POS\Sales, Returns and Other Transactions"An error occurred while saving the customer" error when you search a customer in POS
4025093AX Retail\Solution\Store operations and POS\Sales, Returns and Other TransactionsMPOS always uses two decimal places when displaying quantity in cart
4025386AX Retail\Solution\Store operations and POS\Sales, Returns and Other TransactionsTotal discount calculates incorrect amount for items with a price embedded bar code when quantities is rounded in EPOS
4026031AX Retail\Solution\Store operations and POS\Sales, Returns and Other TransactionsTax amount is calculated incorrectly when price includes tax and returning transaction crossing stores
4032143AX Retail\Solution\Store operations and POS\Sales, Returns and Other TransactionsMPOS stops responding when you add blocked customer to transaction from customer details
4032631AX Retail\Solution\Store operations and POS\Sales, Returns and Other TransactionsYou cannot enter a $0 starting amount
4033139AX Retail\Solution\Store operations and POS\Sales, Returns and Other TransactionsYou cannot recall the suspended transactions in EPOS when you use product variants with multiple bar codes per variant ID
4033561AX Retail\Solution\Store operations and POS\Sales, Returns and Other TransactionsReturn transaction for weighted item has incorrect amount
4025152AXL\APAC localizations\IndiaFix for GST miscellaneous issues
4025602AXL\APAC localizations\IndiaIndia/IND: "Account number for transaction" error while posting invoice proposal
4033296AXL\APAC localizations\JapanJapan/JPN: Allowable limit for accumulated depreciation (33) doesn't take amount memorandum price 1.00 yen at the end of final depreciation year
4025282AXL\Europe Localizations\Eastern Europe\Czech RepublicCzech Republic/CZE: The "Date of VAT register" functionality doesn't work as expected with Credit limit feature even after hotfix 4013628 is installed
4032624AXL\Europe Localizations\Eastern Europe\Czech RepublicCzech Republic/CZE: "Account number for transaction type Sales tax does not exist" error when you post an invoice with modified exchange rate for VAT
4032621AXL\Europe Localizations\Eastern Europe\PolandPoland/POL: Credit limit considers advance invoice on the Customer balance form
4032142AXL\Europe Localizations\FinlandFinland/Fin: EU sales list-New VAT Recapitulative Statement report 2017 doesn't follow the provided data file specifications
4032358AXL\Europe Localizations\GermanyGermany/DEU: German sales tax payment cannot be submitted because of error code 070089007
4033723AXL\Europe Localizations\Germany Germany/DEU: SEPA CT/DD Vendor/Customer bank account setup without Swift code misses tags in XML
4014135AXL\Europe Localizations\ItalyItaly/ AX2012 R3 Italian sales tax payment report returns wrong Sales tax for the previous periods
4032622AXL\Europe Localizations\Russian Federation\AP ARRussia/RUS: Financial dimensions in the VAT posting are missing
4024541AXL\LATAM Localizations\BrazilBrazil/BRA: NF-e: "347  Rejection: Informing IE" error when the IEST tag is incorrectly exported
4032623AXL\LATAM Localizations\BrazilBrazil/BRA: The posted transaction has an amount of 0.00 if you manually adjust the ICMS tax amount for a Purchase order (fixed asset acquisition)
4023886Client\Doc HandlingUnable to upload large attachments from a SharePoint document library
4024117Client\Office Add-insDenmark/DNK: The format of time columns is set to AM/PM when you use Export to Microsoft Excel
4025132Developer and Partner Tools\DIXF"Opening balances" DIXF entity fails during copy data to target if Financial dimension based Advanced rules are in use in GL Account structure
4025920Developer and Partner Tools\DIXFDIXF export does not work when conversions are configured at processing group level
4026035Developer and Partner Tools\DIXFSubsequent batch jobs use the same job ID when using an ODBC connection to run a DIXF processing group in a recurring batch job
4032105Developer and Partner Tools\DIXFXSD file has maxlength=0 for all string fields after you regenerate source mapping in DIXF
4032445Developer and Partner Tools\DIXFDate type is exported as DateTime when you use DIXF to export a field of Date format
4032505Developer and Partner Tools\DIXFDateTime types have incorrect pattern when you generate an XSD (XML Schema Definition) file through DIXF
4032506Developer and Partner Tools\DIXFOnly one entity element is allowed (Max one entity per XML file) when you generate an XSD (XML Schema Definition) file through DIXF
4025113GFM\Accounts Payable\Invoice JournalsCanceling voucher from invoice approval journal doesn't produce the correct 'storno' accounting entry
4025330GFM\Accounts Payable\InvoicingInsufficient inventory transactions with status Received error when posting invoice with "\" character in physical voucher
4025963GFM\Accounts Payable\InvoicingUnable to see Invoice lines section in Matching Details screen with certain screen resolutions
4024400GFM\Accounts ReceivableDuplicates in Settle open transactions form after creating a collection letter after upgrade to CU12
4025495GFM\Accounts Receivable"The expected type was str, but the encountered type was real" error when doing settlement and updating cash discount
4024595GFM\Accounts Receivable\Collections\Collection LetterCollection letter code is not updated
4034761GFM\Accounts Receivable\Free Text Invoice\RecurringRecurrence ID isn't created/updated while you generate recurrence invoice for all the customers where one of the customer exceeded Billing end date
4022954GFM\Case Management"Field 'Case ID' must" error when changing the Description on a Collections case after the case has already been created
4025481GFM\Cash Management\Bank\Bank ReconciliationYou cannot run advance bank reconciliation matching rule in batch in Microsoft Dynamics AX 2012 R3
4033936GFM\Cash Management\Bank\Bank ReconciliationBank transactions marked as new don't take by default Offset account number from setup in Bank Statement
4025482GFM\Expense ManagementUsers can submit the hotel expenses in Expense report without itemization
4033979GFM\Expense ManagementExpense report receipts are deleted unexpectedly from the Expenses App
4026027GFM\General LedgerError in ledger accruals when you use tax exempt in invoice and only partial amount is accrued
4024065GFM\General Ledger\Chart of AccountsAustria/AUT: Austrian and German label for Asset in main account setup is incorrectly translated
4032664GFM\General Ledger\ReportsNo grand total on report payments for different companies
4032780GFM\General Ledger\ReportsLedger transaction list doesn't display tax code for zero based tax on cash discount
4033976Public Sector\AP\InvoicingThe field with ID '0' does not exist in table 'VendTrans' error when you post a Project Vendor Invoice with Billing classifications and auto settlement is turned on
4032178Public Sector\BudgetIncorrect GBR relief amount for a canceled PO after it's partly received.
4033912SCM\InventoryThe Batch reservation form displays no records when serial number is below location and serial dimension is displayed
4019391SCM\Inventory Costing\Cost Module\Inventory Closing"An unbalanced X++ TTSBEGIN/TTSCOMMIT pairs has been detected" error when you try to resume a previously failed Inventory recalculation
4033724SCM\Inventory Costing\Cost Module\Inventory ClosingWeighted average summary records aren't deleted by the cancellation of an inventory close if they've been updated by subsequent recalculations which are still active
4032367SCM\Inventory\Consumer Goods Distribution\Catch Weight ManagementUnable to post Picking list for full CW quantity after Packing slip cancelation
4032564SCM\Inventory\Inventory ManagementCounting sheet does not print LP dimension for an item
4033820SCM\Inventory\Quality ManagementYou cannot add different items after you apply any filter in the "Quality orders" form
4025158SCM\PlanningRefresh issue between released product item coverage user interface and reqitemtable
4032885SCM\PlanningIncorrect unit in Firm and Consolidate form
4019352SCM\Planning\Master PlanningExpired resource is incorrectly allocated by running Forecast scheduling
4024896SCM\Planning\Planned OrdersFirming and consolidating planned order doesn't verify expiration date on the formula
4032566SCM\Planning\Planned OrdersInvalid order type in production order in spite of selecting "Production" for the "Planned order type"
4032169SCM\Planning\SchedulingReferenced planned orders are not rescheduled when rescheduling multiple planned production orders
4034087SCM\Procurement\IntercompanyIncorrect value is updated and posted on Invoicing after you cancel packing slip and re-post packing slip
4025989SCM\Product\Product Configuration"Value is not found in the map" error when you configure line if cache is enabled
4034024SCM\Product\Product ConfigurationZ3 solver customization addition
4022618SCM\Production and Shop FloorIncorrect multiple validation when you select another formula number than the current active one
4034130SCM\Production and Shop FloorQuality orders are not generated automatically in some AOS servers
4032625SCM\Production and Shop Floor\Production OrdersInventory transactions status is updated as Picked instead of Reserved Physical
4025788SCM\Production and Shop Floor\Shop Floor Control\Time and AttendanceIncorrect profile is transferred to approval form from Electronic time card
4025063SCM\Production Costing\Lean CostingYou experience poor performance when you run MRP and Backflush processes
4033500SCM\Production Costing\Lean CostingAOS crashes when you running backflush costing that has an error
4034125SCM\Resource and Activity\Engineering ChangeStyle can't be imported for the BOM version data entity
4032890SCM\SalesYou cannot create a new purchase order from the sales order for non-stocked product when the original purchase order is canceled
4025486SCM\Sales\RebatesRebate accounting date isn't correct if you process it in different timezone from the legal entity
4019571SCM\Sales\Sales OrdersDeadlocking on InventSumDeltaDim causes Sales order release batch to fail
4025996SCM\Sales\Sales OrdersIncorrect price on return order when batch number is selected
4025998SCM\Sales\Sales OrdersCarrier Information on Sales Order isn't transferred
4032997SCM\Sales\Sales PricingThe TAMPROMOTIONITEM table gets an incorrect PromotionID copied in when you copy a trade allowance agreement
4025286SCM\Warehouse and Transportation\Transportation ManagementThe quantity is too high error when adding transport request lines to a load with unit conversion
4025285SCM\Warehouse and Transportation\Transportation Management\Freight ReconciliationFreight reconciliation journal for discarded amounts double posts the same debit/credit amounts as the SO invoice voucher that included the charge
4025476SCM\Warehouse and Transportation\Warehouse ManagementPick Oldest Batch option results in error when items are "Reserved Physical" at the production input location
4032712SCM\Warehouse and Transportation\Warehouse ManagementFulfillment violation message is ignored in the Release to warehouse form
4032725SCM\Warehouse and Transportation\Warehouse ManagementThe "Pick oldest batch" option incorrectly checks destination location for older batch
4033504SCM\Warehouse and Transportation\Warehouse ManagementIt allows backflush batch consumption from locations other than the input location after apply kb 3176176
4025462SCM\Warehouse and Transportation\Warehouse Management\Load ManagementLoad details inquiry displays incorrect Load reference in a transfer order
4026017SCM\Warehouse and Transportation\Warehouse Management\Load ManagementLoads that have already printed a packing slip are available to post again with negative lines
4032626SCM\Warehouse and Transportation\Warehouse Management\Load ManagementThe "Change Location" option in Load Screen doesn't show Staging location after you apply hotfix 3192548
4033136SCM\Warehouse and Transportation\Warehouse Management\Load ManagementThe Quantity remainder is incorrectly updated when you update quantity on an existing purchase order line
4034126SCM\Warehouse and Transportation\Warehouse Management\Load ManagementCancel delivery remainder deletes the load lines if you use item setup as TMS only
4026019SCM\Warehouse and Transportation\Warehouse Management\Picking and PutawayInbound work creation when PO is not confirmed
4034396SCM\Warehouse and Transportation\Warehouse Management\Picking and PutawayThe "Work created qty" field shows zero when you use "Mixed LP receiving" in mobile device
4034785SCM\Warehouse and Transportation\Warehouse Management\Picking and PutawayClusters don't order correctly
4024691SCM\Warehouse and Transportation\Warehouse Management\Shipment ManagementYou cannot cancel a packing slip when two loads are under one packing slip
4025226SCM\Warehouse and Transportation\Warehouse Management\Wave ManagementWarehouse work with multiple picks for the same item can result in poor performance in the Wave processing create work
4014133SCM\Warehouse and Transportation\Warehouse Management\Work and Worker ManagementLocation XXX does not error when using the Movement by template functionality on the mobile device
4025489SCM\Warehouse and Transportation\Warehouse Management\Work and Worker ManagementTransfer receipt putaway doesn't generate a LP automatically
4025789SCM\Warehouse and Transportation\Warehouse Management\Work and Worker ManagementRaw material picking with serial control capture at packing
4032707SCM\Warehouse and Transportation\Warehouse Management\Work and Worker ManagementWorker isn't captured on journal for WHS adjustment
4023864ServerPurchase order reference form changes when you select another line from related sales order
4025214Server\AOS ServiceLoad balancing fails because workload becomes negative
4032481Server\AOS ServiceAOS crashes when client sends a bad cursor to the server and it tries unpacking it
4023888Server\Cross CompanyCrosscompany keyword overrides literals value of DataAreaID in SQL even when DATAAREAIDLITERAL and PARTITIONLITERAL are enabled via SYSGLOBALCONFIGURATION
4025875Server\SecurityGenerating E-certificate fails if user id contains '-'
4024842SI\Project AccountingInvoicing partially relieved purchase orders in the new year changes cost price on the document
4032523SI\Project AccountingXX cannot be reserved because only 0.00 are available in the inventory error when you change the Warehouse on the Purchase order
4033314SI\Project Accounting\Commited CostsSales Tax calculates on the cost price but not on the sales price on a billable project journal transaction
4017766SI\Project Accounting\EstimatesVoucher imbalance error when you reverse an eliminated investment estimate
4025461SI\Project Accounting\EstimatesProject estimate excludes negative adjustment lines
4033526SI\Project Accounting\EstimatesProject estimate displays as 100% complete when it should be 0% after apply KB 4018826 and KB 4020440
4033195SI\Project Contracts and Billing\Billing RulesThe committed amount in the funding limits of the project contract is incorrect when you finalizes a single line of a multiline in a purchase order
4033624SI\Project Contracts and Billing\InvoicingThe dimensions from the PO are ignored afterward you post cost when you post a purchase order which post cost transaction has no dimensions and that has to be posted into a WIP project
3056843SI\Project Contracts and Billing\Pay when Paid"Pay when paid" doesn't work for invoices posted in invoice approval journals or when the invoice will be posted in two journal lines
4015593SI\Project Management\ActivitiesThe cursor always moves to the first line when you create two or more new Estimated costs and revenue lines on the WBS form of a project
4034011SI\Project Management\ActivitiesThe system opens the Activities form with an incorrect Activity number when you view details
4033527SI\Project Management\SCM IntegrationIt creates duplicate sales line numbers when you create new Project item requirements after posting the packing slip for earlier requirements
4034238SI\Project Management\SCM IntegrationIncorrect WIP amount on item transactions with the item inventory model "Moving average"

Microsoft Dynamics AX R3 Cumulative Update 13 release coming in Q3 of 2017

$
0
0

Please stay tuned for the coming release of Microsoft Dynamics AX R3 Cumulative Update 13 coming in Q3 of 2017.

Awareness | Worldwide | Payments | Planned Maintenance for Dynamics Online Payments | August 2nd

$
0
0
The Service Engineering team will be doing planned maintenance on the Payments Service. The maintenance window will begin on Wednesday August 2nd 10:00 PM PST and end at Friday August 4th 08:00 AM PST...(read more)

Principal Dynamics 365 Operations Finance Consultant

$
0
0
General information Position:  Principal Dynamics 365 Operations Finance Consultant Location: USA and CANADA Job type:  Freelance or Permanent, Full-time, Both Remote and Onsite Employer:  Business...(read more)

Dynamics 365 For Operations: Keyboard shortcuts

$
0
0

Action Shortcuts:
1. Open Action Search: Ctrl + ‘ and Alt + Q
2. Move to the Standard Action Pane: Ctlr + F6
3. To Open a Tab in the Action Pane or a Menu: Enter/Space/Alt+Down Arrow
4. Go to Next/Previous Option in a Menu: Down Arrow/Up Arrow
5. To Close a Tab in the Action Pane/Menu: Esc
6. Simulate a Right-Click: Shift + F10
7. To Open Dynamics 365 for Operations Context Menu: Ctlr + F10
8. To Execute the Default Button on a Form/Dialog: Alt + Enter
9. Click a Button or Tile: Enter/Space
10. View Refresh Information for a Count Tile: Alt + Up Arrow
Date Picker Shortcuts:
1. To Open the Date Picker: Alt + Down Arrow
2. Move between Dates in the Date Picker: Ctlr + Arrows
3. Move to Next/Previous Month: Page Down/Page Up
4. Move to the Next/Previous Year: Ctrl + Shift + Page Down/Ctlr + Shift + Page Up
FactBox Shortcuts:
1. Open the FactBox Pane: Ctrl + F2
2. Close FactBox Pane: Esc
3. Move to Previous/Next FactBox: Alt + Shift + Down Arrow/Alt + Shift + Up Arrow
4. Move to the th Factbox: Alt + ( = 1-9)
5. Expand a FactBox (FactBox Header): Space/Enter
6. Collapse Current FactBox: Alt + 0
Filtering Shortcuts:
1. Open Grid Filtering for Current Column: Ctlr + G
2. Close Grid Filtering for Current Column: Esc
3. Open Filter Pane: Ctlr + F3
4. Close Filter Pane: Esc
5. Open Advanced Filtering/Sort: Ctlr + Shift + F3
Form Shortcuts:
1. To Create a New Record: Alt + N
2. To Delete a Record: Alt + Del/Alt + F9
3. Save Record: Alt + S/Ctlr + S
4. Revert: Ctlr + Shift + F5
5. Data Refresh: Shift + F5
6. Move to the Visible First Field on the Form: Alt + Shift + F
7. Toggle Edit Mode: F2
8. Attach a Document: Ctlr + Shift + A
9. Export to Excel: Ctlr + Shift + E
10. Move to Previous Record: Ctrl + Up Arrow
11. Move to Next Record: Ctrl + Down Arrow
12. Move to First Record: Ctlr + Home
13. Move to Last Record: Ctlr + End
14. Open Navigation List on Details Forms: Ctrl + F8
15. Close Navigation List on Details Form: Esc
Grid Shortcuts:
1. Move to Previous/Next Column: Tab/Shift + Tab
2. Move to Previous/Next Row: Down Arrow/Up Arrow
3. Move to Previous/Next Row without Selecting One: Ctlr + Up Arrow/Ctrl + Down Arrow
4. Select/Clear the Current Row: Ctlr + Space/Ctrl + Click
5. Add Next/Previous Row to the Select Set: Shift + Space
6. Add a Range of Rows to the Selected Set: Shift + Click
7. Go to Next/Previous Page of Data: Page Up/Page Down
8. Create New Row at the Bottom of the Grid: Down Arrow
9. Select/Clear All Rows: Ctlr + Shift + M
10. Move to First Record: Ctlr + Home
11. Move to Last Record: Ctrl + End
Input Control Shortcuts:
1. Enter Session Date in a Date Field: D + Tab
2. Enter Current Date in a Date Field: T + Tab
3. Open Lookup, Combo Box, Date Picker, Drop Dialog: Alt + Down Arrow
4. Close Lookup, Combo Box, Date Picker, Drop Dialog: Esc
5. Move Focus into a Lookup: Alt + Down Arrow
6. Open the Control’s Enhanced Preview: Alt + Up Arrow
7. Select Text in the Current Field: Ctlr + A
8. Enter/Leave the Text Area in an HTML Editor Control: Alt + Down Arrow/Alt + Up Arrow
Messaging Shortcuts:
1. Go to the Message Center: Ctlr + Shift + F7
2. Go to the Message Bar: Ctlr + F7


Deployment methodologies, Part 2: Is agile, waterfall, or another best for Microsoft Dynamics projects?

$
0
0
Following is the second in a four-part exploration of deployment methodologies used by Microsoft Dynamics partners. Part 1 explores the promise of proprietary methodologies. Whether project management is driven by proprietary or generic methodologies ...read more

D365 for Ops – Management Reporter ‘Generator’ Security Role

$
0
0
This MR security role is inherited via the assignment of ‘Accountant’, ‘CFO’ and ‘CEO’ security roles in D365. The assigned D365 security Duty is ‘Generate financial reports’ and includes these privileges...(read more)

Microsoft Dynamics 365 for Finance and Operations, Enterprise edition (on-premises) - PART 1

$
0
0
Hi Guys

As you know, Microsoft released D365FO Local Business Data, aka On-Premise release.
Here the link Set up and deploy on-premises environments

I played around and I found the first issues.

During the creation of the group managed service accounts (gMSAs) through the Powershell scripts, "Create gMSAs" section, you can raise the follow error: "Key not found"

In this case you have to create a "KDS root key" using the following commands:

1-Add-KDSRootKey –EffectiveImmediately
2-Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10));


During the ClusterConfig.json file generation, you can raise the following error, “Failed to Download Cluster Configuration Template”, see below error.



In this case you have to download the Service Fabric standalone installation package and copy the "ClusterConfig.X509.MultiMachine.json" file into the LCS InfrastructureScripts folder.
Again run the .\New-SFClusterConfig.ps1 -InputXml .\ConfigTemplate.xml command.

Finally, I test the ClusterConfig file through the command .\TestConfiguration.ps1 -ClusterConfigFilePath .\clusterConfig.json


Next step is Deploy the Cluster!

Till soon!

Microsoft Dynamics 365 for Finance and Operations, Enterprise edition (on-premises) - Installation PART 2

$
0
0
Hi

Again here with the second part about the D365FO On-premise installation.

Before to Create the AppFabric Cluster, modify the ClusterConfig.json file created before and set the "diagnostics file share" path. This one will be use during the Installation process through all AppFabric nodes.

If during the Cluster installation you raised the error "Request is Invalid" check if the Primary NodeType (Orchestrator) have at least 3 Nodes!



Again, if during the Cluster installation you raised the error "Timed out waiting for Installer Service to complete for machine..."


You have to:

1- Verify if the Certificate are been installed in the Local Machine Node

2- Add the NETWORK SERVICE account for all certs used by Service Fabric.
In order to do this you have first download and install in all Cluster Nodes the WinHttpCertCfg.exe tool, Windows HTTP Services Certificate Configuration Tool (WinHttpCertCfg.exe)
Lastly, run the command for all Certificates in all Cluster Nodes, like "C:\Program Files (x86)\Windows Resource Kits\Tools\WinHttpCertCfg.exe" -g -c LOCAL_MACHINE\MY -s "client.xxxxx.com" -a "NetworkService"

Till soon!

[AX2012] Get Email for Customer / Vendor (with specific roles)

$
0
0

To get an email address for a Customer or vendor, you can use the following statement

static void DEL_SS_emailStmtjob(Args _args)
{
CustTable cust; //Replace with vendTable for Vendors
DirPartyLocation dirPartyLocation;
LogisticsElectronicAddress elecAddress;
LogisticsElectronicAddressRole elecAddressRole;
LogisticsLocationRole locRole;
select firstOnly cust
where cust.AccountNum == '‪‪‪Cust-001';
while select DirPartyLocation
where dirPartyLocation.party == cust.Party
{
while select elecAddress
where elecAddress.Location == dirPartyLocation.Location
&& elecAddress.Type == LogisticsElectronicAddressMethodType::Email
{
while select elecAddressRole
where elecAddressRole.ElectronicAddress == elecAddress.RecId
join locRole
where locRole.RecId == elecAddressRole.LocationRole
{
info(strFmt("%1 - %2", elecAddress.Locator, locRole.Name));
}
}
}
}


Filed under: Dynamics Ax

Update plattform for General Electronic Reporting (GER)

Viewing all 10657 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>