PL/SQL调用系统标准的请求实例

需求:实现供应商的接口导入:

         导入供应商、供应商地址和供应商联系人的信息。

    

定义变量:

--提交标准并发请求时的参数
    l_request_id1 NUMBER;
    l_request_id2 NUMBER;
    l_request_id3 NUMBER;
    l_request_id4 NUMBER;
    l_bl_result1  BOOLEAN;
    l_bl_result2  BOOLEAN;
    l_bl_result3  BOOLEAN;

 

   调用标准的请求,将三个接口表中的数据导入到系统中。

   实现sql如下:

 

IF v_supplier_error_flag = 'N' AND v_supplier_site_error_flag = 'N' AND  
       v_supplier_contact_error_flag = 'N' THEN  
  
      --分ou的导入,并且初始化OU  
      FOR l_cur_submit IN cur_submit LOOP  
        v_org_id := NULL; --初始化ou  
        v_org_id := get_org_id(l_cur_submit.org_name);  
        --初始化环境变量  
        set_policy_context(v_org_id);  
        --调用标准的并发请求  
        --调用供应商的并发请求  
        l_request_id1 := fnd_request.submit_request('SQLAP', --应用简称  
                                                    'APXSUIMP', --并发程序  
                                                    '',  
                                                    '',  
                                                    FALSE,  
                                                    'NEW',  --NEW、Reject、ALL
                                                    1000,  --默认1000
                                                    'N',  --只输出错误记录
                                                    'N',  --是否启用调试信息
                                                    'N',  --是否开启Trace
                                                    chr(0));  
        COMMIT;  
        IF l_request_id1 IS NULL OR l_request_id1 = 0 THEN  
          retcode := 2;  
          errbuf  := '供应商接口导入标准表出错!';  
          RETURN;  
        END IF;  
  
        l_bl_result1 := fnd_concurrent.wait_for_request(l_request_id1, --等待的请求  
                                                        1, --间隔时间  
                                                        0, --等待时间  
                                                        v_phase,  
                                                        v_status,  
                                                        v_dev_phase,  
                                                        v_dev_status,  
                                                        v_message);  
  
        IF v_dev_phase = 'COMPLETE' AND v_dev_status = 'NORMAL' THEN  
  
          --调用供应商地点的并发请求  
          l_request_id2 := fnd_request.submit_request('SQLAP', --应用简称  
                                                      'APXSSIMP', --并发程序  
                                                      '',  
                                                      '',  
                                                      FALSE,  
                                                      'NEW',  
                                                      1000,  
                                                      'N',  
                                                      'N',  
                                                      'N',  
                                                      chr(0));  
          COMMIT;  
          IF l_request_id2 IS NULL OR l_request_id2 = 0 THEN  
            retcode := 2;  
            errbuf  := '供应商地点接口导入标准表出错!';  
            RETURN;  
          END IF;  
  
          l_bl_result2 := fnd_concurrent.wait_for_request(l_request_id2, --等待的请求  
                                                          1, --间隔时间  
                                                          0, --等待时间  
                                                          v_phase,  
                                                          v_status,  
                                                          v_dev_phase,  
                                                          v_dev_status,  
                                                          v_message);  
  
          IF v_dev_phase = 'COMPLETE' AND v_dev_status = 'NORMAL' THEN  
            --调用供应商地点联系人的并发请求  
            l_request_id3 := fnd_request.submit_request('SQLAP', --应用简称  
                                                        'APXSCIMP', --并发程序  
                                                        '',  
                                                        '',  
                                                        FALSE,  
                                                        'NEW',  
                                                        1000,  
                                                        'N',  
                                                        'N',  
                                                        'N',  
                                                        chr(0));  
            COMMIT;  
            IF l_request_id3 IS NULL OR l_request_id3 = 0 THEN  
              retcode := 2;  
              errbuf  := '供应商地点联系人接口导入标准表出错!';  
              RETURN;  
            END IF;  
            l_bl_result3 := fnd_concurrent.wait_for_request(l_request_id3, --等待的请求  
                                                            1, --间隔时间  
                                                            0, --等待时间  
                                                            v_phase,  
                                                            v_status,  
                                                            v_dev_phase,  
                                                            v_dev_status,  
                                                            v_message);  
            IF v_dev_phase <> 'COMPLETE' AND v_dev_status <> 'NORMAL' THEN  
              retcode := 2;  
              errbuf  := '供应商地点联系人接口导入标准表出错!';  
              RETURN;  
            END IF;  
          END IF;  
        END IF;  
  
        COMMIT;  
      END LOOP; --结束loop循环  
END IF;  

 

posted @ 2013-03-31 12:01  小Q的DD  阅读(475)  评论(0编辑  收藏  举报