1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows

74 2,4K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 3,49 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

chúc các bạn ngày tốt lành và làm việc hiệu quả ngôn ngữ pythonopenerpcài đặt openerpcấu trúc openerp 7Mục đích nghiên cứu Đề tài được thực hiện, nhằm tìm hiểu về ngôn ngữ lập trình Python, hệ thống kiến trúc của OpenERP và triển khai cài đặt hệ thống.Nội dung, phạm vi tìm hiểu chính•Tìm hiểu khái niệm, kỹ thuật lập trình ngôn ngữ Python.•Tìm hiểu khái niệm, kiến trúc chung của hệ thống phần mềm ERP.•Tìm hiểu cấu trúc hệ thống OpenERP.•Triển khai cài đặt OpenERP source 7.0, và vận hành thử nghiệm một số ứng dụng cơ bản trong quản lý nguồn lực doanh nghiệpPhương pháp nghiên cứuQua các tài liệu, lý thuyết CSDL, hệ thống thông tin, công nghệ phần mềm đã được giảng dạy...Thông qua giáo viên hướng dẫn tại trường và cở sở thực tập, trao đổi với cộng đồng mạng internet và học hỏi những người có kinh nghiệm.Cấu trúc nội dung đề tàiChương 1: Tìm hiểu ngôn ngữ Python. Chương 2: Tổng quan về ERP và OpenERP.Chương 3: Hệ thống OpenERP với ngôn ngữ lập trình Python.

Trang 1

LỜI CẢM ƠN

Trong quá trình tham gia thực tập, em đã nhận được sự huớng dẫn, giúp đỡ

và động viên tận tình từ nhiều phía: Cán bộ Sở Thông Tin và Truyền Thông TháiNguyên, quý thầy cô trong khoa Công Nghệ Thông Tin trường Đại Học Công NghệThông Tin và Truyền Thông Thái Nguyên, gia đình và bạn bè Những điều đó, đãtrở thành một động lực rất lớn giúp em có thể hoàn thành quá trình thực tập tốtnghiệp của mình

Đặc biệt, em xin bày tỏ lời cảm ơn tới thầy giáo Th.s Nguyễn Hồng Tâncùng Th.s Lê Hữu Nhân đã tận tình hướng dẫn, định hướng, tạo mọi điều kiện thuậnlợi nhất để em được học tập, củng cố kiến thức và thực hiện đề tài này

Dù đã cố gắng hoàn thiện một cách tốt nhất có thể Nhưng với phạm vi khảnăng nhất định của bản thân, chắc chắn sẽ không tránh khỏi những thiếu sót Chính

vì vậy, những sự góp ý, tận tình chỉ bảo của thầy, cô và các bạn, sẽ là điều vô cùngquý báu cho việc đúc rút kinh nghiệm và hoàn thiện hơn

Em xin chân thành cảm ơn!

Thái Nguyên, ngày … tháng … năm 2015

SINH VIÊN

Nguyễn Tất Duy

Trang 2

MỤC LỤC

LỜI CẢM ƠN i

MỤC LỤC ii

DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT v

DANH MỤC BẢNG BIỂU vii

DANH MỤC HÌNH VẼ viii

MỞ ĐẦU ix

CHƯƠNG 1: TÌM HIỂU NGÔN NGỮ PYTHON 1

1.1 Giới thiệu ngôn ngữ lập trình Python 1

1.1.1 Quá trình phát triển của ngôn ngữ 1

1.1.2 Các phiên bản chính của Python 3

1.1.3 Ứng dụng Python trong thực tế 3

1.1.4 Giao diện ngôn ngữ 4

1.2 Các khái niệm và kiểu dữ liệu 4

1.2.1 Lệnh và khối lệnh 4

1.2.2 Hệ thống các từ khóa 5

1.2.3 Trình thông dịch, dấu nhắc dòng lệnh 5

1.2.4 Hệ thống kiểu dữ liệu 6

1.3 Cú pháp và các cấu trúc lập trình cơ bản 10

1.3.1 Toán tử 10

1.3.2 Chú thích 10

1.3.3 Biến và lệnh gán 11

1.3.4 Vào/ ra dữ liệu chuẩn 11

1.3.5 Các cấu trúc điều khiển trong chương trình 12

1.3.6 Hàm range() 14

1.3.7 Câu lệnh break, continue và mệnh đề else trong vòng lặp 15

1.3.8 Lệnh pass 15

1.3.9 Quản lí lỗi và các ngoại lệ 16

Trang 3

1.4 Hướng đối tượng trong Python 18

1.4.1 Định nghĩa đối tượng (object) 18

1.4.2 Function (hàm) 18

1.4.3 Class (lớp) 19

1.4.4 Module (khối chương trình) 21

CHƯƠNG 2: TỔNG QUAN VỀ ERP VÀ OPENERP 22

2.1 Tìm hiểu về ERP (Enterprise Resource Planning) 22

2.1.1 Khái niệm ERP 23

2.1.2 Lịch sử ERP 24

2.1.3 Mô hình triển khai ERP tổng thể 24

2.1.4 Các yêu cầu chính khi triển khai hệ thống ERP 25

2.1.5 Các phân hệ chính trong ERP 26

2.1.6 Vai trò của ERP trong hoạt động doanh nghiệp 26

2.1.7 Áp dụng ERP cho các doanh nghiệp 28

2.1.8 Ưu điểm và nhược điểm của ERP 29

2.1.9 Thực trạng triển khai ERP 30

2.2 Tổng quan về OpenERP 30

2.2.1 Điểm mạnh của OpenERP 31

2.2.3 Những lợi ích cơ bản của OpenERP 33

2.2.4 Vai trò của OpenERP trong doanh nghiệp qua các phân hệ 33

2.2.5 Đánh giá các phần mềm ERP mã nguồn mở 36

CHƯƠNG 3: HỆ THỐNG OPENERP VỚI NGÔN NGỮ LẬP TRÌNH PYTHON .37

3.1 Kiến trúc hệ thống OpenERP 37

3.1.1 Server - ORM 38

3.1.2 Mô hình MVC trong OpenERP 38

3.1.3 Hoạt dộng của mô hình MVC 39

3.2 Cấu trúc thư mục OpenERP 39

3.3 Module trong OpenERP 40

Trang 4

3.3.1 Cấu trúc module trong OpenERP 40

3.3.2 Các thành phần trong module 40

3.3.3 Tạo mới một module 41

3.3.4 Tập tin import init .py 42

3.3.5 Tập tin Manifest OpenERP .py 42

3.3.6 Tập tin XML 43

3.4 Đối tượng (Object) 43

3.4.1 Các ORM – mô hình đối tượng quan hệ 43

3.4.2 Các dịch vụ do các ORM khác 44

3.4.3 Object Attributes (các thuộc tính của đối tượng) 44

3.5 Module versioning 46

3.6 Khai báo báo cáo, report declaration 47

