BDC recording for FNVM t-code
Hello Team
Now i have got a requiment to add a new condition type in FNVM t-code. i am trying to acheive this by using BDC but i am not able to do the recording. when i am trying to do the recording, i am not able to capture the POPUP values which i am getting after clicking on the insert icon. since i am not able to capture the values which i am going to select in the POPUP screen, i am not able to go further with my updation.
So please check and let me know the below
1. how to record the action peformed on the popup screen which is will come when i click on the insert condition type icon.
2. or please let me know if there is anyother way to acheive the requirement.
Regards
Raj
Hi Nagaraju,
Do the recoding in the background mode.....
In SHDB before recoding just check "Simulate Background Mode".
If the popup contains some tabular record, surely it is a table control. Try to debug that portion and try to know the standard table from which it is coming. Then put some logic to identify the row no which u need to click.
Regards,
Amitava
Similar Messages
-
Bdc recording for XK02 to change vendor address
Dear All,
I am trying to create a bdc recording for XK02 transaction to change Address fields ( Name1 ... Name4 , House num1, street , House number supplement , city , State , Postal code etc .)
When i open the transaction XK02 by clicking address, I see all the above fields.
But when i try to create a recording for the same XK02 transaction through SM35, I see House no & Street as one field and House number supplement missing.
Please let me know how can i update House num1 , Street and House num supplement seperately.
Thanks,
HimaPlease chekc you entry in Country & Region.
The region should belong to the country.
Regards
Bhavesh MIstry -
hi
i have been asked to do bdc recording for the transaction mek1 through the call transaction method.can u people plss tell me how to go abt it?Hi,
You can Record using the Tcode SHDB and format the program and use.
You can use VK11 tcode also which is similar to MEK1.
see the sample code for VK11 ; You can change as per your requirement.
report ZSDBDCP_PRICING no standard page heading
line-size 255.
Includes
include zbdcrecx1.
Internal Tables
*--Internal Table To hold condition records data from flat file.
Data: begin of it_pricing occurs 0,
key(4),
f1(4),
f2(4),
f3(2),
f4(18),
f5(16),
end of it_pricing.
*--Internal Table To hold condition records header .
data : begin of it_header occurs 0,
key(4),
f1(4),
f2(4),
f3(2),
end of it_header.
*--Internal Table To hold condition records details .
data : begin of it_details occurs 0,
key(4),
f4(18),
f5(16),
end of it_details.
data : v_sno(2),
v_rows type i,
v_fname(40).
start-of-selection.
refresh : it_pricing,it_header,it_details.
clear : it_pricing,it_header,it_details.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\WINDOWS\Desktop\pricing.txt'
FILETYPE = 'DAT'
TABLES
DATA_TAB = it_pricing
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
WRITE : / 'Condition Records ', P_FNAME, ' on ', SY-DATUM.
OPEN DATASET P_FNAME FOR INPUT IN TEXT MODE.
if sy-subrc ne 0.
write : / 'File could not be uploaded.. Check file name.'.
stop.
endif.
CLEAR : it_pricing[], it_pricing.
DO.
READ DATASET P_FNAME INTO V_STR.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
write v_str.
translate v_str using '#/'.
SPLIT V_STR AT ',' INTO it_pricing-key
it_pricing-F1 it_pricing-F2 it_pricing-F3
it_pricing-F4 it_pricing-F5 .
APPEND it_pricing.
CLEAR it_pricing.
ENDDO.
IF it_pricing[] IS INITIAL.
WRITE : / 'No data found to upload'.
STOP.
ENDIF.
loop at it_pricing.
At new key.
read table it_pricing index sy-tabix.
move-corresponding it_pricing to it_header.
append it_header.
clear it_header.
endat.
move-corresponding it_pricing to it_details.
append it_details.
clear it_details.
endloop.
perform open_group.
v_rows = sy-srows - 8.
loop at it_header.
perform bdc_dynpro using 'SAPMV13A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RV13A-KSCHL'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RV13A-KSCHL'
it_header-f1.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_CURSOR'
'KONP-KBETR(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'KOMG-VKORG'
it_header-f2.
perform bdc_field using 'KOMG-VTWEG'
it_header-f3.
**Table Control
v_sno = 0.
loop at it_details where key eq it_header-key.
v_sno = v_sno + 1.
clear v_fname.
CONCATENATE 'KOMG-MATNR(' V_SNO ')' INTO V_FNAME.
perform bdc_field using v_fname
it_details-f4.
clear v_fname.
CONCATENATE 'KONP-KBETR(' V_SNO ')' INTO V_FNAME.
perform bdc_field using v_fname
it_details-f5.
if v_sno eq v_rows.
v_sno = 0.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'=P+'.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
endif.
endloop.
*--Save
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_transaction using 'VK11'.
endloop.
perform close_group.
Regards,
Anji -
Bdc recording for trancastion ME01
Hi,
Can u help me in BDC recording for transaction 'ME01' .
I have no idea for transaction 'ME01' & here i like to know how to handle table ctr during bdc recording?
give sample code if possible.
ThanksSee the sample attached code for ME51 using table control.
similarly record the same for ME01 and copy the TC logic from this.
REPORT zmm_pr_upload_mat
NO STANDARD PAGE HEADING
LINE-SIZE 255.
Standard Include for Selection Screen
INCLUDE bdcrecx1.
Internal Table for Upload Data
DATA: BEGIN OF i_pr OCCURS 0,
Header Screen
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
lpein(001), " Category of Del Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
Item Details
matnr(018), " Material No
menge(017), " Quantity
badat(010),
frgdt(010),
preis(014), " Valuation Price
waers(005), " Currency
peinh(005),
wepos(001),
repos(001),
sakto(010), " GL Account
kostl(010), " Cost Center
bnfpo(005),
END OF i_pr.
Internal Table for header Data
DATA: BEGIN OF it_header OCCURS 0,
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
END OF it_header.
Internal Table for Item Data
DATA: BEGIN OF it_item OCCURS 0,
sno(3), " SNo
matnr(018), " Material No
menge(017), " Quantity
preis(014), " Valuation Price
sakto(010), " GL Account
kostl(010), " Cost Center
END OF it_item.
Data Variables & Constants
CONSTANTS : c_x VALUE 'X'. " Flag
DATA : v_l(2), " Counter
v_rowno(5), " Row No
v_2(2), " Counter
v_rows LIKE sy-srows, " Rows in TC
v_field(45). " String
Parameters
PARAMETERS: p_file LIKE ibipparms-path. " Filename
At selection-screen on Value Request for file Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Get the F4 Values for the File
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
Start of Selection
START-OF-SELECTION.
Open the BDC Session
PERFORM open_group.
Upload the File into internal Table
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = i_pr
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.
SORT i_pr BY sno.
LOOP AT i_pr.
MOVE-CORRESPONDING i_pr TO it_item.
APPEND it_item.
CLEAR it_item.
AT END OF sno.
READ TABLE i_pr INDEX sy-tabix.
MOVE-CORRESPONDING i_pr TO it_header.
APPEND it_header.
CLEAR it_header.
ENDAT.
ENDLOOP.
SORT it_header BY sno.
SORT it_item BY sno.
v_rows = sy-srows - 6.
Upload the Data from Internal Table
LOOP AT it_header.
Header Data
PERFORM bdc_dynpro USING 'SAPMM06B' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-BEDNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-BSART'
it_header-bsart.
PERFORM bdc_field USING 'RM06B-EPSTP'
it_header-epstp.
PERFORM bdc_field USING 'EBAN-KNTTP'
it_header-knttp.
PERFORM bdc_field USING 'RM06B-EEIND'
it_header-eeind.
PERFORM bdc_field USING 'RM06B-LPEIN'
it_header-lpein.
PERFORM bdc_field USING 'EBAN-WERKS'
it_header-werks.
PERFORM bdc_field USING 'EBAN-LGORT'
it_header-lgort.
PERFORM bdc_field USING 'EBAN-EKGRP'
it_header-ekgrp.
PERFORM bdc_field USING 'EBAN-MATKL'
it_header-matkl.
PERFORM bdc_field USING 'EBAN-BEDNR'
it_header-bednr.
PERFORM bdc_field USING 'EBAN-AFNAM'
it_header-afnam.
Item Details
v_l = 0.
To add no. of rows
v_2 = 0 .
As the screen is showing 13 rows defaulted to 130
v_rowno = 130 .
LOOP AT it_item WHERE sno = it_header-sno.
v_l = v_l + 1.
IF v_l = 14 .
IF v_2 = 12 .
v_2 = 12 .
v_l = 2 .
From second time onwards it is displaying 12 rows only
v_rowno = v_rowno + 120 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ELSE.
V_2 initialized to 12 for second screen purpose
v_2 = 12 .
v_l = 2 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno .
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ENDIF.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CLEAR v_field.
CONCATENATE 'EBAN-MATNR(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-matnr.
CLEAR v_field.
CONCATENATE 'EBAN-MENGE(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-menge.
PERFORM bdc_dynpro USING 'SAPMM06B' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-PREIS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-PREIS'
it_item-preis.
PERFORM bdc_dynpro USING 'SAPMM06B' '0505'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBKN-SAKTO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'EBKN-SAKTO'
it_item-sakto.
Cost Center
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-KOSTL'
it_item-kostl.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
Call The Transaction
PERFORM bdc_transaction USING 'ME51'.
ENDLOOP.
Close the BDC Session
PERFORM close_group.
reward if useful
Regards
Vasu -
BDC recording for transaction 'Me01'
Hi,
Can u help me in BDC recording for transaction 'ME01' .
I have no idea for transaction 'ME01' .
give sample code if possible.
ThanksFor creating source list you will check that purchasing view has been maintained for this material
Source list for resticting, purcasing a material from a specific vendor only for the period specified in source list
Regards,
Amit R. -
Hi,
I am asked to do bdc recording for the transaction sm30 through call transaction method. Can u please tell me how to do that...Hi Buvana,
While recording just mentioned the tcode as SM30 and then it takes you automaticcaly to that transaction code then enter the table name and press maintain tab and then select new entreis. Enter the values then save it. Press back button. Now it will take return to recording section. now u can able to see the recoding section. Generate the program automaticcaly from the recording. Now take neccessary internal tables and complete the code. Reply for any queries and reward for useful points. Take care while recording. Don't mention any wrong values.
Regards,
Kumar. -
hi all,
how to do bdc recording for AS01.please send me step step by approach.Hi Satya,
Welcome to SDN.
Check this Sample program.
REPORT ZASSET .
INCLUDE ZASSET_INC .
PARAMETERS: P_PCFILE LIKE RLGRAP-FILENAME.
*PARAMETERS: P_FILE_S LIKE RLGRAP-FILENAME.
PARAMETER : H_CHK AS CHECKBOX.
"Proc Mode
Include the BDC *
**BDC DATA STUCTURE
*DATA: BEGIN OF BDCDATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
*DATA: END OF BDCDATA.
messages of call transaction
*DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
TYPE-POOLS
TYPE-POOLS TRUXS.
DATA IT_DATA1 TYPE TRUXS_T_TEXT_DATA.
DATA : BEGIN OF IT_DATA OCCURS 0,
INVZU(015),
ANLKL(008),
BUKRS(004),
TXT50(100),
SERNR(018),
MENGE(018),
INKEN(001),
AKTIV(010),
KOSTL(010),
WERKS(004),
STORT(010),
ORD41(004),
ORD42(004),
EQANZ(001),
LIFNR(010),
AFASL(004),
NDJAR(003),
AFABG(010),
ANLGR(012),
ANLGR2(004),
ANBTR01_01(016),
ANBTR01_06(016),
ANBTR01_16(016),
TDATE(010),
TCODE(004),
TAMT(018),
PERNR(012),
KFZKF(015),
SAP_ASSET(12),
ERR_ASSET,
END OF IT_DATA.
DATA : BEGIN OF IT_DATA2 OCCURS 0,
INVZU(015),
TDATE(010),
TCODE(004),
TAMT(018),
END OF IT_DATA2.
DATA : BEGIN OF IT_DATA3 OCCURS 0,
ITEM(003),
INVZU(015),
ANLKL(010),
BUKRS(010),
TXT50(050),
SERNR(018),
MENGE(018),
INKEN(001),
AKTIV(010),
KOSTL(010),
WERKS(004),
STORT(010),
ORD41(004),
ORD42(004),
EQANZ(001),
LIFNR(010),
AFASL(004),
NDJAR(003),
AFABG(010),
ANLGR(012),
ANLGR2(004),
ANBTR01_01(016),
ANBTR01_06(016),
ANBTR01_16(016),
TDATE(010),
TCODE(004),
TAMT(018),
SAP_ASSET(12),
ERR_ASSET,
END OF IT_DATA3.
SUB ASSET MASTER TABLE
DATA : BEGIN OF IT_DATA_SUB OCCURS 0,
INVZU_M(015),
INVZU(015),
BUKRS(004),
TXT50(100),
ANLHTXT(050),
SERNR(018),
MENGE(018),
MEINS_007(003),
XHIST_008(001),
AKTIV(010),
GSBER_011(004),
KOSTL(010),
STORT(010),
ORD41(004),
ORD42(004),
EQANZ_016(001),
LIFNR(010),
LIEFE(030),
NDJAR(003),
NDPER(003),
ANBTR01_01(016),
ANBTR01_06(016),
ANBTR01_16(016),
BZDAT(010),
BWASL(003),
ANBTR01(016),
ANLN1(012),
ERR_SUB,
SUB_CODE(012),
ERR_SUB1,
END OF IT_DATA_SUB.
*& At selection-screen on value request for getting f4 help
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PCFILE.
PERFORM VALUE_REQUEST_P_FILE.
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_S.
PERFORM VALUE_REQUEST_P_FILE_S.
START OF SELECTION *
START-OF-SELECTION.
To Upload the flat file datas *
PERFORM GET_DATA.
PERFORM UP_LOAD.
PERFORM SUB_UPLOAD.
WRITE :/ 'FOLLOWING ASSETS CREATED'.
WRITE:/ 'OLD ASSET'.
WRITE: 20 'COMPANY'.
WRITE: 30 'SAP CODE'.
LOOP AT IT_DATA WHERE ERR_ASSET NE 'X'.
WRITE :/ IT_DATA-INVZU,
20 IT_DATA-BUKRS, 30 IT_DATA-SAP_ASSET.
ENDLOOP.
SKIP 2.
WRITE :/ 'FOLLOWING SUB ASSETS CREATED'.
WRITE:/ 'OLD ASSET'.
WRITE: 16 'OLD SUB ASSET'.
WRITE: 35 'COMPANY'.
WRITE: 45 'SAP CODE'.
WRITE: 60 'SUB ASSET'.
LOOP AT IT_DATA_SUB WHERE ERR_SUB NE 'X' AND ERR_SUB1 NE 'X'.
WRITE :/ IT_DATA_SUB-INVZU_M,
16 IT_DATA_SUB-INVZU,
35 IT_DATA_SUB-BUKRS, 45 IT_DATA_SUB-ANLN1, 60
*IT_DATA_SUB-SUB_CODE.
ENDLOOP.
*& Form value_request_p_file
FORM VALUE_REQUEST_P_FILE .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'x'
IMPORTING
FILE_NAME = P_PCFILE.
ENDFORM. " value_request_p_file
*& Form UP_LOAD
text
--> p1 text
<-- p2 text
FORM UP_LOAD .
SORT IT_DATA BY INVZU.
SORT IT_DATA2 BY INVZU.
DATA : V_LEN1 TYPE I, V_LEN2 TYPE I, V_SUBSTR1(50) ,V_SUBSTR2(50).
perform open_dataset using dataset.
PERFORM OPEN_GROUP.
LOOP AT IT_DATA.
CONDENSE IT_DATA-TXT50.
V_LEN1 = STRLEN( IT_DATA-TXT50 ).
IF V_LEN1 > 50.
V_SUBSTR1 = IT_DATA-TXT50+0(50).
V_LEN2 = V_LEN1 - 50.
V_SUBSTR2 = IT_DATA-TXT50+50(50).
ELSE.
V_SUBSTR1 = IT_DATA-TXT50.
V_SUBSTR2 = ''..
ENDIF.
REFRESH BDCDATA.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '0105'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-BUKRS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'ANLA-ANLKL'
IT_DATA-ANLKL.
PERFORM BDC_FIELD USING 'ANLA-BUKRS'
IT_DATA-BUKRS.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB02'.
PERFORM BDC_FIELD USING 'ANLA-TXT50'
V_SUBSTR1. "IT_DATA-TXT50.
PERFORM BDC_FIELD USING 'ANLA-TXA50'
V_SUBSTR2.
PERFORM BDC_FIELD USING 'ANLA-SERNR'
IT_DATA-SERNR.
PERFORM BDC_FIELD USING 'ANLA-MENGE'
IT_DATA-MENGE.
*perform bdc_field using 'ANLA-INKEN'
record-INKEN_006.
PERFORM BDC_FIELD USING 'ANLA-INVZU'
IT_DATA-INVZU.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-AKTIV'.
PERFORM BDC_FIELD USING 'ANLA-AKTIV'
IT_DATA-AKTIV.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB03'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLZ-PERNR'.
PERFORM BDC_FIELD USING 'ANLZ-PERNR'
IT_DATA-PERNR.
PERFORM BDC_FIELD USING 'ANLZ-KOSTL'
IT_DATA-KOSTL.
PERFORM BDC_FIELD USING 'ANLZ-WERKS'
IT_DATA-WERKS.
PERFORM BDC_FIELD USING 'ANLZ-STORT'
IT_DATA-STORT.
IF IT_DATA-ANLKL = 'VHCL'.
PERFORM BDC_FIELD USING 'ANLZ-KFZKZ'
IT_DATA-KFZKF.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB04'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ORD42'.
PERFORM BDC_FIELD USING 'ANLA-ORD41'
IT_DATA-ORD41.
PERFORM BDC_FIELD USING 'ANLA-ORD42'
IT_DATA-ORD42.
*perform bdc_field using 'RA02S-EQANZ'
record-EQANZ_014.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB06'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-LIFNR'.
PERFORM BDC_FIELD USING 'ANLA-LIFNR'
IT_DATA-LIFNR.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB08'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLV-VSART'.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SELZ'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RA02S-XAKPLA(02)'.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '0195'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLB-AFASL'.
IF IT_DATA-TCODE IS INITIAL.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ALTD'.
ELSE.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ALTB'.
ENDIF.
PERFORM BDC_FIELD USING 'ANLB-ANLGR'
IT_DATA-ANLGR.
PERFORM BDC_FIELD USING 'ANLB-ANLGR2'
IT_DATA-ANLGR2.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1100'.
IF IT_DATA-TCODE IS INITIAL.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BUCH'.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(01)'
IT_DATA-ANBTR01_01.
IF H_CHK NE 'X'.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(06)'
IT_DATA-ANBTR01_06.
ENDIF.
ELSE.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ALTB'.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BUCH'.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-BZDAT(01)'
IT_DATA-TDATE.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-BWASL(01)'
IT_DATA-TCODE.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(01)'
IT_DATA-TAMT.
ENDIF.
REFRESH MESSTAB.
CALL TRANSACTION 'AS91' USING BDCDATA
MODE H_MODE
UPDATE 'S'
MESSAGES INTO MESSTAB.
PERFORM BDC_TRANSACTION USING 'AS91'.
ENDLOOP..
PERFORM CLOSE_GROUP.
*perform close_dataset using dataset.
ENDFORM. " UP_LOAD
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM GET_DATA .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_TAB_RAW_DATA = IT_DATA1
I_FILENAME = P_PCFILE
TABLES
I_TAB_CONVERTED_DATA = IT_DATA.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT_DATA3.
IF IT_DATA3-ITEM = '1'.
MOVE-CORRESPONDING IT_DATA3 TO IT_DATA.
APPEND IT_DATA.
ELSEIF IT_DATA3-ITEM = '2'.
IT_DATA2-INVZU = IT_DATA3-INVZU.
IT_DATA2-TDATE = IT_DATA3-ANLKL.
IT_DATA2-TCODE = IT_DATA3-BUKRS.
IT_DATA2-TAMT = IT_DATA3-TXT50.
APPEND IT_DATA2.
ENDIF.
ENDLOOP.
IF NOT P_FILE_S IS INITIAL.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_TAB_RAW_DATA = IT_DATA1
I_FILENAME = P_FILE_S
TABLES
I_TAB_CONVERTED_DATA = IT_DATA_SUB.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDFORM. " GET_DATA
FORM BDC_DYNPRO
--> PROGRAM
--> DYNPRO
**FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
**ENDFORM. " BDC_DYNPRO
FORM BDC_FIELD
--> FNAM
--> FVAL
**FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
**ENDFORM. "BDC_FIELD
***& Form bdc_transaction
text
-->TCODE text
**FORM BDC_TRANSACTION USING TCODE.
REFRESH MESSTAB.
CALL TRANSACTION TCODE USING BDCDATA
MODE H_MODE
UPDATE 'S'
MESSAGES INTO MESSTAB.
**ENDFORM. " bdc_transaction
*& Form VALUE_REQUEST_P_FILE_S
text
--> p1 text
<-- p2 text
FORM VALUE_REQUEST_P_FILE_S .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'x'
IMPORTING
FILE_NAME = P_FILE_S.
ENDFORM. " VALUE_REQUEST_P_FILE_S
*& Form sUB_upload
text
--> p1 text
<-- p2 text
***FORM SUB_UPLOAD .
DATA : V_LEN1 TYPE I, V_LEN2 TYPE I, V_SUBSTR1(50) ,V_SUBSTR2(50).
LOOP AT IT_DATA_SUB WHERE ERR_SUB NE 'X'.
CONDENSE IT_DATA_SUB-TXT50.
V_LEN1 = STRLEN( IT_DATA_SUB-TXT50 ).
IF V_LEN1 > 50.
V_SUBSTR1 = IT_DATA_SUB-TXT50+0(50).
V_LEN2 = V_LEN1 - 50.
V_SUBSTR2 = IT_DATA_SUB-TXT50+50(50).
ELSE.
V_SUBSTR1 = IT_DATA_SUB-TXT50.
V_SUBSTR2 = ''..
ENDIF.
REFRESH BDCDATA.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '0110'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ANLN1'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=MAST'.
PERFORM BDC_FIELD USING 'ANLA-ANLN1'
IT_DATA_SUB-ANLN1.
PERFORM BDC_FIELD USING 'ANLA-BUKRS'
IT_DATA_SUB-BUKRS.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB02'.
PERFORM BDC_FIELD USING 'ANLA-TXT50'
V_SUBSTR1. "IT_DATA_SUB-TXT50.
PERFORM BDC_FIELD USING 'ANLA-TXa50'
V_SUBSTR2. "IT_DATA_SUB-TXT50.
****perform bdc_field using 'ANLH-ANLHTXT'
it_data_sub-ANLHTXT_004.
PERFORM BDC_FIELD USING 'ANLA-SERNR'
IT_DATA_SUB-SERNR.
PERFORM BDC_FIELD USING 'ANLA-MENGE'
IT_DATA_SUB-MENGE.
****perform bdc_field using 'ANLA-MEINS'
it_data_sub-MEINS_007.
****perform bdc_field using 'RA02S-XHIST'
it_data_sub-XHIST_008.
PERFORM BDC_FIELD USING 'ANLA-INVZU'
IT_DATA_SUB-INVZU.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-AKTIV'.
PERFORM BDC_FIELD USING 'ANLA-AKTIV'
IT_DATA_SUB-AKTIV.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB03'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLZ-GSBER'.
****perform bdc_field using 'ANLZ-GSBER'
it_data_sub-GSBER_011.
****perform bdc_field using 'ANLZ-KOSTL'
it_data_sub-KOSTL_012.
PERFORM BDC_FIELD USING 'ANLZ-STORT'
IT_DATA_SUB-STORT.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB04'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ORD41'.
PERFORM BDC_FIELD USING 'ANLA-ORD41'
IT_DATA_SUB-ORD41.
PERFORM BDC_FIELD USING 'ANLA-ORD42'
IT_DATA_SUB-ORD42.
****perform bdc_field using 'RA02S-EQANZ'
it_data_sub-EQANZ_016.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB07'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-LIFNR'.
PERFORM BDC_FIELD USING 'ANLA-LIFNR'
IT_DATA_SUB-LIFNR.
****perform bdc_field using 'ANLA-LIEFE'
IT_DATA_SUB-LIEFE.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB08'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-LEART'.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SELZ'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'T093T-AFBKTX(01)'.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '0195'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLB-NDPER'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ALTD'.
PERFORM BDC_FIELD USING 'ANLB-NDJAR'
IT_DATA_SUB-NDJAR.
PERFORM BDC_FIELD USING 'ANLB-NDPER'
IT_DATA_SUB-NDPER.
****perform bdc_field using 'ANLB-AFABG'
record-AFABG_029.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ANLN1'.
IF IT_DATA_SUB-BWASL IS INITIAL.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BUCH'.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(01)'
IT_DATA_SUB-ANBTR01_01.
Accu deprn automatically calculated by system changed on 6th Aug.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(06)'
IT_DATA_SUB-ANBTR01_06.
ELSE.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ALTB'.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-BZDAT(01)'
IT_DATA_SUB-BZDAT.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-BWASL(01)'
IT_DATA_SUB-BWASL.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(01)'
IT_DATA_SUB-ANBTR01.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ANLN1'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BUCH'.
****perform bdc_transaction using 'AS94'.
ENDIF.
REFRESH MESSTAB.
CALL TRANSACTION 'AS94' USING BDCDATA
MODE H_MODE
UPDATE 'S'
MESSAGES INTO MESSTAB.
IF SY-SUBRC = 0.
READ TABLE MESSTAB INDEX 1.
IT_DATA_sub-SUB_CODE = MESSTAB-MSGV1.
DATA AN1 TYPE ANLN1.
DATA AN2 TYPE ANLN2.
GET PARAMETER ID 'AN2' FIELD AN2.
IT_DATA_SUB-SUB_CODE = AN2. "MESSTAB-MSGV1.
MODIFY IT_DATA_SUB TRANSPORTING SUB_CODE.
ELSE.
IT_DATA_SUB-ERR_SUB1 = 'X'.
MODIFY IT_DATA_SUB TRANSPORTING ERR_SUB1.
ENDIF.
REFRESH BDCDATA.
ENDLOOP.
***ENDFORM. " sUB_upload
****& Form SUB_UPLOAD1
text
***FORM SUB_UPLOAD1 .
LOOP AT IT_DATA_SUB WHERE ERR_SUB NE 'X'.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '0110'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ANLN1'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=MAST'.
PERFORM BDC_FIELD USING 'ANLA-ANLN1'
IT_DATA_SUB-ANLN1.
PERFORM BDC_FIELD USING 'ANLA-BUKRS'
IT_DATA_SUB-BUKRS.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB02'.
PERFORM BDC_FIELD USING 'ANLA-TXT50'
IT_DATA_SUB-TXT50.
****perform bdc_field using 'ANLH-ANLHTXT'
it_data_sub-ANLHTXT_004.
PERFORM BDC_FIELD USING 'ANLA-SERNR'
IT_DATA_SUB-SERNR.
PERFORM BDC_FIELD USING 'ANLA-MENGE'
IT_DATA_SUB-MENGE.
****perform bdc_field using 'ANLA-MEINS'
it_data_sub-MEINS_007.
****perform bdc_field using 'RA02S-XHIST'
it_data_sub-XHIST_008.
PERFORM BDC_FIELD USING 'ANLA-INVZU'
IT_DATA_SUB-INVZU.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-AKTIV'.
PERFORM BDC_FIELD USING 'ANLA-AKTIV'
IT_DATA_SUB-AKTIV.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB03'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLZ-GSBER'.
****perform bdc_field using 'ANLZ-GSBER'
it_data_sub-GSBER_011.
****perform bdc_field using 'ANLZ-KOSTL'
it_data_sub-KOSTL_012.
PERFORM BDC_FIELD USING 'ANLZ-STORT'
IT_DATA_SUB-STORT.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB04'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ORD41'.
PERFORM BDC_FIELD USING 'ANLA-ORD41'
IT_DATA_SUB-ORD41.
PERFORM BDC_FIELD USING 'ANLA-ORD42'
IT_DATA_SUB-ORD42.
****perform bdc_field using 'RA02S-EQANZ'
it_data_sub-EQANZ_016.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB07'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-LIFNR'.
PERFORM BDC_FIELD USING 'ANLA-LIFNR'
IT_DATA_SUB-LIFNR.
****perform bdc_field using 'ANLA-LIEFE'
IT_DATA_SUB-LIEFE.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB08'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-LEART'.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '1000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SELZ'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'T093T-AFBKTX(01)'.
PERFORM BDC_DYNPRO USING 'SAPLAIST' '0195'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLB-NDPER'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ALTD'.
PERFORM BDC_FIELD USING 'ANLB-NDJAR'
IT_DATA_SUB-NDJAR.
PERFORM BDC_FIELD USING 'ANLB-NDPER'
IT_DATA_SUB-NDPER.
****perform bdc_field using 'ANLB-AFABG'
record-AFABG_029.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ANLN1'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ALTB'.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(01)'
IT_DATA_SUB-ANBTR01_01.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(06)'
IT_DATA_SUB-ANBTR01_06.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-BZDAT(01)'
IT_DATA_SUB-BZDAT.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-BWASL(01)'
IT_DATA_SUB-BWASL.
PERFORM BDC_FIELD USING 'RALT_DYNP_STRUC-ANBTR01(01)'
IT_DATA_SUB-ANBTR01.
PERFORM BDC_DYNPRO USING 'SAPLALTD' '1200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ANLA-ANLN1'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BUCH'.
****perform bdc_transaction using 'AS94'.
REFRESH MESSTAB.
CALL TRANSACTION 'AS94' USING BDCDATA
MODE H_MODE
UPDATE 'S'
MESSAGES INTO MESSTAB.
IF SY-SUBRC = 0.
READ TABLE MESSTAB INDEX 1.
IT_DATA_sub-SUB_CODE = MESSTAB-MSGV1.
DATA AN1 TYPE ANLN1.
DATA AN2 TYPE ANLN2.
GET PARAMETER ID 'AN2' FIELD AN2.
IT_DATA_SUB-SUB_CODE = AN2. "MESSTAB-MSGV1.
MODIFY IT_DATA_SUB TRANSPORTING SUB_CODE.
ELSE.
IT_DATA_SUB-ERR_SUB1 = 'X'.
MODIFY IT_DATA_SUB TRANSPORTING ERR_SUB1.
ENDIF.
REFRESH BDCDATA.
ENDLOOP.
***ENDFORM. " sUB_upload
and one more thing i face some issues when doing bdc for AS01, so i use AS91 and AS92 for uploading by using LSMW (direct input method and recording method) and it was successful.(if u have to do coding go for BDC/BAPI or there is no coding better to choose LSMW (it is the easiest way) as of my knowledge, so before starting just analyze once which method is best for ur requirement.
Reward Points for Useful Answers
Thanks
Naveen khan
Message was edited by:
Pattan Naveen -
Create BDC recording for position,job,role
hi all,
i want to create BDC recording for position,job,role . what is the transaction for creating postion,job, role?/??
and i have to check wheather for one job , role is there or not? if not i have to create that role.. similiarly i have to check for position that there is corresponding job is there or not.. if not i have to create the job???
how would i do that??
thanks
SAchinHi Sachin,
1) Creating BDC is an ABAP-ers job and being functional its not ur responsibility. If u really want to do that then u can do it through T.Code - SHDB.
While creating BDC for Position u have to go through T.Cdoe - SHDB and in that give PP01 in the TRANSACTION CODE feild. Then go on for recording. After that ask the help of an ABAP-er.
2) To Check if a POSITION or a JOB is there, then Go to T.Code - PP01, under Obj Abbr. feild put S for POSITION and C for JOB and press enter after entering the POSITION and JOB id. U'll get the result. OK
3) To check for ROLE, u have go to T.Code - PFCG and there check for the particular ROLE u r looking for. Here in this T.Code u can actually create, change and delete the ROLES.OK
Hope this helps,
ARNAV... -
Current day EBS - memo record for status BAI codes
Hello all,
My client has a requirement of uploading current day EBS statement (only 1 file at the start of the day). I believe that FF.5 will allow the upload of this statement and then we can use transaction FPS3 to select the particular records so as to create Memo records in Cash Management. Can anyone guide me if we can also create memo records for the 'status' BAI codes from this statement. Example- creating memo records for BAI code '040' - Opening available, '060' Closing available, etc. These status BAI codes are part of '03' record type in the current day bank statement. Any help or sharing of your experience on this will be very helpful.Satyen,
For creating Memo records for the status BAI codes like 040-Opening available, 100-Total Credits, 400-Total Debits, etc., you will have to create a pre-processor program. This will rewrite the original bank statement received from the bank and create 16 records for these status BAI codes.
For e.g. the 03 record in one account looks as follows in the file received from the bank.
03,99999538,USD,010,82499230,,,015,82499230,,,030,82499230,,,/
The preprocessor program will rewrite this as follows:
03,99999538,USD,,,,/
16,010,82499230,,,/
16,015,82499230,,,/
16,030,82499230,,,/
and so on.
Then this rewritten BAI file is uploaded into SAP using FF_5. Then you can go into FPS3 and create memo records for these status codes.
I have been using this method with lot of success.
If anyone has different suggestion that would help me too.
Kalyan -
BDC recording for s_alr_87012090
Hi Friends,
My requirement :
As we do vendor changes in xk02, the critical data like bank details, name and address are to be confirmed. so my client want, the changes done in address should not got to confirmation, so I want to do BDC recording for S_ALR_87012090 ( confir vendor changes ). and will check if only address changes are done then i will run these BDC recording .
but i am unable to do recording.
please help me out.
regards
Kumar MHello Kumar M,
What is the issue with it? Why cant you do the recording?
BR,
Suhas -
BDC Recording for cm07 Transaction
Hi Everyone,
I'm doing BDC recording for CM07 transaction. In Recording, i need to give a print command by specifying the spool title.
For this, after opening the print window, i need to click the 'properties' button, and then select the spool title and input the value.
But I'm unable to do the recording of this print dialog box. The recording ends as soon as I give the print command.
Can anyone please tell me the solution to it.
Thanks and Regards
Rishika bawaHi,
See via transaction SHDB:
SAPLCORU_S 0100 X
BDC_OKCODE BU
AFRUD-RUECK 0000000000
AFRUD-AUFNR 100051152
AFRUD-VORNR 0010
AFRUD-LMNGA 100,000
AFRUD-MEINH PC
AFRUD-XMNGA 2,000
AFRUD-ISM01 200
AFRUD-ILE01 PC
The table for confirmations is AFRU.
Best regards,
Leandro Mengue -
BDC Recording for Sorting a coloum
Hi All,
I have to do BDC Recording for a transaction.During recording i have to select a coloum and sort it ascending and then do further processing.
BDC recording happens for sorting but not for selecting coloum.
and hence it gives error when we process the recording that "Select a coloum".
can u plz tell me how to add seelcting coloum in BDC recorording.
ThanksHi,
You should try to incorporate your functionality using FIND or POSITION button instead of going for sort option.
Find or position button work very good in this scenerio. With find button you can find the desired entry easily.
Hope this will solve your problem.
Regards,
Brajvir -
BDC Recording For J1IG with Table Control Scroll bar
Dear Friends,
I am doing BDC program for J1IG Transaction after done recording.
As you knows that, In J1IG transaction max. 11 materials are shows in table control at a time and if more records are there, then we have to scroll down manually so after that, we can see the records.
Now my BDC program runs upto 11 materials but when more than 11 materials, selection is coming on first material only and cursor not showing 12th material.
So i think page down is not working for that issue.
I have seen lots of search forum for that but not getting the proper answer.
Please reply.
Regards,
Shivam.Dear Dinu,
For better understanding please see the code.
So you suggest what should i have to do?.
LOOP AT jtab INTO wb.
LOOP AT itab INTO wa WHERE mblnr EQ wb-mblnr.
CLEAR : flag.
AT NEW mblnr.
flag = 'X'.
CLEAR : cnt, var1, var2.
ENDAT.
cnt = cnt + 1.
IF flag EQ 'X'.
PERFORM bdc_dynpro USING 'SAPMJ1IG' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ECAP'.
PERFORM bdc_dynpro USING 'SAPMJ1IG' '0200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'T_HEADER-EXDAT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'J_1IEXCHDR-EXGRP'
wa-exgrp.
PERFORM bdc_field USING 'T_HEADER-MBLNR'
wa-mblnr.
PERFORM bdc_field USING 'T_HEADER-MJAHR'
wa-mjahr.
PERFORM bdc_field USING 'T_HEADER-EXNUM'
wa-exnum.
PERFORM bdc_field USING 'T_HEADER-EXDAT'
wa-exdat.
PERFORM bdc_dynpro USING 'SAPMJ1IG' '0200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'J_1IEXCHDR-EXGRP'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=DETL'.
ENDIF.
CONCATENATE 'T_ITEM-ZEILE(' cnt ')' INTO var1.
CONCATENATE 'T_ITEM-SELECTION(' cnt ')' INTO var2.
PERFORM bdc_dynpro USING 'SAPMJ1IG' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
var1. "'T_ITEM-ZEILE(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=MORE'.
PERFORM bdc_field USING var2 "'T_ITEM-SELECTION(01)'
'X'. "record-selection_01_019.
PERFORM bdc_dynpro USING 'SAPMJ1IG' '0400'.
PERFORM bdc_field USING 'BDC_CURSOR'
'T_LOCAL_EXC-EXADDRATE1(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'T_LOCAL_EXC-MENGE(01)'
wa-menge.
PERFORM bdc_field USING 'T_LOCAL_EXC-EXBAS(01)'
wa-exbas.
PERFORM bdc_field USING 'T_LOCAL_EXC-EXBED(01)'
wa-exbed.
PERFORM bdc_field USING 'T_LOCAL_EXC-BEDRATE(01)'
wa-bedrate.
PERFORM bdc_field USING 'T_LOCAL_EXC-EXAED(01)'
wa-exaed.
PERFORM bdc_field USING 'T_LOCAL_EXC-AEDRATE(01)'
wa-aedrate.
PERFORM bdc_field USING 'T_LOCAL_EXC-ECS(01)'
wa-ecs.
PERFORM bdc_field USING 'T_LOCAL_EXC-ECSRATE(01)'
wa-ecsrate.
PERFORM bdc_field USING 'T_LOCAL_EXC-EXADDTAX1(01)'
wa-exaddtax1.
PERFORM bdc_field USING 'T_LOCAL_EXC-EXADDRATE1(01)'
wa-exaddrate1.
PERFORM bdc_dynpro USING 'SAPMJ1IG' '0400'.
PERFORM bdc_field USING 'BDC_CURSOR'
'T_LOCAL_EXC-RG23ASER(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMJ1IG' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'T_ITEM-DOCNO(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
CLEAR opt.
opt-dismode = 'A'.
opt-updmode = 'S'.
* opt-defsize = '12'.
* CLEAR: it_messages[], it_messages.
CALL TRANSACTION 'J1IG' USING it_bdcdata OPTIONS FROM opt
MESSAGES INTO it_messages.
REFRESH it_bdcdata.
ENDLOOP.
CHECK it_messages[] IS NOT INITIAL.
LOOP AT it_messages.
PERFORM fill_messages USING it_messages-msgtyp
it_messages-msgid
it_messages-msgnr
it_messages-msgv1
it_messages-msgv2
it_messages-msgv3
it_messages-msgv4.
ENDLOOP.
PERFORM display_messages TABLES tmsg. -
BDC recording for SU01 - Roles
Hi All ,
I am using BDC recoording of the SU01 T code for the modification of the end date of the assigned roles .
In few scenario there are few cases where user does have direct and indirect roles . I am able to change the end date of the direct roles via BDC in SU01 but since indirect roles which are depedent on direct roles and therefore the end date fields is not editable and hence on the warning my BDC is unable to update anything in SU01 .
Can any one advise , how can i proceed with BDC recording to capture editable and noneditable fields ?Hi,
it's not possible with BDC recording to know if a field is in input mode or only in output mode.
PS : Search if you cannot used a BAPI. f.e BAPI_USER_*
REM : Just one remark if you use time assignment
Time-dependency of user assignment and authorizations
o If you are also using the role to generate authorization profiles,
then you should note that the generated profile is not entered in
the user master record until the user master records have been
compared. When you specify the users for the role, the system enters
by default the current date as the start date of the user
assignment, and 12.31.9999 as the end date. If you want to restrict
the start and end dates of the assignment, for example, if you want
to define a temporary substitute for a user, the system
automatically makes the changes to the user. This automatic
adjustment of the user's authorizations is executed using report
PFCG_TIME_DEPENDENCY. In this case, you should schedule report
PFCG_TIME_DEPENDENCY daily, for example, early in the morning, to
run in the background (in transaction SA38, for example). This
compares the user master records for all roles and updates the
authorizations for the user master records. The system removes
authorization profiles for invalid user assignments from the user
master record, and enters authorization profiles from valid user
assignments to a role. -
BDC Recording for uploading data into Fi01
HI,
I need to upload date from a file into SAP Fi01 transaction
i used a sample program and added my bdc recording to it as per instrucrion
there is a error while uploading.
i believe it is at the place i am pointing in bold. it is at read dataset. could you advice me how to solve it.
CODE:
REPORT Z_BANK_DIRECTORY
NO STANDARD PAGE HEADING
LINE-SIZE 200
LINE-COUNT 300.
*-- DATA DECLARATION--
*---Types
DATA : BEGIN OF t_upload,
data element: BANKS
BANKS_001(003),
data element: BANKK
BANKL_002(015),
data element: BANKA
BANKA_003(060),
data element: REGIO
PROVZ_004(003),
data element: STRAS_GP
STRAS_005(035),
data element: ORT01_GP
ORT01_006(035),
data element: BRNCH
BRNCH_007(040),
data element: SWIFT
SWIFT_008(011),
data element: BGRUP
BGRUP_009(002),
data element: AD_TITLETX
TITLE_MEDI_010(030),
data element: AD_NAME1
NAME1_011(040),
data element: AD_STRSPP1
STR_SUPPL1_012(040),
data element: AD_STRSPP2
STR_SUPPL2_013(040),
data element: AD_STREET
STREET_014(060),
data element: AD_CITY2
CITY2_015(040),
data element: AD_CITY3
HOME_CITY_016(040),
data element: AD_PSTCD1
POST_CODE1_017(010),
data element: LAND1
COUNTRY_018(003),
data element: AD_POBX
PO_BOX_019(010),
data element: AD_PSTCD2
POST_CODE2_020(010),
data element: SPRAS
LANGU_021(002),
data element: AD_TLNMBR1
TEL_NUMBER_022(030),
data element: AD_MBNMBR1
MOB_NUMBER_023(030),
data element: AD_FXNMBR1
FAX_NUMBER_024(030),
data element: AD_SMTPADR
SMTP_ADDR_025(132),
data element: BANKA
BANKA_026(060),
data element: REGIO
PROVZ_027(003),
data element: STRAS_GP
STRAS_028(035),
data element: ORT01_GP
ORT01_029(035),
data element: BRNCH
BRNCH_030(040),
data element: SWIFT
SWIFT_031(011),
data element: BGRUP
BGRUP_032(002),
END OF t_upload.
*--- Tables
DATA : BEGIN OF i_bdcdata OCCURS 0."to hold the transaction t_upload
INCLUDE STRUCTURE bdcdata.
DATA: END OF i_bdcdata.
DATA: i_upload LIKE STANDARD TABLE OF t_upload," to hold file data.
i_upload1 LIKE STANDARD TABLE OF t_upload." to hold file data.
*--- Work Areas
DATA: wa_upload2 LIKE t_upload,
wa_upload LIKE t_upload,
wa_upload1 LIKE t_upload.
*--- Variables
DATA: v_count1(4) TYPE n,
v_error TYPE c,
v_session(12),
v_field(21) TYPE c,
v_message(60) type C.
*--Constants
DATA: c_open TYPE c VALUE '(',
c_close TYPE c VALUE ')',
c_x TYPE c VALUE 'X'.
*---Initialisation
initialization.
refresh : i_upload , i_upload1 ,i_bdcdata.
-------Selection Screen Design -
*Selection screen for input of upload file address
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
PARAMETERS : p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
---AT SELECTION SCREEN -
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*--For popup to select file.
PERFORM give_help.
-----START OF SELECTION -
START-OF-SELECTION.
*--Data upload using WS_Upload.
PERFORM get_data.
*-- OPEN SESSION
PERFORM open_group.
*--Insert transactions using BDCDATA table in the session.
PERFORM do_transaction .
*-- Close the session.
PERFORM close_group.
END-OF-SELECTION.
*& Form f_get_data
For data upload from external file.
FORM get_data.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = i_upload
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
DELETE I_UPLOAD INDEX 1.
ENDIF.
ENDFORM. " f_get_data
*& Form F_open_group
To open session in session management.
FORM open_group.
v_session = 'FI01'.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = v_session
user = sy-uname
keep = 'X'.
ENDFORM. " F_open_group
*& Form f_do_transaction
Insert transactions in session after passing values to BDCDATA
FORM do_transaction.
LOOP AT i_upload INTO wa_upload .
*---- insert your generated codes from recording at SHDB here
read dataset <b>wa_upload</b> into t_upload.
if sy-subrc <> 0. exit. endif.
perform bdc_dynpro using 'SAPMF02B' '0100'.
perform bdc_field using 'BDC_CURSOR'
'BNKA-BANKL'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BNKA-BANKS'
t_upload-BANKS_001.
perform bdc_field using 'BNKA-BANKL'
t_upload-BANKL_002.
perform bdc_dynpro using 'SAPMF02B' '0110'.
perform bdc_field using 'BDC_CURSOR'
'BNKA-BGRUP'.
perform bdc_field using 'BDC_OKCODE'
'=ADDR'.
perform bdc_field using 'BNKA-BANKA'
t_upload-BANKA_003.
perform bdc_field using 'BNKA-PROVZ'
t_upload-PROVZ_004.
perform bdc_field using 'BNKA-STRAS'
t_upload-STRAS_005.
perform bdc_field using 'BNKA-ORT01'
t_upload-ORT01_006.
perform bdc_field using 'BNKA-BRNCH'
t_upload-BRNCH_007.
perform bdc_field using 'BNKA-SWIFT'
t_upload-SWIFT_008.
perform bdc_field using 'BNKA-BGRUP'
t_upload-BGRUP_009.
perform bdc_dynpro using 'SAPLSZA1' '0201'.
perform bdc_field using 'BDC_CURSOR'
'SZA1_D0100-SMTP_ADDR'.
perform bdc_field using 'BDC_OKCODE'
'=CONT'.
perform bdc_field using 'SZA1_D0100-TITLE_MEDI'
t_upload-TITLE_MEDI_010.
perform bdc_field using 'ADDR1_DATA-NAME1'
t_upload-NAME1_011.
perform bdc_field using 'ADDR1_DATA-STR_SUPPL1'
t_upload-STR_SUPPL1_012.
perform bdc_field using 'ADDR1_DATA-STR_SUPPL2'
t_upload-STR_SUPPL2_013.
perform bdc_field using 'ADDR1_DATA-STREET'
t_upload-STREET_014.
perform bdc_field using 'ADDR1_DATA-CITY2'
t_upload-CITY2_015.
perform bdc_field using 'ADDR1_DATA-HOME_CITY'
t_upload-HOME_CITY_016.
perform bdc_field using 'ADDR1_DATA-POST_CODE1'
t_upload-POST_CODE1_017.
perform bdc_field using 'ADDR1_DATA-COUNTRY'
t_upload-COUNTRY_018.
perform bdc_field using 'ADDR1_DATA-PO_BOX'
t_upload-PO_BOX_019.
perform bdc_field using 'ADDR1_DATA-POST_CODE2'
t_upload-POST_CODE2_020.
perform bdc_field using 'ADDR1_DATA-LANGU'
t_upload-LANGU_021.
perform bdc_field using 'SZA1_D0100-TEL_NUMBER'
t_upload-TEL_NUMBER_022.
perform bdc_field using 'SZA1_D0100-MOB_NUMBER'
t_upload-MOB_NUMBER_023.
perform bdc_field using 'SZA1_D0100-FAX_NUMBER'
t_upload-FAX_NUMBER_024.
perform bdc_field using 'SZA1_D0100-SMTP_ADDR'
t_upload-SMTP_ADDR_025.
perform bdc_dynpro using 'SAPMF02B' '0110'.
perform bdc_field using 'BDC_CURSOR'
'BNKA-BANKA'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.
perform bdc_field using 'BNKA-BANKA'
t_upload-BANKA_026.
perform bdc_field using 'BNKA-PROVZ'
t_upload-PROVZ_027.
perform bdc_field using 'BNKA-STRAS'
t_upload-STRAS_028.
perform bdc_field using 'BNKA-ORT01'
t_upload-ORT01_029.
perform bdc_field using 'BNKA-BRNCH'
t_upload-BRNCH_030.
perform bdc_field using 'BNKA-SWIFT'
t_upload-SWIFT_031.
perform bdc_field using 'BNKA-BGRUP'
t_upload-BGRUP_032.
*----- insertion ends
perform bdc_transaction using 'FI01'.
REFRESH : I_BDCDATA.
CLEAR : WA_UPLOAD.
ENDIF.
ENDLOOP.
ENDFORM. " f_do_transaction
*& Form bdc_dynpro
For appending screen details to BDCDATA
FORM bdc_dynpro USING program dynpro.
CLEAR i_bdcdata.
i_bdcdata-program = program.
i_bdcdata-dynpro = dynpro.
i_bdcdata-dynbegin = 'X'.
APPEND i_bdcdata.
CLEAR i_bdcdata.
ENDFORM. "bdc_dynpro
*& Form bdc_field
For appending field details to bdcdata table
FORM bdc_field USING fnam fval.
CLEAR i_bdcdata.
i_bdcdata-fnam = fnam.
i_bdcdata-fval = fval.
APPEND i_bdcdata.
CLEAR i_bdcdata.
ENDFORM. " bdc_field
*& Form bdc_transaction
For inserting Transaction in the session
FORM bdc_transaction USING tcode.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'FI01'
TABLES
dynprotab = i_bdcdata.
ENDFORM. " bdc_transaction
*& Form F_close_group
For closing the session created in Session manager SM35
FORM close_group.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
concatenate 'Session ' v_session 'successfully created' into v_field.
MESSAGE v_field type 'I'..
CALL TRANSACTION 'SM35'.
ENDFORM. "f_close_group
*& Form f_give_help
For user help to select file
FORM give_help.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ',.,..'
mode = 'O'
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0 AND NOT sy-msgty IS INITIAL.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " f_give_help
---- End of Template -Actually, there is no need for the dataset statemant at all. Comment that out, and add a line that moves the data from wa_upload to t_upload, or you could change the rest of the references to point to wa_upload and forget about t_upload. Your choice.
LOOP AT i_upload INTO wa_upload .
*---- insert your generated codes from recording at SHDB here
*read dataset wa_upload into t_upload.
*f sy-subrc <> 0. exit. endif.
t_upload = wa_upload.
Regards,
RIch Heilman
Maybe you are looking for
-
How to set iTunes not to sync the apps I have on my iPad to my iPhone?
How can I do this. I always plug my phone in and iTunes transfer the purchased apps to mynlibrary, same with my iPad. Today I wanted to add some songs to both iPhone and iPad so I added them to iTunes library then I synced the iPad with no problem ne
-
Ciscoworks 2000 and Cisco 1242AG-LAP
hi i have a problem with my cisco works,the software is manages all the devices in my network including the 19 1242AG-LAPs,even thogh the LAPs appear on the management software they are appearing as red which in normal conditions indicate a faulty de
-
Can I merge ical from old, non cloud Mac with new one?
Can I merge ical from old, non cloud Mac with new one? I cannot sync from old G5 so if I backup that iCal, can I merge it with new iCal on my new Mac without losing new Mac calenday details? Thanks. Jeff
-
Deleting "student" from login name
How do I delete the word "student" from next to my login name? I see instructions on changing the avatar (which I did) but I do not know how "student" wound up there. Anyway, how do I change that? This question was solved. View Solution.
-
Integartion of Strategic Management
Dear Experts, Where do i integrate SM with? either in ECC or BI or BPC? Also send me the proof of concept document. Regards, RRK