Nhập liệu theo nhóm (Batch Posting)

Navigation:  Các công cụ phát triển phần mềm > Nhập liệu (Data Entry) >

Nhập liệu theo nhóm (Batch Posting)

Previous pageReturn to chapter overviewNext page
Show/Hide Hidden Text

Nhập liệu theo nhóm là gì?

Khi nhập liệu vào chương trình, người sử dụng gặp khó khăn khi nhập lượng dữ liệu khổng lồ theo từng nhóm, vấn đề này có thể giải quyết bằng cách dùng phương pháp tải nhập vào tính năng thông qua excel template. Tuy nhiên, việc tải nhập lại gặp khó khăn trong quá trình cập nhật khi phát hiện có lỗi sai và cần chỉnh sửa lại. Nhưng với số lượng dữ liệu lớn, việc chỉnh sửa hoặc xóa sẽ làm mất nhiều thời gian cho người sử dụng, mặc khác cũng có thể gặp sai sót.

Vấn đề trên sẽ được giải quyết một cách triệt để bằng chức năng Nhập liệu theo nhóm (Batch Posting). Đây là một tính năng của Phoebus cho phép nhập dữ liệu hàng loạt theo từng nhóm, người dùng sẽ nhập liệu các nhóm dữ liệu thông qua tính năng này thay vì nhập trực tiếp từng bản ghi (Record) tại từng kiểu dữ liệu (tính năng) nào đó.

Mục đích của chức năng Nhập liệu theo nhóm dùng để:

 nhập dữ liệu hàng loạt theo nhóm, một lần post được nhiều dòng

 gọi lên để chỉnh sửa, thêm dòng hoặc xóa dữ liệu hàng loạt dễ dàng

 có thể áp dụng cho tất cả các kiểu dữ liệu (tính năng) trong Phoebus

 

flag_green        Cấu trúc hệ thống

 

Tên bảng trong CSDL: dbo.pbs_BATCH_PWF

Mỗi LineNo là một lần post cho các gói dữ liệu.

Ví dụ: nhập ngân sách cho năm X, project A ...

Cách thiết lập nhập liệu theo nhóm

Để tạo hồ sơ (profile) nhập liệu theo nhóm, cần thiết lập các bước sau:

<%EXTOGGLE%>Batch Profile - Thiết lập nhập liệu theo nhóm

tipbulb           pbs.BO.BPP

Câu lệnh mở Thiết lập nhập liệu theo nhóm.

1.Để định nghĩa Nhập liệu theo nhóm (Batch Profile), vào chức năng pbs.BO.BPP

2.Bấm nút Tạo mới nut_new_zoom70 để định nghĩa mới một batch profile, hoặc chọn các batch profile đã có để Chỉnh sửa nut_edit_zoom70

batch_001_zoom55

 

Các trường thông tin có trong giao diện Thiết lập nhập liệu theo nhóm như sau:

Header

Các thiết lập cho một profile nhập liệu theo nhóm.

Batch Profile

Đặt mã cho batch profile.

Diễn giải

Nhập diễn giải cho batch profile.

Kiểu dữ liệu (*)

Chọn kiểu dữ liệu đích: batch profile này hoạt động dưới loại dữ liệu nào? Nghĩa là chương trình sẽ xử lý, ghi chép hàng loạt những dòng dữ liệu vào kiểu dữ liệu (tính năng) được chọn ở mục này.

Khi chọn Kiểu dữ liệu xong, bấm phím Tab hoặc Enter --> những cột thuộc kiểu dữ liệu này sẽ được lấy ra ở phần Detail bên dưới.

Tạm treo

Tình trạng của batch profile:

  (Working): đang hoạt động

S (Record Suspended): tạm treo

C (Record Closed): đóng

Nhóm truy cập

Chọn nhóm thao tác viên được phép truy cập batch profile.

Allows Add Existing Children Record

Form Batch dùng để nhập hàng loạt các mẫu tin mới, bật Allows Add Existing Children Record ON trong trường hợp form batch dùng để cập nhật trạng thái cho những mẫu tin đã có trong hệ thống (cho phép thêm những mẫu tin đã tồn tại vào trong batch để cập nhật trạng thái), chứ không phải dùng batch này để tạo mới. Điều này thực hiện được khi người dùng thêm dòng bằng lệnh chuột phải.

Ví dụ: Tình huống đơn hàng, xuất đơn hàng bán 5 hàng hóa. Thực tế kho chỉ xuất đi 3 hàng hóa. --> Mở batch xuất kho mới, dùng lệnh chuột phải để chọn batch đơn hàng cần xuất và chọn 3/5 dòng vào batch, lưu batch. Tác dụng của batch xuất kho này là sẽ cập nhật trạng thái cho 3 dòng của đơn hàng (trạng thái của 3 hàng hóa được xuất sẽ được cập nhật theo trạng thái của Header), nghĩa là trong 5 dòng của đơn hàng ban đầu, có 3 dòng đã xuất đi.

Tóm lại, trong ví dụ trên có 2 batch được đề cập:

