รู้จักภาษา ABAP เปิดเบื้องหลังของ SAP R/3 ตอน 3


1,056 ผู้ชม


ฉบับที่แล้ว ผมได้กล่าวถึงเรื่อง Data Object ตัวแรกที่อยู่ใน Memory Space ซึ่งก็คือตัวแปร (หรือ Variable) ในฉบับนี้เรามาเรียนรู้ Data Object ตัวที่สองใน Memory Space ซึ่งก็คือ Structure นั่นเอง โดยที่ Structure นี้ เรียกอีกอย่างหนึ่งว่าตัวแปรเรคอร์ดก็ได้

พื้นที่โฆษณา  
สนใจลงโฆษณา ติดต่อ โทร.0-2642-3400 ต่อ 4613


ฉบับที่แล้ว ผมได้กล่าวถึงเรื่อง Data Object ตัวแรกที่อยู่ใน Memory Space ซึ่งก็คือตัวแปร (หรือ Variable) ในฉบับนี้เรามาเรียนรู้ Data Object ตัวที่สองใน Memory Space ซึ่งก็คือ Structure นั่นเอง โดยที่ Structure นี้ เรียกอีกอย่างหนึ่งว่าตัวแปรเรคอร์ดก็ได้

การสร้าง Structure

คำสั่งที่ใช้ในการสร้าง Structure ก็คือ คำสั่ง Data เหมือนกับการสร้างตัวแปรปกตินั่นเอง เพียงแต่เราเพิ่มออปชัน begin of เข้าไปในคำสั่ง Data ก็จะเป็นการสร้าง Structure เช่น
Data begin of material.
Data matno(12) type N.
Data matdesc(20) type C.
Data end of material.
หรือเขียนในแบบ Colon Notation จะได้ดังนี้
Data: begin of material,
matno(12) type N,
matdesc(20) type C,
end of material.
รูปที่ 1

..... รูปที่ 1 สิ่งที่เราได้จากการใช้คำสั่ง Data ที่ Memory Space ก็คือตัวแปร Structure ชื่อ Material .....
ตัวแปร Structure ที่ชื่อ material จะมีฟิลด์ในตัวแปรอยู่สองฟิลด์ด้วยกันคือ matno และ matdesc และในการเรียกใช้งานตัวแปร Structure นั้น เราต้องเรียกใช้ตามรูปแบบดังนี้คือ <ชื่อ Structure>-<lฟิลด์> เช่น
material-matno = 1.
material-matdesc = 'Material No.1'.
รูปที่ 2

..... รูปที่ 2 เมื่อระบุค่าลงไปในแต่ละฟิลด์ จะได้ข้อมูลที่ Memory Space ดังรูป.....
และเช่นเดียวกัน ถ้าเราต้องการแสดงข้อมูลฟิลด์ matno ของ Structure ที่ชื่อ material เราก็จะต้องอ้างอิงฟิลด์ใน Structure ดังนี้
Write material-matno.
เราก็จะได้ข้อมูล 000000000001 ที่หน้าจอต่อไป จากรูปแบบของการเรียกใช้งานตัวแปร Structure ที่มีเครื่องหมาย - รวมอยู่ด้วยนี้ ผมจึงไม่แนะนำให้สร้างตัวแปรธรรมดาที่มีเครื่องหมาย - รวมอยู่ในชื่อตัวแปร เพราะเวลาเราเรียกใช้งานตัวแปรนั้น อาจทำให้เราเข้าใจผิดคิดว่าเป็นฟิลด์ใน Structure ก็ได้ เพื่อป้องกันความสับสนที่อาจจะเกิดขึ้น โปรดหลีกเลี่ยงการใช้เครื่องหมาย - ในชื่อตัวแปรธรรมดานะครับ
สำหรับการสร้างตัวแปรธรรมดานั้น เราสามารถใช้ออปชัน LIKE ในการดึงโครงสร้างของฟิลด์ในตารางของฐานข้อมูลใน Data Dictionary ของระบบ SAP ได้ เช่นสมมติว่าเราต้องการสร้างตัวแปรที่ชื่อ custid ที่ใช้เก็บข้อมูลของรหัสลูกค้า เราสามารถใช้คำสั่ง
Data custid like customers-id.
ระบบจะสร้างตัวแปรที่ชื่อ custid โดยมีชนิดของข้อมูลและ Length เหมือนกับฟิลด์ id ของตาราง customers ที่อยู่ใน Data Dictionary ของระบบ SAP R/3 (Transaction Code SE11)
จะเห็นได้ว่าออปชัน Like นั้น จะช่วยให้เราสร้างตัวแปรที่มีชนิดของข้อมูลและ Length ที่เหมือนกันกับฟิลด์ในตารางของฐานข้อมูลได้อย่างง่ายดาย โดยที่เราไม่จำเป็นที่จะต้องรู้ชนิดของข้อมูลและ Length แต่อย่างใด แต่ถ้าเราใช้ออปชัน Like แล้วตามด้วยชื่อตารางหรือ Structure ใน Data Dictionary ของระบบ SAP เราก็จะได้ตัวแปร Structure แทนตัวแปรธรรมดา เช่น
Data tempcust like customers.
รูปที่ 3

