Changes since Execute 21.1.291

Notes

  • Empty release for testing In-App Updates 21.1.302

Schema Changes

  • We’ve added new fields (EB_PERMITTED and EB_NONOP_EMAIL) to the PARTNERS for future use by Quorum Electronic Balloting. In the interim, you are welcome to activate these fields and use them to track partner electronic balloting consent and contact addresses. 21.1.295 #334262
  • We’ve added new tables AFE_APPROVAL_PATH and AFE_REVIEW_PATH (and accompanying *_DOC, *_DOC_V, *_H tables) to support the new AFE path workflow functionality. 21.1.295 #334867
  • We’ve added new fields to the AFE_PARTNER table to track future Electronic Balloting status. These new fields are: EMAIL, EB_ID, EB_RESPONSE, EB_RESPONSE_DATE, EB_SENT_DATE, EB_COMMENT, and EB_VIEWED_DATE. All fields are inactive by default. 21.1.295 #334262
  • We’ve made changes to the structure and data of our behind-the-scenes AFE partner status table STATUS_AFE_PARTNER. These changes will pave the way for us to introduce additional partner statuses in the future. For example: “Consent (limit participation to my WI)” and “Consent (and will carry proportionate share)”. 21.1.295 #334262
  • New APPROVAL_PATH and REVIEW_PATH fields were added to the AFE to support the new Approval/Review functionality. These fields are inactive by default. 21.1.295 #334867

