# PPro Beta & UXP operation history

**URL:** <https://forums.creativeclouddeveloper.com/t/ppro-beta-uxp-operation-history/9022>\
**Category:** Premiere Pro\
**Created:** [January 10, 2025, 6:08am UTC](https://forums.creativeclouddeveloper.com/t/ppro-beta-uxp-operation-history/9022 "2025-01-10T06:08:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Taka-884](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/taka-884/32/4241_2.png) [@Taka-884](https://forums.creativeclouddeveloper.com/u/Taka-884)\
**Post date:** [January 10, 2025, 6:08am UTC](https://forums.creativeclouddeveloper.com/t/ppro-beta-uxp-operation-history/9022/1 "2025-01-10T06:08:54Z")

</div>

Hi,  
Unlike ExtendScript, PremierePro Beta & UXP leave history of operations in ‘History’. This allows users to ‘Undo’. This is good!  
I think it would be even better if we could do ‘beginUndoGroup() ~ endUndoGroup()’ like AfterEffects ExtendScript. What do you think?

 ![UXPleaveHistory](https://us1.discourse-cdn.com/flex015/uploads/xdplugins/original/2X/1/12e6a05b545afab458a74364f5fcd797c9e4d08c.png)

---

<div class="post-metadata">

**Author:** ![CathyDong](https://avatars.discourse-cdn.com/v4/letter/c/a8b319/32.png) [@CathyDong](https://forums.creativeclouddeveloper.com/u/CathyDong)\
**Post date:** [January 14, 2025, 12:18am UTC](https://forums.creativeclouddeveloper.com/t/ppro-beta-uxp-operation-history/9022/2 "2025-01-14T00:18:08Z")

</div>

Hi!

If you would like do or undo a group of actions, you can consider add multiple actions to `compoundAction` before executing it.

Example code:

```auto
const ppro = require("premierepro");
const filterFactory = ppro.VideoFilterFactory;
const newComponent1 = await filterFactory.createComponent(
      "PR.ADBE Gamma Correction"
    );
const newComponent2 = await filterFactory.createComponent(
      "PR.ADBE Extract"
    );
// assume you have defined videoComponentChain from valid trackItem and project 
let success = false;
try {
      project.lockedAccess(() => {
        success = project.executeTransaction((compoundAction) => {
          var action1 = videoComponentChain.createInsertComponentAction(
            newComponent1,
            2
          );
          var action2 = videoComponentChain.createInsertComponentAction(
            newComponent2,
            2
          );

          compoundAction.addAction(action1);
          compoundAction.addAction(action2);
        }, "Add multiple effects");
      });
    } catch (err) {
      log(`Error: ${err}`, "red");
      return false;
    }

```

By doing so, undo action will remove both added effects at the same time. [Another reason we switched to action-based setting APIs!]

Thanks for the feedback!

---

<div class="post-metadata">

**Author:** ![Taka-884](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/taka-884/32/4241_2.png) [@Taka-884](https://forums.creativeclouddeveloper.com/u/Taka-884)\
**Post date:** [January 14, 2025, 2:46am UTC](https://forums.creativeclouddeveloper.com/t/ppro-beta-uxp-operation-history/9022/3 "2025-01-14T02:46:05Z")

</div>

Thanks for the reply.  
This is a wonderful evolution!  
I will try it.
