SAP บทช่วยสอนสคริปต์: SE71, SE78, SCC1, VF03, SO10

⚡ สรุปอย่างชาญฉลาด

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

  • 📝 คำจำกัดความหลัก: SAPสคริปต์คือระบบประมวลผลข้อความในตัวของ SAPใช้สำหรับพิมพ์ข้อความที่จัดรูปแบบไว้ล่วงหน้าลงในแบบฟอร์มที่จัดรูปแบบไว้ล่วงหน้า เช่น ใบแจ้งหนี้
  • 🧱 ห้าองค์ประกอบ: ประกอบด้วยโปรแกรมแก้ไขข้อความ ชุดรูปแบบและเค้าโครง โปรแกรมสร้างข้อความ อินเทอร์เฟซการเขียนโปรแกรม และตารางฐานข้อมูลที่จัดเก็บข้อความและแบบฟอร์ม
  • 📄 ชุดเค้าโครง: ชุดเค้าโครงไม่มีข้อมูลใดๆ มันอธิบายถึงหน้า หน้าต่าง และองค์ประกอบข้อความต่างๆ และโปรแกรมการพิมพ์จะป้อนข้อมูลที่เลือกจากฐานข้อมูลเข้าไปในชุดเค้าโครงนี้
  • ⌨️ คำสั่งควบคุม: เมื่อป้อนคำสั่งโดยใช้ /: ในรูปแบบย่อหน้า คำสั่งต่างๆ เช่น NEW-PAGE, PROTECT, INCLUDE และ PERFORM จะควบคุมรูปแบบการแสดงผล
  • 🖨️ โปรแกรมการพิมพ์: OPEN_FORM, WRITE_FORM และ CLOSE_FORM เป็นพารามิเตอร์ที่จำเป็น ในขณะที่ START_FORM และ END_FORM เป็นพารามิเตอร์ที่ไม่จำเป็น
  • 📬 ประเภทเอาต์พุต: ประเภทผลลัพธ์ซึ่งจัดเก็บไว้ในตาราง NAST และประมวลผลโดยโปรแกรม RSNAST00 จะเป็นตัวกำหนดว่าเอกสารนั้นจะถูกพิมพ์ ส่งแฟกซ์ หรือส่งทางไปรษณีย์
  • 🔁 การพึ่งพาของไคลเอ็นต์: A SAPรูปแบบสคริปต์ขึ้นอยู่กับไคลเอ็นต์ ดังนั้นจึงต้องคัดลอกระหว่างไคลเอ็นต์โดยใช้ SCC1 หรือโดยใช้ยูทิลิตี้ Copy from Client ของ SE71

SAP สคริปต์

ความหมายของ SAP สคริปต์?

SAP สคริปต์คือ SAP ระบบประมวลผลข้อความของระบบเอง มีลักษณะและให้ความรู้สึกเหมือนกับระบบประมวลผลข้อความชั้นนำอื่นๆ

ใช้สำหรับพิมพ์ข้อความที่จัดรูปแบบไว้ล่วงหน้าในรูปแบบที่จัดรูปแบบไว้ล่วงหน้า

เอกสารทั่วไปที่จัดทำขึ้นด้วย SAPสคริปต์นี้ใช้สำหรับออกใบแจ้งหนี้ ใบสั่งซื้อ ใบส่งสินค้า และจดหมายลูกค้า แบบฟอร์มจะถูกออกแบบเพียงครั้งเดียวในธุรกรรม SE71 และโปรแกรมการพิมพ์ ABAP จะป้อนข้อมูลในระหว่างการทำงาน

องค์ประกอบของ SAPต้นฉบับ

SAP สคริปต์ประกอบด้วยห้าองค์ประกอบหลัก:

องค์ประกอบของ SAPต้นฉบับ

  1. โปรแกรมแก้ไขสำหรับการป้อนและแก้ไขบรรทัดของข้อความ
  2. รูปแบบและชุดเค้าโครงสำหรับเค้าโครงการพิมพ์ สิ่งเหล่านี้ถูกสร้างขึ้นโดยอิสระจากข้อความแต่ละข้อความโดยใช้ธุรกรรมการบำรุงรักษาที่เกี่ยวข้อง และจะถูกจัดสรรให้กับข้อความในภายหลัง
  3. ผู้ประพันธ์เพลงเป็นโมดูลเอาต์พุตส่วนกลาง SAP ผู้ประพันธ์บทจะมองไม่เห็นจากภายนอก
  4. อินเทอร์เฟซการเขียนโปรแกรมที่ให้คุณรวม SAP สคริปต์ส่วนประกอบลงในโปรแกรมแอปพลิเคชันของคุณเองและเพื่อควบคุมผลลัพธ์ของชุดเค้าโครงจากภายในโปรแกรม
  5. ตารางฐานข้อมูลหลายตารางสำหรับจัดเก็บข้อความ สไตล์ และชุดเค้าโครง

