Skip to content

Releases: Synergex/CodeGen

CodeGen 5.7.1

24 Mar 05:54
Compare
Choose a tag to compare

CodeGen Release Notes

  • We extended the experimental support for TypeScript generation by adding a new method loop expansion token <METHOD_RETURN_TSTYPE> and a new parameter loop expansion token <PARAMETER_TSTYPE>.

  • We added a new parameter loop expression <IF FIRST_INSTANCE_OF_STRUCTURE2> that allows you to detect the first time a structure is referenced by any parameter in the current interface.

  • We added two new command line options -mexclude and -minclude that can be used in conjunction with the -smc and -interface options to either exclude or include methods from an interface that are to be processed by interface loops.

  • We modified the <INTERFACE_METHODS> and <INTERFACE_NAME> tokens so that they may also be used in parameter loops.

  • This version of CodeGen was built with Synergy/DE 11.1.1g and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.9

12 Mar 03:53
Compare
Choose a tag to compare

CodeGen Release Notes

  • We added a new custom token <HARMONYCORE_PARAMETER_SAMPLE_DATA> to the Harmony Core extensions assembly.

  • We added a new custom token <HARMONYCORE_BRIDGE_PARAMETER_DATAOBJECT> to the Harmony Core extensions assembly.

  • We altered the implementation of <HARMONYCORE_BRIDGE_PARAMETER_DEFINITION> which was preciously not dealing correctly with array and collection parameters.

  • We removed the lower-case option from the <PARAMETER_DEFINITION> token.

  • We added a new token <PARAMETER_DEFINITION_NOARRAY>.

  • We added a new tweak named PARAMDEFSTR which causes the <PARAMETER_ATTRIBUTE>, <PARAMETER_DEFINITION>, <PARAMETER_DEFINITION_NOARRAY>, <PARAMETER_STRUCTURE>, <PARAMETER_STRUCTURE_NOPLURAL> and <PARAMETER_STRUCTURE_PLURAL> tokens to prefix structure names with "STR_".

  • We corrected an issue in the recently introduced <PARAMETER_ATTRIBUTE> token which was generating incorrect output for some types of fields.

  • We corrected an issue in the <PARAMETER_DEFINITION> token which was generating incorrect output for some types of fields.

  • We corrected an issue with the <SEGMENT_SPEC> token that was previously producing incorrect results for boolean fields.

  • We added experimental support for generating TypeScript code by adding the field loop tokens <FIELD_TSDEFAULT> and <FIELD_TSTYPE>. More work is required before these new capabilities will be fully effective.

  • We undertook some performance analysis work in the area of code generation from Synergy Method Catalogs, and as a result reworked some code to improve performance in this area. There is still more to be done, but generating code from method catalogs is now noticeably faster in most cases.

  • This version of CodeGen was built with Synergy/DE 11.1.1g and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.8

21 Feb 01:36
Compare
Choose a tag to compare

CodeGen Release Notes

  • We added a new experimental feature which allows iterative processing of group fields within field loops, via the special field loop token <GROUP_EXPAND>.
  • We added support for the YYYMMDDHHMISSUUUUUU date format for the <METHOD_RETURN_DATE_FORMAT> and <PARAMETER_DATE_FORMAT> tokens.
  • We added a new method loop token <METHOD_ATTRIBUTE> and a new parameter loop token <PARAMETER_ATTRIBUTE>.
  • We added several new output case variants of the <METHOD_NAME> and <PARAMETER_NAME> tokens.
  • We addressed an issue where when using the -smcstrs option in conjunction with the -interface option, all structures defined in the method catalog would be processed. Now only structures referenced my methods in the specified interface are processed. If no structures are referenced by the interface a warning is issued.
  • We corrected several issues with the output from the <PARAMETER_DEFINITION> token.
  • We added a new command-line option -tweaks which allows us to easily add support for things that allow you to make small customizations, or tweaks, to the way that CodeGen operates. The first tweak is called SQLNAMENO$ and allows tiy to customize the output of the <FIELD_SQLNAME> token by suppressing any $ characters that may be present in the name of a field.
  • We added a new custom structure expression <IF GLOBAL_ENTITY> to the Harmony Core extensions assembly.
  • This version of CodeGen was built with Synergy/DE 11.1.1g and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.7

11 Feb 03:45
Compare
Choose a tag to compare