3.7 Bảo mật người dùng, nhóm users, goups trong OpenERP 47

3.8 Luồng công việc Workflow 48

3.8.1 Start workflow and stop workflow 49

3.8.2 Subflow, luồng công việc con 49

KẾT LUẬN 50

PHỤ LỤC 1: CÀI ĐẶT OPENERP 7.0 SOURCE TRÊN WINDOWS 51

TÀI LIỆU THAM KHẢO 58

NHẬN XÉT CỦA GIÁO VIÊN 59

Trang 5

DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT

CEO Chief Executive Officer Tổng giám đốc điều hành tổ chứcCNRI Corporation for National

Broker Architecture

Chuẩn giao tiếp cho hệ thống triểnkhai trên các nền tảng hệ điều hành CRM Customer relationship

GAAP Generally accepted accounting

principles

Bộ tiêu chuẩn quốc tế cho kế toán

GPL General Public License Giấy phép phần mềm tự do

vụ cho xử lý đồ họa

HP Hewlett Packard Tập đoàn công nghệ thông tin HPHRM Human resource management Quản lý nhân sự trong tổ chức

HTML Hyper Text Makeup Language Ngôn ngữ đánh dấu văn bản

IBM International Business

Trang 6

Reporting Standards

Mac OS Macintosh Operating System Hệ điều hành của Apple dành cho

máy Macintosh MRP Manufacturing Resources

Planning

Hoạch định nguồn lực sản xuất

MVC Model View Controller Mô hình Model-View-Controller NASA National Aeronautics and

Space Administration

Cơ quan Hàng không và Vũ trụ tại Mỹ

ORM Object Relational Mapping Bản đồ đối tượng quan hệ

Perl Practical Extraction and Report

Language

Ngôn ngữ lập trình Perl

PSF Python Software Foundation Tổ chức phi lợi nhuận của Python RDBMS relational database

management system

Hệ thống quản lý cơ sở dữ liệu quan hệ

RAM Random Acceess Memory Bộ nhớ truy cập ngẫu nhiên

RML Report Makeup Language Ngôn ngữ định dạng báo cáo

SAP System Analysis and Program Công ty phần mềm doanh nghiệp

XML Extensible Markup Language Ngôn ngữ định dạng mở rộng

DANH MỤC BẢNG BIỂU

Bảng 1.1: Các kiểu dữ liệu thông dụng 6

Bảng 1.2: Kiểu dữ liệu Integers 6

Bảng 1.3: Các toán tử trong Python 10

Bảng 3.1: Chức năng của các thành phần trong module 41

Trang 7

DANH MỤC HÌNH VẼ

Hình 1.1: Giao diện chạy Python trên cmd 4

Hình 1.2: Khối lệnh trong Python 4

Hình 1.3: Hệ thống các từ khóa 5

Hình 1.4: Dạng từ điển trong module base của OpenERP 7

Hình 1.5: Kiểu danh sách trong thiết lập của OpenERP 8

Hình 1.6: Các kiểu chú thích trong Python 10

Hình 1.7: Dạng vòng lặp for và if trong workflow của OpenERP 13

Hình 1.8: Kế thừa đơn của lớp bank với lớp osv trong OpenERP 20

Hình 1.9: Module register xây dựng trên class và def trong OpenERP 21

Hình 2.1: Các nguồn lực cơ bản của doanh nghiệp trong ERP 22

Hình 2.2: Mô hình tổng thể triển khai hệ thống ERP trong doanh nghiệp 24

Hình 2.3: Các phân hệ chính trong ERP 26

Hình 2.4: Truy cập hệ thống ERP trên điện thoại 29

Hình 2.5: Các phiên bản của hệ thống OpenERP 30

Hình 2.6: Mô hình tích hợp các phân hệ cơ bản trong hệ thống OpenERP 31

Hình 2.7: Mức hỗ trợ của một số giải pháp ERP mã nguồn mở 36

Hình 3.1: Kiến trúc của hệ thống OpenERP 37

Hình 3.2: Mô hình Model-View-Controller 38

Hình 3.3: Tổ chức thư mục của OpenERP 39

Hình 3.4: Cấu trúc của Module 40

Hình 3.5: Các mô tả về module base trong OpenERP 42

Hình 3.6: Dạng đối tượng trong OpenERP 44

Hình 3.7: Mô hình cơ bản của một Workflow 48

Hình PL1.1: Cài đặt thư viện Mako 52

Hình PL1.2: Cấu hình người dùng cho PostgreSQL 53

Hình PL1.3: Cấu hình password cho người dùng PostgreSQL 53

Hình PL1.4: Thiết lập các quyền cho người dùng trong PostgreSQL 53

Hình PL1.5: Tạo Pydev project mới 54

Hình PL1.6: Đặt tên cho PyDev Project 54

Hình PL1.7: Thiết lập Python kết hợp với OpenERP 55

Hình PL1.8: Lựa chọn vị trí trình thông dịch Python được cài đặt 55

Hình PL1.9: Chạy file openerp-server.py 57

Hình PL1.10: Thiết lập cơ sở dữ liệu cho OpenERP 57

Trang 8

MỞ ĐẦU

Trên vai trò là một lập trình viên hoặc yêu thích lập trình, thì có lẽ chúng ta

đã từng được nghe nói đến Python, một ngôn ngữ mạnh mẽ với việc hỗ trợ các địnhdạng dữ liệu HTML, XML, các giao thức internet thông dụng như HTTP, làm việctốt trên các nền tảng công nghệ Web sử dụng các Frameworks như Django, viết cácphần mềm game chạy trên mọi hệ điều hành bằng các thư viện như wxPython, GTK,các application cho smartphone trên Window Mobile, Symbian, Android, và xâydựng các hệ thống quản lý, phục vụ cho hoạt động trong các tổ chức

Với sự trợ giúp của công nghệ thông tin, các doanh nghiệp hiện nay, đã ápdụng các phần mềm vào quản trị hệ thống, ngày càng trở nên phổ biến và thiết yếu.Một trong số ứng dụng không thể thiếu mà các nhà quản lý quan tâm đó chính là hệthống hoạch định nguồn lực doanh nghiệp ERP, hệ thống này giúp quản lý tất cảnguồn lực của doanh nghiệp (nhân lực, tài chính, tư liệu sản xuất, phương thức hoạtđộng…), trong đó OpenERP là một trong các giải pháp ERP cần thiết trong môitrường hoạt động của doanh nghiệp

Do vậy, qua thực hiện đề tài “Tìm hiểu ngôn ngữ lập trình Python và triển khai ứng dụng hệ thống thông tin nguồn lực doanh nghiệp OpenERP”, em

mong muốn hiểu biết về phần mềm mã nguồn mở đang ngày càng phổ biến này, và

có những hướng mở cho công việc trong các doanh nghiệp hiện nay

Trang 9

