Erp 101

นั่งเทียน นอนเทียน ศึกษา ERP คำเตือน โปรดระวัง ผมไม่เคยทำงานหรือใช้ SAP มาก่อน

Friday, May 27, 2005

Chart of Account #2

ต่อจากคราวก่อน
คราวก่อนมีที่เข้าใจสับสนเล็กน้อยก็คือเรื่อง Retained earnings Account
ในการ config Chart of Account Segment
เราจะระบุ Account แค่ว่าเป็นบัญชี
Balance sheet account หรือ
P+L statement account
แค่นั้น ไม่ต้องระบุว่า retained earning
เป็นค่าอะไร เพราะว่าจะมีหน้าจอต่างหาก
สำหรับระบุว่า retained earning account
เป็นเลขที่บัญชีอะไร

Information ที่สำคัญอันหนึ่งสำหรับ
Chart of Account Segment ก็คือ
"Account Group"

ตัว Account Group จะเป็นตัวช่วย control
การป้อนข้อมูลในส่วน Company Specific ให้
เป็นไปอย่างถูกต้อง
โดยทำหน้าที่เป็นตัวกำหนดว่า
  • ช่วงเลขที่ของ account no. ที่ยอมให้ใช้ได้
    (ตรงนี้จะเป็นการตรวจสอบความถูกต้องว่า
    user ตั้งเลขที่ account ถูกต้องหรือไม่)
  • ข้อกำหนดของข้อมูล (field properties)
    • ข้อมูลอะไรต้องถูกป้อน (Required)
    • ข้อมูลอะไรที่ไม่ใช้ (Hide)
    • ข้อมูลอะไรที่ห้ามแก้ไข (Display)
    • ข้อมูลที่ไม่บังคับใส่ (Optional)

field properties นี้ บางอันก็จะเป็น
กลุ่มของ field ถ้ากำหนดเป้น required
field ย่อยๆทุกอันในกลุ่มนั้น ก็จะมีสถานะ
เป็น required ด้วย

บาง field ก็เป้น field บังคับเสมอ
account group ไม่สามารถเปลี่ยนแปลง
status นี้ได้ เช่น field "Account Currency"

Saturday, May 21, 2005

Chart of Account #1

ในการ config SAP ตัว Variant ที่สำคัญที่ขาดไม่ได้ก็คือ
ต้องมีการระบุว่า Company นั้นใช้ Chart of Account
อะไร

คำถามก็คือ Chart of Account คืออะไร
ตัว chart of account จริงๆ ก็คือ group
ของ Account definition นั่นเอง โดยออกแบบให้
เก็บแต่ค่าที่สามารถ share กันใช้ระหว่าง Company
(ชื่อก็คือพวกชื่อ, รหัส, )

ส่วนประเด็นที่ว่า ทำไมต้องมี chart of account
แยกออกมาต่างหากหล่ะ ทำไมไม่ออกแบบให้เป็นแบบ
บริษัทฯใครบริษัทฯมันไปเลย ที่เป็นเช่นนี้ก็เพราะว่า
เป้าหมายจริงๆในการใช้ chart of account ก็คือ
เพื่อความสะดวกใน การ Consolidate หรือ การออกงบการเงินโดยรวม
ของหลายๆบริษัทฯในเครือ หรือหลายๆ Account Entity เข้าด้วยกัน
(ผลพลอยได้ ก็คือสะดวกในการ config)

Chart of Account 's Definition
  • รหัส (4 หลัก)
  • คำอธิบาย
  • ภาษาหลัก (maintenance language)
  • ความยาวของเลขบัญชี
    สูงสุดได้ 10 หลัก
  • automatic สร้าง Cost Element หรือไม่
    (อยู่ในเรื่องของ controlling ?เรียกบัญชีต้นทุนได้หรือเปล่า)
  • group chart of account (yes/no)
    ใช้ในกรณีที่ต้องการ consolidate งบการเงินระหว่าง company
    ที่ใช้ Chart of Account คนละตัวกัน ถ้า set
    ค่านี้ ตอนที่เราป้อนบัญชีแต่ละบัญชี เราต้องระบุ cosolidate
    account ด้วย
  • blocked indicator
    เป็น flag ที่ใช้ป้องกันไม่ให้ user สร้าง account
    (? เพราะยัง config ไม่เสร็จดี)


