AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 18.01.2016, 16:05   #1  
Morpheus ist offline
Morpheus
Участник
Benutzerbild von Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Registriert seit: 30.03.2005
Ort: Київ-København-Düsseldorf
AX 2012 R2 CU7 CrossCompany запросы к SpecTrans (SaveDataPerCompany = No) в стандартном коде
В классе SpecTransManager (используется при сопоставлениях/реверсировании сопоставлений транзакций клиентов/поставщиков) встречаются запросы вида
X++:
while select crossCompany specTrans
              where specTrans.SpecCompany == _specCompany &&
            specTrans.SpecTableId == _specTableId &&
            specTrans.SpecRecId == _specRecId
Таблица SpecTrans не хранит данные в разрее компаний, т.к. для свойства SaveDataPerCompany установлено значение No.

В случае выполнения такого запроса пользователем с ограниченными правами, запрос не возвращает записей. Удаление ключевого слова crossCompany из запроса решает проблему.

Поделитесь идеями, в чем может быть причина?
Alt 18.01.2016, 16:12   #2  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
тоже напоролся на подобное.
в итоге, пока работаю с таблицей specTrans только через класс SpecTransManager и его друзей (типа CustVendOpenTransManager)

это не очень хорошо с точки зрения производительности. но зато надежно.

мне тоже интересно, "в чем может быть причина"
This post has been rated by: gl00mie (1).
Alt 18.01.2016, 17:03   #3  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4.004 / 3299 (118) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Возможно, использование crosscompany приводило к принудительной проверке прав ядром и делалось это как-то криво.

А если обрамить этот запрос
X++:
unchecked( Uncheck::TableSecurityPermission )
{
}
то помогает ?
This post has been rated by: Morpheus (3).
Alt 18.01.2016, 17:33   #4  
Ivanhoe ist offline
Ivanhoe
Участник
Benutzerbild von Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4.143 / 2161 (81) +++++++++
Registriert seit: 29.09.2005
Ort: Санкт-Петербург
В 2009 вроде были добавлены опционально включаемые платежи кросс-компани для единого казначейства, возможно, ноги оттуда растут?
__________________
Ivanhoe as is..
Alt 18.01.2016, 18:50   #5  
Morpheus ist offline
Morpheus
Участник
Benutzerbild von Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Registriert seit: 30.03.2005
Ort: Київ-København-Düsseldorf
Zitat:
Zitat von Logger Beitrag anzeigen
Возможно, использование crosscompany приводило к принудительной проверке прав ядром и делалось это как-то криво.

А если обрамить этот запрос
X++:
unchecked( Uncheck::TableSecurityPermission )
{
}
то помогает ?
Помогло! Мне теперь вручную весь стандартный код патчить?

Попробую права явно на таблицу выдать.
Alt 18.01.2016, 19:04   #6  
Morpheus ist offline
Morpheus
Участник
Benutzerbild von Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Registriert seit: 30.03.2005
Ort: Київ-København-Düsseldorf
Zitat:
Zitat von Morpheus Beitrag anzeigen
Попробую права явно на таблицу выдать.
Помогло! Необходимо дать пользователю права на таблицу SpecTrans, чтобы crossCompany запросы, включающие SpecTrans, правильно работали.
This post has been rated by: mazzy (2).
Alt 18.01.2016, 21:21   #7  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4.004 / 3299 (118) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Я бы лучше пропатчил код.
Это проще.
Сделал один раз и забыл.
А права надо постоянно в актуальном состоянии поддерживать. Чуть забыл - и вылезли старые глюки.
Ненадежно.

Да и нафига на эту таблицу права ? Все равно пользователь непосредственно в нее сам не пишет, а пишет в нее код, который дергается по кнопка и по едит методу. Значит это явно бага в коде, которую вы просто пропатчите и все.
Alt 19.01.2016, 08:38   #8  
KiselevSA ist offline
KiselevSA
Злыдни
Benutzerbild von KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Registriert seit: 25.01.2002
Ort: Москва
В 2012 в таблицу SpecTrans (возможно и ранее) добавили поле RefCompany и создали группу таблиц CentralizedPayments, в которую входит SpecTrans. По задумке, если компании входят в холдинг, это позволяет привязать платежи к встречным операциям разных компаний, разрешая учитывать оплаты по "центральной" бухгалтерии в дочерних структурах. Т.е. в 2012, как я понял, надо создать виртуальную компанию для всех дочерних и добавить туда группу таблиц.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Alt 19.01.2016, 09:49   #9  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4.004 / 3299 (118) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Мне кажется то что вы говорите верно для 2009-й аксапты.
А для 2012-й это особого смыла не имеет, так как табличка уже не хранится в разрезе компаний.

