This is a good link,
Data Element Modification Link
Saturday, April 30, 2011
Sunday, March 6, 2011
SAP DMS Upload program
Program to upload documents in DMS
*&---------------------------------------------------------------------*
*& Report ZBAPI_DMS_CV01N
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zbapi_dms_cv01n.
TYPES: BEGIN OF t_record,
gv_descripcion(40), " Description
documentversion(2), " Documet version
documentpart(3), " Document part
created_by(12), " Creator
wsapplication(3), " Document type
docfile(255), " File path
charname(30), " Characteristic Name
charvalue(30) , " Plant maintenance Document
doctyp(3), " Document Type
END OF t_record.
DATA: record TYPE STANDARD TABLE OF t_record WITH HEADER LINE.
DATA: gv_documento LIKE draw-doknr,
* gv_clase LIKE draw-dokar VALUE 'PMD',
gv_version LIKE draw-dokvr VALUE '00',
gv_part LIKE draw-doktl VALUE '000',
gv_descripcion LIKE drat-dktxt,
gv_return LIKE bapiret2,
gv_ruta LIKE bapi_doc_files2-docfile.
DATA: gs_documentdata LIKE bapi_doc_draw2,
gt_characteristicvalues LIKE bapi_characteristic_values OCCURS 0 WITH HEADER LINE,
gt_classallocations LIKE bapi_class_allocation OCCURS 0 WITH HEADER LINE,
gt_documentfiles LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE.
DATA : l_path TYPE string,
length TYPE i.
*--->>> selection Screen
SELECTION-SCREEN BEGIN OF BLOCK rad1 WITH FRAME TITLE text-002.
PARAMETERS: pa_fname LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK rad1.
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_fname.
*&---------------------------------------------------------------------*
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ',*.TXT,*.TXT.'
mode = 'O'
IMPORTING
filename = pa_fname
EXCEPTIONS
inv_winsys = 01
no_batch = 02
selection_cancel = 03
selection_error = 04.
START-OF-SELECTION.
l_path = pa_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_path
* FILETYPE = 'ASC'
has_field_separator = 'X'
IMPORTING
filelength = length
TABLES
data_tab = record
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE i016(pg) WITH 'Invalid file. Please check again'.
STOP.
ENDIF.
LOOP AT record.
CLEAR: gs_documentdata.
gs_documentdata-documenttype = record-doctyp.
gs_documentdata-documentnumber = gv_documento.
gs_documentdata-documentversion = record-documentversion.
gs_documentdata-documentpart = record-documentpart.
gs_documentdata-description = record-gv_descripcion.
CLEAR: gt_characteristicvalues, gt_characteristicvalues[].
gt_characteristicvalues-classtype = '017'.
gt_characteristicvalues-classname = 'PM_DOCUMENT'.
gt_characteristicvalues-charname = record-charname.
gt_characteristicvalues-charvalue = record-charvalue.
APPEND gt_characteristicvalues.
CLEAR: gt_classallocations, gt_classallocations[].
gt_classallocations-classtype = '017'.
gt_classallocations-classname = 'PM_DOCUMENT'.
APPEND gt_classallocations.
CLEAR: gt_documentfiles, gt_documentfiles[].
gt_documentfiles-wsapplication = record-wsapplication."'XLS'.
*--->>>
* CONCATENATE record-docfile '.' record-wsapplication INTO record-docfile.
* CONDENSE record-docfile.
*--->>>
gt_documentfiles-docfile = record-docfile. " file path
gt_documentfiles-created_by = gt_documentfiles-created_by.
gt_documentfiles-storagecategory = 'Z5'.
gt_documentfiles-checkedin = 'X'.
APPEND gt_documentfiles.
*--->>>
CLEAR: gv_return.
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
EXPORTING
documentdata = gs_documentdata
IMPORTING
return = gv_return
TABLES
characteristicvalues = gt_characteristicvalues
classallocations = gt_classallocations
documentfiles = gt_documentfiles.
IF gv_return-type CA 'AE'.
* WRITE gv_return-message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
CLEAR: gs_documentdata, gv_return, gt_characteristicvalues[], gt_classallocations[], gt_documentfiles[].
ENDLOOP.
************************************************************************************
Data Uploading Format
Permitted document types
*&---------------------------------------------------------------------*
*& Report ZBAPI_DMS_CV01N
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zbapi_dms_cv01n.
TYPES: BEGIN OF t_record,
gv_descripcion(40), " Description
documentversion(2), " Documet version
documentpart(3), " Document part
created_by(12), " Creator
wsapplication(3), " Document type
docfile(255), " File path
charname(30), " Characteristic Name
charvalue(30) , " Plant maintenance Document
doctyp(3), " Document Type
END OF t_record.
DATA: record TYPE STANDARD TABLE OF t_record WITH HEADER LINE.
DATA: gv_documento LIKE draw-doknr,
* gv_clase LIKE draw-dokar VALUE 'PMD',
gv_version LIKE draw-dokvr VALUE '00',
gv_part LIKE draw-doktl VALUE '000',
gv_descripcion LIKE drat-dktxt,
gv_return LIKE bapiret2,
gv_ruta LIKE bapi_doc_files2-docfile.
DATA: gs_documentdata LIKE bapi_doc_draw2,
gt_characteristicvalues LIKE bapi_characteristic_values OCCURS 0 WITH HEADER LINE,
gt_classallocations LIKE bapi_class_allocation OCCURS 0 WITH HEADER LINE,
gt_documentfiles LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE.
DATA : l_path TYPE string,
length TYPE i.
*--->>> selection Screen
SELECTION-SCREEN BEGIN OF BLOCK rad1 WITH FRAME TITLE text-002.
PARAMETERS: pa_fname LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK rad1.
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_fname.
*&---------------------------------------------------------------------*
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ',*.TXT,*.TXT.'
mode = 'O'
IMPORTING
filename = pa_fname
EXCEPTIONS
inv_winsys = 01
no_batch = 02
selection_cancel = 03
selection_error = 04.
START-OF-SELECTION.
l_path = pa_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_path
* FILETYPE = 'ASC'
has_field_separator = 'X'
IMPORTING
filelength = length
TABLES
data_tab = record
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE i016(pg) WITH 'Invalid file. Please check again'.
STOP.
ENDIF.
LOOP AT record.
CLEAR: gs_documentdata.
gs_documentdata-documenttype = record-doctyp.
gs_documentdata-documentnumber = gv_documento.
gs_documentdata-documentversion = record-documentversion.
gs_documentdata-documentpart = record-documentpart.
gs_documentdata-description = record-gv_descripcion.
CLEAR: gt_characteristicvalues, gt_characteristicvalues[].
gt_characteristicvalues-classtype = '017'.
gt_characteristicvalues-classname = 'PM_DOCUMENT'.
gt_characteristicvalues-charname = record-charname.
gt_characteristicvalues-charvalue = record-charvalue.
APPEND gt_characteristicvalues.
CLEAR: gt_classallocations, gt_classallocations[].
gt_classallocations-classtype = '017'.
gt_classallocations-classname = 'PM_DOCUMENT'.
APPEND gt_classallocations.
CLEAR: gt_documentfiles, gt_documentfiles[].
gt_documentfiles-wsapplication = record-wsapplication."'XLS'.
*--->>>
* CONCATENATE record-docfile '.' record-wsapplication INTO record-docfile.
* CONDENSE record-docfile.
*--->>>
gt_documentfiles-docfile = record-docfile. " file path
gt_documentfiles-created_by = gt_documentfiles-created_by.
gt_documentfiles-storagecategory = 'Z5'.
gt_documentfiles-checkedin = 'X'.
APPEND gt_documentfiles.
*--->>>
CLEAR: gv_return.
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
EXPORTING
documentdata = gs_documentdata
IMPORTING
return = gv_return
TABLES
characteristicvalues = gt_characteristicvalues
classallocations = gt_classallocations
documentfiles = gt_documentfiles.
IF gv_return-type CA 'AE'.
* WRITE gv_return-message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
CLEAR: gs_documentdata, gv_return, gt_characteristicvalues[], gt_classallocations[], gt_documentfiles[].
ENDLOOP.
************************************************************************************
Data Uploading Format
| Description | Documet version | Document part | Creator | Document type | File path | Characteristic Name | Plant maintenance Document | Document Type |
| Description test | 00 | 000 | developer1 | PPT | \\172.17.9.151\DMS-Upload\Mobile Safety | MACHINEDRAWINGS | PLANNING & RELIABILITY | PMD |
Permitted document types
| Doc Type | Text |
| DOC | Microsoft Word file |
| DOX | MS word 2007 |
| DRW | Autocad files |
| HTM | HTML Files |
| IMG | Scanned Files (Image) |
| JPG | Scanned Files |
| MPP | MS Project |
| Acrobat Reader | |
| PPT | Microsoft Powerpoint |
| PPX | Microsoft Powerpoint |
| SIM | SAP Tutor Application |
| TXT | Text Files |
| VSD | Microsoft Visio files |
| WWI | Winword 6.0 |
| XLS | Microsoft EXCEL |
| XLX | MS excel 2007 |
| ZTF | TIFF formatt - Scanned Files |
SAP Dynamic Action
This Link is very good
http://wiki.sdn.sap.com/wiki/display/Snippets/Dynamic+Action
http://wiki.sdn.sap.com/wiki/display/Snippets/Dynamic+Action
Saturday, February 12, 2011
Saturday, January 29, 2011
Call Transaction using BDC Data
******** Data Declaration******
DATA: bdcdata_wa TYPE bdcdata,
bdcdata_tab TYPE TABLE OF bdcdata.
DATA opt TYPE ctu_params.
*******************************
CLEAR bdcdata_wa.
bdcdata_wa-program = 'SAPMM61X'.
bdcdata_wa-dynpro = '0100'.
bdcdata_wa-dynbegin = 'X'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-WERKS'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-WERKS'.
bdcdata_wa-fval = p_werks.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-VERSL'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-VERSL'.
bdcdata_wa-fval = 'NETCH'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-BANER'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-BANER'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-LIFKZ'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-LIFKZ'.
bdcdata_wa-fval = '3'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-DISER'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-DISER'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-PLMOD'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-PLMOD'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-TRMPL'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-TRMPL'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-DISPD'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = lv_tpdat.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-ANZLS'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-ANZLS'.
bdcdata_wa-fval = 'X'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-UXKEY'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-UXKEY'.
bdcdata_wa-fval = p_uxkey.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_OKCODE'.
bdcdata_wa-fval = '/00'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>>
opt-dismode = 'E'.
opt-defsize = 'X'.
*--->>>
CALL TRANSACTION 'MD01' USING bdcdata_tab OPTIONS FROM opt.
DATA: bdcdata_wa TYPE bdcdata,
bdcdata_tab TYPE TABLE OF bdcdata.
DATA opt TYPE ctu_params.
*******************************
CLEAR bdcdata_wa.
bdcdata_wa-program = 'SAPMM61X'.
bdcdata_wa-dynpro = '0100'.
bdcdata_wa-dynbegin = 'X'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-WERKS'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-WERKS'.
bdcdata_wa-fval = p_werks.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-VERSL'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-VERSL'.
bdcdata_wa-fval = 'NETCH'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-BANER'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-BANER'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-LIFKZ'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-LIFKZ'.
bdcdata_wa-fval = '3'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-DISER'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-DISER'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-PLMOD'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-PLMOD'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-TRMPL'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-TRMPL'.
bdcdata_wa-fval = '1'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-DISPD'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = lv_tpdat.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-ANZLS'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-ANZLS'.
bdcdata_wa-fval = 'X'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM61X-UXKEY'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'RM61X-UXKEY'.
bdcdata_wa-fval = p_uxkey.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_OKCODE'.
bdcdata_wa-fval = '/00'.
APPEND bdcdata_wa TO bdcdata_tab.
*--->>>
opt-dismode = 'E'.
opt-defsize = 'X'.
*--->>>
CALL TRANSACTION 'MD01' USING bdcdata_tab OPTIONS FROM opt.
Friday, January 28, 2011
Dynamic Selection Screen in Report
The input screen will vary based on the radio button selected,
Find the screen output based on the radio button selected.
screen 1.

