-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Hallo Jürgen,
ich habe nun angefangen die ADC Installation durchzuführen, da aber im Moment unser APEX 23.1 nicht funktioniert, habe ich mich nur mit dem Core Teil beschäftigt.
Die Installation läuft bei mir nicht durch.
Ich bekomme die Fehlermeldung
Fehler
FEHLER in Zeile 1:
ORA-02291: integrity -Constraint (RFLATAU.R_CAP_CAPT_ID) verletzt - Übergeordneter Schlüssel nicht gefunden
ORA-06512: in "RFLATAU.ADC_ADMIN", Zeile 3209
ORA-06512: in Zeile 752
Grund dafür ist, dass der Tabellen Eingtrag für SWITCH in der ADC_ACTION_PARAM_TYPES fehlt.
Hier begebe ich mich aber jetzt auf dem Pfad der Spekulationen.
Nach meine Analyse müssen die Skripte
core\scripts\action_types_system.sql
und
core\apex_23_1\action_types_system.sql
nacheinander eingespielt werden, da das Skript core\apex_23_1\action_types_system.sql die Installation auf APEX 23.1 erweitert und Beschreibungen überschreibt.
Es könnte auch sein, dass für die APEX Version 23.1 das Skript core\apex_23_1\action_types_system.sql alleine installiert werden muss,
da das Script alleine lauffähig ist (wenn alle Fehler entfernt wurden).
Meine Lösung liegt die Annahme zugrunde, dass beide Skripte installiert werden müssen:
Meine Lösung:
1) Hinzufügen des ADC_ACTION_PARAM_TYPES Eintragen in das Skript core\scripts\action_types_system.sql.
Am besten ab Zeile 279, nach allen anderen MERGE_ACTION_PARAM_TYPE
adc_admin.merge_action_param_type(
p_capt_id => 'SWITCH',
p_capt_name => 'Schalter',
p_capt_display_name => '',
p_capt_description => q'{
Wahrheitswert
}',p_capt_capvt_id => 'SWITCH',
p_capt_select_list_query => q'{}',
p_capt_select_view_comment => q'{}',
p_capt_sort_seq => 10,
p_capt_active => adc_util.C_TRUE);
2) Das Skript core\apex_23_1\install.sql ist leer
Das reicht aber nicht, für APEX 23.1 werden nicht die "Additional Installations" ausgeführt.
Grund dafür ist, dass die Datei core\apex_23_1\install.sql leer ist.
Ich konnte das Problem lösen, als ich dort folgenden Aufruf integrierte.
prompt &s1.Additional Install action types (23.1)
@&apex_version_dir.action_types_system.sql
**3) core\apex_23_1\action_types_system.sql Ausführungsfehler **
Jetzt wurde das Script unter core\apex_23_1\action_types_system.sql ausgeführt, welches Aufruffehler enthielt.
adc_admin.merge_action_type(
*
FEHLER in Zeile 645:
ORA-06550: Zeile 645, Spalte 3:
PLS-00306: Falsche Anzahl oder Typen von Argumenten in Aufruf von 'MERGE_ACTION_TYPE'
Was auffällt ist, dass der Aufruf von adc_admin.merge_action_type in core\apex_23_1\action_types_system.sql
adc_admin.merge_action_type(
p_cat_id => 'CANCEL_MODAL_DIALOG',
p_cat_catg_id => 'ADC',
p_cat_caif_id => 'PAGE',
p_cat_name => 'breche modalen Dialog ab',
p_cat_display_name => q'{
breche Dialog #ITEM|"|" |#ab.
}',p_cat_description => q'{
Bricht die Anzeige des modalen Dialogs ab. Falls mehrere modale Fenster überlappend eingesetzt werden, muss das auslösende Element angegeben werden.
}',p_cat_pl_sql => q'{}',
p_cat_js => q'{de.condes.plugin.adc.actions.cancelModalDialog('#ITEM#');}',
p_cat_is_editable => adc_util.C_TRUE,
p_cat_raise_recursive => adc_util.C_FALSE);
sich unterscheidet von core\scripts\action_types_system.sql
-- ACTION TYPES
adc_admin.merge_action_type(
p_cat_id => 'CANCEL_MODAL_DIALOG',
p_cat_catg_id => 'ADC',
p_cat_caif_id => 'DOCUMENT',
p_cat_cato_id => 'ADC',
p_cat_name => 'brich modalen Dialog ab',
p_cat_display_name => q'{
brich Dialog ab#PARAM_1| und löse Ereignis auf "|" aus|#.
}',p_cat_description => q'{
Bricht die Anzeige des modalen Dialogs ab. Falls mehrere modale Fenster überlappend eingesetzt werden, muss das auslösende Element angegeben werden.
}',p_cat_pl_sql => q'{}',
p_cat_js => q'{de.condes.plugin.adc.actions.cancelModalDialog('#PARAM_1#', #PARAM_2#);}',
p_cat_is_editable => adc_util.C_TRUE,
p_cat_active => adc_util.C_TRUE,
p_cat_raise_recursive => adc_util.C_FALSE);
Es fehlen in core\apex_23_1\action_types_system.sql
die Parameter
P_CAT_CATO_ID
P_CAT_ACTIVE
P_CAT_ACTIVE ist mit einem Default value definert und wird kein weiteres Problem darstellen,
der Parameter P_CAT_CATO_ID muss aber nach augenblicklicher Definition angegeben werden.
Es müsste also überall der Parameter P_CAT_CATO_ID ergänzt werden.
4) Des Weiteren wurde der nicht existente Parameter P_CAT_IS_ACTIVE verwendet,
Siehe Aufruf
adc_admin.merge_action_type(
p_cat_id => 'SET_REGION_CONTENT',
p_cat_catg_id => 'ITEM',
p_cat_caif_id => 'PAGE_REGION',
..
..
p_cat_is_active => adc_util.C_TRUE
hier scheint aber der Parameter P_CAT_ACTIVE gemeint zu sein.
Es kann natürlich auch sein, dass es hier ein neues Package ADC_ADMIN mit anderen Definitionen gibt, dann allerdings würde das Script core\scripts\action_types_system.sql nicht mehr funktionieren,
das wiederum würde dann aber für eine Einzel Installation des Skriptes core\apex_23_1\action_types_system.sql sprechen würde.
5) EXIT im Skript core/install.sql entfernen
Bei mir läuft das Script trotzdem nicht korrekt durch, der Plugin-Teil wird bei mir nicht ausgeführt.
Der Grund dafür ist bei mir, ein EXIT im Skript core/install.sql, was die Verarbeitung vorzeitig beendet.
Entferne ich das EXIT am Ende des Skripts im core/install.sql wird auch der Plugin-Teil installiert.
Anregung
es wird mit "execute immediate l_stmt;" dynamisch Views erstellt. Das ist schön, hat aber immer ein Commmit zur Folge, was Daten in der DB speichert.
Bei einem Rollback am Ende oder Fehler werden somit nicht alle Daten rollbacked.
Wenn man das verhindern möchte, sollte man das execute immediate l_stmt; in eine autonome Transaktion verlangen.
Ich werde die Installation weiter verfolgen (@install_scripts/install_apex.sql) und bei weiteren Problemen nach Lösungen suchen, eines habe ich schon gefunden.
Kommentar auf nicht existierende Spalte ADCA_MAP_FORM_ITEMS.AMFI_ITEM_LIST
comment on column adca_map_form_items.amfi_item_list is 'List of page items as a string list, ready to be inserted into a JavaScript expression';
Ich hoffe, das hilft, um alles zu verbessern, den der Ansatz finde sehr interessant.
mfg.
Ralf