How do I create DACS "sub" IDs for MIP via the Web services API?

I'm trying to automate the creation of application-specific IDs for existing DACS IDs, but I can't get that to work from the Web Services API. Say I have an existing user "asmith", and I want to create "asmith#56" as a sub user for Eikon.

Initially, I'm not clear on whether this is done as an update (setDacsUserDefinition) to the user "asmith", or a creation (createDacsUserDefinition) of "asmith#56" - but I've tried both, and neither seem to do what I want.

Creating "asmith#56" with mIsMIPOn=0 makes a user in its own right named "asmith#56". With mReportedUser="asmith" and withmIsMIPOn=1, it errors out with "User name supplied is invalid".

On the other hand, updating "asmith" with mRenamedUsers=<a dacsUser object with mDacsUser=asmith#56> successfully updates any other changed attributes, but doesn't actually make a sub user.

Please help point me in the right direction. I think just knowing which approach to take will help massively, but a primer on when / how to use mRenamedUsers, mIsReportedUser and mIsMIPOn would save me a lot more trial and error.

Thanks!

Best Answer

  • Hello @daniel.wray,

    As a disclaimer, I am a developer, rather then a dacs admin, so my understanding of what you are trying to achieve is not as complete...

    I think you are looking to create new users via API?

    Try not setting mName. Just mLogin. Something similar to:

    _dud2 = client.factory.create('dacsUserDefinition')
    _dud2.mLogin = 'asmith#56'
    _res = client.service.createDacsUserDefinition(_dl, _ds, _dud2)

    You should see those new users (asmith#56) reflected within you admin ui, and should not see "user name supplied is invalid" error on create.

    In addition to that, I think you are looking to set properties on the current users to co-relate them to the new eikon users and making those new ones sub-users?

    So something similar to this:

    _dud.mIsReportedUser = False
    _dud.mIsMIPOn = True
    _dud.mReportedUser = 'asmith#56'

    If within dacs ui the user definition does not have what you expect, you can always delete it and try a different property:

    _du.mDacsUser = 'asmith#56'
    _res = client.service.deleteDacsUserDefinition(_dl, _ds, _du)

    Let us know if this approach discussion was of help?

Answers

  • Hi Zoya - unfortunately it didn't, and I got to the point where it made more sense to just manually update the required users than to spend any more time on it. I'll likely need to come back to it later as we add more users, so will pick it up then. Thanks for your help.