客户信用控制请求

一,导入外部风险

FUNCTION import_credit_exposure(p_org_id               IN NUMBER,
                                   p_customer_id          IN NUMBER,
                                   p_bill_to_site_uses_id IN NUMBER,
                                   p_amount               IN NUMBER,
                                   p_import_type          IN VARCHAR2,
                                   p_currency_code        IN VARCHAR2)
      RETURN VARCHAR2 IS
   
      l_msg_count       NUMBER;
      l_msg_data        VARCHAR2(2000);
      l_return_status   VARCHAR2(30);
      l_cc_hold_comment VARCHAR2(30);
      l_result_out      VARCHAR2(30);
   
      l_request_id   NUMBER;
      l_p_request_id NUMBER;
      l_wait         BOOLEAN;
      l_p_wait       BOOLEAN;
      l_phase        VARCHAR2(80);
      l_status       VARCHAR2(80);
      l_dev_phase    VARCHAR2(80);
      l_dev_status   VARCHAR2(80);
      l_message      VARCHAR2(80);
      l_data_access  NUMBER;
      l_id           NUMBER;
      l_e_wait       BOOLEAN;
   
      -- l_batch_id   NUMBER;
      l_ret_status VARCHAR2(1);
      l_msg_count  NUMBER;
      l_msg_data   VARCHAR2(200);
   
      l_org_id               NUMBER;
      l_exposure_source_code VARCHAR2(240);
      l_batch_id             NUMBER;
      l_validate_only        VARCHAR2(1);
   
      l_rec oe_exposure_interface%ROWTYPE;
   BEGIN
   
      l_rec.exposure_source_code      := 'CLE_F147_SOURCE';
      l_rec.exposure_interface_id     := oe_exposure_interface_s.nextval;
      l_rec.batch_id                  := NULL;
      l_rec.operation_code            := p_import_type;
      l_rec.exposure_amount           := p_amount;
      l_rec.currency_code             := p_currency_code;
      l_rec.bill_to_site_use_id       := p_bill_to_site_uses_id;
      l_rec.bill_to_customer_name     := NULL;
      l_rec.bill_to_customer_number   := NULL;
      l_rec.bill_to_customer_id       := p_customer_id;
      l_rec.bill_to_address1          := NULL;
      l_rec.bill_to_address2          := NULL;
      l_rec.bill_to_address3          := NULL;
      l_rec.bill_to_address4          := NULL;
      l_rec.bill_to_city              := NULL;
      l_rec.bill_to_state             := NULL;
      l_rec.bill_to_country           := NULL;
      l_rec.bill_to_postal_code       := NULL;
      l_rec.import_status_code        := NULL;
      l_rec.exposure_date             := SYSDATE;
      l_rec.org_id                    := p_org_id;
      l_rec.original_system_reference := NULL;
      l_rec.created_by                := g_user_id;
      l_rec.creation_date             := SYSDATE;
      l_rec.last_updated_by           := g_user_id;
      l_rec.last_update_date          := SYSDATE;
      l_rec.last_update_login         := g_login_id;
      l_rec.program_application_id    := NULL;
      l_rec.program_id                := NULL;
      l_rec.program_update_date       := NULL;
      l_rec.request_id                := NULL;
      l_rec.bill_to_province          := NULL;
      l_rec.bill_to_county            := NULL;
   
      INSERT INTO oe_exposure_interface VALUES l_rec;
   
      l_org_id               := p_org_id;
      l_exposure_source_code := 'CLE_F147_SOURCE';
      l_batch_id             := NULL;
      l_validate_only        := 'N';
   
      l_request_id := fnd_request.submit_request('ONT',
                                                 'OEXCEIMP',
                                                 '',
                                                 to_char(SYSDATE,
                                                         'YYYY/MM/DD HH24:MI:SS'),
                                                 FALSE,
                                                 l_org_id,
                                                 l_exposure_source_code,
                                                 l_batch_id,
                                                 l_validate_only,
                                                 
                                                 chr(0));
   
      COMMIT;
      -- dbms_output.put_line(l_request_id);
   
      IF l_request_id = 0 THEN
         cux_conc_utl.log_msg('导入信用风险出错');
         raise_exception('E');
      END IF;
      -- 导入信用风险完成
      -- wait request
      l_wait := fnd_concurrent.wait_for_request(request_id => l_request_id,
                                                INTERVAL   => 1, -- interval second for check
                                                max_wait   => 0, -- max_wait, Max amount of time to wait (in seconds)
                                                phase      => l_phase,
                                                status     => l_status,
                                                dev_phase  => l_dev_phase,
                                                dev_status => l_dev_status,
                                                message    => l_message);
   
      IF upper(l_status) NOT IN ('NORMAL', '正常') THEN
         cux_conc_utl.log_msg('导入信用风险出错 - ' || l_message);
         raise_exception('E');
      END IF;
   
      RETURN 'S';
   
   END import_credit_exposure;

