Vous devez utiliser un processus de page pour calculer une URL. Il peut s'agir d'un processus Ajax :
DECLARE
l_url varchar2(2000);
l_app number := v('APP_ID');
l_session number := v('APP_SESSION');
l_item_name VARCHAR2(2000) := 'P27_XYZ';
BEGIN
l_url := APEX_UTIL.PREPARE_URL(
p_url => 'f?p=' || l_app || ':'||apex_application.g_x01||':'||l_session||'::NO::'||l_item_name||':'||apex_application.g_x02,
p_checksum_type => 'SESSION');
htp.p(l_url);
END;
Appelez cela avec ce Javascript :
apex.server.process(
'PREPARE_URL',
{
x01: 27,
x02: 'myvalue'
},
{
success: function (pData)
{
console.log(pData);
},
dataType: "text"
}
);
Vous obtiendrez un code javascript en retour, et vous devez l'appeler. Il calculera la somme de contrôle correcte et vous pourrez parfaitement ouvrir la boîte de dialogue.