Featuresī¸

  • Execute can now be configured to log system messages to Azure AppInsights. This is primarily to streamline monitoring and support of Quorum-hosted Execute environments, but may also be used by on-prem customers if desired. #system 21.1.298 #312727
  • By popular demand… Execute now allows you to automatically release an AFE for approval after review is completed! #afe #admin 21.1.298 #341618

    Using the new automatic_release.config.sample plugin, you can configure Execute to automatically release an AFE for approval when the review process is complete.

    1. Create a new System Review Position Rule called something like “Automatic Release for Approval” (the name doesn’t matter). Record the DOCUMENT_ID for this position (the GUID in the URL).
      1. Don’t include any people on this position. The system will automatically mark it as review complete once all other reviewers have finalized their review.
      2. Adjust the position rule to include it as the last reviewer on any AFEs you’d like the auto-release behavior for. This lets you fine-tune the behavior (maybe you want this on EVERY AFE, or maybe just your Abandonment AFEs).
    2. Create a plugin from automatic_release.config.sample and update the positionRuleId to be the DOCUMENT_ID value obtained earlier.
    3. Restart Execute

    Now… When you save an AFE that is (a) routed (b) has only this single reviewer as incomplete… and it’s the special new “Automatic Release” reviewer, it’ll automatically complete the review and release the AFE for approval.

  • Foundation for Execute’s new in-app update mechanism, which will allow an authorized user to upgrade to future releases from within Execute. Note that this change does make changes to the folder structure of the Execute Service and adjusts permissions for the Execute service user so that it can make future updates to those folders and the Execute Service itself. #admin #system 21.1.298 #316299
  • Most Execute documents now support “Shared Locks”. This means multiple users can simultaneously edit the same document (Well, Job, or Site) and have their changes magically merged together. This helps avoid those situations where you can’t update your job with the latest spud date because Jim was busy updating the job’s safety information and went for lunch leaving it locked. #system 21.1.298 #327274

    Since early times, Execute ensured that only a single user could edit a document (AFE, Well, Job, …) at a time. This was handy for some document types (such as AFEs) with a very strong workflow, but a bit cumbersome for heavily multi-person documents like Wells, Sites and Jobs.

    So… we’ve changed things a bit.

    Execute will now take shared locks for Wells, Sites, Jobs and all of your custom document types. This allows multiple users to be actively editing the same document and, upon save, their changes will be merged together. It means a whole lot less waiting for someone else to finish their work before you can do yours!

    Note: If you are making changes where you think you would benefit from the old-style exclusive locks, you can find “Edit with Exclusive Lock” under the more menu.

    This functionality gets really interesting when you include fields from related documents on custom tabs. Previously, for example, you could include read-only well-level fields on your Job for reference but now you can opt-in to allowing those well-level fields to be editable (from the Job) by adding EDIT_REFERENCED_DOC_FIELDS to your “Additional Configuration Flags” in settings.

  • Introduced new Approval/System Review paths, which provide another great option for creating and managing your business rules. Approval/Review paths are intended to be very simple to build and understand. As a bonus, they also better support integration with 3rd-party systems that don’t share Execute’s concept of Approving Position. #afe 21.1.295 #334867

    AFE Approval/Review Paths

    This release introduces a new out-of-the-box way to define approval rules in Execute called AFE Approval Paths, and the same for system review called AFE Review Paths.

    What are they?

    Paths are a new option for modeling approval/review rules in Execute.

    This feature introduces two new document types (“AFE Approval Path” and “AFE Review Path”) that can be used to define different paths of individuals an AFE can flow through for approval and review.

    For the remainder of this document, we’ll talk about Approval Paths but, for the most part, Review Paths are the same (except they don’t have $ limits).

    Here is a sample Approval Path that defines a three-approver approval path for completion AFEs.

    Next, an Approval Path is selected for an AFE (using the AFE’s new APPROVAL_PATH field). This selection can be entirely manual (which may be a great low-setup-effort option), “smart-manual” (using list filters to limit selection to valid approval paths that the user can then choose from - i.e. here are the three options for drilling AFEs), or “full-auto” (using a list filter setup to always identify a single Approval Path for each AFE with no user interaction needed).

    When releasing the AFE for approval, Execute will look at the Approval Path linked to the AFE and add those approvers to the AFE.

    A couple of key notes, however…

    • Approval Paths specify individuals and not positions. This makes building the rules far easier for those of you who think in these terms. Execute does require positions, however, so we automagically create them as required.
    • These are meant to be a simpler option, not a replacement for Blockly. While they have a bunch of great functionality (maximum approval authority, tiers, and exclude-if-over-max), they can’t do everything that the more powerful Blockly rules can.

    Why are they?

    Our current approval rules are great, but there are a few aspects of them that are problematic for some customers.

    1. They are complex. Some companies struggle with describing their approval rules as “individual positions with a blockly-based should-I-approve-this-AFE rule”.
    2. Many companies think of approvals as “Bob is authorized to approve up to $2M”, which is difficult to model in Execute’s Blockly-based rules where, instead, you need to add a rule to the person after Bob that says “Bob’s boss sees everything above $2M”.
    3. Some companies really struggle to think in terms of approving positions. They think in terms of individual people.
    4. Some companies have their approval rules defined in another system and want to leverage that. It is very difficult to automate the creation / management of the current Execute approval rules.

    So…

    Approval Paths give another option which will be easier to work with and maintain for some companies.

    As a bonus. Because Approval Paths are simple “Documents” in Execute…

    • You can report on them
    • You can update them with Browse Edit mode
    • You can import them / update them from Excel
    • You can load them with Data Loaders
    • You can load/update them automatically with Document Sync
    • You can easily create/manage them with our APIs

    How do I turn them on?

    1. You should enable the APPROVAL_PATH field on the AFE and, somehow, provide a mechanism for it to be set.
      • (Easiest) Add the field to an AFE custom tab and have someone fill it in. If that’s too open, you can always use list filters to limit which Approval Paths can be picked based on attributes of the AFE (the default is filtering by AFE Type).
      • (Harder) Automate the selection. Make the APPROVAL_PATH editability Never Except Batch and ensure the Blockly List Filters are set up to always identify a single Approval Path for each AFE (Execute will then automagically attach it).
    2. You need to give your admin user the “Manage AFE Approval Paths” privilege.
    3. You need to add some Approval Path documents. (NOTE: the default setup filters approval paths by AFE Type, so make sure to create Approval Paths for each AFE Type)

    FAQ

    What AFE amount does this approve on? Gross? Net?

    This feature honors our standard setting “Approval Amount Type” which allows you to select between approving on Gross, Net, or Net on Non-op.

    Can I ensure that AFEs have at least one approver with sufficient authority?

    You sure can using the new “Require Sufficient Approval Path” setting.

    When set, the system will prevent the release of the AFE for approval if the Approval Path doesn’t have an approver with sufficient approval authority.

    How can I limit which Approval Paths are selected?

    The easy answer here is List Filters. By default we ship with a basic list filter that only shows Approval Paths where the Approval Path’s AFE Type matches that of the AFE (actually, we’re a bit fancier and allow for “wildcard” approval paths which show up for every AFE Type!).

    Here is the default list filter rule on the AFE’s Approval Path field.

    If you wanted to further segment your rules, perhaps based on AFE Area, you can add an Area list field to the Approval Path document (don’t forget to add an Area dropdown field to the Approval Path General custom tab), and then update your list filter like so:

    How many approvers can I have in a path?

    We’ve created 15 approver fields (meaning the max is 15), but we’ve only made the first seven fields active initially. If you need more than 7, you can just enable additional fields on the Approval Path document.

    Does this support approving tiers? (Parallel Approvals)?

    It sure does! The “Share Tier” fields mean that the approver shares the same approving tier as the user above. So this example here:

    Would yield these approvers on an $1,500 AFE.

    Does this mean that Blockly Approval Rules are going away?

    Absolutely not. Blockly rules were created for a reason and are better at modeling certain types of approval rules. This new option is better for other types.

    If there are no positions… how does out of office work?

    There are positions, actually.

    While approving positions are not part of the Approval Path rules we build, they are a requirement of Execute’s approval engine. To make this work, we automatically create positions for each approver. By default, these positions are named after the approver (i.e. user “Jimbo Jones” will automatically get a position created called “Jimbo Jones”).

    If you’d like to see a more traditional position name on the AFE’s approval tab, you can add a new custom field CUSTOM/APPROVING_TITLE to the user and fill that in. From that point onward, the newly created position rules will be named like “{Approving Title} - Jimbo Jones”.

    So, for out of office, our normal functionality applies. If “Blair Contracts” is out on vacation and delegates to “System Admin”, you’d see a record like this. You can clearly see who was supposed to approve it, and who actually did approve it.

    How do I handle wildcard rules (“any area”)?

    It depends, but if you are using list filters and/or release validation rules to restrict which Approval Paths are selected for an AFE, you can build that logic into the rule.

    For example, a simple list filter like this would require that the AFE’s AFE Type match the Approval Path’s AFE Type (no wild cards).

    But by adjusting it slightly, we can allow for an empty AFE Type on the Approval Path document to apply to AFEs of every type.

    Can I use this and Blockly Position Rules?

    You sure can! When releasing an AFE for approval, any approvers from the new-style Approval Paths are added first, followed by any approvers added by Blockly.

    This allows you to add high-level approval rules (“President sees everything over $5M”) in Blockly and avoid adding them to every Approval Path… if you want… (of course, doing so makes reviewing the rules more difficult).

    You may also choose to use Approval Paths in general, but use Blockly Position Rules for specific AFE Types that are too complex for Approval Paths.

  • We’ve added a new setting, “Allow User Delegation”, which allows users to delegate their AFE/Job review and approval duties. We’ve left this functionality off by default because we know that it doesn’t make sense for some organizations that want strict control over who a user selects to approve/review on their behalf. For environments that need this, however, it’s a quick flip of a setting and users will find the new option under their user menu in the top-right of their screen. #afe 21.1.295 #334871

    Out of Office Delegation

    A frequently requested feature is now available: users can delegate their own review or approval when they’re away—without needing to go through a system administrator.

    To enable this functionality, simply toggle the new setting:

    Once enabled, users will see a new “Out of Office” option under their user menu (top right):

    From there, users will be guided through a simple delegation wizard, similar to the one currently used by administrators.

    Note: This feature is best suited for environments where users are trusted to choose appropriate delegates. At this time, there is no rule system in place to validate that the selected delegate has the necessary approval or review authority.

  • Execute has great little “+” icons next to list fields which are a quick shortcut allowing an authorized user to create a new value for that list and automatically select it. Just the thing when you go to create a new AFE, but realize nobody got around to adding that newly acquired asset to the list in Execute. This release improves upon this functionality by defaulting to the new record type’s first tab (rather than our currently non-user-friendly approach of generating a tab using the alphabetical list of all fields on the record). In addition, administrators can create a special “Quick Add” tab to streamline the experience. #system 21.1.295 #335025

    Improved Quick Add Experience

    In Execute, list fields typically include a + icon that lets users quickly create and select a new record of that type.

    Historically, the Quick Add pop-up form wasn’t exactly elegant—it displayed all fields on the new record in alphabetical order, which wasn’t always helpful.

    In this release, Quick Add now defaults to using the first (default) tab defined for that document type. It will only fall back to the alphabetical view if no custom tabs are available.

    So now, adding a Pad from your Well looks a whole lot cleaner:

    And if I’d like further control, you can create a special “Quick Add” custom tab and really dial it in!

