<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SAP &#8211; PARINYA.NET</title>
	<atom:link href="https://www.parinya.net/node/category/sap/feed" rel="self" type="application/rss+xml" />
	<link>https://www.parinya.net</link>
	<description>Computation theories and information processing theories.</description>
	<lastBuildDate>Sat, 01 Sep 2012 16:42:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>Unicode ใน SAP</title>
		<link>https://www.parinya.net/node/1722</link>
					<comments>https://www.parinya.net/node/1722#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sat, 01 Sep 2012 16:38:10 +0000</pubDate>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ASCII]]></category>
		<category><![CDATA[Unicode]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1722</guid>

					<description><![CDATA[หลายวันก่อนมีบริษัทผู้ให้บริการซอฟต์แวร์ SAP เข้ามาที่ทำงานผม เนื้อหาที่เขาเข้ามาพูดก็คือการปรับรุ่นของซอฟต์แวร์ SAP ที่ ๆ ทำงานผมใช้อยู่ จากรุ่น 4.7 ไปเป็น ECC6 ซึ่งเรื่องปรับรุ่นไม่มีประเด็น เพราะถ้าไม่ปรับก็คงจะไม่มีใครมาช่วยเหลืออีก เนื่องจาก SAP เขาจะหยุดสนับสนุน SAP รุ่น 4.7 ในอีกประมาณครึ่งปีข้างหน้านี้ แต่ที่มีประเด็นกลับเป็นเรื่องของ Unicode เพราะรุ่น 4.7]]></description>
										<content:encoded><![CDATA[<p>หลายวันก่อนมีบริษัทผู้ให้บริการซอฟต์แวร์ SAP เข้ามาที่ทำงานผม เนื้อหาที่เขาเข้ามาพูดก็คือการปรับรุ่นของซอฟต์แวร์ SAP ที่ ๆ ทำงานผมใช้อยู่ จากรุ่น 4.7 ไปเป็น ECC6 ซึ่งเรื่องปรับรุ่นไม่มีประเด็น เพราะถ้าไม่ปรับก็คงจะไม่มีใครมาช่วยเหลืออีก เนื่องจาก SAP เขาจะหยุดสนับสนุน SAP รุ่น 4.7 ในอีกประมาณครึ่งปีข้างหน้านี้</p>
<p>แต่ที่มีประเด็นกลับเป็นเรื่องของ Unicode เพราะรุ่น 4.7 ไม่ได้ใช้ Unicode ในขณะที่รุ่น ECC6 ใช้ Unicode!!!</p>
<p>จริง ๆ แล้ว Unicode ถูกออกแบบขึ้นมา เพราะโลกเรามันมีภาษาเขียนหลายสิบหลายร้อยภาษา ดังนั้น การเอาตัวเลขเพียงแค่ 8 บิต (รหัส ASCII) มาแทนอักขระของทุกภาษามันจึงเป็นไปไม่ได้ ดังนั้น เขาก็เลยเอาตัวเลขแบบ 16 บิต (Unicode) มาใช้แทนอักขระของทุกภาษาในโลก และเป็นที่มาของสิ่งที่เรียกว่า Unicode</p>
<p>ปัจจุบันมีการเอาตัวเลขแบบ 32 บิต (Unicode) มาใช้แทนอักขระของทุกภาษาในโลกแล้วด้วยซ้ำไป!!!</p>
<p>ทีนี้วกกลับมาเรื่องปรับรุ่น SAP ก่อน คือ บางครั้งบริษัทผู้ให้บริการซอฟต์แวร์ SAP เขาก็นำเสนอไม่ค่อยเป็น เพราะเมื่อถูกถามว่าทำไมต้องเปลี่ยนไปเป็น Unicode แทนที่เขาจะอธิบายว่าการเก็บข้อมูลมันจะเปลี่ยน เช่น จากเดิมอักขระ &#8220;ก&#8221; จะถูกเก็บ 8 บิตเป็นค่า A1 พอเปลี่ยนมาเป็น 16 บิตแบบ Unicode ก็จะกลายเป็นค่า 0E01 อะไรแบบนี้ คือเขาควรอธิบายแบบนี้ แต่กลายเป็นว่าเขาพาออกทะเล ดันไปบอกว่าถ้าเราใช้ Unicode แล้วมันจะสนับสนุนหลายภาษาได้ พาเข้ารกเข้าพงไปกันใหญ่ เพราะพอถามกลับไปว่าปรกติก็ใช้แต่ภาษาอังกฤษกับภาษาไทย แล้วจะใช้ Unicode ไปทำไมล่ะ ในเมื่อไม่ได้ใช้หลายภาษา ใช้แค่สองภาษาเอง?</p>
<p>นอกจากนี้ก็ยังมีเรื่องของเนื้อที่จัดเก็บ เพราะเดี๋ยวนี้ SAP เขาเก็บเป็น Unicode 32 บิต นั่นแสดงว่าเราต้องเสียเนื้อที่เพื่อจัดเก็บแต่ล่ะอักขระเพิ่มขึ้นเป็น 4 เท่า คือ จากเดิมอักขระเดียว 8 บิต ก็กลายเป็นอักขระนึง 32 บิต ซึ่งแสดงว่าเราต้องเพิ่มเนื้อที่ฮาร์ดดิสก์อีกอย่างเยอะ เพื่อให้รองรับต่อการขยายตัวนี้ ซึ่งข้อนี้บริษัทเขาสามารถโต้แย้งได้ คือเขาบอกว่า SAP ECC6 มันสามารถบีบอัดข้อมูลได้ 30% ดังนั้น ไม่น่าจะมีประเด็นเรื่องของเนื้อที่</p>
<p>ตอนจบของการพูดคุยเราเลยบอกเขาไปว่า เรายังคงอยากเก็บหนึ่งอักขระด้วยตัวเลข 8 บิตอยู่ ดังนั้น ช่วยไปหาตัวแปลงทั้งขาเข้าและขาออกจาก SAP ECC6 ให้มันคุยกับข้างนอกเป็น Unicode 32 บิต แล้วคุยข้างในเป็น ASCII 8 บิตให้ที</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1722/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ให้ PHP ใช้ SAPRFC เพื่อดึงข้อมูลจาก SAP R/3</title>
		<link>https://www.parinya.net/node/1681</link>
					<comments>https://www.parinya.net/node/1681#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Mon, 12 Mar 2012 15:02:34 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SAPRFC]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1681</guid>

					<description><![CDATA[ผมกำลังจะทำชิ้นงานหนึ่งชิ้น เพื่อดึงเอาข้อมูลออกจาก SAP R/3 ออกมาใช้ครับ โดยชิ้นงานที่ว่าจะออกเป็นแนว Web Application ซึ่งผมก็คิดว่าผมจะสร้างมันด้วย PHP โดยจะใช้ SAPRFC ซึ่งเป็น PHP Extension สำหรับแทงทะลุเข้าไปใน SAP R/3 ครับ จริง ๆ แล้วผมจะเขียนภาษา ABAP เพื่อให้มันทำงานบน SAP]]></description>
										<content:encoded><![CDATA[<p>ผมกำลังจะทำชิ้นงานหนึ่งชิ้น เพื่อดึงเอาข้อมูลออกจาก SAP R/3 ออกมาใช้ครับ โดยชิ้นงานที่ว่าจะออกเป็นแนว Web Application ซึ่งผมก็คิดว่าผมจะสร้างมันด้วย PHP โดยจะใช้ SAPRFC ซึ่งเป็น PHP Extension สำหรับแทงทะลุเข้าไปใน SAP R/3 ครับ</p>
<p>จริง ๆ แล้วผมจะเขียนภาษา ABAP เพื่อให้มันทำงานบน SAP R/3 ก็ได้นะ มันได้ผลเหมือนกัน เพียงแต่ผมอยากจะแสดงผลออกมาเป็น Web Application ที่มีลูกเล่นสวย ๆ โดยใช้ XHTML + CSS + jQuery + AJAX มากกว่า และอีกอย่างผมก็ไม่อยากจะให้ผู้ใช้งาน ต้องมาติดตั้ง SAP GUI ให้วุ่นวายด้วย ก็เลยเลือกทำเป็น Web Application แทน</p>
<p>หลัก ๆ แล้วการเชื่อมต่อจาก PHP ไปที่ SAP R/3 สามารถทำได้สองวิธีครับ คือใช้ <a href="http://en.wikipedia.org/wiki/Remote_function_call">RFC</a> กับใช้ <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a> แต่ผมเลือกใช้ RFC เพราะมีคนเก่ง ๆ ทำ PHP Extension ที่เรียกว่า SAPRFC ให้เราแล้ว ทำเป็น API สวยงาม พร้อมให้เราเรียกใช้ได้เลย</p>
<p>ตอนแรกผมนึกว่าผมจะใช้ ASP.NET เพื่อทำเป็น Web Application แล้วต่อเชื่อมไป SAP R/3 ด้วย SAP Netweaver ที่มี API ของ .NET Framework เตรียมมาให้ แต่แย่หน่อย ผมไม่ได้เป็นสาวกของ Microsoft ผมชอบ PHP มากกว่า ก็เลยเลือกใช้ PHP แทน (ชุมชนมันใหญ่ดี)</p>
<p>วกกลับมาเรื่อง RFC ต่อ คือว่า แนวคิดของ SAP R/3 เ่นี่ย เขาจะอนุญาตให้โปรแกรมคอมพิวเตอร์ภายนอกเรียกเข้ามาที่ SAP R/3 ได้ แต่ไม่ให้เรียกเข้ามาตรง ๆ มาคุ้ยมาเขี่ยตามใจชอบอะไรแบบนั้น คือจะต้องเรียก Function ที่เตรียมเอาไว้ใน SAP R/3 ซึ่ง Function ดังกล่าวก็จะมี Parameter สำหรับรับเข้าและส่งออก และที่สำคัญ Function ดังกล่าวต้องสร้างเอาไว้โดยมีคุณสมบัติเป็น Remote-enabled Module</p>
<p>มีคนแต่งหนังสือสอนเรื่องนี้ไว้หลายคน เช่น <a href="http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a5d5b6f6-0301-0010-4fae-f3b91bcfd642?QuickLink=index&#038;overridelayout=true&#038;10784662880573">อันนี้</a> เป็นต้น</p>
<p>การเขียนโปรแกรมคอมพิวเตอร์เพื่อเชื่อมต่อกับ SAP R/3 ถือว่าเป็นเรื่องท้าทาย เพราะโดยปรกติแล้ว ก็มีแต่ผลิตภัณฑ์ของ SAP กันเองนั่นแหล่ะ ที่ใช้่ RFC เพื่อเชื่อมต่อรับส่งข้อมูลหากัน คนนอกไม่ค่อยอยากไปยุ่งด้วยเท่าไหร่หรอก มันเป็นระบบกึ่งปิดกึ่งเปิด</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1681/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Cross Function Workflow</title>
		<link>https://www.parinya.net/node/1537</link>
					<comments>https://www.parinya.net/node/1537#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Fri, 01 Apr 2011 09:16:14 +0000</pubDate>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[WorkFlow]]></category>
		<category><![CDATA[cross function]]></category>
		<category><![CDATA[workflow]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1537</guid>

					<description><![CDATA[สมัยก่อน เวลาผมจะคุยกับใครในเรื่องของคอมพิวเตอร์ ซึ่งเรื่องที่คุยเกี่ยวข้องกับการไหลของกระบวนการและข้อมูล ผมมักจะวาดเป็น flowchart แบบภาพข้างล่าง แต่พอผ่านไปผมก็พบว่า ยิ่งคุยยิ่งยาก ดังนั้น การเขียน flowchart มันไม่พอ มันต้องมีการแบ่งแยกด้วยว่า กระบวนการและข้อมูลในช่วงนั้น ๆ ถูกกระทำโดย Unit ใด ก็เลยกลายเป็นว่าต้องเขียนเป็น workflow แทน เดี๋ยวนี้อาการหนัก เพราะตั้งแต่ทำ SAP R/3]]></description>
										<content:encoded><![CDATA[<p>สมัยก่อน เวลาผมจะคุยกับใครในเรื่องของคอมพิวเตอร์ ซึ่งเรื่องที่คุยเกี่ยวข้องกับการไหลของกระบวนการและข้อมูล ผมมักจะวาดเป็น flowchart แบบภาพข้างล่าง</p>
<p><a href="https://www.parinya.net/wp-content/uploads/2011/04/flow1.png"><img fetchpriority="high" decoding="async" src="https://www.parinya.net/wp-content/uploads/2011/04/flow1.png" alt="" title="Flowchart" width="344" height="348" class="aligncenter size-full wp-image-1538" srcset="https://www.parinya.net/wp-content/uploads/2011/04/flow1.png 344w, https://www.parinya.net/wp-content/uploads/2011/04/flow1-296x300.png 296w" sizes="(max-width: 344px) 100vw, 344px" /></a></p>
<p>แต่พอผ่านไปผมก็พบว่า ยิ่งคุยยิ่งยาก ดังนั้น การเขียน flowchart มันไม่พอ มันต้องมีการแบ่งแยกด้วยว่า กระบวนการและข้อมูลในช่วงนั้น ๆ ถูกกระทำโดย Unit ใด ก็เลยกลายเป็นว่าต้องเขียนเป็น workflow แทน</p>
<p><a href="https://www.parinya.net/wp-content/uploads/2011/04/flow2.png"><img decoding="async" src="https://www.parinya.net/wp-content/uploads/2011/04/flow2.png" alt="" title="Workflow" width="513" height="381" class="aligncenter size-full wp-image-1539" srcset="https://www.parinya.net/wp-content/uploads/2011/04/flow2.png 513w, https://www.parinya.net/wp-content/uploads/2011/04/flow2-300x222.png 300w" sizes="(max-width: 513px) 100vw, 513px" /></a></p>
<p>เดี๋ยวนี้อาการหนัก เพราะตั้งแต่ทำ SAP R/3 เลยทำให้รู้ว่า การเขียน workflow แบบพื้น ๆ เพียงอย่างเดียวมันไม่พอ ต้องมีการใส่มิติให้กับมันด้วย เพราะ SAP R/3 มันมีหลาย Module ซะเหลือเกิน แถม Unit แต่ล่ะส่วน ก็ใช้ Module สลับไปสลับมาอีกต่างหาก T-T</p>
<p><a href="https://www.parinya.net/wp-content/uploads/2011/04/flow3.png"><img decoding="async" src="https://www.parinya.net/wp-content/uploads/2011/04/flow3.png" alt="" title="Cross Function Workflow" width="620" height="400" class="aligncenter size-full wp-image-1540" srcset="https://www.parinya.net/wp-content/uploads/2011/04/flow3.png 620w, https://www.parinya.net/wp-content/uploads/2011/04/flow3-300x193.png 300w" sizes="(max-width: 620px) 100vw, 620px" /></a></p>
<p>ต่อไป ไม่แน่ อาจจะต้องเขียนกันเป็น workflow 3 มิติกันเลยทีเดียวเชียว</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1537/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>งาน SAP</title>
		<link>https://www.parinya.net/node/1274</link>
					<comments>https://www.parinya.net/node/1274#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Thu, 17 Jun 2010 03:19:26 +0000</pubDate>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[AUTHORIZE]]></category>
		<category><![CDATA[BASIS]]></category>
		<category><![CDATA[MODULE]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1274</guid>

					<description><![CDATA[ถ้าเราไม่นำเอามาตรฐาน ITIL มาใช้เพื่อแบ่งงานซ่อมบำรุง SAP เราก็จะสามารถแบ่งงาน SAP ออกได้เป็น 4 ประเภทใหญ่ ๆ คือ MODULE, BASIS, AUTHORIZE และ ABAP งาน MODULE จะครอบคลุมการ Configure เพื่อให้ MODULE ต่าง ๆ เช่น]]></description>
										<content:encoded><![CDATA[<p>ถ้าเราไม่นำเอามาตรฐาน ITIL มาใช้เพื่อแบ่งงานซ่อมบำรุง SAP เราก็จะสามารถแบ่งงาน SAP ออกได้เป็น 4 ประเภทใหญ่ ๆ คือ MODULE, BASIS, AUTHORIZE และ ABAP</p>
<figure id="attachment_1275" aria-describedby="caption-attachment-1275" style="width: 352px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2010/06/sap.jpg"><img loading="lazy" decoding="async" src="https://www.parinya.net/wp-content/uploads/2010/06/sap.jpg" alt="งาน SAP" title="งาน SAP" width="352" height="253" class="size-full wp-image-1275" srcset="https://www.parinya.net/wp-content/uploads/2010/06/sap.jpg 352w, https://www.parinya.net/wp-content/uploads/2010/06/sap-300x215.jpg 300w" sizes="auto, (max-width: 352px) 100vw, 352px" /></a><figcaption id="caption-attachment-1275" class="wp-caption-text">งาน SAP</figcaption></figure>
<p>งาน MODULE จะครอบคลุมการ Configure เพื่อให้ MODULE ต่าง ๆ เช่น FI, CO, MM, SD หรือ HR สามารถทำงานได้ตามความต้องการของผู้ใช้งาน</p>
<p>งาน BASIS จะเกี่ยวกับการจัดการขั้นพื้นฐานของ SAP เพื่อให้สามารถเชื่อมประสานระหว่าง Server, Database, Network และ SAP ได้อย่างลงตัว</p>
<p>งาน AUTHORIZE เป็นการกำหนดศักดิ์และสิทธิ์ให้กับผู้ใช้งาน ว่าจะสามารถใช้งานกลไกใด ๆ ใน SAP ได้บ้าง</p>
<p>งาน ABAP คือการเขียนโปรแกรมด้วยภาษา ABAP เพื่อสั่งให้ SAP ทำหรือไม่ทำสิ่งที่ต้องการ เพื่อตอบสนองความพึงพอใจสูงสุดของผู้ใช้งาน</p>
<p>มีคนเคยบอกผมว่าคนที่เชี่ยวชาญ SAP จะสามารถสร้างรายได้ให้กับตัวเองได้อย่างมากมาย แต่บางทีก็ต้องเจาะลึกลงไปเหมือนกัน ว่างานย่อยในส่วนใดของ SAP ที่ให้รายได้สูงที่สุด??</p>
<p>อือม ตรงนี้ผมก็ไม่รู้เหมือนกัน!!!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1274/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>ทำไมภาษา ABAP จึงได้ยากจัง?</title>
		<link>https://www.parinya.net/node/1104</link>
					<comments>https://www.parinya.net/node/1104#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Wed, 29 Apr 2009 03:41:21 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SAP]]></category>
		<guid isPermaLink="false">http://www.peetai.com/archives/1104</guid>

					<description><![CDATA[ภาษา ABAP เป็นภาษาที่ใช้ควบคุมกิจกรรมในระบบ SAP ซึ่งเป็นระบบ ERP ที่ยังพอต่อกรได้กับ Oracle Financial!!! โปรแกรมทุกโปรแกรมในระบบ SAP ล้วนถูกเขียนขึ้นด้วยภาษา ABAP ดังนั้นถ้าใครก็ตามที่คิดจะควบคุม SAP ก็เลยจำเป็นจะต้องรู้จักภาษา ABAP ไปโดยปริยาย งั้นมาสาธยายให้เห็นเป็นข้อ ๆ ดีกว่า ว่าทำไมภาษา ABAP จึงได้ยากจัง? 1.]]></description>
										<content:encoded><![CDATA[<p>ภาษา ABAP เป็นภาษาที่ใช้ควบคุมกิจกรรมในระบบ SAP ซึ่งเป็นระบบ ERP ที่ยังพอต่อกรได้กับ Oracle Financial!!!</p>
<p>โปรแกรมทุกโปรแกรมในระบบ SAP ล้วนถูกเขียนขึ้นด้วยภาษา ABAP ดังนั้นถ้าใครก็ตามที่คิดจะควบคุม SAP ก็เลยจำเป็นจะต้องรู้จักภาษา ABAP ไปโดยปริยาย</p>
<p>งั้นมาสาธยายให้เห็นเป็นข้อ ๆ ดีกว่า ว่าทำไมภาษา ABAP จึงได้ยากจัง?</p>
<p><strong>1.  เพราะ Data Dictionary</strong></p>
<p><strong>ปัญหา</strong></p>
<p>ระบบ SAP มีความยืดหยุ่นสูงมาก ด้วยเหตุที่มี table นับเป็นพัน ๆ table ซึ่งมีหน้าที่เก็บข้อมูลที่จำเป็นต้องใช้ทั้งหมดเอาไว้ ดังนั้นถ้าอยากจะควบคุมกลไกใด ๆ ใน SAP เราจึงหลีกเลี่ยงไม่ได้ที่จะต้องรู้จัก table ต่าง ๆ ในนั้น</p>
<p><strong>วิธีแก้ปัญหา</strong></p>
<p>ในระบบ SAP มีเครื่องมือที่เรียกว่า Data Dictionary ซึ่งช่วยให้เราสามารถสืบค้นโครงสร้างของ table ต่าง ๆ ขึ้นมาดูได้ ดังนั้นเราจึงต้องใช้ต้นทุนเวลาที่เรามีไปกับการ ค้น ๆ ๆ และ ค้น เอา table แต่ล่ะตัวขึ้นมาดู ว่ามัน(น่าจะ)ใช้ทำอะไร, มีฟิลด์อะไรบ้าง และแต่ล่ะฟิลด์(น่าจะ)เอาไว้เก็บอะไร?</p>
<p><span id="more-1104"></span></p>
<p><strong>2.  เพราะ Function</strong></p>
<p><strong>ปัญหา</strong></p>
<p>ระบบ SAP ก็เหมือนระบบใหญ่ ๆ ทั่วไปที่มีสภาพแวดล้อมของตัวเอง มีกลไกการป้องกันของตัวเอง ดังนั้นถ้าอยากจะเสกอะไรซักอย่างให้ดำเนินหรือปรากฎใน SAP เราจึงหลีกเลี่ยงไม่ได้ที่จะต้องรู้จัก function ต่าง ๆ ในนั้น แต่แย่หน่อยที่ function ใน SAP มีเป็นพัน ๆ ตัวอ่ะดิ แถมแต่ล่ะตัวยังเรียกหากันเองอีกต่างหากT-T</p>
<p><strong>วิธีแก้ปัญหา</strong></p>
<p>เราสามารถใช้ Function Builder เพื่อสืบค้น function ต่าง ๆ ขึ้นมาดูได้ ว่าแต่ล่ะตัว(น่าจะ)ใช้ทำอะไร, มีพารามิเตอร์ที่ต้องส่งเข้ากี่ตัว และมีค่าที่ส่งออกมาจาก function กี่ตัว &#8230; อย่างน้อยก็ดีกว่าไปมั่วเอง</p>
<p><strong>3.  เพราะ GUI</strong></p>
<p><strong>ปัญหา</strong></p>
<p>การสร้าง GUI ด้วยภาษา ABAP เพื่อให้แสดงผลใน SAP มีลักษณะกึ่ง Visual เพราะสามารถจะเขียนคำสั่งเพื่อสั่งให้แสดง GUI อย่างที่ต้องการก็ได้ หรือไม่ก็ใช้ Screen Painter เพื่อสร้างหน้าจอที่ต้องการเลยก็ได้ ดังนั้นมันก็เลยมีความซับซ้อนอยู่ในตัว ถ้าควบคุมลำดับการจัดการหน้าจอไม่ดี ก็อาจจะเบลอไปเลย</p>
<p><strong>วิธีแก้ปัญหา</strong></p>
<p>เลือกสร้าง GUI ที่ง่ายและง่ายที่สุด โดยการเขียนภาษา ABAP แบบพื้น ๆ เพื่อสร้างหน้าจอที่ผู้ใช้จะกรอกข้อมูลทุกอย่างในหน้าจอเดียว และเมื่อผู้ใช้กรอกข้อมูลจนครบแล้ว ก็ให้กดปุ่มเพียงปุ่มเดียวเพื่อสั่งให้ทำงาน แล้วแสดงผล เป็นอันจบ</p>
<p><strong>4.  เพราะตัวเราเอง</strong></p>
<p><strong>ปัญหา</strong></p>
<p>การจะเขียนภาษา ABAP เพื่อควบคุม SAP นั้น มีต้นทุนที่สูงลิบลิ่วอยู่ที่เวลาในการศึกษา Data Dictionary และ Function เพราะความเชี่ยวชาญในการเขียนภาษา ABAP แปรผันตรงกับความรู้จักลึกซึ้งใน Data Dictionary และ Function ซึ่งมีอยู่ใน SAP &#8230; ยิ่งรู้มาก ก็ยิ่งเก่งมาก</p>
<p>แต่ทว่า &#8230; มนุษย์เรามีแรงต้านอยู่ในจิตใจ ดังนั้น หากต้องเสียเวลาไปมากมายเพื่อศึกษา Data Dictionary และ Function จนทำให้ไม่มีเวลาไปปรนเปรอตัวเองในด้านอื่น ก็อาจทำให้เกิดความเบื่อหน่ายไม่อยากจะยุ่งเกี่ยวกับการเขียน ABAP เลยก็เป็นได้</p>
<p><strong>วิธีแก้ปัญหา</strong></p>
<p>ถ้าคิดจะยึดการเขียนภาษา ABAP เป็นอาชีพ การทุ่มเทเวลาไปกับการศึกษา Data Dictionary และ Function ถือว่าเป็นเรื่องที่คุ้มค่า เพราะความน่าเบื่อในการศึกษาเรื่องดังกล่าว เป็นปราการสำคัญที่ป้องกันไม่ให้คนอื่น ๆ ได้เก่ง ABAP ได้ง่าย ๆ ดังนั้นคนเก่ง ABAP ก็เลยกลายเป็นคนส่วนน้อยที่มีคุณค่าไปโดยปริยาย</p>
<p>แต่ถ้าการเขียนภาษา ABAP เป็นสิ่งที่ถูกมอบหมายมาให้ทำอย่างเสียมิได้ ก็ขอให้ทำใจซะ เพราะถ้าทำได้ไม่ดีซักที เดี๋ยวองค์กรก็ไปเหมาจ่ายเพื่อจ้าง ABAPER เก่ง ๆ มาทำงานให้แทนเองแหล่ะ อิ อิ <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f61b.png" alt="😛" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>&#8230;</p>
<p>โดยสรุปแล้ว &#8230; หินก็คงยังเป็นหินอยู่ดี จะให้มันเป็นกล้วยไปได้ยังไงกัน &#8230; แป่ว!!!</p>
<p>[tags]ABAP, ABAPER, SAP, Data Dictionary, Function, GUI, ภาษา, ยาก[/tags]</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1104/feed</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>อธิบาย SAP อย่างย่อ</title>
		<link>https://www.parinya.net/node/505</link>
					<comments>https://www.parinya.net/node/505#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Thu, 10 May 2007 04:04:23 +0000</pubDate>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[SAP]]></category>
		<guid isPermaLink="false">http://www.peetai.com/archives/505</guid>

					<description><![CDATA[เมื่อวานซืนอยู่ดี ๆ ผมก็โม้เรื่อง SAP ขึ้นมาอย่างไม่มีปี่ไม่มีขลุ่ย (อ้างอิง: เคยใช้ SAP กันมั้ย?) จึงถูกทักท้วงจากผู้อ่านเป็นอย่างมาก เพราะเล่นไม่ได้เท้าความอะไรเลย มาถึงก็โม้เอาโม้เอา วันนี้เลยมาแก้ตัวครับ เห็นว่าใคร ๆ ก็สนใจอยากจะทราบรายละเอียดของ SAP งั้นหัวข้อนี้ก็มาโม้อย่างย่อกันดีกว่า ไอ้เจ้าระบบซอฟต์แวร์ที่ชื่อว่า SAP นั้น มันเป็นระบบซอฟต์แวร์ทางธุรกิจครับ เน้น ๆ เลยเพื่อธุรกิจ]]></description>
										<content:encoded><![CDATA[<p>เมื่อวานซืนอยู่ดี ๆ ผมก็โม้เรื่อง SAP ขึ้นมาอย่างไม่มีปี่ไม่มีขลุ่ย (อ้างอิง: <a href="https://www.parinya.net/archives/502">เคยใช้ SAP กันมั้ย?</a>) จึงถูกทักท้วงจากผู้อ่านเป็นอย่างมาก เพราะเล่นไม่ได้เท้าความอะไรเลย มาถึงก็โม้เอาโม้เอา</p>
<p>วันนี้เลยมาแก้ตัวครับ เห็นว่าใคร ๆ ก็สนใจอยากจะทราบรายละเอียดของ SAP งั้นหัวข้อนี้ก็มาโม้อย่างย่อกันดีกว่า</p>
<p>ไอ้เจ้าระบบซอฟต์แวร์ที่ชื่อว่า SAP นั้น มันเป็นระบบซอฟต์แวร์ทางธุรกิจครับ เน้น ๆ เลยเพื่อธุรกิจ โดยมันเป็นซอฟต์แวร์ตัวใหญ่มาก แบ่งขายเป็นหลายโมดูล ขึ้นอยู่กับว่าองค์กรนั้น ๆ จะเลือกใช้โมดูลไหน อีกทั้งมันเป็นซอฟต์แวร์ที่มีมูลค่าแพงมาก ค่าบำรุงรักษาก็แพง ค่าจ้างทีมพัฒนามาพัฒนาให้มันสอดคล้องกับธุรกิจก็แพง มันก็เลยถูกใช้โดยองค์กรใหญ่ ๆ ที่มีเงินถุงเงินถังซะส่วนใหญ่</p>
<p>ถ้าองค์กรไหนซื้อครบทุกโมดูล แสดงว่าองค์กรนั้นธุรกิจใหญ่มาก ๆ ๆ ๆ ๆ แล้วก็รวยอภิมหึมามหาเศรษฐีมาก ๆ ด้วย</p>
<p>ระบบซอฟต์แวร์ SAP ถูกพัฒนาขึ้นมาเพื่อการจัดการทรัพยากรโดยเฉพาะ มันจึงมีโมดูลใหญ่ ๆ ที่เอื้อประโยชน์ทางธุรกิจหลาย ๆ อย่างได้แก่ ระบบขาย, ระบบผลิต, ระบบควบคุม, ระบบวางแผน, ระบบบัญชี การเงิน, ระบบพัสดุ, ระบบบุคลากร เป็นต้น</p>
<p><span id="more-505"></span></p>
<p>ในระบบดังกล่าวก็แบ่งเป็นระบบย่อย ๆ เข้าไปอีก ยกตัวอย่างเช่น ระบบพัสดุ ก็ยังแบ่งย่อยเป็น ระบบสินค้าคงคลัง, ระบบจัดซื้อ, ระบบสินทรัพย์ถาวร เป็นต้น</p>
<p>ตอนแรกผมเข้าใจว่ามันสร้างโดยอิสราเอล แต่ความเข้าใจก็เปลี่ยนไปเมื่อรู้ว่ามันสร้างโดยเยอรมัน อีกทั้งมารู้ทีหลังอีกว่าแบรนด์ SAP ดังมาก ติดอันดับต้น ๆ แบรนด์อันทรงคุณค่าระดับโลก ซึ่งจัดอันดับโดย <a href="http://www.interbrand.com">Interbrand</a></p>
<p>ลักษณะการทำงานของซอฟต์แวร์ SAP จะเหมือนกับเกมส์ออนไลน์ดัง ๆ ทั่วไป คือที่เครื่อง Client จะต้องลงตัว GUI เอาไว้ เพื่อเอาไว้ติดต่อสื่อสารกับเครื่อง Application Server ข้อมูลทั้งหมดจะเก็บอยู่ที่ Database Server ซึ่งต่อเชื่อมกับ Application Server อีกที ซึ่งโดยสถาปัตยกรรมแบบนี้น่าจะเรียกว่า <a href="http://en.wikipedia.org/wiki/Multitier_architecture">Multitier</a></p>
<p>จากหัวข้อที่แล้ว (<a href="https://www.parinya.net/archives/502">เคยใช้ SAP กันมั้ย?</a>) จะเห็นว่าหน้าจอของ SAP ไม่สวยเลย ดูแล้วไม่ระรื่นตาซักเท่าไหร่ แต่เมื่อลองใช้แล้วก็จะพบว่า มันมีความยืดหยุ่นและมีความเสถียรที่สูงมาก ที่ว่ายืดหยุ่นก็เพราะมันจะมีเมนูกับปุ่มให้เราใช้ในการควบคุมในหนึ่งหน้าจอเยอะแยะเต็มไปหมด กดกันจนพอใจไปเลย</p>
<p>ถ้าจะให้อธิบายคุณลักษณะของ SAP คงอธิบายได้เป็นร้อย ๆ หัวข้อ ดังนั้นผมขอเลือกอธิบายคุณลักษณะเด่น ซึ่งนักพัฒนาซอฟต์แวร์อย่างเราควรจะสนใจดีกว่า &#8230;</p>
<p><strong>Compile vs Interpret</strong></p>
<p>ซอฟต์แวร์ SAP เป็นซอฟต์แวร์ที่ถูก Compile ให้อยู่ในรูปของ EXE เรียบร้อยแล้วครับ แต่ตัวของมันเองจะเก็บโค้ดโปรแกรม ABAP เอาไว้ในรูปของซอร์สโค้ด แถมเก็บซอร์สโค้ดเอาไว้ในตารางข้อมูลในฐานข้อมูลซะด้วย และทุกครั้งที่มันจะเรียกใช้โปรแกรมที่เขียนด้วย ABAP มันจะนำเอาซอร์สโค้ดดังกล่าว มาทำการ Interpret เพื่อใช้งานทุกครั้งไป</p>
<blockquote><p>Compile = การแปลภาษาคอมพิวเตอร์ทุกบรรทัดที่มนุษย์เข้าใจ ให้กลายเป็นภาษาคอมพิวเตอร์ที่เครื่องคอมพิวเตอร์เข้าใจในคราวเดียว แล้วให้คอมพิวเตอร์เอาภาษาคอมพิวเตอร์ที่แปลแล้วดังกล่าว ไปทำงานต่อไป</p></blockquote>
<p>ดังนั้นโปรแกรมภาษา ABAP ทุกโปรแกรม ที่เราเรียกใช้ผ่านเมนูของ SAP ได้ ไม่ว่าจะเป็นโปรแกรมมาตรฐานที่เขียนโดยบริษัท SAP หรือตัวเราเองเขียนเองก็ตาม ล้วนเก็บอยู่ในลักษณะของซอร์สโค้ด ที่พร้อมจะเอามา Interpret ได้ทุกเมื่อ</p>
<blockquote><p>Interpret = การแปลภาษาคอมพิวเตอร์ที่มนุษย์เข้าใจ ให้กลายเป็นภาษาคอมพิวเตอร์ ทีล่ะบรรทัด แล้วให้คอมพิวเตอร์ทำงานทันที ตามบรรทัดที่แปลเสร็จ</p></blockquote>
<p>เข้าใจว่าที่ทำแบบนี้ก็เพราะมันง่ายต่อการ Debug เนื่องจากโปรแกรมมันมีความซับซ้อนสูงมาก หากเกิดปัญหาขึ้นจะ Debug ลำบาก การทำให้มันเป็นแบบ Interpret แบบนี้ ทำให้เมื่อเกิดปัญหากับโปรแกรม ซอฟต์แวร์ SAP ก็จะแสดงผลโปรแกรม ABAP ตัวที่มีปัญหาขึ้นมา แล้วชี้บรรทัดที่ผิดพลาดได้ทันที </p>
<p><strong>การติดตั้งฐานข้อมูล</strong></p>
<p>บางคนอาจจะเข้าใจว่า SAP มีฐานข้อมูลยี่ห้อของตัวเอง แต่จริง ๆ แล้วไม่ใช่หรอกครับ เพราะ SAP สามารถติดตั้งในฐานข้อมูลยี่ห้อดัง ๆ อย่าง Oracle หรือ SQL Server ได้ ส่วนฐานข้อมูลอื่นผมไม่รู้นะ ว่าได้หรือเปล่า</p>
<p>โดย SAP เองก็มี Relational Database Management System ในตัวของมันเองเหมือนกัน ในขณะที่ตัวมันเองก็พึ่งกลไก Relational Database Management System ของ Oracle หรือ SQL Server ด้วย ประมาณว่าแกครึ่งนึงชั้นครึ่งนึง อะไรประมาณนั้น</p>
<p><strong>การกระจายสมดุล</strong></p>
<p>ผมจะยกตัวอย่างการอ่านข้อมูลลูกหนี้จากระบบการเงินให้ดูก็แล้วกัน เพื่อความเข้าใจในกลไกการกระจายสมดุลของ SAP</p>
<div style="text-align: center"><img decoding="async" id="image503" alt="กลไกการเข้าถึงข้อมูลใน SAP แบบที่คิดว่าใช่" src="https://www.parinya.net/wp-content/uploads/2007/05/sap_engine1.jpg" /></div>
<p>กลไกในภาพข้างบนอธิบายขั้นตอนง่าย ๆ ครับ คือให้ระบบอ่านข้อมูลลูกหนี้ 1 คน เพื่อแสดงผลที่ Client, ระบบก็จะไปอ่านข้อมูลจากตารางที่ชื่อว่า KNA1 ออกมาให้ ก็เท่านั้น ดูแล้วไม่มีอะไร แต่เรื่องจริงมันเป็นแบบภาพข้างล่างนี้ &#8230;</p>
<div style="text-align: center"><img decoding="async" id="image504" alt="กลไกการเข้าถึงข้อมูลใน SAP แบบที่จริง ๆ เป็น" src="https://www.parinya.net/wp-content/uploads/2007/05/sap_engine2.jpg" /></div>
<p>เรื่องจริงก็คือตาราง KNA1 ไม่มีตัวตนในฐานข้อมูลหรอกครับ มันเป็นตารางที่ถูกสร้างขึ้นใน Virtual Memory ส่วนตารางที่ใช้เก็บข้อมูลลูกหนี้จริง ๆ นั้น กระจายอยู่ในตารางต่าง ๆ ในฐานข้อมูลจริง แถมชื่อตารางก็ไม่สื่ออีกต่างหาก (ตัวเลขตัวอักษรอะไรก็ไม่รู้ ปน ๆ กันหมด)</p>
<p>สาเหตุที่ SAP มีกลไกแบบนี้ก็เพราะว่า ผู้สร้างระบบซอฟต์แวร์ SAP นั้น คิดใหญ่ไม่คิดเล็กครับ เขาต้องคาดเอาไว้แล้วแน่ ๆ ว่าระบบ SAP อาจต้องเก็บข้อมูลเยอะมาก ในหนึ่งตารางอาจต้องเก็บข้อมูลมากถึง<strong>ร้อยล้านเรคคอร์ด</strong> การจะให้ข้อมูลไปกองอยู่ในตารางใดตารางนึงนั้น มันอาจถึงฆาตชะตาขาดได้ เพราะข้อมูลยิ่งเยอะ การค้นข้อมูลก็จะยิ่งอืดอาดยืดยาด</p>
<p>ดังนั้นการกระจายสมดุลของข้อมูลไปยังตารางต่าง ๆ จึงเป็นทางเลือกที่ดีกว่ามาก ๆ ซึ่งทางผู้สร้าง SAP เองก็คงไม่ต้องการให้ใครไปยุ่งวุ่นวายกับตารางใน Physical Database มากนัก เพราะถือเป็นพื้นที่หวงห้ามป้องกันสำหรับให้กลไกระดับล่างของ SAP เป็นผู้จัดการ ดังนั้นจึงจำเป็นต้องมีกลไก Logical Database ขึ้นมา เพื่อเป็นตัวกลาง สำหรับให้โปรแกรมที่เขียนขึ้นด้วยภาษา ABAP เข้าถึงตารางข้อมูล Alias เหล่านั้น ใน Logical Database แทน</p>
<p>จากประสบการณ์ที่ผ่านมาพบว่า โปรแกรมเมอร์ซึ่งสร้างซอฟต์แวร์ระดับเล็กจนถึงระดับกลางนั้น แทบไม่มีใครเขียนกลไกการกระจายสมดุลสำหรับตารางข้อมูลในฐานข้อมูลเลย ซึ่งผมก็ไม่แปลกใจอะไร เพราะมันทำยาก สู้เขียนโปรแกรมให้มันต่อกับตารางข้อมูลตัวที่เราต้องการแบบตรง ๆ เลยมันง่ายกว่า</p>
<p>โดยสรุปแล้ว SAP ก็คือซอฟต์แวร์ตัวนึงจากอีกมากมายหลายตัว ที่หากเรามีโอกาสได้เรียนรู้มัน เราก็ควรเรียนรู้มันไว้ครับ</p>
<p>[tags]SAP,ABAP,คอมพิวเตอร์,ซอฟต์แวร์,การสร้างซอฟต์แวร์,ERP[/tags]</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/505/feed</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>เคยใช้ SAP กันมั๊ย?</title>
		<link>https://www.parinya.net/node/502</link>
					<comments>https://www.parinya.net/node/502#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Tue, 08 May 2007 14:47:02 +0000</pubDate>
				<category><![CDATA[SAP]]></category>
		<guid isPermaLink="false">http://www.peetai.com/archives/502</guid>

					<description><![CDATA[พอดีวันนี้ผมต้องรีโมตเข้าไปในระบบคอมพิวเตอร์ของที่ทำงาน ก็เลยนึกขึ้นได้ว่าไม่เคยเล่าเรื่อง SAP ให้อ่านกันเลย ก็เลยว่า เล่าให้อ่านกันซะหน่อยดีกว่า สำหรับคนที่เขียนซอฟต์แวร์ บางครั้งก็ต้องตระหนักอย่างหนึ่งว่า ไม่ใช่เรานึกอยากจะเขียนภาษาคอมพิวเตอร์ภาษาไหน เราก็ไปดาวน์โหลดตัวแปลภาษามา ดาวน์โหลดตัว IDE มา แล้วก็ลองได้เสมอไป มันมีบางภาษาที่เราอยากจะลองมัน เราก็ไม่มีโอกาสได้ลอง เพราะซอฟต์แวร์เพื่อแปลภาษาดังกล่าว มันไม่ได้ดาวน์โหลดกันได้ง่าย ๆ มันแพง มันมีราคาของมัน เหมือนอย่างกับ SAP ก็เหมือนกัน มันเป็นระบบซอฟต์แวร์]]></description>
										<content:encoded><![CDATA[<p>พอดีวันนี้ผมต้องรีโมตเข้าไปในระบบคอมพิวเตอร์ของที่ทำงาน ก็เลยนึกขึ้นได้ว่าไม่เคยเล่าเรื่อง SAP ให้อ่านกันเลย ก็เลยว่า เล่าให้อ่านกันซะหน่อยดีกว่า</p>
<p>สำหรับคนที่เขียนซอฟต์แวร์ บางครั้งก็ต้องตระหนักอย่างหนึ่งว่า ไม่ใช่เรานึกอยากจะเขียนภาษาคอมพิวเตอร์ภาษาไหน เราก็ไปดาวน์โหลดตัวแปลภาษามา ดาวน์โหลดตัว IDE มา แล้วก็ลองได้เสมอไป มันมีบางภาษาที่เราอยากจะลองมัน เราก็ไม่มีโอกาสได้ลอง เพราะซอฟต์แวร์เพื่อแปลภาษาดังกล่าว มันไม่ได้ดาวน์โหลดกันได้ง่าย ๆ มันแพง มันมีราคาของมัน</p>
<p>เหมือนอย่างกับ SAP ก็เหมือนกัน มันเป็นระบบซอฟต์แวร์ Enterpise Resource Planning มันเป็นซอฟต์แวร์ตัวใหญ่มาก ราคามันก็แพง อีกทั้งการเขียนซอฟต์แวร์เพื่อควบคุมมันได้ คนผู้นั้นก็ต้องรู้กลไกอะไรหลาย ๆ อย่างใน SAP อีกทั้งก็ต้องรู้ไวยากรณ์และวากยสัมพันธ์ของภาษา ABAP ซึ่งเป็นภาษาที่ใช้ควบคุมมันอีกด้วย</p>
<p><span id="more-502"></span></p>
<div style="text-align: center"><img decoding="async" id="image498" alt="หน้าจอเข้าใช้ SAP" src="https://www.parinya.net/wp-content/uploads/2007/05/sap1.jpg" /></div>
<p>ข้างบนเป็นหน้าจอเพื่อล็อกอินเข้าใช้ระบบ SAP ผมเห็นครั้งแรกยังสบถเลยว่า ทำไมหน้าจอมันเห่ยอย่างนี้วะ?</p>
<p>พอเราล็อกอินเข้าระบบแล้ว เราก็จะได้เห็นเมนูแบบภาพข้างล่าง มันเป็นเมนูแบบต้นไม้ ยิ่งกดยิ่งลึก มีโปรแกรมอยู่ในนั้นเต็มไปหมด ถ้าไม่เคยเรียนมาก่อน หลงทางตายเลย</p>
<div style="text-align: center"><img decoding="async" id="image499" alt="เมนูของ SAP" src="https://www.parinya.net/wp-content/uploads/2007/05/sap2.jpg" /></div>
<p>การจะเขียน ABAP เพื่อควบคุม SAP ได้นั้น มันต้องเข้าไปยัง IDE ของมันซึ่งเรียกว่า ABAP Editor เห็นครั้งแรกก็รู้สึกว่ามันเห่ยอ่ะ</p>
<div style="text-align: center"><img decoding="async" id="image500" alt="ABAP Editor" src="https://www.parinya.net/wp-content/uploads/2007/05/sap3.jpg" /></div>
<p>โปรแกรมส่วนใหญ่จะถูกตั้งชื่อเอาไว้ให้มันสอดคล้องกับโมดูล ส่วนใหญ่แล้วโปรแกรมที่เขียนเองใหม่ขึ้นมา เขา (เขาไหนวะ?) จะเรียกว่า Customized Program ทีนี้มาดูโครงสร้างภาษา ABAP กันตามภาพข้างล่าง</p>
<div style="text-align: center"><img decoding="async" id="image501" alt="ภาษา ABAP" src="https://www.parinya.net/wp-content/uploads/2007/05/sap4.jpg" /></div>
<p>จะเห็นว่าภาษา ABAP เป็นภาษาที่ดูแล้วไม่ค่อยจะรู้เรื่องเท่าไหร่ เหมือนพวก Cobol กลายพันธุ์อะไรประมาณนั้น แถมถ้าเราไม่เจนจัดในกลไกของ SAP และ Data Dictionary ซึ่งมีเป็นหมื่น ๆ ตัวในนั้น ประกอบกับเราจะทำอะไรซักอย่างนึง เราก็ต้องเรียกใช้ Function มาตรฐานที่ SAP กำหนดเอาไว้ ซึ่งมันมีเยอะมาก แบบว่าเอา Java Class Library กับ .NET Framework มารวมกัน ยังไม่เยอะเว่อร์อย่างมันเลย</p>
<p>การจะเรียนภาษา ABAP นั้นมีค่าใช้จ่ายค่อนข้างสูง แค่จะเรียนภาษา ABAP เบื้องต้นก็ต้องเสียอย่างน้อยสองแสนบาทแล้ว ยังดีเป็นสองแสนบาทสำหรับหลายคน ถ้าเป็นสำหรับคนเดียวคงสยองน่าดู</p>
<p>เท่าที่รู้มาคนที่เชี่ยวชาญ SAP และ ABAP จะมีค่าตัวที่แพงมาก บางคนทนความแพงของค่าตัวของตัวเองไม่ไหว ก็เลยเปิดบริษัทเพื่อรับงานซะเลย คือมันโดนภาษีเงินได้บุคคลธรรมดาไปเยอะไง เพราะภาษีเงินได้บุคคลธรรมดาจะคิดจากรายได้ตรง ๆ เลย ในขณะที่ภาษีเงินได้นิติบุคคลจะคิดจากกำไรสุทธิ พอได้เงินมาเยอะก็เลยทนภาษีไม่ไหวไปโดยปริยาย เลยต้องแปลงร่างเป็นนิติบุคคลไป</p>
<p>โดยสรุปแล้วมันก็ไม่ใช่ทุกคนหรอกครับ ที่จะเก่งในภาษาคอมพิวเตอร์ทุกภาษาน่ะ ไงก็เลือก ๆ เอาแล้วกันครับ ว่าชอบแบบไหนกัน ^o^</p>
<p>[tags]SAP,ABAP,ERP,คอมพิวเตอร์,ซอฟต์แวร์[/tags]</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/502/feed</wfw:commentRss>
			<slash:comments>21</slash:comments>
		
		
			</item>
	</channel>
</rss>
