【FND】EBS创建子请求

示例

CREATE OR REPLACE PACKAGE BODY cux_sub_request_pkg IS

  --main request
  PROCEDURE main(errbuf OUT VARCHAR2, retcode OUT NUMBER) IS
    l_subreq_tb    fnd_concurrent.requests_tab_type;
    l_request_data VARCHAR2(100);
    l_error_count  NUMBER := 0;
    l_warn_count   NUMBER := 0;
    l_request_id   NUMBER;
  BEGIN
  
    --
    -- Check for re-start status
    -- you can set the request normal and return, or set the request error/warn if there is
    -- one or mor sub-request error/warn.
    --
    l_request_data := fnd_conc_global.request_data;
    IF l_request_data IS NOT NULL THEN
      --set normal and return
      --retcode := 0;
      --RETURN;
    
      --set status with child's status
      l_subreq_tb := fnd_concurrent.get_sub_requests(fnd_global.conc_request_id);
      FOR i IN 1 .. l_subreq_tb.count LOOP
        IF l_subreq_tb(i).dev_status = 'WARNING' THEN
          l_warn_count := l_warn_count + 1;
        ELSIF l_subreq_tb(i).dev_status <> 'NORMAL' THEN
          l_error_count := l_error_count + 1;
        END IF;
      END LOOP;
    
      IF l_error_count > 0 THEN
        retcode := 2;
        RETURN;
      END IF;
    
      IF l_warn_count > 0 THEN
        retcode := 1;
        RETURN;
      END IF;
    
      retcode := 0;
      RETURN;
    END IF;
    --
    --
  
    --
    --you other code here
    --
  
    --submit sub-request
    l_request_id := fnd_request.submit_request(application => 'CUX',
                                               program     => 'CUX_HQC_SUBREQUEST',
                                               description => NULL,
                                               start_time  => NULL,
                                               sub_request => TRUE);
  
    IF l_request_id > 0 THEN
      --pause the main request
      fnd_conc_global.set_req_globals(conc_status  => 'PAUSED',
                                      request_data => l_request_id);
    ELSE
      errbuf  := 'submit sub-request error!';
      retcode := 2;
    END IF;
  
  EXCEPTION
    WHEN OTHERS THEN
      errbuf  := SQLERRM;
      retcode := 2;
  END main;

  --sub request
  PROCEDURE sub_request(errbuf OUT VARCHAR2, retcode OUT NUMBER) IS
  BEGIN
    NULL;
  EXCEPTION
    WHEN OTHERS THEN
      errbuf  := SQLERRM;
      retcode := 2;
  END sub_request;
END cux_sub_request_pkg;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qingshimoon4/article/details/116793215
今日推荐