Biến số hệ thống (Variable)

Navigation:  Các công cụ phát triển phần mềm > Xử lý dữ liệu (Data Processing) > Các lệnh tìm kiếm & tra cứu > Biến số >

Biến số hệ thống (Variable)

Previous pageReturn to chapter overviewNext page
Show/Hide Hidden Text

Variable - Biến số hệ thống là gì?

Trong quá trình sử dụng Phoebus, người sử dụng cần những biến số chung cho toàn hệ thống, ví dụ:

Khi viết báo cáo trên excel template (report writing) có thể sử dụng những biến số này.

Khi thiết kế Dashboard, có thể dùng biến số này để làm tham số.

Khi chạy Phoebus Command (Phoebus DataUrl) cũng có thể dùng biến số chung này như một tham số đầu vào.

Ngoài ra, biến số hệ thống còn dùng cho các công thức tính toán trong Phoebus.

 

Phoebus cung cấp nơi để lưu lại các biến số hệ thống này, và để chúng hoạt động tốt với các chức năng của mình, hệ thống yêu cầu:

1.Biến số hệ thống này phải có giá trị riêng cho từng người sử dụng.

Ví dụ: khi chạy một dashboard dùng tham số là Kỳ báo cáo thì:

- người dùng A khi chạy báo báo sẽ có kỳ báo cáo là a (riêng cho người dùng A)

- người dùng B khi chạy báo cáo sẽ có kỳ báo cáo là b (riêng cho người dùng B)

2.Tương tự như trên, nhưng ở mức cao hơn là biến số hệ thống có giá trị theo nhóm người sử dụng.

Ví dụ: khi chạy một dashboard có biến số là Mã ngân sách thì:

- những người dùng thuộc nhóm Marketing sẽ chỉ thấy ngân sách của bộ phận marketing

- những người dùng thuộc nhóm Bán hàng sẽ chỉ thấy ngân sách của bộ phận bán hàng

prod_tip           Note

Như vậy, một biến số sẽ phụ thuộc vào:

Tài khoản người sử dụng,

và Nhóm thao tác viên của người dùng.

Cách thiết lập Biến số

tipbulb           pbs.BO.VAR

Câu lệnh mở tính năng Variable - Biến số.

Vào chức năng pbs.BO.VAR để định nghĩa một biến số, giao diện của chức năng Biến số như sau:

var_001_zoom60

Var Code/Mã biến số

Mã biến số.

Description/Diễn giải

Diễn giải cho biến số.

Var Group

Nhóm biến số.

Var Type

Loại biến số.

Default Value

Nhập vào giá trị sẽ mặc định được trả về khi sử dụng biến số.

 

Ví dụ 1: Trong ví dụ này, người viết định nghĩa một biến số như sau:

Mã biến số là MyDepartment

Default Value: nhập giá trị trả về mặc định là NA

Khi sử dụng biến số MyDepartment cho dashboard/câu lệnh/công thức tính toán/..., thì kết quả sẽ trả về giá trị là NA.

Một biến số có thể dùng cho một nhóm hoặc cho riêng từng người sử dụng. Các cách thiết lập tương ứng như sau:

<%EXTOGGLE%>Biến số theo nhóm thao tác viên

Biến số được hiểu là tương ứng với mỗi người dùng, hệ thống sẽ trả về giá trị khác nhau. Nhưng theo Ví dụ 1 trên đây thì biến số MyDepartment đều trả về kết quả là NA.

Như vậy, để biến số MyDepartment có thể trả về các giá trị riêng cho từng nhóm người sử dụng khác nhau thì cách thiết lập như Ví dụ 2 dưới đây.

Ví dụ 2: Tiếp theo Ví dụ 1, lúc này hệ thống có 3 Nhóm thao tác viên như sau:

Nhóm Marketing có mã là: MKT

Nhóm Sale có mã là: SALE

Nhóm Admin có mã là: ADM

Vào chức năng Biến số để định nghĩa các biến số như sau:

 Var Code

 Default Value

 Diễn giải

MyDepartment.MKT

Marketing

Mã phòng ban của người dùng là Marketing.

MyDepartment.SALE

Sale

Mã phòng ban của người dùng là Sale.

MyDepartment.ADM

Admin

