Creating Quotation in SAP based on the data from 3rd party sys
Hello experts,
My client is using a 3rd party system where the Quotations are created.
The Requirement is, the same quotaions have to be created in the SAP automatically.
Please advice how to achieve the above
Thanks in advance,
Chintu
Hello experts,
My client is using a 3rd party system where the Quotations are created.
The Requirement is, the same quotaions have to be created in the SAP automatically.
Please advice how to achieve the above
Thanks in advance,
Chintu
Similar Messages
-
Querying Data from 3rd Party System
We would like to query data from a 3rd party (non-SAP) system. Our BW is an MSSQL DB and the 3rd party is also an MSSQL DB. We do not want to physically load the data from the external system we just want to use the BW query tools to display the data.
Is this possible? I thought this is what a Remote Cube would be used for but SAP's instructions on Remote Cubes are vague and confusing.
1. In BW, create a source system for the external system that you want to use.
2. Define the required InfoObjects.
3. Load the master data:
· Create a master data InfoSource for each characteristic
· Load texts and attributes
4. Define the RemoteCube
5. Define the queries based on the RemoteCubeHi Jon,
SAP RemoteCube is an InfoProvider. This is a special RemoteCube that allows
you to define queries with direct access to transaction data in other SAP systems. SAP RemoteCubes are defined on the basis of an InfoSource with flexible updating, and assume the characteristics and key figures of the InfoSource.
Use/Data Flow
Unlike with other RemoteCubes, it is not necessary to program extractors. The
same extractors are used to select data in the source system that are also used when replicating data into the BW. When executing a query, each navigation step sends a request to the extractors for the assigned source systems. In addition, characteristics selection and selection criteria for these characteristics are transformed to fields in the transfer structure, in accordance with the transfer rules. They are transferred to the extractor in this form. The delivered datasets run through the transfer rules in BW and are filtered once again in the query.
In your case Remote cube can be an option .
Cheers
Raja -
Receiving net payroll data from 3rd party (ADP)
We are currently outsourcing 3rd party payroll to ADP. Master Data and Time Wage Type IDOCs are transmitted. After payroll processing, G/L data is downloaded through ADP Infolink G/L interface website as a .csv file.
We want to receive G/L data back from ADP in standard SAP IDOC format. I have posed this question to ADP support with no luck.
Has anyone imported G/L net payroll data back from ADP as an IDOC? Is this considered a different product than web-based Infolink G/L?
thanks,
EricHello Eric,
We are currently in the process of implementing ADP and do master data transfer from HR to ADP.
Would you be willing to have a quick phone call with me interms of lessons learned and advice from you on this.
Please let me know.
Thanks,
Girish -
RFC is to be created in ECC that should fetch the data from CRM
Hi Gurus,
I am facing with a problem in knowing the fields and table to develop an RFC in ABAP.
My exact requirement is :
ABAP : the field PERNR is passed as exporting parameter to RFC and imporitng paramter is an internal table that consists of PERNR and overpayment status field.
ABAP CRM
Exporting Parameter = PERNR Importing Parameter= ? " Which field should i take as importing field"
Importing Parameter = LT_ITAB Exporting Parameter= ? " internal table consisting input field and
overpayment status field "
NOTE : In order to provide a means of progressing overpayments and to provide a statistical analysis of overpayments, RFC is required that combines the information in CRM with that in ECC6 for overpayment details.
Pls Can u Help me by providing table and field name in CRM
Thanks,
Reddy..Hi Kalpana,
if you want to fetch ecc data to crm you have to create one rfc enabled function module in ecc use that function module in crm.
calling a smart form is different scenario go through this links you can get to know how to call..
**************** - Calling an RFC function module from one system to another
Print an Adobe Form from CRM Web UI - CRM - SCN Wiki
Call a Smartform in webUi
example:
sample code:
clear lv_client.
IF sy-mandt = '110'.
CONCATENATE 'ECDCLNT' sy-mandt INTO lv_client.
ELSEIF sy-mandt = '200'.
CONCATENATE 'ECQCLNT' sy-mandt INTO lv_client.
ELSEIF sy-mandt = '300'.
CONCATENATE 'ECPCLNT' sy-mandt INTO lv_client.
endif.
call function 'zfunction_module' destination lv_client
exporting
is_date = lv_date
tables
ot_tab = ot_tab.
Thanks & Regards,
Srinivask -
Migration of Documents from 3rd party software to SAP DMS
Dear Experts,
We have implemented SAP DMS . Prior to DMS we were using Third party software for creating and storing the documents.
There are abot 3000 documents in the third party software, now the challege is how we must have to migrate the DATA from 3rd party software to SAP DMS with creating Dirs. Are there any upload programmes suffice the requirement or any development needs to be done or any possibilities.
Kindly help me out in the above scenario.
Regards
jayanthHi,
from DMS point of view I think that SDXA functionality could also be useful for this action. For further information on SXDA functions please see SAP note 817743.
Best regards,
Christoph -
How can i create a dynamic structure based on my input from a select-option
Hello,
This is to develop a custom report in FI for G/L Balance based on company code.
I have an input select-option for Company code.
Based on the range of company code my output layout should be modified.
I am not very much sure to create a dynamic internal based on the input from a select-option.
Can any one please let me know how can i do this.
I would appreciate for anyone who turns up quickly.
Thank you,
With regs,
Anitha Joss.See the following program, it builds a dynamic internal table based on the company codes from the select option.
report zrich_0001 .
type-pools: slis.
field-symbols: <dyn_table> type standard table,
<dyn_wa>.
data: alv_fldcat type slis_t_fieldcat_alv,
it_fldcat type lvc_t_fcat.
data: it001 type table of t001 with header line.
selection-screen begin of block b1 with frame title text-001.
select-options: s_bukrs for it001-bukrs.
selection-screen end of block b1.
start-of-selection.
select * into table it001 from t001
where bukrs in s_bukrs.
perform build_dyn_itab.
* Build_dyn_itab
form build_dyn_itab.
data: index(3) type c.
data: new_table type ref to data,
new_line type ref to data,
wa_it_fldcat type lvc_s_fcat.
clear wa_it_fldcat.
wa_it_fldcat-fieldname = 'PERIOD' .
wa_it_fldcat-datatype = 'CHAR'.
wa_it_fldcat-intlen = 6.
append wa_it_fldcat to it_fldcat .
loop at it001.
clear wa_it_fldcat.
wa_it_fldcat-fieldname = it001-bukrs .
wa_it_fldcat-datatype = 'CHAR'.
wa_it_fldcat-intlen = 4.
append wa_it_fldcat to it_fldcat .
endloop.
* Create dynamic internal table and assign to FS
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = it_fldcat
importing
ep_table = new_table.
assign new_table->* to <dyn_table>.
* Create dynamic work area and assign to FS
create data new_line like line of <dyn_table>.
assign new_line->* to <dyn_wa>.
endform.
Regards,
Rich Heilman -
Is there any statement to transfer the data from unix server to another
Hi All,
Is there any statement or function module avaliable in sap to transfer the data from one unix server to another unix server apart from FTP(file transfer protocol).?
My requirement : I need to fetch the data from one unix server to another sap server. i have a option of FTP but i need to transfer the unix data to another server internal table.
I need to move the unix data to another sap sevrver internal table
Regards
Rajanot sure what your exact requirement is, but
if both servers are in the same system group, you could potentially just mount the unix directory from the source machine to the target with nfs mount or something.
if not, you could consider remote function call. create a remotable function module on the source machine to read the data into an internal table, and call that function module from the target machine. this requires creating entries in the RFCDES table (i think via SM59?). on the target machine, you would call function y_whatever destination xyz, where xyz is the RFCDES you set up. it works great.
dave -
How to upload the data from existing ods to new cube?
Hi all,
There is an existing ods and reports are been created for that ods. My task is to create a cube and pull out the data from the ods to cube.
I have created a cube with update rule. And i want to know to how to load all the data from the existing ods to the newly created cube.
thanxs
harithaHi haritha,
If you've already created the update-rules, try to create cube, than make a mapping between ODS & Cube.
If done,
1. Right-Click on ODS, find the menu update data to data target.
2. Choose for Init.
If you wanna make it update data to cube automatically, then you must setup the setting in ODS.
1. double-click on it.
2. In setting, you'll see the option for "automatically update data to data target".
3. Choose for it.
Hopefully it can help you a lot.
Regards,
Niel.
thanks for any points you choose to assign. -
How to select data from 3rd row of Excel to insert into Sql server table using ssis
Hi,
Iam having Excel files with headers in first two rows , i want two skip that two rows and select data from 3rd row to insert into Sql Server table using ssis.3rd row is having column names.CUSTOMER DETAILS
REGION
COL1 COL2 COL3 COL4 COL5 COL6 COL7
COL8 COL9 COL10 COL11
1 XXX yyyy zzzz
2 XXX yyyy zzzzz
3 XXX yyyy zzzzz
4 XXX yyyy zzzzz
First two rows having cells merged and with headings in excel , i want two skip the first two rows and select the data from 3rd row and insert into sql server using ssis
Set range within Excel command as per below
See
http://www.joellipman.com/articles/microsoft/sql-server/ssis/646-ssis-skip-rows-in-excel-source-file.html
Please Mark This As Answer if it solved your issue
Please Mark This As Helpful if it helps to solve your issue
Visakh
My MSDN Page
My Personal Blog
My Facebook Page -
Hi All,
I want to implement three level Horizental navigation on the top navigation and menu items are created based on the data available in a SharePoint List.
Implement this requirement through customization, how can i start any help
ThanksHello,
You can follow these links to get the result that you want. You can get the desired result either using the custom list or a site map. Please make sure when you edit the master page, dont work on the original v4.master. Always make a a copy and then work
on it.
This link will show you how get that navigation using a list.
http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Post.aspx?ID=60
This link will show you how get that navigation using a sitemap.
http://www.sharepointdiary.com/2012/01/custom-top-navigation-using-sitemap.html
Please mark as "Answered" if this helped you.
Thanks,
norasampang -
How Can we get the data from Non-SAP to SAP in WebDynpro
Hi,
I hope u understand my query, How can we get the data from Non-SAP to SAP thru WebDynpro Programming.
Help out with the steps for getting the data or procedure.
Regards,
MutyapuYou can expose the APIs in the Non-SAP backend as Web Services, and consume them in SAP by creating an Enterprise Proxy. Then these can be called just like normal class methods from Web Dynpro.
Regards,
Nithya -
Creating a target group based on the BP email address only in CRM
Hi there,
I am currently trying to create a target group based on the business partner email address only.
I have a list of over 1000 email addresses - these email addresses equate to a BP in our CRM system, however I do not have a list of the equivalent business partner numbers, all I have to work on are the email addresses. With these 1000 BP email addresses I need to update the marketing attributes of each of these 1000 BP records in CRM.
What I need is a method to find the 1000 BP numbers based on the email addresses and then use the marketing expert tool (tx. CRMD_MKT_TOOLS) to change the marketing attributes on all of the 1000 BPs.
The issue I am having is how can I find the list of BP numbers just based on the BP email address, I tried creating an infoset based on table BUT000, BUT020 and ADR6 but I after creating attribute list & data source for this I am stuck on what to do next. In the attribute list the selection criteria does not allow me to import a file for the selection range. I can only enter a value but I have 1000 email addresses and cannot possibly email them manually in the filter for the attribute list. I also looked at imported a file into the target group but I do not have any BP numbers so this will not work.
Does anyone know a method where I can create a target group based on the email addresses only without having to do any code?
Any help would be most appreciated.
Kind regard
JoJoHi JoJo ,
The below report will return you BP GUID from emails that is stored in a single column .xls file and assign the BP to a target group.
REPORT zexcel.
* G L O B A L D A T A D E C L A R A T I O N
TYPE-POOLS : ole2.
TYPES : BEGIN OF typ_xl_line,
email TYPE ad_smtpadr,
END OF typ_xl_line.
TYPES : typ_xl_tab TYPE TABLE OF typ_xl_line.
DATA : t_data TYPE typ_xl_tab,
lt_bu_guid TYPE TABLE OF bu_partner_guid,
ls_bu_guid TYPE bu_partner_guid,
lt_guids TYPE TABLE OF bapi1185_bp,
ls_guids TYPE bapi1185_bp,
lt_return TYPE bapiret2_t.
* S E L E C T I O N S C R E E N L A Y O U T
PARAMETERS : p_xfile TYPE localfile,
p_tgguid TYPE bapi1185_key .
* E V E N T - 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_xfile.
CALL FUNCTION 'WS_FILENAME_GET'
IMPORTING
filename = p_xfile
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
CLEAR p_xfile.
ENDIF.
* E V E N T - S T A R T O F S E L E C T I O N
START-OF-SELECTION.
* Get data from Excel File
PERFORM sub_import_from_excel USING p_xfile
CHANGING t_data.
SELECT but000~partner_guid FROM but000 INNER JOIN but020 ON
but000~partner =
but020~partner
INNER JOIN adr6 ON but020~addrnumber = adr6~addrnumber INTO TABLE
lt_bu_guid FOR ALL ENTRIES IN t_data WHERE adr6~smtp_addr =
t_data-email.
CLEAR: lt_guids,ls_guids.
LOOP AT lt_bu_guid INTO ls_bu_guid.
ls_guids-bupartnerguid = ls_bu_guid.
APPEND ls_guids TO lt_guids.
ENDLOOP.
CALL FUNCTION 'BAPI_TARGETGROUP_ADD_BP'
EXPORTING
targetgroupguid = p_tgguid
TABLES
return = lt_return
businesspartner = lt_guids.
*& Form SUB_IMPORT_FROM_EXCEL
* text
* -->U_FILE text
* -->C_DATA text
FORM sub_import_from_excel USING u_file TYPE localfile
CHANGING c_data TYPE typ_xl_tab.
CONSTANTS : const_max_row TYPE sy-index VALUE '65536'.
DATA : l_dummy TYPE typ_xl_line,
cnt_cols TYPE i.
DATA : h_excel TYPE ole2_object,
h_wrkbk TYPE ole2_object,
h_cell TYPE ole2_object.
DATA : l_row TYPE sy-index,
l_col TYPE sy-index,
l_value TYPE string.
FIELD-SYMBOLS : <fs_dummy> TYPE ANY.
* Count the number of columns in the internal table.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE l_dummy TO <fs_dummy>.
IF sy-subrc EQ 0.
cnt_cols = sy-index.
ELSE.
EXIT.
ENDIF.
ENDDO.
* Create Excel Application.
CREATE OBJECT h_excel 'Excel.Application'.
CHECK sy-subrc EQ 0.
* Get the Workbook object.
CALL METHOD OF h_excel 'Workbooks' = h_wrkbk.
CHECK sy-subrc EQ 0.
* Open the Workbook specified in the filepath.
CALL METHOD OF h_wrkbk 'Open' EXPORTING #1 = u_file.
CHECK sy-subrc EQ 0.
* For all the rows - Max upto 65536.
DO const_max_row TIMES.
CLEAR l_dummy.
l_row = l_row + 1.
* For all columns in the Internal table.
CLEAR l_col.
DO cnt_cols TIMES.
l_col = l_col + 1.
* Get the corresponding Cell Object.
CALL METHOD OF h_excel 'Cells' = h_cell
EXPORTING #1 = l_row
#2 = l_col.
CHECK sy-subrc EQ 0.
* Get the value of the Cell.
CLEAR l_value.
GET PROPERTY OF h_cell 'Value' = l_value.
CHECK sy-subrc EQ 0.
* Value Assigned ? pass to internal table.
CHECK NOT l_value IS INITIAL.
ASSIGN COMPONENT l_col OF STRUCTURE l_dummy TO <fs_dummy>.
<fs_dummy> = l_value.
ENDDO.
* Check if we have the Work Area populated.
IF NOT l_dummy IS INITIAL.
APPEND l_dummy TO c_data.
ELSE.
EXIT.
ENDIF.
ENDDO.
* Now Free all handles.
FREE OBJECT h_cell.
FREE OBJECT h_wrkbk.
FREE OBJECT h_excel.
ENDFORM. " SUB_IMPORT_FROM_EXCEL
Just copy paste the code and run the report select any local xls file with emails and pass the target group guid.
snap shot of excel file:
Let me know if it was useful. -
Creation of internal table dynamically based on the Date Range entered
Hi SAPgurus,
I have been facing one issue i.e creation of internal table dynamically based on the date range entered in the selection screen. For example the date range I am giving as 06/2006 to 08/2006, it should display the Fieldcatelog dynamically, this part i have completed but the only issue I am facing is to populate the sales data into that fields.
Right now my program is displaying the ALV like this.
Ex:
<b>CSR District 06/2006 07/2006 08/2006 totals</b>
Shiva New York 10.00
Shiva new york 30.00
Shiva new york 40.00
but it should display like this
<b>CSR District 06/2006 07/2006 08/2006 totals</b>
Shiva New York 10.00 30.00 40.00
80.00
Please help me in this scenario, how to acheive like this..
Thanks & Regards,
Sivaram KandulaHi Sivaram,
I also got the same requirement . i saw rich and your code whatever you have uploaded.i have created dynamic internal table but i am facing the issue to populating the data to my dynamic internal table.
Sivaram, can you please explain your code after this.
*<dyn_table>
*tab_item.
LOOP AT tab_item.
ASSIGN COMPONENT 1 OF STRUCTURE <dyn_wa> TO <dyn_table>.
ASSIGN COMPONENT 2 OF STRUCTURE <dyn_wa> TO <dyn_table>.
* <dyn_wa> = tab_item-bztxt.
* <dyn_wa> = tab_item-total.
* APPEND <dyn_wa> TO <dyn_table>.
** <dyn_wa> = tab_item-total.
** ASSIGN tab_item-bezei TO <dyn_wa>.
* APPEND <dyn_table>.
ENDLOOP.
how you are puting the loop at tab_item. but tab_item is already commented.
can you send me the code after that.
i am sending some part of my code.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fCAT1
IMPORTING
ep_table = new_table.
ASSIGN new_table->* TO <dyn_table>.
create data new_line like line of <dyn_table>.
assign new_line->* to <dyn_wa>.
select vbeln
fkart
vkorg
vtweg
fkdat
spart
fksto
from vbrk
client specified
into table gt_vbrk
where mandt = sy-mandt
and fkart in ('ZF5','ZFR')
and vkorg = '1100'
and vtweg = '20'
and fkdat in s_fkdat
and spart = '06'
and fksto = ' '.
if gt_vbrk[] is not initial.
select vbeln
fkimg
prsdt
netwr
matnr
arktx
werks
mwsbp
from vbrp
client specified
into table gt_vbrp
for all entries in gt_vbrk
where vbeln = gt_vbrk-vbeln
and werks in s_werks
and matnr in s_matnr.
endif.
select mnr ltx spras from t247
into table it_t247
where spras = 'E'.
data: lv_month1 type vbrp-prsdt,
name1(3) type c,
s_month type string,
s_month1 type string,
s_month2 type string.
* lv_netwr1 type vbrp-netwr,
* lv_mwsbp1 type vbrp-mwsbp.
loop at gt_vbrp into gs_vbrp.
gs_final2-matnr = gs_vbrp-matnr.
gs_final2-arktx = gs_vbrp-arktx.
gs_final2-fkimg = gs_vbrp-fkimg.
lv_month1 = gs_vbrp-prsdt.
read table it_t247 into wa_t247 with key mnr = lv_month1+4(2).
if sy-subrc eq 0.
name1 = wa_t247-ltx.
endif.
concatenate name1
lv_month1(4) into s_month SEPARATED BY '_' .
CONCATENATE S_MONTH 'QTY' INTO S_MONTH1 SEPARATED BY ''.
CONCATENATE S_MONTH 'VALUE' INTO S_MONTH2 SEPARATED BY ''.
gs_final2-month = s_month.
lv_netwr1 = gs_vbrp-netwr.
lv_mwsbp1 = gs_vbrp-mwsbp.
gs_final2-MONTH_QTY = S_MONTH1.
GS_FINAL2-MONTH_VAL = S_MONTH2.
gs_final2-value = lv_netwr1 + lv_mwsbp1.
append gs_final2 to gt_final2.
clear: gs_final2. "lv_name2.
endloop.
if gt_final2[] is not initial.
sort gt_final2 by matnr month ascending .
loop at gt_final2 into gs_final2.
gs_final2_01 = gs_final2.
collect gs_final2_01 into gt_final2_01.
endloop.
endif.
ENDIF..
Regards
Ankur -
BAPI to create SNP planned order based on start date
Hi,
I am looking for a BAPI to create SNP planned order based on the order start date. There is BAPI BAPI_MOSRVAPS_CREATESNPORDER which can be used to create SNP planned order based on the end date but not based on the start date.
Also would be great if some one can share how do they create SNP Planned orders using BAPI BAPI_MOSRVAPS_CREATESNPORDER in case if GR processing time is defined in the product master and workdays for GR to be respected according to the calendar.
Regards,
VenkatHello Mr.Venkat,
Hope you recognize me.
Please check out the BAdi below.
BAdi - APO_BAPI_BUS10503 (this is the BAdi for ManufactOrderAPS BAPI which contains the SNPorder BAPI)
Method - CHANGE_SAVEMULTIPLE2
In this method parameter IT_ORDER_HEAD contains Order start date input option.
For GR time please check this (not sure if it will help).
Same BAdi/ same method
Parameter IV_PLANNING_MODE_USAGE contains field PLANNING_MODE.
Value 1 for PLANNING_MODE corresponds to "Observance of parameters from the product master".
This may make it respect the GR time in product master
Good luck with the above
Regards,
Ashok -
What are the major process to transfer the data from legacy to sap system.
What are the major process to transfer the data from legacy to sap system using BDC at Real Time only?
hi,
BATCH DATA COMMUNICATION
main methods are:
1. SESSION METHOD
2. CALL TRANSACTION
3. DIRECT INPUT
Advantages offered by BATCH INPUT method:
1. Can process large data volumes in batch.
2. Can be planned and submitted in the background.
3. No manual interaction is required when data is transferred.
4. Data integrity is maintained as whatever data is transferred to the table is through transaction. Hence batch input data is submitted to all the checks and validations.
To implement one of the supported data transfers, you must often write the program that exports the data from your non-SAP system. This program, known as a data transfer program must map the data from the external system into the data structure required by the SAP batch input program.
The batch input program must build all of the input to execute the SAP transaction.
Two main steps are required:
To build an internal table containing every screen and every field to be filled in during the execution of an SAP transaction.
To pass the table to SAP for processing.
Prerequisite for Data Transfer Program
Writing a Data Transfer Program involves following prerequisites:
Analyzing data from local file
Analyzing transaction
Analyzing transaction involves following steps:
The transaction code, if you do not already know it.
Which fields require input i.e., mandatory.
Which fields can you allow to default to standard values.
The names, types, and lengths of the fields that are used by a transaction.
Screen number and Name of module pool program behind a particular transaction.
To analyze a transaction::
Start the transaction by menu or by entering the transaction code in the command box.
(You can determine the transaction name by choosing System Status.)
Step through the transaction, entering the data will be required for processing your batch input data.
On each screen, note the program name and screen (dynpro) number.
(dynpro = dyn + pro. Dyn = screen, pro = number)
Display these by choosing System Status. The relevant fields are Program (dynpro) and Dynpro number. If pop-up windows occur during execution, you can get the program name and screen number by pressing F1 on any field or button on the screen.
The technical info pop-up shows not only the field information but also the program and screen.
For each field, check box, and radio button on each screen, press F1 (help) and then choose Technical Info.
Note the following information:
- The field name for batch input, which youll find in its own box.
- The length and data type of the field. You can display this information by double clicking on the Data Element field.
Find out the identification code for each function (button or menu) that you must execute to process the batch-input data (or to go to new screen).
Place the cursor on the button or menu entry while holding down the left mouse button. Then press F1.
In the pop-up window that follows, choose Technical info and note the code that is shown in the Function field.
You can also run any function that is assigned to a function key by way of the function key number. To display the list of available function keys, click on the right mouse button. Note the key number that is assigned to the functions you want to run.
Once you have program name, screen number, field name (screen field name), you can start writing.
DATA TRANSFER program.
Declaring internal table
First Integral Table similar to structure like local file.
Declaring internal table like BDCDATA
The data from internal table is not transferred directly to database table, it has to go through transaction. You need to pass data to particular screen and to particular screen-field. Data is passed to transaction in particular format, hence there is a need for batch input structure.
The batch input structure stores the data that is to be entered into SAP system and the actions that are necessary to process the data. The batch input structure is used by all of the batch input methods. You can use the same structure for all types of batch input, regardless of whether you are creating a session in the batch input queue or using CALL TRANSACTION.
This structure is BDCDATA, which can contain the batch input data for only a single run of a transaction. The typical processing loop in a program is as follows:
Create a BDCDATA structure
Write the structure out to a session or process it with CALL TRANSACTION USING; and then
Create a BDCDATA structure for the next transaction that is to be processed.
Within a BDCDATA structure, organize the data of screens in a transaction. Each screen that is processed in the course of a transaction must be identified with a BDCDATA record. This record uses the Program, Dynpro, and Dynbegin fields of the structure.
The screen identifier record is followed by a separate BDCDATA record for each value, to be entered into a field. These records use the FNAM and FVAL fields of the BDCDATA structure. Values to be entered in a field can be any of the following:
Data that is entered into screen fields.
Function codes that are entered into the command field. Such function codes execute functions in a transaction, such as Save or Enter.
The BDCDATA structure contains the following fields:
PROGRAM: Name of module pool program associated with the screen. Set this field only for the first record for the screen.
DYNPRO: Screen Number. Set this field only in the first record for the screen.
DYNBEGIN: Indicates the first record for the screen. Set this field to X, only for the first record for the screen. (Reset to (blank) for all other records.)
FNAM: Field Name. The FNAM field is not case-sensitive.
FVAL: Value for the field named in FNAM. The FVAL field is case-sensitive. Values assigned to this field are always padded on the right, if they are less than 132 characters. Values must be in character format.
Transferring data from local file to internal table
Data is uploaded to internal table by UPLOAD of WS_UPLOAD function.
Population of BDCDATA
For each record of internal table, you need to populate Internal table, which is similar to BDCDATA structure.
All these five initial steps are necessary for any type of BDC interface.
DATA TRANSFER program can call SESSION METHOD or CALL TRANSACTION. The initial steps for both the methods are same.
First step for both the methods is to upload the data to internal table. From Internal Table, the data is transferred to database table by two ways i.e., Session method and Call transaction.
SESSION METHOD
About Session method
In this method you transfer data from internal table to database table through sessions.
In this method, an ABAP/4 program reads the external data that is to be entered in the SAP System and stores the data in session. A session stores the actions that are required to enter your data using normal SAP transaction i.e., Data is transferred to session which in turn transfers data to database table.
Session is intermediate step between internal table and database table. Data along with its action is stored in session i.e., data for screen fields, to which screen it is passed, the program name behind it, and how the next screen is processed.
When the program has finished generating the session, you can run the session to execute the SAP transactions in it. You can either explicitly start and monitor a session or have the session run in the background processing system.
Unless session is processed, the data is not transferred to database table.
BDC_OPEN_GROUP
You create the session through program by BDC_OPEN_GROUP function.
Parameters to this function are:
User Name: User name
Group: Name of the session
Lock Date: The date on which you want to process the session.
Keep: This parameter is passed as X when you want to retain session after
processing it or to delete it after processing.
BDC_INSERT
This function creates the session & data is transferred to Session.
Parameters to this function are:
Tcode: Transaction Name
Dynprotab: BDC Data
BDC_CLOSE_GROUP
This function closes the BDC Group. No Parameters.
Some additional information for session processing
When the session is generated using the KEEP option within the BDC_OPEN_GROUP, the system always keeps the sessions in the queue, whether it has been processed successfully or not.
However, if the session is processed, you have to delete it manually. When session processing is completed successfully while KEEP option was not set, it will be removed automatically from the session queue. Log is not removed for that session.
If the batch-input session is terminated with errors, then it appears in the list of INCORRECT session and it can be processed again. To correct incorrect session, you can analyze the session. The Analysis function allows to determine which screen and value has produced the error. If you find small errors in data, you can correct them interactively, otherwise you need to modify batch input program, which has generated the session or many times even the data file.
CALL TRANSACTION
About CALL TRANSACTION
A technique similar to SESSION method, while batch input is a two-step procedure, Call Transaction does both steps online, one after the other. In this method, you call a transaction from your program by
Call transaction <tcode> using <BDCTAB>
Mode <A/N/E>
Update <S/A>
Messages into <MSGTAB>.
Parameter 1 is transaction code.
Parameter 2 is name of BDCTAB table.
Parameter 3 here you are specifying mode in which you execute transaction
A is all screen mode. All the screen of transaction are displayed.
N is no screen mode. No screen is displayed when you execute the transaction.
E is error screen. Only those screens are displayed wherein you have error record.
Parameter 4 here you are specifying update type by which database table is updated.
S is for Synchronous update in which if you change data of one table then all the related Tables gets updated. And sy-subrc is returned i.e., sy-subrc is returned for once and all.
A is for Asynchronous update. When you change data of one table, the sy-subrc is returned. And then updating of other affected tables takes place. So if system fails to update other tables, still sy-subrc returned is 0 (i.e., when first table gets updated).
Parameter 5 when you update database table, operation is either successful or unsuccessful or operation is successful with some warning. These messages are stored in internal table, which you specify along with MESSAGE statement. This internal table should be declared like BDCMSGCOLL, a structure available in ABAP/4. It contains the following fields:
1. Tcode: Transaction code
2. Dyname: Batch point module name
3. Dynumb: Batch input Dyn number
4. Msgtyp: Batch input message type (A/E/W/I/S)
5. Msgspra: Batch input Lang, id of message
6. Msgid: Message id
7. MsgvN: Message variables (N = 1 - 4)
For each entry, which is updated in database, table message is available in BDCMSGCOLL. As BDCMSGCOLL is structure, you need to declare a internal table which can contain multiple records (unlike structure).
Steps for CALL TRANSACTION method
1. Internal table for the data (structure similar to your local file)
2. BDCTAB like BDCDATA
3. UPLOAD or WS_UPLOAD function to upload the data from local file to itab. (Considering file is local file)
4. Loop at itab.
Populate BDCTAB table.
Call transaction <tcode> using <BDCTAB>
Mode <A/N/E>
Update <S/A>.
Refresh BDCTAB.
Endloop.
(To populate BDCTAB, You need to transfer each and every field)
The major differences between Session method and Call transaction are as follows:
SESSION METHOD CALL TRANSACTION
1. Data is not updated in database table unless Session is processed. Immediate updation in database table.
2. No sy-subrc is returned. Sy-subrc is returned.
3. Error log is created for error records. Errors need to be handled explicitly
4. Updation in database table is always synchronous Updation in database table can be synchronous Or Asynchronous.
Error Handling in CALL TRANSACTION
When Session Method updates the records in database table, error records are stored in the log file. In Call transaction there is no such log file available and error record is lost unless handled. Usually you need to give report of all the error records i.e., records which are not inserted or updated in the database table. This can be done by the following method:
Steps for the error handling in CALL TRANSACTION
1. Internal table for the data (structure similar to your local file)
2. BDCTAB like BDCDATA
3. Internal table BDCMSG like BDCMSGCOLL
4. Internal table similar to Ist internal table
(Third and fourth steps are for error handling)
5. UPLOAD or WS_UPLOAD function to upload the data from the local file to itab. (Considering file is local file)
6. Loop at itab.
Populate BDCTAB table.
Call transaction <tr.code> using <Bdctab>
Mode <A/N/E>
Update <S/A>
Messages <BDCMSG>.
Perform check.
Refresh BDCTAB.
Endloop.
7 Form check.
IF sy-subrc <> 0. (Call transaction returns the sy-subrc if updating is not successful).
Call function Format_message.
(This function is called to store the message given by system and to display it along with record)
Append itab2.
Display the record and message.
DIRECT INPUT
About Direct Input
In contrast to batch input, this technique does not create sessions, but stores the data directly. It does not simulate the online transaction. To enter the data into the corresponding database tables directly, the system calls a number of function modules that execute any necessary checks. In case of errors, the direct input technique provides a restart mechanism. However, to be able to activate the restart mechanism, direct input programs must be executed in the background only. Direct input checks the data thoroughly and then updates the database directly.
You can start a Direct Input program in two ways;
Start the program directly
This is the quickest way to see if the program works with your flat file. This option is possible with all direct input programs. If the program ends abnormally, you will not have any logs telling you what has or has not been posted. To minimize the chance of this happening, always use the check file option for the first run with your flat file. This allows you to detect format errors before transfer.
Starting the program via the DI administration transaction
This transaction restarts the processing, if the data transfer program aborts. Since DI document are immediately posted into the SAP D/B, the restart option prevents the duplicate document posting that occurs during a program restart (i.e., without adjusting your flat file).
Direct input is usually done for standard data like material master, FI accounting document, SD sales order and Classification for which SAP has provided standard programs.
First time you work with the Direct Input administration program, you will need to do some preparation before you can transfer data:
- Create variant
- Define job
- Start job
- Restart job
Common batch input errors
- The batch input BDCDATA structure tries to assign values to fields which do not exist in the current transaction screen.
- The screen in the BDCDATA structure does not match the right sequence, or an intermediate screen is missing.
- On exceptional occasions, the logic flow of batch input session does not exactly match that of manual online processing. Testing the sessions online can discover by this.
- The BDCDATA structure contains fields, which are longer than the actual definition.
- Authorization problems.
RECORDING A BATCH INPUT
A B recording allows you to record a R/3 transaction and generate a program that contains all screens and field information in the required BDC-DATA format.
You can either use SHDB transaction for recording or
SYSTEM ? SERVICES ? BATCH INPUT ? EDIT
And from here click recording.
Enter name for the recording.
(Dates are optional)
Click recording.
Enter transaction code.
Enter.
Click Save button.
You finally come to a screen where, you have all the information for each screen including BDC_OKCODE.
Click Get Transaction.
Return to BI.
Click overview.
Position the cursor on the just recorded entry and click generate program.
Enter program name.
Click enter
The program is generated for the particular transaction.
BACKGROUND PROCESSING
Need for Background processing
When a large volume of data is involved, usually all batch inputs are done in background.
The R/3 system includes functions that allow users to work non-interactively or offline. The background processing systems handle these functions.
Non-interactively means that instead of executing the ABAP/4 programs and waiting for an answer, user can submit those programs for execution at a more convenient planned time.
There are several reasons to submit programs for background execution.
The maximum time allowed for online execution should not exceed 300 seconds. User gets TIMEOUT error and an aborted transaction, if time for execution exceeds 300 seconds. To avoid these types of error, you can submit jobs for background processing.
You can use the system while your program is executing.
This does not mean that interactive or online work is not useful. Both type of processing have their own purposes. Online work is the most common one entering business data, displaying information, printing small reports, managing the system and so on. Background jobs are mainly used for the following tasks; to process large amount of data, to execute periodic jobs without human intervention, to run program at a more convenient, planned time other than during normal working hours i.e., Nights or weekends.
The transaction for background processing is SM36.
Or
Tools ? Administration ? Jobs ? Define jobs
Or
System ? services ? Jobs
Components of the background jobs
A job in Background processing is a series of steps that can be scheduled and step is a program for background processing.
Job name. Define the name of assigned to the job. It identifies the job. You can specify up to 32 characters for the name.
Job class. Indicates the type of background processing priority assigned to the job.
The job class determines the priority of a job. The background system admits three types of job classes: A B & C, which correspond to job priority.
Job steps. Parameters to be passed for this screen are as follows:
Program name.
Variant if it is report program
Start criteria for the job: Option available for this are as follows:
Immediate - allows you to start a job immediately.
Date/Time - allows you to start a job at a specific name.
After job - you can start a job after a particular job.
After event - allows you to start a job after a particular event.
At operation mode - allows you to start a job when the system switches to a particular operation mode.
Defining Background jobs
It is two step process: Firstly, you define the job and then release it.
When users define a job and save it, they are actually scheduling the report i.e., specifying the job components, the steps, the start time.
When users schedule program for background processing, they are instructing the system to execute an ABAP/4 report or an external program in the background. Scheduled jobs are not executed until they are released. When jobs are released, they are sent for execution to the background processing system at the specified start time. Both scheduling and releasing of jobs require authorizations.
HANDLING OF POP UP SCREEN IN BDC
Many times in transaction pop up screen appears and for this screen you dont pass any record but some indication to system telling it to proceed further. For example: The following screen
To handle such screen, system has provided a variable called BDC_CURSOR. You pass this variable to BDCDATA and process the screen.
Usually such screen appears in many transactions, in this case you are just passing information, that YES you want to save the information, that means YES should be clicked. So you are transferring this information to BDCDATA i.e., field name of YES which is usually SPOT_OPTION. Instead of BDC_OKCODE, you are passing BDC_CURSOR.
BDC_CURSOR is also used to place cursor on particular field.
A simple transaction where you are entering customer number on first screen and on next screen data is displayed for the particular customer number. Field, which we are changing here, are name and city. When you click on save, the changed record gets saved.
Prerequisite to write this BDC interface as indicated earlier is:
1. To find screen number
2. To find screen field names, type of the field and length of the field.
3. To find BDC_OKCODE for each screen
4. Create flat file.
generally Batch Input usually are used to transfer large amount of data. For example you are implementing a new SAP project, and of course you will need some data transfer from legacy system to SAP system.
CALL TRANSACTION is used especially for integration actions between two SAP systems or between different modules. Users sometimes wish to do something like that click a button or an item then SAP would inserts or changes data automatically. Here CALL TRANSACTION should be considered.
2. Transfer data for multiple transactions usually the Batch Input method is used.
check these sites for step by step process:
For BDC:
http://myweb.dal.ca/hchinni/sap/bdc_home.htm
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&
http://www.sap-img.com/abap/learning-bdc-programming.htm
http://www.sapdevelopment.co.uk/bdc/bdchome.htm
http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm
http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
Check these link:
http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
http://www.sap-img.com/abap/question-about-bdc-program.htm
http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/
http://www.planetsap.com/bdc_main_page.htm
call Transaction or session method ?
null
Maybe you are looking for
-
B/W G3 & house full of non-DVD imacs, want to go to Tiger, ? FW DVD?
Hello, I've searched the forum and apologize if this question is redundant, but I'm requesting help. I've got a B/W G3 running OS9 which has a CDR drive. I also have three networked G3&4 iMacs running OS9 and a clamshell iBook running OS9. Only one o
-
How to send an ABAP report to Microsoft Outlook
Hi All. May you please help me out on this one, i am trying to send an ABAP report to Microsoft Outlook? I am not even sure where to start so please help me out i know you can help me... Kind Regards, Fred.
-
Mapping function module paramters dynamically with a selection screen
Hi Experts, I got a situation, i am maintaining data of a function module paramters in a dictionary table. in the screen pbo i will fetch the the fm data from that table into the internal table(ITAB). in my report screen i am having the selection scr
-
hi, my memory was full so i decided to backup my iphone to the laptop and by mistake everything got deleteed and got replaced by the old backup? anyway i can get my stuff back ?
-
Connecting TC directly to my macbook via ethernet cable
Folks, I've looked at a number of posts on this topic but I must be missing a step because it is not working. Simply want to do file transfer via ethernet. so... I connect a ethernet cable from the TC to my Macbook - what do I do next?