Выгрузка лотусовых данных в sugarCrm

Тема в разделе "Lotus - Программирование", создана пользователем Mikle_GB, 7 июл 2016.

Метки:
  1. Mikle_GB

    Mikle_GB Member

    Регистрация:
    7 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Друзья, если кто-нибудь занимался сабжем, прошу откликнуться!
    Требуется организовать периодическую выгрузку в шугар, вариантов что-то дописать в шугаре нет. Как я понимаю, единственный рабочий вариант - доступ через web api http://sugartalk.ru/web-services-api.html поправьте если ошибаюсь.
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    свяжитесь с саппортом на предмет REST API описания
    далее берем java и шлем/получаем что нам нужно
     
  3. Mikle_GB

    Mikle_GB Member

    Регистрация:
    7 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Спасибо, тёзка, я знал, что ты скажешь JAVA:) а другие варианты связи с шугаром реальны?
    Ещё поясни плз, зачем саппорт - ведь api известно (http://sugartalk.ru/web-services-api.html)?
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    не совсем понял про другие варианты...
    давай по-порядку:
    • эта ЦРМ писана на пыхе и экзампелы (по ссылке) для него же. Разгребать пыховый код, вычленяя из него JSON - не самое благодарное занятие
    • если у саппорта есть примеры JSON для работы (а они должны быть) - то адаптировать их будет легче
    • java прекрасно (эффективнее всего остального) справляется с общими задачами (не специфичными) и это подтверждает её подавляющая распространенность (как бы это кому не нравилось)
    не хватит штатного отправлялщика и обработчика хттп запросов - существует 100500 библиотек (разной степени сложности)
    все что надо - отправить хттп запрос и распарсить ответ - какие еще могут быть варианты кроме java? (если мы говорим о платформе LDN)
     
  5. Mikle_GB

    Mikle_GB Member

    Регистрация:
    7 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Конечно, LND. Тут уж точно без вариантов.
    Вот и я не знаю - кроме этого АПИ какие-то способы вмандить документы в Шугар имеются ли? файлы, емайл, прямая запись в СУБД - теоретически варианты есть. Потому и интересуюсь, знает ли кто толк в извращениях.

    Какие варианты вообще или реальные? вообще - есть web service customer; mssoap; ls2j. А реальные - я не в курсе, не занимался раньше.
    Ты мог бы живой пример java агента такого рода дать? Мне просто в тему джавы придётся долго въезжать, а ещё и с шугаром наверняка не всё гладко пойдёт.
     
  6. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Структура базы известна? Или хотя бы разобраться в ней реально? Если "да", то подключаемся к базе и заливаем туда всё что угодно. Если "нет", то только импорт данных через само SugarCRM, встроенными средствами. То API, что по ссылке - полная лажа. Ищи что-нибудь вроде этого http://support.sugarcrm.com/Documentation/Sugar_Versions/7.6/Ent/Application_Guide/Import/
    http://www.eligeo.com/sugarcrm-guide-to-importing-data/
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    @garrick ну в хехель то писать придется, а потом его аплоадить - опять http
    такого рода - это типа http запрос отправляющего?
    http://stackoverflow.com/questions/...from-httpclient-request-using-json-org-parser
    отправка и парсинг, использует апачевскую реализацию
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    пример без использования внешних либ, кот. делает post на сервер
    Код (Java):
    import lotus.domino.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;

    public class JavaAgentExample extends AgentBase {

        public void NotesMain() {

            try {
                Session session = getSession();
                AgentContext agentContext = session.getAgentContext();
                Database db = agentContext.getCurrentDatabase();
                View view = db.getView("[VIEWNAME]");
                DocumentCollection dc = view.getAllDocumentsByKey("[CATEGORYVALUE]", true);
                int ndocs = dc.getCount();

                int i = 0;
                Document doc = dc.getFirstDocument();
                while( doc != null ) {
                    i++;
                    String field1 = doc.getItemValueString("field1");
                    String enc_field1 = URLEncoder.encode(field1);
    //(more fields)
                    String content= "field1=" + enc_field1;//+"&&enc_field2="+enc_field2+...(more params);
                    URL url = new URL("[URL]");
                    HttpURLConnection connection = (HttpURLConnection)url.openConnection();
                    // Sets the request method to POST, and enable to send data
                    connection.setRequestMethod("POST");
                    connection.setAllowUserInteraction(false);
                    connection.setDoOutput(true);
                    connection.setDoInput(true);
                    connection.setUseCaches(false);
                    // Sets the defaul Content-type and content lenght for POST requests
                    connection.setRequestProperty( "Content-type", "application/x-www-form-urlencoded" );
                    connection.setRequestProperty( "Content-length", Integer.toString(content.length()));

                    DataOutputStream out = new DataOutputStream (connection.getOutputStream ());
                    out.writeBytes (content);
                    out.flush ();
                    out.close ();
                    connection.disconnect();

                    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                    String line;
                    while(null != (line = in.readLine())) {
                        System.out.println(line);
                    }

                    String title = db.getTitle();
                    System.out.println("Current database is \"" + title + "\"");

                    doc = dc.getNextDocument();
                }


            }catch(NotesException ne) {
                System.out.println("NotesError " + ne.text);}catch(Exception e) {
                    e.printStackTrace();
                }
        }
    }
    адрес, разумеется и параметры логина и пароля - надо по контексту задать (зависит от того как сервер принимает запорсы и аутентификацию, в т.ч.)
    например, при интеграции с Zoho мне нужно было генерить токен и передавать его в отдельном запросе
    делал на хехеле VBA - много матерных слов вырывалось про COM и прочую хню от МС, ибо перехват ошибок из мсхмл... коряв, ЯП убогий...
     
  9. Mikle_GB

    Mikle_GB Member

    Регистрация:
    7 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    К сожалению, база даже не у нашего клиента, а у каких-то немцев - за семью печатями, за семью паролями. Никаких шансов туда влезть нету. Про импорт данных я читал, но это ручная операция, если даже её можно по расписанию вызывать (хотя я не знаю, как) - всё равно нам не дадут. Все работы только на нашей стороне, в лотусах.
    Объясни пожалуйста, почему апи по http://sugartalk.ru/web-services-api.html лажа? Функций мало, но вроде бы и создавать и модифицировать записи можно.
     
  10. Mikle_GB

    Mikle_GB Member

    Регистрация:
    7 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Спасибо, будем посмотреть!
     
  11. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Что мешает поставить себе такую же? Даже если она сильно "перепилена" под конкретного заказчика, всё равно основные таблицы и поля в них должны соответствовать оригиналу.
    Это API для PHP. Можно написать процедуры и запускать их только на том же сервере, где установлен SugarCRM. Даже если ты сможешь это сделать, в чём я сильно сомневаюсь в связи с вышеизложенным ("у каких-то немцев - за семью печатями"), то остаётся вопрос: "Кто-нибудь умеет из PHP лазить в Lotus Notes?". Я думаю, следует у этих самых немцев официально запросить возможность писать что-то в их систему, а заодно и способ как это сделать. А то будут потом разборки: "Чего это вы тут нам понаделали?" Ещё мне видится другой вариант - эмитировать отправку формы с заполненными данными по HTTP. Потому как, опять же в связи в вышеизложенным, подозреваю, что прямой доступ к СУБД отсутствует.
     
  12. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Операция с ручным приводом, но при наличии соответствующих прав, сможешь выполнять её самостоятельно. Там же всё через браузер работает, по HTTP.
     
  13. Mikle_GB

    Mikle_GB Member

    Регистрация:
    7 июл 2016
    Сообщения:
    12
    Симпатии:
    0
    Я так понял, что апи один, просто пример на пыхе. А в принципе всё что нужно - это собрать правильную строку подключения и передать запрос:
    _http://sugarHost/sugarcrm/service/v2/rest.php?method=login&input_type=json&response_type=json&rest_data={"user_auth": {"user_name":"user","password":"somemd5hash","version":"1.0"},"application_name":"RestTest"}
    получить из ответа сессию и работать дальше:
    _http://sugarHost/sugarcrm/service/v2/rest.php?method=set_entry&input_type=json&response_type=json&rest_data={"session":"sessNum", "module_name":"contacts", "name_value_list":{"name":"newName","value":"newValue"}}

    Поправьте, пожалуйста, если ошибаюсь!

    Кувшинников умеет :) http://www.ibm.com/developerworks/ru/library/domino-php/
    но мне надо фарш в обратную сторону крутить, добираться из шугара в лотус не дадут, да и квалификации у меня такой нет.

    Намекаешь на возмжность рулить импортом программно? мне кажется, это сложнее в реализации, но если апи не прокатит по возможнстям или быстродействию - отчего бы и нет! спасибо за идею.
     
    #13 Mikle_GB, 11 июл 2016
    Последнее редактирование: 11 июл 2016
Загрузка...
Похожие Темы - Выгрузка лотусовых данных
  1. KapitoliyKakoyTo
    Ответов:
    1
    Просмотров:
    2.800
  2. JohnLemon
    Ответов:
    47
    Просмотров:
    2.729
  3. Надя1972
    Ответов:
    0
    Просмотров:
    640
  4. AndreiBY
    Ответов:
    0
    Просмотров:
    1.328
  5. Dimok-163rus
    Ответов:
    32
    Просмотров:
    6.573

Поделиться этой страницей