หมวดหมู่ ‘ABAP’

การใช้คำสั่ง CALL TRANSACTION ‘T-CODE’ AND SKIP FIRST SCREEN.

DATA: p_belnr LIKE bkpf-belnr, p_bukrs LIKE  bkpf-bukrs, p_gjahr LIKE  bkpf-gjahr. p_belnr = ’99999999′. “Document Number p_bukrs = ’9999′. “Company Code p_gjahr = ’2011′. “Fiscal Year SET PARAMETER ID:  ‘BLN’ FIELD p_belnr, ‘GJR’ FIELD p_gjahr, ‘BUK’ FIELD p_bukrs . CALL TRANSACTION ‘FB03′ AND SKIP FIRST SCREEN. จาก Code ข้างบน เป็นการส่งค่าตัวแปร PARAMETER ID ไปยังหน้าแรกของ SCREEN ที่เราต้องการเรียก เพื่อข้ามหน้าแรก [...]

สั่งรันโปรแกรม แบบ background โดยใช้ function ‘JOB_OPEN’

ถ้ามีปัญหากับการใช้เวลาในการรันโปรแกรมนาน ซึ่งเราคิดว่า Logi เราเทพแล้วแต่ที่มันช้าเพราะข้อมูลมันเยอะ ขยะมันเยอะ ไม่สามารถที่จะแก้ Logi ได้ ก็เลยคิดให้ โปรแกรมมัน Run background เสร็จแล้วจะกลับไปดู ทำไงให้โปรแกรมมัน Run backgroud ก็ต้องเรียกใช้ function ‘JOB_OPEN’ มามาดูกัน ว่า Work ไหม? Concept โปรแกรม – ให้โปรแกรมรับค่าจากหน้าจอ คำนวณค่าจากหน้าจอ ส่งค่าที่คำนวณได้ ไปให้อีกโปรแกรมหนึ่ง ซึ่งเป็นไปในรูปแบบ Run Background วิธีทำ ปล. ต้องมีโปรแกรม 2 ตัว ตัวหนึ่งส่งค่า(Program ZA) อีกตัวรับค่า(Program ZB) – สร้างหน้าจอ SELECTION-SCREEN (ที่ Program ZA)

การตรวจสอบ สถานะ Serial number[IMEI] (SAP,ABAP)

  สิ่งสำคัญที่สุดของการหาคือ เราต้องทราบ EQUNR ก่อน การที่เราจะได้ EQUNR นั้นเราสามารถ หาได้จาก การเอา OBKNR ของ Table SERXX(แล้วแต่ประเภทเอกสารที่ต้องการตรวจสอบ สถานะ Serial number[IMEI])  ไปหา EQUNR TABLE: OBJK (Plant Maintenance Object List) Condition: OBKNR = SER0X-OBKNR Result: OBJK-EQUNR      หลังจากเราได้ EQUNR แล้ว ให้เอา EQUNR ไปหา OBJNR TABLE: EQUI (Equipment master data) Condition: EQUNR = OBJK-EQUNR Result: EQUI-OBJNR   เมื่อได้ OBJNR แล้ว  [...]

หน่วยวัดต่างๆ ใน Form SAPSCRIPT (TW, PT, IN, MM, CM, LN, CH)

   เวลาจะทำ Layout Form ใน SAPSCRIPT สิ่งที่ขาดไม่ได้ก็คือ หน่วยวัดต่างๆ พวก TW (twip), PT (point), IN (inch), MM (millimeter), CM (centimeter), LN (line) และ CH (character)  หน่วยพวกนี้จำเป็นจริงๆ แต่ติดปัญหาคือ หน่วยพวกนี้ แต่ละหน่วยมันมีความแตกต่างกันเท่าไร อะไรมีค่ามากกว่ากันหรือน้อยกว่ากัน คำตอบอยู่ที่ตารางข้างล่าง 1 TW = 1/20 PT 1 PT = 1/72 IN 1 IN = 2.54 CM 1 CM = 10 MM 1 CH = character height from layout [...]

การสลับสี ของแถว ใน Report ABAP โดยใช้ INTENSIFIED ON และ OFF

INTENSIFIED นั้นเป็นคำสั่ง ในการ Show สี ใน SAP  (อ่านบทความเรื่อง ปัญหาในการจำรหัสสี ของ sap ( format color ใน sap )) ซึ่งจะช่วยในการแสดงลูกเล่นให้กับ Report ส่วนมากใช้กับกการแสดงข้อมูลแถวเยอะๆ และต้องการกหนดขอบเขตในแต่ล่ะแถว อย่างเช่นรูปข้างล่างนี้ พระเอกของงานนี้คือ FORM TOGGLE_INTENSIFIED .STATICS L_FORMAT_SET. IF L_FORMAT_SET = SPACE. FORMAT INTENSIFIED ON. MOVE ‘X’ TO L_FORMAT_SET. ELSE. FORMAT INTENSIFIED OFF. CLEAR L_FORMAT_SET. ENDIF. ENDFORM. " TOGGLE_INTENSIFIED วิธีใช้ DATA w_num TYPE i.DO 5 TIMES. w_num = w_num + [...]

