Conversion Reconciliation in BDC?
Hi experts,
May I know some basic ideas about
1.High Data Volume.
2.Conversion Reconciliation.
3.Reconciliation report.
Thanks,
Sakthi.C
A function module which convert the internal representation of a field into its external representation(Depending upon the user settings) and vice versa.
Example :
data : auart like vbak-auart.
auart = 'TA'.
CALL FUNCTION 'CONVERSION_EXIT_AUART_INPUT'
EXPORTING
input = auart
IMPORTING
OUTPUT = auart.
write:/ auart.
reverse it with 'CONVERSION_EXIT_AUART_OUTPUT'
Check the below link :
http://help.sap.com/saphelp_nw2004s/helpdata/en/07/d63a68db9110459d63c495b16f522e/frameset.htm
Thanks
Seshu
Similar Messages
-
Conversions using SHDB (BDC) vs. HR_INFOTYPE_OPERATION
We've been asked to use SHDB (BDC) for our conversions unless we can use LSMW. However, some of our conversions are so simple it seems like a waste to use BDC. Wherever infotypes are used in conversions why can't I just do the following (pseudocode)
OPEN input-file INTO itab.
LOOP AT itab
ENQUEUE( )
HR_INFOTYPE_OPERATION(...., oper = 'INS'|'MOD'.)
DEQUEUE( )
ENDLOOP
Any reasons why I wouldn't do this? I've written one conversion like this already and at least in unit testing it works fine.If it's working for you then that's good enough for me
Seriously, though, BDC is apparently doing a screen-scraping technique which has got to be process-intensive. Besides, my understanding is the that the IT screens themselves use these function modules so if it's good enough for that then it should be fine for conversions. -
Manual Bank Reconciliation(FF67) BDC / LSMW Required
Hi,
Please help me out i am stuck in making a BDC or LSMW for Manual Bank Reconciliation using T-Code FF67. I require the code for it...
Regards,
Abhishek.Initially, goto SHDB & record the transaction FF67. U need to fill up all the required data fields and when at last u save this, a sample BDC code gets generated. U can use this sample code to write ur program.
Hope U can do this & resolve the problem.
Pl. award points. -
Data Conversion mapping u0096 BDC
I am coming across a scenario, as we are working on conversions, we are getting data from some 3rd party system into SAP and we need to update Infotypes using uploads.
Right now we are facing problem, which they have the separate data I mean their naming standard like they have different codes 01, 02, 03 and in SAP we have different ones.
What are the different ways that we map and validate our data before uploading it into SAP? They give us a master file extract from their 3rd party system and they want us to upload into SAP. In Sap we might have lot of difference of fields and value, which we might need to make sure and validate before we upload it in to SAP.
Could you please write your suggestions/inputs, how I can achieve this task.
ThanksHi,
You can also pre-populate an internal table with all the mapping values. For example: if the input value is 01, the corresponding SAP value = 'One'.
So you create an internal table with two fields, first with the legacy values and second with SAP values.
Then when you are looping through the internal table of the input file read the above internal table with key = input file value and then use the corresponding value.
And if it is an interface (not conversion) and the values keep changing, they I would suggest you t maintian a Ztable.
Good luck.
Venu -
Vendor Conversion (LSMW or BDC)
Hello,
I want to know what is the best way to convert the Vendor Master(around 60000) from the Legacy to SAP.
There will be new fields to be filled up and then some old fields(Porg,CC,etc) from the legacy might need a logic(table) to convert.
Should I use LSMW or BDC and can I process it based on a file.?
How do we do it?
Recommendation would be appreciated.
ThanksHi,
For uploading the data from legacy system to SAP sys preference should be like this...
1) LSMW
2) BAPI
3) BDC
regards,
paras -
Difference between Conversion progs and INTERFACES
Hi plz tell me ...
whats the difference between Conversion progs and Interfaces in ABAP .
wat are conversion progs ( exmple) and interfaces ( exmple ) ?
thnks in advance....Hi
CONVERSION programs are the ones which have one time usage, usually when a legacy system is being replaced by a system like SAP, then the data has to be mapped from the legacy system to SAP system. Here the data to be converted is given on a flat file & is uploaded to SAP tables mostly using LSMW only. Conversions programs are BDC,BAPI and LSMW programs in which you upload all the related tables from the flat files.Those are one time programs.
Interface programs are those programs in which you fetch the data from the application server and process on theose data.These are helpful when you have to run any program in the backgroup when the presentation server is not working.
INTERFACE programs are the ones which are run at regular intervals, say weekly, monthly or even daily. Here the legacy system continues to co-exist along with SAP system, the legacy system might be useful for certain functionalities but the data might have to run thru SAP transactions for complex data maintenance at regular intervals.
In Simple
CONVERSIONS : Converting Legacy System DATA into a flat file
INTERFACES : Converting Flat File into SAP
Conversion Program
http://help.sap.com/saphelp_erp2005/helpdata/en/d3/a65a14e96911d1b401006094b944c8/frameset.htm
Interface Program
http://help.sap.com/saphelp_erp2005/helpdata/en/64/be5b4150b38147e10000000a1550b0/frameset.htm
<b>Reward if usefull</b> -
Key Configuration differences between SAP and ORACLE Financials
Hello,
After spending good 7 years in SAP related projects recently I started working in ORACLE Applications. I used to be an ORACLE programmer years back. To my surprise the same <b><u>ORACLE Forms</u></b> are still very much the heart of the ORACLE UI.
Then I thought what will be the key differences between ORACLE and SAP in terms of configuration elements. While I know a bunch of configuraion items in SAP , I am not sure about the same in ORACLE world. I am not even sure some of the configuration items that are available in SAP exists in ORACLE.
Does anyone know both sides of the coin ? The terminology and design ?
SAP has
Client,Company code, Business area, Functional Area, GL, Posting Key, Document Type.
I am trying to get the details of the equivalents of these in ORACLE.
Does anyone know it ?
For e.g , when you post to <b>AP</b> or <b>AR</b> in <b>SAP</b> , <b>GL</b> is updated automatically. In <b>ORACLE</b> you post to a <b>AP Book</b> or <b>AR Book</b> then Run a batch to move them to <b><u>GL Book</u></b>.
ORACLE uses SQLLoader to load data . You can write a PL SQL and update the tables directly, which is not the case in SAP. For dataloads and conversions, SAP uses BDC's ( though XI can be used but its slow).For ORACLE its the good old SQL and PlSQL combo.
What are the equivalents of the configuration elements in ORACLE world ?
Also what are the major differences between these two in terms of designing a financial system.
Does any one know ?Genie,
I agree that a case is made on how well these two ERPs solve the day to day tasks before a company chooses one of these two. But my question is aimed at finance to begin with. You are going to need a general ledger for any company or government regardless of ERP. And how well you can drive the ledger to map your business is the key here.
The way ledger is built is around a business area ,company or country and is very tighly designed in SAP. I would like to know if there is any equivalent of the configuration items in ORACLE. I am more interested in terminology of ORACLE.
For example ,
<u><b><u><b>SAP ====> ORACLE</b></u>
<u><b>GL ==> Book In ORACLE</b></u>
<b><u>Document Number ===> Invoice Number</u></b>
<b><u>Posting Period in SAP ==> Posting period In ORACLE</b></u></u></b>
Most of the terms are finance terms , so they are common ( eg. an account number is an account number in ORACLE and SAP ) between two systems. I am interested in any specific thing that is available in ORACLE but not in SAP and vice verse.
thanks for the link you have provided.
Its very useful. -
Hi all,
I am new to ABAP.
Can anyone explain what is the role of ABAP'er with SD and MM with simple examples ?
thanks in advance
raghulActually to understand the relation you need to know what is sap modules and what is abap??
ERP package is a collection of various integrated application areas known as modules like SD(Sales), MM (Material Management) etc/.
Now SAP gave these modules in a generic form to all of its customer. One need to customized this generic form of SAP according to their business requirements. Now, as these generic form of modules written in ABAP language, so the customizing are done using abap language only through various reports(R), interface(I), conversion (C), Enhancements (E), Forms (F) which is known as RICEF work.
So one abapers role will be customizing a new sap instance ( Implementation) or modifying already existing sap instance (Upgrade, production supprot) or migration from lower version to higher version ( as for example sap 4.6 to ECC 6.0) .
Reports(R) contains: Classical report, alv report.
Interface ( i) cvontains : Idoc, ABAP Proxy, RFC.
Conversion ( C) contains : BDC, BAPI, LSMW, CAT Scripts
Enhancements(E) contains: User exits, customer exits, BADI, Enhancements points and sports, Carnel BADI.
Forms(F) Contains: Sap scripts, Smartforms, Adobe Forms etc. -
Question on F.R.I.C.E.and test scripts
hi all,
i am knew to SAP and i heard the word FRICE from the people who are working in implementation projects
so that i want to know what is mean by FRICE and who will do it....?
and how much effort i need to put on it, for my 1st project.......
and who will prepair it means either functional consultent or technical guy....?
what is the use with test scripts adn who will make it.....
i dont have any experiance on any project like support or implementation... i fresher to the SAP
so plz help me......
thanks in advance.....?
regards,
gunnuHI
Its majorly a ABAP Development. And also its depends on client requirements ans may vary from client to client.
FRICE
F- FORMS: These include SapScripts and SMARTFORMS.
R- REPORTS: These include classical reporting and interactive reporting.
I- INTERFACES: These include ALE/EDI. Both of these interact with SAP R/3 using Idocs.
C- CONVERSIONS: These include BDCs and LSMWs. Uplodaing data into SAP R/3 is usually called a conversion. Think Direct transfer workbench (DXWB) also comes under this category.
E- ENHANCEMENTS: These include User-exits and BADIs. They provide the hooks to alter the standard SAP functionality. BADIs are again object oriented implementation of User-exits.
Shail -
Color profile (difference between interface & programs)
I use macbook air 13 (mid 2012). In windows 7 сolor is the same everywhere (preview, chrome, safari, photoshop & etc). But in Mountain Lion i can see difference:
Dock vs Quick Look
Safari vs Quick Look
I made this pics by photoshop cs6 (proof colors OFF):
How make in Mountain Lion сolor same everywhere?Hi Venkat,
Interface and Conversion program with BDC are same.
Only the difference in the mode of execution.
<b>Conversions Program</b> - mainly used for master data
migration. Mostly will be executed standalone and
once .
<b>Interface Programs</b> - These program will be executed
periodically for Transaction data upload(may be
for some periodic report). So these programs are
scheduled.
Reward points if this helps.
Manish
periodically.
Message was edited by: Manish Kumar -
Conversion problem in condition records upload program (BDC tcode: XK15)
Hello everyone,
I have downloaded few records from table A017 using key KUMNH (cond no), by the std program RVBTCI01 , i used three structures BRG00, BKOND1, BKOND2 and BKOND3 to download the records.
into a file (.txt) on the server.
now i uploaded the same file using the standard prg RV14BTCI (after recording the the transaction XK15 using BDC).
the amount field in bkond structure BKOND2-KEBTR is giving the conversion error while uploading ,
it is giving ERROR when the session is processed in sm35
it is not accepting the decimal places while uploading the amount field.
when amount field is made integer its working fine..
this is happening with fields MXWRT and GKWRT too .... (infact in all places where the decimals are used)
any pointers to solve this ???hi avinash,
the data elt used for KONP-KBETR in table is
KBETR_KOND ( which is of type CURR , length 11 and 2 decimal)
the data elt used for BKOND2-KBETR in structure is
BKBETR ( which is of type CHAR , length 15 and 0 decimal)
so dat i can download len(11)point(1)decimal(2) total 15 digits in the structure of 15 char
now the problem comes when i am uploading the same back into the table KONP-KEBTR
which is of type CURR as mentioned above
plz help to solve dis -
LSMW or BDC?? for conversion of huge data
Hi,
I am presently doing some conversion programs... I have recently got the functional specification and the Technical specification for converting lot of data, about 12 GB of data which is in MS Access format and I have to load it to SAP. Now the questions is, with the Tech Specs, it says that I have to use LSMW, but I was just wondering whether using LSMW would be appropirate for such a huge conversion??? or should I opt BDC for converting the data.
Also the data is generally, contact masters, accounts masters and general info...
If I use, LSMW, which method should I use to load to R/3 whether BAPI, IDOCs or Batch/direct???
Please guide me through this conversion project??
Waiting for your reply,
Thanks,
-KenHi Ken!
If you really have all 4 options open (not every object is supported in all versions in SAP), choose the one you are most (or at least enough) familiar with.
If you never have used IDOC, then it's maybe to much struggle and problem with the new technic.
Otherwise my favorite order would be:
1) IDOC
2) BAPI (there some IDOCs calling the BAPI inside, so identical field handling...)
3) Direct input
4) Batch input
4) is probably to slow for your volume (hey, 12GB is really a lot of data!).
You have 4 files -> in the three 'lower'-level files key-links have to be provided (position info to header number X). If you split (and you have to split into 10, maybe 20 or more portions), then the pairs have still to be in one run - positions without header or header without positions won't help you much. You would need to make a complete run (read data, convert data, create BDC / IDOC / direct input) with a chunk - otherwise you still end up with to much memory consumption. But you could wait with execution of IDOC / BDC until all were created.
There is just one chance, you don't need so much splitting: most of the Access fields are not needed, you can define just a few input fields for your creation. If you would use e.g. 5% of given data, then you end up just with 600MB, that would be OK.
Conversion rules: there are just some general rules like 'add leading zeros', 'date in format YYYYMMDD'. Most conversion rules are customer specific. It's something like 'old company code 113 is in SAP 1013'. You need someone, how can tell how to create the objects in SAP. The next step is searching the way to get the necessary data out of current data structures. For these two steps no much general help is possible.
Later you can code this rules into LSMW. Here some help can be given by the forum.
Hope you have a better picture now.
Regards,
Christian -
BDC with lots of validations and conversions
hi to all experts,
i need a sample bdc program with lots of validations and conversion.
thanksHi,
REPORT ZMMFTS01A_MAINTAIN_SOURCE_LIST NO STANDARD PAGE HEADING
LINE-SIZE 250.
TABLES eord.
***Types Declaration
**Type of Upload File
TYPES : BEGIN OF ty_final,
matnr(018), "Material No
werks(004), "Plant
vdatu(010), "valid From
bdatu(010), "valid To
lifnr(010), "Vendor
ekorg(004), "Purchase Org
reswk(004), "Plant from which material is procured
ebeln(010), "Agreement
ebelp(005), "Item
feskz(003), "Fix
notkz(003), "Blk
autet(003), "MRP
END OF ty_final.
**Type for Error Records
TYPES : BEGIN OF ty_errmsg,
matnr(018),
werks(004),
vdatu(010),
bdatu(010),
lifnr(010),
ekorg(004),
reswk(004),
ebeln(010),
ebelp(005),
feskz(003),
notkz(003),
autet(003),
messg(200),
END OF ty_errmsg.
**Type to get the existing no of records before comparison
TYPES : BEGIN OF ty_eord,
matnr LIKE eord-matnr,
werks LIKE eord-werks,
erdat LIKE eord-erdat,
vdatu LIKE eord-vdatu,
bdatu LIKE eord-bdatu,
lifnr LIKE eord-lifnr,
flifn LIKE eord-flifn,
ebeln LIKE eord-ebeln,
ebelp LIKE eord-ebelp,
febel LIKE eord-febel,
reswk LIKE eord-reswk,
notkz LIKE eord-notkz,
ekorg LIKE eord-ekorg,
autet LIKE eord-autet,
END OF ty_eord.
**Type to get the no of records in the Database after comparison
TYPES : BEGIN OF ty_eord1,
vdatu LIKE eord-vdatu,
bdatu LIKE eord-bdatu,
END OF ty_eord1.
***Data Declarations
DATA : v_repid LIKE sy-repid,
v_datfm LIKE usr01-datfm,
v_message(200),
v_err_rec TYPE i,
v_errors TYPE i,
v_updated TYPE i,
v_matnr TYPE matnr,
v_lines TYPE i,
v_eord_row TYPE i,
s_count(2) TYPE n,
v_fnam(20) TYPE c,
v_tabix(2) TYPE n,
v_vdatu(10),
v_bdatu LIKE eord-bdatu,
v_datum(10),
f_option type ctu_params.
****Begin of Changes by Pavan Ticket 648507 "D13K948908
DATA : s_vdatu TYPE sy-datum,
s_bdatu TYPE sy-datum.
****End of Changes By Pavan Ticket 648507 "D13K948908
***Internal Tables Declaration
DATA : it_eord TYPE STANDARD TABLE OF ty_eord WITH HEADER LINE, "Internal Table for Appending all the Rows of DB Table EORD
it_bdcdata TYPE STANDARD TABLE OF bdcdata WITH HEADER LINE,
it_final TYPE STANDARD TABLE OF ty_final WITH HEADER LINE,
it_err_rec TYPE STANDARD TABLE OF ty_final WITH HEADER LINE,
it_messtab TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE,
it_errmsg TYPE STANDARD TABLE OF ty_errmsg WITH HEADER LINE,
it_eord1 TYPE STANDARD TABLE OF ty_eord1 WITH HEADER LINE,
it_ctu_params TYPE STANDARD TABLE OF ctu_params WITH HEADER LINE.
DATA : wa_final LIKE LINE OF it_final.
***Constants
CONSTANTS : c_1 TYPE i VALUE '1',
c_12 TYPE i VALUE '12',
c_x VALUE 'X'.
***Selection Screen
SELECTION-SCREEN : BEGIN OF BLOCK header WITH FRAME TITLE text-002.
SELECTION-SCREEN SKIP.
PARAMETERS P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK header.
I N I L I T I A L I Z A T I O N *
INITIALIZATION.
it_ctu_params-updmode = 'S'.
it_ctu_params-defsize = 'X'.
it_ctu_params-dismode = 'N'.
APPEND it_ctu_params.
A T S E L E C T I O N S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
PERFORM file_get.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
PERFORM upload_xcel.
IF NOT it_final[] IS INITIAL.
SORT it_final BY matnr werks lifnr ekorg reswk ebeln ebelp.
DESCRIBE TABLE it_final LINES v_lines.
ENDIF.
**To Know the Date Format for the user name in user master record
SELECT SINGLE datfm FROM usr01
INTO v_datfm
WHERE bname = sy-uname.
**Updating the Database based on the Combinations of Vendor/PPL/Porg and Agreement/Item
LOOP AT it_final.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
CLEAR : s_vdatu, s_bdatu.
CONCATENATE it_final-vdatu6(4) it_final-vdatu0(2) it_final-vdatu+3(2) INTO s_vdatu.
CONCATENATE it_final-bdatu6(4) it_final-bdatu0(2) it_final-bdatu+3(2) INTO s_bdatu.
PERFORM plant_conversion USING it_final-werks.
*****End of Changes By Pavan Ticket 648507 "D13K948908
REFRESH it_eord[].
v_matnr = it_final-matnr.
**Adding preceeding Zeroes to the Material No
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = v_matnr
IMPORTING
OUTPUT = v_matnr.
**Adding preceeding Zeroes to the Vendor
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = it_final-lifnr
IMPORTING
OUTPUT = it_final-lifnr.
**Adding preceeding Zeroes to the Item
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = it_final-ebelp
IMPORTING
OUTPUT = it_final-ebelp.
TRANSLATE it_final-feskz TO UPPER CASE.
TRANSLATE it_final-notkz TO UPPER CASE.
Select the Existing Records from EORD for the Combination of Material and Plant of New Record
SELECT matnr
werks
erdat
vdatu
bdatu
lifnr
flifn
ebeln
ebelp
febel
reswk
notkz
ekorg
autet FROM eord INTO corresponding fields of TABLE it_eord
WHERE matnr EQ v_matnr
AND werks EQ it_final-werks.
SORT it_eord BY matnr werks vdatu bdatu erdat lifnr ekorg reswk ebeln ebelp.
IF sy-subrc EQ 0.
LOOP AT it_eord.
If the Combination of Old Records Vendor/PPL/Porg is same and Agreement/Item
is also same then delete the Old Record and Upload the New Record
IF it_eord-MATNR = V_MATNR AND
it_eord-WERKS = IT_FINAL-WERKS AND
it_eord-LIFNR = IT_FINAL-LIFNR AND
it_eord-EKORG = IT_FINAL-EKORG AND
it_eord-RESWK = IT_FINAL-RESWK AND
it_eord-EBELN = IT_FINAL-EBELN AND
it_eord-EBELP = IT_FINAL-EBELP.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
v_tabix = sy-tabix.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'RM06W-SELKZ(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam 'X'.
PERFORM bdc_field USING 'BDC_OKCODE' '=LOES'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.
PERFORM bdc_field USING 'BDC_OKCODE' '=YES'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ELSE.
If the Combination of Old Records Vendor/PPL/Porg is same and Agreement/Item
is different, if the FIX of the Existing one is X and also the FIX of the New one
is X then deselect the FIX of the Old one, if the MRP of the Old one is 1 and also
the MRP of the New one is 1 then delete the MRP of the Old one, if the FIX and MRP
of the Old one is X,1 and if it is same for the new one also, then delete the FIX
and MRP of the Old one and insert the new one also
IF it_eord-lifnr = it_final-lifnr AND
it_eord-ekorg = it_final-ekorg AND
it_eord-reswk = it_final-reswk AND
it_eord-ebeln NE '' AND it_final-ebeln NE ''.
IF it_eord-ebeln NE it_final-ebeln OR it_eord-ebelp NE it_final-ebelp.
IF it_eord-febel EQ 'X' OR it_eord-autet EQ '1'.
v_tabix = sy-tabix.
IF it_final-feskz = 'X' AND it_final-autet = '1'.
it_eord-febel = ''.
it_eord-autet = ''.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'RM06W-FESKZ(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
CONCATENATE 'EORD-AUTET(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ELSEIF
it_final-feskz = 'X'.
it_eord-febel = ''.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'RM06W-FESKZ(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ELSEIF
it_final-autet = '1'.
it_eord-autet = ''.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'EORD-AUTET(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CLEAR it_eord.
IF NOT it_bdcdata[] IS INITIAL.
CALL TRANSACTION 'ME01' USING it_bdcdata
OPTIONS FROM it_ctu_params.
REFRESH it_bdcdata[].
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
CLEAR : v_matnr, it_final.
ENDLOOP.
REFRESH : it_eord[].
FREE it_eord.
**Updating the Records of Upload File into ME01
LOOP AT it_final INTO wa_final.
it_final = wa_final.
CLEAR v_matnr.
TRANSLATE it_final-feskz TO UPPER CASE.
TRANSLATE it_final-notkz TO UPPER CASE.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
PERFORM plant_conversion USING wa_final-werks.
*****End of Changes By Pavan Ticket 648507 "D13K948908
**To convert the Valid From and Valid To into User's Format
CASE v_datfm.
WHEN 1.
CONCATENATE it_final-vdatu3(2) '.' it_final-vdatu0(2) '.' it_final-vdatu+6(4) INTO it_final-vdatu.
CONCATENATE it_final-bdatu3(2) '.' it_final-bdatu0(2) '.' it_final-bdatu+6(4) INTO it_final-bdatu.
WHEN 2.
CONCATENATE it_final-vdatu0(2) '/' it_final-vdatu3(2) '/' it_final-vdatu+6(4) INTO it_final-vdatu.
CONCATENATE it_final-bdatu0(2) '/' it_final-bdatu3(2) '/' it_final-bdatu+6(4) INTO it_final-bdatu.
WHEN 3.
CONCATENATE it_final-vdatu0(2) '-' it_final-vdatu3(2) '-' it_final-vdatu+6(4) INTO it_final-vdatu.
CONCATENATE it_final-bdatu0(2) '-' it_final-bdatu3(2) '-' it_final-bdatu+6(4) INTO it_final-bdatu.
WHEN 4.
CONCATENATE it_final-vdatu6(4) '.' it_final-vdatu0(2) '.' it_final-vdatu+3(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu0(2) '.' it_final-bdatu+3(2) INTO it_final-bdatu.
WHEN 5.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu0(2) '/' it_final-vdatu+3(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '/' it_final-bdatu0(2) '/' it_final-bdatu+3(2) INTO it_final-bdatu.
WHEN 6.
CONCATENATE it_final-vdatu6(4) '-' it_final-vdatu0(2) '-' it_final-vdatu+3(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '-' it_final-bdatu0(2) '-' it_final-bdatu+3(2) INTO it_final-bdatu.
***End of Changes by Pavan "D13K945062
WHEN 'A'.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu3(2) '/' it_final-vdatu+0(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu3(2) '.' it_final-bdatu+0(2) INTO it_final-bdatu.
WHEN 'B'.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu3(2) '/' it_final-vdatu+0(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu3(2) '.' it_final-bdatu+0(2) INTO it_final-bdatu.
WHEN 'C'.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu3(2) '/' it_final-vdatu+0(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu3(2) '.' it_final-bdatu+0(2) INTO it_final-bdatu.
ENDCASE.
AT NEW werks.
CLEAR s_count.
REFRESH : it_bdcdata[], it_eord1[].
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
**Adding preceeding Zeroes to the Material No
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = it_final-matnr
IMPORTING
OUTPUT = v_matnr.
**To know the Number of records in EORD after Updating with new records
SELECT vdatu
bdatu FROM EORD
INTO TABLE it_eord1
WHERE matnr = v_matnr
AND werks = it_final-werks.
DESCRIBE TABLE it_eord1 LINES v_eord_row.
s_count = v_eord_row + 1.
ENDAT.
CONCATENATE 'EORD-VDATU(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-VDATU.
CONCATENATE 'EORD-BDATU(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-BDATU.
CONCATENATE 'EORD-EKORG(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-EKORG.
CONCATENATE 'EORD-LIFNR(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-LIFNR.
CONCATENATE 'EORD-RESWK(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-RESWK.
CONCATENATE 'EORD-EBELN(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-EBELN.
CONCATENATE 'EORD-EBELP(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-EBELP.
CONCATENATE 'RM06W-FESKZ(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-FESKZ.
CONCATENATE 'EORD-NOTKZ(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-NOTKZ.
CONCATENATE 'EORD-AUTET(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-AUTET.
AT END OF werks.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
REFRESH it_messtab[].
CALL TRANSACTION 'ME01' USING it_bdcdata
OPTIONS FROM it_ctu_params
MODE 'A'
UPDATE 'L'
MESSAGES INTO it_messtab.
IF SY-SUBRC NE 0.
it_err_rec-matnr = it_final-matnr.
it_err_rec-werks = it_final-werks.
it_err_rec-vdatu = it_final-vdatu.
it_err_rec-bdatu = it_final-bdatu.
it_err_rec-lifnr = it_final-lifnr.
it_err_rec-ekorg = it_final-ekorg.
it_err_rec-reswk = it_final-reswk.
it_err_rec-ebeln = it_final-ebeln.
it_err_rec-ebelp = it_final-ebelp.
it_err_rec-feskz = it_final-feskz.
it_err_rec-notkz = it_final-notkz.
it_err_rec-autet = it_final-autet.
APPEND it_err_rec.
CLEAR it_err_rec.
PERFORM format_message.
ENDIF.
ENDAT.
ENDLOOP.
**To Upload the Error Records into another Excel File
IF NOT it_err_rec[] IS INITIAL.
PERFORM errors_file.
DESCRIBE TABLE it_err_rec LINES v_err_rec.
v_errors = v_err_rec - 1.
ELSE.
v_errors = 0.
ENDIF.
v_updated = v_lines - v_errors.
WRITE : /2 'RUN DATE :' color COL_NORMAL, 20 sy-datum,
/2 'RUN TIME :' color COL_NORMAL, 20 sy-uzeit.
SKIP 2.
WRITE : /2 'FILE PATH :' color COL_NORMAL, 20 p_fname.
SKIP 2.
WRITE : /2 'RESULTS' color COL_NORMAL.
SKIP.
WRITE : /2 'Number of Rows in the Upload File :' color COL_NORMAL, v_lines,
/2 'Number of Rows Updated :' color COL_NORMAL, v_updated,
/2 'Number of Error Records :' color COL_NORMAL, v_errors.
IF it_errmsg[] IS NOT INITIAL.
SKIP 2.
WRITE : /2 'Details of the Error Records' color COL_NORMAL.
SKIP.
ULINE.
FORMAT COLOR COL_NORMAL.
WRITE : /2 'Material',
22 'Plant',
28 'Valid From',
40 'Valid To',
52 'Vendor',
64 'Porg',
70 'PPL',
76 'Agreement',
88 'Item',
94 'Fix',
98 'Blk',
102 'MRP',
106 'Err. Description'.
FORMAT COLOR OFF.
ULINE.
LOOP AT it_errmsg.
AT NEW autet.
WRITE : /2 it_errmsg-matnr,
22 it_errmsg-werks,
28 it_errmsg-vdatu,
40 it_errmsg-bdatu,
52 it_errmsg-lifnr,
64 it_errmsg-ekorg,
70 it_errmsg-reswk,
76 it_errmsg-ebeln,
88 it_errmsg-ebelp,
94 it_errmsg-feskz,
98 it_errmsg-notkz,
102 it_errmsg-autet.
ENDAT.
WRITE 106 it_errmsg-messg.
ENDLOOP.
ENDIF.
E N D O F S E L E C T I O N *
END-OF-SELECTION.
*& Form file_get
Selects the File Name and Path
FORM file_get .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = v_repid
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = p_fname
CHANGING
FILE_NAME = p_fname
EXCEPTIONS
MASK_TOO_LONG = 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.
ENDFORM. " file_get
*& Form upload_xcel
Uploading data to an Internal Table
FORM upload_xcel .
DATA: BEGIN OF it_intern OCCURS 0.
INCLUDE STRUCTURE ALSMEX_TABLINE. " Rows for Table with Excel Data
DATA: END OF it_intern.
DATA v_no_rows TYPE i VALUE 9999.
FIELD-SYMBOLS : <fs1>.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = c_1
I_BEGIN_ROW = c_1
I_END_COL = c_12
I_END_ROW = v_no_rows
TABLES
INTERN = it_intern
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC NE 0.
MESSAGE text-016 TYPE 'I'.
ENDIF.
LOOP AT it_intern.
ASSIGN COMPONENT it_intern-col OF STRUCTURE
it_final TO <fs1>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
<fs1> = it_intern-value.
AT END OF row.
APPEND it_final.
CLEAR it_final.
ENDAT.
Endloop.
FREE it_intern.
***To Delete the Headings from the Internal Table.
DELETE it_final WHERE matnr CA 'MATmat'.
ENDFORM. " upload_xcel
*& Form bdc_dynpro
Populate Screen Name
FORM bdc_dynpro USING PROGRAM
DYNPRO.
CLEAR it_bdcdata.
it_bdcdata-PROGRAM = PROGRAM.
it_bdcdata-DYNPRO = DYNPRO.
it_bdcdata-DYNBEGIN = 'X'.
APPEND it_bdcdata.
ENDFORM. " bdc_dynpro
*& Form bdc_field
Populate Screen Field
FORM bdc_field USING FNAM
FVAL.
IF FVAL <> SPACE.
CLEAR it_bdcdata.
it_bdcdata-FNAM = FNAM.
it_bdcdata-FVAL = FVAL.
APPEND it_bdcdata.
ENDIF.
ENDFORM. " bdc_field
*& Form bdc_field
Populate Screen Field
FORM bdc_field1 USING FNAM
FVAL.
CLEAR it_bdcdata.
it_bdcdata-FNAM = FNAM.
it_bdcdata-FVAL = FVAL.
APPEND it_bdcdata.
ENDFORM. " bdc_field
*& Form errors_file
Downloads the Error Records
FORM errors_file .
DATA : l_fname TYPE string,
l_var1 TYPE string,
l_var2 TYPE string.
l_fname = p_fname.
SPLIT l_fname at '.' into l_var1 l_var2.
CONCATENATE l_var1 '_error.' l_var2 INTO l_fname.
**To Write the Headings in the Excel File
it_err_rec-matnr = text-003.
it_err_rec-werks = text-004.
it_err_rec-vdatu = text-005.
it_err_rec-bdatu = text-006.
it_err_rec-lifnr = text-007.
it_err_rec-ekorg = text-008.
it_err_rec-reswk = text-009.
it_err_rec-ebeln = text-010.
it_err_rec-ebelp = text-011.
it_err_rec-feskz = text-012.
it_err_rec-notkz = text-013.
it_err_rec-autet = text-014.
INSERT it_err_rec INDEX 1.
CLEAR it_err_rec.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = l_fname
FILETYPE = 'DAT'
APPEND = ' '
CONFIRM_OVERWRITE = ' '
TABLES
DATA_TAB = it_err_rec
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC EQ 0.
MESSAGE text-015 TYPE 'S'.
ENDIF.
ENDFORM. " errors_file
*& Form format_message
To Write the Error Records
FORM format_message .
IF NOT it_messtab[] IS INITIAl.
LOOP AT it_messtab.
IF it_messtab-msgtyp = 'E'.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = it_messtab-msgid
LANG = sy-langu
NO = it_messtab-msgnr
V1 = it_messtab-msgv1
V2 = it_messtab-msgv2
V3 = it_messtab-msgv3
V4 = it_messtab-msgv4
IMPORTING
MSG = v_message
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
it_errmsg-matnr = it_final-matnr.
it_errmsg-werks = it_final-werks.
it_errmsg-vdatu = it_final-vdatu.
it_errmsg-bdatu = it_final-bdatu.
it_errmsg-ekorg = it_final-ekorg.
it_errmsg-lifnr = it_final-lifnr.
it_errmsg-reswk = it_final-reswk.
it_errmsg-ebeln = it_final-ebeln.
it_errmsg-ebelp = it_final-ebelp.
it_errmsg-feskz = it_final-feskz.
it_errmsg-notkz = it_final-notkz.
it_errmsg-autet = it_final-autet.
it_errmsg-messg = v_message.
APPEND it_errmsg.
CLEAR : it_errmsg, v_message.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " format_message
*& Form plant_conversion
Adding preceeding Zeroes
-->P_IT_FINAL_WERKS text
FORM plant_conversion USING P_VAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = P_VAR
IMPORTING
OUTPUT = P_VAR.
ENDFORM. " plant_conversion
Hope it helps!!!
Regards,
Pavan -
Hi,
when iam displaying report after uploading data using BDC , amount field iam not getting properly.
iam expecting 1,234 ( what iam getting 12.34), any one can help.u need to the decimal correction.
pls see the extract of the code below :
SELECT currkey currdec FROM tcurx INTO TABLE tbl_tcurx
FOR ALL ENTRIES IN tbl_bsik1
WHERE currkey = tbl_bsik1-waers.
IF sy-subrc = 0.
SORT tbl_tcurx BY currkey.
ENDIF.
READ TABLE tbl_tcurx WITH KEY currkey = tbl_bsik-waers
BINARY SEARCH.
IF sy-subrc = 0.
currency corrections
IF tbl_tcurx-currdec = 0.
tbl_final-wrbtr = tbl_bsik-wrbtr * 100.
ELSEIF tbl_tcurx-currdec = 1.
tbl_final-wrbtr = tbl_bsik-wrbtr * 10.
ELSEIF tbl_tcurx-currdec = 3.
tbl_final-wrbtr = tbl_bsik-wrbtr / 10.
ELSEIF tbl_tcurx-currdec = 5.
tbl_final-wrbtr = tbl_bsik-wrbtr / 1000.
ENDIF.
start
ELSE.
tbl_final-wrbtr = tbl_bsik-wrbtr.
end
ENDIF.
if found useful reward with points -
BDC MATERIAL MASTER DATA CONVERSION
HELLO ABAP GURUS,
CAN U PLZ SOLVE MY PROBLEM.
I'M TRING TO CONVERT LEGACY DATA TO SAP FOR TCODE MM01
IN MM01 ALL THE FIELDS I'M ABLE TO ENTER BUT DURING ENTERING DATA OF EAN(IN BASIC DATA 1) SYSTEM SHOWING WARNING MESSAGE TO SKIP THIS WARNING WE HAVE TO PRESS ENTER KEY THEN ONLY IT IS PROCESSING.
MAIN PROBLEM IS THAT I WANT TO GIVE ONE EXTRA ENTER AFTER EXECUTING THE FOLLOWING CODE
perform bdc_dynpro using 'SAPLMGMM' '4004' 'X'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'MAKT-MAKTX' matdesc.
perform bdc_field using 'BDC_CURSOR' 'MARA-MTPOS_MARA'.
perform bdc_field using 'MARA-MEINS' wa_valid-MEINS.
perform bdc_field using 'MARA-MATKL' wa_valid-MATKL.
perform bdc_field using 'MARA-BISMT' wa_valid-BISMT.
perform bdc_field using 'MARA-SPART' wa_valid-SPART.
perform bdc_field using 'MARA-PRDHA' wa_valid-PRDHA.
perform bdc_field using 'MARA-MTPOS_MARA' wa_valid-MTPOS_MARA.
perform bdc_field using 'MARA-BRGEW' wa_valid-BRGEW.
perform bdc_field using 'MARA-GEWEI' wa_valid-GEWEI.
perform bdc_field using 'MARA-NTGEW' wa_valid-NTGEW.
perform bdc_field using 'MARA-VOLUM' wa_valid-VOLUM.
perform bdc_field using 'MARA-VOLEH' wa_valid-VOLEH.
*perform bdc_field using 'MARA-EAN11' wa_valid-EAN11.
perform bdc_field using 'MARA-NUMTP' wa_valid-NUMTP.
AFTER THIS CODE I WANT TO GIVE A CODE TO PRESS ENTER CAN U PLZ TELL ME.
*perform bdc_field using 'BDC_OKCODE' '=ENTR'. THIS CODE IS NOT WORKING
REGARDS,
MANOJ
9248158131MESSAGE IM GETTING
THE EAN WILL BE DETERMINED INTERNALLY ON THE BASIS OF THE EAN CATEGORY
AND ASSIGNING EAN/UPC NO INTERNALLY ON THE BASIS OF EAN CATEGORY
Maybe you are looking for
-
Proxy receiver communication channel
Hi Experts, When I am executing an interface in XI, I am getting the message in SXMB_MONI. <SAP:Stack>Unable to create HTTP client (exception 1)</SAP:Stack> The receiver is Proxy here. Where can I get the service number of R/3 system to enter in the
-
DVD doesn't play from the beginning when inserted a second time into a dvd player
DVD burnt in DVD studio pro, when ejected and inserted again into dvd player, the dvd plays from where it stopped the last tome it was ejected. It doesn't rewind and play from the beginning. Is the problem in the burning settings in DVD studio pro? a
-
Changing OSX default volume setting to a higher level in sound preferences
When I change the default volume setting to a higher level in sound preferences within OSX, it is back at the lower level at the next listening session the following time I use iTunes on my Mac Mini. Within System Preferences there is a section that
-
Why firefox crash when I open gmail or google translate?
when I open new gmail or google translate firefox crash again and again Its happening after updating into firefox 3.6.19. It also causes for slowing my computer now what can I do?
-
Trying to find an app at app store, can't remember name
It's the app that allows you to turn house lights on and off. Thanks a ton