Batch 1: batch đơn hàng, được tạo mới để thêm 5 hàng hóa nhập vào PO.

Batch 2: batch xuất kho, được dùng để cập nhật trạng thái cho batch 1, đánh dấu 3/5 dòng chi tiết đã xuất rồi, không phải để tạo mới. Ở batch 2 này, Allow Add Existing Children Record bật ON.

Phần này thiết lập theo trạng thái (Status), tùy theo Status được mapping vào đâu trên Header.

Remove Children From Batch Instead Of Delete

Khi batch được sử dụng như xử lý trạng thái, bật Remove Children From Batch Instead Of Delete ON trong trường hợp yêu cầu chỉ thay đổi trạng thái chứ không được xóa mẫu tin này. Nghĩa là chỉ có thể loại bỏ (remove) các dòng ở giao diện batch nhưng không thể xóa (delete) các mẫu tin đã được ghi nhận trong kiểu dữ liệu đích.

Như vậy, khi làm động tác loại bỏ dòng trong batch, hệ thống sẽ gỡ bỏ Batch No được lưu chứ không xóa mẫu tin trong kiểu dữ liệu đích.

Ví dụ: tiếp theo tình huống trên, khi kiểm tra hàng thấy chỉ còn đủ xuất 2/3 hàng hóa, lúc này người dùng cần xóa 1 hàng hóa thiếu trong 3 hàng hóa đã làm thao tác xuất. --> Trường hợp này, không thể xóa dữ liệu đã ghi nhận trong kiểu dữ liệu đích, mà chỉ có thể loại bỏ ở giao diện batch xuất kho (batch 2).

Preset Data Source URL

Khi mở một form batch, trong nhiều trường hợp sẽ gọi từ một danh sách có sẵn, nghĩa là điền trước nội dung của batch đó. Ví dụ: Tạo 1 batch Điểm danh số học sinh đi học của một lớp học, thì khi mở batch phải điền sẵn danh sách học sinh của lớp cần điểm danh.

Nội dung tiền định chỉ được thiết lập cho bảng Detail. Để dùng được cần thực hiện 2 bước:

Preset Data Source URL: định nghĩa nguồn dữ liệu dùng làm tiền định cho batch bằng câu lệnh mô tả cách lấy dữ liệu như

-  từ tính năng pbs.BO.____?____&____

-  hoặc template report?id=____&$range=____

-  hoặc QD?Id=____

-  có thể kết hợp cùng Survey để truyền tham số động.

Mapping Column: do cấu trúc của bảng nguồn dùng làm tiền định không giống với cấu trúc của kiểu dữ liệu đích trong batch, nên bước mapping này sẽ xác định sao chép cột nào trên bảng tiền định vào cột nào trong bảng kiểu dữ liệu đích. Thao tác mapping tại cột Mapping Column cho các cột được đánh dấu Is Detail ở Detail Table (nếu là form batch thông thường), hoặc Matrix Field (nếu là form batch ma trận).

Batch No Field Name

Khi xử lý batch (Save/Post) thì lưu số batch number vào ô này, nên bắt buộc phải chọn một ô thuộc (*) để lưu.

Mục đích để gọi lên những dòng thông tin liên quan đến batch profile. Nếu thiếu bước này, hệ thống sẽ không biết batch đã lưu sẽ có những gì.

Lưu ý: cột này bắt buộc phải là định dạng chuỗi (text) hoặc số nguyên (integer).

Save Actions

This command will run after a batch is posted. Use this for transform batch data in form of multi value column (month 1..12) to 12 rows.

Lệnh này sẽ chạy sau khi một batch được ghi nhận. Sử dụng điều này để biến đổi hàng loạt các cột giá trị trong batch form (tháng 1..12) đến 12 dòng.

Delete Actions

Lệnh này sẽ chạy sau khi một batch được xóa.

Detail Table

Sau khi chọn Kiểu dữ liệu (*) trên phần Header thì phần Detail Table sẽ hiển thị tất cả các cột của Kiểu dữ liệu đã chọn.

Priority No

Thứ tự các cột dữ liệu.

Tên cột

Tên các cột dữ liệu.

Diễn giải

Diễn giải cho các cột dữ liệu.

Is Master

Khi nhập liệu ở form batch, có những thông tin chung trên phần header được lặp lại cho tất cả những dòng bên dưới bảng detail. Những cột dùng làm header này sẽ được đánh dấu nut_tick Is Master.

Tại form nhập liệu, các cột khi đã được chọn lấy thông tin từ Master thì không cần phải thể hiện ở phần Detail bên dưới nữa.

Is Detail

Những cột dữ liệu mặc định được chọn là nut_tick Is Detail, nhập liệu dưới phần detail của form.

Copy From Master

Chọn nut_tick cho những cột ở bảng chi tiết sao chép dữ liệu được nhập trên phần Header.

Mapping Column

Mapping Column được dùng để mapping các cột dữ liệu ở phần Detail Table đối với một profile Batch thông thường.

