Version : 92

Released : 2026-10-25

Changes in this Release

Issue

Type

Module(s)

Description

5406

Feature

Admin

The Licenses page now shows how many users actually exercised each licence tier last month alongside contracted and assigned counts, and a new Monthly License Usage report breaks this down per user. Changing a Project's timeline template from the Project edit page now requires the Manage Timelines permission, as it already did on the Timelines tab.

5468

Feature

Admin

Organization Settings can now be downloaded as an Excel workbook or a PDF, for use in configuration documentation.

5426

Feature

Agents

Document Templates and Import Scripts can now read whether a Custom Property is sent to AI Agents, and the Agent instructions of Custom Properties and of object types, including built-in types such as Forms and Edit Checks.

5428

Bug

Agents

The Edit Check and Test Case agents now build a check that needs several actions, such as adding four forms when a visit date is entered, with one action for each form. Previously the Edit Check agent could refuse the specification, saying a check could have only one Add Form action, or build the check with only the first form.

5429

Bug

Agents

The Edit Check and Test Case agents no longer ask which field to use on forms that a specification lists under "Add the following forms:". When the agents do ask for a field on a form, the user can now answer that the form needs no field, and the agents do not ask again.

5430

Bug

Agents

When regenerating an edit check from its specification, a reply that misspells the name of a form already found no longer makes the Edit Check agent treat it as a different check. Previously it dropped the specification and no longer saved the result to the check being viewed.

5488

Feature

Agents

The Custom Function Agent writes Custom Functions with the V2 Rave API as well as V1, and says which it used. Which one it writes is set by a Rave URL's new Default Rave custom function API version setting, which starts as V2; the agent does not convert a Custom Function from one to the other. Custom Function reviews are given the knowledge of the API a function uses, and report a function that mixes V1 and V2.

5539

Feature

Agents

Custom Diagnostics can check whether a Field is derived using diagnostic.is_derived_field(field), which is True when the Field is the target of an active Derivation.

5540

Feature

Agents

The Edit Check Creator and Bulk Edit Check agents now use a wildcard folder when a specification does not name one, instead of asking which folder to use or holding the check for review. When a check reads more than one form, each form that is in a single folder is written with that folder.

5543

Bug

Agents

The Custom Function Reviewer now reports a finding that code uses a different variable from the one it has just assigned, instead of discarding it as a spelling false positive.

5554

Bug

Agents

The Custom Function Reviewer no longer reports a form, field or folder OID as missing from the draft when the code only compares against it alongside an alternative that does exist.

5405

System

Automated Testing

Automated testing settings are now stored as individual overrides on top of code-defined defaults, so new settings can be added without a database migration.

4829

Feature

Automated Testing

Query checks now count queries that differ from the expected text only by whitespace or case as duplicates, and say so in the result; they fail the step when multiple queries are not allowed.

5412

Feature

Automated Testing

Veeva test cases that enter data into a read-only item with 'I enter data' or 'I enter and submit data' are now invalid; use 'I enter and submit external data' for these items. Generated test cases enter read-only items with the external data step.

5421

Bug

Automated Testing

When Veeva Vault refuses the browser login for a Veeva Test Case, the "I am logged in" step now fails with Vault's error message and the Test Case stops. Previously the Test Case continued without a logged-in browser. The refusal is also now reported as soon as it appears, instead of after a 30 second timeout.

5416

Bug

Automated Testing

The Veeva 'I should see form' and 'I should not see form' steps now match what the user sees in the casebook, including forms shown with no entries, report a form as not found when the subject does not have it, and no longer change subject data while checking.

5417

Bug

Automated Testing

Veeva form screenshots are now taken once the whole form has loaded, including every row of its tabular sections, and a screenshot that had to be taken while the form was still loading is noted on the step.

5418

Feature

Automated Testing

Veeva query steps now screenshot the whole form the query is on, with the query outlined, including queries in tabular sections, so the evidence shows which form, event and item the query belongs to.

5419

Bug

Automated Testing

Veeva form screenshots now show every column of wide tabular sections instead of cutting them off at the right edge.

5435

Bug

Automated Testing

Generated Veeva Test Cases now include a method when they add or update an event that has Visit Methods configured. Adding such an event uses the 'I add event ... with options' step, so the Test Case is valid instead of needing attention, and updating one, for example to set its change reason, no longer fails with "[Method] is required for this event".

5437

Bug

Automated Testing

Generated Veeva Test Cases now enter data on an event added by a reciprocal Add Event rule before the item that controls that rule, so the event is not removed before its data is entered.

5438

Bug

Automated Testing

Generated Veeva Test Cases for Rules with OR conditions now test each OR branch in its own scenario, up to 32 per Rule, including branches on event change reasons and dates, and the main scenario satisfies one branch instead of all of them.

5439

Bug

Automated Testing

In generated Veeva Test Cases for Rules with OR conditions, each OR branch's scenario now adds only the events that branch refers to, so another branch (such as an event date being entered) no longer fires the Rule and hides whether the tested branch works.

5440

Bug

Automated Testing

Generated Veeva Comparison Rule Test Cases now enter each date in its own Item's Data Type. A Rule whose Data Type differs from its Items' produced values that could not be entered, for example a date without a time for a Date/Time Item.

5441

Bug

Automated Testing

