Jump to content


Caspio Ninja
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by NiceDuck

  1. Just an update. As for the workflow I provided above, you are not collecting the values that are being used for searching since we are only using a dummy submission form filled with virtual fields. However, if would also be nice if we will collect those values so we can generate later what are the most search records on your reports. Anyway, if you happened to collect them, you can simply turn the field you are using on the step#5 to "Required" then use this formula instead. Case when [@field:payer] = 1 then *URL of your report datapage plust the other fields as a parameter* when [@virtual1] < 3 then *URL of your report datapage plus the other fields as a parameter* end. for this case, if all conditions is falls, the field will remain as blank. however, since it is a unique field. it will not accept blank values this is will prevent submission. You'll just have to change the error message on the localization. hope it helps, quack
  2. You may also want to refer on this another forum post.
  3. The timestamp is for making sure that the values will be submitted will never be similar to those previously submitted records. You may want to add some strings to it which is relevant to the Data you are submitting. You may refer to this one: CONVERT(VARCHAR(10), SysUTCDateTime()) + 'test' Quack
  4. Hello Shiro, For this case, what I suggest is create another field on your data source table (preferably text 255) and check the unique checkbox. Then on your submission form, set it to calculated value and make an SQL statement like this: Case When '[field:aaa]' = 'yes' then SysUTCDateTime() When '[field:bbb]' = 'yes' then SysUTCDateTime() When '[field:ccc]' = 'yes' then SysUTCDateTime() end BAsically, what it does is it checks all the mentioned fields. if none of them is equal to 'yes', the value of this field will be null. However, since blank values are unacceptable on unique fields, it will prevent the submission. You just have to change the error message on the localization Hope it helps Quack
  5. You may also mix that workflow with this one for overall cover:
  6. hmmmmm I guess you can use a calculated field/value then use conditional statement. put them on the same line with the dropdown by checking the "Place next element on the same line". As for the dropdown, set it to "No label" With that, the calculated field/value will be your label. Again, its just a suggestion. quack
  7. This is how I did it by a triggered action. Note, with this workflow, you would be able to keep the previous value of a field, it will not save the value of newly inserted record. first, duplicate the table which you want to have a history record. go to its table design and change its ID field to a text 255 and rename it "parent_id" or any name you want. Your call, as long as it indicates that it is the records former ID. also, make sure that this field is not set to unique. Add an Id field and name it "History_Id" this will be the records actual ID on its current table. this is not actually a necessity but just for... best practices I guess. Now, on your main table, create a triggered action that will copy the previous value of the updated fields to the history field. You may refer to this picture: There you have it. That is only the basics though. As mentioned above, you may also want to create a timestamp field to record when a value is updated or transferred on the history field. If you have authentication, it will also helpful if you will have a dedicated field for capturing the ID of the user who made the changes. Hope it helps, Quack
  8. Halo, I know that you mentioned "simple" on the post but you may want to check this post also if you want to create a log for knowing who deleted what : I hope this helps quack
  9. Hello @BretSparkman, I do have an idea for this, however, you will need the following. authentication dummy submission form report datapage set to search by predefined values from parameters. ****************************** we will need to the authentication to determine if the current user is paid user or paid user. make sure that the datapages that will be used on this work are authenticated. On your Users table, set a field for determining if a user is paid or not and set another field for counting the number of search. create a dummy submission form. A dummy submission form is a submission form with only virtual fields. with this, it will not save any data to the selected data source upon submission. Make all this virtual fields pass their value as a parameter on exit. The purpose of this dummy is this will be the search form of your user. Use virtual field as a calculated value and create condition statement that will check if the current user is a paid user or not and if not, check if its number of searches havent reach the limit yet. If good, it shall return the URL of the report datapage, If not, redirect it to somewhere else. Make sure that the report datapage are catching the right parameter for their searches. This is the whole Idea of this workflow. Feel free to ask if you need more details. quack
  10. Im not sure if I understand your workflow perfectly but as I understand, You do have a date field. this datefield is sometimes pre-populated and sometimes not. If this is pre- populated, the user shall not be able to edit those. However, if it is not pre-populated, then the user should be able to set a value. If this is the case, I think it can be done by using the rules feature and a virtual field. You are going to make the virtual field and the date field load the pre-defined value you wanted. Then, envelope the virtual field with HTML block containing html script for hiding: see instructions here: https://howto.caspio.com/tech-tips-and-articles/common-customizations/how-to-hide-fields-in-datapages/ Then, make a rule that if the virtual field is not blank, it will hide the date field. with this, the date field will only appear if it has no pre-defined value. I hope this helps.
  11. If you are not fond of multiple records display on your screen, I can also suggest that you create a dummy table and task triggers to calculate those values for you. Therefore, you will have a table which has the summary report of your transactions table.
  12. I quite...dont understand your problem. As I checked, you can actually make a virtual field catch an external parameter. However, virtual fields which are set to calculated value's cannot load values from parameter because they are meant to have their own value depending on the formula/calculation declared on them. If you need an external parameter on your calculated value, use a seperate virtual field to catch the parameter for you then call that virtual field on your calculated value
  13. @Shasha Further elaboration would really help...
  14. Hello, This is a possible worflow for that objective. first, both payers and non payers should be authenticated before search so we can track if the current user is a payer or not. I suggest that on the table which hold the user info, set a checkbox field there to differentiate them. second, we will have to separate the search form to the results page of your data-page, you may refer to this article on how to. : https://howto.caspio.com/tech-tips-and-articles/tech-parameters/how-to-separate-search-page-and-results-page-into-two-different-webpages/ However, we will not fully copy that step, we will modify it for a bit. I suggest that you do the the following instead. 1) duplicate your table which you use as a data source for this report datapage. name the duplicate whatever you like. 2) add some extra fields to your fields on the duplicate. a timestamp field upon insert and a field which is compatible to hold the id of the current user. (probably a text 255) 3) create a submission form using the duplicate table, Make sure to include the field for holding the Id. set this field to hidden with the id of the current user as a default value. 4) create a virtual field on the submission form to. set it to calculated value after that, we will use an SQL code to check how many records are submited by the current user by the current date. select count ([@field:IDfield]) from duplicate_table_ where DateDiff(day, SysUTCDateTime(), [@field:date]) =0; * note that [@field:IDfield] and [@field:date] shall be replace with the ID field and timestamp you just added on the duplicate table 5) create another virtual field and set it again to calculated value. this time, we are going to create a condition statement if the user shall be allowed to search or not. Case when [@field:payer] = 1 then *URL of your report datapage plust the other fields as a parameter* when targer.[@virtual1] < 3 then *URL of your report datapage plust the other fields as a parameter* Else www.somewhereelse.com end. 6) Set your submission form to redirect to another website upon submit. use the URL your virtual field 2 as the source for its URL 7) last, you just have to set your report datapage to be filterd by external parameters. The codes may not work but I hope you get the idea.
  15. We cannot have a triggered action into a view. It is only available on tables. I suggest that you just make a triggered action on the table which are involve on your views. You can only edit one table in a view anyway. If you need the other tables record on your triggered action, you may call upon them by using the *select from block or by using the join feature. If you will provide more information on what you are trying to achieve, perhaps we can suggest a work around. Hope it helps. quack
  16. @VivianaKirkland I havent tried that kind of workflow yet but I think you can do something about that by using views. Lots of it. probably one per user level. Imma try something on my end and reply in here again this sunday... or never But I really think we can do something about this with views
  17. Hello again @Shiro That will surely wont work... The last time I check, trigger doesn't activates when you use import for updating or inserting data. I can suggest this workaround though. instead of directly updating your table from import, import your records to a dummy copy of your main table first then use Task to update the main table from records imported to dummy table. by then you can now use a condition statement to not include those records with blank values Hope it helps quack
  18. If you are planning to count them by how many times they clicked the download link on the duplicate report page, then no. I dont think we can do something about that without JS magic. If you are planning to count them depending on the how many times they sent an email, then simply use an autonumber id field on your data source for the submission. It should automatically count them for you. If you want to be more neat, use triggered action and use a seperate datasource so you can also count how many times a certain email is submitted. Though I guess it can also be done via SQL on calculated fields/value/. QUACK
  19. Hello @Shiro You have a fair point regarding about that. I have a resolution for that but it is going to be troublesome. My idea is use passing parameters via query string. You will have to separate your search form and reports page by making a dummy submission form and and setting your reports page's search setting to filter via external parameter. follow the instructions here: https://howto.caspio.com/tech-tips-and-articles/tech-parameters/results-and-details-on-two-separate-web-pages/ on the first download link (the one who will redirect you to submission form ) include the parameters from your search in there even though it is not needed on the submission form. However, you may want to record those also, so you can have a record of what the certain submitter searched and downloaded. Then, on your final redirection, include those parameter again on your URL. Its like passing the parameter, multiple of times until you it reach the final reports datapage. I hope you get the idea I think their is a JS for capturing the URL of the first report page. if you can find something like that, you can lessen the trouble of this workflow by simply capturing the whole URL and using it as the parameter. Quack
  20. Hello Shiro, I have have an idea for a possible workaround for that. But this work around is kinda pricey since it will require you some additional datapages. My idea is, multiple redirection. on your first/ main report datapage, disable the download function for your file. Then create an HTML block that that has a link which upon click, will redirect the user to a submission form where the user has to enter his email first. Then upon submission, the user will be redirected to another report datapage (possibly a copy of his main/first report datapage) which has the real download options enabled.
  21. @kpcollier kind of, that way, we can track when when did you send the link to them. All we need is the date when you send the link. The name is not that relevant actually, its just so you can determine on whom you sent the link. quack
  22. Hello, I would like to share some workflow again for those who dont have a triggered action feature. With this workflow, you will be able to make the auto email function of your details page activates only depending on the number of times it was updated. Again, this feature could easily be done by using triggered actions however. It is not available for some of us. well, without further adew, here it is... first, you will have to make an integer field on your desired table. lets name it "update counter". make sure that this field has a default value of 0. For how will you do that, it is up to you or reply here if you dont know how. second, go to your details page where you want to implement this feature. you will have to create two virtual fields . on the first calculated value (virtual1), you will have to make it load the value of the "update counter field". If you would like, you can also set it to hidden if you want. Then, set the "update counter field" as a calculated value. This will be our incrementor (you'll get the idea). It can be done by adding 1 to the value virtual field you created from the previous step. use the SQL code beloew: ******************************** [@cbParamVirtual1] + 1 ****************************************** Then we will use the other virtual field (virtual2) as a calculated value and use it as a condition statement where if the equation above is = 0, it will return the desired email. Otherwise, it will return nothing: you may use this SQL code. ******************************** case when [@field:update_counter] % 3 = 0 then [@field:email] else '' end *replace the [@field:email] with your email field or your desired email. ************************************ Finally, go to the Search and Report Wizard - Email Options use the "virtual2" at the "to" field of your email. with this. with this workflow, the email on the "To" field of your "acknowledgement" or "notification" email will be null unless the counter has the proper value. Thus it will not send an email I hope it helps anyone. Quack
  23. Hi @kpcollier, Im not sure if my understanding on your inquiry is correct but as I understand, you have a submission Form where you want it to be inaccessible after some amount of time. for example, you have sent client a the link at october 1, this link should no longer be accessible by november 1. However, to those who got the link by october 30 should still be able to access the link by november 30. Is this the workflow you want? I think this could be done via JavaScript but I am not even adept to that, so what I will do is to use another datapage again. (sorry please dont cook me) However, since I do not know your full workflow is, there may come some complication. My idea is to create a auto submit single update page which will redirect you to the proper site if the condition is is right. else, It'll just send you somewhere else. you may refer for this post about the different redirection: However, instead of using the field for email, use the field for the URL where the you want to be redirected. This will be the structure. 1st, create a table containing the following fields: Random ID Name Date sent Date receive Those person whom youll be sending the link should have a record already on this table for the field "Random ID" ,"Name", and "Date Sent". 2nd, create a single update form that is determined by their ID which loaded through external parameters. The link you'll be sending to your customer should be the link for them to access this single update form. In this SUF (single update form, I'll use acronym it because its long) make a virtual field and set it as a calculated field. In here, you will have to make Condition statement in it with some date diff functions. Kinda like this CASE WHEN DateDiff(day, [@filed:Datesent], SysDateTime()) > 30 THEN "www.yourdestinationURL.com" ELSE "www.somewhereelse.com" END Then, you have to create a HTML block containing this JS code: <script type="text/javascript"> if(document.getElementById("caspioform")) { document.getElementById("caspioform").style.display = 'none'; setTimeout('document.forms["caspioform"].submit()',10); } </script> -------------- this code will make your SUF auto submit finally, on the end of your the wizard, set it to redirect to a new page and use the field picker to insert the "[@field:virtual1]" then click finish. the URL you have to send to your clients now are URL for this SUF along with their random id as the parameter. However, this again will consume a datapage. Please dont cook me Im a niceduck not a tasty duck I wish you atleast have the idea. Im not confident with my english since im kinda starving right now, might be affecting my thinking... anyway, I hope this helps you. quack P.S. You may also explain your desire a bit more further and let see what else we can do. I dont know Javascript though.
  • Create New...