Repository navigation
Add packages 11-14 (RAP file upload, RAP actions, Excel & e-mail, Adobe Forms) and a launchpad URL sample - #100
Merged
Merged
Conversation
A new package with its own floor (ABAP Platform 2025): the business object Z2UI5_R_SMPS_FIL takes a file through its static action uploadFile, whose deep parameter (abstract entities Z2UI5_A_SMPS_FILE_UPLOAD and Z2UI5_A_SMPS_FILE_STREAM, @Semantics.largeObject) carries content, MIME type and name. Z2UI5_CL_SMPS_APP_016 picks the file with the z2ui5 FileUploader, calls the action with EML, and lists, downloads and deletes the stored files. The package README also explains why the file size limit is the same as for Fiori Elements: OData V4 JSON carries Edm.Binary as base64 as well. Overview app, packages.json, both README tables, SAMPLES.md and the two catalogue files are updated; the package count in the prose goes from ten to eleven. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NNqpKVX6ESgcLVqeWXeHc5
12 - RAP Actions & Permissions: the business object Z2UI5_R_SMPS_REQ with instance feature control, an action with a parameter, an instance and a static factory action, a default function, a determine action and a projection. Samples Z2UI5_CL_SMPS_APP_017 to _020: GET PERMISSIONS drives the buttons, parameters travel in %param, a determine action validates while the user types, and the handler tells the two contracts apart with cl_abap_behv_aux. GET PERMISSIONS sits in Z2UI5_CL_SMPS_PERM_REQ, which is listed in noIssues because abaplint does not parse the statement. 13 - Excel & E-Mail: Z2UI5_CL_SMPS_XLSX wraps the XCO XLSX library; Z2UI5_CL_SMPS_APP_021 reads an uploaded .xlsx, _022 exports a table as .xlsx, _023 sends it as a mail attachment with cl_bcs_mail_message. 14 - Adobe Forms: Z2UI5_CL_SMPS_APP_024 renders forms to PDF through FP_JOB_OPEN and the generated function module, one as a PDF download, several as one ZIP. 09 - Launchpad: Z2UI5_CL_SMPS_APP_025 builds the URL of a launchpad app, through cl_lsapi_manager (called by name, signature read with RTTI) where the system has it, as an intent URL of its own where it does not. Overview app, packages.json, both README tables, the package READMEs, SAMPLES.md and the two catalogue files are updated; Regenerate Demo Data in the overview also fills the request business object. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NNqpKVX6ESgcLVqeWXeHc5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four new packages, each with its own release floor and its own generated branch, plus one sample in
09.New packages
11RAP File UploadZ2UI5_R_SMPS_FIL, the abstract entitiesZ2UI5_A_SMPS_FILE_UPLOAD/_FILE_STREAM(@Semantics.largeObject), static actionuploadFilewith a deep parameter016: FileUploader → base64 →EXECUTE uploadfile, list, download, delete12RAP Actions & PermissionsZ2UI5_R_SMPS_REQwith instance feature control,rejectwith a parameter, factory actioncopyRequest, static factory actioncreateRequest, default functionGetDefaultsForCreate, determine actioncheckRequest, projectionZ2UI5_C_SMPS_REQ017GET PERMISSIONS drives the buttons ·018parameters, factory actions, defaults in popups ·019validate while typing via the determine action, without saving ·020one BO, two contracts,cl_abap_behv_aux13Excel & E-MailZ2UI5_CL_SMPS_XLSXwraps the XCO XLSX library021read an uploaded .xlsx ·022export a table as .xlsx ·023send it as a mail attachment withcl_bcs_mail_message14Adobe Forms024: forms rendered to PDF throughFP_JOB_OPENand the generated function module, one as a PDF, several as one ZIPPlus
09Launchpad:025builds the URL of a launchpad app viacl_lsapi_manager(called by name, signature read with RTTI) where the system has it, and as an intent URL of its own where it does not.The overview app,
.github/packages.json, both README tables, the package READMEs,SAMPLES.md,catalogue.jsonandcatalogue-derived.jsonare updated. Regenerate Demo Data also fills the request BO. The package count in prose goes from ten to fourteen.Floors
1112cl_abap_behv_aux; the rest is older13cl_bcs_mail_message14One deliberate exception
abaplint cannot parse
GET PERMISSIONSat any language version. The statement sits alone inZ2UI5_CL_SMPS_PERM_REQ, which is added tonoIssuesinabaplint.jsoncthe same way the RAP event handler of05is. The app that calls it stays fully checked.Verification
npm run check: green (abaplint, abap2UI5 linter including the render of every view, overview, keywords, titles, abapdoc, SAMPLES.md, catalogue, app-rules, ATC, prose, derived, released-API).build-package-branch.mjsin a throwaway copy and linted at its own release:09at v740sp08,14at v750, and11/12/13at v757.09/11/12/13were also linted at the ABAP Cloud language version. All clean.%paramin11(_streampropertiesas a structure for[1]);12and13;cl_lsapi_manager(the sample falls back to its own URL if it differs);024with a form of your own, because there is no shipped default form.Generated by Claude Code