Generated Veeva InWindow boundary scenarios now enter Date Items as dates and test one day either side of each boundary. They previously added a time to Date Items and moved the boundary by one minute, so two scenarios with opposite outcomes entered the same date.

5442

Bug

Automated Testing

Generated Veeva Test Cases now enter a time, such as 10:29, into Time Items, and always include a time for Date/Time Items, including those whose Mask has no time.

5445

Bug

Automated Testing

Generated Veeva Test Cases no longer split an OR condition inside Not(...), ! or an If(...) into separate scenarios. Such scenarios could enter a value the Rule excludes and still expect the Rule's action, for example a query from a Rule written as Not(A = '1' || A = '2') with A entered as '2'.

5446

Bug

Automated Testing

Generated Veeva Test Cases now test the 'did not occur' branch of a Rule that also accepts an Event date: a separate scenario adds the Event without a date and sets it to did not occur. Events in Unscheduled Event Groups, which Vault cannot add without a date, get a comment instead. The 'I add event' step now accepts an Event with visit methods when no date is given and its Event Group is not Unscheduled.

5448

Bug

Automated Testing

Generated Veeva Test Cases for Rules using an Event Group or Form sequence now enter the data in the instance whose sequence the scenario tests, never create more instances of an Event Group or Form than the draft allows, date Events referenced through @EventGroup, and accept a Rule Binding that names an Event.

5449

Bug

Automated Testing

Generated Veeva Comparison Rule Test Cases now test the source date after, equal to and before the target date for every operator. Previously a Rule built with the wrong operator, such as <= in place of <, could pass every scenario.

5454

Bug

Automated Testing

Test Cases are no longer generated for Veeva Comparison Rules whose Rule Status is Inactive. They are reported as skipped, as Inactive Rules are.

5455

Bug

Automated Testing

Generated Veeva Test Cases now date an Event whose visit window is offset from the Previous Event inside that window, counting from the nearest earlier Event the Subject has, and add Events in schedule order. Vault no longer rejects these dates as outside the expected range.

5456

Bug

Automated Testing

Generated Veeva Test Cases now add the instances of a repeating Event Group in numeric order, so instance 10 is no longer added before instance 2.

5459

Bug

Automated Testing

When a Veeva Rule has more OR branches than the 32 scenarios generated for it, the Test Case now says how many branches have no scenario and which fields they refer to. OR conditions combined with AND now need only as many scenarios as their longest list of alternatives, rather than one for every combination, so most such Rules are covered in full.

5461

Feature

Automated Testing

Generated Veeva Comparison Rule Test Cases now test Unknown Handling. When the Rule's Unknown Handling is Min or Max and an Item's Mask allows an unknown day, a scenario enters a date with an unknown day and checks the query treats it as the first or last day of the month. Where that scenario expects no query, a second one checks the query does fire for a date with an unknown day.

5463

Bug

Automated Testing

Veeva Test Case generation no longer reads unknown minutes (mm*) in a Date/Time Mask as an unknown month when choosing test dates.

5466

Bug

Automated Testing

OR path and additional scenarios in generated Veeva Test Cases now add Events the same way as the main scenarios: an Event whose Event Group the Rule itself adds is no longer added before the data that adds it, and each scenario uses its own Event dates. The Login scenario no longer takes its Event dates from the negative scenario.

5075

Bug

Automated Testing

A login that cannot check whether the iMedidata password has expired is no longer reported as an expired password.

5344

Bug

Automated Testing

Automatic password rotation for TrialGrid's iMedidata service accounts can again change a password that iMedidata has marked as about to expire, on iMedidata's redesigned password change page.

5450

Bug

Automated Testing

Veeva Add Event rules whose target is an event without its event group, or a list of events, now generate checks that the events were added or not added.

5451

Bug

Automated Testing

Veeva Add Event Group rules with a list of target event groups now check every listed group.

5452

Bug

Automated Testing

Veeva Set Subject Status rules that set End of Treatment now generate a status check, and the subject status step accepts the status in any capitalisation.

5476

Bug

Automated Testing

Test runs using an iMedidata account whose password is about to expire now fail within a minute, asking for the password to be changed, instead of after a five-minute wait or with an unrelated error.

5480

Bug

Automated Testing

Test case run workers that are slow to answer a status check are no longer mistaken for stopping workers and shut down, and main worker replacement now stops the old worker taking new tasks before it is removed.

5501

Bug

Automated Testing

The Test Case view now opens for Test Cases containing a step reference that cannot be resolved, such as an undefined template variable, and shows that step as written.

5505

Bug

Automated Testing

Documentation now renders what was written: a note placed directly beneath the text it explains in the Automated Testing step catalog, and release-note entries whose text contains a backslash.

5443

Bug

Automated Testing

Veeva Test Cases now offer the entries of a Lab Codelist as values for items that use one, including sex and fasting items on non-lab forms.

5444

Bug

Automated Testing

Veeva Test Cases no longer choose a Hidden codelist entry or unit as a test value, and pick codelist entries in their defined order so regenerated Test Cases use the same values.

5457

Bug

Automated Testing

Veeva Test Cases now handle an event that belongs to more than one event group, using the forms, visit method and event window of the group the rule refers to.

5458

Bug

Automated Testing