CodeGen Release Notes

  • We added a new command-line option -iloop that can be used in conjunction with the -smc option to constrain the interfaces that are processed by interface loops to only those specified after the new -iloop option.
  • This version of CodeGen was built with Synergy/DE 11.1.1g and requires a minimum of version 10.1.1 to operate.

CideGen 5.6.6

05 Feb 18:02
Compare
Choose a tag to compare

CodeGen Release Notes

  • We fixed an issue with the field loop expressions <IF EXPLICIT_GROUP>, <IF GROUP> and <IF_IMPLICIT_GROUP> which would previously evaluate to true for explicit group fields, but not explicit group overlay fields. Now it evaluates to true for both.
  • We fixed an issue that could cause the parsing of some complex expressions to incorrectly report a problem parsing <IF IF>.
  • This version of CodeGen was built with Synergy/DE 11.1.1f and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.5

24 Jan 01:07
Compare
Choose a tag to compare

CodeGen Release Notes

  • We added a new command-line option -ncp that suppresses the features of the <STRUCTURE_PLURAL> and <STRUCTURE_NOPLURAL> tokens, making them behave the same as <STRUCTURE_NAME>.
  • We modified the non-Synergy data types returned by field loop expansion tokens such as <FIELD_CSTYTPE>, <FIELD_OCTYPE>, <FIELD_SNTYPE>, <FIELD_SQLTYPE> and <FIELD_VBTYPE>for decimal fields with an overall size of over 18 characters. For example, previously <FIELD_CSTYPE> would return long and now returns decimal. And because any field larger than a D28 will overflow even decimal fields in .NET, we now throw an error if any such field is encountered in a structure.
  • We added a new type of key loop called a <PARTIAL_KEY_LOOP> that can be used to process subsets of the segments of multi-segment keys.
  • We added a new generic expansion token <DAYNAME>.
  • We added new field loop expansion tokens <FIELD_CLASS>, <FIELD_DISPLAY_LENGTH>, <FIELD_GROUP_MEMBER_PREFIX>, <FIELD_GROUP_STRUCTURE>, <FIELD_INPUT_JUSTIFICATION>, <FIELD_OVERLAY_FIELD>, <FIELD_OVERLAY_OFFSET>, <FIELD_OVERLAY_SPEC>, <FIELD_PAINTCHAR>, <FIELD_PAINTFIELD>, <FIELD_POSITION_COL>, <FIELD_POSITION_MODE>, <FIELD_POSITION_ROW>, <FIELD_REPORT_JUSTIFICATION>, <FIELD_SELECTIONS_COL>, <FIELD_SELECTIONS_HEIGHT>, <FIELD_SELECTIONS_ROW>, <FIELD_USER_TYPE>, <FIELD_VIEW_LENGTH>, <PROMPT_POSITION_COL>, <PROMPT_POSITION_MODE> and <PROMPT_POSITION_ROW>.
  • We renamed some field loop expression tokens that were introduced in the previous release, changing <IF UNFLATTENED_GROUP> to <IF GROUP>, <IF UNFLATTENED_EXPLICIT_GROUP> to <IF EXPLICIT_GROUP> and <IF UNFLATTENED_IMPLICIT_GROUP> to <IF IMPLICIT_GROUP>. We apologize if this breaks existing code, but if so that code was written in the last few days and we figured it would not be a big deal!
  • We added new field loop expression tokens <IF GROUP_MEMBER_PREFIX>, <IF GROUP_MEMBER_PREFIX_COMPILER>, <IF GROUP_OVERLAY>, <IF NAME_LINK>, <IF OVERLAY_OFFSET>, <IF PAINTFIELD> and <IF USER_TYPE>.
  • We changed the behavior of the field loop expansion tokens <FIELD_ENUMBASEVAL>, <FIELD_ENUMLENGTH> and <FIELD_ENUMSTEPVAL>. Previously these tokens would insert 0 for unenumerated fields. Now nothing is inserted for unenumerated fields.
  • We changed the behavior of the field loop expansion tokens <FIELD_SELECTIONS> and <FIELD_SELECTIONS1>. Previously these tokens would insert "" for fields with no selection list values. Now nothing is inserted for fields with no selection list values.
  • We added a new structure expansion token <STRUCTURE_TYPE>.
  • We added a new key loop expression <IF PRIMARY_KEY>.
  • We added a new command line option -pa which causes array fields not to be expanded into individual fields.
    WARNING: This is an experimental feature and may currently cause unexpected side effects with some expression tokens. Please let us know if you encounter anomalies.
  • We enabled code generation for structure fields, enum fields and binary fields. Code generation for these types of fields was previously artificially blocked.
    WARNING: This is an experimental feature. While the <FIELD_SPEC>and other basic field loop tokens will behave as intended, some tokens may not behave as expected with these types of fields. Please let us know if you encounter anomalies.
  • We removed the field loop expression tokens <IF COERCEBOOLEAN> and <IF NOCOERCEBOOLEAN>. There is a slight chance that this could break existing templates, in which case you can use <IF COERCE_BOOLEAN> and <IF NOT COERCE_BOOLEAN> as direct replacements.
  • We fixed an issue that was causing a failure during the processing of very complex expressions.
  • We fixed an issue that could cause counter tokens to be incorrectly processed as expressions.
  • We addressed a bug that was present in all versions of the RepositoryAPI whereby the RpsField.PaintCharacterSpecified property actually indicated whether the field was a paint field, not that a custom paint character was specified. This has now been corrected, and we have added a new property RpsField.PaintField (boolean).
  • We moved the implementation of several early Harmony Core specific expansion and expression tokens into the Harmony Core Extensions library.
  • We started what will be an ongoing process to reformat and improve this documentation, hopefully making it easier to use, and also easier to maintain. The most significant change is that expansion tokens were previously documented on individual pages within an overall category, but in the future will be documented on a single page for each category (for example all field loop expansion tokens). We also started to use manually entered and meaningful topic IDs, which will be a positive change when using the on-line documentation at https://codegen.synergex.com because URL's will now be based on meaningful names rather than generic topic numbers.
  • This version of CodeGen was built with Synergy/DE 11.1.1f and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.4

