Uploading data of MM01 TCODE
HAI ,
pls specify how to upload data from a flat file which contains all MATERIAL TYPES IN A single flat file through call transaction or bdc session method ..
pls specify imp code atleast
thanking u.
hi,
check this example.
TABLES : IBIPPARMS.
*& Types
TYPES : BEGIN OF TY_ITAB,
MATNR TYPE MATNR, "MATERIAL NO
WERKS TYPE WERKS, "PLANT
STLAN TYPE STLAN, "BOM USAGE
DATUV TYPE DATUV, "VALID DATE
BMENG TYPE BMENG, "BASE QUANTITY
IDNRK TYPE IDNRK, "COMPONENT
MENGE TYPE RC29P-MENGE, "QUANTITY
MEINS TYPE MEINS, "UNIT
POSTP TYPE POSTP, "ITEM CATEGORY
END OF TY_ITAB.
*& DATA Declaration
DATA : IT_ITAB TYPE TABLE OF TY_ITAB WITH HEADER LINE.
DATA : IT_BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.
DATA : IT_BDCMSGCOLL TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE.
DATA : P_FILE1 TYPE STRING ,"FILE NAME
V_LINES TYPE I.
DATA : IT1_ITAB like IT_ITAB occurs 0 with header line.
*& SELECTION-SCREEN DECLARATION
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_FILE TYPE LOCALFILE OBLIGATORY."FILE NAME
SELECTION-SCREEN END OF BLOCK B1 .
AT-SELECTION-SCREEN DECALRATION *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
clear : P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = P_FILE.
IF P_FILE IS NOT INITIAL.
VALIDATE FILE TYPE
PERFORM SUB_VALIDATE_txt_TYPE.
ENDIF.
START-OF-SELECTION
start-of-selection.
perform upload.
perform bdc.
*& Form upload
text
--> p1 text
<-- p2 text
FORM upload .
clear : P_FILE1.
P_FILE1 = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = P_FILE1
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_ITAB
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.
endif.
ENDFORM. " upload
form bdc.
*COPY DATA FROM IT_ITAB INTO IT_ITAB1
IT1_ITAB[] = IT_ITAB[].
*IF SY-SUBRC <> 0 OR IT_ITAB IS INITIAL.
UNABLE TO UPLOAD DATA FROM FLAT FILE
*MESSAGE I003(ZMSG).
*ENDIF.
*& Form bdc
text
--> p1 text
<-- p2 text
*FORM BDC.
LOOP AT IT_ITAB.
REFRESH IT_BDCDATA .
*FIRST SCREEN
perform bdc_dynpro using 'SAPLCSDI' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RC29N-DATUV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29N-MATNR'
IT_ITAB-MATNR.
perform bdc_field using 'RC29N-WERKS'
IT_ITAB-WERKS.
perform bdc_field using 'RC29N-STLAN'
IT_ITAB-STLAN.
perform bdc_field using 'RC29N-DATUV'
IT_ITAB-DATUV.
*SECOND SCREEN
perform bdc_dynpro using 'SAPLCSDI' '0110'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-BMENG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29K-BMENG'
IT_ITAB-BMENG.
perform bdc_field using 'RC29K-STLST'
'1'.
*THIRD SCREEN
LOOP AT IT1_ITAB WHERE MATNR = IT_ITAB-MATNR.
perform bdc_dynpro using 'SAPLCSDI' '0111'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-LABOR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POSTP(02)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'RC29P-IDNRK(01)'
IT_ITAB-IDNRK.
perform bdc_field using 'RC29P-IDNRK(SY-TABIX)'
IT_ITAB-IDNRK.
perform bdc_field using 'RC29P-IDNRK(02)'
'100017'.
perform bdc_field using 'RC29P-MENGE(SY-TABIX)'
IT_ITAB-MENGE.
perform bdc_field using 'RC29P-MENGE(02)'
'200'.
perform bdc_field using 'RC29P-MEINS(SY-TABIX)'
IT_ITAB-MEINS.
perform bdc_field using 'RC29P-MEINS(02)'
'kg'.
perform bdc_field using 'RC29P-POSTP(SY-TABIX)'
IT_ITAB-POSTP.
perform bdc_field using 'RC29P-POSTP(02)'
'l'.
ENDLOOP.
perform bdc_dynpro using 'SAPLCSDI' '0130'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POSNR'.
perform bdc_field using 'RC29P-POSNR'
'0010'.
perform bdc_field using 'RC29P-IDNRK'
'100012'.
perform bdc_field using 'RC29P-MENGE'
'150'.
perform bdc_field using 'RC29P-MEINS'
'KG'.
perform bdc_dynpro using 'SAPLCSDI' '0131'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POTX1'.
perform bdc_field using 'RC29P-SANKA'
'X'.
perform bdc_dynpro using 'SAPLCSDI' '0130'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POSNR'.
perform bdc_field using 'RC29P-POSNR'
'0020'.
perform bdc_field using 'RC29P-IDNRK'
'100017'.
perform bdc_field using 'RC29P-MENGE'
'200'.
perform bdc_field using 'RC29P-MEINS'
'KG'.
perform bdc_dynpro using 'SAPLCSDI' '0131'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POTX1'.
perform bdc_field using 'RC29P-SANKA'
'X'.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POSNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FCBU'.
*perform bdc_transaction using 'CS01'.
*perform close_group.
CALL TRANSACTION 'CS01' USING IT_BDCDATA MODE 'N'
UPDATE 'S'
MESSAGES INTO IT_BDCMSGCOLL.
CLEAR IT_ITAB.
ENDLOOP.
endform.
**GET THE NUMBER OF LINES
*DESCRIBE TABLE IT_BDCMSGCOLL LINES V_LINES.
**ENDFORM.
*& Form SUB_VALIDATE_TXT_TYPE
text
--> p1 text
<-- p2 text
FORM SUB_VALIDATE_txt_TYPE .
DATA : STR1 TYPE LOCALFILE,
STR2 TYPE CHAR3.
SPLIT P_FILE AT '.' INTO STR1 STR2.
TRANSLATE STR2 TO LOWER CASE.
IF STR2 NE 'txt'.
please enter '.txt' file format
MESSAGE I001(ZMSG).
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " SUB_VALIDATE_TXT_TYPE
*& Form bdc_dynpro
text
-->P_0160 text
-->P_0161 text
FORM bdc_dynpro USING PROGRAM DYNPRO.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROGRAM.
IT_BDCDATA-DYNPRO = DYNPRO.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0160 text
-->P_ENDLOOP text
FORM bdc_field USING FNAM FVAL.
CLEAR IT_BDCDATA. .
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM. " bdc_field
Similar Messages
-
Uploading data in MM01 for different material types
Hi,
I have a doubt regarding uploading the data in MM01 for different material types.
Generally in MM01, we have different views for different material types. The number of views will vary depending upon the material type that we select.
I have a scenario, where in to upload the data, I have a flat file that consists of data for different message types. So, how to upload the data in such case.
Can anyone help me on the same by providing explanation or sample code...? What would be the possible ways to upload data in such scenario.
That would be of great help.
Thanks & Regards,
Pradeep.See the below code and use FM SELECTION_VIEWS_FIND..
REPORT zjpmuim306 NO STANDARD PAGE HEADING LINE-SIZE 250 MESSAGE-ID
zjpm001.
*& I N B O U N D V I A A B A P : Batch input Session method *
*& Development ID: IM_DD_306_LJP *
*& Report : ZJPMUIM306 *
*& The Purpose of the Object is to interface Create Input Record *
*& for SAP Migration from the Material master of BPCS All the *
*& information received at BPCS is collected into a single record. *
*& By using session method upload data from file ,one item is
*& created for one record *
*& Change Log: *
*& Init Who Date Text *
*& MALIKDH1 Seshu Reddy 26-07-2003 Initial Version *
Constants *
CONSTANTS:c_vkorg(4) type c value 'JP20', " Sales Organization
c_vtweg(2) type c value 'TR' , " Distribution Channel
c_werks(4) Type c value 'JP01' , " Plant
c_viewlist(15) VALUE 'KDEALBSZXVPCFQG'," View list
c_scm_view TYPE msichtausw-dytxt VALUE 'SCM View',
c_sd_view TYPE msichtausw-dytxt VALUE 'SD View',
c_seq_code(2) VALUE 'Z1', " Sequential Code
c_keep(1) TYPE c VALUE 'X', " Keep
c_group LIKE apqi-groupid VALUE 'IM306', " Session Name
c_tcode LIKE tstc-tcode VALUE 'MM02', " Transaction Code
c_blank(1) VALUE ' ', " Blank
c_intls(1) VALUE 'N'. " Logistic Status
Variables *
DATA: g_flag1(1), " Variable to hold
g_flag(1), " Variable to hold
g_file LIKE rlgrap-filename VALUE
'C:\Documents and Settings\seshur\Desktop\HCLT123.CSV'. " File name
Internal tables/ Work area *
Internal Table for Delimter
DATA : BEGIN OF t_delim OCCURS 0,
text(1000),
END OF t_delim.
Internal table for BDC processing
DATA : t_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
Internal table for holding the data which has to be uploaded.
DATA: BEGIN OF t_bpcs OCCURS 0,
matnr(15) TYPE c, " material no
dosage(40) TYPE c, " Dosage form(Local)
appearance(40) TYPE c, " Appearance
idcode(6) TYPE c, " Identification Code
prostformno(10) TYPE c, "SOP
weitab(7) TYPE c, " Weight/tablet
uom1(2) TYPE c, " UOM of Carton
uom2(2) TYPE c, " UOM of Case
carsize(14) TYPE c, " Carton size
cassize(14) TYPE c, " Case size
rupqty(11) TYPE c, " Round up
abvname(3) TYPE c, " Product short name
END OF t_bpcs.
*Internal table for t_bpcs
DATA: BEGIN OF t_mdata OCCURS 0,
matnr LIKE marc-matnr, " Material number
zzjp_dos_frm LIKE marc-zzjp_dos_frm, " Dosage form(Local)
zzjp_aprn LIKE marc-zzjp_aprn, " Appearance
zzjp_con_id LIKE marc-zzjp_con_id," Identification Code
zzjp_nyu_sop LIKE marc-zzjp_nyu_sop,"SOP
zzjp_wei_tab(10) type c , " Weight/tablet
zzjp_bio LIKE marc-zzjp_bio,"Biologics Indicator
zzjp_itf LIKE marc-zzjp_itf, " ITF code
zzjp_car(2) type c, " UOM of Carton
zzjp_cas(2) type c, " UOM of Case
zzjp_car_size(11) type c," Carton size
zzjp_cas_size(11) type c, " Case size
zzjp_rupqty(11) type c, " Round up
zzjp_init_ls LIKE marc-zzjp_init_ls, " Logistic Status
zzjp_re1 LIKE marc-zzjp_re1, "Document type(Local)
zzjp_re2 LIKE marc-zzjp_re2, "Report type
zzjp_re3 LIKE marc-zzjp_re3, "Shipping report type
zzjp_pro_id LIKE mvke-zzjp_pro_id," Product output sequence
zzjp_bu_id LIKE mvke-zzjp_bu_id, " Business unit indicator
zzjp_abv_name LIKE mvke-zzjp_abv_name," Product short name
zzjp_abv_id1 LIKE mvke-zzjp_abv_id1," Product short name output
zzjp_abv_id2 LIKE mvke-zzjp_abv_id2," Product short name internal
zzjp_spl_id LIKE mvke-zzjp_spl_id, " Sample internal order
END OF t_mdata.
Internal table for Mara Table
DATA: BEGIN OF t_mara OCCURS 0,
matnr LIKE mara-matnr, " material Number
vpsta LIKE mara-vpsta, " Maintenance status of complete material
pstat like mara-pstat, " Maintenance status
END OF t_mara.
Internal table for Material Master View Selection Screens
DATA: BEGIN OF t_bildtab OCCURS 0.
INCLUDE STRUCTURE mbildtab.
DATA: END OF t_bildtab.
internal table for T_bildtab
DATA: t_bildtab_dup LIKE t_bildtab OCCURS 0 WITH HEADER LINE.
*Work area for T_bildtab internal table(Views Selection)
DATA: BEGIN OF w_data,
flag1 type c,
anzd70 TYPE i,
field1(20) type c,
field2(20) type c,
field3(20) type c,
field4(20) type c,
count(2) TYPE c,
END OF w_data.
Main Processing *
START-OF-SELECTION.
Store data from file into internal table
PERFORM f_uplaod_data.
Transfer the uploaded data into t_mdata internal Table
PERFORM f_process_data.
Selecting The views based on Material number
PERFORM f_view_list.
Open a BDC Session
PERFORM f_bdc_open.
*Selecting the fields from mara table
SELECT matnr
vpsta
pstat
FROM mara
INTO TABLE t_mara
FOR ALL ENTRIES IN t_mdata
WHERE matnr = t_mdata-matnr.
SORT t_mara BY matnr.
SORT t_mdata BY matnr.
Transfer the uploaded data into BDCDATA structure
PERFORM f_process_bdc.
Close The BDC Session
PERFORM f_close_group.
*& Form F_VIEW_LIST *
Routine to used for Calling the function module *
Selection_views_find *
FORM f_view_list.
CALL FUNCTION 'SELECTION_VIEWS_FIND'
EXPORTING
bildsequenz = c_seq_code
pflegestatus = c_viewlist
TABLES
bildtab = t_bildtab
EXCEPTIONS
call_wrong = 1
empty_selection = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " F_VIEW_LIST
*& Form f612_view_sort *
Routine to used for Selecting The views based on Material Number *
FORM f612_view_sort.
t_bildtab_dup[] = t_bildtab[].
Reading the Internal table t_mara
READ TABLE t_mara WITH KEY matnr = t_mdata-matnr.
TRANSLATE t_mara-pstat USING ' $'.
CLEAR: w_data-flag1, w_data-anzd70.
LOOP AT t_bildtab_dup.
IF t_bildtab_dup-pstat CA t_mara-pstat.
w_data-anzd70 = w_data-anzd70 + 1.
IF t_bildtab_dup-kzanz IS INITIAL.
t_bildtab_dup-kzanz = 'X'.
w_data-flag1 = 'X'.
MODIFY t_bildtab_dup.
ENDIF.
ELSE.
IF NOT t_bildtab_dup-kzanz IS INITIAL.
CLEAR t_bildtab_dup-kzanz.
w_data-flag1 = 'X'.
MODIFY t_bildtab_dup.
ENDIF.
ENDIF.
ENDLOOP.
TRANSLATE t_mara-pstat USING '$ '.
IF NOT w_data-flag1 IS INITIAL.
SORT t_bildtab_dup BY kzanz DESCENDING idxbd ASCENDING.
ENDIF.
*Reading The internal table for T_bildtab_dup
READ TABLE t_bildtab_dup WITH KEY dytxt = c_scm_view.
IF t_bildtab_dup-kzanz = 'X'.
WRITE sy-tabix TO w_data-count.
w_data-count = w_data-count + 2.
IF w_data-anzd70 > 18.
w_data-count = w_data-count - 18.
ENDIF.
CONCATENATE 'MSICHTAUSW-DYTXT(' w_data-count ')' INTO w_data-field1.
CONCATENATE 'MSICHTAUSW-KZSEL(' w_data-count ')' INTO w_data-field2.
ENDIF.
READ TABLE t_bildtab_dup WITH KEY dytxt = c_sd_view.
IF t_bildtab_dup-kzanz = 'X'.
WRITE sy-tabix TO w_data-count.
IF w_data-anzd70 > 18.
w_data-count = w_data-count + 2.
w_data-count = w_data-count - 18.
ENDIF.
CONCATENATE 'MSICHTAUSW-DYTXT(' w_data-count ')' INTO w_data-field3.
CONCATENATE 'MSICHTAUSW-KZSEL(' w_data-count ')' INTO w_data-field4.
ENDIF.
ENDFORM. " f612_view_sort
*& Form f_uplaod_data *
Routine to used for Uploading the data from file to Internal table *
FORM f_uplaod_data.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = g_file
filetype = 'DAT'
TABLES
data_tab = t_delim
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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF t_bpcs IS INITIAL.
LOOP AT t_delim.
SPLIT t_delim-text AT ',' INTO t_bpcs-matnr
t_bpcs-dosage
t_bpcs-appearance
t_bpcs-idcode
t_bpcs-prostformno
t_bpcs-weitab
t_bpcs-uom1
t_bpcs-uom2
t_bpcs-carsize
t_bpcs-cassize
t_bpcs-rupqty
t_bpcs-abvname.
APPEND t_bpcs.
ENDLOOP.
ENDIF.
ENDFORM. " f_uplaod_data
*& Form F_BDC_OPEN
Routine to create BDC Session to be processed
FORM f_bdc_open.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = c_group
keep = c_keep
user = sy-uname
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
MESSAGE S000 WITH 'Batch input session is created successfully'(T02).
ENDIF.
ENDFORM. " F_BDC_OPEN
*& Form F_PROCESS_BDC
Processing of BDCDATA Structure
FORM f_process_bdc.
LOOP AT t_mdata.
PERFORM f612_view_sort.
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM f_bdc_field USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=AUSW'.
PERFORM f_bdc_field USING 'RMMG1-MATNR'
t_mdata-matnr.
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM f_bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
IF w_data-anzd70 > 18.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=P+'.
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM f_bdc_field USING 'BDC_OKCODE' '/00'.
ENDIF.
reading the t_bildtab internal table
READ TABLE t_bildtab_dup WITH KEY dytxt = c_scm_view.
IF t_bildtab_dup-kzanz = 'X'.
PERFORM f_bdc_field USING 'BDC_CURSOR'
w_data-field1.
PERFORM f_bdc_field USING w_data-field2 'X'.
g_flag = 'X'.
ENDIF.
reading the t_bildtab internal table
READ TABLE t_bildtab_dup WITH KEY dytxt = c_sd_view.
IF sy-subrc EQ 0.
g_flag = 'X'.
ENDIF.
IF t_bildtab_dup-kzanz = 'X'.
PERFORM f_bdc_field USING 'BDC_CURSOR'
w_data-field3.
PERFORM f_bdc_field USING w_data-field4 'X'.
g_flag1 = 'X'.
ENDIF.
IF g_flag = 'X' AND g_flag1 = 'X'.
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0080'.
PERFORM f_bdc_field USING 'BDC_CURSOR'
'RMMG1-VTWEG'.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM f_bdc_field USING 'RMMG1-WERKS'
c_werks.
PERFORM f_bdc_field USING 'RMMG1-VKORG'
c_vkorg.
PERFORM f_bdc_field USING 'RMMG1-VTWEG'
c_vtweg.
CLEAR g_flag.
CLEAR g_flag1.
ELSE.
IF g_flag = 'X'.
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0080'.
PERFORM f_bdc_field USING 'RMMG1-WERKS'
c_werks.
PERFORM f_bdc_field USING 'BDC_OKCODE' '/00'.
ELSE.
IF g_flag1 = 'X'.
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0080'.
PERFORM f_bdc_field USING 'BDC_CURSOR'
'RMMG1-VTWEG'.
PERFORM f_bdc_field USING 'RMMG1-WERKS'
c_werks.
PERFORM f_bdc_field USING 'RMMG1-VKORG'
c_vkorg.
PERFORM f_bdc_field USING 'RMMG1-VTWEG'
c_vtweg.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=ENTR'.
ENDIF.
ENDIF.
ENDIF.
*Processing of SCM View
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM f_bdc_field USING 'BDC_CURSOR' 'MARC-ZZJP_DOS_FRM'.
PERFORM f_bdc_field USING 'MARC-ZZJP_DOS_FRM'
t_mdata-zzjp_dos_frm.
PERFORM f_bdc_field USING 'MARC-ZZJP_APRN'
t_mdata-zzjp_aprn.
PERFORM f_bdc_field USING 'MARC-ZZJP_CON_ID'
t_mdata-zzjp_con_id.
PERFORM f_bdc_field USING 'MARC-ZZJP_NYU_SOP'
t_mdata-zzjp_nyu_sop.
PERFORM f_bdc_field USING 'MARC-ZZJP_WEI_TAB'
t_mdata-zzjp_wei_tab.
PERFORM f_bdc_field USING 'MARC-ZZJP_CAR'
t_mdata-zzjp_car.
PERFORM f_bdc_field USING 'MARC-ZZJP_CAS'
t_mdata-zzjp_cas.
PERFORM f_bdc_field USING 'MARC-ZZJP_CAR_SIZE'
t_mdata-ZZJP_CAR_SIZE.
PERFORM f_bdc_field USING 'MARC-ZZJP_CAS_SIZE'
t_mdata-ZZJP_CAS_SIZE.
PERFORM f_bdc_field USING 'MARC-ZZJP_RUPQTY'
t_mdata-ZZJP_RUPQTY.
PERFORM f_bdc_field USING 'MARC-ZZJP_BIO'
t_mdata-zzjp_bio.
PERFORM f_bdc_field USING 'MARC-ZZJP_ITF'
t_mdata-zzjp_itf.
PERFORM f_bdc_field USING 'MARC-ZZJP_INIT_LS'
t_mdata-zzjp_init_ls.
PERFORM f_bdc_field USING 'MARC-ZZJP_RE1'
t_mdata-zzjp_re1.
PERFORM f_bdc_field USING 'MARC-ZZJP_RE2'
t_mdata-zzjp_re2.
PERFORM f_bdc_field USING 'MARC-ZZJP_RE3'
t_mdata-zzjp_re3.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'/00'.
*Processing of SD View
PERFORM f_bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM f_bdc_field USING 'BDC_CURSOR' 'MVKE-ZZJP_PRO_ID'.
PERFORM f_bdc_field USING 'MVKE-ZZJP_PRO_ID'
t_mdata-zzjp_pro_id.
PERFORM f_bdc_field USING 'MVKE-ZZJP_BU_ID'
t_mdata-zzjp_bu_id.
PERFORM f_bdc_field USING 'MVKE-ZZJP_ABV_NAME'
t_mdata-zzjp_abv_name.
PERFORM f_bdc_field USING 'MVKE-ZZJP_ABV_ID1'
t_mdata-zzjp_abv_id1.
PERFORM f_bdc_field USING 'MVKE-ZZJP_ABV_ID2'
t_mdata-zzjp_abv_id2.
PERFORM f_bdc_field USING 'MVKE-ZZJP_SPL_ID'
t_mdata-zzjp_spl_id.
PERFORM f_bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM f_bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=YES'.
perform f_bdc_insert.
REFRESH T_BDCDATA.
ENDLOOP.
ENDFORM. " F_PROCESS_BDC
*& Form f_bdc_dynpro
p_prog is the program name to which data is passed *
p_dyno is the screen number to which the data is passed
Routine for populating the BDCDATA structure with the
Screen related information
FORM f_bdc_dynpro USING p_prog
p_dyno.
t_bdcdata-program = p_prog.
t_bdcdata-dynpro = p_dyno.
t_bdcdata-dynbegin = 'X'.
APPEND t_bdcdata.
CLEAR t_bdcdata.
ENDFORM. " F_bdc_dynpro
*& Form F_BDC_FIELD
p_fnam is the field name to which value is passed
p_fval is the field value which is passed
p_fnam is the field name to which value is passed
p_fval is the field value which is passed
FORM f_bdc_field USING p_fnam
p_fval.
t_bdcdata-fnam = p_fnam.
t_bdcdata-fval = p_fval.
APPEND t_bdcdata.
CLEAR t_bdcdata.
ENDFORM. " F_bdc_field
*& Form F_PROCESS_DATA *
Routine to used for moving data from T_bpcs internal table to *
t_mdata Internal Table *
FORM f_process_data.
LOOP AT t_bpcs.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = t_bpcs-matnr
IMPORTING
output = t_mdata-matnr.
MOVE t_bpcs-dosage TO t_mdata-zzjp_dos_frm.
MOVE t_bpcs-appearance TO t_mdata-zzjp_aprn.
MOVE t_bpcs-idcode TO t_mdata-zzjp_con_id.
MOVE t_bpcs-prostformno TO t_mdata-zzjp_nyu_sop.
MOVE t_bpcs-weitab TO t_mdata-zzjp_wei_tab.
MOVE c_blank TO t_mdata-zzjp_bio.
MOVE c_blank TO t_mdata-zzjp_itf.
MOVE t_bpcs-uom1 TO t_mdata-zzjp_car.
MOVE t_bpcs-uom2 TO t_mdata-zzjp_cas.
MOVE t_bpcs-carsize TO t_mdata-zzjp_car_size.
MOVE t_bpcs-cassize TO t_mdata-zzjp_cas_size.
MOVE t_bpcs-rupqty TO t_mdata-zzjp_rupqty.
MOVE c_intls TO t_mdata-zzjp_init_ls.
MOVE c_blank TO t_mdata-zzjp_re1.
MOVE c_blank TO t_mdata-zzjp_re2.
MOVE c_blank TO t_mdata-zzjp_re3.
MOVE c_blank TO t_mdata-zzjp_pro_id.
MOVE c_blank TO t_mdata-zzjp_bu_id.
MOVE t_bpcs-abvname TO t_mdata-zzjp_abv_name.
MOVE c_blank TO t_mdata-zzjp_abv_id1.
MOVE c_blank TO t_mdata-zzjp_abv_id2.
MOVE c_blank TO t_mdata-zzjp_spl_id.
APPEND t_mdata.
ENDLOOP.
ENDFORM. " F_PROCESS_DATA
*& Form f_bdc_close
Routine to close the BDC Session
FORM f_close_group.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " f_close_group
*& Form f_bdc_insert
routine to input batch data into the Transaction MM02 from the
session created
FORM f_bdc_insert.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = c_tcode
TABLES
dynprotab = t_bdcdata
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " f_bdc_insert
Reward Points if it is useful
Thanks
Seshu -
LSMW for uploading data in MM01
Hi,
I have never used LSMW.I have to upload data for material master for MM01 Fields are MATNR MTART LGORT MEINS etc from MARA MARC and MAKT table.I have the records in text file for uploading.
Could you please tell me which step will be good?
Direct i/p I do not want to use.
Batch i/p recording-Please explain me step while recording in MM01.
IDOC which msg type to be used and also port no details.
BAPI Which BAPI should be used?
Rgds,
Raguse LSMW BAPI method
Business Object BUS1001006 Standard material
Method SAVEDATA Create and change materia
Message Type MATMAS_BAPI Create and change materia
Basic Type MATMAS_BAPI02 Create and Change Materia -
Problem in uploading data for the Tcode CA02
Hi,
I am trying to upload the data for the Tcode ca02 and i am facing a problem i.e. the uploading for the for the 18th inspection characterstic is not able to being uploaded. I had checked the code of it and the logic is there.
It was previously uploading the data for it,but iit is not doing now. I had cheked the program of the screen also the fields are also present..would u plz send code.so i can check
-
Hi friends,
In Tcode MIRO, i want to upload amount and qty for basci customes, CVD, ECESS, ECESS ON ALL DUTIES AND ADDITIONAL DUTY ON IMPORTS for a particular purchase order.
How to upload data. Thanks in advance.
regards,
senthilkumar.rHi Senthil,
SAP doesn't recommend to do call transactions in MIRO transactions. You should use the BAPI_INCOMINGINVOICE_CREATE BAPI Function Module. If you have any problems with this BAPI, please answer this message in the Forum.
Regards,
Daniel Carvalho. -
Uploading data in CRMD_ORDER tcode
Dear Friends,
we are uploading data in CRM 2007.
While uploading data for opportunity we want to upload the URL in attachment tab.
But we tried for recording in BDC , but it doesn't work. Also in there is no provision for same in CRM_ORDER_MAINTAIN .
kindly help me while uploading URL.
with regards,
Mehul .Hi,
I have not tried it myself but I think you can use one of the methods in the class CL_CRM_DOCUMENTS.
/Anders -
Hi: Uploading data for CN22 tcode
Hi,
Iam uploading data from flat file to sap, for CN22 transaction.
If i execute in foreground , it's working fine.
when iam trying to execute in background it is not updating.
i also used WAIT.
still it is not updating.
points will be rewarded,
thanks in advance,
ravi shankar reddyHi Ravi,
Iam using the same thing , but it is not working.
pls check the code.
REPORT zcn22networkid
NO STANDARD PAGE HEADING LINE-SIZE 255.
*include bdcrecx1.
DATA DECLARATIONS *
TYPES : BEGIN OF ty_rectab,
aufnr TYPE caufvd-aufnr,
vornr TYPE afvgd-vornr,
ltxa1 TYPE afvgd-ltxa1,
dauno(7), " TYPE afvgd-dauno,
arbei(9), " TYPE afvgd-arbei,
arbpl TYPE afvgd-arbpl,
mat_prkst(14), " TYPE afvgd-mat_prkst,
prkst(14), " TYPE afvgd-prkst,
waers TYPE afvgd-waers,
sakto TYPE afvgd-sakto,
END OF ty_rectab.
TYPES: BEGIN OF ty_msg,
msgnr(24), " TYPE bdcmsgcoll-msgnr,
msgtyp(10), "TYPE bdcmsgcoll-msgtyp,
message(500),
END OF ty_msg.
DATA : l_string(500).
DATA : fname TYPE string.
DATA : fname1 TYPE string.
DATA : l_indx(6) TYPE n.
DATA : l_indx1(6) TYPE n.
DATA : l_tab(1) TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.
DATA : g_fieldname TYPE string.
DATA : opt TYPE ctu_params.
INTERNAL TABLES *
DATA : it_upload TYPE string OCCURS 0 WITH HEADER LINE.
DATA : bdcdata TYPE STANDARD TABLE OF bdcdata WITH HEADER LINE.
DATA : messtab TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.
DATA : it_rec TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.
DATA : it_rec1 TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.
DATA : it_msg TYPE STANDARD TABLE OF ty_msg WITH HEADER LINE.
DATA : it_rec2 TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.
DATA : it_rec3 TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.
SELECTION SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME.
PARAMETERS : p_file TYPE rlgrap-filename OBLIGATORY.
PARAMETERS : r_fgrd RADIOBUTTON GROUP g1.
PARAMETERS : r_bgrd RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK block1.
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME.
PARAMETERS : p_efile TYPE rlgrap-filename. " OBLIGATORY.
SELECTION-SCREEN END OF BLOCK block2.
F4 HELP FOR FILE *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_efile.
PERFORM get_errorfile.
START-OF-SELECTION.
PERFORM upload_data.
*****FOR FOREGROUND*****
IF r_fgrd = 'X'.
opt-dismode = 'A'.
opt-updmode = 'S'.
opt-defsize = 'X'.
****FOR BACKGROUND******
ELSEIF r_bgrd = 'X'.
opt-dismode = 'N'.
opt-updmode = 'S'.
opt-defsize = 'X'.
ENDIF.
****BDC Data************
PERFORM bdc_data.
IF it_msg[] IS NOT INITIAL.
it_msg-msgnr = 'NetworkID'.
it_msg-msgtyp = 'Msgtyp'.
it_msg-message = 'Message'.
PERFORM download_errorfile.
ENDIF.
*& Form f4_filename *
FORM f4_filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM. " f4_filename
*& Form get_errorfile *
FORM get_errorfile .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_EFILE'
IMPORTING
file_name = p_efile.
ENDFORM. " get_errorfile
*& FORM UPLOAD_DATA *
FORM upload_data .
fname = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = fname
filetype = 'ASC'
TABLES
data_tab = it_upload
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 NE 0.
MESSAGE e001(00) WITH 'Error occurred while file reading'.
ELSE.
LOOP AT it_upload.
SPLIT it_upload AT l_tab INTO it_rec-aufnr
it_rec-vornr
it_rec-ltxa1
it_rec-dauno
it_rec-arbei
it_rec-arbpl
it_rec-mat_prkst
it_rec-prkst
it_rec-waers
it_rec-sakto IN CHARACTER MODE.
APPEND it_rec.
CLEAR it_rec.
ENDLOOP.
ENDIF.
ENDFORM. " upload_data
FORM BDC DATA
FORM bdc_data .
it_rec1[] = it_rec[].
SORT it_rec1 BY aufnr.
DELETE ADJACENT DUPLICATES FROM it_rec1 COMPARING aufnr.
LOOP AT it_rec.
IF ( ( it_rec-dauno IS NOT INITIAL ) AND
( it_rec-arbei IS NOT INITIAL ) AND
( it_rec-arbpl IS NOT INITIAL ) AND
( it_rec-mat_prkst IS NOT INITIAL ) ).
MOVE it_rec-aufnr TO it_rec2-aufnr.
MOVE it_rec-vornr TO it_rec2-vornr.
MOVE it_rec-ltxa1 TO it_rec2-ltxa1.
MOVE it_rec-dauno TO it_rec2-dauno.
MOVE it_rec-arbei TO it_rec2-arbei.
MOVE it_rec-arbpl TO it_rec2-arbpl.
MOVE it_rec-mat_prkst TO it_rec2-mat_prkst.
APPEND it_rec2.
CLEAR it_rec2.
ELSEIF ( ( it_rec-dauno IS INITIAL ) AND
( it_rec-arbei IS INITIAL ) AND
( it_rec-arbpl IS INITIAL ) AND
( it_rec-mat_prkst IS INITIAL ) ).
MOVE it_rec-aufnr TO it_rec3-aufnr.
MOVE it_rec-vornr TO it_rec3-vornr.
MOVE it_rec-ltxa1 TO it_rec3-ltxa1.
MOVE it_rec-prkst TO it_rec3-prkst.
MOVE it_rec-waers TO it_rec3-waers.
MOVE it_rec-sakto TO it_rec3-sakto.
APPEND it_rec3.
CLEAR it_rec3.
ENDIF.
ENDLOOP.
SORT it_rec2 BY aufnr.
SORT it_rec3 BY aufnr.
LOOP AT it_rec1.
CLEAR l_indx.
CLEAR l_indx1.
PERFORM bdc_dynpro USING 'SAPLCOKO' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'CAUFVD-AUFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'CAUFVD-AUFNR'
it_rec1-aufnr.
PERFORM bdc_dynpro USING 'SAPLCOKO' '2100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'CAUFVD-KTEXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=LIST'.
--table control--
LOOP AT it_rec2 WHERE aufnr = it_rec1-aufnr.
l_indx = l_indx + 1.
IF l_indx EQ 14 .
l_indx = l_indx MOD 12.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=P+'.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'AFVGD-DAUNO(' l_indx ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
'AFVGD-DAUNO'.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'AFVGD-ARBPL(' l_indx ')' INTO g_fieldname.
PERFORM bdc_field USING 'BDC_CURSOR'
g_fieldname.
CONCATENATE 'AFVGD-VORNR(' l_indx ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec2-vornr.
CONCATENATE 'AFVGD-LTXA1(' l_indx ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec2-ltxa1.
CONCATENATE 'AFVGD-DAUNO(' l_indx ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec2-dauno.
CONCATENATE 'AFVGD-ARBEI(' l_indx ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec2-arbei.
CONCATENATE 'AFVGD-ARBPL(' l_indx ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec2-arbpl.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec2-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec2-ltxa1.
PERFORM bdc_field USING 'AFVGD-ARBPL'
it_rec2-arbpl.
PERFORM bdc_field USING 'AFVGD-ARBEI'
it_rec2-arbei.
PERFORM bdc_field USING 'AFVGD-DAUNO'
it_rec2-dauno.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec2-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec2-ltxa1.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec2-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec2-ltxa1.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec2-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec2-ltxa1.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-MAT_PRKST'.
PERFORM bdc_field USING 'AFVGD-MAT_PRKST'
it_rec2-mat_prkst.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VSNETEXT-NPLNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ARBL'.
ENDLOOP.
LOOP AT it_rec3 WHERE aufnr = it_rec1-aufnr.
l_indx1 = l_indx1 + 1.
IF l_indx1 EQ 14 .
l_indx1 = l_indx1 MOD 12.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'..
PERFORM bdc_field USING 'BDC_OKCODE'
'=P+'.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
CONCATENATE 'AFVGD-SAKTO(' l_indx1 ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
'AFVGD-SAKTO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KOSL'.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VSNETEXT-NPLNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KOSL'.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'AFVGD-SAKTO(' l_indx1 ')' INTO g_fieldname.
PERFORM bdc_field USING 'BDC_CURSOR'
g_fieldname.
CONCATENATE 'AFVGD-VORNR(' l_indx1 ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec3-vornr.
CONCATENATE 'AFVGD-LTXA1(' l_indx1 ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec3-ltxa1.
CONCATENATE 'AFVGD-PRKST(' l_indx1 ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec3-prkst.
CONCATENATE 'AFVGD-WAERS(' l_indx1')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec3-waers.
CONCATENATE 'AFVGD-SAKTO(' l_indx1 ')' INTO g_fieldname.
PERFORM bdc_field USING g_fieldname
it_rec3-sakto.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec3-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec3-ltxa1.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-PRKST'.
PERFORM bdc_field USING 'AFVGD-PRKST'
it_rec3-prkst.
PERFORM bdc_field USING 'AFVGD-WAERS'
it_rec3-waers.
PERFORM bdc_field USING 'AFVGD-SAKTO'
it_rec3-sakto.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec3-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec3-ltxa1.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec3-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec3-ltxa1.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR'.
PERFORM bdc_field USING 'AFVGD-VORNR'
it_rec3-vornr.
PERFORM bdc_field USING 'AFVGM-LTXA1'
it_rec3-ltxa1.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VSNETEXT-NPLNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ARBL'.
ENDLOOP.
CLEAR it_rec.
WAIT UP TO 10 SECONDS.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VSNETEXT-NPLNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
REFRESH messtab.
CLEAR messtab.
CALL TRANSACTION 'CN22' USING bdcdata
OPTIONS FROM opt MESSAGES INTO messtab.
********ERROR MESSAGES TABLE************
LOOP AT messtab WHERE ( msgtyp = 'E' ).
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = messtab-msgid
lang = '-D'
no = messtab-msgnr
v1 = messtab-msgv1
v2 = messtab-msgv2
v3 = messtab-msgv3
v4 = messtab-msgv4
IMPORTING
msg = l_string
EXCEPTIONS
not_found = 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.
ELSE.
it_msg-msgnr = it_rec-aufnr.
it_msg-msgtyp = messtab-msgtyp.
it_msg-message = l_string.
APPEND it_msg.
CLEAR it_msg.
CLEAR l_string.
CLEAR messtab.
ENDIF.
ENDLOOP. "IT_REC
REFRESH bdcdata.
CLEAR bdcdata.
ENDLOOP. "IT_REC1
ENDFORM. " bdc_data
Start new screen *
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "BDC_FIELD
*& Form download_errorfile *
FORM download_errorfile .
fname1 = p_efile.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = fname1
filetype = 'ASC'
write_field_separator = 'X'
TABLES
data_tab = it_msg[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " download_errorfile -
Hi,
I want to upload data for the Tcode IW21,I tried to make BDC but i was giving only 1 problem that it is not able to capture the screen for Long Text as it is used as script handling.i am able to find a BAPI but i dont know how to use it,i tried to do work through LSMW but there is no information. Pleas provide me guidelines how to solve this problem.. I am providing the link to the code which i had developed(BDC) for the tcode IW21 .
Here's the code:-
http://docs.google.com/View?id=dfxswwff_3gtn9qsdp
Edited by: ricx .s on Jun 24, 2009 6:24 AMhi,
Thanks for your help. Can i use BAPI to upload data for IW21 and how to trace the fields of a BAPI to upload the data .
Here's the code which i searched on net bu there is no information regarding the fields tobe traced and should i include it in my code which i had provided above ?
data: i_bapi2080_nothdri type standard table of bapi2080_nothdri with header line.
data: i_bapiret2 type standard table of bapiret2 with header line.
data: i_bapi2080_nothdre type standard table of bapi2080_nothdre with header line.
data: i_bapi2080_notfulltxti type standard table of bapi2080_notfulltxti with header line.
* create header data
i_bapi2080_nothdri-refobjectkey = 'PJAREF'.
i_bapi2080_nothdri-equipment = '10000030'.
i_bapi2080_nothdri-reportedby = 'PJAREP'.
i_bapi2080_nothdri-short_text = 'PJA Short Test from BAPI'.
i_bapi2080_nothdri-priority = '1'.
* create header long text
i_bapi2080_notfulltxti-objtype = 'QMEL'.
i_bapi2080_notfulltxti-FORMAT_COL = 'U1'.
i_bapi2080_notfulltxti-text_line = 'Long text 1'.
append i_bapi2080_notfulltxti.
i_bapi2080_notfulltxti-objtype = 'QMEL'.
i_bapi2080_notfulltxti-FORMAT_COL = 'U1'.
i_bapi2080_notfulltxti-text_line = 'Long text 2'.
append i_bapi2080_notfulltxti.
call function 'BAPI_ALM_NOTIF_CREATE'
exporting
* EXTERNAL_NUMBER =
notif_type = 'M1'
notifheader = i_bapi2080_nothdri
* TASK_DETERMINATION = ' '
* SENDER =
* ORDERID =
importing
notifheader_export = i_bapi2080_nothdre
tables
* NOTITEM =
* NOTIFCAUS =
* NOTIFACTV =
* NOTIFTASK =
* NOTIFPARTNR =
longtexts = i_bapi2080_notfulltxti
* KEY_RELATIONSHIPS =
return = i_bapiret2.
call function 'BAPI_ALM_NOTIF_SAVE'
exporting
number = i_bapi2080_nothdre-notif_no
* IMPORTING
* NOTIFHEADER =
* TABLES
* RETURN =
call function 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
Please provide me guidelines for it.Is there any way to upload the data for this Tcode IW21 through LSMW?
Edited by: ricx .s on Jun 24, 2009 10:20 AM -
Uploading data from flat file to table control
HI All,
I want to upload data to OVKK tcode using BDC. For this I wrote Z program as shown below:
REPORT ZSD_BDC_OVKK_UPLOAD
NO STANDARD PAGE HEADING LINE-SIZE 255.
*INCLUDE bdcrecx1.
DATA : BEGIN OF T_DUMMY OCCURS 0,
VAR(100) TYPE C,
END OF T_DUMMY.
DATA: BEGIN OF ITAB OCCURS 0,
KALSM(10) TYPE C,
* KARTV(10) TYPE C,
VKORG(4) TYPE C,
VTWEG(2) TYPE C,
SPART(2) TYPE C,
KALVG(1) TYPE C,
KALKS(1) TYPE C,
KALSM(6) TYPE C,
KARTV(4) TYPE C,
END OF ITAB.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : v_filename TYPE string.
PARAMETER : filename LIKE rlgrap-filename OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
field_name = filename
CHANGING
file_name = filename.
START-OF-SELECTION.
v_filename = filename.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = T_DUMMY.
LOOP AT T_DUMMY.
ITAB-VKORG = T_DUMMY-VAR+0(4).
ITAB-VTWEG = T_DUMMY-VAR+5(2).
ITAB-SPART = T_DUMMY-VAR+8(2).
ITAB-KALVG = T_DUMMY-VAR+11(1).
ITAB-KALKS = T_DUMMY-VAR+13(1).
ITAB-KALSM = T_DUMMY-VAR+15(6).
ITAB-KARTV = T_DUMMY-VAR+22(4).
APPEND ITAB.
ENDLOOP.
DATA: FNAM(20) TYPE C,
IDX TYPE C.
MOVE 1 TO IDX.
LOOP AT ITAB.
REFRESH IT_BDCDATA.
PERFORM bdc_dynpro USING 'SAPML080Z' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-KALSM(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=NEWL'.
PERFORM bdc_dynpro USING 'SAPML080Z' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-VKORG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
CONCATENATE 'V_T683V-KALSM(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kalsm.
CONCATENATE 'V_T683V-KARTV(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kartv.
CONCATENATE 'V_T683V-VKORG(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-vkorg.
CONCATENATE 'V_T683V-VTWEG(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-vtweg.
CONCATENATE 'V_T683V-SPART(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-spart.
CONCATENATE 'V_T683V-KALVG(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kalvg.
CONCATENATE 'V_T683V-KALKS(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kalks.
PERFORM bdc_dynpro USING 'SAPLSTRD' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KO008-TRKORR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=LOCK'.
PERFORM bdc_field USING 'KO008-TRKORR'
'D47K919377'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-VKORG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-VKORG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
CALL TRANSACTION 'OVKK' USING IT_BDCDATA
MODE 'A'
UPDATE 'S'
MESSAGES INTO IT_BDCMSGCOLL.
IDX = IDX + 1 .
endloop.
FORM BDC_DYNPRO USING PROG SCR.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROG.
IT_BDCDATA-DYNPRO = SCR.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
I checked in debugging mode and found that data is passed to internal table but its not uploading data to OVKK, there no data is displayed.
Please tell me solution for this.....
regards,
ravindra.Hi,
Look at the following link you will find some good example of Table control.
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
Here you need to take care to which line of table control you are populating the data.
Make sure to take care of page down in table control.
*********Try Call Transaction in MODE 'N'.
Check your OK_CODE once again.
Try to give BACk also after saving.
The Table control is mainly used to update no.of line items at one shot. No need to come BACK for each and every record.
Try to do recording in SHDB once again and see the changes closely.
Thanks.
If this helps you reward with points.
Message was edited by: KDeepak
Message was edited by: KDeepak -
Uploading data thru BDC into APPCREATE transaction
Hi,
I have used BDC to upload data in the tcode APPCREATE. When I see the uploading using the call transaction method, I am able to see that all the screens are getting populated correctly. But, When I check the result of the upload in APPSEARCH tcode, i am not able to see the completed status. Still the status is 'In Preparation'.
But manually, I am able to do that. I just want to find out if any keys needs to be activated/changed before doing the upload thru BDC.
Thanks & Regards,
SureshHi,
I have used BDC to upload data in the tcode APPCREATE. When I see the uploading using the call transaction method, I am able to see that all the screens are getting populated correctly. But, When I check the result of the upload in APPSEARCH tcode, i am not able to see the completed status. Still the status is 'In Preparation'.
But manually, I am able to do that. I just want to find out if any keys needs to be activated/changed before doing the upload thru BDC.
Thanks & Regards,
Suresh -
Problem with uploading data from excel using BDC for tcode f-02
Hi All,
I am uploading data from excel using BDC for tcode f-02. The problem here is, while recording, the values of some fields are recording twice. I dont know why it's happening so. But if I run my abap program, I have to give those fields twice in my excel sheet. Otherwise data does not upload. But it is not the feasible way. We must give those fields once in excel. Please tell me, how I can solve the issue.
With regards,
Rosaline.Hi,
in BDC each and every action is recording. If your press enter in same screen that also recorded once aging may be this is your case repeating field values will appear. we can solve the problem for repeat fields like below.
suppose in your excel having repeated field X1 X2 X3 the X2 contains repeated field X3 means delete the X3 field.
Now In your itab having X1 and X2 fields. While in the LOOP the ITAB pass the X2 field to repeated the fields.
LOOP at ITAB to WA.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM08M-EBELN'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'INVFO-BLDAT'.
bdcdata_wa-fval = wa-X2." 1st time pass the X2 fields
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'INVFO-BLDAT'.
bdcdata_wa-fval = wa-X2." pass the same value to repeated field
APPEND bdcdata_wa TO bdcdata_tab.
Endloop.
Hope you can understand.
Regards,
Dhina.. -
Tcode to upload data into CATSDB table
Hi All,
Could anyone let me know what is the TCODE that we will record and upload data into CATSDB table in HR ABAP.
Regards,
Srinivas.Hi,
I also need the same information...i.e i want to record overtime of Employees...Where to do this?
I tried creating it in PA61. I am able to create it with attendance type. But its triggering the CREATED method of ATTENDANCE Bus. Object. But i have been asked to use CREATED method CATS Bus. Object.
Can anyone help me in this??? Also tell me how make entries in CAT2 ....
Thanks,
Sivagami.R -
Tcode to upload data into CATSDB table in HR ABAP
Hi All,
Could anyone let me know what is the TCODE to upload data into CATSDB table in HR ABAP.
Regards,
Srinivas.Thanks for your reply but i'm not able to find the required fields to upload.
those are : pernr - employee number(ok)
workdate - date
awart - att./absence type
lgart - wage type
meinh - unit of measure
catsquantity- quantity number
Regards,
Srinivas -
Upload data from excel to application server
Hi all,
Is there any process to upload data from excel to application server other than reading the data from excel to z program through gui_upload and transferring the data to application server.
I want to run background job for a BDC program with the data present in the excel file.
Thanks & regards
sreehari p.Hi Sreehari,
Please use the tcode - CG3Z, where you can transfer the file from presentation server to the application server.
Regards,
Selva K. -
Problem in uploading data to psa.
Hi experts,
im having problems in uploading data to psa using info package in HR info area.
while monitoring the info package the following error comes with red traffic signal..
Request still running
Diagnosis
No errors found. The current process has probably not finished yet.
System Response
The ALE inbox of BI is identical to the ALE outbox of the source system
or
the maximum wait time for this request has not yet been exceeded
or
the background job has not yet finished in the source system.
Current status
No Idocs arrived from the source system.
So , please help me in this regard...
waiting for your reply...Hi,
You may need to check for pending TRFCs/IDOCs in source system in Tcode SM58 and BD87 and process them manually.
ProcessI DOCS Manually
http://help.sap.com/saphelp_nw04s/helpdata/en/0b/2a6620507d11d18ee90000e8366fc2/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b815e43d711d1893e0000e8323c4f/content.htm
&messageID=2311994
Thanks,
JituK
Maybe you are looking for
-
Can we cache the remote object?
hi, can we cache the remote object? is this right way of doing? please suggest me regards crr
-
Connecting to different servers with Oracle Rdb
Hi, I have downloaded the Odbc-Driver driver for Rdb and made successful connections to my database server. The name of the server is hardcoded with the odbc administrator. How is it possible to use different servers from asp-script ? regards Martin
-
HELP - Sad face! used iPod 40GB from ebay
I'm a newbie with no clue! I bought this ipod for a Christmas present on ebay. It did not come with software... I'm freaked because when I turn it on I get the sad face. And I have no idea where to start debugging this. Are either of these the right
-
For MAC X10.3 - need a cheap Audio converter RAM to MP3
Subject : Looking for cheap Audio converter RAM to MP3 ? Dear All, We would like to convert a RealAudio "ram" file to Mp3. Is there a "free / shareware" pogram to do this ? Otherwise, what should I do ? Thanks. Kevin in Lille P.S. Not sure where to p
-
Hi I have iMovie 4 - I am creating a very short video using 2 audio files and edited video footage with altered (sped up) speed. As soon as I sped the speed up to the fastest setting, both audio and video stutter like crazy. Its imperitave that the v