Transform - Chuyển đổi dữ liệu

Introduction


Transform là tính năng dùng để chuyển đổi 1 dạng dữ liệu sang một dạng khác. Transform có thể được dùng theo nhiều cách khác nhau:

  1. Tạo 1 mẩu tin từ một mẩu tin khác.

  2. Sử dụng trong các tính năng tạo dữ liệu tự động như Collection, Generate Payment, Generate Revenues v.v

  3. Sử dụng bởi consultant để tạo và chuyển đổi các nguồn dữ liệu cần thiết và dùng chúng như preset hoặc edit list.

  4. Transform được dùng thường xuyên trong các tính năng nhập liệu định kỳ hàng loạt như:

Ở các tính năng này Transform đóng vai trò chuyển đổi 1 bảng dữ liệu nguồn thành dữ liệu dạng TimeSheet , Payroll , Meter, Bill

Usage


image0

Update in v 4.5.5.534:

Transform có thêm option Remove UnMapped Fields dùng để bỏ đi những cột không được map khỏi kết quả. Ta dùng tính năng này khi dữ liệu transform làm preset để tạo mẩu tin mới. Các cột không được map có kết quả trống có thể ghi đè lên kết quả tính toán bởi Calculation Rules của mẩu tin mới được tạo ra.

Nếu dùng kết quả này cho Data interface target, ta lại cần điều ngược lại. Data interface Setup sẽ cần đầy đủ các field để định hình nên dữ liệu đích.

image1

Trong thiết lập trên, Dữ liệu được chuyển đổi từ Các dòng truy vấn sổ công nợ BĐS thành các nhật ký thu tiền

Cột Diễn giải
Key Sau khi chọn Target Class Name (cấu trúc dữ liệu ta muốn tạo ra từ nguồn), bảng mapping bên dưới sẽ được thêm vào các cột tương ứng với các trường của Target.

Ta cũng có thể thêm các Trường khác vào nếu muốn. Nhưng không được trùng tên với 1 trường đang tồn tại.
Transform Value + Có thể là hằng số. Hằng số được bao trong dấu nháy đơn ' '

+ Có thể là 1 trường của nguồn, trường của nguồn được bao trong ngoặc vuông [ ]

+ Có thể là các tham số khai báo trên Ô Variables. tham số được bao trong ngoặc vuông cũng [ ]

+ Có thể là công thức, công thức bắt đầu bằng dấu bằng =.

Để viết công thức ta dùng Expression Editor bằng cách bấm F5

image2

Nếu bảng nguồn có thể xác định được danh sách các cột dữ liệu. Chúng sẽ được hiện ra trong Expression Editor. Đa số các class của chương trình đều hiện được các cột dữ liệu.

Ngoại trừ một số nguồn dữ liệu được lấy từ User Table (pbs.BO.Data.xxxxxxx) có thể chương trình sẽ không lấy được các cột tại thời điểm design. Khi đó ta phải test thử và ghi chú các cột ra ngoài, rồi chủ động điền chúng vào công thức như các cột khác.

Lý do các user table này không lấy được các cột của nó là các cột này chỉ biết được sau khi chạy. Ta không thể chạy mỗi khi edit 1 ô dữ liệu vì thời gian chạy có thể kéo dài.

Transform của hệ thống.


Chương trình có sử dụng các transform để cho phép consultant thay đổi cách biến đổi dữ liệu trong các chứn năng của hệ thống. Ví dụ khi bấm nút tạo khách hàng từ HR Candidate, chương trình sẽ ngầm sử dụng 1 transform profile tên CAN2CUS

Nếu CAN2CUS không tồn tại, chương trình sẽ tạo ra CAN2CUS nhưng nội dung mapping không có gì cả. Nếu consultant muốn thay đổi quy tắc tạo Customer từ Candidate, họ có thể edit profile này để thay đổi cách hoạt động ngầm định.

Trong chương trình ta sẽ gặp rất nhiều các profile dạng AAA2BBBB. Chúng đều được tạo tự động bởi chương trình khi tính năng liên quan được sử dụng lần đầu. Ý nghĩa code là quy tắc chuyển từ loại thông tin AAA sang loại thông tin BBBB

Chú ý: Trong một vài trường hợp đặc biệt, End User sẽ cung cấp thêm các tham số khi chạy các profile transform này . Ví dụ trong câu lệnh sau :

pbs.bo.re.arj?JrnalType=OR&$Transform=COLOTH&$Range=Y&P1=[Q001]&$survey=AMT&PropertyId=[PropertyId]&ContractId=[ContractId]&ClientId=[ClientId]&AnalR1=338800&AnalR4=[AnalR4]&Descriptn=Thu phí phạt đợt +[InstallmentNo]

Một nhật ký sẽ được tạo ra từ các dòng truy vấn tài khoản được chọn, dùng transform profile COLOTH. Trước khi chạy Phoebus sẽ mở Survey Definition AMT để user nhập số tiền vào.