แผนภาพด้านบนแสดงให้เห็นว่าส่วนประกอบเหล่านั้นประกอบเข้าด้วยกันอย่างไร รูปแบบการจัดวางซึ่งแสดงอยู่ตรงกลางจะอธิบายต่อไป

ชุดเค้าโครง

ในการส่งออกเอกสารโดยใช้อินเทอร์เฟซการเขียนโปรแกรม โปรแกรมแอปพลิเคชัน R/3 จำเป็นต้องมีชุดเค้าโครง (รูปแบบชนิดหนึ่ง) ใน SAP script ชุดโครงร่างอธิบายโครงร่างของหน้าที่พิมพ์แต่ละหน้า และใช้องค์ประกอบข้อความเพื่อจัดหาบล็อกเอาต์พุตที่กำหนดได้ ซึ่งโปรแกรมการพิมพ์สามารถเรียกได้ ชุดโครงร่างสามารถกำหนดเป็นการออกแบบหน้าสำหรับเอกสารได้

ชุดเค้าโครงเอกสารนั้นไม่มีข้อมูลใดๆ การเลือกข้อมูลสำหรับเอกสารจะทำผ่านโปรแกรมการพิมพ์ โปรแกรมการพิมพ์จะเลือกข้อมูลจากตารางฐานข้อมูลและส่งไปยังชุดเค้าโครง เมื่อโปรแกรมการพิมพ์ทำงาน เอกสารจะถูกพิมพ์บนหน้าจอหรือเครื่องพิมพ์

มักจะ SAPเค้าโครงสคริปต์ประกอบด้วยส่วนประกอบต่อไปนี้

  1. ข้อมูลส่วนหัว: ข้อมูลส่วนหัวใช้สำหรับข้อมูลและการควบคุม SAP การพิมพ์ ข้อมูลส่วนหัวประกอบด้วย 2 ส่วน - ไม่ขึ้นกับอุปกรณ์ - เก็บข้อมูลเช่น Start page , Defaultย่อหน้า ,Language Attributes เป็นต้น และขึ้นอยู่กับอุปกรณ์จัดเก็บข้อมูล เช่น Page format ,Orientation Lines per inch เป็นต้น
  2. รูปแบบย่อหน้าและอักขระ: ย่อหน้าถูกจัดรูปแบบโดยใช้คุณลักษณะต่างๆ ตัวอย่างเช่น คุณลักษณะย่อหน้ามาตรฐานระบุระยะขอบซ้ายหรือขวา การจัดตำแหน่ง ระยะห่างบรรทัด ฯลฯ คุณลักษณะแบบอักษรระบุตระกูลแบบอักษร ขนาดแบบอักษร ฯลฯ รูปแบบอักขระอนุญาตให้จัดรูปแบบบล็อกข้อความทั้งหมดภายในย่อหน้า
  3. Windows และองค์ประกอบข้อความ: Windows คือพื้นที่ข้อความส่วนบุคคล (ที่อยู่ส่วนหัว วันที่ ส่วนท้าย) ในหน้า ช่วยรวมข้อมูลที่มีอยู่ในเอกสารเป็นกลุ่มบางกลุ่ม และทำให้แต่ละกลุ่มปรากฏบนหน้าที่พิมพ์ในแต่ละพื้นที่ คุณสามารถกำหนดองค์ประกอบข้อความ (ข้อความหน้าต่าง) สำหรับแต่ละหน้าต่างได้ โปรแกรมพิมพ์จะเข้าถึงองค์ประกอบข้อความตามชื่อ จัดรูปแบบ และพิมพ์ในหน้าต่างที่เกี่ยวข้อง ต้องกำหนดรูปแบบย่อหน้าและอักขระที่ใช้ในแบบฟอร์ม
  4. หน้า: เป็นหน้าแต่ละหน้าของเอกสารและต้องมีชื่อไม่ซ้ำกัน คุณมักจะพบรูปแบบที่แตกต่างกันสำหรับแต่ละหน้า: หน้าแรกของใบแจ้งหนี้แตกต่างจากหน้าถัดไป ซึ่งคุณไม่จำเป็นต้องทำซ้ำข้อมูลทั่วไป เช่น ที่อยู่หรือข้อมูลลูกค้า
  5. หน้า 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ผลลัพธ์จากสคริปต์ต้องการแบบฟอร์ม โปรแกรมพิมพ์ และการกำหนดค่าในการปรับแต่ง ขั้นตอนด้านล่างนี้เป็นการสร้างแบบฟอร์มเปล่าขึ้นมา

  1. สร้างแบบฟอร์ม: ใน SE71 ให้ป้อนชื่อแบบฟอร์มและภาษา จากนั้นเลือก สร้าง กรอกข้อมูลส่วนหัวด้วยหน้าเริ่มต้น ย่อหน้าเริ่มต้น และรูปแบบหน้ากระดาษ
  2. กำหนดรูปแบบย่อหน้าและรูปแบบตัวอักษร: สร้างรูปแบบย่อหน้าอย่างน้อยหนึ่งรูปแบบ เช่น AS สำหรับบรรทัดมาตรฐาน เนื่องจากองค์ประกอบข้อความทุกอย่างอ้างอิงถึงรูปแบบย่อหน้า
  3. สร้างหน้าเว็บ: กำหนดหน้าแรก เช่น FIRST แล้วตั้งหน้าถัดไปเป็น NEXT เพื่อให้เอกสารที่ยาวขึ้นแสดงผลต่อเนื่องในเค้าโครงที่สอง
  4. สร้างหน้าต่างและหน้าต่างเพจ: กำหนดหน้าต่างต่างๆ เช่น HEADER, MAIN และ FOOTER จากนั้นวางแต่ละหน้าต่างลงบนหน้าเว็บและป้อนขอบบนด้านซ้าย ความกว้าง และความสูง
  5. เขียนองค์ประกอบของข้อความ: เปิดโปรแกรมแก้ไขข้อความในหน้าต่างหนึ่ง แล้วทำเครื่องหมายที่แต่ละบล็อกด้วย /E ตามด้วยชื่อขององค์ประกอบ โปรแกรมพิมพ์จะเรียกองค์ประกอบนั้นด้วยชื่อดังกล่าว
  6. เปิดใช้งานฟอร์มและเขียนโปรแกรมการพิมพ์: เปิดใช้งานฟอร์ม จากนั้นเรียกใช้ฟังก์ชันควบคุมฟอร์มจากโปรแกรม ABAP ดังที่แสดงด้านล่าง
  7. กำหนดประเภทเอาต์พุต: ป้อนชื่อแบบฟอร์ม โปรแกรมการพิมพ์ และรูทีน 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