Veeva Test Cases now resolve each Rule Binding within its own event group and event, so forms, events and event groups that share a label are matched to the right one.

5508

Bug

Automated Testing

On new Rave EDC, deviation checks now use a subject-admin role that can see protocol deviations when the tested role cannot, and say which role was used, instead of reporting that no deviation exists. If no role available to the user has both the See Deviations and See Audits permissions, the step now fails and says so; granting those permissions to the tested role, or giving the user a subject-admin role that has them, resolves it.

5105

Feature

Automated Testing

Test case validation in the editor is faster on large Vault drafts and no longer holds up other users when uploads are slow.

5519

Feature

Automated Testing

Test case run screenshots are now cached by the browser, so reopening or refreshing a test case run page no longer downloads every screenshot again.

5526

Bug

Automated Testing

Generating Test Case PDFs with screenshots for several hundred Test Cases no longer waits for up to three minutes before the first PDF is started.

5528

Feature

Automated Testing

A request for the PDFs of 20 or more Test Cases is now generated several Test Cases at a time, so large requests finish sooner without delaying smaller ones.

5529

Bug

Automated Testing

Cancelling a request for Test Case PDFs now stops it straight away, instead of the remaining Test Cases being worked through one at a time.

5532

Bug

Automated Testing

Each PDF in a zip archive of Test Case PDFs is now named with the full name of its Test Case, so Test Cases whose names start alike no longer produce files with the same name.

5533

Bug

Automated Testing

A Test Case PDF now says where a screenshot could not be found, or that the run's screenshots have been deleted, and the request reports how many could not be found. It prints the latest run which has started rather than one still waiting to start, with that run's own results, and step text with unbalanced quotes no longer stops the PDF from being produced.

5534

Bug

Automated Testing

A request for Test Case PDFs now ends as completed, failed or cancelled to match what happened, and no completion email is sent for one which failed or was cancelled. A request merged into several files completes when the last is ready and links to the page listing them all, and a merged PDF over the maximum size is split correctly.

5535

Bug

Automated Testing

A request for Test Case PDFs is no longer answered with an error when a PDF worker could not be started, and Generate cannot be clicked again while a request is running. A step which repeatedly stops its worker is failed instead of being retried without limit.

5537

Feature

Automated Testing

Test Case PDFs are reused when nothing they print has changed, so repeated requests complete sooner. The PDF now shows 'Generated On', the time it was built.

5538

Bug

Automated Testing

A page left open during a large Test Case PDF request stays responsive. The Tasks menu shows only the most recent tasks, and an alert is raised for the request rather than for each PDF.

5555

Feature

Automated Testing

When AI is used to generate Test Cases and an Edit Check reads a Dynamic Search List Field, the Test Case now enters the data which populates the list before selecting a value from it. Dynamic Search List actions which target a Variable rather than a Field are now found.

5556

Bug

Automated Testing

Test Case scenarios generated using AI no longer depend on values entered by earlier scenarios. A scenario now clears any value which an earlier scenario entered and which it does not enter itself, and the AI is asked to state the values a scenario needs to be empty.

5557

Bug

Automated Testing

Test Cases generated using AI now enter data for a Form which a Custom Function reads, and which the Edit Check does not itself reference, in a Folder where a Matrix contains that Form. Previously the Form was entered in the same Folder as the Forms of the Edit Check.

5447

Bug

Automated Testing

The Veeva test case generator now reports an error when a rule uses an unsupported system attribute or an incomplete path in a fully-qualified reference, instead of generating a test case that ignores it.

5453

Bug

Automated Testing

Veeva test cases for Set Derived Value rules now expect the correct value when the rule expression references an item or Site attribute directly, without a #define.

5460

Bug

Automated Testing

Additional scenarios for Veeva rules that compare two fields now use values either side of the boundary, including when a #define name differs from its item name.

5462

Bug

Automated Testing

Veeva test cases no longer add an event to the Background when the rule that adds it requires another event to be absent through a #define, and now recognise IsBlank(...) = false as requiring the event.

5464

Bug

Automated Testing

Veeva test cases for Set Subject Status rules now expect the status the subject already has when another rule sets one from an event the test case adds, instead of always expecting Pre Screen.

5465

Bug

Automated Testing

Veeva test cases for derivations now enter data for every repeat a rule reads through a fully-qualified #define, keep codes such as 01 as text in the expected value, and give each #define the value of its own repeat or event.

5467

Bug

Automated Testing

A derived value containing a quotation mark or line break is now compared correctly when a Veeva test case checks it.

5524

Bug

Automated Testing

Veeva test cases that compare Time items now enter times in the order the rule needs, whatever time of day the test case is generated.

5568

Bug

Automated Testing

Veeva test cases are now generated for rules whose Action Target names only an Item Group and Item when the rule reads its data from another form or through a linked form.

5569

Bug

Automated Testing

Veeva test cases now treat an Item's Length as the number of digits before the decimal point, so test cases are generated for Items whose Decimal is equal to or greater than their Length and generated values can use the full Length.

5570

Bug

Automated Testing

Veeva rules containing a number written without a leading zero, such as .10, can now be parsed and have test cases generated.

5571

Bug

Automated Testing

Veeva test cases no longer enter a unit for an item that is left blank.

5572

Bug

Automated Testing