Chart of Accounts Segment
ถ้าฟังแต่ชื่ออย่างเดียว ก็จะงงหน่อย ว่ามันคืออะไรวะ
จริงๆแล้วมันก็คือ ส่วนที่เป็น definition ย่อยๆ
ของแต่ละบัญชีที่อยู่ภายใน Chart of Account นั่นเอง
1 segment ก็คือ 1 บัญชี

ภายในแต่ละบัญชี จะมีการกำหนด
  • เลขที่บัญชี
    ความยาวได้สูงสุดตามที่กำหนดไว้ใน chart of account definition
  • ชื่อบัญชี (shortname, longname)
  • ระบุว่าเป็นบัญชีกลุ่ม profit+loss(พวกรายได้/รายจ่าย) หรือ
    เป็นพวก balance sheet account
    ซึ่งจะไปมีผลตอนปิดบัญชีสิ้นปี
    ถ้าเป็นบัญชี profit&Loss จะเกิดการปิดยอดไปลงบัญชีกำไรขาดทุน
    (ซึ่งต้องระบุลงไปด้วย ว่าเป็นบัญชีเลขที่อะไร)
    Note: การระบุเลขที่บัญชีกำไรขาดทุน จะมีลักษณะ
    เป็น indirect กล่าวคือเราไม่ได้ระบุเลขที่ลงไปตรงๆ
    แต่ระบุเป้น key แทน จากนั้นค่อยกำหนดว่า key
    นั้นหมายถึงเลขที่บัญชีอะไร ? เดาว่าที่เขาทำอย่างนี้
    เพราะจะได้สะดวกถ้าเกิดมีการเปลี่ยนแปลงเลขที่
    บัญชีตรงนี้ จะได้ทำได้ง่าย เปลี่ยนจากจุดเดียว
  • Account Group
    ตัวนี้เป็นตัวช่วย config พฤติกรรมและคุณสมบัติ
    ของ account ว่าควรเป็นอย่างไร
  • Cosolidate fields
  • Translation text (ชื่อในภาษาอื่นๆ ที่ไม่ใช่ maintenance language)

Note: ทุก company ที่ใช้ account นี้จะ
เห็นชื่อบัญชีหรือค่าอื่นๆใน chart of account definition
เหมือนกันไม่ว่าจะอยู่ใน company ไหน

Company Code Segment
เป็นส่วนของ Account ที่ customize สำหรับแต่ละ
company โดย segment นี้จะเกิดเมื่อมีการ assign
chart of Account segment ให้กับ company
ข้อมูลใน Company Code Segment ประกอบด้วย
  • Currency
  • Taxes
  • Reconciliation account
  • Line item display
  • Sort key
  • Field status group
  • House bank
  • Interest calculation information

Friday, May 20, 2005

Variant Priniple

ตอนแรกก็ไม่แน่ใจในศัพท์ตัวนี้นัก แต่ตอนนี้เข้าใจแล้ว
หลักการก็คือ object ใดๆที่มีโอกาศ share หรือใช้
ร่วมกันระหว่าง company หรือ business entity ได้
SAP จะเรียกตัวนั้นว่า Variant
ตัวอย่างของ Variant ก็เช่น fiscal year, Chart of Account

ส่วนมุมมองของ Programer ก็คือ Variant
ถือได้ว่าเป็น ความสัมพันธ์แบบ many-to-one ของ
business entity เช่น
Company<--many ---to--- one--> Chart of Account


ดังนั้นตัว chart of account จึงถือเป็นพวก Variant

? จริงๆแล้วพวก many-to-many ก็น่าจะถือเป็น
variant เหมือนกันนะ เพราะมันต้องถูก share ใช้
ระหว่าง company เหมือนกัน

Currencies

ประเด็นของ currencies จะเกิดในตอนที่
มีการซื้อขายกับ vendor หรือ customer
ที่อยู่นอกประเทศ
โดยในการลงบัญชี จะต้องมีการ convert
สกุลเงินให้เป็นสกุลเงินที่ได้ define ไว้ที่
company code เสียก่อน