..... รูปที่ 3 สมมติว่าตาราง customers มีทั้งหมด 3 ฟิลด์คือ id, name และ city เราจะได้ตัวแปร Structure ที่ชื่อ tempcust ใน Memory Space ดังรูป .....
ก็คือระบบจะ Copy โครงสร้างของตาราง customers มาให้กับตัวแปร Structure ที่ชื่อ tempcust นั่นเอง นอกจากนี้เรายังสามารถสร้าง Structure ในอีกรูปแบบหนึ่งดังนี้
Data begin of tempcust.
Include structure customers.
Data tel(10) type C.
Data end of tempcust.
รูปที่ 4

..... รูปที่ 4 เมื่อใช้คำสั่ง Include Structure เพื่อดึงโครงสร้างของตาราง customers มาสร้าง Structure ที่ชื่อ tempcust จะได้ผลดังรูป .....
คำสั่ง Include Structure เป็นคำสั่งที่ใช้ในการดึงโครงสร้างของตาราง customers มา สร้างให้กับ Structure ที่ชื่อ tempcust และถ้าเรายังไม่ใช้คำสั่ง Data end of tempcust เราก็ยังสามารถเพิ่มฟิลด์เข้าไปใน Structure ที่ชื่อ tempcust ได้อีก ซึ่งในที่นี้ก็คือฟิลด์ tel นั่นเอง ซึ่งจากคำสั่งข้างต้น เราจะได้ Memory Space ดังรูปที่ 4
อย่าลืมนะครับว่า ทุกครั้งที่ระบบทำการสร้าง Data Object อะไรก็ตามที่ Memory Space ระบบจะให้ค่าเริ่มต้นกับสิ่งที่มันสร้างขึ้นมาด้วยเสมอตามชนิดของข้อมูลนั้นๆ และเมื่อจบการทำงานของโปรแกรม ระบบจะเคลียร์พื้นที่ Memory Space ทิ้งไปด้วยเช่นกัน

List Buffer

รูปที่ 5

..... รูปที่ 5 List Buffer เป็นอีกส่วนหนึ่งที่อยู่ใน Local Memory .....

คำสั่ง ABAP ที่ใช้ในการแสดงผลข้อมูลที่หน้าจอ จะมีด้วยกัน 3 คำสั่ง คือคำสั่ง Write คำสั่ง Skip และคำสั่ง Uline ซึ่งคำสั่งเหล่านี้จะเป็นการสร้างผลของข้อมูลที่ List Buffer (หน้าจอรายงานของระบบ SAP จะเรียกว่า List) ซึ่งเป็นพื้นที่อีกส่วนหนึ่งที่อยู่ใน Local Memory ของ Work Process ดังรูปที่ 5
เมื่อมีการทำงานตามคำสั่ง ABAP ของโปรแกรมทั้งหมดแล้ว Work Process ก็จะส่งข้อมูลที่ List Buffer ไปให้กับ Dispatcher เพื่อนำข้อมูลส่งกลับไปที่ Presentation Server ซึ่งก็คือโปรแกรม SAPGUI ที่เครื่องไคลเอ็นต์อีกที เพื่อแสดงผลข้อมูลที่หน้าจอต่อไป เช่นเดียวกันกับ Memory Space เมื่อโปรแกรม ABAP ทำงานเสร็จสิ้นโดยสมบูรณ์ ระบบจะเคลียร์พื้นที่ List Buffer ทิ้งไปเช่นเดียวกัน


PC Magazine

ฉบับที่ 45 ตุลาคม 2545
อ่านบทความอื่นๆ >>

อัพเดทล่าสุด