XPage と標準のファイル アップロード コントロールを使用してファイルをアップロードしています。データソースには WebQuerySave エージェントがあります。
WQS-agent は LotusScript にあります。
ユーザーは XML ファイルをアップロードしており、アップロードされた XML を解析するのに役立つ既存のヘルパー ライブラリがあります。そのため、WQS は LotusScript で記述されています。
アップロードされたファイルをサーバーにデタッチできないため、Java エージェントを呼び出して、XML を文字列に読み取り、それをドキュメントに格納します。
param ドキュメントを使用して Java エージェントを呼び出していますが、これはすべて基本的なものです。
param doc には、添付ファイルを含むドキュメントの UniversalID を含めます。これが私の問題です!
Java エージェントは、UniversalID が無効であると主張しています。
「HTTP JVM: 4091 無効なユニバーサル ID」
しかし、LotusScript エージェントで文書を検索しようとすると、Java エージェントを呼び出す前に、同じ UNID を使用して文書が検出されます: Set tempDoc = db.Getdocumentbyunid(unid)
Java コード:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import lotus.domino.Agent;
import lotus.domino.AgentBase;
import lotus.domino.AgentContext;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.NotesException;
import lotus.domino.Session;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
// Get document used for passing data
System.out.println(agent.getParameterDocID());
Document paramDoc = db.getDocumentByID(agent.getParameterDocID());
String UniversalID = paramDoc.getItemValueString("unid");
System.out.println(UniversalID);
Document doc = db.getDocumentByUNID(UniversalID);
Java エージェントを実行すると、印刷コマンドから何も得られませんが、おそらくそれは予想されることです...(?)
既存のドキュメントですべてを手動で実行すると、機能します。ただし、ブラウザから送信されたドキュメントではありません。
私には、添付ファイルを含むドキュメントはまだ Java の準備ができていないように感じます。
ドミノ 8.5.3
どんな助けでも大歓迎です!
/J
PS私はJavaの初心者なので、知っています.. ;-)