Mã phòng ban của người dùng là Admin.

Nếu một người dùng thuộc nhóm MKT, khi chạy các chức năng trong Phoebus có sử dụng biến số MyDepartment thì kết quả trả về sẽ là Marketing.

Nếu một người dùng thuộc nhóm SALE, khi chạy các chức năng trong Phoebus có sử dụng biến số MyDepartment thì kết quả trả về sẽ là Sale.

Nếu một người dùng thuộc nhóm ADM, khi chạy các chức năng trong Phoebus có sử dụng biến số MyDepartment thì kết quả trả về sẽ là Admin.

<%EXTOGGLE%>Biến số theo mã thao tác viên

Ví dụ 3 dưới đây sẽ miêu tả và hướng dẫn cách thiết lập một biến số chạy theo mã thao tác viên.

Ví dụ 3: Tiếp theo Ví dụ 2, nhưng trong tình huống nhóm MKT được chia ra như sau:

Phòng Marketing ở Trụ sở chính (Head Office)

Phòng Marketing ở công ty con (Site)

Và trong hệ thống có 2 Thao tác viên (người dùng) là:

TK1 - Anh Xuân thuộc phòng MKT HO

TK2 - Chị Thu thuộc phòng MKT Site

Cả 2 người dùng này đều thuộc nhóm MKT, theo Ví dụ 2 trên đây, khi họ mở Dashboad thì kết quả trả về sẽ cùng là Marketing.

Nhưng trong tình huống này, yêu cầu phải trả về kết quả là TK1 - phòng MKT HO, và TK2 - phòng MKT Site.

 

Để đáp ứng yêu cầu trên, người thiết kế hệ thống có thể tạo 2 Nhóm thao tác viên khác nhau là:

MKT1 - nhóm thao tác viên MKT HO

MKT2 - nhóm thao tác viên MKT Site

Tuy nhiên, khi làm theo phương pháp này sẽ có các nhược điểm sau:

- Nếu tạo nhiều nhóm thao tác viên, phải tiến hành Phân quyền cho các nhóm

- Số lượng nhóm thao tác viên nhiều sẽ khó khăn trong việc quản lý

Vậy người thiết kế làm cách nào để giải quyết yêu cầu này tốt nhất?

Dùng Biến số theo người sử dụng

Các nhược điểm trên sẽ được khắc phục một cách dễ dàng, hệ thống cho phép tạo Biến số riêng theo tài khoản người dùng.

Lúc này, vào chức năng Biến số để định nghĩa thêm các biến số như sau:

 Var Code

 Default Value

 Diễn giải

MyDepartment.MKT.TK1

MarketingHO

Mã phòng ban của thao tác viên TK1 là Marketing Head Office.

MyDepartment.MKT.TK2

MarketingSite

Mã phòng ban của thao tác viên TK2 là Marketing Site.

TK1 - anh Xuân khi chạy các chức năng trong Phoebus có sử dụng biến số MyDepartment thì kết quả trả về sẽ là MarketingHO.

TK2 - chị Thu khi chạy các chức năng trong Phoebus có sử dụng biến số MyDepartment thì kết quả trả về sẽ là MarketingSite.

 

Cách sử dụng Biến số

Các cánh sử dụng Biến số trong Phoebus được tóm tắt trong bảng sau:

 Áp dụng cho

 Tên Tag

 Cú pháp

 Diễn giải

Dashboard

GetVar

<#GetVar(VarCode)>

Giá trị Defaul Value của biến số VarCode sẽ truyền vào tham số khi chạy dashboard.

Công thức tính toán

GetVar

GetVar(VarCode)

Giá trị Defaul Value của biến số VarCode sẽ truyền vào tham số khi thực thi các công thức tính toán.

Câu lệnh Phoebus URL

&Parameter=

DDB?id=DDBCode&P1=[VarCode]

Giá trị Defaul Value của biến số VarCode sẽ truyền vào tham số P1 khi Phoebus thực hiện câu lệnh.

 

Các trường hợp ứng dụng và sử dụng Biến số trong Phoebus được hướng dẫn chi tiết hơn trong các mục dưới đây:

<%EXTOGGLE%>Trong Dashboard

Để chạy một Biến số từ excel template trên dashboard, sử dụng tag GetVar.

