Transaction FTXP and BDC recording
We need to maintain TAX Code and TAX JURISDICTION/RATE data. For the same we are using transaction FTXP.
When we tried to update values manually, it was successful. But I created BDC (tcode: SHDB) for it, and but this BDC wasn't able to update above mentioned data.
I believe the problem is SCROLLING on RATE screen, because BDC is giving an error "Field L_KBETR (7) is not an input field" (to update this field we need to do page down, it is at the bottom).
Could you please help me with this issue? also is there any other way to update TAX Code and TAX JURISDICTION/RATE data i.e. substitute to TCode: FTXP?
Kind Regards,
Nikhil J
There is not a simple solution, and sometimes the scrolling may not be handled at all in BDC mode (then it needs a modification of standard if you really want to make it work).
For a detailed explanation, look at [the BDC FAQ wiki about table control scrolling|http://wiki.sdn.sap.com/wiki/display/ABAP/BatchInputFAQ#BatchInputFAQ-Howtoscrollatablecontrol%3F].
Similar Messages
-
Mass maintenance and BDC Recodring of custom fields added in PO header.
Hello Experts,
I have created a custom fields in PO header and used Structure for BADI implementation to update the header with values enterd in custom table.
My requirement is for some selected PO i want to fix the value of one of my custom field at header level.
I have tried both the options Mass maintenance and BDC recording but the issue i'm facing is when i go for mass maintenance it is giving me the ERROR and it seems that we can only do the mass maintenance for sap-standard fields only.
When i go for BDC recording i'm facing the issue that when i do SHDB and start recording for ME22N my custom field is coming grayed out and i'm not able to input the desired value in custom field and complete my recording.
Let me know your valuable inputs .
Thanks,
NaveenHello,
Instead of BDC i'm doing it through the BAPI "BAPI_PO_CHANGE" by populating the structure extensionin but here i'm facing the error as below:-
W ME 887 Error transferring ExtensionIn data for enhancement CI_EKKODB
E BAPI 003 Instance 4500001544 of object type PurchaseOrder could not be changed
below is my code:-
ls_extensionin-structure = 'BAPI_TE_MEPOHEADER'.
ls_extensionin-valuepart1+0(10) = wa_po-ebeln.
ls_extensionin-valuepart1+14(3) = no.
append ls_extensionin to lt_extensionin.
clear:ls_bapi_te_bg,ls_extensionin.
ls_extensionin-structure = 'BAPI_TE_MEPOHEADERX'.
ls_extensionin-valuepart1+0(10) = wa_po-ebeln.
ls_extensionin-valuepart1+10(1) = 'X'.
append ls_extensionin to lt_extensionin.
clear:ls_bapi_te_bg,ls_extensionin.
call function 'BAPI_PO_CHANGE'
exporting
purchaseorder = wa_po-ebeln
tables
return = it_bapireturn
extensionin = lt_extensionin
if it_bapireturn[] is initial.
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = ' '
importing
return = it_bapireturn.
endif.
refresh lt_extensionin[].
endloop.
Please let me know if there is any way to achieve this.
Thanks,
naveen -
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) -
BDC Recording for cm07 Transaction
Hi Everyone,
I'm doing BDC recording for CM07 transaction. In Recording, i need to give a print command by specifying the spool title.
For this, after opening the print window, i need to click the 'properties' button, and then select the spool title and input the value.
But I'm unable to do the recording of this print dialog box. The recording ends as soon as I give the print command.
Can anyone please tell me the solution to it.
Thanks and Regards
Rishika bawaHi,
See via transaction SHDB:
SAPLCORU_S 0100 X
BDC_OKCODE BU
AFRUD-RUECK 0000000000
AFRUD-AUFNR 100051152
AFRUD-VORNR 0010
AFRUD-LMNGA 100,000
AFRUD-MEINH PC
AFRUD-XMNGA 2,000
AFRUD-ISM01 200
AFRUD-ILE01 PC
The table for confirmations is AFRU.
Best regards,
Leandro Mengue -
BDC recording for transaction 'Me01'
Hi,
Can u help me in BDC recording for transaction 'ME01' .
I have no idea for transaction 'ME01' .
give sample code if possible.
ThanksFor creating source list you will check that purchasing view has been maintained for this material
Source list for resticting, purcasing a material from a specific vendor only for the period specified in source list
Regards,
Amit R. -
Can BDC recording work for transactions enhanced by GUIXT ?
Hi,
We have some transactions enhanced by GUIXT in 4.7 release.
We want to do BDC on these transactions. The BDC is to run in background.
Does anyone know if SHBD recordings of these transactions (with GUIXT enabled )
can be used in the code? Are there any special issues due to these GUIXT modified
transactions?
ThanksHi,
Key point to take care:
1) When recording run the recording in default screen mode.
2) If Call transaction Method:
Use options additio with the Call transaction.
Ex:
data: t_opt type CTU_PARAMS.
Recording..
t_opt-DEFSIZE = 'X'.
Call transaction 'XXX' options t_opt.
3) Session:
Check the Dynpro standard size checkbox.
This are the improtant this to take care of.
thanks. -
How to print the error records and success records in bdc
how to print the number of error records and success records in bdc
hai,
plz refer this program,
Z_130399130271_A
REPORT Z_130399130271_A
NO STANDARD PAGE HEADING LINE-SIZE 325.
*INCLUDE YVALIDATE.
*include bdcrecx1.
INCLUDE YINCLUDE399.
DATA ITAB LIKE TABLE OF FILE_TABLE WITH HEADER LINE.
PARAMETERS: DATASET(132) LOWER CASE.
DATA : RC TYPE I,
ERR(40) TYPE C,
SUCCESSCNT TYPE I VALUE 0,
FAILCOUNT TYPE I VALUE 0.
DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
If it is nessesary to change the data section use the rules:
1.) Each definition of a field exists of two lines
2.) The first line shows exactly the comment
'* data element: ' followed with the data element
which describes the field.
If you don't have a data element use the
comment without a data element name
3.) The second line shows the fieldname of the
structure, the fieldname must consist of
a fieldname and optional the character '_' and
three numbers and the field length in brackets
4.) Each field must be type C.
Generated data section with specific formatting - DO NOT CHANGE ***
DATA: BEGIN OF RECORD OCCURS 0,
data element: LIF16
LIFNR_001(016),
data element: KTOKK
KTOKK_002(004),
data element: ANRED
ANRED_003(015),
data element: NAME1_GP
NAME1_004(035),
data element: SORTL
SORTL_005(010),
data element: STRAS_GP
STRAS_006(035),
data element: PFACH
PFACH_007(010),
data element: ORT01_GP
ORT01_008(035),
data element: ORT02_GP
ORT02_009(035),
data element: LAND1_GP
LAND1_010(003),
data element: REGIO
REGIO_011(003),
data element: SPRAS
SPRAS_012(002),
data element: TELF1
TELF1_013(016),
data element: TELF2
TELF2_014(016),
data element: BANKS
BANKS_01_015(003),
data element: BANKK
BANKL_01_016(015),
data element: BANKN
BANKN_01_017(018),
END OF RECORD.
DATA: BEGIN OF ERRORITAB OCCURS 0,
LIFNR_001 LIKE LFA1-LIFNR,
KTOKK_002 LIKE LFA1-KTOKK,
ANRED_003 LIKE LFA1-ANRED,
NAME1_004 LIKE LFA1-NAME1,
SORTL_005 LIKE LFA1-SORTL,
STRAS_006 LIKE LFA1-STRAS,
PFACH_007 LIKE LFA1-PFACH,
ORT01_008 LIKE LFA1-ORT01,
ORT02_009 LIKE LFA1-ORT02,
LAND1_010 LIKE LFA1-LAND1,
REGIO_011 LIKE LFA1-REGIO,
SPRAS_012 LIKE LFA1-SPRAS,
TELF1_013 LIKE LFA1-TELF1,
TELF2_014 LIKE LFA1-TELF2,
BANKS_01_015 LIKE LFBK-BANKS,
BANKL_01_016 LIKE LFBK-BANKL,
BANKN_01_017 LIKE LFBK-BANKN,
ERRORMSG(60) TYPE C,
SERIAL TYPE I VALUE '1',
END OF ERRORITAB.
End generated data section ***
AT SELECTION-SCREEN ON VALUE-REQUEST FOR DATASET.
CALL FUNCTION 'TMP_GUI_FILE_OPEN_DIALOG'
EXPORTING
WINDOW_TITLE = 'select a file '
DEFAULT_EXTENSION = 'TXT'
DEFAULT_FILENAME = 'ASSIGN5.TXT'
FILE_FILTER =
INIT_DIRECTORY =
MULTISELECTION =
IMPORTING
RC =
TABLES
FILE_TABLE = ITAB
EXCEPTIONS
CNTL_ERROR = 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.
READ TABLE ITAB INDEX 1.
DATASET = ITAB-FILENAME.
WRITE DATASET.
START-OF-SELECTION.
*perform open_dataset using dataset.
*perform open_group.
DATA T TYPE STRING.
T = DATASET.
IF T EQ ' '.
MESSAGE E110(ZX).
ENDIF.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = T
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = RECORD
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 RECORD.
CLEAR RC.
CLEAR ERR.
*read dataset dataset into record.
IF SY-SUBRC <> 0. EXIT. ENDIF.
RECORD-KTOKK_002 = '0001'.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RF02K-LIFNR'
RECORD-LIFNR_001.
PERFORM BDC_FIELD USING 'RF02K-KTOKK'
RECORD-KTOKK_002.
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-ANRED'
RECORD-ANRED_003.
PERFORM BDC_FIELD USING 'LFA1-NAME1'
RECORD-NAME1_004.
PERFORM BDC_FIELD USING 'LFA1-SORTL'
RECORD-SORTL_005.
PERFORM BDC_FIELD USING 'LFA1-STRAS'
RECORD-STRAS_006.
PERFORM BDC_FIELD USING 'LFA1-PFACH'
RECORD-PFACH_007.
PERFORM BDC_FIELD USING 'LFA1-ORT01'
RECORD-ORT01_008.
PERFORM BDC_FIELD USING 'LFA1-ORT02'
RECORD-ORT02_009.
PERFORM BDC_FIELD USING 'LFA1-LAND1'
RECORD-LAND1_010.
PERFORM BDC_FIELD USING 'LFA1-REGIO'
RECORD-REGIO_011.
PERFORM BDC_FIELD USING 'LFA1-SPRAS'
RECORD-SPRAS_012.
PERFORM BDC_FIELD USING 'LFA1-TELF1'
RECORD-TELF1_013.
PERFORM BDC_FIELD USING 'LFA1-TELF2'
RECORD-TELF2_014.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0120'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=VW'.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'LFBK-BANKN(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_FIELD USING 'LFBK-BANKS(01)'
RECORD-BANKS_01_015.
PERFORM BDC_FIELD USING 'LFBK-BANKL(01)'
RECORD-BANKL_01_016.
PERFORM BDC_FIELD USING 'LFBK-BANKN(01)'
RECORD-BANKN_01_017.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=UPDA'.
PERFORM BDC_TRANSACTION USING 'XK01' CHANGING ERR RC.
DATA: SERIAL TYPE I VALUE 1.
IF RC <> 0.
FAILCOUNT = FAILCOUNT + 1.
CLEAR ERRORITAB.
ERRORITAB-SERIAL = SERIAL.
ERRORITAB-LIFNR_001 = RECORD-LIFNR_001.
ERRORITAB-KTOKK_002 = RECORD-KTOKK_002.
ERRORITAB-ANRED_003 = RECORD-ANRED_003.
ERRORITAB-NAME1_004 = RECORD-NAME1_004.
ERRORITAB-SORTL_005 = RECORD-SORTL_005.
ERRORITAB-STRAS_006 = RECORD-STRAS_006.
ERRORITAB-PFACH_007 = RECORD-PFACH_007.
ERRORITAB-ORT01_008 = RECORD-ORT01_008.
ERRORITAB-ORT02_009 = RECORD-ORT02_009.
ERRORITAB-LAND1_010 = RECORD-LAND1_010.
ERRORITAB-REGIO_011 = RECORD-REGIO_011.
ERRORITAB-SPRAS_012 = RECORD-SPRAS_012.
ERRORITAB-TELF1_013 = RECORD-TELF1_013.
ERRORITAB-TELF2_014 = RECORD-TELF2_014.
ERRORITAB-BANKS_01_015 = RECORD-BANKS_01_015.
ERRORITAB-BANKL_01_016 = RECORD-BANKL_01_016.
ERRORITAB-BANKN_01_017 = RECORD-BANKN_01_017.
ERRORITAB-ERRORMSG = ERR.
SERIAL = SERIAL + 1.
APPEND ERRORITAB.
MODIFY RECORD TRANSPORTING KTOKK_002.
DELETE RECORD WHERE KTOKK_002 = '0001'.
ELSE.
SUCCESSCNT = SUCCESSCNT + 1.
ENDIF.
ENDLOOP.
display output********************************************************
SKIP.
FORMAT COLOR 5 INTENSIFIED OFF.
WRITE:/ 'No. of records successfully uploaded: '.
FORMAT COLOR 4 INTENSIFIED OFF.
WRITE: SUCCESSCNT.
Displaying the success table******************************************
IF SUCCESSCNT <> 0.
SKIP.
FORMAT COLOR 4 INTENSIFIED OFF.
WRITE:/ 'Successful Records'.
FORMAT COLOR 7 INTENSIFIED ON.
WRITE:/(261) SY-ULINE,
/ SY-VLINE,
'S.NO', 007 SY-VLINE,
'VENDOR ACC.NUM', 023 SY-VLINE,
'VENDOR ACC GROUP', 041 SY-VLINE,
'TITLE', 048 SY-VLINE,
'VENDOR NAME', 064 SY-VLINE,
'SORT FIELD', 076 SY-VLINE,
'HOUSE NO.& STREET', 101 SY-VLINE,
'PO.BOX NO', 116 SY-VLINE,
'CITY', 129 SY-VLINE,
'DISTRICT', 141 SY-VLINE,
'COUNTRY KEY', 156 SY-VLINE,
'REGION', 166 SY-VLINE,
'LANGUAGE KEY', 180 SY-VLINE,
'TELEPHONE NO 1', 196 SY-VLINE,
'TELEPHONE NO 2', 213 SY-VLINE,
'BANK COUNTRY KEY', 231 SY-VLINE,
'BANK KEY', 241 SY-VLINE,
'BANK ACC.NO', 261 SY-VLINE,
/1(261) SY-ULINE.
FORMAT COLOR 4 INTENSIFIED ON.
SERIAL = 1.
SORT RECORD BY LIFNR_001.
LOOP AT RECORD.
WRITE:/ SY-VLINE,
SERIAL LEFT-JUSTIFIED, 007 SY-VLINE,
RECORD-LIFNR_001(016), 023 SY-VLINE,
RECORD-KTOKK_002(004), 041 SY-VLINE,
RECORD-ANRED_003(015), 048 SY-VLINE,
RECORD-NAME1_004(035), 064 SY-VLINE,
RECORD-SORTL_005(010), 076 SY-VLINE,
RECORD-STRAS_006(035), 101 SY-VLINE,
RECORD-PFACH_007(010), 116 SY-VLINE,
RECORD-ORT01_008(035), 129 SY-VLINE,
RECORD-ORT02_009(035), 141 SY-VLINE,
RECORD-LAND1_010(003), 156 SY-VLINE,
RECORD-REGIO_011(003), 166 SY-VLINE,
RECORD-SPRAS_012(002), 180 SY-VLINE,
RECORD-TELF1_013(016), 196 SY-VLINE,
RECORD-TELF2_014(016), 213 SY-VLINE,
RECORD-BANKS_01_015(003), 231 SY-VLINE,
RECORD-BANKL_01_016(015), 241 SY-VLINE,
RECORD-BANKN_01_017(018), 261 SY-VLINE.
WRITE:/(261) SY-ULINE.
SERIAL = SERIAL + 1.
ENDLOOP.
WRITE:/1(261) SY-ULINE.
ENDIF.
SKIP.
FORMAT COLOR 5 INTENSIFIED OFF.
WRITE:/ 'No. of records not uploaded: '.
FORMAT COLOR 4 INTENSIFIED OFF.
WRITE: FAILCOUNT.
*Displaying the error table
IF FAILCOUNT <> 0.
SKIP.
FORMAT COLOR 4 INTENSIFIED OFF.
WRITE:/(320) SY-ULINE,
'Error Records'.
FORMAT COLOR 7 INTENSIFIED ON.
WRITE:/ SY-ULINE, SY-VLINE,
'S.NO', 007 SY-VLINE,
'VENDOR ACC.NUM', 023 SY-VLINE,
'VENDOR ACC GROUP', 041 SY-VLINE,
'TITLE', 048 SY-VLINE,
'VENDOR NAME', 064 SY-VLINE,
'SORT FIELD', 076 SY-VLINE,
'HOUSE NO.& STREET', 101 SY-VLINE,
'PO.BOX NO', 116 SY-VLINE,
'CITY', 129 SY-VLINE,
'DISTRICT', 141 SY-VLINE,
'COUNTRY KEY', 156 SY-VLINE,
'REGION', 166 SY-VLINE,
'LANGUAGE KEY', 180 SY-VLINE,
'TELEPHONE NO 1', 196 SY-VLINE,
'TELEPHONE NO 2', 213 SY-VLINE,
'BANK COUNTRY KEY', 231 SY-VLINE,
'BANK KEY', 241 SY-VLINE,
'BANK ACC.NO', 261 SY-VLINE,
'ERROR MESSAGE', 320 SY-VLINE.
WRITE:/(320) SY-ULINE.
FORMAT COLOR 4 INTENSIFIED ON.
SORT ERRORITAB BY LIFNR_001.
LOOP AT ERRORITAB.
WRITE:/ SY-VLINE,
ERRORITAB-SERIAL LEFT-JUSTIFIED, 007 SY-VLINE,
ERRORITAB-LIFNR_001 , 023 SY-VLINE,
ERRORITAB-KTOKK_002, 041 SY-VLINE,
ERRORITAB-ANRED_003, 048 SY-VLINE,
ERRORITAB-NAME1_004, 064 SY-VLINE,
ERRORITAB-SORTL_005, 076 SY-VLINE,
ERRORITAB-STRAS_006, 101 SY-VLINE,
ERRORITAB-PFACH_007, 116 SY-VLINE,
ERRORITAB-ORT01_008, 129 SY-VLINE,
ERRORITAB-ORT02_009, 141 SY-VLINE,
ERRORITAB-LAND1_010, 156 SY-VLINE,
ERRORITAB-REGIO_011, 166 SY-VLINE,
ERRORITAB-SPRAS_012, 180 SY-VLINE,
ERRORITAB-TELF1_013, 196 SY-VLINE,
ERRORITAB-TELF2_014, 213 SY-VLINE,
ERRORITAB-BANKS_01_015, 231 SY-VLINE,
ERRORITAB-BANKL_01_016, 241 SY-VLINE,
ERRORITAB-BANKN_01_017, 261 SY-VLINE,
ERRORITAB-ERRORMSG, 320 SY-VLINE.
WRITE:/(320) SY-ULINE.
ENDLOOP.
WRITE:/ SY-ULINE.
ENDIF.
hope this ll help you..
regards,
prema.A -
pls tell the differnce b'w lsmw and bdc . when we use bdc and when we use lsmw .for uploading master data (ex: cusomer data ) in tosap which method s u prrefer out of thhse 4
method scall transaction
session input
lsmw bapi whic one is the better one
when use session method and when we use call tran sac
which method is better for bacjground processing call tran s or session method . pls tell
the reason
answres as soon as possibleHi,
LSMW IS JUST A TOOL TO GET THE DATA FROM A LEGACY SYSTEM.
IN BDC WE HAVE 2 WRITE THE CODE AND CALL THE REQUIRED METHOD
THATS IT. IN FUNCTIONALITY PERSPECTIVE THERE IS NO
DIFFERENCE.
BDC is Batch Data Communication. It is basically a program
either generated by SAP after a recording or programmed by a
abaper.Its like running the transaction manually but all the
data is populated on the screens automatically.It is a
little complex when the screens contain table controls.
LSMW is legacy system migration workbench is a more user-
friendly tool thru which one can do the same as a BDC. One
just has to follow some 14 steps, click buttons and the data
is set to be uploaded ….LSMW offer you 4 ways to import data
into SAP, they are BDC, Direct Input, BAPI(BO), IDOC.
To spell out the differences in detail:
look at the below threads to know more
Diff between LSmw and Bdc
Diff. between LSMW & BDC
Regards
Sudheer -
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 -
What is BAPI?How to create a BAPI? Difference b/w BAPI and BDC
Hi all,
Can some one help me regarding...
What is an BAPI?where it is used?
How to create a BAPI?
What is the difference between BAPI and BDC Program?
Iam in Initial stage regarding BAPI concept.
Please respond me soon.
Thanks,
LeeHI,
Here it is:
BAPI Programming Guide
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
BAPI User Guide
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://ifr.sap.com/catalog/query.asp
STEP BY STEP for BAPI
http://sap-img.com/abap/bapi-step-by-step-guidance.htm
<b>DIFFERENCE between BAPI and BDC</b>
BDC is traditional way of coding the transactions for uploading the legacy data, Sap is changing all transactions to Object oriented programming. Since BAPI is Object based and supports all the new transactions it is preffered over BDC. More over BAPI's process data faster than BDC.
BAPI is a SAP-supplied function module with a defined interface, which allows you to interact with various business objects. SAP guarantees the integrity of your database for anything updated using a BAPI. BDC is a method of driving screens programatically, for updating SAP data. BAPIs are generally faster than BDCs.
A BAPI is faster because it is updating the DB "directly". Whereas BDC with call
transaction goes through the whole screen sequence like any user would do, simply put, fills screens.
However - there is not always a BAPI for a particular transaction and not all functions that are performed by a transaction can be done by a BAPI. BDCs produce error sessions which can be processed by the user, while BAPIs don't.
First choose the BAPI ,if there is no BAPI go for BDC.
why BAPI first not BDC.
SAP comes up with Change in Version, so each and every time they will change the screens/number etc.
so you have to change your BDC programs accordingly.
and also Most of the Latest versions transactions are Enjoy Transaction. they will not support BDC's in Background.
But Using BAPI's No such disadvantages.
A BAPI is faster because it is updating the DB "directly" through ABAP code.
A BDC with call transaction goes through the whole screen sequence like any user would do, simply put, it is filling screens.
Actually it depends on your requirement but BAPI is more effective as it is standard function module to update SAP databases rather than BDC.
using bdc over bapi has advantages and also disadvantages
advantages:
1. using bdc we can upload data into database tables using 2 ways
1. foreground -
means that user interaction is there for each and every record.
2. back ground -
no user interaction and tasks are done automatically.
using these two options is one of the greatest advantage over bapi.
2. in bdc call transaction method we can control the display of screen resolution which is not possible with bapi's
3. bdc is generally used for transferring of large amount of data than bapi's
4.session method of bdc allows us to place data directly in application server and then finally transfered into sap database tables
disadvantages:
1.bdc is only used for sap to sap system data transferring
2. bapis's generally works more faster than bdc's
3. using bapis we can connect to remote systems and also to non sap systems.
if useful reward some points.
A BAPI is a method of a SAP Business Object. BAPI enables SAP and third party applications to interact and integrate
with each other at the Business Object / Process level.
Check this link to know more about BAPI.
http://www.sapgenie.com/abap/bapi/example.htm
http://sappoint.com/abap/
Batch Data Communication (BDC) is the oldest batch interfacing technique that SAP provided since the early versions of R/3. BDC is not a
typical integration tool, in the sense that, it can be only be used for uploading data into R/3 and so it is not bi-directional.
BDC works on the principle of simulating user input for transactional screen, via an ABAP program. Typically the input comes in the form
of a flat file. The ABAP program reads this file and formats the input data screen by screen into an internal table (BDCDATA). The
transaction is then started using this internal table as the input and executed in the background.
In Call Transaction, the transactions are triggered at the time of processing itself and so the ABAP program must do the error handling.
It can also be used for real-time interfaces and custom error handling & logging features. .
To know more about BDC,
check the link.
http://sappoint.com/abap/
Main differences are...
In case of bdc data transfer takes place from flat file into sap system ie the file existing in sap system to sap sytem
where is bapi's r remotly enabled function modules which are assigned to some business objects n used to transfer the data between different business partners who are using different systems other than sap.
not only that...
when you plan to upgrade your system version then bdc willnot support those upgradations where as bapi's will support.
<b><REMOVED BY MODERATOR></b>
Manish
Message was edited by:
Alvaro Tejada Galindo -
How to use BDC recording in Workflow.
Hi experts,
Anyone kindly help me for the following case...
If sales order gets created, mail has to be sent to every user. Also for that sales order, delivery should be created in background and again mail has to be sent to all users...
I m clear with sending mail. but i m struggled while creating delivery in background. i dont know how to do this. I hav an idea that it can be created using BDC recording and this recording program can be called in our method which is created in our business object.
How to create a single BDC recording to create sales order as well as creating delivery in background... Is it possible to do like this. Or is there any function module to create delivery in background with respect to sales order number?
kindly give some suggestion and step by step procedure to do this...
Thanks in advance...
Regards
Raaams...Hi Ram
Check this BAPI once BAPI_OUTB_DELIVERY_CREATE_SLS.
If this doesnt help do BDC recording and create a FM with the help of BDC recording. Please note that Call Transaction should happen in background otherwise your BDC wont work.
Please revert back if you have any queries.
Regards,
Gautham Paspala -
BDC Recording - Make a field required
Dear Experts,
We are using a BDC recording to call MIRO and send it to an agent via workflow using a z-table.
The customer wants the baseline date on this recording grey'ed out and the business area field required.
The baseline date is on the "PAYMENT" tab of MIRO and Business Area on the "DEATILS" tab.
I have created a screen and transaction variant a year ago and assigned it to the t-code, but now with the BDC calling MIRO for the INVOICE Scanning project, these fields can be overwritten and left out.
How can I do it via BDC?
Transnet Freight Rail
Edited by: Annelize Meyer on Mar 17, 2010 1:39 PMYou could create a on-submit pl/sql validation on 'p2_estim_val'. The validation code will return a failure if the value of p2_estim_val is not specified if the value of p2_reason_to_scap_sell is non-null
The validation code could be something as simple as
if not :p2_reason_to_scap_sell is null and :p2_estim_val is null then
return 'A value is required for p2_estim_val';
end if;varad -
Bdc recording for XK02 to change vendor address
Dear All,
I am trying to create a bdc recording for XK02 transaction to change Address fields ( Name1 ... Name4 , House num1, street , House number supplement , city , State , Postal code etc .)
When i open the transaction XK02 by clicking address, I see all the above fields.
But when i try to create a recording for the same XK02 transaction through SM35, I see House no & Street as one field and House number supplement missing.
Please let me know how can i update House num1 , Street and House num supplement seperately.
Thanks,
HimaPlease chekc you entry in Country & Region.
The region should belong to the country.
Regards
Bhavesh MIstry -
hi
i have been asked to do bdc recording for the transaction mek1 through the call transaction method.can u people plss tell me how to go abt it?Hi,
You can Record using the Tcode SHDB and format the program and use.
You can use VK11 tcode also which is similar to MEK1.
see the sample code for VK11 ; You can change as per your requirement.
report ZSDBDCP_PRICING no standard page heading
line-size 255.
Includes
include zbdcrecx1.
Internal Tables
*--Internal Table To hold condition records data from flat file.
Data: begin of it_pricing occurs 0,
key(4),
f1(4),
f2(4),
f3(2),
f4(18),
f5(16),
end of it_pricing.
*--Internal Table To hold condition records header .
data : begin of it_header occurs 0,
key(4),
f1(4),
f2(4),
f3(2),
end of it_header.
*--Internal Table To hold condition records details .
data : begin of it_details occurs 0,
key(4),
f4(18),
f5(16),
end of it_details.
data : v_sno(2),
v_rows type i,
v_fname(40).
start-of-selection.
refresh : it_pricing,it_header,it_details.
clear : it_pricing,it_header,it_details.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\WINDOWS\Desktop\pricing.txt'
FILETYPE = 'DAT'
TABLES
DATA_TAB = it_pricing
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
WRITE : / 'Condition Records ', P_FNAME, ' on ', SY-DATUM.
OPEN DATASET P_FNAME FOR INPUT IN TEXT MODE.
if sy-subrc ne 0.
write : / 'File could not be uploaded.. Check file name.'.
stop.
endif.
CLEAR : it_pricing[], it_pricing.
DO.
READ DATASET P_FNAME INTO V_STR.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
write v_str.
translate v_str using '#/'.
SPLIT V_STR AT ',' INTO it_pricing-key
it_pricing-F1 it_pricing-F2 it_pricing-F3
it_pricing-F4 it_pricing-F5 .
APPEND it_pricing.
CLEAR it_pricing.
ENDDO.
IF it_pricing[] IS INITIAL.
WRITE : / 'No data found to upload'.
STOP.
ENDIF.
loop at it_pricing.
At new key.
read table it_pricing index sy-tabix.
move-corresponding it_pricing to it_header.
append it_header.
clear it_header.
endat.
move-corresponding it_pricing to it_details.
append it_details.
clear it_details.
endloop.
perform open_group.
v_rows = sy-srows - 8.
loop at it_header.
perform bdc_dynpro using 'SAPMV13A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RV13A-KSCHL'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RV13A-KSCHL'
it_header-f1.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_CURSOR'
'KONP-KBETR(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'KOMG-VKORG'
it_header-f2.
perform bdc_field using 'KOMG-VTWEG'
it_header-f3.
**Table Control
v_sno = 0.
loop at it_details where key eq it_header-key.
v_sno = v_sno + 1.
clear v_fname.
CONCATENATE 'KOMG-MATNR(' V_SNO ')' INTO V_FNAME.
perform bdc_field using v_fname
it_details-f4.
clear v_fname.
CONCATENATE 'KONP-KBETR(' V_SNO ')' INTO V_FNAME.
perform bdc_field using v_fname
it_details-f5.
if v_sno eq v_rows.
v_sno = 0.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'=P+'.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
endif.
endloop.
*--Save
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_transaction using 'VK11'.
endloop.
perform close_group.
Regards,
Anji -
Bdc recording for trancastion ME01
Hi,
Can u help me in BDC recording for transaction 'ME01' .
I have no idea for transaction 'ME01' & here i like to know how to handle table ctr during bdc recording?
give sample code if possible.
ThanksSee the sample attached code for ME51 using table control.
similarly record the same for ME01 and copy the TC logic from this.
REPORT zmm_pr_upload_mat
NO STANDARD PAGE HEADING
LINE-SIZE 255.
Standard Include for Selection Screen
INCLUDE bdcrecx1.
Internal Table for Upload Data
DATA: BEGIN OF i_pr OCCURS 0,
Header Screen
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
lpein(001), " Category of Del Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
Item Details
matnr(018), " Material No
menge(017), " Quantity
badat(010),
frgdt(010),
preis(014), " Valuation Price
waers(005), " Currency
peinh(005),
wepos(001),
repos(001),
sakto(010), " GL Account
kostl(010), " Cost Center
bnfpo(005),
END OF i_pr.
Internal Table for header Data
DATA: BEGIN OF it_header OCCURS 0,
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
END OF it_header.
Internal Table for Item Data
DATA: BEGIN OF it_item OCCURS 0,
sno(3), " SNo
matnr(018), " Material No
menge(017), " Quantity
preis(014), " Valuation Price
sakto(010), " GL Account
kostl(010), " Cost Center
END OF it_item.
Data Variables & Constants
CONSTANTS : c_x VALUE 'X'. " Flag
DATA : v_l(2), " Counter
v_rowno(5), " Row No
v_2(2), " Counter
v_rows LIKE sy-srows, " Rows in TC
v_field(45). " String
Parameters
PARAMETERS: p_file LIKE ibipparms-path. " Filename
At selection-screen on Value Request for file Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Get the F4 Values for the File
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
Start of Selection
START-OF-SELECTION.
Open the BDC Session
PERFORM open_group.
Upload the File into internal Table
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = i_pr
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SORT i_pr BY sno.
LOOP AT i_pr.
MOVE-CORRESPONDING i_pr TO it_item.
APPEND it_item.
CLEAR it_item.
AT END OF sno.
READ TABLE i_pr INDEX sy-tabix.
MOVE-CORRESPONDING i_pr TO it_header.
APPEND it_header.
CLEAR it_header.
ENDAT.
ENDLOOP.
SORT it_header BY sno.
SORT it_item BY sno.
v_rows = sy-srows - 6.
Upload the Data from Internal Table
LOOP AT it_header.
Header Data
PERFORM bdc_dynpro USING 'SAPMM06B' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-BEDNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-BSART'
it_header-bsart.
PERFORM bdc_field USING 'RM06B-EPSTP'
it_header-epstp.
PERFORM bdc_field USING 'EBAN-KNTTP'
it_header-knttp.
PERFORM bdc_field USING 'RM06B-EEIND'
it_header-eeind.
PERFORM bdc_field USING 'RM06B-LPEIN'
it_header-lpein.
PERFORM bdc_field USING 'EBAN-WERKS'
it_header-werks.
PERFORM bdc_field USING 'EBAN-LGORT'
it_header-lgort.
PERFORM bdc_field USING 'EBAN-EKGRP'
it_header-ekgrp.
PERFORM bdc_field USING 'EBAN-MATKL'
it_header-matkl.
PERFORM bdc_field USING 'EBAN-BEDNR'
it_header-bednr.
PERFORM bdc_field USING 'EBAN-AFNAM'
it_header-afnam.
Item Details
v_l = 0.
To add no. of rows
v_2 = 0 .
As the screen is showing 13 rows defaulted to 130
v_rowno = 130 .
LOOP AT it_item WHERE sno = it_header-sno.
v_l = v_l + 1.
IF v_l = 14 .
IF v_2 = 12 .
v_2 = 12 .
v_l = 2 .
From second time onwards it is displaying 12 rows only
v_rowno = v_rowno + 120 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ELSE.
V_2 initialized to 12 for second screen purpose
v_2 = 12 .
v_l = 2 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno .
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ENDIF.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CLEAR v_field.
CONCATENATE 'EBAN-MATNR(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-matnr.
CLEAR v_field.
CONCATENATE 'EBAN-MENGE(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-menge.
PERFORM bdc_dynpro USING 'SAPMM06B' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-PREIS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-PREIS'
it_item-preis.
PERFORM bdc_dynpro USING 'SAPMM06B' '0505'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBKN-SAKTO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'EBKN-SAKTO'
it_item-sakto.
Cost Center
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-KOSTL'
it_item-kostl.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
Call The Transaction
PERFORM bdc_transaction USING 'ME51'.
ENDLOOP.
Close the BDC Session
PERFORM close_group.
reward if useful
Regards
Vasu
Maybe you are looking for
-
How To Get GP Process Parameters in a Webdynpro Application runtime
Hi , Iu2019 ll hope you can help me to solve my problem with GP process. Iu2019 m trying to get GP process parameters from a Webdynpro application. I have to get parameters during the process runtime in every step of the process using a webdynpro app
-
In second stage dealer po BED,ECES&HECESS value not coming zero
Dear MM Experts, I am doing second stage dealer process. As per my knowledge in the purchase order the Excise duties should come with zero value but in my case it is calculating automatically. How to maintain this ? Please help me out . Thanks & Rega
-
Partial payment of customer for TDS
Hi, We have a customer from whom the payment will be recieved in the next financial year.But we have received the TDS certificate from him & therefore need to pass an entry for TDS in this financial year as it needs to be paid this year.Please explai
-
Slow P2 Import Problem (20 minutes!)
I've tried all sorts of scenarios and configurations in terms of how I get the P2 Data onto my hardrive, and then import it into FCP (IE direct from camera, direct from p2 store, p2 store to firewire to internal scratch disc etc) but when using the "
-
Parfocal-ness of the Sony 28-135 G Lens
The lens is of course not parfocal, not optically / mechanically. The camera (or lens itself) constantly corrects the lens groups arrangement to make it "parfocal". In other words, without electronics the lens is not parfocal. This is also the reason