Добрый день, надеюсь подскажите, ситуация следующая:
Решил использовать код, который реализован в веб клиенте, да вот беда, там используется следующая логика:
1) Заходим на сайт, под своим логином/паролем из СД
2) Выгружаем либо полный список запросов либо урезанный (что собой это представляет - я так и не понял)
3) Формируем табличку со списком запросов, если нажимаем на один из номеров запроса, то проваливаемся и !!!ВНИМАНИЕ добавляем его ОИД (лонговское значение)
4) Используя этот ОИД - мы грузим данные
Теперь суть проблемы:
Если свой собственный сервлет, который позволяет клиентам посмотреть состояние по запросу, тут намешано всего, и собственных разработок и намешано с веб-апи.
Проблема в том, что в конечном итоге мы приходим на страницу по ид запроса, и вот косяк как ИД преобразовать ИД в ОИД? самое главное что если в коде jsp страницы в этой строчке sc = sc_hm.openServicecall(sc_oid); поставить ручками номер просто запроса - то вытянет всю инфу, попытаешься автоматом из адреса забрать параметр содержащий ИД запроса, преобразуешь его в ЛОНг, подставишь - нифига, говорит мол ничего такого нет. Куда копать?
вот код который сам должен при загрузке страницы грузить инфу:
Код |
---|
<%
<br /> String loginname = SdClientBean.hackyFixEncoding("web");
<br /> String password = SdClientBean.hackyFixEncoding("webuser1");
<br /> String appserver = "tescom4";
<br />
<br /> Long sc_oid = null;
<br /> Integer sc_id = null;
<br /> String _sc = request.getParameter("id");
<br />
<br /> SdClientBean bean = new SdClientBean(appserver, loginname, password);
<br /> IServicecallHome sc_hm = bean.sd_session().getServicecallHome();
<br /> IServicecall sc;
<br />
<br /> sc_id = new Integer(_sc);
<br /> sc_oid = new Long ("11626");
<br />
<br /> try {
<br /> sc = sc_hm.openServicecall(sc_oid);
<br /> IHistoryLineServicecallHome hl_hm = bean.sd_session().getHistoryLineServicecallHome();
<br /> IHistoryLineServicecall hls[] = sc.getHistoryLines();
<br /> IRegistrationHome reg_hm = bean.sd_session().getRegistrationHome();
<br /> SortCode.sortIObject(hls);
<br /> for (int i=0 ; i<hls.length ; i++)
<br /> {
<br /> IHistoryLineServicecall hl = hls[i];
<br /> IRegistration reg = hl.getRegistration();
<br /> IAccount _created_by = reg.getCreatedby();
<br /> String created_by = _created_by != null ? _created_by.getLoginName() : "";
<br /> Double created = reg.getCreated();
<br /> String subject = hl.getSubject(), information = hl.getInformation();
<br /> %>
<br /> <div class="viewsc_history_row">
<br /> <div class="viewsc_history_col1" st yle="text-align: left;">##</div>
<br /> <div class="viewsc_history_col2" st yle="text-align: left;"><%= SdClientBean.filter_html_string(subject) %></div>
<br /> <div class="viewsc_history_col3" st yle="text-align: left;"><%= created != null ? bean.sd_date2java_local_date(created) : "" %></div>
<br /> <div class="viewsc_history_col4" st yle="text-align: left;"><%= SdClientBean.filter_html_string(created_by) %></div>
<br /> </div>
<br /> <%
<br /> }
<br /> sc = sc_hm.openServicecall(sc_oid);
<br /> } catch (Throwable e) {
<br /> }%> |
Он не работает. Если в этой строчке сделать так
Код |
---|
sc = sc_hm.openServicecall(11626); |
то все открывает как надо, уже хз что делать.