Показать сообщение отдельно
Старый 24.08.2018, 14:47   #1  
actNaturally is offline
actNaturally
Участник
Аватар для actNaturally
 
19 / 10 (1) +
Регистрация: 28.10.2014
? DAX 2012: Акапта автоматически добавляет условия в SELECT
Доброго дня!

Прошу поделиться опытом, кто сталкивался с функционалом разработки/настройки, который может вызывать такое поведение.

Одно и то же приложение на 2-х АОСах.
На одном из АОСов было замечено, что селект из InventLocation перестал возвращать значения.

Делаем тестовый джоб:

X++:
InventLocation              inventLocation;
;
select count(RecId) from inventLocation;
info(strFmt("%1", inventLocation.RecId));
выдаёт "0" на первом сервере, выдаёт "980" на втором сервере. На SQL значения есть, тот же запрос напрямую в SQL выдаёт 980.

Причина стала ясна после проверки через trace parser
С правильного АОСа уходит запрос:
X++:
SELECT COUNT(T1.RECID) 
FROM INVENTLOCATION T1 
WHERE ((PARTITION=5117145432) 
	AND (DATAAREAID=N'tmpCmp'))
Со второго тот же самый джоб генерирует запрос:
X++:
SELECT COUNT(T1.RECID) 
FROM INVENTLOCATION T1 
WHERE ((T1.PARTITION=5117145432) 
	AND (T1.DATAAREAID=N'tmpCmp')) 
	AND 
EXISTS (
SELECT 'RetailStore' 
FROM RETAILCHANNELTABLE T2 CROSS 
JOIN RETAILSTOREADDRESSBOOK T3 CROSS 
JOIN DIRADDRESSBOOKPARTY T4 CROSS 
JOIN DIRPERSONUSER T5 
WHERE (((T2.PARTITION=5117145432) 
	AND (T1.INVENTLOCATIONID=T2.INVENTLOCATION)) 
	AND (T2.INSTANCERELATIONTYPE IN (101893) )) 
	AND ((T3.PARTITION=5117145432) 
	AND (T2.RECID=T3.STORERECID)) 
	AND ((T4.PARTITION=5117145432) 
	AND (T3.ADDRESSBOOK=T4.ADDRESSBOOK)) 
	AND (((T5.PARTITION=5117145432) 
	AND ((T5.VALIDFROM<=?) 
	AND (T5.VALIDTO>=?))) 
	AND ((T5.USER_=?) 
	AND (T4.PARTY=T5.PERSONPARTY))))
Есть ещё несколько таблиц, которые стали себя вести так же, все они связаны с RetailStoreTable через ряд таблиц. Запрос к RetailStoreTable тоже ничего не возвращает, т.к. усложняется конструкцией с "Exists".

При этом после рестарта AOSа Аксапта какое-то время показывает значения всех этих таблиц на формах (и селекты через парсер мы видим корректные). После каких действий запросы снова портятся отловить не удаётся.

XDS не перенастраивали.
Что может добавлять такой хвост?

#HELPHELPHELP