Tuy nhiên, tình hình kinh tế khá bất ổn, sản phẩm tiêu thụ chậm, tồn khonhiều, nên nhiều doanh nghiệp phải ngừng hoạt động, giải thể, hoặc chuyển đổihướng phát triển Ðiều này, đặt ra cho các bộ, ngành và địa phương cần có nhữnggiải pháp đồng bộ để tạo điều kiện thuận lợi, nhằm nâng cao năng lực cạnh tranhgiúp duy trì ổn định và phát triển bền vững và một trong số các giải pháp đó phải kểđến hệ thống hoạch định nguồn lực doanh nghiệp mã nguồn mở OpenERP.

Mục đích nghiên cứu

Đề tài được thực hiện, nhằm tìm hiểu về ngôn ngữ lập trình Python, hệthống kiến trúc của OpenERP và triển khai cài đặt hệ thống

Nội dung, phạm vi tìm hiểu chính

 Tìm hiểu khái niệm, kỹ thuật lập trình ngôn ngữ Python

 Tìm hiểu khái niệm, kiến trúc chung của hệ thống phần mềm ERP

 Tìm hiểu cấu trúc hệ thống OpenERP

 Triển khai cài đặt OpenERP source 7.0, và vận hành thử nghiệm một

số ứng dụng cơ bản trong quản lý nguồn lực doanh nghiệp

Phương pháp nghiên cứu

Qua các tài liệu, lý thuyết CSDL, hệ thống thông tin, công nghệ phần mềm

đã được giảng dạy

Thông qua giáo viên hướng dẫn tại trường và cở sở thực tập, trao đổi vớicộng đồng mạng internet và học hỏi những người có kinh nghiệm

Cấu trúc nội dung đề tài

Chương 1: Tìm hiểu ngôn ngữ Python

Chương 2: Tổng quan về ERP và OpenERP

Chương 3: Hệ thống OpenERP với ngôn ngữ lập trình Python

Trang 10

CHƯƠNG 1: TÌM HIỂU NGÔN NGỮ PYTHON

1.1 Giới thiệu ngôn ngữ lập trình Python

Python, ngôn ngữ được tạo ra bởi Guido Van Rossum (Guido) tạiAmsterdam vào năm 1991, là ngôn ngữ lập trình bậc cao dạng thông dịch, hướngđối tượng, mạnh mẽ, mềm dẻo, cấu trúc rõ ràng, thuận tiện cho người học

Python tương thích trên mọi hệ điều hành từ MS-DOS đến Mac OS,Windows, Linux, các hệ điều hành khác thuộc họ Unix và thiết bị di động Vì làngôn ngữ lập trình dạng thông dịch nên tốc độ thực thi của Python cực kỳ nhanh và

có thể tạo ra những chương trình chạy từ những script nhỏ cho đến những chươngtrình lớn và vô cùng mạnh mẽ, đặc biệt Python là ngôn ngữ hoàn toàn miễn phí chongười dùng

Nó có sẵn nhiều kiểu dữ liệu cấp cao, như các mảng linh hoạt (flexiblearrays) và từ điển (dictionaries) mà ta phải mất nhiều thời gian để hiện thực trên C.Python thích hợp với các chương trình lớn, hơn cả Awk và Perl, được thiết kế để cóphục vụ như là một ngôn ngữ kịch bản để tuỳ biến và mở rộng các ứng dụng lớnhơn, tích hợp sẵn nhiều công cụ và bộ thư viện chuẩn phong phú, cho phép ngườidùng dễ dàng tạo ra các dịch vụ Web, sử dụng các thành phần COM (ComponentObject Model) hay CORBA (Common Object Request Broker Architecture)

Là kiểu ngôn ngữ đa biến hóa, cho phép sử dụng nhiều phương pháp lậptrình khác nhau: Hướng đối tượng, có cấu trúc, chức năng, hoặc chỉ hướng đến mộtkhía cạnh [1] Đặc điểm quan trọng chính là giải pháp tên động, kết nối tên biến vàtên phương thức với nhau trong khi thực thi chương trình

1.1.1 Quá trình phát triển của ngôn ngữ

Mọi ngôn ngữ lập trình, đều gắn liền với quá trình hình thành và phát triểnđặc trưng Python cũng vậy, nó bao gồm các giai đoạn phát triển chính:

Trang 11

Giai đoạn 1991-1999

Từ 1991 đến 1995, Guido làm việc tại trung tâm toán-tin học (CentrumWiskunde & Informatica - CWI) Amsterdam, Hà Lan, tại đây, phiên bản Python 1.0được phát hành (phiên bản cuối cùng là 1.2) Năm 1995, thì chuyển sang làm việctại CNRI (Corporation for National Research Initiatives) Reston, Virginia, (phiênbản cuối cùng là 1.6) Sau đó, ông rời bỏ CNRI để làm việc với các lập trình viênchuyên viết phần mềm thương mại Ông có ý tưởng sử dụng Python với các phầnmềm tuân theo chuẩn GPL (General Public License) CNRI và FSF (Free SoftwareFoundation) đã cùng nhau hợp tác, để hoàn thiện bản quyền cho phù hợp với giấyphép GPL, phiên bản 1.6.1 ra đời sau đó (là phiên bản đâu tiền tuân theo GPL)

Giai đoạn đầu những năm 2000

Năm 2000, Guido và nhóm phát triển, thành lập BeOpen PythonLabs team,thực hiện phát hành phiên bản 2.0 Sau khi Guido và các thành viên PythonLabs gianhập Digital Creations, Python 2.1 ra đời Từ đây, ngôn ngữ này thuộc sở hữu của(Python Software Foundation – PSF), phiên bản Python 2.4.3 phát hành vào29/3/2006, tiếp theo là Python 2.5

Giai đoạn từ năm 2006 đến nay

Là giai đoạn gần chúng ta nhất, sự phát triển có bước ngoặt lớn trong giaiđoạn này, các nhà phát triển thảo luận và phát triển phiên bản mới Python 3.0, cácdòng 3.x có một số điểm không hoàn toàn tương thích với dòng 2.x Nhóm phát triển

đã nghiên cứu những điểm còn chưa hoàn thiện trong phiên bản củ và cải thiện tối

ưu hơn Nguyên tắc chủ đạo để phát triển là “bỏ cách làm việc cũ nhằm hạn chếtrùng lặp về mặt chức năng của Python” Dòng Python 3.x hiện nay đã được nângcấp nên phiên bản mới nhất là 3.4.2 (tính tới thời điểm 01/01/2015), dòng phiên bảnnày dần ổn định, hoàn thiện và trong xu thế tương lai sẽ là chuẩn của ngôn ngữ này

Trang 12

Python còn có thêm sự kết hợp cùng với các ngôn ngữ phổ biến hiện nay:

CPython: Được viết bằng ngôn ngữ C, có thể chạy trên nhiều nền tảng hệ

