BDC program using HR ABAP
Hi,
I am new to HR ABAP . Can anybody send me an end to end sample BDC program using HR ABAP. I have a requirement to develop a program.
Please give the sample file which has the sample data to upload to SAP.
Rgds,
Sofia
hi....
to create a program of your own....
goto tcode 'SHDB' and there go for a new recording of the TCODE as required by you...
after recording is complete there is a button to GENERATE a program for that
i am looking for a complete data tranfer example which i have done.... i ll send that to you
regards
this is a sample code for it
THIS IS WRITTEN BY ME,YOU CAN GENERATE PROGRAM DIRECTLY
*" Type declarations...................................................
Type declaration of the structure to hold material information *
TYPES:
BEGIN OF type_s_mat,
name(10) TYPE c, " Material Number
industry TYPE c, " Industry Sector
mtype(10) TYPE c, " Material Type
descr(20) TYPE c, " Material Description
unit(10) TYPE c, " Base Unit of Measure
END OF type_s_mat,
type_s_f2(4096) TYPE c.
*" Data declarations...................................................
Work variables *
DATA:
fs_f1 TYPE type_s_mat, " Field string of TYPE_S_MAT
fs_workarea TYPE bdcdata, " Field string of type BDCDATA
fs_bdc TYPE bdcmsgcoll, " Field string of type bdcmsgcoll
w_msg(72) TYPE c, " Holds message for writing
w_i TYPE i, " Holds value of rc
w_file TYPE filetable, " Holds name of the file
w_var TYPE file_table, " Field string of file_table
w_file1 TYPE string. " Holds the path of the file
Internal table to hold data for the input *
DATA:
t_itab LIKE
STANDARD TABLE
OF fs_workarea,
Internal table to hold data for the messages *
t_mess LIKE
STANDARD TABLE
OF fs_bdc,
t_mat LIKE
STANDARD TABLE
OF fs_f1,
Internal table to hold data for the input *
t_temp TYPE
STANDARD TABLE
OF type_s_f2.
*"Selection screen elements............................................
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_file(128) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST EVENT *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'FILE_OPEN'
default_extension = 'XLS'
CHANGING
file_table = w_file
rc = w_i
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.
ENDIF. " IF SY-SUBRC <> 0.
LOOP AT w_file INTO w_var.
p_file = w_var-filename.
ENDLOOP. " LOOP AT W_FILE INTO W_VAR.
ULINE.
START-OF-SELECTION EVENT *
START-OF-SELECTION.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_tab_raw_data = t_temp
i_filename = p_file
TABLES
i_tab_converted_data = t_mat
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF. " IF SY-SUBRC EQ 0.
END-OF-SELECTION EVENT *
END-OF-SELECTION.
PERFORM sub_display.
*& Form sub_screen
This subroutine appends the value of screen name and number *
-->PV_screenam This holds screen name *
-->PV_scrnum This holds screen number *
FORM sub_screen USING value(pv_screenam)
value(pv_scrnum).
CLEAR fs_workarea.
fs_workarea-program = pv_screenam.
fs_workarea-dynpro = pv_scrnum.
fs_workarea-dynbegin = 'X'.
APPEND fs_workarea TO t_itab.
ENDFORM. " FORM SUB_SCREEN
*& Form SUB_FIELD_DATA *
This subroutine apppends field name and value of the screen. *
-->PV_FLDNAM This holds field name *
-->PV_FLDVAL This holds Field value *
FORM sub_field_data USING value(pv_fldnam)
value(pv_fldval).
CLEAR fs_workarea.
fs_workarea-fnam = pv_fldnam.
fs_workarea-fval = pv_fldval.
APPEND fs_workarea TO t_itab.
ENDFORM. " FORM SUB_FIELD_DATA
*& Form sub_display *
This subroutine fills the value on screen fields when BDC executes *
There are no interface parameters to be passed to this subroutine. *
FORM sub_display .
LOOP AT t_mat INTO fs_f1.
CLEAR fs_workarea.
CLEAR fs_bdc.
PERFORM sub_screen USING 'SAPLMGMM' '0060'.
PERFORM sub_field_data USING 'RMMG1-MATNR' fs_f1-name.
PERFORM sub_field_data USING 'RMMG1-MBRSH' fs_f1-industry.
PERFORM sub_field_data USING 'RMMG1-MTART' fs_f1-mtype.
PERFORM sub_field_data USING 'BDC_OKCODE' '/00'.
PERFORM sub_screen USING 'SAPLMGMM' '0070'.
PERFORM sub_field_data USING 'MSICHTAUSW-KZSEL(01)' 'X'.
PERFORM sub_field_data USING 'MSICHTAUSW-KZSEL(02)' 'X'.
PERFORM sub_field_data USING 'BDC_OKCODE' '=ENTR'.
PERFORM sub_screen USING 'SAPLMGMM' '4004'.
PERFORM sub_field_data USING 'MAKT-MAKTX' fs_f1-descr.
PERFORM sub_field_data USING 'MARA-MEINS' fs_f1-unit.
PERFORM sub_field_data USING 'BDC_OKCODE' '/00'.
PERFORM sub_screen USING 'SAPLMGMM' '4004'.
PERFORM sub_field_data USING 'BDC_OKCODE' '=BU'.
CALL TRANSACTION 'MM01' USING t_itab MODE 'A' MESSAGES INTO t_mess.
ENDLOOP.
ENDFORM. " SUB_DISPLAY
Edited by: Mohit Kumar on Feb 18, 2009 12:40 PM
Similar Messages
-
BDC programming using Batch input Session.
Hello Experts.
I'm an ABAP beginner. I've benn practicing BDC programming using Batch input Session
at the moment.
This is the program that upload Local file which has plural records, and put the records into a Session.
These are the records.
413459,KIM EI HWAN121 ,19810607,MIADONG1234
423459,KIM EI HWAN122 ,19810607,MIADONG1235
433459,KIM EI HWAN123 ,19810607,MIADONG1236
443459,KIM EI HWAN124 ,19810607,MIADONG1237
453459,KIM EI HWAN125 ,19810607,MIADONG1238
463459,KIM EI HWAN126 ,19810607,MIADONG1239
I succeeded making Session.
However, for some reaseon, every record in the Session has got the same, value which is the first record.
Why is this happening? And How can I correct the code below?
REPORT ZBCUSER002_BATCH NO STANDARD PAGE HEADING
LINE-SIZE 255
MESSAGE-ID ZBATCH.
= Types definition ===================================================
TYPES: BEGIN OF TYP_LOCAL, "For Local file upload
RECORD(200) TYPE C,
END OF TYP_LOCAL.
= Internal table definition ==============================================
DATA: BEGIN OF BDC_TAB OCCURS 0. "BDCDATA itab
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.
DATA: BEGIN OF MESSAGE_BDC OCCURS 0. "Message itab
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF MESSAGE_BDC.
DATA: TBL_LOCAL TYPE STANDARD TABLE OF TYP_LOCAL, "Local file itab
F_TBL TYPE FILETABLE. "FILETABLE fot local
= Structure table definition =========================================
DATA: STR_F_TBL LIKE LINE OF F_TBL, "FILETABLE structure
STR_LOCAL TYPE TYP_LOCAL. "Local file structure
= Variable definition ================================================
DATA: LV_RC TYPE I, "Method parameter
ENUMBER TYPE ZT601-ENUMBER, "Employee number
NAME TYPE ZT601-NAME, "Employee name
BIRTH TYPE ZT601-BIRTH, "Birthday
HOMETOWN TYPE ZT601-HOMETOWN, "Hometown
SYSVAL TYPE SY-SUBRC. "System valuible
= Constants definition ===============================================
CONSTANTS: TBL_NAME(10) TYPE C VALUE 'ZT601'. "Table name ZT601
= Parameters definition ==============================================
PARAMETERS: F_NAME TYPE RLGRAP-FILENAME OBLIGATORY, "File path
EXECMODE(1) TYPE C. "Execute mode
INITIALIZATION
*----- Initialize all valuables, structures and internal tables
CLEAR: LV_RC,
STR_F_TBL,
STR_LOCAL,
ENUMBER,
NAME,
BIRTH,
HOMETOWN.
REFRESH: F_TBL,
TBL_LOCAL.
AT SELECTION-SCREEN
*----- When the button next to Parameter 'F_NAME',
*----- File dialog open.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_NAME.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'SELECT FILE'
DEFAULT_FILENAME = '*.TXT'
CHANGING
FILE_TABLE = F_TBL
RC = LV_RC
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
OTHERS = 3
*----- system valiable check.
*----- If done properly,
*----- Put the path into the File path parameter
IF SY-SUBRC = 0.
READ TABLE F_TBL INTO STR_F_TBL INDEX 1.
F_NAME = STR_F_TBL.
*----- If not done properly, show message
*----- An error occured while getting file path then end program
ELSE.
MESSAGE E000.
ENDIF.
*----- Execute code can only be A or N.
AT SELECTION-SCREEN ON EXECMODE.
IF EXECMODE <> 'A' AND EXECMODE <> 'N'.
MESSAGE E001.
ENDIF.
START-OF-SELECTION
START-OF-SELECTION.
*----- Upload Local file of file path parameter.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = F_NAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TBL_LOCAL
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
OTHERS = 6.
*----- System valiable check.
*----- If not done properly, show an error message
*----- An error occured while uploading local file then end program
IF SY-SUBRC <> 0.
MESSAGE E002.
ENDIF.
PERFORM BDC_OPEN.
*----- Loop Internal table
LOOP AT TBL_LOCAL INTO STR_LOCAL.
*----- Spilt the file record and put them into each valiable.
SPLIT STR_LOCAL AT ',' INTO ENUMBER
NAME
BIRTH
HOMETOWN.
*----- Data check Function module
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
DATE = BIRTH
EXCEPTIONS
PLAUSIBILITY_CHECK_FAILED = 1
OTHERS = 2.
*----- When error occurs while checking date, show an error message.
*----- (&1) is not date
IF SY-SUBRC <> 0.
MESSAGE E003 WITH BIRTH.
ENDIF.
*-- The first screen of SE11
*----- Screen number 0102 of program id SAPMSRD0
PERFORM BDC_DYNPRO USING 'SAPMSRD0' '0102'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SHOW'. "Display button
PERFORM BDC_FIELD USING 'RSRD1-TBMA'
'X'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA_VAL'
TBL_NAME. "ZT601
*-- Table definition screen
*----- Screen number 2000 of program id SAPLSD02
PERFORM BDC_DYNPRO USING 'SAPLSD02' '2000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TDED'. "Create entry
PERFORM BDC_FIELD USING 'BDC_SUBSCR'
'SAPLSD02'.
PERFORM BDC_FIELD USING 'BDC_SUBSCR'
'SAPLSED5'.
*-- Data input screen
*----- Screen number 0101 of program /1BCDWB/DBZT601
PERFORM BDC_DYNPRO USING '/1BCDWB/DBZT601' '0101'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ZT601-CRUSER'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SAVE'. "Save
PERFORM BDC_FIELD USING 'ZT601-MANDT'
SY-MANDT. "Client
PERFORM BDC_FIELD USING 'ZT601-ENUMBER'
ENUMBER. "Employee number
PERFORM BDC_FIELD USING 'ZT601-NAME'
NAME. "Employee name
PERFORM BDC_FIELD USING 'ZT601-BIRTH'
BIRTH. "Birthday
PERFORM BDC_FIELD USING 'ZT601-HOMETOWN'
HOMETOWN. "Hometown
PERFORM BDC_FIELD USING 'ZT601-CRDATE'
SY-DATUM. "System date
PERFORM BDC_FIELD USING 'ZT601-CRTIME'
SY-UZEIT. "System time
PERFORM BDC_FIELD USING 'ZT601-CRUSER'
SY-UNAME. "System user
*-- Data input screen (After input)
*----- Screen number 0101 of program /1BCDWB/DBZT601
PERFORM BDC_DYNPRO USING '/1BCDWB/DBZT601' '0101'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'. "Back
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ZT601-CRUSER'. "Field on Cursor
*-- Table definition screen]
*----- Screen number 2000 of program SAPLSD02
PERFORM BDC_DYNPRO USING 'SAPLSD02' '2000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WB_BACK'. "Back
*-- The first screen of SE11
*----- Screen number 0102 of program SAPMSRD0
PERFORM BDC_DYNPRO USING 'SAPMSRD0' '0102'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BACK'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA'
'X'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA_VAL'
TBL_NAME.
PERFORM BDC_INSERT.
ENDLOOP.
PERFORM BDC_CLOSE.
FORM BDC_DYNPRO *
Put Program-Id, Dynpro screen number, Start point
into DBCDATA
--> PROGRAM *
--> DYNPRO *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDC_TAB.
BDC_TAB-PROGRAM = PROGRAM.
BDC_TAB-DYNPRO = DYNPRO.
BDC_TAB-DYNBEGIN = 'X'.
APPEND BDC_TAB.
ENDFORM.
FORM BDC_FIELD *
Put Field Name and Value into BDCDATA
--> FNAM *
--> FVAL *
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDC_TAB.
BDC_TAB-FNAM = FNAM.
BDC_TAB-FVAL = FVAL.
APPEND BDC_TAB.
ENDFORM.
FORM bdc_process *
FORM BDC_OPEN.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'Testsession'
KEEP = 'X'
USER = SY-UNAME.
IF SY-SUBRC <> 0.
MESSAGE E006 WITH SY-SUBRC.
ENDIF.
ENDFORM.
FORM bdc_insert *
FORM BDC_INSERT.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'SE11'
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE E007 WITH SY-SUBRC.
ENDIF.
CLEAR: BDC_TAB.
ENDFORM.
FORM bdc_close *
FORM BDC_CLOSE.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE E008 WITH SY-SUBRC.
ENDIF.
ENDFORM.God I forgot to refresh Internal table after putting record into Session.
Now I'm done.
You guys be careful too. -
Standard BDC program used for FI
hi all ,
i would like to know the standard BDC program used in FI , like for tcode fb01 or somethings else.
Appreciate for any segguestion.
thanks and regards.hi siddu m
thanks for replay ,
i have anohter question
provided the transaction A was contianed in the first batch file,
and also contained in the second batch file , how the tcode treated as the duplicate posting ?
many thanks -
Issue with BDC program used for FBZ5 (Check Print)
Hi all,
I am having one requirement in Check printing. as per that i have made one Z program which will accept multiple Payment documents. I am passing selected accounting documents to BDC routine for Transaction FBZ5. (As in FBZ5 we can take a print for one Payment document not for multiple)
We can have 3 scenarios in FBZ5
1. Fresh Check printing (First time check printing)
2. Old Check (printing for same Check no)
3. New Check (After voiding older check)
Category 1 and 2 are working fine but i am facing problem in category 3.
For Category 3 : BDC Screen flow is like this
A. Tcode FBZ5 Start program: SAPMFCHK Screen: 750 --> Click on 'Print'
B. Program: SAPLSPO2 Screen: 0100 --> Here specify option 'New Check'
C. Program: SAPMFCHK Screen: 0700
- This program belongs to new Tcode FCH7
- Here we have to give Void Reason code
Now issue with Category 3:
While executing BDC in online and background mode my control is terminating at step C mentioned above
Troubleshooting:
I have debugged standard program of FBZ5
1. in Include MFCHKFD0 we can see call to Tcode FCH7 (PERFORM AUFRUF_FCH7.)
2. in form AUFRUF_FCH7 i found code related to BDC
also there one statement is getting triggered --> CALL TRANSACTION 'FCH7' USING BDC MODE 'A'.
So there is a BDC call inside my Z BDC program, so is this a reason why my program is not working for above scenario ?
Or can't we handle above scenario in a way mentioned above?Hi Sandra,
I was trying to upload customer master in fd01 using bdc. The screens were different while recording. So could not perform the upload. Thenone screen was skipped so that the bdc was working fine and the data was uploaded.
This is the flow of the recording.
'SAPMF02D' '0105'.
SAPMF02D' '7105'
SAPMF02D' '0111
SAPMF02D' '0120
SAPMF02D' '0130
SAPMF02D' '0210
SAPMF02D' '0215
SAPMF02D' '0220'
SAPMF02D' '0230'
SAPMF02D' '0610
After the second screen was deleted the bdc worked fine. -
How to upload a multistructured file in BDC program using gui_upload?
I want to upload a multistructured file in BDC program...in which some structures are repeating for multiple records..how to do this..
BP_GEN_DATA FR0100270154 FR12345678902
BP_PAYMENT FR 0123456789 01234567890
BP_UNLOAD MARSEILLE X FR
BP_UNLOAD PARIS FR
Here BP_GEN_DATA is root structure and BP_UNLOAD is lower level structure which is repeatingResolved
-
Problem in BDC program using MIGO_GO transaction code
Hi Gurus
I have developed a BDC session upload program. The program is
running fine except for the issue that when it goes the subscreen in
MIGO_GO transaction (same as MIGO) it does not generates any code
for page down or next page key. While recording after 15 entries
(end of page) it moves automaticaly to the next page on line 2 but
when I have used my own itab to fill data into this screen it
passes/generates the code for page down with clear screen. It does
go to item 2 but overwrites earlier entries instead of generting new
one.
Any suggestions?
Guys this is very urgent so need ur feedback immediately?
Lots of thanks in advance.
The code is as follows:
PURPOSE: The purpose of this upload program is to upload
receipt
against Production Order. Data is uploaded into SAP
via text
file which is converted from pre-defined excel file
pattern.
REPORT zmm_migo_rec
NO STANDARD PAGE HEADING LINE-SIZE 255.
*Excel column sequence SAP Material Number Batch # Crop Year
Process Date Net Weight Plant Area Gross
Weight Plant Number Shift Mat.Desc Prod.Ord#
TYPES : BEGIN OF st_barcode,
m_matnr LIKE mara-matnr,
m_batch_no LIKE mseg-charg,
m_crop_year TYPE c LENGTH 4,
m_process_date LIKE mkpf-bldat,
m_net_wt TYPE c LENGTH 7,
m_plant_area TYPE c LENGTH 5,
m_gross_wt TYPE c LENGTH 7,
m_plant_num TYPE c LENGTH 1,
m_shift TYPE c LENGTH 1,
m_matnr_desc TYPE c LENGTH 30,
m_prod_ord LIKE mseg-aufnr,
text(200),
text1(200),
END OF st_barcode.
DATA : itab_barcode TYPE TABLE OF st_barcode WITH HEADER LINE.
DATA : itab_log TYPE TABLE OF st_barcode WITH HEADER LINE.
DATA : itab_log1 TYPE TABLE OF st_barcode WITH HEADER LINE.
DATA : g_filename TYPE rlgrap-filename.
INCLUDE bdcrecx1.
Start of Selection Screen for document data, screen data and
posting date fields.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-000.
PARAMETERS :
p_dummy TYPE i DEFAULT 0,
p_bldat LIKE sy-datum OBLIGATORY DEFAULT sy-
datum, "Document date
p_budat LIKE sy-datum OBLIGATORY DEFAULT sy-
datum, "Posting date
p_frmplt LIKE t001l-werks OBLIGATORY,
p_frmloc LIKE t001l-lgort OBLIGATORY,
p_toloc LIKE t001l-lgort OBLIGATORY,
p_rsnmov LIKE mseg-grund OBLIGATORY,
p_bsarea LIKE mseg-gsber OBLIGATORY,
cb_simul AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK a1.
START-OF-SELECTION.
*to remove unnecessary fields from selection screen
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group4 LT '060' AND screen-group3 NE 'BLK'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
*to Process Call Transaction in Error Mode
ctu = 'X'.
ctumode = 'A'.
nodata = space.
END-OF-SELECTION.
Get data from file
PERFORM f_get_data.
Validate data retrieved from excel file
PERFORM f_validate_data.
Batch data / simulate.
IF cb_simul IS INITIAL.
PERFORM f_prized_data.
PERFORM f_write_log.
ELSE.
PERFORM f_write_log.
ENDIF.
*& Form F_GET_DATA
This module is used to read text file data into SAP itab.
FORM f_get_data .
Select the file to be uploaded
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = g_filename
filetype = 'DAT'
TABLES
data_tab = itab_barcode
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
ENDFORM. " F_GET_DATA
*& Form F_VALIDATE_DATA
text
FORM f_validate_data .
DATA : BEGIN OF lt_marc OCCURS 0,
matnr LIKE mard-matnr,
werks LIKE mard-werks, " Plant
END OF lt_marc.
RANGES : lr_matnr FOR mara-matnr.
READ TABLE itab_barcode INDEX 1.
Prepare Ranges to check/verify Material from Table MARD i.e.
respective plant
lr_matnr-sign = 'I'.
lr_matnr-option = 'EQ'.
LOOP AT itab_barcode.
Add leading zeros incase of numeric value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = itab_barcode-m_matnr
IMPORTING
output = itab_barcode-m_matnr.
lr_matnr-low = itab_barcode-m_matnr.
APPEND lr_matnr.
MODIFY itab_barcode TRANSPORTING m_matnr.
ENDLOOP.
IF NOT lr_matnr[] IS INITIAL.
SORT lr_matnr BY low.
DELETE ADJACENT DUPLICATES FROM lr_matnr COMPARING low.
SELECT matnr werks FROM marc
INTO TABLE lt_marc
WHERE matnr IN lr_matnr AND
werks = p_frmplt.
ENDIF.
LOOP AT itab_barcode.
READ TABLE lt_marc
WITH KEY matnr = itab_barcode-m_matnr
werks = p_frmplt.
IF sy-subrc <> 0 .
CONCATENATE 'Material' itab_barcode-m_matnr
' does not exist in Plant ' p_frmplt
INTO itab_barcode-text SEPARATED BY space.
MOVE-CORRESPONDING itab_barcode TO itab_log.
APPEND itab_log.
MODIFY itab_barcode TRANSPORTING text.
CONTINUE.
ENDIF.
ENDLOOP.
ENDFORM. " F_VALIDATE_DATA
*& Form F_WRITE_LOG
text
FORM f_write_log .
LOOP AT itab_log.
WRITE :/ itab_log-text.
ENDLOOP.
LOOP AT itab_log1.
WRITE :/ itab_log1-text1.
ENDLOOP.
ENDFORM. " F_WRITE_LOG
*& Form f_prized_data
text
--> p1 text
<-- p2 text
FORM f_prized_data.
DATA: ld_lines LIKE sy-tabix,
ld_sw TYPE i,
lh_loop TYPE i,
ld_recno TYPE i,
lremain TYPE i,
ld_total TYPE i,
ld_counter LIKE sy-index,
ld_counter TYPE i,
ld_save LIKE sy-index,
ld_last TYPE i,
sc_counter(2) TYPE n,
ld_budat(10),
ld_bldat(10).
DATA: wa_matnr(40) TYPE c,
wa_bwtar(40) TYPE c,
wa_erfme(40) TYPE c,
wa_charg(40) TYPE c.
WRITE: p_budat TO ld_budat,
p_bldat TO ld_bldat.
ld_recno = 300. " Number of records in the upload file.
ld_last = 0.
Open BDC session.
PERFORM open_group.
DESCRIBE TABLE itab_barcode LINES ld_lines.
CLEAR: lh_loop, lremain.
lh_loop = ld_lines DIV ld_recno.
lremain = ld_lines MOD ld_recno.
IF lremain > 0.
lh_loop = lh_loop + 1.
ENDIF.
ld_sw = 1.
LOOP AT itab_barcode.
ADD 1 TO ld_counter.
ADD 1 TO sc_counter.
ADD 1 TO ld_total. " Check for 300
IF ld_sw = 1.
Header data.
PERFORM open_group.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=MIGO_OK_ACTION'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GODYNPRO-ACTION'.
PERFORM bdc_field USING 'GODYNPRO-
ACTION' 'A01'.
PERFORM bdc_field USING 'GODYNPRO-
REFDOC' 'R02'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=OK_GO'.
PERFORM bdc_field USING 'GODYNPRO-
ACTION' 'A01'.
PERFORM bdc_field USING 'GODYNPRO-
REFDOC' 'R08'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GODYNPRO-
ORDER_NUMBER'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=MIGO_OK_DETAIL_OP
EN'.
PERFORM bdc_field USING 'GODYNPRO-
ACTION' 'A01'.
PERFORM bdc_field USING 'GODYNPRO-
REFDOC' 'R08'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GODYNPRO-
ORDER_NUMBER'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=OK_GO'.
PERFORM bdc_field USING 'GODYNPRO-
ACTION' 'A01'.
PERFORM bdc_field USING 'GODYNPRO-
REFDOC' 'R08'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GODYNPRO-
ORDER_NUMBER'.
PERFORM bdc_field USING 'GODYNPRO-
ORDER_NUMBER' itab_barcode-m_prod_ord.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=MIGO_OK_LINE_CLIC
K'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_field USING 'GOHEAD-
WEVER' '3'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOITEM-ZEILE(01)'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_ZEILE' ' 1'.
PERFORM bdc_field USING 'GOITEM-
ERFME' 'KG'.
PERFORM bdc_field USING 'GOITEM-
BWART' '101'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=MIGO_OK_SPLIT_QUA
N'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_field USING 'GOHEAD-
WEVER' '3'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOITEM-ZEILE(01)'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_ZEILE' ' 1'.
PERFORM bdc_field USING 'GOITEM-
ERFME' 'KG'.
PERFORM bdc_field USING 'GOITEM-
MIGO_ELIKZ' '1'.
PERFORM bdc_field USING 'GOITEM-
BWART' '101'.
ld_sw = 0.
ENDIF.
IF sc_counter = 16.
CLEAR sc_counter.
PERFORM bdc_field USING 'BDC_OKCODE' 'DOWN'.
PERFORM bdc_field
USING 'BDC_OKCODE' '/00'.
add 2 to sc_counter.
ELSE.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
ENDIF.
CLEAR wa_matnr.
CONCATENATE 'GOSPLIT-ERFMG(' sc_counter ')' INTO wa_matnr.
CLEAR wa_bwtar.
CONCATENATE 'GOSPLIT-CHARG(' sc_counter ')' INTO wa_bwtar.
PERFORM bdc_dynpro USING 'SAPLMIGO' '1000'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=OK_SP_CH'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOSPLIT-CHARG
(sc_counter)'.
PERFORM bdc_field USING wa_matnr itab_barcode-
m_gross_wt.
PERFORM bdc_field USING wa_bwtar itab_barcode-
m_batch_no.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOSPLIT-CHARG
(sc_counter)'.
*When end of itab
AT LAST.
PERFORM bdc_dynpro USING 'SAPLMIGO' '1000'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=OK_GOON'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOSPLIT-CHARG
(sc_counter)'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=MIGO_OK_NEXT_IT'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_field USING 'GOHEAD-
WEVER' '3'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOITEM-ZEILE(01)'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_ZEILE' ' 1'.
PERFORM bdc_field USING 'GOITEM-
ERFME' 'KG'.
PERFORM bdc_field USING 'GOITEM-
MIGO_ELIKZ' '1'.
PERFORM bdc_field USING 'GOITEM-
BWART' '101'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=MIGO_OK_TAKE_VALU
E'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOITEM-TAKE_IT
(01)'.
PERFORM bdc_field USING 'GOITEM-TAKE_IT
(01)' 'X'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_ZEILE' ' 1'.
PERFORM bdc_field USING 'GOITEM-
ERFME' 'KG'.
PERFORM bdc_field USING 'GOITEM-
MIGO_ELIKZ' '1'.
PERFORM bdc_field USING 'GOITEM-
BWART' '101'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=OK_CHECK'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOITEM-TAKE_IT
(01)'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_ZEILE' ' 1'.
PERFORM bdc_field USING 'GOITEM-
ERFME' 'KG'.
PERFORM bdc_field USING 'GOITEM-
MIGO_ELIKZ' '1'.
PERFORM bdc_field USING 'GOITEM-
BWART' '101'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_TAKE' 'X'.
PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=&ONT'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
PERFORM bdc_field
USING 'BDC_OKCODE' '=OK_POST1'.
PERFORM bdc_field USING 'GODEFAULT_TV-
BWART' '101'.
PERFORM bdc_field USING 'GOHEAD-
BLDAT' ld_bldat.
PERFORM bdc_field USING 'GOHEAD-
BUDAT' ld_budat.
PERFORM bdc_field USING 'GOHEAD-
XNAPR' 'X'.
PERFORM bdc_field
USING 'BDC_CURSOR' 'GOITEM-TAKE_IT
(01)'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_ZEILE' ' 1'.
PERFORM bdc_field USING 'GOITEM-
ERFME' 'KG'.
PERFORM bdc_field USING 'GOITEM-
MIGO_ELIKZ' '1'.
PERFORM bdc_field USING 'GOITEM-
BWART' '101'.
PERFORM bdc_field USING 'GODYNPRO-
DETAIL_TAKE' 'X'.
PERFORM bdc_transaction USING 'MIGO_GO'.
ENDAT.
ENDLOOP.
PERFORM close_group.
ENDFORM. "f_prized_dataHi
Thanks Peram for your swift reply but I am a newbie to BAPIs ...... is there anyway i can do this from within the code i had written ....
for BAPIs I have to do R & D in detail and I need to complete this urgently. If BAPI is the only solution kindly provide my some quick guideline to proceed.
Thanks,
Imran -
Checking for running programs using a abap program
Is there a way in ABAP to detect from within a program that another process is running the same program? Meaning if PROG1 is running, could PROG1 check to see if another process is running program PROG1?
Use the locking concept. You can either create your own, or a popular one to use is ESINDX, passing parameters: relid 'ZZ', SRTFD program name, and SRTF2 = 0.
The logic is:
Attempt to get lock (FM ENQUEUE_ESINDX, perhaps).
If lock got -> run program
If lock not got -> quit.
You have to put this logic at the start of your program.
matt -
BDC program using call txn for txn cj40
Hi,
I am uploading data using bdc call txn method for txn cj40. In flat file I have 2 header field and 4 line items.So in line items last field is Qty [RK70L-MENGE].This field data is not uploading.Pls tell me where is the problem.
And in txn cj40 first field is project def, So user wants. That field should be blank.
Bcoz it is taking previous value.Pls tell me the suitable code for that.
Thanks & Regards,
Shiv KantSo in line items last field is Qty RK70L-MENGE//
->Use char format in ur flat file for the quantity field.
itab-menge(13) type c.
//And in txn cj40 first field is project def, So user wants. That field should be blank.
Bcoz it is taking previous value.Pls tell me the suitable code for that.
Dont know what u mean by taking previous value .. just check if ur refreshing bdcdata structure after every iteration / before the start of iteration itself in ur loop endloop .
loop ..
refresh i_bdcdata[]. " <----
perform
perform
perform
endloop. -
Hi,
What is the best and easiest way to determine the list of programs in SAP (standard or custom) that uses SM35? Is there a table somewhere that stores this information?
Thanks,
GeneMaybe one way is to do a where-used on the function module BDC_CLOSE_GROUP or BDC_OPEN_GROUP or BDC_INSERT.
Regards,
Rich Heilman -
Wireless using SAP ABAP Report programming
Hi All Boss,
I am doing my project Wireless program using SAP ABAP
I need that project.
so please send me wireless program for sap abap and screen shot.
reply me urgent....
Please donot forgot to all..This is not a program writing service.
-
BDC program for Other Goods receipts
Hi all,
I need BDC program for Other goods receipts,
I have data in excel like material, batch id, qty, actual width, length, plant etc. i want to upload this in one short based on the movement type.
Thanks in advance.
ShankarHi MP Shankar,
This is a sample BDC program .Use the format to develop your own BDC program.First record your trasnaction and use that recorded program here.Pass your filename here.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_ifile TYPE dxfile-filename.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-002.
PARAMETERS: p_sess RADIOBUTTON GROUP g3 "create session
DEFAULT 'X' USER-COMMAND bdc,
p_ctu RADIOBUTTON GROUP g3. "call transaction
SELECTION-SCREEN END OF BLOCK b3.
DATA : BEGIN OF itab OCCURS 0,
str TYPE string,
END OF itab,
l_file TYPE string,
t_bdcdata TYPE STANDARD TABLE OF bdcdata,
wa_bdcdata LIKE LINE OF t_bdcdata.
AT SELECTION SCREEN ON VALUE REQUEST
Value request for the filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ifile.
PERFORM help_input_file.
START-OF-SELECTION.
CLEAR l_file.
l_file = p_ifile.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_file
filetype = 'ASC'
TABLES
data_tab = itab
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
*Start new session
IF p_sess = 'X'.
PERFORM bdc_open.
ENDIF.
LOOP AT itab.
PERFORM creat_batch_input.
PERFORM bdc_insert.
IF p_ctu = 'X'.
CALL TRANSACTION 'SE38' USING t_bdcdata MODE 'A'.
ENDIF.
ENDLOOP.
IF p_sess = 'X'.
PERFORM bdc_close .
ENDIF.
*& Form bdc_open
text
--> p1 text
<-- p2 text
FORM bdc_open .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = 'ZMUK'
user = sy-uname
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11.
ENDFORM. " bdc_open
*& Form creat_batch_input
text
--> p1 text
<-- p2 text
FORM creat_batch_input .
use your own recorded program here.
PERFORM bdc_dynpro USING 'SAPLWBABAP' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=STRT'.
PERFORM bdc_field USING 'RS38M-PROGRAMM'
itab-str.
PERFORM bdc_field USING 'RS38M-FUNC_EDIT'
'X'.
PERFORM bdc_dynpro USING 'SAPLSLVC_FULLSCREEN' '0500'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=&F03'.
PERFORM bdc_dynpro USING 'SAPLWBABAP' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'RS38M-PROGRAMM'
itab-str.
PERFORM bdc_field USING 'RS38M-FUNC_EDIT'
'X'.
ENDFORM. " creat_batch_input
*& Form bdc_insert
text
--> p1 text
<-- p2 text
FORM bdc_insert .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'SE38'
TABLES
dynprotab = t_bdcdata
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.
ENDFORM. " bdc_insert
*& Form bdc_dynpro
text
-->P_0168 text
-->P_0169 text
FORM bdc_dynpro USING p_program TYPE any
p_dynpro TYPE any.
CLEAR wa_bdcdata.
wa_bdcdata-program = p_program.
wa_bdcdata-dynpro = p_dynpro.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO t_bdcdata.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0179 text
-->P_0180 text
FORM bdc_field USING p_fnam TYPE any
p_fval TYPE any.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = p_fnam.
wa_bdcdata-fval = p_fval.
CONDENSE wa_bdcdata-fval.
APPEND wa_bdcdata TO t_bdcdata.
ENDFORM. " bdc_field
*& Form bdc_close
text
--> p1 text
<-- p2 text
FORM bdc_close .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
ENDFORM. " bdc_close
*& Form help_input_file
text
--> p1 text
<-- p2 text
FORM help_input_file .
DATA: lt_file_table TYPE filetable,
la_file_table LIKE LINE OF lt_file_table,
l_rc TYPE i,
l_pcdsn TYPE cffile-filename.
REFRESH lt_file_table.
CLEAR la_file_table.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
CHANGING
file_table = lt_file_table
rc = l_rc.
READ TABLE lt_file_table INTO la_file_table INDEX 1.
l_pcdsn = la_file_table-filename.
MOVE l_pcdsn TO p_ifile.
ENDFORM. " help_input_file -
BDC Program for T-code MI10 in Session Method.
hi everyone,
I want a BDC Program in Session Method using t-code MI10.
If also ther is no pgms for this T-code, then can anybody send me a bdc program using Session Method...
With Regards,
Seevangihi everyone,
I want a BDC Program in Session Method using t-code MI10.
If also ther is no pgms for this T-code, then can anybody send me a bdc program using Session Method...
With Regards,
Seevangi -
Hi,
I am trying to create a bdc program using va01, with call transaction method.
i need a sample program for this which we generate after the recording, with any scenario.
thanks in advance.
RagI would suggest that you use the BAPI instead.
BAPI_SALESORDER_CREATEFROMDAT2
REgard,
RIch Heilman -
Submission of BDC Program in Module Pool fails
HI,
I have written the BDC Program to change the position text using 'PP01' . When it is executed, its changing the value correctly.
In my module Pool Program, i am calling the BDC Program using SUBMIT as background job . But it throws an RUN TIME ERROR.
Could you please let me know, whether is this possible or not?
Thanks in advance.
Thanks,
K.TharaniHi Tharani.
Please check whether u has been used OOPS ALV (using Costom container)in module pool programming. If that was the case, system throws an rum time error.
Regards,
surya. -
What is the use of CTU_PRAMS in bdc programming?
what is the use of CTU_PRAMS in bdc programming?
can any explain wit a sample code.Hi,
Hi,
If u write table control bdc program in 14'' monitor screen, then if the same program u run at different monitor size, then the screen resolution problem comes in to the picture,
like, u get 5 records in table control in one screen, and some other records in other screen, to avoid this screen resolution problem we use CTU-PARAMS Structure.
In ur program u have to set
defsize type ctu_params-defsize value 'X',
Then u will be free of screen resolution problem.
Fill the str CTU_PARAMS-defsize = 'X' and pass in CTU stmnt as
call transaction 'XXX' options using t_bdcdata ctu_params.
Analysing :
1. If nothing works, then we have to
some ifs & buts.
2. There shall be normally
2-4 different kinds of resolution
on various users comptuers.
3. Based on this,
we have to know beforehand,
what will be the number of rows
in the table control.
4. The user can be given
a selection/paraemter
for resolution
eg. 800x600
1024x100
axb
etc.
5. Based on this, we will hardcode
in the program (based upon our knowledge/recording
which we have seen and done)
we will hardcode
the number of lines
in the VARIBLE.
6. Then we can simply use this variable
for our LOOP and logic purpose.
7. It will be the responsibiltiy of the
use to CHOOSE THE CORRECT resolution,
on the selection-screen.
For screen resolution use ctu_params, with default size
Data : f_option type ctu_params,
f_option-updmode = 'S'.
f_option-defsize = 'X'.
f_option-dismode = 'N'.
call transaction 'VA01' using bdcdata options from f_option messages into bdcerror.
CALL TRANSACTION tcode... OPTIONS FROM opt
... OPTIONS FROM opt
Effect
Allows you to control processing using the values of the componetns of the structure opt, which must have the ABAP Dictionary type CTU_PARAMS. The components have the following meanings:
DISMODE
Display mode (like the MODE addition)
UPDMODE
Update mode (like the UPDATE addition)
CATTMODE
CATT mode (controls a CATT)
CATT mode can have the following values:
' ' No CATT active
'N' CATT without single-screen control
'A' CATT with single-screen control
DEFSIZE
Use default window size
RACOMMIT
Do not end transaction at COMMIT WORK
NOBINPT
No batch input mode (that is, SY-BINPT = SPACE)
NOBIEND
No batch input mode after the end of BDC data.
The components DEFSIZE , RACOMMIT, NOBINPT, and NOBIEND always take the following values:
'X' Yes
' ' No
If you do not use the OPTIONS FROM addition, the following control parameter settings apply:
DISMODE
From addition MODE
UPDMODE
From addition UPDATE
CATTMODE
No CATT active
DEFSIZE
Do not use default window size
RACOMMIT
Successful end on COMMIT WORK
NOBINPT
Batch input mode active ( SY-BINPT = X
NOBIEND
Batch input mode remains active after the BDC data
Maybe you are looking for
-
Windows 7 Clean install onto newly purchased SSD
Here is my configuration, purchased last November: 2764CT CONFIGURED SYSTEM 44C6206 SBB I.CR2DUO PR P8700(2.53GHZ 45M3453 VBB G.WIN.7PROF.W/XPDOWNGR. 45M3816 SBB GWXPP(PR.VIA DWRGW7P)US EN 42X6315 SBB ATIMOBILTYRADEON3470 256MB 42X6308 VBB 3GBPC3-850
-
Maybe solved pacman : could not open package: File too large
please help! i just made a PKGBUILD for Unreal Tournament 2004 (spent a lot of time on it!) now it says it can't install it. the finished file is 2.6gb. what to do? thanks much.. i want to upload it to AUR. thanks karsten
-
Photoshop Elements 13 installion error Exit Code 7 on Windows 8
I just bought Photoshop Elements 13 for my laptop. I have Windows 8, which I purchase before I was told Windows 8 is terrible. Now when I try to install, it gives me an error that says Exit Code 7: "This installer does not support installation on a 6
-
Library deleted - Record iPod tracks on cd
I deleted all my itunes library (and all downloaded tracks), and now, I have all these tracks in my iPod, but I can´t record it on cd, or copy at new iTunes library... Any ideas?
-
Can Negative ALEAUD trigger alert in Alert Framework?
Hi All, Is it possible to trigger an alert in the alert framework in case of a negative ALEAUD from a SAP R/3 system? if yes how? Cheers, Frank