BDC issues on XD02 ?
Hi, expert:
The customer mass update is planned to be done using a BDC session. It is required that all updated fields go through XD02 validation with the exception of Address Management validation. Is it possible to skip the Address Management validation for certain fields like House#, Street, Province, etc.
Thanks in advance!
if a field is mandatory or there is a check table for the field.... BDC program will validate it. You can not bypass the validation... BDC is actually the recording of what you do manually.
If you want to bypass validation then you have to use some enhancements or exits before writting the BDC..
Similar Messages
-
Hi All,
we have written a bdc for material upload for Tcode MMZ1. all works fine till the Accounting screen where we have to give the valuation type as D. (MBEW-BWTTY). and the Costing Screen we have to manually give enter to cross these screens and then save it. How can i overcome this issue.
Points vl be rewarded for all suggestions.
This is the Program - (Problem area is in bold)
*& Report Z_GMM
REPORT Z_GMM.
TABLES : RMMG1,MAKT,MARA,MVKE,MG03STEUER,MARC,MPOP,MBEW,RM03M.
DATA: BEGIN OF IT_MATE OCCURS 1,
MATNR(16) TYPE C,
MBRSH(1) TYPE C,
MTART(4) TYPE C,
WERKS(4) TYPE C,
LGORT(4) TYPE C,
BWTAR(10) TYPE C,
VKORG(4) TYPE C,
VTWEG(2) TYPE C,
REF_MATNR(16) TYPE C,
REF_WERKS(4) TYPE C,
REF_LGORT(4) TYPE C,
REF_BWTAR(10) TYPE C,
REF_VKORG(4) TYPE C,
REF_VTWEG(2) TYPE C,
VERSG(1) TYPE C,
KTGRM(2) TYPE C,
MTPOS(4) TYPE C,
PRMOD(1) TYPE C,
TAXKM(1) TYPE C,
KLART(3) TYPE C,
BWTTY(1) TYPE C,
END OF IT_MATE.
DATA: BEGIN OF IT_MATE_ERR OCCURS 1,
MATNR(16) TYPE C,
MBRSH(1) TYPE C,
MTART(4) TYPE C,
WERKS(4) TYPE C,
LGORT(4) TYPE C,
BWTAR(10) TYPE C,
VKORG(4) TYPE C,
VTWEG(2) TYPE C,
REF_MATNR(16) TYPE C,
REF_WERKS(4) TYPE C,
REF_LGORT(4) TYPE C,
REF_BWTAR(10) TYPE C,
REF_VKORG(4) TYPE C,
REF_VTWEG(2) TYPE C,
VERSG(1) TYPE C,
KTGRM(2) TYPE C,
MTPOS(4) TYPE C,
PRMOD(1) TYPE C,
TAXKM(1) TYPE C,
KLART(3) TYPE C,
BWTTY(1) TYPE C,
MSG(100) TYPE C,
END OF IT_MATE_ERR.
DATA: IT_BDCDATA LIKE BDCDATA OCCURS 1 WITH HEADER LINE.
DATA: IT_MSGS LIKE BDCMSGCOLL OCCURS 1 WITH HEADER LINE.
DATA: V_MSG(100) TYPE C,
V_MODE,
V1(20) TYPE C.
DATA: V_FILE TYPE STRING.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY DEFAULT 'C:\'.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-H02.
PARAMETERS: P_ALL RADIOBUTTON GROUP G1,
P_NO RADIOBUTTON GROUP G1 DEFAULT 'X',
P_ERR RADIOBUTTON GROUP G1.
SELECTION-SCREEN: END OF BLOCK B2.
SELECTION-SCREEN: END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM SHOW_OPEN_DIALOG.
START-OF-SELECTION.
PERFORM READ_DATA.
IF NOT IT_MATE[] IS INITIAL.
IF P_ALL = 'X'.
V_MODE = 'A'.
ELSEIF P_NO = 'X'.
V_MODE = 'N'.
ELSE.
V_MODE = 'E'.
ENDIF.
PERFORM POPULATE_BDCDATA.
ENDIF.
END-OF-SELECTION.
IF NOT IT_MATE_ERR[] IS INITIAL.
PERFORM DOWNLOAD_ERR_REC.
ENDIF.
*& Form SHOW_OPEN_DIALOG
text
FORM SHOW_OPEN_DIALOG .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
ENDFORM. " SHOW_OPEN_DIALOG
*& Form READ_DATA
text
FORM READ_DATA.
DATA: V_FILE TYPE STRING.
V_FILE = P_FILE.
IF NOT V_FILE IS INITIAL.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_MATE
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.
ENDIF.
ENDFORM. " READ_DATA
*& Form POPULATE_BDCDATA
text
FORM POPULATE_BDCDATA .
LOOP AT IT_MATE.
perform bdc_dynpro using 'SAPMM03M' '0060'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RM03M-MATNR' IT_MATE-MATNR.
perform bdc_field using 'RM03M-MBRSH' IT_MATE-MBRSH.
perform bdc_field using 'RM03M-MTART' IT_MATE-MTART.
perform bdc_field using 'RM03M-REF_MATNR' IT_MATE-REF_MATNR.
perform bdc_dynpro using 'SAPMM03M' '0070'.
perform bdc_field using 'BDC_OKCODE' '=SELA'.
perform bdc_dynpro using 'SAPMM03M' '0070'.
perform bdc_field using 'BDC_OKCODE' '=SCHL'.
perform bdc_field using 'RM03M-KZAU1(01)' 'X'.
perform bdc_field using 'RM03M-KZAU1(03)' 'X'.
perform bdc_field using 'RM03M-KZAU1(04)' 'X'.
perform bdc_field using 'RM03M-KZAU1(05)' 'X'.
perform bdc_field using 'RM03M-KZAU1(06)' 'X'.
perform bdc_field using 'RM03M-KZAU1(08)' 'X'.
perform bdc_field using 'RM03M-KZAU1(09)' 'X'.
perform bdc_field using 'RM03M-KZAU1(11)' 'X'.
perform bdc_field using 'RM03M-KZAU1(12)' 'X'.
perform bdc_field using 'RM03M-KZAU2(02)' 'X'.
perform bdc_field using 'RM03M-KZAU2(05)' 'X'.
perform bdc_field using 'RM03M-KZAU2(06)' 'X'.
perform bdc_dynpro using 'SAPMM03M' '0080'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RM03M-WERKS' IT_MATE-WERKS.
perform bdc_field using 'RM03M-LGORT' IT_MATE-LGORT.
perform bdc_field using 'RM03M-VKORG' IT_MATE-VKORG.
perform bdc_field using 'RM03M-VTWEG' IT_MATE-VTWEG.
perform bdc_field using 'RM03M-REF_WERKS' IT_MATE-REF_WERKS.
perform bdc_field using 'RM03M-REF_LGORT' IT_MATE-REF_LGORT.
perform bdc_field using 'RM03M-REF_VKORG' IT_MATE-REF_VKORG.
perform bdc_field using 'RM03M-REF_VTWEG' IT_MATE-REF_VTWEG.
perform bdc_dynpro using 'SAPMM03M' '0210'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0215'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0216'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0212'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0248'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0249'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0252'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0260'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0270'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0275'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0280'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPMM03M' '0290'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_OKCODE' '=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE' '=YES'.
CALL TRANSACTION 'MMZ1' USING IT_BDCDATA
MODE V_MODE
UPDATE 'S' "SYNCHRONOUS
MESSAGES INTO IT_MSGS.
IF SY-SUBRC = 0.
PERFORM HANDLE_SUCCESS_RECS.
REFRESH IT_MSGS.
CLEAR: V_MSG.
ELSE.
PERFORM HANDLE_ERROR_RECS.
REFRESH IT_MSGS.
CLEAR: V_MSG,
IT_MATE_ERR.
ENDIF.
CLEAR: IT_BDCDATA,
IT_BDCDATA[].
ENDLOOP.
ENDFORM. " POPULATE_BDCDATA
*& Form BDC_DYNPRO
text
-->PROGRAM text
-->DYNPRO text
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROGRAM.
IT_BDCDATA-DYNPRO = DYNPRO.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM. "BDC_DYNPRO
*& Form BDC_FIELD
text
-->FNAM text
-->FVAL text
FORM BDC_FIELD USING FNAM FVAL.
IF NOT FVAL IS INITIAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
*& Form HANDLE_SUCCESS_RECS
text
FORM HANDLE_SUCCESS_RECS .
READ TABLE IT_MSGS WITH KEY MSGTYP = 'S'.
IF SY-SUBRC = 0.
*--Formatting the message
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MSGS-MSGID
LANG = SY-LANGU
NO = IT_MSGS-MSGNR
V1 = IT_MSGS-MSGV1
V2 = IT_MSGS-MSGV2
V3 = IT_MSGS-MSGV3
V4 = IT_MSGS-MSGV4
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.
ELSE.
WRITE:/ V_MSG.
CLEAR: V_MSG,
IT_MSGS.
ENDIF.
ENDIF.
ENDFORM. " HANDLE_SUCCESS_RECS
*& Form HANDLE_ERROR_RECS
*text
FORM HANDLE_ERROR_RECS .
READ TABLE IT_MSGS WITH KEY MSGTYP = 'E'.
IF SY-SUBRC = 0.
*--Formatting the message
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MSGS-MSGID
LANG = SY-LANGU
NO = IT_MSGS-MSGNR
V1 = IT_MSGS-MSGV1
V2 = IT_MSGS-MSGV2
V3 = IT_MSGS-MSGV3
V4 = IT_MSGS-MSGV4
IMPORTING
MSG = IT_MATE_ERR-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.
ELSE.
MOVE-CORRESPONDING IT_MATE TO IT_MATE_ERR.
APPEND IT_MATE_ERR.
DELETE IT_MATE INDEX SY-TABIX.
CLEAR IT_MATE_ERR.
ENDIF.
ENDIF.
ENDFORM. " HANDLE_ERROR_RECS
*& Form DOWNLOAD_ERR_REC
*text
FORM DOWNLOAD_ERR_REC .
V1 = P_FILE(3).
SHIFT P_FILE BY 3 PLACES LEFT.
CONCATENATE 'ERR_' P_FILE INTO P_FILE.
CONCATENATE V1 P_FILE INTO P_FILE.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\ERR_MMZ1.XLS'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = 'X'
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
WRITE_EOL = ABAP_TRUE
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = IT_MATE_ERR
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
MESSAGE I000(Z00) WITH 'Error File downloaded at' V_FILE.
ENDIF.
ENDFORM. " DOWNLOAD_ERR_RECHi,
In your code just try and replace the lines
perform bdc_dynpro using 'SAPMM03M' '0290'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_OKCODE' '=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE' '=YES'.
with this code and see if it helps.Please add you itab fields at necessary places in this code.
perform bdc_dynpro using 'SAPMM03M' '0290'.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MARA-MEINS'
record-MEINS_014.
perform bdc_field using 'MBEW-EKALR'
record-EKALR_015.
perform bdc_field using 'MARC-LOSGR'
record-LOSGR_016.
perform bdc_field using 'MBEW-BKLAS'
record-BKLAS_017.
perform bdc_field using 'MBEW-BWTTY'
record-BWTTY_018.
perform bdc_field using 'MBEW-VPRSV'
record-VPRSV_019.
perform bdc_field using 'MBEW-PEINH'
record-PEINH_020.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
Reward points if useful
Regards,
Bhavin P Shah -
Reg : BDC issue while updating infotype 40 inside BADI class method
Hi Friends,
Actually in my badi class, there is a method where i need to save the infotype fields including comment fields.. So with BDC recording i recorded screen fields and passing the pernr internal table values to recorded pernr values.. by doing this im getting error and so BDC is not upadting the data.. moreover if i pass directly pernr number within single quotes, BDC is working fine and data is getting updated..
bdc_field 'RP50G-PERNR' pernr. --> Error Message while calling transaction through BDC
bdc_field 'RP50G-PERNR' '00001234' ---> updating successfully..
1. Tell me whether the issue is with BADI or wat ? means we cant able to use BDC inside badi ?
2. I also tried changing my internal table value of pernr to type 'C' of length 8.. eventhough its showing error..
Please tell me what i need to do .... ?Hi Dilek Ersoz Adak ,
I also tried with that, but getting same error.. Below is my error im getting while updating BDC through call transaction,
1 PA30 SAPMP50A 1000 E K PBAS_SERVICE 001 HRADMIN EPPRELE 00000121 HRAdministrator CTU RP50G-PERNR
Person is treated already by the HR Administrator -
BDC issues in FB60 while posting through proxy
Hi All,
I have created a BDC for FB 60 & FB65. Now, the requirement is that Data will come from XI as inbound proxy and the code will get executed. XI sends a separate file for each record. That is if 10 documents are to be created from FB 60 , then XI will send 10 separate files at the same time to ECC. This particular design is creating the issue.
What happens is 10 files are getting executed at the same time in ECC and few records are getting created properly and few are failing. The error status shows that it is holding a wrong company code. Probably the reason for this failure is the company code that needs to be set everytime in FB60 or 65 . As we know these are two tcodes where once we set the Co. Code it holds the value for that logon . I have written the code in such a way that everytime the co. code will be reset but since all the files are getting executed right at the same moment, somehow there is some clash.
If I send the records as a single file from XI, it works out perfectly. But the need from Xi is to send them in separate files and at the same time.
Please suggest me is there any way to handle this issue.Hi
Try making your Inbound interface in XI as Synchronous so that you will receive files one by one. In case of any error return the reposne back to XI so that you know which records failed. This seems a good option for you.
Else You can also make your proxy behave EOIO. Refer below link. But error handling will be an issue. If any message fails youe queue will be stucked till somebody clears that one.
http://help.sap.com/saphelp_nw04/helpdata/en/65/40c9a4a1fa476288ac61b5fcc6bbde/frameset.htm
Regards
Vinit -
BDC issue background and foreground
Hiii
i have already write bdc code using batch input. The data is taken from an excel file .
How the program work now is it create a session in SM35 and i can decide to execute the session either in background or foreground.
The reson why i did batch input and not call transaction is because i am told that with call transaction you can't execute batch input program in background since the excel file will be loaded from the user desktop. With call transaction and background execution the file need to be loaded on server first and then take the file from the server to BDC tcode.
My problem is I need my program to execute automatically without passing though the SM35. I also need to give the option to user to either execute is in foreground or background.
BDC code look this:
Call function "OPEN_BDC"
group = "ztest" I use constant
keep = "X'
perform dynpro
perform fillfield
call fuction "CLOSE_BDC"
1) I am told to use the FM file_open / file_submit / file_close but I dont really know hat parameter to pass in those FM the file_submit is giving me exception error.
2) I tried to use submit program RSBDCSUB . it create a session in sm35 and have status background job but the session havent executed
3) All the No1 and No2 is to execute the BDC in background then what about the solution if user what to execute in foreground.
Please i need precise answer??Job_submit is not functioning plzzz ess sample code below because of invalid_jobdata = 3
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobgroup = Ztest //Session name in SM35
jobname = v_jobname
IMPORTING
jobcount = v_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
authcknam = sy-uname
jobcount = v_jobcount
jobname = v_jobname
language = sy-langu
report = sy-repid
VARIANT = ' '
IMPORTING
STEP_NUMBER =
EXCEPTIONS
bad_priparams = 1
bad_xpgflags = 2
invalid_jobdata = 3
jobname_missing = 4
job_notex = 5
job_submit_failed = 6
lock_failed = 7
program_missing = 8
prog_abap_and_extpg_set = 9
OTHERS = 10
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = v_jobcount
jobname = v_jobname
sdlstrtdt = sy-uzeit
sdlstrttm = sy-datum
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9
IF sy-subrc <> 0.
ENDIF. -
Hi,
In VK15, I am uploading Condition record through BDC,
where Its only updating the 14 line items,If its excedding more than 14 lines I am getting error...
How to upload all excel data at a time ..
Can anybody suggest me ...with simple example coding
Thanks
Kumarhi kumar,
try the below sample code for data upload ,with your transaction.
TYPES: BEGIN OF T_CDATA,
ATKLA LIKE CABN-ATKLA,
ATNAM LIKE CABN-ATNAM,
ATFOR LIKE CABN-ATFOR,
END OF T_CDATA.
TYPES: BEGIN OF T_CCHAR,
ATWRT(30),
ATWTB(30),
END OF T_CCHAR.
DATA: IT_CDATA TYPE STANDARD TABLE OF T_CDATA,
IT_CCHAR TYPE STANDARD TABLE OF T_CCHAR,
IT_BDC TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE.
DATA: WA_CDATA TYPE T_CDATA,
WA_BDC TYPE BDCDATA,
WA_CCHAR TYPE T_CCHAR.
PARAMETERS: P_ATKLA LIKE CABN-ATKLA OBLIGATORY,
P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
CONSTANTS: C_TCODE LIKE TSTC-TCODE VALUE 'CT04'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
PERFORM f_get_f4_help USING p_fname.
START-OF-SELECTION.
SELECT ATKLA ATNAM ATFOR INTO TABLE IT_CDATA
FROM CABN
WHERE ATKLA = P_ATKLA.
IF NOT IT_CDATA[] IS INITIAL.
PERFORM UPLOAD_DATA.
PERFORM BDC_OPEN_GROUP.
LOOP AT IT_CDATA INTO WA_CDATA.
REFRESH: IT_BDC.
PERFORM BDC_UPLOAD_DATA.
PERFORM BDC_CALL_TRANS.
PERFORM BDC_UPLOAD.
CLEAR WA_CDATA.
ENDLOOP.
PERFORM BDC_CLOSE_GROUP.
ENDIF.
*& Form UPLOAD_DATA
text
--> p1 text
<-- p2 text
FORM UPLOAD_DATA .
UPLOAD DATA USING GUI_UPLOAD
DATA: l_v_filename TYPE string.
CONSTANTS: l_c_asc TYPE filetype VALUE 'ASC',
l_c_x TYPE char1 VALUE 'X'.
l_v_filename = p_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = l_v_filename
FILETYPE = l_c_asc
HAS_FIELD_SEPARATOR = l_c_x
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = ','
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = IT_CCHAR
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. " UPLOAD_DATA
*& Form BDC_OPEN_GROUP
text
--> p1 text
<-- p2 text
FORM BDC_OPEN_GROUP .
OPEN GROUP
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = 'ZCHARU'
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
PROG = SY-CPROG
IMPORTING
QID =
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. " BDC_OPEN_GROUP
*& Form BDC_UPLOAD_DATA
text
--> p1 text
<-- p2 text
FORM BDC_UPLOAD_DATA .
CLEAR: WA_CCHAR.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'RCTAV-ATNAM' WA_CDATA-ATNAM.
perform bdc_field using 'BDC_OKCODE' '=ANDE'.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
perform bdc_field using 'BDC_OKCODE' '=WERT'.
LOOP AT IT_CCHAR INTO WA_CCHAR.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'CAWN-ATWRT(01)'.
perform bdc_field using 'BDC_OKCODE' '=INSE'.
IF WA_CDATA-ATFOR = 'CHAR'.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'CAWN-ATWRT(01)'.
PERFORM BDC_FIELD USING 'CAWN-ATWRT(01)' WA_CCHAR-ATWRT.
PERFORM BDC_FIELD USING 'CAWN-ATWTB(01)' WA_CCHAR-ATWTB.
perform bdc_field using 'BDC_OKCODE' '=/00'.
ELSE.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'CAWN-ATWRT(01)'.
PERFORM BDC_FIELD USING 'CAWN-ATWRT(01)' WA_CCHAR-ATWRT.
perform bdc_field using 'BDC_OKCODE' '=/00'.
ENDIF.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
perform bdc_field using 'BDC_OKCODE' '=SICH'.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
perform bdc_field using 'BDC_OKCODE' '=BACK'.
ENDFORM. " BDC_UPLOAD_DATA
*& Form BDC_CLOSE_GROUP
text
--> p1 text
<-- p2 text
FORM BDC_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. " BDC_CLOSE_GROUP
*& Form BDC_FIRST_SCREEN
text
--> p1 text
<-- p2 text
form bdc_dynpro using program dynpro.
CLEAR IT_BDC.
IT_BDC-program = program.
IT_BDC-dynpro = dynpro.
IT_BDC-dynbegin = 'X'.
append IT_BDC.
ENDFORM. " bdc_dynpro
Insert field *
form bdc_field using fnam fval.
clear IT_BDC.
IT_BDC-fnam = fnam.
IT_BDC-fval = fval.
append IT_BDC.
endform.
*& Form BDC_UPLOAD
text
--> p1 text
<-- p2 text
FORM BDC_UPLOAD .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = C_TCODE
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
DYNPROTAB = IT_BDC
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " BDC_UPLOAD
*& Form f_get_f4_help
text
-->P_P_FILE text
FORM f_get_f4_help USING P_P_FILE.
*F4 help for file path
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_p_file.
ENDFORM. " f_get_f4_help
*& Form BDC_CALL_TRANS
text
--> p1 text
<-- p2 text
FORM BDC_CALL_TRANS .
DATA: IT_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL.
CLEAR: IT_BDC.
CALL TRANSACTION 'CT04' USING IT_BDC
MODE 'A'
MESSAGES INTO IT_BDCMSGCOLL.
IF SY-SUBRC EQ 0.
ENDIF.
ENDFORM. " BDC_CALL_TRANS
hope it helps.try this and if not let us knw where exactly u face the problem.
Regards,
Leena. -
Hi experts,
Can anybody trouble shoot this,... program.. and suggest me the remedy ?
My issue is, After giving the file name in call transaction, I was unable to execute further.
So please suggest me what to do.....
regards
Ram Kumar
<< Unformatable code removed >>
Edited by: Rob Burbank on Jul 8, 2009 9:16 AMThat sounds like a problem between your hardware and Java3D - have you checked your OpenGL drivers?
-
XD02 transaction to change the customer data for updating KNA1 table?
Hi all,
How can we use XD02 transaction to change the customer data for updating KNA1 table?
Give the steps.
Thanks in advance
rkHi KR,
Why don't u use BDC to run XD02.
With Regards,
Zafar Ali -
I am working on a requirement where I have to delete the data using BDC for transaction XD02. BDC recording is available.
How can I program the using the BDC available.
Please explain with a sample program.
Thank you.Hi Kathik,
I would suggest BAPI always than BDC ,
I deleted two customers in my system by using BDC ( I did recording )
See the code below
report ZTEST_DELETE1
no standard page heading line-size 255.
include bdcrecx1.
start-of-selection.
perform open_group.
perform bdc_dynpro using 'SAPMF02D' '0101'.
perform bdc_field using 'BDC_CURSOR'
'RF02D-D0110'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02D-KUNNR'
'1010019'.
perform bdc_field using 'RF02D-D0110'
'X'.
perform bdc_dynpro using 'SAPMF02D' '0110'.
perform bdc_field using 'BDC_CURSOR'
'KNA1-NAME1'.
perform bdc_field using 'BDC_OKCODE'
'=0520'.
perform bdc_field using 'KNA1-NAME1'
'p p'.
perform bdc_field using 'KNA1-SORTL'
'P'.
perform bdc_field using 'KNA1-STRAS'
'112 FULTON ST s'.
perform bdc_field using 'KNA1-ORT01'
'NEW YORK'.
perform bdc_field using 'KNA1-PSTLZ'
'10038'.
perform bdc_field using 'KNA1-LAND1'
'US'.
perform bdc_field using 'KNA1-REGIO'
'NY'.
perform bdc_field using 'KNA1-SPRAS'
'EN'.
perform bdc_dynpro using 'SAPMF02D' '0520'.
perform bdc_field using 'BDC_CURSOR'
'KNA1-LOEVM'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.
perform bdc_field using 'KNA1-LOEVM'
'X'.
perform bdc_transaction using 'XD02'.
perform close_group.
You can modify the above code as per ur requirement.
Thanks
Seshu -
How to know KNA1 is updated through any standard programs or Z programs
Hi Gurus,
As we are near to Golive , we had a problem with updation of the KNA1 table .
Can any one tell us through which program / transaction we can know how the perticular table is Updated.
Note: we are facing problem with Transpotatin Zone in Kna1.
Thanks,
SudhakarYou can do a Where used list for KNA1 and search in Program's...Then see which program is trying to update the KNA1.
You may also need to consider some of the BAPI's used to update/Create Customer Master Data and you need to do Where used on these BAPI's also.
BAPI for Customer Creation is 'BAPI_CUSTOMER_CREATE' ,'BAPI_CUSTOMER_CREATEFROMDATA1',
Also try to search the Program's having BDC for XD01/XD02. For String Search you can use the program "RPR_ABAP_SOURCE_SCAN".
In case you have a doubt on any program.....Activate the SQL Trace and then Run the Program...noe goto Trace and see which DataBAse Tables are hit and whether KNA1 is there in the list or not. -
Issue while inserting a BDC program in Inbound Proxy.JDBC-- PI-- SAP.
The scenerio is jdbcsender-sappi-inboundproxy(ECC6.0).
The issue is related to SAP Plant Maintenance Module where We have a requirement for creating Maintenance item
programmatically from (SQLDatabase)Legacy Data for one of the interface.
since there are no standard BAPIS/Idocs or function modules available from SAP side for creating the maintenance item. So I
have written BDC program and with the help of submit statement in inbound proxy program, I am calling BDC program for
creation of the maintenance item.
When I tested the program independently on proxy side the Maintenance Item is getting created successfully but when I
executed from end-to-end ie. SQLDATABASE->SAP PI-->SAP. The message is getting strucked into the queue and queue got stopped on SAP.
ECC side and the status of the message is scheduled state on SXMB_MONI transaction of SAP ECC.
As the message is in scheduled state multiple number of Maintenance Items are getting created with the same values.
Has any one of our SAP friends, encountered this type of issue while inserting a BDC program in inbound proxy, please help
in fixing this issue. FYI... I am using sap pi7.0 with service pack 24 and ecc6.0
Waiting for your kind expert guidance...
cheers,
RamRaj,
Thanks for the reply. I have tried registering the queues but still the same problem. the message got stuck in the queue of ECC and showing below message in queue.
function module StatusText
SXMS_ASYNC_EXEC connection closed (no data)
I have checked in the forums especially for this issue but no one has provided the answer for this.
Thanks and Regards
Ram -
Issue with BDC of ME22N to change gross price of service.
Hi,
I have a requirement where I have to undelete the PO > services tab of the item details > change the gross price to the value thats calculated by the program for each of the services of the PO > set the deletion indicator to the PO.
The spec says to use a BDC of ME22N to acheive this but after creating the recording I have had several issues with some PO's that interrupt the BDC because they bejave differently from the recording I did.
On most cases when im running the BDC in foreground after changing the gross price and pressing enter I get a new windowthat appears asking for the account assingment of service, on this window the G/L account information is ussualy passed automatically then the bdc clicks back and the process continues normally. On other services after changing the gross price and pressing enter I get the account assignment of service window but the G/L information is not passed and when the bdc clicks back the G/L account information gets passed instead of going back and the BDC stops, if I manually click back again the process will continue.
With single service PO's the process is completing, this issue is happening with PO's that have multiple services.
I know ME22 should be used for BDC and not ME22N, but the functional insists to correct the issues with the BDC of ME22N. Also I atempted to use BAPI_PO_CHANGE but I dont think this bapi can not update the gross price of each of the services, it can change the net price but this is not my requirement.
Is there a bapi that can change the gross price of each of the services of the PO?
Please advice me on this.
Edited by: bodyboarder1 on Dec 2, 2010 3:33 PMHi
If you really need a BDC program, try to simulate ME22 instead of ME22N
Max -
Issue with BDC processing of F-65 after upgrade to ECC 6.0
Dear ABAP gurus,
We have upgraded our SAP system from version 4.7 to ECC 6.0.
We are facing issue when processing BDC sessions for transaction code F-65.
The screen which appears for Assignment to a profitability segment creates issue when processing BDC for F-65.
The screen name is SAPLKEAK and the corresponding screen number is 0300.
This screen displays the characteristic and its corrsponding values. The characteristics and its values are pulled in from FICO Config at runtime when you execute F-65 and all relevant Tcodes of business transaction RFBU.
We checked for the characteristics maintained for Characteristic group via std. transaction code KEPA. It shows 4 characteristics listed of which 2 are optional and 2 are mandatory. The same settings are available in older version as well as in ECC 6.0. Also validated the assignment of characteristic group to the actual data i.e to the business transaction RFBU via Tcode KE4G.
When we do recording in SHDB in both the systems, the older version shows it correctly displaying 4 fields(2 optional and 2 mandatory) in the Assignment to a profitability segment screen whereas the new system displays some 12 additional fields. Also none of the fields appear mandatory.
The issue is we are still not able to identify whether this is a technical issue or functional issue.
Searched for relevant OSS notes but couldn't find any.
Anyone of you who have faced this issue, please respond immediately.
We have this issue to be resolved on high priority.
Help will be highly appreciated.
Regards,
KavitaThis issue was also posted with an OSS-message to SAP, and the solution was to run this program SD_PLANVALUE_UPDATE
Berit -
Issue with ALV sceen called using BDC in new task and in background mode
Hi Gurus,
Need your expert advice. I am trying to call one transaction (IS AUTO - VELO) which has ALVs on screen. VELO is being called through BDC in NEW TASK in background. So, the new session is a Dialog session and SY-BATCH is initial here.
In two different scenarios, I am getting error at two different places:
a) As I can't call ALV directly, I am using docking container. This is giving issue during 'CREATE OBJECT' -> CONSTRUCTOR for cl_gui_alv_grid -> if offline( ) is initial. (AS SY-BATCH is initial) -> call method me->set_registered_events_internal exporting events = lt_events. -> call method get_registered_events importing events = lt_events. -> IF H_CONTROL IS INITIAL. RAISE CNTL_ERROR. ENDIF.
b) Call to OLE_FLUSH_CALL is happening, which is resulting into dump.
I tried to search SDN and google, but couldn't find the solution. Thanks for your help :).
Regards,
AlokI'm not sure what is eating up your system resources, but .wmv files
are considered to be a delivery format, and are not ideal for editing.
I have never tried to edit screen capture video from any source, but you might consider
upgrading to Expression Encoder 4 Pro (with codecs)... at least it includes H.264.
Expression Encoder 4 Pro -
How to get correct index in XD02 BDC
Hi,
Im using XD02 in a BDC pgm to delete multiple e-mail addresses from contact person of a customer based on the details in the spread sheet.
There can be more than one contact person for a customer,and Im using KNVK-NAME1 and KNVK-NAMEV to sort all contact person through an itab to get line index of correct contact person but this index is different from what BDC index sequence in SM35. Can some one tell me whats the sorting fields that BDC XD02 used for contact person in the hidden code.
Thanks in advance.
G.C.Hi, Bhaskar :
Can you tell me more detail of the code? How do I use KNVA-ABALAD in BDC?
Since I don't know what sequence that BDC going to display so, how can I fill the upload point?
Thanks,
G.C.
Maybe you are looking for
-
Duplicate Settings suddenly appearing
To my surprise I found I had a lot of duplicate names in my Export Templates and Develop Presets. In going to delete the extras, the cause seemed pretty clear, as only yesterday I changed the Preferences to change file names that had a space in it to
-
To create document type related number range
Dear Experts, I want to maintain number range document typewise say ABC, XYZ, LMN. For these document type i want to maintain internal numcer range. Please suggest. Thanks
-
I've created an application object and Associated a user to it. I've also added to the "Rights to Files and Folders" tab a directory where I want the user of the object, access to a certain folder where the .fil files are at. Full rights given (SRWCE
-
ORA-01003 when using SQL*Loader
Hi people, Can anyone shed some light on this. We have a multitasked dataload operation that is using SQL*Loader and on occasion we're seeing some rows failing due to ORA-01003 no statement parsed. Could this be due to some shortage of a database res
-
Can't connect to Windows network (ethernet)
im trying to connect my macbook to existing, enterprise Windows network. im not at all concerned w/ sharing files on my mac... but i would like to be able to: 1) use the (ethernet-based) Windows network for internet (its DHCP-based) 2) use the Window