Tuesday, December 8, 2009

Group management query language

In this post we are going to visit a quite powerful feature in HRM TM portal, group management.

With group management you can set up groups of users, activities and organizations. And use them for different purposes for example showing news and information for a targeted group of users or displaying a list of recommended courses for a specific group of users

In this post we are not going to focus on what you can do with groups but focus on how you can set up groups and the syntax for creating groups.

First go group management, depending of the version you have you will find it under system administrations menu in 4.5 and up and on the start page for system administrators on 4.3 and 4.4. You should then se something like below.

image of group management

Create a new user group by clicking add.

image

To start with you can here handle the different name of the group in multiple languages, assign it some id and a brief descriptions on whats you are selecting. At the bottom of the screen is where the interesting stuff is. Here you can build up an expression that selects out the users you want. Lets click on Add Expression

image

Now the first drop down list contains the different groups we are supporting for this kind of group, in this case a usergroup.

User group contains a list of fields that you can use to filter out users in drop down 2, it is basically the information you will find on employee page. I am not going to cover what every single field means as it depends on you installation. But rather focus on what you can express here. The third dropdown contains commands or logical operators for selecting users and those are

Operator Description Example
= Equal to role = “5”
<> Not like usrid <> 15
< Smaller than employmentdate < 2009-10-15
> Greater than employmentdate > 2009-01-01
<= Smaller or equal  
>= Greater or equal  
IS IS a variant of equal for objects ie. you want to find out all that has NULL as positionid
positionid is null
or employmentenddate is null will give you everyone that has not quit
IN IN value must be in a list positionid in (“5”, “6”) will give you all users with positionid 5 or 6
NOT IN same as above but negtative selection  
LIKE a text contains the phrase the wildcard character is % lastname like “%jens%”
will give you back
Johnsson Jensen
Jensen
Jens
Jenson
Jensan
ojens
NOT LIKE same a above  

If you swith to freetext editing you can also use built in functions and those are mostly do to with dates

  • dateof(datetime): datetime; Creates a datetime with the date from the function argument, and no time.
  • timeof(datetime): datetime; Creates a datetime with the time from the function argument, and no date.
  • year(datetime): int; Finds the year in the argument.
  • quarter(datetime): int; Calculates the quarter of the argument.
  • month(datetime): int; Calculates the month number of the argument.
  • dayofyear(datetime): int; Calculates the day of year number of the argument.
  • day(datetime): int; Calculates the day of month number of the argument.
  • week(datetime): int; Calculates the week number of the argument.
  • weekday(datetime): int; Calculates the day of week number of the argument.
  • hour(datetime): int; Gets the hour of the argument.
  • minute(datetime): int; Gets the minute of the argument.
  • dayssince(datetime): int; The number of days that has passed since the argument until now (server time).
  • monthssince(datetime): int; The number of months that has passed since the argument until now (server time).
  • yearssince(datetime): int; The number of years that has passed since the argument until now (server time).
  • daysbefore(datetime): int; The number of days from now (server time) until the argument.
  • monthsbefore(datetime): int; The number of months from now (server time) until the argument.
  • yearsbefore(datetime): int; The number of months from now (server time) until the argument.

This was a quick explanation of the operators in the Agresso HRM query language this you can also find in our WCF integrations services and filter management.

Enjoy

Christian

Wednesday, November 25, 2009

Released 4.5.3951 and 4.4.4859

It was a while since we posted a patch the blog many customers have received patches during this time but now we do have a new official build.

Among the main fixes we have done we have a major fix on Ideal profile that where missing some numbers. Also fixes to the survey where made that will help you a great deal.

The release notes are available on the agresso extranet

Friday, October 2, 2009

Product roadmap Agresso TM

As I have mentioned before we are going to start a new sprint and begin on a new version of the portal. In this post I will mention a bit more detail on the next sprint and describe what we think we will do the rest of the year.

4.6 sprint 1

This sprint that will start tomorrow and end 21st of October will focus on one main feature, customizable start pages.

