Changes since Execute 21.1.215

Notes

  • This update fixes Document Synchronization plugins to respect the timezone configured in the plugin file. Previously, all dates were assumed to be in your server’s local time. This means that, upon upgrade, synchronized dates may change if the configured timezone in the plugin is not the same as the server’s timezone. 21.1.261
  • If you are using Execute’s out-of-the-box integration with Peloton-hosted WellView/SiteView, please note that previous versions of that integration will cease to function at the end of Feb 2024 and you must take additional steps to upgrade to the newest version and continue to use this integration beyond that date. 21.1.255 #243175
  • If you are currently using Execute’s legacy integration with SharePoint, please get in touch with Quorum Support prior to upgrading to this version. 21.1.246
  • The Integration Agent installer is now included in Execute. Future updates will be automatically deployed. 21.1.244
  • If you are using the Integration Agent (for Quorum-hosted Execute), we will need to make some minor changes to your plugins as part of your upgrade. 21.1.239

    Plugins that connect to a database via the integration agent MUST be updated to work in the new version. This work will need to be undertaken by Quorum Support/Application Delivery when upgrading your SaaS environment. We’ll be sure to do that as part of your upgrade.

    Other plugins that contain connection strings will continue to work but should eventually be updated to take advantage of the new connection string editor.

  • This update changes how the field cost import from WellView, SiteView and WellEz works. If you use this integration, please review the detailed notes or contact support before proceeding. 21.1.232
  • For those of you managing the Execute application server, the service name in the Services Control Panel has changed from “Quorum Execute” to “Execute” 21.1.218

Schema Changes

  • Added additional fields for email reminders and notifications: NOTIFICATION.ALLOW_OPT_OUT, REMINDER.ALLOW_OPT_OUT, NOTIFICATION.PER_TASK and REMINDER.PER_TASK 21.1.267 #269583 #271420
  • Added a new field “IS_REMOVED_VERSION” to the AFE and AFE_H tables to differentiate between deleted AFEs and deleted AFE versions (unrevise/unsupplement) to support the new Undelete feature. 21.1.246
  • New column “DF_CONFIGURATION” added to SCHED and SCHED_H to store Dataflow integration configuration. 21.1.244
  • New tables for the newly added Schedule Activity Type configuraton (SCH_ACTIVITY_TYPE*) 21.1.242
  • New fields added to RTX/RTX_H to support Job Scheduling (DURATION, JOB_START, JOB_END, JOB_IS_SCHEDULED) 21.1.242
  • Note that the fields SCHED_START and SCHED_END have been supersceded by JOB_START and JOB_END and will be removed in an upcoming update. 21.1.242
  • New tables “PLUGINS*” added for in-app plugin management 21.1.239
  • Added new APIKEY* tables to store API Keys. 21.1.234
  • Added “CREATOR” columns to RTX, RTD, RTX_H and RTD_H tables. 21.1.234
  • Modified column type on DOCUMENT_VIEW.HANLDES_EXPRESSION from VARCHAR(4000) to VARCHAR(MAX) to allow storing larger rules. 21.1.219
  • WORKFLOW_INSTANCE.ROOT_DOC_GUID for AFE Workflows is now that AFE’s DOCUMENT_ID rather than the CHAIN_GUID. 21.1.218 #163281
  • New columns (REQ_MANUAL_COMPLETE, REACT_ON_DPNDCY) on WORKFLOW_DEF_TASK to track reactivation configuration. 21.1.218 #158350
  • New column REACTIVATED on WORKFLOW_INSTANCE_TASK to track whether task was reactivated. 21.1.218 #158350

