The following are the sample codes in Python to download the BI view.
01 | def download(view_name, field_list, page_number, page_size, output_type, client_id, all_pages, |
02 | from_page, to_page, from_date, to_date, retry_interval, |
03 | retry_attempt, use_token, output, max_pages, directory): |
05 | if page_number is not None : |
06 | from_page = page_number |
09 | request_id = use_token |
10 | from prettytable import PrettyTable |
12 | x.field_names = [ "Page Number" , |
13 | "Duration" , "Attempt" , "Response Code" ] |
15 | for pg in range (from_page, to_page + 1 ): |
16 | from os import system, name |
19 | token, _ = get_token() |
20 | if request_id is not None : |
21 | headers = { 'Token' : token, |
22 | 'continuation-token' : request_id} |
24 | headers = { 'Token' : token} |
26 | params.append(make_query_param( "clientId" , client_id)) |
27 | params.append(make_query_param( "fromDate" , from_date)) |
28 | params.append(make_query_param( "toDate" , to_date)) |
29 | params.append(make_query_param( "pagenum" , pg)) |
30 | params.append(make_query_param( "pageSize" , page_size)) |
31 | params.append(make_query_param( "outputType" , output_type)) |
32 | if max_pages is not None : |
33 | params.append(make_query_param( "max_pages" , max_pages)) |
37 | query_string = query_string + a + "&" |
38 | url = end_point_host + \ |
39 | '/integration/v2/biviews/{0}?{1}' . format (view_name, query_string) |
43 | if field_list is not None : |
44 | field = field_list.split( "," ) |
45 | post_response = requests.get(url, data = jsonpickle.encode(field), headers = headers) |
48 | if post_response.status_code ! = 200 : |
49 | if "Page still not yet cached" in post_response.text: |
50 | for _ in range ( 1 , retry_attempt): |
52 | time.sleep(retry_interval) |
53 | post_response = requests.get( |
54 | end_point_host + '/integration/v2/biviews/{0}?{1}' . format (view_name, query_string), headers = headers) |
55 | if post_response.status_code = = 200 : |
57 | if post_response.status_code ! = 400 : |
60 | if request_id is None : |
61 | if 'continuation_token' in post_response.headers: |
62 | request_id = post_response.headers.get( 'continuation_token' ) |
63 | print ( "Continuation Token: {0}" . format (request_id)) |
65 | print ( 'No Token found!' ) |
67 | elapsed = round (p_end - p_start) |
69 | if output = = "file" and directory is not None : |
70 | write_to_file(directory, pg, post_response.text) |
72 | x.add_row([pg, elapsed, attempt, post_response.status_code]) |
74 | print ( "Continuation Token: {0}" . format (request_id)) |
76 | if post_response.status_code ! = 200 : |
77 | print ( "Stopping. Code: {0}" . format (post_response.status_code)) |
80 | elapsed = round (o_end - o_start) |
81 | x.add_row([ "Total" , elapsed, ' ', ' ']) |
83 | print ( "Continuation Token: {0}" . format (request_id)) |