SAP บทช่วยสอน ABAP BDC (การสื่อสารข้อมูลเป็นชุด)

ข้อมูลเบื้องต้นเกี่ยวกับการป้อนข้อมูลแบบแบตช์

โดยทั่วไปอินพุตแบบแบตช์จะใช้เพื่อถ่ายโอนข้อมูลจากระบบที่ไม่ใช่ R/3 ไปยังระบบ R/3 หรือเพื่อถ่ายโอนข้อมูลระหว่างระบบ R/3

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

เซสชั่นการป้อนข้อมูลเป็นกลุ่ม

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

จุดที่ควรทราบ

  • BDI ทำงานโดยดำเนินการตามปกติ SAP ธุรกรรมเช่นเดียวกับที่ผู้ใช้ทำ แต่จะดำเนินการธุรกรรมโดยอัตโนมัติการตรวจสอบความถูกต้องของหน้าจอและการตรวจสอบตรรกะทางธุรกิจทั้งหมดจะดำเนินการในขณะที่ใช้การป้อนข้อมูลแบบแบตช์
  • เหมาะสำหรับการป้อนข้อมูลจำนวนมาก
  • ไม่จำเป็นต้องมีการโต้ตอบด้วยตนเอง

วิธีการป้อนข้อมูลแบบแบตช์

SAP จัดเตรียมวิธีการพื้นฐานสองวิธีสำหรับการถ่ายโอนข้อมูลเดิมไปยังระบบ R/3

  1. วิธีการป้อนข้อมูลแบบคลาสสิก
  2. วิธีการทำธุรกรรมทางโทรศัพท์

วิธีการป้อนข้อมูลแบบคลาสสิก

ในวิธีนี้โปรแกรม ABAP/4 จะอ่านข้อมูลภายนอกไปยัง SAP ระบบและการจัดเก็บในเซสชั่นการป้อนข้อมูลแบบแบตช์

หลังจากสร้างเซสชันแล้ว คุณสามารถเรียกใช้เซสชันเพื่อดำเนินการได้ SAP การทำธุรกรรมในนั้น

วิธีการนี้ใช้โมดูลฟังก์ชัน BDC_ OPEN, BDC_INSERT และ BDC_CLOSE

Batch Input Session สามารถดำเนินการได้ 3 วิธี

  1. อยู่เบื้องหน้า
  2. ในพื้นหลัง
  3. ระหว่างการประมวลผลพร้อมแสดงข้อผิดพลาด

คุณควรประมวลผลเซสชันอินพุตแบบแบตช์ในเบื้องหน้าหรือใช้การแสดงข้อผิดพลาดหากคุณต้องการทดสอบการถ่ายโอนข้อมูล

หากคุณต้องการดำเนินการถ่ายโอนข้อมูลหรือทดสอบประสิทธิภาพ คุณควรประมวลผลเซสชันในเบื้องหลัง

ข้อควรทราบเกี่ยวกับวิธีการป้อนข้อมูลแบบคลาสสิก

  • Syncการประมวลผลที่เที่ยงตรง
  • ถ่ายโอนข้อมูลสำหรับการทำธุรกรรมหลายรายการ
  • Syncการอัพเดตฐานข้อมูลแบบ Hronous
  • บันทึกกระบวนการอินพุตแบบแบตช์จะถูกสร้างขึ้นสำหรับแต่ละเซสชัน
  • ไม่สามารถสร้างเซสชันพร้อมกันได้

วิธีการทำธุรกรรมทางโทรศัพท์

ในวิธีนี้ ABAP/4 โปรแกรมใช้คำสั่ง CALL TRANSACTION USING เพื่อรันไฟล์ SAP การซื้อขาย

กระบวนการป้อนข้อมูลแบบกลุ่มทั้งหมดเกิดขึ้นทางออนไลน์ในโปรแกรม

วิธีการทำธุรกรรมการโทร

จุดที่ควรทราบ:

  • ประมวลผลข้อมูลได้เร็วขึ้น
  • การประมวลผลแบบอะซิงโครนัส
  • ถ่ายโอนข้อมูลสำหรับธุรกรรมเดียว
  • ไม่มีการสร้างบันทึกการประมวลผลอินพุตแบบแบตช์

ขั้นตอนการป้อนข้อมูลแบบกลุ่ม

ขั้นตอนการป้อนข้อมูลแบบกลุ่ม

โดยทั่วไป คุณจะสังเกตลำดับขั้นตอนต่อไปนี้เพื่อพัฒนา Batch Input สำหรับองค์กรของคุณ

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