Geändert von Logger (19.01.2016 um 10:12 Uhr) Grund: исправил опечатки
This post has been rated by: mazzy (2).
Alt 19.01.2016, 10:48   #10  
KiselevSA ist offline
KiselevSA
Злыдни
Benutzerbild von KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Registriert seit: 25.01.2002
Ort: Москва
Zitat:
Zitat von Logger Beitrag anzeigen
Мне кажется то что вы говорите верно для 2009-й аксапты.
А для 2012-й это особого смыла не имеет, так как табличка уже не хранится в разрезе компаний.
Бизнес-сценарий:
1. Клиент приобретает товар в двух филиалах компании (отдельный счет в каждой).
2. Реквизиты для оплаты у каждого филиала указаны одинаковыми и относятся к головному филиалу.
3. Клиент, чтобы уменьшить расходы по банковскому переводу, формирует платежное с указанием двух заказов.
4. Головной филиал проводит приходный платеж по выписке (если бы заказ был один, можно было бы конкретную компанию указать в журнале платежей).
5. Финансовые специалисты в каждом из филиалов запускают сопоставление открытых операций и должны видеть сумму к сопоставлению (если не делать общую компанию, то они не смогут выбрать оплату).

(специалисты клиента очень часто говорят, что оплата относится только к заказам одной компании, но при прямом вопросе, может ли быть оплата за заказы одного клиента/поставщика по разным филиалам, отвечают: "Редко, но бывает")
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Alt 19.01.2016, 11:00   #11  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4.004 / 3299 (118) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Не совсем понял к чему вы это написали.
Я не говорю, что интеркомпани сопоставление не нужно.
Я про технику написал. Как это реализовано в разных версиях. Для specTrans в 2012-й - нет нужды запихивать в виртуальную компанию. Хотя возможно остальные таблички из указанной вами коллекции нужно.
Alt 19.01.2016, 11:25   #12  
Ivanhoe ist offline
Ivanhoe
Участник
Benutzerbild von Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4.143 / 2161 (81) +++++++++
Registriert seit: 29.09.2005
Ort: Санкт-Петербург
А в стандартных ролях прав на spectrans нет? Просто это не единственное место в 2012 которое будет некорректно работать при неполных правах.
__________________
Ivanhoe as is..
Alt 19.01.2016, 11:40   #13  
KiselevSA ist offline
KiselevSA
Злыдни
Benutzerbild von KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Registriert seit: 25.01.2002
Ort: Москва
Zitat:
Zitat von Logger Beitrag anzeigen
Для specTrans в 2012-й - нет нужды запихивать в виртуальную компанию.
Я в изысках кода, конечно, мало понимаю, но в форме сопоставления открытых проводок идет вызов класса SpecTransManager, в котором устанавливается фильтр по компании "сопоставления". Может я и ошибаюсь, но, мне кажется, объединение головной и дочерних компаний в одну виртуальную с указанной группой таблиц позволит видеть консолидированные данные при сопоставлениях.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
emeadaxsupport: Form created in e.g. AX 2012 RTM or AX 2012 R2 with ManagedHost control on its design fails to open on AX 2012 R3 Blog bot DAX Blogs 0 21.09.2015 19:11
emeadaxsupport: AX Performance Troubleshooting Checklist Part 1B [Application and AOS Configuration] Blog bot DAX Blogs 0 05.09.2014 21:11
emeadaxsupport: AX Content: Document management for Microsoft Dynamics AX 2012 R2 Blog bot DAX Blogs 0 31.03.2014 20:14
DAX: How to gain additional value from the Microsoft application platform with Microsoft Dynamics AX 2012 R2 Blog bot DAX Blogs 3 21.06.2013 15:16
dynamicsaxbi: Better together: Microsoft Dynamics AX 2012 R2 and SQL Server Power View Blog bot DAX Blogs 0 12.12.2012 13:11

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 02:33 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.