Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
mplautz
Contributor III
Contributor III

REST/Web API for editing Sheets/App Objects

Before I ask my question, let me explain my set up. I support sales, and provide them with product and revenue data. We have different teams selling different offerings (services/software/hardware options etc.), and since each team has slightly different concerns, each team gets their own app. This is to prevent there being one single app with over 100 sheets - this is how it used to be and it didn't work. Having several apps works fine for our users. Every app has the exact same data loaded into it, so in effect, any sheet could be copied from one app to another just fine. This makes it easier to limit the number of sheets so we only show the data pertinent to each team.

To achieve the same data in each app, I use an external script that each app loads with a MustInclude directive. This works for the backend, but it would be tremendously helpful if such a concept like this existed for sheets in the front end. So far, the only mechanism to edit sheets is via the visual editor within the app. If I have a similar app object (like a chart) that needs to be in multiple apps like I have set up, every time a change is made, I have to make the update in one chart and manually go copy that to each of the apps. This is in contrast to the load script, where I can make the change in one place, and it will propagate to all of the apps next time the load (automatically) because they all use a common external load script file.

I imagine I could achieve front end edit automation if there were some sort of REST or Web API for editing Sheets or App Objects. If such an API existed, I could make the change in one place, and then run an automation that retrieves an app object by ID in a serial text form (such as JSON or XML), and then overwrites the same app objects in other apps. This would be a huge times save. Does anything like this exist?

I suppose it would also have the same effect if there were such a thing as Master items between apps - like a Master item in one app that I could share with other apps, so an edit in one place would in effect edit them in all places. I am on QlikCloud, so I don't know if the source app would have to be in a shared or managed space.

 

Labels (3)
2 Replies
Daniel_Pilla
Employee
Employee

Hi @mplautz ,

I would look into the build and unbuild commands within the Qlik CLI. These commands serialize and deserialize an app to and from json. This would allow you to unbuild an app, edit an object, and then rebuild the app with those modifications programmatically.

I hope this helps-

Cheers,

mplautz
Contributor III
Contributor III
Author

Hi @Daniel_Pilla , this is exactly the kind of thing I was looking for! This would give me the ability to version control my sheets, so that if I ever make an update to a formula or something, I could revert to a previous state.

I was able to get pretty far with the API using a reference QlikCloud app as an example. I was able to unbuild an app, and then build a copy of that app, as well as reload it. This was really cool. But then I hit a stubling point that I haven't seen a lot of documentation on. Any time I try to re-build over the copy of the app, I get this specific error: "5 GENERIC ACCESS DENIED". I get it when I used the command qlik app buildqlik app object update, or qlik app object rm. I thought it might be failing for the whole app, so I tried to update just one object. Then once I couldn't get an update to work, I tried removing that object to see if I had to do that first to update it.

This update capability is pretty crucial to this process being useful, because I need to be able to make a common update to a sheet across apps. I have this app residing in a shared space, to which I have all permissions, and I have a professional license, so I'm not sure where the access is getting hung up, and I am not able to find any online information about this specific error.

But otherwise, if I can somehow get through that error, then this Qlik CLI is precisely what I need to accomplish my business need.