Подскажите как настроить Terrasoft CRM 3.x для синхронизации контактов с Microsoft Outlook 2007/2010

из террасофта в оутлук сейчас перекидывает, а при попытке перекинуть из оутлука в террасофт, террасофт падает в ошибку.

Общая информация
..........
Исполняемый файл: C:\Program Files\Terrasoft\Bin\TSClient.exe
Версия: 3.3.2.222
Класс исключения: EOleException
Сообщение об ошибке: "undefined" -  есть null или не является объектом

Стек вызова
TSDataset.TTSDataset.RaiseDatasetError (Line 2001, "TSDataset.pas") ()
TSDataset.TTSDataset.DoDatasetError (Line 1452, "TSDataset.pas") ()
TSDataset.TTSDataset.Post (Line 2433, "TSDataset.pas") ()
TSAutomationObject.TAutomationObject.Invoke (Line 316, "TSAutomationObject.pas") ()
TSScript.TScript.ExecuteMethod (Line 1045, "TSScript.pas") ()
TSScriptableService.TScriptableService.ExecuteScriptMethod (Line 466, "..\..\ObjectLibraries\TSObjectLibrary\TSScriptableService.pas") ()
TSWindow.TWindow.ExecuteScriptMethod (Line 2279, "..\..\ObjectLibraries\TSWindowLibrary\TSWindow.pas") ()
TSObjectEventsDispatcher.TObjectEventsDispatcher.AttemptToExecuteScriptMethod (Line 355, "TSObjectEventsDispatcher.pas") ()
TSObjectEventsDispatcher.TObjectEventsDispatcher.Invoke (Line 671, "TSObjectEventsDispatcher.pas") ()
TSConnectionPoints.TConnectionPointDispatcher.Invoke (Line 592, "TSConnectionPoints.pas") ()
Comobj.DispatchInvokeError ()
Comobj.DispatchInvokeError ()
TSWindowControl.TWindowControl.DoClick (Line 379, "..\..\ObjectLibraries\TSWindowLibrary\TSWindowControl.pas") ()
TSButton.TButton.DoClick (Line 197, "..\..\ObjectLibraries\TSWindowLibrary\TSButton.pas") ()
TSDskWindowLibraryCommon.THookControl.OnClickProc (Line 476, "TSDskWindowLibraryCommon.pas") ()
Controls.TControl.DoMouseUp ()
Controls.TWinControl.WndProc ()
Controls.TWinControl.MainWndProc ()
Classes.TDataModule.WriteHeight ()
TntControls.TWinControlTrap.Win32Proc (Line 557, "..\TNT\TntControls.pas") ()
Classes.TDataModule.WriteHeight ()
Forms.TApplication.ProcessMessage ()
TSClient.TSClient (Line 142, "d:\Projects\TerrasoftCRM30\TerrasoftCRM\Src\Desktop\TSCRM\TSClient.dpr") ()

Активные элементы управления
wnd_MSOutlookProgressSynchronization (TInternalWindow)

Нравится

1 комментарий

Данное сообщение - undefined" - есть null, означает, что одно из ключевых полей, на основе которого создается запись в таблице, заполняется пустым значением. Соответсвенно система не может создать запись в Terrasoft.
Проанализируйте контакты MS Outlook - обязательно должны быть заполнены ФИО контакта и e-mail

Показать все комментарии

Мы часто делаем е-мейл рассылку нашим клиентам. Но все больше писем возвращаются от Mail Delivery System (или Subsystem), в которых пишется, что такого ящика не существует (в том или ином виде). Подскажите, как можно выделить такие письма, чтобы в дальнейшем выделить не работающие е-мейл адреса из них? Можно ли как-то, используя COM, проверять входящие письма и, например, искать с помощью регулярных выражений текст, который свидетельствует о том, что этот ящик не рабочий?
Может кто-то сталкивался с такой задачей и решал ее.

Нравится

3 комментария