ตัวอย่าง : ประเภทผลลัพธ์ในเอกสารเรียกเก็บเงิน-

  1. ไปที่ VF03
  2. กรอกเลขที่เอกสารเรียกเก็บเงิน และกด Enter อีกครั้ง
  3. เลือก Output ใต้เมนู Goto -> Header
  4. ในที่นี้ Z101 เป็นประเภทเอาต์พุตของเอาต์พุตการพิมพ์

ประเภทเอาต์พุต

ภาพหน้าจอแสดงผลลัพธ์ของธุรกรรม VF03 โดยมีการแนบประเภทผลลัพธ์ Z101 เข้ากับเอกสารการเรียกเก็บเงิน

ข้อความและกราฟิกมาตรฐาน

ข้อความมาตรฐานสำหรับรายงานของคุณสามารถสร้างได้โดยใช้ธุรกรรม SO10

มีการอัปโหลดมาโครกราฟิกและเครื่องพิมพ์ด้วย รายงาน RSTXLDMC ลงในเอกสารข้อความมาตรฐานแต่ละรายการหรือผ่านธุรกรรม เอสอี78. ไฟล์ภาพกราฟิกจะถูกอัปโหลดในรูปแบบ “Baseline TIFF 6.0” (.tif files on PC)

SAP องค์ประกอบสคริปต์และข้อความมาตรฐานสามารถส่งออกหรือนำเข้าระหว่างสองระบบโดยใช้โปรแกรม RSTXSCRP

การคัดลอกสคริปต์ข้ามไคลเอนต์:

SAP สคริปต์เป็นวัตถุที่ขึ้นอยู่กับไคลเอนต์ แตกต่างจากโปรแกรมที่มีการเปลี่ยนแปลง SAP สคริปต์ในไคลเอนต์หนึ่งจะไม่ปรากฏในไคลเอนต์อื่น สำหรับการคัดลอกสคริปต์จากไคลเอ็นต์หนึ่งไปยังอีกไคลเอ็นต์หนึ่ง ให้ไปที่ SE71 และใช้ตัวเลือก “คัดลอกจากไคลเอนต์” ที่มีอยู่ในเมนูยูทิลิตี้หรือนำเข้าคำขอการขนส่งซึ่งมีการบันทึกสคริปต์จากไคลเอนต์ดั้งเดิมโดยใช้ธุรกรรม เอสซีซี1.