Veeva test cases for an Add Form rule whose Action Target names an event without its event group now place that event in the event group that holds it.

5575

Bug

Automated Testing

Veeva test cases are now generated for rules that read items through @PreviousEvent when the rule does not name an Event, including rules that count or aggregate those items.

5577

Feature

Automated Testing

The Veeva test case generator checks each scenario against its rule before the Test Case is written, and reports an error when it cannot tell what a rule reference refers to instead of treating it as blank.

5410

Feature

Collaboration

Code blocks in Wiki pages, Tickets and Comments now display as formatted code, with syntax highlighting when a language is named after the opening fence. Indented blocks that previously showed stray HTML tags now display correctly. A Wiki page included in a Word Document Template keeps its code blocks' line breaks and highlighting, and a page that mixes text with tables or code blocks can now be included.

5411

Feature

Collaboration

Wiki pages, Tickets and comments now support quotes, horizontal lines, smaller headings, merged table cells and image descriptions, and a Wiki page's headings can be linked to. Merged table cells are kept when a Wiki page is added to a Word document, and Word Document Templates can merge table cells with colspan and rowspan.

5469

Feature

Collaboration

Wiki pages, Tickets and comments can mark a note or warning as a highlighted box with a title, set apart from the surrounding text. When a Wiki page is added to a Word document the box is kept, with a thick colored left border.

2336

Feature

Collaboration

Images can be pasted from the clipboard, or dragged, into Ticket descriptions, comments and Wiki pages. A Wiki page added to a Word document keeps these images.

5490

Feature

Diagnostic

The custom function blacklist diagnostic now reports endpoints removed or replaced in Rave 2025.2.0 with what to use instead, and ignores comments and text in strings. A new diagnostic reports calls to custom functions that aren't in the draft.

5510

Bug

Diagnostic

Only users with Manage Custom Diagnostics permission can delete a Custom Diagnostic.

5539

Feature

Diagnostic

Custom Diagnostics can check whether a Field is derived using diagnostic.is_derived_field(field), which is True when the Field is the target of an active Derivation.

5410

Feature

Document Templates

Code blocks in Wiki pages, Tickets and Comments now display as formatted code, with syntax highlighting when a language is named after the opening fence. Indented blocks that previously showed stray HTML tags now display correctly. A Wiki page included in a Word Document Template keeps its code blocks' line breaks and highlighting, and a page that mixes text with tables or code blocks can now be included.

5411

Feature

Document Templates

Wiki pages, Tickets and comments now support quotes, horizontal lines, smaller headings, merged table cells and image descriptions, and a Wiki page's headings can be linked to. Merged table cells are kept when a Wiki page is added to a Word document, and Word Document Templates can merge table cells with colspan and rowspan.

5431

Bug

Document Templates

Lists in a Wiki page included in a Word Document Template no longer show extra blank lines between or within items.

5427

Feature

Document Templates

Document Templates can now have Draft settings, which let the user choose one Draft, or several, from the Project when generating a document.

5436

Feature

Document Templates

Word document templates can add a text watermark, such as "Standards" or "Draft", behind every page of a section using the new watermark element.

5469

Feature

Document Templates

Wiki pages, Tickets and comments can mark a note or warning as a highlighted box with a title, set apart from the surrounding text. When a Wiki page is added to a Word document the box is kept, with a thick colored left border.

5478

Bug

Document Templates

Word documents generated from templates with page borders can now be edited in Word for the web.

5479

Bug

Document Templates

Tables in Word documents generated from templates fit within the page margins when edited in Word for the web.

5484

Bug

Document Templates

Page borders in Word documents generated from templates show as designed when edited in Word for the web: a page border that is switched off no longer draws a box, and page, cell and table-style borders without a stated width are visible.

5512

Bug

Document Templates

Table borders, paragraph borders and other table, cell and paragraph formatting in Word documents generated from templates show when the document is edited in Word for the web.

2336

Feature

Document Templates

Images can be pasted from the clipboard, or dragged, into Ticket descriptions, comments and Wiki pages. A Wiki page added to a Word document keeps these images.

5394

Feature

Infrastructure / System

Service account credentials for iMedidata, Rave Classic and Veeva are now stored once and shared by every TrialGrid environment, so a password rotation reaches all environments immediately. Veeva Vaults are registered on the production site, and reach the other sites at their next refresh.

5405

System

Infrastructure / System

Automated testing settings are now stored as individual overrides on top of code-defined defaults, so new settings can be added without a database migration.

5480

Bug

Infrastructure / System

Test case run workers that are slow to answer a status check are no longer mistaken for stopping workers and shut down, and main worker replacement now stops the old worker taking new tasks before it is removed.

5520

Bug

Infrastructure / System

Improved tracking of GitLab qualification in validation checks.

5525

Bug

Infrastructure / System

Requesting Test Case PDFs shortly after an earlier batch has finished no longer occasionally waits for the PDF worker to start again.

5527

Feature

Infrastructure / System

Test Case PDFs can now be generated by more than one PDF worker at a time.

5544

Bug

Infrastructure / System

Test Case Runs which a worker has already picked up are no longer counted as waiting for a worker, so an additional worker is not started for them.

5558

System

Infrastructure / System

AI features in TrialGrid no longer rely on a request style that newer AI models do not accept.

5565

Bug

Infrastructure / System