Признак неправильного адресата указывается в заголовке сообщения. Вот пример
...
X-Failed-Recipients: abcdСОБАКАmail.ru
...

Вопрос в том, как это анализировать стандартными средствами..
Надо смотреть в сторону метода GetSMTPHeader интерфейса IMessage.

ЗЫ
Знак "собака" тут нормально не ставится, переносится на новую строку, а должно быть одной строкой

У нас почтовый сервер начинает отдавать такие ответы и если отправитель попал в черные списки (подозрение на спам). Может быть вы излишне активно использовали рассылки и какой нибудь клиент с ящиком на mail.ru или подобных сервисах пожаловался на вас как на спамеров?

"Евгений Либин" написал:Признак неправильного адресата указывается в заголовке сообщения. Вот пример
...
X-Failed-Recipients: abcdСОБАКАmail.ru
...

Да, Евгений, в секции "Заголовки Интернета" пишет такую строчку. Спасибо за помощь :)

Показать все комментарии

Вопрос, возможно, покажется глупым. Но, заметил проблему с рассылкой в Terrasoft. Если создать запрос, шаблон сообщений, указать контакты получателя. Потом этот шаблон подключить в рассылку - она не происходит (проверял на 5 конфигурациях у разных клиентов) - вылетает ошибка.

А вот если в скрипте scr_MailUtils прописать try - catch, вот здесь:

for (var Key in Recipients) {
                Recipient = Recipients[Key];
                switch (Recipient.Type) {
                        case rtTo:
                                try {
                                        MailParams.Address.push(Recipient.Address);
                                } catch (e) { }
                                break;
                        case rtCopy:
                                try {
                                        MailParams.CopyAddress.push(Recipient.Address);
                                } catch (e) { }
                                break;
                        case rtBlindCopy:
                                try {
                                        MailParams.BlindCopyAddress.push(Recipient.Address);
                                } catch (e) { }
                                break;
                }

Ошибка исчезает и рассылка начинает работать нормально. С чем это связанно? Кто-то еще сталкивался с подобной проблемой?

Нравится

5 комментариев

Скорее всего передается пустой адрес.
Можно в catch добавить Connector.Log.Write(2,e.message);
И тогда станет понятно в чем проблема

ЗЫ.
Интересно узнать результат.

Виталий, а какую таблицу использовали в запросе для макросов?
Необходимо, чтобы в запросе для макросов шаблона сообщения была главная таблица "Средство связи контакта\Контрагента" (tbl_ContactInMassMail или tbl_AccountInMassMail). Иначе сообщения отправлены не будут.

tbl_ContactInMassMail или tbl_AccountInMassMail - вот их и использую

Мммм...было бы не плохо посмотреть на сам запрос для рассылки и как Вы получаете адрес получателя.
Во вложении пример - на всех базах (на которых лично пробовала выполнять рассылку) работает корректно.

Здравствуйте Виталий,
Прошу вас уточнить следующие вопросы:
1)На каких версиях бинарных файлов эта ошибка воспроизводиться
2)Название, версия, локализация, СУБД продукта (Например “Terrasoft XRM+SD”, 3.3.1.15, Rus, MSSQL)
3)Вносились ли какие-то изменения в модули работы с почтой

Вышлите пожалуйста сервисы скриптов: scr_MailUtils, scr_OutlookUtils, scr_MSOutlookLibrary,, wnd_MassMailGridAreaScript

Показать все комментарии

При отправке письма выпал лог:

(E) Возникла ошибка обработки события приложения Microsoft Office: . DispID: 61441
(E) Неопознанная ошибка

С чем бы это могло быть связано?

Нравится

6 комментариев

Версия 3.3.1.х? у нас уже там каких только ошибок не повылетало, такой пока не было...

ООО "Лайнсервис"
www.ls-crm.ru

Неа. 3.3.0

И при получении выпадает тот же лог

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

ООО "Лайнсервис"
www.ls-crm.ru

