From 4a22fbcffa2ec37db3ce581dbba8cc02a9a5c8b7 Mon Sep 17 00:00:00 2001 From: HKX BDDEV001 Date: Fri, 7 Aug 2026 07:50:10 +0900 Subject: [PATCH] Fix the CURR-column download dump in ZCMRUPDATE_ADDON_TABLE do_download's convert_to_external passed max_number_of_digits = 23 to BAPI_CURRENCY_CONV_TO_EXTERNAL, but that parameter exists only on the _TO_INTERNAL twin (verified against the live FM interface on S4D, 2026-08-07). An unknown parameter raises CALL_FUNCTION_PARM_UNKNOWN, a runtime error the surrounding CATCH cx_root cannot intercept, so downloading any table with a CURR column short-dumped. The compiler syntax check does not catch this (verified with a minimal repro); only an FM-signature check does. Minimal fix: drop the parameter -- the _TO_EXTERNAL direction needs no digit cap. The upload path's _TO_INTERNAL call keeps it (mandatory there). No selection-screen fields renamed: sap_update_addon_prog.vbs drives RB_UP/RB_DOWN by GUI field id. Deployed systems carry the same bug: the program on S4D (pkg ZCMDEVAI) is byte-identical to this reference copy, so each system needs a redeploy via /sap-dev-init (or /sap-se38 update of ZCMRUPDATE_ADDON_TABLE) to pick the fix up. Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 18 ++++++++++++++++++ .../references/ZCMRUPDATE_ADDON_TABLE.abap | 7 ++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d38e2d1..e2eb4b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,24 @@ All notable changes to this project will be documented in this file. ### Fixed +- **`ZCMRUPDATE_ADDON_TABLE` short-dumped on downloading any table with a CURR + column.** The `convert_to_external` CURR branch passed + `max_number_of_digits = 23` to `BAPI_CURRENCY_CONV_TO_EXTERNAL`, but that + parameter exists only on the `_TO_INTERNAL` twin (verified against the live + FM interface on S4D, 2026-08-07) — evidently copied from the upload branch, + where it is legitimate (mandatory, even). An unknown parameter raises + `CALL_FUNCTION_PARM_UNKNOWN`, a runtime error the surrounding + `CATCH cx_root` cannot intercept, so the first CURR field `do_download` + formatted dumped the run. The parameter is simply removed — the + `_TO_EXTERNAL` direction needs no digit cap; the upload path's + `_TO_INTERNAL` call is untouched, and no selection-screen field was renamed + (`sap_update_addon_prog.vbs` drives them by GUI field id). The compiler + syntax check does NOT catch this defect class (verified with a minimal + repro) — only an FM-signature check (`/sap-check-abap` `fm` dimension) + does. **Redeploy required**: the program `/sap-dev-init` deploys is + byte-identical to this reference copy, so every system carries the dump + until `ZCMRUPDATE_ADDON_TABLE` is redeployed via `/sap-dev-init` (or a + `/sap-se38` update). - **Every safety-gate `assert` (and every other caller that omits the new `ResolvedVia` out-parameter) refused with a false `no_profile` under Windows PowerShell 5.1.** The RFC target-stamp work (PR #9) declared the parameter as diff --git a/plugins/sap-dev-core/skills/sap-update-addon/references/ZCMRUPDATE_ADDON_TABLE.abap b/plugins/sap-dev-core/skills/sap-update-addon/references/ZCMRUPDATE_ADDON_TABLE.abap index 634a019..617feae 100644 --- a/plugins/sap-dev-core/skills/sap-update-addon/references/ZCMRUPDATE_ADDON_TABLE.abap +++ b/plugins/sap-dev-core/skills/sap-update-addon/references/ZCMRUPDATE_ADDON_TABLE.abap @@ -723,11 +723,12 @@ CLASS lcl_table_util IMPLEMENTATION. lv_curr_e = iv_currency. TRY. lv_amt_int = lv_val. + " No MAX_NUMBER_OF_DIGITS here: the parameter exists only on the + " _TO_INTERNAL twin; passing it dumps (CALL_FUNCTION_PARM_UNKNOWN). CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_EXTERNAL' EXPORTING - amount_internal = lv_amt_int - currency = lv_curr_e - max_number_of_digits = 23 + amount_internal = lv_amt_int + currency = lv_curr_e IMPORTING amount_external = lv_amt_ext EXCEPTIONS