ประเด็นที่เกิดขึ้นก็คือ จะต้องมีการ maintain
convertion table ที่ใช้ในการ convert
ซึ่งการป้อนด้วยมือ ดูจะเป็นทางเลือกที่น่าพิสมัย
น้อยสุด ในส่วนของ SAP ได้เตรียมทางเลือกไว้
2 แบบก็คือ
  • manual upload file
    เตรียม file ให้อยู่ใน format ที่กำหนดแล้วก็
    upload ตามอัธยาศัย
  • Remote Function Call
    เป็นการ call ออกไปยัง external system
    เพื่อให้ได้ข้อมูลกลับมา


สิ่งที่น่าสนใจก็คือ วิธีการเก็บ Exchange Rate
​เนื่องจาก rate มีอยู่ 2 rate ก็คือ selling rate
กับ Buying rate แทนที่จะเก็บ 2 ค่านี้
เราจะเก็บเป็น Average Rate กับ Spread ณ ขนาดนั้นแทน
เนื่องจากตัว Spread ส่วนใหญ่จะไม่ค่อยเปลี่ยนแปลง

Selling Rate ---------
|
+ spread
|
Average Rate ---------
|
- spread
|
Buying Rate ----------


ส่วนประเด็นสุดท้ายก็คือ รูปแบบของ convertion rate
อยู่ในรูป direct quotation หรือ indirect quotation
(จะเอามาคูณ หรือเอามาหาร เพื่อแปลงเป็น local currency
แค่นั้นเอง)

Wednesday, May 18, 2005

FI Variant-Periods

SAP เรียก properties ที่ share โดย
หลายๆ business object ว่า Variant
โดยขั้นตอนของการ config variant ก็คือ
  • define the variant
  • define values for the variant
  • assign the variant to R/3-objects


Fiscal year
เป็น Variant ตัวหนึ่งที่เราต้องกำหนดให้
กับ company
ในการกำหนด Fiscal Year เราจำเป็นต้อง
กำหนด posting periods กับ special periods
ให้กับ fiscal year
(special period ก็คือช่วงเวลาที่ไม่ได้ขึ้นอยู่กับเวลา
ปกติจะใช้กันในตอนสิ้นปี สำหรับขบวนการปิดปัญชี)

ตัว sap อนุญาติให้มี periods สูงสุดได้ 16 periods
ใน 1 fiscal year (12 postgin periods + 4
special periods)
SAP ใช้ posting date (ใน document) เป็นตัว
กำหนดว่า gl transaction ควรจะตกอยู่ใน posting
period ไหน กรณีที่ posting date ตกอยู่ในเดือนสุดท้าย
sap จะอนุญาติให้ post รายการลง special periods ได้

เราสามารถแบ่ง fiscal year เป็น 2 ประเภทใหญ่ๆก็คือ
  • year-independent
  • year-dependent

year-independent ก็คือแต่ละปีมีจำนวน periods เท่ากัน
และเริ่มต้นที่วันที่และเดือนเดียวกันทุกครั้งง
กรณีที่ fiscal year ไม่ได้เริ่มต้นที่วันที่ 1 มกราคม
เราต้องมีการกำหนด year shift +1,-1, 0 indicator
ให้กับ posting periods ด้วย เช่น fiscal year เริ่มต้นที่วันที่ 1 เมษายน
ดังนั้น posting period ที่เดือน มกราคม,กุมภาพันธ์,มีนา
จะมี indicator -1 ส่วนที่เหลือจะมี indicator เป็น 0
หรือกรณีราชการ เริ่มต้น fiscal year ที่ 1 ตุลา
ดังนั้น เดือน ตุลาคม ถึง ธันวาคม จะมี indicator +1

ส่วน year-dependent บ้านเราคงไม่มีมั้ง น่าจะยุ่งนะถ้าใช้แบบนี้
กล่าวคือ แต่ละปี มีจำนวนงวดไม่เท่ากัน เริ่มต้นของแต่ละปีไม่ตรงกัน

ในการ config periods เราจะกำหนด
  • เป็น year-dependent หรือไม่
  • ตรงกับ calendar year หรือไม่
  • จำนวนของ posting periods
  • จำนวนของ special periods

