Change Log

28107: *fix: Filedate() - keeps wide filename for call to C's stat(), and now gives correct response.

27956: feature/fix: When a wide or utf-8 string could not be converted to an ANSI/Codepaged string, show at least some of the string that can not be converted.
27935: fix: jsonread() - in an array of objects, if a sub-object had read in a null for it's object, it removed the sub-object definition from later uses (ie, the next item in an array, etc)

27918: Added %F to in format of dateformat()

27789 fix: flatread(x12) now uses memory mapped reading mechanism, instead of being capped at 128k inout file sizes.

27760 fix: When editing an attribute or pcdata, the advanced validation (ie, enum) was being lost unless the Advanced dialog was used.
fix: Length counted string for loading cep actually respects the length, and does not assumed \0 termination.

27696 Fix: Missed a change needed when migrating over 26457:"*fix/feature: On failed SQL FETCH (or a single select, resulting in no records), any bound variables (or INTOs) will be cleared, and NULL flag set." from trunk.

27694 fix/feature: If jsonread() hits a UTF8 BOM at the start, it skips over it. BOMs should not be there, but the real world does not always follow the rules - and this is a harmless mistake if we skip over it.

27619 Fix: a temp variable leak in xmlfindkey().

27588 feature: LDAP added to curl

27570 fix: Compiler compiling quoted strings in SQL statements as 'single' quoted again.
Added project dependency.

27527 fix: Strings being used as datetime parameters were failing poorly when a date with no time was being passed in. Now "2019-03-05" works, and "2019-03-05 0:0:0" is not required.

27510 Added EXEC SQL OPTIONS EMBEDSELECT / NOEMBEDSELECT. This turns on/off parameterisation for SQL statements. This is used by EXEC SQL SELECT,DECLARE and CALL. This is useful for some situations like SQL Functions, where ODBC does not provide parameter information. Turning this feature off does lose benefits like caching of statement processing, more traffic to / from the SQL server, and hitting maximum statement lengths, so should only be used for the minimum needed.

27459 fix/feature: On failed SQL FETCH (or a single select, resulting in no records), any bound variables (or INTOs) will be cleared, and NULL flag set.

27456 fix: Take DS11's random() function and backported it. This fixed sign problems. (ie, random(1,2) could produce 1,2,-1 and -2...)

 

27289 adddate() handled 19/20th century correctly.

26936 fix: Stored Procedure test dialog handles nvarchar(max) parameters now, not just big ones.

26861 fix: Escaped strings at the end of a flat file had an extra \0 in them.
Test added to catch this.

26833 feature: Added 'F' flag to flatread/write meaning lengths use characters rather than byte length of strings. Particularly useful for utf8 strings. Also added checkbox to flat source/target mapping settings.