Features️

  • Added a new streamlined Document Fetch API as part of Execute’s Advanced Data Export offering. This API makes it easier to slurp bulk data out of Execute to populate an internal data warehouse, or similar. #integration 21.1.273 #288479

    Execute’s new Document Fetch APIs provide a streamlined way to bulk extract documents from Execute.

    • A single streamlined API call vs. the Login > Run Report > Logout call for the current APIs.
    • Returns ALL data for request documents in a nice friendly machine readable JSON form.
    • Supports including calculated field values in the returned data (popular request from User Voice).
    • Easily filtering to return only documents modified since a provided date (makes it much easier to keep a remove warehouse up-to-date).

    Note: These APIs require the Execute Advanced Data Export (OData) module license.

    More information can be found in our New Postman-based API documentation.

  • Administrators can now allow users to opt-in/opt-out of specific email notifications and reminders, giving users more control (when appropriate), and reducing the administrative work for admins. #email 21.1.267 #264439

    When configuring email reminders and notifications, administrators can now…

    • Allow users to opt-out of receiving the notification/reminder by setting the Allow Opt-Out field on the notification/reminder to “Yes” (by default, users are not able to opt-out of reminders/notifications that they are included in)
    • Allow users to opt-in to receiving the notification/reminder by adding the new notify subscribers block to the reminder’s Recipients rule. i.e.

    Users are then able to adjust their email preferences from the new “Email Preferences” menu item under their name in the top-right of the Execute screen.

  • Users can now update values and entire columns directly from Execute’s browse screens. #system #ui 21.1.263 #258593

    If you’ve ever found yourself looking at a report in Execute’s browse screen and thought to yourself, ‘Gosh, that ain’t right. I need to update that!’, only to be slightly deterred by the prospect of actually opening the Well, AFE, Job, etc. to make the change… Have we got a thing for you!

    Users can now update individual values or entire columns right from the browse screens throughout Execute!

    From the browse screen, users can now click the toolbar’s pencil icon to enable bulk edit mode. This puts a pencil in each editable cell in your browse report which will allow updating the cell without leaving the report. In addition, the new “Bulk Update” option under the column dropdown allows a user to update the entire column (respecting any filters you have, of course).

    This new functionality respects the user’s edit permissions and will only allow updates to data they could have changed normally.

    Here is a quick demo:

  • If you’ve ever found yourself wondering “just where is this field used” or “is this field safe to remove”, we think you’ll like our new functionality that helps you answer those very questions. The new “References” tab on a field’s configuration screen shows you the rules, tabs, reports, etc. that make use of that field. #admin 21.1.257 #257716
  • Support was added for new Peloton 2.0 APIs for our integration with WellView/SiteView. #peloton 21.1.255 #243175

    This release includes support for Peloton’s new 2.0 APIs (affecting Peloton SaaS customers).

    Peloton has announced their plans to deprecate their existing APIs (used by previous versions of Execute’s integration with Peloton SaaS) by the end of February.

    Customers who wish to use/continue to use this integration must:

    1. Contact Peloton support and request written permission to enable this integration (cc’ing Execute Support). Peloton requires customers obtain written permission prior to integrating with third parties.
    2. Upgrade Execute to this version or later.
    3. Work with Execute Support to update their configuration to use the new integration.
  • Initial release of the Configuration Migration feature which makes it easier to migrate configuration from one environment (such as a TEST environment) to an another environment (such as PROD). This feature is new and still in active development. At this time, we strongly recommend working with someone from Quorum Professional Services if you need to make use of this tool. #admin #system 21.1.249 #239691
  • Improved support for integration with document management systems such as SharePoint and DynamicDocs. #system 21.1.246 #246071

    With this update, Execute now includes support for integrating with the following document management systems:

    • Quorum’s DynamicDocs
    • Microsoft’s SharePoint

    Execute now supports multiple pluggable “AttachmentStores” which can selectively take over the storage of attachments.

    • Each attachment store can decide which document(s) (AFE, Well, …) it should store attachments for.
    • Execute supports pushing and maintaining additional meta-data for each attachment to help searching/sorting/categorization/etc. in the document management system.

    This gives a great deal of flexibility. For example, you can use SharePoint for “approved” AFE attachments, DynamicDocs for Well-level attachments, and the built-in storage for everything else.

    Plugins for these integrations are found under plugins_available\integration\product_integrations\document_management.

  • Future versions of the Integration Agent will automatically update themselves as necessary to avoid issues where integrations break because of incompatible Execute and Integration Agent versions. Note that manual steps are required to upgrade the Integration Agent this time, but future updates will happen automatically as required. #integration 21.1.244 #166459

    The Execute Integration Agent, which facilitates integrations between Quorum-hosted Execute and on-prem systems, is now packaged with Execute and will, in the future, automatically update itself as required.

    If you are currently running the Integration Agent, however, you must manually update it as part of taking this Execute update. If this step is not taken, integrations using the Integration Agent will be broken.

    You can download the latest Integration Agent installer from Execute’s Tools > Configuration > Integration Agent Configuration menu.

    You’ll need to stop the current version of the Integration Agent (under your Windows Services panel).

    You can then run the downloaded installer on the server hosting the Integration Agent and install the Integration Agent over top of your existing Integration Agent installation’s root folder.

    Note that because the installer was downloaded from the web, you may need to unblock it before you’ll be able to run it by right clicking the downloaded file, selecting Properties, and then Unblock.

  • Improvements to standalone use of Execute’s Operational Scheduling when using the Jobs module. #opsched #well delivery 21.1.242 #160969

    In this update, we’ve added a new Job Scheduling mode (inspired by Generwell’s similarly named module) to Execute’s Operational Schedule. This new mode simplifies the process of adding jobs (from the Jobs module) to a schedule, adjusting their timing, and feeding that updated timing back into the Job workflow.

    • Each schedule view can define a report which provides a list of candidate jobs (the job hopper) that can be added to that view.
    • A scheduler can select one or more job(s) from that report and add them to a resource on the schedule.
    • New Schedule Activity Relationships configuration allows you to define the relationships between activities (Completion happens after Drilling, etc.), so that appropriate dependencies will automatically be created when scheduling Jobs.
    • Updated timing from the master schedule will automatically feed back to the new “Job Start”, “Job End” and “Duration” fields.

    Note: Execute previously included “Sched Start” and “Sched End” fields which were barely used (only set when creating a Job from the schedule). The new Job Start and Job End fields replace these and the old fields will be removed in a future update.

  • When copying a document in Execute, there is now a checkbox to copy the document links. #ui 21.1.242 #223503
  • Execute now includes beta support for publishing a reporting schema to Snowflake or SQL Server/AzureSQL #integration 21.1.239 #236172

    Execute now includes the following functionality in beta (pre-release) form. This functionality is optional (off by default) and has not yet undergone our usual stringent QA process. We have released it so that interested customers can start exploring it, planning adoption, and providing feedback.

    We do not recommend using these new capabilities in production at this time.

    The following capabilities are available for testing.

    1. Publishing Execute reporting-type data to a Snowflake database
    2. Publishing Execute reporting-type data to a SQL Server / Azure SQL database
    3. Creating Document Synchronizations and Data Selectors against a Snowflake database

    Publishing to a Data Warehouse

    For BI, reporting and warehousing purposes, Execute now supports publishing all Execute data (documents) to either a client-owned/managed Snowflake database, or a client-owned/managed public-facing SQL Server (Azure SQL) database.

    To enable the publishing of Execute data to Snowflake…

    1. Create a new empty database in your Snowflake environment
    2. Copy plugins_available\integration\product_integrations\warehouse\non_production\snowflake.config to your plugins_available folder or add as a new in-app plugin, and restart Execute.
    3. Create a new “Connection String” (Tools > Configuration > Connection Strings) called “Snowflake” with the credentials and information for your Snowflake environment.
    4. Run “Tools > Synchronization > Snowflake Schema Publisher” to create tables and helper views in your Snowflake database. This same process would also be run any time you want to update the helper views to include newly created fields in Execute.
    5. Run “Tools > Synchronization > Snowflake Document Publisher” to pre-populate your Snowflake database with your existing data (latest version of each non-deleted document). This would typically only ever be run once.
    6. Execute will periodically and automatically push incremental updates to Snowflake. You can adjust this timing by changing the “Integration/Snowflake/Snowflake Queue Wait” configuration setting.

    Settings

    To enable the publishing of Execute data to SQL Server/Azure SQL…

    1. Create a new empty database in your SQL Server/Azure SQL environment
    2. Ensure that the SQL Server / Azure SQL database can be access directly from Execute (no VPNs, etc.)
    3. Copy plugins_available\integration\product_integrations\warehouse\non_production\sqlwarehouse.config to your plugins_available folder or add as a new in-app plugin, and restart Execute.
    4. Create a new “Connection String” (Tools > Configuration > Connection Strings) called “SQLWarehouse” with the credentials and information for your database.
    5. Run “Tools > Synchronization > SQL Warehouse Schema Publisher” to create tables and helper views in your database. This same process would also be run any time you want to update the helper views to include newly created fields in Execute.
    6. Run “Tools > Synchronization > SQL Warehouse Document Publisher” to pre-populate your database with your existing data (latest version of each non-deleted document). This would typically only ever be run once.
    7. Execute will periodically and automatically push incremental updates to your database. You can adjust this timing by changing the “Integration/SQL Warehouse/SQL Warehouse Queue Wait” configuration setting.

    For both Snowflake and SQL Server, the published data is:

    1. A table called EXECUTE_DOCUMENTS with up-to-date semi-structured JSON-based representations of all records (documents) in Execute (Wells, AFEs, Users, Accounts, Schedules, Approval Rules, …). If a document is deleted, the corresponding record in this table will not be removed but will have its “deleted” field set to “1” / “TRUE”.
    2. (Optional) Helper views which reformat the data from EXECUTE_DOCUMENTS as normal tables (closely resembling the underlying tables in Execute). These helper views are intentionally simplified and do not include deleted records, nor all the complex document versioning tables/fields (_DOC, _DOC_V, _H, …) that made querying the underlying tables complex.

    This functionality requires the “OData” module be licensed for your in environment.

    Data Selectors and Synchronizations against Snowflake

    Execute now supports creating connection strings to Snowflake databases in the Connection String editor. These connection strings can be used by Document Synchronizations and Data Selectors.

    CS

  • Administrators can now blissfully manage plugins from within Execute #admin 21.1.239 #180679

    I think it’s safe to say that administrators with the new Manage Execute Plugins administrator privilege will be overjoyed that they can now (optionally) manage Execute plugins directly in Execute. This is primarily targeted at Execute SaaS customers, but can be helpful for on-prem installations as well.

    NOTE: Plugins found in the plugins folder will continue to work and there is no requirement to migrate some or all of your plugins to in-app managed plugins. If you choose to migrate plugins from the plugins folder to the in-app plugins it is CRITICAL that the migrated plugins in the plugins folder are removed prior to adding them to the in-app plugins list (for SaaS environments, this will require a support ticket). Loading the same plugin twice never yields good results.

    Administrators can find the list of in-app managed plugins under Tools > Configuration > Plugins. This screen may look familiar at this point because in-app plugins are treated just like any other record in Execute. They even have change tracking!

    Plugins

    Viewing a plugin will show details about the plugin, as well as give the opportunity to edit the “Content” for the plugin.

    Plugin Detail

    In addition, we’ve made some improvements to error handling. In most cases, when a plugin fails to load properly, Execute will skip that plugin and continue startup. The “Loaded Successfully” column on the plugins screen will identify any plugins that failed to load (they will also have a red status bar the the left of the plugin row).

    It is important to note that plugins managed in this way are included in the database and will get copied as part of the database (for example, when copying PROD to TEST). This can potentially cause some issues where a TEST Execute environment is inadvertently attached to a 3rd-party production system. There are two mechanisms to avoid this:

    1. Connection strings and credentials should be stored in Execute’s (new) connection string storage or external credential storage. These values are NEVER copied between environments, and this eliminates the risk of a PROD>TEST migration accidentally causing TEST data to leak into a downstream PROD system.
    2. You can tag plugins with a “Plugin Environment” which can limit which environment a plugin is valid for (based on the Environment Label). If unspecified, the plugin will load in any environment. Environment Labels are the little badge next to the “Q” icon (PROD environments are usually blank) » envlabel

    We hope you are as excited by this functionality as we are. It will hugely streamline the process for managing Execute plugins.

  • Administrators can now effortlessly manage database connections from within Execute #admin 21.1.239 #180679

    Database connection strings can be managed by an admin with the “Edit External Credentials” privilege under Tools > Configuration > Connection Strings. New connection strings can be defined here and then referenced in your plugin files (rather than embedding database connection strings right in the plugin).

    This is now the preferred way to manage database connections made directly from Execute to another system (Integration Agent connections are still managed separately).

    • Multiple plugins can refer to the same connection string instead of a separate copy in every file
    • The connection strings can be edited without restarting the Execute service (plugin file changes still require a restart)
    • Connections can be tested from the UI, rather than having to restart the service and trying to operate the plugin before learning if the connection actually works
    • These connection strings still support the @@@ notation for using the separate credential storage feature. It is recommended to use that for passwords, to ensure they are securely stored.

    Connection Strings

    Most plugins that contain a connection string, such as this:

    <ConnectionString>account=abc123-abc123;user=secureuser;password=securepassword123;db=EXECUTE;SCHEMA=PUBLIC;WAREHOUSE=COMPUTE_WH</ConnectionString>
    <ProviderType>SnowflakeProvider</ProviderType>
    

    Can then be updated to refer to the defined connection string like so. Note: The “ProviderType” is now captured in the connection string and should be removed from the plugin file.

    <ConnectionString>Connection List=Server; Id=Snowflake</ConnectionString>
    <ProviderType></ProviderType>
    

    If you are migrating a plugin to an in-app managed plugin, you must move the connection string out of the plugin and into the connection string storage.

    Please feel free to reach out to Execute Support if you need some help updating your existing plugin files to use this new functionality.

  • Introduced API Keys, a better and more secure way of authenticating to Execute when building integrations against the Execute APIs. For those of you with existing API-based integrations, it is probably worthwhile migrating away from username/password and toward our API keys when possible. #integration 21.1.234 #165516

    We’ve added the ability to create API Keys to Execute to make it easier/safer to write integrations against the Execute APIs.

    1. By default, only admins can create a new API key.
    2. Sessions created using an API Key do not consume or require a license.
    3. API Keys can be set to expire (user-created API Keys must expire within one year).
    4. API Keys work much better in an environment that doesn’t have passwords (i.e., SSO users).

    The Problem

    Execute has a great set of APIs that many of you use to build integrations between Execute and other systems. Unfortunately, to use these Execute APIs, you needed to create a session using a username and password and the normal login API (used by the app itself). This raises several problems:

    1. It Doesn’t work well for environments that use SSO and don’t have passwords.
    2. Execute’s normal sessions consume/require a license. This requirement means that integrations start failing when the system is busy because they can’t get a license. It also means that for clients with small numbers of licenses, a long-running integration may lock people out of the system.
    3. Execute’s default 2-minute timeout on a session can break long-running integrations.

    What is an API Key?

    In Execute, an API key is an additional credential that can be used to log into the Execute APIs (or OData) to facilitate integrations. It’s like an additional username and password that are machine-generated (long and secure). Creating a session using an API Key does not consume a license and is more robust than the old-style login.

    Creating an API Key

    API Keys are managed under Tools > Configuration > API Keys.

    It is always a best practice to create unique API Keys for each service/integration to simplify phasing out old credentials or replacing compromised ones.

    Admin API Keys

    Users with the new Manage API Keys privilege are always able to add new API Keys using the Create API Key button on the top of the API Keys screen.

    • A description is always required for an API key and should describe what the key is being used for. A good description might be something like “Integration with Petrosight” or “Data Warehouse”
    • You must define when the key expires. Administrators can create API Keys that never expire.
    • An admin may also configure the key to impersonate another user. Doing so means that all APIs called using the new API Key will operate as if the impersonated user was calling them. Impersonation is commonly required so an admin can set up an API key for a service account in Execute that they can’t log into directly.

    Once created, you need to note the ID and the Key as both are required to use the APIs. The Key will never be shown again. The ID is just the DocumentID for the newly created API Key document and is not a secret.

    Non-admin API Keys

    By default, non-admin users can NOT create new API Keys. You can permit users to create API Keys by toggling the new Allow non-admin users to create API Keys? setting to “Yes”.

    The typical use-case for non-admin self-serve API keys is to support OData use in password-less environments. Alternatively, if only a few users need API Keys, administrators can create API Keys that impersonate that user, and then securely share the Id and Key with the user.

    When permitted, users can create a new API Key (for themselves) using the Create API Key button at the top of the API Keys screen.

    • A description is always required for an API key and should describe what the key is being used for. A good description might be something like “OData Summary Report” or “Data Warehouse”
    • You must define when the key expires. Non-admin users can set a maximum expiry of 1 year.
    • Non-admin users can NEVER create API Keys that impersonate other users.

    As before, once created, you need to note the ID and the Key as both are required to use the APIs. The Key will never be shown again. The ID is just the DocumentID for the newly created API Key document and is not a secret.

    Viewing and Editing API Keys

    Current API Keys can be viewed from Tools > Configuration > API Keys.

    • Administrative users with Manage API Keys will see all API Keys across all users in the system
    • Non-admin users will only see API Keys that they created and those created by other users that impersonate them

    Either the owner of an API Key or an admin can change an API Key, but those changes are limited to:

    1. Toggle the “Active” flag on an API Key (temporarily enable/disable it)
    2. Deleting the API Key
    3. Updating the API Key description

    Once an API Key is created, there is no way to change the user to impersonate or the expiry time.

    Managing API Sessions

    When an API Key is in use, administrators will see it under the Manage Sessions screen, where they can terminate it if required.

    API Sessions are different

    • Only a single active session is permitted for an API key (whereas you can log in multiple times with a username/password)
    • API Key sessions timeout after an hour instead of the usual 2 minutes
    • API Key sessions do not consume a license

    Because of the above, the primary reason to terminate an API Session is if it was accidentally left open and you’d like to terminate it so a new session can be created and any locks it holds can be released.

    Using an API Key with Execute

    API Keys can be used to call Execute’s APIs, and can also be used for OData.

    APIs

    Calling any Execute APIs requires you have a valid session.

    To create a new Execute session using an API key, call the new /api/Authentication/ApiKey/Login API instead of the previous /api/Authentication/Login API.

    The arguments to this API are simply the ID and Key obtained when creating the API Key.

    {
      "Id": "a426fcff-6569-4aa6-a596-4dba1469c425",
      "Key": "SK9EwPMwMX4CYKMX6Xc7JMchJp5ZyWEUdAIni5V3OwS6nLfAHZJHrKd8vnruIBnD"
    }
    

    The response from the ApiKey/Login call is identical to the normal login call. If the API Key impersonates a user the session will be created as that user.

    OData

    The new API Keys can also be used to connect to OData for environments/situations where the normal username and password is not appropriate.

  • Execute now allows you to add additional custom tables to your documents to allow you to better lay out custom fields, as well as handle very large numbers of fields (more than 1000). For those of you implementing many new workflows in RTx and watching your custom field count climb steadily upward, you can breath easier now. #system 21.1.234 #175816

    When you add custom fields to Execute, they are typically added to a single _CUSTOM table. It turns out that there is a maximum number of columns supported in a table (it varies by database configuration) but it’s roughly around 1000. This can be a problem for organization implementing many RTx-type workflows.

    To alleviate this, you can now add additional storage tables in Execute from a document’s configuration page.

    In this example, we’re adding a new storage table for fields related to our abandonment process. We could also just call it Custom 2 if we don’t want to separate fields by type.

    Once created, new fields can be added to the new table by selecting it as the “Record” when adding a new field.

  • Added support for multiple columns in custom tabs! #system 21.1.223 #168243

    Something we’ve been asked for a lot ever since Execute was reborn as a web-based application was the ability to stick fields side-by-side on your custom tabs. Here it is!

    Sample

    You configure your custom tabs just as you always have, but now there is a new “Same row as Above” checkbox in your tab configuration, which you can use to indicate that the field should share a row with the field above it. Currently, you can have up to 4 fields share a single row.

    Setup

  • Added support for integration with our very own Val Nav from Quorum-hosted Execute environments using the Integration Agent. #integration 21.1.222 #161179
  • If you’ve ever found yourself annoyed by date fields that insist on capturing not only the date, but also the time. If your organization is spread across timezones and you’ve struggled with date fields where the day changes depending on where you are viewing Execute… We have good news. We have added support for creating date-only fields which are never affected by your user’s timezone! #system #ui 21.1.222 #175938

    Most dates in Execute are actually Date + Time and those come with automatic timezone conversions. Sometimes, however, you just want a plain old date that will always show the same thing regardless of what timezone you are in. For that, we’ve added a new Unzoned Date/Time setting to Date Fields in the Field Configuration screen.

    When a date field is set to Unzoned, users will never see a time component for that field, and the value will never be subject to automatic timezone conversion.

    For example. In the screenshot below, Date 1 is a normal date field, and Date 2 is a new unzoned date field.

  • The Execute “plugins_available” folder is a collection of sample configuration files used to adjust the behaviour of Execute (most commonly, integrations). We’ve done a bunch of clean-up in this folder to make it easier to find a relevant sample, and we’ve added piles of documentation to those sample files to make configuration much easier. Our focus on this release was Data Synchronization and Data Selection, but we’ll continue to work on this in the coming releases. If you think that deploying these files is too difficult (needing to have IT or Quorum Application Delivery actually deploy the plugin) we have a new feature coming very soon that is going to make this process approximately 100% easier! #system 21.1.222 #181647
  • We have made SUBSTANTIAL improvements to Null (no value) handling in Execute’s calculated fields. Nowhere is this more apparent, and needed, than our handling of date fields where, previously, an empty date field would read as January 1, 0001. Along with these changes, the IsNull function now can be used to detect an empty field so that you can build formula logic around that. Never has nothing been so exciting! #system 21.1.222 #172933
  • We’ve added a new setting to Document Synchronizations that can automatically inactivate records in Execute that are no longer found in the source data. #system 21.1.222 #181530

    A new setting (inactivateMissingRecords - off by default) was added to synchronizations to automatically inactivate records that are no longer found in the source dataset.

    If you would like to enable this in an existing sync, you can add the following to the IDocumentSynchronizer component.

    <inactivateMissingRecords>true</inactivateMissingRecords>
    

    Note: Be careful when using this feature as it can/will quickly inactivate records in Execute that are no longer found in the source system. If the source data is a table (populated by a scheduled job such as the replicator) make sure that the table is filled before letting this sync run! As always, it is strongly advised to run this in TEST before doing this in PROD.

    See plugins_available\integration\synchronization\synchronize_document_data.config.sample for more documentation.