จากนั้นก็ต้องกำหนดย่อยลงไปในแต่ละเดือน
(ใช้เดือนตาม calendar)
  • จำนวนวัน ในเดือนนั้น
  • map ตรงกับ period อะไร
  • year shift indicator เป็นค่าอะไร

ตัวอย่าง การกำหนดงวดบัญชีแบบราชการ
(เริ่มต้นปีบัญชีเดือนตุลาคม)


monthDaysPeriod Year Shift
1 31 4 0
2 29 5 0
3 31 6 0
4 30 7 0
5 31 8 0
6 30 9 0
7 31 10 0
8 31 11 0
9 30 12 0
10 31 1 +1
11 30 2 +1
12 31 3 +1

Tuesday, May 17, 2005

FI Organization Unit #1

Client
 แทนบริษัทฯ หรือ กลุ่มของบริษัทฯ ที่จะใช้ SAP

Company
 ในนิยามจริงๆ จะหมายถึง Account Entity หนึ่งๆ
(มีหน้าที่นำเสนอผลประกอบการผ่านทางบัญชีงบดุล)

Business
Area

 เป็น Dimension อีกมุมมองหนึ่ง ซึ่งสามารถ
group ข้าม company code ได้ ตัว SAP สามารถ
ออก financial statement ตาม Business Area ได้

งบการเงินสามารถออกในมุมมองของ company
หรือมุมมองของ Business Area ก็ได้ โดยถ้ามองตาม
วัตถุประสงค์แล้ว การออกงบการเงินตาม company
จะเป็นไปเพื่อ present แก่ภายนอก ส่วน การออกงบการเงิน
ตาม business area จะเป็นไปเพื่อการจัดการภายใน
เสียมากกว่า (internal purpose)

ข้อมูล Company
  • Company code
  • Company name
  • City
  • Country  
    ประเทศที่ใส่ตรงนี้จะไปมีผลตอนทำ transaction จ่ายเงิน กรณีที่จ่ายเงินให้
    Vendor ที่ไม่ได้อยู่ใน country เดียวกัน (ซึ่งต้องการข้อมูล
    มากกว่าการจ่ายภายในประเทศ)
  • Currency
    ตัวบัญชีแยกประเภทจะจัดเก็บในรูป currency นี้
  • Language
  • Address
  • Business Area
  • Chart of Account
  • Fiscal Year

Friday, May 13, 2005

Financial module basic element #2

cc-cca

Company
ประกอบด้วย attribute ดังนี้
  • Code
  • Name
  • Name2
  • Street
  • PO Box
  • Postal code
  • City
  • Country
  • Language Key
  • Currency


Credit Control Area
เป็นส่วนที่รับผิดชอบในส่วนของการ granting และ monitoring
credit ของ customer
โดยตัว Credit Control Area สามารถกำหนด
ให้ดูแลได้มากกว่า 1 company
  • Currency
  • Update Policy
  • Fiscal Year Variant ใช้กรณีที่แต่ละบริษัทฯที่อยู่ในกลุ่ม control area นี้มี fiscal year ไม่ตรงกัน
  • default data สำหรับกรณี create customer ใหม่
    • Risk category
    • Credit limit
    • Representative group


ที่จุด control Area นี้มีตัวที่น่าสนใจก็คือ config ในส่วนของ
Update Policy ซึ่งเป็นตัวกำหนดว่ายอด credit ของ customer
ควรจะ update ณ จุดไหน เช่น ณ จุดที่ออก order
หรือจุดที่ออกใบส่งของ

Note: น่าสังเกตุว่า ตัว company ก็มี currency
ตัว Credit Control Area ก็มี currency
คำถามก็คือ ค่าทั้งสองนี้ไม่ตรงกันได้หรือไม่
ถ้าไม่ตรงกัน นโยบายการ convert rate
จะเป็นอย่างไร

Tuesday, May 10, 2005

Account Payable (บัญชีเจ้าหนี้) Basic Element

