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

Problems with parameter

Former Member
0 Likes
660

Hello guys , I have a parameters no modifiable ,but I want to change it to modifiable, I change the name of the parameter already and it works , but i want to know why my parameter p_file have the propierty of no modifiable. ?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
566

Hi,

1. Minor mistake

2. Just remove this code.

IF screen-name EQ 'P_FILE'.

screen-input = '0'.

ENDIF.

regards,

amit m.

4 REPLIES 4
Read only

jaideepsharma
Active Contributor
0 Likes
566

please paste the code to investigate the problem..

Read only

0 Likes
566

EPORT zpb_eng_cont_fich_bk .

************************************************************************

    • Titulo ....: ZPB_ENG_CONT_EXTRAI_FICH_BK

**

    • Descrição .: Copia todos os dados contidos na tabela de energia de

    • contador (ZPB_EN_CONT_CSMO) e gera um ficheiro de

    • backup

**

    • Autor .....: Helena Silva

    • Data ....: 06-03-2008

    • Módulo.....: BILLING

**

    • Modificação:

    • Data ......:

**

************************************************************************

  • Declaração de Variáveis

DATA: nome_fich LIKE tpfht-pffile VALUE 'ZPB_EN_CONT_CSMO_'.

DATA: file_unix LIKE tpfht-pffile.

DATA: file_local LIKE rlgrap-filename.

DATA: directoria LIKE tpfht-pffile.

DATA: ficheiro_existe TYPE c.

DATA: data LIKE sy-datum.

DATA: continuar(3) TYPE c VALUE 'SIM'.

DATA: it_zpb_en_cont_csmo LIKE STANDARD TABLE OF zpb_en_cont_csmo

WITH HEADER LINE.

  • Para validar se o ficheiro local já existe

DATA: it_data_aux TYPE STANDARD TABLE OF zpb_en_cont_csmo

INITIAL SIZE 0.

DATA: p_commit(5) TYPE n VALUE '1000'.

    • Ecrã de Selecção

SELECTION-SCREEN BEGIN OF BLOCK bloco1

WITH FRAME

TITLE text-001.

SELECTION-SCREEN SKIP 1.

PARAMETERS: p_unix RADIOBUTTON GROUP grp1 DEFAULT 'X'

USER-COMMAND ucomm,

p_local RADIOBUTTON GROUP grp1.

SELECTION-SCREEN SKIP 1.

PARAMETERS: p_path_u LIKE rlgrap-filename MODIF ID fil OBLIGATORY

DEFAULT '/home/sgcd/batch/'.

PARAMETERS: p_path_l LIKE rlgrap-filename MODIF ID fil OBLIGATORY

DEFAULT 'C:'.

PARAMETERS: p_file2 LIKE rlgrap-filename MODIF ID fil OBLIGATORY.

SELECTION-SCREEN END OF BLOCK bloco1.

*******************

INITIALIZATION.

  • Mês de Processamento é o mês anterior ao actual

CALL FUNCTION 'HR_PT_ADD_MONTH_TO_DATE'

EXPORTING

dmm_datin = sy-datum

dmm_count = '1'

dmm_oper = '-'

dmm_pos = 'END'

IMPORTING

dmm_daout = data

EXCEPTIONS

unknown = 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.

  • Nome do Ficheiro tem o mês de processamento

  • CONCATENATE nome_fich data+4(2) data(4) '.txt'

CONCATENATE nome_fich data+4(2) data(4)

INTO p_file2.

  • CONCATENATE file_local nome_fich INTO file_local.

  • CONCATENATE file_unix nome_fich INTO file_unix.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path_l.

DATA: fich LIKE rlgrap-filename.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

  • PROGRAM_NAME = SYST-REPID

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = fich

static = ' '

  • mask = '*.txt'

CHANGING

file_name = fich

EXCEPTIONS

mask_too_long = 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.

  • Separar o ficheiro da directoria

CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'

EXPORTING

full_name = fich

IMPORTING

  • STRIPPED_NAME =

file_path = p_path_l

EXCEPTIONS

x_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.

file_local = fich.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path_u.

DATA: lv_dline TYPE dline,

lv_file_path TYPE text300,

lv_file_name TYPE text300,

lv_server_path TYPE text300,

prog LIKE sy-repid.

prog = sy-repid.

CALL FUNCTION 'GET_DYNP_VALUE'

EXPORTING

i_field = 'P_PATH_U'

i_repid = prog

i_dynnr = sy-dynnr

CHANGING

o_value = lv_server_path.

TRANSLATE lv_server_path TO LOWER CASE.

IF lv_server_path IS INITIAL.

lv_server_path = '/home/sgcd/batch/'.

ENDIF.

CLEAR: lv_file_name,

