Інструмент для керування Siebel RO: Розробка веб-додатку на Flask

Цей проект, розроблений для користувачів Siebel CRM, пропонує інструмент для динамічного аналізу обмежень доступу користувачів (правила Read-Only — RO) та авторизацій кнопок. Завдяки зручному інтерфейсу, він спрямований на спрощення та пришвидшення цих процесів.

Мета проекту

У додатках Siebel CRM правила RO та авторизації доступу до кнопок часто потребують складних запитів та тривалих аналітичних процесів. Метою цього проекту є забезпечити користувачам можливість швидко та легко запитувати та аналізувати ці правила, економлячи час та підвищуючи ефективність.

Використані технології

1. Python та Flask Framework

  • Серверна частина додатку була розроблена з використанням Flask.
from flask import Flask  
app = Flask(__name__)
  • Flask було обрано як ідеальний фреймворк Python для розробки веб-інструментів завдяки його здатності до швидкої розробки та гнучкій архітектурі.

2. Oracle Database

  • Використовується база даних Oracle, що застосовується в додатках Siebel для запитів до правил RO та деталей кнопок.
import oracledb  

# Шлях до Oracle Instant Client  
oracledb.init_oracle_client(lib_dir="C:..")  

# Деталі з’єднання з базою даних Oracle  
dsn = ""  

# Ім’я користувача бази даних Oracle  
username = ""  

# Пароль до бази даних Oracle  
password = ""

3. HTML, CSS та JavaScript

  • Розроблено сучасний та зручний інтерфейс.
  • Реалізовано динамічне завантаження контенту та перемикання теми на основі налаштувань користувача.

4. Бібліотека Oracledb

  • Бібліотека Oracledb використовувалася для встановлення з’єднання з базою даних Oracle та виконання запитів.

Особливості додатку

1. Два режими запитів

  • Запити на основі полів: Користувачі можуть ввести назву аплету Siebel та відображену назву поля, яке вони хочуть запитати, щоб переглянути відповідну інформацію.
# API endpoint для отримання значень полів  
@app.route("/get_field_value")  
def get_field_value():  
 # Отримуємо назву поля з URL  
 # Приклад: "Account Name"  
 field_name = request.args.get("field")  

 # Отримуємо назву компонента бізнесу з URL  
 # Приклад: "Account"  
 bc_name = request.args.get("bc_name")
  • Запити на основі кнопок: Значення CanInvokeMethod кнопок можна швидко запитати.
# Визначення маршруту для головної сторінки ("/") у додатку Flask,  
# приймаючи як GET, так і POST запити  
@app.route("/", methods=["GET", "POST"])  
def index():  

 # Якщо сторінка викликається з методом POST (відправка форми)  
 if request.method == "POST":  
 # Отримуємо значення "applet_name" з форми  
 # Приклад: "Account List Applet"  
 applet_name = request.form.get("applet_name")  

 # Отримуємо значення "button_name" з форми  
 # Це може бути назва кнопки або поле  
 # Приклад: "New" або "Account Name"  
 search_value = request.form.get("button_name")  

 # Отримуємо тип пошуку з форми  
 # Може бути "field"

2. Візуальна структура дерева

Правила RO з Oracle часто містять вирази IIF. Ці вирази аналізуються та подаються користувачам у вигляді візуалізованої структури дерева для легшого розуміння.

3. Динамічне запитування значень полів

  • Користувачі можуть натискати на назви полів в інтерфейсі для перегляду детальної інформації про поля.
  • Інформація про з’єднання відображається разом з деталями поля.
  • Також надається інформація про таблиці для комплексного аналізу.

pic

Екран додатку

4. Підтримка теми темного/світлого режиму

  • Користувачі можуть змінювати тему відповідно до своїх уподобань.
  • Налаштування теми зберігаються за допомогою LocalStorage для наступних сеансів.

pic

Світла тема

pic

Темна тема

Архітектура та робочий процес

1. Backend

  • Додаток Flask відправляє запити користувачів до бази даних Oracle.
  • Результати запитів обробляються у відповідний HTML формат та надаються користувачу.
    текст перекладу

    Інтерфейс користувача

  • Динамічний інтерфейс дозволяє користувачам легко переглядати та аналізувати результати запитів.

3. Комунікація клієнт-сервер

  • Комунікація здійснюється через RESTful API.
  • Наприклад, коли користувач натискає на деталі поля, відповідна інформація завантажується за допомогою AJAX.

Майбутні кроки

Цей проєкт має потенціал стати інструментом, що підвищує продуктивність розробників і аналітиків, які працюють з додатками Siebel. У майбутньому він може стати більш комплексним завдяки наступним покращенням:

  1. LDAP і авторизація користувачів:
  • Можна додати авторизацію на рівні користувача для посилення контролю доступу.

2. Розширені інструменти аналізу:

  • Додаткові метадані Siebel у базі даних можуть бути проаналізовані для розширення можливостей аналізу інструменту.

3. Інтеграція з Chrome Extension:

  • Застосунок може бути перетворений на розширення для Chrome, що дозволить пряме інтегрування з екраном Siebel через браузер. Це дозволить користувачам використовувати інструмент без необхідності додаткового інтерфейсу.

Висновок

Цей інструмент надає зручне рішення для перевірки контролів RO та налагодження в системах Siebel CRM. Такі функції, як візуалізація складних виразів IIF та динамічний запит значень полів, значно спрощують роботу розробників і аналітиків.

Цей проєкт був розроблений у співпраці з mrdvneltmz.

Перекладено з: Siebel RO Control Tool: Developing a Web-Based Application with Flask

Leave a Reply

Your email address will not be published. Required fields are marked *