14.07.2015, 11:48 | #1 |
Участник
|
Отслеживание письма (цепочки писем) из Outlook в AX2009
Добрый день, появилась задача сделать в Oulook кнопку "Отслеживать в AX". По аналогии с такой кнопкой в CRM, насколько я понял при интеграции CRM и Outlook, в последнем добавляется панель с некоторыми кнопками.
Т.к. поддерживать и CRM и AX никто не собирается, переносим все в АХ, но ОЧЕНЬ! надо именно такую функциональность оставить. Как это проще сделать? Я понимаю что в AX в модуле crm можно сохранять вложения, перетаскивая мышью письма, но этот вариант не устраивает, тем более он не отслеживает цепочку. Помогите советом? Может какой-то код в Outlook на VBA написать, чтобы он лазил в AX и сам сохранял выделенное письмо в таблицу в АХ? |
|
20.07.2015, 13:39 | #2 |
Участник
|
Не стал создавать отдельную ветку. По поиску что-то ничего не нашел. Подскажите можно ли в селекте использовать длинные строчные переменные?
Например вот такой отрабатывает: X++: smmEMailEntryID strEntryID = "0000000062E18E9FA921D0408B5791D1FCE3223C07004924E51A43442E4CBCDBA659F31DA01300000061AC4900004924E51A43442E4CBCDBA659F31DA0130000216860A90000"; docuRef docuRef; ; select docuRef where docuRef.smmEMailEntryID == strEntryID; X++: smmEMailEntryID strEntryID = "0000000062E18E9FA921D0408B5791D1FCE3223C07004924E51A43442E4CBCDBA659F31DA01300000061AC4900004924E51A43442E4CBCDBA659F31DA0130000216860A90000"; docuRef docuRef; smmBusRelTable smmBusRelTable; ; select firstonly smmBusRelTable exists join docuRef where smmBusRelTable.RecId == docuRef.RefRecId && smmBusRelTable.TableId == docuRef.RefTableId && smmBusRelTable.dataAreaId == docuRef.RefCompanyId && docuRef.smmEMailEntryID == strEntryID; Последний раз редактировалось Craz; 20.07.2015 в 13:42. |
|
20.07.2015, 17:10 | #3 |
Участник
|
Если убрать "exists" - тоже не работает?
|
|
20.07.2015, 22:44 | #4 |
Участник
|
Цитата:
Сообщение от Craz
вот такой уже нет, даже ошибки не дает просто прерывается и дальше не выполняется.
X++: select firstonly smmBusRelTable exists join docuRef where smmBusRelTable.RecId == docuRef.RefRecId && smmBusRelTable.TableId == docuRef.RefTableId && smmBusRelTable.dataAreaId == docuRef.RefCompanyId && docuRef.smmEMailEntryID == strEntryID; |
|
23.07.2015, 11:01 | #5 |
Участник
|
Цитата:
"Трассировка стека: Длина указанной строки строкового литерала превышает максимальный предел." Тоже не работает :-( |
|
23.07.2015, 12:09 | #6 |
Участник
|
Действительно какая-то засада с длиной литерала, причем именно в 2009-й, потому что в 2012-й такой код успешно отрабатывает. У меня получилось обойти ошибку за счет хинта forceplaceholders:
X++: select firstonly forceplaceholders crosscompany smmBusRelTable exists join docuRef where smmBusRelTable.RecId == docuRef.RefRecId && smmBusRelTable.TableId == docuRef.RefTableId && smmBusRelTable.dataAreaId == docuRef.RefCompanyId && docuRef.smmEMailEntryID == strEntryID; |
|
|
За это сообщение автора поблагодарили: Prof (1), Logger (5), Craz (1). |
13.09.2021, 19:29 | #7 |
Участник
|
Цитата:
Открыли форму без X++: void init() { super(); XXXds.Query().literals(1); } Поле редактируется. Последний раз редактировалось Logger; 13.09.2021 в 19:40. |
|
27.04.2022, 20:24 | #8 |
Участник
|
Вот тут пишут о той же проблеме
https://stackoverflow.com/questions/...eeds-max-limit Подтверждаю ограничение в 128 символов. Очень странно. Можно как-нибудь это обойти ? Получается, что нельзя на формах использовать литералы. А очень нужно. |
|
|
|