Element ที่สำคัญสุดในส่วนนี้ก็คือ Vendor
เนื่องจาก vendor รายหนึ่งๆ สามารถที่จะติดต่อ
ทำธุรกรรมกับบริษัทฯในเครือได้มากกว่า 1 บริษัทฯ
ดังนั้นในการสร้าง Vendor record จะมีการสร้าง
อยู่ 2 ระดับคือ
  • ระดับ Client level ทุกบริษัทฯจะ share
    ใช้ข้อมูลร่วมกัน
  • ระดับ Company Specific ข้อมูลของ vendor
    ที่เฉพาะเจาะจงของแต่ละบริษัทฯ เช่น term of payment


Account Group
เพื่อให้สะดวกในการจัดกลุ่ม เราสามารถแบ่งกลุ่ม
vendor ออกเป็นกลุ่มๆ เพื่อให้สะดวกในการจัดการ
ตัวอย่างของกลุ่ม ก็เช่น domestic vendor,
foreign vendor, one-time vendor (พวกซื้อครั้ง
เดียวแล้วเลิก ไม่คิดจะทำธุรกิจระยะยาวกัน)

ข้อมูลที่พึงมีใน Vendor
  • Name แบ่งเป็นคำนำหน้ากับชื่อ
  • ที่อยู่
  • ข้อมูลสำหรับการติดต่อ เช่นโทรศัพท์ โทรสาร
  • Tax information
  • ข้อมูล map กับ Customer กรณีที่มีบทบาทเป็นทั้งผู้ซื้อและผู้ขาย
  • ธนาคาร ที่ไว้ใช้ในการจ่ายเงิน
  • บัญชีคุมที่ใช้
  • payment เช่น payment term, payment method (เช็ค, โอนเงิน)
  • ข้อมูลภาษีหัก ณ ที่จ่าย

(Note: ข้อมูลจริงๆใน sap มีเยอะกว่านี้ แต่ลดรูปพอให้เข้าใจภาพรวมก่อน)

Monday, May 09, 2005

Account Element Outline

img01

ถ้าเราเริ่มต้นที่ company ใน SAP อนุญาติให้เรามีได้หลาย company
โดยแต่ละ company สามารถ assign business area ได้มากกว่า 1
ตัว business area คาดว่าคงใช้เป็น dimension ในการออกรายงาน
เสียมากกว่า

ส่วน Controlling Area คาดว่าจะใช้ในการทำ งบการเงินรวม
ของกลุ่มบริษัทฯ

ตัว chart of account ใช้เป็น template สำหรับ
สร้าง account ทีจะใช้ลงบัญชีของแต่ละบริษัท
โดยข้อมูลกลางๆ จะเก็บที่ Account Definition
ส่วนข้อมูลที่ customize ของแต่ละบริษัทฯ ก็จะ
เก็บอยู่ในส่วน company Account Specific
ตัวอย่าง ข้อมูลส่วน customize ก้เช่น currency
เช่น บัญชีลูกหนี้มีรหัส 11000 ถ้านำไปใช้ใน
บริษัท A กำหนดให้ currency เป็น Bth
แต่ถ้านำไปใช้ในบริษัท B จะใช้เป็นหน่วย US-Dollar

ส่วน Account Group จะเป็น template
หลักที่ช่วยให้ user บันทึก Company Account
Specific ได้ถูกต้องขึ้น
โดย Account Group จะเก็บ definition ว่า
field ไหนใน Company Account Specific
ที่อนุญาติให้ user ป้อนบ้าง
(แต่ละประเภทบัญชี มีสิ่งที่ต้อง config
ไม่เหมือนกัน เช่น บัญชีเงินฝากธนาคาร
กับบัญชี เจ้าหนี้)

Sunday, May 08, 2005

financial module #1 basic element

Company Code
    แทน 1 บริษัท
Business Area
    เป็นการกลุ่มธุรกิจ เช่น Machinery, Automotive

ความสัมพันธ์ระหว่าง Company Code กับ Business Area
มีลักษณะเป็น many to many นั่นคือ company หนึ่งๆ
มีได้หลาย business area และ 1 business area มีได้
หลายบริษัทฯ

Controlling Area
    เป็นส่วนของ Managerial Accounting

