利用API批量删除资产

declare
  p_asset_id    IN NUMBER;
  x_status_code VARCHAR2;
  x_message     VARCHAR2;
  --exception_known EXCEPTION;
  l_api_version      NUMBER := 1;
  l_init_msg_list    VARCHAR2(1) := apps.fnd_api.g_false;
  l_commit           VARCHAR2(1) := apps.fnd_api.g_false;
  l_validation_level NUMBER := fnd_api.g_valid_level_full;
  l_return_status    VARCHAR2(1);
  l_msg_count        NUMBER := 0;
  l_msg_data         VARCHAR2(512);
  l_asset_hdr_rec    apps.fa_api_types.asset_hdr_rec_type;
  temp_str           VARCHAR2(512);
BEGIN
  --SAVEPOINT delete_fa;
  l_asset_hdr_rec.asset_id := p_asset_id;
  fa_deletion_pub.do_delete(p_api_version      => l_api_version,
                            p_init_msg_list    => l_init_msg_list,
                            p_commit           => l_commit,
                            p_validation_level => l_validation_level,
                            p_calling_fn       => 'DO_DELETE',
                            x_return_status    => l_return_status,
                            x_msg_count        => l_msg_count,
                            x_msg_data         => l_msg_data,
                            px_asset_hdr_rec   => l_asset_hdr_rec);
  IF l_return_status = fnd_api.g_ret_sts_error THEN
    l_msg_count := apps.fnd_msg_pub.count_msg;
    IF (l_msg_count > 0) THEN
      temp_str  := apps.fnd_msg_pub.get(apps.fnd_msg_pub.g_first,
                                        fnd_api.g_false);
      x_message := substr(temp_str, 1, 97);
      FOR i IN 1 .. (l_msg_count - 1) LOOP
        temp_str  := apps.fnd_msg_pub.get(apps.fnd_msg_pub.g_next,
                                          fnd_api.g_false);
        x_message := substr(x_message || ' ' || temp_str, 1, 200);
      END LOOP;
    END IF;
    dbms_output.put_line('x_message:' || x_message );
  END IF;
  x_status_code := c_status_success;
  x_message     := '';
  dbms_output.put_line('x_status_code:' || x_status_code );
EXCEPTION
  WHEN OTHERS THEN
    --ROLLBACK TO delete_fa;
    x_status_code := c_status_exception;
    x_message     := substr(SQLERRM, 1, 300);
    dbms_output.put_line('x_message:' || x_message );
END;

你可能感兴趣的:(FA)