Việc mapping này giữa Kiểu dữ liệu đích và các cột của bảng Batch (pbs.BO.BPH) hoặc các cột của bảng dữ liệu tiền định (Preset Data Source URL), do cấu trúc của các bảng này không giống với cấu trúc của kiểu dữ liệu đích.

Có 2 loại dạng mapping tại cột Mapping Column của Detail Table:

Mapping cho các cột Is Master: Cấu trúc Header trên form chính là nội dung các cột dữ liệu cố định của Batch (pbs.BO.BPH), các cột này sẽ được mapping vào các cột dữ liệu của Kiểu dữ liệu đã chọn.

Mapping cho các cột Is Detail: Đây là bước xác định sao chép cột nào trên bảng tiền định (Preset Data Source URL) vào cột nào trong bảng kiểu dữ liệu đích.

 

 

<%EXTOGGLE%>Form Batch - Nhập liệu theo nhóm

tipbulb           pbs.BO.BPH/SubForm

Câu lệnh mở Form nhập liệu theo nhóm.

Chú ý: SubForm chính là Batch Profile đã được định nghĩa ở bước đầu tiên (pbs.BO.BPP)

Vào chức năng pbs.BO.BPH/SubForm, trong ví dụ này sẽ là pbs.BO.BPH/BUDGET

Theo mặc định, màn hình Danh sách Form nhập liệu theo nhóm sẽ liệt kê danh sách tất cả các lần đã đưa dữ liệu vào hệ thống của các loại Batch Profile (SubForm).

Form nhập liệu theo nhóm (pbs.BO.BPH/subForm) gồm có 2 phần là Header và Detail, hình dưới đây minh họa một Form Bacth đã được thiết kế:

batch_004_zoom25

Header: Cấu trúc phần Header gồm tất cả các trường dữ liệu của Batch, bảng này cố định cho tất cả các loại thông tin, cho dù dùng Batch để post loại thông tin gì vào hệ thống thì phần Header này cũng luôn cố định. Các trường dữ liệu này sẽ được mapping vào các trường của Kiểu dữ liệu đích. Tại Batch Profile, đối với các trường được đánh dấu Is Master thì khi nhập từ Header sẽ được sao chép xuống các dòng ở bảng Detail của Form Batch.

Trong ví dụ của bài viết này, phần Header được mapping dùng chung cho các mẫu tin bên dưới gồm:

Form Batch

Kiểu dữ liệu (pbs.BO.PCM.BIV)

Số n.ký (Batch No)

Số phiếu (ReferenceNo)

Batch Date

Ngày hiệu lực (EffectiveDate)

Kỳ kế toán (Period)

Kỳ kế toán (Period)

Detail: Cấu trúc phần Detail gồm tất cả các trường của Kiểu dữ liệu đích, các trường này được xắp xếp dưới dạng bảng, người dùng sẽ nhập mỗi dòng là một mẫu tin được ghi nhận khi batch được post vào hệ thống.

 

Thiết kế Form Batch bằng cách sử dụng các Các công cụ thiết kế form như các form tính năng khác.

1.Bấm nút Tạo mới nut_new_zoom60 trên góc phải. Nếu là lần đầu mở form, màn hình form nhập liệu mặc định đầy đủ với:

Phần trên là các trường dữ liệu của Form Batch (Header)

Phần bảng dữ liệu bên dưới chứa các trường của Kiểu dữ liệu đích (Detail), bảng này có thể bị ẩn đi do có nhiều trường của phần Header, để hiển thị phần bảng cần thiết kế lại form để sắp xếp hoặc ẩn bớt các mục phía trên.

batch_002_zoom15 batch_003_zoom15

2.Tiến hành thiết kế form, ẩn đi các trường dữ liệu không cần thiết ở cả 2 phần Header và Detail
Sau khi thiết kế xong, Lưu mẫu form bằng cách bấm dấu nut_close_zoom60, chọn mở lại Batch Profile và thực hiện nhập liệu, bấm nút Save nut_save_zoom60 để ghi nhận vào hệ thống.

batch_004_zoom20

 

Đây là một trong những ưu điểm lớn nhất của việc sử dụng Nhập liệu theo nhóm, dễ dàng gọi lên các nhật ký đã được ghi nhận để chỉnh sửa/thêm dòng/xóa dòng/xóa nhật ký ... bằng cách chọn đúng Batch No của mỗi batch number, sau đó bấm nút Chỉnh sửa nut_edit_zoom60, thực hiện các thao tác sửa/thêm/xóa và Lưu nut_save_zoom60 lại. Các mẫu tin ngay lập tức sẽ được cập nhật vào hệ thống.

flag_green        Cấu trúc hệ thống

 

Mỗi Batch Profile được tạo ra để post nhiều dòng dữ liệu vào hệ thống. Mỗi lần post, hệ thống sẽ ghi nhận một Batch Number.

Batch Number này còn được mapping vào Kiểu dữ liệu bằng cách thiết lập tại Batch No Field Name (phần Định nghĩa Batch Profile: pbs.BO.BPP).

 

 

________________________

Updated date: 21/04/2016