SAP บทช่วยสอน ABAP BDC (การสื่อสารข้อมูลเป็นชุด)
ข้อมูลเบื้องต้นเกี่ยวกับการป้อนข้อมูลแบบแบตช์
โดยทั่วไปอินพุตแบบแบตช์จะใช้เพื่อถ่ายโอนข้อมูลจากระบบที่ไม่ใช่ R/3 ไปยังระบบ R/3 หรือเพื่อถ่ายโอนข้อมูลระหว่างระบบ R/3
เป็นเทคนิคการถ่ายโอนข้อมูลที่ช่วยให้คุณสามารถถ่ายโอนชุดข้อมูลไปยังหน้าจอที่เป็นของธุรกรรมโดยอัตโนมัติและไปยัง SAP ระบบ. อินพุตแบบแบตช์ถูกควบคุมโดยเซสชันอินพุตแบบแบตช์
เซสชั่นการป้อนข้อมูลเป็นกลุ่ม
จัดกลุ่มชุดของการเรียกธุรกรรมพร้อมกับข้อมูลที่ป้อนและการกระทำของผู้ใช้ เซสชันอินพุตแบบแบตช์สามารถใช้เพื่อดำเนินการธุรกรรมแบบโต้ตอบในการอินพุตแบบแบตช์ โดยที่เซสชันจะประมวลผลหน้าจอบางส่วนหรือทั้งหมด เซสชันอินพุตแบบแบตช์จะถูกจัดเก็บไว้ในฐานข้อมูลเป็นตารางฐานข้อมูล และสามารถใช้ภายในโปรแกรมเป็นตารางภายในเมื่อเข้าถึงธุรกรรม
จุดที่ควรทราบ
- BDI ทำงานโดยดำเนินการตามปกติ SAP ธุรกรรมเช่นเดียวกับที่ผู้ใช้ทำ แต่จะดำเนินการธุรกรรมโดยอัตโนมัติการตรวจสอบความถูกต้องของหน้าจอและการตรวจสอบตรรกะทางธุรกิจทั้งหมดจะดำเนินการในขณะที่ใช้การป้อนข้อมูลแบบแบตช์
- เหมาะสำหรับการป้อนข้อมูลจำนวนมาก
- ไม่จำเป็นต้องมีการโต้ตอบด้วยตนเอง
วิธีการป้อนข้อมูลแบบแบตช์
SAP จัดเตรียมวิธีการพื้นฐานสองวิธีสำหรับการถ่ายโอนข้อมูลเดิมไปยังระบบ R/3
- วิธีการป้อนข้อมูลแบบคลาสสิก
- วิธีการทำธุรกรรมทางโทรศัพท์
วิธีการป้อนข้อมูลแบบคลาสสิก
ในวิธีนี้โปรแกรม ABAP/4 จะอ่านข้อมูลภายนอกไปยัง SAP ระบบและการจัดเก็บในเซสชั่นการป้อนข้อมูลแบบแบตช์
หลังจากสร้างเซสชันแล้ว คุณสามารถเรียกใช้เซสชันเพื่อดำเนินการได้ SAP การทำธุรกรรมในนั้น
วิธีการนี้ใช้โมดูลฟังก์ชัน BDC_ OPEN, BDC_INSERT และ BDC_CLOSE
Batch Input Session สามารถดำเนินการได้ 3 วิธี
- อยู่เบื้องหน้า
- ในพื้นหลัง
- ระหว่างการประมวลผลพร้อมแสดงข้อผิดพลาด
คุณควรประมวลผลเซสชันอินพุตแบบแบตช์ในเบื้องหน้าหรือใช้การแสดงข้อผิดพลาดหากคุณต้องการทดสอบการถ่ายโอนข้อมูล
หากคุณต้องการดำเนินการถ่ายโอนข้อมูลหรือทดสอบประสิทธิภาพ คุณควรประมวลผลเซสชันในเบื้องหลัง
ข้อควรทราบเกี่ยวกับวิธีการป้อนข้อมูลแบบคลาสสิก
- Syncการประมวลผลที่เที่ยงตรง
- ถ่ายโอนข้อมูลสำหรับการทำธุรกรรมหลายรายการ
- Syncการอัพเดตฐานข้อมูลแบบ Hronous
- บันทึกกระบวนการอินพุตแบบแบตช์จะถูกสร้างขึ้นสำหรับแต่ละเซสชัน
- ไม่สามารถสร้างเซสชันพร้อมกันได้
วิธีการทำธุรกรรมทางโทรศัพท์
ในวิธีนี้ ABAP/4 โปรแกรมใช้คำสั่ง CALL TRANSACTION USING เพื่อรันไฟล์ SAP การซื้อขาย
กระบวนการป้อนข้อมูลแบบกลุ่มทั้งหมดเกิดขึ้นทางออนไลน์ในโปรแกรม
จุดที่ควรทราบ:
- ประมวลผลข้อมูลได้เร็วขึ้น
- การประมวลผลแบบอะซิงโครนัส
- ถ่ายโอนข้อมูลสำหรับธุรกรรมเดียว
- ไม่มีการสร้างบันทึกการประมวลผลอินพุตแบบแบตช์
ขั้นตอนการป้อนข้อมูลแบบกลุ่ม
โดยทั่วไป คุณจะสังเกตลำดับขั้นตอนต่อไปนี้เพื่อพัฒนา Batch Input สำหรับองค์กรของคุณ
- การวิเคราะห์ข้อมูลเดิม กำหนดวิธีการแมปข้อมูลที่จะถ่ายโอนไปยัง SAP โครงสร้าง. จดบันทึกประเภทข้อมูลที่จำเป็นหรือการแปลงความยาวข้อมูลด้วย
- ผลิต SAP โครงสร้างข้อมูลเพื่อใช้ในโปรแกรมส่งออก
- ส่งออกข้อมูลเป็นไฟล์ต่อเนื่อง โปรดทราบว่าจำเป็นต้องมีรูปแบบอักขระตามที่กำหนดไว้ล่วงหน้า SAP โปรแกรมอินพุตแบบแบตช์
- ถ้า SAP ไม่ได้ใช้โปรแกรม BDC ที่ให้มา ให้เขียนโค้ดโปรแกรมอินพุตแบบแบตช์ของคุณเอง เลือกวิธีการป้อนข้อมูลแบบกลุ่มที่เหมาะสมตามสถานการณ์
- ประมวลผลข้อมูลและเพิ่มลงใน SAP System.
- วิเคราะห์บันทึกกระบวนการ สำหรับวิธี CALL TRANSACTION ที่ไม่มีการสร้างบันทึกที่เหมาะสม ให้ใช้ข้อความที่รวบรวมโดยโปรแกรมของคุณ
- จากผลการวิเคราะห์กระบวนการ แก้ไขและประมวลผลข้อมูลที่ผิดพลาดใหม่
การเขียนโปรแกรม BDC
คุณสามารถปฏิบัติตามขั้นตอนต่อไปนี้เพื่อเขียนโปรแกรม BDC ของคุณ
- วิเคราะห์ธุรกรรมเพื่อประมวลผลข้อมูลอินพุตแบบแบตช์
- ตัดสินใจเลือกวิธีการป้อนข้อมูลแบบกลุ่มที่จะใช้
- อ่านข้อมูลจากไฟล์ตามลำดับ
- ทำการแปลงข้อมูลหรือตรวจสอบข้อผิดพลาด
- การจัดเก็บข้อมูลในโครงสร้างอินพุตแบบแบตช์ BDCDATA
- สร้างเซสชันอินพุตแบบแบตช์สำหรับการอินพุตแบบแบตช์แบบคลาสสิก หรือประมวลผลข้อมูลโดยตรงด้วยคำสั่ง 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 ของคุณทำงานในขนาดหน้าจอมาตรฐานเสมอ ไม่ว่าผู้ใช้จะคงขนาดหน้าจอไว้เป็นเท่าใด
การสร้างเซสชันอินพุตแบบแบตช์
- เปิดเซสชันเซสชันอินพุตแบบแบตช์โดยใช้โมดูลฟังก์ชัน BDC_OPEN_GROUP
- สำหรับแต่ละธุรกรรมในเซสชั่น:
- กรอก BDCDATA ด้วยค่าสำหรับหน้าจอและฟิลด์ทั้งหมดที่ประมวลผลในธุรกรรม
- โอนธุรกรรมไปยังเซสชันด้วย BDC_INSERT
- ปิดเซสชันการป้อนข้อมูลแบบแบตช์ด้วย BDC_CLOSE_GROUP
เครื่องบันทึกอินพุตแบบแบตช์
เครื่องบันทึกอินพุตแบบแบตช์ (ระบบ > บริการ > อินพุตแบบแบตช์ > เครื่องบันทึก) จะบันทึกธุรกรรมที่ป้อนด้วยตนเอง และสร้างเซสชันอินพุตแบบแบตช์ที่สามารถดำเนินการในภายหลังได้โดยใช้ SM35
- เริ่มต้นเครื่องบันทึกอินพุตแบบแบตช์โดยเลือกปุ่มกดการบันทึกจากหน้าจอเริ่มต้นอินพุตแบบแบตช์
- ชื่อการบันทึกเป็นชื่อที่ผู้ใช้กำหนดและสามารถจับคู่ชื่อเซสชันอินพุตแบบแบตช์ซึ่งสามารถสร้างได้จากการบันทึก
- ป้อน SAP ธุรกรรมและเริ่มโพสต์ธุรกรรม
- หลังจากที่คุณโพสต์เสร็จแล้ว SAP ธุรกรรมที่คุณเลือกรับธุรกรรมและบันทึกเพื่อสิ้นสุดการบันทึกหรือธุรกรรมถัดไปและโพสต์ธุรกรรมอื่น
- เมื่อคุณบันทึกการบันทึกแล้ว คุณสามารถสร้างเซสชันอินพุตแบบแบตช์จากการบันทึกและ/หรือสร้างโปรแกรมอินพุตแบบแบตช์จากการบันทึกได้
- ขณะนี้สามารถวิเคราะห์เซสชันอินพุตแบบแบตช์ที่คุณสร้างได้เช่นเดียวกับเซสชันอินพุตแบบแบตช์อื่นๆ
- โปรแกรมที่สร้างขึ้นโดยฟังก์ชันของเครื่องบันทึกอินพุตแบบแบตช์เป็นเครื่องมืออันทรงพลังสำหรับโปรแกรมเมอร์อินเทอร์เฟซข้อมูล เป็นฐานที่มั่นคงซึ่งสามารถเปลี่ยนแปลงได้ตามความต้องการของลูกค้า