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; }