AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2016, 09:35   #4  
abark is offline
abark
Участник
 
14 / 10 (1) +
Регистрация: 26.06.2013
Адрес: Волгоград
Спасибо большое, Владимир.
Используется именно сокращенная форма, без 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 Blog bot DAX Blogs 0 02.06.2015 13:11
aEremenko: Пакетная обработка в AX 2009 Blog bot DAX Blogs 4 28.09.2010 15:36
Суммарная обработка накладной AlexUnik DAX: Функционал 1 19.08.2004 15:51
Пример DeadLock Maxim Gorbunov DAX: База знаний и проекты 0 06.12.2001 20:00
DeadLock Maxim Gorbunov DAX: База знаний и проекты 0 03.12.2001 20:16

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:38.