Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
keithlawrence
Contributor III
Contributor III

QMS API Delete Name CALs

I'm trying to delete named CALs via an API for users that have left the business but struggling.

Fully aware of the license agreement that licenses can't be reallocated around the business whilst the employee still works here. To be clear, these licenses are assigned to people who have left the business so I am fully with the terms of agreement to reassign them (This always seems to be the response when I've been searching the community on this subject).

After several days, I have a list of Named User CALS along with a list of all users in Active Directory. I've compared the lists and now have my list of Named User CALS that are not in AD and therefore left the business.

I am using QV12.10 and my list of leavers is stored in a variable list called resultsLeavers. I've only started looking at C# language three weeks ago so very much at basic level!

Any help out there? Somethings I've read state that the removal of user CALS in QV12 is not available via an API.

If all else fails, at least I have the list of leavers and we can manually go through and delete them. I just wanted an automated monthly process to make it easier.

Thanks

Labels (2)
2 Solutions

Accepted Solutions
Ray_Strother
Support
Support

Hello ,

 

Sorry for the short answer.

 

1. Using Google chrome you can capture the function via the developers tools
2. capture the delete via Network / Headers (meaning you can capture the Delete command in the  Network> Headers section of the developer tool ) 

Example of a deletion of an assigned Name Cal:

< update mark="c128bfa3-e6e2-4499-9531-643b422e94c4" stamp="637021808117353903" csrf="TilsJSF5Ik1OOEVDRGp6" cookie="true" scope="EntLicenses" ident="63d9443d-442e-4615-ae4d-2c3c91766f85" kind="EntLicenses" >< set name="EntLicenses.Properties.CalInfo.AssignedList.List" cell="1:Delete" / >< /update >

 

Note: the trick will be getting the script to pull in the list of names

Please note the following license information:

https://www.qlik.com/us/-/media/files/legal/license-agreements/qlikview/qlikview-license-metrics-en.... 

The section in question is the following: 

C. Identified Users 
To use a Named User CAL or Document CAL, the user must be identified via an authenticated user name (Windows Active 
Directory or through a ticket exchange between the web server and QlikView Server). The two methods of identification cannot be mixed on the same QlikView Server. An IP address is not a valid form of user identification. Note that the user name identification requires Windows authentication on AJAX clients, since machine name identification cannot be used for these clients. 

Named and Document CALs are assigned to an identified user and may not be transferred to another user unless the transfer is due to a i) termination of employment, or ii) a transfer of the user to a new business unit or group resulting in no access to the Qlik Software. When a Named User or Document CAL is transferred, there is a 7-day quarantine before the CAL can be used by another user. 

As you can see, the only times you are allowed to remove Named or Document CAL assignments is if the users have left the company or changed roles, removing users from these CAL types just because they have not used the product for a period of time is a violation of the license agreement... 

Hopefully that helps 

View solution in original post

Brett_Bleess
Former Employee
Former Employee

Keith, your best bet is going to be to look at the code in the QMC pages and the associated JavaScripts doing the actions, that is the only sure way of which I know for you to try to figure things out and write your own code at that point.  

Regards,
Brett

To help users find verified answers, please do not forget to use the "Accept as Solution" button on any post(s) that helped you resolve your problem or question.
I now work a compressed schedule, Tuesday, Wednesday and Thursday, so those will be the days I will reply to any follow-up posts.

View solution in original post

8 Replies
Ray_Strother
Support
Support

Hello Use the API call found via this information listed below.

1. Using Google chrome you can capture the function via the developers tools
2. capture the delete via Network / Headers

Note:  Qlikview 12.10 track is going end of support in November 2019 

Resources: 

https://help.qlik.com/en-US/qlikview-developer/12.1/APIs/QMS+API/html/Methods_T_PIX_QMSAPI_DataObjec...

https://www.mkyong.com/computer-tips/how-to-view-http-headers-in-google-chrome/


Example of a deletion of an assigned Name Cal:

 

keithlawrence
Contributor III
Contributor III
Author

Hi Ray,

I'm not sure that's answering my questions. I'm aware of the Qlik site showing the properties for the QMS API but I can't get the right command to update the user list or remove individuals.

Not sure what you mean by point 2?

Was there meant to be some text after your final line?

Ray_Strother
Support
Support

Hello ,

 

