UDFSAP
Thêm, sửa hoặc xóa một field người dùng (UDF) ở một hay nhiều công ty SAP cùng lúc, hoặc tạo bảng người dùng (UDT) mới — không phải mở từng công ty trong SAP để làm lặp lại.
Thêm field là đổi cấu trúc bảng của SAP. Xóa field là xóa luôn dữ liệu đã nhập trong field đó, SAP không hoàn tác được. Một lần bấm có thể tác động nhiều công ty. Luôn thử trên công ty test trước, rồi mới chọn công ty đang dùng thật.
Trước khi bắt đầu
- License có gói Ultra. Gói khác vẫn thấy UDFSAP trong menu kèm nhãn gói, nhưng mở ra là trang giải thích.
- Các công ty cần ghi đã có kết nối ở Setting › Kết nối công ty SAP. Muốn thấy đủ mọi công ty trên một server (kể cả công ty chưa khai kết nối), khai server đó ở Setting › Máy chủ database. Xem Kết nối công ty SAP và Máy chủ database.
- Ghi qua Service Layer dùng chính user SAP bạn đang đăng nhập ứng dụng. User này (cùng tên, cùng mật khẩu) phải có ở mỗi công ty bạn tick, và có quyền quản lý field người dùng trong SAP.
- Nên làm lúc ít người đang dùng SAP: SAP đổi cấu trúc bảng khi thêm field.
Tick một công ty test, ghi, mở field trong SAP để xem đúng như mong muốn. Xong mới tick các công ty thật và ghi lại cùng nội dung.
Màn hình gồm những phần nào
UDFSAP là một trang đơn, đọc từ trên xuống:
| Phần | Dùng để |
|---|---|
| Thêm / sửa / xóa UDF | Chọn việc, loại bảng, bảng, tên field và các thuộc tính của field. |
| Giá trị hợp lệ (Valid Values) | Danh sách giá trị được chọn trong field. Để trống nếu field nhập tự do. |
| Công ty | Tick các công ty sẽ ghi; cột Ghi qua cho biết ứng dụng đăng nhập SAP của công ty đó bằng gì; cột Kết quả hiện kết quả từng công ty sau khi ghi. |
| Nút Ghi vào SAP, Làm lại | Ghi (sau một hộp xác nhận) hoặc xóa trắng form. |
| Chi tiết lần ghi | Xem lại lần ghi gần nhất: tab Dễ đọc hoặc JSON (kỹ thuật). |
Thêm field cho nhiều công ty
- Chọn việc và bảng
Ở Việc cần làm chọn Thêm field. Ở Loại bảng chọn Bảng của SAP (OCRD, OITM…) hoặc Bảng người dùng (UDT). Ở Bảng (Table) gõ mã hoặc tên để tìm, ví dụ
OCRD(Business Partners).Danh sách gợi ý các bảng SAP hay dùng; bảng khác thì gõ mã. Field thêm vào
OINV/INV1được SAP thêm cho mọi chứng từ bán / mua / kho (đầu chứng từ / dòng); thêm vàoORCTlà cho cả phiếu thu và phiếu chi. - Đặt tên và mô tả field
Ở Tên field gõ tên không dấu, ví dụ
Region. GõRegionhayU_Regionđều được; ngay dưới ô hiện tên SAP sẽ lưu:U_Region. Ở Mô tả (Description) gõ tên hiển thị trên màn hình SAP, ví dụ “Khu vực”. - Chọn kiểu, độ dài, giá trị mặc định
Chọn Kiểu (Type) và Sub type (ô Sub type chỉ có các lựa chọn hợp với kiểu đã chọn), điền Độ dài (Length) nếu kiểu cần. Giá trị mặc định và Liên kết bảng (Linked Table) không bắt buộc. Bảng các kiểu ở phần Quy tắc của SAP.
- Thêm giá trị hợp lệ (nếu cần)
Ở phần Giá trị hợp lệ (Valid Values) bấm + Thêm giá trị, điền Value (giá trị lưu) và Description (tên hiện ra). Bấm Xóa trên dòng để bỏ. Field nhập tự do thì để trống phần này.
- Tick các công ty
Ở phần Công ty, tick từng công ty, hoặc tick ô trên dòng server để chọn mọi công ty ghi được của server đó. Ô Tìm tên công ty hoặc schema lọc danh sách dài; nút ▾ / ▸ thu gọn hay mở một server. Góc dưới hiện Đã chọn N công ty.
- Bấm Ghi vào SAP và xác nhận
Hộp Xác nhận ghi vào SAP liệt kê việc sẽ làm, từng công ty và cách ghi của nó. Có công ty mà tên kết nối chứa PROD / PRD / LIVE thì hộp hiện băng đỏ Có công ty môi trường PROD (dữ liệu thật). Kiểm tra kỹ rồi bấm nút xác nhận, ví dụ Thêm ở 3 công ty; bấm Hủy hoặc Esc để quay lại sửa.
- Đọc kết quả từng công ty
Cột Kết quả hiện kết quả của mỗi công ty; dòng tóm tắt cạnh nút ghi cho biết xong bao nhiêu công ty. Xem Kết quả.
Một công ty lỗi không làm dừng các công ty khác: ứng dụng làm lần lượt từng công ty đến hết, kể cả khi bạn đóng trang giữa chừng.
Sửa field đang có
- Chọn Sửa field, nhập bảng và tên field
Ở Việc cần làm chọn Sửa field, nhập Bảng (Table) và Tên field.
- Tick công ty rồi bấm Đọc field từ SAP
Tick các công ty cần sửa, bấm Đọc field từ SAP. Form được điền sẵn theo field đang có ở công ty đầu tiên được tick. Kiểu và sub type chỉ hiện để xem, không đổi được.
- Sửa ô cần đổi
Ô để trống nghĩa là giữ như SAP. Giá trị hợp lệ đã có trong SAP hiện chữ Đã có trong SAP và được giữ nguyên; bạn chỉ thêm được giá trị mới.
- Ghi vào SAP
Ứng dụng đọc field ở từng công ty và chỉ gửi phần khác với SAP: mô tả, độ dài, giá trị hợp lệ mới, giá trị mặc định, bảng liên kết. Công ty có field đã giống form báo Không đổi.
Độ dài mới phải bằng hoặc lớn hơn độ dài hiện tại. Muốn đổi kiểu field, phải tạo field mới (field cũ giữ dữ liệu của nó).
Sau khi ghi Sửa hoặc Xóa, ô Việc cần làm tự trở về Thêm field, để lần bấm sau không vô tình sửa / xóa lần nữa.
Xóa field
- Chọn Xóa field
Form chỉ còn Loại bảng, Bảng (Table) và Tên field.
- Tick công ty, bấm Ghi vào SAP
Hộp Xác nhận xóa field nhắc rằng xóa field là xóa luôn dữ liệu của field.
- Gõ lại tên field để xác nhận
Gõ lại tên field vào ô Gõ lại tên field để xác nhận xóa (có hay không có
U_đều được). Nút xóa chỉ bấm được khi gõ đúng.
Không xóa field trên công ty thật khi chưa chắc không còn ai dùng dữ liệu trong field đó (báo cáo, query, mẫu in, add-on khác). SAP không khôi phục được dữ liệu đã xóa.
Tạo bảng người dùng (UDT) mới
- Chọn loại bảng Tạo bảng UDT mới
Ở Loại bảng chọn Tạo bảng UDT mới. Việc tự đặt là thêm (bảng mới không sửa / xóa ở màn này).
- Đặt tên, mô tả và loại bảng
Tên bảng mới: chữ không dấu, số, dấu gạch dưới, tối đa 19 ký tự, không cần
@(ví dụVEHICLE; SAP lưu là@VEHICLE). Mô tả bảng: ví dụ “Danh sách xe”. Loại bảng: một trongbott_NoObject – No Object,bott_NoObjectAutoIncrement – No Object, Auto Increment,bott_MasterData – Master Data,bott_MasterDataLines – Master Data Rows,bott_Document – Document,bott_DocumentLines – Document Rows. - Tick công ty và ghi
Như khi thêm field. Sau đó thêm field cho bảng mới bằng loại bảng Bảng người dùng (UDT).
Nhập dữ liệu vào bảng UDT dùng màn Import UDO / UDT Data.
Cột “Ghi qua”
Mỗi công ty ghi bằng kết nối SAP đã khai cho nó ở Setting › Kết nối công ty SAP:
| Cột Ghi qua hiện | Nghĩa là |
|---|---|
| Service Layer (DEV) | Ghi qua Service Layer bằng user SAP đang đăng nhập ứng dụng. Chữ trong ngoặc là tên kết nối bạn đặt ở Setting. |
| DI API – SAP đang mở (LOCAL) | Chỉ ghi được khi SAP Business One trên máy chạy ứng dụng đang mở đúng công ty này. Chỉ có ở bản cá nhân. |
| Một ô chọn | Công ty khai nhiều kết nối: chọn cách ghi; mặc định Service Layer. |
| Chưa có đăng nhập SAP | Công ty chưa có kết nối SAP dùng được: dòng mờ, không tick được. Bấm Khai báo để mở Setting và thêm kết nối. |
Sau khi thêm kết nối hoặc server ở Setting, quay lại UDFSAP và bấm Tải lại: danh sách công ty đọc lại, các ô đã tick và form đang điền vẫn giữ.
Quy tắc của SAP cho một field
Ứng dụng kiểm các quy tắc này trước khi gửi. Sai thì báo Chưa gửi gì vào SAP. Sửa lại: … và không công ty nào bị ghi.
| Kiểu (Type) | Sub type được chọn | Độ dài |
|---|---|---|
db_Alpha – Alphanumeric | Regular, Address, Phone, Link, Image | Bắt buộc, 1–254 |
db_Memo – Text | Regular, Link, Image | Không cần |
db_Numeric – Numeric | Regular | Bắt buộc, 1–11 |
db_Date – Date/Time | Date (ngày), Time (giờ) | Không cần |
db_Float – Units and Totals | Bắt buộc chọn một: Rate, Amount, Price, Quantity, Percentage, Measure | Không cần |
- Tên field bắt đầu bằng chữ, chỉ gồm chữ không dấu, số, dấu gạch dưới; tối đa 50 ký tự (không tính
U_). - Mô tả bắt buộc khi thêm, tối đa 80 ký tự.
- Giá trị hợp lệ không được trùng nhau và không dài hơn độ dài của field.
- Giá trị mặc định, nếu field có giá trị hợp lệ, phải là một trong các giá trị đó.
- Field có Liên kết bảng (Linked Table) thì không có giá trị hợp lệ: chọn một trong hai.
Kết quả
Cột Kết quả của từng công ty:
| Kết quả | Nghĩa là | Làm gì tiếp |
|---|---|---|
| ✓ Đã thêm / Đã sửa / Đã xóa … | SAP đã nhận. Nếu kèm “xác nhận lại bằng cách đọc SAP sau khi mất phản hồi”, ứng dụng mất phản hồi nhưng đọc lại SAP thấy đã xong. | Không cần làm gì. |
| Không đổi | Sửa field: field ở công ty đó đã giống form. | Không cần làm gì. |
| ✕ Lỗi: … | SAP từ chối hoặc không đăng nhập được công ty đó; câu sau chữ “Lỗi” là lý do. | Sửa theo lý do, chỉ tick lại các công ty lỗi rồi ghi. |
| ? Chưa xác định | Mất kết nối với SAP giữa chừng và không đọc lại được: field có thể đã đổi. | Mở field trong SAP của công ty đó để xem trước khi ghi lại. Ứng dụng không tự gửi lại. |
Phần Chi tiết lần ghi ở cuối trang ghi lại lần ghi gần nhất: tab Dễ đọc cho biết nội dung đã gửi vào SAP và kết quả từng công ty; tab JSON (kỹ thuật) là dữ liệu gửi / nhận với SAP, dùng khi cần gửi cho bộ phận hỗ trợ.
Lỗi thường gặp
| Thông báo | Nguyên nhân | Cách sửa |
|---|---|---|
| Chưa có công ty: khai server ở Setting → Máy chủ database (hoặc kết nối ở Setting → Kết nối công ty SAP). | Chưa khai server hay kết nối nào. | Khai ở Setting rồi bấm Tải lại. |
| Tick ít nhất một công ty ở bảng công ty | Chưa tick công ty. | Tick công ty ở phần Công ty. |
| Lỗi: không đăng nhập được SAP của công ty này, chưa gửi gì. … | User SAP đang đăng nhập ứng dụng không có ở công ty đó, khác mật khẩu, hoặc Service Layer của công ty không tới được. | Tạo user cùng tên, cùng mật khẩu ở công ty đó trong SAP, hoặc bỏ tick công ty đó. Kiểm tra kết nối ở Setting. |
| Bạn đang đăng nhập bằng SAP đang mở trên máy này (không có mật khẩu SAP), nên chưa ghi / đọc được qua Service Layer. … | Đăng nhập ứng dụng bằng “SAP đang mở” nên ứng dụng không có mật khẩu để vào Service Layer. | Bấm Đổi công ty, chọn kết nối Service Layer và nhập mật khẩu SAP. |
| Lỗi: Không có field U_… ở bảng … của công ty này. | Sửa / Xóa một field mà công ty đó chưa có. | Kiểm tra tên bảng, tên field; bỏ tick công ty không có field. |
| SAP không cho giảm độ dài field (hiện tại …). | Sửa field với độ dài nhỏ hơn hiện tại. | Để độ dài bằng hoặc lớn hơn hiện tại. |
| Công ty … được chọn hai lần (cùng server, cùng schema). | Một công ty bị tick hai lần. | Chỉ tick một lần và chọn một cách ghi. |
| Chỉ ghi được khi SAP Client trên máy chạy ứng dụng đang mở đúng công ty này. | Ghi qua DI API – SAP đang mở mà SAP Business One chưa mở đúng công ty. | Mở SAP Business One vào đúng công ty, hoặc chọn cách ghi Service Layer. |
Câu hỏi thường gặp
Danh sách bảng gợi ý lấy từ đâu?
Các bảng SAP hay dùng, cộng với bảng người dùng (UDT) của công ty đầu tiên được tick (hoặc công ty đầu tiên trong danh sách). Không đọc được danh sách thì bạn vẫn gõ mã bảng được.
Thêm nhầm field thì làm sao?
Field đã thêm không tự gỡ được. Muốn bỏ phải xóa field (chọn Xóa field ở màn này hoặc xóa trong SAP); xóa field là xóa luôn dữ liệu đã nhập trong field đó.
Đóng trang giữa lúc đang ghi có sao không?
Ứng dụng vẫn làm đến hết các công ty đã tick. Mở lại màn và kiểm tra field trong SAP của từng công ty; kết quả của lần ghi đó không hiện lại trên trang mới.
Muốn tạo nhiều field một lúc cho một công ty?
Dùng màn Import UDF: điền danh sách field vào file Excel rồi tạo một lần.
Giới hạn hiện tại
- Mỗi lần ghi một field (hoặc một bảng mới). Không đặt
MandatoryhayLinked UDOở màn này; Import UDF có hai cột đó. - Không đổi được kiểu / sub type của field đã có (SAP không cho).
- Bảng UDT mới chỉ tạo; không sửa / xóa bảng ở màn này.
- Ứng dụng chưa nhớ lựa chọn “Ghi qua” của từng công ty giữa các lần mở.
- Bản dùng chung (IIS) chỉ ghi qua Service Layer.