Số tiền này sẽ kết hợp với các dòng đã chọn tạo thành nguồn chuyển đổi. Ta thấy trong thiết lập chuyển đổi có sử dụng biến số [P1] ở ô Amount.

Các biến số kết hợp phải được khai báo trước trong profile chuyển đổi. Điều này cần thiết để hệ thống phân biệt các biến số tham gia chuyển đổi [P1] giữa các biến số khác như ContractId,ClientId .v.v vốn dùng cho mục đích khác.

Sử dụng transform profile khi tạo mới mẩu tin hoặc workflow task


Khi muốn tạo mẩu tin mới hoặc workflow task mới từ lệnh chuột phải của lưới dữ liệu (grid). Bênh cạnh VUH Ta có thể dùng Transform để convert dòng đang chọn thành preset cho mẩu tin mới cần tạo.

Cú pháp :

pbs.BO.XX.XXXX?$transform=XXX2YYY&$range=Y

pbs.BO.WF.NewDocument?$Pbf=FormCode&$transform=XXX2YYY&$range=Y

Khi đó chương trình sẽ dùng transform profile XXX2YYY chuyển đổi dòng dữ liệu đanh chọn thành preset để áp dụng cho mẩu tin mới đang cần tạo.

Sử dụng transform với câu lệnh phoebus URL


Cú pháp sử dụng đối với các Target class là Reference Info

Quy tắc transform có thể được sử dụng trong các trường hợp sau:

  Cú pháp sử dụng quy tắc chuyển đổi dữ liệu:

pbs.BO.Rules.Transform?id=ProfileId&SourceId=ABC&$show=Y&$action=run
Parameter Diễn giải
pbs.BO.Rules.Transform Lệnh chuyển đổi dữ liệu.
?id=ProfileId Cung cấp Mã profile chuyển đổi dữ liệu (Transform Code), đây là yếu tố quan trọng thứ nhất. Khi khai báo ProfileId, chương trình sẽ biết được cần chuyển từ kiểu dữ liệu nào sang kiểu dữ liệu nào.
&SourceId=ABC Tiếp theo, cần cung cấp thông tin về mẫu tin nguồn, tức là muốn chuyển mẫu tin nào. Khai báo những tiêu chí để lấy được mẫu tin nguồn ra, cụ thể những tiêu chí đó phải filter theo Key Field của kiểu dữ liệu nguồn, ví dụ:

- &ContactId=____ nếu mẫu tin nguồn từ Contact.

- &EmplCode=____ nếu mẫu tin nguồn từ Employee

- &Catelogy=&Code= nếu mẫu tin nguồn từ Lookup

- ...
&$show=Y Tùy chọn:

- Nếu để &$show=Y: sau khi chương trình chuyển đổi sang mẫu tin mới xong sẽ mở cửa sổ form nhập liệu của mẫu tin mục tiêu để người dùng có thể xem, sửa hoặc bổ sung các trường thông tin bắt buộc nếu mẫu tin mục tiêu chưa hợp lệ.

- Nếu không để show=Y: hệ thống sẽ lưu mẫu tin mục tiêu nếu có đầy đủ thông tin cần thiết mà không hiện lên cửa sổ form mục tiêu.

- Nếu không để show=Y: trường hợp mẫu tin được chuyển đổi chưa hợp lệ, thiếu các thông tin bắt buộc, thì hệ thống vẫn sẽ mở cửa sổ form nhập liệu mẫu tin mục tiêu để người dùng điền vào các trường thông tin bắt buộc.
&$action=run Action để câu lệnh thực thi.

  Ví dụ: tạo một Profile Transform để chuyển dữ liệu từ tính năng Contact Record sang tính năng Name and Address.

Sau đó, sử dụng câu lệnh để chuyển một mẫu tin Contact Record có mã là NTL thành một mẫu tin mới của tính năng Name and Address:

pbs.BO.Rules.Transform?id=CNTNA&ContactId=NTL&$Show=Y&$action=Run

Cửa sổ nhập liệu của mẫu tin mục tiêu hiện ra với các giá trị theo các cột đã được định nghĩa, bấm Save để hoàn tất.

Chú ý: Câu lệnh transfrom $action=Run chỉ chạy để chuyển dữ liệu từ 1 mẩu tin reference sang 1 mẩu tin khác

Lý do là Transform sẽ căn cứ vào loại dữ liệu nguồn (source class) và id (key) của mẩu tin nguồn cần transform. Các nguồn dạng truy vấn không sử dụng được lệnh dạng $action=run

Transform sẽ xác định nguồn bằng SourceClass.GetBO(combinedkey)

pbs.BO.LA.ALQ không biết combined key của mẩu tin sổ cái. và pbs.BO.LA.LQ không implement GetBO(combinedkey) nên không xác định được nguồn

Module :


pbs.BO.Rules


Updated on : 2020-04-03 00:26:12. by : at T470-01.

Topic : Transformation Rules. pbs.bo.rules.transform