điều hành khác nhau

PyPy: Là một bộ compiler mới với khả năng biên dịch trực tiếp không cần

qua bytecode vì vậy nó nhanh hơn CPython và đang được phát triển

JyThon: Viết dành cho ngôn ngữ java, có thể tương tác với các class và sử

dụng được thư viện java khi biên dịch sẽ chuyển qua byte-code của java

IronPython: Tương tác với nền tảng NET Frameworks của Microsoft.

1.1.2 Các phiên bản chính của Python

Các dòng phát triển chính của ngôn ngữ là phiên bản Python 2.x và 3.x,giữa 2 dòng này đa số là giống nhau, tuy vậy, phiên bản 3.x có cấu trúc khác so vớibản 2.x, nhằm nâng cao xử lí vấn đề mà Python gặp phải đó là xử lí floating point, vì

so với java thì trong Python 2.x xử lí kém hơn [1] Đặc biệt trong Python3.x xử línhanh hơn so với Java, đồng thời giản lược các chức năng tương tự và đặc điểm ưuviệt thường có trong các phiên bản sau của ngôn ngữ

1.1.3 Ứng dụng Python trong thực tế

Hệ thống Bit-Torrent peer-to-peer là một Python program NASA (NationalAeronautics and Space Administration) ứng dụng vào scientific programming tasks,Intel, Cisco, HP (Hewlett Packard), IBM (International Business Machines)… ápdụng vào quá trình hardware-testing Hãng phim hoạt hình nổi tiếng Pixar, dùng vàoviệc Production of movie amination Cùng với phát triển hệ thống tổng thể hoạchđịnh nguồn lực doanh nghiệp OpenERP và rất nhiều mảng ứng dụng thực tiễn có sựtham gia của Python Các ứng dựng nổi bật phổ biến nhất, đó là Google sử dụng

Trang 13

Python vào web search system cho trang Google.com, và Youtube.com một dịch vụchia sẻ video số 1 thế giới, phần lớn được viết bằng Python.

1.1.4 Giao diện ngôn ngữ

Mở màn hình tương tác dòng lệnh cmd (command prompt), nhập vào lệnh

c:\Python27\Python.exe, để chạy Python, từ đây chúng ta có thể lập trình trực tiếp,

nó sẽ thực thi, cho ra kết quả ngay lập tức như Perl, tạo thuận lợi cho việc test nhanhcác chương trình và đây là điểm mạnh mà các ngôn ngữ lập trình khác không có

Hình 1.1: Giao diện chạy Python trên cmd

Để thoát khỏi phiên làm việc, thì dùng lệnh exit() hoặc quit() hoặc nhấn tổhợp phím ctrl+z Python hỗ trợ trực tiếp việc xây dựng và phát triển cho ngôn ngữtrên trình tương tác IDLE (Integrated DeveLopment Environment), và các công cụ

hỗ trợ phổ biến khác như eclipse hoặc Pycharm

1.2 Các khái niệm và kiểu dữ liệu

1.2.1 Lệnh và khối lệnh

Khối lệnh trong Python được tạo bằng cách thụt vào bên phải với khoảngcách là 4 kí tự, so với câu lệnh cha chứa nó Mỗi câu lệnh trong Python nằm trênmột dòng mã nguồn, khi kết thúc câu lệnh không cần phải dùng bất kì kí tự gì

Trang 14

Hình 1.2: Khối lệnh trong Python

1.2.2 Hệ thống các từ khóa

Tên các từ khóa được sử dụng dựa theo nghĩa của các từ tiếng Anh, Trong

đó, nó phân biệt kiểu chữ hoa và chữ thường và không chứa các kí tự đặc biệt (@,

$,! ) trong tên của nó, từ khóa được sử dụng để khai báo các câu lệnh (if, while )

và các đối tượng (def, class…) Giống với C/C++, các từ khóa đều ở dạng chữthường, ta có hệ thống 31 từ khóa chuẩn trong Python 2 [4]:

Hình 1.3: Hệ thống các từ khóa

1.2.3 Trình thông dịch, dấu nhắc dòng lệnh

Python, là ngôn ngữ lập trình dạng thông dịch, giúp tiết kiệm thời gian pháttriển ứng dụng Trình thông dịch có thể được sử dụng để chạy file script, hoặc sửdụng ở chế độ tương tác trên cmd, tương tự shell của các hệ điều hành họ Unix, nócũng được coi là một máy tính khi nhập vào một biểu thức nhấn enter, kết quả trả vềngay lập tức [1] Nó rất hữu ích, giúp nghiên cứu tính năng hoặc để chạy thử mãtrong suốt quá trình phát triển phần mềm

IDLE là trình tương tác với người dùng được tích hợp sẵn trong Python, nócung cấp cho người lập trình môi trường sử dụng để tạo ra các chương trình mộtcách cơ bản nhất và thực hiện chạy trực tiếp trên nó Trong Python có 2 loại dấu

Trang 15

nhắc lệnh là “>>>” và “…”, hai ký pháp này thực hiện chờ lệnh từ người dùng vàtruy xuất kết quả

1.2.4 Hệ thống kiểu dữ liệu

Python là ngôn ngữ định kiểu rất mạnh, nó không cho phép các thao táckhông hợp lệ, như cộng kiểu số với kiểu chuỗi [1] Nó sử dụng hệ thống kiểu ducktyping còn gọi là latent typing, tức là chỉ kiểm tra các ràng buộc về kiểu dữ liệu tạithời điểm thực thi, khi đó, nếu một thao tác trên một đối tượng bị thất bại, thì là dokhông sử dụng một kiểu thích hợp Hệ thống kiểu dữ liệu thông dụng:

Int, Long Số nguyên

Float Số thực

Complex Số phức

List Danh sách có thể thay đổi

Tuple Bộ các phần tử không thể thay đổi

Str Chuỗi kí tự không thể thay đổi

Set Một tập không theo thứ tự, mỗi phần tử chỉ xuất hiện một lần

Bảng 1.1: Các kiểu dữ liệu thông dụng

Integers (kiểu nguyên):

Loại kiểu Phạm vi, giá trị Ý nghĩa

Plain integers -2147483648 đến

2147483647

Biểu diễn cho các số nguyên trong khoảng

đã cho

Trang 16

Long integer Vô cùng Là dạng không giới hạn của số nguyên (ở

Python 3 nó được sát nhập về kiểu int)Boolean True hay False Đối tượng logic, là một kiểu con của Plain

Integers, giá trị của nó giống như 0 và 1

Bảng 1.2: Kiểu dữ liệu Integers

Floating point numbers (số thực), complex numbers (số phức): Để khai

báo một số thực chỉ việc gán giá trị của số thực cho biến và số phức cũng như vậy

>>> x = 1.0 # floating point numbers.

>>> y = 2+3j # complex numbers.

