MB11 BDC upload issue
hi experts.
I am using a BDC-UPLOAD program for MB11 but there is one error during an upload.
Here is a procedure which i am following:
I have created an upload file, which is tab-delimited format. In which such information exists:
01.12.2008 12.12.2008 561 d920 m920 536319000 1 PC 100
Now when i am uploading this file using movement type P61 or 561 a same error occurs:
Formatting error in the field MSEG-EXBWR ; see next message
Make an entry in all required fields and this is a required field, its a currency type field but i have even checked it by replacing it into char & num.
Is there any standard upload program for STOCK UPLOAD using MB11? If there is any one who can send me a solution.
thanks in advance.
Regards,
Yahya Shoaib.
Hi,
For Stock upload I prefer creation of a program by calling Function Module BAPI_GOODSMVT_CREATE. When you use BAPI, as it is being function module you need not do the recording as well. You can test the BAPI also manually in SE37. This simulation helps in passing the data in the feed file. You may contact your ABAPer for creating a program using this BAPI. You can input the feed file in similar fashion that of BDC
Similar Messages
-
hi experts.
I am using a BDC-UPLOAD program for MB11 but there is one error during an upload.
Here is a procedure which i am following:
I have created an upload file, which is tab-delimited format. In which such information exists:
01.12.2008 12.12.2008 561 d920 m920 536319000 1 PC 100
Now when i am uploading this file using movement type P61 or 561 a same error occurs:
Formatting error in the field MSEG-EXBWR ; see next message
Make an entry in all required fields and this is a required field, its a currency type field but i have even checked it by replacing it into char & num.
Is there any standard upload program for STOCK UPLOAD using MB11? If there is any one who can send me a solution.
thanks in advance.
Regards,
Yahya Shoaib.OK...I think you have declared the internal table field for that value same as the standard table right??
Now, create a variable with char and then move the value to that char variable and then pass it to the subroutines...
Ex:
loop at itab into wa.
var1 = wa-amount
perform bdc_field using mseg-exwbr var1.
endloop.
Now, I think it will pick up the value.
VIshwa. -
BDC upload problem in hr master
Hi,
we are facing a problem in BDC upload for hr master tcode pa40.
we want to stop bdc after 2 screens only and not process further screens. how to do this?
please help
Thanks.Hi,
If you are using Session Mode :
After 2nd screen's is porcessed Use \BEND in the ok code field of BDC TABLE.
This will work,
Regards,
Gurpreet. -
BDC upload program for inoftypes 14 and 168
Hi All,
I am uploading IT 14 and 168 through a single BDC program. i am opening the bdc session using
BDC_OPEN_GROUP before bdc recording. my requirement is to upload IT 168 only when uploading
of IT 14 is successful. For this i am using the message table of the first upload(for IT14). if the message
type is 'S'(success) then i am uploading IT168 else i am moving it to an error internal table. Please suugest
wthr this logic is fine. Also where should i call BDC_CLOSE_GROUP. currently i am calling it after the
PERFORM for upload of infotype 168 but it is giving error "unable to open BDC_CLOSE_GROUP".
Can anyone suggest me the solution through some sample code.
i am attaching here my code for your reference.
REPORT ZUSAHR_IN_BN_E_014_168 NO STANDARD PAGE HEADING
LINE-COUNT 65 LINE-SIZE 132.
*=======================================================================
TYPE-POOLS
*=======================================================================
TYPE-POOLS: slis,
truxs.
*=======================================================================
TABLES
*=======================================================================
TABLES: pernr.
*=======================================================================
INFOTYPES
*=======================================================================
INFOTYPES: 0000, "Action
0014, "Recurring payement/deductions
0168. "Insurance plan
*=======================================================================
TYPES
*=======================================================================
TYPES : BEGIN OF t_0014_0168,
num(20) type c, "Number
actcode(1) type c, "action code
lgart LIKE p0014-lgart, "Wage Type
betrg LIKE q0014-betrg, "Amount
betrg(14) type c, "Amount
bplan LIKE p0168-bplan, "Benefit plan
bcovr like p0168-bcovr, "Insurance Option
END OF t_0014_0168,
BEGIN OF t_pernr,
pernr LIKE p0002-pernr, "personnel number
perid like p0002-perid, "SSN
END OF t_pernr,
BEGIN OF errmsg,
pernr LIKE p0014-pernr, "personnel number
messg(85), " message text
END OF errmsg,
BEGIN OF succmsg,
pernr LIKE p0014-pernr, "personnel number
messg(85), " message text
END OF succmsg.
*=======================================================================
INTERNAL TABLES
*=======================================================================
DATA : i_itab TYPE STANDARD TABLE OF t_0014_0168,
i_pernr TYPE STANDARD TABLE OF t_pernr,
i_bdcitab TYPE STANDARD TABLE OF bdcdata ,
i_bdcmsgcoll TYPE STANDARD TABLE OF bdcmsgcoll,
i_errmsg TYPE STANDARD TABLE OF errmsg,
i_succmsg TYPE STANDARD TABLE OF succmsg.
*=======================================================================
RANGES
*=======================================================================
*=======================================================================
DATA DECLARATION
*=======================================================================
DATA : messg(85).
*=======================================================================
GLOBAL WORKAREAS
*=======================================================================
DATA : wa_itab TYPE t_0014_0168,
wa_pernr TYPE t_pernr,
wa_bdcitab TYPE bdcdata ,
wa_bdcmsgcoll TYPE bdcmsgcoll,
wa_errmsg TYPE errmsg,
wa_succmsg TYPE succmsg.
*=======================================================================
GLOBAL VARIABLES
*=======================================================================
DATA : g_n1 TYPE sy-dbcnt.
*=======================================================================
GLOBAL CONSTANTS
*=======================================================================
DATA : g_x TYPE c VALUE 'X',
g_asc TYPE char10 VALUE 'ASC',
g_xls(3) TYPE c VALUE 'XLS',
g_f TYPE c VALUE 'F',
g_1 TYPE c VALUE '1',
g_0 TYPE c VALUE '0',
g_u TYPE c VALUE 'U',
g_int(3) TYPE c VALUE 'INT',
g_raw(3) TYPE c VALUE 'RAW',
G_A(1) TYPE C VALUE 'A',
G_C(1) TYPE C VALUE 'C',
G_D(1) TYPE C VALUE 'D'.
*=======================================================================
SELECTION-SCREEN
*=======================================================================
*Block for Additional selection
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_check TYPE char1 DEFAULT 'X', "check box for test run
p_file1 TYPE rlgrap-filename OBLIGATORY, " upload file
p_file2 TYPE rlgrap-filename OBLIGATORY, " succ emp
p_file3 TYPE rlgrap-filename OBLIGATORY. " err emp
SELECTION-SCREEN END OF BLOCK b1.
*=======================================================================
AT SELECTION-SCREEN
*=======================================================================
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
PERFORM sub_file_intake.
*=======================================================================
START-OF-SELECTION
*=======================================================================
START-OF-SELECTION.
PERFORM sub_data_upload.
PERFORM GET_PERNR_SSN.
*=======================================================================
END-OF-SELECTION
*=======================================================================
END-OF-SELECTION.
*> upload the data using BDC
PERFORM sub_bdc_upload.
*> To display the contents of the input file for test run
IF p_check = space.
PERFORM sub_output.
ELSE.
*> To display in the messages after uploading the input file
PERFORM sub_output_messages.
ENDIF.
*& Form sub_file_intake
F4 on filename to accept file
--> p1 text
<-- p2 text
FORM sub_file_intake .
To provide F4 Functionality for file path
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = syst-repid
CHANGING
file_name = p_file1
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.
ENDFORM. " sub_file_intake
*& Form SUB_DATA_UPLOAD
Upload the input file and perform the checkings.
--> p1 text
<-- p2 text
FORM SUB_DATA_UPLOAD .
*> local variable for filename
DATA : l_file1 TYPE string.
*> assign value for file1.
l_file1 = p_file1.
*> function to upload the input file
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_file1
filetype = g_asc
has_field_separator = g_x
TABLES
data_tab = i_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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " SUB_DATA_UPLOAD
*& Form sub_output
if program is on test run mode then display records
FORM sub_output .
*> Count the number of employee to be processed
CLEAR g_n1.
DESCRIBE TABLE i_itab LINES g_n1.
IF g_n1 NE 0.
*> if program is in test run mode then display
LOOP AT i_itab INTO wa_itab.
WRITE: / wa_itab-num,
wa_itab-lgart,
wa_itab-betrg,
wa_itab-bplan,
wa_itab-bcovr.
ENDLOOP.
ENDIF.
ENDFORM. " sub_output
*& Form sub_bdc_upload
bdc upload
FORM sub_bdc_upload .
*> Count the number of employee to be processed
CLEAR g_n1.
DESCRIBE TABLE i_itab LINES g_n1.
IF g_n1 NE 0.
PERFORM sub_open_group.
PERFORM sub_bdc_sessions.
PERFORM sub_close_group.
ELSE.
MESSAGE e003(zmsg) WITH text-021.
ENDIF.
ENDFORM. " sub_bdc_upload
*& Form sub_open_group
bdc_open_group
FORM sub_open_group .
*> group name
DATA : c_group LIKE apqi-groupid .
c_group = text-001.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = c_group
holddate = sy-datum
keep = g_x
user = sy-uname
prog = sy-cprog
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.
ENDIF.
ENDFORM. " sub_open_group
*& Form sub_close_group
Close the BDC Session
FORM sub_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. " sub_close_group
*& Form sub_bdc_sessions
BDC Sessions
FORM sub_bdc_sessions .
*> Local Constants
DATA: l_ctumode LIKE ctu_params-dismode VALUE 'A',
l_cupdate LIKE ctu_params-updmode VALUE 'S',
l_startdate(10) type c,
l_enddate(10) type c,
l_tcode(4) TYPE c VALUE 'PA30',
l_info(2) TYPE c VALUE '14'.
LOOP AT i_itab INTO wa_itab.
perform bdc_dynpro using 'SAPMP50A' '1000'.
IF wa_itab-actcode = G_A.
perform bdc_field using 'BDC_OKCODE'
'=INS'.
ELSEIF wa_itab-actcode = G_D.
perform bdc_field using 'BDC_OKCODE'
'=DEL'.
ELSEIF wa_itab-actcode = G_C.
perform bdc_field using 'BDC_OKCODE'
'=MOD'.
ENDIF.
perform bdc_field using 'RP50G-PERNR' wa_itab-num.
perform bdc_field using 'RP50G-TIMR6'
'X'.
perform bdc_field using 'BDC_CURSOR'
'RP50G-CHOIC'.
perform bdc_field using 'RP50G-CHOIC' l_info.
perform bdc_dynpro using 'MP001400' '2010'.
perform bdc_field using 'BDC_CURSOR'
'Q0014-BETRG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'P0014-BEGDA'
'03/18/2008'.
perform bdc_field using 'P0014-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0014-LGART' wa_itab-lgart.
perform bdc_field using 'Q0014-BETRG' wa_itab-betrg.
perform bdc_field using 'Q0014-BETRG'
wa_itab-betrg.
' 248'.
perform bdc_field using 'P0014-BETRG' wa_itab-betrg.
perform bdc_field using 'P0014-WAERS'
'USD'.
perform bdc_dynpro using 'MP001400' '2010'.
perform bdc_field using 'BDC_CURSOR'
'P0014-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0014-BEGDA'
'03/18/2008'.
perform bdc_field using 'P0014-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0014-LGART' wa_itab-lgart.
perform bdc_field using 'Q0014-BETRG' wa_itab-betrg.
perform bdc_field using 'P0014-BETRG' wa_itab-betrg.
perform bdc_field using 'P0014-WAERS'
'USD'.
*> refresh the message tab
REFRESH i_bdcmsgcoll.
CALL TRANSACTION l_tcode USING i_bdcitab
MODE l_ctumode
UPDATE l_cupdate
MESSAGES INTO i_bdcmsgcoll.
*> refresh the bdc data tab
REFRESH i_bdcitab.
*> store the message for this pernr
PERFORM sub_build_messages.
ENDLOOP.
ENDFORM. " sub_bdc_sessions
Start new screen *
FORM bdc_dynpro USING program dynpro.
CLEAR wa_bdcitab.
wa_bdcitab-program = program.
wa_bdcitab-dynpro = dynpro.
wa_bdcitab-dynbegin = g_x.
APPEND wa_bdcitab TO i_bdcitab.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR wa_bdcitab.
wa_bdcitab-fnam = fnam.
wa_bdcitab-fval = fval.
APPEND wa_bdcitab TO i_bdcitab.
ENDIF.
ENDFORM. "BDC_FIELD
*& Form sub_build_messages
Generate the messages
FORM sub_build_messages .
*> Local Constants
DATA : l_s TYPE c VALUE 'S'.
LOOP AT i_bdcmsgcoll INTO wa_bdcmsgcoll.
*> generate the message
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = wa_bdcmsgcoll-msgid
msgnr = wa_bdcmsgcoll-msgnr
msgv1 = wa_bdcmsgcoll-msgv1
msgv2 = wa_bdcmsgcoll-msgv2
msgv3 = wa_bdcmsgcoll-msgv3
msgv4 = wa_bdcmsgcoll-msgv4
IMPORTING
message_text_output = messg
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
*> if message type is 'S' then store in successful table
IF wa_bdcmsgcoll-msgtyp = l_s.
MOVE wa_itab-num TO wa_succmsg-pernr.
MOVE messg TO wa_succmsg-messg.
APPEND wa_succmsg TO i_succmsg.
CLEAR wa_succmsg.
PERFORM BDC_UPLOAD_168.
ELSE.
*> if message type is 'E' then store in error table
MOVE wa_itab-num TO wa_errmsg-pernr.
MOVE messg TO wa_errmsg-messg.
APPEND wa_errmsg TO i_errmsg.
CLEAR wa_errmsg.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " sub_build_messages
*& Form sub_output_messages
text
--> p1 text
<-- p2 text
FORM sub_output_messages .
IF p_check = g_x.
*> clear the count
CLEAR g_n1.
*> count the number of successful employees
DESCRIBE TABLE i_succmsg LINES g_n1.
IF g_n1 <> 0 .
*> download success file
PERFORM sub_succ_file.
*> display the successful employees
WRITE :/ text-002.
LOOP AT i_succmsg INTO wa_succmsg.
WRITE:/ wa_succmsg-pernr, wa_succmsg-messg.
ENDLOOP.
ENDIF.
*> clear the count
CLEAR g_n1.
*> count the number of error employees
DESCRIBE TABLE i_errmsg LINES g_n1.
IF g_n1 <> 0 .
*> download error file
PERFORM sub_err_file.
*> display the error employees
WRITE :/ text-003.
LOOP AT i_errmsg INTO wa_errmsg.
WRITE:/ wa_errmsg-pernr,wa_errmsg-messg.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " sub_output_messages
*& Form SUB_SUCC_FILE
text
--> p1 text
<-- p2 text
FORM sub_succ_file .
*> local variable for filename
DATA : l_file1 TYPE string.
*> assign value for file1.
l_file1 = p_file2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_file1
filetype = g_asc
TABLES
data_tab = i_succmsg
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 EQ 0.
MESSAGE s003(zmsg) WITH text-006.
ENDIF.
ENDFORM. " SUB_SUCC_FILE
*& Form SUB_ERR_FILE
text
--> p1 text
<-- p2 text
FORM sub_err_file .
*> local variable for filename
DATA : l_file1 TYPE string.
*> assign value for file1.
l_file1 = p_file3.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_file1
filetype = g_asc
TABLES
data_tab = i_errmsg
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 EQ 0.
MESSAGE s003(zmsg) WITH text-007.
ENDIF.
ENDFORM. " SUB_ERR_FILE
*& Form GET_PERNR_SSN
text
--> p1 text
<-- p2 text
FORM GET_PERNR_SSN .
data : l_cnt type i.
describe table i_itab lines l_cnt.
if l_cnt ge 0.
SELECT PERNR PERID FROM PA0002 INTO table i_pernr
FOR ALL ENTRIES IN i_itab
WHERE PERID EQ i_itab-num.
IF SY-SUBRC EQ 0.
PERFORM MODIFY_TABLE.
ENDIF.
endif.
ENDFORM. " GET_PERNR_SSN
*& Form MODIFY_TABLE
text
--> p1 text
<-- p2 text
FORM MODIFY_TABLE .
LOOP AT i_itab INTO wa_itab.
READ TABLE i_pernr INTO wa_pernr WITH KEY perid = wa_itab-num.
IF SY-SUBRC EQ 0.
MOVE WA_PERNR-PERNR TO WA_ITAB-NUM.
MODIFY i_itab FROM wa_itab.
ENDIF.
ENDLOOP.
ENDFORM. " MODIFY_TABLE
*& Form BDC_UPLOAD_168
text
--> p1 text
<-- p2 text
FORM BDC_UPLOAD_168 .
PERFORM sub_open_group.
PERFORM sub_bdc_sessions_168.
PERFORM sub_close_group.
ENDFORM. " BDC_UPLOAD_168
*& Form SUB_BDC_SESSIONS_168
text
--> p1 text
<-- p2 text
FORM SUB_BDC_SESSIONS_168 .
DATA: l_ctumode LIKE ctu_params-dismode VALUE 'A',
l_cupdate LIKE ctu_params-updmode VALUE 'S',
l_sdate(10) type c,
l_edate(10) type c,
l_tcode(4) TYPE c VALUE 'PA30',
l_info(3) TYPE c VALUE '168'.
LOOP AT i_itab INTO wa_itab.
perform bdc_dynpro using 'SAPMP50A' '1000'.
IF wa_itab-actcode = G_A.
perform bdc_field using 'BDC_OKCODE'
'=INS'.
ELSEIF wa_itab-actcode = G_D.
perform bdc_field using 'BDC_OKCODE'
'=DEL'.
ELSEIF wa_itab-actcode = G_C.
perform bdc_field using 'BDC_OKCODE'
'=MOD'.
ENDIF.
perform bdc_field using 'RP50G-PERNR' wa_itab-num.
perform bdc_field using 'RP50G-TIMR6'
'X'.
perform bdc_field using 'BDC_CURSOR'
'RP50G-CHOIC'.
perform bdc_field using 'RP50G-CHOIC' l_info.
perform bdc_dynpro using 'MP016800' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'P0168-BEGDA'
'03/18/2008'.
perform bdc_field using 'P0168-ENDDA'
'12/31/9999'.
perform bdc_field using 'BDC_CURSOR'
'P0168-BCOVR'.
perform bdc_field using 'P0168-BPLAN' wa_itab-bplan.
perform bdc_field using 'P0168-BCOVR' wa_itab-bcovr.
perform bdc_field using 'Q0168-CSTDT'
'03/18/2008'.
perform bdc_field using 'Q0168-EEPER'
'2'.
perform bdc_field using 'P0168-PERIO'
'2'.
perform bdc_dynpro using 'MP016800' '2000'.
perform bdc_field using 'BDC_CURSOR'
'P0168-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0168-BEGDA'
'03/18/2008'.
perform bdc_field using 'P0168-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0168-BPLAN' wa_itab-bplan.
perform bdc_field using 'P0168-BCOVR' wa_itab-bcovr.
perform bdc_field using 'Q0168-CSTDT'
'03/18/2008'.
perform bdc_field using 'Q0168-EEPER'
'2'.
*> refresh the message tab
REFRESH i_bdcmsgcoll.
CALL TRANSACTION l_tcode USING i_bdcitab
MODE l_ctumode
UPDATE l_cupdate
MESSAGES INTO i_bdcmsgcoll.
*> refresh the bdc data tab
REFRESH i_bdcitab.
*> store the message for this pernr
PERFORM sub_build_messages_168.
ENDLOOP.
ENDFORM. " SUB_BDC_SESSIONS_168
*& Form SUB_BUILD_MESSAGES_168
text
--> p1 text
<-- p2 text
FORM SUB_BUILD_MESSAGES_168 .
*> Local Constants
DATA : l_s TYPE c VALUE 'S'.
LOOP AT i_bdcmsgcoll INTO wa_bdcmsgcoll.
*> generate the message
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = wa_bdcmsgcoll-msgid
msgnr = wa_bdcmsgcoll-msgnr
msgv1 = wa_bdcmsgcoll-msgv1
msgv2 = wa_bdcmsgcoll-msgv2
msgv3 = wa_bdcmsgcoll-msgv3
msgv4 = wa_bdcmsgcoll-msgv4
IMPORTING
message_text_output = messg
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
*> if message type is 'S' then store in successful table
IF wa_bdcmsgcoll-msgtyp = l_s.
MOVE wa_itab-num TO wa_succmsg-pernr.
MOVE messg TO wa_succmsg-messg.
APPEND wa_succmsg TO i_succmsg.
CLEAR wa_succmsg.
ELSE.
*> if message type is 'E' then store in error table
MOVE wa_itab-num TO wa_errmsg-pernr.
MOVE messg TO wa_errmsg-messg.
APPEND wa_errmsg TO i_errmsg.
CLEAR wa_errmsg.
ENDIF.
ENDIF.
ENDLOOP.
Many thanks in advance!!!!
RupeshFor the IDOC perspective, you can uses CREMAS.
For the mass maintenance you still have XK99 (which also uses CREMAS internally)
True there is NO BAPI
For the BDC and the table control. Well this is not really true.
In batchinput, instead of maintaining the rows by there Number, you should select it at the first position.
OK-CODE /06 will open a selection screen SAPMF02K 2324. The result of the selection screen goes to the first line of the table control.
Of course this works only in BDC
reward points if helpful
Edited by: Alain Bacchi on Jun 18, 2008 8:48 AM -
can u send me the step by step process for a BDC program
i had given a excel sheet with field names and length .....that is to be uploaded
it is material master(MM01)
thanks in advanceHi,
for the bdc upload
step1. go to the Transaction SHDb and create a new recording for the transaction MM01 and save the recording.
step 2: from the same transaction select the recording and go the program.
Note: if you have ur file in presentation server insted of open dataset use gui_upload.
make the needed necessary changes in the coding.
i've attached the sample coding, keep that as reference and do according to your need.
REPORT zmm01_bdc
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE bdcrecx1.
DATA: dataset(132) TYPE c.
DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
If it is nessesary to change the data section use the rules:
1.) Each definition of a field exists of two lines
2.) The first line shows exactly the comment
'* data element: ' followed with the data element
which describes the field.
If you don't have a data element use the
comment without a data element name
3.) The second line shows the fieldname of the
structure, the fieldname must consist of
a fieldname and optional the character '_' and
three numbers and the field length in brackets
4.) Each field must be type C.
Generated data section with specific formatting - DO NOT CHANGE ***
DATA: BEGIN OF record,
data element: MATNR
matnr_001(018),
data element: MBRSH
mbrsh_002(001),
data element: MTART
mtart_003(004),
data element: XFELD
kzsel_01_004(001),
data element: XFELD
kzsel_02_005(001),
data element: MATNR
matnr_006(018),
data element: MBRSH
mbrsh_007(001),
data element: MTART
mtart_008(004),
data element: XFELD
kzsel_01_009(001),
data element: XFELD
kzsel_02_010(001),
data element: MAKTX
maktx_011(040),
data element: MEINS
meins_012(003),
data element: MATKL
matkl_013(009),
data element: MTPOS_MARA
mtpos_mara_014(004),
data element: MAKTX
maktx_015(040),
END OF record.
DATA l_lines TYPE i .
DATA it_record LIKE TABLE OF record WITH HEADER LINE .
DATA wa_record LIKE record .
End generated data section ***
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename ='C:\MM01_FILE.TXT'
filetype = 'ASC'
has_field_separator = '#'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
PERFORM open_dataset USING dataset.
PERFORM open_group.
DO.
READ DATASET dataset INTO record.
IF sy-subrc <> 0. EXIT. ENDIF.
LOOP AT it_record INTO wa_record.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MTART'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MATNR'
record-matnr_001.
PERFORM bdc_field USING 'RMMG1-MBRSH'
record-mbrsh_002.
PERFORM bdc_field USING 'RMMG1-MTART'
record-mtart_003.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
record-kzsel_01_004.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'
record-kzsel_02_005.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MATNR'
record-matnr_006.
PERFORM bdc_field USING 'RMMG1-MBRSH'
record-mbrsh_007.
PERFORM bdc_field USING 'RMMG1-MTART'
record-mtart_008.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
record-kzsel_01_009.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'
record-kzsel_02_010.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
record-maktx_011.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARA-MATKL'.
PERFORM bdc_field USING 'MARA-MEINS'
record-meins_012.
PERFORM bdc_field USING 'MARA-MATKL'
record-matkl_013.
PERFORM bdc_field USING 'MARA-MTPOS_MARA'
record-mtpos_mara_014.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MAKT-MAKTX'.
PERFORM bdc_field USING 'MAKT-MAKTX'
record-maktx_015.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
PERFORM bdc_transaction USING 'MM01'.
ENDDO.
PERFORM close_group.
PERFORM close_dataset USING dataset. -
Uploading issues to other providers than .mac
has anyone had uploading issues to other providers than .mac??
can the names of the pages have spaces in them, or do
i have to change both the file name and the name of
the page?
As the note says, some servers will let you upload files with spaces in their names, and some will not. Names without spaces will always work.
In iWeb, the name you give to a site or page is the same as the name of the folder or file associated with it. So to avoid spaces in folder or file names, you need to omit them in the site and page names, or replace by hyphen or underscore. -
Hi,
I am facing a problem in BDC upload for hr master data tcode pa40.
I want to stop bdc after 3 screens and i dont want to processforthe remaining screens.
Can anyone help me onthis?
Thanks in advance.Hi Anil,
I am regret to you becz i could nt tell thanks because i am full busy of my work.
Thanks a lot.
I have checked with your valuable logic. Now I am processing BDC upto two screens.
Regards,
Sreekanth -
BDC Uploading - Organisation structure position error
Hi Gurus,
When we are uploading Master data through BDC its uploading in pa30 but its not updating positions in organization structure (PPOM_OLD - TCODE) . we cant find the holder under the position though we have upload the data and clear see the data in pa30 for that position.
when we are doing Action manually its updating the position. ofcourse its common too.
My question is why its not updaing the holder to the position when we are doing BDC upload
Any thoughts and suggestions.
Regards,
Ravi
Edited by: ravi Kumar on Jun 17, 2010 12:02 PMFirst try this.
1. Execute RHINTE00 for one person
Selection screen
tick CREATE RELATIONSHIPS and CREATE HOLDER RELATIONSHIPS ONLY.
Remove the TEST tick and run.
First try for one person only then you can run it for others.
cheers
Ajay -
hie gurus , can anyone help me , i have created a bdc upload for transaction MFBF repetitive manufacturing backflush
, when i upload a material with multiple production version i get an error , production version for material could not be
determined. initially its supposed to give a pop up window that allows me to select the production version, in the bdc recording so the pop window is not being called in the program for some reason i have not modified the recording
in anyway this is straight from sm35 recording to my z program :
perform bdc_dynpro using 'SAPLBARM' '0800'.
perform bdc_field using 'BDC_OKCODE'
'=GOON'.
perform bdc_field using 'RM61B-RB_BAUGR'
'X'.
perform bdc_field using 'RM61B-BUDAT'
'06.06.2011'.
perform bdc_field using 'RM61B-BLDAT'
'06.06.2011'.
perform bdc_field using 'BDC_CURSOR'
'RM61B-MATNR'.
perform bdc_field using 'RM61B-MATNR'
'900-03-000'.
perform bdc_field using 'RM61B-WERKS'
'1200'.
perform bdc_field using 'RM61B-ERFMG'
'1111'.
error screen not being called
perform bdc_dynpro using 'SAPLBARM' '0160'.
perform bdc_field using 'BDC_CURSOR'
'MKAL-VERID(02)'.
perform bdc_field using 'BDC_OKCODE'
'=GOON'.
perform bdc_field using 'RM61B-SELEK(02)'
'X'.Hi Daniel,
Please check the BAPIs available in Function group 2127 if you can use any. That way you do not have to manipulate the screens in BDC.
Regards,
Shyam -
How to send email after bdc upload done?
Hi Experts,
How do we send an email after the bdc upload program run successfully. I want to send email to the users saying the material upload successfully message with the material details.
How can i do it? Is there any way to trigger a mail after calling the bdc upload part?
Please help me on this.
Thanks in advance.
Regards,
Rashika.Hi,
After the BDC has run. check if sy-subrc is zero or not.
IF sy-subrc EQ 0.
COMMIT WORK.
and in this IF statement use the following code:
wa_receivers-receiver = so_malid-low.
wa_receivers-rec_id = so_malid-low.
wa_receivers-rec_type = 'U'.
wa_receivers-com_type = 'INT'.
wa_receivers-notif_del = 'X'.
wa_receivers-notif_ndel = 'X'.
APPEND wa_receivers TO gi_receivers.
CLEAR wa_receivers.
Populate the subject/generic message attributes
wa_doc_data-obj_langu = sy-langu.
wa_doc_data-obj_name = lc_obj_name.
wa_doc_data-obj_descr = 'Find Inactive PU/DU'(001).
wa_doc_data-sensitivty = lc_sensitivity.
Describe the body of the message
wa_message = '<html><head>'.
APPEND wa_message TO gi_messages.
wa_message = '<style type="text/css">'.
APPEND wa_message TO gi_messages.
wa_message = lc_style_content.
APPEND wa_message TO gi_messages.
wa_message = lc_style_content1.
APPEND wa_message TO gi_messages.
wa_message = '</style></head>'.
APPEND wa_message TO gi_messages.
wa_message = '<body>'.
APPEND wa_message TO gi_messages.
wa_message = 'Hi,<BR><BR>'(002).
APPEND wa_message TO gi_messages.
CONCATENATE(' Updation successful')
'.<BR><BR>'
INTO wa_message SEPARATED BY space.
APPEND wa_message TO gi_messages.
DATA: lv_tab_lines TYPE i VALUE 255.
CLEAR gi_packing_list.
REFRESH gi_packing_list.
wa_packing_list-transf_bin = space.
wa_packing_list-head_start = 1.
wa_packing_list-head_num = 0.
wa_packing_list-body_start = 1.
DESCRIBE TABLE gi_messages LINES lv_tab_lines.
READ TABLE gi_messages INDEX lv_tab_lines INTO wa_message.
wa_doc_data-doc_size = ( lv_tab_lines - 1 ) * 255 + STRLEN( wa_message ).
APPEND wa_message TO gi_messages.
DESCRIBE TABLE gi_messages LINES wa_packing_list-body_num.
wa_packing_list-doc_type = 'HTM'.
wa_packing_list-doc_size = lv_tab_lines * 255.
APPEND wa_packing_list TO gi_packing_list.
CLEAR wa_packing_list.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = wa_doc_data
sender_address = gc_sender_address
sender_address_type = gc_sender_address_type
commit_work = 'X'
TABLES
packing_list = gi_packing_list
contents_txt = gi_messages
receivers = gi_receivers.
Regards,
Rajesh Kumar -
LR 4/4.1RC and flickr uploading issues - resolved?
Have the uploading issues between LR 4/4.1RC and flickr been resolved? Waiting on upgrading from LR3, but the forum reports from unhappy flickr users wanting to "downgrade' are making me nervous. Should I wait, just upgrade to 4.0 and leave the RC alone for now?
An update ...
I have discovered that RC2 publishing does seem to be working (for me) but Flickr or LR seems to be objecting ("Invalid at the top level of the document") to specific images possibly relating to the contents of the caption field.
I narrowed down the failure to just one image ... removed its caption... it published, I put the caption back on - "Invalid ..." error came back.
FYI and not sure if relevant - I sometimes put http links in my caption fields.
I would have come back with a more comprehensive test, but it now appears that LR will not communicate with Flickr at all, now saying it cannot contact the Flickr service, so I cannot investigate further yet.
I know a little off the wall here ... but is it conceivable that Flickr itself has locked me out due to "erroneous" or suspicious content? I have never had problems with LR talking to Flickr before today and publishing to SmugMug is still working fine. -
Need Navigation about BDC Upload (Diagramitacal way)
Need Navigation about BDC Upload (Diagramitacal way) for easy understand.
Hi
file:///C:/Documents%20and%20Settings/nnelapat/Desktop/New%20Microsoft%20PowerPoint%20Presentation.ppt#259,4,Slide 4
<b>Reward if usefull</b> -
Hi experts,
I have a problem in my BDC Call transaction method, am getting the below error when i upload the price. My internal table having the value, but when i pass into fval that time there is no value comming, while uploading its giving this error.
field konp-kbetr(1) input value is longer than screen field
anyone having soln, please help me out.
MohanaHi,
Try Condense that Field Fval.
FORM populate_data USING value(p_fieldname)
value(p_fieldval).
CLEAR fs_bdcdata.
fs_bdcdata-fnam = p_fieldname.
fs_bdcdata-fval = p_fieldval.
CONDENSE fs_bdcdata-fval.
APPEND fs_bdcdata TO t_bdcdata.
ENDFORM.
Hope this is helpful.
Thanks
Kalyan -
0015 info type BDC upload program work normal for one and slow for other?
Hi... Experts
We have created custom BDC tp update infotype 0015 for our employees. It use to work normal initial. recently , We observed for the HR Team who use to upload this is working / update happening very slow. To isolate this , we have given that BDC authorization to another user, for that user it works fine,
For Example
For HR User (HRUSER1) currently file contains 130 records will take 1200 seconds
For New user (HRNEWUSER1) same will will take only 45 seconds to complete.
What could be the reason??
Authroizations are same even we tried SAP_ALL for user who is getting problem,
Any HR specific parameters variants got stored / freezed and many be leading to this issue.
please do let us know if any ides u have to fix it.
RgdsAmosha...Good Day
Thanks for your reply. If i am not wrong it is all belongs to seetings to specific host.
As advised we found the size is same in GUI Alt+F12 --> Options -> Local Data Settings.; But i was unlucky the problem continues.
The same set users let them login from any host the behaviour same .
I believe it is some thing / HR Selection option got saved ??//some thing saved out and it is checking continuiously some thing..
Similar Problem we had for some other like PA20 was normal to one with the same authroizations i had anotheer user and when he executes PA20 it is slow and was soved like below.
PA20 - Transactions have very long runtimes
just giving hint / any thing else we need to check in HR Master
Thanks
Edited by: B Jyothi on Jun 15, 2009 10:26 PM -
Hi Experts,
I have one issue in my BDC program, this prog is upload Journal entry. my Journal entry file name is like "378040". its number. its a cost center. now client requirement is different they want in front of the file added four zeros(0000). so now my file name is 0000378040. so how can i added 0000 in front of the file????
Can u give me suggetion.
Vishal.I believe I did. What are you looking for? Is this what you need:
REPORT ztest MESSAGE-ID 00.
DATA: kostl TYPE csks-kostl VALUE '378040',
kostl_bdc(10).
WRITE: /001 'Input: ', kostl.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = kostl
IMPORTING
output = kostl_bdc.
WRITE: /001 'Output: ', kostl_bdc.
Rob
Edited by: Rob Burbank on Jan 7, 2008 4:05 PM
Maybe you are looking for
-
Installed Yosemite and iPhoto 9.6. A lot of my photos are now too dark and the colour is way off from the originals. Any suggestions to correct this mess. I did a backup prior to installing Yosemite and iPhoto 9.6.
-
Creating a String from an array of characters.
Hi, i'm trying to make a string from an array of characters, this i've managed: char data[] = new char[x]; String str = new String(data);My problem is this: Let's say the array of characters has space for 10 chars, but i only input 5, when i convert
-
Hi. I'm having trouble in exporting avi files from imovie. I'm importing from camera (imovie divides in clips, how to stop this?) and exporting the entire tape to file (.avi), but it just exports the first 3 or 4 minute, though the file has 12 gigas.
-
Free Trial expired but still can use is this charging me?
So i had a free trial for creative cloud and downloaded photoshop 80 days ago.. on my creative cloud it says photoshop has expired but it still lets me open and use it? Does this mean its now charging my account? As i am a student i was thinking abou
-
"Is Name Multiplatform.vi" Bug or Feature?
The "Is Name Multiplatform.vi" in \vi.lib\Utility\libraryn.llb\ seemed like a nice solution for checking the validity of cross platform filenames. But it appears that it does not catch if there is a newline character (\n, x0A) in the filename. I wo