screen2.

Code for the same.
***********SELECTION-SCREENS**********************
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001 .
PARAMETERS :dele RADIOBUTTON GROUP mod1 USER-COMMAND com DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: cre RADIOBUTTON GROUP mod1 .
SELECTION-SCREEN COMMENT (15) text-007.
SELECTION-SCREEN COMMENT 40(20) text-008.
PARAMETERS: lv_scen TYPE plscn.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
PARAMETER : p_param LIKE rlgrap-filename MODIF ID mod.
SELECTION-SCREEN END OF BLOCK blk3.
SELECTION-SCREEN BEGIN OF BLOCK blk4 WITH FRAME TITLE text-004.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (15) text-005 MODIF ID mod.
PARAMETERS: lv_plnrd TYPE pasch DEFAULT 'LA' MODIF ID mod.
SELECTION-SCREEN POSITION 40.
PARAMETERS: lv_month TYPE c AS CHECKBOX MODIF ID mod .
SELECTION-SCREEN COMMENT (30) text-006 MODIF ID mod.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK blk4.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
SELECT-OPTIONS : lv_plant FOR plaf-plwrk MODIF ID rad,
lv_matnr FOR plaf-matnr MODIF ID rad,
lv_fini FOR plaf-pedtr MODIF ID rad.
SELECTION-SCREEN END OF BLOCK blk2.
SELECTION-SCREEN END OF BLOCK blk1.
AT SELECTION-SCREEN OUTPUT.
PERFORM input_screen. " Validation
AT SELECTION-SCREEN ON p_param.
IF cre = 'X' AND sy-ucomm = 'ONLI'.
IF p_param IS INITIAL.
MESSAGE e001(zmrp).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON lv_plant.
IF dele = 'X' AND sy-ucomm = 'ONLI'.
IF lv_plant IS INITIAL.
MESSAGE e002(zmrp).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON lv_matnr.
IF dele = 'X' AND sy-ucomm = 'ONLI'.
IF lv_matnr IS INITIAL.
MESSAGE e003(zmrp).
ENDIF.
ENDIF.
*--->>> For F4 help
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_param.
PERFORM f4_for_file_path.
*--->>>
FORM f4_for_file_path .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_param.
ENDFORM.
*--->>>
FORM input_screen .
IF cre = 'X'.
LOOP AT SCREEN.
IF screen-name = 'LV_PLNRD'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'MOD'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'RAD'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF dele = 'X'.
LOOP AT SCREEN.
IF screen-group1 = 'MOD'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'RAD'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM.
Find the screen output based on the radio button selected.
screen 1.

