Version : 89
Released : 2026-08-02
Changes in this Release
Issue |
Type |
Module(s) |
Description |
|---|---|---|---|
4886 |
Feature |
The drafts API list endpoint can now be filtered by assigned label name using the new label__in query parameter (a comma-separated list of label names returns drafts carrying any of them). |
|
4944 |
Feature |
When running an Action that collects custom property data on a single object, the object's existing property values are now shown pre-filled so you can see what will be overwritten. When running on multiple objects, clicking a row in the Action dialog pre-fills the fields with that object's existing values. |
|
4949 |
Feature |
When a user is assigned a Project Role during Project creation, they can now receive an email naming the Role they were granted. This is controlled by a new per-URL setting (off by default). |
|
4929 |
Feature |
The Custom Function AI assistant now recognises the action a function performs (merge/un-merge a matrix, add a form, derive a value, and more) and generates the correct action instead of always raising a query. |
|
4970 |
Feature |
Organization administrators can enable or disable Agents for individual team members from the team user edit page; the option is shown only when the organization has Agents enabled. |
|
4986 |
Bug |
The Edit Check and Test Case agents now recognise fields that have a data dictionary and compare them using the coded value (the .CodedValue suffix). A value that is not in the field's dictionary blocks the save. When the value is valid but the request never clearly named it, the agent shows a "did you mean" suggestion but still lets you save. Editing an existing check no longer re-flags a coded value it already contained. |
|
4987 |
Bug |
The Test Case Agent now writes date values using the separators of the field's own Rave format (for example "15 MAR 2024" for a "dd MMM yyyy" field) instead of a fixed hyphenated format, so generated test cases no longer raise a "does not match the field format" warning. |
|
4988 |
Bug |
The Custom Function Agent now knows how to change field visibility (setting the DataPoint's IsVisible property) and generates the show/hide code when asked to make fields visible or hidden, instead of only clearing the field values. |
|
4989 |
Feature |
When a user explicitly asks the Custom Function Agent for a function using Medidata's new V2 custom function API, the agent now explains that only the V1 API is supported so far and asks them to describe the function using V1, instead of generating V1 code for a V2 request. |
|
4991 |
Feature |
The Edit Check and Test Case agents now guard range comparisons with an IsNotEmpty step. |
|
4992 |
Feature |
When the Edit Check Agent opens on a check that has a specification but no logic yet, it now offers to build that check's logic from its specification and writes the result back onto the same check. Checks that already have logic offer to regenerate from the specification or edit the existing logic, and the "metadata" wording is now "specification" throughout. When working on a specific check the generated logic saves straight onto that check with one click ("Save to <name>"), with a "Save as new check" option to spin the same logic into a separate check. |
|
4993 |
Feature |
The Edit Check and Test Case agents now see the URL's configured marking groups when generating a query action, so they pick a real marking group by its exact name instead of inventing one. A new per-URL default marking group can be set by TrialGrid admins. |
|
4994 |
Feature |
The Edit Check and Test Case agents now recognise when a specification can only be satisfied by a custom function (for example regex matching, extracting date components, or aggregating across records) — logic that Rave edit check steps cannot express. In that case the agent explains that a custom function is required and stops instead of producing an invalid edit check. |
|
4997 |
Feature |
When a specification says its behaviour is handled by a named custom function, the Edit Check and Test Case agents now build the check correctly — a trigger step on the field (its .DataPoint.IsPresent) plus a single CustomFunction action that calls the function, with no separate Open Query. If the named custom function isn't in the draft yet, the check is still offered with a warning rather than being blocked. |
|
4998 |
Feature |
Improved Agents ability to recover after an unexpected failure. |
|
4999 |
Feature |
The Edit Check and Test Case agents are better at recognising specifications that need a custom function. Conditions on a single date component (such as "the month is unknown but the day is entered") and conditions on a form's status (such as "the form is not submitted") are now flagged as needing a custom function instead of being turned into a comparison that doesn't match the specification. After generating a check the agent now also verifies that the logic actually matches the specification and stops rather than offering a check that doesn't. |
|
5000 |
Feature |
A new bulk Edit Check Creator agent builds edit checks from specifications in bulk — either the metadata attached to existing empty checks (which it fills in) or custom specification objects (from which it creates new checks). Each specification's outcome is classified — created with high confidence, created but review required, custom function required, or failed — and drives configurable per-outcome action hooks. Each result is shown in the chat as soon as it is built, so progress is visible throughout the run. Only specifications that carry values, on an object type with an LLM instruction configured, are built; anything else is listed with the reason it was skipped. |
|
5046 |
Bug |
Custom Function Review results are now shown with a warning when finding validation could not run, so it is clear that the findings have not been verified. |
|
5060 |
Bug |
The Test Case agent's "Create from this check" action now works for Edit Checks which use a Custom Function or Set Dynamic Search List action, where it previously offered an empty test case. If generation fails the agent now reports an error instead of offering an empty test case. |
|
4867 |
System |
Test Case PDF screenshots are now embedded using indexed colour, producing significantly smaller PDF files and reducing the memory needed to generate large exports. Screenshots remain fully lossless and unchanged in appearance. |
|
4854 |
Feature |
The Veeva Test Case generator now supports rules that use @Form.submit_counter__v, generating scenarios that submit a form enough times to exercise both first-submit and re-submit conditions. Generated scenarios cover submission counts up to 20; rules requiring a higher count report an error so they can be authored manually. |
|
4855 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's value via @Item.value__v, treating it as the item's own value. Using value__v on a Date item reports an error, since Veeva requires value_normalized__v there. |
|
4856 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's unit via @Item.unit__v, generating scenarios that set the item's unit from its Unit Codelist. Using unit__v on an item with no Unit Codelist reports an error. |
|
4858 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's prior value via @Item.previous_submit_value__v, generating scenarios that submit the form twice (the previous value, then the current value). |
|
4876 |
Feature |
Test Case PDFs can now merge all selected Test Cases into a single file when the compact 'Results' layout is chosen. |
|
4859 |
Feature |
The Veeva Test Case generator now supports the @Site system attributes name__v (Study Site Number), oid__v, status__v, principal_investigator__v and locked__v, in addition to the existing timezone__v. Because a site is chosen when the test is run, derivation rules that build a value from a site attribute (for example Concat(@Site.name__v, "-", Text(SUBJNO))) now embed the run-time site value, which is looked up from Veeva and substituted automatically. Rules that compare a site attribute to a fixed value (for example @Site.name__v = '100') generate a scenario with a note describing the site the test must run on. |
|
4860 |
Feature |
The Veeva Test Case generator now supports the @StudyCountry system attributes name__v, country_abbreviation__v and country_code__v. |
|
4861 |
Feature |
The Veeva Test Case generator now supports the @Casebook.subject_name__v and @Casebook.version__v system attributes. |
|
4881 |
Feature |
Added a Veeva test step to re-open a submitted form for edit. |
|
4862 |
Feature |
The Veeva Test Case generator now supports the @Form.change_reason__v and @Form.form_status__v system attributes; rules using them generate test cases. |
|
4888 |
Feature |
The Test Case listing now provides the same user-assignment filter as other listings, letting you show only test cases assigned to you, to a role, or that are unassigned. |
|
4890 |
Feature |
Veeva query verification screenshots now highlight the query text for both Datapoint and Event queries, making it easy to see which query was checked. |
|
4891 |
Bug |
Item visibility on value steps is now read from the correct repeating itemgroup instance, fixing a spurious "present but not visible" note when the item is shown on the form. |
|
4892 |
System |
TrialGrid now validates Veeva API responses against typed schemas at the boundary, failing fast with a clear error when a response is missing an expected field. |
|
4893 |
Bug |
TrialGrid now navigates to Veeva forms reliably fixing missing screenshots for repeating forms. |
|
4899 |
Bug |
The Veeva test step editor helpers now correctly split datapoint references that use Jinja template variables (e.g. {{eg}}) into the EG#, F# and IG# sequence columns. |
|
4900 |
Bug |
The Veeva test case editor no longer adds a leading zero to date days that are already two digits; dates are normalised to DD-Mon-YYYY without over-padding. [Retired - see issue 4946] |
|
4901 |
Feature |
The Veeva test case editor now warns when a step enters data into an item that is not visible by default, naming the controlling item and value that make it visible. |
|
4905 |
Bug |
Rave Classic Automated Testing runs no longer fail intermittently with a 'changes cannot be saved because the form has been updated' (stale data) error when a custom function such as subject inactivation runs immediately after another; the runner now reloads the TG_UAT subject and retries the save. |
|
4913 |
Feature |
The Veeva test case editor now provides a repeat input next to every repeating event group, form and item group, and reports an error when a sequence number is missing for a repeating part, supplied for a non-repeating part, or exceeds the allowed maximum. |
|
4914 |
Feature |
The Veeva and Rave test case editor 'has value' helpers now suggest a field's codelist/dictionary values. |
|
4916 |
Feature |
Running a test set directly (without opening the wizard) now uses the screenshot and 'continue on failure' settings remembered from your last wizard run, instead of falling back to the defaults. |
|
4921 |
Bug |
The task to generate a combined Test Case PDF can now recover after a server restart. |
|
4924 |
Bug |
Veeva Set Derived Value test cases now emit a 'has value' verification step for multi-line rule expressions, and year-hinted source items are populated with a realistic year. |
|
4928 |
Feature |
Added a Veeva test step that marks a form as intentionally left blank. |
|
4927 |
Feature |
Test Cases can now assert that an email is NOT received, with steps that match on subject alone, subject and exact body, or subject and partial body. |
|
4931 |
Bug |
Fixed an error that could prevent a deleted draft from being fully removed during database cleanup when its automated test case runs had recorded subject data. |
|
4933 |
Feature |
The TrialGrid draft home page can now show test coverage for Veeva Rules and Comparison Rules. |
|
4935 |
Feature |
Automated tests can now link and unlink Veeva forms using the new "I link form ... to form ..." and "I unlink form ... from form ..." steps. |
|
4938 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that use linked-form counts (TrialGrid emits the new link-form steps to set up the required form links). |
|
4939 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that read data on linked forms (TrialGrid enters the linked form's data and links it to the rule's form using the new link-form steps). |
|
4946 |
Feature |
Date fields in the Veeva test case editor no longer auto-insert leading zeros or re-case month names as you type — the value you enter is kept and validated against the study date format instead. Checkbox (boolean) values typed in any case are normalised to lowercase when the data is entered. |
|
4947 |
Feature |
Veeva test cases can now add an Event Group to a Subject with the new "I add event group" step (with an optional date for unscheduled groups), including an editor helper to pick the event group. |
|
4953 |
Bug |
Failure screenshots in test-case run evidence now capture the form at the point of failure, instead of the blank form left after unsaved changes are cancelled. |
|
4957 |
Bug |
Data entry and assertion steps now correctly recognise repeating Veeva event groups, so a repeating event group's sequence number (e.g. eg_HEPA[1]) is accepted on data entry steps. |
|
4968 |
Bug |
Speed up new-EDC automated test runs by closing an open log record before moving to another form. |
|
4969 |
Feature |
The Veeva drafts page now has an 'Add' menu offering 'Upload SDS' and 'Upload Draft'. 'Upload Draft' re-imports a downloaded TrialGrid draft to recreate its Veeva objects, test cases and properties. |
|
4973 |
Bug |
When generating a test case for a Veeva Add Form rule in a study with two event groups sharing the same name, the Test Case Advisor now targets the event group that actually contains the bound event, avoiding a redundant 'add event' step and an invalid form check. Additionally, when the same step is repeated in a test case, validation errors are now reported on each step's own line rather than the first occurrence's line. |
|
4976 |
Feature |
If the Chrome browser dies during a test case run the runner will automatically restart. |
|
4977 |
Feature |
Rave EDC 2026.2.0 test runs now auto-click 'Switch to new Medidata' if it is present. |
|
4980 |
Bug |
Fixed generated Veeva Add Form test cases so a repeating target form's visibility assertion includes the required sequence number (e.g. "AE_Onc[1]"). |
|
5007 |
Bug |
Test steps which try to add a Log record to a Form limited by fixed default values now fail immediately explaining the limit, instead of waiting for the Add Log Line button which Rave does not display. |
|
5008 |
Feature |
Test steps on the new Rave EDC now report a Folder which does not exist in the Subject as such, instead of reporting that the Form was not found in it. |
|
5010 |
Bug |
Test runs now retry a form save when Rave momentarily returns a 401 error page, instead of failing the step. A genuine permission problem still fails immediately, saying so. |
|
5011 |
Bug |
When a field is hidden but another field on the form shares its label, the run report now says so and names the other field, instead of reporting that the label was not found. |
|
5012 |
Bug |
A form save that Rave was never actually asked to perform is now reported as a failure, and a leftover 'unsaved changes' dialog no longer blocks data entry for the rest of the run. |
|
5013 |
Bug |
A field that could not be opened for editing now fails its step, instead of being skipped silently while the step reported success. |
|
5015 |
Bug |
Test case data entry steps now accept an empty value for item-to-form link items, allowing an existing link to be cleared. |
|
5016 |
Bug |
Query and protocol deviation assertions now correctly match text that contains line breaks. |
|
5019 |
Bug |
Screenshots for Veeva query verification steps now highlight only the query being checked, rather than every open query on the page. |
|
5020 |
Bug |
The Veeva test case View tab now shows Form labels for the link form and unlink form steps, and for repeating forms on all Form steps, which previously showed the Form name. |
|
5021 |
Bug |
Generated Veeva test cases now include the required sequence number on repeating event groups, forms and item groups in query, value and visibility steps. |
|
5024 |
Bug |
Test Case PDF generation no longer fails for test cases with long object identifiers or large data-entry tables; all requested test cases are now included in the combined PDF. |
|
5025 |
Bug |
Veeva test cases can now add non-Unscheduled event groups, such as repeating EDC event groups, without a validation error. |
|
5027 |
Feature |
The mark-as-blank test step now re-opens an already submitted form for edit, so submitted forms can be marked as intentionally left blank. |
|
5028 |
Bug |
Test runs now log a warning when a protocol-deviation audit record cannot be read, instead of silently omitting the deviation. |
|
5032 |
Bug |
A query that is still open is no longer also reported as Closed when its message contains a line break. |
|
5041 |
Bug |
AI test case generation no longer fails silently when a generated scenario references a Field which does not exist in the Draft; the generated test case now reports the unresolved Form/Field. |
|
5045 |
Bug |
Rave EDC test case screenshots now show the datapage the step is about rather than a log record left open by an earlier step. |
|
5044 |
Bug |
Pausing a running test case now takes effect immediately during data entry, instead of waiting for the current step to time out. The paused run is reported as Paused and resumes when restarted, rather than being reported as Failed. |
|
5047 |
Bug |
The Test Run wizard no longer asks for credentials again when a saved iMedidata two factor session is still valid. |
|
5049 |
Bug |
Test Case Run results now request Scenario steps a few at a time rather than all at once, so opening a large run no longer risks making the application unresponsive for other users. Steps for a large run may take longer to fill in as a result, and a Scenario whose steps cannot be loaded now says so instead of showing a loading indicator indefinitely. |
|
5052 |
Bug |
Data entry into a New EDC log record now waits for the record itself to render, so test steps no longer run against fields which have not yet appeared. |
|
5053 |
Bug |
Value-verification steps on the new Rave EDC no longer fail with a custom-function error when a test run has no subject page open. |
|
5036 |
Feature |
Test case runs whose browser is lost are now paused and resumed automatically on another worker, instead of being marked as failed. |
|
5055 |
Bug |
Test cases generated with "Repeat scenarios for folders" are now valid for AI-generated Custom Function, Dynamic Search List checks and Derivations. |
|
5057 |
Bug |
Queries, stickies, comments and protocol deviations whose text contains characters such as < > & or " are matched correctly again on Rave EDC. |
|
4887 |
Feature |
Custom object identifiers are now always single-line: line breaks and other invisible characters in the contributing properties are replaced with spaces so identifiers stay readable and match consistently. |
|
5005 |
Bug |
Explaining several findings at once no longer creates duplicate Explanations when those findings refer to the same object and property. |
|
4912 |
Feature |
When deploying a new version of TrialGrid the database 'fingerprint functions' will be re-created without causing database locks which interfere with normal application usage. |
|
4948 |
System |
Property-definition and standards-settings caches have been made more efficient. |
|
4954 |
Bug |
Validation pipeline settings management has been improved. |
|
4967 |
System |
Automated test-case runs now use a fixed and verified browser version for improved system stability. |
|
5036 |
Feature |
Test case runs whose browser is lost are now paused and resumed automatically on another worker, instead of being marked as failed. |
|
4830 |
System |
Designer study attributes (version/sync provenance, requirement text, UUIDs) are stored as native fields on imported draft objects. |
|
4882 |
Bug |
Per-project, per-draft and per-URL permission checks on the Rave and Veeva import/export/download, test-run and URL/Vault registration wizards are now enforced server-side. |
|
4882 |
Bug |
Per-project, per-draft and per-URL permission checks on the Rave and Veeva import/export/download, test-run and URL/Vault registration wizards are now enforced server-side. |
|
4930 |
Feature |
TrialGrid now includes an automated check that prevents use of the Bootstrap data-loading-text attribute, guarding against a known cross-site scripting vector (GHSA-vxmc-5x29-h64v). |
|
4936 |
Bug |
Undo and redo of a field reorder now also refresh the form editor canvas so it stays in step with the property sheet, and an in-progress custom property edit is captured on the undo history even when the sheet re-renders mid-edit. |
|
4943 |
Bug |
The Copy Checks screen no longer errors when a source check references a field that does not exist; such checks can still be copied. |
|
4945 |
Feature |
Veeva Form Review nows display Item information when clicking on the header of a repeating Item Group. |
|
4984 |
Feature |
The URL Configuration Excel export now opens with a Settings tab summarising the URL's key settings — Name, URL, Type, Active state, Standards Compliance Workflow, Agents, and Email on Role Assignment. |
|
5002 |
Bug |
Save could be ignored on the first click in the Edit Check, Derivation and Test Case editors. These editors validate what you type in the background, and a Save clicked before that validation finished was silently dropped, so you had to click Save again. The Save now goes ahead as soon as validation completes. |
|
4930 |
Feature |
TrialGrid now includes an automated check that prevents use of the Bootstrap data-loading-text attribute, guarding against a known cross-site scripting vector (GHSA-vxmc-5x29-h64v). |
|
4854 |
Feature |
The Veeva Test Case generator now supports rules that use @Form.submit_counter__v, generating scenarios that submit a form enough times to exercise both first-submit and re-submit conditions. Generated scenarios cover submission counts up to 20; rules requiring a higher count report an error so they can be authored manually. |
|
4855 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's value via @Item.value__v, treating it as the item's own value. Using value__v on a Date item reports an error, since Veeva requires value_normalized__v there. |
|
4856 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's unit via @Item.unit__v, generating scenarios that set the item's unit from its Unit Codelist. Using unit__v on an item with no Unit Codelist reports an error. |
|
4858 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's prior value via @Item.previous_submit_value__v, generating scenarios that submit the form twice (the previous value, then the current value). |
|
4859 |
Feature |
The Veeva Test Case generator now supports the @Site system attributes name__v (Study Site Number), oid__v, status__v, principal_investigator__v and locked__v, in addition to the existing timezone__v. Because a site is chosen when the test is run, derivation rules that build a value from a site attribute (for example Concat(@Site.name__v, "-", Text(SUBJNO))) now embed the run-time site value, which is looked up from Veeva and substituted automatically. Rules that compare a site attribute to a fixed value (for example @Site.name__v = '100') generate a scenario with a note describing the site the test must run on. |
|
4860 |
Feature |
The Veeva Test Case generator now supports the @StudyCountry system attributes name__v, country_abbreviation__v and country_code__v. |
|
4861 |
Feature |
The Veeva Test Case generator now supports the @Casebook.subject_name__v and @Casebook.version__v system attributes. |
|
4881 |
Feature |
Added a Veeva test step to re-open a submitted form for edit. |
|
4882 |
Bug |
Per-project, per-draft and per-URL permission checks on the Rave and Veeva import/export/download, test-run and URL/Vault registration wizards are now enforced server-side. |
|
4862 |
Feature |
The Veeva Test Case generator now supports the @Form.change_reason__v and @Form.form_status__v system attributes; rules using them generate test cases. |
|
4890 |
Feature |
Veeva query verification screenshots now highlight the query text for both Datapoint and Event queries, making it easy to see which query was checked. |
|
4891 |
Bug |
Item visibility on value steps is now read from the correct repeating itemgroup instance, fixing a spurious "present but not visible" note when the item is shown on the form. |
|
4892 |
System |
TrialGrid now validates Veeva API responses against typed schemas at the boundary, failing fast with a clear error when a response is missing an expected field. |
|
4893 |
Bug |
TrialGrid now navigates to Veeva forms reliably fixing missing screenshots for repeating forms. |
|
4915 |
Bug |
Veeva 'has value' step screenshot now highlights the value on the specified repeat instance instead of always the first repeat. |
|
4924 |
Bug |
Veeva Set Derived Value test cases now emit a 'has value' verification step for multi-line rule expressions, and year-hinted source items are populated with a realistic year. |
|
4928 |
Feature |
Added a Veeva test step that marks a form as intentionally left blank. |
|
4932 |
Bug |
The Veeva Form Review now displays every item's value for Item Group default adds, not just the first item in each repeat. |
|
4933 |
Feature |
The TrialGrid draft home page can now show test coverage for Veeva Rules and Comparison Rules. |
|
4935 |
Feature |
Automated tests can now link and unlink Veeva forms using the new "I link form ... to form ..." and "I unlink form ... from form ..." steps. |
|
4937 |
Feature |
Veeva browser locators and scripts are now stored in the database. |
|
4938 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that use linked-form counts (TrialGrid emits the new link-form steps to set up the required form links). |
|
4939 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that read data on linked forms (TrialGrid enters the linked form's data and links it to the rule's form using the new link-form steps). |
|
4945 |
Feature |
Veeva Form Review nows display Item information when clicking on the header of a repeating Item Group. |
|
4946 |
Feature |
Date fields in the Veeva test case editor no longer auto-insert leading zeros or re-case month names as you type — the value you enter is kept and validated against the study date format instead. Checkbox (boolean) values typed in any case are normalised to lowercase when the data is entered. |
|
4947 |
Feature |
Veeva test cases can now add an Event Group to a Subject with the new "I add event group" step (with an optional date for unscheduled groups), including an editor helper to pick the event group. |
|
4957 |
Bug |
Data entry and assertion steps now correctly recognise repeating Veeva event groups, so a repeating event group's sequence number (e.g. eg_HEPA[1]) is accepted on data entry steps. |
|
4966 |
Bug |
Veeva SDS uploads containing multiple Safety Form Configuration entries with the same Form Name no longer fail with a duplicate identifier error; the Safety Form Configuration object no longer uses the non-unique Form Name as an identifier. |
|
4969 |
Feature |
The Veeva drafts page now has an 'Add' menu offering 'Upload SDS' and 'Upload Draft'. 'Upload Draft' re-imports a downloaded TrialGrid draft to recreate its Veeva objects, test cases and properties. |
|
4972 |
Bug |
Creating a Vault with 'Copy Settings from Vault' no longer corrupts custom object metadata (duplicated identifier properties and reference properties left pointing at the source Vault), which previously caused Codelist Entries and other referenced objects to be rejected on SDS upload. |
|
4973 |
Bug |
When generating a test case for a Veeva Add Form rule in a study with two event groups sharing the same name, the Test Case Advisor now targets the event group that actually contains the bound event, avoiding a redundant 'add event' step and an invalid form check. Additionally, when the same step is repeated in a test case, validation errors are now reported on each step's own line rather than the first occurrence's line. |
|
5015 |
Bug |
Test case data entry steps now accept an empty value for item-to-form link items, allowing an existing link to be cleared. |
|
5019 |
Bug |
Screenshots for Veeva query verification steps now highlight only the query being checked, rather than every open query on the page. |
|
5020 |
Bug |
The Veeva test case View tab now shows Form labels for the link form and unlink form steps, and for repeating forms on all Form steps, which previously showed the Form name. |
|
5021 |
Bug |
Generated Veeva test cases now include the required sequence number on repeating event groups, forms and item groups in query, value and visibility steps. |
|
5027 |
Feature |
The mark-as-blank test step now re-opens an already submitted form for edit, so submitted forms can be marked as intentionally left blank. |
|
5056 |
Bug |
Veeva SDS uploads where a Lab Codelist has the same Name as a study Codelist no longer fail with a duplicate identifier error. The Lab Codelist is skipped and reported as a warning on the import. |