Показать сообщение отдельно
Старый 07.10.2014, 17:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
emeadaxsupport: AXRETAIL: How to control the Action flow
Источник: http://blogs.msdn.com/b/axsupport/ar...tion-flow.aspx
==============

Applies to AX 2012 R2

Description:

The purpose of this article is to provide an example, how to control the data flow concerning (preaction/action).

Retailers might have to add new catalogs, Changing prices and barcodes during opening hours. If the number of changes are huge, the processing time increases and

the locking behaviour on the store database is affected.





1. Change the code, so processed always is 2 when the data is changed/added by table methods

\Classes\RetailConnActionManagement\insertAction

preactionTable.action = _type;
preactionTable.preactionDate = systemdateget();
preactionTable.preactionTime = timenow();
preactionTable.linkDown = _linkDown;
preactionTable.userId = curuserid();
preactionTable.processed = 2;


//Default: PreactionTable.processed = NoYES::No;

2. Change the default value of Processed to 2, then data inserted from a Insert_recordset will also get the value 2 in the processed field.

Code path example

Class/RetailAssortmentSchedulerTask/deltaSync

method line 106

insert_recordset preactions (action, linkDown, locationFilter, preactionDate, preactionTime, RefRecId, RefTableId)
select
action, linkDown,
filter, preactionDate,
preactionTime, RecId, assortmentTableId
from explodedInner
where
explodedInner.createdTransactionId == currentTransId &&
explodedInner.OMOperatingUnitId == omOperatingUnitRefRecId &&
explodedInner.AssortmentRecId == assortmentRefRecId;







3. Import the two SQL agent jobs attached. (the owner id is contoso\Administrator must be changed)

The two jobs are releasing the data in two steps

  • Release Preactions non A 1040 tables
- All preactions that are not in a table list will be released every minute.



  • Release Preactions A 1040 tables
- All preactions will be released in batch of 10000 every 15 minutes



4. The create action can utilize batch worker threads

If the Create actions periodic job is run in batch processing mode, it will use the Microsoft Dynamics AX batch processing framework to scale out processing by using multi-threaded logic. For this to work, you need to update the Retail Scheduler Number of documents in the batch task parameter to a larger number. For example, the number must be in the thousands instead of 0 (zero).

Hotfix needed

Create Actions job performs daily cleanup during every batch task which slows the job down considerably

KB Article Number (s) : 2995408









5. Add the CREATE ACTIONS to batch every 5-15 minutes





6. It is possible to control the A job flow when sending the data out of AX.

In the case a table has very high number of changes, it can cause locking issue on the store database.

By setting the number of Action Counter Interval, it will look only take the specified number of lines in the RetailConnActionTable





Responsible class:

\Classes\RetailConnReplicationAJob\processActions



// There is no logging for this method as this is executed in a very tight loop. It affects the run time.

[sourceCounter, upperCounter] = this.replicationCounter(_fromTableId, _schedulerSubjobTable.ActionCounterInterval);

if (sourceCounter >= upperCounter)

{

return 0;

}



currentDeletedRecordCount = 0;

currentReadRecordCount = 0;







Author: Kim Truelsen

Date...: 7/10-2014






Источник: http://blogs.msdn.com/b/axsupport/ar...tion-flow.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.