ความสัมพันธ์ระหว่าง company กับ controlling area
เป็นแบบ many-to-one นั่นคือ company หนึ่งมีได้แค่
1 control area แต่ 1 controlling area มีได้หลาย  company
โดยมี constraint คือแต่ละบริษัทฯต้องมี fiscal calendar ตรงกัน
และใช้ account chart เดียวกัน

Chart of Account
    เป็นกลุ่มบัญชีที่ได้มีการ define ไว้แล้ว
การนำไปใช้ ก็คือต้องนำไป assign ให้กับ company code
โดย 1 company code มีได้แค่ 1 Chart of Account
แต่ 1 chart of Account มีได้หลาย company code
Note: ข้อมูลใน chart of account จะมีหลักๆคือ
ชื่อ, รหัส และ ประเภท เท่านั้น
    ในการใช้งานจริง เมื่อเรา assign chart of account
ให้กับ company  แล้ว ตัว account นั้นยังไม่สามารถลง
บัญชีได้ ต้องมีการ assign ข้อมูลเฉพาะสำหรับ company
code สำหรับ account นั้นลงไปก่อน เราเรียกส่วนนี้ว่า
"Company Code-Specific Settings"

Account Group
    เป็นการจัดแบ่งกลุ่มบัญชีที่เหมือนๆกัน
เพื่อให้สะดวก ในการ config  เช่นกลุ่มบัญชีสินทรัพย์, กลุ่มบัญชีหนี้สิน
โดยข้อมูลที่ Account group เก็บก็คือ
    เลขที่บัญชี ที่อนุญาติให้ใช้ สำหรับ
account ที่สังกัด
โดยจะเก็บเป็น range of numbers
    control ว่าในส่วนของ Company
Code-Specific Setting
นั้น user จะมองเห็นอะไร หรือ set ค่าอะไรได้บ้าง

Reconciliation Account
    เป็นบัญชีคุมยอด ที่เกิดจาก
บัญชีย่อยๆ หลายๆบัญชี เช่นบัญชีคุมเจ้าหนี้ ซึ่งเกิดจาก
บัญชีเจ้าหนี้รายตัว (แต่ละบริษัทที่มีหนึ้กับเรา ก็จะเปิด 1 บัญชี)

Transaction Figure
    คือยอดรวม (summary) ของแต่ละ Account
โดยในแต่ละ account จะมี transaction figure 2 ค่าคือ
ค่า credit และค่า Debit
note: กรณีที่ใช้ business area ก็จะเกิด Transaction Figure
break ตาม business area

Financial Statement Version
เป็นการ config รูปแบบการออก รายงานทางการเงิน (งบดุล, งบกำไรขาดทุน,..)
โดยแต่ละ  version สามารถเลือก company ที่จะ consolidate ได้
แต่มีข้อแม้ว่าต้องอยู่ใน Controlling area  เดียวกัน
ประเด็นที่เกิดก็คือ กรณีที่เราต้องการ รายงานทางการเงิน
สำหรับ ประเทศหนึ่งๆ โดยเฉพาะ (แต่ละประเทศจะมีกฎเกณฑ์
หรือรูปแบบ รายงานที่ยอมรับได้) ส่วนนี้ SAP ใช้ศัพท์ว่า
country-specific chart
Note: การ post เข้า country-specific chart จะผ่านทาง
"Alternative account number" field (?  config อย่างไร)


Group Chart of Accounts
ใช้ในกรณีที่เราต้องการ consolidate บัญชีหลายๆ บริษัท
? ยังไม่เข้าใจประเด็นนี้ดีนัก ทำไมดูซ้ำซ้อนกับ Chart of Account
หรือว่าเป็นตัว layer mapping ชั้นบน เพื่ออนุญาติให้
chart of account หลายๆอัน map เข้ามารวมกันได้

Introduction

blog นี้กะว่าจะใช้เป็นที่ short note
ในการศึกษาระบบ ERP ต่างๆที่สามารถหาคู่มือ
มาอ่านได้
โดยจะเริ่มต้นจาก SAP ก่อน

วัตถุประสงค์ คงเป็นเพื่อพัฒนา
ความรู้ในส่วนของ business
เพื่อที่จะสามารถนำไปพัฒนา ระบบงานที่ดี
ในอนาคต