So what is a this, it is a dashboard type of page that you see on live.com, igoogle etc. It’s a page where you either allow individuals or Admins to put mini applications on a start page. So how does this work and why should you care. Since Agresso HRM TM right now supports learning and employee data processes with HR as a customer you might want to display information for your favorite ERP system ABW or any other system in the portal since all your users have access to this portal but maybe not to other systems.

By implementing this you will actually be able to display data from other systems, display reports on the start page with you crucial KPI’s for this year or you can simply have a rss roller if you publish news via rss that everyone that uses the Agresso TM portal should be aware of.

So what is a dashboard and how does it look:

image

Each start page for a role is a dashboard in this dashboard is template driven and you can select different templates, eg.  a three column layout like above or a one column full page template. These templates is really simple for us to make custom for you as a customer. A dashboard really only contains one or "panels” to start with. In a panel a user with proper permissions can then put gadgets in the panels. The portal will support one dashboard per role for Administrators to configure, and if enabled each user can customize his own start page.

Gadgets

So what is a gadget, a gadget is a small application that can give you information in a relatively small space, we will provide functionality for a gadget catalog where we and third party vendors can upload new gadgets. We will provide every thing you can see now on the start pages as gadgets, the shortcuts, system information, news etc from us. In addition we will also develop a chart gadget where you use your flexible fields to do averages etc on KPI’s. For us and report gadget so you can have your custom reports on the start page.

So what’s in it for a gadget developer, first of all as a gadget developer you will get information on who is logged in. you will also have access to our services for making queries about organizations and that particular user. In other you will get world class employee and organization information.

We will support in the final version for 4.6 also the possibility to host your gadgets within Agresso TM in addition to hosting your self on your server. So it will be fully possible to have

  • a gadget on i.e the recruiting site that displays the current available jobs in the portal.
  • a gadget displaying the task list from ABW
  • a weather gadget from google
  • a Chart displaying the average number of sick days per employee
  • a Chart gadget displaying the staff turn around for one particular organization (the logged on user)

All this can be developed or configured in the portal and driven from our security model if you use our services, or roll your own for your database.

We have decided that we will support Gadget API that open social builds upon and is supported by many other applications.

http://code.google.com/apis/gadgets/docs/dev_guide.html is the specification for gadgets we are going to implement.  The reason for choosing an existing api is that we don't want to invent the wheel again and to make it easier for third parties to understand and engage them in gadget development.

 

Product roadmap 2009-2010 4.6

We will start to release previews that you can use on QA and or production, but you must be aware of that we will add and or change functionality until we are feature complete on 4.6.

Week starting oct 26 first customer preview of 4.6 will be available

  • Dashboard and some gadgets

Week starting nov 30 second customer preview

  • More gadgets
  • Possibility to host your gadget code in Agresso TM

Week starting January 11th Feature complete 4.6

  • A more visual organization manager

These are estimated dates and not promises.

Wednesday, September 30, 2009

Managing health checks in Agresso TM Tutorial – Part 2

In Managing health checks in Agresso TM Tutorial part 1 of this tutorial I showed you how to set up a competence element and profile to keep track of health checks. The next step is to set up self managing activities.

This kind of activity is a hybrid between web based activities and instructor led. What we need to accomplish is to have an activity that an employee can find, but since a visit to the doctor in this case is required and there will be a certificate issued by the doctor a custom activity is not enough, and there is really no sessions.

 

Setting up an activity with custom session

In the course administration of the portal click activities

image

Click on “Add self study with approval”, which is an activity type where you can

1. Specify you self WHEN you are taking it

2. A manager needs to approve that its done, i.e show an health certificate to the manager

 

Create a regular health check

image

 

Fill in the responsible persons email address for this activity and save, do NOT enter a expiration date.

The next step is to assign what we call Objectives to this activity, and objective can be a competence element or profile, for the regular health check activity, we actually will fulfill both Small and regular health check requirements so we could award a competence profile if passed.   But since we want to make sure that in whatever profile competence element is in, we will actually select these two elements by hand, and not rely on this particular profile. (you could have several profiles containing the health check requirement). So click on select objectives . competence standard and search for health. (make sure you select Alternative competencies)

image

 

