Цей проект, розроблений для користувачів 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. Динамічне запитування значень полів
- Користувачі можуть натискати на назви полів в інтерфейсі для перегляду детальної інформації про поля.
- Інформація про з’єднання відображається разом з деталями поля.
- Також надається інформація про таблиці для комплексного аналізу.
Екран додатку
4. Підтримка теми темного/світлого режиму
- Користувачі можуть змінювати тему відповідно до своїх уподобань.
- Налаштування теми зберігаються за допомогою LocalStorage для наступних сеансів.
Світла тема
Темна тема
Архітектура та робочий процес
1. Backend
- Додаток Flask відправляє запити користувачів до бази даних Oracle.
-
Результати запитів обробляються у відповідний HTML формат та надаються користувачу.
текст перекладуІнтерфейс користувача
-
Динамічний інтерфейс дозволяє користувачам легко переглядати та аналізувати результати запитів.
3. Комунікація клієнт-сервер
- Комунікація здійснюється через RESTful API.
- Наприклад, коли користувач натискає на деталі поля, відповідна інформація завантажується за допомогою AJAX.
Майбутні кроки
Цей проєкт має потенціал стати інструментом, що підвищує продуктивність розробників і аналітиків, які працюють з додатками Siebel. У майбутньому він може стати більш комплексним завдяки наступним покращенням:
- LDAP і авторизація користувачів:
- Можна додати авторизацію на рівні користувача для посилення контролю доступу.
2. Розширені інструменти аналізу:
- Додаткові метадані Siebel у базі даних можуть бути проаналізовані для розширення можливостей аналізу інструменту.
3. Інтеграція з Chrome Extension:
- Застосунок може бути перетворений на розширення для Chrome, що дозволить пряме інтегрування з екраном Siebel через браузер. Це дозволить користувачам використовувати інструмент без необхідності додаткового інтерфейсу.
Висновок
Цей інструмент надає зручне рішення для перевірки контролів RO та налагодження в системах Siebel CRM. Такі функції, як візуалізація складних виразів IIF та динамічний запит значень полів, значно спрощують роботу розробників і аналітиків.
Цей проєкт був розроблений у співпраці з mrdvneltmz.
Перекладено з: Siebel RO Control Tool: Developing a Web-Based Application with Flask