Saturday, September 10, 2011
Friday, September 9, 2011
Reading data from B2 Cluster
1. Retrieving data from B2 cluster using Function module.
Function module name is - HR_FORMS_TIM_GET_B2_RESULTS
Sample Code -
*&---------------------------------------------------------------------*
*& Report YTEST_B2_CLUSTER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ytest_b2_cluster.
TABLES: pernr.
infotypes: 0000, 0001.
DATA: lv_begda TYPE dats,
lv_endda TYPE dats.
DATA: ls_tim_b2 TYPE hrf_tim_b2.
lv_begda = '20110101'.
lv_endda = '20110830'.
START-OF-SELECTION.
GET pernr.
CALL FUNCTION 'HR_FORMS_TIM_GET_B2_RESULTS'
EXPORTING
pernr = pernr-pernr
begda = lv_begda
endda = lv_endda
IMPORTING
tim_b2 = ls_tim_b2
EXCEPTIONS
wrong_cluster_version = 1
no_read_authority = 2
cluster_archived = 3
technical_error = 4
OTHERS = 5.
END-OF-SELECTION.
2. Retrieving data from B2 cluster using Import statement.
*--->>> INCLUDE rpc2b200 ( RPCnxxy0)
*--->>> n = 1, 2, 3 or 4 (for PCL1, PCL2, PCL3, PCL4)
*--->>> xx = cluster ID
*--->>> y = country grouping (0 for international otherwise country indicator T500L)
INCLUDE rpc2b200. ( so here we are using PCL2, B2 cluster and country key international )
TABLES: pernr, pcl2.
INFOTYPES: 0000, 0001.
DATA: lv_begda TYPE dats,
lv_endda TYPE dats.
DATA: lit_saldo TYPE STANDARD TABLE OF pc2b5.
START-OF-SELECTION.
GET pernr.
b2-key-pernr = pernr-pernr.
b2-key-pabrj = '2011'.
b2-key-pabrp = '05'.
b2-key-cltyp = '1'.
IF pernr-pernr EQ '00010673'.
IMPORT SALDO FROM DATABASE pcl2(b2) ID b2-key.
IF sy-subrc EQ 0.
LOOP AT saldo. " saldo is a table in cluster b2
APPEND saldo TO lit_saldo.
ENDLOOP.
ENDIF.
ENDIF.
END-OF-SELECTION.
3. Retrieving data from B2 cluster using Macro statement.
TABLES: pernr, pcl2, pcl1.* Buffer definition
INCLUDE rpppxd00.
DATA: BEGIN OF COMMON PART.
INCLUDE rpppxd10.
DATA: END OF COMMON PART.
INCLUDE rpc2b200. " Same as explained for Import statement
INCLUDE rpppxm00. " all macro definitions
DATA: lit_saldo TYPE STANDARD TABLE OF pc2b5.
START-OF-SELECTION.
GET pernr.
b2-key-pernr = pernr-pernr.
b2-key-pabrj = '2011'.
b2-key-pabrp = '05'.
b2-key-cltyp = '1'.
IF pernr-pernr EQ '00010673'.
** reset macro
rp-init-buffer.
** import macro
rp-imp-c2-b2.
IF sy-subrc EQ 0.
LOOP AT saldo. " saldo is a table in cluster b2
APPEND saldo TO lit_saldo.
ENDLOOP.
ENDIF.
ENDIF.
END-OF-SELECTION.
Function module name is - HR_FORMS_TIM_GET_B2_RESULTS
Sample Code -
*&---------------------------------------------------------------------*
*& Report YTEST_B2_CLUSTER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ytest_b2_cluster.
TABLES: pernr.
infotypes: 0000, 0001.
DATA: lv_begda TYPE dats,
lv_endda TYPE dats.
DATA: ls_tim_b2 TYPE hrf_tim_b2.
lv_begda = '20110101'.
lv_endda = '20110830'.
START-OF-SELECTION.
GET pernr.
CALL FUNCTION 'HR_FORMS_TIM_GET_B2_RESULTS'
EXPORTING
pernr = pernr-pernr
begda = lv_begda
endda = lv_endda
IMPORTING
tim_b2 = ls_tim_b2
EXCEPTIONS
wrong_cluster_version = 1
no_read_authority = 2
cluster_archived = 3
technical_error = 4
OTHERS = 5.
END-OF-SELECTION.
2. Retrieving data from B2 cluster using Import statement.
*--->>> INCLUDE rpc2b200 ( RPCnxxy0)
*--->>> n = 1, 2, 3 or 4 (for PCL1, PCL2, PCL3, PCL4)
*--->>> xx = cluster ID
*--->>> y = country grouping (0 for international otherwise country indicator T500L)
INCLUDE rpc2b200. ( so here we are using PCL2, B2 cluster and country key international )
TABLES: pernr, pcl2.
INFOTYPES: 0000, 0001.
DATA: lv_begda TYPE dats,
lv_endda TYPE dats.
DATA: lit_saldo TYPE STANDARD TABLE OF pc2b5.
START-OF-SELECTION.
GET pernr.
b2-key-pernr = pernr-pernr.
b2-key-pabrj = '2011'.
b2-key-pabrp = '05'.
b2-key-cltyp = '1'.
IF pernr-pernr EQ '00010673'.
IMPORT SALDO FROM DATABASE pcl2(b2) ID b2-key.
IF sy-subrc EQ 0.
LOOP AT saldo. " saldo is a table in cluster b2
APPEND saldo TO lit_saldo.
ENDLOOP.
ENDIF.
ENDIF.
END-OF-SELECTION.
3. Retrieving data from B2 cluster using Macro statement.
TABLES: pernr, pcl2, pcl1.* Buffer definition
INCLUDE rpppxd00.
DATA: BEGIN OF COMMON PART.
INCLUDE rpppxd10.
DATA: END OF COMMON PART.
INCLUDE rpc2b200. " Same as explained for Import statement
INCLUDE rpppxm00. " all macro definitions
DATA: lit_saldo TYPE STANDARD TABLE OF pc2b5.
START-OF-SELECTION.
GET pernr.
b2-key-pernr = pernr-pernr.
b2-key-pabrj = '2011'.
b2-key-pabrp = '05'.
b2-key-cltyp = '1'.
IF pernr-pernr EQ '00010673'.
** reset macro
rp-init-buffer.
** import macro
rp-imp-c2-b2.
IF sy-subrc EQ 0.
LOOP AT saldo. " saldo is a table in cluster b2
APPEND saldo TO lit_saldo.
ENDLOOP.
ENDIF.
ENDIF.
END-OF-SELECTION.
Tuesday, July 19, 2011
Adding Multiple line text in ALV
*&---------------------------------------------------------------------*
*& Report YTEST_ALV1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ytest_alv1.
tables: ekpo.
***************************************************************
* type pools
***************************************************************
TYPE-POOLS : slis.
***************************************************************
* type declaration
***************************************************************
TYPES: BEGIN OF t_polist,
ebeln TYPE ebeln,
END OF t_polist.
TYPES: BEGIN OF t_display,
ebeln TYPE ebeln,
remark TYPE tdline,
END OF t_display.
***************************************************************
* Internal Table declaration
***************************************************************
DATA: git_polist TYPE STANDARD TABLE OF t_polist,
git_display TYPE STANDARD TABLE OF t_display.
***************************************************************
* Work area declaration
***************************************************************
DATA: gwa_polist TYPE t_polist,
gwa_display TYPE t_display.
************************************************************
* Text Declaration
************************************************************
DATA: lv_name TYPE tdobname,
lv_id TYPE tdid,
lv_lang TYPE spras,
lv_object TYPE tdobject.
DATA: lit_lines TYPE STANDARD TABLE OF tline,
lwa_lines TYPE tline.
************************************************************
* ALV Data Declaration
************************************************************
DATA : g_repid LIKE sy-repid,
gs_layout TYPE slis_layout_alv,
gs_print TYPE slis_print_alv,
gt_list_top_of_page TYPE slis_t_listheader,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv,
fieldcat_ln LIKE LINE OF gt_fieldcat,
fieldcat_in TYPE slis_fieldcat_alv,
lwa_sort TYPE LINE OF slis_t_sortinfo_alv,
col_pos TYPE i.
DATA : gs_variant LIKE disvariant,
g_save.
DATA: it_evt TYPE slis_t_event,
wa_evt TYPE slis_alv_event.
************************************************************
**Macro for Field Catelogue
************************************************************
DEFINE build_cat.
clear: fieldcat_ln.
fieldcat_ln-fieldname = &1.
fieldcat_ln-tabname = 'GIT_DISPLAY'.
fieldcat_ln-seltext_l = &2.
fieldcat_ln-col_pos = &3.
fieldcat_ln-outputlen = &4.
append fieldcat_ln to gt_fieldcat.
END-OF-DEFINITION.
************************************************************
* Selection screen
************************************************************
select-OPTIONS: p_ebeln for ekpo-ebeln.
************************************************************
* Start of program
************************************************************
START-OF-SELECTION.
*--->>> selecting the PO document no
SELECT ebeln FROM ekpo
INTO TABLE git_polist where ebeln in p_ebeln.
*--->>>
SORT git_polist BY ebeln.
*--->>>
DELETE ADJACENT DUPLICATES FROM git_polist COMPARING ALL FIELDS.
*--->>> reading the first line of text, if multiple lines are present, we will add it later
LOOP AT git_polist INTO gwa_polist .
gwa_display-ebeln = gwa_polist-ebeln.
lv_id = 'F02'.
lv_lang = 'E'.
lv_object = 'EKKO'.
CLEAR: lv_name.
lv_name = gwa_polist-ebeln.
CLEAR: lit_lines[].
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = lv_id
language = lv_lang
name = lv_name
object = lv_object
TABLES
lines = lit_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
ELSE.
READ TABLE lit_lines INTO lwa_lines INDEX 1.
ENDIF.
gwa_display-remark = lwa_lines-tdline.
CLEAR: lwa_lines.
APPEND gwa_display TO git_display.
CLEAR: gwa_display.
ENDLOOP.
*--->>> field cat
build_cat 'EBELN' 'PO Document No' '1' '20'.
build_cat 'REMARK' 'Remark' '2' '125'.
*--->>> alv
g_repid = sy-repid.
gs_variant-report = g_repid.
g_save = 'A'.
*--->>> this event for displaying mutiple lines
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
et_events = it_evt.
*
READ TABLE it_evt INTO wa_evt
WITH KEY name = slis_ev_after_line_output .
wa_evt-form = slis_ev_after_line_output .
MODIFY it_evt FROM wa_evt INDEX sy-tabix .
*
READ TABLE it_evt INTO wa_evt
WITH KEY name = slis_ev_top_of_page .
wa_evt-form = slis_ev_top_of_page .
MODIFY it_evt FROM wa_evt INDEX sy-tabix .
*--->>> end of event setting
*--->>> call the list display
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_structure_name = 'GIT_FINAL'
it_fieldcat = gt_fieldcat[]
is_variant = gs_variant
it_events = it_evt
TABLES
t_outtab = git_display
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form after_line_output
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RS_LINEINFO text
*----------------------------------------------------------------------*
FORM after_line_output USING rs_lineinfo TYPE slis_lineinfo .
DATA: v_tabix TYPE syst-tabix .
*--->>>
CLEAR : gwa_display .
*--->>>
READ TABLE git_display INTO gwa_display INDEX rs_lineinfo-tabindex .
CHECK sy-subrc = 0 .
*--->>>
lv_id = 'F02'.
lv_lang = 'E'.
lv_object = 'EKKO'.
CLEAR: lv_name.
lv_name = gwa_polist-ebeln.
CLEAR: lit_lines[].
*--->>>
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = lv_id
language = lv_lang
name = lv_name
object = lv_object
TABLES
lines = lit_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
*--->>>
DESCRIBE TABLE lit_lines LINES v_tabix .
CHECK v_tabix > 1 .
*--->>>
LOOP AT lit_lines INTO lwa_lines FROM 2 .
WRITE: / sy-vline ,
22 sy-vline ,
23 lwa_lines-tdline ,
148 sy-vline .
ENDLOOP.
ENDFORM . "after_line_output
*& Report YTEST_ALV1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ytest_alv1.
tables: ekpo.
***************************************************************
* type pools
***************************************************************
TYPE-POOLS : slis.
***************************************************************
* type declaration
***************************************************************
TYPES: BEGIN OF t_polist,
ebeln TYPE ebeln,
END OF t_polist.
TYPES: BEGIN OF t_display,
ebeln TYPE ebeln,
remark TYPE tdline,
END OF t_display.
***************************************************************
* Internal Table declaration
***************************************************************
DATA: git_polist TYPE STANDARD TABLE OF t_polist,
git_display TYPE STANDARD TABLE OF t_display.
***************************************************************
* Work area declaration
***************************************************************
DATA: gwa_polist TYPE t_polist,
gwa_display TYPE t_display.
************************************************************
* Text Declaration
************************************************************
DATA: lv_name TYPE tdobname,
lv_id TYPE tdid,
lv_lang TYPE spras,
lv_object TYPE tdobject.
DATA: lit_lines TYPE STANDARD TABLE OF tline,
lwa_lines TYPE tline.
************************************************************
* ALV Data Declaration
************************************************************
DATA : g_repid LIKE sy-repid,
gs_layout TYPE slis_layout_alv,
gs_print TYPE slis_print_alv,
gt_list_top_of_page TYPE slis_t_listheader,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv,
fieldcat_ln LIKE LINE OF gt_fieldcat,
fieldcat_in TYPE slis_fieldcat_alv,
lwa_sort TYPE LINE OF slis_t_sortinfo_alv,
col_pos TYPE i.
DATA : gs_variant LIKE disvariant,
g_save.
DATA: it_evt TYPE slis_t_event,
wa_evt TYPE slis_alv_event.
************************************************************
**Macro for Field Catelogue
************************************************************
DEFINE build_cat.
clear: fieldcat_ln.
fieldcat_ln-fieldname = &1.
fieldcat_ln-tabname = 'GIT_DISPLAY'.
fieldcat_ln-seltext_l = &2.
fieldcat_ln-col_pos = &3.
fieldcat_ln-outputlen = &4.
append fieldcat_ln to gt_fieldcat.
END-OF-DEFINITION.
************************************************************
* Selection screen
************************************************************
select-OPTIONS: p_ebeln for ekpo-ebeln.
************************************************************
* Start of program
************************************************************
START-OF-SELECTION.
*--->>> selecting the PO document no
SELECT ebeln FROM ekpo
INTO TABLE git_polist where ebeln in p_ebeln.
*--->>>
SORT git_polist BY ebeln.
*--->>>
DELETE ADJACENT DUPLICATES FROM git_polist COMPARING ALL FIELDS.
*--->>> reading the first line of text, if multiple lines are present, we will add it later
LOOP AT git_polist INTO gwa_polist .
gwa_display-ebeln = gwa_polist-ebeln.
lv_id = 'F02'.
lv_lang = 'E'.
lv_object = 'EKKO'.
CLEAR: lv_name.
lv_name = gwa_polist-ebeln.
CLEAR: lit_lines[].
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = lv_id
language = lv_lang
name = lv_name
object = lv_object
TABLES
lines = lit_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
ELSE.
READ TABLE lit_lines INTO lwa_lines INDEX 1.
ENDIF.
gwa_display-remark = lwa_lines-tdline.
CLEAR: lwa_lines.
APPEND gwa_display TO git_display.
CLEAR: gwa_display.
ENDLOOP.
*--->>> field cat
build_cat 'EBELN' 'PO Document No' '1' '20'.
build_cat 'REMARK' 'Remark' '2' '125'.
*--->>> alv
g_repid = sy-repid.
gs_variant-report = g_repid.
g_save = 'A'.
*--->>> this event for displaying mutiple lines
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
et_events = it_evt.
*
READ TABLE it_evt INTO wa_evt
WITH KEY name = slis_ev_after_line_output .
wa_evt-form = slis_ev_after_line_output .
MODIFY it_evt FROM wa_evt INDEX sy-tabix .
*
READ TABLE it_evt INTO wa_evt
WITH KEY name = slis_ev_top_of_page .
wa_evt-form = slis_ev_top_of_page .
MODIFY it_evt FROM wa_evt INDEX sy-tabix .
*--->>> end of event setting
*--->>> call the list display
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_structure_name = 'GIT_FINAL'
it_fieldcat = gt_fieldcat[]
is_variant = gs_variant
it_events = it_evt
TABLES
t_outtab = git_display
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form after_line_output
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RS_LINEINFO text
*----------------------------------------------------------------------*
FORM after_line_output USING rs_lineinfo TYPE slis_lineinfo .
DATA: v_tabix TYPE syst-tabix .
*--->>>
CLEAR : gwa_display .
*--->>>
READ TABLE git_display INTO gwa_display INDEX rs_lineinfo-tabindex .
CHECK sy-subrc = 0 .
*--->>>
lv_id = 'F02'.
lv_lang = 'E'.
lv_object = 'EKKO'.
CLEAR: lv_name.
lv_name = gwa_polist-ebeln.
CLEAR: lit_lines[].
*--->>>
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = lv_id
language = lv_lang
name = lv_name
object = lv_object
TABLES
lines = lit_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
*--->>>
DESCRIBE TABLE lit_lines LINES v_tabix .
CHECK v_tabix > 1 .
*--->>>
LOOP AT lit_lines INTO lwa_lines FROM 2 .
WRITE: / sy-vline ,
22 sy-vline ,
23 lwa_lines-tdline ,
148 sy-vline .
ENDLOOP.
ENDFORM . "after_line_output
Monday, June 6, 2011
Print Control in Block List ALV
If we take a printout of Block list ALV, each block will come in separate pages, to avoid that, we can control the print functionality in ALV block list.
*--->>> Data declaration
data: w_print TYPE slis_print_alv. " for print control
*--->>> print control information
w_print-no_print_selinfos = 'X'.
w_print-no_new_page = 'X'.
w_print-no_coverpage = 'X'.
w_print-no_change_print_params = 'X'.
w_print-no_print_listinfos = 'X'.
*--->>> for display and print
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
is_print = w_print. " print control info
*--->>>
*--->>> Data declaration
data: w_print TYPE slis_print_alv. " for print control
*--->>> print control information
w_print-no_print_selinfos = 'X'.
w_print-no_new_page = 'X'.
w_print-no_coverpage = 'X'.
w_print-no_change_print_params = 'X'.
w_print-no_print_listinfos = 'X'.
*--->>> for display and print
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
is_print = w_print. " print control info
*--->>>
Saturday, April 30, 2011
Sunday, March 6, 2011
SAP DMS Upload program
Program to upload documents in DMS
*&---------------------------------------------------------------------*
*& Report ZBAPI_DMS_CV01N
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zbapi_dms_cv01n.
TYPES: BEGIN OF t_record,
gv_descripcion(40), " Description
documentversion(2), " Documet version
documentpart(3), " Document part
created_by(12), " Creator
wsapplication(3), " Document type
docfile(255), " File path
charname(30), " Characteristic Name
charvalue(30) , " Plant maintenance Document
doctyp(3), " Document Type
END OF t_record.
DATA: record TYPE STANDARD TABLE OF t_record WITH HEADER LINE.
DATA: gv_documento LIKE draw-doknr,
* gv_clase LIKE draw-dokar VALUE 'PMD',
gv_version LIKE draw-dokvr VALUE '00',
gv_part LIKE draw-doktl VALUE '000',
gv_descripcion LIKE drat-dktxt,
gv_return LIKE bapiret2,
gv_ruta LIKE bapi_doc_files2-docfile.
DATA: gs_documentdata LIKE bapi_doc_draw2,
gt_characteristicvalues LIKE bapi_characteristic_values OCCURS 0 WITH HEADER LINE,
gt_classallocations LIKE bapi_class_allocation OCCURS 0 WITH HEADER LINE,
gt_documentfiles LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE.
DATA : l_path TYPE string,
length TYPE i.
*--->>> selection Screen
SELECTION-SCREEN BEGIN OF BLOCK rad1 WITH FRAME TITLE text-002.
PARAMETERS: pa_fname LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK rad1.
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_fname.
*&---------------------------------------------------------------------*
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ',*.TXT,*.TXT.'
mode = 'O'
IMPORTING
filename = pa_fname
EXCEPTIONS
inv_winsys = 01
no_batch = 02
selection_cancel = 03
selection_error = 04.
START-OF-SELECTION.
l_path = pa_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_path
* FILETYPE = 'ASC'
has_field_separator = 'X'
IMPORTING
filelength = length
TABLES
data_tab = record
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 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.
MESSAGE i016(pg) WITH 'Invalid file. Please check again'.
STOP.
ENDIF.
LOOP AT record.
CLEAR: gs_documentdata.
gs_documentdata-documenttype = record-doctyp.
gs_documentdata-documentnumber = gv_documento.
gs_documentdata-documentversion = record-documentversion.
gs_documentdata-documentpart = record-documentpart.
gs_documentdata-description = record-gv_descripcion.
CLEAR: gt_characteristicvalues, gt_characteristicvalues[].
gt_characteristicvalues-classtype = '017'.
gt_characteristicvalues-classname = 'PM_DOCUMENT'.
gt_characteristicvalues-charname = record-charname.
gt_characteristicvalues-charvalue = record-charvalue.
APPEND gt_characteristicvalues.
CLEAR: gt_classallocations, gt_classallocations[].
gt_classallocations-classtype = '017'.
gt_classallocations-classname = 'PM_DOCUMENT'.
APPEND gt_classallocations.
CLEAR: gt_documentfiles, gt_documentfiles[].
gt_documentfiles-wsapplication = record-wsapplication."'XLS'.
*--->>>
* CONCATENATE record-docfile '.' record-wsapplication INTO record-docfile.
* CONDENSE record-docfile.
*--->>>
gt_documentfiles-docfile = record-docfile. " file path
gt_documentfiles-created_by = gt_documentfiles-created_by.
gt_documentfiles-storagecategory = 'Z5'.
gt_documentfiles-checkedin = 'X'.
APPEND gt_documentfiles.
*--->>>
CLEAR: gv_return.
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
EXPORTING
documentdata = gs_documentdata
IMPORTING
return = gv_return
TABLES
characteristicvalues = gt_characteristicvalues
classallocations = gt_classallocations
documentfiles = gt_documentfiles.
IF gv_return-type CA 'AE'.
* WRITE gv_return-message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
CLEAR: gs_documentdata, gv_return, gt_characteristicvalues[], gt_classallocations[], gt_documentfiles[].
ENDLOOP.
************************************************************************************
Data Uploading Format
Permitted document types
*&---------------------------------------------------------------------*
*& Report ZBAPI_DMS_CV01N
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zbapi_dms_cv01n.
TYPES: BEGIN OF t_record,
gv_descripcion(40), " Description
documentversion(2), " Documet version
documentpart(3), " Document part
created_by(12), " Creator
wsapplication(3), " Document type
docfile(255), " File path
charname(30), " Characteristic Name
charvalue(30) , " Plant maintenance Document
doctyp(3), " Document Type
END OF t_record.
DATA: record TYPE STANDARD TABLE OF t_record WITH HEADER LINE.
DATA: gv_documento LIKE draw-doknr,
* gv_clase LIKE draw-dokar VALUE 'PMD',
gv_version LIKE draw-dokvr VALUE '00',
gv_part LIKE draw-doktl VALUE '000',
gv_descripcion LIKE drat-dktxt,
gv_return LIKE bapiret2,
gv_ruta LIKE bapi_doc_files2-docfile.
DATA: gs_documentdata LIKE bapi_doc_draw2,
gt_characteristicvalues LIKE bapi_characteristic_values OCCURS 0 WITH HEADER LINE,
gt_classallocations LIKE bapi_class_allocation OCCURS 0 WITH HEADER LINE,
gt_documentfiles LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE.
DATA : l_path TYPE string,
length TYPE i.
*--->>> selection Screen
SELECTION-SCREEN BEGIN OF BLOCK rad1 WITH FRAME TITLE text-002.
PARAMETERS: pa_fname LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK rad1.
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_fname.
*&---------------------------------------------------------------------*
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ',*.TXT,*.TXT.'
mode = 'O'
IMPORTING
filename = pa_fname
EXCEPTIONS
inv_winsys = 01
no_batch = 02
selection_cancel = 03
selection_error = 04.
START-OF-SELECTION.
l_path = pa_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_path
* FILETYPE = 'ASC'
has_field_separator = 'X'
IMPORTING
filelength = length
TABLES
data_tab = record
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 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.
MESSAGE i016(pg) WITH 'Invalid file. Please check again'.
STOP.
ENDIF.
LOOP AT record.
CLEAR: gs_documentdata.
gs_documentdata-documenttype = record-doctyp.
gs_documentdata-documentnumber = gv_documento.
gs_documentdata-documentversion = record-documentversion.
gs_documentdata-documentpart = record-documentpart.
gs_documentdata-description = record-gv_descripcion.
CLEAR: gt_characteristicvalues, gt_characteristicvalues[].
gt_characteristicvalues-classtype = '017'.
gt_characteristicvalues-classname = 'PM_DOCUMENT'.
gt_characteristicvalues-charname = record-charname.
gt_characteristicvalues-charvalue = record-charvalue.
APPEND gt_characteristicvalues.
CLEAR: gt_classallocations, gt_classallocations[].
gt_classallocations-classtype = '017'.
gt_classallocations-classname = 'PM_DOCUMENT'.
APPEND gt_classallocations.
CLEAR: gt_documentfiles, gt_documentfiles[].
gt_documentfiles-wsapplication = record-wsapplication."'XLS'.
*--->>>
* CONCATENATE record-docfile '.' record-wsapplication INTO record-docfile.
* CONDENSE record-docfile.
*--->>>
gt_documentfiles-docfile = record-docfile. " file path
gt_documentfiles-created_by = gt_documentfiles-created_by.
gt_documentfiles-storagecategory = 'Z5'.
gt_documentfiles-checkedin = 'X'.
APPEND gt_documentfiles.
*--->>>
CLEAR: gv_return.
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
EXPORTING
documentdata = gs_documentdata
IMPORTING
return = gv_return
TABLES
characteristicvalues = gt_characteristicvalues
classallocations = gt_classallocations
documentfiles = gt_documentfiles.
IF gv_return-type CA 'AE'.
* WRITE gv_return-message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
CLEAR: gs_documentdata, gv_return, gt_characteristicvalues[], gt_classallocations[], gt_documentfiles[].
ENDLOOP.
************************************************************************************
Data Uploading Format
| Description | Documet version | Document part | Creator | Document type | File path | Characteristic Name | Plant maintenance Document | Document Type |
| Description test | 00 | 000 | developer1 | PPT | \\172.17.9.151\DMS-Upload\Mobile Safety | MACHINEDRAWINGS | PLANNING & RELIABILITY | PMD |
Permitted document types
| Doc Type | Text |
| DOC | Microsoft Word file |
| DOX | MS word 2007 |
| DRW | Autocad files |
| HTM | HTML Files |
| IMG | Scanned Files (Image) |
| JPG | Scanned Files |
| MPP | MS Project |
| Acrobat Reader | |
| PPT | Microsoft Powerpoint |
| PPX | Microsoft Powerpoint |
| SIM | SAP Tutor Application |
| TXT | Text Files |
| VSD | Microsoft Visio files |
| WWI | Winword 6.0 |
| XLS | Microsoft EXCEL |
| XLX | MS excel 2007 |
| ZTF | TIFF formatt - Scanned Files |
SAP Dynamic Action
This Link is very good
http://wiki.sdn.sap.com/wiki/display/Snippets/Dynamic+Action
http://wiki.sdn.sap.com/wiki/display/Snippets/Dynamic+Action
Subscribe to:
Posts (Atom)