Quantcast
Channel: AXForum
Viewing all 14636 articles
Browse latest View live

динамический X++ запрос range по нескольким полям

$
0
0
Добрый ден,

Столкнулся с трудностями при переписывании данного SQL запроса:

X++:

    while select BOMId from bomVersion
            group by routeOpr.IsTechnReasonable_ICL,bom.ItemId,ecoResProduct.RecId
            where bomVersion.ItemId==itemIdProduction &&
                  bomVersion.Active == NoYes::Yes &&
                  bomVersion.FromQty == #bomVersionFromQty &&
                  (
                    (bomVersion.FromDate==dateNull() && bomVersion.ToDate == dateNull())||
                    (bomVersion.FromDate<= systemDateGet() && bomVersion.ToDate >= systemDateGet())||
                    (bomVersion.FromDate<= systemDateGet() && bomVersion.ToDate == dateNull())
                  )

данную часть:

X++:

(
                    (bomVersion.FromDate==dateNull() && bomVersion.ToDate == dateNull())||
                    (bomVersion.FromDate<= systemDateGet() && bomVersion.ToDate >= systemDateGet())||
                    (bomVersion.FromDate<= systemDateGet() && bomVersion.ToDate == dateNull())

упростил до:

X++:

bomVersion.FromDate <= systemDateGet()
  && (bomVersion.ToDate == dateNull() || bomVersion.ToDate >= systemDateGet())

Сам запрос на X++:

X++:

static void Job74(Args _args)
{
    Query                  query;
    Queryrun                qr;
    QueryBuildDataSource    qbdsBomVersion;
    BOMVersion              bomVersion;


    query = new Query();
    qbdsBomVersion = query.addDataSource(tableNum(BOMVersion));
    qbdsBomVersion.addRange(fieldNum(BOMVersion,ItemId)).value(queryValue("7075"));
    qbdsBomVersion.addRange(fieldNum(BOMVersion,Active)).value(queryvalue(SysQuery::value(NoYes::Yes)));
    qbdsBomVersion.addRange(fieldNum(BOMVersion,FromQty)).value(queryValue("1"));
    qbdsBomVersion.addRange(fieldNum(BomVersion,FromDate)).value(strfmt("((%1.%2 <= %5) && ((%1.%3 == %4) || (%1.%3 >= %5)))",
                            qbdsBomVersion.name(),fieldstr(BOMVersion,FromDate),fieldStr(BOMVersion,ToDate),date2strXpp(dateNull()),systemDateGet()));

    qr = new QueryRun(query);
    info(qr.query().dataSourceNo(1).toString());

Вот эту часть:

X++:

bomVersion.FromDate <= systemDateGet()
  && (bomVersion.ToDate == dateNull() || bomVersion.ToDate >= systemDateGet())

записал как:

X++:

qbdsBomVersion.addRange(fieldNum(BomVersion,FromDate)).value(strfmt("((%1.%2 <= %5) && ((%1.%3 == %4) || (%1.%3 >= %5)))",
                            qbdsBomVersion.name(),fieldstr(BOMVersion,FromDate),fieldStr(BOMVersion,ToDate),date2strXpp(dateNull()),systemDateGet()));


Возвращаемый SQL запрос такой:

X++:

SELECT * FROM BOMVersion(BOMVersion_1) WHERE ((ItemId = N'7075')) AND ((Active = 1)) AND ((FromQty = 1.E0)) AND ((((BOMVersion_1.FromDate <= 13.02.2019) && ((BOMVersion_1.ToDate == 01\01\1900) || (BOMVersion_1.ToDate >= 13.02.2019)))))
Получаю ошибку расширенно диапозона. Ожидается правая круглая скобка рядом с 35. Подскажите пожалуйста, в чем может быть проблема? Использую подход для наложения range которы йописан здесь:

https://docs.microsoft.com/en-us/dyn...n-query-ranges

Заранее спасибо.

stoneridgesoftware: The Four Steps to Upgrade from Dynamics AX to Dynamics 365 Finance and Operations

$
0
0
Источник: https://stoneridgesoftware.com/the-f...nd-operations/
==============

Upgrading from Dynamics AX to Dynamics 365 Finance and Operations is a looming (and exciting) reality for all businesses utilizing AX today. Mainstream support for even the most recent version of AX (2012 R3) is ending in 2021. Upgrading isn’t a simple process, but it will be well worth it, in the end, thanks to our four steps: the new features and functionality, modern user experience, integrated business operations, and enhanced business intelligence. 

An enterprise software upgrade is a great time for a fresh start. No doubt at least some of your business processes have changed since your last upgrade, or maybe even since you initially implemented Dynamics AX. This is a great time to look to clean-up, roll additional business processes into Dynamics, utilize new tools, and leverage improved best practices for 2019 and beyond.

Step 1: Analysis and Scoping

The first step is to get organized with all of your business processes. At Stoneridge, we like to go through an exercise that we call the enterprise process review (EPR). The primary output of the enterprise process review activity is simply an overview of your key business processes and some documentation that describes each process and how it is performed today. This catalog becomes the foundation of the upgrade project and is key to understanding the work effort involved.

With all the improvements and additions that Microsoft has made in feature set and functionality, it would be good to take look at any business processes not currently utilizing Dynamics, as you may find benefits from bringing those into the Dynamics fold. More than likely, there’s some new functionality that you could leverage and just get more ROI and potentially eliminate other third-party systems that you’re currently using.

As you work your way through the business process analysis journey, you really want to look for the areas that your business stakeholders or your subject matter experts are indicating some inefficiencies, whether it be general complaints or some opportunities for improvement. The upgrade may be a very good time to dig in and resolve those issues.

Once you have your Process Library complete, we’ll cross-reference system changes between AX and Finance and Operations to determine what is new, what has changed that you were using, and if anything has been removed from the system. This is where having a knowledgeable partner to assist is a huge benefit as there isn’t one central place to compare features between AX and Finance and Operations.

Microsoft does provide a tool within the upgrade to identify depreciated features and, in some instances, changed features based on what it sees in your environment as you’re going through the upgrade analysis tool. This is fairly limited and should not be considered a replacement of a manual analysis of potential changes.

Lifecycle Services is a tool set that Microsoft Services provides that will be essential to your upgrade and to your life after the upgrade. As you are going through the business process analysis, I’d encourage you to check out Lifecycle Services and look at what they have provided in their business process modeler. Lifecycle Services is a nice tool set for you to organize your business processes.

The next major portion of the analysis and scoping face is a code review. At Stoneridge, we have built a tool to analyze custom code within your current system. We generate a report that lists out custom objects, models, layers, and ISV’s. Once that report is generated, we can assess if those customizations are still needed, if there are alternative options to replace customizations, and the best way to move any required customizations to Finance and Operations.

By comparing the customization report to the process library, it will be evident which customizations should move into Finance and Operations and which can be eliminated. For example, in the 2009 environment, you may have built a custom positive pay feature because it didn’t exist as native functionality when you implemented the product. However, in Finance and Operations, positive pay is now a native feature, so you may not need to update your code to the new system.

Additionally, you may determine that an ISV that you have is being replaced by native functionality and decide not to bring it forward. If there are ISV solutions that you want to continue utilizing, this is the time to communicate with them to ensure they have a version of their product that is compatible with Dynamics 365. At this time, the majority of ISVs have made their solutions compatible with Dynamics 365 or even enhanced their functionality.

Step 2: Cleanup

Microsoft has a tool in Lifecycle Services that will recommend data cleanup, including database size reduction. This tool will also highlight some SQL configurations and other compatibility challenges that you will want to make or change to optimize upgrade processing time.

You’ll also want to take a close look at the upgrade code analysis report. This step will give you a better understanding of the amount of work it will take to clean up code, which includes merging layers to get to a one-layer model as much as possible. You might be surprised to find where code exists depending on how tightly you conformed to best practices during any development effort performed in the past.

Finally, if you have some duplications or old data, this is a good time to do some purging and archiving. You may not want to carry forward volumes of data that you don’t need, from both the perspective of having a clean start but also because huge amounts of data can impact the processing time and overall time to complete the upgrade.

Step 3: Code and Data Upgrade

For AX 2009, the data upgrade that’s available is limited. From a technology standpoint, this means you’ll be using the data import/export framework to extract data from your AX 2009 environment into an Excel or CSV file format. That data is then imported into Dynamics 365 with the migration utility tool. The data import for AX 2009 is limited to entities such as customers and vendors. Transactional data is possible to import but not recommended.

There is no automatic code upgrade available from Microsoft if you are currently on AX 2009. The best strategy to upgrade code from AX 2009 to Finance and Operations is by first upgrading to AX 2012 and then upgrading to Finance and Operations.

AX 2012 users can upgrade their full data and code directly into Finance and Operations.

In Dynamics 365, Microsoft is taking a more agile approach to updates, so you’ll see updates released more frequently. Because of this, they’ve introduced a less intrusive customization approach that utilizes Extensions. This is an entirely new development architecture provided in D365. The previously available “Lift and Shift” upgrade approach is no longer an option, and all upgrades will require moving to the Extension model.

Step 4: Process Design and Testing

Next, I’d like to cover process design. So logically, you’ll get through the code and the data upgrades and then have a well-established environment before you get into process redesign or new feature implementation. However, you can get some of that started early and do some multi-threading of project work streams, especially if you’re leveraging any of the new features. If you’re taking a business process that isn’t currently being used or isn’t leveraging Dynamics AX and you want to roll that out, you can do some proof-of-concept as a separate thread from the code and data upgrade work effort that’s going on. You have access to a trial instance of Dynamics 365 so before you even get serious about doing the work, you can start doing some proof-of-concept and evaluating new features.

Lastly, I want to emphasize testing. With upgrades, there is a tendency to overlook testing and say “well, we’re just upgrading”. The reality is that a lot of the processes are going to be similar. However, I still want to encourage a process we use called Joint Process Design. During this process, you’re taking each of your processes, working through them, doing a proof-of-concept and hashing out any potential gaps or issues. You just don’t want to assume that everything is going to transfer exactly.

The Joint Process Design exercise is an effective testing and training activity, especially for the project team, but we do also encourage stand-alone testing where you build out your test scripts, use case scenarios and make sure to work through those thoroughly in the process of the upgrade.

After fully testing the system, you’re ready to deploy and go-live.

Contact Stoneridge Software for more information on the four steps to upgrade from Dynamics AX to Dynamics 365 for Finance and Operations or the Joint Process Design.



Источник: https://stoneridgesoftware.com/the-f...nd-operations/

i-neti: Апрельские обновления для Dynamics 365 for Finance and Operations: эксперты-практики рассказывают об улучшениях функционала

$
0
0
Источник: https://i-neti.ru/?q=blog%2F583
==============




Недавно Microsoft опубликовал новую информацию об апрельском расширении функционала Dynamics 365 и Платформы Microsoft Power, и большая часть документа, состоящего их 320 страниц, была посвящена изменениям, которые затронут Dynamics 365 for Finance and Operations (D365FO).

подробнее



Источник: https://i-neti.ru/?q=blog%2F583

sunilrakesh: Performance load test for AX2012 using VS 2013 online.

$
0
0
Источник: https://community.dynamics.com/membe...f-b7a3c39f0dbd
==============

HI All,

Using PO creation scenario from Benchmark SDK, running successfully the scenario with VS2013 ultimate and getting results without errors and even creating PO's in AX2012 R3 through this tool offline.

When I am running scenario for VS Online could not able to create PO's in AX but I can see results on VS Online portal successfully. The question is, why I am not able to create PO's in AX using VS online run? Is VS online is to view results only for scenarios?

Please find below screen shot shows the online report after running PO creation scenario.. throws error...but shows results successfully on online portal.

<img width="1365" height="682" style="width:512px;height:293px;" alt=" " /><img width="1337" height="580" style="width:513px;height:227px;" alt=" " />



Complete error:

Assert.Fail failed. Microsoft.Dynamics.AX.ManagedInterop.InitializationFailedException: Failed to initialize the managed interoperability layer of Microsoft Dynamics AX.
at MS.Dynamics.AX.Benchmark.SDK.Tools.SessionManager.AddUsers(Int32 numberOfUsersToAdd) in d:\*****\LoadTest PO\MS Dynamics AX 2012 R3 Performance Benchmark SDK\MS.Dynamics.AX.Benchmark.SDK.Tools\SessionManager.cs:line 304
at MS.Dynamics.AX.Benchmark.SDK.Tools.SessionManager.GetRandomUser(Session& userSession, Int32& key, String& userName) in d:\*****\LoadTest PO\MS Dynamics AX 2012 R3 Performance Benchmark SDK\MS.Dynamics.AX.Benchmark.SDK.Tools\SessionManager.cs:line 79
at MS.Dynamics.AX.Benchmark.SDK.Tools.PurchaseOrderSessionManagerProxy.GetRandomUser(Session& userSession, Int32& key, String& userName) in d:\****\LoadTest PO\MS Dynamics AX 2012 R3 Performance Benchmark SDK\MS.Dynamics.AX.Benchmark.SDK.Tools\PurchaseOrderSessionManagerProxy.cs:line 68
at MS.Dynamics.AX.Benchmark.SDK.TestProject.PurchaseOrder.PO_CreatePurchaseOrderAndLines() in d:\******\LoadTest PO\MS Dynamics AX 2012 R3 Performance Benchmark SDK\Scenarios\MS.Dynamics.AX.Benchmark.SDK.TestProject.PurchaseOrder\PurchaseOrder.cs:line 231





I want to run PO creation scenario with record creation in AX and view results on VS online. tried to rectify above error but have no luck. Can you please help me in this, much appreciated for your answers. Thank you...




Источник: https://community.dynamics.com/membe...f-b7a3c39f0dbd

stoneridgesoftware: New Features Coming to Dynamics 365 for Sales in 2019

$
0
0
Источник: https://stoneridgesoftware.com/new-f...sales-in-2019/
==============

Between April and September 2019, new features are coming to Dynamics 365 for Sales that will give sales team members deeper insights into contacts and information to close deals more efficiently. With powerful AI and seamless integrations with tools like LinkedIn and Microsoft Teams, D365 for Sales is bringing integrated business operations to the next level.

LinkedIn-driven Organizational Charts

Dynamics 365 for Sales has previously included information from the LinkedIn Sales Navigator. This release gives Sales users even more information including company org structures and automatic updates when any contact leaves their position. Additionally, all Sales users can now view basic customer profiles from LinkedIn without the additional sales navigator subscription.

Additional Data Point Integrations

D365 for Sales will now integrate with more sources so users can access more prospect and client data than ever before. D365 for Sales will feature apps from these third-party data providers within Sales and offer try-and-buy experiences directly within the system.

Enhanced Collaboration with Microsoft Teams

Sales reps can now easily collaborate more effectively using Microsoft Teams. Teams allows users to view customer information and share files.
  • Collaboration hub: Access records together with the Office applications you need to close deals.
  • Cross-functional collaboration: Work together with customers and any colleague across functions, including customers that do not have a Dynamics 365 user account.
  • File integration: Co-author documents using Office 365 and automatically sync to Dynamics 365.
  • Teams mobile app: Search and update records from Microsoft Teams mobile app using the Dynamics 365 bot while on the go.
Revenue Prediction and Sales Forecasting

With sales forecasting in Dynamics 365, users can specify forecast categories for each opportunity and use that information to update predictions within the system.



Confirm Price-Quote Integration

Your customers can expect a faster turnaround time thanks to the Dynamics 365 integration with partner configure-price-quote (CPQ) solutions. These solutions can be installed directly into Dynamics 365 and will enable your sales team to identify the right configuration of products to fit your customers’ needs. From there, your team can quickly generate quotes and contracts with the right pricing – even when there are discounts involved.

Contact the team at Stoneridge to learn more about how Dynamics 365 for Sales can help your sales team close deals more efficiently. You can also read more about Dynamics 365 on our blog.



Источник: https://stoneridgesoftware.com/new-f...sales-in-2019/

Denis Trunin's Blogs: Fields list form(if you like Table browser, you will love it)

crmtipoftheday: Tip #1219: Root and content pages will make you unemployed

$
0
0
Источник: https://crmtipoftheday.com/1219/info...ou-unemployed/
==============

You crafted a new page in your beloved portal. It’s a work of art. Apple will hire you as a chief designer when they see the page. You change Publishing State from Draft to Published and… Nothing. You wait 5 seconds, F5, still nothing. Ctrl-F5. Nope. Sign in as admin, navigate to /_services/about, Clear Cache, sign out. Refresh. Not there. Sign in into admin center, restart the portal. Still bupkis. Turn the portal off then turn it back on. Slowly it comes back to life. Page? Nowhere to be seen. Somebody please put me out of this misery.

Now that you’ve missed that job opportunity, let’s take a look at what’s going on.

When you create a web page, at least two records get created: an information (or root) page and a content page (information page has Is Root property set to Yes).

Content page is pretty much a copy of the information page but now it has its own life. When you modify properties on the information page, they are not in sync with the content page except for a Partial URL and Page Template properties. The rest of the properties , including Publishing State are independent.

Guess which page is rendered when you access the portal? Yep, the content one. Now you see what happened?



Lesson: always modify the properties of the content page not the information (root) one.

Why all these pain? Parlez-vous francais, anyone? That’s right, multi-lingual stuff. That’s why I said “at least 2 records”. In fact it will be number of languages + 1. Your content pages will be in different languages, with different content, published at different times, if at all. So that you can have fun. Like this:



(Cover photo by Mohit Tomar on Unsplash)



Источник: https://crmtipoftheday.com/1219/info...ou-unemployed/

stoneridgesoftware: Exposing Web Services in Dynamics NAV

$
0
0
Источник: https://stoneridgesoftware.com/expos...-dynamics-nav/
==============

Web services are a standardized way to communicate and exchange information between separate applications. This is a more secure and lightweight method of connecting applications as opposed to directly connecting to another application’s database. Microsoft began implementing web services into NAV over 10 years ago – allowing users to publish a variety of objects, also known as exposing web services in Microsoft Dynamics NAV. The most common use is code unit and pages. The blog will cover how to use and set up web services in Dynamics NAV

What can you do with NAV web services?

Common usage of NAV web services includes e-commerce integrations, WMS handheld applications, data gathering from IoT devices, and anything that will make it easier to securely transfer real-time data to and from NAV. For example, if your company uses special pricing and you would like your e-commerce website to reflect these prices in real-time without directly connecting to your NAV database, you can create a custom code unit in NAV, expose it via web services, and connect it to your e-commerce website.

How to Set Up Web Services in Dynamics NAV

In the example below, we are going to expose a custom code unit named ‘Web Services’. To help keep your exposed functionality organized, you should create a custom code unit that will store all your exposed functions.

Search in the top right corner ‘Web Services’



Click ‘New’



Fill in the ‘Object Type’, ‘Object ID’ and ‘Service Name’ fields. When you are finished, check ‘Published’.



After you check the ‘Published’ box, you are ready to connect! The connection string will automatically generate. Take the string, in this example the SOAP URL, and integrate it into your outside application.



Click the global icon to view the WSDL. A WSDL is an XML format that describes the service connection.



Here we can see more detailed information about the functions available through the web service we just exposed. The service that I exposed contains a function named ‘GetCustomerSalesPrice’ that takes three string parameters; custNo, itemNo, and unitOfMeasure. The function returns a decimal value.





Web services are a great way to connect and securely exchange information between different applications.  I hope this helps clear up what web services offers, how it can be utilized in NAV, and how to expose a web service. If you have questions or need help with web services, please reach out to Stoneridge Software.



Источник: https://stoneridgesoftware.com/expos...-dynamics-nav/

i-neti: Разработка в Microsoft Dynamics 365 for Finance & Operations. Часть 2

$
0
0
Источник: https://i-neti.ru/?q=blog%2F584
==============




Рады сообщить, что на нашем канале появилась вторая часть вебинара про разработку в Dynamics 365 FO.

Как и говорили в прошлый раз, Microsoft сильно изменил концепцию изменения кода и полностью отказывается от предыдущего подхода. Сейчас выпущена такая концепция как extensions.

подробнее



Источник: https://i-neti.ru/?q=blog%2F584

Налоговый агент СТОРНО

$
0
0
Доброго времени суток!
После разноски журнала. как и положено у меня сформировались 2 счет-фактуры по налоговому агенту. Все проводки верные, но есть неточности, которые никак не могу исправить. при формировании я не учла округление платежа по НДС, Теперь мне необходимо сделать корректно сторно ндс по налоговому агенту. Кто-нибудь сталкивался с таким? Как сделать сторно правильно?

Andrey’s NAV Blog: ZIP archive reading with AL

D365FO Platform Update 21 (7.0.5073) KB 4477851 bug fixes

$
0
0
Надеюсь, не раскрою большого секрета, если опубликую список исправлений для Platform Update 21
  • KB 4469076 Client
    URL EDT link is frequently opening blank pages in IE
  • KB 4469077 Client
    Asterisk does not display for some required fields
  • KB 4469078 Client
    Real value lookup does not work for languages where decimal separator is a comma instead of a dot, like in German “de”
  • KB 4469079 Data Management
    Attachment entities not working when imported using DMF API
  • KB 4469081 Data Management
    Data Management: XML transformation temporary files are not deleted and will eventually result in error “System.Exception: The file exists”
  • KB 4469087 Extensibility
    Cannot expose a custom field from VendTable on any entity
  • KB 4469088 Extensibility
    Control name overrides the declared variable name during CoC implemtation in form extension class
  • KB 4469074 Office Integration
    Paperclip icon does not show the correct count of the files attached
  • KB 4469082 Performance
    Error message recommends specifying a Maximum buffer size value of 194 Kbytes or higher on the Database Tuning tab page in the Microsoft Dynamics 365 for Finance and Operations Server Configuration Utility
  • KB 4469084 Performance
    Audit Trail: Incorrect syntax error while creating a new alert rule
  • KB 4469086 Performance
    NestedLoop does not work on some form datasources as expected
  • KB 4469089 Programming Model
    Incorrect compare in the “Import project” dialog if the project contains more than 1 element.
  • KB 4469090 Programming Model
    “Find tag references” doesn't work for object type Class
  • KB 4469091 Runtime
    Incomplete Transaction Metadata
  • KB 4469075 Task Recorder
    Unable to edit a recording after marking a column in the task list
  • KB 4469067 Translation
    Mass search and replace of word “state” results in incorrect messages in Retil module for en-ca, en-ie, and en-sg
  • KB 4469071 Translation
    [Apply button on grid filtering] Translations issues for all FR languages

D365FO Platform Update 22 (7.0.5095) KB 4486423 bug fixes

$
0
0
Дата выпуска: 23.01.2019 (был еще один выпуск PU22 - KB 4471117 от 20.11.2018, его вскоре после публикации убрали из общего доступа, вернув уже в декабре)
Список исправлений:
  • Issue 255228 Data Integration
    Dual write support for multiple company mapping between CDS and AX
  • Issue 259971 Develop and customize
    Type provider tests may generate unexpected Best Practice (BP) warnings
  • Issue 237566 Develop and customize
    Post-Event handlers on form methods are not triggered in some cases
  • Issue 247968 Intelligence
    Alert framework is not determining field level access rights correctly.
  • Issue 262343 Intelligence
    Dynamics365 On-premises: Something went wrong while generating the report
  • Issue 261104 Intelligence
    SSRS Reports fail to render in development environments.
  • Issue 247205 Localization and Regulatory features
    Wrong date format d.yyyy.MM when strFmt() is used with datetime fields in localization for Slovenia
  • Issue 231449 Localization and Regulatory features
    [Denmark] Danish label for “round-off” is incorrect, should be Afrunding
  • Issue 219120 Organization administration
    Error when creating a new Workflow work uerm queue assigment rule Cannot create a record in Workflow work item queue assignment (WorkflowWorkItemQueueExpressionDef).
    Document: TrvWorkflowExpHeader. The record already exists.
  • Issue 226525 Organization administration
    Unable to select document key in free text invoice sub-workflow
  • Issue 246152 Organization administration
    Workflow execution account setup is not working correctly
  • Issue 180310 Organization administration
    Workflow delegation gives unexpected results
  • Issue 262155 Runtime
    DatabaseSynchronize Event Provider Channel is not deploying
  • Issue 173920 Runtime
    Cannot edit a record in PCLUDFDateTimeValue (PCLUDFDateTimeValue). Data update is not allowed on a field that has not been selected.
  • Issue 262822 Runtime
    Cached table data methods exception handling.
  • Issue 259545 System Administration
    Enable sending AAD invitation email for B2B invitation
  • Issue 256702 Upgrade
    Data Upgrade fails on step 6 due to unrecognized additivetablesync parameter
  • Issue 252748 User Interface
    User sees an “Invalid value (XXXX*) specified in the query predicate” error when changing the filter operator in the Product Reservation hierarchy dropdown

D365FO Platform Update 23 (7.0.xxxx) KB 4481230 bug fixes

$
0
0
Дата выпуска: 03.01.2019 (пока что обновление доступно лишь некоторым клиентам)
Список исправлений:
  • Issue 264098 Data Management
    Composite entity XSLT transformation not applied during export.
  • Issue 251763 Develop and customize
    Batch job may cause DuplicateKeyException errors
  • Issue 217263 Develop and customize
    Visual Studio Tools: Form part data sources (in form extension) are not visible in the data source lookup menu
  • Issue 259894 Office Integration
    Excel Add-in filter doesn't work for multi-byte (Japanese) characters
  • Issue 173758 Runtime
    NumberSequencesReferenceEntity - Import error
  • Issue 181709 Runtime
    DirPerson UpdateConflict saving worker
  • Issue 244432 Runtime
    Infolog error thrown when trying to view security configuration audit data: Cannot execute a data definition language command on Security object events view (SecurityObjectEventView).
  • Issue 259358 Runtime
    Formpart is not showing expected data for relation link after adding date field
  • Issue 261023 Runtime
    The URL Generator is returning Deep links with wrong menu-item type value
  • Issue 256462 Runtime
    Database Log displays wrong enum value for changes in PmfProductType enum
  • Issue 173851 System Administration
    Impossible to see all messages of the log in the batch job history when many records are processed
  • Issue 258108 System Administration
    Batch job maybe marked as complete before all tasks are completed
  • Issue 266396 System Administration
    Batch group server list having duplicate server Ids
  • Issue 237175 User Interface
    Personalized description field loses its values
  • Issue 254342 User Interface
    Playing a task guide should be done in the user's language, not the language the task guide was recorded with
  • Issue 261312 User Interface
    The discount percent is still applied when it is added and removed before leaving the field
  • Issue 259907 User Interface
    Embedded PowerApp Param() function is truncating leading zeros in string value

D365FO Platform Update 24 (7.0.xxxx) Issue 287129 bug fixes

$
0
0
Дата выпуска еще не определена (пока что обновление доступно лишь некоторым клиентам)
Список исправлений:
  • Issue 252831 Data Integration
    Unable to export double byte characters with code page 932
  • Issue 241167 Data Management
    Data Management: Job history has status “Success” even though some staging records are still pending (or) It says partially succeeded when all records have been successfully transferred to target
  • Issue 275442 Data Management
    Cannot import Excel sheet if column names are in non-English language
  • Issue 240629 Data Management
    Unable to mapping array on data entity if the EDT extend a non-array EDT
  • Issue 180888 Data Management
    Changes on Data Entity “Tags” property via extension doesn't take effect as expected
  • Issue 231923 Data Management
    Under certain circumstances, certain delete operations do not get synced to BYOD
  • Issue 231753 Data Management
    SELECT query generated by DMFEntityWriter::processRecords can result in a cartesian product
  • Issue 226883 Data Management
    DMF: Options “fail batch on error for execution unit” and “fail batch on error for level” don't seem to work for export projects
  • Issue 278369 Data Management
    SkipStaging setting is always 'NO' in data management telemetry
  • Issue 263228 Data Management
    Unable to download file through recurring integrations when using multiple entities and the switch “prevent upload of when zero records”
  • Issue 265164 Data Management
    Simultaneous calls to ExportToPackage even across different data projects, returns the same executionId
  • Issue 276197 Intelligence
    Collate Print Management Option is not retained.
  • Issue 248905 Intelligence
    Client Alert Rules are not working as expected for tracking changes to 'Cases'
  • Issue 273179 Intelligence
    Purpose field is not available when emailing the client for a collection letter
  • Issue 280481 Intelligence
    “The method or operation is not implemented.” error trying to customize InventTransferShip report
  • Issue 273999 Office Integration
    Export to Excel: if you check all the records on a form and export the data to Excel then you get one row less than if you do the same without checking all records on the form
  • Issue 269569 Organization administration
    When routing invoice journal workflow based on Invoice journal dimension, only first line's dimension is accounted for.
  • Issue 172579 Organization administration
    Menu bar missing from 'Status for number sequences' form &lt;NumberSequenceList form&gt;
  • Issue 267787 Organization administration
    Information Technology Manager Role cannot add/remove number sequence references from Number sequences form
  • Issue 260265 Organization administration
    Accounts receivable parameters are not showing all number sequences in CS language
  • Issue 263306 Organization administration
    Expense policy rules are not saved when two fields are being compared
  • Issue 173933 Performance
    Performance timer does not show [Server calls] and [Server performance counters] values on Production and UAT Environments
  • Issue 281332 Runtime
    Consistency check may not run sub-modules when selecting both parent and child checks
  • Issue 181627 Runtime
    Unable to filter on datetime fields using (day()) function when date, time & number format is set to fr-be language
  • Issue 272069 Runtime
    Dynamics is Adjusting DST for Uruguay time zone (Montevideo) when it should not
  • Issue 272693 Runtime
    Consistency check with data error ends with “The menu item with name sysconsistencycheckbase could not be opened.”
  • Issue 268134 System Administration
    Enable “Run automatic role assignment” to run in batch mode
  • Issue 256184 System Administration
    Table ModelSecPolRuntimeEx needs additional indexes added to improve performance
  • Issue 236231 System Administration
    Outlook.com accounts fail to authenticate
  • Issue 181101 System Administration
    Detect expired tokens prior to use and attempt to get a refreshed token.
  • Issue 257794 User Interface
    Paste text to the HTML control Scroll Issues
  • Issue 266954 User Interface
    Unable to add workspace on Essential Dashboard using personalization feature
  • Issue 268086 User Interface
    NullReference exception in FormControlPersonalization.addField method
  • Issue 239156 User Interface
    Columns become blank when there is personalization on the form
  • Issue 280248 User Interface
    Unable to delete typo duplicate record on list-page
  • Issue 273347 User Interface
    [On premises] Hijri month issue on changing language to Arabic
  • Issue 278400 User Interface
    “An unexpected client error has occurred” on “Adjusted demand forecast” form
  • Issue 279662 User Interface
    Slow performance after changing filters from the Filter Pane on the On-hand list form
  • Issue 279760 User Interface
    Unexpected client error when using the &limitedNav=true URL flag

crmtipoftheday: Tip #1220: Accessibility in portals

$
0
0
Источник: https://crmtipoftheday.com/1220/acce...ty-in-portals/
==============

Have you ever tried navigating your portal without a mouse? Or switched the monitor off (yes, all of them) and try to figure out where you are using nothing but a screen reader? If you have successfully done that, my hat is off to you. It’s called accessibility.

Those of you working on the projects for the governments and, to a lesser extent, large enterprises, are probably familiar with the item on a tender checklist.

Good news is that the out-of-the-box start portals (Custom portal, Community portal, Partner portal, Customer portal, Employee self-service portal) are accessible. What does it mean and how do you measure it? There are standards, of course, and there are reports on how portals (and Dynamics 365 product line up in general) are compliant with those.

You can retrieve specific Dynamics 365 Portals conformance reports by searching for “Dynamics 365 Customer Engagement” at Microsoft Accessibility Conformance Reports. These reports cover the following standards:

  • EN 301 549 – the European standard that sets out accessibility requirements for information and communication technology procured by the public sector.
  • Section 508. Under Section 508 of the Rehabilitation Act, US Government agencies must give employees with disabilities and members of the public access to information that is comparable to the access available to others.
  • WCAG. Web Content Accessibility Guidelines published and maintained by W3C.
Of course, these reports cover only out-of-the-box portals. When you customize and extend any of those, you should ensure that the portal remains accessible after any customization or changes.

(Cover photo by Yomex Owo on Unsplash)



Источник: https://crmtipoftheday.com/1220/acce...ty-in-portals/

jonas rapp: Dynamic content in Auto Numbers for Microsoft Dynamics 365/CRM

$
0
0
Источник: https://jonasrapp.net/2019/02/anm-dynamic/
==============

As the creator of the Auto Number Manager tool in XrmToolBox, I get two questions more than any other questions: How can I number existing records? How can I add dynamic content to the numbers? In a previous article I gave my solution to the first question. I will now dive into the second one and show … Continue reading Dynamic content in Auto Numbers for Microsoft Dynamics 365/CRM

The post Dynamic content in Auto Numbers for Microsoft Dynamics 365/CRM appeared first on The Dynamics 365 Trenches.



Источник: https://jonasrapp.net/2019/02/anm-dynamic/

crminthefield: How to read the Dynamics 365 Mailbox details file for troubleshooting

Баг в SysDictIndex

$
0
0
Актуальная версия аксапты: AX2012 R3, модификация совместима с более ранними версиями.
Еще в прошлом году нашел баг неверного составления SQL-запроса для поиска записей дубликатов, которые присутствуют в индексе.
Функция вызывается в контекстном меню по конкретному индексу.
Все бы хорошо, но в более ранних версиях, например в АХ4 она в принципе не работает.
Во-первых из-за того, что вызывается на клиенте.
Во-вторых, абсолютно неверно составляется запрос. Функцию невозможно было вызвать ни при каких условиях. Непонятно, как вообще она прошла в production.
В-третьих, хоть она и была исправлена в 2012, однако с некоторыми отключенными полями запрос все-равно формировался с ошибками.
В-четвертых, хотелось бы поменять порядок на более удобный - по убыванию количества дубликатов.
X++:

void showDuplicates()
{
    // > inserted by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    #define.DataAreaNo(2)
    // < inserted by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    tableId        tableId        = this.tableid();
    DictTable      dictTable      = new DictTable(tableId);
    boolean        dataPrCompany  = dictTable.dataPrCompany();
    Counter        numberOfFields  = this.numberOfFields();
    Counter        i;
    str            stmtStr;
    str            resultLineStr;
    str            resultField;
    str            resultField1;
    UserConnection  con            = new UserConnection();
    Statement      stmt            = con.createStatement();
    ResultSet      resultSet;
    boolean        anyDuplicates  = false;
    DictField      dField;
    str            tableNameWithSchema;
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    Map            fields          = new Map(Types::Integer, Types::String);
    MapEnumerator  enumerator;
    Counter        fieldsCount    = #DataAreaNo;
    str            fieldList;
    str            orderList;
    int            key;
    str            fieldName;
    // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    //container      fields;
    //int            enabledFields[];
    //Counter        enabledFieldCounter;
    //SqlStatementExecutePermission ssep;
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    ;
    if (dataPrCompany)
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    {
        fields.insert(fieldsCount, dictTable.fieldName(fieldnum(Common, DataAreaId), DbBackend::Sql));
        fieldsCount++;
    }
    // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    //    fields += dictTable.fieldName(fieldnum(Common,DataAreaId),DbBackend::Sql);
    //
    //enabledFieldCounter = 0;
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates

    for (i = 1; i <= numberOfFields; i++)
    {
        dField = new DictField(tableId, this.field(i));
        // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
        if (dField.isSql() && dfield.id() != fieldnum(Common, DataAreaId))
        {
            fields.insert(fieldsCount, dictTable.fieldName(this.field(i), DbBackend::Sql));
            fieldsCount++;
        }
        // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
        //if( dField.isSql() == false )
        //    continue;
        //++enabledFieldCounter;
        //enabledFields[enabledFieldCounter] = i;
        // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    }
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    stmtStr = 'select count(*), ';
    enumerator = fields.getEnumerator();
    while (enumerator.moveNext())
    {
        if (any2int(enumerator.currentKey()) != #DataAreaNo)
        {
            fieldList += ', ';
            orderList += ', ';
        }
        fieldList += any2str(enumerator.currentValue());
        orderList += int2str(any2int(enumerator.currentKey()));
    }

    stmtStr += fieldList;
    // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    //for (i = 1; i <= enabledFieldCounter; i++)
    //{
    //    fields += dictTable.fieldName(this.field(enabledFields[i]), DbBackend::Sql);
    //}
    //
    //stmtStr = 'select count(*)';
    //for (i = 1; i <= enabledFieldCounter; i++)
    //{
    //    stmtStr += ', ' + dictTable.fieldName(this.field(enabledFields[i]),DbBackend::Sql,0,FieldNameGenerationMode::FieldListGroupBy);
    //}
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates

    tableNameWithSchema = xSession::getDbSchema();
    if (tableNameWithSchema != '')
        tableNameWithSchema += '.'+ dictTable.name(DbBackend::Sql);
    else
        tableNameWithSchema = dictTable.name(DbBackend::Sql);

    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    stmtStr += strfmt(' from %1 group by %2', tableNameWithSchema, fieldList);
    // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    //stmtStr += ' from ' + tableNameWithSchema;
    //stmtStr += ' group by ';
    //for (i = 1; i <= enabledFieldCounter; i++)
    //{
    //    if (i > 1)
    //        stmtStr += ', ';
    //    stmtStr += dictTable.fieldName(this.field(enabledFields[i]),DbBackend::Sql,0,FieldNameGenerationMode::GroupByFieldList);
    //}
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates

    stmtStr += ' having count(*) > 1';
    if (numberOfFields > 0)
    {
        // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
        stmtStr += ' order by 1 desc, ';
        stmtStr += orderList;
        // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
        //stmtStr += ' order by ';
        //for (i = 1; i <= enabledFieldCounter; i++)
        //{
        //    if (i > 1)
        //        stmtStr += ', ';
        //    stmtStr += int2str(enabledFields[i]+1);
        //}
        // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
        stmtStr += ' desc';
    }

    // dangerous API mitigation
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    new SqlStatementExecutePermission(stmtStr).assert();
    // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
    //ssep =  new SqlStatementExecutePermission(stmtStr);
    //ssep.assert();
    // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates

    // BP Deviation Documented
    resultSet = stmt.executeQuery(stmtStr);

    while (resultSet.next())
    {
        resultLineStr = "@SYS283" + strfmt(': %1', resultSet.getString(1));
        // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
        enumerator.reset();
        while (enumerator.moveNext())
        {
            key        = any2int(enumerator.currentKey());
            fieldName  = any2str(enumerator.currentValue());
            resultField = strLRTrim(resultSet.getString(key));
            if (dataPrCompany && key == #DataAreaNo)
                resultField1 = resultField;
            else
                resultLineStr += strfmt(", %1: '%2'", fieldName, resultField);
        }
        // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
        //for (i = 1; i <= numberOfFields; i++)
        //{
        //    resultField = strltrim(resultSet.getString(enabledFields[i]+1));
        //    if (i == 1 && dataPrCompany)
        //        resultField1 = resultField;
        //    else
        //        resultLineStr += strfmt(', %1: \'%2\'', conpeek(fields, enabledFields[i]), resultField);
        //}
        // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates

        if (dataPrCompany)
            // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
            setprefix(strfmt("%1: %2", fieldstr(Common, DataAreaId), resultField1));
            // > modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates
            //setprefix(strfmt('%1: %2', conpeek(fields, 1), resultField1));
            // < modified by dech, 26.11.2018, PPO_CHG0031936_InventDimDuplicates

        info(resultLineStr);
        anyDuplicates = true;
    }
    if (!anyDuplicates)
        info("@SYS68671");

}


Изображения
 

waldo: C/AL Source Code Analysis with PowerShell

$
0
0
Источник: https://dynamicsuser.net/nav/b/waldo...ith-powershell
==============

Last Directions US and EMEA, I had the opportunity to talk about – uhm – myself. Well, not really – about my tools. It was a weird experience – but it got more attention than I ever expected.

Now, during that session, I showed a tool that I wanted to put out there for sooooo long: a way to analyze your C/AL Source Code with PowerShell.

This was actually an “let’s see what we can do and how far we can go”-challenge during our free time ;-), where the .Net part (which is the majority of the work) wasn’t done by me, although I was quite (let’s say “overly”) involved with the entire evolution of it ;-). The tool might not be completely new to you. I have been using it for quite some time to talk about some things within the product, like:

So as you can see – it’s basically about analyzing C/AL code.

Also at NAVTechDays, I spent a topic on it during my session with Vjeko. You can see it here:



The Tool

When we talk about the tool, we call it the “ModelToolsAPI“. It’s a PowerShell-module-dll that my partner in crime wrote, “on top of” the existing “Microsoft.Dynamics.Nav.Model.Tools.dll”, which is a library that serves the PowerShell Merge-CmdLets provided by Microsoft. It basically builds you an Object Model from your text files, which it needs to be able to merge in a smart way. For example, the tool knows all objects, or properties, what fields, relationships, … and a hell-of-a-lot more. And simply said: when you have an object model, you can work with it. When you only have a text-file, all you can do is search in text.

And I was wondering – what if we could do this in PowerShell? Because simply, I don’t know what I want to analyze today, and how I want the output to look like. Or better yet – what if I want to make the analysis part of my build, or commit, or pull request, or .. you know what I mean: part of my integration scenario! For analyzing code, PowerShell all of a sudden made all the sense in the world! At least for us ;-).

But we saw two problems with the out-of-the-box “Microsoft.Dynamics.Nav.Model.Tools”:

  • It sees code as just text – so it doesn’t really “understand” code. And with understand, I mean:
    • being able to trace fields, variables, procedures, keys, .. back to where they are used in code
    • Understand an “if” statement and any other statement for that matter
    • Being able to track complexity of a certain procedure
  • Its default object structure was quite complex.
So, my fellow nerd started to crunch a better, more understandable object model out of it, and started to write a code tokenizer (if I can call it like that) for C/AL code, basically mapping all words in code to something it understands.

As a result, we have a complete object model, understanding code, which we can query any way we like. Even more, because we’re using the default “Microsoft.Dynamics.Nav.Model.Tools”, we also have its modification- and export-functionality at our disposal (you hear me coming? ControlIDs? .. (but that’s for a later blogpost) :-)). And still even more, because (again) we are using default Microsoft libraries, with an update, we simply tap into the new version, and off we go :-).

Where can I find it?

I understand it’s not going to be easy to get started with a tool like this. But if you pick up the challenge, you won’t regret it! I tried to make it as approachable as at all possible:

Once you get used to it, it’s super-readable!

Now it’s up to you!

There are quite a number of scenarios where we apply this tool.

Just now, we are about to rewrite our product in AL. With this tool, we did a complete, in depth dependency analysis for figuring what apps we would end up with. It gave us an overview of problems with “circular dependencies”, and an easy way to document all changes we did for certain modules/apps. I’m definitely coming back to that exercise!

We also used this for figuring out and fixing controlid-errors – if you ever encountered them, you sure know what I’m talking about! ;-).

And much much more – basically, it’s a bit up to you to get familiar with it (if you at least want it to be), and apply it on whatever you want to apply it.

Expect more scripts and blogs about this in the future, but please do know you can contribute as well (just fork and make a pullrequest), … .

Enjoy!




Источник: https://dynamicsuser.net/nav/b/waldo...ith-powershell
Viewing all 14636 articles
Browse latest View live