1. Card (Mô tả tính năng)
Là chuyên viên kế hoạch tổng hợp, Tôi muốn đồng bộ thông tin hợp đồng đang quản lý tại BPM về SAP
2. Confirmation/ Acceptance Criteria (Tiêu chí nghiệm thu)
- Tôi muốn đồng bộ thông tin hợp đồng về SAP bao gồm các thông tin:
- Loại hợp đồng*
- Nhà thầu*
- Ngày tạo HĐ*
- Tổ chức mua hàng*
- Phòng ban thực hiện*
- Ngày hiệu lực*
- Ngày hết hạn*
- Tổng GTHĐ trước thuế*
- Đơn vị tiền tệ
- Tỷ giá
- Số HĐ gốc
- Mã HĐ/PL
- Ngày ký
- Ngày bắt đầu hiệu lực
- Ngày hết hạn bảo hành
- Dự án
- Tình trạng
- Nội dung hợp đồng
- Tiến độ thực hiện (Ngày)
- Thông tin chi tiết hàng hóa
- Mã thuế
- Số thứ tự line tổng quan*
- Loại HĐ đặc biệt 1*
- Loại HĐ đặc biệt 2*
- Tên Dịch vụ/Hạng mục tổng quan*
- Kho/Đơn vị*
- Nhóm công việc (Nhóm vật tư/dịch vụ* )
- Số thứ tự line chi tiết*
- Tên Dịch vụ/Hạng mục chi tiết*
- Khối lượng*
- Đơn vị tính*
- Đơn giá*
- Khoản mục phí (Thêm trên BoQ)
- Hạng mục
- Phòng ban KD: Để sẵn, hiện tại với XDCB chưa dùng đến
- Phòng ban VPTĐ: Để sẵn, hiện tại với XDCB chưa dùng đến
- Tài sản: Để sẵn, hiện tại với XDCB chưa dùng đến
- Validity start date of the condition record ( Truyền theo thông tin ngày hiệu lực)
- ID danh mục tích hợp
- Tôi muốn đồng bộ thông tin hợp đồng sang hệ thống SAP theo sự kiện khi có thông tin hợp đồng cập nhật tại BPM
- Tôi muốn trong trường hợp update hợp đồng, BPM truyền bổ sung thông tin Mã hợp đồng SAP để SAP so sánh theo mã hợp đồng SAP
- Tôi muốn quản lý được lịch sử đồng bộ danh mục
- Thời gian băt đầu
- Thời gian kết thúc
- Người đồng bộ
- Trạng thái
- Mã lỗi
- Mô tả lỗi
- Số hợp đồng BPM
- Số hợp đồng SAP (Có data khi đẩy sang SAP thành công)
- Tôi muốn lọc được thông tin lịch sử đồng bộ theo
- Ngày: Từ- Đến
- Người đồng bộ
- Số hợp đồng BPM
- Số hợp đồng SAP
- Trạng thái
- Mã lỗi
- Thông tin mapping các trường tích hợp tại file: Mapping_SAP_QLHD.docx
3. Conversation (Mô tả chi tiết)
3.1 UIUX:
3.2 Luồng:
3.3 API Spec: <gắn link tài liệu mô tả API vào đây>
Method | POST | URL | /integration/partnerSyncLog/list |
|---|
Description | API Lấy thông tin lịch sử đông bộ |
|---|
Note | API mới |
|---|
1. HeadersSTT | Field | Source Data Type / Length | Description | Sample Values |
|---|
| 1 | authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzOTgyNDUsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.qRoaRDxjqyWS-3Az_ZqLmR0KAcPTM7jXggW1Ja5wpEc |
2. Request bodySTT | Field | Required | Data Type / Length | Description | Note |
|---|
| 1 | errorCode | false | String | mã lỗi |
| | 2 | page | false | Integer | Trang dữ liệu (phân trang) |
| | 3 | limit | false | Integer | Số bản ghi mỗi trang |
| | 4 | startTime | false | String | Thời gian đồng bộ ("2026-02-26") |
| | 5 | endTime | false | String | Thời gian đồng bộ ("2026-02-26") |
| | 6 | syncBy | false | Integer | Người đồng bộ |
| | 7 | type | false | String | loại (PROJECT: dự án...) |
| | 8 | status | false | Integer | trạng thái |
| | 9 | addition | false | Object |
|
| | 10 | (addition) contractNo | false | String | số hợp đồng |
| | 11 | (addition) sapContractNo | false | String | Số hợp đồng SAP |
|
3. Response / Incoming Data Specification| STT | Field | Data Type / Length | Description | Note |
|
|---|
| 1 | code | Integer | 0: thành công, != 0 thất bại |
|
| | 2 | message | String |
|
|
| | 3 | result | List<Object> |
|
|
| | 4 | (result) page | Integer | trang bao nhiêu |
|
| | 5 | (result) total | Integer | số lượng bản ghi |
|
| | 6 | (result) items | List<Object> | danh sách bản ghi |
|
| | 7 | (items) id | Integer | id |
|
| | 8 | (items) endTime | String | thời gian kết thúc đòng bộ |
|
| | 9 | (items) errorCode | String | mã lỗi |
|
| | 10 | (items) String | String | chi tiết lỗi |
|
| | 11 | (items) startTime | String | Thời gian bắt đầu đồng bộ |
|
| | 12 | (items) status | Integer | trang thái |
|
| | 13 | (items) syncBy | String | người đồng bộ |
|
| | 14 | (items) addition | false | Object |
|
| | 15 | (addition) contractNo | String | số hợp đồng |
|
| | 16 | (addition) sapContractNo | String | Số hợp đồng SAP |
|
|
|
Method | POST | URL | /application/contractIntegrationSap/get |
|---|
Description | API Chi tiết thông tin gửi sang SAP |
|---|
Note | API mới |
|---|
1. HeadersSTT | Field | Source Data Type / Length | Description | Sample Values |
|---|
| 1 | authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzOTgyNDUsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.qRoaRDxjqyWS-3Az_ZqLmR0KAcPTM7jXggW1Ja5wpEc |
2. Request bodySTT | Field | Required | Data Type / Length | Description | Note |
|---|
| 1 | contractId | true | String | id hợp đồng |
|
3. Response / Incoming Data Specification| STT | Field | Data Type / Length | Description | Note |
|
|---|
| 1 | code | Integer | 0: thành công, != 0 thất bại |
|
| | 2 | message | String |
|
|
| | 3 | result | Object |
|
|
| | 4 | (result) id | Integer | id |
|
| | 5 | (result) projectId | Integer | id dự án |
|
| | 6 | (result) organizationId | Integer | id nhà thầu |
|
| | 7 | (items) contractTypeId | Integer | id loại hợp đồng |
|
| | 8 | (items) departmentId | Integer | id phòng ban thực hiện |
|
| | 9 | (items) errorCode | String | mã lỗi |
|
| | 10 | (items) String | String | chi tiết lỗi |
|
| | 11 | (items) startTime | String | Thời gian bắt đầu đồng bộ |
|
| | 12 | (items) status | Integer | trang thái |
|
| | 13 | (items) syncBy | String | người đồng bộ |
|
| | 14 | (items) addition | false | Object |
|
| | 15 | (addition) contractNo | String | số hợp đồng |
|
| | 16 | (addition) sapContractNo | String | Số hợp đồng SAP |
|
|
|
3.4 Mô tả các trường dữ liệu trên màn hình:
3.4.1 Màn hình danh sách tích hợp thông tin hợp đồng (SAP)
| Field (Trường dữ liệu) | Type (Kiểu dữ liệu) | Required (Bắt buộc) | Validation (Quy định) | Description (Mô tả) |
|---|
| 1 | STT | Số (Number) | Không bắt buộc | - Hệ thống tự động gán STT theo thời gian đồng bộ gần nhất: giao dịch đồng bộ gần nhận STT nhỏ hơn, giao dịch đồng bộ gần xa hơn nhận STT lớn hơn.
- Không cho phép người dùng thao tác tương tác (nhấn/chọn/sửa).
| Thể hiện thứ tự các bản ghi lịch sử đồng bộ màn hình "Tích hợp thông tin hợp đồng (SAP)" |
| 2 | Thời gian bắt đầu | Thời gian (date-time) | Không bắt buộc | - Hệ thống Tự động lấy dữ liệu khi hệ thống bắt đầu việc đồng bộ
| Thể hiện thời gian bắt đầu đồng bộ thông tin hợp đồng |
| 3 | Thời gian kết thúc | Thời gian (date-time) | Không bắt buộc | - Hệ thống Tự động lấy dữ liệu khi hệ thống kết thúc việc đồng bộ
| Thể hiện thời gian kết thúc đồng bộ thông tin hợp đồng |
| 4 | Người đồng bộ | Văn bản (Text)
| Không bắt buộc | | Thể hiện thông tin người đồng bộ thông tin hợp đồng |
| 5 | Trạng thái | Văn bản (Text) | Không bắt buộc | - Thể hiển trạng thái đồng bộ thông tin hợp đồng
+ Thành công: khi cập nhật thông tin thành công + Thất bại: khi cập nhật thông tin xảy ra lỗi + Đang thực hiện: khi hệ thống đang thực hiện cập nhật thông tin | Thể hiển trạng thái đồng bộ thông tin hợp đồng |
| 6 | Mã lỗi | Hyperlink | Không bắt buộc | - Cho phép người dùng nhấn xuất hiện pop-up xem chi tiết lỗi. Chi tiết 3.4.3
- Thể hiện mã lỗi hệ thống quy định trả về với trạng thái thất bại
| Thể hiện mã lỗi hệ thống trả về khi đồng bộ thất bại |
| 7 | Số hợp đồng | Văn bản (Text) | Không bắt buộc | Dữ liệu được lấy theo trường Số hợp đồng từ từ màn hình thông tin chi tiết quản lý hợp đồng 2502 - User Story - Menu quản lý hợp đồng theo quy trình (ver1) | Thể hiện tên số hợp đồng |
| 8 | Mã hợp đồng SAP | Văn bản (Text) | Không bắt buộc | Nguồn dữ liệu: Dữ liệu được lấy theo trường "Mã hợp đồng SAP" từ màn hình thông tin chi tiết đồng bộ thông tin hợp đồng SAP 5029 - User Story -Xử lý nhận kết quả tích hợp SAP và Cập nhật menu QLHĐ | Thể hiện tên mã hợp đồng SAP |
| 9 | Nút lọc | Nút chức năng (Button) | Không bắt buộc | - Cho phép người dùng nhấn để mở ra màn hình pop-up "Bộ lọc"
- Màn hình pop-up "Bộ lọc": tham chiếu mục 3.4.2. Màn hình pop-up "Bộ lọc".
| Thể hiện nút chức năng bộ lọc |
3.4.2. Màn hình pop-up "Bộ lọc"
| Field (Trường dữ liệu) | Type (Kiểu dữ liệu) | Required (Bắt buộc) | Validation (Quy định) | Description (Mô tả) |
|---|
| 1 | Tiêu đề bộ lọc | Nhãn hiệu (Label) |
|
| Thể hiển thị tiêu đề pop-up “Bộ lọc” |
| 2 | Khoảng thời gian | Ngày tháng năm (date) | Không bắt buộc | - Cho phép người dùng chọn khoảng thời gian từ ngày đến ngày đồng bộ thông tin hợp đồng
| Thể hiện thời gian lọc từ ngày đến ngày |
| 3 | Người đồng bộ | Lựa chọn (Droplist) | Không bắt buộc | | Thể hiện người thực hiện đồng bộ thông tin hợp đồng |
| 4 | Số hợp đồng | Văn bản (Text) | Không bắt buộc | - Cho phép người dùng nhập giá trị số hợp đồng
| Thể hiện tên số hợp đồng |
| 5 | Mã hợp đồng SAP | Văn bản (Text) | Không bắt buộc | - Cho phép người dùng nhập giá trị mã hợp đồng SAP
| Thể hiện tên mã hợp đồng SAP |
| 6 | Trạng thái | Lựa chọn (Droplist) | Không bắt buộc | - Cho phép người dùng chọn giá trị trạng thái tương ứng:
+ Thành công + Thất bại + Đang thực hiện + Tất cả (để mặc định) | Thể hiện trạng thái đồng bộ hợp đồng |
| 7 | Mã lỗi | Văn bản (Text) | Không bắt buộc | - Cho phép người dùng nhập mã lỗi đồng bộ thông tin không thành công
| Thể hiện thông tin mã lỗi khi đồng bộ thông tin |
| 8 | Nút "X" | Nút chức năng (Button) | Không bắt buộc | - Cho phép người dùng nhấn để hủy bỏ thao tác lọc.
- Khi nhấn, màn hình pop-up "Bộ lọc" đóng lại.
| Thể hiện nút "X" để hủy bỏ thao tác lọc. |
| 9 | Nút "Đặt lại" | Nút chức năng (Button) | Không bắt buộc | - Cho phép người dùng nhấn để đặt lại tất cả tiêu chí lọc về trạng thái mặc định ban đầu. - Hành vi hệ thống khi người dùng nhấn nút "Đặt lại" như sau: - Hành vi 1: Toàn bộ các trường trên màn hình pop-up "Bộ lọc" sẽ được chuyển về giá trị mặc định ban đầu.
- Hành vi 2: Màn hinh pop-up "Bộ lọc" vẫn được giữ trạng thái mở để người dùng có thể tiếp tục thao tác.
| Thể hiện nút đặt lại tất cả tiêu chí lọc về trạng thái mặc định ban đầu. |
| 10 | Nút "Áp dụng" | Nút chức năng (Button) | Không bắt buộc | - Cho phép người dùng nhấn để áp dụng những tiêu chí lọc đã chọn. - Hành vi hiển thị kết quả hệ thống khi người dùng nhấn nút "Áp dụng" như sau: - Trường hợp 1: Không chọn bất kỳ tiêu chí lọc nào:
- Hệ thống vẫn cho phép người dùng nhấn nút “Áp dụng”.
- Sau khi nhấn, hệ thống đóng pop-up nhưng không thực hiện lọc.
- Màn hình "Tích hợp thông tin hợp đồng" vẫn giữ nguyên dữ liệu như trước khi thao tác.
- Không hiển thị bất kỳ thông báo lỗi hay cảnh báo nào.
- Trường hợp 2: Chọn một hoặc nhiều tiêu chí lọc:
- Hệ thống vẫn cho phép người dùng nhấn nút “Áp dụng”.
- Sau khi nhấn, hệ thống đóng pop-up và thực hiện lọc theo toàn bộ các tiêu chí mà người dùng đã chọn.
- Màn hình "Tích hợp thông tin hợp đồng" được cập nhật và hiển thị theo đúng những tiêu chí người dùng chọn đã chọn.
| Thể hiện nút áp dụng tiêu chí lọc được chọn |
3.4.3 Pop-up chi tiết mã lỗi
| Field (Trường dữ liệu) | Type (Kiểu dữ liệu) | Required (Bắt buộc) | Validation (Quy định) | Description (Mô tả) |
|---|
| 1 | Tiêu đề màn hình | Nhãn hiệu (Label) | Không bắt buộc |
| Hiển thị tiêu đề "Đồng bộ thất bại" |
| 2 | Văn bản thông báo | Nút chức năng (Button) | Không bắt buộc | - Không cho phép người dùng thao tác tương tác (nhấn/chọn/sửa).
| - Thể hiện văn bản thông báo - Nội dung văn bản thông báo: "Mã lỗi. Mô tả chi tiết lỗi" |
| 3 | Nút "Thoát | Nút chức năng (Button) | Không bắt buộc | - Cho phép người dùng nhấn để tắt màn hình pop-up.
Khi nhấn, màn hình pop-up đóng lại và hệ thống điều hướng về màn hình về màn hình danh sách "Tích hợp dữ liệu chủ đầu tư"
| Thể hiện nút "Thoát" để đóng màn hình pop up cảnh báo |