โปรแกรม Report ค้นหา User exit จาก Transaction Code(T-CODE SAP)

ได้รับมอบหมายให้แก้ปัญหา เกี่ยวกับการแก้ไข Serial number ใน VA02 ของ User ในกรณีการคืนของ เนื่องจากมีการใส่ค่าที่ไม่ถูกต้อง ตามเอกสาร SO ดังนั้นการจะแก้ไขปัญหานี้ได้ ต้องทำการ ดักจับตรวจสอบข้อมูลที่ Serial number ซึ่งผมจะดักจับได้ก็ต้องพึ่ง User exit แล้ว User exit ของ VA02 จะหาที่ไหน สิ่งแรกที่ผมคิดได้คือ Google และแล้วก็พบวิธีหา User exit โดยใช้โรแกรม Report zuserexit หน้าตาโปรแกรม Report zuserexit

คำสั่งดึง Company Code จาก Usrername

   คำสั่งดึง Company Code จาก Username โดย Company Code ที่ได้นั้น จะถูกฝั่งไว้กับ Username แต่ จะดึงได้ต่อเมื่อ Username นั้น มีการกำหนดค่าตัวแปรสำหรับเก็บ Company Code ในที่นี้ ยกตัวอย่างว่า Username ได้ประกาศตัวแปร “BUK” ให้เก็บ ค่า Company Code SELECT SINGLE parva FROM usr05 INTO (w_bukrs)                          WHERE bname = sy-uname                          AND   parid = ‘BUK’                          AND   parva <> ”                          . IF sy-subrc <> [...]

Function Popup message แสดงข้อความ Text หลายบรรทัด

   พอดี ต้องการแสดง Popup message แจ้ง การป้อนข้อมูลแ User แต่ติดปัญหาที่ message ที่แสดงนั้น มันมีหลายบรรทัด เคยใช้แต่ Function ที่แสดงได้เต็มที่ 2-6 บรรทัด ก็เลยต้องลองหาดู(google) ไปเจอ Function ตัวนี้ ถือว่า work มาก การใช้งานก็ไม่อยาก ใส่ค่าที่ต้องการแสดงไว้ใน Internal Table  Set ค่านิดหน่อยเป็นอันใช้ได้ Value Set endpos_col  = ความกว้างของ Popup คิดเป็นคอลัมน์ endpos_row = ความยาวของ Popup คิดเป็นแถว startpos_col = ตำแหน่งการแสดง Popup คิดเป็นคอลัมน์ เปรียบเสมือน แกน X startpos_row = ตำแหน่งการแสดง Popup คิดเป็นแถว [...]

หาเลขหน้าปัจจุบัน และ จำนวนหน้าทั้งหมด ABAP

การทำ Report มักจะต้องบอกตัวเลขหน้าปัจจุบัน และจำนวนหน้าทั้งหมดของ Report นั้นว่า มีจำนวนเท่าไร ซึ่งวิธีหานั้นสามารถหาได้จากตัวระบบเอง และคำนวณ ตัวอย่าง แผ่นที่  1  ในจำนวน  10 แผ่น หรือ Page 1 / 10 ซึ่งการหาค่าตัวเลขหน้าปัจจุบัน นั้นจะไม่มีปัญหาเท่าไรนะ เพราะระบบได้จัดเตรียมตัวแปรมาให้แล้ว นั้นก็คือ sy-pagno แต่จะติดปัญหาอยู่ที่ จำนวนหน้าทั้งหมดล่ะ จะหาได้จากที่ไหน หาได้จากการคำนวณ ขึ้นมา หลักการ คือ แสดงรายงานให้เสร็จแล้วเอาค่าตัวเลขหน้าปัจจุบัน ไปทำการอับเดท ในตำแหน่งที่ต้องการ Code WRITE    ‘Page : ‘ , sy-pagno , ‘/’ , ‘XXX’ .   "Line 3 FORM write_total_page. DATA: page_count TYPE n. [...]

การอ่านค่าจาก ตัวแปร checkbox พร้อม Easy Example

เกริ่น: ในกรณีที่ต้องการทำแบบทดสอบให้ User ทำการเลือกคำตอบ ซึ่งคำตอบนั้นสามารถมีมากกว่า 1 ขึ้นอยู่กับทางข้อมูลใน Table หรือ Internal Table โดยระบบจะเก็บเฉพาะข้อมูลที่ถูกเลือก พระเอกของงานนี้คือ read line sy-index field value <ตัวแปร>. หน้า Sccreen

Powered by WordPress | Designed by: My Touch 4G