iData release notes
Version 2.0.5
Updated: 18/04/2023
Version - 2.0.5
- ❇️ New
-
Implemented OAuth login for Salesforce Data Sources
(ref 4983)
-
Implement OEM salesforce database driver
(ref 4885)
-
Added a user interface guide
(ref 4850)
- #552
Added open source licences to the Help page
(ref 4856)
- #405
Allow rows to be tagged with categories
(ref 4669)
- #385
Added Import and Export feature for Projects
(ref 4487)
- #537
Added view only mode to the Edit Data Entity screen for users without permissions
(ref 4826)
-
Added maintenance mode for orderly updates
(ref 4533)
-
Added SoapClient to allow for iData scripts to interact with SOAP API's
(ref 4705)
-
Added Host.XmlToJson and Host.JsonToXml that allow converstion between Json and XML
(ref 4707)
- #491
Added Host.GetMachineID() to get machine ID in scripts
(ref 4714)
- 🔀 Changed
- #577
Update iData Reference Manual regarding TagAsEmail().WithSimpleValidation()
(ref 4894)
-
A valid server certificate is now required for MSSql data sources. To proceed without a valid certificate, the “Trust Server Certificate” flag under a selected data source can be enabled.
(ref 4933)
- #585
Importing projects will now redirect users to update datasources. Stages are prevented from running until all datasources are valid.
(ref 4928)
-
Reduced the load time of Data Entities when creating a stage
(ref 4844)
-
Refactored username lookups for datatables
(ref 4867)
- #420
The transform script output now has specific error text for attempting to use OnNthRow while no unique keys are set
(ref 4865)
- #549
Data sources are now individually licensed. An updated license file will be required.
(ref 4857)
- #417
Updated deprecated RndPatterns method in default transform script
(ref 4864)
-
Updated SalesForce documentation in the iData Reference Manual
(ref 4843)
- #534,#536
Users with user management permission allowed to enable 2FA
(ref 4810)
-
Clicking "Close" after ingesting a table now takes the user directly to entity creation, letting them create an entity from the ingested table
(ref 4735)
- ☑️ Fixed
- #663
Resolved issue that could cause stages to fail to generate if the entity dependencies got outdated
(ref 5172) 🆕[18/04/2023]
- #640
Fixed an error that occured when submitting an invalid server name
(ref 5113)
- #642
The new Stage screen no longer throws an error when a licence is missing
(ref 5105)
- #634
Fixed issue with parameter box on the schedules page not loading correctly
(ref 5097)
- #586
Fixed authorisation error on Job Queue page
(ref 5095)
- #539
Fixed issue with schedules page showing schedules from other projects
(ref 5083)
-
Resolved an issue that stopped Excel files being written in iData 2.0
(ref 4667) 🆕[18/04/2023]
-
Fixed an issue that caused Excel files to become currupt in iData 2.0
(ref 4666)
- #619
Added bool to default MSSqlWhitelist
(ref 5060)
- #602
Added reminder to update connection string (step 5) in error message (step 6).
(ref Story 5008)
- #608
Solved null reference exception when creating Data Gen stage with a Salesforce entity
(ref 5044)
- #594
Fixed error when clicking on an "In Progress" report
(ref 4960)
- #606
Fixed running data generation on salesforce
(ref 5016)
- #576
Fixed iData reference manual typo in TagAsDomain
(ref 4895)
- #575
Updated iData reference manual "Manually tagging" reference
(ref 4896)
- #587
Fixed issue running stages after migration
(ref 4937)
- #565
Fixed issue where the edit entity page was returning a 400 error
(ref 4903)
- #566
Resolved the "Method GetScriptArguments threw ArgumentNullException: Value cannot be null. (Parameter 'g')" error message
(ref 4902)
-
Stages of imported projects can now be executed
(ref 4913)
- #556
Fixed long banner text causes layout issues
(ref 4870)
- #249
Files uploaded to lookup folder are automatically made accessible from scripts
(ref 4854)
- #415
Implemented RndGuid() when primary key type is uniqueidentifier for default transform scripts
(ref 4863)
- #546,#547,#558
Fixed issues in creating non-word stage name
(ref 4829)
-
Data Entity dependencies are now automatically created to prevent errors from missing references
(ref 4845)
- #547
Fixed an issue where stage names with spaces would not generate scripts
(ref 4855)
- #503
iData now handles controlled shutdowns gracefully
(ref 4755)
- #279
Fixed issue where the newly created project is not selected by default
(ref 4798)
- #559
Ensure all database migration steps are recorded to avoid database upgrade warning message
(ref 4879)
- #531
Fixed issue with log download API pointing to the wrong location
(ref 4808)
- #533
Fixed to display role names for users with the Delete Role permission only
(ref 4809)
- #543
Fixed restore user confirm message
(ref 4828)
- #535
Updated roles, permissions, and project permissions to prevent users from getting more access by creating another account
(ref 4811)
- #545
Fixed an issue with Profile Results that prevented List View from displaying when View All Tables was selected in the filter
(ref 4819)
- #357
User account search now returning results
(ref 4432)
- #485
Source Entities no longer fail to load when editing mappings for Single Mapping stages
(ref 4698)
- #512
Fixed file locks when writing to file in scripts
(ref 4779)
- #518
Add permission checking in File browser
(ref 4792)
- #538
Fixed view only permission closing script editor issue
(ref 4813)
- #495
Re-visited users being logged out when marked as inactive
(ref 3999)
-
Similar records no longer skips a row after matching a group
(ref 4458)
- #484
Users are now forced to select a column in Similar Records stage
(ref 4697)
- #492
Apply consistent row ordering in reports
(ref 4737)
- #493
TagAsCompanyEmail tag added to differentiate between different types of emails. Appropriate email now generated according to selected email tag
(ref 4739)
- #495
Fixed issue where inactive users were being sent to the email confirmation screen when they attempt to log in
(ref 4743)
- #523
Allow admin role users delete other users project
(ref 4794)
- #526
Datatables in modals no longer have the same fixed height as datatables on the page
(ref 4804)
- #530
Fixed typo on 2FA setting page
(ref 4807)
Version - 2.0.4
- ❇️ New
-
Added a page before ingesting a CSV file into a database that describes what the action will do
-
Added a "Create Folder" button on CSV Datasource creation modal. This allows new folders to be used as bases for Datasources
-
Added a "New Folder" button for Files
-
Added a "Browse and Upload Files" option for CSV Datasources
-
Added option to ingest CSV file into a database via the action menu
-
Files and folders can now be downloaded via the actions menu
-
Added ability to categories records and view them in the report
- 🔀 Changed
-
Removed SetColumnToChar due to SQL incompatibility and JSON object issues
-
#442 update EULA in installer
-
Removed legacy Host.NewDbCompare
-
Depreciated SearchGroups for SearchGroup while an issue with multiple runs is resolved
-
#487 Default data generation scripts for number columns will now generate data relevant to that field type instead of just integers
-
Moved the "Upload Folder" button for CSV Datasources to the top of the modal
-
The folder rename dialog in Files no longer requires you to manually remove the backslash and is now titled "Renamed Folder"
-
Changed how client secrets are stored, this may require creating a new client secret for the worker via the Administration -> Settings -> Worker Settings menu
-
#479 iData virtual file system storage and performance improvements
-
Csv datasource re-enabled
- ☑️ Fixed
-
#490 Fixed issue involving characters in file paths
-
#469 Fixed issue where execution time was not taking UTC into account
-
#454 Fixed issue where data type mappings are not applied correctly when comparing a CSV to a table
-
ETL tooltips now show the names of each row state
-
Fixed issue with updating progress bars that caused exceptions in the log and the progress bar to not show in the UI
-
Fixed issue where DBMigrator was not accepting some characters as symbols
-
#463 Fixed ussue on Schedule page where parameters with checkboxes where not working correctly
-
#450 Fixed grammar in the limited results text for the report details page
-
#480 The new CSV Datasource dialog now fits the screen
-
#464 Permission are now all visible without scrolling
-
#382 Fixed similar records skipping rows when two groups are close together
-
#497 Fixed the select data source screen not showing data sources
-
#506 Fixed edit CSV Datasource no responses issue
-
#514 Fixed issue where Host.ExitCode was being ignored. Negative values will now cause the script to fail
-
#527 Fixed new CSV Datasource page upload folder button disappear issue
-
#529 Fixed stage page and others pages that were not displaying results because the user who created the item had been deleted
Version - 2.0.3
- 🔀 Changed
-
Disabled csv datasource until #479 resolved
Version - 2.0.2
- ❇️ New
-
On application launch systeminfo.txt is written to ProgramData\IntelligentDeliverySolutions\iData
- 🔀 Changed
-
iDataConsole now uses the same encryption as iDataSaaS
-
#438 Updated 2FA warning message on users page to be more readable
-
#446 Auto focus username field on login screen
- ☑️ Fixed
-
No longer shows UpdateProgress exception in script logs when a job ends prematurely
-
Fixed tooltips on long report values that overflow in Similar Records
-
A CSV with a duplicate header no longer causes an unhandled exception
-
#384 Fixed issue where users without CreateProject permission didn't have breadcrumbs
-
#423 Fixed issue where script path would hide script editor controls
-
#444 Fixed issue with incorrect filters showing on the report page
-
#453 Cancelling a job no longer throws a stack trace to the console output
-
#462 Fixed Typo on Log Settings Screen
-
#468 Fixed CSV Download issue
-
#470 Fixed issue allow editing entities with same name on different datasource
-
#471 Fixed where cancelling a stage generates an error and fails to stop the stage from running
Version - 2.0.1
- ❇️ New
-
Web user interface
-
Integrated editor
-
Datasource and Data entity management through the User interface
-
Manage and update stages through the user interface (Replacing wizards)
-
Schedule execution
-
Interactive reports and drilldown
-
Projects to organize work and users
-
Run multiple jobs in parallel
-
Auto logout user when the user is deleted or has permission change
- 🔀 Changed
-
Removed support for legacy configuration files
-
Removed support for legacy wizards. Host.HeadlessWizard, Host.NewWizard, Host.MessageBoxYesNo, Host.MessageBoxWarning have been removed
-
Host.Exec is deprecated, use javascripts import/export statements. Find out more here: https://javascript.info/import-export
-
EnableNewColumns() on text writers has been replaced with PreventNewColumns()
-
Removed support for RemoveDuplicates transform
-
Updated the UI so only one column can be selected for grouping on SimilarRecords
- ☑️ Fixed
-
#261 & #231 Fixed sorting by name on project and stage screens
-
#260 Changes to stages through the UI overwrite manual changes to scripts
-
#254 Unhandled data types now fails gracefully, however further change will be made in #259
-
#249 Manually adding a lookup file updates lookups.js to support code completion in the editor
-
#248 Renaming a lookup file removes contents
-
#246 Users with execute rights don't have to be in the admin group
-
#245 Incorrect version number returned from command line
-
#244 RndIntBetween added for generating inclusive numbers, help for RndIntRange updated to state it generates numbers excluding the end value
-
#243 Set generate 0 or 1 values for bit fields
-
#242 ConvertToText now takes requested region and culture into account when formatting dates
-
#239 Column names with apostrophe's are now handled correctly
-
#237 #228 #227 #226 #220 Cosmetic layout fixes
-
#233 Exported results location shown with link
-
#232 Incorrect number of pages in results
-
#230 Re-ordered profiling list view filters into logical groups rather than alphabetically
-
#229 Increased profile results size limits to handle larger tables
-
#213 Favicon now displayed on login screen
-
#184 Reports and stages can be deleted to manage database size
-
#181 Running jobs can be cancelled
-
#178 Timeout profiling large tables
-
#168 Entities can be added or ammended after creation
-
#241 Fixed Inconsistent timezone on Job Progress
-
#224 Removed references to wizards on some screens
-
#235 LetsEncrypt certificates can be requested via to the UI
-
#256 Solved issue with Intermittent failure of scheduled jobs
-
#255 Action button for schedule missing under some circumstances
-
#263 MakeRndCardCols returns an error
-
#253 rename GetDataEntity to GetDataEntityConfig for clearity and implement RndRecordFrom on DBQuery
-
#259 Creating stage where entities have foreign keys to other ommited entities cases error 500
-
#262 Error using 'Run again' from job progress or run history
-
#276 The iData worker is now setup on application start if not already configured
-
#274/#275 Fixed an issue where the admin role was not being properly checked for when running a script
-
Resolved a issue when running a job "Issuer name does not match authority"
-
#269 iData currently does not support MSSQL Spatial data types such as Geography
-
#269 Skip unreadable data types such as spatial
-
#300 Fixed link to job in the notification Email from showing an error when clicked
-
#291 Fixed an issue where CSV entity names containing spaces would generate bad variable names
-
#288 Resolved an issue when deleting a stage
-
#297 Solved issue with uploading licence
-
#343/#344 Fixed various styling and css issues
-
#326 Solved issue where not all profilers where shown when hitting the 150 column limit
-
#343/#344/338/339 Fixed various styling and css issues
-
#323 Fixed AutoMapping CSV to SQL for Wide Table
-
#355 Solved issue with referential integrity and data generation
-
#356 Improved register validation to prevent User Enumeration
-
#317 Set Similar Record modal width to prevent overflow of mapping container
-
#318 Documents should no longer be incorrectly translated by the browser
-
#347 Fixed an issue where new user accounts weren't being activated
-
#309 Removed exec from user help commands
-
#367 Fixed typo on LetsEncrypt screen along with adding a domain field and some instruction on how to change it
-
#380 Added Two Factor Authentication
-
#381 Added "Use Domain in Credentials" to email settings screen to allow for Gmail credentials to authenticate correctly
-
#386 Fixed Number of Columns Compared counter not reporting anything
-
#387 Fixed issue running stages with long names
-
#396 Fixed CSV to CSV data mappings for strings
-
#397 Fixed 500 error when opening a comparison report with mapped columns
-
#400 By default we now limit the number of rows reported in each ETL and Comparison report and increased timeout on query to allow for bigger reports to be loaded
-
#410 Resolved issue where deleting a report that is being processed courses an exception
-
#412 Fixed 500 Error on the Settings screen
-
#424 Fixed incorrect reference to step 4 in getting started guide
-
#426 Updated formating on stage completion emails
-
#432 Users are now prompted to login after registration. New Users get a welcome email
-
#433 Fixed issue with apostrophe in CSV column name breaks scripts
-
#449 Uploading a file no longer creates a folder with the same name
-
#452 Encoded modal header titles before displaying them to prevent script injection
-
#457 Fixed issue with default csv options that caused issues reading headers
- ⚠️ Known Issues
-
#257 Order of source and target rows can swap depending on row status
-
#252 ForEachRowFrom can't be used multiple times for the same OpenQuery
-
#250 & #251 Generating data for tables with identity columns
-
#183 Job stopped during processing
-
Db Migrator always shows a warning message
-
Unclear warning message when row size exceeded
-
user search returns no users
-
ignore values on similar records causes duplicates to be missed
-
Similar records tooltip appears in wrong place
-
Similar records occasionally missing expected results
-
Restoring a db and ProgramData to a new server causes issues
-
User with View Only permissions has no breadcrumb menus when viewing a report
-
#368 Value cannot be null when using OnRndRows method on column that accepts null
-
#401 script log updates are added to the current page even when its not the latest page
-
#406 project owner not listed in project permissions
-
Skipping all records seems to cause an issue
-
#421 report columns don't line up with headers on tables with a large number of columns
-
#422 need to scroll to see popup menu
-
#423 Editing a script with a long path causes save and close buttons to be partially hiden
-
#426 alert notification email message needs tidying up
-
#436 Internittent timeout on results screen and error sending progress to source
-
#439 job status intermittently fails to go to a green tick
-
short columns with long names causes poor formatting in reports
Version - 1.8.1
- ❇️ New
-
new data generation method GetRndRecord can be used to select multiple fields from a randomly selected lookup record
-
values can be set using a 'Get' from another column when using SetText, SetInt etc
-
RndRange transforms can now accept range parameters using a 'Get' from other columns
-
values can be assigned using a general 'Set' that uses the data type of the parameter
-
added RndDateTimeRange which returns a random date and time between the specified values
-
AddressValidationAPI has an option to refresh the cache once the records are older than a configurable amount of days
-
added request logging to AddressValidationAPI using LogRequestContaining config setting
-
AddressValidationAPI cache is now encrypted
-
MakeRndPersonCols when used for obfuscating guarantees a generated name will be different from original name
-
Domains for generated email addresses have been updated to avoid clashing with real email addresses
-
Limited SetMaxUniqueValues(int) to 100,000 to ensure stability when profiling
-
Added ReplaceControlCharacters to remove control characters.
-
Added ReplaceMultipleSpaces to replace multiple spaces.
-
Added ReplaceBlanksWithNulls to replace blanks to Null.
-
ConvertToText can now support non-numeric format specificer and culture code.
-
Added data type validation to Csv readers when types are defined by the user, with functions to handle validation errors, OnReadErrorContinue() and OnReadErrorAbort()
-
Allow scripts to prevent automatic failure of a row after validating an email or address and implement their own handling of the issue including retrieving the error message. See IValidateCondition functions
- 🔀 Changed
-
IMPORTANT: Selecting random values based on weighting was found to be inaccurate and has been updated. Random selections with weightings will generate a different selection of results after this change.
-
when using Get to obtain a reference to a field a default value can supplied if the field isn't found
-
RndDateRange returns dates with time set to midnight see RndDateTimeRange
-
Improved the profiling logic for detecting a columns data type
-
Parameters on Transformations and Conditions now accept column references
-
Skipping a row now deletes it from the output
-
Column name references available for more functions, updated list in iData Reference Manual
-
SetTimeZoneOffset replaced with SetUTCTimeZoneOffset and SetLocalTimeZoneOffset
-
TestDataSet values set with NextXXX or ForEachXXX are now set before all other transforms take place, rather than after, so their values can be used by other transforms
-
AutoFixAddress verification now maps addresses containing a Company Name, Property Name, or Locality, to the street/town columns
-
AutoFixAddress verification only replaces responses with a return value of 100 and 400 by default, WithAllowedFlags() can be used to set a custom list of allowed flags. More information on flags can be found in the docs.
-
Removed Binary Transforms as they were not useful in their current form
-
Amended ReplaceNearest to support default value
-
Added RntIntBetween which generates values including the maximum value
-
Generated credit cards now give an invalid checksum by default. Added EnableValidCheckDigit() to the tag settings toa allow valid checksums to be generated.
- ☑️ Fixed
-
Lookups from csv files will use column types defined using SetColumnToXXX
-
Fixed infinite data generation when no row limit or foreach
-
Report viewer now correctly reports invalid filenames instead of reporting missing files as invalid encryption keys
-
Report viewer now correctly handles splitting of files correctly
-
FormatText now works on fields that contain a NULL value
-
Fixed error when using SetPatternLiteral
-
Fixed 'UpdateColumnDefinition' which now correctly increases column sizes when ingesting csv data
-
Miscapitalised column names used in SetColumnMapping no longer throw an error with counter group '???'
-
AddressValidationAPI no longer requires external dependencies to run
-
AddressValidationAPI will now create missing cache
-
Stopped Abs transform displaying warning for positive numbers
-
Fixed an issue when generating data that would cause the primary keys to be set to null
-
Fixed NULL value handling when used with references to other fields
-
#225 Fixed an issue when generating data that would cause the primary keys to be set to null
-
CSV entries longer than 8000 characters will no longer throw an error
Version - 1.8.0
- ❇️ New
-
Reports are compressed and encrypted to a single .idr report file by default
-
Added SetVirtualFolder to filemanager to direct all folder contents to a single report file
-
Encryption keys can be created and set through a encryption key pass phrase in the user interface
-
Installer now deploys Report Viewer to view .idr files
- 🔀 Changed
-
Profilers are now listed alphabetically
- ☑️ Fixed
-
Fixed issue when using multiple lookups in one script
-
Fixed profile reports with group results
-
Fixed opening reports on a network drive accessed via a UNC path
-
Fixed AutoFix address output miscapitalising words
-
Fixed error when address config not set
-
Fixed regex match error when the db value is null
Version - 1.7.2
- ❇️ New
-
Added RestClient to allow for iData scripts to interact with Rest endpoints
-
Added TextFileReader to allow for any text based file to be open and be used in a datastream
-
Added TextFileWriter allowing transform engine to write to text files
-
Added RestartLimit and RestartDisabled for Next lookup transforms
-
Added SetTwoDigitYearMax to set the default century for two digit year date formats
-
Added SetColumnToGuid to database readers to ensure unique identifiers are compared correctly
-
Allow csv writers to append or overwrite existing files
- 🔀 Changed
-
Updated ETL wizard to EnableIdentityInsert when target has identity column.
-
MakeRndAddressCols() can use existing country or region or filter by country and region with UseCurrentCountry UseCurrentCountryAndRegion options
-
Removed VaryBy()
-
Added foreign key references to wizard script
-
SetColumnToDateTime now also takes optional DateFormat to override the default
-
CreateTableIfMissing now uses the input column name not a normalised version
-
AddRecord now uses Upsert when there are no comparisons
-
Added column mapping to the source stream, a compare is no longer necessary to map columns, compare mapping is being deprecated
-
AutoFix now capitalises location names, and places houses in address line 1
-
Dates are now formatted to the local time before being written to reports
- ☑️ Fixed
-
Fixed data generation resetting identity columns
-
RepeatRnd() changed to inclusive range to match Repeat() and missing ref bug fixed
-
Allow updates to unique keys when source or destination have no rows
-
Ensure error messages are reported for all row states
-
Fixed error when uploading from excel sheets with numbers for sheet names
-
Fixed TrackRowUpdates when used with existing data
-
Fixed Importing csv file with only headers
-
Fixed wild cards not applying tags to each column
-
Fixed cardinality max value estimator not tracking past the set limit
Version - 1.7.1
- ❇️ New
-
DbWriter and SQLWriter now supports creating and updating schema using CreateTableIfMissing, CreateColumnIfMissing and UpdateColumnDefinition.
-
Added ExcelWriter allowing transform engine to write to excel sheets
-
Added support for password protected excel files
-
Added ExtractRegex() transform which allows text matching a given regex pattern to be extracted and optionally replaced with other text
-
Added ToCol() which allows text extracted from ExtractRegex() to be placed in another column
-
Added Company, Email, and Phone number to random address generation
-
Added SetPatternLiteral() to toggle between pattern generation and literal characters in RndPatterns()
-
Added Single, Double, and Triple word occurance count to the profiling report
-
Added AddressLine1, AddressLine2, and AddressLine3 for generic columns
-
Added SetColumnMappingFrom() to allow the use of lookup tables to map compared columns
-
Added EnableAddressFixLookupService to enable the use of AFD instead of LibPostal to clean addresses, alongside EnableAddressFixMachineLearning, default option is set in AppSettings.ini
-
Added abort to transforms when too many writes fail in a row can limit can be set with SetWriterMaxWriteFail
-
MakeCol now accepts Wildcards to select multiple columns at once
-
MakeCol now accepts multiple columns to be passed at once
-
Added ExcelReader allowing transform engine to read from excel sheets
-
ExcelReader stops reading when blank rows found
-
New Licencing system. Contact Intelligent Delievery Solutions for support.
-
TrackRowUpdates() now writes comments to SQL, CSV and Excel files
-
iData Address Validation API is now packaged with the iData install
-
Added date and time to console logs
-
Added new conditions to match profiler results. E.G. HasPunctuation
- 🔀 Changed
-
Lookup matches not support patterns
-
Merged CardPrefix and CardPrefixRange for card definition in AppSettings
-
Cards higher than 19 digits can now be validated
-
AutoFixAddressFields now works on tables with joined number and street fields
-
Reports no longer show [no value] when one of the rows is entirely missing. e.g. No Src/Dest or Add and Delete
-
Column values can now be used as parameters in conditions such as Contains
-
You can no longer edit unique key columns while comparing unless the destination table is empty
-
Limited the UI log output to 1000 lines
-
AutoFixAddressFields and VerifyAddressFields now work with group tags
-
IsValid and NotValid has been added to functions VerifyEmailAddress, VerifyAddressFields, AutoFixAddressFields, CheckForeignKeys, and CheckUniqueKeys
-
Generate more diverse set of company names
-
By default tables stop at the first empty row, and the first empty header if headers are set
- ☑️ Fixed
-
Prevent error when uniqueidentifier is table key and also using Rnd transforms
-
Fixed system buffer version mismatch
-
Fixed spelling on some Rnd... transforms from Rng...
-
Fixed filter buttons sometimes not showing up on ETL reports
-
Set RndPatterns() to accept punctuation.
-
Report links with spaces now work
-
Csv files with trialing spaces in headers now work
-
Allow duplicate values in data for In and Replace operations
-
Fixed some formatting issues in the documentation
-
Data writes take column mappings into account and shows correct mapping in headers in report
-
Fixed showing mapped columns in report when writing to empty table
-
Fixed table name validation issue
-
Speacial characters in excel sheet names now upload okay
-
Address generation email column not defined and street address default seed
Version - 1.7.0
- ❇️ New
-
More detailed stack trace for errors
-
Added NextGuid(), RndGuid() and EachGuid() transforms
-
Added OnNthRow() transform
-
Added ConvertToBigInt() which converts the value to a 64 bit integer
-
More detailed stack trace for errors
-
Added a UniquePrefixes profiler
-
Added RndWords() transform which generates a random Lorum Ipsum paragraph
-
Added ability for tags to be grouped together
-
Added enhanced Mask() which allows full or partial masking of text with a given mask character
-
Added enhanced MaskExcept() to mask all except a given range
-
Added Repeat/RepeatRnd modifier(s) to Each and Next Transformations to repeat the value the requested number of times
-
Added MakeKeys and ForEachRowFrom/NextRowFrom to setup keys values from a parent table
-
Added default value option to conversion transformations
-
Added the ability to set the seed for randomly generated data to an alternative name instead of the column name with UseSeedName()
-
Added AllUppercase, AllLowercase and MixedCase profilers
-
Added Flush() to reports to write any buffered output
-
Added ability to set RequiredRows for a TestSet
-
Added RepeatRnd() function which allows Each and Next transforms to be randomly reset
-
Each functions are now known as ForEach. e.g. EachText is now ForEachText
-
Added RestartRnd() which restarts a ForEach sequence after a random amount of iterations between the given minValue and maxValue
-
Added SetBinary(), RndBinary(), NextBinary(), EachBinary() and EachFrom versions of these
-
Added RowLimit() to Each data items to allow for generation of data for smaller sub sets
-
Added SetDifferenceFilename() option to comparison options
-
All transforms can now be contained within a TestDataSet()
-
All TestDataSet() calls must now have an accompanying EndTestDataSet()
-
Added GetCardType() to check a card number for a matching card type, returns the found type as a string
-
Added MatchKeysAlphbetically() method to comparison settings to allow for keys to be compared alphanumerically
-
Added the ability to enable soundex for similar record checker via similar record tags
-
Added the ability to ignore words for similar record checker via similar record tags
-
Added the a sort by method the similar record configuration object
-
Added BlankCol() to blank selected columns
-
Added UniquePatternLengthIndependent profiler
-
Added MakeRndCreditCardCols() to generate credit card data on tagged columns. Additionally, SetValidCardTypes() can be used to select card types to generate.
- 🔀 Changed
-
Temp data is now written to local app data
-
By default both MakeRndAddressCols() and MakeRndPersonCols() use predefined seeds. This can be changed with the new UseDefaultSeeds()/UseColSeeds() options
- ☑️ Fixed
-
Prevent error when uniqueidentifier is table key and also using Rnd transforms
-
Fixed system buffer version mismatch
-
Fixed spelling on some Rnd... transforms from Rng...
Version - 1.6.1
- ❇️ New
-
Added the ability to set a timeout when calling Execute() on a DBQuery
-
Added NextIntAsc(), NextFloatAsc(), NextDecimalAsc(), NextYearAsc(), NextMonthAsc(), NextDayAsc(), NextHourAsc(), NextMinuteAsc(), NextSecondAsc() and NextMillisecondAsc() which increment a value by a given step
-
Added the RngRegex transformation to randomly generate values that match the specified regular expression
-
Added ability to generate synthetic data using OpenTableGenerator(). Additionally, use SetTotalRows() and UseOptimalRows to set the amount generated
-
Added a new DataType profiler that reports back the type of each column profiled
-
Added a new Median profiler that reports back an estimated median value when the number of unique values has been exceeded. Actual median is reported below this limit
-
Added Host.NewDateTimeFormat() and Host.SetDefaultDateTimeFormat() which allow for parsing custom date formats
-
Added a progress bar when the profiler is writing out html reports
-
Added a new VaryBy transformation that can be used when obfuscating values
-
Added OnRndRows() and OnRows() to allow for transformations to be applied on a subset of rows
-
Added grouped profiling results to the profiling reports
-
Added IsBlank() and NotBlank() conditional transformations
-
Added Between() and NotBetween() conditional transformations
-
Added option to paginate sql and csv files via a parameter on Host.WriteSqlScript() and Host.WriteCsvFile()
-
Added the ability to edit and add new connections from the connection picker when running a wizard
-
Added Or() conditional transformation
-
Added SetBigInt() which sets the value to the given int as Int64
-
Added ConvertToBigInt() which converts the value to a 64 bit integer
- 🔀 Changed
-
MoreThan(), Equals(), AtLeast() and other comparisons will convert text values to dates before comparing them
-
NextIntFrom(), NextDoubleFrom(),NextFloatFrom(), NextTextFrom() and NextDateFrom() have been renamed to NextInt(), NextDouble() etc when using a list of values opposed to a lookup
-
Null values are now included in the unique values profiler results
-
Total row count is now shown next to the Unique values on the profiling report
-
Now when the number of unique values passes 1000(by default) an estimation of the number of unique values is provided for the profiling reports
- ☑️ Fixed
-
Error message is displayed in reports when invalid column mappings are provided
Version - 1.6.0
- ❇️ New
-
When updating from 1.5.* to 1.6 iData needs to be uninstalled prior to updating
-
Added SetWriteFailedRecords() which allows failed records to be written to a separate destination
-
Added new setting to profiler results SetMaxCharLimit() which prevents the profiling of exceedingly large text values
-
Added NewLookup() to Host that allows the building of lookup tables from within scripts
-
Added NextIntFrom(), NextDecimalFrom(), NextDateFrom(), NextFloatFrom() and NextTextFrom() which loop through given values replacing each value in turn
-
Added RndTextFrom(), RndIntFrom(), RndDecimalFrom(), RndFloatFrom(), RndDateTimeFrom() and RndTextFrom() which select a random value from provided values
-
Added RndTextPattern() which converts a pattern, e.g. 'A9A 9A9', into a random string with the same pattern e.g A7A 3R8
-
Added SetGenerationSeedCols() to set which column values are used as the seed for generated data
-
Added RndIntRange(),RndFloatRange(),RndDoubleRange(),RndDecimalRange() and RndDateRange() used to generate random data
-
Added the ability to sample datastreams with the SetSampleSize() method
-
Added the ability to generate random addresses with the MakeRndAddressCols() transformation
-
Added Each transforms which generate data in combination with other Each transforms. Added for Text, Int, Decimal, Float and Dates. Each transforms can be used with LookupTables using Each...From
- 🔀 Changed
-
Renamed AutoFixPhoneNumber() transformation to FormatPhoneNumber()
Version - 1.5.1
- ☑️ Fixed
-
Fixed comparison summary not reporting differences when source rows missing from destination
-
Fixed row count out by 1 when reading from csv files
Version - 1.5.0
- ❇️ New
-
Added Profiling and Profiling wizard to discover data patterns and potential data quality issues
-
Added Check for Similar Records and Similar records Wizard to search for records that could be duplicates
-
Created data transform engine for ETL as well as comparison See NewDataTransform in docs
-
Added transformations: ConvertToDecimal(), ConvertToText(), ConvertToDateTime(), ReformatDateTimeText()
-
Added AutoCapitalise() transformation allowing for words to be automatically capitalised
-
Added transformations: Trim(), TrimEnd(), TrimStart()
-
Added the ability to tag columns as the following: TagAsPersonTitleName(), TagAsPersonFirstName(),TagAsPersonMiddleName(),TagAsPersonLastName()
-
Intelligently clean person/name related data: AutoFixPersonFields(), DistributePersonFullName() that have been tagged as person fields
-
Added EnableDomainCheck() on TagAsEmail to check if the email domain exists
-
New transformations: CopyCol() and CopyColValue()
-
New transformation: ReplaceWildcard()
-
Added for lookup table: EnableWildcards(), EnableRegex()
-
Added conditions: IsValid(), NotValid() to report if tagged columns such as emails are valid
-
Added TagAsPhoneNumber() to allow tagging of phone number columns see AutoFixPhoneNumbers
-
Added AutoFixPhoneNumbers() to convert phone numbers to standarised formatting
-
Reports are now timestamped so results do not get lost between runs
-
Added conditions: MatchesDateTimeText(format) and NotMatchDateTimeText(format)
-
Added CheckForeignKey() to stream to check if all foreign keys are present
-
Added CheckUniqueKey() to streams to check all key values are unique
-
Added TagProfilerSetting() to allow for custom profiler settings
-
An SQL output can be added for both CheckForeignKeys() and CheckUniqueKeys() via SetSqlResultsFilename()
-
Common values outputted by the Profiler can be save to CSV via the WriteCommonValuesToCSV() command
-
Added PadLeft() and PadRight() to add spaces to a value
-
Added DifferenceFrom condition to allow for approximate string matching
-
Added ConvertToJulianDateTime() and ConvertToUnixDateTime()
-
The ConvertToDateTime transformation now works with unix timestamps and julian dates.
-
Added SetLong(), SetBool(), SetDecimal(), SetGuid(), SetShort(), SetByte(), and SetDateTimeOffset()
-
Added EnableMultipleSelections()/DisableMultipleSelections() to SetControlToListBox() for use with Wizards
-
Added an Else statement for use with conditions
-
The name parameter of MakeCol() can now be omitted, MakeCol() will use the column name provided in preceding IfCol() or IfSrcCol() methods
-
Added ability to enable and disable warnings with via EnableLogWarnings(), DisableLogWarnings(), EnableAbortOnWarnings(), DisableAbortOnWarnings(), RestoreLogWarning()
-
Added CoalesceCols() to get the first non null value from a list of columns
-
Added Substring() transform to get part of a text value
-
Added JoinCols() transform to combine several colums into one value
-
Added InsertText() and InsertColText() transform to add text at the begining or middle of a value
-
Added TagAsDomain() to allow tagging of a web domain column
-
Added NewDBResultsWriter() to the Host object
-
Added TrackRowUpdates() and StopTrackRowUpdates()
-
Added SetDNSServer(), ExportDNSCache() and ImportDNSCache()
-
Added TagAsCreditCard() and validation to check if credit card numbers are valid
-
Added EnableSoundex() to lookup tables
-
Added Obfuscate() transform to replace original characters with random characters
-
Added Mask() transform to replace original characters with fixed characters
-
Profiling Results can now be grouped by columns
-
Lookup tables can now be filtered using FilterOn() and Using()
- 🔀 Changed
-
Database connections and application settings are now read from %LocalAppData%/iData/Settings
-
Data comparison engine still works but is deprecated, use NewDataTransform instead
-
NewInputStream still works but is deprecated, use NewStream instead
Version - 1.4.0
- ❇️ New
-
Upgrade to V8 jscript engine, for better performance, error handling and latest jscript syntax
-
Doubled performance running scripts in gui with background thread
-
Allow debugging scripts from VSCode. See Docs
-
Allow scripts to be stopped from the UI by clicking the run button a second time
-
NewDbCompare can use SetSrcData or SetDestData instead of SetSrcTable or SetDestTable. SetSrcData can be passed value from OpenCsvFile. This allows control over csv file separators and column settings
-
NewDbCompare can use SetSrcQuery or SetDestQuery to allow comparison of joined tables or pre-processing of data using sql before iData transformations
-
Use a lookup table from a query or csv file to replace values using ReplaceValueWithLookup
-
The database definition of a Null value can now be accessed through Host.DBNull which has a different value from null
-
IgnoreCase can be applied to make transformations such as Replace case insensitive and MatchCase can turn it case sensitive again
-
Added SetInt, SetFloat, and SetDateTime to set a column to a specific value of the given type
-
Created maths operations for Add, Subtract and Remainder
-
SetMatchDistance added to allow nearest close match to data in lookup table. See Docs
-
Added SetDateTimeParts to allow part of a dateTime to be changed.
-
Added SetANSICodePage to allow encoding to be specified when reading CSV files.
- 🔀 Changed
-
Interactive scripts must have 'Wizard' as part of their filename, for automatic optimisation
-
ReplaceRegex ignore case parameter deprecated in favor of IgnoreCase command
-
ReplaceValueWithLookup deprecated and renamed ReplaceLookup
- ☑️ Fixed
-
Fixed invalid warning when comparing source query to destination csv file
-
Fixed crash caused by duplicate database connection names
-
Report any errors generated by wizards
-
Prevent ConfirmRequiredVersion flagging identical build numbers as different
-
Prevent missing dates in CSV files generating invalid SQL dateTimes
-
Fixed cleanup of database connections after DbCompare
Version - 1.3.6
- ❇️ New
-
Add testConnection wizard. See getting started
-
Accept jscript regex expressions in MatchRegex and NotMatchRegex. See Api docs
- 🔀 Changed
-
Database connections details reloaded on demand. No need to re-start gui to refresh
-
Improved error message for script errors in comparisons
- ☑️ Fixed
-
Update progress report when skipping rows during comparison
Version - 1.3.5
- ❇️ New
-
Recored and report statitics for each column
-
Accept native jscript regex expressions in MatchRegex and NotMatchRegex. See Api docs
-
Remove duplicates rows before comparison. See RemoveSrcDuplicates in Api Docs
- 🔀 Changed
-
Limit comparison reports of mismatched rows to avoid hiding other issues
- ☑️ Fixed
-
Report attempts to map columns incorrectly in comparisons
-
Prevent installer overwritting connection strings on re-install
Version - 1.3.4
- ❇️ New
-
Allow comparison to specify IncludeColumns as well as SkipColumns. See Api docs
-
Allow columns to be SetNull. See api docs
Version - 1.3.3
- ❇️ New
-
All In to use lookup tables from CSV or queries. See API docs
Version - 1.3.2
- ❇️ New
-
Additional conditions In, StartsWith etc. See API docs
Version - 1.3.1
- 🔀 Changed
-
Improved database connection error messages
Version - 1.3.0
- ❇️ New
-
Support for splitting and joining columns. e.g. AddColText. See Api docs
Version - 1.2.0
- ❇️ New
-
Database comparison wizard
-
Import CSV data for comparison
Version - 1.1.0
- ❇️ New
-
Database comparison
-
Read/write to Excel files