จุดสำคัญที่ควรทราบ

  1. SAP สคริปต์ไม่ได้รักษาเวอร์ชันใด ๆ ดังนั้นเมื่อทำการปรับเปลี่ยน SAP script ตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงได้รับการบันทึกไว้อย่างดีในสคริปต์ สิ่งนี้ใช้ได้กับข้อความมาตรฐานด้วย
  2. ผลลัพธ์ของแบบฟอร์มจะแตกต่างกันเมื่อดูบนหน้าจอและบนเครื่องพิมพ์ ดังนั้นควรทดสอบผลลัพธ์ของสคริปต์บนเครื่องพิมพ์เสมอ

SAPสคริปต์เทียบกับสมาร์ทฟอร์ม

SAPสคริปต์เป็นเทคโนโลยีรูปแบบที่เก่ากว่าในสองรูปแบบนี้ SAPและรูปแบบใหม่ทุกรูปแบบมักถูกสร้างขึ้นด้วย สมาร์ทฟอร์มตารางด้านล่างนี้แสดงให้เห็นถึงเหตุผลดังกล่าว

หลักเกณฑ์ SAPต้นฉบับ สมาร์ทฟอร์ม
รายการ SE71 สมาร์ทฟอร์ม
การพึ่งพาของลูกค้า ขึ้นอยู่กับไคลเอ็นต์ คัดลอกด้วย SCC1 ลูกค้าเป็นอิสระ
หน้าต่างหลัก จำเป็นต้องมีหน้าต่างหลักเพียงบานเดียวเท่านั้น ไม่บังคับ และอนุญาตให้มีหน้าต่างหลักหลายบาน
ตรรกะของโปรแกรม เขียนในโปรแกรมพิมพ์แยกต่างหาก ส่วนหนึ่งถูกสร้างขึ้นในรูปแบบที่สร้างโมดูลฟังก์ชันของตัวเอง
รูปแบบเอาต์พุต พิมพ์ ส่งแฟกซ์ และส่งทางไปรษณีย์ การพิมพ์ การส่งแฟกซ์ การส่งจดหมาย และการส่งออกข้อมูลในรูปแบบ XML หรือ HTML
การจัดการเวอร์ชัน ไม่มี ดังนั้นการเปลี่ยนแปลงจะต้องบันทึกด้วยตนเอง สามารถใช้งานได้ผ่านทางเวิร์กเบนช์

SAPสคริปต์ยังคงถูกใช้งานอย่างแพร่หลาย เนื่องจากมาตรฐานหลายอย่าง SAP แบบฟอร์มและโปรแกรมการพิมพ์ยังคงพึ่งพาแบบฟอร์มดังกล่าวอยู่ และเนื่องจากแบบฟอร์มที่ขึ้นอยู่กับลูกค้าแต่ละรายสามารถปรับเปลี่ยนได้สำหรับลูกค้าแต่ละราย

คำถามที่พบบ่อย

ตาราง TNAPR เก็บชื่อฟอร์ม โปรแกรมการพิมพ์ และรูทีน ENTRY สำหรับประเภทเอาต์พุตแต่ละประเภท อ่านข้อมูลได้โดยใช้ SE16 หรือเปิดการปรับแต่งเอาต์พุตของแอปพลิเคชันในธุรกรรม NACE

ต้องอัปโหลดไฟล์ภาพในรูปแบบ Baseline TIFF 6.0 ผ่านทาง SE78 หรือรายงาน RSTXLDMC และแบบฟอร์มต้องอ้างอิงถึงข้อความมาตรฐานที่ได้จากไฟล์ภาพนั้น โปรแกรมจัดทำเอกสารไม่รับไฟล์สีหรือไฟล์ PNG

เปิดใช้งานตัวดีบักฟอร์มโดยไปที่เมนู Utilities, Activate Debugger ใน SE71 ระบบจะหยุดที่องค์ประกอบข้อความแต่ละรายการในขณะที่โปรแกรมพิมพ์ทำงาน และสามารถตรวจสอบค่าฟิลด์ได้

รายงานการย้ายข้อมูลภายในธุรกรรม SMARTFORMS จะทำการแปลงข้อมูล ผู้ช่วย AI จะช่วยอธิบายโหนดที่แปลงแล้ว เขียนคำสั่งโปรแกรมการพิมพ์ใหม่ และแสดงรายการองค์ประกอบข้อความที่ต้องแก้ไขด้วยตนเองในภายหลัง

SAPสคริปต์ไม่เก็บประวัติเวอร์ชัน ดังนั้นการเปลี่ยนแปลงจึงทำได้ยาก trace. เครื่องมือ AI จะเปรียบเทียบไฟล์ส่งออกสองไฟล์ที่สร้างโดย RSTXSCRP สรุปสิ่งที่เปลี่ยนแปลงในแต่ละองค์ประกอบข้อความ และร่างเอกสารที่แบบฟอร์มเองไม่ได้จัดเก็บไว้

สรุปโพสต์นี้ด้วย: