Você deve usar um processo de página para calcular um URL. Este pode ser um processo 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;
Chame isso com este Javascript:
apex.server.process(
'PREPARE_URL',
{
x01: 27,
x02: 'myvalue'
},
{
success: function (pData)
{
console.log(pData);
},
dataType: "text"
}
);
Você receberá um código javascript de volta e precisará chamá-lo. Ele calculará a soma de verificação correta e você poderá abrir a caixa de diálogo perfeitamente.