Some of our apps have hundreds of pages and other components, so I used the APEX_EXPORT API to create a utility app that lets our developers export just the components they've been working on recently so they can commit their changes to our version control system.
Now that we've upgraded from APEX 19.2 to APEX 23.2 we'd like to use the new YAML exports instead of the SQL ones as it's much better for tracking changes. So in my call to APEX_EXPORT.GET_APPLICATION I've added p_type to specify that's what I want:
l_files := apex_export.get_application(
p_application_id => :P21_APP_ID ,
p_split => true,
p_components => v_main_components,
p_with_supporting_objects => 'Y',
p_type => 'READABLE_YAML'
);
v_main_components here is an apex_t_varchar2 array of the components we want to export, with each element in type:name
format, as per the documentation (https://docs.oracle.com/en/database/oracle/apex/23.2/aeapi/GET_APPLICATION_Function.html)
Without setting p_type, we get just the components we want, but as SQL files. Setting p_type to ‘READABLE_YAML’ should export the same components as YAML files. However, it exports all the components in the application instead, which for large apps obviously takes up quite a bit more time, space and system resources.
How can I go about exporting only the components we specify, as YAML files? The documentation for apex_export.get_application seems to suggest the API should do this, but it doesn't seem to; am I doing something wrong?
If this is a bug, is it fixed in 24.1?