26713 fix: flatread(),flatmatch() and flatreadfirst() all use optional enclose character, rather than defaulting to \0 (NUL) which caused problems on a flat file with embedded NULs.
26712 fix: Remove do {...} while (0) around non-repetitive (eg) record loops. It was causing confusion with older mappings with custom code, and not adding anything.
26712 fix: Changed "Inobiz - Log:" http header to "Inobiz-Log" for webceps.
Added jtools.natvis for easier debugging.
26667 fix: Allow element parameter (ie, an12) to be longer than 4 characters.
26604 fix: Allowing reading of empty json object when all children are conditional. Ie, "object" : { }
26546 fix: Fixed crash when a blank fcn file is created.
26408 fix: Fixed relative path base resulution used by edics.
26405 fix: No longer add #ERROR# to generated pgm when processing an unused RETURN_VALUE "column".
26404 fix: When edifact is set to UNOY, use utf8 string conversion, not codepaged string conversion.
26403 fix: Also read UNB.S001.0001 when showing edifact in source/target (debug) panes.
26402 fix: Fixed address() to report edifact pointer dimensions correctly.
26394 fix: When reading a nvarchar(>512), it was being padded out with \0.
26393 fix: Actually use the set codepage in UNB.SOO1.0001 when encoding data for writing in ediwrite().
26282 feature: fileisreadonly() and filereadonlyset() functions added.
26282 fix: direxist(), dirname(),filecopy(),filedate(),filedelete(),filemove(),filename(),fileappend(), filesize(),filerename() all adapted to work with wide/narrow/utf8 filename parameters
26281 fix: No longer strip away the "r" flag (read and ignore unknown elements) when doing jsonread().
26263 fix: xmlwritenode() returns 1 for success again, as it used to, and as it's documented to do.
26259 fix: Fixed arithmetic when one or both sides are wide strings, ie: 7 + towide ("5") will now work. An edge case, but was still wrong.
26258 fix: xmlwritenode(doc, doc.el[n], ...) no longer writes doc.el[n+1], doc.el[n+2] .... as well. (ie, it only writes the chosen elements, not its siblings.
26252 fix: Fixed a temp variable leak in zipuncompress when the second parameter is a temp variable, ie, zipuncompress (..., sVar & sOtherVar, ...)
26232 fix: fix: xml and json validation will now work with wide strings, not just codepaged and utf8 strings.
26116 fix: Reading in json arrays into a repetitive root works now/again.
26080 fix: Allow unicode trunk to process json arrays at root when estimating structure from a json file.
25968 feature: Added bintohex() function.
25967 feature: Made "Enclose record separators" button on Flat Source setting dialog bigger.
25967 fix: This option checks for enclosed record separators.
25964 fix: Check for valid json number redone to match exact rules on www.json.org, including exponent.
25896 fix: xmlvalidate() was turned off internally. Working again, and seems quite nice.
25818 fix: xtradesetattribute fixed so it doesn't use attribute name as attribute property as well.
25813 fix: JsonRead() wll no longer clear already read in xml/json trees.25818 fix: xtradesetattribute fixed so it doesn't use attribute name as attribute property as well.
25813 fix: JsonRead() wll no longer clear already read in xml/json trees.
25777 fix: Changed %*s to %.*s so counted strings will be handled better (ie, no stray extra characters in traces)
25752 feature: EDI-C's trace() command, and external API trace setting commands now affect different trace variables. If _either_ is set, then trace is active.
25737 fix: edic() was crashing as the child cep's log object was being used shortly _before_ being initialised. edicm() was fine.
25699 fix: SQL nested mappings won't break the pointer replace code by putting in "" in the pointer stack.
25588 fix: Don't free temporary variable when assigning an integer to a wide string. That comes later, and did result in a double free. (Just caused a warning, but good to be tidy).
25545 fix/feature: if the "T" flat is set, flatread() will treat escape characters literally, and will allow line breaks or other record separators inside escaped fields.
Added "enclose record separators" option to Flat | Source settings dialog.
25189 fix/feature: FlatReadFirst()/flatreadnext() will close the handle to the file being read when reading has run out of data, rather than waiting for the Interpreter to close.
25186 fix: ediread() etc will respect separators set in UNA segment.
25185 fix: Fixed flatreadnext() to not reinitialise position in input file.
25087 fix: EXEC SQL CALL fixed mismatch of wide/narrow names for querying information about stored procedures.
25070 fix: Facets with utf8 contents (ie, pattern matching) are now acceptable to EDI-C Compiler.
25058 fix: const AAA = "ÅÖÄ"; Now works. const strings could not support non-ansi characters.
25050 fix: Trying to assign an ???ptr to a string now causes an error, rather than a warning. Other bad assignments already caused errors, so it's more consistent.
25046 feature: EDI-C compiler will no longer complain about non-ascii SQL commands, but will encode them in ceps as utf8 strings. They will not be compatible with older Interpreters, but will cause an EDI-C error message.
25046 feature: SQL/ODBC wrapper code convert commands to Unicode and then talk to ODBC.
25046 feature: getdatabase() / setdatabase() functions can use wide strings now.
25043 fix: Big xml files with unknown elements were going into an infinite loop as the std::ifstream class was not reporting the file size correctly! Most oddd. Using a different method to measure file size now.
25016 fix: fill ("", ...) and fill (..., 0) will no longer generate an error.
25016 fix:namematch () with utf8 strings will be promoted to wide and use wregex.
25004 fix: EXEC SQL IMMEDIATE will now set SQLSTATE, rather than leaving it as 00000.
25006 fix: Close trace handle when switching between ceps, so we don;t get trace lines in wrong trace file. (ie, method () call should be traced in parent log, not child ceps' log)
24997 fix: Allow "ignore unknown elements" to work for children of the document root, not just inside child elements.

24909  Bug fixed when checking for child of ALL groupRevision: 24909

24780  fix:  #import followed by #region followed by global variable declaration works now.

24791 feature: Added utf8 to BSTR ability to EDIC com wrapper.

24790 feature: You can use \uXXXX to insert Unicode characters in a string. Using \u will make that string be utf8, so it cannot exist with \x also in the string  (just use \u00xx instead!)

24787 fix: Wide string parameters to com methods work now with com

24786 fix: Sorted out auto populating elements, like UNH->UNT, when the UNH has wide string contents.

24781 fix: Fixed rare bug where an edifact element has wide string data, but it's being autoset by ediwrite (), and that causes string type confusion, (ie, number of messages) and hence crashes.

24779 fix: Removed bugged xml root name check. Lukcily, it only caused a problem if a child element of the root had the same name as the root.

24774 fix: ediwrite()'s processing of UNB.S001.001 to derive the codepage can handle a wide string input.

24768 fix: SQL FETCH and GET will accept fewer variables than there are columns. This is the pre-Unicode behaviour, so has been restored for compatibility. A note will be made in a trace file about the mismatch. Too many variables did and will cause an error.

24765 fix: Returning a NULL'd string/integer from a function works again.
24733 feature: Used EXEC SQL OPTION STRICT to govern whether binding to an integer will check if there are too many digits for a 32 bit integer.
24732 fix: negative operator fixed. ie, i = 6; i = -i; will now result in -6, not 0!

24712 convert encoding of variable to be displayed in 'parsed output' to current codepage
24691 fix: Change edi-c's random() to use the seedless threadsafe rand_s function instead of seeding by time(NULL), which could have the same seed value in interpreters started near simultaneously. 

24631 feature: EDI-C code like a == b; will now create a compiler warning, instead of only being detected at runtime, with trace on.
24306 feature: Improved eanchecksum() to work with other lengths of barcodes, and added tests.
24291 flatwrite EDIFACT style, since EDIFACT D01 more elements in UNB segment, caused date and time to be inserted in wrong place
24274 xmlmatch() fixed to pay attention to "ignore unknown attribute" (etc) flags.
24265 createdynamic()/releasedynamic() have proper help text, and no longer raise a warning - these are encouraged now for curl.

24209 A JSON object with children can be set to predefined value 'null'. This did not happened earlier, gave a runtime error.
24201 fix: When fetching a text/longvarchar(and n version) columns, a NULL column would affect all following columns.
24164 fix-compat. Fetching data from a null sql column will set the resulting string to "", instead of SQLNULL. This is the older behaviour.
24094 Edicm() fixed utf8 probelm
24078 fix: SQL connect may set current database string badly, if a child cep inherits sql handles, and makes a fresh connection to an already opened database.
24066 EDIFACT Largefile added
24042 FlatRead(), ediread((), Fileexist(), logexist(), readfile(), readfilebin(), have all been made to work with wide, narrow and utf8 filenames.
24043 fix SQL DECIMAL (and FLOAT etc will also allocate room for the decimal point, so the last digit will no longer be thrown away).SQL number types can now be bound to EDI-C integers, *IF* they are 9 digits or less, with no decimal places.
24014 fix: trace() will put itself into the tracelog if it's being turned on, or off. It will only be invisible if it's going from off to off.
24013 fix: Fixed varxxxx(max) columns being read in properly when they contain NULL. Resulting string will contain SQNULL.
23964 fix: flatcopy copies over utf8 and wide strings too, and does not assume all are codepage strings.
23956 EXEC SQL CONNECT BY "connection string" introduced. If you connect to the same DSN multiple times, or with the same connection strings, you get multiple connections. You can use getdatabase()/setdatabase() to switch between them. Previously this was a failure.
23923 getini() and setini() functions can have all parameters be wide/utf8 as well as classic strings.
23921 getini() and setini() functions will check for / or \ in the ini filename, and resolve the path relative to cep location.
23893 jsonwrite() function can now check for value types set in DS and write the value according to settings. Error message if type does not conform to value data.23836 jsonwrite(): Fixed writing a number like: .1234 to be written with a leading 0, ie 0.1234
23834 fix Change SQL statement parsing to use a string type, rather than pointers in a buffer - too many times the buffer ended up not ending with a \0, and the statement was corrupted.
23829 fix Removed clever ' stuff, we use "string" in edi-c, and strings will be converted to 'string' as needed. If a string is the last thing in the statement, it will be null terminated, so the interpreter no longer gets confused.
23827 fix Changed compilers sql processing to notice when text is in sql quotes 's and to not add extra spaces in there.
This was messing up
WHERE col LIKE '%wildcard%'
clauses.
23822 fix Fixed an off by one error in edicm(), used for pre/post and extra processes.
23811 fix for image sql type in column data. (longvarbainary)
23786 fix JSON do not write ending number or string if aary is conditional
23777 feature: ignoreentity working for json as well as xml. You can now do: DOCUMENT.BBB.bbb._value_ = ignoreentity & "{ \"1\" : \"Örebro\" }"; and get unescaped json out.
23774 fix(json): Don't write "numbers" starting with a leading zero as a json number
23769 fix Treat SQL_BINARTY types as Blobs, not strings.23713 fix edicm working.
23706 json Fixed mandatory/conditional key when value has been assigned a value, even an empty string.
23651 jsonwrite() can handle wide / utf8 filenames now.

 

Unicode 

In the new Unicode versions of RT it is not normally necessary to “manually” convert to 
different character encodings. This is done automatically as long as the encoding is
known. When XML/JSON/EDIFACT transaction file/messages are read the data is internally
stored as UTF-8. For other files/messages ( X12, flat-file etc.) the data is internally
also stored as UTF-8 strings. Conversion to UTF-8 is made by using the character set code
in EDIFACT files or current codepage for other types of files. When writing XML files
internally stored UTF-8 strings are converted to the encoding as specified in the XML
xmlns:encoding attribute. When this option is not specified, UTF-8 is assumed. JSON files
are normally written in the UTF-8 format. EDIFACT files are encoded according the character
set defined in the element UNB.S001.0001. Flat files can be written data UTF-8 encoded or
any other encoding by calling the function setencoding() prior to the flatwrite() call.

All the built-in functions in EDI-C “knows” the current encoding of all strings.
Earlier versions of the EDI-C programming language did not have this automatic Unicode
support. This resulted in that some built-in functions were needed to handle different
character encodings. The functions that were used for this purpose were: convert(),
replace(), translate() and toutf8()
convert ()
We strongly recommend to only use this function for converting to and from EBCDIC.
For all other conversions, use the new built-in functions: toansi(), toutf8() or towide().
replace()
This function has sometimes been used to replace UTF-8 encoded characters to single byte
characters like : Å, Ä, Ö, å, ä and ö. The same function has also been used to convert
these Swedish single byte characters to their UTF-8 representationIn the new Unicode
version, these types of conversions are done automatically. If the user by some reason
want to convert ANSI strings containing Swedish characters to UTF-8, use the function
toutf8(). Other functions that can be used are toansi() and towide().
In the new version, when compiling mappings with containing call to replace() and one
of the parameters is a non-ASCII string, a compiler warning will be issued.
translate ()
Do not use this function to translate to or from non-ASCII strings. In the new Unicode
version of EDI-C, all strings that contain non-ASCII characters are internally stored
in the UTF-8 format. To convert such a string to some 8-bit character format do like:
// Set target encoding
setencoding (“ISO-8859-1”);
string sTarget = toansi (sSomeString);
// Reset to current encoding
setencoding (“Windows-1252”);
toutf8()
This function is normally not needed in the new EDI-C version. It may be used when some
ANSI string is read from a file and this file contains non-ASCII characters.

 

 

ID Change

23497    New DS option for controlling how lead-in field separator should be treated for flat files
23232    New parameter to flatwrite() specifying which encoding should be used when writing file
23049    Increased buffer size when tracing an SQL statement using integer columns. Prevents bug with trace when inserting large numbers.
22932    Bug in flatwrite() X12, IEA control number was written with wrong length
22881    For unknown elements, better hadling of CDATA
23121   Accept reading EDIFACT files with encoding UNOY (UTF-8)                                                   
23119   Stricter check encoding (character set) when reading/writing EDIFACT file                                                                         
22846   Better check if a flat file flat group check if unbounded                                      
22823   Stricter check for character set in function edichecku()                                           
22724   At assignment to string from string constant, check if old .cep and UTF-8 encoded
22700   Assignment statement when old .cep's and source data is UTF-8 encode                             
22696   Validate XML pcdata/attribute, allow legth of data to be up to 1.000.000                         
22916 Make sure Excel is closed before deleting any temporary files.
22881 For unknown elements, CDATA better handling
23497 New DS option for controlling how lead-in field separator should be treated for flat files
23232 New parameter to flatwrite() specifying which encoding should be used when writing file
23049 Increased buffer size when tracing an SQL statement using integer columns. Prevents bug with trace when inserting large numbers.
22932 Bug in flatwrite() X12, IEA control number was written with wrong length
22881 For unknown elements, better hadling of CDATA
23121 Accept reading EDIFACT files with encoding UNOY (UTF-8)
23119 Stricter check encoding (character set) when reading/writing EDIFACT file
22846 Better check if a flat file flat group check if unbounded
22823 Stricter check for character set in function edichecku()
22724 At assignment to string from string constant, check if old .cep and UTF-8 encoded
22700 Assignment statement when old .cep's and source data is UTF-8 encode
22696 Validate XML pcdata/attribute, allow legth of data to be up to 1.000.000
22810 * Added *.inc as a valid include file type, adding to fcn.
22716 XMLwrite :Fixed xml mand/cond status
22778 Allocate more memory for facets regular expression pattern
22774 ODBC told to use odbc v3, and date/time structures updated to take advantage.
22799 Classic Excel wrapper gets a mutex, so EDI-C only ever has one Excel instance running.
22767 Don't skip empty fields when parsing the first column of a flat file
22763 Add quotedprintable(encode/decode) functions to EDI-C
22760 Update cURL to version 4.48
22752 Data to char/nchar columns will be chopped off, to prevent sql errors. Later versions of EDI-C will introduce a SQL OPTIONS STRICT ON/OFF command to regulate this.
22749 Fixed a new flatread ("m") Excel style bug.
22744 Added new types to flat fields to know what type of Excel cell to write (number, alpha, date, formula etc) when using Excel.Helper dll.
22735 * Trace for if (p) improved, and xmlptr p = blah... (); if (!p) now works too.
22727 Fix to xmlfindvalue () when it only has 4 parameters.
22726 Trace output changed, to be tab separated with more columns, and no interrupting headers.
22725 Excel write: Don't increment row counter for empty record
22721 zipcompress() trace arguments lengthened to make it easier to diagnose archiving problems.
22718 * XML processing instructions better handling
22711 jsonread() will now respect the "ignore unknown element" and "silently ignore" flags, like xmlread() xmlmatch(),xmlmatchfile(),JsonMatch() and jsonmatchfile() all have an optional last parameter for read flags, just as xmlread() and JsonRead(). If any read flags are set in the mapping, the optional match flags parameter will be used in code generation, otherwise it will be left off, to help with compatibility with older Interpreters.----
22703 COM changes, so we can call IDispatch::Invoke with too few parameters for optional parameters.
22698 Excel Read does pattern matching better now. Excel helper can set "current sheet" name, not jus by index.
22593 Better check on conditional elements in XML
22590 Issue warning if try to free earlier freed tempoarary variable (internal)
22586 Fixed tostring() EDI-C function.
22581 Better check for conditional and mandatory attributes
22568 xmlread() can now handle parseskip elements as direct children of all groups.
22542 xmlread() better check for 'accept unknown' attributes
22541 xmlread() write mandatory attributes under xml root (xmlwrite)
22529 *Fixed base64decode() bug which added extra \0's to end of decoded blob to round length up to 3.
22525 xmlread(), Unknown elements in All groups handled now.
22523 xmlread(), Handled unknown elements using recursive parser, to handle, (eg) <A>...<A>...</A>...</A>.
22521 xmlread(), When doing parseskip elements, bypass a bug with skipping elements, which had same names, nested.
22520 table(), Fixed crashing bug in table() when there's no match.
22518 xmlwrite(), do not write BOM characters at the beginning of UTF-8 files
22504 flatread () "excel" style read will return 0 on failure, instead of 1 wrongly.
22492 use GetLoadedCepVersion() to get cep file version
22487 xmlread(), default encoding is UTF-8
22484 Writing element when mandatory/conditional
22473 flatread(), Bug in x12 read - a test of end of file should have been done 22377 Added to xmlwrite parameter b/B ignore writing bom characters 22371 readanyfile () checks to make sure file is not bigger than 2Gb before trying. 22329 XmlReadDocument() can handel more then one xml stucture. 22319   SQL INSERT can take SQLNULL string for any nullable column, and also take "" for nullable columns, except text columns (ie, VARCHAR) and blobs. 22306   xmlread() - max attribute len changed to 100000. 22293   tableload() and tablematch() updated to add optional separator parameter, and a default-if-key-not-found parameter respectively. 22277   Added new Excel file library option to EDI-C. If this optional library is not installed, EDI-C will fall back to using Excel automation. 22269   Check for bad initial paths in xmlfindkey/value commands and fail quietly. 22266   dateformat() Fixed week number bug with old format. 22241   xmlfindkey/value can handle integers as keys too. 22236   Added base64encode() and base64decode() functions. 22222   substr() on the left now two options: 1. len >= 0 same as before, 2. len < 0 replace len chars with what is on right side of assignment operator 22211   xmlwrite (..., "m") writes BOM characters to memory buffer, ready for writing to disk. 22208   datetime() with new % specifiers fixed to better handle bad specifiers. 22191   errors being returned from a com method will show the com object name too, not Method.Method. 22187   execenv() can now return 6 for "Caled by .Net wrapper" 22167   dateformat() rewritten. Can now use "old" or "new" format specifiers. See help file. 22124   Fixed occurs() bug. 22118   Can assign SQLNULL to a string variable, and use that in SQL INSERT to optionally set a column to NULL. 22116   xmlwrite(). Fixed bug with "do not write header" flag. 22092   SQL INSERT works with datetime again. 22057   occurs() and search() made more efficient. 22014   println("") works indentically to println() 21964   jsonwrite(): Numbers can be written as strings, by appending "\xFF\xFF" 21958   SQL INSERT changed to use parameterised values, rather than a long Exec Direct string. Changed to handle an Oracle bug, and become more efficient. 21951   jsonwrite(): No double quotes around numbers. Examples: 1, -1, 1.2, -1.3 21930   Handle REF VARIANT com method parameters better 21925   jsonread() now handles arrays at root of json file. 21918   Using _inp() and _outp() will cause compile errors now. 21915   New EDI-C function 'edicheckce' to check for mandatory composites/elements 21911   xmlfindkey() fixed to handle no-key-found. Integration Server 4.9 sp3 21804 xmldata(), flatdata() and edidata(): Added second optional "i" flag parameter to silently make any error be "false". 21799 Fixed a crashing bug in xmlfindvalue(). 21792 Fixed pointers in Debug window not showing <empty/assigned> properly. 21789 table(), tableload(), tablematch () redone to handle line endings (\n and \r) better. Table maximum increased to 10. 21750 xml attribute limit lengthed to 2047 characters. 21744 xtradeisloaded() function added. 21743 xTrade helper dll will be unloaded by xtradeunload() and by Interpreter exiting. Error messages from xtrade functions made more uniform. 21704 "parseskip" elements will ignore unassigned attributes. 21615 readfile() with relative filename will try relative to current cep location first, before trying relative to current working directory. 21645 Fixed memory leak in flatmove() function. 21570 xml element type "parseskip" implemented for xmlread. 21509 COM object method calls handle VT_VARIANT ref parameters better 21484 jsonread() skips over UTF-8 bom marker 21336 Bug with flatwrite and empty flat tree (ie, no records etc) 21198 Fixed bug in dynamic object mthod call when trace is on, and a parameter is super long 21196 new function 'getlastlogmessage' 21193 new function 'xmlwritenode' 21172 New predefined variable ignoreentity. Example: <A>ccccc</A> A.pcdata = ignoreentity & "<B>Hello</B>" result is: <A><B>Hello</B>/A> 21090 Added getcurrentusername edi-c command. 21081 New functions xmlfindkey() and xmlfindvalue(). 21018 Trace disabled for Function and COM method calls. 21016 Fixed acceptance of unknown elements before known ones, even when flag is not set. 21007 if (x) is a valid test for pointer types (eg xmlptr). If the pointer is valid, the "true" branch is taken, else the "false" branch is taken. 20972 Changed ismethod () to walk a function's parameter tree, rather than its symbol table. Now returns correct number of parameters, and does not get confused by (eg) internal variables used for switch statements. 20969 When a line like a == b; is encountered in edi-c, and trace is on, there will be a warning about the line. 20968 edi-c dynamic trace had a potential bug with parameters that had % characters. 20967 Escaped % char in trace format input 20954 In flatwrite with "edifact" style, Created BGM like: BGM+241:::+993544' Should be: BGM+241+993544' 20950 Added new "t" flag (kAcceptSilently) to xmlread. If you've chosen Accept Unknown Thingy(tm), then you get a loginfo that the unknown thingy has been ignored. With the "t" flag, you don't get that warning. 20894 Added lots of error handling to lock functions. Any mismatch between acquires and closes will cause an error, as will closing a handle with live acquires. The interpreter will tidy up, but still cause an Error to be reported. When an interpreter is closed, any live sync locks will be Error'd and closed. 20887 changed debug step handling to be better when leaving Functions 20883 When a COM function returns vtEmpty from a function / get method / out parameter, turn that into "" in edi-c. 20882 Added third parameter (seconds offset) to timestamp() function. 20877 Changed timestamp() function to be more flexible Added clVariable string setters for char *, and removed many (ECHAR *) casts, to make life a bit smoother for utf16 transition Added clVariable string set function which just takes string length. 20875 New EDI-C functions: lockcreatesemaphore() lockacquire() lockreleasesemaphore() lockclose() 20870 Added traceison() command. 20868 In call to 'xmlread', new new file mode parameter 'h', accept XML document without XML header In call to 'xmlwrite', new new file mode parameter 'h', do not write XML header 20841 com.method calls show a return of void, rather than showing nothing for a method with no return code. 20837 bug fix in trace for comparing long strings. show "void" as return type for a dynamic call that has no return. 20834 In EDI-C, Dynamic method calls write to trace out as well. Should make debugging use of dynamic objects a LOT easier. 20812 Accept root node in file to be like AAA:BBB but declared in structure as BBB Do not regard this as an unknown element 20798 Bug fixed - when element data contain a EDIFACT special character like : + ' ? then replace them with 2 chars where the first character is the release char ?. Result will be like ?: ?+ ?' ?? String will be longer - for each release char add 1 to length - this was not done. 20793 Default EDIFACT release character (?) was not defined. 20756 Routing improved 20715 When writing EDIFACT element data, ignore chars with value lower than space. If data contained \ and \n, length was not calculated properly. This has worked in earler versions of 'ediwrite'. This bug was introduced when 'ediwrite' was optimized. Integration Server 4.8 sp5 20679 Did not write mandatory XML children 20637 Trace line number improved. 20634 Excel mappings show grid while debugging also. 20591 regexp now works without external dll. Lib path added to rtdll for boost libs, 20550 Interpreter better able to handle (some!) user defined types in COM method parameters, by assuming the type passed by the user (ie, string or integer) is valid. VT_(U)I8 now made to be a string, as it overflows an integer. 20534 Better handling of undefined elements when parsing XML files 20508 flatwrite (..., "m") with excel flat style now works, saving xls file to a temporary file, then loading it to the string. 20493 For Oracle database, exchange square brackets [ ] with double quote " 20491 Fixed bug - top level file has empty sibling. This ok but do not check for mandatory recoirds and fields in it 20476 New function 'flatcheckmandatory', can replace 'flatcheckm' ' 20446 jsonwrite changes so empty elements are written. Replace "null" with "". 20418 xmlread() handles case when several ending undeclared elements occur as children to a declared element 20413 jsonwrite () : When mandatory but empty key/values are there, show them as null or {}. 20397 For flatwrite and xmlwrite, if file mode parameter is 'D', delete all data in tree after write, not the tree itself 20393 For ediwrite, if file mode parameter is 'D', delete all data in tree after write, not the tree itself 20349 xmlread : Allow different root node names in file and in structure 20347 Better error message when trying to assign void function "return" value to a variable Integration Server 4.8 sp3 20263 xmlwrite - Fix in 'WriteElement' - do not write 1St empty conditional elements 20185 flatread from Excel files gets cell range to read much more efficiently 20154 max number of XML docs sets to 20 20153 Advanced routing: Better handling of substring like: xx[1,5] 20118 In function 'DeleteDataInElement' (used by xmlread and xmldelete edi-c functions), do not remove xml:version 20117 xmlwrite & xmlwritefirst/next/last functions: Checking for spaces in function WriteAnyXmlData was done in a wrong way. Should NOT IMMEDIATELY return false when empty attributes and pcdata. 20092 program () and program (0) return just the filename of the originating source of a cep. 19982 Better error message when EDIFACT element data contains invalid characters 19972 delete entity data only at highest level 19971 When deleteting data in xml tree - ignore entities 19935 Increased buffer holding variable name for SQL ... INTO :longname from 79 to 512. You can use tree variables (ie, XML.element.subelement.pcdata, so you're not limited to one variable's length. 19927 When xml:preserve is set, allow pcdata content as " ". 19843 bug fixed when comparing two xmlptr values in an if (ptrA == ptrB). 19838 Fix for com calls. b = obj.SomeFunc (); and b = obj.SomeProperty; look the same in the cep, so we need to potentially try both in the interpreter. 19817 EDI-C command "getobject" added, to complement "createobject". Useful for getting objects by Moniker, ie, in Active Directory, Office, etc. 19814 COM interop from EDI-C redone. 19779 urlunescape bug with long strings fixed Integration Server 4.8 sp1 19739 Memory access bug when reading variable length fields flat file with file style "minimized" and routing. 19731 Trace fixed to give full output when writing to disk. 19725 Bug fix in ++xmlptr_variable 19717 EDI-C's sleep function now respects the fQuit flag too. 19696 urlescape replaced with a less clever, brute force approach, replacing any character that's not A-Z,a-z or 0-9 with the %xx version. Fixed problems with urls with ?'s in. 19563 SQLSTATE will be initialised to 00000 at start time of interpreter. 19550 When stored procedure has format ABC.DEF they must be enclosed by the " character. 19503 movefile() improved to be safer. 19492 edifile() and listfile() now open in readonly too. 19491 Made ediread() and xmlread() open the file in readonly mode, not requiring write access. 19350 fixed a bug in xmlwritelast, crashing if xmlwritefirst has not been called yet. 19338 Function 'readfiletoansi' did not exclude BOM chars in length 19314 New function 'readfiletoansi' UTF-16 to ANSI UTF-8 to ANSI Else as it is 19253 Function memory leak in 'xmlcopy' 19190 Better error message when bug in EDI-C interpreter: missing calls to 'FreeTemporary' Previous message was like '..exhausted cache..'. 19185 call() and callquiet() temporary variable leak - fixed 19179 Changes in EDXML_READ_JSON.CPP EDXML_WRITE_JSON.CPP 19174 dynamic and object types now appear in debug variables. fixed a bug in releaseobject() - the internal data was not being cleared, so any use of a dynamic variable afterwards would crash, not complain. 19163 CR/LF after each object only if "n" in 3:rd parameter in jsonwrite() function call 19159 Function jsonwrite() write UTF-8 characters 19151 xmlwrite() gave sometimes empty XML elements 19127 jsonread() and jsonwrite() introduced 19125 xmlwrite() - If element is conditional but a child attribute is mandatory - always write the element with attribute even if it is empty 19104 Removed runtime warnings for assigning xmlptrs to "null" pointers. Runtime warning for *using* null pointers remains. 19067 xmlwrite() - Write attributes of element even if they are empty but declared "mandatory/required" 18938 callas() now has correct return code - should be process exit code 18934 Edi-C function call() changed so that it returns exit code of called program instead of process id. 18814 flatread() with excel style - Fixed bug that meant we only ever read from the first worksheet in excel. 18783 Added function: xtradesetattribute() 18650 Fixed a buffer problem bug in flatread(), when a record label is longer than the next line. 18535 Function edicm() ends with releasing SQL handles which were not closed in program 18500 flatread() with excel style - Worked around an oddity in excel which asked to save a file, even with no changes. 18426 Zip functions error messages now mention which file they failed with. 18335 SqlInsert now works with codepages, and unicode columns. 18334 edi-c's codepageset and codepageget commands are working now. codepageset (), codepageset ("") and codepageset ("0") all set to default (of 0, or 'built in') codepageset (1256) sets codepage directly codepageset ("cs") sets codepage via locale info - but ONLY on Vista or later. 18274 Extended check when null xmlptr is used in arithmetic 18232 xmlread() - Allow undeclared xml elements 18141 fixed bug for negative decimal values 18135 new tradacom parser 18080 Fixed a bug in tracing edi-c functions. 18023 new file style SIE 18011 fixed advanced routing bug 17957 Finished changing call(), callas() and callquiet() edi-c commands. 17950 Advanced routing is now done entirely in the interpreter - no compiler modules affected 17898 Function call() returned 16 bit integer value - changed so it returns 32 bit integer value 17865 EXEC SQL DECLARE xxx CURSOR START (n) STOP (n) Function SqlFetch - used SQLFetchScroll 17776 Removed the requirement for a record to have at least one field. 17544 bug when indexing XML elements like Doc.Elem[2].pcdata 17445 better error messages 17442 advanced routing

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk