public IDfSysObject getFirstAttachment(IDfSessionManager sessionmgr, Map parameters)
     throws Exception {
   /*-CONFIG-*/ String m = "getFirstAttachment - ";
   /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
     DfLogger.debug(this, m + "get session", null, null);
   String docbase = ((String[]) parameters.get("docbase_name"))[0];
   IDfSession session = sessionmgr.getSession(docbase);
   /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
     DfLogger.debug(this, m + "get workitem interface", null, null);
   IDfWorkitem wi = getWorkitem(sessionmgr, parameters);
   /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
     DfLogger.debug(this, m + "iterate through packages", null, null);
   IDfCollection packages = wi.getPackages("");
   IDfSysObject pkg = null;
   if (packages.next()) {
     /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
       DfLogger.debug(
           this,
           m + "check if there are packages in the r_component_id multivalue attr",
           null,
           null);
     if (packages.getValueCount("r_component_id") > 0) {
       /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
         DfLogger.debug(this, m + "getting the first component id", null, null);
       IDfId id = packages.getRepeatingId("r_component_id", 0);
       /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
         DfLogger.debug(this, m + "retrieving component " + id, null, null);
       pkg = (IDfSysObject) session.getObject(id);
       /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
         DfLogger.debug(this, m + "component: " + pkg, null, null);
     }
   }
   packages.close();
   /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
     DfLogger.debug(this, m + "releasing session", null, null);
   sessionmgr.release(session);
   /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this))
     DfLogger.debug(this, m + "session released", null, null);
   return pkg;
 }