No set both the competencies to yes, check in also assign the element (if the user for some reason don't already have the element but actually goes to a health check anyway.)

Hit ok.

 

Now, I assume that you have set up a provider that have an agreement with i.e the whole organization and you are maybe using filters or not. Now you should see this activity in the catalog.

I have added the the profile to my account, so to find out what I need to do for my compete ices I go to the competencies section under employee menu

 

image

As you can see I have 0% percent fulfillment, i click on the profile name to see what it contains, and as we expect I don't have any of the checks now, click on the Find Activities to cover my gap link.

image

and you will se the regular health check activity in a list, click enroll

image

 

Select the date you have agreed on with the doctor, click next you are now booked.

Now, if you did as me and put the appoint in the future we will have to wait until that date passes before a manager can handle this activity. During this time lets make sure the manager has the right to handle this kind of appointments.

Go System roles and rights, select manager, find the rights name “Manual signoff on self study” and make sure its checked, now lets warp in to the future and assume this activity has passed, log on as the manager for this user.

As a manager your have a start page that have a task list of stuff you should do in the portal, select the 1 consultation to handle task.

image

you should then be presented with the below. You here have a choice of failing and or declare the user Absence. this might make a difference in a report.

image

lets say you go to the doctor and you actually “fail” on the health check that is far more serious than a no show, so we want to make a difference on this.

Now, I will pass my self, the mechanism for handling this kind of goal assignments is a job, so we will have to wait a couple of minutes for the job to run, then  you as a manager can go in an look at the profile for the user and see fulfillment 100% on the health checks.

So this explains the concept and if you want to go ahead to make the small health check its the same procedure with just the small health check competency as a objective.

Have fun

Thursday, September 24, 2009

Released 4.5.3941

Today we are releasing the final version of 4.5 from now on there will be no new functionality but continue our work towards greater quality. New in these release notes are also that we display build numbers and we will continue to improve the process of build numbers. But for now if there is a bug found 4.5 it might not exist in 4.4 we will figure our a way to handle the version number between major versions but for now all notes are in one.

Also for you that are not familiar with 4.5 we have some exciting news about functionality in this version. We will blog about them in detail in the future and last posts have actually been about 4.5 functionality.

The release notes are available on the agresso extranet

Flickr Tags:

 

Main features in 4.5

Flexible fields

It is now possible to add fields to User and organization information easy in the UX under system administration. So its now possible with out any consultancy to add extra info about users that you want to keep in the portal.

Layout editor

Together with flexible fields we also introduced a layout editor for user and org information. Now you can yourself completely design the look and feel of “my information” page etc

  • Layout per role
  • Smart rendering functionality, or decide your self if you want radio buttons, select boxes etc
  • Valid values
  • Different dates
  • basic data types (numbers, strings etc)
  • Logging of changes

New integration service

We also provide you with a completely rewritten integration service where you can both read and write user and organization information that is based on the current access you have. This is the first step for us towards more SOA enabled functionality in the portal. There will be more blog post about this both the strategy and technical

Main features of the services

  • WCF or WSDL access
  • Regular HRM portal accounts to access the service, and that accounts restrictions apply in the service as well
  • Search language
  • Find our what has changed sincle last

Handling sessions with only one participant

In my next blog abut handling health checks in the portal part 2 I will go in more detail about the new feature of letting a employee or manager set up individual visits to i.e a doctor and handle that in the portal.

Tracking of correct answers scorm

If you are using scorm and 4.5 there is now a possibility to send mails to employees or i.e manager when they complete a scorm course telling them what questions went wrong etc. It also enables you as a customer to purchase reports to benchmark complete courses.  What question is the most difficult etc etc. This could help you to decide how you build future courses.

Sitetext editor

You can now edit texts in the portal with an editor, we also introduced a new feature so you can download the texts in excel and import that file back to the portal. We are getting closer and closer to enable you to all you want in the portal.

.Net 3.5

We are now shipping the the portal in .net 3.5 and we support SQL server 2008 and 2005.

There is more minor tweaks mostly config things i.e more list to edit,

Wednesday, September 2, 2009

Managing health checks in Agresso TM Tutorial

One of customers Banverket is working in an industry where regular health checks is one part of certification for employees. To be certified to work on i.e railroad tracks there is a set of business rules that defines how often and what type of health check you are required to do.


The health check requirement is just on of several other checkpoints they need like attending training on safety on rails and a numerous of things. What we want to do is to enable employees and managers to ensure the certification is met an book keep this in in the system.

<></>
Age Frequency (months) Type of check
18-40 60 Full
18-40 18 Small
40-55 36 Full
55- 12 Full

Business rules for health check

To accomplish this we need to use competencies/certifications, activates and profiles and configure with these.

Competencies/Certifications

So given the above rules we need two types of health check certifications, one full and one small. So lets start by setting this up. Go the Alternative competence library and click Add alternative competence

adf



Fill in the form with with following data

Name: Regular health check

ID: healthregular



adsf



Make the following settings on expiration and click OK, 60 months is the maximum length. We will later add a system jobb that will adjust these based on age (that job needs support from Agresso)

Add another one called Small health check but set the expiration to 18 instead of 60

Now if you do a search on alternative competencies for health it should look like this:



asdf


Next we are going to add these to a Competence profile, in this case I am going to create a new profile with just these two but you could of course add them to any profile.


  • So go to Competence administration/competence profiles and click add.
  • I am going to call my profile “Health check Profile” and click ok
  • On the next page I will find my health elements regular and small and check them
  • Click ok

Now we are all set up to assign people the requirement for health checks, lets assign the profile to your self, I will go in under find employees and search for myself, click Competence profiles on my row. Right now as you can see I don't have any profiles

image


Click on add profile and assign me to the Health profile by clicking add, I will also check the current profile since I don't have any other. Click ok.

image

As you can see above I have 0% fulfillment which is expected. Now you and/or your manager can go in and assign you this competence, this of course is only true if you choose self assessment. That's all right, but also under expired competencies you can now se that you are missing competencies.

image


So now we have a way to identify the need for health checks on employees that are under 40. Both the employee and mangers can now follow up on what we needs to be done.

Next blog will cover how to set up an activity so when you click the Close Gap button you will be presented with some health check options that will fulfill your gap. And the post after that will cover the job on how to to adjust the expire duration based on age.

Monday, August 31, 2009

Agresso HRM is continuing to invest in Quality software

We are still focusing on quality software here on HRM and apart form starting to make some backend changes to our build and check in process we have committed our selves to reach a bug count of 0 before we start up new development. We are of course aware that there may still be bugs but we really want our customer and our selves to get a new clean start with 4.5. On top of this commitment of fixing all open bugs we recruited a senior software tester that will join us at office on September 7. Not only will she be responsible for improving our test she will also help and manage the testing process from story cards to test cases. We are looking forward with great anticipation on the influence she will have on us here at development.

 

First priority for our new tester

  1. Improve our ability to avoid regression bugs
  2. Functionality testing
  3. Usability testing

 

The hunt for quality

So how is the journey towards 0 bugs going, are we ever going go build features again you might wonder. If I may say so its going pretty darn well. And one reason for knowing this is that we have consolidated all customer bugs in to one list and we only work from this list. Here is a couple of quality KPI for you.

 

bugcount

As you can se we have 23 open bugs at the moment. Don’t be alarmed by the deleted bug count. A bug can be deleted for a couple of reasons.

  • Its already fixed in a later version
  • Its a duplicate
  • Its not reproducible for us
  • Its NOT a bug, its  a feature ;) yeah I know but its true its now common but they do exist.

Also an interesting measurement is what kind of bugs are we finding and getting reports on .

We have 3 mainly three categories of bugs

Blocking – That is a bug so severe that there is no way around it, all or most customers would be affected by it because its a central piece of functionality.

Critical - That is a bug that is severe but there is a way around it, all or most customers would be affected by it because its a central piece of functionality.

High – All other bugs

The below chart illustrates both progress and the type of bugs: 
asdfasdf

As you can see our fixrate is almost twice as high as the found rate, So given that we have a sustainable pace on both fixing and finding bugs it looks like we will be done with all bugs in about three weeks time  (26 currently open, 18 new bugs per week and we fix around 40 a week).