16 Dec 23:25
Compare
Choose a tag to compare

CodeGen Release Notes

  • In addition to the existing command line option -g i that prevents the flattening of IMPLICIT groups into individual fields, we added a new command line option -g e that prevents the flattening of EXPLICIT groups. An implicit group is a group that has its members (fields and/or other groups) defined by another repository structure, where an explicit group is a group that has locally defined members.
  • We added new field loop expression tokens <IF UNFLATTENED_GROUP>, <IF UNFLATTENED_EXPLICIT_GROUP> and <IF UNFLATTENED_IMPLICIT_GROUP>.
  • We added a new structure expansion token <STRUCTURE_FILES> that evaluates to the number of repository file definitions that the current structure is assigned to.
  • This version of CodeGen was built with Synergy/DE 11.1.1f and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.3

04 Dec 02:14
Compare
Choose a tag to compare

CodeGen Release Notes

  • We added a key loop expression token named <IF LITERAL_SEGMENTS> that indicates whether the key being processed in a key loop includes one or more literal value segments.
  • This version of CodeGen was built with Synergy/DE 11.1.1f and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.2

09 Nov 21:07
Compare
Choose a tag to compare

CodeGen Release Notes

  • We added a parameter loop expansion token named <HARMONYCORE_BRIDGE_PARAMETER_DEFINITION> to the Harmony Core Extensions library.
  • This version of CodeGen was built with Synergy/DE 11.1.1f and requires a minimum of version 10.1.1 to operate.

CodeGen 5.6.1

30 Oct 22:25
Compare
Choose a tag to compare

CodeGen Release Notes

  • We added a new field loop expression <IF RELATION> that can be used to determine whether the current field is associated with the only segment of a relations FROM key. In other words, whether there is a direct outbound relation from the field to another structure.
  • We added a new generic expression <IF ENUMS> that can be used to determine whether any enumerations are defined in the repository.
  • We changed the way that CodeGen behaves while processing various types of loops. Previously, if certain types of loop had no supporting data, then an error would be generated and code generation would fail. For example, if a key loop was encountered when processing a structure that had no keys, code generation would fail. Now code generation will continue, and the loop in question will be ignored. The loops affected by this change are key loops, unique key loops, alternate key loops, unique alternate key loops, primary key blocks, unique key blocks, relation loops, enumeration loops, structure enumeration loops, and file loops.
  • We added a new command line option -elf which overrides the behavior described in the previous item, reverting to the original behavior of failing if a loop is encountered with no supporting data.
  • This version of CodeGen was built with Synergy/DE 11.1.1f and requires a minimum of version 10.1.1 to operate.