SAP R/3 & ABAP Programing Dạo này các dự án outsource của nước ngoài cũng nhiều, mà nhu cầu customize hệ thống SAP cho các doanh nghiệp nước ngoài ở Việt Nam cũng đang tăng lên. Các công ty software ào ạt tuyển dụng, đào tạo lập trình viên ABAP.
Bản thân cũng đã từng tham gia là lập trình viên ABAP trong một vài dự án ABAP của nước ngoài, cũng cảm thấy kiến thức chưa đến đâu. Lâu không đụng đến, nay tự nhiên hứng thú về SAP lại nổi lên, ngồi lục lại đống tài liệu đã xem trước đây, lúc rảnh rỗi đã có dịch một số tài liệu về SAP và ABAP. Xin post lên đây để cùng chia sẻ với mọi người và cũng mong nhận được sự hưởng ứng bổ sung và đóng góp của cộng đồng làm về SAP và ABAP.
GIỚI THIỆU
SAP được đánh giá là một trong bốn công ty software lớn nhất thế giới, sau Microsoft, IBM, và Oracle. Là công ty tập trung đi tiên phong vào cung cấp giải pháp phần mềm Enterprise Resource Planning (ERP) lớn nhất. Sản phẩm chính của công ty la SAP R/3.
SAP là viết tắt từ Systems, Applications and Products data in process
R là Realtime processing
Số 3 là Three tier application architecture: database, application server and client SAPgui.
Các gói sản phẩm chủ đạo bao gồm
(APO) Advanced Planner and Optimizer ,
(BW) Business Information Warehouse,
(CRM) Customer Relationship Management,
(SRM) Supplier Relationship Management,
(HRMS) Human Resource Management Systems,
(PLM) Product Lifecycle Management,
(XI) Exchange Infrastructure
(KW) Knowledge Warehouse.
Theo cáo báo cáo, hiện có hơn 91 ngàn bản SAP đã được cài đặt tại hơn 28 ngàn công ty. Có hơn 12 triệu người đang sử dụng SAP trên 120 nước trên thế giới.
Còn ở Việt Nam, hiện nay đã có hơn 20 công ty sử dụng SAP (không kể SAP in One)
CẤU TRÚC HỆ THỐNG SAP R/3
SAP xây dựng dựa trên cấu trúc R/3 mô hình 3 lớp Client/server:
Lớp giao tiếp Server (Presentation).
Lớp ứng dụng (Application).
Lớp Dữ liệu (Database).
Lớp Giao tiếp Server (Presentation Server)
Giao tiếp Server(Presentation server) thực ra là một chương trình có tên là sapgui.exe, được cài đặt trển máy trạm của ngườI dùng. Để khởI động ngườI dùng có thể double click chuột vào Icon hoặc mở từ menu. Khi khởI động phần giao tiếp Server sẽ hiển thị R/3 menu trong cửa sổ. Cửa sổ này được xem nhu là SAPGUI, hay còn gọI là giao diện ngườI dùng, hay chỉ đơn giản là giao diện. Giao diện sẽ nhận các yêu cầu đầu vào từ ngườI dùng thông qua chuột, bàn phím và gửI các yêu cầu đến lớp Ứng dụng Server (Application Server) để xử lý. Lớp Ứng dụng sau khi đã định dạng kết quá sẽ gửI kết quả lạI SAPGUI cho ngườI dùng.
Lớp Ứng dụng server (Application Server )
Lớp Ứng dụng Server (Application Server ) là một tập hợp các lệnh có thể thi hành được, được tập hợp và biên dịch bởi các chương trình ABAP/4. Và quản lý các nội dung đầu vào và đầu ra của chúng.
Khi một lớp Ứng dụng được khởi động tất cả các lệnh này sẽ được khỏi động cùng lúc và khi lớp Ứng dụng kết thúc thì tất cả cùng được đóng lại. Số xử lý khi khởi động lớp Ứng dụng được khai báo trong một file config gọi là application server profile.
MỗI một lớp Application Server có một profile chỉ định các đặc tính khi chúng khởI động và khi đang chạy. Một ví dụ, một application server profile chỉ định:
– Số xử lý và kiểu thi hành của xử lý.
– Tổng số bộ nhớ cho mỗI xử lý có thể xử dụng.
– ThờI gian mà nguờI dùng có thể không sử dùng trước khi tự động thoát khỏI hệ thống.
Lớp application server tồn tạI để biên dịch chương trình ABAP/4, Một chương trình ABAP/4 có thể khởI động các lệnh trên lớp Giao tiếp server nhưng không thể thực thi chúng ở đó.
Nếu chương trình ABAP/4 của bạn yêu cầu thông tin từ Database, lớp Application sẽ định dạng yêu cầu và gửi đến lớp Database Server.
Lớp dữ liệu (Database Server)
Database Server là một tập hợp các lện thực thi, chấp nhận các yêu cầu dữ liệu từ lớp Application Server. Các yêu cầu sẽ được đưa đến RDBMS (Relation Database Management System), RDBMS gử dữ liệu trở về lạI Database Server, sau đó đưa về Application Server. Ở lớp Application Server sẽ chuyển thông tin đó và chương trình ABAP/4 của bạn.
Thiết lập Server
Thiết lập trong cấu trúc 3 lớp Client/Server, các lớp Presentation, Applications và Database tất cả được chạy trên những máy tính riêng biệt. Đây là thiết lập phổ biến nhất cho các hệ thống lớn và trong sản xuất.
Các thiết lập trong quá trình phân phối, lớp Application và Database servers được kết hợp trong một máy tính còn Presentation servers chạy riêng biệt. Trường hợp này được sử dụng cho các hệ thống nhỏ và thường sử dụng cho các hệ thống phát lập trình phát triển.
Thiết lập trong cấu trúc 2 lớp Client/Server, Lớp Presentation và Application servers được kết hợp vớI nhau và lớp Database server được chia riêng ra. Thiết lập này được sử dụng để kết hợp vớI các Application server khác. Nó thường được dử dụng cho Batch Server khi các chương trình Batch được tách ra từ các Server online. Một SAP GUI sẽ được cài đặt lên nó để cung cáp cấp điều khiên nội bộ.
Khi tất cả các server được kết hợp trên một máy tính, bạn sẽ có một Thiết lập trung tâm (a central configuration). Trường hợp này rất ít thấy bởi bì nó mô tả một hệ thống R/3 chỉ một người dùng.
Định nghĩa một hệ thống R/3
Định nghĩa một cách đơn giản nhất của một hệ thống R/3 là “Một dữ liêu” (One database). Trong hệ thống R/3 chỉ có một database. Định nghĩa mở rộng hơn, R/3 được xem như là tất cả của các thành phần cấu thành được đính kèm trong một database. Một hệ thống R/3 được tạo bởi một database server truy cập vào một database đơn, một hay nhiều Application server, và một hay nhiều lớp Kết nối server. Theo định nghĩa, đó là tất cả các thành phần được kèm trong một cơ sở dữ liệu. Nếu bạn có một cơ sở dữ liệu, bạn sẽ có một hệ thống. Nếu có một hệ thống, sẽ có một cơ sở dữ liệu. Trong một quá trình triển khai, thường chỉ có một hệ thống (hoặc một database) được chỉ định và quá trình phát triển, một hoặc nhiều hệ thống được thiết kết để kiểm tra và một được chỉ định cho sản xuất.
Thuật ngữ R/3 system landscape sự mô tả con số của các hệ thống trong khi cài đặt SAP, và xem chúng được thiết kết như thế nào, như là phát triển, kiểm tra, hay sản xuất.
Định nghĩa một R/3 Instance
Khi bạn nghe ai đó nói từ Instance, phần lớn thời gian người đó sẽ nghĩ đến một lớp Application Server. Thuật ngữ Instance thì đồng nghĩa vớI Application Server.
Thuật ngữ Central instance nói đến lớp Database Server. Nếu một Application Server và Database server được đặt trong cùng một máy tính, thuật ngữ Central instance nói đến máy tính nơi cả hai lớp được đặt trong đó.
Trong hầu hết các thuật ngữ chung, một Instance là một Server . Đó là một tập hợp các xử lý của R/3 cung cấp cho hệ thống R/3.
Cấu trúc Application Server
Tất cả các yêu cầu được gửi từ lớp Giao tiếp Server (presentation servers) sẽ được trực tiếp đến dispatcher trước. Dispatcher sẽ ghi vào dispatcher queue và sắp xếp theo trình tự a first-in, first-out. MỗI yêu cầu sau đó sẽ được đưa vào luồng xử lý hiện đang có. TạI một thờI điểm một luồng xử lý sẽ điều khiển một yêu cầu.
Để thực hiện bất kỳ yêu cầu nào của ngườI dùng, một luồng xử lý cần được chỉ định vị trí hai vùng bộ nhớ: Vùng chứa thông tin yêu cầu ngườI dùng (User contex) và vùng nhớ cuốn (Roll area). Vùng thông tin của ngườI dùng là một vùng bộ nhớ, trong đó chứa các thông tin của ngườI dùng. Vùng nhớ cuốn chứa các thông tin về các thi hành của chương trình.
Tìm hiểu một vùng nhớ thông tin người dùng (user context)
Một vùng thông tin người dùng (user context) là vùng nhớ chứa các đặc tính của người dùng đã truy cập vào hệ thống R/3. Chứa thông tin trong hệ thống về người dùng như là:
– Các thiết lập hiện tại của người dùng.
– Các quyền của người dùng.
– Tên của các chương trình mà người dùng hiện đang chạy.
Khi một người dùng truy cập vào hệ thống, vùng nhớ người dùng sẽ được chỉ định cho lần truy cập đó. Khi thoát khỏi hệ thống, vùng nhớ sẽ được giải phóng. Nó được sử dụng trong khi chương trình đang xử lý, và những phần quan trong sẽ được mô tả rõ hơn ở những phần sau.
Tìm hiểu vùng nhớ cuốn (Roll area)
Một Roll area là một vùng nhớ được tạo ra cho một luồng xử lý trong một chương trình. Nó chứa thông tin về chương trình trong R/3 như:
– Giá trị của các biến.
– Vị trí đông của bộ nhớ.
– Con trỏ của chương trình hiện tại.
Mỗi khi người dùng khởi động một chương trình, một vùng nhớ cuốn được tạo ra cho sự kiện đó của chương trình. Nếu có hai người dùng chạy cùng một chương trình tại cùng một thời điểm, sẽ có hai vùng cuộn sẽ được tạo ra.
Vùng nhớ cuộn sẽ được giải phóng khi chương trình kết thúc.
Ghi chú: Khi nói chuyện với một nhà tư vấn cơ bản, bạn có thể nghe thuật ngữ Roll Area được dùng để chỉ đến tất cả các Roll Area cho một user hay thậm chí tất cả Roll Area trong một Application Server. Thông thường bạn có thể xác định ý nghĩa chính xác trong giớI hạn của nộI dung được sử dụng.
Cả hai vùng nhớ Roll Area và User Context chạy phần quan trọng trong xử lý Dialog step.
Tìm hiểu một Dialog Step
Ghi chú:
Một Dialog Step được các nhà tư vấn cơ bản sử dụng như là một đơn vị đo thờI gian phản hồI của hệ thống.
Dialog Step là một xử lý cần để từ một màn hình sang màn hình tiếp theo. Nó bao gồm tất cả các xử lý xảy ra sau khi user đưa ra một yêu cầu, cho đến khi và bao gồm xử lý cần để hiển thị màn hình tiếp theo.
Ví dụ, khi user click vào phím Enter trên Change Vendor: Initial Screen, anh ta sẽ khởI tạo một Dialog Step and một đồng hồ cát sẽ xuất hiện để phòng ngừa các input khác. Chương trình sapmf02k sẽ lấy thông tin của Vendor và hiển thị lên Change Vendor: Ảddress Screen. Điều này đánh dấu sự kết thúc của Dialog Step và user bây giờ có thể tạo một yêu cầu mớI khác.
Có 4 cách user có thể khởI tạo một Dialog Step từ SAP GUI:
– Bấm Enter.
– Bấm một phím chức năng.
– Click vào một button trên màn hình.
– Chọn một menu item.
Việc các lập trình viên ABAP/4 cần biết về Dialog Step rất quan trọng, bởI vì họ tạo một đơn vị riêng biệt của xử lý trong một chương trình ABAP/4.
-OutSource-