Інструмент для керування 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 База Даних

  • Для підключення до бази даних 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 Бібліотека

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

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

1. Два Різних Режими Запитів

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

 # Отримуємо ім'я Business Component з URL  
 # Приклад: "Account"  
 bc_adi = request.args.get("bc_name")
  • Запит за Кнопкою: Швидке отримання значень CanInvokeMethod для кнопок.
# Опис маршруту для головної сторінки ("/")  
# Приймає як 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" або "button"  
 # Це визначає, чи буде здійснюватися пошук по полю чи кнопці  
 search_type = request.form.get("search_type")

2. Візуальне Дерево

  • RO правила з Oracle часто містять IIF вирази. Ці вирази аналізуються та візуалізуються у вигляді дерева, що дає користувачам зручний спосіб їх вивчення.

3. Динамічний Запит Значень Полів

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

pic

4. Підтримка Темної/Світлої Теми

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

pic

pic

Архітектура та Робочий Потік

**1.
текст перекладу

Задня частина (Backend)

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

Передня частина (Frontend)

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

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

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

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

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

  1. LDAP і авторизація користувачів:
  • Додавши авторизацію на рівні користувача, можна посилити контроль доступу.

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

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

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

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

Висновок

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

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

Перекладено з: Siebel RO Kontrol Aracı: Flask ile Web Tabanlı Uygulama Geliştirme

Leave a Reply

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