0% found this document useful (0 votes)
11 views6 pages

Pick Request Creation - TS

The document outlines the SAP report program /BMW/OMP_PICK_REQUEST, which generates pick requests. It includes details about the program's authors, modifications, and functionalities, such as sorting and displaying data in an ALV grid. The program also features a notification system for informing users upon creation of pick requests.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views6 pages

Pick Request Creation - TS

The document outlines the SAP report program /BMW/OMP_PICK_REQUEST, which generates pick requests. It includes details about the program's authors, modifications, and functionalities, such as sorting and displaying data in an ALV grid. The program also features a notification system for informing users upon creation of pick requests.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

*&-------------------------------------------------------------------*

*& Report /BMW/OMP_PICK_REQUEST


*&
*&-------------------------------------------------------------------*

REPORT /BMW/OMP_PICK_REQUEST.
*--------------------------------------------------------------------|
* Author : S.NARAYANAN |
* Date : 12/01/2011 |
* Specification Name : PICK REQUEST GENERATE |
* Functional Analyst : RAMESH KRISHNA THURAIRAJ |
* Technical Analyst : S.NARAYANAN |
* Program Name : /BMW/OMP_PICK_REQUEST |
* Transaction Code : /BMW/OMP_PICK_REQUEST |
* Input File Name : NA |
* Output File Name : NA |
* Includes : NA |
* Function Module : REUSE_ALV_GRID_DISPLAY |
* Custom Tables : NA |
* Transport Request : OMDK901820 |
* Description : This program will create the PICK |
* Request. |
* Restrictions/Assumptions : |
*--------------------------------------------------------------------|
* MODIFICATION HISTORY |
*--------------------------------------------------------------------|
* Date | Author /TA-No. |Ver| Description |
*----------|------------------|---|----------------------------------|
*20.02.2011|QXA6450/OMDK901900|001| CREATION INDICATOR CHANGES |
*13.03.2011|QXA6450/OMDK901939|002| Sorting Order Changes |
*15.04.2011|QX97052/OMDK902009|003| Mail Notification for PR Creation|
*15.04.2011|QX97052/OMDK902009|003| Outer Package No has added |
*--------------------------------------------------------------------*

INCLUDE: /BMW/OMP_PICK_REQUEST001, " GLOBAL DECLARATIONS.


/BMW/OMP_PICK_REQUEST002, " SELECTION SCREEN.
/BMW/OMP_PICK_REQUEST003. " DATA FETCH & PROCESS.

*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY .
*********************** Sort Creation **************************

IF SY-UCOMM = 'PICK'.
GS_SORT-FIELDNAME = 'PRNUM'.
GS_SORT-TABNAME = 'GT_FINAL'.
GS_SORT-UP = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR: GS_SORT.
ENDIF.
GS_SORT-FIELDNAME = 'LOTNO'.
GS_SORT-TABNAME = 'GT_FINAL'.
GS_SORT-UP = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR: GS_SORT.

GS_SORT-FIELDNAME = 'PERDAT'.
GS_SORT-TABNAME = 'GT_FINAL'.
GS_SORT-UP = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR: GS_SORT.
************************** End *********************************

********************** Layout Creation *************************

GS_LOUT-BOX_FIELDNAME = 'BOX'.
GS_LOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LOUT-ZEBRA = 'X'.

*************************** End ********************************

*************** Fieldcat Creation ******************************