The check TrialGrid Ltd uses to confirm that AI models are responding now reports correctly.

5574

System

Infrastructure / System

Added unit tests for background tasks which were not covered by tests.

5504

Feature

Labels

The URL Labels list now loads faster. It highlights the object types each Label is in use on instead of showing counts. Deleting a Label that is in use now shows how many objects of each type have it and asks you to type DELETE to confirm. Only users with Manage Labels permission can delete a Label.

5502

Bug

Performance

Saving a Form in the Form editor is faster on Forms with many Fields, especially Forms that use Data or Unit Dictionaries or differ from their library Form.

5504

Feature

Performance

The URL Labels list now loads faster. It highlights the object types each Label is in use on instead of showing counts. Deleting a Label that is in use now shows how many objects of each type have it and asks you to type DELETE to confirm. Only users with Manage Labels permission can delete a Label.

5538

Bug

Performance

A page left open during a large Test Case PDF request stays responsive. The Tasks menu shows only the most recent tasks, and an alert is raised for the request rather than for each PDF.

5406

Feature

Permissions

The Licenses page now shows how many users actually exercised each licence tier last month alongside contracted and assigned counts, and a new Monthly License Usage report breaks this down per user. Changing a Project's timeline template from the Project edit page now requires the Manage Timelines permission, as it already did on the Timelines tab.

5573

Bug

Permissions

A pinned Draft, Project or URL which the user can no longer view is removed from their pinned list, and a pin can always be removed by clicking its star.

5531

Feature

Property Sheets

Standard Rules can be edited in a Property Sheet. A URL administrator can define Property Sheets for Standard Rules, which appear as tabs on the Standard Rules list of a Library Draft. Rules can be changed, added, pasted from a spreadsheet and deleted in the sheet. The Standard Rule editor now refuses a Priority outside 1 to 99. A rule with no Object Identifier, a "Must have Attribute" rule with no Attribute Name, or a rule with a Priority outside 1 to 99 is now left out with a warning when rules are copied, and is refused when its Expression is updated from a comparison. Importing a rule with a Priority outside 1 to 99 sets it to 99 and gives a warning. A Property Sheet of any type opened on a locked Draft is now read-only and says why, where before it accepted changes and then did not save them.

5485

Feature

Rave Compatibility

The Custom Functions list shows which Rave API (V1, V2, Mixed or None) each C# custom function uses, and can be filtered by it. When comparing drafts while ignoring comments and whitespace, C# custom functions are now matched on their code: spacing and comments are always ignored, and differences inside strings are always reported.

5486

Feature

Rave Compatibility

Custom Function validation now uses Medidata Designer, shows Rave's warnings, such as API Compatibility, alongside errors, and shows a Custom Function's last validation results as soon as it is opened. The Custom Function editor also shows which Rave API the function uses.

5492

System

Rave Compatibility

TrialGrid now keeps its knowledge of the Rave custom function API up to date from Medidata Designer's validation results.

5507

Bug

Rave Compatibility

Custom Function summaries, the Custom Functions list and the unused objects diagnostic now recognise V2 API calls and actions, and no longer mistake text inside strings for comments.

5489

Feature

Rave Compatibility

Custom Functions are classified by whether converting them to the V2 API can be done automatically, shown on the list and in a new V2 Conversion tab that lists the changes each needs and the functions it calls and is called by.

5493

Feature

Rave Compatibility

Custom Functions can be converted from the V1 to the V2 API, from a new Action on the Custom Functions list or a button on the V2 Conversion tab. Functions that call each other are converted together, and each conversion is saved only when Designer compiles it with no V1 references left and it keeps the same strings, calls and actions; a function that can't be converted is left unchanged and flagged with the reason.

5488

Feature

Rave Compatibility

The Custom Function Agent writes Custom Functions with the V2 Rave API as well as V1, and says which it used. Which one it writes is set by a Rave URL's new Default Rave custom function API version setting, which starts as V2; the agent does not convert a Custom Function from one to the other. Custom Function reviews are given the knowledge of the API a function uses, and report a function that mixes V1 and V2.

5500

Feature

Rave Compatibility

Autocomplete in the Custom Function editor now offers V2 Rave API names as well as V1, chosen by the API the function's code uses. A function using both, or neither yet, is offered both, with the V1 names marked. The V1 names have been updated from Medidata's current Custom Function whitelist.

5499

Feature

Rave Compatibility

A new Organization report, Custom Function V2 Conversion, lists each draft that has V1, V2 or Mixed custom functions with its conversion status and counts. It is refreshed monthly and can be filtered by status and exported.

5542

Feature

Rave Compatibility

Converting Custom Functions to the V2 API is licensed per Organization by the number of unique Custom Functions converted. Organizations without a conversion license do not see the V2 Conversion tab or the Convert to V2 API action, and the Licenses page shows how many conversions are licensed, consumed and remaining.

5394

Feature

Rave Integration

Service account credentials for iMedidata, Rave Classic and Veeva are now stored once and shared by every TrialGrid environment, so a password rotation reaches all environments immediately. Veeva Vaults are registered on the production site, and reach the other sites at their next refresh.

5487

Bug

Rave Integration

Text uploaded from Excel workbooks now keeps its line breaks. Custom function source code, field and form help text, check actions and other multi-line values no longer contain the text _x000D_ where a line break should be.

