供应商信息导入

来源:互联网 发布:艾儿长靴淘宝店铺 编辑:程序博客网 时间:2024/04/28 00:08
  PROCEDURE process_request(errbuf OUT VARCHAR2, retcode OUT NUMBER) IS
    ln_request_id  NUMBER;
    ln_party_id    NUMBER;
    ln_error_count NUMBER;
    lb_result      BOOLEAN;

    lv_phase      VARCHAR2(100);
    lv_status     VARCHAR2(100);
    lv_dev_phase  VARCHAR2(100);
    lv_dev_status VARCHAR2(100);
    lv_message    VARCHAR2(1000);

    e_import_erro EXCEPTION;

  BEGIN
    import_init;
    change_status;
    import_suppliers;

    ln_request_id := fnd_request.submit_request('SQLAP', --应用简称
                                                'APXSUIMP', --并发程序
                                                '',
                                                '',
                                                FALSE,
                                                'ALL',
                                                1000,
                                                'N',
                                                'N',
                                                'N',
                                                chr(0));
    COMMIT;
    IF ln_request_id IS NULL OR ln_request_id = 0 THEN
      retcode := 2;
      errbuf  := '供应商接口导入标准表出错!';

      RAISE e_import_erro;
    END IF;

    lb_result := fnd_concurrent.wait_for_request(ln_request_id, --等待的请求
                                                 1, --间隔时间
                                                 0, --等待时间
                                                 lv_phase,
                                                 lv_status,
                                                 lv_dev_phase,
                                                 lv_dev_status,
                                                 lv_message);

    IF lv_dev_phase = 'COMPLETE' AND lv_dev_status = 'NORMAL' THEN

      --
      ln_request_id := NULL;

      --调用供应商地点的并发请求
      ln_request_id := fnd_request.submit_request('SQLAP', --应用简称
                                                  'APXSSIMP', --并发程序
                                                  '',
                                                  '',
                                                  FALSE,
                                                  'ALL',
                                                  1000,
                                                  'N',
                                                  'N',
                                                  'N',
                                                  chr(0));
      COMMIT;
      IF ln_request_id IS NULL OR ln_request_id = 0 THEN
        retcode := 2;
        errbuf  := '供应商地点接口导入标准表出错!';
        RAISE e_import_erro;
      END IF;

      lb_result := fnd_concurrent.wait_for_request(ln_request_id, --等待的请求
                                                   1, --间隔时间
                                                   0, --等待时间
                                                   lv_phase,
                                                   lv_status,
                                                   lv_dev_phase,
                                                   lv_dev_status,
                                                   lv_message);
      IF lv_dev_phase = 'COMPLETE' AND lv_dev_status = 'NORMAL' THEN

        ln_request_id := NULL;

        --调用供应商地点联系人的并发请求
        ln_request_id := fnd_request.submit_request('SQLAP', --应用简称
                                                    'APXSCIMP', --并发程序
                                                    '',
                                                    '',
                                                    FALSE,
                                                    'ALL',
                                                    1000,
                                                    'N',
                                                    'N',
                                                    'N',
                                                    chr(0));
        COMMIT;
        IF ln_request_id IS NULL OR ln_request_id = 0 THEN
          retcode := 2;
          errbuf  := '供应商地点联系人接口导入标准表出错!';
          RAISE e_import_erro;
        END IF;

        lb_result := fnd_concurrent.wait_for_request(ln_request_id, --等待的请求
                                                     1, --间隔时间
                                                     0, --等待时间
                                                     lv_phase,
                                                     lv_status,
                                                     lv_dev_phase,
                                                     lv_dev_status,
                                                     lv_message);
        IF lv_dev_phase = 'COMPLETE' AND lv_dev_status = 'NORMAL' THEN

          --get party id
          ln_party_id := get_party_id(g_party_name);

          IF ln_party_id IS NULL THEN
            retcode := 2;
            errbuf  := '供应商导入失败';
            RAISE e_import_erro;
          END IF;
          update_tax_number;
          update_vendor_diffs;
          update_supplier_accounts;
          update_party_sites_info;

          IF g_cust_alt_name IS NOT NULL THEN
            update_cust_alt_name;
          END IF;

          --如果供应商导入成功
          import_customers;

          ln_request_id := NULL;
          --submit request to import customers
          ln_request_id := fnd_request.submit_request('AR', --应用简称
                                                      'RACUST', --并发程序
                                                      '',
                                                      '',
                                                      FALSE,
                                                      'N',
                                                      NULL,
                                                      chr(0));
          COMMIT;

          IF ln_request_id IS NULL OR ln_request_id = 0 THEN
            retcode := 2;
            errbuf  := '客户接口导入标准表出错!';
            RAISE e_import_erro;
          END IF;

          lb_result := fnd_concurrent.wait_for_request(ln_request_id, --等待的请求
                                                       1, --间隔时间
                                                       0, --等待时间
                                                       lv_phase,
                                                       lv_status,
                                                       lv_dev_phase,
                                                       lv_dev_status,
                                                       lv_message);
          IF lv_dev_phase <> 'COMPLETE' AND lv_dev_status <> 'NORMAL' THEN

            retcode := 2;
            errbuf  := '客户接口导入标准表出错!';
            RAISE e_import_erro;
          END IF;

        END IF;
      END IF;
    END IF;

    ln_error_count := get_rejection_counts;

    IF ln_error_count != 0 THEN
      retcode := 2;
      errbuf  := '交易方导入失败!';
      RAISE e_import_erro;
    END IF;
    --import succeed
    IF g_check_status = TRUE THEN
      retcode := 1;
      change_status(g_status_w);
    ELSE
      change_status(g_status_s);
    END IF;

    del_interface_data;
  EXCEPTION
    WHEN OTHERS THEN
      change_status(g_status_e);
      del_interface_data;
      COMMIT;
  END process_request;
原创粉丝点击