IF SY-UCOMM = 'PICK'.
PERFORM FIELDCAT USING 'GT_FINAL' 'PRNUM' TEXT-002. " Pick Request No
ENDIF.
PERFORM FIELDCAT USING 'GT_FINAL' 'LOTNO' TEXT-003. " Lot No
PERFORM FIELDCAT USING 'GT_FINAL' 'FITMENT' TEXT-004. " Fitment Point
PERFORM FIELDCAT USING 'GT_FINAL' 'PACK' TEXT-018. " Case No
PERFORM FIELDCAT USING 'GT_FINAL' 'PACK1' TEXT-025. " Outer Storage Point
PERFORM FIELDCAT USING 'GT_FINAL' 'MATNR' TEXT-005. " Material No
PERFORM FIELDCAT USING 'GT_FINAL' 'MAKTX' TEXT-006. " Material Description
PERFORM FIELDCAT USING 'GT_FINAL' 'VLGOR' TEXT-007. " Storage Location
PERFORM FIELDCAT USING 'GT_FINAL' 'EXIDV' TEXT-016. " Handling Unit
PERFORM FIELDCAT USING 'GT_FINAL' 'MENGE' TEXT-008. " Quatity
PERFORM FIELDCAT USING 'GT_FINAL' 'MEINS' TEXT-009. " UOM
PERFORM FIELDCAT USING 'GT_FINAL' 'PERDAT' TEXT-015. " Inplant Schedule Date

************************** End *********************************

ENDFORM. " DISPLAY

*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0516 text
* -->P_0517 text
* -->P_0518 text
*----------------------------------------------------------------------*
FORM FIELDCAT USING TNAME TYPE ANY
FNAME TYPE ANY
FTEXT TYPE ANY.
DATA: GV_FCAT TYPE SLIS_FIELDCAT_ALV.
GV_FCAT-TABNAME = TNAME.
GV_FCAT-FIELDNAME = FNAME.
GV_FCAT-SELTEXT_M = FTEXT.
APPEND GV_FCAT TO GT_FCAT.

ENDFORM. " FIELDCAT

*&---------------------------------------------------------------------*
*& Form process
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PROCESS .
if gt_final is not INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = TEXT-010
I_CALLBACK_USER_COMMAND = TEXT-011
IS_LAYOUT = GS_LOUT
IT_FIELDCAT = GT_FCAT
*{ OMDK901939
IT_SORT = GT_SORT
*} OMDK901939
TABLES
T_OUTTAB = GT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
else.
message TEXT-001 TYPE 'I'.
endif.
ENDFORM. " process

*&---------------------------------------------------------------------*
*& Form PF-STATUS
*&---------------------------------------------------------------------*
FORM SET-PF-STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS TEXT-012.
ENDFORM. "set-pf-status

*&---------------------------------------------------------------------*
*& Form PF-STATUS
*&---------------------------------------------------------------------*
FORM USCMD USING GV_UCOMM TYPE SY-UCOMM
GV_SFIELD TYPE SLIS_SELFIELD.

IF GV_UCOMM = 'PICK'.
**** Pick Request No Creation **********************

CLEAR: GV_NO.
SELECT MAX( PRNUM ) FROM /BMW/OMP_Pr INTO GV_NO WHERE PRNUM NE ''.
IF GV_NO NE ''.
GV_NO = GV_NO + 1.
ELSE.
GV_NO = '6000000001'.
ENDIF.

LOOP AT GT_FINAL INTO GS_FINAL WHERE BOX = 'X'.


GV_COUNT = GV_COUNT + 1.
GS_FINAL-PRNUM = GV_NO.
GS_FINAL-PERNAM = SY-UNAME.
GS_FINAL-PERDAT = SY-DATUM.
* GS_FINAL-PerDAt = P_DATE.
MODIFY GT_FINAL FROM GS_FINAL.
MOVE-CORRESPONDING GS_FINAL TO GS_DISP.
MOVE: GV_COUNT TO GS_DISP-ZEILE,
'Y' to GS_DISP-CIND.
APPEND GS_DISP TO GT_DISP.
CLEAR: GS_FINAL.
ENDLOOP.
IF GT_DISP[] IS NOT INITIAL.
DELETE GT_FINAL[] WHERE BOX = ''.
MODIFY /BMW/OMP_Pr FROM TABLE GT_DISP.
COMMIT WORK.
*{ Begin of Changes - OMDK902009
PERFORM SEND_NOTIFICATION.
*} End of Changes - OMDK902009
REFRESH: GT_FCAT, GT_SORT.
CLEAR: GS_LOUT.
PERFORM DISPLAY.
PERFORM PROCESS1.
ENDIF.
ENDIF.
************************** End ***************************************
********************** System User Command ***************************

