Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Enable and Disable.

Former Member
0 Likes
1,446

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,416

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

13 REPLIES 13
Read only

Former Member
0 Likes
1,416

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.

Read only

Former Member
0 Likes
1,417

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

Read only

Former Member
0 Likes
1,416

Hi Prasad,

Please refer to the below link.

It uses MODIF ids to get this functionality.

[Enabling and disabling a Block|;

Please reward points if helpful

Manish

Read only

Former Member
0 Likes
1,416

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.

Read only

Sm1tje
Active Contributor
0 Likes
1,416

I would go for the AT SELECTION SCREEN ON RADIOBUTTON GROUP approach. Rest is more a less the same with LOOP AT SCREEN.

Read only

vinod_vemuru2
Active Contributor
0 Likes
1,416

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.

Read only

0 Likes
1,416

Really thank you , it solved my problem.

Read only

0 Likes
1,416

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.

Read only

0 Likes
1,416

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.

Read only

0 Likes
1,416

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.

Read only

0 Likes
1,416

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.

Read only

0 Likes
1,416

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.

Read only

0 Likes
1,416

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.