Динамические JSON-списки в WEB

R

RocketCoon

Доброго дня!
Коллеги, подскажите пожалуйста, какие есть варианты решения задачи: есть СЭД Логика Бизнеса с WEB-интерфейсом. И нужно чтобы у пользователя во время создания документа некоторые списки значений подгружались динамически через JSON со стороннего сервиса.
Как это лучше реализовать?
 
lmike

lmike

нет, пердело совершенство
Lotus team
27.08.2008
7 284
446
Доброго дня!
Коллеги, подскажите пожалуйста, какие есть варианты решения задачи: есть СЭД Логика Бизнеса с WEB-интерфейсом. И нужно чтобы у пользователя во время создания документа некоторые списки значений подгружались динамически через JSON со стороннего сервиса.
Как это лучше реализовать?
xPages, как интегрировать с "классикой" я уже написал
объясню почему:
- код писать в более удобном варианте, в дизайнере
- либы грузить - тоже, в соответ. раздел (а не jvm/lib/ext) и они будут специфичны для БД

про классику
простенький парсер JSON (регэкспами) можно написать и в JS2J (или просто - java agent) но как только потребуются вспомогательные библиотеки -
для обработки http запросов может не хватить ф-ционала "стандартной" библиотеки и потребуется апачевская (а там связанные либы)
вывод результата (обработанного) возможен в контекстный документ агента
Java:
          Document doc=agentContext.getDocumentContext();
          String xPage=null;
          String domain="";
          if (doc!=null){
              xPage=doc.getItemValueString("xpage");
              domain=doc.getItemValueString("domain");
              if (!xPage.isEmpty()){
                  doc.replaceItemValue("result", com.setralubs.XAgent.run(ses, agentContext, xPage, domain));
              }
              doc.recycle();
          }
при вызове
Код:
Sub Initialize
    On Error GoTo ErrH
    GoTo Continue
ErrH:
    Error Err, RaiseError
Continue:
    Dim doc As NotesDocument, ses As New NotesSession, db As NotesDatabase
    Set db=ses.Currentdatabase
    Set doc=db.Createdocument()
    doc.Replaceitemvalue {xpage}, {test}
    Call db.Getagent({JXAgent}).Runwithdocumentcontext(doc, doc.Noteid)
    MessageBox doc.Getitemvalue({result})(0)
End Sub
пример хэпаги
XML:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false">

    <xp:this.beforeRenderResponse><![CDATA[#{javascript:try{
var params=[];
com.setralubs.FusionInfo.main(params);
}catch(e){
  _dump(e);
  print("<<test.xsp>>"+e.toString());
  org.openntf.domino.xsp.XspOpenLogUtil.logError(e);
}}]]></xp:this.beforeRenderResponse>
</xp:view>
здесь вызывается java класс com.setralubs.FusionInfo и его метод main
 
Последнее редактирование:
  • Нравится
Реакции: RocketCoon
Мы в соцсетях: