`

EBS价目表设置导入功能(4)-提交请求

 
阅读更多

4.提交请求功能

procedure prc_do_price_request(prm_user_number in varchar2, prm_appcode out number, prm_appmsg out varchar2) is
        e_exception exception;
        success        boolean;
        v_request_id   number;
        v_phase        varchar2(30);
        v_status       varchar2(30);
        v_dev_phase    varchar2(30);
        v_dev_status   varchar2(30);
        v_message      varchar2(1000);
        v_request_flag boolean;
        v_start_time   varchar2(30);
        v_user_id      number;
    begin
        prm_appcode := 0;
        v_user_id   := fnd_get_user_id(prm_user_number);
        --初始化设置
        fnd_global.apps_initialize(v_user_id, --用户ID
                                   g_resp_id, --责任ID
                                   g_resp_appl_id); --应用ID
        --设置打印参数
        success := fnd_request.set_print_options(g_printer, g_style, g_copies);
        if not success then
            raise e_exception;
        end if;
        v_start_time := to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS');
        --调用请求
    
        v_request_id := fnd_request.submit_request('QP', --应用
                                                   'QPXVBLK', --程序
                                                   null, --程序说明
                                                   v_start_time, --开始时间
                                                   false, --是否作为子请求提交,该请求如果是被其它请求调用设为TRUE,否则为FALSE
                                                   'PRL', --实体--*--1
                                                   null, --实体名称--2
                                                   null, --流程标识--3
                                                   null, --流程类型--4
                                                   'N', --流程父项--5
                                                   1, --线程数--6
                                                   'N', --派生请求--7
                                                   null, --请求编号--8
                                                   'Y', --打开调试--9
                                                   chr(0)); --结束标识
    
        if v_request_id = 0 then
            raise e_exception;
        else
            commit;
        end if;
        --等待
        v_request_flag := fnd_concurrent.wait_for_request(request_id => v_request_id, --返回的请求ID
                                                          interval   => 2, --重复检测时间差
                                                          max_wait   => 0, --最长等待时间,0为一直等待
                                                          phase      => v_phase,
                                                          status     => v_status,
                                                          dev_phase  => v_dev_phase,
                                                          dev_status => v_dev_status,
                                                          message    => v_message);
        if v_request_flag then
            if v_dev_status = 'NORMAL' then
                -- OR v_dev_status = 'WARNING'
                null;
            else
                raise e_exception;
            end if;
        else
            raise e_exception;
        end if;
    exception
        when e_exception then
            rollback;
            prm_appcode := -1;
            prm_appmsg  := '错误提示:导入销售订单时出错!(request)' || sqlerrm;
            return;
        when others then
            rollback;
            prm_appcode := -1;
            prm_appmsg  := '错误提示:导入销售订单时出错!(request)' || sqlerrm;
            return;
    end prc_do_price_request;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics