Skip to main content
Question

How do you format a API_PurgeRecords button?

  • May 10, 2018
  • 0 replies
  • 67 views

I'm sorry but I'm not very experienced in coding. I'm trying to just create a button on a table or home page that will allow me to use the API_PurgeRecords to delete some records on a table based off a checkbox field. How would I format a URL formula field or text page to create a button that will do this?
This topic has been closed for replies.

  • Registered
  • May 10, 2018
Typically the API_Purge is used to delete a record and all its children and all its grandchildren.  In order to define which tables/relationship records to purge you have to define that within a code page.  I've never used the purge without a code page to define the variables.  

Its not something I'd want to put in a button.

No if you are trying to make a single delete button to clear a single record... that is an appropriate button code.

"javascript:DoDelete(\"Record\", gReqDBID,"&[Record ID#]&")

There is a low tech solution


The API_PurgeRecords API as descibed here https://help.quickbase.com/api-guide/index.html#purgerecords.html can have a parameter to filter which records get purged.

URL Alternative

https://<em>target_domain</em>/db/<em>target_dbid</em>?a=API_PurgeRecords&qid=10<br>&ticket=<em>auth_ticket</em>&apptoken=<em>app_token</em><br>

where target_domain is the domain against which you are invoking this call, for example, intuit.quickbase.com.


So you can make a report where the filter is that checkbox being true and hide the report form all role so no one is likely to mess with it.  i would also put in the description of the report to not delete or alter the report.

so the URL formula would look like this below.  The javascript code will simply run the  formula variable called URL to do the purge and refresh the page.


var text URL = urlroot() & "db/" & [_DBID_TABLE name goes here] & "?act=API_PurgeRecord&qid=99";

"javascript:" &

"$.get('" & 
$URL & 
"',function(){" &
"location.reload(true);" &
"});" 
& "void(0);"


You can put that into a URL formula field.  If you want to have a dashboard button, make the URL formula on a field somewhere in the app and expose the code by by suppressing the link text.  Then copy and paste the code into a URL dashboard button element.

I would test this first on a Copy of your app, as when you purge records they are "gone baby gone".

There is also another way to alter the URL to not depend on a report qid, but rather just use query parameters.  That would actually be a bit safer as that way you would not have a risk of someone removing the filers on your report and then the purge might purge everything.



JimHarrison
Forum|alt.badge.img+18
  • Registered
  • May 11, 2018
Automations (in beta) will also do this. I think you can do it with Actions too but have never tried. 
The Action triggers when the check box is checked, which is done using the button.

I don't think that an Action can delete, it can only add or edit.

Yes, An Automation can delete, but when I tried  to use one for a real client, the deletions were painfully slow to run, so I abandoned that step in the Automation and did the delete with the API Purge as that was instant.  We will see if delete is any different when it goes into GA (general Availability) release.

In my case I was deleting hundreds or thousands of records and the automation was just too slow. I think it deleted them one by one on some slow paced basis as opposed to more of a mass delete.