‎2008 May 14 6:12 AM
Hi Experts,
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: logfile like filename-fileintern default 'Z_DATALOAD',
FILE(128) TYPE C DEFAULT 'nittest.txt' LOWER CASE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_LFILE RADIOBUTTON GROUP G1 USER-COMMAND C1 DEFAULT 'X',
P_PFILE RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B2.
My requirement is ,
if I select the 1st radio button means P_LFILE, then it should have to Enable logfile and Disable FILE.
Similarly if I selected the 2nd radio button means P_PFILE, then it should have to Enable FILE and Disable the Logfile.
It is very urgent requirement.
With Regards,
Prasad.Tallapudi
‎2008 May 14 6:21 AM
Please go through the code.
Hi Experts,
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: logfile like filename-fileintern default 'Z_DATALOAD',
FILE(128) TYPE C DEFAULT 'nittest.txt' LOWER CASE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_LFILE RADIOBUTTON GROUP G1 USER-COMMAND C1 DEFAULT 'X',
P_PFILE RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-NAME CS 'logfile'.
IF P_LFILE = 'X'.
SCREEN-INPUT = '1'.
ELSE.
SCREEN-INPUT = '0'.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
if its not working please make few modifications to the code it will work try it.
Regards,
madan.
Edited by: Madan kurapati on May 14, 2008 10:52 AM
‎2008 May 14 6:20 AM
at selection-screen output.
if p_lfile eq 'X'.
loop at screen.
if screen-name = 'LOGFILE'.
screen-input = '1'.
endif.
if screen-name = 'FILE'.
screen-input = '0'.
endif.
modify screen.
endloop.
endif.
if p_pfile eq 'X'.
loop at screen.
if screen-name = 'LOGFILE'.
screen-input = '0'.
endif.
if screen-name = 'FILE'.
screen-input = '1'.
endif.
modify screen.
endloop.
endif.
‎2008 May 14 6:21 AM
Please go through the code.
Hi Experts,
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: logfile like filename-fileintern default 'Z_DATALOAD',
FILE(128) TYPE C DEFAULT 'nittest.txt' LOWER CASE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_LFILE RADIOBUTTON GROUP G1 USER-COMMAND C1 DEFAULT 'X',
P_PFILE RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-NAME CS 'logfile'.
IF P_LFILE = 'X'.
SCREEN-INPUT = '1'.
ELSE.
SCREEN-INPUT = '0'.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
if its not working please make few modifications to the code it will work try it.
Regards,
madan.
Edited by: Madan kurapati on May 14, 2008 10:52 AM
‎2008 May 14 6:21 AM
‎2008 May 14 6:25 AM
Hi,
Check the sample code.go through the Screen table you have several options find the required and code it inside the loop.
TABLES : bkpf.
PARAMETERS : rb1 RADIOBUTTON GROUP 1 USER-COMMAND uc01.
SELECT-OPTIONS : so1 FOR bkpf-belnr MODIF ID 001.
PARAMETERS : p1 TYPE bkpf-bukrs MODIF ID 001.
PARAMETERS : rb2 RADIOBUTTON GROUP 1.
SELECT-OPTIONS : so2 FOR bkpf-belnr MODIF ID 002.
PARAMETERS : p2 TYPE bkpf-bukrs MODIF ID 002.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE 'X'.
WHEN rb1.
CASE screen-group1.
WHEN '001'.
screen-input = '1'.
WHEN '002'.
screen-input = '0'.
ENDCASE.
MODIFY SCREEN.
WHEN rb2.
CASE screen-group1.
WHEN '001'.
screen-input = '0'.
WHEN '002'.
screen-input = '1'.
ENDCASE.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
Regards,
Raj.
‎2008 May 14 6:25 AM
I would go for the AT SELECTION SCREEN ON RADIOBUTTON GROUP approach. Rest is more a less the same with LOOP AT SCREEN.
‎2008 May 14 6:34 AM
Hi Prasad,
Just copy paste this code. It is working fine.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: logfile LIKE filename-fileintern DEFAULT 'Z_DATALOAD'
MODIF ID id1,
file(128) TYPE c DEFAULT 'nittest.txt' LOWER CASE MODIF ID id2.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
PARAMETERS: p_lfile RADIOBUTTON GROUP g1 USER-COMMAND c1 DEFAULT 'X',
p_pfile RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN OUTPUT.
IF p_lfile EQ 'X'.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID2'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID1'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
Thanks,
Vinod.
‎2008 May 14 7:24 AM
‎2008 May 15 6:06 AM
Hai Vinod,
Yester day u sent me that solved my problem but i have to do some modifications.
Iam sending my program, In that program we r not able to modify that parameters.
Thats shy i took the parameters again with extension of MODIFY ID ID1.
But for execution it is taking long time and Logical file path come for two times.
It is very urgent ....And we have to use ABAP EVENTS.
REPORT ZPP_PLANNED_IND_REQ_CREATE .
********************************************************************
Program to upload plan independent requirements
********************************************************************
tables: marc.
parameters: ENTLU like RM60X-entlu default '3' , "Period indicator
VERSION like BAPISITEMR-VERSION default '03', "Version
requ_typ like BAPISITEMR-requ_type default 'VSF',
logfile like filename-fileintern default 'Z_DATALOAD',
FILE(128) TYPE C DEFAULT 'nittest.txt' LOWER CASE.
data: phyfile like filename-fileintern,
inputrec(56) type c.
TRANSLATE file TO LOWER CASE.
data: COUNTER LIKE SY-TABIX, count type i .
data: begin of input occurs 100,
plant like BAPISITEMR-plant,
material like BAPISITEMR-material,
REQ_DATE like BAPISSHDIN-REQ_DATE,
qty like BAPISSHDIN-rEQ_QTY,
end of input.
data: begin of zBAPISITEMR occurs 100. " Requirements parameters
include structure BAPISITEMR.
data: end of zBAPISITEMR.
data: begin of zBAPISSHDIN occurs 100. " Requirements schedule line
include structure BAPISSHDIN.
data: end of zBAPISSHDIN.
data: begin of zBAPIRETURN1 occurs 100. " Return results
include structure BAPIRETURN1.
data: end of ZBAPIRETURN1.
data: begin of ZBAPISITMEO occurs 100. " Result of verifying data
include structure BAPISITMEO.
data: end of ZBAPISITMEO.
data: begin of zBAPIRETURN2 occurs 100. " Return results
include structure BAPIRETURN1.
data: end of ZBAPIRETURN2.
data: begin of zBAPIRETURN3 occurs 100. " Return results
include structure BAPIRETURN1.
data: end of ZBAPIRETURN3.
*{ INSERT T03K900204 1
*----Start of Modification 1
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_lfile RADIOBUTTON GROUP g1 USER-COMMAND c1 DEFAULT 'X',
lfile LIKE filename-fileintern DEFAULT 'Z_DATALOAD'
MODIF ID id1,
p_pfile RADIOBUTTON GROUP g1,
pfile(128) TYPE c DEFAULT 'nittest.txt' LOWER CASE
MODIF ID id2.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PFILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = PFILE.
AT SELECTION-SCREEN OUTPUT.
IF p_lfile EQ 'X'.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID2'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID1'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
*----End of Modification 1
*} INSERT
Main program ***********
perform readfile.
sort input by plant material.
loop at input.
at new material.
perform resetdata.
perform transferdata_material.
perform verifydata.
endat.
perform transferdata_schedule.
at end of material.
if ZBAPIRETURN2 is initial.
perform Changerequirements.
else.
perform createrequirements.
endif.
endat.
endloop.
End of Main program ****
Form resetdata.
refresh ZBAPISITEMR.
refresh ZBAPISSHDIN.
refresh ZBAPIRETURN1.
refresh ZBAPIRETURN2.
refresh ZBAPIRETURN3.
refresh ZBAPISITMEO .
endform.
form transferdata_material.
Parameters for material
move input-material to ZBAPISITEMR-material.
move input-plant to ZBAPISITEMR-plant.
move requ_typ to ZBAPISITEMR-REQU_TYPE.
move version to ZBAPISITEMR-version.
append ZBAPISITEMR.
endform.
form transferdata_schedule.
Qty and date information
move ENTLU to ZBAPISSHDIN-DATE_TYPE.
move input-req_date to ZBAPISSHDIN-req_date.
move input-qty to ZBAPISSHDIN-REQ_QTY.
move 'EA' to ZBAPISSHDIN-unit.
append ZBAPISSHDIN.
endform.
Form CreateRequirements.
CALL FUNCTION 'BAPI_REQUIREMENTS_CREATE'
EXPORTING
REQUIREMENTS_ITEM = ZBAPISITEMR
REQUIREMENT_PARAM =
IMPORTING
MATERIAL =
PLANT =
REQUIREMENTSTYPE =
VERSION =
REQMTSPLANNUMBER =
TABLES
REQUIREMENTS_SCHEDULE_IN = ZBAPISSHDIN
REQUIREMENTS_CHAR_IN =
RETURN = ZBAPIRETURN1
.
IF ZBAPIRETURN1
IS INITIAL.
write: / ' Requirements were loaded for material ' ,
ZBAPISITEMR-material.
else.
write:/ 'Mes.Type: ' , ZBAPIRETURN1-Type, ' ' , 'MessID:' ,
ZBAPIRETURN1-ID, ' ' , ZBAPIRETURN1-MEssage, ' Material ',
ZBAPISITEMR-material, ' for date ', ZBAPISSHDIN-req_date.
endif.
endform.
----
FORM verifydata *
----
........ *
----
form verifydata.
CALL FUNCTION 'BAPI_REQUIREMENTS_GETDETAIL'
EXPORTING
MATERIAL = ZBAPISITEMR-material
PLANT = ZBAPISITEMR-plant
REQUIREMENTSTYPE = ZBAPISITEMR-REQU_TYPE
VERSION = ZBAPISITEMR-VERSION
REQMTSPLANNUMBER = ZBAPISITEMR-REQ_NUMBER
TABLES
REQUIREMENTS_OUT = ZBAPISITMEO
RETURN = ZBAPIRETURN2
.
endform.
form changerequirements.
CALL FUNCTION 'BAPI_REQUIREMENTS_CHANGE'
EXPORTING
MATERIAL = ZBAPISITEMR-material
PLANT = ZBAPISITEMR-plant
REQUIREMENTSTYPE = ZBAPISITEMR-REQU_TYPE
VERSION = ZBAPISITEMR-VERSION
REQMTSPLANNUMBER = ZBAPISITEMR-REQ_NUMBER
VERS_ACTIV = ZBAPISITEMR-VERS_ACTIV
REQUIREMENT_PARAM =
IMPORTING
REQUIREMENT_ITEM_OUT =
TABLES
REQUIREMENTS_SCHEDULE_IN = ZBAPISSHDIN
REQUIREMENTS_CHAR_IN =
RETURN = ZBAPIRETURN3
.
if ZBAPIRETURN3 is initial.
write: / ' Requirements were loaded for material ' ,
ZBAPISITEMR-material.
else.
write:/ 'Mes.Type: ' , ZBAPIRETURN3-Type, ' ' , 'MessID:' ,
ZBAPIRETURN3-ID, ' ' , ZBAPIRETURN3-MEssage, ' Material ',
ZBAPISITEMR-material, ' for date ', ZBAPISSHDIN-req_date.
endif.
endform.
----
FORM readfile *
----
........ *
----
form readfile.
Logical File
call function 'FILE_GET_NAME'
EXPORTING
logical_filename = logfile
PARAMETER_1 = file
IMPORTING
file_name = phyfile
EXCEPTIONS
file_not_found = 1
others = 2.
Convert WINDOW format into UNIX format
DATA: STATUS like EXTCMDEXEX-STATUS.
DATA: EXITCODE like EXTCMDEXEX-EXITCODE.
DATA: BEGIN OF EXEC_PROTOCOL OCCURS 0.
include structure BTCXPM.
data: end of EXEC_PROTOCOL .
DATA: conversion like SXPGCOLIST-PARAMETERS.
concatenate phyfile ' /tmp/file' into conversion.
if SY-OPSYS eq 'HP-UX'.
call function 'SXPG_CALL_SYSTEM'
EXPORTING
COMMANDNAME = 'ZDOSUX'
ADDITIONAL_PARAMETERS = conversion
IMPORTING
STATUS = STATUS
TABLES
EXEC_PROTOCOL = EXEC_PROTOCOL.
*LOOP AT EXEC_PROTOCOL.
*write:/ EXEC_PROTOCOL-MESSAGE.
*endloop.
endif.
OPEN DATASET phyFILE FOR input IN TEXT MODe.
IF sy-subrc <> 0.
write:/ '+++The following input file dose not exist:',phyFILE.
write:/ '+++Note: your file MUST be in lowercase !!! +++ '.
write:/ '+++ double check
sgsap\intP01\DATALOAD directory +++ '.
EXIT.
ENDIF.
DO.
read dataset PHYfile into inputrec.
IF sy-subrc <> 0.
EXIT.
ENDIF.
move inputrec(4) to input-plant.
move inputrec+4(18) to input-material.
move inputrec+22(8) to input-req_date.
move inputrec+30(16) to input-qty.
append input.
count = count + 1 .
ENDDO.
Write: / 'Total of Records read: ', count.
CLOSE DATASET PHYFILE.
clear count.
endform.
====================
Thanks & Regards,
Prasad.
‎2008 May 15 7:45 AM
Hi Prasad,
I have modified ur code. Just copy paste this code in some temporary program and check whether every thing is fine or not i mean functionality wise.
********************************************************************
Program to upload plan independent requirements
********************************************************************
tables: marc.
parameters: ENTLU like RM60X-entlu default '3' , "Period indicator
VERSION like BAPISITEMR-VERSION default '03', "Version
requ_typ like BAPISITEMR-requ_type default 'VSF',
logfile like filename-fileintern default 'Z_DATALOAD'
MODIF ID ID1,
FILE(128) TYPE C DEFAULT 'nittest.txt' LOWER CASE MODIF ID
ID2.
data: phyfile like filename-fileintern,
inputrec(56) type c.
TRANSLATE file TO LOWER CASE.
data: COUNTER LIKE SY-TABIX, count type i .
data: begin of input occurs 100,
plant like BAPISITEMR-plant,
material like BAPISITEMR-material,
REQ_DATE like BAPISSHDIN-REQ_DATE,
qty like BAPISSHDIN-rEQ_QTY,
end of input.
data: begin of zBAPISITEMR occurs 100. " Requirements parameters
include structure BAPISITEMR.
data: end of zBAPISITEMR.
data: begin of zBAPISSHDIN occurs 100. " Requirements schedule line
include structure BAPISSHDIN.
data: end of zBAPISSHDIN.
data: begin of zBAPIRETURN1 occurs 100. " Return results
include structure BAPIRETURN1.
data: end of ZBAPIRETURN1.
data: begin of ZBAPISITMEO occurs 100. " Result of verifying data
include structure BAPISITMEO.
data: end of ZBAPISITMEO.
data: begin of zBAPIRETURN2 occurs 100. " Return results
include structure BAPIRETURN1.
data: end of ZBAPIRETURN2.
data: begin of zBAPIRETURN3 occurs 100. " Return results
include structure BAPIRETURN1.
data: end of ZBAPIRETURN3.
*{ INSERT T03K900204 1
*----Start of Modification 1
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:
p_lfile RADIOBUTTON GROUP g1 USER-COMMAND c1 DEFAULT 'X',
lfile LIKE filename-fileintern DEFAULT 'Z_DATALOAD'
MODIF ID id1,
p_file RADIOBUTTON GROUP g1.
pfile(128) TYPE c DEFAULT 'nittest.txt' LOWER CASE
MODIF ID id2.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = file.
AT SELECTION-SCREEN OUTPUT.
IF p_lfile EQ 'X'.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID2'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID1'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
*
**----End of Modification 1
*
**} INSERT
*
*
*
Main program ***********
START-OF-SELECTION.
perform readfile.
sort input by plant material.
END-OF-SELECTION.
loop at input.
at new material.
perform resetdata.
perform transferdata_material.
perform verifydata.
endat.
perform transferdata_schedule.
at end of material.
if ZBAPIRETURN2 is initial.
perform Changerequirements.
else.
perform createrequirements.
endif.
endat.
endloop.
End of Main program ****
Form resetdata.
refresh ZBAPISITEMR.
refresh ZBAPISSHDIN.
refresh ZBAPIRETURN1.
refresh ZBAPIRETURN2.
refresh ZBAPIRETURN3.
refresh ZBAPISITMEO .
endform.
form transferdata_material.
Parameters for material
move input-material to ZBAPISITEMR-material.
move input-plant to ZBAPISITEMR-plant.
move requ_typ to ZBAPISITEMR-REQU_TYPE.
move version to ZBAPISITEMR-version.
append ZBAPISITEMR.
endform.
form transferdata_schedule.
Qty and date information
move ENTLU to ZBAPISSHDIN-DATE_TYPE.
move input-req_date to ZBAPISSHDIN-req_date.
move input-qty to ZBAPISSHDIN-REQ_QTY.
move 'EA' to ZBAPISSHDIN-unit.
append ZBAPISSHDIN.
endform.
Form CreateRequirements.
CALL FUNCTION 'BAPI_REQUIREMENTS_CREATE'
EXPORTING
REQUIREMENTS_ITEM = ZBAPISITEMR
REQUIREMENT_PARAM =
IMPORTING
MATERIAL =
PLANT =
REQUIREMENTSTYPE =
VERSION =
REQMTSPLANNUMBER =
TABLES
REQUIREMENTS_SCHEDULE_IN = ZBAPISSHDIN
REQUIREMENTS_CHAR_IN =
RETURN = ZBAPIRETURN1
.
IF ZBAPIRETURN1
IS INITIAL.
write: / ' Requirements were loaded for material ' ,
ZBAPISITEMR-material.
else.
write:/ 'Mes.Type: ' , ZBAPIRETURN1-Type, ' ' , 'MessID:' ,
ZBAPIRETURN1-ID, ' ' , ZBAPIRETURN1-MEssage, ' Material '
,
ZBAPISITEMR-material, ' for date ', ZBAPISSHDIN-req_date.
endif.
endform.
----
FORM verifydata *
----
........ *
----
form verifydata.
CALL FUNCTION 'BAPI_REQUIREMENTS_GETDETAIL'
EXPORTING
MATERIAL = ZBAPISITEMR-material
PLANT = ZBAPISITEMR-plant
REQUIREMENTSTYPE = ZBAPISITEMR-REQU_TYPE
VERSION = ZBAPISITEMR-VERSION
REQMTSPLANNUMBER = ZBAPISITEMR-REQ_NUMBER
TABLES
REQUIREMENTS_OUT = ZBAPISITMEO
RETURN = ZBAPIRETURN2
.
endform.
form changerequirements.
CALL FUNCTION 'BAPI_REQUIREMENTS_CHANGE'
EXPORTING
MATERIAL = ZBAPISITEMR-material
PLANT = ZBAPISITEMR-plant
REQUIREMENTSTYPE = ZBAPISITEMR-REQU_TYPE
VERSION = ZBAPISITEMR-VERSION
REQMTSPLANNUMBER = ZBAPISITEMR-REQ_NUMBER
VERS_ACTIV = ZBAPISITEMR-VERS_ACTIV
REQUIREMENT_PARAM =
IMPORTING
REQUIREMENT_ITEM_OUT =
TABLES
REQUIREMENTS_SCHEDULE_IN = ZBAPISSHDIN
REQUIREMENTS_CHAR_IN =
RETURN = ZBAPIRETURN3
.
if ZBAPIRETURN3 is initial.
write: / ' Requirements were loaded for material ' ,
ZBAPISITEMR-material.
else.
write:/ 'Mes.Type: ' , ZBAPIRETURN3-Type, ' ' , 'MessID:' ,
ZBAPIRETURN3-ID, ' ' , ZBAPIRETURN3-MEssage, ' Material '
,
ZBAPISITEMR-material, ' for date ', ZBAPISSHDIN-req_date.
endif.
endform.
----
FORM readfile *
----
........ *
----
form readfile.
Logical File
call function 'FILE_GET_NAME'
EXPORTING
logical_filename = logfile
PARAMETER_1 = file
IMPORTING
file_name = phyfile
EXCEPTIONS
file_not_found = 1
others = 2.
Convert WINDOW format into UNIX format
DATA: STATUS like EXTCMDEXEX-STATUS.
DATA: EXITCODE like EXTCMDEXEX-EXITCODE.
DATA: BEGIN OF EXEC_PROTOCOL OCCURS 0.
include structure BTCXPM.
data: end of EXEC_PROTOCOL .
DATA: conversion like SXPGCOLIST-PARAMETERS.
concatenate phyfile ' /tmp/file' into conversion.
if SY-OPSYS eq 'HP-UX'.
call function 'SXPG_CALL_SYSTEM'
EXPORTING
COMMANDNAME = 'ZDOSUX'
ADDITIONAL_PARAMETERS = conversion
IMPORTING
STATUS = STATUS
TABLES
EXEC_PROTOCOL = EXEC_PROTOCOL.
*LOOP AT EXEC_PROTOCOL.
*write:/ EXEC_PROTOCOL-MESSAGE.
*endloop.
endif.
OPEN DATASET phyFILE FOR input IN TEXT MODe.
IF sy-subrc <> 0.
write:/ '+++The following input file dose not exist:',phyFILE.
write:/ '+++Note: your file MUST be in lowercase !!! +++ '.
write:/ '+++ double check
sgsap\intP01\DATALOAD directory +++ '.
EXIT.
ENDIF.
DO.
read dataset PHYfile into inputrec.
IF sy-subrc <> 0.
EXIT.
ENDIF.
move inputrec(4) to input-plant.
move inputrec+4(18) to input-material.
move inputrec+22(8) to input-req_date.
move inputrec+30(16) to input-qty.
append input.
count = count + 1 .
ENDDO.
Write: / 'Total of Records read: ', count.
CLOSE DATASET PHYFILE.
clear count.
endform.
Thanks,
Vinod.
‎2008 May 15 9:51 AM
parameters: ENTLU like RM60X-entlu default '3' , "Period indicator
VERSION like BAPISITEMR-VERSION default '03', "Version
requ_typ like BAPISITEMR-requ_type default 'VSF',
logfile like filename-fileintern default 'Z_DATALOAD' MODIF ID ID1,
FILE(128) TYPE C DEFAULT 'nittest.txt' LOWER CASE MODIF ID ID2.
You are 100% correct Vinod but what iam saying is Here this is not my Program, Now iam in supporting project and this program is given by my PM.
It (program) is not allowing me to add that extension what u added that to parameters MODIF ID ID1 and MODIF ID ID2. At that time only i took that parameters again.
Thats why it taking two times that logical file paths.
Any why your solution is correct.
Then what can i do for that to not coming the logical file paths for two times.
If u have any solution please revert me.
Thanks & Regards,
Prasad.Tallapudi.
‎2008 May 15 10:04 AM
Hi Prasad,
What is the exact error u r getting? Is it syntax error. Send the error details. I think some thing related to syntax only which can be corrected.
2 workarounds would be.
1.Comment old parameters and in ur new parameters give the same names as old ones and try adding MODIF ID. Ideally this should work.
Keep ur new parameters as it is. Add addition No display to old parameters. Once u get the file names pass these file names to old parameters so that no need to change ur code.
Thanks,
Vinod.
‎2008 May 15 10:38 AM
Hi Viond,
There r no systax errors at all.
What is the problem is this is not my program, my PM has not gave me any authorisations to modify the program. Just i have to add the coding to get the radio buttons and selection of file paths based on the radio buttons selection.
Total program is in disable mode only. We have to add the required functionality where we want that's it.
Any way one again thanks for your QUICK Response.
Thanks & Regards,
Prasad.Tallapudi.
‎2008 May 16 6:32 AM
Hi Find below the modified code.
TABLES: marc.
PARAMETERS: entlu LIKE rm60x-entlu DEFAULT '3' , "Period indicator
version LIKE bapisitemr-version DEFAULT '03', "Version
requ_typ LIKE bapisitemr-requ_type DEFAULT 'VSF',
*Begin of modification TR ID
* logfile like filename-fileintern default 'Z_DATALOAD',
* FILE(128) TYPE C DEFAULT 'nittest.txt' LOWER CASE,
po_pc RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND ucomm,
logfile LIKE filename-fileintern DEFAULT 'Z_DATALOAD'
MODIF ID id1,
po_app RADIOBUTTON GROUP g1,
file(128) TYPE c DEFAULT 'nittest.txt' LOWER CASE
MODIF ID id2.
*End of modification TR ID
DATA: phyfile LIKE filename-fileintern,
inputrec(56) TYPE c.
TRANSLATE file TO LOWER CASE.
DATA: counter LIKE sy-tabix, count TYPE i .
DATA: BEGIN OF input OCCURS 100,
plant LIKE bapisitemr-plant,
material LIKE bapisitemr-material,
req_date LIKE bapisshdin-req_date,
qty LIKE bapisshdin-req_qty,
END OF input.
DATA: BEGIN OF zbapisitemr OCCURS 100. " Requirements parameters
INCLUDE STRUCTURE bapisitemr.
DATA: END OF zbapisitemr.
DATA: BEGIN OF zbapisshdin OCCURS 100. " Requirements schedule line
INCLUDE STRUCTURE bapisshdin.
DATA: END OF zbapisshdin.
DATA: BEGIN OF zbapireturn1 OCCURS 100. " Return results
INCLUDE STRUCTURE bapireturn1.
DATA: END OF zbapireturn1.
DATA: BEGIN OF zbapisitmeo OCCURS 100. " Result of verifying data
INCLUDE STRUCTURE bapisitmeo.
DATA: END OF zbapisitmeo.
DATA: BEGIN OF zbapireturn2 OCCURS 100. " Return results
INCLUDE STRUCTURE bapireturn1.
DATA: END OF zbapireturn2.
DATA: BEGIN OF zbapireturn3 OCCURS 100. " Return results
INCLUDE STRUCTURE bapireturn1.
DATA: END OF zbapireturn3.
*Begin of Insertion TR ID
AT SELECTION-SCREEN OUTPUT.
IF po_pc EQ 'X'.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID2'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'ID1'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
*End of Insertion TR ID
*****Main Program***********
START-OF-SELECTION.
perform readfile.
sort input by plant material.
END-OF-SELECTION.
loop at input.
at new material.
perform resetdata.
perform transferdata_material.
perform verifydata.
endat.
perform transferdata_schedule.
at end of material.
if ZBAPIRETURN2 is initial.
perform Changerequirements.
else.
perform createrequirements.
endif.
endat.
endloop.
**** End of Main program ****
Form resetdata.
refresh ZBAPISITEMR.
refresh ZBAPISSHDIN.
refresh ZBAPIRETURN1.
refresh ZBAPIRETURN2.
refresh ZBAPIRETURN3.
refresh ZBAPISITMEO .
endform.
form transferdata_material.
* Parameters for material
move input-material to ZBAPISITEMR-material.
move input-plant to ZBAPISITEMR-plant.
move requ_typ to ZBAPISITEMR-REQU_TYPE.
move version to ZBAPISITEMR-version.
append ZBAPISITEMR.
endform.
form transferdata_schedule.
* Qty and date information
move ENTLU to ZBAPISSHDIN-DATE_TYPE.
move input-req_date to ZBAPISSHDIN-req_date.
move input-qty to ZBAPISSHDIN-REQ_QTY.
move 'EA' to ZBAPISSHDIN-unit.
append ZBAPISSHDIN.
endform.
Form CreateRequirements.
CALL FUNCTION 'BAPI_REQUIREMENTS_CREATE'
EXPORTING
REQUIREMENTS_ITEM = ZBAPISITEMR
* REQUIREMENT_PARAM =
* IMPORTING
* MATERIAL =
* PLANT =
* REQUIREMENTSTYPE =
* VERSION =
* REQMTSPLANNUMBER =
TABLES
REQUIREMENTS_SCHEDULE_IN = ZBAPISSHDIN
* REQUIREMENTS_CHAR_IN =
RETURN = ZBAPIRETURN1
.
IF ZBAPIRETURN1
IS INITIAL.
write: / ' Requirements were loaded for material ' ,
ZBAPISITEMR-material.
else.
write:/ 'Mes.Type: ' , ZBAPIRETURN1-Type, ' ' , 'MessID:' ,
ZBAPIRETURN1-ID, ' ' , ZBAPIRETURN1-MEssage, ' Material '
,
ZBAPISITEMR-material, ' for date ', ZBAPISSHDIN-req_date.
endif.
endform.
*---------------------------------------------------------------------*
* FORM verifydata *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form verifydata.
CALL FUNCTION 'BAPI_REQUIREMENTS_GETDETAIL'
EXPORTING
MATERIAL = ZBAPISITEMR-material
PLANT = ZBAPISITEMR-plant
REQUIREMENTSTYPE = ZBAPISITEMR-REQU_TYPE
VERSION = ZBAPISITEMR-VERSION
REQMTSPLANNUMBER = ZBAPISITEMR-REQ_NUMBER
TABLES
REQUIREMENTS_OUT = ZBAPISITMEO
RETURN = ZBAPIRETURN2
.
endform.
form changerequirements.
CALL FUNCTION 'BAPI_REQUIREMENTS_CHANGE'
EXPORTING
MATERIAL = ZBAPISITEMR-material
PLANT = ZBAPISITEMR-plant
REQUIREMENTSTYPE = ZBAPISITEMR-REQU_TYPE
VERSION = ZBAPISITEMR-VERSION
REQMTSPLANNUMBER = ZBAPISITEMR-REQ_NUMBER
VERS_ACTIV = ZBAPISITEMR-VERS_ACTIV
* REQUIREMENT_PARAM =
* IMPORTING
* REQUIREMENT_ITEM_OUT =
TABLES
REQUIREMENTS_SCHEDULE_IN = ZBAPISSHDIN
* REQUIREMENTS_CHAR_IN =
RETURN = ZBAPIRETURN3
.
if ZBAPIRETURN3 is initial.
write: / ' Requirements were loaded for material ' ,
ZBAPISITEMR-material.
else.
write:/ 'Mes.Type: ' , ZBAPIRETURN3-Type, ' ' , 'MessID:' ,
ZBAPIRETURN3-ID, ' ' , ZBAPIRETURN3-MEssage, ' Material '
,
ZBAPISITEMR-material, ' for date ', ZBAPISSHDIN-req_date.
endif.
endform.
*---------------------------------------------------------------------*
* FORM readfile *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form readfile.
* Logical File
call function 'FILE_GET_NAME'
EXPORTING
logical_filename = logfile
PARAMETER_1 = file
IMPORTING
file_name = phyfile
EXCEPTIONS
file_not_found = 1
others = 2.
* Convert WINDOW format into UNIX format
DATA: STATUS like EXTCMDEXEX-STATUS.
DATA: EXITCODE like EXTCMDEXEX-EXITCODE.
DATA: BEGIN OF EXEC_PROTOCOL OCCURS 0.
include structure BTCXPM.
data: end of EXEC_PROTOCOL .
DATA: conversion like SXPGCOLIST-PARAMETERS.
concatenate phyfile ' /tmp/file' into conversion.
if SY-OPSYS eq 'HP-UX'.
call function 'SXPG_CALL_SYSTEM'
EXPORTING
COMMANDNAME = 'ZDOSUX'
ADDITIONAL_PARAMETERS = conversion
IMPORTING
STATUS = STATUS
TABLES
EXEC_PROTOCOL = EXEC_PROTOCOL.
*LOOP AT EXEC_PROTOCOL.
*write:/ EXEC_PROTOCOL-MESSAGE.
*endloop.
endif.
OPEN DATASET phyFILE FOR input IN TEXT MODe.
IF sy-subrc <> 0.
write:/ '+++The following input file dose not exist:',phyFILE.
write:/ '+++Note: your file MUST be in lowercase !!! +++ '.
write:/ '+++ double check \\sgsap\intP01\DATALOAD directory +++ '.
EXIT.
ENDIF.
DO.
read dataset PHYfile into inputrec.
IF sy-subrc <> 0.
EXIT.
ENDIF.
move inputrec(4) to input-plant.
move inputrec+4(18) to input-material.
move inputrec+22(8) to input-req_date.
move inputrec+30(16) to input-qty.
append input.
count = count + 1 .
ENDDO.
Write: / 'Total of Records read: ', count.
CLOSE DATASET PHYFILE.
clear count.
endform.
Thanks,
Vinod.