Xem thêm chi tiết các tag dùng trong báo cáo tại chức năng Report Tag Syntax (pbs.BO.ReportTags.Syntax)

var_002_zoom30

Cú pháp của tag GetVar như sau: <#GetVar(VarCode)>

Ý nghĩa: lấy ra giá trị biến số dựa vào VarCode tương ứng với tài khoản người dùng/nhóm của người dùng.

 

Trong Ví dụ 1 của bài viết này, khi dùng tag <#GetVar(MyDepartment)> trong báo cáo, hệ thống sẽ trả về kết quả là NA.

Trong Ví dụ 2 của bài viết này, nhóm MKT khi dùng tag <#GetVar(MyDepartment)> trong báo cáo, hệ thống sẽ trả về kết quả là Marketing.

Trong Ví dụ 3 của bài viết này, người dùng có mã TK1 khi dùng tag <#GetVar(MyDepartment)> trong báo cáo, hệ thống sẽ trả về kết quả là MaketingHO.

<%EXTOGGLE%>Trong công thức tính toán

Đối với các công thức tính toán trong Phoebus, ví dụ trong các bảng dữ liệu (grid), để sử dụng Biến số cần thực hiện như sau:

1. Thêm cột tính toán trong bảng dữ liệu

Tại bất kỳ bảng dữ liệu nào, chèn thêm cột bằng cách click chuột phải vào thanh tiêu đề của bảng, chọn AddColumn.

Sau đó, một hộp thoại nhỏ xuất hiện để điền tên cột, chú ý đặt tên cột không khoảng trắng. Bấm OK để tạo cột tính toán.

var_003_zoom25

Lúc này hệ thống sẽ hiện cửa sổ Expression Editor - Trình soạn thảo biểu thức.

var_004_zoom30

Hoặc đối với các cột có sẵn, để mở Expression Editor bằng cách click chuột phải vào tiêu đề bảng dữ liệu, chọn Column:ColumnName

Hệ thống xuất hiện cửa sổ Properties, chọn Data\UnboundExpression.

 

2. Chọn hàm GetVar() sử dụng biến số để tính toán

Tại cửa sổ Expression Editor, chọn hàm GetVar()

var_004_zoom30

Cú pháp sử dụng như sau: GetVar(VarCode)

Ý nghĩa: lấy ra giá trị biến số dựa vào VarCode tương ứng với tài khoản người dùng/nhóm của người dùng.

 

Trong Ví dụ 1 của bài viết này, khi dùng công thức GetVar(MyDepartment) trong báo cáo, hệ thống sẽ trả về kết quả là NA.

Trong Ví dụ 2 của bài viết này, nhóm MKT khi dùng công thức GetVar(MyDepartment) trong báo cáo, hệ thống sẽ trả về kết quả là Marketing.

Trong Ví dụ 3 của bài viết này, người dùng có mã TK1 khi dùng công thức GetVar(MyDepartment) trong báo cáo, hệ thống sẽ trả về kết quả là MaketingHO.

<%EXTOGGLE%>Trong câu lệnh Phoebus URL

Khi sử dụng các lệnh Phoebus Command để một dashboard sử dụng biến số như một tham số đầu vào.

Cú pháp như sau: DDB?id=DDBCode&P1=[VarCode]

Trong đó:

DDB?id=DDBCode: cú pháp mở dashboard.

&P1=[VarCode]: truyền tham số P1 theo VarCode để gọi ra giá trị của biến số tương ứng với tài khoản người dùng/nhóm của người dùng.

 

Trong Ví dụ 1 của bài viết này, khi dùng lệnh DDB?id=0001&P1=[MyDepartment] trong để gọi dashboard 0001, hệ thống sẽ trả về kết quả với P1 là NA.

Trong Ví dụ 2 của bài viết này, nhóm MKT khi dùng lệnh DDB?id=0001&P1=[MyDepartment] trong báo cáo, hệ thống sẽ trả về kết quả là Marketing.

Trong Ví dụ 3 của bài viết này, người dùng có mã TK1 khi dùng lệnh DDB?id=0001&P1=[MyDepartment] trong báo cáo, hệ thống sẽ trả về kết quả là MaketingHO.

 

 

________________________

Updated date: 19/04/2016