Sorry for the short answer.

 

1. Using Google chrome you can capture the function via the developers tools
2. capture the delete via Network / Headers (meaning you can capture the Delete command in the  Network> Headers section of the developer tool ) 

Example of a deletion of an assigned Name Cal:

< update mark="c128bfa3-e6e2-4499-9531-643b422e94c4" stamp="637021808117353903" csrf="TilsJSF5Ik1OOEVDRGp6" cookie="true" scope="EntLicenses" ident="63d9443d-442e-4615-ae4d-2c3c91766f85" kind="EntLicenses" >< set name="EntLicenses.Properties.CalInfo.AssignedList.List" cell="1:Delete" / >< /update >

 

Note: the trick will be getting the script to pull in the list of names

Please note the following license information:

https://www.qlik.com/us/-/media/files/legal/license-agreements/qlikview/qlikview-license-metrics-en.... 

The section in question is the following: 

C. Identified Users 
To use a Named User CAL or Document CAL, the user must be identified via an authenticated user name (Windows Active 
Directory or through a ticket exchange between the web server and QlikView Server). The two methods of identification cannot be mixed on the same QlikView Server. An IP address is not a valid form of user identification. Note that the user name identification requires Windows authentication on AJAX clients, since machine name identification cannot be used for these clients. 

Named and Document CALs are assigned to an identified user and may not be transferred to another user unless the transfer is due to a i) termination of employment, or ii) a transfer of the user to a new business unit or group resulting in no access to the Qlik Software. When a Named User or Document CAL is transferred, there is a 7-day quarantine before the CAL can be used by another user. 

As you can see, the only times you are allowed to remove Named or Document CAL assignments is if the users have left the company or changed roles, removing users from these CAL types just because they have not used the product for a period of time is a violation of the license agreement... 

Hopefully that helps 

Brett_Bleess
Former Employee
Former Employee

Keith, your best bet is going to be to look at the code in the QMC pages and the associated JavaScripts doing the actions, that is the only sure way of which I know for you to try to figure things out and write your own code at that point.  

Regards,
Brett

To help users find verified answers, please do not forget to use the "Accept as Solution" button on any post(s) that helped you resolve your problem or question.
I now work a compressed schedule, Tuesday, Wednesday and Thursday, so those will be the days I will reply to any follow-up posts.
keithlawrence
Contributor III
Contributor III
Author

Thanks Brett.

 

I think it's clear that this task is way beyond my skill set. I don't have any knowledge of Java or C# so it feels like a huge amount of effort for little benefit. I think we'll need to revert to our manual process.

 

Thank anyway

neilmartin
Luminary Alumni
Luminary Alumni

Hi All,

 

I'm heartened to see that this is a relatively new thread - since I'm having the same issue.

Again, as has been noted, I'll stress that our requirement is to remove Document CALs which have previously been automatically assigned to a named user who has now left the business.

I have two different examples of C# code - one from an original post by a Qlik author, and the latest from a Qlik Knowedge Article (https://support.qlik.com/articles/000017163 ).

In each case, all of the supporting code - to connect and collect document and CAL details from the server - works correctly.  However, the final API call to 'save' the changes to the Document Meta Data appears to have no effect.  That is, when I review the Document CALs tab in QMC after the code is executed, the Document CAL has neither been removed nor quarantined.

I did find a reference on Community suggesting that there was a bug in the QV Server - but I can't find this again!  I will keep looking, and I'll check the Release Notes for versions after 12.20, to see if I can find anything.

In the meantime, any further support or suggestions would be appreciated.

 

Best Regards

Neil

Neil M
Qlik Luminary 2020, 2019, 2018, 2017
Damien_V
Support
Support

There is a PowerShell example here, it should be easier than doing it via C# or Java for a beginner:

 
If the issue is solved please mark the answer with Accept as Solution.
neilmartin
Luminary Alumni
Luminary Alumni

Hi @Damien_V ,

 

Many thanks for the reference - I will take a look at this, but my feeling is that it is not the implementation method that is the issue.  The issue is that the Server does not seem to respond to the API call as expected.  Remember that I'm using example code provided, so it is not really a case of experience.

 

I will try to replicate this using the Powershell approach and post the results.

 

Best Regards

Neil

Neil M
Qlik Luminary 2020, 2019, 2018, 2017