Enhancements

  • A new printing serializer has been added that includes linked documents, allowing printed forms that consolidate information from multiple linked documents. #afe #reporting #system 21.1.304 #340325
  • Added new configuration settings that allow Execute to notify an external system after successful startup and before user-initiated shutdown. #system #integration #reporting 21.1.304 #343089
  • The admin-facing field selection screen has transitioned from the recently released drop-down tree control to the same control used in the report field selector. The report selector version offers a better user experience and handles large numbers of fields more efficiently. #admin 21.1.298 #334455
  • Updated the components used by the schedule printing functionality. #opsched 21.1.298 #338042
  • We’ve improved the behavior in Execute’s new Approval Paths to better handle situations where multiple adjacent approvers have the same approval authority. #afe #admin 21.1.298 #338680
  • We’ve added a new formula function to create a new DateTime (DateTime( "2024-05-01", "America/Edmonton")) and a new formula function to query if a workflow task is complete or hidden (i.e., needing attention or not). #formula 21.1.298 #340773
  • We now support for List Filters on Workflow Tasks. #admin #workflow 21.1.298 #293061
  • We’ve added icons to fields on Tasks and Custom Tabs to identify fields from related documents (vs. the document the user is currently working with). #system 21.1.298 #318332
  • We’ve changed the default behaviour when viewing attachments to open in the browser/default application instead of downloading them. This is much more consistent with other web-based applications. Users who want to download the file can right-click and “Save As”. #ui 21.1.296 #338037
  • The Integration Agent now supports connections to Snowflake (for Document Sync purposes). #integration agent #integration 21.1.296 #339388
  • Execute’s unique value validation rule now works with UWI-type fields. #system #afe 21.1.296 #338517
  • Upgraded Snowflake library to the latest and greatest. #system #security #integration 21.1.296 #338212
  • If you’d like to see your primary document types (those in the top toolbar) in a specific order and have been annoyed at how prefixing them with “1.”, “2.”, … made everything else in the application look a bit wonky… good news. We’ve added a new configuration setting that allows you to set the sort order! #system 21.1.296 #338259
  • We’ve lowered the batch size limit when exporting Execute data to Snowflake / Azure SQL to help eliminate issues with large documents like Schedules causing excessively large batches. #integration 21.1.296 #337950
  • We’ve relaxed the rules a bit for account matching between Execute and ODW. So if your Execute account numbers are formatted like “100 / 234”, but you have “100 .-=-. 234” in ODW, you’ll be pleased to know that the integration will work just fine. #integration #wellez 21.1.296 #337090
  • Improved error logging around login with OIDC to make troubleshooting easier. #system 21.1.296 #337130
  • Inactivated the old Parent RTD field. If you’ve gone to the effort of migrating from the old RTD to the shiny new Jobs (RTx), you don’t want to see that smelly old Parent RTD field anymore! #well delivery 21.1.296 #336929
  • Removed legacy actuals/field cost helper views from new databases. Existing databases are unchanged. #system 21.1.296 #333389
  • Ever want to clear the date from a project activity? Now you can! #budget 21.1.296 #334073
  • We’ve improved the Due for Forecast filter, ensuring that project owners can more reliably see projects that need their attention. #budget 21.1.296 #335791
  • We’ve improved the Min/Max formula functions to work with date-type fields, and to have more sensible handling of null (empty) values. Note that with the new changes “Min(1,null,2)” will now return “1” whereas it used to treat the null as a zero and would have returned “0”. If you need this old behaviour, you can wrap the values with the coalesce function “Min(1, coalesce(null,0), 2)”. #formula 21.1.296 #338039
  • Support for importing recurring/rental costs from WellView. Currently this behavior is off by default but it can be opted in if you rely on these costs. We will be enabling this by default in a future release. #peloton #integration 21.1.295 #335145
  • We’ve turned off the old (and we’re talking really old) linked files to attachments migration. This feature was slowing down startup in some environments and at this point we think everybody who would switch over already has. If it’s needed, it’s a mere setting tweak away. #attachments 21.1.295 #335525
  • It took us a couple of years to roll out the rename of WellEz to On Demand Well Operations within Execute, but we finally did it. Hilariously, however, we did so two weeks before we decided to stick with WellEz after all. This update brings back the much loved WellEz name. #integration #wellez 21.1.295 #335780
  • We’ve made some backend changes to pave the way for the coming Quorum Electronic Balloting service, which will modernize the balloting process and use a heck of a lot less paper. #afe 21.1.295 #334262
  • The AFE Estimate loaders now support loading phase-based AFE estimates, which is pretty nifty, if you need them! #afe #admin 21.1.295 #336870
  • Added a new “Capital Actuals” column to Schedule Activity report types. #opsched 21.1.293 #333238
  • We’ve added an optional flag to prevent pushing historical forecast start dates to Val Nav. #budget 21.1.293 #333842
  • System restart requests are now added to the audit log. #system 21.1.293 #333843
  • We’ve trimmed the columns down in the list of available columns when using Import/Update Multiple from the Browse Screen to just the updatable columns. This keeps the list much shorter (making it easier to find the column you are looking for), and speeds everything up. In addition, we no longer prefix column names with the Additional Storage Table name since that was never something end-users should be exposed to. #system 21.1.292 #333626

