Symphonia 3.8 Service Pack 6 Release Notes

20 October 2006

Features in Service Pack 6

Visual Studio 2005 C++ Libraries

Symphonia 3.8.6 includes C++ libraries compiled with Visual Studio 2005 (in addition to the libraries compiled with Visual Studio 2003), allowing either C++ development environment to be used.

Enhancements in Service Pack 6

Map Designer

Bug Fixes in Service Pack 6

Installer

SymptomResolutionReference
The .NET component generation plugin is not registered correctly by the installer
In some circumstances the Symphonia .NET Component Generation plugin is not registered correctly in the installer, and so is not available when running EDI Message Designer. This was worked around by manually registering the component.
This bug has been fixed.

    Mapping Engine

    SymptomResolutionReference
    Mapper engine ignores validation error settings of input message definitions
    EDI Message Designer allows each type of EDI validation error to be configured as either an error, a warning, or to be ignored. When the Mapper is then used with this definition, it correctly creates the error/warning in its list. However, if the stop on errors flag is set to false, the Mapper will stop processing even if only warnings have been found.
    This bug has been fixed so that processing is only halted if errors are found (and the stop on errors flag is on).
    • REN-182

    EDI Message Designer

    SymptomResolutionReference
    Changing tabs in the field properties dialog causes the values to be reset
    The field properties dialog in EDI Message Designer has two tabs. If values are updated on the first tab, then the second tab is displayed, the newly updated values on the first tab are lost and need to be re-entered.
    This bug has been fixed.
    • REN-691
    Unable to copy and paste rows from a validation table
    If some cells from a validation table are copied and then pasted into a new validation table, all the cells tend to end up in the same cell in the new table. Copying and pasting the values from a table in Word works correctly however.
    This bug has been fixed.
    • REN-684

    Bug Fixes in Service Pack 5

    Map Designer

    SymptomResolutionReference
    "Could not load PCF from definition file" when running mapping
    The Map Designer compiles a mapping definition, but whenever it is run, a fatal error is generated saying that the PCF could not be loaded from the definition file.
    This problem occurred when the input or output definition type (not just the definition file) is changed, but has now been fixed.
    • Internal - DCL#7158
    Unable to import XSD with abstract type implementations in a different schema
    When importing an XSD into the Map Designer, it says that it cannot find any implementations of an abstract type. These implementations do exist in the schema-set being imported, but are not in the same schema as the abstract type.
    This bug has been fixed.
    • Internal - DCL#14219
    Unable to import schema with the "mixed" attribute
    A schema with the "mixed" attribute used on a complexType with simpleContent cannot be imported into the Map Designer.
    This bug has been fixed.
    • Internal - DCL#12946
    Attributes on the base complexType are not found
    When importing a schema that uses a complex type extending a type defined in another schema but the same namespace, the attributes on the base type are not available for mapping.
    This bug has been fixed.
    • Internal - DCL#13421

    Bug Fixes in Service Pack 4

    Installer

    SymptomResolutionReference
    RuntimeKeyReg.exe missing from the installer
    The tool used to install a Symphonia runtime key was missing from the Symphonia installer.
    This tool is now included in the 'Redistribution' folder.
    • Internal - DCL#10991

    Map Designer

    SymptomResolutionReference
    Schemas without a default namespace fail to import
    XSD schemas that do not have a default namespace cannot be imported into the Symphonia Map Designer.
    This bug has been fixed by using the target namespace as the default if no default namespace is specified in the schema itself.
    • Internal - DCL#11838
    Map Designer ignores xmlns attributes on elements
    Elements can specify which namespace their type comes from by using the xmlns attribute, however the Map Designer ignores this attribute when importing schemas, meaning that their types cannot be found. Consequently the schemas cannot be loaded.
    This bug has been fixed so that the xmlns attribute is now used.
    • Internal - DCL#11749
    Circular includes result in duplicate element declarations
    XSD schemas are allowed to have circular includes (i.e. schema 'a' includes schema 'b', and schema 'b' includes schema 'a'), but when these are imported into the Map Designer, it complains about duplicate elements, and fails to import the schemas.
    This bug has been fixed.
    • Internal - DCL#11357
    Unable to import more than one schema with no target namespace
    If schema 'a' has target namespace 'ns', and it includes schema 'b' with no target namespace, and schema 'b' includes schema 'c', also with no target namespace, then elements in schema 'a' cannot access elements in schema 'b', even though they should be able to.
    This bug has been fixed.
    • Internal - DCL#11700
    Map Designer cannot create messages when there are no top-level elements
    If there are no top-level elements in the root schema, the Map Designer is unable to create any messages representing them in the internal Mapper structures, despite the schema importing correctly.
    This bug has been fixed by allowing the user to select from top-level complexTypes instead.
    • Internal - DCL#11335
    Changing the name of a child in a base type prevents the schema being loaded
    If a type extends another type, but renames an existing element, the Map Designer detects this as an error and refuses to load the schema. It is technically wrong, but several public schemas do this.
    The Map Designer now successfully imports these schemas, but issues a warning about this problem.
    • Internal - DCL#10689
    Cannot load schemas where a reference element uses the nillable attribute
    If a schema has an element that uses the ref attribute to identify it, and that element also uses the nillable attribute, then the Map Designer cannot load the schema. This is technically wrong, but several public schemas do this.
    The Map Designer now successfully imports these schemas, but issues a warning about this problem.
    • Internal - DCL#11177
    Cannot load schema with two imports into the same namespace
    The Map Designer cannot load a W3C schema that has two import statements that import the schemas into the same target namespace.
    This bug has been fixed.
    • Internal - DCL#11178
    Cannot load schema that imports the default namespace with providing a location
    A schema may have an import statement that references the default XML namespace but without providing a location. However, such a schema cannot be loaded into the Map Designer.
    This bug has been fixed.
    • Internal - DCL#10422
    Crash when browsing for types based on message paths
    When creating a new submap it is possible to browse for the types of the parameters. However, if the "Browse by Path" option is selected for any definitions imported from an XSD, the Map Designer will crash.
    This bug has been fixed.
    • Internal - DCL#11800
    Unable to import some schemas using abstract types
    Some schemas using abstract types cannot be imported as the Map Designer claims that it cannot find any types that extend those abstract types. However, there are such types in the schema.
    This bug was caused by a namespace problem, resulting in the subtypes not being found. This bug has been fixed.
    • Internal - DCL#12900

    Mapping Engine

    SymptomResolutionReference
    Infinite loop when calling the StrRemove() external function
    If the StrRemove() external function is called on the C++ Mapper (or in the Map Designer), and an empty string provided as the string to remove, and Mapper enters an infinte loop, hanging the application.
    This bug has been fixed.
    • Internal - DCL#11808

    EDI Engine

    SymptomResolutionReference
    NullPointerException when using generic fields in Java or .NET
    If generic segments are being used in the Java or .NET engine, some of the methods on the MessageElement API, particularly isEmpty(), cause NullPointerExceptions when called (or NullReferenceExceptions on .NET).
    This bug has been fixed.
    • Internal - DCL#12061

    Bug Fixes in Service Pack 3

    Installer

    SymptomResolutionReference
    Uninstall can delete all common shortcuts from the start menu
    When uninstalling Symphonia 3.8.2, it was possible for the uninstaller to delete all common shortcuts from the start menu.
    This bug has been fixed.
    • Internal - DCL#9204

    EDI Designer

    SymptomResolutionReference
    Some message definitions could cause EDI Designer to crash when viewing a segment or message
    Some message definitions that had been configured to display custom columns could cause EDI Designer to crash when a segment or message was viewed.
    The crash was due to certain columns being displayed multiple times. This bug has been fixed so that duplicate columns can no longer be displayed.
    • Internal - DCL#5833
    Miscenallenous HL7 library errors
    Incorrect descriptions in validation table HL700003
    Incorrect definition of ED composite
    PR1.ProcedureFunctionalType was required instead of optional
    Some fields in the OBR and OBX segments were optional instead of conditional
    These bugs have been fixed.
    • Internal - DCL#5634
    • Internal - DCL#8624
    • Internal - DCL#8553
    • Internal - DCL#5728
    Choice groups are not imported correctly from libraries
    Choice groups are not imported correctly from any library definitions. Instead they are always imported as ordered groups.
    This bug has been fixed.
    • Internal - DCL#10576

    EDI Explorer

    SymptomResolutionReference
    Acknowledgments fail to be generated using the default VB script provided
    An error in the default VB script used to generate acknowledgements meant that acknowledgments could not be generated by default for some versions of HL7.
    This bug has been fixed.
    • Internal - DCL#9640
    The autofill multiple messages dialog had a title of 'Dialog'
    The autofill multiple messages dialog had a title of 'Dialog' rather than something more descriptive.
    This bug has been fixed.
    • Internal - DCL#3862
    Explorer crashes while opening some messages structures up
    In some rare cases it was possible for Explorer to crash while expanding a parsed message structure.
    This would occur when an internal data structure got out of sync when parsing some complicated message structures. This bug has been fixed.
    • Internal - DCL#8326
    Explorer crashes while clearing the contents of a generic composite
    If a message was input parsed and it contained some generic composites, clearing them within EDI Explorer would cause it to crash.
    This bug has been fixed.
    • Internal - DCL#7480
    Saving a flatwire message makes it unloadable
    If a flatwire message is input parsed into EDI Explorer, and then the save button is pressed, the flatwire message file is overwritten and then cannot be input parsed.
    EDI Explorer was saving the message in its internal format, instead of popping up the Save As dialog. This bug has been fixed.
    • Internal - DCL#5496

    EDI Engine

    SymptomResolutionReference
    Threading bug in regular expression library
    The version of the jakarta regular expression library used by Symphonia (1.2) had a threading bug where compilation of multiple regular expressions simultaneously would cause a variety of problems. This bug is much more likely to be encountered when using Rhapsody as it loads message definitions more frequently.
    The jakarta regular expression library has been upgraded to version 1.3 which does not suffer from this threading problem.
    • Internal - DCL#9327
    Calling GetElementAt() causes validation failures on choice groups
    When the GetElementAt() method is called on a choice group it would create the element, which could subsequently cause validation errors.
    This bug has been fixed.
    • Internal - DCL#9489
    Count paths do not work when the count field is in a nested message set
    Count paths do not work correctly when the count field is in a nested message set relative to the component that it is counting.
    This bug has been fixed.
    • Internal - DCL#9523
    NullPointerException while loading a PCF
    A message definition using tagged segments but with a message containing no message items fails to load in the Java and .NET engines, causing a NullPointerException.
    This bug has been fixed.
    • Internal - DCL#7397

    Map Designer

    SymptomResolutionReference
    Upgrading message structures could change existing submaps or main maps incorrectly
    In some circumstances it was possible for the upgrade message structures functionality to cause some submaps to be promoted to main maps.
    This bug has been fixed.
    • Internal - DCL#9109
    Map Designer can corrupt an test XML file when copying it
    When an XML file is added as a test message for a mapping project, the Map Designer can corrupt this file when copying it to the input directory, so that it is no longer valid XML.
    This bug has been fixed.
    • Internal - DCL#9204
    Some large SXD files cannot be loaded into the Map Designer
    Some large SXD files cannot be imported into either the Map Designer or Rhapsody. The problem never occurs with small SXD files, and some large files still load correctly as well.
    A bug in the loading mechanism could cause a failure on some but not all large files. This bug has been fixed.
    • Internal - DCL#9128
    Submap name could be reset while editing its definition
    The name of a submap can be automatically reset to a default value when new parameters are added to it, causing existing mapping code to fail to compile.
    This bug has been fixed.
    • Internal - DCL#5569
    Error numbers are not displayed when an XSD import fails
    The Symphonia help files contain a lot of information about possible importer errors and warnings when importing W3C XML schemas. However, only the error descriptions are output to the Map Designer output window, not the error numbers. This makes it very difficult to find them in the help files.
    Importer error numbers are now displayed in the Map Designer output window.
    • Internal - DCL#10423
    Cannot import an XSD where the any type is extended
    The W3C XML schema specification allows extension of the any type, even this is not strictly required. However, the Map Designer would refuse to import schemas where the any type was extended.
    This restriction has been removed, so that it is now possible to extend the any type.
    • Internal - DCL#10419
    The same toolbar icon was used for multiple buttons
    The same toolbar icon was used to view global variables when running a mapping, and to view the entire mapping code.
    This has been fixed so that different icons are now used.
    • Internal - DCL#3080
    Importing some invalid S3Ds into the Map Designer would result in truncated error messages
    Some errors, such as an empty group, would not be displayed correctly in the output window of the Map Designer when importing an invalid S3D. In this case, only the first character of the group name was included in the error message.
    An ANSI/Unicode conversion error meant that the full name was not displayed. This bug has now been fixed.
    • Internal - DCL#5664
    Importing some complex XSDs with lots of interrelated includes and imports fails
    If an attempt was made to import some XSD schemas that used a number of includes and imports that were interrelated, then it was possible for the import to fail complaining that it could not find some types which should have been accessible.
    This bug has been fixed.
    • Internal - DCL#5839
    Map Designer refuses to import XSD schemas containing invalid regular expressions
    The Map Designer would refuse to import XSD schemas that incldued any regular expressions, even though the Mapper does not require these to be valid to run.
    This bug has been fixed.
    • Internal - DCL#10690
    Map Designer refuses to import XSD schemas when a fixed value is overridden incorrectly
    A complex type extension can override the user of an attribute with a fixed value, possibly setting its use to be prohibited. However, the Map Designer refused to import the schema if the fixed value was not explicitly set to the same value as the original declaration. While this is technically invalid, it should not prevent the schemas from importing.
    This bug has been fixed.
    • Internal - DCL#10693

    Mapping Engine

    SymptomResolutionReference
    Double separator not used for decimal points in the Mapper
    The double separator is not used when converting decimal values to strings in the Mapper.
    The double separator is now used by default when converting decimal values in the Mapper.
    • Internal - DCL#9486
    Mapping Engine disallows custom XML element names containing a full stop
    Using type casting it is possible to add additional XML elements into the output message during a mapping. However, the mapping engine would disallow any element names containing a full stop, even though this is a valid character.
    Full stop characters are now allowed in XML element names.
    • Internal - DCL#10385
    C++ and Java Mapping Engines handling string standard functions differently
    An inconsistency between the C++ and Java mapper engine handling of string standard functions meant that some mappings would succeed during testing, but then fail when run using the Java engine (often within Rhapsody). This was due to a different in how the internal C++/Java libraries handle string indexes, specifically negative indexes.
    The Java mapper engine has been changed to match the behaviour of the C++ engine. Negative indexes are now generally treated as the end of the string, and will not cause StringIndexOutOfBoundsExceptions.
    • Internal - DCL#9236
    Threading issues calling stored procedures from the Mapper
    When using the C++ Mapper in a multi-threaded environment with stored procedure calls, race conditions can occur potentially causing transactions to not be committed properly, or in some cases, deadlock can occur.
    There was a threading bug relating to how the Mapper called stored procedures which has now been fixed.
    • Internal - DCL#10530

    XML Designer

    SymptomResolutionReference
    XML DAG Generator mangles the DLL filename
    If the specified filename for the DLL to generate contains multiple full stops, the XML DAG generator ignores everything after the first decimal point, thus generates the DLL in the wrong location.
    This bug has been fixed.
    • Internal - DCL#10411

    Enhancements in Service Pack 2

    Installer

    EDI Engine

    Mapping Engine

    Bug Fixes in Service Pack 2

    EDI Designer

    SymptomResolutionReference
    Export to HL7 2.x Schema does not work for all HL7 versions
    The Export to HL7 2.x Schema option did not work when using a message definition for any HL7 version other than 2.4.
    This bug has been fixed.
    • Internal - DCL#6791
    XSD Generator violates unique partical attribution rule
    Previously each segment had an ANY element at its end, this caused optional fields at the end of the segment to violate the unique particle attribution rule.
    This bug has been fixed.
      XSD Generator incorrectly generates a top level element containing a choice group with all the messages
      The messages.xsd mistakenly contained a choice group which referenced each of the messages. The Map Designer does not show top level elements which are referenced elsewhere in the schema. The choice group was useless and caused none of the messages to be displayed in the Mapper's list of messages.
      The choice group is no longer output into the messages.xsd file.

        EDI Designer Libraries

        SymptomResolutionReference
        Some EDIFACT messages were defined incorrectly
        UNT Segment - NumberOfSegmentsInTheMessage field is defined in the library as a String, but should be a 4 Byte Long. EDIFACT DateTimeOfPreperation was a numeric field when it should have been a string with a validating regular expression. All the required fields had a minimum repeat count of 0 instead of 1.
        These bugs has been fixed.
        • Internal - DCL#7315
        • Internal - DCL#7291
        Missing separators on HIPAA messages
        HIPAA (X12) 4010 was missing separators on both the Transactions and Interchange message sets. HIPAA 4010A was missing separators on the Transactions message set.
        This bug has been fixed.
        • Internal - DCL#7113
        Library wizard displayed the internal HIPAA transactions message set
        HIPAA (X12) 4010 and 4010A showed both the Interchange and the Transactions message sets in the Library Wizard while importing.
        Now the Transactions are hidden to force selection of the required Interchange message set.
          HL7 2.5 DT composites were not fixed width
          The HL7 2.5 DT composites should be marked as fixed width but were not.
          This bug has been fixed.
          • Internal - DCL#6807

          EDI Engine

          SymptomResolutionReference
          Calling setEncodedValue() repeatedly on the same element eventually fails
          If setEncodedValue() was called on a message 330 times it would cause Symphonia to fail on the 331 setEncodedValue() call. Note: this is only an issue if setEncodedValue is called on the same MessageElement tree (i.e.the same message) it is not an issue if setEncodedValue is called 331 times on different messages.
          This bug has been fixed.
          • Internal - DCL#6984
          .NET engine reports validation errors on separator fields
          The .NET engine was incorrectly reporting validation errors on fields designated to hold separators.
          This bug has been fixed.
          • Internal - DCL#7551
          .NET and Java engines do not always check situational rules
          The Java and .NET engines didn't check Situational Rules on fields inside composites. The C++/COM engines did.
          This bug has been fixed.
          • Internal - DCL#7599
          Character range violations do not include the element path
          If a field contained a value outside of the fields Character Range, the validation errors would not contain a path.
          This bug has been fixed.
          • Internal - DCL#6885
          Name value pairs could cause NullPointerExceptions
          Messages with Name Value pairs would cause a NullPointerException for the Java Engine. The .NET engine suffered the same issue but instead of crashing gave incorrect results in some cases when Name Value pairs were used. The C++/COM engines were not effected by this issue.
          This bug has been fixed.
          • Internal - DCL#7743
          Java engine could report InvalidKeyException with incorrect nested exception
          In rare cases the Java Engine would report an InvalidKeyException with a nested NullPointerException instead of a nested UnknownHostException.
          This bug has been fixed.
          • Internal - DCL#6790
          License checks used case-sensitive comparisons for the hostname
          The license checking mechanism used case-sensitive comparisons for the hostname would could potentially cause problems.
          Case-insensitive hostname comparisons are now performed.

            Mapping Engine

            SymptomResolutionReference
            Outputting doubles in XML can have undesired trailing zeros after the decimal point
            When a double is outputted into the XML structure the trailing zeros are removed. If all the numbers to the right of the decimal point are zeros the number outputted will have a trailing decimal point. E.g. '24100.00' is outputted '24100.'
            Changed so that the trailing decimal point is removed in the C++ version. In the Java version output is what Double.toString() outputs which is often different from the C++ version.
            • Internal - DCL#6462

            Map Designer

            SymptomResolutionReference
            Main map changed to submap after updating message structures
            After updating the message structure with multiple inputs, a main map was changed to a submap. This happened if any of the main maps referenced messages that were not defined in the first namespace (but in subsequent namespaces).
            This bug has been fixed.
              Datatypes can become mixed up after updating message structures
              After updating the message structures with multiple namespaces and the same types in the first namespace and another namespace, the types would always refer to the first namespace, even when they should have referred to another one.
              This bug has been fixed.
              • Internal - DCL#7201
              Annotations in an xsd after an include or import will cause the xsd to fail to import
              If importing an xsd schema in the Map Designer that contains an annotation element after an import or an include element the import would fail.
              This bug has been fixed.
              • Internal - DCL#6276
              Some valid complex type derivations were rejected by the importer
              When importing an xsd containing complex type derivations, sometimes the importer would reject valid derivations.
              This bug has been fixed.
                Child attributes not always linked up correctly
                The XPF generation could fail to link up appropriate child attributes of an element in some cases.
                This bug has been fixed.
                  Repeats of a local simple type in a restricted attribute were not allowed
                  Repeats of a local simple type in a restricted attribute were not allowed as Xerces thinks they make a schema invalid.
                  This bug has been fixed.

                    Mapper Service

                    SymptomResolutionReference
                    Preceding junk in a message received by TCP caused the message to be lost
                    If the mapper service sends the test message: 'leading junk[0B]message[1C][0D]trailing junk', the presence of the leading junk caused the Mapper Service to garble the message.
                    The wrapping has been fixed so that preceding junk is now ignored and still allows the message to be processed correctly.
                    • Internal - DCL#7150

                    Enhancements in Service Pack 1

                    EDI Message Designer

                    EDI Explorer

                    EDI Engine

                    Mapping Engine

                    Map Designer

                    Bug Fixes in Service Pack 1

                    Installer

                    SymptomResolutionReference
                    Long filename registration can be lost
                    The long filename registration can be lost when double-clicking on an MDF or S3D, resulting in old DOS 8.3 filenames being used subsequently.
                    This was due to incorrect filename registration in the installer and has now been fixed.
                    • Internal - DCL#3393
                    • Internal - DCL#5593
                    Installer hangs when installing with Visual Studio .NET 2002 present
                    The Symphonia installer would hang early on in the installation process if Visual Studio .NET 2002 was installed.
                    This bug has been fixed.

                      EDI Message Designer

                      SymptomResolutionReference
                      Assemblies generated by the .NET Component Generator could throw FormatExceptions when retrieving a value
                      Assemblies generated by the .NET Component Generator would throw FormatExceptions when retrieving the value from an empty numeric primitive field.
                      A zero is now returned instead when the value is empty and no default value is defined.
                        Cannot generate .NET assembly with variable type fields and multiple message sets
                        The .NET Component Generator would fail to generate assemblies that used both variable type fields and multiple message sets.
                        This bug has been fixed.
                          EDI Message Designer hangs when generating Java classes
                          In some circumstances the EDI Message Designer would hang while generating the Java classes for a message definition.
                          This bug has been fixed.
                            Clicking on the hyperlink to edit a syntax rule does not work
                            Clicking on the hyperlink to edit a syntax rule did not work, so syntax rules could only be edited using the formal syntax.
                            This bug has been fixed.
                              EDI Message Designer hangs while editing the Message Type fields
                              In some rare circumstances, EDI Message Designer would hang and consume all CPU while editing the Message Type fields.
                              This bug has been fixed.
                                Incorrect required flags in some X12 libraries
                                Some of the X12 libraries had the required/optional flags inverted.
                                This bug has been fixed.
                                  Typos in some HIPAA validation tables
                                  Two HIPAA validation tables had a typo: Tbl_837PRO_2300_CLM_05_1 and Tbl_837PRO_2400_SV1_05. Both tables contained an 82 instead of an 81.
                                  This bug has been fixed.
                                    Invalid allocation size when using Gap Compliance plugin
                                    "Invalid allocation size" bugs that caused composer to crash could occur when double clicking on a list in the Gap Compliance Plugin. (The Gap Compliance Plugin is a custom plugin created for McKesson).
                                    This bug has been fixed.
                                      EDI Message Designer crash when the main window is very small
                                      The EDI Message Designer would sometimes crash when open a window when the main window is small.
                                      This bug has been fixed.
                                      • Internal - DCL#5024
                                      DAG Generation would sometimes fail
                                      DAG generation fails on composites that only contain a single field when the field is also a composite.
                                      This bug has been fixed.
                                        The force count update engine option did not work correctly with minimise changes
                                        The forceCountUpdate engine option was using the counts that would have been used if MinimizeChanges was not on. Since MinimizeChanges is on, missing segments and fields will not automatically be created, so the counts need to not include the missing segments.
                                        This bug has been fixed.
                                        • Support Tracker #2714
                                        HL7 libraries used NM datatype for components of DTTM composites
                                        There was a minor issue with the HL7 message libraries: DT, TM, DTTM and TS composites use NM (floating point) type for the date time components (year, month, day, hours, minutes...).
                                        This revision changes these components to use integers instead of floats. This should make mapping of these fields much cleaner as DoubleToInt conversions will no longer be required.
                                          Wildcard ACKs do not always work
                                          Wildcard ACKs only work when the Message Type fields point at actual fields instead of composites.
                                          This revision changes the HL7v2.1, 2.2 and 2.3 (but not 2.3.1 or greater) messages to have individual message type fields instead of composites so wild ACKs will work on the older HL7 messages.

                                            EDI Explorer

                                            SymptomResolutionReference
                                            Autofilling a message in a test set does not work
                                            A message cannot be autofilled if it is part of a test set.
                                            This bug has been fixed.
                                            • Internal - DCL#5104
                                            Explorer can crash when test set ignore paths are used
                                            In some circumstances, EDI Explorer can crash when using ignore paths for a message definition inside a test set.
                                            This bug has been fixed.
                                            • Internal - DCL#5922
                                            Manual acknowledgments has no default ACK codes
                                            When manual acknowledgments are configured in EDI Explorer, it has an empty list of possible ACK codes by default.
                                            The list now includes the normally used ACK codes of AA, AR, and AE.

                                              EDI Engine

                                              SymptomResolutionReference
                                              Threading problem when using regular expressions
                                              The Java EDI engine uses the Jakarta regular expression library for processing regular expressions, but is not thread-safe. Consequently there was threading bug in the Symphonia Java EDI engine that would normally manifest itself by message, segment, or message item match lists failing to match correctly.
                                              This bug has been fixed by making the relevant calls thread-safe.
                                                Java engine fails to parse messages larger than 25MB
                                                When parsing from a stream in the EDI Java Engine it was possible for the MessageFactory to fail to parse parts of the message when the message was over 25MB.
                                                This was due to the caching mechanism of the stream and has now been fixed.
                                                  Fields with an empty validation table would always cause validation errors
                                                  It was possible to configure fields to validate against a validation table and then remove all entries from the table, thus causing the field to fail validation every time.
                                                  Empty validation tables are now ignored by the engine.
                                                  • Internal - DCL#5405
                                                  Could not change the value of a null field
                                                  Once a field value was set to null, it was impossible to change it by simply setting a new value.
                                                  This bug has been fixed.
                                                    Memory leak in EDI COM engine
                                                    A memory leak would occur in the EDI COM engine if an invalid message path was passed to the GetElementAt() method.
                                                    This bug has been fixed.
                                                      Junk after a composite field of a specific length caused parsing to fail
                                                      If there was junk after a composite field that the engine was configured to ignore, and that junk had a length of 81, 82, or 83 characters, it would cause parsing to fail.
                                                      This bug has been fixed.
                                                        Java engine was built with JDK 1.4
                                                        The Java engine was built with JDK 1.4 and would not run on JRE 1.3.
                                                        This bug has been fixed.

                                                          Mapping Engine

                                                          SymptomResolutionReference
                                                          Extracting doubles from EDI messages could fail on non-English systems
                                                          Extracting doubles from EDI messages was locale dependent, as it used the system value for the decimal character.
                                                          This has been changed to use the decimal separator from the EDI message when it is present. When a decimal separator was not defined on the message the system locale is used as a default.
                                                            Error when concatenating empty strings or elements
                                                            If two empty strings (or message elements containing empty strings) were concatenated together in the mapping code, the result would be an empty element (with no type) rather than an empty string. This would cause an error in some cases when passing the result to an external function or assigning it to particular components.
                                                            This bug has been fixed.
                                                              Calling setInput(byte[]) can cause a ClassCastException
                                                              Ff setInput(byte[]) was used for the old XML, it would run both the old and new XML, causing a ClassCastException.
                                                              This bug has been fixed.
                                                                Java engine was built with JDK 1.4
                                                                The Java engine was built with JDK 1.4 and would not run on JRE 1.3.
                                                                This bug has been fixed.

                                                                  Map Designer

                                                                  SymptomResolutionReference
                                                                  Automation schema was technically invalid
                                                                  The XML schema used for automating the Map Designer was incorrect.
                                                                  The xsd:all elements have been replaced with xsd:sequence elements to resolve this.
                                                                    Incorrect header files provided for building custom external functions
                                                                    The wrong version of the header files for writing custom external functions were released with the Mapper.
                                                                    The correct versions are now included in this release.
                                                                      Map Designer automatically switches to the test results even if the test was cancelled
                                                                      When cancelling debugging a mapping, the Map Designer would automatically switch back to the test results window even though there are no results to show.
                                                                      This bug has been fixed.
                                                                      • Internal - DCL#3807
                                                                      Auto-mapper can create invalid type casts
                                                                      The auto-mapper is able to use the explicit type casts supported by the Symphonia Mapper, but in some cases would do so incorrectly.
                                                                      This bug has been fixed.
                                                                      • Internal - DCL#5318
                                                                      Symphonia DAG objects could not be imported into the Map Designer
                                                                      Symphonia DAG objects contain all the EDI message information, but could not be imported into the Map Designer as an input or output definition, even though they could previously.
                                                                      This bug has been fixed.
                                                                      • Internal - DCL#5262
                                                                      Up arrow in debug variables windows does not always work
                                                                      There are hidden rows in the variables windows to handle expanding and contracting of complex types. When hidden rows were present, the up arrow did not always work correctly.
                                                                      The up arrow now works even if hidden rows are present.
                                                                      • Internal - DCL#5624
                                                                      Accelerator keys do not work if the output window has the focus
                                                                      Accelerator keys allow common actions to be performed quickly (e.g. Ctrl+S to Save) but did not work correctly when the output window had the input focus.
                                                                      This bug has been fixed.
                                                                      • Internal - DCL#3768

                                                                      Features in Symphonia 3.8

                                                                      W3C XML support within the Mapper (includes support for HL7 v3)

                                                                      The Mapper will allow W3C XML schema to imported directly into the Symphonia Map Builder, and treated the same as any other message definition within the Mapper. As HL7 v3 is defined using W3C XML schema, the Mapper will support the mapping of HL7 v3 messages to or from other EDI or XML messages.

                                                                      Symphonia EDI .NET Engine

                                                                      A version of the Symphonia dynamic EDI engine has been written completely in C# for those wanting to use a pure .NET component. This component has a similar interface to the existing C++/COM/Java dynamic engines, but with appropriate changes to fit in with .NET API guidelines.

                                                                      Symphonia .NET Component Generator

                                                                      Symphonia will be able to dynamically generated .NET components with a static interface corresponding to the message definition being used. This is a .NET version of the Dynamic ActiveX Generation introduced in a prior version of Symphonia. This feature will allow the user to generate a static interface around the Symphonia .NET Engine, making it very easy to use, and greatly reducing development time.

                                                                      Support for NCPDP v5.1

                                                                      A new type of segment called a 'Tagged Segment' has been introduced to support the NCPDP v5.1 standard. This type of segment provides some special handling for NCPDP repeating fields and for the identification of NCPDP fields, allowing NCPDP v5.1 to be processed correctly.

                                                                      Type casting in the Mapper

                                                                      The Mapper will support type casting between similar or identical datatypes, therefore allowing more generic mapping code to be written. This is particularly useful when the message definition has lots of identical datatypes which can be treated in the same way (this is often the case for XML definitions).

                                                                      Symphonia Map Builder automation via XML command file

                                                                      The Symphonia Map Builder application can be passed an XML file on the command line containing a number of commands to execute. This allows the user to automate the updating of message definitions and recompilation of the mapping definition. This feature has mainly been added for Rhapsody to allow the Administrator to easily create new mapping definitions, automap them, and then compile them.

                                                                      Improved handling of HL7 ACKs

                                                                      HL7 defines over 100 acknowledgment messages: one for each trigger event that can occur (for example, ACKA01, ACKA01...). However, each of these messages has exactly the same structure as the basic ACK message, even though Symphonia thinks that they are different types. Symphonia now supports a wildcard message matching mechanism, allowing the basic ACK message to match any other type of ACK if that particular acknowledgment type is not present in the message definition. This means that the number of messages required in the message definition, and the development effort required can potentially be significantly reduced.

                                                                      Improved support for CSV files

                                                                      EDI Message Designer will introduce a new basic datatype called 'Quoted String' which has been designed especially for handling comma-separated value messages (such as a CSV file exported from Microsoft Excel). This quoted string datatype can use double-quotes to surround field values, so that the values are handled correctly even if they contain commas.

                                                                      Improved support for batch messages in Explorer

                                                                      Explorer will be able to import a file containing multiple messages much more easily that it could be done previously. The Import Batch Message command allows the user to specify how the messages within the file are separated (for example, the messages are separated by a blank line). Explorer will then parse each message in turn and show each one in a separate window.