MB1B - 309 Movement - BDC Recording
HI Everyone,
Basically I need to create a 309 Movement in transaction MB1B to do a batch to batch transfer. Unfortunately I cannot use a BAPI for this because there is configuration in the system that will create the destination batch so I need to use BDC.
I can record the transaction wthout problems, but I cannot get the recording to work in my program. For some reason it doesnt seem to be able to overwrite the defaulted batch no that comes in when specifying the batch to transfer into. If I run the program in mode 'E' the MB1B screen pops up and does nothing. If I click back it then prompts me to Post which is strange. I cannot see why it wont post using my BDC Logic (see below).
I have tried recording this transaction many many times but it wont work - Maybe i am missing something. Your help is greatly appreciated.
FORM batch_309_mvt USING pi_charg
pi_charg_new
pi_matnr
pi_werks
pi_lgort
pi_menga
pi_vfdat.
* Local Declarations
DATA BEGIN OF messtab OCCURS 10.
INCLUDE STRUCTURE bdcmsgcoll.
DATA END OF messtab.
DATA: opt TYPE ctu_params,
lv_date TYPE char10.
* Format Date
CONCATENATE sy-datum+6(2) sy-datum+4(2) sy-datum(4)
INTO lv_date SEPARATED BY '.'.
* Format Material No.
SHIFT pi_matnr LEFT DELETING LEADING '0'.
CONDENSE pi_matnr NO-GAPS.
* MB1B - Start Screen
PERFORM bdc_dynpro USING 'SAPMM07M' '0400'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'MKPF-BLDAT' lv_date.
PERFORM bdc_field USING 'MKPF-BUDAT' lv_date.
PERFORM bdc_field USING 'RM07M-BWARTWA' '309'.
PERFORM bdc_field USING 'RM07M-WERKS' pi_werks.
PERFORM bdc_field USING 'RM07M-LGORT' pi_lgort.
PERFORM bdc_field USING 'XFULL' ' '.
PERFORM bdc_field USING 'RM07M-WVERS2' 'X'.
* MB1B - Detail Screen
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'MSEGK-UMWRK' pi_werks.
PERFORM bdc_field USING 'MSEGK-UMLGO' pi_lgort.
PERFORM bdc_field USING 'MSEGK-UMMAT' pi_matnr.
PERFORM bdc_field USING 'MSEG-MATNR(01)' pi_matnr.
PERFORM bdc_field USING 'MSEG-ERFMG(01)' pi_menga.
PERFORM bdc_field USING 'MSEG-ERFME(01)' 'EA'.
PERFORM bdc_field USING 'MSEG-CHARG(01)' pi_charg.
* MB1B - New Batch Screen
PERFORM bdc_dynpro USING 'SAPMM07M' '0410'.
PERFORM bdc_field USING 'MSEG-UMCHA' pi_charg_new.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSEG-ERFMG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/EBCK'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSEG-ERFMG(01)'.
* MB1B - Return to Detail Screen & Post
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MKPF-BUDAT '.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
* Call transaction
CALL TRANSACTION 'MB1B' USING bdcdata MODE 'E' UPDATE 'A' MESSAGES INTO messtab.
IF sy-subrc NE 0.
LOOP AT messtab.
PERFORM add_to_err_log USING text-er1
messtab-msgv1.
ENDLOOP.
ENDIF.
ENDFORM. " BATCH_309_MVT
Dear Kesle,
I am facing the same issue.
Can u please help me how you have resolved this.
i am copying the piece of code that i have written..
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM07M-LGORT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'MKPF-BLDAT'
'01.03.2012'.
PERFORM BDC_FIELD USING 'MKPF-BUDAT'
'01.03.2012'.
PERFORM BDC_FIELD USING 'RM07M-BWARTWA'
'309'.
PERFORM BDC_FIELD USING 'RM07M-WERKS'
FS_DATATAB-WERKS.
PERFORM BDC_FIELD USING 'RM07M-LGORT'
FS_DATATAB-LGORT.
PERFORM BDC_FIELD USING 'XFULL'
'X'.
PERFORM BDC_FIELD USING 'RM07M-WVERS2'
'X'.
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0421'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MSEG-CHARG(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'MSEGK-UMWRK'
FS_DATATAB-WERKS.
PERFORM BDC_FIELD USING 'MSEGK-UMLGO'
FS_DATATAB-LGORT.
PERFORM BDC_FIELD USING 'MSEGK-UMMAT'
FS_DATATAB-MATNR.
PERFORM BDC_FIELD USING 'MSEG-MATNR(01)'
FS_DATATAB-MATNR.
PERFORM BDC_FIELD USING 'MSEG-ERFMG(01)'
FS_DATATAB-ERFMG.
PERFORM BDC_FIELD USING 'MSEG-CHARG(01)'
FS_DATATAB-CHARG.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
'X'.
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'
FS_DATATAB-KOSTL.
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0410'.
PERFORM BDC_FIELD USING 'MSEG-UMCHA'
FS_DATATAB-CHARG1.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
'X'.
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'
FS_DATATAB-KOSTL.
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0421'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBCK'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MSEG-ERFMG(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
'X'.
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTE'.
CALL TRANSACTION 'MB1B' USING BDCDATA[] MODE 'A'
MESSAGES INTO IT_BDC_MSGS.
Similar Messages
-
MB1B - 309 Movement - BDC Recording Error
HI Everyone,
Basically I need to create a 309 Movement in transaction MB1B to do a batch to batch transfer. Unfortunately I cannot use a BAPI for this because there is configuration in the system that will create the destination batch so I need to use BDC.
I can record the transaction without problems, but I cannot get the recording to work in my program. For some reason it doesnot seem to be able to overwrite the defaulted batch no that comes in when specifying the batch to transfer into. If I run the program in mode 'E' the MB1B screen pops up and does nothing. If I click on warning message and close window it then prompts me to Post. I cannot see why it wont post using my BDC Logic (see below).
I have tried recording this transaction many many times but it wont work - Maybe i am missing something.
Please find the code below that i have recorded.....
Your help is greatly appreciated.
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM07M-LGORT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'MKPF-BLDAT'
'01.03.2012'.
PERFORM BDC_FIELD USING 'MKPF-BUDAT'
'01.03.2012'.
PERFORM BDC_FIELD USING 'RM07M-BWARTWA'
'309'.
PERFORM BDC_FIELD USING 'RM07M-WERKS'
FS_DATATAB-WERKS.
PERFORM BDC_FIELD USING 'RM07M-LGORT'
FS_DATATAB-LGORT.
PERFORM BDC_FIELD USING 'XFULL'
'X'.
PERFORM BDC_FIELD USING 'RM07M-WVERS2'
'X'.
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0421'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MSEG-CHARG(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'MSEGK-UMWRK'
FS_DATATAB-WERKS.
PERFORM BDC_FIELD USING 'MSEGK-UMLGO'
FS_DATATAB-LGORT.
PERFORM BDC_FIELD USING 'MSEGK-UMMAT'
FS_DATATAB-MATNR.
PERFORM BDC_FIELD USING 'MSEG-MATNR(01)'
FS_DATATAB-MATNR.
PERFORM BDC_FIELD USING 'MSEG-ERFMG(01)'
FS_DATATAB-ERFMG.
PERFORM BDC_FIELD USING 'MSEG-CHARG(01)'
FS_DATATAB-CHARG.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
'X'.
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'
FS_DATATAB-KOSTL.
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0410'.
PERFORM BDC_FIELD USING 'MSEG-UMCHA'
FS_DATATAB-CHARG1.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
'X'.
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'
FS_DATATAB-KOSTL.
PERFORM BDC_DYNPRO USING 'SAPMM07M' '0421'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBCK'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MSEG-ERFMG(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
'X'.
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTE'.
CALL TRANSACTION 'MB1B' USING BDCDATA[] MODE 'A'
MESSAGES INTO IT_BDC_MSGS.Hi,
I could not give the exact solution as i dont have access to my SAP system temporarily. According to your inputs i can guess that the issue happened because of pop-up or message prompt will be coming for MB1B movement.
Generally we could not capture the pop-up kind of things using SHDB recording. You must include one BDC_OKCODE logic in the place where POP-UP is coming inside your BDC Coding part.
I hope this will give you some idea.
Thanks:) -
Problem with SM37 BDC recording
Hi ,
I want to change the output device for the job scheduled of 1000 pgms in SM37.
For this i am using BDC recording.
But when i run the recording, it does not fill the data and does not move from 1 screen to other screen.
I have checked the recording, and everything got recorded.
Please suggest .
Thanks in advance.
Rgds/AbhiHi,
Why not make things simpler by using FM BP_CHANGE_JOB_STEP. Parameters required are:
JOBNAME
JOBCOUNT
STEP-PROGRAM & STEP-TYP (equal to 'A')
STEP_NUM
ALLPRIPAR-PDEST
Presumably you will have the info for JOBNAME, JOBCOUNT etc from your BDC feed. To preserve the rest of the print parameters then use something like FM BP_JOB_READ and fill in ALLPRIPAR fields.
Thanks,
Pete -
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 -
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 -
Bdc recording of screen having table control
hi all,
how to trap scroll in bdc recording of table control.
regards deepakHi..,
<b>I found this program in one of the BDC links !! Hope this helps u !!</b>
Following is a sample code of handling table control in BDC.
REPORT Y730_BDC5 .
*HANDLING TABLE CONTROL IN BDC
DATA : BEGIN OF IT_DUMMY OCCURS 0,
DUMMY(100) TYPE C,
END OF IT_DUMMY.
DATA : BEGIN OF IT_XK01 OCCURS 0,
LIFNR(10) TYPE C,
BUKRS(4) TYPE C,
EKORG(4) TYPE C,
KTOKK(4) TYPE C,
NAME1(30) TYPE C,
SORTL(10) TYPE C,
LAND1(3) TYPE C,
SPRAS(2) TYPE C,
AKONT(6) TYPE C,
FDGRV(2) TYPE C,
WAERS(3) TYPE C,
END OF IT_XK01,
BEGIN OF IT_BANK OCCURS 0,
BANKS(3) TYPE C,
BANKL(10) TYPE C,
BANKN(10) TYPE C,
KOINH(30) TYPE C,
LIFNR(10) TYPE C,
END OF IT_BANK.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = 'C:\VENDOR.TXT'
FILETYPE = 'ASC'
TABLES
DATA_TAB = IT_DUMMY.
LOOP AT IT_DUMMY.
IF IT_DUMMY-DUMMY+0(2) = '11'.
IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
APPEND IT_XK01.
ELSE.
IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
APPEND IT_BANK.
ENDIF.
ENDLOOP.
LOOP AT IT_XK01.
REFRESH IT_BDCDATA.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-REF_LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
IT_XK01-LIFNR.
perform bdc_field using 'RF02K-BUKRS'
IT_XK01-BUKRS.
perform bdc_field using 'RF02K-EKORG'
IT_XK01-EKORG.
perform bdc_field using 'RF02K-KTOKK'
IT_XK01-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-TELX1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
IT_XK01-NAME1.
perform bdc_field using 'LFA1-SORTL'
IT_XK01-SORTL.
perform bdc_field using 'LFA1-LAND1'
IT_XK01-LAND1.
perform bdc_field using 'LFA1-SPRAS'
IT_XK01-SPRAS.
perform bdc_dynpro using 'SAPMF02K' '0120'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-KOINH(02)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
DATA : FNAM(20) TYPE C,
IDX TYPE C.
MOVE 1 TO IDX.
LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKS.
CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKL.
CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKN.
CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-KOINH.
IDX = IDX + 1.
ENDLOOP.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-FDGRV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFB1-AKONT'
IT_XK01-AKONT.
perform bdc_field using 'LFB1-FDGRV'
IT_XK01-FDGRV.
perform bdc_dynpro using 'SAPMF02K' '0215'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-ZTERM'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0220'.
perform bdc_field using 'BDC_CURSOR'
'LFB5-MAHNA'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
IT_XK01-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'WYT3-PARVW(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
CALL TRANSACTION 'XK01' USING IT_BDCDATA
MODE 'A'
UPDATE 'S'
MESSAGES INTO IT_BDCMSGCOLL.
ENDLOOP.
FORM BDC_DYNPRO USING PROG SCR.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROG.
IT_BDCDATA-DYNPRO = SCR.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
regards,
sai ramesh -
Sample code creating BOM for CS01 using BDC recording.
Hi,
Can anyone give me sample coding creating BOM for CS01 using BDC recording.
I want to display the flat file records,under one (Alternative BOM).
I m already working on it,but i m getting one A.BOM for each records.
[ Header data ] [ Item Data ]
SOFTDRINKS WIND 1 13 1 ml l
SOFTDRINKS WIND 1 11 1 ml l
SOFTDRINKS WIND 1 15 1 ml l
SOFTDRINKS WIND 1 14 1 ml l
Code:
report ZBOM
no standard page heading line-size 255.
*include bdcrecx1.
*DATA: BEGIN OF bdc OCCURS 0,
matnr(18),
werks(4),
stlan(1),
END OF BDC.
*DATA: BEGIN OF BDC1 OCCURS 0,
idnrk(18),
MENGE(18),
MEINS(3),
postp(1),
posnr(4),
END OF bdc1.
DATA: BEGIN OF BDCDATA OCCURS 0,
matnr(18),
werks(4),
stlan(1),
idnrk(18),
MENGE(18),
MEINS(3),
postp(1),
posnr(4),
END OF BDCDATA.
data ibdcdata type standard table of bdcdata WITH header line.
*start-of-selection.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\Documents and Settings\dilipkumar.b\Desktop\soft.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ','
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = BDCDATA
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*perform open_group.
loop at bdcdata.
perform bdc_dynpro using 'SAPLCSDI' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RC29N-STLAN'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29N-MATNR'
'SOFTDRINKS'.
perform bdc_field using 'RC29N-WERKS'
'WIND'.
perform bdc_field using 'RC29N-STLAN'
'1'.
perform bdc_field using 'RC29N-DATUV'
'16.09.2008'.
perform bdc_dynpro using 'SAPLCSDI' '0110'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29K-BMENG'
'1'.
perform bdc_field using 'RC29K-STLST'
'1'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-EXSTL'.
perform bdc_dynpro using 'SAPLCSDI' '0111'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-LABOR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POSTP(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FCBU'.
perform bdc_field using 'RC29P-IDNRK(001)'
BDCDATA-IDNRK.
perform bdc_field using 'RC29P-MENGE(001)'
BDCDATA-MENGE.
perform bdc_field using 'RC29P-MEINS(001)'
BDCDATA-MEINS.
perform bdc_field using 'RC29P-POSTP(001)'
BDCDATA-POSTP.
perform bdc_dynpro using 'SAPLCSDI' '0130'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POSNR'.
perform bdc_field using 'RC29P-POSNR'
BDCDATA-POSNR. "'0010'.
perform bdc_field using 'RC29P-IDNRK'
BDCDATA-IDNRK. "'15'.
perform bdc_field using 'RC29P-MENGE'
BDCDATA-MENGE. "'1'.
perform bdc_field using 'RC29P-MEINS'
BDCDATA-MEINS. "'ml'.
perform bdc_dynpro using 'SAPLCSDI' '0131'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POTX1'.
perform bdc_field using 'RC29P-SANKA'
'X'.
*perform bdc_transaction using 'CS01'.
*perform close_group.
CALL TRANSACTION 'CS01' USING IBDCDATA MODE 'A' UPDATE 'S'.
REFRESH IBDCDATA.
clear ibdcdata.
endloop.
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR iBDCDATA.
iBDCDATA-PROGRAM = PROGRAM.
iBDCDATA-DYNPRO = DYNPRO.
iBDCDATA-DYNBEGIN = 'X'.
APPEND ibDCDATA .
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> NODATA.
CLEAR iBDCDATA.
iBDCDATA-FNAM = FNAM.
iBDCDATA-FVAL = FVAL.
APPEND iBDCDATA .
ENDIF.
ENDFORM.Hi,
I tried with the sample code but i m not getting the required result.
Can anyone give some other soln.
Code:
REPORT ZBOM2
no standard page heading line-size 255.
*include bdcrecx1.
TYPES: BEGIN OF TY_FLAT, " structure for flat file
STRING(200),
END OF TY_FLAT.
TYPES: BEGIN OF TY_HEAD, " structure for header file
IND(2) TYPE N,
MATNR(18),
WERKS(4),
STLAN(1),
END OF TY_HEAD.
TYPES : BEGIN OF TY_ITEM, "structure for item file
IND(2) TYPE N,
POSTP(1),
IDNRK(18),
MENGE(13),
meins(3),
END OF TY_ITEM.
TYPES :BEGIN OF TY_FLAT1, " structure for final file
MATNR(18),
WERKS(4),
STLAN(1),
posnr(4),
POSTP(1),
IDNRK(18),
MENGE(13),
meins(3),
END OF TY_FLAT1.
INTERNAL TABLE DECLERATIONS:
DATA : T_FLAT TYPE STANDARD TABLE OF TY_FLAT,
T_FLAT1 TYPE STANDARD TABLE OF TY_FLAT1,
T_HEAD TYPE STANDARD TABLE OF TY_HEAD,
T_ITEM TYPE STANDARD TABLE OF TY_ITEM,
T_BDCDATA TYPE STANDARD TABLE OF BDCDATA with header line ,
T_BDCMSG TYPE STANDARD TABLE OF BDCMSGCOLL.
WORK AREA DECLERATIONS:
DATA : ST_FLAT TYPE TY_FLAT,
ST_FLAT1 TYPE TY_FLAT1,
ST_HEAD TYPE TY_HEAD,
ST_ITEM TYPE TY_ITEM,
ST_BDCDATA TYPE BDCDATA,
ST_BDCMSG TYPE BDCMSGCOLL.
VARIABLES:
DATA : FNAM TYPE LOCALFILE, "rlgrap-filename,
FTYP TYPE RLGRAP-FILETYPE,
LF_FNAM TYPE STRING.
DATA : V_IND(2) TYPE N, " value 1,
V_FLD(20),
V_NO(2) TYPE N.
*start-of-selection.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\Documents and Settings\dilipkumar.b\Desktop\soft.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ','
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = T_FLAT
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.
LOOP AT T_FLAT INTO ST_FLAT.
SPLIT ST_FLAT AT CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
INTO ST_FLAT1-MATNR ST_FLAT1-WERKS
ST_FLAT1-STLAN ST_FLAT1-POSTP
ST_FLAT1-IDNRK ST_FLAT1-MENGE ST_FLAT1-MEINS.
APPEND ST_FLAT1 TO T_FLAT1.
CLEAR ST_FLAT1.
ENDLOOP.
SORT T_FLAT1 BY MATNR WERKS STLAN POSTP IDNRK MENGE MEINS.
LOOP AT T_FLAT1 INTO ST_FLAT1.
MOVE :
ST_FLAT1-MATNR TO ST_HEAD-MATNR,
ST_FLAT1-WERKS TO ST_HEAD-WERKS,
ST_FLAT1-STLAN TO ST_HEAD-STLAN,
ST_FLAT1-POSTP TO ST_ITEM-POSTP,
ST_FLAT1-IDNRK TO ST_ITEM-IDNRK,
ST_FLAT1-MENGE TO ST_ITEM-MENGE,
ST_FLAT1-MENGE TO ST_ITEM-MEINS.
AT new STLAN.
ADD 1 TO V_IND.
ENDAT.
MOVE V_IND TO ST_HEAD-IND.
MOVE V_IND TO ST_ITEM-IND.
APPEND ST_HEAD TO T_HEAD.
APPEND ST_ITEM TO T_ITEM.
CLEAR ST_HEAD.
CLEAR ST_ITEM.
ENDLOOP.
CLEAR V_IND.
*perform open_group.
SORT T_ITEM BY IND.
SORT T_HEAD BY IND.
DELETE ADJACENT DUPLICATES FROM T_HEAD.
LOOP AT T_HEAD INTO ST_HEAD.
perform bdc_dynpro using 'SAPLCSDI' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RC29N-STLAN'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29N-MATNR'
ST_HEAD-MATNR.
perform bdc_field using 'RC29N-WERKS'
ST_HEAD-WERKS.
perform bdc_field using 'RC29N-STLAN'
ST_HEAD-STLAN.
perform bdc_field using 'RC29N-DATUV'
'16.09.2008'.
perform bdc_dynpro using 'SAPLCSDI' '0110'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29K-BMENG'
'1'.
perform bdc_field using 'RC29K-STLST'
'1'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-EXSTL'.
perform bdc_dynpro using 'SAPLCSDI' '0111'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-LABOR'.
LOOP AT T_ITEM INTO ST_ITEM WHERE IND = ST_HEAD-IND.
ADD 1 TO V_NO.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-MENGE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FCBU'.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POSNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FCBU'.
perform bdc_field using 'RC29P-IDNRK(01)'
ST_ITEM-IDNRK.
perform bdc_field using 'RC29P-MENGE(01)'
ST_ITEM-MENGE.
perform bdc_field using 'RC29P-MEINS(01)'
ST_ITEM-MEINS.
perform bdc_field using 'RC29P-POSTP(01)'
ST_ITEM-POSTP.
CONCATENATE 'RC29K-IDNRK(' V_NO ')' INTO V_FLD.
CONDENSE V_FLD.
PERFORM BDC_FIELD USING V_FLD
ST_ITEM-IDNRK.
CONCATENATE 'RC29K-MENGE(' V_NO ')' INTO V_FLD.
CONDENSE V_FLD.
PERFORM BDC_FIELD USING V_FLD
ST_ITEM-MENGE.
CONCATENATE 'RC29K-MEINS(' V_NO ')' INTO V_FLD.
CONDENSE V_FLD.
PERFORM BDC_FIELD USING V_FLD
ST_ITEM-MEINS.
CONCATENATE 'RC29K-POSTP(' V_NO ')' INTO V_FLD.
CONDENSE V_FLD.
PERFORM BDC_FIELD USING V_FLD
ST_ITEM-POSTP.
V_NO = 1.
ENDLOOP.
CLEAR V_NO.
*perform bdc_dynpro using 'SAPLCSDI' '0130'.
*perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'BDC_CURSOR'
'RC29P-POSNR'.
*perform bdc_field using 'RC29P-POSNR'
POSNR.
*perform bdc_field using 'RC29P-IDNRK'
bdcdata-IDNRK.
*perform bdc_field using 'RC29P-MENGE'
bdcdata-MENGE.
*perform bdc_field using 'RC29P-MEINS'
bdcdata-MEINS.
perform bdc_dynpro using 'SAPLCSDI' '0131'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-POTX1'.
perform bdc_field using 'RC29P-SANKA'
'X'.
perform bdc_dynpro using 'SAPLCSDI' '0133'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-matkl'.
perform bdc_field using 'RC29P-SANKA'
'zv01'.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
'RC29N-POSNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FCBU'.
*perform bdc_transaction using 'CS01'.
perform close_group.
CALL TRANSACTION 'CS01' USING t_bdcdata MODE 'A' UPDATE 'S'.
REFRESH t_bdcdata.
clear t_bdcdata.
endloop.
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR st_bdcdata.
st_bdcdata-PROGRAM = PROGRAM.
st_bdcdata-DYNPRO = DYNPRO.
st_bdcdata-DYNBEGIN = 'X'.
APPEND st_bdcdata to t_bdcdata .
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> NODATA.
CLEAR st_bdcdata.
st_bdcdata-FNAM = FNAM.
st_bdcdata-FVAL = FVAL.
APPEND st_bdcdata to t_bdcdata.
ENDIF.
ENDFORM. -
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 -
Hi,
I'm new to abap. Hope any expert able to help me out.
I'm doing upload program to link the document to functional location via BDC recording IL02.
1) How i proceed to check the floc is whether exist in the system?
2) Display the out the floc name if not exist.
3) skip/ delete this floc and proceed rest of uploading.
Below are part of my code & recording. Appreciate can provide guide code to me.
Thanks!!
<u><b>Internal Table:</b></u>
DATA : BEGIN OF i_input OCCURS 0,
tplnr LIKE iflo-tplnr, "Functional Location
dokar LIKE draw-dokar, "Document Type
doknr LIKE draw-doknr, "Document
doktl LIKE draw-doktl, "Document Part
dokvr LIKE draw-dokvr, "Document Version
END OF i_input.
<u><b>BDC Recording</b></u>
FORM BDC_Functional_Location.
DATA : wa_file LIKE i_input.
IF NOT i i_input[] IS INITIAL.
SORT i_input BY tplnr.
LOOP AT i_input.
wa_file = i_input.
REFRESH i_bdcdata.
CLEAR i_bdcdata.
<u>Screen 1</u>
PERFORM bdc_dynpro USING 'SAPMILO0' '1110' c_on.
PERFORM bdc_field USING 'BDC_CURSOR'
'IFLO-TPLNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'IFLO-TPLNR'
wa_file-tplnr.
<u>Screen 2</u>
PERFORM bdc_dynpro USING 'SAPMILO0' '2100' c_on.
PERFORM bdc_field USING 'BDC_CURSOR'
'IFLO-PLTXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=T\05'.
<u>Screen 3</u>
PERFORM bdc_dynpro USING 'SAPMILO0' '2100' c_on.
PERFORM bdc_field USING 'BDC_OKCODE'
'=CV140_INS'.
<u>Screen 4</u>
PERFORM bdc_dynpro USING 'SAPMILO0' '2100' c_on.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'DRAW-DOKVR(01)'.
PERFORM bdc_field USING 'DRAW-DOKAR(01)'
wa_file-dokar.
PERFORM bdc_field USING 'DRAW-DOKNR(01)'
wa_file-doknr.
PERFORM bdc_field USING 'DRAW-DOKTL(01)'
wa_file-doktl.
PERFORM bdc_field USING 'DRAW-DOKVR(01)'
wa_file-dokvr.
PERFORM bdc_field USING 'GF_ALLE'
'X'.
<u>Screen 5</u>
PERFORM bdc_dynpro USING 'SAPMILO0' '2100' c_on.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_transaction USING ' ' 'IL02' 'N'.
ENDLOOP.
ENDIF.
ENDFORM.Hi All,
Below is my code... I only need to update the cost center belongs to the affected functional location... Please help... Thanks.
data: PATH TYPE STRING,
FULLPATH TYPE STRING,
USER_ACTION TYPE I,
PCFILEX TYPE STRING,
g_pathresult TYPE string,
g_file TYPE string.
DATA: gt_fltab TYPE filetable,
g_rcode TYPE i.
data: DATALINE TYPE STRING.
INFILE TYPE STANDARD TABLE OF STRING.
data: begin of infile occurs 0,
c1(30) type C,
C2(10) type C,
end of infile.
DATA: IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
WA_BDCDATA TYPE BDCDATA.
data: begin of it_final occurs 0,
tplnr like bdcdata-fval, "Function Location, iflo-tplnr
kostl like bdcdata-fval, "Cost Center, itob-kostl
tplnr(25) type C,
kostl(10) type C,
end of it_final.
*****include bdcrecx1.
Selection screen
PARAMETERS: p_fnam LIKE rlgrap-filename OBLIGATORY.
*initialization.
At SELECTION-SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fnam.
INCLUDE yzz_incldefaultdir.
MOVE: g_filename TO g_pathresult.
Get filename for upload
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
DEFAULT_FILENAME = g_pathresult
CHANGING
file_table = gt_fltab
rc = g_rcode
USER_ACTION = USER_ACTION
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
others = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
READ TABLE gt_fltab INDEX 1 INTO p_fnam.
ENDIF.
IF USER_ACTION EQ 0.
g_file = p_fnam.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = fullpath
filetype = 'ASC'
has_field_separator = 'X'
CHANGING
data_tab = it_final[]
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.
IF SY-SUBRC <> 0.
MESSAGE ID 'ZU' TYPE 'E' NUMBER '007' WITH p_fnam.
ELSE.
READ TABLE gt_fltab INDEX 1 INTO p_fnam.
ENDIF.
ENDIF.
start-of-selection.
perform f_upload.
*perform open_group.
*perform bdc_dynpro using 'SAPMILO0' '1110'.
*perform bdc_field using 'BDC_CURSOR'
'IFLO-TPLNR'.
*perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'IFLO-TPLNR'
'AK31-AP1-010-B700 -B700'.
*perform bdc_field using 'RILO0-TPLKZ'
'PMST1'.
*perform bdc_dynpro using 'SAPMILO0' '2100'.
*perform bdc_field using 'BDC_CURSOR'
'IFLO-PLTXT'.
*perform bdc_field using 'BDC_OKCODE'
'=T\03'.
*perform bdc_field using 'IFLO-PLTXT'
'ABS WASTE WATER STORAGE TANK'.
*perform bdc_dynpro using 'SAPMILO0' '2100'.
*perform bdc_field using 'BDC_OKCODE'
'=BU'.
*perform bdc_field using 'IFLO-PLTXT'
'ABS WASTE WATER STORAGE TANK'.
*perform bdc_field using 'BDC_CURSOR'
'ITOB-KOSTL'.
*perform bdc_field using 'ITOB-BUKRS'
'KP01'.
*perform bdc_field using 'ITOB-KOSTL'
'C68312'.
*perform bdc_field using 'ITOB-IWERK'
'KP13'.
*perform bdc_field using 'ITOB-INGRP'
'MP1'.
*perform bdc_field using 'ITOBATTR-GEWRK'
'MECH #1'.
*perform bdc_field using 'ITOBATTR-WERGW'
'KP13'.
*perform bdc_field using 'ITOB-RBNR'
'M'.
*perform bdc_transaction using 'IL02'.
*perform close_group.
*& Form begin
text
-->P_0191 text
-->P_0192 text
-->P_0193 text
FORM begin USING PROG TYPE BDCDATA-PROGRAM
DYNPRO TYPE BDCDATA-DYNPRO
DYNBEGIN TYPE BDCDATA-DYNBEGIN.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROG.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = DYNBEGIN.
CLEAR wa_BDCDATA.
wa_BDCDATA-PROGRAM = PROG.
wa_BDCDATA-DYNPRO = DYNPRO.
wa_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_final.
APPEND WA_BDCDATA.
ENDFORM. " begin
*& Form info_tc
text
-->P_0197 text
-->P_IT_FINAL_TPLNR text
FORM info_tc USING FNAM TYPE any
FVAL TYPE any.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_final.
ENDFORM. " info_tc
*& Form f_upload
text
--> p1 text
<-- p2 text
FORM f_upload .
clear: g_file.
g_file = p_fnam.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = g_file
filetype = 'ASC'
has_field_separator = '|'
TABLES
data_tab = infile
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
disk_full = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID 'ZU' TYPE 'E' NUMBER '007' WITH p_fnam.
ENDIF.
perform f_call_trans.
ENDFORM. " f_upload
*& Form f_call_trans
text
--> p1 text
<-- p2 text
FORM f_call_trans .
types: begin of t_Data,
C1 TYPE BDCDATA-FVAL, "Material#
C2 TYPE BDCDATA-FVAL, "Industry Sect.
end of t_data.
DATA: C1 TYPE BDCDATA-FVAL,
C2 TYPE BDCDATA-FVAL.
data: IT_DATA TYPE STANDARD TABLE OF t_Data,
WA_DATA like line of infile.
LOOP AT infile INTO WA_DATA.
CLEAR it_bdcdata. REFRESH it_bdcdata.
PERFORM begin USING 'SAPMILO0' '1110' 'X'.
perform info using 'BDC_CURSOR' 'IFLO-TPLNR'.
perform info using 'BDC_OKCODE' '/00'.
PERFORM info USING 'IFLO-TPLNR' WA_DATA-C1.
perform info using 'BDC_OKCODE' '/00'. "=BU
PERFORM begin USING 'SAPMILO0' '2100' 'X'.
perform info using 'BDC_OKCODE' '/00'. "=BU
perform info using 'BDC_CURSOR' 'ITOB-KOSTL'.
PERFORM info USING 'ITOB-KOSTL' WA_DATA-C2.
perform info using 'BDC_OKCODE' '=YES'.
CALL TRANSACTION 'IL02' USING it_FINAL MODE 'A' UPDATE 'L'.
ENDLOOP.
ENDFORM. " f_call_trans
*& Form info
text
-->P_0397 text
-->P_0398 text
FORM info USING fnam type any
fval type any.
*FNAM TYPE BDCDATA-FNAM
FVAL TYPE BDCDATA-FVAL.
VALUE(LINNO) TYPE I.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
CLEAR wa_BDCDATA.
wa_bDCDATA-FNAM = FNAM.
wa_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_final.
APPEND WA_BDCDATA.
ENDFORM. " info -
I have .mov files recorded from an ipad with these specs:
AAC, Mono, 44.100 KHZ
H.264 320x568 (yes the ipad was used vertically, not horizontally)
29.96 fps
I want to edit them in premiere 12, but get this error message:
This type of file is not supported or the required codec is not installed.
What are my options? Thanks!linn749
Thanks for the reply.
As for orientation, there is a rotation feature in Premiere Elements 12....at the Timeline level, you can right click the clip and select Rotate 90 Left or Rotate 90 Right. So that may help.
This is what you may want to try and see what this looks like
1. Open Premiere Elements 12 to its Expert workspace
2. Go to File Menu/New/Project and Change Settings
3. In the Change Settings dialog, change the project preset to NTSC DV Widescreen.
4. Before you exit that area, in the last dialog that you see (new project dialog), make sure you have a check mark next to "Force Selected Project Setting on this Project".
5. Back in the Expert workspace, use Add Media/Files and Folders/ to bring your video into Project Assets from where you will drag it to Video Track 1. We can talk about edits if necessary.
6. Publish+Share/Disc/DVD disc with preset set for NTSC_Widescreen_Dolby DVD.
7. Place your DVD 4.7 GB/120 min disc in the burner, in the burn dialog, have a check mark next to "Fit Content to Available Space". Hit Burn.
If you decide to take the Timeline to YouTube instead,
Publish+Share/Social Websites/YouTube, using Presets = Flash Video for YouTube (Widescreen)
Hit Next and follow the instructions.
(Upload to YouTube from within Premiere Elements 12 has limits of 2 GB and 15 minutes. Anything exceeding that, you need to export to file saved to the computer hard drive and then upload that file to YouTube at the YouTube web site where you might be able to get extended limits.
Please let us know if you are OK with the above information.
Thanks.
ATR
Add On...If you want to "decorate" the black borders in the Timeline content, drag the video to Video Track 2 and put a colored background on Video Track 1 directly below the Video Track 2 content. -
Hi I am having a problem in BDC Recording. My requirement is that when I input data in transaction fb02 to block the invoices, It shows a list of invoices. Now i need to double click that item(line) in which PK = 06 at runtime during bdc recording. During BDC recording it takes the line number on which we have clicked which is constant but i want it dynamic that if item 1 is having PK=6, that line should be double clicked and if item 3 is having PK=6, the third item should be double clicked to open another screen. Kindly help me... Thanks in advance.
Hi Ravi,
While writing your code that is in your code you know which line number is having the PK = 06, then you can use the same line number and add the code for double click after that.
Regards,
Atish -
hi gurus,
i am trying to do a material master creation using BDC recording,
i am new i dont know how to modify the code,
the following is the code, please let me know how to make changes.
report ZTEST95
no standard page heading line-size 255.
include bdcrecx1.
parameters: dataset(132) lower case default
'C:\Documents and Settings\Deskt'
& 'op\test95.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,
data element: MATNR
MATNR_001(040),
data element: MBRSH
MBRSH_002(001),
data element: MTART
MTART_003(004),
data element: REF_MATNR
MATNR_004(040),
data element: XFELD
KZSEL_01_005(001),
data element: MAKTX
MAKTX_006(040),
data element: MEINS
MEINS_007(003),
data element: MATKL
MATKL_008(009),
data element: SPART
SPART_009(002),
data element: MTPOS_MARA
MTPOS_MARA_010(004),
data element: BRGEW
BRGEW_011(017),
data element: GEWEI
GEWEI_012(003),
data element: NTGEW
NTGEW_013(017),
end of record.
End generated data section ***
start-of-selection.
perform open_dataset using dataset.
perform open_group.
do.
read dataset dataset into record.
if sy-subrc <> 0. exit. endif.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
record-MATNR_001.
perform bdc_field using 'RMMG1-MBRSH'
record-MBRSH_002.
perform bdc_field using 'RMMG1-MTART'
record-MTART_003.
perform bdc_field using 'RMMG1_REF-MATNR'
record-MATNR_004.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
record-KZSEL_01_005.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
record-MAKTX_006.
perform bdc_field using 'MARA-MEINS'
record-MEINS_007.
perform bdc_field using 'MARA-MATKL'
record-MATKL_008.
perform bdc_field using 'MARA-SPART'
record-SPART_009.
perform bdc_field using 'MARA-MTPOS_MARA'
record-MTPOS_MARA_010.
perform bdc_field using 'BDC_CURSOR'
'MARA-BRGEW'.
perform bdc_field using 'MARA-BRGEW'
record-BRGEW_011.
perform bdc_field using 'MARA-GEWEI'
record-GEWEI_012.
perform bdc_field using 'MARA-NTGEW'
record-NTGEW_013.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_transaction using 'MM01'.
enddo.
perform close_group.
perform close_dataset using dataset.
thanks.Hi,
It is better if the Material Master creation step is done by LSMW - Direct Input method with the following object:
Object 0020 Material master
Method 0000
Program name RMDATIND
Program type D Direct input
Check the program documentation for more details.
For a sample data file generation ( Sequential file ), check the program RMDATGEN
If the reqmt., is for a repetetive loading of Material Master you could schedule / execute the LSMW by following program: /SAPDMC/SAP_LSMW_INTERFACE.
Hope this helps.
Best Regards, Murugesh -
Need help for bdc recording TC fp05
Hi,
My requirement is: I want to create a Payment lot using fp05 and then post
it through a program.
First i want to know is there any BAPI available to do that.
I couldnt find any BAPI. That is why i did BDC Recording. The recording is working till Payment Lot creation. But after creation when i try to post the lot, it is giving status as "Direct Posting Stopped". Again if i come out of the program and then manually post it, it is working fine. But through program if i try to post it, it is giving status as "Direct Posting Stopped".
Is this because we cannot Post a Payment Lot programatically or some Authorisation issue is there.
Can anyone respond immediately
Regards,
SheronHi Raj,
May be this can be useful.
BAPI_INSPOPER_RECORDRESULTS
You can search other in se37 BAPIINSP.
Regards,
Amit Mittal. -
What is the tcode for bdc recording and how to do in hr-abap for pa and om
hi,
I need to do the bdc recording for pa and om. So, can any of you tell me how to do and what are the tcodes we have to use.
thanks & regards,
Sekhar.Hi ,
Here is the link from you will get all the transaction code
http://www.sap-basis-abap.com/saphr004.htm
As far PA specfic some tcodes are given below
PA20 Display HR Master Data
PA30 Maintain HR Master Data
PA40 Personnel Actions
PA41 Correct Actions
PA42 Fast Entry for Actions
PA46 Import from Resumix
PA47 Export to Resumix
PA48 Hiring from non-SAP system
PA51 Display Time Data
PA53 Display Time Data
PA61 Maintain Time Data
PA62 List Entry of Additional Data
PA63 Maintain Time Data
PA64 Calendar Entry
PA70 Fast Entry
PA71 Fast Entry of Time Data
PA88 Benefits
For OM specific
PP01 Maintain Plan Data (menu-guided)
Maybe you are looking for
-
Invoking a web service from a java code
Hello I created a simple Web service using JDevlper. It contains two methods 1) getInf int () { return inf;} 2) void setInf (int a) { inf = a;} I have deployed it on Oracle Application server. By inserting the address in a browser, I tried both metho
-
I added an 1TB external usb hard disk to my time capsule as the existing 1TB hard disk is nearly full (less than 12 GB left on time capslule hard disk). Initially, I connected external hard disk to my MacBookPro (late 2009 Intel machine) and erased
-
Save as PDF yields no text display in Apple's Preview
I'm trying to output a pdf file for a client. When I do a "Save As" and select Photoshop PDF, the resulting document shows no text in the Preview application. It does show up in Acrobat however. Similarly, when adding the pdf to an email, the text do
-
How to add ICC profiles to Photoshop Elements 10
My ICC profiles are showing up in my LR 4, however, they will not show up in PSE 10. What do I need to do to add the profiles into PSE 10?
-
Bus routing information?
how can I get my bus sends to be stereo while being pre-fader. I need to use these for my cue mixes but can't make them stereo. help?