screen2.

Code for the same.
***********SELECTION-SCREENS**********************
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001 .
PARAMETERS :dele RADIOBUTTON GROUP mod1 USER-COMMAND com DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: cre RADIOBUTTON GROUP mod1 .
SELECTION-SCREEN COMMENT (15) text-007.
SELECTION-SCREEN COMMENT 40(20) text-008.
PARAMETERS: lv_scen TYPE plscn.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
PARAMETER : p_param LIKE rlgrap-filename MODIF ID mod.
SELECTION-SCREEN END OF BLOCK blk3.
SELECTION-SCREEN BEGIN OF BLOCK blk4 WITH FRAME TITLE text-004.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (15) text-005 MODIF ID mod.
PARAMETERS: lv_plnrd TYPE pasch DEFAULT 'LA' MODIF ID mod.
SELECTION-SCREEN POSITION 40.
PARAMETERS: lv_month TYPE c AS CHECKBOX MODIF ID mod .
SELECTION-SCREEN COMMENT (30) text-006 MODIF ID mod.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK blk4.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
SELECT-OPTIONS : lv_plant FOR plaf-plwrk MODIF ID rad,
lv_matnr FOR plaf-matnr MODIF ID rad,
lv_fini FOR plaf-pedtr MODIF ID rad.
SELECTION-SCREEN END OF BLOCK blk2.
SELECTION-SCREEN END OF BLOCK blk1.
AT SELECTION-SCREEN OUTPUT.
PERFORM input_screen. " Validation
AT SELECTION-SCREEN ON p_param.
IF cre = 'X' AND sy-ucomm = 'ONLI'.
IF p_param IS INITIAL.
MESSAGE e001(zmrp).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON lv_plant.
IF dele = 'X' AND sy-ucomm = 'ONLI'.
IF lv_plant IS INITIAL.
MESSAGE e002(zmrp).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON lv_matnr.
IF dele = 'X' AND sy-ucomm = 'ONLI'.
IF lv_matnr IS INITIAL.
MESSAGE e003(zmrp).
ENDIF.
ENDIF.
*--->>> For F4 help
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_param.
PERFORM f4_for_file_path.
*--->>>
FORM f4_for_file_path .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_param.
ENDFORM.
*--->>>
FORM input_screen .
IF cre = 'X'.
LOOP AT SCREEN.
IF screen-name = 'LV_PLNRD'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'MOD'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'RAD'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF dele = 'X'.
LOOP AT SCREEN.
IF screen-group1 = 'MOD'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'RAD'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM.
SAP MRP User Exit
MRP Run Exit Name - M61X0001 --> EXIT_SAPMM61X_001
This exit will trigger only when MRP Exit is specified in the input screen.
eg. code.
IF sy-subrc EQ 0.
CASE user_key.
WHEN ' '.
stop_planning = 'X'. "Execute Stop Planning
WHEN 'R100'. " Exit Name
IF mt61d-dispo NE 'R100'. " MRP Controller
no_planning = 'X'.
ENDIF.
WHEN 'R101'. " Exit Name
IF mt61d-dispo NE 'R101'. " MRP Controller
no_planning = 'X'.
ENDIF.
WHEN 'P10'. " Exit Name
IF mt61d-dispo NE 'FOR' AND " all are MRP controllers
mt61d-dispo NE 'HMT' AND
mt61d-dispo NE 'SNF' AND
mt61d-dispo NE 'RSN' AND
mt61d-dispo NE 'PRA' AND
mt61d-dispo NE 'PTA'.
no_planning = 'X'.
ENDIF.
ENDCASE.
This exit will trigger only when MRP Exit is specified in the input screen.
eg. code.
IF sy-subrc EQ 0.
CASE user_key.
WHEN ' '.
stop_planning = 'X'. "Execute Stop Planning
WHEN 'R100'. " Exit Name
IF mt61d-dispo NE 'R100'. " MRP Controller
no_planning = 'X'.
ENDIF.
WHEN 'R101'. " Exit Name
IF mt61d-dispo NE 'R101'. " MRP Controller
no_planning = 'X'.
ENDIF.
WHEN 'P10'. " Exit Name
IF mt61d-dispo NE 'FOR' AND " all are MRP controllers
mt61d-dispo NE 'HMT' AND
mt61d-dispo NE 'SNF' AND
mt61d-dispo NE 'RSN' AND
mt61d-dispo NE 'PRA' AND
mt61d-dispo NE 'PTA'.
no_planning = 'X'.
ENDIF.
ENDCASE.
Subscribe to:
Posts (Atom)