Kscope26
Philipp Hartenfeller and Vito Van Hecke
| Aurora
render callback streams the markupShared Components > Plug-ins > Create > From ScratchDice — the label developers seeCOM.UNITEDCODES.DICERegionrender procedure to draw the regionp_plugin — plug-in metadatap_region — this region (id, attributes, …)p_param — render-time contextp_result — tell APEX what you didapex_util.prn renders HTML
Make the plug-in configurable without touching code —
Custom Attributes > Add Attribute.
| static_id | Label | Type | Required | Default |
|---|---|---|---|---|
minimum |
Minimum | Number | Yes | 1 |
maximum |
Maximum | Number | Yes | 6 |
apex.region.createapex_javascript.add_onload_code runs JS once the page is readyp_region.static_id — the region's DOM id, so JS can find itapex_plugin.get_ajax_identifier — the secure handle for AJAX calls back to
this plug-in
apex.region.create(id, { type, refresh }) registers the region with APEXrefresh callback fires whenever something asks the region to refresh
ajax, answers asynchronous requests from the clientapex_json.open_object / write / close_object build the JSON
response
refresh callback →
apex.server.plugin → ajax proc → JSON → DOM update
x01ajax proc reads apex_application.g_x01 and routes with a
CASE
x02–x10 / f01 carry that action's payload
p_first_row, p_max_rows) and a
total row count
next_row + typed getters (get_varchar2, get_number)
apex_exec.close the context — also in your exception handler
apex_plugin_util.get_plsql_expr_result_* evaluates it at runtime —
returning varchar2, number or boolean:APP_ITEM & caching for you
htp.p / htp.prn cap at ~32k characters per callapex_util.prn takes a CLOB and chunks it for
you (escapes HTML by default — mind p_escape)p_clob_01 in the AJAX data and read
apex_application.g_clob_01 in PL/SQL
render proc just emits the tag: <my-dice-region region-id="...">
Scan for speaker evaluation
philipp@united-codes.com