Здравствуйте!
Насколько мне известно, подобная проблема возникает, когда зарегистрированы одни бинарные файлы, а работа проводится под другими. Возможно, подобная ситуация уместна в Вашем случае.
Во избежание появления этой проблемы вдальнейшем рекомендую выполнить следующее:
1. Попробуйте сперва в TSMSOfficeLibraryConfigurator сначала снять опцию MS Outlook, сохранить изменения, а потом поставить.
2. Попробуйте перерегистрировать следующие библиотеки:
TSOutlookLibrary.dll
TSMSOfficeLibrary.dll
OutlookSecurity.dll
3. Проверить в MS Outlook следующие настройки:
- в меню "Сервис" -> "Центр управления безопасностью" проверьте наличие надстройки "Terrasoft Add-In" и "Outlook Advanced Security". Вы можете их удалить и пересоздать заново.
- для управления надстройками нажмите на кнопку "Перейти". Убедитесь, что путь к библиотекам актуален. В противном случае пересоздайте его.
- убедитесь в разрешении действий, используемых данным компонентом. Для этого перейдите в меню "Сервис" -> "Advanced Security" -> "Action List". Убедитесь, что данные действия постоянно разрешены (Allow Access).
- в меню "Центр управления безопасностью" -> "Надстройки" необходимо активировать опцию "Применить параметры безопасности макросов к установленным надстройкам".

Олег, могу подсказать где покопаться дебаггером для выяснения деталей ошибки - scr_MSOutlookLibrary, там как раз ближе к концу EventInvokeError'ы обрабатываются, Ваш с кодом 0x0000f001 тоже там))

ООО "Лайнсервис"
www.ls-crm.ru

Показать все комментарии

При отправке из Terrasoft письма, к примеру ответственному по задаче, запрашивается разрешение на доступ к Outlook-у. Если пользователь случайно либо по незнанию отвечает отказом, то в дальнейшем письма из Terrasoft не отправляются. Возможно ли как-то, в дальнейшем, открыть доступ к Outlook?

Нравится

3 комментария

Попробуйте открыть в MS Outlook меню Сервис - Advanced Security - Action List и для процесса TSCRM.exe указать Allow Access.

А если в Action List-e нет данного процесса?

"Кулак Олег" написал:А если в Action List-e нет данного процесса?

Посмотрите MS Outlook меню Справка - О программе Microsoft Office Outlook - Откл. объекты...

Terrasoft Support Team

Показать все комментарии

Добрый день!

Сегодня потратил значительное время на решение одной досадной проблемы, связанной с отправкой писем по шаблонам.

От пользователей стали поступать жалобы на то, что письма, отправляемые по шаблонам зависают в папке "Исходящие" и дальше не идут.

В ходе разбирательства выяснилось, что проблема возникает только у пользователей MS Outlook 2007, и вызвана она тем, что шаблон был создан на основании входящего письма. Outlook 2007 определял, что это письмо входящее и отправлять его отказывался.

Для устранения ошибки пришлось создать все проблемные шаблоны заново, а старые удалить.

Если по каким-либо причинам необходимо именно обновить шаблон, а не создать новый (такое может понадобиться если на шаблон ссылаются какие-то записи, либо шаблони используется в скриптах или бизнес-процессах), то придется немного повозиться. Необходимо создать промежуточный шаблон (назовем его, например, "Промежуточный шаблон"), поместить в него нужный текст (можно взять прямо из неправильного шаблона). Затем выполнить такой запрос:

UPDATE Incorrect
SET Incorrect.Template = Correct.Template
FROM
  tbl_MailTemplate Incorrect,
  tbl_MailTemplate Correct
WHERE
  Incorrect.Name = 'Название шаблона, созданного по входящему письму'
  AND Correct.Name = 'Промежуточный шаблон'

Запрос написан для СУБД MS SQL 2000, но портировать его для других, думаю, будет не сложно.

После этого промежуточный шаблон можно удалить.

За помощь в решении проблемы спасибо Андрею Кихтенко.

Нравится

Поделиться

0 комментариев
Показать все комментарии