5370

Feature

Script

An Import Script test run can now apply the commands it built, after you have reviewed them. A script can also walk a file whose shape it does not know in advance - taking a row's column names and values together in the order the sheet declares them, or asking a document what keys it holds - and asking a file for something the other kind of file offers now says which kind was uploaded instead of naming an internal type.

5390

Feature

Script

An Import Script can now read a spreadsheet cell by cell, for files that hold a value at a known address such as D7 or key and value pairs down two columns, instead of only a table under a header row.

5425

Feature

Script

An Import Script can now apply commands that act on a URL, not only on the Organization.

5481

Feature

Script

An Import Script command can now say which URL, Project or Draft it acts on, so one script can build the same objects in several of them.

5513

Feature

Script

Script capabilities are now documented under their own Script module in the validation documentation, with a page describing what a script can do and the controls on it. Entries previously listed under Study build now appear under Script.

5434

Feature

Script

Import Scripts can create a draft, link it to a standard library, copy named forms from that library and then import every other library object those forms make applicable. Objects which need a visit folder the new draft does not have are not imported.

5482

Feature

Script

Applying the commands from an Import Script run happens in the background and reports progress as it works, so a run which asks for many commands is not limited by how long a page can wait.

5536

Feature

Script

The help now lists every command a script can issue, with what each one does, the arguments it takes and the values each argument allows.

5548

Feature

Script

A script can now create records of an object type, not just the object type itself. One command creates one record with the values it holds, naming the attributes as the object type names them. A record of an object type that sits inside another names its parent by identifier, and an attribute that points at another record names it the same way.

5547

Feature

Script

A script can now create Forms as well as records of the object types you define. The attributes are the Form's own columns, named as the ALS workbook names them, together with any custom properties your URL has added to Forms. A Form has to be given an OID and a name, and the Draft cannot already hold a Form with either of them. The other built-in object types cannot be created from a script yet, and the command says so by name.

5422

Feature

Security

Single Sign On providers no longer need to send any user attributes (such as first name or last name) in addition to the email address. Previously a login was rejected if the provider sent no attributes at all.

5504

Feature

Security

The URL Labels list now loads faster. It highlights the object types each Label is in use on instead of showing counts. Deleting a Label that is in use now shows how many objects of each type have it and asks you to type DELETE to confirm. Only users with Manage Labels permission can delete a Label.

5510

Bug

Security

Only users with Manage Custom Diagnostics permission can delete a Custom Diagnostic.

5563

Feature

Security

Content Security Policy violation reports are now recorded in the TrialGrid application logs.

5550

Bug

Security

The object editor and the custom diagnostic editor now refuse an object type that does not belong to the URL being worked in.

5531

Feature

Standard Rules

Standard Rules can be edited in a Property Sheet. A URL administrator can define Property Sheets for Standard Rules, which appear as tabs on the Standard Rules list of a Library Draft. Rules can be changed, added, pasted from a spreadsheet and deleted in the sheet. The Standard Rule editor now refuses a Priority outside 1 to 99. A rule with no Object Identifier, a "Must have Attribute" rule with no Attribute Name, or a rule with a Priority outside 1 to 99 is now left out with a warning when rules are copied, and is refused when its Expression is updated from a comparison. Importing a rule with a Priority outside 1 to 99 sets it to 99 and gives a warning. A Property Sheet of any type opened on a locked Draft is now read-only and says why, where before it accepted changes and then did not save them.

5541

Bug

Standard Rules

A Standard Rule with a wildcard value such as ^.*$ now passes an attribute value that contains line breaks, for example a Field Help Text or Pre Text written on several lines. Before, the rule was reported as failed for these values.

5502

Bug

Standards

Saving a Form in the Form editor is faster on Forms with many Fields, especially Forms that use Data or Unit Dictionaries or differ from their library Form.

5399

Feature

Study build

Data Dictionaries which already exist in the target Draft can now be copied again, overwriting the target Dictionary's entries in place, and the copy dialog can filter to those which are or are not already in the target.

5485

Feature

Study build

The Custom Functions list shows which Rave API (V1, V2, Mixed or None) each C# custom function uses, and can be filtered by it. When comparing drafts while ignoring comments and whitespace, C# custom functions are now matched on their code: spacing and comments are always ignored, and differences inside strings are always reported.

5502

Bug

Study build

Saving a Form in the Form editor is faster on Forms with many Fields, especially Forms that use Data or Unit Dictionaries or differ from their library Form.

5489

Feature

Study build

Custom Functions are classified by whether converting them to the V2 API can be done automatically, shown on the list and in a new V2 Conversion tab that lists the changes each needs and the functions it calls and is called by.

5493

Feature

Study build

Custom Functions can be converted from the V1 to the V2 API, from a new Action on the Custom Functions list or a button on the V2 Conversion tab. Functions that call each other are converted together, and each conversion is saved only when Designer compiles it with no V1 references left and it keeps the same strings, calls and actions; a function that can't be converted is left unchanged and flagged with the reason.

5410

Feature

Tickets

Code blocks in Wiki pages, Tickets and Comments now display as formatted code, with syntax highlighting when a language is named after the opening fence. Indented blocks that previously showed stray HTML tags now display correctly. A Wiki page included in a Word Document Template keeps its code blocks' line breaks and highlighting, and a page that mixes text with tables or code blocks can now be included.

