SAP บทช่วยสอนสคริปต์: SE71, SE78, SCC1, VF03, SO10
⚡ สรุปอย่างชาญฉลาด
SAP สคริปต์เป็นระบบประมวลผลข้อความของ SAP ระบบนี้ใช้สำหรับพิมพ์ข้อความที่จัดรูปแบบไว้ล่วงหน้าลงในแบบฟอร์มที่จัดรูปแบบไว้ล่วงหน้า หน้านี้อธิบายถึงส่วนประกอบทั้งห้า ได้แก่ ชุดเค้าโครง คำสั่งควบคุม โปรแกรมการพิมพ์ ประเภทเอาต์พุต และธุรกรรม SE71, SE78, SO10 และ SCC1

ความหมายของ SAP สคริปต์?
SAP สคริปต์คือ SAP ระบบประมวลผลข้อความของระบบเอง มีลักษณะและให้ความรู้สึกเหมือนกับระบบประมวลผลข้อความชั้นนำอื่นๆ
ใช้สำหรับพิมพ์ข้อความที่จัดรูปแบบไว้ล่วงหน้าในรูปแบบที่จัดรูปแบบไว้ล่วงหน้า
เอกสารทั่วไปที่จัดทำขึ้นด้วย SAPสคริปต์นี้ใช้สำหรับออกใบแจ้งหนี้ ใบสั่งซื้อ ใบส่งสินค้า และจดหมายลูกค้า แบบฟอร์มจะถูกออกแบบเพียงครั้งเดียวในธุรกรรม SE71 และโปรแกรมการพิมพ์ ABAP จะป้อนข้อมูลในระหว่างการทำงาน
องค์ประกอบของ SAPต้นฉบับ
SAP สคริปต์ประกอบด้วยห้าองค์ประกอบหลัก:
- โปรแกรมแก้ไขสำหรับการป้อนและแก้ไขบรรทัดของข้อความ
- รูปแบบและชุดเค้าโครงสำหรับเค้าโครงการพิมพ์ สิ่งเหล่านี้ถูกสร้างขึ้นโดยอิสระจากข้อความแต่ละข้อความโดยใช้ธุรกรรมการบำรุงรักษาที่เกี่ยวข้อง และจะถูกจัดสรรให้กับข้อความในภายหลัง
- ผู้ประพันธ์เพลงเป็นโมดูลเอาต์พุตส่วนกลาง SAP ผู้ประพันธ์บทจะมองไม่เห็นจากภายนอก
- อินเทอร์เฟซการเขียนโปรแกรมที่ให้คุณรวม SAP สคริปต์ส่วนประกอบลงในโปรแกรมแอปพลิเคชันของคุณเองและเพื่อควบคุมผลลัพธ์ของชุดเค้าโครงจากภายในโปรแกรม
- ตารางฐานข้อมูลหลายตารางสำหรับจัดเก็บข้อความ สไตล์ และชุดเค้าโครง
แผนภาพด้านบนแสดงให้เห็นว่าส่วนประกอบเหล่านั้นประกอบเข้าด้วยกันอย่างไร รูปแบบการจัดวางซึ่งแสดงอยู่ตรงกลางจะอธิบายต่อไป
ชุดเค้าโครง
ในการส่งออกเอกสารโดยใช้อินเทอร์เฟซการเขียนโปรแกรม โปรแกรมแอปพลิเคชัน R/3 จำเป็นต้องมีชุดเค้าโครง (รูปแบบชนิดหนึ่ง) ใน SAP script ชุดโครงร่างอธิบายโครงร่างของหน้าที่พิมพ์แต่ละหน้า และใช้องค์ประกอบข้อความเพื่อจัดหาบล็อกเอาต์พุตที่กำหนดได้ ซึ่งโปรแกรมการพิมพ์สามารถเรียกได้ ชุดโครงร่างสามารถกำหนดเป็นการออกแบบหน้าสำหรับเอกสารได้
ชุดเค้าโครงเอกสารนั้นไม่มีข้อมูลใดๆ การเลือกข้อมูลสำหรับเอกสารจะทำผ่านโปรแกรมการพิมพ์ โปรแกรมการพิมพ์จะเลือกข้อมูลจากตารางฐานข้อมูลและส่งไปยังชุดเค้าโครง เมื่อโปรแกรมการพิมพ์ทำงาน เอกสารจะถูกพิมพ์บนหน้าจอหรือเครื่องพิมพ์
มักจะ SAPเค้าโครงสคริปต์ประกอบด้วยส่วนประกอบต่อไปนี้
- ข้อมูลส่วนหัว: ข้อมูลส่วนหัวใช้สำหรับข้อมูลและการควบคุม SAP การพิมพ์ ข้อมูลส่วนหัวประกอบด้วย 2 ส่วน - ไม่ขึ้นกับอุปกรณ์ - เก็บข้อมูลเช่น Start page , Defaultย่อหน้า ,Language Attributes เป็นต้น และขึ้นอยู่กับอุปกรณ์จัดเก็บข้อมูล เช่น Page format ,Orientation Lines per inch เป็นต้น
- รูปแบบย่อหน้าและอักขระ: ย่อหน้าถูกจัดรูปแบบโดยใช้คุณลักษณะต่างๆ ตัวอย่างเช่น คุณลักษณะย่อหน้ามาตรฐานระบุระยะขอบซ้ายหรือขวา การจัดตำแหน่ง ระยะห่างบรรทัด ฯลฯ คุณลักษณะแบบอักษรระบุตระกูลแบบอักษร ขนาดแบบอักษร ฯลฯ รูปแบบอักขระอนุญาตให้จัดรูปแบบบล็อกข้อความทั้งหมดภายในย่อหน้า
- Windows และองค์ประกอบข้อความ: Windows คือพื้นที่ข้อความส่วนบุคคล (ที่อยู่ส่วนหัว วันที่ ส่วนท้าย) ในหน้า ช่วยรวมข้อมูลที่มีอยู่ในเอกสารเป็นกลุ่มบางกลุ่ม และทำให้แต่ละกลุ่มปรากฏบนหน้าที่พิมพ์ในแต่ละพื้นที่ คุณสามารถกำหนดองค์ประกอบข้อความ (ข้อความหน้าต่าง) สำหรับแต่ละหน้าต่างได้ โปรแกรมพิมพ์จะเข้าถึงองค์ประกอบข้อความตามชื่อ จัดรูปแบบ และพิมพ์ในหน้าต่างที่เกี่ยวข้อง ต้องกำหนดรูปแบบย่อหน้าและอักขระที่ใช้ในแบบฟอร์ม
- หน้า: เป็นหน้าแต่ละหน้าของเอกสารและต้องมีชื่อไม่ซ้ำกัน คุณมักจะพบรูปแบบที่แตกต่างกันสำหรับแต่ละหน้า: หน้าแรกของใบแจ้งหนี้แตกต่างจากหน้าถัดไป ซึ่งคุณไม่จำเป็นต้องทำซ้ำข้อมูลทั่วไป เช่น ที่อยู่หรือข้อมูลลูกค้า
- หน้า Windows: ขณะกำหนดหน้าต่างและหน้า คุณยังไม่ได้กำหนดตำแหน่งและระยะห่างของข้อความที่จะส่งออก หน้าต่างหน้าจะกำหนดพื้นที่ส่งออกแบบสี่เหลี่ยมผืนผ้าในสื่อส่งออกโดยระบุขอบซ้ายบนของพื้นที่ส่งออก ความกว้าง และความสูง
คำสั่งควบคุม
วัตถุประสงค์ของ "คำสั่งควบคุม" คือเพื่อให้สามารถควบคุมการจัดรูปแบบเอาต์พุตได้ คำสั่งเหล่านี้ไม่ได้รับการตีความโดย SAP โปรแกรมแก้ไขสคริปต์ แต่จะถูกส่งผ่านไปยัง SAP สคริปต์ Composer สำหรับการประมวลผล ซึ่งรวมถึงการจัดรูปแบบบรรทัดและหน้า การจัดรูปแบบข้อความตามรูปแบบย่อหน้าและอักขระที่ระบุ
วากยสัมพันธ์
Enter /: in the paragraph format
ตัวอย่าง
- หน้าใหม่ – ตัวแบ่งหน้าที่ชัดเจน
- PROTECT ………ENDPROTECT – พิมพ์ย่อหน้าทั้งหมดในหน้าเดียว
- รวม – เพื่อรวมเนื้อหาของข้อความอื่นลงในข้อความปัจจุบัน
- PERFORM – เพื่อเรียกรูทีนย่อยของโปรแกรม ABAP ใดๆ
โปรแกรมพิมพ์
การเรียกใช้สคริปต์ทำได้ผ่าน โปรแกรมเอแบคซึ่งเรียกว่าโปรแกรมการพิมพ์ แต่ละโปรแกรมการพิมพ์ควรมี ENTRY form ซึ่งจะถูกเรียกจากการปรับแต่ง
สำหรับการกำหนดค่ามาตรฐาน เราจะเห็นชื่อฟอร์ม (ชื่อสคริปต์) ชื่อโปรแกรมพิมพ์ และประเภทเอาต์พุตในตาราง TNAPR โปรแกรมพิมพ์ใช้ฟังก์ชันการควบคุมแบบฟอร์มเพื่อเรียกสคริปต์
โปรแกรมพิมพ์เรียกฟังก์ชันควบคุมแบบฟอร์มทั้งหมดหรือบางส่วนเพื่อรันสคริปต์
- OPEN_FORM (จำเป็น) เปิดเอาต์พุตชุดเค้าโครง
- CLOSE_FORM (บังคับ) สิ้นสุดเอาต์พุตชุดโครงร่าง
- START_FORM (ไม่บังคับ) เริ่มชุดโครงร่างใหม่
- WRITE_FORM (จำเป็น) เรียกองค์ประกอบชุดเค้าโครง
- END_FORM (ไม่บังคับ) สิ้นสุดชุดโครงร่างปัจจุบัน
วิธีสร้างไฟล์ SAPแบบฟอร์มสคริปต์ใน SE71
การทำงาน SAPผลลัพธ์จากสคริปต์ต้องการแบบฟอร์ม โปรแกรมพิมพ์ และการกำหนดค่าในการปรับแต่ง ขั้นตอนด้านล่างนี้เป็นการสร้างแบบฟอร์มเปล่าขึ้นมา
- สร้างแบบฟอร์ม: ใน SE71 ให้ป้อนชื่อแบบฟอร์มและภาษา จากนั้นเลือก สร้าง กรอกข้อมูลส่วนหัวด้วยหน้าเริ่มต้น ย่อหน้าเริ่มต้น และรูปแบบหน้ากระดาษ
- กำหนดรูปแบบย่อหน้าและรูปแบบตัวอักษร: สร้างรูปแบบย่อหน้าอย่างน้อยหนึ่งรูปแบบ เช่น AS สำหรับบรรทัดมาตรฐาน เนื่องจากองค์ประกอบข้อความทุกอย่างอ้างอิงถึงรูปแบบย่อหน้า
- สร้างหน้าเว็บ: กำหนดหน้าแรก เช่น FIRST แล้วตั้งหน้าถัดไปเป็น NEXT เพื่อให้เอกสารที่ยาวขึ้นแสดงผลต่อเนื่องในเค้าโครงที่สอง
- สร้างหน้าต่างและหน้าต่างเพจ: กำหนดหน้าต่างต่างๆ เช่น HEADER, MAIN และ FOOTER จากนั้นวางแต่ละหน้าต่างลงบนหน้าเว็บและป้อนขอบบนด้านซ้าย ความกว้าง และความสูง
- เขียนองค์ประกอบของข้อความ: เปิดโปรแกรมแก้ไขข้อความในหน้าต่างหนึ่ง แล้วทำเครื่องหมายที่แต่ละบล็อกด้วย /E ตามด้วยชื่อขององค์ประกอบ โปรแกรมพิมพ์จะเรียกองค์ประกอบนั้นด้วยชื่อดังกล่าว
- เปิดใช้งานฟอร์มและเขียนโปรแกรมการพิมพ์: เปิดใช้งานฟอร์ม จากนั้นเรียกใช้ฟังก์ชันควบคุมฟอร์มจากโปรแกรม ABAP ดังที่แสดงด้านล่าง
- กำหนดประเภทเอาต์พุต: ป้อนชื่อแบบฟอร์ม โปรแกรมการพิมพ์ และรูทีน ENTRY ลงในตาราง TNAPR ผ่านการปรับแต่งเอาต์พุตของแอปพลิเคชัน เช่น NACE
CALL FUNCTION 'OPEN_FORM' EXPORTING form = 'Z_INVOICE' language = sy-langu device = 'PRINTER'. * Print the element ITEM_LINE in the window MAIN LOOP AT lt_items INTO ls_item. CALL FUNCTION 'WRITE_FORM' EXPORTING element = 'ITEM_LINE' window = 'MAIN' function = 'SET' type = 'BODY'. ENDLOOP. CALL FUNCTION 'CLOSE_FORM'.
⚠️คำเตือน: ฟังก์ชัน WRITE_FORM จะพิมพ์เฉพาะฟิลด์ที่กรอกข้อมูลไว้ ณ เวลาที่เรียกใช้เท่านั้น กรุณากรอกข้อมูลในพื้นที่ทำงานก่อนเรียกใช้ฟังก์ชัน เนื่องจากฟอร์มจะอ่านฟิลด์ส่วนกลางของโปรแกรมการพิมพ์ ไม่ใช่พารามิเตอร์ของโมดูลฟังก์ชัน
ประเภทเอาต์พุต
ประเภทผลลัพธ์สามารถระบุได้ว่าเป็นแบบฟอร์มที่พิมพ์ออกมาซึ่งคุณต้องการใช้ภายในหรือแบบฟอร์มที่คุณต้องการส่งไปยังลูกค้าหรือผู้ขาย ประเภทผลลัพธ์ยังสามารถเป็นข้อความอีเมลภายในที่คุณต้องการส่งไปยังเจ้าหน้าที่ในแผนกอื่นได้อีกด้วย
ตัวอย่างเช่น "พิมพ์ออกมา" สามารถจัดประเภทเป็นประเภทผลลัพธ์หนึ่งของเอกสารเรียกเก็บเงิน กล่าวคือ เมื่อดำเนินการประเภทผลลัพธ์นี้ เอกสารเรียกเก็บเงินจะถูกพิมพ์ ในทำนองเดียวกัน "แฟกซ์" สามารถเป็นประเภทผลลัพธ์ กล่าวคือ เมื่อดำเนินการประเภทผลลัพธ์นี้ แฟกซ์ของเอกสารเรียกเก็บเงินจะถูกส่ง
ประเภทเอาต์พุตทั้งหมดสำหรับเอกสารใดๆ (เช่น เอกสารเรียกเก็บเงิน) จะถูกเก็บไว้ในตาราง NAST ประเภทเอาต์พุตจะถูกดำเนินการผ่านโปรแกรม RSNAST00
ตัวอย่าง : ประเภทผลลัพธ์ในเอกสารเรียกเก็บเงิน-
- ไปที่ VF03
- กรอกเลขที่เอกสารเรียกเก็บเงิน และกด Enter อีกครั้ง
- เลือก Output ใต้เมนู Goto -> Header
- ในที่นี้ Z101 เป็นประเภทเอาต์พุตของเอาต์พุตการพิมพ์
ภาพหน้าจอแสดงผลลัพธ์ของธุรกรรม VF03 โดยมีการแนบประเภทผลลัพธ์ Z101 เข้ากับเอกสารการเรียกเก็บเงิน
ข้อความและกราฟิกมาตรฐาน
ข้อความมาตรฐานสำหรับรายงานของคุณสามารถสร้างได้โดยใช้ธุรกรรม SO10
มีการอัปโหลดมาโครกราฟิกและเครื่องพิมพ์ด้วย รายงาน RSTXLDMC ลงในเอกสารข้อความมาตรฐานแต่ละรายการหรือผ่านธุรกรรม เอสอี78. ไฟล์ภาพกราฟิกจะถูกอัปโหลดในรูปแบบ “Baseline TIFF 6.0” (.tif files on PC)
SAP องค์ประกอบสคริปต์และข้อความมาตรฐานสามารถส่งออกหรือนำเข้าระหว่างสองระบบโดยใช้โปรแกรม RSTXSCRP
การคัดลอกสคริปต์ข้ามไคลเอนต์:
SAP สคริปต์เป็นวัตถุที่ขึ้นอยู่กับไคลเอนต์ แตกต่างจากโปรแกรมที่มีการเปลี่ยนแปลง SAP สคริปต์ในไคลเอนต์หนึ่งจะไม่ปรากฏในไคลเอนต์อื่น สำหรับการคัดลอกสคริปต์จากไคลเอ็นต์หนึ่งไปยังอีกไคลเอ็นต์หนึ่ง ให้ไปที่ SE71 และใช้ตัวเลือก “คัดลอกจากไคลเอนต์” ที่มีอยู่ในเมนูยูทิลิตี้หรือนำเข้าคำขอการขนส่งซึ่งมีการบันทึกสคริปต์จากไคลเอนต์ดั้งเดิมโดยใช้ธุรกรรม เอสซีซี1.
จุดสำคัญที่ควรทราบ
- SAP สคริปต์ไม่ได้รักษาเวอร์ชันใด ๆ ดังนั้นเมื่อทำการปรับเปลี่ยน SAP script ตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงได้รับการบันทึกไว้อย่างดีในสคริปต์ สิ่งนี้ใช้ได้กับข้อความมาตรฐานด้วย
- ผลลัพธ์ของแบบฟอร์มจะแตกต่างกันเมื่อดูบนหน้าจอและบนเครื่องพิมพ์ ดังนั้นควรทดสอบผลลัพธ์ของสคริปต์บนเครื่องพิมพ์เสมอ
SAPสคริปต์เทียบกับสมาร์ทฟอร์ม
SAPสคริปต์เป็นเทคโนโลยีรูปแบบที่เก่ากว่าในสองรูปแบบนี้ SAPและรูปแบบใหม่ทุกรูปแบบมักถูกสร้างขึ้นด้วย สมาร์ทฟอร์มตารางด้านล่างนี้แสดงให้เห็นถึงเหตุผลดังกล่าว
| หลักเกณฑ์ | SAPต้นฉบับ | สมาร์ทฟอร์ม |
|---|---|---|
| รายการ | SE71 | สมาร์ทฟอร์ม |
| การพึ่งพาของลูกค้า | ขึ้นอยู่กับไคลเอ็นต์ คัดลอกด้วย SCC1 | ลูกค้าเป็นอิสระ |
| หน้าต่างหลัก | จำเป็นต้องมีหน้าต่างหลักเพียงบานเดียวเท่านั้น | ไม่บังคับ และอนุญาตให้มีหน้าต่างหลักหลายบาน |
| ตรรกะของโปรแกรม | เขียนในโปรแกรมพิมพ์แยกต่างหาก | ส่วนหนึ่งถูกสร้างขึ้นในรูปแบบที่สร้างโมดูลฟังก์ชันของตัวเอง |
| รูปแบบเอาต์พุต | พิมพ์ ส่งแฟกซ์ และส่งทางไปรษณีย์ | การพิมพ์ การส่งแฟกซ์ การส่งจดหมาย และการส่งออกข้อมูลในรูปแบบ XML หรือ HTML |
| การจัดการเวอร์ชัน | ไม่มี ดังนั้นการเปลี่ยนแปลงจะต้องบันทึกด้วยตนเอง | สามารถใช้งานได้ผ่านทางเวิร์กเบนช์ |
SAPสคริปต์ยังคงถูกใช้งานอย่างแพร่หลาย เนื่องจากมาตรฐานหลายอย่าง SAP แบบฟอร์มและโปรแกรมการพิมพ์ยังคงพึ่งพาแบบฟอร์มดังกล่าวอยู่ และเนื่องจากแบบฟอร์มที่ขึ้นอยู่กับลูกค้าแต่ละรายสามารถปรับเปลี่ยนได้สำหรับลูกค้าแต่ละราย


