Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
RajneeshSharma
Contributor III
Contributor III

Qlik replicate CURL POST not working

 
 

Hi

 

Please refer to

https://community.qlik.com/t5/Qlik-Replicate/Enterprise-manager-REST-API-PUT-call-not-working/td-p/2...

I tried below solution suggested in above post

curl -i -k -v -X POST --header "EnterpriseManager.APISessionID: PXGgboAmc9pjTUPyANj2gw" --header "Content-Type: application/json" https://test/attunityenterprisemanager/api/v1/servers/test?action=import -T c:\myrepsrv1.json

myrepsrv1.json

{"$type": "AemReplicateServer", "name": test", "description": "test", "host": "test", "port": "3552", "username": "admin", "password": "{{}}", "verify_server_certificate": false, "monitored": true}

but it gives me below error

{"error_code":"DESERIALIZE_TO_TYPE","error_message":"Failed to deserialize json to type ReplicationDefinitionExport: Type specified in JSON 'Attunity.AemDataModel.AemReplicateServer, AemDataModel, Version=2022.11.0.860, Culture=neutral, PublicKeyToken=null' is not compatible with 'Attunity.Replicate.Globals.ReplicationDefinitionExport, RepuiGlobals, Version=2022.11.0.860, Culture=neutral, PublicKeyToken=null'. Path '$type', line 1, position 30.."}*

Looks like it didnt like  "AemReplicateServer"

Any idea?

Labels (1)
2 Solutions

Accepted Solutions
Heinvandenheuvel
Specialist II
Specialist II

The post action seems to be working and correctly reporting a problem with the  provided JSON and tells you so: 

"Failed to deserialize json to type ReplicationDefinitionExport: Type specified in JSON"

So what you are saying is that the POST action is working very well, but you cannot read.

Did I say that out loudly? That wasn't very nice. Sorry. Do you see what I mean though?

The JSON provided is for a server definition, a one-time action for which the "def" command should/can be used (or just use the GUI for this step!)

According to the API guide the ".../servers/{ServerName}?action=import" belongs to ImportAll which often is done over and over, and needs to be fed the output from an Export All (GUI or API or REPCTL) command: "All valid JSON definitions provided in the request body will be imported. This includes server settings,
task settings, endpoints, and other definitions. " -

This command should follow the PutServer command as it uses that server definition to find it by ServerName and then provide it the selected server the commands/information needed 

Nit-picking: This post post title reads "Qlik replicate CURL POST not working". Well, replicate does NOT have a CURL POST interface. The Enterprise Manages does and is has a specific sub-forum  which might be more appropriate, but admittedly gets far fewer (but more dedicated??) readers. 

https://community.qlik.com/t5/Qlik-Enterprise-Manager/bd-p/qlik-enterprise-manager-discussions

Good luck!

Hein

View solution in original post

RajneeshSharma
Contributor III
Contributor III
Author

I used GetServer followed by PutServer in same function definition(using same session) and it worked. Thanks for providing the clue

View solution in original post

4 Replies
Sue_Macaluso
Community Manager
Community Manager

@RajneeshSharma Hi, I see you posted a few times, I released them please delete the duplicates and if you cannot send me links and I will delete. You can only delete if someone hasn't commented. Sorry about this. 

Sue Macaluso
RajneeshSharma
Contributor III
Contributor III
Author

Thanks. I deleted a duplicate. 

Heinvandenheuvel
Specialist II
Specialist II

The post action seems to be working and correctly reporting a problem with the  provided JSON and tells you so: 

"Failed to deserialize json to type ReplicationDefinitionExport: Type specified in JSON"

So what you are saying is that the POST action is working very well, but you cannot read.

Did I say that out loudly? That wasn't very nice. Sorry. Do you see what I mean though?

The JSON provided is for a server definition, a one-time action for which the "def" command should/can be used (or just use the GUI for this step!)

According to the API guide the ".../servers/{ServerName}?action=import" belongs to ImportAll which often is done over and over, and needs to be fed the output from an Export All (GUI or API or REPCTL) command: "All valid JSON definitions provided in the request body will be imported. This includes server settings,
task settings, endpoints, and other definitions. " -

This command should follow the PutServer command as it uses that server definition to find it by ServerName and then provide it the selected server the commands/information needed 

Nit-picking: This post post title reads "Qlik replicate CURL POST not working". Well, replicate does NOT have a CURL POST interface. The Enterprise Manages does and is has a specific sub-forum  which might be more appropriate, but admittedly gets far fewer (but more dedicated??) readers. 

https://community.qlik.com/t5/Qlik-Enterprise-Manager/bd-p/qlik-enterprise-manager-discussions

Good luck!

Hein

RajneeshSharma
Contributor III
Contributor III
Author

I used GetServer followed by PutServer in same function definition(using same session) and it worked. Thanks for providing the clue