Enhancements

  • Improvements to calculated field performance for formulas that involved a divide by zero. #performance 21.1.274 #291058
  • Browse reports (and many other report tabs) now support frozen titles, and columns using the new pushpin icon. #reporting 21.1.274 #296096
  • Upgraded 3rd party library (underscore.js) to eliminate a potential security vulnerability. #security 21.1.274 #298303
  • The new Show Field Usage function takes a while to work on very large record types. We’ve added a loading bar so that you won’t be left wondering, “Is it working?” #admin 21.1.273 #288972
  • Updated HTTP caching headers to improve page load performance across the system. #system #performance 21.1.273 #288982
  • Added additional guidance on the Plugin management screens to help administrators avoid common mistakes. #admin 21.1.272 #288483
  • Improved error messages with Quorum OnDemand Accounting (ODA) integration. #integration 21.1.272 #290415
  • Added support for new concurrent operational scheduling licenses. #opsched 21.1.271 #270672
  • We’ve made improvements to the Integration Agent’s auto-update mechanism to make it more reliable for organizations with restrictive firewalls. #integration 21.1.271 #279370
  • We’ve made some improvements to the error messages returned by our Integration Agent so that troubleshooting is a whole lot easier when things don’t go according to plan. #integration #valnav 21.1.270 #265027
  • We’ve significantly improved the import speed for new activities on a busy schedule. In our test of importing 7,300 rows, we reduced the import time from 4.5 minutes to a brisk 7 seconds (a time savings of one metric coffee break!). #performance #opsched 21.1.270 #268392
  • A bit of spring cleaning on the Integration Agent to ensure things keep running smoothly. #integration agent 21.1.270 #268543
  • To keep Execute’s Job Scheduling feeling snappy, we’ve limited the number of rows shown in the Job Hopper to 1000. Users will see a warning if they are seeing a partial result set, and searching will still search all rows and just return the (maximum 1000) matching rows. #performance #ui #opsched 21.1.270 #269387
  • We’ve reduced the volume of schedule data we read from the Execute server on each schedule change. This will substantially improve the performance of operational scheduling for large schedules and users with high-latency Internet connections. #performance #ui #opsched 21.1.270 #269388
  • We’ve seriously reduced the amount of data loaded, and the number of API calls made when loading a tab in Execute. This has the effect of substantially improving tab loading/switching performance, especially for very large (many custom fields) documents and users with high-latency Internet links. #performance #ui 21.1.270 #274567
  • Execute’ Support Package Generator is great for sending a copy of your environment’s configuration to Quorum for help. Unfortunately, generating the support package was quite slow for certain configurations. We’ve made some improvements to the speed and memory usage for these configurations. #performance #system #admin 21.1.270 #275762
  • Execute’s Data Warehouse feature ensures Execute data is efficiently replicated in an external AzureSQL or Snowflake. Sometimes, however, if you made a pile of changes in Execute, syncing those changes into the warehouse could take a bit of time. If you tried restarting Execute while that was happening, it would apparently hang without any obvious indication of why. We’ve added some logging to make it easier to see what’s going on. #performance #integration 21.1.270 #275780
  • Document Synchronization and Bulk Loads could perform poorly when dealing with very large numbers of records with a unique validation rule (such as PARTNERS, ACCOUNTS, …). In one environment with ~150k partners, the system would take many seconds to process each partner. With this enhancement, that same environment is loading records at a blazing 300 pps (partners per second). #performance #integration 21.1.270 #279727
  • We’ve made some improvements to responsiveness when pasting large amounts of data from Excel (using our import/update multiple record functionality). #performance 21.1.270 #280994 #280995
  • We’ve continued to clean-up and finesse our Data Selector sample configuration files to make them easier to understand and implement. #plugins 21.1.270 #281351
  • Huge speed improvement when using the job hopper to add jobs to a large schedule. #performance #opsched 21.1.269 #269386
  • Support for the 2.1 version of Peleoton’s APIs for Peloton-hosted instances of WellView and SiteView. #peloton #integration 21.1.267 #268639
  • Execute’s performance graphs (on the About page) now include past history instead of starting blank when you open the page. In addition, performance history is now included in the Execute Support Package to help our team troubleshoot issues. #system 21.1.267 #269390
  • Added configuration options to user.config to hide the default Wells and Jobs tabs on a Site, and the default Jobs tab on a Well. This is useful if you’ve built your own versions of these tabs using Document Link Summary tabs. #well delivery #system 21.1.267 #276708
  • Added helpful comments to the Snowflake helper views to describe foreign-keys for document reference fields. Note that these comments only show when viewing the view definition (such as by querying the Information Schema). #integration 21.1.267 #280427
  • We’ve added the ability to make notifications and reminders for Workflow Tasks. Previously, the ability to customize and extend notifications for Advanced Workflows was limited. Now, using the new “Workflow Task” notification/reminder type, administrators have a lot more control. #email #well delivery #workflow 21.1.267 #269583 #271420

    When creating a new Notification or Reminder, administrators can now use the new “Workflow Task” document type to build custom notifications for workflow tasks which much greater control than was previously available.

    These new notification types allow building more complex rules like:

    To help get you started, we’ve created a new sample notifications for the Job (RTx) module:

    Note: There is currently a known issue that makes it impossible to build notifications when a task activated/reactivated and assigned to a user. We are aware of this and working on a fix in a coming release.

  • If you’ve ever looked at the Execute email notifications and thought, “Gosh. These emails sure look retro!”, we have good news. The Execute email notifications have received a fresh coat of paint and look much nicer! #email 21.1.267 #264438
  • Updated version of .NET SDK used by (and included in) Execute. #system #security 21.1.267 #276751
  • We’ve seen some occurrences of long-running jobs (imports, generating support packages) being resubmitted by something. This is occasionally causing issues like overloading the Execute service with invalid requests or importing duplicate records. While we continue to investigate the cause of this, we’ve added new logging which will record if/when this happens. In addition, the new Duplicate API Call Detection setting can be used to reject these duplicate requests if you are encountering problems in your environment. #system 21.1.267 #278529
  • Deprecated functionality where workflows on parent documents could include/reference fields from child documents. In practice, this functionality was unlikely to be used since it could only work in very specific cases. On startup, however, Execute will check for references of this type and, if encountered, will prevent the system from starting up. If this happens, revert to Execute 21.1.264 and contact Execute Support. #workflow 21.1.265 #248415

    Previously, Execute’s Advanced Workflows allowed administrators to reference fields (either as task-fields or in Blockly rules) from child documents. In practice, these references would rarely work (since the behaviour becomes ambiguous as soon as a parent record has multiple children of the same type) and this functionality has been removed.

    Specifically, we have removed:

    1. The ability for a Project-level workflow to reference fields on linked Wells or Sites
    2. The ability for a Site-level workflow to reference fields on linked Wells or Jobs
    3. The ability for a Well-level workflow to reference fields on linked Jobs

    As a safety check, Execute 265 and higher will check for these invalid references and, if encountered, will fail to start and the server log will contain a message like this:

    2024-05-06 11:17:01.613 [ERR] Exception: System.ApplicationException: Upgrade incomplete. Precondition failed for upgrade of database to version 30: There are 2 task paths that must be addressed. Please contact Execute Support.
    

    If this happens, revert to Execute 21.1.264 and contact Execute Support.

  • Technical updates to the Job’s (RTX) Partner tab. #security 21.1.264 #260186
  • Improved error message when the Integration Agent connecting to Execute is the wrong version. #integration 21.1.264 #262830
  • The configuration migration tool now copies inactive custom tabs (which are often used for sub-views). #integration 21.1.264 #265018
  • Added a “Drop Table” flag to the Integration Agent Table Replicator configuration. This allows the Integration Agent to automatically drop and recreate the target table when changes happen. #integration 21.1.264 #268182
  • Added support for expression-based event filtering when using Enteprise Events for non-AFE document types. #integration 21.1.264 #270877
  • Added the ability to import actuals from a CSV file located on a remote SFTP server. #integration 21.1.263 #267410
  • Added ‘filename’ as an option when building expressions in Dynamic Docs and SharePoint configurations. #integration 21.1.263 #267534
  • Removed legacy option for GIT-managed plugin files. This was never actually turned on for customer environments. #system 21.1.262 #258547
  • Added support for publishing data to Quorum’s DataHub. #integration 21.1.262 #267291
  • Removed legacy 3rd party component on the Job’s Team Tab. #security 21.1.261 #260180
  • Added a new service health endpoint to simplify external monitoring of Execute services. #system 21.1.260 #254999
  • Improved the error message when an HTTP source is not found in the Integration Agent’s configuration. #integration 21.1.260 #259445
  • Added a new Regular Expression validation rule to allow building all manner of interesting field validation rules. i.e. numeric, serial numbers, phone numbers, … It even allows you to specify that the field should contain unique values. #system #admin 21.1.260 #259850
  • Document Link Summary Tabs now support Extended Document Links. #system 21.1.260 #262829
  • When building browse reports on Custom Tab configuration, administrators can now see the field’s display name and not just the database column name. #admin 21.1.259 #258791
  • Upgraded the 3rd party component used by the user permissions screen. #security 21.1.259 #259244
  • Improved documentation on the ‘Reset Task’ API. #integration 21.1.259 #259297
  • Replaced the 3rd party component on the ‘Set Document Type’ button on Notifications and Reminders. #security 21.1.259 #261077
  • Brand new API-based real-time export of approved AFEs from Execute into Quorum On Demand Accounting. #integration 21.1.258 #260257
  • Improved handling of minor account number formatting differences between On Demand Well Ops (WellEz) and Execute. For example, Execute having “100 / 01 " while ODW is configured with “100.01 " will no longer cause an issue when exporting AFEs and importing field estimates. #integration 21.1.258 #260479
  • Replaced the legacy component used on the Job’s Approval tab. #security 21.1.257 #260183
  • Replaced a legacy 3rd party component used by the header on a Job’s Discipline tabs. #security 21.1.256 #257877
  • Replaced a legacy 3rd party component used by the header on Discipline configuration tabs. #security 21.1.256 #258264
  • Improved error messages when exporting projects to Val Nav. #integration #valnav 21.1.256 #259893
  • Added a new ‘TABLE’ mode to Execute’s SQL Warehouse feature that separates the pushing of data to the warehouse, from the processing of that data into the helper views. This mode is intended for large environments, or those where the existing views aren’t performant. #integration 21.1.256 #260441
  • If you are a heavy user of document links, you can now create extended document links (see extended_document_link.config.sample). This allows you to show links for documents linked to other linked documents. And because that sentence left more questions than it answered, here is an example: A common setup is for a Pad Site to be linked to one or more Wells. A Well is linked to one or more Jobs. A Job is linked to an AFE. This feature allows you to say, “I’d like to see those AFEs that are linked to Jobs that are linked to the Wells on this pad as virtual document links on my Pad Site so that I can, among other things, make use of Execute’s formulas to give me a total AFE cost across all the Jobs on all the Wells on my Pad.” #admin 21.1.255 #257218
  • Replaced legacy components on the Job/RTx Discipline’s Configuration tab. #security 21.1.255 #257588
  • Administrators can now see the size of text fields from both the document’s field list and the “Field Info” browse report. Similarly, document reference fields now indicate which document type is referenced. Finally, calculated fields are also now marked as such, making it easier to identify which fields are calculated. #admin 21.1.255 #257711
  • Added new formula functions “DocumentLinkTextValueCombined” and “DocumentLinkChildrenTextValueCombined” to make it easier to quickly summarize field values from related documents, such as including a comma-separated list of Well UWIs on your Pad Site. #formula 21.1.255 #257318
  • We’ve added “Description” fields to store notes about workflow definitions and custom tabs to help administrators keep things nicely organized. #admin 21.1.255 #257212
  • Administrators using the browse screen to report on FIELD_INFO configuration will be pleased that we’ve added the “Editability Rule - Display Name” and “Visibility Rule - Display Name” fields to make it easier to figure out which rules are actually in use. #admin 21.1.255 #257213
  • If you find yourself selecting a lot of data using Execute’s Table Data Selectors, we’ve added “Select All” and “Select None” buttons to make life easier. While we were at it, we also added larger limits to the number of rows to show, and we’ve made Execute remember each user’s preferred number of rows. #system #ui 21.1.255 #257214
  • If you struggled to find the descriptions of available user privileges, you weren’t alone. We’ve renamed the “Administrator Privileges” to “Available Privileges” and added a link to this helpful list from the User Role configuration screen. By the way, you can also hold your mouse over a privilege while you are in the User Role configuration screen to see the description. #admin 21.1.255 #253801
  • Execute includes a cool feature where a user can request to be notified (by email) when another user moves their activities on a schedule. We’ve resolved a bug that prevented this notification from working if the user owned any undated activities. #opsched 21.1.255 #255857
  • Updated the Schedule View configuration documentation to reference “greater” and “less” than operators. #opsched 21.1.255 #256670
  • We’ve continued to clean-up the sample data selector plugin files. #plugins 21.1.255 #256784
  • Users reporting on Workflows and Workflow Task status will be happy that we’ve added columns for the root document type, root document display name, and workflow name. This makes this report much more useful! #workflow #reporting 21.1.255 #257213
  • If you have trouble finding columns in our detail-level reports, we have good news! We have adjusted the report builder’s “Available Columns” search to search on the full name of columns so that if you are searching for “partners” on an “AFE - Partners” report, you’ll actually see the partners columns as you’d expect. #admin 21.1.255 #257213
  • We’ve made it easier for administrators to create plugins (such as Data Selectors and Synchronizations) that point at the Execute database by adding a new database alias “EXECUTE_INTERNAL” which can be used in your plugin’s connection string. (Ex: “Connection List=server; Id=EXECUTE_INTERNAL”) #admin 21.1.253 #254272
  • Various performance improvements to Operational Scheduling #opsched 21.1.251 #244269
  • Having trouble finding a particular well or activity on your schedule? We have a thing for that! The new schedule search box makes it incredibly easy to find an activity that is hiding somewhere in your schedule! #opsched 21.1.251 #244269
  • Updated version of SQL Server database library. #system #security 21.1.249 #247055
  • Improved handling of newly added tasks when rolling out a workflow against a complete or mostly complete workflow instance. Tasks autocomplete if the tasks that immediately follow are also complete and the task is set to require manual completion or the task’s completion rule is met. #workflow 21.1.249 #247181
  • Updated integration with Dynamic Docs to work with the latest DynamicDocs APIs. #integration 21.1.249 #249213
  • Migrated the Job’s Copy Teams backend toolkit from Angular to React. This is part of a larger initiative to eliminate our dependency on an aging version of Angular. #security 21.1.247 #171883
  • Increased the default size for formula editing windows to make editing those monster formulas more pleasant than trying to peer at it four lines at a time. #system 21.1.247 #244477
  • A while ago, we added a great feature to Execute’s Document Synchronization to automatically inactivate records when they no longer appeared in the source data. Now, we’ll automatically reactivate those records if they come back! #integration 21.1.247 #245783
  • We’ve added a new “Copy from Sample " button when creating a new in-app plugin to make it much easier to preload your plugin with a sample from the plugins_available folder. #admin #system 21.1.247 #246432
  • Administrators with the “Manage Excel Templates " privilege can now upload and manage Excel Template Reports from Tools > Configuration > Manage Excel Template Reports. #admin #reporting 21.1.247 #246435
  • Added support for publishing Execute events to a file on a remote server using SFTP. #integration 21.1.247 #246490
  • Added new AFE-level calculated fields to allow reporting on reviewer and approver counts (both totals, and those who have completed their work). #afe 21.1.247 #247494
  • Changed the default minimum password length to 12 (doesn’t affect environments using SSO). #security 21.1.247 #247637
  • Added handy Select All / Select None buttons to the support package generation screen. #admin 21.1.247 #247724
  • The project reforecasting process now better identifies when a project needs forecasting, and better handles changes to historical AFE actuals (such as when changing mappings). #budget 21.1.246 #164376
  • Added a new AFE-level field “Available Project Capital” which shows the remaining capital available for an AFE (total capital available for allocation project activities less any AFEs allocated to those activities). This makes it easy to build business rules that alert the user when their AFE exceeds the available budget. #afe 21.1.246 #243837
  • Forced a “recalculate” when creating Excel Template Reports to resolve issues using those sheets directly in systems which don’t support Excel calculations natively. By the way, if you find it cumbersome to manage your Excel Template reports in Execute we’ll have a thing for that in the next update! #system 21.1.246 #244228
  • Added an alert when adding a connection string to a SQL Server database without enabling end-to-end encryption in the connection string (Encrypt=true). We strongly recommend enabling end-to-end encryption when configuring Execute to connect to any SQL / Azure SQL database over an untrusted network. #security #integration 21.1.246 #244240
  • We made the account group on accounts an optional field so make implementation easier for those of you who don’t need the cosmetic grouping of AFE costs by account group. In addition, this makes it possible to sync the list of accounts from a 3rd party system that doesn’t have a similar concept of Account Group. #afe 21.1.246 #244439
  • Accidentally deleted the wrong document? We’ve all done it. We’ve now added a “Undelete” action to deleted records that brings that document back from the dead. In general, the rule of thumb is that “if you can delete it, you can now undelete it!”. (Note that for AFEs specifically, Undelete is only available for AFEs deleted after taking this update.) #system 21.1.246 #244584
  • If you are a heavy user of Document Links, you’ll be overjoyed to know that you can now create summary tabs that list all linked documents of a specified type and give the administrator and the end-user the ability to control which columns they see. These are controlled by the new “plugins_available\customization\tabs\documentlinksummary.config.sample” plugin #system 21.1.246 #245826
  • Sample configuration for integration with Quorum’s OnDemand Accounting system #afe 21.1.246
  • The Update Forecasts grid now supports sorting and filtering to make it more pleasant when managing large number of capital projects. #budget 21.1.244 #161327
  • The Integration Agent status information has moved into the Help / About screen. #integration 21.1.244 #179893
  • We’ve included the “ConnectionStringEncryptor.exe” helper in the Integration Agent package to make it easier for those who want to store encrypted database credentials in the databaseConnections.config file. #security #integration 21.1.244 #216364
  • Administrators can now delete unneeded User Roles, Accounts, User Groups, Partners, and Position Rules. #admin 21.1.244 #231563
  • Minor cosmetic enhancements and fixes to the new Job Scheduling capability. #opsched 21.1.244 #237776
  • If exponents are your thing, you’ll be happy to know that Execute’s formulas now support the “Pow” function! #system 21.1.244 #241158
  • Performance fixes to OData column validity checking on system startup. #integration 21.1.244 #241699
  • Added the ability to synchronize schedules with Quorum’s Dataflow. #integration 21.1.244 #243278
  • Removed unused WSDL and XML examples from API Documentation. JSON is our path forward. #integration 21.1.242 #235124
  • Added the attachment date to the dropdown on Attachment Fields to help you pick the right attachment. (This idea was raised as part of our last CAB meeting). #ui 21.1.242 #236143
  • Administrators with the “Can Delete Top-level Workflow Instances” privilege can now delete a workflow instance that is no longer needed, or was created in error, using “More > Delete Workflow Instance” while viewing the workflow instance. #admin #workflow 21.1.239 #178841
  • Emailed workflow task links now point to the appropriate root document (Well, Job, AFE, etc.) instead of the Workflow Instance #workflow 21.1.239 #235449
  • Improvements to keyboard-based tabbing between fields in grids. #ui 21.1.235 #233113
  • Added many additional formula functions to make it easier to extract and use data in custom tables. #system #formula 21.1.235 #234266

    We’ve added some calculated field helper functions to fetch data from tables:

    These functions are broken into two parts:

    1. Find a row - return the “ID” for the row you’d like to retrieve a value from
    2. Retrieve a value - given the “ID” for a row, retrieve the value of a specified field

    Find a row functions:

    • TableGetRow("TABLE","FIELDPATH","FIELDVALUE") - returns ID of the row where FIELDPATH = FIELDVALUE
    • TableGetMinDateRow("TABLE","DATEFIELD") - returns ID of the row with minimum date in DATEFIELD
    • TableGetMaxDateRow("TABLE","DATEFIELD") - returns ID of the row with max date in DATEFIELD
    • TableGetMinRow("TABLE","NUMFIELD") - returns ID of the row with minimum numeric value in NUMFIELD
    • TableGetMaxRow("TABLE","NUMFIELD") - returns ID of the row with maximum numeric value in NUMFIELD

    All of the above return the text “MULTIPLE” if there are multiple matched rows.

    Retrieve a value functions:

    • TableGetText("TABLE","ROW ID","FIELD") - returns the value of a TEXT field
    • TableGetDecimal("TABLE","ROW ID","FIELD") - returns the value of a DECIMAL field
    • TableGetInteger("TABLE","ROW ID","FIELD") - returns the value of an INTEGER field
    • TableGetBoolean("TABLE","ROW ID","FIELD") - returns the value of a BOOLEAN (Yes/No) field
    • TableGetDate("TABLE","ROW ID","FIELD") - returns the value of a DATE field

    If “MULTIPLE” is passed in as the Row ID, the above functions return Null

    Examples:

    The following returns the ID of well with DESCRIPTION = “test”

    tablegetrow("WELL","DESCRIPTION","test")
    

    The following returns the ID of well with Custom PARNTER name of “Arctic…” (i.e. can peak into fields on document references)

    tablegetrow("WELL","CUSTOM/PARTNER/COMNAME","Arctic Canada Ltd.")
    

    The following returns the of the primary well (boolean checking)

    tablegetrow("WELL","ISPRIMARY","True")
    

    The following shows how you can chain functions together to get the Company Name value (custom field on the AFE’s Well) from the Primary Well.

    tablegettext("WELL", tablegetrow("WELL","ISPRIMARY","True"), "CUSTOM/PARTNER/COMNAME")
    

    In this example, we return the Contract Number for the contract (custom table) with the most recent contract date. (Note: if two contracts share the same latest date, nothing will be returned).

    tablegettext("CUSTOM/CONTRACTS", tablegetmaxdaterow("CUSTOM/CONTRACTS","CONTRACT_DATE), "CONTRACT_NUMBER")
    
  • Multiple behaviour improvements to drop-down lists in grids. #ui 21.1.235 #235035
  • We’ve updated the version of NSIS (the software that powers the Execute installer) and, while we were at it, we now display the version of Execute being installed in the installer to help avoid any “oops, I installed the wrong version” type mishaps. #system 21.1.234 #230486
  • The creator of a document link, and an administrator, are now able to update the comment on document links without removing and recreating the link. Helpful for fixing up those embarrassing typos. #ui 21.1.234 #231482
  • We added a new warning when exporting from OpSched to Enersight to highlight any step groups that are partially scheduled. Enersight requires that all activities in a step group are either scheduled or unscheduled, and this helps catch those cases where that condition isn’t met. #opsched #enersight 21.1.234 #231963
  • If you were curious about who created that RTD/RTx/Job vs. who owns it now, we’ve added a new “Creator” column and backfilled it for all of your historical data using Execute’s version history. #well delivery 21.1.234 #233601
  • Improved the error message when the Integration Agent Data Replicator failed due to a column-type mismatch. The error now shows the offending data types. #integration agent 21.1.234 #233688
  • Added a new schedule validation that highlights activities in a step group with inconsistent use of the “Scheduled” flag. For activities in a step group, it is required/expected that they all be scheduled, or all be unscheduled. #opsched 21.1.234 #234126
  • Added some nice navigation arrows to make it easier to open the related root document for a workflow task from the dashboard widgets, and the task completion popup. #workflow 21.1.234 #235278

    If you are using Execute’s Advanced (Task-based) Workflows, to help guide the workflow for an AFE or a Job, it turns out it wasn’t easy to find your way back to the underlying AFE/Job if you wanted to see the whole picture.

    In this update, we’ve added helpful little icons in the “My Active Tasks” and “Group Active Tasks” widgets that will bring you directly to the root document.

    Similarly, there was no way to open the root document once you were viewing a task (either by clicking the “view” button next to the task in the dashboard, nor by clicking the link in the email), so we added those too.

  • We’ve added a new Data Loader that allows bulk loading links between documents in Execute. #loader 21.1.228 #229813
  • We’ve increased your filtering options with a new “Doesn’t Start With” operator you can use when building browse reports. #reporting 21.1.228 #230542
  • We’ve turned on the “Comment Preview” column for all report types, making it easy to report on the latest comment for your projects, wells, sites and any other document you can think of. #system 21.1.228 #230763
  • The data loaders now correctly create any required “system managed” document links on load, instead of requiring you to restart the service for those to show up. #system #admin #loader 21.1.228 #230767
  • It is now possible to bulk load calculated fields and their formula (making it much easier to migrate calculated fields from one environment to another). #system 21.1.228 #230769
  • The job start date is now appended to the Job name when linking an AFE to a Job in Peloton to help differentiate between multiple jobs of the same type on the same well. #peloton #afe 21.1.228 #230037�
  • The new auto ad hoc reviewer function now works with TEXT or calculated fields, rather than just LIST type fields. #afe 21.1.227 #229993
  • Added new DocumentLinkSum functions to calculated fields that make it possible to add up values from linked documents. #system 21.1.227 #230006

    We’ve added four new formula functions to make it easy to pull text information from linked documents (in the case where there are multiple linked documents):

    • DocumentLinkChildrenSum
    • DocumentLinkChildrenSumFiltered
    • DocumentLinkSum
    • DocumentLinkSumFiltered

    Each function returns the sum of a numeric field across linked documents.

    i.e.

    On a site, the following would return the sum of the Cost custom field on linked child wells.

    DocumentLinkChildrenSum("WELL","CUSTOM/COST")
    

    While the following would add up the Cost custom field from linked “Maintenance” Jobs for the site.

    DocumentLinkChildrenTextFirstFiltered("RTX","CUSTOM/COST","JOB_TYPE/VALUE","Maintenance")
    
  • Major performance improvements to old-style create rights editing. #admin 21.1.224 #228247
  • Document sync now supports automatic document inactivation for document types which don’t have an out-of-the-box ACTIVE column. #integration 21.1.224 #228269
  • Added the ability to use a subtab view (a tab with multiple subtabs) as a child/sub-view on another view. An almost incomprehensible sentence but, for those of you waiting for this… it’s here! #admin 21.1.224 #228531
  • We’ve improved handling workflows when their root document is archived (using your document archive rules). Execute will no longer start new workflows, or update existing ones, on archived documents. In addition, tasks against archived documents are also considered archived on reports. #workflow 21.1.223 #178580
  • A new column, “Workflow Applicable”, was added to Workflow Task reports allowing you to find active workflows that probably don’t need to be there (based on the current rules and data). #workflow 21.1.223 #178844
  • Updated the Integration Agent to make the “httpConnection.config” and “databaseConnection.config” files optional on startup. #integration 21.1.223 #227267�
  • Added new formula functions to simplify pulling text data from linked documents. #system 21.1.223 #228015

    We’ve added four new formula functions to make it easy to pull text information from linked documents (in the case where there are multiple linked documents):

    • DocumentLinkTextValueFirst
    • DocumentLinkTextValueFirstFiltered
    • DocumentLinkChildrenTextFirst
    • DocumentLinkChildrenTextFirstFiltered

    Each function returns the alphabetically first non-empty value from the referenced field on the linked documents.

    i.e.

    On a site, the following would return the alphabetically first non-empty Job Description from linked child jobs.

    DocumentLinkChildrenTextFirst("RTX","DESCRIPTION")
    

    While the following would do the same, but only for Drilling Jobs.

    DocumentLinkChildrenTextFirstFiltered("RTX","DESCRIPTION","JOB_TYPE/VALUE","Drilling")
    
  • Technical upgrade to document copy pop-screen to remove an out-of-date component. #security 21.1.222 #166570
  • Custom Business Rules now have an ACTIVE flag, which allows you to easily turn off rules you don’t need any longer. #system #admin 21.1.222 #171791
  • Upgraded multiple 3rd party components to resolve a potential security issue. #security 21.1.222 #176492
  • Improved the help / error text for default values to make it more obvious how to set default values for decimal fields. #system 21.1.222 #179772
  • The detailed change history on a document is great, but defaulting to loading detailed history for all time is excessive and can adversely impact the performance of the system. We’ve updated the Change Tracking tab to load only 60 days of detailed history by default. If there is more history than that to show, you’ll see a “Load All History” button which will bring in the rest of it. #system 21.1.222 #180622

    To improve performance when viewing Change Tracking for documents with a LOOONG history of changes, we have modified the default behaviour to only show/load detailed history for 6o days.

    If you’d like to see the full history, there is a handy “Load History” button which will load everything, just as before.

    We’ve done our best to make sure it’s clear when you are viewing a partial history (or searching partial history) to avoid any confusion.

    Here is how it all looks.

  • Curious how long it takes a workflow task to complete? We’ve now now added a TaskAssignedDate function to calculated fields (to sit alongside the TaskCompleteDate function) so that you can now calculate just how long some of those critical tasks take to complete. #workflow 21.1.222 #180668
  • If you have multiple Document Synchronizations configured against the same type of Document, we now append the sync component’s ID to the log filename so that you can tell them apart. #system 21.1.222 #180847
  • Adjusted the export of estimates sent to WellView/SiteView so that they are sorted by account number. #afe #peloton 21.1.222 #180876
  • Continued enhancements to Integration Agent when copying data from Execute to an on-prem table. #integration 21.1.219 #162700
  • It is now possible to report on Document Links via. OData so that your dashboards can make sense of links between documents in Execute. #system #odata 21.1.219 #164442
  • Upgraded components on the drag-and-drop browse report builder screen to replace an out-of-date 3rd party components. #security 21.1.219 #164469
  • Upgraded jQuery library to the latest and greatest to resolve some potential security threats. #security 21.1.219 #164814
  • On system startup for a brand-new database, Execute will now generate a secure random password for the System Admin user and store it in initial_system_admin_password.txt in the service’s config folder. #security 21.1.219 #176042
  • Added the ability to define additional System Links. #system 21.1.219 #176280

    Execute automatically manages System-level document links between…

    • An AFE and the Job it was created from
    • An AFE and the Project(s) it is linked to
    • A Well and it’s Pad (Site)
    • A Project and related Wells and Sites
    • A Job and related Wells and Sites

    If you have some other relationship between records (such as a “Well” drop-down field on an AFE), you can use the new plugins to automatically manage System-level document links based on that field.

    This functionality is enabled with the following new plugin configuration files:

    • plugins_available/custom_auto_document_link_list.config.sample
    • plugins_available/custom_auto_document_link_single.config.sample
  • Changed the suffix in email notifications to use the user-facing Environment Label (shows in the top-bar) instead of the Environment Name (used for keeping track of services in the Windows Services control panel). We typically recommend the Environment Label for production environments be empty which, with this change, means we can avoid confusion when an email like “Execute - Well Diego 7a Status Changed (Production)”… Did Diego 7a go into production?!!! If you do have email notifications enabled in your TEST environment and you do not have an Environment Label set (the orange badge in the top-left of your TEST environment), contact Execute support to get the environment label set so that TEST and PROD emails are able to be differentiated from each other. #system 21.1.219 #178493
  • In the previous update, we introduced the ability to reactivate part of the workflow. Unfortunately, when subworkflows were involved, this reactivation was “excessively thorough” and would inadvertently reactivate tasks that shouldn’t have been reactivated. With this update, we endeavor to make the reactivation process involving subworkflows “do the right thing”. #workflow 21.1.219 #178952
  • Add a new FormatDate function to calculate fields which makes it easy to convert a date/time field to text in a specific time-zone and format. #system 21.1.219 #178988

    The new FormatDate function enables you to convert a date field to text in a specified format (and time-zone).

    For example, this formula converts the START_DATE to the America/Edmonton time-zone and then formats it as a long format date/time field (i.e. 2022-12-23 11:30:00 PM).

    FormatDate([START_DATE], "yyyy-MM-dd hh:mm:ss tt", "America/Edmonton")
    

    This formula converts the START_DATE to the UTC and then formats it as a date only (i.e. 2022-12-23).

    FormatDate([START_DATE], "yyyy-MM-dd", "UTC")
    

    You can find documentation on date format strings here.

  • Sometimes you just want to spread the word… to an existing Execute user. We’ve added a new “notify specified user” block that can be used to notify a specific Execute user. #system 21.1.219 #179961

    The new “notify specific user” block is available when building Notifications and Reminders and allows you to pass in an existing Execute users name, Document ID, or other identifier. When the rule runs, we’ll automatically look up the user’s current email address.

    Rule

  • Added an option to supress the automatic creation of Wells when import Projects from Val Nav or Enersight (it will, however, continue to link to an existing well). #integration 21.1.219 #175310
  • New system for managing sensitive credentials in Execute and avoiding the need to embed those credentials in plugin files. #system #security 21.1.218 #157817

    In this update, we have made some HUGE improvements to how we store credentials for 3rd party systems (required for integrations).

    What needed to change

    Previously, some credentials were stored in the Execute database, while others were embedded in plugins and configuration files.

    • Credentials in the database were suboptimal for several reasons:
      • Users with read access to the database could potentially retrieve integration credentials
      • When copying from PROD to TEST you could inadvertently end up with a TEST environment that was integrating with PROD data
    • Access to credentials in the plugins and configuration files were typically limited to the IT folks who manage those systems, but it’s still not a best practice to do things that way.

    What’s New

    With this update, we’ve added a new credential storage mechanism.

    • For those of you with on-prem Execute environments, this is an encrypted file called credentials.bin in your service’s config folder. This file is encrypted using the Windows Data Protection API and unusable for any user other than the user running the Execute service. (NOTE: this means that changing the user that runs the Execute service will render all credentials stored in this file unusable!)
    • For those of you with Quorum-hosted Execute environments, these credentials are stored securely in an Azure Key Vault.

    All external credentials managed from within the Execute UI (Quorum OnDemand Well Operations (WellEz), Peloton, Enersight, and the Integration Agent) are automatically written to the new encrypted credential mechanism.

    Relevant plugins and config file now support a sensitive information placeholder element which will refer to credentials stored in the credential store.

    What happens on upgrade?

    On upgrade, any database-stored credentials (such as WellEz, Peloton, Enersight, and the Integration Agent) will be automatically migrated to the secure credential store. Note that this will come with a change in behaviour as these credentials will no longer copy between Execute environments when you copy the database. While different, we strongly feel this is a much safer behaviour.

    Any existing plugins/config files with embedded credentials will be left as-is. If desired, the process of migrating a secret from these files to the credential store is described below.

    How do I add protection for credentials in my config and plugin files?

    Many plugins (such as synchronizations to external systems) contain sensitive information like database connection strings.

    <actual_cost_database>Data Source=SQL_Server;Initial Catalog=SQL_Server;Integrated Security=False;User ID=accounting;Password=hunter2;MultipleActiveResultSets=True</actual_cost_database>
    

    We can replace the password in the connection string with a placeholder label (prefixed with @@@).

    <actual_cost_database>Data Source=SQL_Server;Initial Catalog=SQL_Server;Integrated Security=False;User ID=accounting;Password=@@@ACCOUNTING_PASSWORD;MultipleActiveResultSets=True</actual_cost_database>
    

    Then, an administrator with the Edit External Credentials admin privilege can navigate to Tools > Configuration > External Credentials and set the value for that placeholder.

    Adding a credential

    Now, when Execute tries to connect to the accounting database it will evaluate the connection string and replace the placeholder @@@ACCOUNTING_PASSWORD with the password we defined in the External Credentials screen.

    Note that for security purposes the password, once added, can never be read from the Execute UI. A best practice is to track integration passwords in a separate secure password management application so that they are available if needed in the future.

  • Authorized users can now reset/reactivate workflow tasks, causing parts of the workflow to be re-run. #workflow 21.1.218 #158680

    The new advanced task-based workflow module in Execute is great and allows you to tightly control the collection of information on your Wells, Sites, Jobs, AFEs, etc.

    Up until now, the workflow always marched forward. Once a task was complete, it would stay complete. There was no way to reactivate part of the workflow and force those tasks to be re-run.

    <announcer_voice>Until today. . .</announcer_voice>

    In this update, we’ve added phase 1 of a new workflow reset feature that allows a task owner or an administrator with the Can Reactivate Workflow Task admin privilege to reactive a task. As part of the workflow definition, administrators can now configure what happens when a task is reactivated, such as:

    • Does reactivating a task clear any data (forcing the user to re-enter those fields)?
    • Does reactivating a task require the user to manually review/complete the task?
    • If a parent task is reactivated, should the child/dependent task also be reactivated?

    As mentioned, this is only the beginning.

    In this update, task reactivation is a manual process.

    Over the coming months, the plan is to introduce an automated aspect to this so that you can build rules like “If the location changes, automatically reset big chunks of the workflow.”

    As part of this change, we have also cleaned up the behaviour of the “Manual Completion Behaviour”.

    • If a task marked as “Require Manual Completion” has a Completion Rule, that completion rule must be satisfied before the task can be completed.
    • If a task is not marked as “Require Manual Completion”, the task must have a Completion Rule to be completed. There is no option for a user to manually complete the task in this case. This is a change from the previous version where the software would incorrectly show a Complete button to the user.
    • Tasks where “Require Manual Completion” = yes will show a “Save” and a “Save & Complete” button
    • Tasks where “Require Manual Completion” = no will show a “Save” only
  • Now that Execute is part of the Quorum family, we thought it was a good time to tweak things a bit. The product formerly known as “Quorum Execute” is now “Quorum Execute” or “Execute” for short. The application icons, logos, and branding have been updated accordingly. #system #security 21.1.218 #159350
  • To help keep things tidy, we’ve added an option to remove schedule activities that are no longer in your Enersight import dataset. #opsched #enersight 21.1.218 #161131
  • If you use OnDemand Well Operations (WellEz) and have AFEs that contain costs that apply to multiple jobs (such as a D&C AFE), we have good news! We’ve added support for pushing multi-job AFEs into WellEz. #well delivery #wellez 21.1.218 #162398
  • Workflows created against AFEs are now AFE-version specific and will reset when revisions/supplements are made. #workflow #afe 21.1.218 #163281
  • Adjusted browser caching from 24 hours to 15 minutes to avoid issues that pop up after upgrading Execute versions. #system 21.1.218 #165822
  • Support m-files:// links to the M-Files document management system #system 21.1.218 #166537
  • We’ve made the user experience a bit more consistent by ensuring that primary document types (AFE, WELL, RTx, SITE and PROJECT) always have vertical tabs. #system 21.1.218 #172292
  • We’ve cleaned up the interface a bit by hiding automatic Wells/Sites/Jobs tabs on Sites, Wells, Projects, etc. if those documents are not being used (i.e. There is not much point in showing an empty Wells tab on a Project if you aren’t using Execute’s Wells module). #system 21.1.218 #172936
  • After rolling out Document Validation Rules and Custom Field Permissions, we fully intended to allow you to create those rules on any record in the system. Unfortunately, overzealous validation shut that down when you tried to actually do that. We have “adjusted” that validation so that you may now add, for example, Document Validation rules to your Partners, AFE Types, etc. #system 21.1.218 #174942
  • Added new Table*Filtered functions which allow extracting Min/Max/Count of a subset of the rows in a table. #system 21.1.218 #175760

    We’ve added some new functions to provide more options when building calculated fields against a subset of the data in a table.

    • TableMaxDateFiltered - return the maximum date from a filtered subset of the rows in a table
    • TableMinDateFiltered - return the minimum date from a filtered subset of the rows in a table
    • TableMaxFiltered - return the maximum number from a filtered subset of the rows in a table
    • TableMinFiltered - return the minimum number from a filtered subset of the rows in a table
    • TableSumFiltered - return the sum of a numeric field on a filtered subset of the rows in a table
    • TableCountFiltered - return the count of a filtered subset of the rows in a table

    All of the above work like their non-filtered counterparts, but introduce two new parameters:

    1. filterPath - is the path to a field on the table row that we are going to use to filter the rows.
    2. filterValue - is a text value that we are going to compare to the value of the field in filterPath. The function will only process/include rows where the filterValue is a match to the filterPath value.

    For example:

    If I have a custom table for tracking Contract details (CUSTOM/CONTRACTS) and I wanted to return the most recent contract date (CUSTOM/CONTRACTS/CONTRACT_DATE) for any “Land”-type contract (CUSTOM/CONTRACTS/CONTRACT_TYPE = “Land”), I would use a formula like this:

    TableMaxDateFiltered("CUSTOM/CONTRACTS","CONTRACT_DATE","CONTRACT_TYPE","Land")
    

    (note: the fields above must be enclosed in quotes and not square brackets in this case.)

  • We have also included sample configuration for deploying sub-tabs which may be helpful in simplifying layout for those of you with huge numbers of fields. #system 21.1.218 #172292
  • Execute previously relied on the older NTLM protocol for on-prem single sign-on. In this release we’ve also enabled Kerberos support. If this causes problems on your environment either NTLM or Kerberos can be disabled. #system #security 21.1.218 #175304

    We will enable both types of authentication by default. They can be turned off by adding one of the following to the <castle> container in user.config.

Bugs

  • Fixed an issue where a misconfigured plugin would cause the menubar to fail to load. #system 21.1.274 #245798
  • Fixed an error where users were unable to update activity duration on activities in Execute’s operational scheduling module. #opsched 21.1.274 #289480
  • Improved the clarity of error messages raised when a Document Link Summary view is misconfigured to make finding and fixing the mistake easier. #system 21.1.273 #253151
  • Fixed an annoying issue where switching schedule views would sometimes jump to a different view a few seconds later. #opsched 21.1.273 #288470
  • Fixes to the export of AFEs to Peloton-hosted SiteView (2.1 APIs). #integration #peloton 21.1.273 #291362
  • We resolved an issue where we were inadvertently creating automated document links to Project Snapshots. #system #budget 21.1.273 #291678
  • Resolved issue where Blockly rules referencing the now deprecated Advanced blocks would fail to compile. #workflow 21.1.272 #283239
  • Fixed issue where NET estimate was not correctly exported to Quorum OnDemand Accounting (ODA). #integration 21.1.272 #290332
  • Fixed an annoying issue where the route for review comment box would clear itself when you clicked outside of the comment box. #afe 21.1.271 #228443
  • Fixed an issue where document synchronizations would create multiple rows if the document’s visibility rule excluded the AFE Navigator Service User. #integration #system 21.1.271 #237917
  • We’ve ensured that errors when connecting to databases (such as using the Connection String Editor’s test button) don’t expose the connection string which may contain security credentials. #security #integration 21.1.271 #268092
  • We’ve added some additional safety checks to ensure you don’t accidentally bulk import the same data twice (causing duplication). #system 21.1.271 #268614
  • Resolved issue where the sample connection string for EXECUTE_INTERNAL wasn’t able to be copied into a plugin because of case-senstivity issues. #system 21.1.271 #269490
  • The system will now wait for all scheduled tasks to complete before shutting down. #system 21.1.271 #280989
  • Resolved an issue where the Integration Agent’s table replicator couldn’t handle null boolean values on SQL Server. #integration agent 21.1.270 #268904
  • We’ve eliminated a potential memory leak in Operational Scheduling where the detail grids (below the gantt) weren’t always cleaned up properly when we didn’t need them any more. #performance #opsched 21.1.270 #279943
  • Added a rate limiter to the new Duplicate API call checker to avoid overloading logs. #system 21.1.270 #284913
  • Execute will now prevent certain long-running and computationally expensive jobs (import/update multiple, and generate support package) from being started multiple times simultaneously. This would sometimes happen if a user rapidly clicked on the start button, causing the job to be submitted multiple times. In the case of imports, this could cause the data to be imported multiple times. #system 21.1.269 #274986
  • Resolved an issue where the support package would fail to generate successfully when including Document Metadata. This issue was introduced in the previous email enhancements because the newly added fields had unspecified field lengths (not a problem for Execute, but unexpected for the support package generator). #system 21.1.269 #281821
  • Resolved an issue where AFE Numbers containing “&” caused errors when exporting to ODA or ODW. #workflow 21.1.267 #267409
  • Resolved an issue where the /Documents/Field/UpdateMultiple API wouldn’t allow you to set top-level document fields. #api 21.1.267 #274988
  • Fixed the mail icons on the Job’s Team tab and restored the behavior where it would automatically populate the new email with a link to the Job. #well delivery 21.1.267 #277169
  • Fixed an embarrassing typo in the function description for all of our Table* formula functions. #formula 21.1.267 #280425
  • Resolved issue where the new bulk editing from browse screen feature would not work for workflow task reports. #reporting 21.1.267 #272576
  • Resolved issue where Export to QByte would fail when using the Integration Agent. #integration 21.1.264 #267950
  • Resolved issue where configuration migration would fail to match accounts on Overhead Rules. #admin 21.1.264 #271118
  • Improved output message when using the “Test” button on a Workflow Task’s Hide Rule. #admin 21.1.264 #271760
  • Resolved issue preventing the legacy reporting tool from connecting to Execute. #reporting 21.1.264 #272493
  • Resolved issue where choosing a contributor on a Job’s Team-tab would fail if the User Identifying Columns were modified from the default. #well delivery 21.1.264 #273009
  • Fixed the issue where the ‘Extension’ property when publishing Execute event data to a remote SFTP server was ignored. This meant that all the newly created files were given no extension, instead of whatever was configured. #integration 21.1.263 #268098
  • Resolved issue where the AFE’s release validation rule was being incorrectly invoked on Custom Document Actions. This prevented some plugins from working as expected. #afe 21.1.262 #267702
  • Resolved an issue where the Integration Agent was unable to connect to HTTP/HTTPS services. #integration 21.1.262 #267829
  • Resolved issue where the timezone in Document Synchronization plugin files was being ignored. #integration 21.1.261 #263907
  • Resolved issue where custom tables exported to the SQL Warehouse / Azure SQL were empty. #integration 21.1.261 #266641
  • Resolved an issue where the task reactivation button would disappear when paging through tasks on large workflows. #workflow #admin 21.1.260 #257198
  • The WellEz Estimate Account Filter now respects the path specified in the plugin file. #integration #wellez 21.1.260 #265670
  • When we rolled out the new configuration migration functionality, we inadvertently locked down several of our implementation tool loaders to only work for administrators with the configuration migration privilege. We have restored the original permissions. #admin 21.1.259 #255269
  • Resolved an issue where long-running (greater than 30 minutes) jobs using the Integration Agent would fail. #integration 21.1.259 #258072
  • Updated the task banner (for Advanced Workflows) to use the document’s display name rather than the database name. #ui 21.1.259 #259954
  • Resolved an issue where large data sets could cause the Integration Agent to run out of memory. #integration 21.1.259 #261468
  • Resolved minor issue where the suggested filename for Job (RTx) position rule data loaders was incorrect. #admin 21.1.258 #259353
  • The data loaders exported by the configuration migration tool are now sorted by name to make it easy to navigate the individual files and compare with other loaders. #loader 21.1.257 #259967
  • Resolved issue where long-running configuration migrations could fail because the system was “helpfully” cleaning up temporary files prior to them being processed. #loader 21.1.257 #260261
  • Fixed ’null reference’ exception that could occur when re-importing projects from Val Nav. #integration #valnav 21.1.256 #248308
  • Resolved critical memory leak in Operational Scheduling module that could cause the service to eventually run out of memory and become unresponsive. #performance 21.1.256 #258407
  • Minor fixes and improvements to the recently release Peloton API-based integration. #integration #peloton 21.1.256 #259593
  • Resolved issue where ‘On Demand Well Operations Entity/Job Name Sync’ would fail to run. #integration #wellez 21.1.256 #259831
  • Resolved issue where ‘Can Product After’ flag was not being correctly read from Val Nav Template when importing projects from Val Nav. #integration #budget #valnav 21.1.256 #259883
  • Fixed an issue where the Configuration Migration tool wouldn’t correctly migrate Discipline tabs between environments. #admin 21.1.255 #251884
  • Resolved issue where updates to Custom Business Rule names (such as a custom field permission) wouldn’t immediately be visible elsewhere within Execute. #admin 21.1.255 #253436
  • Fixed up view definitions for legacy Val Nav capital database views. #integration 21.1.255 #256835
  • Fixed multiple issues dealing with inactivated fields in a Workflow Definition (such as fields showing with an empty name, and being unable to remove them from the task reset list of fields). #admin 21.1.255 #256906
  • Fixed date filtering issues (using the In Range operator) in the new-style grids throughout Execute. #ui 21.1.255 #257773
  • Resolved issue when creating helper views in Azure SQL warehouse where an existing global object could cause the creation/update of the helper view to fail. #integration 21.1.255 #258148
  • Resolved an issue that prevented creating a new SQL Server database when using SQL Server authentication. #system 21.1.255 #259011
  • If you are still waiting for your schedule to print, we have resolved an issue where the “Print” button on a Schedule would appear to be stuck and never actually print the schedule. Sorry! #opsched 21.1.255 #257366
  • Added the missing element in table_data_selection.config sample plugin file. #plugins 21.1.255 #247786
  • Resolved an issue where an administrator setting the “Fields that are cleared on task reactivation” list on a workflow’s Reactivation Rules tab, switching to a different tab, and coming back again would be greeted by an unexpected (and unintentional) error. #workflow 21.1.253 #246266
  • Resolved an issue where RTX disciplines that were migrated from the former RTD module were unable to be removed from the RTX. #well delivery 21.1.253 #246500
  • When adding a new “Additional Storage Table” we’ve added a message to let you know that it was successfully added so that you aren’t left wondering, “Wait. That happened so quickly! Did something happen?” #admin 21.1.253 #249709
  • We’ve resolved an issue where the Integration Agent was unable to replicate the results of a database calculation/function from Oracle into Execute. #integration 21.1.253 #256139
  • We’ve improved the reliability of our AzureSQL Data Warehouse functionality by increasing the timeouts to allow slow running queries time to finish. #integration 21.1.253 #256838
  • Use the default values parameter of the Document Create API now works properly with date fields #api 21.1.253 #256115
  • Fixed an issue where the new “Document Link Summary” tabs would break if a document was linked to another document of the same type. #system 21.1.251 #252853
  • Various improvements to debug logging on invalid JSON requests (only visible when debug logging is enabled). #system 21.1.251 #255396
  • Fixed an issue where the Update Multiple (triggered from the Browse) feature would fail if you had two or more columns with identical names. Note that this fix prevents the overall feature from breaking when there are duplicate columns. Update Multiple is not able to update columns where the name is not unique. #system 21.1.249 #236586
  • Resolved issues where Execute would occasionally incorrectly start up in recovery mode and require a restart. #system 21.1.249 #241065
  • Resolved an issue where a misconfigured plugin (containing a reference to the removed AgentDbAccessFactory) would prevent the service from starting correctly. #system 21.1.249 #241439
  • Prevent using the Unzoned feature on date fields in the Schedule document. All dates on a schedule must be relative to the schedule’s timezone and may not be unzoned. #system 21.1.249 #245404
  • Resolved an issue where inactivating a field could break the column configuration popup on the browse screen if that column as previously selected as a visible column. #system 21.1.249 #247707
  • Fixed an issue when creating a new custom field. Sometimes the new fields was incorrectly checked against other fields for overlapping names. #system 21.1.249 #250039
  • Fixed the issue introduced in the previous release where the AFE Print pop-up would show an DataTables Warning. #afe 21.1.249 #252024
  • Various fixes to Execute’s integration with Dataflow. #integration 21.1.249 #253328
  • Resolved an issue where “re-evaluate workflow " would incorrectly delete sub-workflows. #workflow 21.1.247 #244969
  • Document Link Summary tabs are now hidden on un-saved documents to avoid an annoying pop-up error. #system 21.1.247 #246910
  • Support packages no longer inadvertently include some security sensitive configuration files. #system #security 21.1.247 #247060
  • Resolved issue where API keys were still inadvertently taking a license in some situations. #integration 21.1.247 #247599
  • Resolved issue where slow connectivity to Azure SQL or Snowflake could block saving documents elsewhere in Execute. #integration 21.1.247 #247975
  • Fixed an issue where the background process that updated Jobs with the latest schedule information would create zillions of sessions rather than just creating one and reusing it. Fortunately, these sessions were internal (no licensing effect), but it looked messy in the logs. #opsched 21.1.246 #241305
  • Updated the “custom_table.config.sample” to include an example of the GridHeight attribute which is used to control the size of the table. #system 21.1.246 #241634
  • Fixed issue where the Data Loaders were unable to load data into a table added to an Additional Storage Table. #system 21.1.246 #242480
  • Removed the configuration lock on the WELL and SITE fields on the RTX document so that administrators are able to update configuration for these fields (such as to adjust field-level permissions, and list field filters). #well delivery 21.1.246 #243510
  • Fixed an issue where formulas with many nested if() statements were extremely slow to compile/evaluate. #system 21.1.246 #244145
  • An activity being the destination of multiple relations caused an error when adding from the job scheduler. These activities are now skipped. #opsched 21.1.246 #244317
  • Fixed an issue where a broken formula on a document would break the “Undo” button for that document. #system 21.1.246 #244529
  • Fixed an issue where a % sign included in a report title would prevent you from exporting that report to Excel. #system 21.1.246 #244942
  • Resolved issue where Account Rules could show “UNDEFINED TEMPLATE ‘contains’” when using Account Rule by Pattern. #afe #admin 21.1.246 #245202
  • Resolved an issue where the schedule view configuration tool would fail to work properly on schedules without any activities. #opsched 21.1.246 #245393
  • Resolved issue where the Review Completed Date field would only consider System Reviewers. #afe 21.1.245 #236197
  • Resolved an issue where errors returned by Document Validation Rules were formatted as unassuming “Info” messages, instead of the much more alarming “Error” styling as intended. #system 21.1.245 #241345
  • Resolved an issue showing date-type columns in the Project Reforecasting screen. #budget 21.1.245
  • Resolved an issue using the Integration Agent to replicate tables containing Small Int columns. #integration 21.1.244 #236711
  • Fixed some minor issues where buttons in the schedule toolbar wouldn’t align properly when viewing a schedule in Execute 21.1.244 #237228
  • Fixed permissions on the “Workflow/UpdateWorkflowInstances” API to ensure that it can not be called by a non-admin user. #security #workflow #api 21.1.244 #239351
  • Resolved issue where the Schedule’s data grid would sometimes show activities in the wrong timezone. #opsched 21.1.244 #240344
  • Removed the empty and unused “Project Report” tab from the Schedule’s Configuration tab. #opsched 21.1.244 #240961
  • Resolved issue where the sorting of the Capital Summary and Monthly Capital Grids (Projects) were different. #budget 21.1.244 #241067
  • Resolved an issue where the Integration Agent’s table replicator didn’t correctly handle Oracle numeric types with defined precision. #integration 21.1.244 #241380
  • Fixed the sample plugin “replicate_queries_from_execute.config.sample” #integration 21.1.244 #241568
  • Resolved issue where Data Selectors were unable to set boolean fields properly. #integration 21.1.244 #241635
  • Improvemed the automatic recognition of URLs in text fields to better handle URLs containing parenthesis. #system 21.1.244 #241881
  • Separators now display properly when viewing a Task pop-up window. #workflow 21.1.244 #241936
  • Resolved an embarassing issue where the newly introduced API Keys were inadvertently consuming a license. #integration 21.1.244 #242019
  • Fixed a spelling mistake in the pop-up for Document Validation Rules. Two L’s in “Following”. Oops! #ui 21.1.242 #228072
  • Resolved an issue where calculated fields returning very long text values would incorrectly show a length warning. #ui 21.1.242 #237901
  • Fixes and improvements to the Snowflake / SQL Warehouse beta functionality. Deleted data is now visible in the helper views/tables. Introduced “Materialized Views” in SQL Server databases for performance purposes. #integration 21.1.242 #240107
  • Resolved issue where the Export to Excel button would fail on the Operational Schedule’s Activities tab. #opsched 21.1.235 #233653
  • Improved session handling when viewing maps to get rid of potential security issue. #security 21.1.235 #234902
  • Upgraded 3rd party component “jQueryUI” to resolve potential security risks in the version Execute was using. #security 21.1.235 #235198
  • Fixed issue where building reports with multiple filters on the same column would fail. #reporting #ui 21.1.235 #235331
  • Fixed issue where Workflow Task pop-up would not handle Unzoned Date fields correctly. #workflow 21.1.235 #236341
  • Resolved minor case-sensitivity issue for attachments in Unix-based Execute environments. #system 21.1.235 #236506
  • Fixed an issue where an admin could create two columns whose names differed only by an underscore (i.e. AREA and AREA_) which would break OData reporting for those fields. #system 21.1.234 #224490
  • We fixed an issue where specifying an invalid view within a custom sub-tab (plugin) would incorrectly break/hide all tabs. We’re all for making errors obvious so that they get corrected, but this was a little over the top. #system 21.1.234 #230872
  • Fixed an issue where printing multiple forms on an AFE could fail intermittently. #afe 21.1.234 #233247
  • Fixed an issue where newly added rows in a grid (using non-default column grouping) would only appear after saving. #system 21.1.234 #233344
  • For those of you dealing with monster print jobs (taking longer than 30 minutes to run), we’ve fixed the issue where, after waiting all that time, your download would fail. #afe 21.1.234 #234123
  • Fixed an issue where Execute wouldn’t reconnect/reload after a service outage (for example, after restarting the service). Nothing a click of the Refresh button wouldn’t solve, but this is nicer now. #system 21.1.234 #234148
  • Resolved an issue where linking an AFE to a WellEz job would sometimes fail with a validation error on “NumberValue”. #wellez 21.1.234 #234423
  • Fixed an issue where calculated fields that referred to deleted workflow tasks could cause other calculated fields to inexplicably fail too. #workflow #formula 21.1.234 #234905
  • Fixed multiple issues in Field Cost import affecting imports from WellView, SiteView and WellEz. #peloton #wellez 21.1.232 #230959

    In this update, we’ve made some changes to how the import of Field Costs from Peloton’s WellView/SiteView and Quorum’s WellEz work to fix some issues with cost duplication with Execute’s carryover behavior.

    • We’ve added a new setting called Field Cost Import Ignore On/Before Date that instructs the import to completely ignore any existing / import costs on/before a certain date. Execute doesn’t compare existing costs to imported costs for months on/before the ignore-before date and will never generate carryover amounts for differences. This setting is primarily useful if your source system doesn’t have complete/correct data before a certain point.
    • We’ve fixed the behavior for the Field Cost Cut-off Date setting to ensure that the import will never change costs on/before the cut-off date. If the system detects changes between the costs already in Execute and the import data, however, Execute will carry the difference into a future unlocked/open month.
    • We’ve cleaned up the behavior of the Submitted after Field Cost Import setting.
      • When set to Yes, all imported costs will be imported and marked as submitted automatically.
      • When set to No, imported costs will be imported as unsubmitted. Additionally, if we are importing changed costs over a month that the owner of those costs has already submitted, the import will now unsubmit the cost to trigger a re-review.
    • Previously, the import wouldn’t overwrite submitted costs by default (creating some issues… you could end up with excessive months of carryover). In this update, the import WILL overwrite submitted costs after the Cut-off date if they are changed.

    What if I want to instruct Execute to ignore (and not change) known correct costs?

    If you are completely happy with historic hosts in Execute up to and including June 2022 (for example), and you want the import to ignore those costs, you can set the Field Cost Import Ignore On/Before Date setting to “2022-06”. Note, however, that doing so will mean that if costs prior to that date change in the source system, Execute will not see that change.

    What if I want costs in Execute to match the source system exactly?

    If you want the monthly costs in Execute to match those of the source system exactly, set the following settings:

    • Field Cost Import Ignore On/Before Date = empty
    • Field Cost Cut-off Date = empty
    • Submitted after Field Cost Import = Yes

    What if I want to freeze historical field costs in Execute?

    If you want to ensure that historical field costs in Execute don’t change if they change in the source system (i.e. someone adds a missing cost to a prior period), set the Field Cost Cut-off Date. This will prevent the import from changing costs on/before that date but will carry any change forward into a future unlocked month (ensuring that, at the end of the import, the totals always match between the two systems).

    What if I want to have AFE owners review and, potentially, adjust imported costs?

    If you would like AFE owners/delegates to use the Field Cost Entry screen to review imported costs and, potentially, add adjustments for costs that are not represented in the source system (perhaps overhead or material transfers), set the Submitted after Field Cost Import to No.

    Note that when using this behavior, if the import does change a month that has already been reviewed (submitted), it will unsubmit that month to trigger a re-review.

  • Fixed an issue where working interest fields (ending in _WI) in custom grids did not correctly honor the working interest as decimal setting. #system 21.1.231 #230559
  • Fixed an issue where the Help Text configuration field was limited to 50 characters instead of the intended 2000. #system 21.1.230 #231980
  • Fixed an issue where custom tab text section fields were limited to 50 characters instead of the intended 2000. #system 21.1.230 #232050
  • Resolved an issue where new-style grids configured via a plugin would not honor the configured sort column. #system 21.1.230 #232293
  • Resolved a critical bug with the integration to on-prem WellView/SiteView where the API calls to retrieve wells and jobs would fail. #peloton 21.1.230 #232847
  • Restored the handy behavior where clicking the envelope icon next to an AFE approver would automatically add a link back to that AFE in the email body. #afe 21.1.228 #180732
  • Fixed an issue where deleted attachments were, confusingly, still showing in the dropdown for attachment fields. #system 21.1.228 #230569
  • Fixed minor issue where non-AFE Data Selector’s included a message incorrectly referring to “AFE”. #system 21.1.228 #230771
  • Fixed a minor HTML formatting issue which would, sometimes, cause the email notification footer to be incorrectly highlighted as a link. #system 21.1.228 #230775
  • Resolved an issue where the importing $0 activities from Enersight could cause the import to fail. #enersight #opsched 21.1.228 #231016
  • Resolved issue where calculated fields would return the incorrect DOCUMENT_ID from linked child records. #system 21.1.227 #230002
  • Resolved issue where Execute would take HOURS to start up for customers with many AFE document links. #system 21.1.227 #230443
  • Improvements to the behaviour of Table Data Selector filter fields to make them more consistent with other data selectors. #integration 21.1.226 #210645
  • Resolved issue where menu-items were unreadable when using the “Default” theme with the “More Contrast” option. #system 21.1.226 #227839
  • Resolved issue where the buttons to uncomplete a discipline were hidden. #well delivery 21.1.226 #229889
  • Resolved issue where custom tabs wouldn’t correctly hide the time component of unzoned date fields. #system 21.1.224 #229728
  • Resolved issue where tab visibility rules were ignored on subviews. #system 21.1.224 #229730
  • We’ve changed the Enersight integration to prevent Execute from sending updated Project/Well Name when pushing Capital to Enersight. Doing so would cause a mismatch between the name in the capital and the name in the well list. In a future update, Execute will add support for updating the attributes in the Enersight well list directly. #integration #enersight #budget 21.1.223 #222666
  • Fixed an issue with the new secure credential storage where only the first per-user credential entered would be saved. #system 21.1.223 #228012
  • Improvements to numeric entry in the new Excel-style grids that made it difficult to edit values with thousand separators (commas) in them. #system #ui 21.1.222 #164731
  • We’ve resolved an issue in the formula editor where it would gobble up more and more of your browser’s memory until, eventually, the browser would decide to kill of the process (losing your formula changes). This issue only reared it’s ugly head when editing super complex formulas but, as it turns out, many of you are doing just that! #system #ui 21.1.222 #175408
  • Fixed issue where you couldn’t clear an integer value from a new-style data grid. #system #ui 21.1.222 #179563
  • Fixed issue with Attachment fields in new-style data grids causing weird navigation behaviour. #system 21.1.222 #180037
  • Restored the handy behaviour where the email icon next to a review in the Reviewers tab would automatically partially fill out the email body. This functionality was accidentally missed when the tab was reworked as part of a larger technical update. #afe #ui 21.1.222 #180049
  • Fixed issue upgrading Postgres based Execute database (currently, only used by internal demo environments). #system 21.1.222 #180357
  • Fixed issue where the table on the Jobs tab (Wells and Sites) would break if it included in-active fields. #well delivery 21.1.222 #180370
  • We fixed up an issue where the assigned tasks reminder would potentially include the summary table once per task assigned to the owner. #workflow 21.1.222 #180744
  • Resolved an issue where importing capital from Enersight wouldn’t always bring across $0 months. #budget #enersight 21.1.219 #160690
  • Improvements to the default column types for tables created by the Integration Agent. Specifically, text fields no longer default to VARCHAR(MAX). #integration 21.1.219 #166048
  • Fixed issue where disabling the “Capital WI Override” field would break the capital grids. #budget 21.1.219 #171332
  • Enabled configuration of the delimiter in the concatenate operator for Operational Scheduling views. #opsched 21.1.219 #171493
  • The links in Task notifications now correctly open the task completion form. #workflow 21.1.219 #175308
  • Fixed potential issue where Peloton integration might fail to authenticate when run on daylight savings boundary. #integration 21.1.219 #175333
  • Sometimes the view rule for a custom tab is simple and concise. Sometimes it isn’t. For those times when you have an absolutely monster rule controlling when a custom tab should be shown, we’ve extended the limits for the underlying database column from 4000 characters to a colossal 2GB! #system 21.1.219 #175411
  • Fixed issue where an admin could break a Custom Business Rule by dragging an invalid block into a loop block. #system 21.1.219 #175678
  • Fixed issue where reactivated task icon would not show for task assignee. #workflow 21.1.219 #175679
  • Added clarification warning to task completion rule configuration regarding rules that consist only of completion instruction blocks. #workflow 21.1.219 #175758
  • Resolved database migration issue for Postgres-based databases. #system 21.1.219 #176146
  • Fixed incorrect error message when trying to use a new build of the Database Tool to copy an older (pre-21.1.212) Execute database. #system 21.1.218 #166602
  • Fixed issue where unscheduled activities in OpSched would cause a Null Reference Exception when updating Project timing. #opsched 21.1.218 #171827
  • Removed the old Aucerna blog widget that was throwing exceptions in the system log. #system 21.1.218 #175280
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.