String (Kiểu chuỗi): Giá trị của chuỗi được đặt trong cặp dấu nháy đơn

hoặc nháy kép

>>> a = ‘sabcdefg’ # biến a được gán giá trị kiểu chuỗi.

>>> a[1] # xuất ra phần tử ở vị trí 1 trong chuỗi, kết quả là: ‘a‘.

Dictionary (Kiểu từ điển): Là kiểu dữ liệu được bao trong cặp ngoặc nhọn,

có quan hệ 1-1 giữa khoá và giá trị, theo đó, các khoá phải khác nhau và là duy nhấttrong từ điển, còn giá trị có thể trùng, ta có dạng của từ điển:

Trang 17

Hình 1.4: Dạng từ điển trong module base của OpenERP

List (kiểu danh sách): Làm việc như là một mảng các đối tượng, là kiểu

rất linh động [1] Danh sách được bao bởi cặp dấu ngoặc vuông, các phần tử cáchnhau bởi dấu phẩy

Trang 18

Hình 1.5: Kiểu danh sách trong thiết lập của OpenERP

Trong danh sách có các phương thức chính:

append(x): Thêm một thành phần vào cuối của danh sách, tương đương

với: a[len(a):] = [x]

extend(L): Mở rộng danh sách bằng cách thêm tất cả các thành phần trong

danh sách đã nhận Tương đương với a[len(a):] = L

count(x): Trả về số lần x xuất hiện trong danh sách.

index(x): Trả về chỉ số của phần tử có giá trị x đầu tiên danh sách.

insert(i,x): Chèn một phần tử vào một ví trí đã định Đối số đầu tiên i là chỉ

sổ của phần tử trước chỗ sẽ chèn, vì thế a.insert(0, x) chèn tại vị trí đầu của danhsách và a.insert( len(a), x) tương đương với a.append(x)

Trang 19

remove(x): Loại bỏ phần tử đầu tiên trong danh sách mà có giá trị là x Nếu

không có phần tử như vậy thì báo lỗi

pop([i]): Loại bỏ phần tử tại vị trí i và trả về nó Nếu không xác định chỉ số,

a.pop( ) sẽ loại bỏ và trả về phần tử cuối cùng trong danh sách

sort( ): Sắp xếp các thành phần của danh sách.

reverse( ): Đảo ngược các phần tử trong danh sách.

Kiểu Tuple: Là một biến thể của danh sách nhưng các phần tử của nó

không thay đổi Các phương thức insert, index, append, extend trên List không thểthực hiện được trên Tuple Tuple nhanh hơn list và được sử dụng khi các phần tửtrong đối tượng là cố định không thay đổi, ví dụ như key trong kiểu từ điển

>>> t = ("a", "b", "mpilgrim", "z", "example")

>>>t[0] # hiện phần tử có chỉ số là 0(bắt đầu từ trái qua phải) của Tuple 'a'

>>>t[−1] # chỉ số -1 trở đi (tính từ phải qua trái)

'example'

Kiểu set: Là một tập không có thứ tự và không có các phần tử trùng lặp,

công dụng cơ bản là để kiểm tra thành viên, và loại trừ các mục lặp Đối tượng setcũng hỗ trợ các phép toán như: Hợp, giao, hiệu, và hiệu đối xứng

1.3 Cú pháp và các cấu trúc lập trình cơ bản

1.3.1 Toán tử

Trang 20

– Trừ ^ Phép (xor)

Hình 1.6: Các kiểu chú thích trong Python

1.3.3 Biến và lệnh gán

Trong Python, biến mang kiểu động, ta không phải khai báo biến khi sửdụng, biến được xem là đã khai báo khi được gán một giá trị lần đầu tiên, căn cứ vàomỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu của biến và tự động được giải

Trang 21

phóng khi ra khỏi phạm vi của chương trình sử dụng nó Tên biến được ở dạng chữthường, có thể dùng trực tiếp bằng cách sử dụng lệnh gán: tên_biến = biểu_thức

>>> x = 23.8

>>> y = -x ** 2

>>> z1 = z2 = x + y # có thể gán gộp giá trị cho các biến

1.3.4 Vào/ ra dữ liệu chuẩn

Để in ra các giá trị của các đối tượng lên màn hình, sử dụng lệnh print:

>>>print (2 + 3j) * (4 – 6j) # in ra giá trị của biểu thức toán học

>>>print“in ra man hinh mot chuoi” # áp dụng cho kiểu chuỗi

# các trường hợp nội suy chuỗi (string interpolation)

>>>print (“Hello %s” %(“world!”)) # %s thay thế cho kiểu chuỗi

>>>print (“i = %d” %i) # %d thay thế cho kiểu số nguyên

>>>print (“a = %.2f and b = %.3f” %(a,b)) # %f thay thế cho kiểu số thực

Python sử dụng hàm raw_input để nhận dữ liệu nhập từ người dùng, giá trị

nhận được sẽ là giá trị của kiểu chuỗi

>>> a = raw_input (‘ nhap ten cua ban vao day’)

>>> print ‘tên của bạn là: ’, a

1.3.5 Các cấu trúc điều khiển trong chương trình

Cấu trúc rẽ nhánh (if)

Trang 22

Không giống với các ngôn ngữ lập trình khác, trong cấu trúc rẽ nhánh,Python thực hiện trên câu lệnh if (không có cấu trúc switch) [3], khi thỏa mãn điềukiện tương ứng thì chỉ nhánh đầu tiên của nó sẽ được thực hiện, và tự động kết thúcquá trình làm việc với if Có 3 dạng cấu trúc của lệnh if:

# khối lệnh (khi mọi điều kiện logic phía trên vi phạm)

Cấu trúc lặp (for và while)

Trang 23

Trong Python, chỉ tồn tại 2 loại cấu trúc lặp là for và while [3], nó hoàntoàn giản lược đi các cấu trúc lặp tương tự với 2 loại này, nhằm đáp ứng phù hợp vớiphong cách gọn và đơn giản của ngôn ngữ.

Lệnh for: Thường áp dụng đối với danh sách.

for ten_bien in ten_danh_sach:

# khối lệnh (lặp cho đến hết giá trị trong danh sách)

Hình 1.7: Dạng vòng lặp for và if trong workflow của OpenERP

Lệnh while:

while biểu_thức_đúng:

# khối lệnh (vòng lặp thực hiện đến khi điều kiện bị phạm (nhận giá trịFalse) thì dừng)

Trang 24

Python thực hiện đếm từ 0 cho các chỉ số, nên điểm kết thúc đã cho không

nằm trong danh sách được tạo, ở đây range(10) sẽ tạo ra một danh sách 10 giá tri

(không bao gồm 10) hoặc có thể đặt cho range() các vị trí bắt đầu, vị trí bước nhảytrong danh sách

Ví dụ: Lặp qua chỉ số của một chuỗi, sử dụng kết hợp range() và len():

>>> listphim = ['doremon', 'itron']