lv_file_path.

CALL FUNCTION 'ZF4_SERVER_FILE_PATH_NAME'

EXPORTING

x_server_path = lv_server_path

IMPORTING

y_file_name = lv_file_name

y_file_path = lv_file_path

EXCEPTIONS

no_file_on_server = 1

OTHERS = 2.

IF sy-subrc NE 0.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSE.

p_path_u = lv_file_path.

ENDIF.

lv_dline = lv_file_name.

CALL FUNCTION 'SET_DYNP_VALUE'

EXPORTING

i_field = 'P_FILE'

i_repid = prog

i_dynnr = sy-dynnr

i_value = lv_dline.

  • CONCATENATE p_path_u lv_file_name INTO file_unix.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF screen-name EQ 'P_FILE'.

screen-input = '0'.

ENDIF.

IF screen-name CS 'P_PATH_U'.

IF p_unix = 'X'.

screen-active = '1'.

screen-invisible = '0'.

ELSE.

screen-invisible = '1'.

screen-active = '0'.

ENDIF.

ELSEIF screen-name CS 'P_PATH_L'.

IF p_unix = 'X'.

screen-invisible = '1'.

screen-active = '0'.

ELSE.

screen-active = '1'.

screen-invisible = '0'.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

START-OF-SELECTION.

PERFORM valida_ficheiro.

IF continuar = 'SIM'.

PERFORM carregar_ficheiro.

ENDIF.

*&----


*

*& Form valida_ficheiro

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM valida_ficheiro.

IF p_unix = 'X'.

CONCATENATE p_path_u p_file2 INTO file_unix.

  • Verificar se o ficheiro unix já existe, se existir cancela o

  • processamento

CALL FUNCTION 'PFL_CHECK_OS_FILE_EXISTENCE'

EXPORTING

fully_qualified_filename = file_unix

IMPORTING

file_exists = ficheiro_existe.

IF ficheiro_existe = 'X'.

MESSAGE i344(zpb) WITH p_file2 p_path_u.

continuar = 'NAO'.

ENDIF.

ELSE.

  • Verificar se o ficheiro local já existe, se existir cancela o

  • processamento

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

  • CODEPAGE = ' '

filename = file_local

  • FILETYPE = 'ASC'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = it_data_aux

EXCEPTIONS

conversion_error = 1

file_open_error = 2

file_read_error = 3

invalid_type = 4

no_batch = 5

unknown_error = 6

invalid_table_width = 7

gui_refuse_filetransfer = 8

customer_error = 9

OTHERS = 10.

IF sy-subrc = 0.

MESSAGE i344(zpb) WITH p_file2 p_path_l.

continuar = 'NAO'.

ENDIF.

ENDIF.

ENDFORM. " valida_ficheiro

*&----


*

*& Form ler_tabela

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM carregar_ficheiro.

  • Carregar o ficheiro local ou unix com os dados que estão na tabela

SELECT * INTO TABLE it_zpb_en_cont_csmo

FROM zpb_en_cont_csmo.

IF p_unix = 'X'.

OPEN DATASET file_unix FOR OUTPUT IN TEXT MODE.

IF sy-subrc <> 0.

MESSAGE i356(zpb).

EXIT.

ENDIF.

  • TRANSFERE o CONTEÚDO da tabela Interna

IF NOT it_zpb_en_cont_csmo[] IS INITIAL.

LOOP AT it_zpb_en_cont_csmo.

TRANSFER it_zpb_en_cont_csmo TO file_unix.

ENDLOOP.

ENDIF.

CLOSE DATASET file_unix.

IF sy-subrc = 0.

MESSAGE i345(zpb).

ENDIF.

ELSE.

CONCATENATE p_path_l p_file2 INTO file_local.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE = ' '

  • CODEPAGE = ' '

filename = file_local

filetype = 'DAT'

  • mode = ' '

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • COL_SELECT = ' '

  • COL_SELECTMASK = ' '

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = it_zpb_en_cont_csmo

  • FIELDNAMES =

EXCEPTIONS

file_open_error = 1

file_write_error = 2

invalid_filesize = 3

invalid_type = 4

no_batch = 5

unknown_error = 6

invalid_table_width = 7

gui_refuse_filetransfer = 8

customer_error = 9

OTHERS = 10

.

IF sy-subrc = 0.

MESSAGE i345(zpb).

ELSE.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDIF.

Read only

Former Member
0 Likes
567

Hi,

1. Minor mistake

2. Just remove this code.

IF screen-name EQ 'P_FILE'.

screen-input = '0'.

ENDIF.

regards,

amit m.

Read only

0 Likes
566

Yes, Amit has suggested the correct way. By making screen-input = '0' you are making it as input disabled.