イベントログを検索して、ユーザー毎のアプリ利用状況を調べる方法です。 以下の場合は主要機能をどのくらい触ったかが調べられます。
protected int getActionCount(Integer userId) { SelectQuery<EipTEventlog> query = Database.query(EipTEventlog.class); List<Integer> actions = new ArrayList<Integer>(); actions.add(ALEventlogConstants.PORTLET_TYPE_SCHEDULE); actions.add(ALEventlogConstants.PORTLET_TYPE_TIMELINE); actions.add(ALEventlogConstants.PORTLET_TYPE_ADDRESSBOOK); actions.add(ALEventlogConstants.PORTLET_TYPE_BLOG_ENTRY); actions.add(ALEventlogConstants.PORTLET_TYPE_CABINET_FILE); actions.add(ALEventlogConstants.PORTLET_TYPE_EXTTIMECARD); actions.add(ALEventlogConstants.PORTLET_TYPE_MSGBOARD_TOPIC); actions.add(ALEventlogConstants.PORTLET_TYPE_NONE); actions.add(ALEventlogConstants.PORTLET_TYPE_REPORT); actions.add(ALEventlogConstants.PORTLET_TYPE_TODO); actions.add(ALEventlogConstants.PORTLET_TYPE_WEBMAIL); actions.add(ALEventlogConstants.PORTLET_TYPE_WORKFLOW); query.where(Operations.in(EipTEventlog.PORTLET_TYPE_PROPERTY, actions)); query.where(Operations.eq(EipTEventlog.TURBINE_USER_PROPERTY, userId)); return query.getCount(); }