How to use Python automatically get the Sap BO Temporary License keys?
Tags: python, programming, dataanalyst, tutorial
Published: 2024-01-21 10:52:52

# What is a Sap Temporary  License Keys?

An SAP temporary license key is a license used to activate SAP software that can only be used for a limited period of time. These keys can be used for evaluation purposes or during a system migration. They are temporary solutions and usually expire after a certain period of time.

# How to get the Sap BO Temporary License keys?

Temporary keys: The SAP Support Portal provides temporary Business Objects license keys in case of any error while creating a permanent license key. You can download these keys by logging on to the link [www.service.sap.com/licensekey](http://www.service.sap.com/licensekey) on the Support Portal and selecting the "Get Temporary License Key" link. These temporary license keys are valid for a maximum of 90 days.

## Method 1: Manual download

1. [www.service.sap.com/licensekey](http://www.service.sap.com/licensekey) Open the URL and click here to download a file called "bobj-temp-license-key.zip":
    

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rahpyde7awema2lb8on2.png)
    
2. After unzipping there is a pdf file named "SAP Analytics Emergency License Key Process", in which you can find the License Key you need.
    

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mcrgcsggxmikniehofd8.png)

## Method 2: Automate the process of getting Sap Temporary keys using Python

### Download bobj-temp-license-key.zip
You can use the requests library to download the zip file directly and save it in a specific path.

```python
import requests
import os

# Define the URL of the zip file
zip_file_url = 'https://support.sap.com/content/dam/support/en_us/library/ssp/my-support/keys/bobj-temp-license-key.zip'

# Define the folder path where you want to save the zip file.
download_zip_path = r"C:\\Users\\USERNAME\\Projects\\download_zip"

# Ensure the download folder exists
os.makedirs(download_zip_path, exist_ok=True)

# Create the full path for the zip file
zip_file_path = os.path.join(download_zip_path, 'bobj-temp-license-key.zip')

# Send a GET request to the URL and save the content to the zip file
response = requests.get(zip_file_url, stream=True)
with open(zip_file_path, 'wb') as zip_file:
    for chunk in response.iter_content(chunk_size=128):
        zip_file.write(chunk)

print(f"Zip file downloaded to: {zip_file_path}")
```

### Unzip the zip file to get the pdf
The SAP Temporary Keys are saved in the PDF file, which you need to extract from the zip file first. You can use zipfile to obtain the information.

```python
import zipfile

# zip the zip file into 'bobj-temp-license-key'
file_path_zip = r"{}/bobj-temp-license-key.zip".format(download_zip_path)

if os.path.exists(file_path_zip):
    zip_file = zipfile.ZipFile(file_path_zip)
    zip_file.extractall(keys_path)
    zip_file.close()

# you can get the path of the pdf after unzip
file_path_pdf = "..."
```

### Get the required Licence Key from the pdf file.

Take SAP BusinessObjects Tempory Licence Key as an example, the Licence Key is located on the second page of the pdf after the "CPU 4.2" field, after testing to determine the SAP BusinessObjects Tempory Licence Key, the Licence Key is located on the second page of the pdf after the "CPU 4.2" field, after testing to determine the SAP BusinessObjects Tempory Licence Key. The Licence Key is located after the "CPU 4.2" field on the second page of the pdf:

```python
import PyPDF2
import os

# Get SAP BusinessObjects Tempory Licence Key
def get_key_from_text(text):
    start = text.find('CPU 4.2') + 8
    return text[start:start + 32]

# file_path_pdf is the path of the pdf in the previous step 
if os.path.exists(file_path_pdf):
    pdf_file = open(file_path_pdf, 'rb')
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    page = pdf_reader.pages[1]
    text = page.extract_text()
    latest_key = get_key_from_text(text)
    pdf_file.close()
```

### Automate Updating Process

If you need to update the license key every 90 days, you can save the license key in a txt file and compare it with the locally saved license key after you successfully get the latest license key, if latest_key ! If latest_key != current_key, then replace latest_key with current_key to ensure that the latest license key is always saved in the txt file.

```python
if os.path.exists(file_path_pdf):
    pdf_file = open(file_path_pdf, 'rb')
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    page = pdf_reader.pages[1]
    text = page.extract_text()
    latest_key = get_key_from_text(text)
    pdf_file.close()
    if latest_key != current_key:
        with open(current_key_txt_path, 'w') as file:
            file.write(latest_key)
        print("license updated, latest license", latest_key)
    else:
        print("license didn't update, current license:", latest_key)
else:
    print("PDF is not exists")

```

---

## Explore more

{% embed https://dev.to/luca1iu %}


Thank you for taking the time to explore data-related insights with me. I appreciate your engagement.

{% cta https://www.linkedin.com/in/lucaliu-data %} 🚀 Connect with me on LinkedIn {% endcta %}

{% cta https://twitter.com/Luca_DataTeam %} 🎃 Connect with me on X {% endcta %}


{% cta https://www.instagram.com/luca1iu?igsh=MmJneDFpdjNtYWU1&utm_source=qr %} 🌍 Connect with me on Instagram {% endcta %}