GV_UCOMM = SY-UCOMM.
IF GV_UCOMM = '&F03' or GV_UCOMM = '&F15' or GV_UCOMM = '&F12'.
LEAVE PROGRAM.
ENDIF.
CLEAR: GV_UCOMM.
************************* End ***************************************

ENDFORM. "set-pf-status

*&---------------------------------------------------------------------*
*& Form process1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PROCESS1 .
DATA: GV_TEXT(50).
CLEAR: GV_TEXT.
GS_LOUT-BOX_FIELDNAME = ''.

CONCATENATE TEXT-013 GV_NO TEXT-014 INTO GV_TEXT SEPARATED BY SPACE.


IF GT_FINAL[] IS NOT INITIAL.
MESSAGE GV_TEXT TYPE 'S'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = TEXT-011
IS_LAYOUT = GS_LOUT
IT_FIELDCAT = GT_FCAT
IT_SORT = GT_SORT
TABLES
T_OUTTAB = GT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.
ENDFORM. " process
*&---------------------------------------------------------------------*
*& Form send_notification
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form send_notification .

CONSTANTS: LC_DIST_LIST(10) VALUE 'PICK_REQ'.

DATA: LT_OBJCONT TYPE TABLE OF SOLISTI1 ,


LT_RECLIST TYPE TABLE OF SOMLRECI1 ,
LS_RECLIST TYPE SOMLRECI1,
LS_OBJ TYPE SOLISTI1,
LS_DOC_CHNG TYPE SODOCCHGI1,
LS_OBJECT_ID TYPE SO_OBJ_ID,
LS_USER TYPE AD_NAMTEXT,
LS_USRID TYPE XUBNAME,
LT_LOT TYPE STANDARD TABLE OF TY_FINAL,
LS_LOT TYPE TY_FINAL.

*Receiver List creation.


REFRESH : LT_RECLIST.
LS_RECLIST-RECEIVER = LC_DIST_LIST.
LS_RECLIST-REC_TYPE = 'C'.
APPEND LS_RECLIST TO LT_RECLIST.
CLEAR: LS_RECLIST.

LS_USRID = SY-UNAME.
*Getting Name of the User
CALL FUNCTION 'FDM_CUST_USER_NAME_READ_SINGLE'
EXPORTING
I_USER_ID = LS_USRID
IMPORTING
E_FULLNAME = LS_USER.

*Mail Content Creation.


REFRESH: LT_OBJCONT.
CONCATENATE TEXT-021 GV_NO TEXT-022 LS_USER INTO LS_OBJ SEPARATED BY SPACE.
APPEND LS_OBJ TO LT_OBJCONT.
CLEAR: LS_OBJ.
APPEND INITIAL LINE TO LT_OBJCONT.
*Lot Numbers
MOVE TEXT-023 TO LS_OBJ .
APPEND LS_OBJ TO LT_OBJCONT.
CLEAR: LS_OBJ.
*Line
MOVE TEXT-024 TO LS_OBJ .
APPEND LS_OBJ TO LT_OBJCONT.
CLEAR: LS_OBJ.

LT_LOT = GT_FINAL[].
SORT LT_LOT BY LOTNO.
DELETE ADJACENT DUPLICATES FROM LT_LOT COMPARING LOTNO.

LOOP AT LT_LOT INTO LS_LOT.


MOVE LS_LOT-LOTNO TO LS_OBJ .
APPEND LS_OBJ TO LT_OBJCONT.
CLEAR: LS_OBJ.
ENDLOOP.

*Document data
LS_DOC_CHNG-OBJ_NAME = TEXT-021.
CONCATENATE TEXT-021 GV_NO INTO LS_DOC_CHNG-OBJ_DESCR SEPARATED BY SPACE.

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'


EXPORTING
DOCUMENT_TYPE = 'RAW'
DOCUMENT_DATA = LS_DOC_CHNG
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
OBJECT_CONTENT = LT_OBJCONT
RECEIVERS = LT_RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99.
IF SY-SUBRC NE 0.
ENDIF.

endform. " send_notification

You might also like