forum.bitel.ru
http://forum.bitel.ru/

Открытие договора в клиенте извне - ?
http://forum.bitel.ru/viewtopic.php?f=22&t=6447
Страница 1 из 1

Автор:  Cromeshnic [ 14 фев 2012, 12:25 ]
Заголовок сообщения:  Открытие договора в клиенте извне - ?

Цитата:
ДОБАВЛЕНО Возможность инициации извне открытия в клиентском приложении пользователя конкретного договора.

Круто, как этим пользоваться?

Автор:  barguzin2 [ 06 мар 2012, 16:21 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

+1. тоже интересно!

Автор:  Phricker [ 06 мар 2012, 16:22 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

разработчики сами пока еще не знают. плюшку сделали сейчас изучают как оно работает :lol:

Автор:  aiwbend [ 30 май 2016, 13:49 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

up.

Автор:  vkulakov [ 30 май 2016, 13:56 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

Теме уже четыре года, а вы просто так апнули без комментариев. В чём вопрос то?

Автор:  vkulakov [ 30 май 2016, 14:00 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

На всякий случай отвечу: если вызвать такой УРЛ http://ч.ч.ч.ч:8080/bgbilling/executer?module=admin&action=Command&command=put&value=openContract:33534&user=user&pswd=password, то в клиенте биллинга откроется указанный договор. Только логин/пароль нужно передавать пользователя, у которого должен быть открыть договор, что, на самом деле, не очень удобно.

Автор:  vkulakov [ 02 июн 2016, 14:56 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

Меня начали игнорировать даже тогда, когда я отвечаю на чьё-то сообщение...

Автор:  barguzin2 [ 02 июн 2016, 15:20 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

это для CRM было сделано - открыть в биллинге.

Автор:  Cromeshnic [ 13 мар 2019, 12:17 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

Захотел воспользоваться фичей в BG 7.0, чтобы открыть договор из внешней системы.
Но требуется логин/пароль пользователя от BG.
Хранить их во внешней системе непрактично, да и невозможно сейчас выдернуть из базы BG, только заставлять пользователей вбивать их во внешней системе.
Решил написать свой вебсервис для внешней системы, чтобы вместо user/password можно было передавать только user или только email пользователя.
Столкнулся с проблемой, что я не смогу из вебсервиса положить команду на открытие договора в Map команд, т.к. они прописаны как private static внутри экшена:

Код:
public class ActionCommand
  extends ActionBase
{
  private static Map<Integer, String> commandMap = new ConcurrentHashMap();
 
  public void doAction()
    throws Exception
  {
    String command = getParameter("command");
    if ("put".equals(command))
    {
      String value = getParameter("value");
      if (Utils.notBlankString(command)) {
        commandMap.put(this.userID, value);
      }
    }
    else if ("get".equals(command))
    {
      String value = (String)commandMap.remove(this.userID);
      if (value != null) {
        this.rootNode.setAttribute("value", value);
      }
    }
  }
}


Вопросы к разработчикам:
1. Когда вы планируете вытащить этот экшен в вебсервисы?
2. Как сейчас и в будущем нам можно получить доступ к карте команд в своих обработчиках?

Автор:  Cromeshnic [ 13 мар 2019, 14:10 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

Сделал через порнографию (dynaction):

Код:
public class ActionCommand extends bitel.billing.server.admin.action.ActionCommand {

    @Override
    public void doAction()
            throws Exception
    {
        String command = getParameter("command");
        String email = getParameter("email",null);
        String login = getParameter("login",null);
        if((email!=null || login!=null) && "put".equals(command)){
            UserManager um = new UserManager(this.con);
            if(login!=null) {
                User user = um.getUserByLogin(login);
                if(user==null){
                    throw new BGException("User "+login+" not found");
                }else{
                    this.userID=user.getId();
                    this.userId=user.getId();
                }
            }else{
                Optional<User> user = um.getUsersMap().values().stream().filter(u -> {
                    return u.getId()>0 && email.toLowerCase().equals(Utils.maskNull(u.getEmail()).toLowerCase()) && u.getStatus()==0;
                }).findAny();
                if(user.isPresent()){
                    this.userID=user.get().getId();
                    this.userId=user.get().getId();
                }else{
                    throw new BGException("Active user with email "+email+" not found");
                }
            }
        }
        super.doAction();
    }
}


Когда разработчики внезапно переведут на вебсервис, я видимо буду ругаться как тут: https://forum.bitel.ru/viewtopic.php?f=22&t=13250

Автор:  Phricker [ 09 авг 2019, 13:21 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

up.
Есть комментарии от уважаемых разработчиков по поводу двух последних сообщений от уважаемого Кромешника?
Тоже хочу прикрутить данный функционал к вебсервису.
И думаю городить костыли или писать в HD :)

Автор:  skn [ 09 авг 2019, 16:04 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

попробуйте написать в ХД ;-)

Автор:  skn [ 09 авг 2019, 20:20 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

7.2+

вынесли map в CommandMap.getCommandMap().put( userId, value );

Автор:  Phricker [ 10 авг 2019, 00:56 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

Набросал тестовый веб-сервис чтобы проверить, обновил сервер, а обновлений то нееет :(
P.S. У вас там КТУ внедрили? :D Премируют по результатам сделанных обращений в HD? :mrgreen:

Автор:  Phricker [ 13 авг 2019, 01:18 ]
Заголовок сообщения:  Re: Открытие договора в клиенте извне - ?

skn писал(а):
7.2+

вынесли map в CommandMap.getCommandMap().put( userId, value );

Работает, благодарю.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/