Friday, April 2, 2010

วิธี การดึงข้อมูล System Status ของ Production Order โดยใช้ ABAP [2]

จากที่กล่าวถึงวิธีแรกไปแล้วเป็นวิธีที่ใช้ Function Module
วิธีที่สองที่จะกล่าวถึงนี้เราจะเขียนวิธีการดึง System Status เองเลย ซึ่งความจริงก็ไม่ยาก เพราะ System Status นั้นจะเก็บอยู่ในตาราง JEST ซึ่งเราก็จะเอา เลขที่ OBJNR ที่เราหาได้จากตาราง AUFK เข้าไปทำการ Query เหมือนกัน

SELECT STAT INACT INTO TABLE it_stat
FROM jest
WHERE OBJNR = wa_aufk-objnr.


ถ้าเราต้องการเฉพาะสถานะที่ Active ก็ให้เราใส่เงื่อนไขดังนี้ เ้ข้าไปตอน Query

INACT = ' '


Completed Code:

DATA: it_stat TYPE TABLE OF JSTAT WITH HEADER LINE,
wa_aufk LIKE aufk.

SELECT SINGLE * FROM AUFK INTO wa_aufk
WHERE AUFNR = 'TEST54'.
IF SY-SUBRC = 0.
SELECT STAT INACT INTO TABLE it_stat
FROM jest
WHERE OBJNR = wa_aufk-objnr.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
LOOP AT it_stat.
WRITE:/ it_stat-STAT,
it_stat-INACT.
ENDLOOP.
ENDIF.
ENDIF.


ผลลัพธ์ที่ได้

E0001 X
E0010
I0001 X
I0002
I0010
I0016
I0028
I0115
I0118 X
I0215
I0340 X
I0361
I0369
I0420


จะเห็นว่าผลลัพธ์ที่ได้เหมือนกับวิธีแรกเลย

No comments:

Post a Comment