LSMW BDC program error
Hi,
I am using LSMW to assign materials to an inspection plan (QP02) for 9,000 records. I am trying to use a standard BADI (Batch/Direct Input).
1) Standard Batch/Direct Input
Object: 0240 - Inspection plans (QM)
Method: 0000 - Batch Input.
Program: RCPTRA01
The program reads and converts without errors but when I select the "Create Batch Input Session" button, I get the below error.
BDC_INSERT, screen .&. is invalid
I have checked OSS notes and didn't find anything.
Can someone help?
Thanks.
KarenS
a bdc-run on MM01 is never a good idea for various reasons:
- you can set screens in dependency of the user running it
- not every material is to maintained in all the views
therefore: use RMDATIND instead or MM17 or MASS or a BAPI.
if you really really really need to use bdc, try transaction MMZ1 instead of MM01.
Similar Messages
-
BDC programming error for FF67
Hi guys,
I am working on FF67 BDC programming. When I am uploading data from excel, allthe values are getting passed correctly, except in the second screen value-date field (here the date is dispalying as 02.12.2020, though I have given it as 02.12.2008) And also it is displaying an error message as field FEBMKA-KWBTR(1) IS NOT AN INPUT FIELD. Am using ECC 6.0
And in the output it is displaying like below
statement/list is being updated atthe moment
Field FEBMKA-VGMAN(1) is not an input field
Field FEBEP-VALUT(1) is not an input field
Field FEBMKA-KWBTR(1) is not an input field
Warning: Values entered are ignored
Statement/list saved.
waiting for your reply guys.............
Thank you in advance..
KiranHi Avinash,
Thanks for the reply. I didn't get you. How can I use 'write to' statement?
I have written the code as follows
CONCATENATE 'FEBMKA-VGMAN(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
itab-transaction.
CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'
EXPORTING
INPUT = itab-value_date
IMPORTING
OUTPUT = date.
CONCATENATE 'FEBEP-VALUT(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
date.
CONCATENATE 'FEBMKA-KWBTR(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
itab-amount.
CONCATENATE 'FEBMKK-CHECT_KF(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
itab-bank_refchqno.
So, where shall I use the '' write to'' statement.
please suggest me.
bye,
Kiran -
Hi experts
I have written this code and trying to upload some data from text file ....its giving me error "Cannot Interpret Data in File "
CODE
report ZAC_SHDB_SD1
no standard page heading line-size 255.
Tables : vbep, rv45a , vbap,vbak,vbkd,kuagv.
data : ctab like bdcdata occurs 10 with header line.
data : begin of itab occurs 0,
auart like VBAK-AUART,
vkorg like vbak-vkorg,
vtweg like vbak-vtweg,
spart like vbak-spart,
bstkd like VBKD-BSTDK,
kunnr like kuagv-kunnr,
mabnr like RV45A-MABNR,
posnr like VBAP-POSNR,
bstdk like VBKD-BSTDK,
zmeng like VBAP-ZMENG,
end of itab.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = 'text.txt'
FILETYPE = 'dat'
IMPORTING
TABLES
DATA_TAB = itab
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
include bdcrecx1.
start-of-selection.
perform open_group.
loop at itab.
perform bdc_dynpro using 'SAPMV45A' '0101'.
perform bdc_field using 'BDC_CURSOR'
'VBAK-AUART'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBAK-AUART'
'YDS'.
perform bdc_field using 'VBAK-VKORG'
'7777'.
perform bdc_field using 'VBAK-VTWEG'
'71'.
perform bdc_field using 'VBAK-SPART'
'77'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/65'.
perform bdc_field using 'BDC_OKCODE'
'=PICK'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/65'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 29'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/65'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 51'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'11/58'.
perform bdc_field using 'BDC_OKCODE'
'=PICK'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'VBAP-ZMENG(01)'.
*****change***************
perform bdc_field using 'RV45A-MABNR(01)'
itab-mabnr.
*****change***************
perform bdc_field using 'VBAP-ZMENG(01)'
itab-zmeng.
perform bdc_field using 'VBAP-POSNR(01)'
' 10'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/64'.
perform bdc_field using 'BDC_OKCODE'
'=PICK'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/64'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 32'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/64'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 44'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/64'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 51'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/64'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 59'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'32/57'.
perform bdc_field using 'BDC_OKCODE'
'=PICK'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'VBAP-ZMENG(02)'.
*****change***************
perform bdc_field using 'RV45A-MABNR(02)'
itab-mabnr.
*****change***************
perform bdc_field using 'VBAP-ZMENG(02)'
itab-zmeng.
perform bdc_field using 'VBAP-POSNR(02)'
' 20'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/62'.
perform bdc_field using 'BDC_OKCODE'
'=PICK'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/62'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 39'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/62'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 48'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'02/62'.
perform bdc_field using 'BDC_OKCODE'
'=PZ 65'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_CURSOR'
'30/58'.
perform bdc_field using 'BDC_OKCODE'
'=PICK'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'VBAP-ZMENG(03)'.
*****change***************
perform bdc_field using 'RV45A-MABNR(03)'
itab-mabnr.
*****change***************
perform bdc_field using 'VBAP-ZMENG(03)'
itab-zmeng.
perform bdc_field using 'VBAP-POSNR(03)'
' 30'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=ITEM'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(01)'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 100'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_field using 'VBAP-ZMENG'
' 111,00'.
perform bdc_field using 'VBAP-ZIEME'
'NOS'.
perform bdc_field using 'VBAP-UMZIN'
' 1'.
perform bdc_field using 'VBAP-UMZIZ'
' 1'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'=T\07'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 100,00'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_field using 'VBAP-ZMENG'
' 111,00'.
perform bdc_field using 'VBAP-ZIEME'
'NOS'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-ETDAT(01)'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=ITEM'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(02)'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'=T\01'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-ETDAT(01)'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 200'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_field using 'VBAP-ZMENG'
' 222,00'.
perform bdc_field using 'VBAP-ZIEME'
'NOS'.
perform bdc_field using 'VBAP-UMZIN'
' 1'.
perform bdc_field using 'VBAP-UMZIZ'
' 1'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 200,00'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_field using 'VBAP-ZMENG'
' 222,00'.
perform bdc_field using 'VBAP-ZIEME'
'NOS'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=ITEM'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(03)'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 300'.
perform bdc_field using 'VBAP-VRKME'
'EA'.
perform bdc_field using 'VBAP-ZMENG'
' 333'.
perform bdc_field using 'VBAP-ZIEME'
'EA'.
perform bdc_field using 'VBAP-UMZIN'
' 1'.
perform bdc_field using 'VBAP-UMZIZ'
' 1'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 300'.
perform bdc_field using 'VBAP-VRKME'
'EA'.
perform bdc_field using 'VBAP-ZMENG'
' 333'.
perform bdc_field using 'VBAP-ZIEME'
'EA'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=ITEM'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(01)'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 100,00'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_field using 'VBAP-ZMENG'
' 111,00'.
perform bdc_field using 'VBAP-ZIEME'
'NOS'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=ITEM'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(02)'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 200,00'.
perform bdc_field using 'VBAP-VRKME'
'NOS'.
perform bdc_field using 'VBAP-ZMENG'
' 222,00'.
perform bdc_field using 'VBAP-ZIEME'
'NOS'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=ITEM'.
perform bdc_field using 'VBKD-BSTDK'
'09.08.2007'.
perform bdc_field using 'KUAGV-KUNNR'
'1'.
perform bdc_field using 'KUWEV-KUNNR'
'1'.
perform bdc_field using 'VBAK-GUEBG'
'09.08.2007'.
perform bdc_field using 'VBAK-GUEEN'
'15.08.2007'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(03)'.
perform bdc_dynpro using 'SAPMV45A' '4003'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG'.
perform bdc_field using 'RV45A-KWMENG'
' 300'.
perform bdc_field using 'VBAP-VRKME'
'EA'.
perform bdc_field using 'VBAP-ZMENG'
' 333'.
perform bdc_field using 'VBAP-ZIEME'
'EA'.
perform bdc_field using 'RV45A-ETDAT'
'09.08.2007'.
perform bdc_field using 'RV45A-PRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'09.08.2007'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/EBAC1'.
perform bdc_transaction using 'VA31'.
endloop.
perform close_group.
MY TEXT FILE IS :
14-08-2007 77290M60E12-26U 8
14-08-2007 77290M60E12-68M 10
14-08-2007 77290M60E12-76G 11
14-08-2007 77290M60E12-Z2S 12
Helpful answer will be rewarded
ThanksHi
give complete path of file name
FILENAME = 'text.txt'
or use this one
data: begin of itab_string occurs 0,
record type char255,
end of itab_string.
data: L_FILETABLE TYPE FILETABLE,
L_FILETAB_H TYPE FILETABLE WITH HEADER LINE.
data: p_file1 type string.
selection screen .
PARAMETERS: P_FILE TYPE LOCALFILE.
at selection-screen on value-request for P_FILE.
IF THE USER SELECT EXTENTION BUTTON IT WILL OPEN THE LOCAL DIRECTORY FOR SELECTING THE FILE LOCATION.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE =
DEFAULT_EXTENSION = 'CSV'
DEFAULT_FILENAME = 'C:\Documents and Settings\kiran\Desktop\STATUS.csv'
FILE_FILTER =
INITIAL_DIRECTORY = 'C:\Documents and Settings\kiran\Desktop\'
MULTISELECTION =
WITH_ENCODING =
CHANGING
FILE_TABLE = L_FILETABLE
RC = RC
USER_ACTION =
FILE_ENCODING =
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
others = 5
IF SY-SUBRC <> 0.
ELSE.
LOOP AT l_filetable INTO L_FILETAB_H.
P_FILE = L_FILETAB_H-FILENAME.
move p_file to p_file1.
EXIT.
ENDLOOP.
ENDIF.
passing the selected file name to gui_upload for loading the data
into internal table
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = p_file1
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = itab_string
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 I000(Z00) WITH 'PLEASE PROVIDE CORRECT FILE NAME'.
ENDIF.
Reward points for all helpful answers,
kiran.M -
XK99 lsmw or BDC program to copy vendors doesn´t update db records
Hello people
I am facing a requirement to copy a list of existing vendors into about 10 new company codes. Vendors all exist in the "main" company code, so I figured it would be a good idea to use the XK99 transaction as a basis for a mass upload via lsmw or bdc program.
So
So I performed a recording and applied my logic in lsmw, ran the batch input folder in SM35, seemingly without errors. But to my srprise I saw that no database records had been created in the LFB1 table.
So I tried to incorporate the recording into a bdc program that uses call transaction, but the same thing happens. The batch input seems to be running OK, but no changes are actually made to db....
So I was wondering what could I be doing wrong? I notice one strange thing though. After carrying out the selections in XK99 manually, one needs to mark columns to be transfered and then push the ´Perform mass update´ button and THEN click save. However, when in recording mode, one may click save directly, and no error is given and the recording ends.
However, the select columns operation, if I try to do it during recording, doesnt seem to get captured....
Any ideas of what I might be doing wrong here?
Regards, Jorgen
T XK99
SAPMMSDL 0200 X
BDC_OKCODE =NEXT
BDC_SUBSCR SAPMMSDL 1000SUBTAB
BDC_CURSOR MASSTABS-TABTXT(02)
MASSTABS-MARK(02) X
SAPLMASS_SEL_DIALOG 0100 X
BDC_OKCODE =NEW
BDC_SUBSCR SAPLMASS_SEL_DIALOG 0200SUB_ALL
BDC_SUBSCR SAPLMASSFREESELECTIONS 1000SUB_SEL
BDC_CURSOR MASSFREESEL-LOW(01)
MASSFREESEL-LOW(01) 300011
SAPLMASS_SEL_DIALOG 0100 X
BDC_OKCODE /00
BDC_SUBSCR SAPLMASS_SEL_DIALOG 0400SUB_ALL
BDC_SUBSCR SAPLMASSFREESELECTIONS 1000SUB_SEL
MASSFREESEL-LOW(01) 300011
MASSFREESEL-LOW(02) 7010
BDC_SUBSCR SAPLMASSFREESELECTIONS 2000SUB_PARA
BDC_CURSOR MASSFREESEL_P-LOW(02)
MASSFREESEL_P-LOW(01) 300011
MASSFREESEL_P-LOW(02) 7000
SAPLMASS_SEL_DIALOG 0100 X
BDC_OKCODE =CRET
BDC_SUBSCR SAPLMASS_SEL_DIALOG 0400SUB_ALL
BDC_SUBSCR SAPLMASSFREESELECTIONS 1000SUB_SEL
BDC_CURSOR MASSFREESEL-LOW(01)
BDC_SUBSCR SAPLMASSFREESELECTIONS 2000SUB_PARA
SAPLMASSINTERFACE 0200 X
BDC_OKCODE =SAVE
BDC_SUBSCR SAPLMASSINTERFACE 0202FIELDS
BDC_SUBSCR SAPLMASSINTERFACE 0210SUB_HEAD
BDC_CURSOR HEADER_STRUC-FIELD2-VALUE-LEFT(01)
BDC_SUBSCR SAPLMASSINTERFACE 0212SUB_DATAHello,
first of all Transaction XK99 is more helpful in case of vendor change, not really creation.
It was also intended to cover mass maintenance so it is used instead of LSMW or any other BDC custom program.
I would say that you can go either with LSMW or CALL TRANSACTION custom program, but you should base your recording on XK/FK01 transactions.
Regards,
Grzegorz -
Error while runing bdc program
hi,
i written one bdc program there are no syntax errors and in flat file also no error records but when uploading data it showing pop up that do you want to save data with 2 push buttons yes or no. i suppose to be it is front end problem how to avoid that.
p.surendar reddyHi,
You have miss a step while recording.. What i mean is you have created
bdc for changing some document. you recorded the fields to be changed
but didn't save before terminating recording.
re-create your recording... and before and click save icon as the last step#
in your recording..
Hope this solves your problem..
Enjoy SAP,
Pankaj Singh. -
Error in BDC program for Block vendor in SAP R/3
Hello friends,
I wrote a BDC program to block vendor using FK02.
When I debug the program in <b>No screen</b> mode
the program gives a error 'No batch input data for screen SAPMSSY3 0131.
But the screen name and screen number is not available in the program.
When I execute without debugging in No screen mode, the program works correctly.
When I run in ALL screen mode, the program works correctly and the program does not prompt for SAPMSSY3 0131 screen.
Is there any solution for this problem.check this
... MODE mode
Effect
The processing mode can take the following values:
'A' Display screen
'E' Display only if an error occurs
'N' Do not display
<b>'P' Do not display; debugging possible</b>
If the MODE addition is omitted, then the processing mode is 'A'.
If a screen is displayed in processing mode 'E' because the system reached the end of the BDC data, the system automatically switches to processing mode 'A'.
If breakpoints are set in a transaction tcod called using the CALL TRANSACTION tcod USING itab variant, these are not actually reached in 'N' mode. The system tries to insert data in the Debugger screen; the call ends with SY-SUBRC = 1001 and the message "Batch input data is not available for screen SAPMSSY3 0131" (S 00 344).
Conversely, in 'P' mode, transaction screens are processed in the background (as in 'N' mode) and debugging is possible.
Regards
Prabhu -
Error in bdc programing code-pls help
hi friends,
I was tring to do a bdc program.But it shows me an error. MY bdc program is jus to upload a 2 fields in vendoe master table.
That is LIFNR,NAME1 field for the new vendors.
I worked out an execl sheet for this, and jus copied it to the text file by selecting all and pasting.
Even then i get an error code that BDC_open does not exits.
MY code is this, please help me if iam wrong.
If anyone can help to make it more understandable,I Kindly request you to try out this program with the screen shot and mail to this id [email protected] would be very thankful for your timely help.
report Z_PK_BDC
no standard page heading line-size 255.
include bdcrecx1.
parameters: dataset(132) lower case.
parameters: p_file like rlgrap-filename default
'C:\SAP TESTING\p_file.txt'.
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 OCCURS 0,
data element: LIF16
LIFNR_001(016),
data element: BUKRS
BUKRS_002(004),
data element: KTOKK
KTOKK_003(004),
data element: ANRED
ANRED_004(015),
data element: NAME1_GP
NAME1_005(035),
data element: SORTL
SORTL_006(010),
data element: NAME2_GP
NAME2_007(035),
data element: STRAS_GP
STRAS_008(035),
data element: ORT01_GP
ORT01_009(035),
data element: ORT02_GP
ORT02_010(035),
data element: PFORT_GP
PFORT_011(035),
data element: LAND1_GP
LAND1_012(003),
data element: SPRAS
SPRAS_013(002),
end of record.
End generated data section ***
start-of-selection.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = P_FILE
FILETYPE = 'DAT'
TABLES
DATA_TAB = record
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
IF SY-SUBRC <> 0.
WRITE:/ 'SY-SUBRC:', SY-SUBRC.
ENDIF.
LOOP AT RECORD.
*perform open_dataset using dataset.
*perform open_group.
*do.
*read dataset dataset into record.
*if sy-subrc <> 0. exit. endif.
perform bdc_dynpro using 'SAPMF02K' '0105'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
record-LIFNR_001.
perform bdc_field using 'RF02K-BUKRS'
record-BUKRS_002.
perform bdc_field using 'RF02K-KTOKK'
record-KTOKK_003.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-SPRAS'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.
perform bdc_field using 'LFA1-ANRED'
record-ANRED_004.
perform bdc_field using 'LFA1-NAME1'
record-NAME1_005.
perform bdc_field using 'LFA1-SORTL'
record-SORTL_006.
perform bdc_field using 'LFA1-NAME2'
record-NAME2_007.
perform bdc_field using 'LFA1-STRAS'
record-STRAS_008.
perform bdc_field using 'LFA1-ORT01'
record-ORT01_009.
perform bdc_field using 'LFA1-ORT02'
record-ORT02_010.
perform bdc_field using 'LFA1-PFORT'
record-PFORT_011.
perform bdc_field using 'LFA1-LAND1'
record-LAND1_012.
perform bdc_field using 'LFA1-SPRAS'
record-SPRAS_013.
perform bdc_transaction using 'FK01'.
**enddo.
**perform close_group.
endloop.
**perform close_dataset using dataset.
Thanks in Advance
Rinky123Hi,
If you are using GUI_UPLOAD in 4.7 then the file path whatever you are using currently it won't work. Replace the file path like this.
P_FILE LIKE RLGRAP-FILENAME.
DATA: V_FILE TYPE STRING.
V_FILE = P_FILE.
Now take this v_file for function module.Then only it will open the file otherwise you won't get unable to open file error message.
I observerd that you are getting so many fields from the file to the internal table. -
Budget Document Entry Upload via LSMW or BDC Program not working!
Hi All,
I tried creating a LSMW and a BDC program for upload of budgets by recording Tcode FMBB. Unfortunately, I didn't succeed because some fields in Tcode FMBB are not input ready. I therefore seek an alternative solution to upload the budgets. I have the following questions:-
1. Is there a standard program that can be used to upload the budgets? If so, please give a the name or Tcode for the program.
2. I have checked in this site and confirmed I can use BAPI BAPI_0050_CREATE to upload the budgets. Unfortunately, I have never used BAPIs before. How do I the BAPI to upload my data in Excel? Do I call the BAPI as a function in a program? How do I format the data in Excel for Upload. Kindly provide a step by step procedure on how this can be done and also explain how the data is formatted in Excel.
Thank you.
RobethHi Alok,
May be ur recording a table control in the transaction FB01 for accounting line items..
When recording line items.. u need to record the page "page down" button...
If it is so..
You can control the line item table control , by recording the line item in the second row, then recording the 'page down' button..
This will move your line item to first row and the next line item will be recorded in the second row....and it continues on...
But i am unaware that BDC is tuff for enjoy transactions... If it is so, please go for the bapi specified by Kishan..
Awrd and close the thread if answered...
Thanks
Rajiv -
Error in BDC program which is creating Work Order IW31
Hi All,
I am getting an error - 532 - " Specify only one start time/date " when running bdc program for txn IW31 in back ground. I run the same program in the foreground.. there is no error.. but when I run in background.. I am experiencing the above error.
Thank for Ur time.
Cheers
SenthilHi,
Are you facing this issue during Normal order creation with that functional location ?
Please check CC assignment to functional location and settlement rule applied while saving order.
Thanks
Riyaj -
Hi ,
i have written a bdc program for f-02 .here we have 2 posting keys 31 and 40 .when i recored in shdb i can see when i use 31 posting key then i get 302 screen and when i use 40 posting key then i get 300 screen.But the problem is in 302 screen we have new posting keys and new account numbers .how to update these . here is my code . my file is not getting updated when i get screen 302 .Any advice?
REPORT zfip0009 NO STANDARD PAGE HEADING.
TABLES ska1.
DATA: BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdcdata.
DATA w_date(10) TYPE c.
DATA w_first TYPE c.
DATA w_second TYPE c.
data from flat file
DATA: BEGIN OF t_data OCCURS 0,
bukrs LIKE bkpf-bukrs, "company code
newbs LIKE rf05a-newbs, "Posting Key
newko LIKE rf05a-newko, "New account number(SAP)
wrbtr(13) TYPE c, "amount
dmbtr(13) TYPE c, "sterling local amount "+MW1
mwskz LIKE bseg-mwskz, "Tax code
sgtxt LIKE bseg-sgtxt, "item description
kostl LIKE cobl-kostl, "Cost centre
ps_posid LIKE cobl-ps_posid, "WBS number
aufnr LIKE cobl-aufnr, "Internal order
END OF t_data.
SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_file LIKE rlgrap-filename
DEFAULT 'C:\temp\XSL.txt'.
SELECTION-SCREEN SKIP.
PARAMETERS: p_sess(12) DEFAULT 'GLPOSTING'.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_bldat LIKE bkpf-bldat,
p_budat LIKE bkpf-budat,
p_blart LIKE bkpf-blart,
p_monat LIKE bkpf-monat,
p_bukrs LIKE bkpf-bukrs,
p_bktxt LIKE bkpf-bktxt,
p_xblnr LIKE bkpf-xblnr,
p_waers LIKE bkpf-waers.
SELECTION-SCREEN END OF BLOCK b2.
*SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
*PARAMETERS p_ktopl LIKE ska1-ktopl.
*SELECTION-SCREEN END OF BLOCK b3.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = p_file
DEF_PATH = ' '
mask = ',.,..'
MODE = ' '
TITLE = ' '
IMPORTING
filename = p_file
RC =
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
START OF SELECTION
START-OF-SELECTION.
Get all of the information held on the spreadsheets.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = t_data
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
WRITE :/ 'Failed to Open Input file', p_file.
EXIT.
ENDIF.
REFRESH bdcdata.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = p_sess
user = sy-uname
keep = 'X'.
PERFORM load_bdcdata.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /
'Batch input session', p_sess, 'created: process session via SM35'.
END-OF-SELECTION.
*& Form LOAD_BDCDATA
Load the BDCDATA fields depending
FORM load_bdcdata.
CLEAR: w_first, w_second.
CLEAR bdcdata.
LOOP AT t_data.
IF sy-tabix = 1.
PERFORM bdc_dynpro USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM format_date USING p_bldat.
PERFORM bdc_field USING 'BKPF-BLDAT'
w_date.
PERFORM bdc_field USING 'BKPF-BLART'
p_blart.
PERFORM bdc_field USING 'BKPF-BUKRS'
t_data-bukrs.
PERFORM format_date USING p_budat.
PERFORM bdc_field USING 'BKPF-BUDAT'
w_date.
PERFORM bdc_field USING 'BKPF-WAERS'
p_waers.
PERFORM bdc_field USING 'BKPF-MONAT'
PERFORM bdc_field USING 'BKPF-BKTXT'
p_bktxt.
PERFORM bdc_field USING 'BKPF-XBLNR'
p_xblnr.
PERFORM bdc_field USING 'RF05A-NEWBS'
t_data-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
t_data-newko.
ELSE.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'RF05A-NEWBS'
t_data-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
t_data-newko.
PERFORM bdc_field USING 'RF05A-NEWBK'
t_data-bukrs.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' 'ENTE'.
ENDIF.
IF t_data-newbs = '31' .
w_second = '1'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-SGTXT'.
PERFORM bdc_field USING 'BSEG-WRBTR'
t_data-wrbtr.
PERFORM bdc_field USING 'BSEG-SGTXT'
t_data-sgtxt.
PERFORM bdc_field USING 'RF05A-NEWBS'
t_data-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
t_data-newko.
IF NOT t_data-kostl IS INITIAL.
PERFORM bdc_field USING 'COBL-KOSTL'
t_data-kostl.
ELSEIF NOT t_data-ps_posid IS INITIAL.
PERFORM bdc_field USING 'COBL-PS_POSID'
t_data-ps_posid.
ELSEIF NOT t_data-aufnr IS INITIAL.
PERFORM bdc_field USING 'COBL-AUFNR'
t_data-aufnr.
ENDIF.
*...start of Amendment MW1
IF p_waers ne 'GBP'.
PERFORM bdc_field USING 'BSEG-DMBTR'
t_data-dmbtr.
ENDIF.
ENDIF.
*...end of Amendment MW1 ENDIF.
IF t_data-newbs = '40' .
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-SGTXT'.
PERFORM bdc_field USING 'BSEG-WRBTR'
t_data-wrbtr.
PERFORM bdc_field USING 'BSEG-SGTXT'
t_data-sgtxt.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' 'ENTE'.
IF NOT t_data-kostl IS INITIAL.
PERFORM bdc_field USING 'COBL-KOSTL'
t_data-kostl.
ELSEIF NOT t_data-ps_posid IS INITIAL.
PERFORM bdc_field USING 'COBL-PS_POSID'
t_data-ps_posid.
ELSEIF NOT t_data-aufnr IS INITIAL.
PERFORM bdc_field USING 'COBL-AUFNR'
t_data-aufnr.
ENDIF.
PERFORM bdc_field USING 'BSEG-MWSKZ'
t_data-mwskz.
*...start of Amendment MW1
IF p_waers ne 'GBP'.
PERFORM bdc_field USING 'BSEG-DMBTR'
t_data-dmbtr.
ENDIF.
*...end of Amendment MW1
ENDIF.
AT FIRST.
calculate the tax
PERFORM bdc_field USING 'BKPF-XMWST' 'X'.
ENDAT.
IF t_data-newbs = '40' .
PERFORM bdc_field USING 'DKACB-FMORE'
'X'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE'
'ENTE'.
IF NOT t_data-kostl IS INITIAL.
PERFORM bdc_field USING 'COBL-KOSTL'
t_data-kostl.
ELSEIF NOT t_data-ps_posid IS INITIAL.
PERFORM bdc_field USING 'COBL-PS_POSID'
t_data-ps_posid.
ELSEIF NOT t_data-aufnr IS INITIAL.
PERFORM bdc_field USING 'COBL-AUFNR'
t_data-aufnr.
ENDIF.
ENDIF.
ENDLOOP.
IF w_second = '1'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.
ELSE.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
ENDIF.
PERFORM bdc_field USING 'BDC_OKCODE'
'BU'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE'
'ENTE'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'F-02'
TABLES
dynprotab = bdcdata.
REFRESH bdcdata.
CLEAR bdcdata.
ENDFORM. " LOAD_BDCDATA
Start of screen
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
insert field
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "BDC_FIELD
*& Form format_date
text
FORM format_date USING p_date.
CLEAR w_date.
w_date(2) = p_date+6(2).
w_date+2(1) = '.'.
w_date3(2) = p_date4(2).
w_date+5(1) = '.'.
w_date+6(4) = p_date(4).
ENDFORM. " format_dateIF item-newbs = '09'
OR item-newbs = '19'
OR item-newbs = '29'
OR item-newbs = '39'.
IF item-newum = 'A' OR
item-newum = 'V' OR
item-newum = '1' OR
item-newum = '2' OR
item-newum = '3' OR
item-newum = '5' OR
item-newum = '6' OR
item-newum = 'B' .
PERFORM bdc_dynpro USING 'SAPMF05A' '0304'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
item-wrbtr.
PERFORM bdc_field USING 'BSEG-gsber'
item-gsber.
PERFORM bdc_field USING 'BSEG-PRCTR'
item-prctr.
PERFORM bdc_field USING 'BSEG-ZFBDT'
item-zfbdt1.
PERFORM bdc_field USING 'BSEG-ZUONR'
item-zuonr.
PERFORM bdc_field USING 'BSEG-SGTXT'
item-sgtxt.
IF idx1 = '002' .
EXIT.
ENDIF.
idx = idx + 1.
READ TABLE item INDEX idx .
PERFORM bdc_field USING 'RF05A-NEWBS'
item-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
item-newko.
PERFORM bdc_field USING 'RF05A-NEWUM'
item-newum.
PERFORM bdc_field USING 'RF05A-NEWBW'
item-newbw.
CONTINUE.
ENDIF.
ENDIF.
IF item-newbs = '09'
OR item-newbs = '19'
OR item-newbs = '29'
OR item-newbs = '39' .
IF item-newum = 'H'
OR item-newum = '4'
OR item-newum = '6'
OR item-newum = '7'
OR item-newum = '8'
OR item-newum = '9'
OR item-newum = 'C'
OR item-newum = 'D'
OR item-newum = 'E'
OR item-newum = 'I'
OR item-newum = 'K'
OR item-newum = 'L'
OR item-newum = 'M'
OR item-newum = 'O'
OR item-newum = 'Q'
OR item-newum = 'R'
OR item-newum = 'T'
OR item-newum = 'U'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0303'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
item-wrbtr.
PERFORM bdc_field USING 'BSEG-GSBER'
item-gsber.
PERFORM bdc_field USING 'BSEG-ZFBDT'
item-zfbdt1.
PERFORM bdc_field USING 'BSEG-ZUONR'
item-zuonr.
PERFORM bdc_field USING 'BSEG-SGTXT'
item-sgtxt.
IF idx1 = '002' .
EXIT.
ENDIF.
idx = idx + 1 .
READ TABLE item INDEX idx .
PERFORM bdc_field USING 'RF05A-NEWBS'
item-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
item-newko.
PERFORM bdc_field USING 'RF05A-NEWUM'
item-newum.
PERFORM bdc_field USING 'RF05A-NEWBW'
item-newbw.
CONTINUE.
ENDIF.
ENDIF.
IF item-newbs = '29' OR item-newbs = '39'.
IF item-newum = '7'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0303'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-ZFBDT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ZK'.
PERFORM bdc_field USING 'BSEG-WRBTR'
item-wrbtr.
PERFORM bdc_field USING 'BSEG-GSBER'
item-gsber.
PERFORM bdc_field USING 'BSEG-ZFBDT'
item-zfbdt1.
PERFORM bdc_field USING 'BSEG-ZUONR'
item-zuonr.
PERFORM bdc_field USING 'BSEG-SGTXT'
item-sgtxt.
PERFORM bdc_dynpro USING 'SAPMF05A' '0332'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-BEWAR'
item-ttype.
IF idx1 = '002' .
EXIT.
ENDIF.
idx = idx + 1 .
READ TABLE item INDEX idx .
PERFORM bdc_field USING 'RF05A-NEWBS'
item-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
item-newko.
PERFORM bdc_field USING 'RF05A-NEWUM'
item-newum.
PERFORM bdc_field USING 'RF05A-NEWBW'
item-newbw.
CONTINUE.
ENDIF.
ENDIF.
IF item-newbs = '01' OR item-newbs = '11'
OR item-newbs = '05' OR item-newbs = '15'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0301'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
item-wrbtr.
PERFORM bdc_field USING 'BSEG-GSBER'
item-gsber.
PERFORM bdc_field USING 'BSEG-ZTERM'
item-zterm.
PERFORM bdc_field USING 'BSEG-ZFBDT'
item-zfbdt.
PERFORM bdc_field USING 'BSEG-ZUONR'
item-zuonr.
PERFORM bdc_field USING 'BSEG-SGTXT'
item-sgtxt.
IF idx1 = '002' .
EXIT.
ENDIF.
idx = idx + 1 .
READ TABLE item INDEX idx .
PERFORM bdc_field USING 'RF05A-NEWBS'
item-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
item-newko.
PERFORM bdc_field USING 'RF05A-NEWUM'
item-newum.
PERFORM bdc_field USING 'RF05A-NEWBW'
item-newbw.
CONTINUE.
ENDIF.
IF item-newbs = '21' OR item-newbs = '31'
OR item-newbs = '25' OR item-newbs = '35'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
item-wrbtr.
PERFORM bdc_field USING 'BSEG-SECCO'
''. "'1000'.
PERFORM bdc_field USING 'BSEG-GSBER'
item-gsber.
PERFORM bdc_field USING 'BSEG-ZTERM'
item-zterm.
PERFORM bdc_field USING 'BSEG-ZFBDT'
item-zfbdt.
PERFORM bdc_field USING 'BSEG-ZUONR'
item-zuonr.
PERFORM bdc_field USING 'BSEG-SGTXT'
item-sgtxt.
IF idx1 = '002' .
EXIT.
ENDIF.
idx = idx + 1.
READ TABLE item INDEX idx.
PERFORM bdc_field USING 'RF05A-NEWBS'
item-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
item-newko.
PERFORM bdc_field USING 'RF05A-NEWUM'
item-newum.
PERFORM bdc_field USING 'RF05A-NEWBW'
item-newbw.
CONTINUE.
ENDIF.
IF item-newbs = '70' OR item-newbs = '75'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0305'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
item-wrbtr.
PERFORM bdc_field USING 'DKACB-FMORE'
'X'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-PRCTR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-GSBER'
item-gsber.
PERFORM bdc_field USING 'COBL-KOSTL'
item-kostl.
PERFORM bdc_field USING 'COBL-PRCTR'
item-prctr.
PERFORM bdc_dynpro USING 'SAPMF05A' '0305'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWBW'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
item-wrbtr.
PERFORM bdc_field USING 'BSEG-BZDAT'
'01.04.2005'.
IF idx1 = '002' .
EXIT.
ENDIF.
idx = idx + 1 .
READ TABLE item INDEX idx .
PERFORM bdc_field USING 'RF05A-NEWBS'
item-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
item-newko.
PERFORM bdc_field USING 'RF05A-NEWUM'
item-newum.
PERFORM bdc_field USING 'RF05A-NEWBW'
item-newbw.
CONTINUE.
ENDIF.
ENDLOOP.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_transaction USING 'F-02'.
DELETE item INDEX 1.
DELETE item INDEX 1.
ix = ix + 2 .
ENDDO.
PERFORM close_group. -
Changes in BDC program to upload data from text/excel file
Hi friends i have obtained the BDc program after recording :
start-of-selection.
perform open_group.
perform bdc_dynpro using 'SAPLCOIH' '0100'.
perform bdc_field using 'BDC_CURSOR'
'CAUFVD-GSBER'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'AUFPAR-PM_AUFART'
'PM01'.
perform bdc_field using 'CAUFVD-IWERK'
'460a'.
perform bdc_field using 'CAUFVD-GSBER'
'2460'.
perform bdc_field using 'CAUFVD-EQUNR'
'10000009'.
perform bdc_dynpro using 'SAPLCOIH' '3000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CAUFVD-KTEXT'
'abc'.
perform bdc_field using 'CAUFVD-INGPR'
'GM'.
perform bdc_field using 'CAUFVD-VAPLZ'
'RTN_VELR'.
perform bdc_field using 'CAUFVD-VAWRK'
'460A'.
perform bdc_field using 'BDC_CURSOR'
'CAUFVD-GLTRP'.
perform bdc_field using 'CAUFVD-GSTRP'
'1.8.2010'.
perform bdc_field using 'CAUFVD-GLTRP'
'1.8.2010'.
perform bdc_field using 'CAUFVD-TPLNR'
'RTNP-HIG'.
perform bdc_field using 'CAUFVD-EQUNR'
'10000009'.
perform bdc_field using 'AFVGD-INDET'
'1'.
perform bdc_field using 'AFVGD-WERKS'
'460A'.
perform bdc_field using 'AFVGD-STEUS'
'PMIN'.
perform bdc_field using 'AFVGD-ARBEH'
'H'.
perform bdc_field using 'AFVGD-DAUNE'
'H'.
perform bdc_dynpro using 'SAPLCOIH' '3000'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_CURSOR'
'CAUFVD-KTEXT'.
perform bdc_field using 'CAUFVD-KTEXT'
'abc'.
perform bdc_field using 'CAUFVD-INGPR'
'GM'.
perform bdc_field using 'CAUFVD-VAPLZ'
'RTN_VELR'.
perform bdc_field using 'CAUFVD-VAWRK'
'460A'.
perform bdc_field using 'CAUFVD-GSTRP'
'01.08.2010'.
perform bdc_field using 'CAUFVD-GLTRP'
'01.08.2010'.
perform bdc_field using 'CAUFVD-TPLNR'
'RTNP-HIG'.
perform bdc_field using 'CAUFVD-EQUNR'
'10000009'.
perform bdc_field using 'AFVGD-LTXA1'
'abc'.
perform bdc_field using 'AFVGD-INDET'
'1'.
perform bdc_field using 'AFVGD-ARBPL'
'RTN_VELR'.
perform bdc_field using 'AFVGD-WERKS'
'460A'.
perform bdc_field using 'AFVGD-STEUS'
'PMIN'.
perform bdc_field using 'AFVGD-ARBEH'
'H'.
perform bdc_field using 'AFVGD-DAUNE'
'H'.
perform bdc_transaction using 'IW31'.
perform close_group.
after executing it has two options.one is for call transactioin and other is for with session.Now i want to do the uploading from text file.Please guide me how to achieve that and what should be the order of fields in the text file.I am just a beginner.I know how to do that with LSMW bt trying BDc first time for creating PM ordersYou can use class "cl_gui_frontend_services". First you must select file with "file_open_dialog" method and the you can upload file with "gui_upload" method into internal table. Here is a sample: (I didn't try the code but I'm sure you can get it working, there are lots of sample codes about that. You can also search FM "GUI_UPLOAD").
REPORT zreport.
DATA:
gv_subrc TYPE sysubrc,
gv_result TYPE abap_bool,
gt_data_tab type table of zstruc.
PARAMETERS: p_fname LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
PERFORM file_open_dialog USING space space space space
CHANGING p_fname gv_action gv_subrc.
START-OF-SELECTION.
PERFORM gui_upload TABLES gt_data_tab
USING p_fname CHANGING gv_subrc.
*** FORMS ***
FORM file_open_dialog USING pv_window_title
pv_default_extension
pv_default_filename
pv_initial_directory
CHANGING pv_filename
pv_user_action
pv_subrc.
DATA:
lt_file_table TYPE filetable,
lv_rc TYPE i,
lv_initial_directory TYPE string.
IF pv_initial_directory IS INITIAL.
PERFORM get_desktop_directory CHANGING lv_initial_directory.
ELSE.
lv_initial_directory = pv_initial_directory.
ENDIF.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = pv_window_title
default_extension = pv_default_extension
default_filename = pv_default_filename
* file_filter =
* with_encoding =
initial_directory = lv_initial_directory
* multiselection =
CHANGING
file_table = lt_file_table
rc = lv_rc
user_action = pv_user_action
* file_encoding =
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5
pv_subrc = sy-subrc.
IF pv_subrc EQ 0.
READ TABLE lt_file_table INTO pv_filename INDEX 1.
ENDIF.
ENDFORM.
FORM gui_upload TABLES pt_data_tab
USING pv_filename
CHANGING pv_subrc TYPE sysubrc.
DATA:
lt_data_tab TYPE TABLE OF string,
lv_filename TYPE string.
lv_filename = pv_filename.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = lv_filename
filetype = 'ASC'
has_field_separator = 'X'
* header_length = 0
* read_by_line = 'X'
* dat_mode = SPACE
* codepage = SPACE
* ignore_cerr = ABAP_TRUE
* replacement = '#'
* virus_scan_profile =
* show_transfer_status = 'X'
* IMPORTING
* filelength =
* header =
CHANGING
data_tab = lt_data_tab
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
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19
pv_subrc = sy-subrc.
IF pv_subrc EQ 0.
pt_data_tab[] = lt_data_tab[].
ENDIF.
ENDFORM. -
BDC Program is not working in background mode
Hi All,
I hv one bdc program for tcode fb02 which is working fine in foreground mode and data is updated to each screen properly. While running the same program in Background mode data is not updated. Can u seggust the solution.
Regards,
Rahul SHi ,
Remove the break point in the BDC performs.
put the break point once u complete the BDC.... otherwise execute the BDC in MODE 'E'.. error mode.
regards,
Rama Reddy
Edited by: ram reddy on Nov 16, 2009 5:37 AM -
Problem in creating a BDC program for transaction cj20n(project sytem)
Hi all,
I am trying to create project,WBS element ,network and activity using a BDC program,
I am able to create to a recording for the transaction cj20n using tcode shdb but when i run the recording it doesnt run properly i am not able to create any thing.
I get error saying that a particular field doesnt exist on the screen.
Is possible to create a BDC program for transaction CJ20N ?
Also is there any other alternative apart from using a BAPI or a function module.
Thanks,
NishantHi,
Check below link for BAPIs of transaction cj20n.
[BAPI for cj20n|BAPI for CJ20N transaction]
Thanks,
Asit Purbey. -
BDC programming using Batch input Session.
Hello Experts.
I'm an ABAP beginner. I've benn practicing BDC programming using Batch input Session
at the moment.
This is the program that upload Local file which has plural records, and put the records into a Session.
These are the records.
413459,KIM EI HWAN121 ,19810607,MIADONG1234
423459,KIM EI HWAN122 ,19810607,MIADONG1235
433459,KIM EI HWAN123 ,19810607,MIADONG1236
443459,KIM EI HWAN124 ,19810607,MIADONG1237
453459,KIM EI HWAN125 ,19810607,MIADONG1238
463459,KIM EI HWAN126 ,19810607,MIADONG1239
I succeeded making Session.
However, for some reaseon, every record in the Session has got the same, value which is the first record.
Why is this happening? And How can I correct the code below?
REPORT ZBCUSER002_BATCH NO STANDARD PAGE HEADING
LINE-SIZE 255
MESSAGE-ID ZBATCH.
= Types definition ===================================================
TYPES: BEGIN OF TYP_LOCAL, "For Local file upload
RECORD(200) TYPE C,
END OF TYP_LOCAL.
= Internal table definition ==============================================
DATA: BEGIN OF BDC_TAB OCCURS 0. "BDCDATA itab
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.
DATA: BEGIN OF MESSAGE_BDC OCCURS 0. "Message itab
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF MESSAGE_BDC.
DATA: TBL_LOCAL TYPE STANDARD TABLE OF TYP_LOCAL, "Local file itab
F_TBL TYPE FILETABLE. "FILETABLE fot local
= Structure table definition =========================================
DATA: STR_F_TBL LIKE LINE OF F_TBL, "FILETABLE structure
STR_LOCAL TYPE TYP_LOCAL. "Local file structure
= Variable definition ================================================
DATA: LV_RC TYPE I, "Method parameter
ENUMBER TYPE ZT601-ENUMBER, "Employee number
NAME TYPE ZT601-NAME, "Employee name
BIRTH TYPE ZT601-BIRTH, "Birthday
HOMETOWN TYPE ZT601-HOMETOWN, "Hometown
SYSVAL TYPE SY-SUBRC. "System valuible
= Constants definition ===============================================
CONSTANTS: TBL_NAME(10) TYPE C VALUE 'ZT601'. "Table name ZT601
= Parameters definition ==============================================
PARAMETERS: F_NAME TYPE RLGRAP-FILENAME OBLIGATORY, "File path
EXECMODE(1) TYPE C. "Execute mode
INITIALIZATION
*----- Initialize all valuables, structures and internal tables
CLEAR: LV_RC,
STR_F_TBL,
STR_LOCAL,
ENUMBER,
NAME,
BIRTH,
HOMETOWN.
REFRESH: F_TBL,
TBL_LOCAL.
AT SELECTION-SCREEN
*----- When the button next to Parameter 'F_NAME',
*----- File dialog open.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_NAME.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'SELECT FILE'
DEFAULT_FILENAME = '*.TXT'
CHANGING
FILE_TABLE = F_TBL
RC = LV_RC
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
OTHERS = 3
*----- system valiable check.
*----- If done properly,
*----- Put the path into the File path parameter
IF SY-SUBRC = 0.
READ TABLE F_TBL INTO STR_F_TBL INDEX 1.
F_NAME = STR_F_TBL.
*----- If not done properly, show message
*----- An error occured while getting file path then end program
ELSE.
MESSAGE E000.
ENDIF.
*----- Execute code can only be A or N.
AT SELECTION-SCREEN ON EXECMODE.
IF EXECMODE <> 'A' AND EXECMODE <> 'N'.
MESSAGE E001.
ENDIF.
START-OF-SELECTION
START-OF-SELECTION.
*----- Upload Local file of file path parameter.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = F_NAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TBL_LOCAL
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
OTHERS = 6.
*----- System valiable check.
*----- If not done properly, show an error message
*----- An error occured while uploading local file then end program
IF SY-SUBRC <> 0.
MESSAGE E002.
ENDIF.
PERFORM BDC_OPEN.
*----- Loop Internal table
LOOP AT TBL_LOCAL INTO STR_LOCAL.
*----- Spilt the file record and put them into each valiable.
SPLIT STR_LOCAL AT ',' INTO ENUMBER
NAME
BIRTH
HOMETOWN.
*----- Data check Function module
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
DATE = BIRTH
EXCEPTIONS
PLAUSIBILITY_CHECK_FAILED = 1
OTHERS = 2.
*----- When error occurs while checking date, show an error message.
*----- (&1) is not date
IF SY-SUBRC <> 0.
MESSAGE E003 WITH BIRTH.
ENDIF.
*-- The first screen of SE11
*----- Screen number 0102 of program id SAPMSRD0
PERFORM BDC_DYNPRO USING 'SAPMSRD0' '0102'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SHOW'. "Display button
PERFORM BDC_FIELD USING 'RSRD1-TBMA'
'X'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA_VAL'
TBL_NAME. "ZT601
*-- Table definition screen
*----- Screen number 2000 of program id SAPLSD02
PERFORM BDC_DYNPRO USING 'SAPLSD02' '2000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TDED'. "Create entry
PERFORM BDC_FIELD USING 'BDC_SUBSCR'
'SAPLSD02'.
PERFORM BDC_FIELD USING 'BDC_SUBSCR'
'SAPLSED5'.
*-- Data input screen
*----- Screen number 0101 of program /1BCDWB/DBZT601
PERFORM BDC_DYNPRO USING '/1BCDWB/DBZT601' '0101'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ZT601-CRUSER'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SAVE'. "Save
PERFORM BDC_FIELD USING 'ZT601-MANDT'
SY-MANDT. "Client
PERFORM BDC_FIELD USING 'ZT601-ENUMBER'
ENUMBER. "Employee number
PERFORM BDC_FIELD USING 'ZT601-NAME'
NAME. "Employee name
PERFORM BDC_FIELD USING 'ZT601-BIRTH'
BIRTH. "Birthday
PERFORM BDC_FIELD USING 'ZT601-HOMETOWN'
HOMETOWN. "Hometown
PERFORM BDC_FIELD USING 'ZT601-CRDATE'
SY-DATUM. "System date
PERFORM BDC_FIELD USING 'ZT601-CRTIME'
SY-UZEIT. "System time
PERFORM BDC_FIELD USING 'ZT601-CRUSER'
SY-UNAME. "System user
*-- Data input screen (After input)
*----- Screen number 0101 of program /1BCDWB/DBZT601
PERFORM BDC_DYNPRO USING '/1BCDWB/DBZT601' '0101'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'. "Back
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ZT601-CRUSER'. "Field on Cursor
*-- Table definition screen]
*----- Screen number 2000 of program SAPLSD02
PERFORM BDC_DYNPRO USING 'SAPLSD02' '2000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WB_BACK'. "Back
*-- The first screen of SE11
*----- Screen number 0102 of program SAPMSRD0
PERFORM BDC_DYNPRO USING 'SAPMSRD0' '0102'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BACK'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA'
'X'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA_VAL'
TBL_NAME.
PERFORM BDC_INSERT.
ENDLOOP.
PERFORM BDC_CLOSE.
FORM BDC_DYNPRO *
Put Program-Id, Dynpro screen number, Start point
into DBCDATA
--> PROGRAM *
--> DYNPRO *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDC_TAB.
BDC_TAB-PROGRAM = PROGRAM.
BDC_TAB-DYNPRO = DYNPRO.
BDC_TAB-DYNBEGIN = 'X'.
APPEND BDC_TAB.
ENDFORM.
FORM BDC_FIELD *
Put Field Name and Value into BDCDATA
--> FNAM *
--> FVAL *
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDC_TAB.
BDC_TAB-FNAM = FNAM.
BDC_TAB-FVAL = FVAL.
APPEND BDC_TAB.
ENDFORM.
FORM bdc_process *
FORM BDC_OPEN.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'Testsession'
KEEP = 'X'
USER = SY-UNAME.
IF SY-SUBRC <> 0.
MESSAGE E006 WITH SY-SUBRC.
ENDIF.
ENDFORM.
FORM bdc_insert *
FORM BDC_INSERT.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'SE11'
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE E007 WITH SY-SUBRC.
ENDIF.
CLEAR: BDC_TAB.
ENDFORM.
FORM bdc_close *
FORM BDC_CLOSE.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE E008 WITH SY-SUBRC.
ENDIF.
ENDFORM.God I forgot to refresh Internal table after putting record into Session.
Now I'm done.
You guys be careful too. -
Can we make a BDC program as a webservice
Hi All,
Can we write a BDC program in RFC Function Module and access it through web service.
We have a requirement to create a Return Order, for that we have recorded the Va01 transaction for return order and included the same recorded code in RFC Function module and also created web service for it. But when we tried to access through webservice, it is showing the following error
"Call to returned http code 500 (Internal Server Error) with unacceptable content type (text/html; charset=utf-8).
><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode> soap:Server </faultcode><faultstring xml:lang="en"> RABAX occurred on server side </faultstring><detail><sap:Rabax xmlns:sap="http://www.sap.com/webas/710/soap/runtime/abap/fault/generic"><MESSAGE>Access via 'NULL' object reference not possible.</MESSAGE><SYMSGID>VX</SYMSGID><SYMSGTY>S</SYMSGTY><SYMSGNO>206</SYMSGNO><SYMSGV1>TextEditControl</SYMSGV1><SYMSGV2></SYMSGV2><SYMSGV3></SYMSGV3><SYMSGV4></SYMSGV4><SYREPID>SAPLV70T</SYREPID><SYTCODE>VA01</SYTCODE><SYDYNNR>2000</SYDYNNR><SYUNAME>DIK</SYUNAME><SYMANDT>100</SYMANDT><SYLANGU>E</SYLANGU><SYECODE>558</SYECODE><SYHOST>sapdvp</SYHOST><SYSYSID>SD1</SYSYSID><SYOPSYS>Windows NT</SYOPSYS><SYDBSYS>MSSQL</SYDBSYS><SYSAPRL>700</SYSAPRL><SYXPROG>SAPCNVE</SYXPROG><SYXFORM>CONVERSION_EXIT</SYXFORM><SYDATUM>20111104</SYDATUM><SYUZEIT>153001</SYUZEIT><SYETEXT>RABAX_STATE</SYETEXT><ERRORCODE>OBJECTS_OBJREF_NOT_ASSIGNED</ERRORCODE><PATHTRANS>/sap/bc/srt/rfc/sap/zcom_create_return_bdc/100/zcom_create_return_bdc/zcom_create_return_bdc</PATHTRANS><MESSAGE>Access via 'NULL' object reference not possible.</MESSAGE><ERRORCODE>OBJECTS_OBJREF_NOT_ASSIGNED</ERRORCODE></sap:Rabax></detail></soap:Fault></soap:Body></soap:Envelope>"
When we execute the same RFC from SAP SE37 T-Code , it is working fine but same not working from web service .
One more thing If anybody knows the standard BAPI or Function Module to create the Sales Return Order please do post .
Thanks in advance ,
ChaitanyaHi Pranav,
Okay. Kindly let me know how to run rfc function module in background because we have call transaction perform in RFC function module and I am posting BDC code that is using inside RFC function module.
TYPES:BEGIN OF t_bdcdata,
program TYPE bdc_prog,
dynpro TYPE bdc_dynr,
dynbegin TYPE bdc_start,
fnam TYPE fnam_____4,
fval TYPE bdc_fval,
END OF t_bdcdata.
DATA:wa_bdcdata TYPE t_bdcdata,
it_bdcdata TYPE TABLE OF t_bdcdata.
DATA:auart_001 TYPE bdc_fval,
vkorg_002 TYPE bdc_fval,
vtweg_003 TYPE bdc_fval,
spart_004 TYPE bdc_fval,
vbeln_005 TYPE bdc_fval,
kunwe_006 TYPE bdc_fval,
bstkd_007 TYPE bdc_fval,
augru_010 TYPE bdc_fval,
bsark_011 TYPE bdc_fval,
augru_019 TYPE bdc_fval,
bsark_020 TYPE bdc_fval.
DATA:v_subrc TYPE sy-subrc.
MOVE auart TO auart_001.
MOVE vkorg TO vkorg_002.
MOVE vtweg TO vtweg_003.
MOVE spart TO spart_004.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = vbeln
IMPORTING
output = vbeln.
MOVE vbeln TO vbeln_005.
MOVE kunwe TO kunwe_006.
MOVE bstkd TO bstkd_007.
MOVE augru TO augru_010.
MOVE bsark TO bsark_011.
MOVE augru TO augru_019.
MOVE bsark TO bsark_020.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '0101'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'VBAK-AUART'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=COPY'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'VBAK-AUART'.
wa_bdcdata-fval = auart_001.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'VBAK-VKORG'.
wa_bdcdata-fval = vkorg_002.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'VBAK-VTWEG'.
wa_bdcdata-fval = vtweg_003.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'VBAK-SPART'.
wa_bdcdata-fval = spart_004.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLV45C'.
wa_bdcdata-dynpro = '0100'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=UEBR'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'LV45C-VBELN'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'LV45C-VBELN'.
wa_bdcdata-fval = vbeln_005.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLJ3AD'.
wa_bdcdata-dynpro = '2010'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=ENT1'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'J_3ASZFH-BSTKD'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'J_3ASZFH-KUNWE'.
wa_bdcdata-fval = kunwe_006.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'J_3ASZFH-BSTKD'.
wa_bdcdata-fval = bstkd_007.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'J_3ASZFH-AUGRU'.
wa_bdcdata-fval = augru_010.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'J_3ASZFH-BSARK'.
wa_bdcdata-fval = bsark_011.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLJ3AD'.
wa_bdcdata-dynpro = '2010'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=SICH'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'J_3ASZFH-BSTKD'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'J_3ASZFH-AUGRU'.
wa_bdcdata-fval = augru_019.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'J_3ASZFH-BSARK'.
wa_bdcdata-fval = bsark_020.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
EXPORTING
tcode = 'VA01'
skip_screen = ''
mode_val = 'N'
update_val = 'A'
IMPORTING
subrc = subrc
TABLES
using_tab = it_bdcdata
SPAGPA_TAB =
mess_tab = messtab
EXCEPTIONS
call_transaction_denied = 1
tcode_invalid = 2
OTHERS = 3
IF sy-subrc <> 0.
subrc = sy-subrc.
EXIT.
ENDIF.
so i am using BDC code to create order instead of function module and converted bdccode into rfc function module,
just help how to do with above code.
With Regards,
Krishna Chaitanya
Maybe you are looking for
-
Error while inserting attachements data into FND_LOBS
Hi, I m trying to insert data into fnd_lobs using below, I didn't declare any variables for below. I m getting many compilation erros for below insert, Could you let me know if i have to declare any of below values. INSERT INTO fnd_lobs (f
-
I purchased a new computer and also Adobe acrobat XI Pro. It has not worked properly. I uninstalled it and tried to reinstall it, but the computer will not accept the Serial number. What can I do?
-
CAN I CHARGE MY IPOD NANO WITHOUT USING THE APPLE POWER ADAPTER? Can I use any of my many usb wall charging adapters instead?
-
How do i get songs from Garageband on my Iphone to Itunes?
I have been really frustrated trying to figure out how to get songs off my iphone's garageband app onto itunes or onto my macbook, I follow the usual steps of sending the song to itunes but then when i try to find it, it's nowhere to been seen! i've
-
my iPod is experencing the same problems that everyone else has. You know how iTunes doesn't recognize the iPod and it flashes the folder icon. I still have about 3 weeks left in my one year warrenty and i can't seem to find any iformation about how