>>> for i in range(len(listphim)):

print(i, listphim[i])

0 doremon

1 itron

Trang 25

1.3.7 Câu lệnh break, continue và mệnh đề else trong vòng lặp

Lệnh break: Thoát khỏi quá trình làm việc với vòng lặp có chứa nó.

Lệnh continue: Thoát vòng lặp hiện tại và tiếp tục thực hiện với giá trị lặp

tiếp theo

Ngoài ra, mệnh đề else có thể được sử dụng tùy vào ý đồ người lập trình

Nó thực hiện khi vòng lặp kết thúc (đến cuối của danh sách với for, hoặc khi gặpđiều kiện sai với while), nhưng không được thực hiện khi vòng lặp kết thúc bằnglệnh break Xem xét ví dụ dưới đây để tìm số nguyên tố:

print n,'la so nguyen to'

Trang 26

pass # trạng thái chờ ngắt từ bàn phím.

1.3.9 Quản lí lỗi và các ngoại lệ

Lỗi cú pháp: Bản chất là lỗi được phân tích từ trong Python, đây là kiểu lỗi

phổ biến nhất của những người mới học lập trình Python:

>>> while True

print('Hello world') # lỗi thiếu dấu : SyntaxError: invalid syntax

Việc phân tích trên các dòng mắc lỗi, thường thì hiển thị con trỏ đầu tiên tại

vị trí lỗi Bên cạnh đó trong Python còn có các lỗi khi thực thi chương trình (cácngoại lệ) và lỗi ngữ nghĩa

Các ngoại lệ (exception): Mặc dù một câu lệnh hoặc một biểu thức là

chính xác về cú pháp nhưng nó vẫn có thể gây ra lỗi khi chạy nó Các lỗi dò đượctrong quá trình thực hiện được gọi là các ngoại lệ và không thể tránh khỏi tuyệt đốicác lỗi này Hầu hết các ngoại lệ đều không điều khiển được bởi chương trình, tuynhiên có thể chỉ ra các thông báo lỗi:

>>> '2' + 2

Traceback (most recent call last):

File "<pyshell#6>", line 1, in <module>

'2' + 2

TypeError: Can't convert 'int' object to str implicitly

Dòng cuối cùng của thông báo lỗi cho biết đó là một ngoại lệ Các ngoại lệ

có nhiều kiểu khác nhau, được in ở cuối thông báo lỗi Các tên ngoại lệ chuẩn cácđịnh danh có sẵn (không trùng với từ khóa dành riêng) Phần còn lại cung cấp chi

Trang 27

tiết dựa trên kiểu của ngoại lệ và nguyên nhân gây ra lỗi Phần đặt trước thông báolỗi chỉ ra ngữ cảnh ngoại lệ, theo cơ chế dò lùi kiểu ngăn xếp.

Điều khiển các ngoại lệ: Có thể viết các chương trình để điều khiển các

ngoại lệ nào đó, xem xét ví dụ mở một file:

for arg in sys.argv[1:]:

Hoạt động: Nếu không có ngoại lệ nào xảy ra, mệnh đề except được bỏ qua

và tiếp tục thực hiện try cho đến khi kết thúc Nếu có một ngoại lệ xảy ra trong khiđang thực hiện mệnh đề try thì phần còn lại của mệnh đề sẽ bị bỏ qua Sau đó nếunhư loại lỗi đó mà tương ứng với tên của ngoại lệ được đặt sau từ khóa except thìmệnh đề except sẽ được thực hiện, và sau đó tiếp tục thực hiện cho đến hết câu lệnhtry Nếu một ngoại lệ xảy ra mà không tương ứng với ngoại lệ đã được đặt sau mệnh

đề except thì nó sẽ bỏ qua thoát ra khỏi câu lệnh try

Một câu lệnh try có thể có nhiều hơn một mệnh đề except, để xác định cácđiểu khiển cho các ngoại lệ khác nhau Điều khiển các ngoại lệ xảy ra tương ứng vớimệnh đề try Một mệnh đề except có thể có nhiều ngoại lệ theo sau được đặt trongdấu ngoặc đơn Câu lệnh try…except có một mệnh đề else mở rộng, được sử dụng

để viết các đoạn mã mà chỉ thi hành khi mệnh đề try không gây ra một ngoại lệ nào

Trang 28

Sử dụng mệnh đề else giúp ngăn ngừa được các ngoại lệ gây ra bởi đoạn code nằmtrong try…, nó có thể có một giá trị liên quan, được gọi là đối số của ngoại lệ

1.4 Hướng đối tượng trong Python

1.4.1 Định nghĩa đối tượng (object)

Các dữ liệu và chỉ thị được kết hợp vào một đơn vị đầy đủ tạo nên một đốitượng Đơn vị này tương đương với một chương trình con và vì thế các đối tượng sẽđược chia thành hai bộ phận chính: các phương thức (method) và các thuộc tính(attribute) Trong thực tế, các phương thức của đối tượng là các hàm và các thuộctính của nó là các biến, các tham số hay hằng nội tại của một đối tượng (hay nóicách khác tập hợp các dữ liệu nội tại tạo thành thuộc tính của đối tượng) Cácphương thức là phương tiện để sử dụng một đối tượng trong khi các thuộc tính sẽ

mô tả đối tượng có những tính chất gì

Python là một ngôn ngữ lập trình hướng đối tượng, các chương trình trong

nó được cấu thành từ các định nghĩa đối tượng và định nghĩa hàm, và phần lớn việctính toán đều được diễn đạt trên những thao tác với các đối tượng

1.4.2 Function (hàm)

Nhằm tối ưu hóa, tạo sự thuận tiện cho việc sử dụng lại trong chương trìnhchúng ta cần xây dựng hàm trong Python có cú pháp:

def function_name (argument(s)):

# function code suite

Trong đó: def là từ khóa chỉ ra điểm bắt đầu tên của một hàm, functionname: Tên hàm định nghĩa, arguments: Danh sách các lý lẽ (các tham số của hàmnếu có), “:” là điểm bắt đầu cho khối lệnh định nghĩa về hàm (luôn phải có),function code suite: Tập các lệnh của hàm

Trang 29

Python sẽ tự xác định chúng dựa theo giá trị được truyền khi gọi hàm.Không phân biệt truyền tham biến hay truyền tham trị, một định nghĩa hàm đưa tênhàm đó vào một bảng ký hiệu hiện thời.

1.4.3 Class (lớp)

Lớp cần phải được định nghĩa trước khi nó có thể sử dụng, tên của lớp phảibắt đầu bằng các kí tự chữ cái latinh, theo sau là các kí hiệu chữ cái, chữ số, dấugạch nối, đối tượng lớp sẽ được tạo ra ngay sau khi định nghĩa lớp kết thúc, Python

sử dụng một cách thức để định nghĩa một lớp như sau:

class ClassName:

<statement-1> # mô tả các định nghĩa của đối tượng ClassName

<statement-n>

Class: Là từ khóa bắt đầu của lớp ClassName: Tên của lớp

Lớp đối tượng: Có thao tác tham chiếu thuộc tính và thực thể.

Tham chiếu thuộc tính: Cũng như cú pháp chuẩn cho tất cả các tham

chiếu thuộc tính: Obj.name, giá trị tên thuộc tính là các tên mà nằm trong khônggian tên của lớp khi đối tượng được tạo ra

Thực thể lớp: Sử dụng ký hiệu, mô tả đối tượng lớp như một hàm không

tham số và trả về một thực thể mới của lớp:

x = MyClass() # tạo thực thể lớp, gán đối tượng với biến cục bộ x

Việc thao tác một thực thể (gọi một đối tượng lớp) tạo ra một đối tượngrỗng Có nhiều lớp mục đích là để tạo ra các đối tượng với các thực thể thỏa mãnmột trạng thái khởi tạo xác định, vì thế một lớp có thể định nghĩa một phương thức

Trang 30

đặc biệt tên là init ( ) [8], đây là hàm khởi tạo đối tượng, khi tạo ra thực thể củalớp, khi đó, thực thể lớp tự động gọi đến hàm init ( ) cho thực thể vừa được tạo

ra Trong Python còn có dạng file init .py đây là một file nhằm khai báo vớiPython đây là đại diện cho các package, nó cho phép nhập các module trong góihoặc lập trình trực tiếp trên nó

Kế thừa đơn: Trong Python không có khái niệm Protected như C++, chỉ có

các hàm, dữ liệu thành phần public hay private, và chúng được phân biệt qua tên,những tên bắt đầu bằng và kết thúc có tối đa 1 dấu _ là private Ví dụ: x, x_, abc là những biến private, y , a, bc, xyz , x_ là những biến public Tương tựnhư vậy với tên hàm Các biến và phương thức private chỉ có thể truy cập nội bộlớp, các biến và phương thức public có thể truy xuất trong toàn bộ chương trình Chỉ

có 1 loại kế thừa là public Cú pháp khai báo một lớp con kế thừa:

class DerivedClassName(BaseClassName):

<statement-1>#khối lệnh mô tả lớp

Hình 1.8: Kế thừa đơn của lớp bank với lớp osv trong OpenERP

Đa kế thừa: Khai báo đa kế thừa bằng cách thêm danh sách các lớp cơ sở

mà lớp đó muốn kế thừa vào trong cặp dấu () sau tên lớp, khi có yêu cầu thừa kếthuộc tính từ các lớp cha, thì cơ chế hoạt động của lớp con sẽ duyệt lần lượt theo

Trang 31

chiều từ trái qua phải đối với các lớp cha đó, xong hết lớp này rùi mới tiếp tục duyệtlớp khác đến khi xác định được đối tượng, do Python không tự gọi hàm khởi tạo củacác lớp cha nên thứ tự kế thừa không quan trọng [8]:

class DerivedClassName(Base1, Base2, Base3):

1.4.4 Module (khối chương trình)

Python đặt các định nghĩa hàm, lớp trong một file và sử dụng chúng nhưmột kịch bản tương tác của trình thông dịch, file như vậy gọi là một module Cácđịnh nghĩa từ một module có thể được nhập vào một module khác hoặc vào modulechính, để nhập 1 module: import ten_module

Mục đích sử dụng module: Chia chương trình thành các modules nhỏ với

mục đích dễ quản lý và sử dụng lại trong các chương trình khác Trong Python cungcấp sẵn tập hợp các modules chuẩn có thể sử dụng Module có thể được nhập vàomodule khác, không yêu cầu phải đặt tất cả các câu lệnh import tại vị trí bắt đầu củamodule Tên module được nhập vào, đặt trong bảng kí hiệu toàn cục của việc nhậpmodule đó:

Trang 32

Hình 1.9: Module register xây dựng trên class và def trong OpenERP

CHƯƠNG 2: TỔNG QUAN VỀ ERP VÀ OPENERP

2.1 Tìm hiểu về ERP (Enterprise Resource Planning)

ERP là một giải pháp phần mềm ra đời đã khá lâu, nhằm hỗ trợ cho hoạtđộng của tổ chức, doanh nghiệp và thực hiện các quy trình xử lý một cách tự độnghoá và hiệu quả thông qua tích hợp tất cả phòng ban, mọi chức năng lại trong một hệthống máy tính duy nhất để dễ theo dõi hơn, đồng thời đáp ứng nhiều nhu cầu khácnhau Hệ thống được xây dựng, nhằm đảm bảo quản lý tốt các nguồn lực của doanhnghiệp như nhân lực, vật tư, máy móc và tiền bạc có sẵn với số lượng đủ khi cần,bằng cách sử dụng các công cụ hoạch định và lên kế hoạch Đặt điểm nổi bật của

Trang 33

ERP là một hệ thống phần mềm linh hoạt, có thể mở rộng và phát triển theo thờigian áp dụng cho từng loại hình doanh nghiệp.

Hình 2.1: Các nguồn lực cơ bản của doanh nghiệp trong ERP

2.1.1 Khái niệm ERP

ERP là viết tắt của từ Enterpire Resource Plainning, trong đó:

E - Enterprise (Doanh nghiệp): Là mục tiêu chính của ERP, nó tích hợp

tất cả chức năng của các phòng ban trong công ty vào chung một hệ thống máy tínhduy nhất, mà nó có thể đáp ứng hoạt động của tất cả các nhu cầu quản lý khác nhaucủa từng phòng ban

Trang 34

R - Resource (Tài nguyên): Trong kinh tế, resource là nguồn lực gồm tài

chính, nhân lực, công nghệ, còn trong ERP, resource là tài nguyên (TN) Trong côngnghệ thông tin, TN là bất kỳ phần mềm, phần cứng hay dữ liệu thuộc hệ thống mà

có thể truy cập và sử dụng được Ứng dụng ERP vào quản trị doanh nghiêp (DN) đòihỏi DN phải biến nguồn lực (NL) thành tài nguyên như việc: Phải làm cho mọi bộphận của đơn vị đều có khả năng khai thác NL phục vụ cho DN Phải hoạch định vàxây dựng lịch trình khai thác NL của các bộ phận có sự phối hợp nhịp nhàng, đạthiệu quả cao nhất Phải luôn cập nhật thông tin tình trạng NL DN một cách chínhxác, kịp thời

P - Planning (Hoạch định): Là khái niệm quen thuộc trong quản trị kinh

doanh, nó thực hiện hỗ trợ lên DN lên kế hoạch cho toàn bộ hoạt động của tổ chức

