1 Reply Latest reply: Mar 28, 2013 1:23 PM by tk RSS

    ICF connector with Multi-value attributes

      I'm writing a custom ICF connector for OIM and I need to provision a Multi-valued attribute. I create child forms and attached it to the parent form. In my ProvAttrMap I have an entry for <Form Name>~<Form Field Label> <-> <Connector Attribute Name>

      You can see the following code that gets printed out to the console when I run the create user show that unixuids is part of the schema. But for some reason, it does not pick up the child form. Parent form gets provisioned fine with no problems but it never passes the child attributes/forms.

      Before I used to get the error <tcFormInstanceOperationsBean/isProcessFormChildDataDataUnique: no PRF isKey set up for sdk:28> So I went to the table and switched the prf_iskey to 1 and that error is gone. I'm not sure how to fix that issue as well.

      In my create, Here is how I'm checking if the attribute is in the attribute set that get's passed in. __NAME__ is the only attribute that get's passed in the attrs map.
      AttributesAccessor attrAccess = new AttributesAccessor(attrs);
      boolean hasUIDS = attrAccess.hasAttribute("unixuids"); // returns false
      Message: Return: <Schema>
          <ObjectClassInfo type='__ACCOUNT__' container='false' embedded='false'>
              <AttributeInfo name='unixuids' type='String'>
                <AttributeInfoFlag value='MULTIVALUED'/>
              <AttributeInfo name='__NAME__' type='String'>
                <AttributeInfoFlag value='REQUIRED'/>
                <AttributeInfoFlag value='NOT_UPDATEABLE'/>
      Edited by: DJ on Feb 21, 2013 4:24 PM

      Edited by: DJ on Feb 21, 2013 4:30 PM
        • 1. Re: ICF connector with Multi-value attributes
          Hi DJ,

          It is not clear from your post what might be wrong. However please make sure that you have correctly configured the child table create/update/delete triggers in your process in OIM. Because of the way child table handling is designed in OIM, when provisioning user with child tables, your connector is going to be invoked twice: first you will get 'create' method call with parent form attribute, then you will get 'update' method call with child table attributes.