การเขียนโปรแกรม BDC

คุณสามารถปฏิบัติตามขั้นตอนต่อไปนี้เพื่อเขียนโปรแกรม BDC ของคุณ

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

โครงสร้างข้อมูลอินพุตแบบแบตช์

การประกาศโครงสร้างข้อมูลอินพุตแบบแบตช์

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
ชื่อฟิลด์ ประเภท ความยาว Descriptไอออน
โปรแกรม ชาร์ 8 พูลโมดูล
ไดน์โปร NUMC 4 เบอร์ไดนโปร
ไดนเบกิ้น ชาร์ 1 การเริ่มต้น dynpro
เอฟนัม ชาร์ 35 ชื่อฟิลด์
ฟวาล ชาร์ 80 ค่าฟิลด์

ลำดับของฟิลด์ภายในข้อมูลสำหรับหน้าจอใดหน้าจอหนึ่งไม่มีนัยสำคัญใดๆ

คะแนนหมายเหตุ

  • ขณะป้อนข้อมูล BDC โปรดพิจารณาถึงการตั้งค่าของผู้ใช้ด้วย การตั้งค่านี้เกี่ยวข้องโดยเฉพาะกับการกรอกข้อมูลในช่องที่เกี่ยวข้องกับตัวเลข (เช่น ปริมาณ จำนวน) การตั้งค่าของผู้ใช้จะกำหนดว่าอักขระการจัดกลุ่มสำหรับตัวเลขคืออะไร ตัวอย่างเช่น ตัวเลขห้าหมื่นสามารถเขียนเป็น 50,000.00 หรือ 50.000,00 ขึ้นอยู่กับการตั้งค่าของผู้ใช้
  • ย่อฟิลด์ FVAL สำหรับฟิลด์จำนวนเงินและปริมาณเพื่อให้ชิดกัน
  • โปรดทราบว่าเขตข้อมูลทั้งหมดที่คุณเติมข้อมูลผ่าน BDC ควรถือเป็นเขตข้อมูลประเภทอักขระในขณะที่เติมข้อมูลในตารางข้อมูล BDC
  • ในบางหน้าจอ เมื่อคุณเติมค่าในตัวควบคุมตารางโดยใช้ BDC คุณจะต้องบันทึกจำนวนแถวที่ปรากฏบนขนาดเริ่มต้นของหน้าจอและโค้ดสำหรับแถวต่างๆ ถ้าคุณต้องเติมข้อมูลในแถวเพิ่มเติม คุณจะต้องเขียนโค้ดสำหรับฟังก์ชัน "เลื่อนหน้าลง" เหมือนกับที่คุณทำเมื่อคุณเติมข้อมูลในตัวควบคุมตารางด้วยตนเอง
  • จำนวนบรรทัดที่จะปรากฏในสถานการณ์ข้างต้นจะแตกต่างกันไปตามขนาดหน้าจอที่ผู้ใช้ใช้ ดังนั้นควรเขียนโค้ดสำหรับขนาดหน้าจอมาตรฐานเสมอ และทำให้ BDC ของคุณทำงานในขนาดหน้าจอมาตรฐานเสมอ ไม่ว่าผู้ใช้จะคงขนาดหน้าจอไว้เป็นเท่าใด

การสร้างเซสชันอินพุตแบบแบตช์

  1. เปิดเซสชันเซสชันอินพุตแบบแบตช์โดยใช้โมดูลฟังก์ชัน BDC_OPEN_GROUP
  2. สำหรับแต่ละธุรกรรมในเซสชั่น:
  3. กรอก BDCDATA ด้วยค่าสำหรับหน้าจอและฟิลด์ทั้งหมดที่ประมวลผลในธุรกรรม
  4. โอนธุรกรรมไปยังเซสชันด้วย BDC_INSERT
  5. ปิดเซสชันการป้อนข้อมูลแบบแบตช์ด้วย BDC_CLOSE_GROUP

เครื่องบันทึกอินพุตแบบแบตช์

เครื่องบันทึกอินพุตแบบแบตช์ (ระบบ > บริการ > อินพุตแบบแบตช์ > เครื่องบันทึก) จะบันทึกธุรกรรมที่ป้อนด้วยตนเอง และสร้างเซสชันอินพุตแบบแบตช์ที่สามารถดำเนินการในภายหลังได้โดยใช้ SM35

เครื่องบันทึกอินพุตแบบแบตช์

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