5433

Bug

Tickets

Ticking a task checkbox in a Ticket now changes the item it is shown beside, including in numbered and quoted lists. Task lists with blank lines between items, and tasks under a completed item, now show their checkboxes too.

5495

Bug

Tickets

Ticking a task checkbox on a Ticket that someone else has changed since you opened it no longer changes a different item. The Ticket's current description is shown instead, so you can tick the box again.

2336

Feature

Tickets

Images can be pasted from the clipboard, or dragged, into Ticket descriptions, comments and Wiki pages. A Wiki page added to a Word document keeps these images.

5491

Bug

UX

Copy, CSV, Excel, PDF and Print exports now include the License column of the Organization Team, Project Team and Project Roles lists, the From User column of the Standards Management lists, the Created By column of the UAT Archives list and the Created column of the Alerts and Tasks lists. Exporting the Standards Management and UAT Archives lists no longer shows a DataTables warning, and the Alerts, Tasks, URLs and Test Set Runs exports now use their intended file names.

5500

Feature

UX

Autocomplete in the Custom Function editor now offers V2 Rave API names as well as V1, chosen by the API the function's code uses. A function using both, or neither yet, is offered both, with the V1 names marked. The V1 names have been updated from Medidata's current Custom Function whitelist.

5505

Bug

Validation

Documentation now renders what was written: a note placed directly beneath the text it explains in the Automated Testing step catalog, and release-note entries whose text contains a backslash.

5394

Feature

Veeva

Service account credentials for iMedidata, Rave Classic and Veeva are now stored once and shared by every TrialGrid environment, so a password rotation reaches all environments immediately. Veeva Vaults are registered on the production site, and reach the other sites at their next refresh.

5405

System

Veeva

Automated testing settings are now stored as individual overrides on top of code-defined defaults, so new settings can be added without a database migration.

5412

Feature

Veeva

Veeva test cases that enter data into a read-only item with 'I enter data' or 'I enter and submit data' are now invalid; use 'I enter and submit external data' for these items. Generated test cases enter read-only items with the external data step.

5421

Bug

Veeva

When Veeva Vault refuses the browser login for a Veeva Test Case, the "I am logged in" step now fails with Vault's error message and the Test Case stops. Previously the Test Case continued without a logged-in browser. The refusal is also now reported as soon as it appears, instead of after a 30 second timeout.

5416

Bug

Veeva

The Veeva 'I should see form' and 'I should not see form' steps now match what the user sees in the casebook, including forms shown with no entries, report a form as not found when the subject does not have it, and no longer change subject data while checking.

5417

Bug

Veeva

Veeva form screenshots are now taken once the whole form has loaded, including every row of its tabular sections, and a screenshot that had to be taken while the form was still loading is noted on the step.

5418

Feature

Veeva

Veeva query steps now screenshot the whole form the query is on, with the query outlined, including queries in tabular sections, so the evidence shows which form, event and item the query belongs to.

5419

Bug

Veeva

Veeva form screenshots now show every column of wide tabular sections instead of cutting them off at the right edge.

5435

Bug

Veeva

Generated Veeva Test Cases now include a method when they add or update an event that has Visit Methods configured. Adding such an event uses the 'I add event ... with options' step, so the Test Case is valid instead of needing attention, and updating one, for example to set its change reason, no longer fails with "[Method] is required for this event".

5437

Bug

Veeva

Generated Veeva Test Cases now enter data on an event added by a reciprocal Add Event rule before the item that controls that rule, so the event is not removed before its data is entered.

5438

Bug

Veeva

Generated Veeva Test Cases for Rules with OR conditions now test each OR branch in its own scenario, up to 32 per Rule, including branches on event change reasons and dates, and the main scenario satisfies one branch instead of all of them.

5439

Bug

Veeva

In generated Veeva Test Cases for Rules with OR conditions, each OR branch's scenario now adds only the events that branch refers to, so another branch (such as an event date being entered) no longer fires the Rule and hides whether the tested branch works.

5440

Bug

Veeva

Generated Veeva Comparison Rule Test Cases now enter each date in its own Item's Data Type. A Rule whose Data Type differs from its Items' produced values that could not be entered, for example a date without a time for a Date/Time Item.

5441

Bug

Veeva

Generated Veeva InWindow boundary scenarios now enter Date Items as dates and test one day either side of each boundary. They previously added a time to Date Items and moved the boundary by one minute, so two scenarios with opposite outcomes entered the same date.

5442

Bug

Veeva

Generated Veeva Test Cases now enter a time, such as 10:29, into Time Items, and always include a time for Date/Time Items, including those whose Mask has no time.

5445

Bug

Veeva

Generated Veeva Test Cases no longer split an OR condition inside Not(...), ! or an If(...) into separate scenarios. Such scenarios could enter a value the Rule excludes and still expect the Rule's action, for example a query from a Rule written as Not(A = '1' || A = '2') with A entered as '2'.

5446

Bug

Veeva

Generated Veeva Test Cases now test the 'did not occur' branch of a Rule that also accepts an Event date: a separate scenario adds the Event without a date and sets it to did not occur. Events in Unscheduled Event Groups, which Vault cannot add without a date, get a comment instead. The 'I add event' step now accepts an Event with visit methods when no date is given and its Event Group is not Unscheduled.

