Yorgpfcg
Yorgpfcg
Yorgpfcg
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_BDC_DATA text
*
-->P_0227 text
*
-->P_0228 text
*----------------------------------------------------------------------*
FORM dynpro TABLES p_bdc_data STRUCTURE bdc_data
"Insert correct name for <...>
USING
value(p_0227)
value(p_0228).
CLEAR p_bdc_data.
p_bdc_data-program = p_0227.
p_bdc_data-dynpro = p_0228.
p_bdc_data-dynbegin = 'X'.
APPEND p_bdc_data.
ENDFORM.
" DYNPRO
*&---------------------------------------------------------------------*
*&
Form bdc_field
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_BDC_DATA text
*
-->P_0884 text
*
-->P_0885 text
*----------------------------------------------------------------------*
FORM bdc_field TABLES p_bdc_data STRUCTURE bdc_data
"Insert correct name for <...>
USING
value(p_0234)
value(p_0235).
IF p_0235 <> nodata.
CLEAR p_bdc_data.
p_bdc_data-fnam = p_0234.
p_bdc_data-fval = p_0235.
APPEND p_bdc_data.
ENDIF.
ENDFORM.
" bdc_field
*&---------------------------------------------------------------------*
*&
Form INSERT_BDC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_BDC_DATA text
*
-->P_0497 text
*----------------------------------------------------------------------*
FORM insert_bdc TABLES p_bdc_data STRUCTURE bdc_data
"Insert correct name for <...>
USING
value(p_0610).
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode
= p_0610
TABLES
dynprotab
= p_bdc_data
EXCEPTIONS
internal_error = 1
not_open
= 2
queue_error
= 3
tcode_invalid
= 4
printing_invalid = 5
posting_invalid = 6
OTHERS
= 7.
IF sy-subrc <> 0.
WRITE:/ 'Error in inserting bdc data'.
ENDIF.
ENDFORM.
" INSERT_BDC
*&---------------------------------------------------------------------*
*&
Form close_bdc
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM close_bdc.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open
= 1
queue_error = 2
OTHERS
= 3.
IF sy-subrc <> 0.
WRITE:/ 'Error in closing the BDC group'.
ENDIF.
ENDFORM.
" close_bdc
*&---------------------------------------------------------------------*
*&
Form upload_file
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM upload_file.
DATA: filename1 TYPE string.
filename1 = filename.
* IF p_back IS INITIAL.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename
filetype
TABLES
data_tab
EXCEPTIONS
file_open_error
file_read_error
no_batch
gui_refuse_filetransfer
invalid_type
no_authority
unknown_error
bad_data_format
header_not_allowed
separator_not_allowed
header_too_long
= filename1
= 'ASC'
= itab
=
=
=
=
=
=
=
=
=
=
=
1
2
3
4
5
6
7
8
9
10
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.
WRITE:/ icon_cancel AS ICON,
'Error in reading file' COLOR COL_NEGATIVE,30 filename
.
EXIT.
ELSE.
WRITE:/ icon_okay AS ICON, 'file read'.
ENDIF.
* ELSE.
*
OPEN DATASET filename FOR INPUT IN TEXT MODE ENCODING DEFAULT.
*
*
DO.
*
READ DATASET filename INTO itab.
*
IF sy-subrc NE 0.
*
EXIT.
*
ENDIF.
*
*
APPEND itab.
*
CLEAR itab.
*
ENDDO.
*
CLOSE DATASET filename.
*
*
* ENDIF.
ENDFORM.
" upload_file
*&---------------------------------------------------------------------*
*&
Form get_filename
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_FILENAME text
*----------------------------------------------------------------------*
FORM get_filename USING
p_filename.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path
= p_filename
mask
= ',*.*,*.*.'
mode
= 'S'
IMPORTING
filename
= p_filename
EXCEPTIONS
inv_winsys
= 1
no_batch
= 2
selection_cancel = 3
selection_error = 4
OTHERS
= 5.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDFORM.
" get_filename
*&---------------------------------------------------------------------*
*&
Form get_unix_filename
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_FILENAME text
*----------------------------------------------------------------------*
FORM get_unix_filename USING
p_file.
DATA: t_path LIKE dxfields-longpath,
a_flag(1).
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
EXPORTING
i_location_flag = 'A'
i_server
= ' '
i_path
= '/usr/tmp/'
filemask
= '*.*'
fileoperation = 'R'
IMPORTING
o_path
= t_path
abend_flag
= a_flag.
IF sy-subrc <> 0.
ELSE.
p_file = t_path.
ENDIF.
ENDFORM.
" get_unix_filename
*&---------------------------------------------------------------------*
*&
Form init_bdc
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_SES_NAME text
*
-->P_SY_UNAME text
*----------------------------------------------------------------------*
FORM init_bdc USING
p_ses_name
p_sy_uname.
IF bdc_opened = space.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = p_ses_name
keep = 'X'
user = p_sy_uname.
bdc_opened = 'X'.
ENDIF.
ENDFORM.
" init_bdc
*&---------------------------------------------------------------------*
*&
Form populate_itab
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM populate_itab.
LOOP AT itab.
SPLIT itab AT cl_abap_char_utilities=>horizontal_tab
INTO file_itab-orglevel
file_itab-role
file_itab-low
file_itab-high.
TRANSLATE file_itab-orglevel TO UPPER CASE.
APPEND file_itab.
ENDLOOP.
SORT file_itab BY orglevel low.
ENDFORM.
" populate_itab
*&---------------------------------------------------------------------*
*&
Form GET_ORG_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0640 text
*----------------------------------------------------------------------*
FORM get_org_data USING
value(p_0640).
SELECT counter varbl low high INTO TABLE itab_org
FROM agr_1252
WHERE agr_name EQ file_itab-role.
SORT itab_org BY counter varbl low.
ENDFORM.
" GET_ORG_DATA
*&---------------------------------------------------------------------*
*&
Form get_auth
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_auth.
LOOP AT file_itab.
AT NEW role.
CALL FUNCTION 'PRGN_1250_READ_AUTH_DATA'
EXPORTING
activity_group
= file_itab-role
TABLES
auth_data
= s_auth_data
EXCEPTIONS
no_data_available = 1
OTHERS
= 2.
IF sy-subrc <> 0.
IF sy-msgid IS INITIAL.
MESSAGE i000(zenh) WITH 'No data available'.
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM.
" get_auth
*&---------------------------------------------------------------------*
*&
Form save_org
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM save_org.
CALL FUNCTION 'PRGN_1252_SAVE_ORG_LEVELS'
EXPORTING
activity_group = file_itab-role
TABLES
org_levels
= s_org_level.
IF sy-subrc EQ 0.
CALL FUNCTION 'PRGN_1250_SAVE_AUTH_DATA'
EXPORTING
activity_group = file_itab-role
TABLES
auth_data
= s_auth_data.
ENDIF.
PERFORM db_update_database(saplsuprn).
IF gen EQ 0.
MESSAGE s777(zr).
ENDIF.
ENDFORM.
" save_org
*&---------------------------------------------------------------------*
*&
Form get_auth1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_auth1.
DATA: var1 TYPE string,
var2 TYPE string.
*
var3(40) type c,
*
var4(40) type c.
*
*data: end of struct.
LOOP AT file_itab.
AT NEW role.
CALL FUNCTION 'PRGN_1250_READ_AUTH_DATA'
EXPORTING
activity_group
= file_itab-role
TABLES
auth_data
= s_auth_data
EXCEPTIONS
no_data_available = 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.
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.
ENDAT.
SORT s_org_level BY varbl low.
LOOP AT s_org_level WHERE varbl EQ file_itab-orglevel.
var1 = s_org_level-low.
var2 = s_org_level-high.
IF s_org_level-low = file_itab-low AND s_org_level-high EQ
file_itab-high.
DELETE s_org_level.
ENDIF.
*clear: var1,
*
var2.
ENDLOOP.
AT END OF role.
PERFORM save_org.
ENDAT.
ENDLOOP.
ENDFORM.
"get_auth1