Category Archives: Geek

Invoking a Task via XPRESS in Sun’s Identity Manager 7.1

Occasionally, I’ve wanted to invoke an Identity Manager Task from within a rule in XPRESS. Here is a rule that will do that:
<Rule name=”runTask”>
    <RuleArgument name=’taskName’/>
    <RuleArgument name=’taskVariables’/>
    <RuleArgument name=’execMode’/>
    
    <block>
        <defvar name=’processView’>
            <new class=’com.waveset.object.GenericObject’>
                <ref>taskVariables</ref>
            </new>
        </defvar>
        
        <invoke name=’setId’>
            <ref>processView</ref>
            <s>Process</s>
        </invoke>
        
        <invoke name=’put’>
            <ref>processView</ref>
            <s>task.process</s>
            <ref>taskName</ref>
        </invoke>
        
        <invoke name=’put’>
            <ref>processView</ref>
            <s>task.taskName</s>
            <ref>taskName</ref>
        </invoke>
        
        <cond>
            <ref>execMode</ref>
            <invoke name=’put’>
                <ref>processView</ref>
                <s>task.execMode</s>
                <ref>execMode</ref>
            </invoke>
        </cond>
        
        <invoke name=’checkinView’>
            <rule name=’getCallerSession’/>
            <ref>processView</ref>
            <null/>
        </invoke>
    </block>
</Rule>
And here is a sample invocation:
<rule name=’runTask’>
    <argument name=’taskName’ value=’myTask’/>
    <argument name=’taskVariables’>
        <map>
            <s>taskArgument1</s>
            <ref>myVariable</ref>
            <s>taskArgument2</s>
            <s>String Data</s>
        </map>
    </argument>
    <argument name=’execMode’ value=’async’/>
</rule>
The value of execMode should be one of the following:

sync
Specifies synchronous or foreground execution
async
Specifies asynchronous or background execution
asyncImmediate
Specifies asynchronous with immediate thread launch

HTTP File Uploads with Sun’s Identity Manager 7.1

Identity Manager has a display class called FileUpload which you can use to do HTTP File Uploads. In a form, it would look something like this:
<Field name=’fileUpload’>
    <Display class=’FileUpload’>
        <Property name=’Title’ value=’File to upload’/>
    </Display>
</Field>
In the above example, the field fileUpload would be set to an object of type DataSource. I want to use the contents of the file as a [...]

Parsing XML in XPRESS Rules Within Sun’s Identity Manager

I’ve been doing a lot of work with Sun’s Identity Manager lately, and have some things that might be of interest to other’s so I’ll try to post them here as time permits.
I think the coolest thing I’ve done so far is to build a library for parsing XML within XPRESS. It’s actually fairly [...]