5448

Bug

Veeva

Generated Veeva Test Cases for Rules using an Event Group or Form sequence now enter the data in the instance whose sequence the scenario tests, never create more instances of an Event Group or Form than the draft allows, date Events referenced through @EventGroup, and accept a Rule Binding that names an Event.

5449

Bug

Veeva

Generated Veeva Comparison Rule Test Cases now test the source date after, equal to and before the target date for every operator. Previously a Rule built with the wrong operator, such as <= in place of <, could pass every scenario.

5454

Bug

Veeva

Test Cases are no longer generated for Veeva Comparison Rules whose Rule Status is Inactive. They are reported as skipped, as Inactive Rules are.

5455

Bug

Veeva

Generated Veeva Test Cases now date an Event whose visit window is offset from the Previous Event inside that window, counting from the nearest earlier Event the Subject has, and add Events in schedule order. Vault no longer rejects these dates as outside the expected range.

5456

Bug

Veeva

Generated Veeva Test Cases now add the instances of a repeating Event Group in numeric order, so instance 10 is no longer added before instance 2.

5459

Bug

Veeva

When a Veeva Rule has more OR branches than the 32 scenarios generated for it, the Test Case now says how many branches have no scenario and which fields they refer to. OR conditions combined with AND now need only as many scenarios as their longest list of alternatives, rather than one for every combination, so most such Rules are covered in full.

5461

Feature

Veeva

Generated Veeva Comparison Rule Test Cases now test Unknown Handling. When the Rule's Unknown Handling is Min or Max and an Item's Mask allows an unknown day, a scenario enters a date with an unknown day and checks the query treats it as the first or last day of the month. Where that scenario expects no query, a second one checks the query does fire for a date with an unknown day.

5463

Bug

Veeva

Veeva Test Case generation no longer reads unknown minutes (mm*) in a Date/Time Mask as an unknown month when choosing test dates.

5466

Bug

Veeva

OR path and additional scenarios in generated Veeva Test Cases now add Events the same way as the main scenarios: an Event whose Event Group the Rule itself adds is no longer added before the data that adds it, and each scenario uses its own Event dates. The Login scenario no longer takes its Event dates from the negative scenario.

5443

Bug

Veeva

Veeva Test Cases now offer the entries of a Lab Codelist as values for items that use one, including sex and fasting items on non-lab forms.

5444

Bug

Veeva

Veeva Test Cases no longer choose a Hidden codelist entry or unit as a test value, and pick codelist entries in their defined order so regenerated Test Cases use the same values.

5457

Bug

Veeva

Veeva Test Cases now handle an event that belongs to more than one event group, using the forms, visit method and event window of the group the rule refers to.

5458

Bug

Veeva

Veeva Test Cases now resolve each Rule Binding within its own event group and event, so forms, events and event groups that share a label are matched to the right one.

5447

Bug

Veeva

The Veeva test case generator now reports an error when a rule uses an unsupported system attribute or an incomplete path in a fully-qualified reference, instead of generating a test case that ignores it.

5453

Bug

Veeva

Veeva test cases for Set Derived Value rules now expect the correct value when the rule expression references an item or Site attribute directly, without a #define.

5460

Bug

Veeva

Additional scenarios for Veeva rules that compare two fields now use values either side of the boundary, including when a #define name differs from its item name.

5462

Bug

Veeva

Veeva test cases no longer add an event to the Background when the rule that adds it requires another event to be absent through a #define, and now recognise IsBlank(...) = false as requiring the event.

5464

Bug

Veeva

Veeva test cases for Set Subject Status rules now expect the status the subject already has when another rule sets one from an event the test case adds, instead of always expecting Pre Screen.

5465

Bug

Veeva

Veeva test cases for derivations now enter data for every repeat a rule reads through a fully-qualified #define, keep codes such as 01 as text in the expected value, and give each #define the value of its own repeat or event.

5467

Bug

Veeva

A derived value containing a quotation mark or line break is now compared correctly when a Veeva test case checks it.

5524

Bug

Veeva

Veeva test cases that compare Time items now enter times in the order the rule needs, whatever time of day the test case is generated.

5568

Bug

Veeva

Veeva test cases are now generated for rules whose Action Target names only an Item Group and Item when the rule reads its data from another form or through a linked form.

5569

Bug

Veeva

Veeva test cases now treat an Item's Length as the number of digits before the decimal point, so test cases are generated for Items whose Decimal is equal to or greater than their Length and generated values can use the full Length.

5570

Bug

Veeva

Veeva rules containing a number written without a leading zero, such as .10, can now be parsed and have test cases generated.

5571

Bug

Veeva

Veeva test cases no longer enter a unit for an item that is left blank.

5572

Bug

Veeva

Veeva test cases for an Add Form rule whose Action Target names an event without its event group now place that event in the event group that holds it.

5575

Bug

Veeva

Veeva test cases are now generated for rules that read items through @PreviousEvent when the rule does not name an Event, including rules that count or aggregate those items.

5577

Feature

Veeva

The Veeva test case generator checks each scenario against its rule before the Test Case is written, and reports an error when it cannot tell what a rule reference refers to instead of treating it as blank.