Bugs

  • Azure logging now correctly respects environment variables for its settings, ensuring that the EXEC_AZURE_INSIGHTS_CONNECTION variable properly overrides configuration files during initialization. #system #integration 21.1.304 #340068
  • The custom table subview now correctly appears on the Workflow Task pop-up ensuring users can now edit individual fields and tables. #workflow #ui 21.1.304 #346070
  • The installer now correctly applies permission changes during headless (scripted) installs, ensuring that in-app updates run smoothly without permission issues. This fix addresses upgrade failures caused by permission adjustments only running during interactive installs, improving reliability for automated update scenarios. #system 21.1.304 #344594
  • The OpSched named license user check has been fixed to exclude support users, ensuring only actual licensed users are counted. This prevents support accounts from incorrectly consuming named licenses. #opsched #system 21.1.304 #346358
  • The support package no longer leaves behind temporary directories after use, keeping your Execute server clean and clutter-free. #system 21.1.304 #342833
  • Fixed an issue where the well data header overflowed its container, improving the display and readability in the user interface. #ui #well #system 21.1.304
  • Fixed an issue with the HttpMultipartParser to ensure reliable processing of multipart HTTP requests, improving stability and preventing errors during file uploads or form submissions. (This is a behind the scenes thing that only affected those of you uploading attachments via. our APIs) #system #api 21.1.304 #344588
  • Fixed issue that was causing Execute to generate invalid license IDs on Windows-based servers. #system 21.1.299 #343124
  • Resolved an issue where you could create invalid AFE history by manually calling the Supplement AFE API and failing to save the historical (supplemented) version of the AFE. This only applied to those writing code against Execute’s APIs to supplement AFEs. #afe #api 21.1.298 #339273
  • We’ve added the “Document Display Identifier” back into the field list in Execute’s custom business rules (Blockly). #admin 21.1.298 #339421
  • Resolved an issue where list filters wouldn’t immediately clear an invalid value but would, instead, clear on save. #system #admin 21.1.298 #341220
  • Resolved an issue where the FieldInfo report would show an error in the Field Type column for fields that had been deleted. #admin 21.1.298 #341516
  • Resolved an issue where Custom Business rules failed to show custom fields on the AFE’s well table. #admin 21.1.298 #338359
  • Resolved an issue where the order of Workflow Task fields could break field permissions. #workflow 21.1.298 #334861
  • Resolved an issue where adding a List Filter could sometimes freeze the UI. #system #admin 21.1.296 #336708
  • Resolved an issue where the Bulk Export plugin could cause Execute to fail to start if the destination folder didn’t exist. #plugins 21.1.296 #338041
  • Resolved issue where Custom Business rules failed to show custom fields on the AFE’s well table. #afe 21.1.296 #338359
  • Resolved an issue preventing AFEs from being exported to WellEz. #afe #wellez 21.1.296 #339020
  • Resolved an issue where the database upgrade would fail in environments without an AFE_TYPE. #afe #system 21.1.296 #339024
  • For those of you rocking the commas in your report names, you’ll be glad to know that the bug preventing you from exporting those reports to Excel is now resolved. #ui 21.1.296 #296011
  • We’ve resolved an issue where workflow task fields would sometimes jump mysteriously for workflows loaded with the historical loader. #workflow 21.1.296 #334868
  • We’ve resolved an issue where we created new versions in the ACTUALS_DOC_V table much more often than we should have and, at the same time, ensured that AFE actuals and field costs will now move across into your external data warehouse. #system #afe 21.1.296 #335140
  • Resolved an issue where foreign keys on Postgres-based Execute databases were missing “on delete cascade”. #system 21.1.295 #299474
  • Resolved an issue where fields in a Blockly loop variable would fail to show the nice field name. #system 21.1.295 #326878
  • Restored the helpful “User Has Permission” and “User In Group” features that allowed you to build custom business rules based on the user’s permissions. #system 21.1.295 #332811
  • Resolved an issue where users were unable to add new attachments using our legacy Linked Files behavior. #afe 21.1.295 #334654
  • Resolved an issue where referencing DOCUMENT_ID in custom business rules could cause the rule to break. #system 21.1.295 #334940
  • Resolved an issue where frozen column headers were inadvertently showing up on the Execute dashboard (and looking rather broken while doing it). #dashboard 21.1.295 #335045
  • Resolved an issue where creating a specially named attachment and then deleting it would break attachments for that parent record (all attachments mysteriously disappear). We won’t mention the specific naming here because the temptation to try it is probably too great :) #attachments 21.1.295 #335282
  • Resolved an issue where Blockly rules on a workflow task would sometimes “jump tabs” when making edits and switching back and forth between completion rules, assigned to rules, etc. #workflow 21.1.295 #335624
  • Resolved an additional issue with loop variable numbering in Blockly. #system 21.1.295 #336479
  • Resolved an issue where invalid Blockly rules could be saved if the loop iterator variables had a name conflict. #system 21.1.295 #336583
  • Resolved an issue where drop-down fields in Blockly rule editors would occasionally fail to load. #system 21.1.295 #336601
  • Resolved an issue with the item# counter failing to increment when building loops in Blockly. #system 21.1.295 #336773
  • If the terms “MAWL” and “GOA” are meaningful to you, this update fixes the issue with historical approvers breaking the approval rules. #afe 21.1.295
  • We now prevent the bulk field importer from loading empty formula fields as these are invalid and cause other issues in the system. #system 21.1.293 #333745
  • We’ve added the “Document Id (match on)” back to Update multiple from Excel from the Browse screen. #reporting 21.1.293 #334756
Ready to update?
  • For Quorum-hosted Aucerna Execute environments, email an upgrade request to Execute Support.
  • For on-prem instances of Execute:
    • Always ensure you have a recent backup of your Execute database before updating.
    • Download the installer from the Client Portal.