例: SavedData property (AgentContext - Java™)

次のエージェントは、保存されたデータレコードを使用して最大週間販売高を検索します。データレコードには [Weeky_Sales] フィールドと [Name] フィールドがあります。保存されたデータレコードには、[MaxSales] フィールドと [MaxSales_Salesperson] フィールドがあります。[Weekly_Sales] が [MaxSales] よりも大きい場合は常に、このデータのレコードフィールドでエージェントのレコードフィールドが置き換えられます。

import lotus.domino.*;
import java.util.Vector;
import java.lang.Float;
public class JavaAgent extends AgentBase {
  public void NotesMain() {
    try {
      Session session = getSession();
      AgentContext agentContext = 
          session.getAgentContext();
      // (Your code goes here) 
      Document agentDoc = agentContext.getSavedData();
      Database db = agentContext.getCurrentDatabase();
      View view = db.getView("Weekly Sales");
      Document doc = view.getFirstDocument();
      if (!agentDoc.hasItem("MaxSales"))
      {
        agentDoc.replaceItemValue("MaxSales", "0");
        agentDoc.save(true, true);
        agentDoc = agentContext.getSavedData();
      }
      while (doc != null)
      {
        Vector mvalue = agentDoc.getItemValue("MaxSales");
        Vector wvalue = doc.getItemValue("Weekly_Sales");
        Float maxSales = 
          new Float((String)mvalue.firstElement());
        Float weeklySales = new
        Float((String)wvalue.firstElement());
        if (weeklySales.floatValue() > 
             maxSales.floatValue())
        {
          agentDoc.replaceItemValue
          ("MaxSales", doc.getItemValue("Weekly_Sales"));
          agentDoc.replaceItemValue
          ("MaxSales_Salesperson", doc.getItemValue("Name"));
        }
        agentDoc.save(true, true);
        System.out.println("Best salesperson to date is " +
        agentDoc.getItemValue("MaxSales_Salesperson") +
        " who sold $" + agentDoc.getItemValue("MaxSales"));
      }
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}