Bạn nên sử dụng Quy trình trang để tính toán một URL. Đây có thể là Quy trình 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;
Gọi điều đó bằng Javascript này:
apex.server.process(
'PREPARE_URL',
{
x01: 27,
x02: 'myvalue'
},
{
success: function (pData)
{
console.log(pData);
},
dataType: "text"
}
);
Bạn sẽ nhận được mã javascript trở lại và bạn cần phải gọi như vậy. Nó sẽ tính toán Checksum chính xác và bạn có thể mở Hộp thoại một cách hoàn hảo.