二,初始化信用汇总表

FUNCTION check_credit(p_org_id               IN NUMBER,
                         p_customer_id          IN NUMBER,
                         p_bill_to_site_uses_id IN NUMBER,
                         p_amount               IN NUMBER,
                         p_import_type          IN VARCHAR2,
                         p_currency_code        IN VARCHAR2) RETURN VARCHAR2 IS
      -- l_return_status VARCHAR2(30);
      l_msg_count       NUMBER;
      l_msg_data        VARCHAR2(2000);
      l_return_status   VARCHAR2(30);
      l_cc_hold_comment VARCHAR2(30);
      l_result_out      VARCHAR2(30);
   
      l_request_id   NUMBER;
      l_p_request_id NUMBER;
      l_wait         BOOLEAN;
      l_p_wait       BOOLEAN;
      l_phase        VARCHAR2(80);
      l_status       VARCHAR2(80);
      l_dev_phase    VARCHAR2(80);
      l_dev_status   VARCHAR2(80);
      l_message      VARCHAR2(80);
      l_data_access  NUMBER;
      l_id           NUMBER;
      l_e_wait       BOOLEAN;
   
      -- l_batch_id   NUMBER;
      l_ret_status VARCHAR2(1);
      l_msg_count  NUMBER;
      l_msg_data   VARCHAR2(200);
   BEGIN
   
      --先调用 import_credit_exposure 导入可拓展类型为18 的信用风险
      mo_global.init('ONT');
      fnd_global.apps_initialize(user_id => g_user_id,
                                 
                                 resp_id => fnd_global.resp_id,
                                 
                                 resp_appl_id => fnd_global.resp_appl_id);
   
      l_return_status := import_credit_exposure(p_org_id => p_org_id,
                                                
                                                p_customer_id          => p_customer_id,
                                                p_bill_to_site_uses_id => p_bill_to_site_uses_id,
                                                p_amount               => p_amount,
                                                p_import_type          => p_import_type,
                                                p_currency_code        => p_currency_code);
   
      IF l_return_status = 'S' THEN
         --调用标准请求  初始化信用汇总表 
         l_request_id := fnd_request.submit_request('ONT',
                                                    'OEXINICS',
                                                    '',
                                                    to_char(SYSDATE,
                                                            'YYYY/MM/DD HH24:MI:SS'),
                                                    FALSE,
                                                    'N',
                                                    chr(0));
      
         COMMIT;
         -- dbms_output.put_line(l_request_id);
      
         IF l_request_id = 0 THEN
            cux_conc_utl.log_msg('调用标准请求  初始化信用汇总表 出错');
            raise_exception('E');
         END IF;
         -- 导入信用风险完成
         -- wait request
         l_wait := fnd_concurrent.wait_for_request(request_id => l_request_id,
                                                   INTERVAL   => 1, -- interval second for check
                                                   max_wait   => 0, -- max_wait, Max amount of time to wait (in seconds)
                                                   phase      => l_phase,
                                                   status     => l_status,
                                                   dev_phase  => l_dev_phase,
                                                   dev_status => l_dev_status,
                                                   message    => l_message);
      
         IF upper(l_status) NOT IN ('NORMAL', '正常') THEN
            cux_conc_utl.log_msg('调用标准请求  初始化信用汇总表  - ' || l_message);
            raise_exception('E');
         END IF;
      ELSE
         cux_conc_utl.log_msg('调用 import_credit_exposure 导入可拓展类型为18 的信用风险出错 - ');
         raise_exception('E');
      END IF; -- IF l_return_status = 'S' THNE
   
      RETURN 'S';
   END check_credit;


你可能感兴趣的:(客户信用控制请求)