The ILM_Scheduler is now available for download

As promised, I am now making my ILM_Scheduler service source code available for download. In brief, the notion is to optimise ILM/MIIS scheduling through the use of a queue. You add jobs to the queue and they are executed, one at a time, and in order of priority. You can schedule a job by adding…

Uniqueness check against the Metaverse

ILM works on a single object at a time, so it can be a little tricky if you want to make a decision based on other objects in your metaverse. It is, however, perfectly possible (though, I believe, officially discouraged) to run SQL queries against the metaverse table from your extension code.

Advanced Attribute Flow Rules

Today I will introduce the simplest coding element in ILM – advanced attribute flows. Direct attribute flows can be done with no code, but they’re not all that interesting – all you can do is flow one value directly to another, or apply a constant value. To manipulate values, or to use the values of…

An introduction to ILM coding

While writing this series of newbie posts I have, on a few occasions now, had to stop half-way through a post because I’ve realised that something else needs to be explained first. I’m at the point now where I can’t go any further without introducing the topic of writing code. I have spoken to several…

Should you ever run external processes from extension code?

I had an interesting chat with an ILM collegue the other day, and one of the topics that came up was whether you should ever, under any circumstances, call external processes from extension code. The prohibition on calling external processes from provisioning (MVExtension) code is clear and well accepted (see the Calling External Processes section…

An XMA to Create Apache Websites

Once you get the hang of Extensible MAs a whole world of possibilities opens up. If you’re trying to achieve something that is related to Identity in some way, and it’s scriptable, then you can do it with an XMA. One such example I came across, in a university environment, was personal websites. Certain users were eligible for…

Keep Provisioning Logic out of the Provisioning Code

Early on in my MIIS project I had a consultant in to give me some pointers. He showed me how to create two functions ShouldObjectExist and ReadyForCreation at the top of my MVExtensions, and use them to control provisioning. Private Function ShouldObjectExist(ByVal mventry As MVEntry) As Boolean         << Evaluate mventry to determine if CS object should…