Is it possible to revert last change?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jakub Grufik
    Senior Member
    • Aug 2022
    • 361

    Is it possible to revert last change?

    Hello guys,

    yesterday I modified the formula for our entity Opportunity. However, there was a mistake in the code and a lot of opportunities have now price 0.00EUR. Is it possible to somehow revert the change? For me it would be completely fine to revert just the last change. The change is being audited in the Stream. Is it somehow possible to filter out opportunities by some change log in the stream?

    It would be really helpful for me to somehow automate this task to avoid a lot of manual work.
    Thanks a lot for the tips!Click image for larger version

Name:	image.png
Views:	194
Size:	39.8 KB
ID:	97487
  • shalmaxb
    Senior Member
    • Mar 2015
    • 1602

    #2
    Only idea, that comes to my mind, use a database backup of that table.

    Comment

    • lazovic
      Super Moderator
      • Jan 2022
      • 809

      #3
      Hi Jakub Grufik,

      You can try to get the previous fields values with this function in the formula script: https://docs.espocrm.com/administrat...tributefetched

      But first, test it in the Formula Sandbox.​

      Comment


      • Jakub Grufik
        Jakub Grufik commented
        Editing a comment
        Hello, thank you for the tip. I already tried this and its returning 0 so function attributeFetched is keeping the original value only within that one update.
    • victor
      Active Community Member
      • Aug 2022
      • 727

      #4
      If changes occurred in several records, it is faster to restore the data manually, taking them from the Stream. However, if you used the Recalculate Formula for all records, then a backup is a better option.

      Comment

      • lazovic
        Super Moderator
        • Jan 2022
        • 809

        #5
        Jakub Grufik,

        There is one way to return the data that was recorded in the stream in a Update post (as in your screenshot). It will work if there were no changes recorded in the Stream later.

        You need to create a Workflow with:
        • Target Entity: Opportunity
        • Trigger Type: Manual
        Actions:

        Execute Formula Script
        Code:
        $opportunityId = workflow\targetEntity\attribute('id');
        
        $updateNoteId = record\findOne('Note', 'createdAt', 'desc', 'parentId=', $opportunityId, 'parentType=', 'Opportunity', 'type=', 'Update');​
        ​​​
        Send HTTP Request​ (you should only change URL and X-Api-Key - API key of your API user)

        Click image for larger version

Name:	image.png
Views:	267
Size:	20.4 KB
ID:	97499

        Update Target Record > Opportunity​​ (change the fields in the formula by analogy)
        Code:
        $amount = json\retrieve($_lastHttpResponseBody, 'data.attributes.was.amount');
        $closeDate = json\retrieve($_lastHttpResponseBody, 'data.attributes.was.closeDate');
        
        amount = $amount;
        closeDate = $closeDate;

        It can be converted into another type so that, for example, it works after updating a record (in this case, you can use Recalculate Formula). But first, try this option.

        Be sure to let me know if you have any problems or questions.

        Comment

        Working...