Như vậy, ERP là hệ thống tổng thể hoạch định tài nguyên doanh nghiệp,cho phép tự kiểm soát được nguồn lực của doanh nghiệp Thông qua việc thực hiệnkết hợp toàn bộ các hệ thống riêng lẻ vào một chương trình phần mềm tích hợp, sửdụng chung một cơ sở dữ liệu để các bộ phận có thể dễ dàng chia sẻ thông tin vàtương tác với nhau, từ đó, nhà quản trị có thể lên kế hoạch khai thác các nguồn tàinguyên này hợp lý nhờ vào các quy trình nghiệp vụ thiết lập trong hệ thống

Ngoài ra ERP còn cung cấp cho các doanh nghiệp một hệ thống quản lýđiều hành doanh nghiệp cho lãnh đạo cũng như tác nghiệp của các nhân viên với quytrình hiện đại theo tiêu chuẩn quốc tế

Trang 35

2.1.2 Lịch sử ERP

ERP xuất hiện lần đầu tiên vào năm 1990 khi tập đoàn Gartner dùng nó để

mở rộng cho MRP (Manufacturing Resources Planning), cũng là một phần mềmquản lý nhưng tập trung cho việc sản xuất hàng hóa, đến khoảng giữa những năm

1990, ERP đã được áp dụng cho hầu hết các mảng của một doanh nghiệp

Các cơ quan chính phủ và tổ chức phi chính phủ cũng bắt đầu ứng dụngERP cho hoạt động của mình Tới khoảng năm 2000, thuật ngữ “ERP II” xuất hiện

và được dùng để chỉ những phần mềm ERP có khả năng dùng giao diện web để truycập và sử dụng ERP II cho phép quản lý nội bộ và hỗ trợ việc hợp tác giữa các công

ty nhằm nâng cao vai trò của thống trong toàn bộ hoạt động của doanh nghiệp

Trang 36

2.1.3 Mô hình triển khai ERP tổng thể

Hình 2.2: Mô hình tổng thể triển khai hệ thống ERP trong doanh nghiệp

Hình trên là mô hình triển khai tổng thể cho một hệ thống ERP, với các đặcđiểm là ứng dụng dạng Thin Client, Online và tập trung (Centralized) thì căn bản hệthống phải bao gồm các thành phần sau: Trung tâm dữ liệu, các máy chủ ứng dụng

và CSDL được đặt tại đây và là nơi lưu trữ và xử lý các giao dịch của hệ thống ERP;

Hệ thống mạng trung tâm, cho phép người dùng của khu văn phòng trung tâm truycập vào hệ thống ERP thông qua trình ứng dụng ERP Client; Hệ thống mạng WAN,kết nối với các văn phòng ở xa; Hệ thống dự phòng, làm nhiệm vụ phòng ngừa thảmhọa khi có các sự cố bất khả kháng xảy ra (có thể có hoặc không), tùy vào tình hình

cụ thể của doanh nghiệp để có những lựa chọn cho phù hợp

Trang 37

2.1.4 Các yêu cầu chính khi triển khai hệ thống ERP

Với một hệ thống chứa toàn bộ các dữ liệu của công ty và phục vụ một sốlượng lớn người dùng trên nhiều vị trí công tác và mục đích khác nhau, từ việc chophép các nhân viên thực hiện cập nhật các giao dịch đến việc cung cấp các thông tin

hỗ trợ ra quyết định của các cấp lãnh đạo, ngoài ra hệ thống còn phải phục vụ một sốđối tượng bên ngoài như khách hàng và các đối tác, thì khi triển khai hệ thống chohoạt động của doanh nghiệp cần phải thoả mãn những yêu cầu sau:

 Hệ thống phải cung cấp một môi trường làm việc liên tục và có tínhsẵn sàng đáp ứng mọi yêu cầu đặt ra

 Đảm bảo được tính an toàn của dữ liệu

 Xử lý và trả lại kết quả cho người dùng trong một khoảng thời gianchấp nhận được (không gây cản trở đến công việc và lãng phí thời giancủa người sử dụng)

 Dễ dàng trong việc vận hành và bảo trì hệ thống

 Có khả năng nâng cấp và mở rộng, và khôi phục được khi có các tìnhhuống bất khả kháng xảy ra

2.1.5 Các phân hệ chính trong ERP

ERP kết nối các ứng dụng của doanh nghiệp thành một phần mềm quản trị

và chỉ sử dụng một cơ sở dữ liệu duy nhất để tất cả mọi người, mọi phòng ban đều

có thể truy cập vào và chia sẻ dữ liệu cho nhau Các phân hệ chính trong ERP:

Ngày đăng: 30/03/2015, 09:01

HÌNH ẢNH LIÊN QUAN

Hình 1.2: Khối lệnh trong Python - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 1.2 Khối lệnh trong Python (Trang 11)
Hình 1.3: Hệ thống các từ khóa - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 1.3 Hệ thống các từ khóa (Trang 11)
Bảng 1.1: Các kiểu dữ liệu thông dụng - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Bảng 1.1 Các kiểu dữ liệu thông dụng (Trang 12)
Bảng 1.2: Kiểu dữ liệu Integers - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Bảng 1.2 Kiểu dữ liệu Integers (Trang 13)
Hình 1.4: Dạng từ điển trong module base của OpenERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 1.4 Dạng từ điển trong module base của OpenERP (Trang 14)
Hình 1.5: Kiểu danh sách trong thiết lập của OpenERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 1.5 Kiểu danh sách trong thiết lập của OpenERP (Trang 15)
Hình 1.6: Các kiểu chú thích trong Python - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 1.6 Các kiểu chú thích trong Python (Trang 17)
Bảng 1.3: Các toán tử trong Python - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Bảng 1.3 Các toán tử trong Python (Trang 17)
Hình 1.7: Dạng vòng lặp for và if trong workflow của OpenERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 1.7 Dạng vòng lặp for và if trong workflow của OpenERP (Trang 20)
Hình 1.9: Module register xây dựng trên class và def trong OpenERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 1.9 Module register xây dựng trên class và def trong OpenERP (Trang 29)
Hình 2.1: Các nguồn lực cơ bản của doanh nghiệp trong ERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 2.1 Các nguồn lực cơ bản của doanh nghiệp trong ERP (Trang 30)
Hình 2.3: Các phân hệ chính trong ERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 2.3 Các phân hệ chính trong ERP (Trang 34)
Hình 2.4: Truy cập hệ thống ERP trên điện thoại - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 2.4 Truy cập hệ thống ERP trên điện thoại (Trang 37)
Hình 2.5: Các phiên bản của hệ thống OpenERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 2.5 Các phiên bản của hệ thống OpenERP (Trang 39)
Hình 2.6: Mô hình tích hợp các phân hệ cơ bản trong hệ thống OpenERP - tìm hiểu hệ thống openerp và triển khai cài đặt openerp 7 source trên nền tảng windows
Hình 2.6 Mô hình tích hợp các phân hệ cơ bản trong hệ thống OpenERP (Trang 40)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w