|
此外,在Form中也可以提交请求。先期工作如下:在form中添加一个parameter REQ_ID,用以存储concurrent request ID。编写Request的Handler,如下所示:
PROCEDURE PRINT_ORDER(EVENT VARCHAR2) IS
BEGIN
IF (EVENT = 'SPECIAL1') OR (EVENT = 'WHEN-BUTTON-PRESSED')
THEN
arameter.req_id :=
fnd_request.submit_request('DEMVC',
'DEMREPRT','', '',
FALSE, NAME_IN('ORDERS.ORDER_ID'),chr(0),'','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','');
IF arameter.req_id = 0 THEN
FND_MESSAGE.RETRIEVE;
FND_MESSAGE.ERROR;
ELSE
IF :SYSTEM.FORM_STATUS != 'CHANGED' THEN
IF app_form.quietcommit THEN
/*form commits without asking user to save changes*/
fnd_message.set_name('SQLGL','GL_REQUEST_SUBMITTED');
fnd_message.set_TOKEN('REQUEST_ID',
TO_CHAR(:PARAMETER.REQ_ID), FALSE);
fnd_message.show;
ELSE
fnd_message.set_name('FND', 'CONC-REQUEST
SUBMISSION FAILED');
fnd_message.error;
END IF;
ELSE
DO_KEY('COMMIT_FORM');
IF :SYSTEM.FORM_STATUS != 'CHANGED' THEN
/*commit was successful*/
fnd_message.set_name('SQLGL','GL_REQUEST_SUBMITTED');
fnd_message.set_TOKEN('REQUEST_ID',
TO_CHAR(:PARAMETER.REQ_ID), FALSE);
fnd_message.show;
END IF;
END IF;
END IF;
ELSE
fnd_message.debug('Invalid event passed to
DEMXXEOR.PRINT_order: ' || EVENT);
END IF;
END PRINT_ORDER;
然后在form-level的Special1和PRINT_ORDER Button的when-button-pressed Trigger中调用处理代码。
demvceor.PRINT_ORDER('SPECIAL1');
我在练习中做到这一步,在窗体中提交Request报错,同事说是由于先前定义的Execution File在系统中不存在,我在网上也没找到该文件的脚本,因此这节练习也就做到这里了。 |
|