‎2008 Apr 07 12:59 PM
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. ?
‎2008 Apr 07 2:18 PM
Hi,
1. Minor mistake
2. Just remove this code.
IF screen-name EQ 'P_FILE'.
screen-input = '0'.
ENDIF.
regards,
amit m.
‎2008 Apr 07 1:57 PM
‎2008 Apr 07 2:14 PM
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.
‎2008 Apr 07 2:18 PM
Hi,
1. Minor mistake
2. Just remove this code.
IF screen-name EQ 'P_FILE'.
screen-input = '0'.
ENDIF.
regards,
amit m.
‎2008 Apr 07 9:27 PM
Yes, Amit has suggested the correct way. By making screen-input = '0' you are making it as input disabled.