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.
Similar Messages
-
I am having BDC upload problem . 2 transaction upload in one pgm.
Hi ,
I am having problems .In one BDC program that i have written. The data is plopulating the first tcode screens i.e of T Code KL01 but its not populating screen of TCode KP26.
Please can you let me the reason why the screen of t code KP26 is not getting populated correctly .
please help me with directions of where i am going wrong
The code is below .
report ZPM_ACTIVITY_UPLOAD
no standard page heading line-size 255.
*include bdcrecx1.
***************DATA DECLARATION**************************
DATA : message like bdcmsgcoll occurs 0.
DATA : bdcdata type standard table of bdcdata with header line .
data : file type string,
v_msg(255).
DATA:Begin of itab_main occurs 0,
LSTAR type CSLAZ-LSTAR,
DATAB_ANFO(10),
DATAB_ANFO type CSLAZ-DATAB_ANFO,
KTEXT type CSLAZ-KTEXT,
LTEXT type CSLAZ-LTEXT,
LEINH_CHAR type CSLAZ-LEINH_CHAR,
KSTTY type CSLAZ-KSTTY,
LATYP type CSLAZ-LATYP,
VKSTA type CSLAZ-VKSTA,
VERSN type CCSS-VERSN,
PERBL type RKPLN-PERBL,
PERBL1 type RKPLN-PERBL,
GJAHR type CCSS-GJAHR,
KOSTL type CCSS-KOSTL,
LSTAR1 type CCSS-LSTAR,
TKV type RKPLN-TKV,
End of itab_main.
Data :v_file type string.
Data :Begin of itab_KL01 occurs 0,
KL01_LSTAR type CSLAZ-LSTAR,
KL01_DATAB_ANFO(10), " type CSLAZ-DATAB_ANFO,
KL01_DATAB_ANFO type CSLAZ-DATAB_ANFO,
KL01_KTEXT type CSLAZ-KTEXT,
KL01_LTEXT type CSLAZ-LTEXT,
KL01_LEINH_CHAR type CSLAZ-LEINH_CHAR,
KL01_KSTTY type CSLAZ-KSTTY,
KL01_LATYP type CSLAZ-LATYP,
KL01_VKSTA type CSLAZ-VKSTA,
End of itab_KL01.
Data : Begin of error_itab occurs 0,
msg(255),
End of error_itab.
Data :wa_error_itab like line of error_itab.
Data : Begin of itab_KP26 occurs 0,
KP26_VERSN type CCSS-VERSN,
KP26_PERBL type RKPLN-PERBL,
KP26_PERBL1 type RKPLN-PERBL,
KP26_GJAHR type CCSS-GJAHR,
KP26_KOSTL type CCSS-KOSTL,
KP26_LSTAR type CCSS-LSTAR,
KP26_TKV type RKPLN-TKV,
End of itab_KP26.
data : l_v_tab type abap_char1
value cl_abap_char_utilities=>horizontal_tab.
data : counter type c value 0,
countere type c value 0,
counters type c value 0.
PARAMETER: p_file TYPE ibipparms-path obligatory." Needed to upload the file
At selection-screen on value-request for p_file.
Perform get_file.
start-of-selection.
perform file_upload.
Perform split_itab.
****************************************KL01
loop at itab_KL01.
refresh bdcdata.
perform bdc_dynpro using 'SAPLKMA6' '0200'.
perform bdc_field using 'BDC_CURSOR'
'CSLAZ-LSTAR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CSLAZ-KOKRS'
'1000'.
perform bdc_field using 'CSLAZ-LSTAR'
itab_KL01-KL01_LSTAR .
perform bdc_field using 'CSLAZ-DATAB_ANFO'
itab_KL01-KL01_DATAB_ANFO.
perform bdc_field using 'CSLAZ-DATBI_ANFO'
'31.12.9999'.
perform bdc_dynpro using 'SAPLKMA6' '0299'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_CURSOR'
'CSLAZ-TARKZ'.
perform bdc_field using 'CSLAZ-KTEXT'
itab_KL01-KL01_KTEXT.
perform bdc_field using 'CSLAZ-LTEXT'
itab_KL01-KL01_LTEXT.
perform bdc_field using 'CSLAZ-LEINH_CHAR'
itab_KL01-KL01_LEINH_CHAR.
perform bdc_field using 'CSLAZ-KSTTY'
itab_KL01-KL01_KSTTY.
perform bdc_field using 'CSLAZ-LATYP'
itab_KL01-KL01_LATYP.
perform bdc_field using 'CSLAZ-VKSTA'
itab_KL01-KL01_VKSTA .
call transaction 'KL01' using BDCDATA MODE 'A' update 's' messages into message .
If sy-subrc eq 0.
counters = counters + 1.
else.
countere = countere + 1 .
perform error_msg.
wa_error_itab-msg = v_msg.
append wa_error_itab-msg to error_itab.
clear wa_error_itab-msg.
endif.
Endloop.
Loop at itab_KP26.
refresh bdcdata.
perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.
perform bdc_field using 'SVALD-VALUE(01)'
'1000'.
perform bdc_dynpro using 'SAPLKPP0' '1000'.
perform bdc_field using 'BDC_CURSOR'
'KPP0B-VALUE(09)'.
perform bdc_field using 'BDC_OKCODE'
'=CSUB'.
perform bdc_field using 'KPP1B-ONLY'
'X'.
perform bdc_field using 'KPP0B-VALUE(01)'
itab_KP26-KP26_VERSN .
perform bdc_field using 'KPP0B-VALUE(02)'
itab_KP26-KP26_PERBL.
perform bdc_field using 'KPP0B-VALUE(03)'
itab_KP26-KP26_PERBL1 .
perform bdc_field using 'KPP0B-VALUE(04)'
itab_KP26-KP26_GJAHR .
perform bdc_field using 'KPP0B-VALUE(06)'
itab_KP26-KP26_KOSTL .
perform bdc_field using 'KPP0B-VALUE(09)'
itab_KP26-KP26_LSTAR.
perform bdc_dynpro using 'SAPLKPP2' '0112'.
perform bdc_field using 'BDC_CURSOR'
'K-BK_0403'.
perform bdc_field using 'BDC_OKCODE'
'=CBUC'.
perform bdc_field using 'Z-BDC08(01)'
itab_KP26-KP26_TKV .
call transaction 'KP26' using BDCDATA MODE 'A' update 'S' messages into message .
If sy-subrc eq 0.
counters = counters + 1.
else.
countere = countere + 1 .
perform error_msg.
wa_error_itab-msg = v_msg.
append wa_error_itab-msg to error_itab.
clear wa_error_itab-msg.
endif.
Endloop.
counter = countere + counters.
write /: 'Total Number of Records is',counter .
Write /: 'Total Number of Successfull records',counters.
Write /: 'Total Number of error records',countere.
If countere GT 0.
Write :/'The error out record message are'.
Loop at error_itab.
write:/ error_itab-msg.
Endloop.
Endif.
*& Form file_upload
text
--> p1 text
<-- p2 text
FORM file_upload .
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = v_file
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = l_v_tab
TABLES
DATA_TAB = itab_main
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. " file_upload
*& Form split_itab
text
--> p1 text
<-- p2 text
FORM split_itab .
loop at itab_main.
MOVE itab_main-LSTAR TO itab_KL01-KL01_LSTAR.
MOVE itab_main-DATAB_ANFO TO itab_KL01-KL01_DATAB_ANFO.
MOVE itab_main-KTEXT TO itab_KL01-KL01_KTEXT.
MOVE itab_main-LTEXT TO itab_KL01-KL01_LTEXT.
MOVE itab_main-LEINH_CHAR TO itab_KL01-KL01_LEINH_CHAR.
MOVE itab_main-KSTTY TO itab_KL01-KL01_KSTTY.
MOVE itab_main-LATYP TO itab_KL01-KL01_LATYP.
MOVE itab_main-VKSTA TO itab_KL01-KL01_VKSTA.
MOVE itab_main-VERSN TO itab_KP26-KP26_VERSN.
MOVE itab_main-PERBL TO itab_KP26-KP26_PERBL.
MOVE itab_main-PERBL1 TO itab_KP26-KP26_PERBL1.
MOVE itab_main-GJAHR TO itab_KP26-KP26_GJAHR.
MOVE itab_main-KOSTL TO itab_KP26-KP26_KOSTL.
MOVE itab_main-LSTAR1 TO itab_KP26-KP26_LSTAR.
MOVE itab_main-TKV TO itab_KP26-KP26_TKV.
APPEND itab_KL01.
APPEND itab_KP26.
CLEAR itab_KL01.
CLEAR itab_KP26.
endloop.
ENDFORM. " split_itab
*& Form get_file
text
--> p1 text
<-- p2 text
FORM get_file .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = p_file.
ENDFORM. " get_file
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.
if fval <> space.
clear bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endif.
endform. "bdc_field
*& Form error_msg
text
--> p1 text
<-- p2 text
FORM error_msg .
call function 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
lang = 'E'
IMPORTING
msg = v_msg
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.
endif.
ENDFORM. " error_msgHi ,
I am having problems .In one BDC program that i have written. The data is plopulating the first tcode screens i.e of T Code KL01 but its not populating screen of TCode KP26.
Please can you let me the reason why the screen of t code KP26 is not getting populated correctly .
please help me with directions of where i am going wrong
The code is below .
report ZPM_ACTIVITY_UPLOAD
no standard page heading line-size 255.
*include bdcrecx1.
***************DATA DECLARATION**************************
DATA : message like bdcmsgcoll occurs 0.
DATA : bdcdata type standard table of bdcdata with header line .
data : file type string,
v_msg(255).
DATA:Begin of itab_main occurs 0,
LSTAR type CSLAZ-LSTAR,
DATAB_ANFO(10),
DATAB_ANFO type CSLAZ-DATAB_ANFO,
KTEXT type CSLAZ-KTEXT,
LTEXT type CSLAZ-LTEXT,
LEINH_CHAR type CSLAZ-LEINH_CHAR,
KSTTY type CSLAZ-KSTTY,
LATYP type CSLAZ-LATYP,
VKSTA type CSLAZ-VKSTA,
VERSN type CCSS-VERSN,
PERBL type RKPLN-PERBL,
PERBL1 type RKPLN-PERBL,
GJAHR type CCSS-GJAHR,
KOSTL type CCSS-KOSTL,
LSTAR1 type CCSS-LSTAR,
TKV type RKPLN-TKV,
End of itab_main.
Data :v_file type string.
Data :Begin of itab_KL01 occurs 0,
KL01_LSTAR type CSLAZ-LSTAR,
KL01_DATAB_ANFO(10), " type CSLAZ-DATAB_ANFO,
KL01_DATAB_ANFO type CSLAZ-DATAB_ANFO,
KL01_KTEXT type CSLAZ-KTEXT,
KL01_LTEXT type CSLAZ-LTEXT,
KL01_LEINH_CHAR type CSLAZ-LEINH_CHAR,
KL01_KSTTY type CSLAZ-KSTTY,
KL01_LATYP type CSLAZ-LATYP,
KL01_VKSTA type CSLAZ-VKSTA,
End of itab_KL01.
Data : Begin of error_itab occurs 0,
msg(255),
End of error_itab.
Data :wa_error_itab like line of error_itab.
Data : Begin of itab_KP26 occurs 0,
KP26_VERSN type CCSS-VERSN,
KP26_PERBL type RKPLN-PERBL,
KP26_PERBL1 type RKPLN-PERBL,
KP26_GJAHR type CCSS-GJAHR,
KP26_KOSTL type CCSS-KOSTL,
KP26_LSTAR type CCSS-LSTAR,
KP26_TKV type RKPLN-TKV,
End of itab_KP26.
data : l_v_tab type abap_char1
value cl_abap_char_utilities=>horizontal_tab.
data : counter type c value 0,
countere type c value 0,
counters type c value 0.
PARAMETER: p_file TYPE ibipparms-path obligatory." Needed to upload the file
At selection-screen on value-request for p_file.
Perform get_file.
start-of-selection.
perform file_upload.
Perform split_itab.
****************************************KL01
loop at itab_KL01.
refresh bdcdata.
perform bdc_dynpro using 'SAPLKMA6' '0200'.
perform bdc_field using 'BDC_CURSOR'
'CSLAZ-LSTAR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CSLAZ-KOKRS'
'1000'.
perform bdc_field using 'CSLAZ-LSTAR'
itab_KL01-KL01_LSTAR .
perform bdc_field using 'CSLAZ-DATAB_ANFO'
itab_KL01-KL01_DATAB_ANFO.
perform bdc_field using 'CSLAZ-DATBI_ANFO'
'31.12.9999'.
perform bdc_dynpro using 'SAPLKMA6' '0299'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_CURSOR'
'CSLAZ-TARKZ'.
perform bdc_field using 'CSLAZ-KTEXT'
itab_KL01-KL01_KTEXT.
perform bdc_field using 'CSLAZ-LTEXT'
itab_KL01-KL01_LTEXT.
perform bdc_field using 'CSLAZ-LEINH_CHAR'
itab_KL01-KL01_LEINH_CHAR.
perform bdc_field using 'CSLAZ-KSTTY'
itab_KL01-KL01_KSTTY.
perform bdc_field using 'CSLAZ-LATYP'
itab_KL01-KL01_LATYP.
perform bdc_field using 'CSLAZ-VKSTA'
itab_KL01-KL01_VKSTA .
call transaction 'KL01' using BDCDATA MODE 'A' update 's' messages into message .
If sy-subrc eq 0.
counters = counters + 1.
else.
countere = countere + 1 .
perform error_msg.
wa_error_itab-msg = v_msg.
append wa_error_itab-msg to error_itab.
clear wa_error_itab-msg.
endif.
Endloop.
Loop at itab_KP26.
refresh bdcdata.
perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.
perform bdc_field using 'SVALD-VALUE(01)'
'1000'.
perform bdc_dynpro using 'SAPLKPP0' '1000'.
perform bdc_field using 'BDC_CURSOR'
'KPP0B-VALUE(09)'.
perform bdc_field using 'BDC_OKCODE'
'=CSUB'.
perform bdc_field using 'KPP1B-ONLY'
'X'.
perform bdc_field using 'KPP0B-VALUE(01)'
itab_KP26-KP26_VERSN .
perform bdc_field using 'KPP0B-VALUE(02)'
itab_KP26-KP26_PERBL.
perform bdc_field using 'KPP0B-VALUE(03)'
itab_KP26-KP26_PERBL1 .
perform bdc_field using 'KPP0B-VALUE(04)'
itab_KP26-KP26_GJAHR .
perform bdc_field using 'KPP0B-VALUE(06)'
itab_KP26-KP26_KOSTL .
perform bdc_field using 'KPP0B-VALUE(09)'
itab_KP26-KP26_LSTAR.
perform bdc_dynpro using 'SAPLKPP2' '0112'.
perform bdc_field using 'BDC_CURSOR'
'K-BK_0403'.
perform bdc_field using 'BDC_OKCODE'
'=CBUC'.
perform bdc_field using 'Z-BDC08(01)'
itab_KP26-KP26_TKV .
call transaction 'KP26' using BDCDATA MODE 'A' update 'S' messages into message .
If sy-subrc eq 0.
counters = counters + 1.
else.
countere = countere + 1 .
perform error_msg.
wa_error_itab-msg = v_msg.
append wa_error_itab-msg to error_itab.
clear wa_error_itab-msg.
endif.
Endloop.
counter = countere + counters.
write /: 'Total Number of Records is',counter .
Write /: 'Total Number of Successfull records',counters.
Write /: 'Total Number of error records',countere.
If countere GT 0.
Write :/'The error out record message are'.
Loop at error_itab.
write:/ error_itab-msg.
Endloop.
Endif.
*& Form file_upload
text
--> p1 text
<-- p2 text
FORM file_upload .
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = v_file
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = l_v_tab
TABLES
DATA_TAB = itab_main
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. " file_upload
*& Form split_itab
text
--> p1 text
<-- p2 text
FORM split_itab .
loop at itab_main.
MOVE itab_main-LSTAR TO itab_KL01-KL01_LSTAR.
MOVE itab_main-DATAB_ANFO TO itab_KL01-KL01_DATAB_ANFO.
MOVE itab_main-KTEXT TO itab_KL01-KL01_KTEXT.
MOVE itab_main-LTEXT TO itab_KL01-KL01_LTEXT.
MOVE itab_main-LEINH_CHAR TO itab_KL01-KL01_LEINH_CHAR.
MOVE itab_main-KSTTY TO itab_KL01-KL01_KSTTY.
MOVE itab_main-LATYP TO itab_KL01-KL01_LATYP.
MOVE itab_main-VKSTA TO itab_KL01-KL01_VKSTA.
MOVE itab_main-VERSN TO itab_KP26-KP26_VERSN.
MOVE itab_main-PERBL TO itab_KP26-KP26_PERBL.
MOVE itab_main-PERBL1 TO itab_KP26-KP26_PERBL1.
MOVE itab_main-GJAHR TO itab_KP26-KP26_GJAHR.
MOVE itab_main-KOSTL TO itab_KP26-KP26_KOSTL.
MOVE itab_main-LSTAR1 TO itab_KP26-KP26_LSTAR.
MOVE itab_main-TKV TO itab_KP26-KP26_TKV.
APPEND itab_KL01.
APPEND itab_KP26.
CLEAR itab_KL01.
CLEAR itab_KP26.
endloop.
ENDFORM. " split_itab
*& Form get_file
text
--> p1 text
<-- p2 text
FORM get_file .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = p_file.
ENDFORM. " get_file
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.
if fval <> space.
clear bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endif.
endform. "bdc_field
*& Form error_msg
text
--> p1 text
<-- p2 text
FORM error_msg .
call function 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
lang = 'E'
IMPORTING
msg = v_msg
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.
endif.
ENDFORM. " error_msg -
Vendor Master Upload Problem with Check Box
Hi All,
I have a problem with Vendor Master Upload program. In one of the screen of XK01 transaction depending upon the PO Box, Postal Code, Other City and Other Region i have to check the PO Box w/o no check Box. So in my program after i check the PO Box, Postal Code, Other City and Other Region values how to write a code that i can check the PO Box w/o no. Or other wise how can i send value to the Po Box w/o no check box. field
Thanks in advance.The call to the first screen should look something like:
perform dynpro
tables bdcdata
using:
'X' 'SAPMF02K' '0105', "Create Vendor: Initial Screen
' ' 'RF02K-BUKRS' 'COCO',
' ' 'RF02K-KTOKK' 'YYYY',
' ' 'USE_ZAV' 'X'.
I'm using screen 105, not 100 here.
Rob -
No batch input problem with Vendor master Upload
Hi All,
I am getting a problem with Vendor Master upload conversion. We have'nt change the code and configuration but when i try to run the code today its giving an error for particular Account group. I run this code yesterday and its work fine with that particluar Account group. But i am getting an error when i run the code today. The error is as follows "No batch input data for screen SAPMF02K 0610".When i got through the code i have'nt find that screen number.
Can anyone suggest how to resolve that problem.Double click on the session name in SM35 and click on the screens tab there you can find the screen number.
process the same session in foreground mode and see if you are getting the same error.
If so, the new screen number you got is due to some change in the settings some where, show the new screen to Your Functional guy and he can help you.
There is one more chance where some data is missing in the flat file, just check it out.
Reward points if usefull.
Thanks ,
Veeru. -
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 -
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. -
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 -
Need a fix for Muse upload problems to GoDaddy???? I found one!
GoDaddy now has a new cpanel named "Plesk". In that panel you will find File Manager. (I use the Windows version). In the left panel of File Manager, you will see the root directory and all of its subfolders. When you click on any of these folders, you will see their contents in the right panel. You will also see a folder labelled "httpdocs". This is the default folder that is set up in GoDaddy to be your "home" folder. So, to fix your upload problems, do these steps:
1. Click on the httpdocs folder to see it open in the right panel. In the toolbar above the right panel, you will see a green plus sign with the word "New". Click on this drop-down menu.
2. Choose "directory"
3. Type in the name of one of the folders that your site will need, e.g. images, css, assets, scripts, etc. This basically creates a subfolder within the httpdocs folder, right? (There is a way to see how your Muse site sets up these folders prior to publish or upload. You do this by choosing "Export as HTML" in the File menu of Muse, creating a folder on your desktop (or wherever) for the HTML export, then inspecting its contents after your save it.)
4. Continue to create all the subfolders within httpdocs that you will need. Unfortunately, you have to do this one folder at a time.
5. After you have them set up, begin the process of uploading your site, like this:
6. In the File menu in Muse, you'll of course see "Upload to FTP Host ...". Click on it.
7. A dialog box will open. In the top text field, type in your website name ... you must use www. with your entry
8. In the "FTP Host" field, type in your domain name again like this ... "ftp.yourdomain.com" ... NO FORWARD SLASHES!!! (even if you find instructions to the contrary, like in Filezilla) (Also, your domain might be a .org or .net, instead of a .com)
9. In the "Host directory" field, YOU MUST ENTER "httpdocs"!!!! Despite what you learn, DO NOT LEAVE THIS FIELD BLANK!!!
10. Then enter your GoDaddy username and password. (If you set up a different username for your GoDaddy account and your Plesk account, like I did, then use your Plesk username and password.)
11. Click on "Upload: All Files"
The next few steps are tedious, but necessary to keep your site organized on GoDaddy and to keep from confusing things. You can probably get away with it, but, if your site doesn't load properly in a browser after doing the above steps, you'll need to click on each folder in the root directory that you copied as a subfolder in the "httpdocs" folder and delete the files. For example, in the left panel of File Manager, you'll see the root directory. Click on the "images" folder. If there are any images that you need for your site in that folder, delete them. Remember ... you've already copied them over to the images subfolder in httpdocs during your last upload described in the instructions above. If you don't trust that you can delete them, click on the "httpdocs" folder, then click on the "images" folder and check the files. Same files, right? So, go ahead and delete the site files that you find in the appropriate folders in the root directory, making sure that you don't delete the ones that are NOT duplicated within the "httpdocs" folder. Also remember that your .html pages will not require a subfolder to be set up in the "httpsdocs" folder. They can just sit there, looking pretty. But you will have to delete them from the root directory to keep things tidy. Just click on the folder icon next to "root directory", and you'll see those html pages in the right panel. Again, delete them.
REMEMBER: To keep your Muse uploads to your GoDaddy site error free, you must ALWAYS make sure that "httpdocs" appears in the "Host directory" field in the "Upload to FTP Host ..." dialog box in Muse. And all files and folders that your site needs MUST go in the "httpdocs" folder in the root directory of your site in GoDaddy's File Manager (now found in your Plesk Panel).
I hope this wasn't too confusing. If so, call GoDaddy. I called them with this fix and they are using it in their phone support.Thank you! Thank you! Thank you! I was going out of my mind. And GoDaddy was no help (although they're usually really good.) I put all the folders in "httpdocs" and the website worked perfectly!
-
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 -
Problems in Vendor master record.
Hi Sdn Experts...Could you help me?
I have problems with vendor master record. I have vendors in duplicity....to solved this I aplly the solution by sap for make the consistency by Tax number. Now I cant insert the vendor with the same Tax Number...But appear other problem..I have a lot of vendor in duplicty befora i aplly the solution and i need to eliminate this vendors...
I execute the Transaction XK05 ( Block Vendor ) and XK06 (Mark Deletion Flag), but doesnt work...because if i make any modification in a vendor master correct the system show up the message..
''Vendor master record with the same tax number already exists''
There is other way to make the deletion the vendor record? How I solve this issue? Pleaaase help meee!
Take a look in the File
[http://www.easy-share.com/1903543315/vendor_problem.doc]
Thanks,hi
u have to archive the vendors inOBR2 or the simple way is go to XK99 here give the list of the vendors and then change the description with * in mass
so description of all the duplicate vendors will be * and then flag them for deletion so they cant be used again
agin u can use them agin by changing the name by some other vendor so u can use the same vendor code for other vendor by just changing the description
regards
KI -
Problem loading material master (IS Mill) data from ECC to BI
Hi Gurus,
We have a problem loading Material master data from ECC to BI 7.0 SP 18.
The scenario is :
The ECC is with IS Mill... due to which the Material field MATNR is of length 40 instead of standard 18 characters.
That is data element MATNR has 18 chars and its output length is 40 chars.
When is table MARA browsed using SE16, the material with more than 18 chars.... shows only first 18 characters and are ended with !.
OMSL setting shows length as 40.
When the extractor checker runs 0MATERIAL_TEXT or 0MATERIAL_ATTR it gives correct output ..... which is more than 18 characters... not ended with !
Till here no problem.
On BI side, after replication of the datasource, i checked data element MATNR ... but it has length as 18 chars and output length as 18 chars.
OMSL setting cannot be set more than 18.
Infopackage has pulled data till PSA successfully. I checked the PSA data .... here to the material with more than 18 chars is ended with !.
When the data is further pushed to 0MATERIAL infoobject, it throws following error for all materials irrespetive of its length (example below):
0MATERIAL : Data record 768 ('SIT_PL_B01L_10_01!E '): Version 'SIT_PL_B01L_10_01! ' is not valid
0MATERIAL : Data record 165 ('RLIRS52 E '): Version 'RLIRS52 ' is not valid
Diagnosis
Data record 768 & with the key 'SIT_PL_B01L_10_01!E &' is invalid in value 'SIT_PL_B01L_10_01! &' of the attribute/characteristic 0MATERIAL.
System Response
The system has recognized that the value mentioned above is invalid, and has processed this general error message. A subsequent message may give you more information on the error. This message refers to the same value, even though it does not state this explicitly.
I did search for SAP note related to this... but could not find any.
There is one SAP note (Note 960868) which mentions about this, but the correction was then shipped with BI SP 9.... we are running on SP 18.
Requesting you all experts for help.
Best Regards,
DeepakHi,
follow bellow steps:
1. you need to activate the Datasouce in BI side.
Goto RSA1> Datasource> Select Datasource> Double click> Check fileds and Activate.
2. Replicate the Datasource into BI side.
3. Check the RFC connections by useing SM59.
Regards. -
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 -
I have read through the discussions and see that a lot of people are having an uploading problem. I am too, but my problem is a little different. When I upload my photos, everything seems to be fine, all the pages turn from blue to red, and it appears to be done. But, if I quit iWeb, it says it hasn't finished uploading. When I go to the site on the web, everything is there. So, it seems to not be finalizing the last little part where it marks the files as uploaded.
I am using iWeb 1.1.1.
I have tried deleting the files from my iDisk and uploading again.
I have repaired permissions.
I have deleted the file com.apple.iWeb.plist
It's not that I'm trying to quit too soon, I have left it for hours, even overnight, and it doesn't complete.
There's a small circle to the right of the word site that fills in to show progress as it's finishing, and that gets to the point where there's only a small sliver of white.
Any ideas? Thanks for the help!
Kirsten
MacBook Mac OS X (10.4.7)Have you tried "Publish ALL to .Mac"?
-
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 -
Uploading problem with Ebay and Dreamweaver MX
I am unable to sync websites with Dreamweaver MX 6.01. When I connect to the remote server, it shuts down the program. I have reinstalled the program, but it still does it. Also, when I use Safari, Opera, and Firefox to upload photos on Ebay, the upload process fails completely, and blows me directly into My Ebay, as if I was not on the selling page at all. I have to go to my PC to do the photo uploads. Seems like it may be a related issue, some kind of uploading problem with Rosetta, or something. I am using a Macbook Pro with the 2.0Ghz processor, connected with ethernet cable, and firewall is set to off. Any ideas?
For E-Bay you might try the following:
Type the following command in Terminal (while Safari is NOT running):
defaults write com.apple.Safari IncludeDebugMenu 1
Then launch Safari, and you will be able to use the new Debug menu.
If you ever wish to disable it again, just repeat the command with a "0" instead of a "1".
Under the Debug menu, you'll see the User Agent sub-menu; select Windows MSIE 6.0 from the list and then try connecting to your web site
Dreamweaver you might need to update your version.
To Dreamweaver 8.01
http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=f56452a8
Maybe you are looking for
-
Iphoto - slideshow in trash freezing Iphoto
I moved an iphoto slideshow to trash yesterday and now cannot empty the trash as any attempt to click on the slideshow or empy the trash brings up the rainbow ball and I have to force quit. I have tried reorganising my itunes media files but they
-
How to reposition subtitles in Quicktime?
Hello community, I am wondering if there is a way to reposition subtitles in Quicktime player and then re-export as an MP4 file for the iPad. Currently the subtitles appear at the bottom of the screen, and I want them to appear at the top. Does any
-
I have read through other threads without success. My situation is this. On my Mac, Link works fine with iTunes. On my Windows 7 machine it simply sees no music. (no itunes on it, just WMP and VLC). It claims there is no music in my library, yet it s
-
Premiere pro CS6 export to DVD
Hi, I have recently edited a film on premiere pro CS6 and it's all set to be exported. The film was shot with a 5D mark 3 @ 1920 x 1080, 24 fps. The timeline is about 160 minutes long. I have to export this to a DVD (like a classic DVD feature film w
-
APACHE2 SERVER IN MAITEANCE MODE
Hi I installed solaris 10 with apache2 server in My ULtra 10 workstation but It is not starting when I tried to enable service I found below message STATE STIME FMRI maintenance 16:07:19 svc:/network/http:apache2 pl. guide me how can I start my apach