Skip to content

Releases: greltel/abap-form-translator

Release v2.0.0

Choose a tag to compare

@greltel greltel released this 17 Sep 14:05
30b6daf

Changelog

All notable changes to this project are documented here. The format follows
Keep a Changelog; versions follow
Semantic Versioning.

[2.0.0] - 2026-09

First release built as ABAP for Cloud Development. Breaking for existing
installations — read the upgrade notes.

Added

  • Authorization object ZFORMTRA (activity only) with CDS access control on
    every view and a global authorization check in the behavior implementation.
    Denied operations report messages 008 and 009.
  • ZIF_FORM_TRANS_AUTHORITY / ZCL_FORM_TRANS_AUTHORITY: the authority check
    behind an interface, injected into the handler through a local factory.
  • ZIF_FORM_TRANS_USER_CONTEXT / ZCL_FORM_TRANS_USER_CONTEXT: the logon
    language behind an interface; ZCL_FORM_TRANSLATION takes it as an optional
    constructor parameter, so the "no language given" path is testable.
  • Direct handler tests for the global authorization, every validation, the
    feature control and the Copy Language action (23 tests on the behavior pool).
  • Off-stack gate hardened: abaplint syntax check against the released ABAP Cloud
    API (2305 snapshot), Clean ABAP rules, a CI guard for the #CHANGE_SET
    grouping of the Copy Language button, Dependabot.

Changed

  • All objects carry ABAP language version ABAP for Cloud Development; the
    abapGit repository sets cloudDevelopment.
  • Minimum release is SAP S/4HANA 2023 (ABAP 7.58).
  • Validation validateUniqueKey reads the persisted keys with one SELECT per
    request instead of one per instance.
  • Copy Language messages show the ISO 639 code of the language (EL, DE)
    instead of the internal key.
  • ZCL_FORM_TRANS_RULES=>check_copy_request takes a copy_request structure
    instead of six scalar parameters.
  • The behavior implementation of the Copy Language action is split into
    queue_copies, report_rejection and create_drafts.
  • Message texts in the tests use string literals in backticks; internal tables
    are filled with INSERT … INTO TABLE throughout.

Removed

  • Dead exception handling around the logon language and the XCO language
    formatting.
  • Four EML-driven tests of the save sequence that the direct handler tests
    cover; two smoke tests remain.

Upgrade notes

  • Move the objects into a package with ABAP language version
    ABAP for Cloud Development (or set the abapGit option ABAP Language
    Version
    to Undefined to keep a standard package).
  • Every user of the app needs ZFORMTRA: 03 to display, 01/02/06 to
    maintain. Without a role the list is empty and create is denied.
  • Callers of ZCL_FORM_TRANS_RULES=>check_copy_request (unlikely outside this
    package) have to pass a copy_request structure.
  • The protected type ZCL_FORM_TRANSLATION=>translations became a sorted
    table with a unique key on the field name.

[1.3.0] and earlier

Standard ABAP releases; see the
GitHub releases.

Release v1.3.0

Choose a tag to compare

@greltel greltel released this 29 Jul 09:50
ff36acc

ABAP Form Translator 1.3.0

This release focuses on correctness and test coverage. Two blocking defects in
the RAP maintenance app are fixed, key handling is now case-safe end to end, and
the validation rules were extracted into a dependency-free local class covered
by unit tests.

  1. FIXED

    • Existing translations could not be edited. validateUniqueKey was assigned
      to the Prepare determine action, which ignores create/update trigger
      conditions and also runs for edit drafts. Every Edit found the row's own
      active record and reported it as a duplicate, making the save impossible.

    • Lower case keys silently disabled translation. HANA compares case
      sensitively and OData does not apply the DDIC lower case flag, so a form
      name typed in lower case in the app could never be matched at print time -
      with no error anywhere.

    • Validation messages piled up. Without %state_area, a message from a
      previous Prepare stayed in the message popover even after the user had
      corrected the value.

    • copyToLanguage reported success while copying nothing. Keys that could not
      be read were dropped instead of being reported as failed.

    • MaxLength above the domain range was accepted. The 0-9999 range is only
      enforced on the UI, so requests arriving through OData or the EML API
      bypassed it entirely.

    • copyToLanguage returned a generated %cid. The consumer's own %cid is now
      handed back in mapped, so the UI can correlate the created draft with its
      request.

    • Value help type-ahead did not filter. @Search.defaultSearchElement was
      inert without @Search.searchable at view level.

  2. ADDED

    • validateKeyCase - rejects form and field names that are not upper case,
      with a clear message instead of a silently broken row.

    • lcl_rules - all validation logic extracted into a local class with no RAP,
      draft or persistence dependency.

    • 36 unit tests, up from 9: 15 pure rule tests, 6 RAP integration smoke
      tests, 8 runtime translation tests and 7 covering the buffer, per-field
      fallback and negative caching of get_translations, which previously had no
      coverage at all.

    • @Semantics.text on LanguageName so #TEXT_FIRST renders reliably.

  3. CHANGED

    • Duplicate detection in copyToLanguage now covers persisted rows and rows
      queued within the same batch through one shared rule.

    • Secondary keys are used explicitly on hot internal table reads.

    • ABAP Doc across the behavior pool, including full parameter documentation.

    • README corrected: removed the SM30 / Business Configuration claim (neither
      exists in this repository, and SM30 does not exist in ABAP Cloud) and
      documented that hot-swapped texts become visible on other application
      servers only after buffer synchronisation (~60s), or immediately after
      ZCL_FORM_TRANSLATION=>clear_buffer( ) inside a long-running session.

Release V1.2.0

Choose a tag to compare

@greltel greltel released this 09 Mar 10:20

New RAP Application & Fiori Elements UI

  1. Built a new Fiori Elements maintenance app using ABAP RAP.
  2. Enabled Draft functionality for auto-saving.
  3. Added context-aware Value Helps for Form and Field names.
  4. Added backend validations to prevent negative lengths and empty descriptions.
  5. Added a backend determination to auto-fill the user's logon language.

Class Optimizations (v1.2.0)

  1. Implemented internal memory caching to eliminate redundant database reads.
  2. Removed RTTI overhead.
  3. Added an iv_enable_fallback parameter to default to English if a specific translation is missing.
  4. Replaced legacy system variables with standard ABAP Cloud methods.

Release v1.0.0

Choose a tag to compare

@greltel greltel released this 18 Feb 16:24
a9bcb27

What's Changed

  • First release
  • Add version and minimum release by @mbtools in #1

New Contributors

Full Changelog: https://github.com/greltel/abap-smartform-translator/commits/v1.0.0