![]() |
#4 |
Участник
|
Спасибо большое, Владимир.
Используется именно сокращенная форма, без with. Никогда раньше с этим проблем не замечал, и не отказывалось работать. Посмотрел хранимую процедуру внимательно - ничего там дополнительно не вызывается и модификаций нет. На всякий случай вот ее код: X++: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- exec [dbo].[ExtraFieldsForAxapta] /* exec [dbo].[ExtraFieldsForAxapta] @Division = 'SS', @Store = 'P16_', @Supplier = 'RCAuto_', @SubSupplier = '07КАУ00000_ряд01-02__', @OrderDate = '30.10.2013', @DeliveryDate = NULL, --'25.10.2013', @ItemID = NULL */ ALTER PROCEDURE [dbo].[ExtraFieldsForAxapta] -- exec [dbo].[ExtraFieldsForAxapta] ( @Division varchar(2) = NULL, @Store varchar(4) = NULL, @Supplier varchar(7) = NULL, @SubSupplier varchar(21) = NULL, @OrderDate datetime = NULL, @DeliveryDate datetime = NULL, @ItemID varchar(6) = NULL ) AS BEGIN SET NOCOUNT ON ; SET ANSI_WARNINGS OFF ; select sup.SSTOID, sup.SUBSSTOID, sup.NAME as SupplierDescription, it.DIV_ID, it.SITE_ID, it.ITEM_ID, it.SKU_NAME, o.STATE, CASE WHEN o.STATE in ('PROPOSED','ISSUED') THEN 1 WHEN o.STATE in ('MANUAL_PROPOSED','MANUAL_ISSUED') THEN 0 ELSE 0 END as Autoorder, STOCK = ISNULL(it.STOCK, 0), it.STOCKDATE, EffPresStock = ISNULL(it.USEDPRESENTATIONSTOCK,0), it.DYNAMICPRESENTATIONSTOCK, it.PREDEFINEDPRESENTATIONSTOCK, it.AVERAGESALES, it.CLASSMEAN, it.CLASSMEAN / 7.0 as ClassMean_perDay, o.OPENORDERSQTY, o.EFFSTOCK, DATEDIFF(day, o.PLAN_ORD_DATE, d.AVAIL_DATE) as DaysOfCoverage_for_Ax, DATEDIFF(day, o.PLAN_ORD_DATE, o.NEXT_AVAIL_DATE) as DaysOfCoverage_for_Ax2, d.ACCUMDEMAND, d.SAFETYAMOUNT, o.PLAN_ORD_DATE, o.PLAN_DELIV_DATE, o.PLAN_AVAIL_DATE, SafetyStock_in_days = ISNULL(d.SAFETYAMOUNT,0) / CASE WHEN (it.CLASSMEAN / 7.0) = 0 THEN 1 ELSE (it.CLASSMEAN / 7.0) END, l.LASTUSER, it.CLASS_INDEX, CASE it.CLASS_INDEX WHEN 0 THEN 'USS1' WHEN 1 THEN 'USS2' WHEN 2 THEN 'SS1' WHEN 3 THEN 'SS2' WHEN 4 THEN 'FS1' WHEN 5 THEN 'FS2' ELSE '' END as CLASS_INDEX_DESC from dbo.ORDERS o (nolock) inner join SUPPLIER sup (nolock) ON sup.SUPPLIER_ID = o.SUPPLIER inner join SKU it (nolock) ON it.SKU_ID = o.SKU_ID left join DEMAND d (nolock) ON d.SKU_ID = o.SKU_ID and d.IDX = 1 inner join ORDER_TO_LIST ol (nolock) ON ol.ORDER_ID = o.ORDER_ID inner join ORDERLST l (nolock) ON l.ORDLIST_ID = ol.LIST_ID where o.STATE != 'CONFIRMED' and (@Supplier is NULL or sup.SSTOID = @Supplier) and (@SubSupplier is NULL or sup.SUBSSTOID = @SubSupplier) and (@Division is NULL or it.DIV_ID = @Division) and (@Store is NULL or it.SITE_ID = @Store) and (@ItemID is NULL or it.ITEM_ID = @ItemID) and (@OrderDate is NULL or o.PLAN_ORD_DATE = @OrderDate) and (@DeliveryDate is NULL or o.PLAN_DELIV_DATE = @DeliveryDate) ORDER BY it.DIV_ID, it.SITE_ID, sup.SSTOID, sup.SUBSSTOID, it.ITEM_ID, o.STATE END Попробую обернуть в try catch внутри ХП, и использовать полное написание with (nolock)
__________________
Ax 3.0 SP5 FP2 kr2 |
|
Теги |
deadlock, odbc |
|
![]() |
||||
Тема | Ответов | |||
dynamicsaxtraining: What is Lock, Deadlock in Dynamics AX | 0 | |||
aEremenko: Пакетная обработка в AX 2009 | 4 | |||
Суммарная обработка накладной | 1 | |||
Пример DeadLock | 0 | |||
DeadLock | 0 |
|