Help with basic ABAP code (merge internal tables, sort of...)
Hello,
Can someone please help write some basic code for a Basis guy with limited ABAP knowledge?
Should be some easy points for an experienced ABAPer!
I have identicaly structured internal tables I_A and I_B and I_C which have already been filled by function models I called.
How will I code the following?:
I want to read all the data of I_A into a new internal table I_MASTER (structured the same as I_A,I_B and I_C).
Then I want to read I_B and:
1)Update I_MASTER with NEW records
2)Update existing records if the value of field MYFIELD in I_B is smaller than the value of MYFIELD in I_MASTER.
Then I want to read I_C and:
1)Update I_MASTER with NEW records
2)Update existing records if the value of field MYFIELD in I_C is smaller than the value of MYFIELD in I_MASTER.
Let me know if I can provide anymore information.
Thanks in advance for you help!
Adriaan
Message was edited by: Adriaan
Message was edited by: Adriaan
Hi Adriaan ,
I want to read all the data of I_A into a new internal table I_MASTER (structured the same as I_A,I_B and I_C).
<b>i_master[] = i_a[] .</b>
loop at i_b .
read table i_master with key myfiled < i_b-myfield .
if sy-subrc = 0 .
append i_master from i_b .
endif.
endloop.
loop at i_c .
read table i_master with key myfiled < i_c-myfield .
if sy-subrc = 0 .
append i_master from i_c .
endif.
endloop.
Let me know if this helped .
Regards,
Varun .
Message was edited by: varun sonu
Similar Messages
-
Need Help With Simple ABAP Code
Hello,
I'm loading data from a DSO (ZDTBMAJ) to an Infocube (ZCBRAD06). I need help with ABAP code to some of the logic in Start Routine. DSO has 2 fields: ZOCTDLINX & ZOCBRDMAJ.
1. Need to populate ZOCPRODCD & ZOCREFNUM fields in Infocube:
Logic:-
Lookup /BI0/PMATERIAL, if /BIC/ZOCBRDMAJ = /BIC/OIZOCBRDMAJ
then /BIC/ZOCPRODCD = ZOCPRODCD in Infocube
/BIC/ZOCREFNUM = ZOCREFNUM in Infocube
2. Need to populate 0G_CWWTER field in Infocube:
Logic:
Lookup /BIC/PZOCTDLINX, if /BIC/ZOCTDLINX = BIC/OIZOCTDLINX
then G_CWWTER = 0G_CWWTER in Infocube.
I would need to read single row at a time.
Thanks!I resolved it.
-
Using aggregation in ABAP code for internal table
I have written following code to get cumulative amount on a date but i have to hit database for each record.
Can't I use some function similar to SUM for doing the same thing on internal table??It would increase my performance.
code is:
SELECT SUM( DEB_CRE_LC ) FROM /BIC/AZFIAR_O500
INTO LV_BALMONTH WHERE DEBITOR = LV_DEBITOR AND
CALMONTH GE LV_STARTMONTH AND CALMONTH LE LV_LASTCALMON.
I want to put ZFIAR data to internal table and read and do SUM thing..is it possible?? withotut usiong loop.
regards,
rakeshHi Rajesh,
types : begin of ty_tab,
date type dats,
DEB_CRE_LC type ..... " delare type & is the filed need to summerized
end of ty_tab,
data: itab type standard table of ty_tab.
SELECT date
SUM( DEB_CRE_LC ) as DEB_CRE_LC FROM /BIC/AZFIAR_O500
INTO corresponding fields of itab
where CALMONTH GE LV_STARTMONTH AND CALMONTH LE LV_LASTCALMON
group by date. " date is the field available in your ODS/transparent table
simulate the above code in your program...
Hope this will work.. -
Would like help with treeset ,the codes that using for sorting, please ?
hi every body. i faced a problem while writing this program, everything worked properly except this one. The program is related to Jframe and it asks the user to add three labels , three text field , one text area and three Jbuttons which are add sort and exit. i could deal with add and exit but sort, i couldn't do it properly because i don't know the codes that should be added in actionperfomed?
These codes are :
package gui;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import sun.misc.Sort;
import domain.Student;
public class StudentFrame extends JFrame {
* This method initializes btnAdd
* @return javax.swing.JButton
private JButton getBtnAdd() {
if (btnAdd == null) {
btnAdd = new JButton();
btnAdd.setBounds(new Rectangle(13, 135, 59, 27));
btnAdd.setText("Add");
btnAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
btnAddClicked(); // TODO Auto-generated Event stub actionPerformed()
return btnAdd;
protected void btnAddClicked() {
// TODO Auto-generated method stub
String name = txtName.getText();
String id = txtID.getText();
String age = txtAge.getText();
Student s = new Student(name , id , age);
txtArea.setText(String.valueOf(s ));
* This method initializes btnSort
* @return javax.swing.JButton
private JButton getBtnSort() {
if (btnSort == null) {
btnSort = new JButton();
btnSort.setBounds(new Rectangle(95, 136, 62, 25));
btnSort.setText("Sort");
btnSort.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
btnSortClicked(); // TODO Auto-generated Event stub actionPerformed()
return btnSort;
protected void btnSortClicked() {
// TODO Auto-generated method stub
* This method initializes btnExit
* @return javax.swing.JButton
private JButton getBtnExit() {
if (btnExit == null) {
btnExit = new JButton();
btnExit.setBounds(new Rectangle(173, 134, 61, 23));
btnExit.setText("Exit");
btnExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.exit(0); // TODO Auto-generated Event stub actionPerformed()
return btnExit;
* This method initializes txtName
* @return javax.swing.JTextField
private JTextField getTxtName() {
if (txtName == null) {
txtName = new JTextField();
txtName.setBounds(new Rectangle(79, 11, 60, 23));
return txtName;
* This method initializes txtID
* @return javax.swing.JTextField
private JTextField getTxtID() {
if (txtID == null) {
txtID = new JTextField();
txtID.setBounds(new Rectangle(73, 55, 65, 26));
return txtID;
* This method initializes txtAge
* @return javax.swing.JTextField
private JTextField getTxtAge() {
if (txtAge == null) {
txtAge = new JTextField();
txtAge.setBounds(new Rectangle(74, 96, 61, 24));
return txtAge;
* This method initializes txtArea
* @return javax.swing.JTextArea
private JTextArea getTxtArea() {
if (txtArea == null) {
txtArea = new JTextArea();
txtArea.setBounds(new Rectangle(138, 5, 154, 128));
return txtArea;
* @param args
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
StudentFrame thisClass = new StudentFrame();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
* This is the default constructor
public StudentFrame() {
super();
initialize();
* This method initializes this
* @return void
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
return jContentPane;
}Edited by: hypocrisy on Apr 26, 2009 6:51 PMThere are three actionPerformed in that program.One for add Jbutton , Sort , and Exit
the codes that i have added for add button after action performed are
String name = txtName.getText();
String id = txtID.getText();
String age = txtAge.getText();
Student s = new Student ( name , id , age);
System.out.println(s);
the codes for Exit button to make it works properly was :
System.out.println(0);
But when i came to Sort Button and i tried to enter many codes but it didn't sort properly so would you like to help me with the right codes :) -
Hi "Friends",
I have small problem, but i don't know how to solve it.
I changed an old program which had just executable report function. The display was written with "WRITE" sentence.
here is the code:
WRITE: / OUTPUT-MATKL(4), '|',
T023T-WGBEZ, '|',
AT 30 OUTPUT-MATNR+12(6), '|',
AT 39 OUTPUT-MAKTX, '|',
AT 90 OUTPUT-LABST, '|',
AT 110 OUTPUT-OMENG, '|',
AT 135 OUTPUT-BMENG, '|',
AT 165 VERFUEGBAR, '|'.
How can I set in new code that the columns will start at the same point?
New code:
FORM BUILD_LINE USING IW_DATA. "$001 start
FIELD-SYMBOLS: <L_VALUE>, "$001
<L_DATUM_EX>. "$001
DATA: L_LEN TYPE I. "$001
DATA: L_STRLEN TYPE I. "$001
DATA: L_TYPE. "$001
DATA: H_DATE_EXTERNAL(10) TYPE C. "$001
CLEAR: G_TRANSFER. "$001
REFRESH: GTW_FIELDS. "$001
APP_NAME 'MATKL'.
APP_NAME 'WGBEZ'.
APP_NAME 'MATNR'.
APP_NAME 'MAKTX'.
APP_NAME 'LABST'.
APP_NAME 'OMENG'.
APP_NAME 'BMENG'.
APP_NAME 'VERFUEGBAR'.
And my question is how to set in new code that the A column starts AT 30, second AT 90.... How to set this?
I put the AT 30 infront of the APP_NAME, but doesn't work!! Please help.
Thanks for the help,
<b><REMOVED BY MODERATOR></b>... and it is urgent )
BR
saso
Message was edited by: Saso
Saso Poljansek
Message was edited by:
Alvaro Tejada GalindoUf, but I would like to write on unix file now and this write is'n possible anymore...
Here is the code I need to change... At this piece of code i need to change that the columns will be a the same place as was before when I used write sentance... There is another external program behind and I need to have the same structure as I have before....
*& Form build_line
text
-->P_I_DATA text
FORM BUILD_LINE USING IW_DATA. "$001 start
FIELD-SYMBOLS: <L_VALUE>, "$001
<L_DATUM_EX>. "$001
DATA: L_LEN TYPE I. "$001
DATA: L_STRLEN TYPE I. "$001
DATA: L_TYPE. "$001
DATA: H_DATE_EXTERNAL(10) TYPE C. "$001
CLEAR: G_TRANSFER. "$001
REFRESH: GTW_FIELDS. "$001
APP_NAME 'MATKL'. "$001
*****************write also this from the customizing table
APP_NAME 'WGBEZ'. "$001
APP_NAME 'MATNR'. "$001
APP_NAME 'MAKTX'. "$001
APP_NAME 'LABST'. "$001
APP_NAME 'OMENG'. "$001
APP_NAME 'BMENG'. "$001
*****************write also this from the customizing table
APP_NAME 'VERFUEGBAR'. "$001
LOOP AT GTW_FIELDS. "$001
CLEAR SY-SUBRC. "$001
ASSIGN COMPONENT GTW_FIELDS-NAME OF STRUCTURE IW_DATA "$001
TO <L_VALUE>. "$001
CHECK SY-SUBRC = 0. "$001
DESCRIBE FIELD <L_VALUE> OUTPUT-LENGTH L_LEN. "$001
DESCRIBE FIELD <L_VALUE> TYPE L_TYPE. "$001
CASE L_TYPE. "$001
WHEN 'D'. "$001
CLEAR: H_DATE_EXTERNAL. "$001
ASSIGN H_DATE_EXTERNAL TO <L_DATUM_EX>. "$001
CALL 'DATE_CONV_INT_TO_EXT' "$001
ID 'DATINT' FIELD <L_VALUE> "$001
ID 'DATEXT' FIELD <L_DATUM_EX>. "$001
UNASSIGN: <L_VALUE>. "$001
ASSIGN <L_DATUM_EX> TO <L_VALUE>. "$001
ENDCASE. "$001
L_STRLEN = STRLEN( G_TRANSFER ). "$001
WRITE <L_VALUE> TO G_TRANSFER+L_STRLEN(L_LEN). "$001
L_STRLEN = L_STRLEN + L_LEN. "$001
WRITE '|' TO G_TRANSFER+L_STRLEN. "$001
AT LAST. "$001
SHIFT G_TRANSFER BY 1 PLACES RIGHT. "$001
WRITE '|' TO G_TRANSFER+0(1). "$001
ENDAT. "$001
CLEAR: L_STRLEN. "$001
ENDLOOP. "$001
ENDFORM. " build_line "$001 end -
I am trying to fill the quantity value if it is blank by looking for a record with the key and putting it's value in it. the code is below but the part whee it says where order_qty > 0 is not working. It just hops out even if it is.
CLEAR: T_SCHED_DATA, T_QUANTITY_DATA.
REFRESH: T_SCHED_DATA, T_QUANTITY_DATA.
SELECT DOC_NUMBER S_ORD_ITEM SCHED_LINE DSDEL_DATE REQ_DATE ORDER_QTY
INTO TABLE T_SCHED_DATA
FROM /BIC/AZSCH_O5400
FOR ALL ENTRIES IN DATA_PACKAGE
WHERE
DOC_NUMBER = DATA_PACKAGE-DOC_NUMBER AND
S_ORD_ITEM = DATA_PACKAGE-S_ORD_ITEM AND
SCHED_LINE = DATA_PACKAGE-SCHED_LINE.
SELECT DOC_NUMBER S_ORD_ITEM SCHED_LINE DSDEL_DATE REQ_DATE ORDER_QTY
INTO TABLE T_QUANTITY_DATA
FROM /BIC/AZSCH_O5400
FOR ALL ENTRIES IN T_SCHED_DATA
WHERE
DOC_NUMBER = T_SCHED_DATA-VBELN AND
S_ORD_ITEM = T_SCHED_DATA-POSNR.
T_QUANTITY_DATA2[] = T_QUANTITY_DATA[].
sort t_quantity_data2 by vbeln posnr SCHED_LINE
ascending.
sort t_quantity_data by vbeln posnr SCHED_LINE
ascending.
loop at T_QUANTITY_DATA into LF_DATA
where order_qty > 0.
loop at T_QUANTITY_DATA2 into LF_DATA2
where
vbeln = LF_DATA-VBELN AND
posnr = LF_DATA-POSNR AND
DSDEL_DATE = LF_DATA-DSDEL_DATE AND
SCHED_LINE NE LF_DATA-SCHED_LINE and
order_qty = 0.
lf_data3 = lf_data2.
move LF_DATA-order_qty to lf_data3-order_qty.
append lf_data3 to T_QUANTITY_DATA3.
endloop.
endloop.loop at T_QUANTITY_DATA into LF_DATA
where <b>order_qty > 0.</b> <b> " when this is greater than zero</b>
loop at T_QUANTITY_DATA2 into LF_DATA2
where
vbeln = LF_DATA-VBELN AND
posnr = LF_DATA-POSNR AND
DSDEL_DATE = LF_DATA-DSDEL_DATE AND
SCHED_LINE NE LF_DATA-SCHED_LINE and
<b>order_qty = 0.</b> <b>" how can it be zero here</b>
lf_data3 = lf_data2.
move LF_DATA-order_qty to lf_data3-order_qty.
append lf_data3 to T_QUANTITY_DATA3.
endloop.
endloop. -
Hi All,
My design wont allow Delta loads because the transformation source is an InfoSet. To limit the data in these loads, I require a filter in the DTPs on fiscal year/period then only load I can load the current month and 2 prior months. Now we are updating manually for the DTPs. To eliminate this monthly task a dynamic filter (routine) needs should be used rather than a static filter.
So I have written as follows But in the debugger mode am able to see the -3months to the current date but records are not filtered. Any help please
*& Include RSBC_SEL_ROUTINE_TPL -
program conversion_routine.---
Type pools used by conversion program---
type-pools: rsarc, rsarr, rssm.---
tables: rssdlrange.---
Global code used by conversion rules---
$$ begin of global - insert your declaration only below this line ----
TABLES: ...---
DATA: ...------
$$ end of global - insert your declaration only before this line ----
Fieldname = F139---
data type = NUMC---
length = 000007---
form compute_F139---
tables l_t_range structure rssdlrange---
changing p_subrc like sy-subrc.---
Insert source code to current selection field---
$$ begin of routine - insert your code only below this line ----
data: l_idx like sy-tabix.---
read table l_t_range with key---
fieldname = '/bic/0FISCPER' .---
l_idx = sy-tabix.---
DATA: w_date TYPE SY-DATUM,---
w_date1 type sy-datum,---
lv_idate(8) type n,---
lv_odate(8) type n,---
lv_date1(7) type n,---
lv_date2(8) type n.---
CONCATENATE SY-DATUM0(4) SY-DATUM4(2) sy-datum+6(2) into W_DATE.---
CALL FUNCTION 'SEPA_MANDATE_ADD_MONTH_TO_DATE'---
EXPORTING---
MONTHS = '-3'---
OLDDATE = W_DATE---
IMPORTING---
NEWDATE = W_DATE1.---
Concatenate W_DATE0(4) W_DATE4(2) W_DATE+6(2) into lv_Idate.---
Concatenate W_DATE10(4) W_DATE14(2) W_DATE1+6(2) into lv_odate.---
Concatenate '0' W_DATE4(2) '.' W_DATE0(4) into lv_date2.---
Concatenate '0' W_DATE14(2) W_DATE10(4) into lv_date1.---
CALL FUNCTION 'UMC_CALDAY_TO_FISCPER'---
EXPORTING---
I_PERIV = 'K1'---
I_CALDAY = lv_Idate---
IMPORTING---
OUTPUT = lv_date1.---
CALL FUNCTION 'UMC_CALDAY_TO_FISCPER'---
EXPORTING---
I_PERIV = 'K1'---
I_CALDAY = lv_odate---
IMPORTING---
OUTPUT = lv_date2.---
*l_t_range-iobjnm = '0FISCPER'.---
l_t_range-fieldname = '/bic/0FISCPER'.---
l_t_range-sign = 'I'.---
l_t_range-option = 'GE'.---
l_t_range-low = lv_date1.---
*l_t_range-high = lv_date2.---
if l_idx <> 0.---
modify l_t_range index l_idx.---
else.---
append l_t_range.---
endif.---
p_subrc = 0.---
$$ end of routine - insert your code only before this line ----
endform.---
-Ashwin
Edited by: ashwin kumar on Jun 16, 2010 10:04 AM1. In the future, please use a meaningful subject line, like "loop not performing last iteration." Just saying "Help in my java code" is useless. We know you need help with your Java code, else you wouldn't be posting here.
2. Repost your code without those annoying superfluous asterisks, and with proper indentation in the section that they are currently polluting. It's too hard to read as-is. -
Read MULTIPLE idocs data with all sgmn to my internal table in a single
Dear SAP Folks!
I have a question, I know to read SINGLE idoc data with all segments, we have FM IDOC_READ_COMPLETELY but my requirement is to Read MULTIPLE idocs data with all segments to my internal table in a single shot without keeping this FM in loop! since it is performance issue, at a time i may want to read 1000 idocs data!
Could anyone please let me know is there any way to get this, keeping mind of performance and any other FM?
Best Regards,
SriniHi,
I know idoc numbers and i can write a select Query to DB table EDID4 to get all segments data to my internal table. But i am looking for FM to do this. because i have too many number of idocs and each idoc is having many segments(I am thinking in performance point of view!) The FM IDOC_READ_COMPLETELY can accept only ONE IDOC number as import parameters at a time to get segment data. in similar way do we have any other FM? or other way? except select query to EDID4 table?
Best Regards,
Srini -
Need help with a activation code for Adobe Acrobat X Standard for my PC, Don't have older Version of Adobe Acrobat 9, 8 or 7.
You don't need to install the older version, you only need the serial number from your original purchase. If you don't have them to hand, did you register? If so, they should be in your Adobe account. If not you really need to contact Adobe, though it isn't clear they will be able to do anything without some proof of purchase etc.
-
Create an internal table with the rows of another internal table.
Hi I want to know if posible to create an internal table structure with the rows of another internal table?
ex.
If in i_tab column A has this values: row 1 = first, row 2 = second, row 3 = third.
Now I want that the structure of my internal table be: first, second, thirdHi,
If you do this way then what will be the difference between the two table anyway?? First internal table has the same structure irrespective of which row you select. and you are going to store the data from each row to the rows of the second internal table. In that case, the structure of the internal table is the same as first table. and it would have same rows.
Am I missing something here? or you want to declare the internal table with each field being the structure of the first table? In this case you'd have to do a dynamic declaration of data as the first table can have any no of rows then the second table would have any no of fields in the structure.
Now if you know that your first internal table is going to have a fixed no of rows eg 3 rows then it becomes simple. Do the following then
Data: begin of second_table occurs 0,
first type <first_table type>,
second type <first_table type>,
third type <first_table type>,
end of second_table.
Regards
Prasenjit -
Purchased DVD in US for Cdn viewing. Digital download will not work in Cda or US? please help with new Digital code that will work
You will need to contact the movie studio that produced the DVD and ask if they can issue you a new code valid for Canada. Apple cannot help you, and everyone here in these forums is just a fellow user.
Regards. -
How to check internal table sorted or not
Hi all
I need to check internal table sorted or not which is without header line and having only one field and six values. please let me know how to check it is sorted or not because i need to display message if it is not sorted.
thanks,
MinalHi Minal,
Go through this info.
Sorted tables
This is the most appropriate type if you need a table which is sorted as you fill it. You fill sorted tables using the INSERT statement. Entries are inserted according to the sort sequence defined through the table key. Any illegal entries are recognized as soon as you try to add them to the table. The response time for key access is logarithmically proportional to the number of table entries, since the system always uses a binary search. Sorted tables are particularly useful for partially sequential processing in a LOOP if you specify the beginning of the table key in the WHERE condition.
Stable sort
The option
SORT <itab> ... STABLE.
allows you to perform a stable sort, that is, the relative sequence of lines that are unchanged by the sort is not changed. If you do not use the STABLE option, the sort sequence is not preserved. If you sort a table several times by the same key, the sequence of the table entries will change in each sort. However, a stable sort takes longer than an unstable sort.
Examples
DATA: BEGIN OF LINE,
LAND(3) TYPE C,
NAME(10) TYPE C,
AGE TYPE I,
WEIGHT TYPE P DECIMALS 2,
END OF LINE.
DATA ITAB LIKE STANDARD TABLE OF LINE WITH NON-UNIQUE KEY LAND.
LINE-LAND = 'G'. LINE-NAME = 'Hans'.
LINE-AGE = 20. LINE-WEIGHT = '80.00'.
APPEND LINE TO ITAB.
LINE-LAND = 'USA'. LINE-NAME = 'Nancy'.
LINE-AGE = 35. LINE-WEIGHT = '45.00'.
APPEND LINE TO ITAB.
LINE-LAND = 'USA'. LINE-NAME = 'Howard'.
LINE-AGE = 40. LINE-WEIGHT = '95.00'.
APPEND LINE TO ITAB.
LINE-LAND = 'GB'. LINE-NAME = 'Jenny'.
LINE-AGE = 18. LINE-WEIGHT = '50.00'.
APPEND LINE TO ITAB.
LINE-LAND = 'F'. LINE-NAME = 'Michele'.
LINE-AGE = 30. LINE-WEIGHT = '60.00'.
APPEND LINE TO ITAB.
LINE-LAND = 'G'. LINE-NAME = 'Karl'.
LINE-AGE = 60. LINE-WEIGHT = '75.00'.
APPEND LINE TO ITAB.
PERFORM LOOP_AT_ITAB.
SORT ITAB.
PERFORM LOOP_AT_ITAB.
SORT ITAB.
PERFORM LOOP_AT_ITAB.
SORT ITAB STABLE.
PERFORM LOOP_AT_ITAB.
SORT ITAB DESCENDING BY LAND WEIGHT ASCENDING.
PERFORM LOOP_AT_ITAB.
FORM LOOP_AT_ITAB.
LOOP AT ITAB INTO LINE.
WRITE: / LINE-LAND, LINE-NAME, LINE-AGE, LINE-WEIGHT.
ENDLOOP.
SKIP.
ENDFORM.
************rewords some points if it is helpful.
Rgds,
P.Naganjana Reddy -
ABAP proxy code using internal table
Hi XI guru's,
Good Afternoon,
My Scenario is ABAP Proxy to file using ztable.
i am getting data from Sap R/3 data base as Ztable. using this Ztable i have to write ABAP Proxy code. I generated ABAP Proxy and mentioned all below.Please send me ABAP Proxy code using this details. This is very urgent. Please help me.
ABAP proxy class: zco_mioa_tata
structure : zmt_tata
structure : zdt_tata
structure : zdt_tata_employee
Table : zdt_tata_employee_tab
Ztable : zcnu_proxy_table
outbound structure:
mt_tata
employee
thanks and regards
saiSai,
I guess this will help you.
1. Proxies can be a server proxy or client proxy. In our scenarios we require proxies to send or upload the data from/into SAP system.
2. One more thing proxies can be used if your WAS ≥ 6.2.
3. Use Tcode SPROXY into R/3 system for proxy use.
4. To send the data from R/3 system we use OUTBOUND PROXY. In Outbound proxy you will simply write an abap code to fetch the data from R/3 tables and then send it to XI. Below is the sample code to send the data from R/3 to XI.
REPORT zblog_abap_proxy.
DATA prxy TYPE REF TO zblogco_proxy_interface_ob.
CREATE OBJECT prxy.
DATA it TYPE zblogemp_profile_msg.
TRY.
it-emp_profile_msg-emp_name = 'Sarvesh'.
it-emp_profile_msg-empno = '01212'.
it-emp_profile_msg-DEPARTMENT_NAME = 'NetWeaver'.
CALL METHOD prxy->execute_asynchronous
EXPORTING
output = it.
commit work.
CATCH cx_ai_system_fault .
DATA fault TYPE REF TO cx_ai_system_fault .
CREATE OBJECT fault.
WRITE :/ fault->errortext.
ENDTRY.
Receiver adapter configurations should be done in the integration directory and the necessary sender/receiver binding should be appropriately configured. We need not do any sender adapter configurations as we are using proxies.
5. To receive data into R/3 system we use INBOUND PROXY. In this case data is picked up by XI and send it to R/3 system via XI adapter into proxy class. Inside the inbound proxy we careate an internal table to take the data from XI and then simply by using the ABAP code we update the data inot R/3 table. BAPI can also be used inside the proxy to update the data into r/3.
I hope this will clear few doubts in proxy.
Just go through these links:
http://help.sap.com/saphelp_nw04/helpdata/en/14/555f3c482a7331e10000000a114084/frameset.htm
ABAP Server Proxies By Siva Maranani
/people/siva.maranani/blog/2005/04/03/abap-server-proxies
/people/sravya.talanki2/blog/2006/07/28/smarter-approach-for-coding-abap-proxies
/people/vijaya.kumari2/blog/2006/01/26/how-do-you-activate-abap-proxies
/people/ravikumar.allampallam/blog/2005/03/14/abap-proxies-in-xiclient-proxy
File to R/3 via ABAP Proxy with good example
/people/prateek.shah/blog/2005/06/14/file-to-r3-via-abap-proxy
http://help.sap.com/saphelp_nw2004s/helpdata/en/48/d5a1fe5f317a4e8e35801ed2c88246/frameset.htm
Generating java proxies..
/people/prasad.ulagappan2/blog/2005/06/27/asynchronous-inbound-java-proxy
/people/rashmi.ramalingam2/blog/2005/06/25/an-illustration-of-java-server-proxy
Synchronous Proxies:
Outbound Synchronous Proxy
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/abap%2bproxy%2boutbound%2bprogram%2b-%2bpurchase%2border%2bsend
Inbound Synchronous Proxy
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/abap%2bproxy%2binbound%2bprogram%2b-%2bsales%2border%2bcreation
Regards,
Sarvesh -
ABAP OO - Passing Internal Tables from Method to Method
I'm new to writing methods.
I have a need to build an internal table in METHOD1 and pass the internal table to METHOD2. I'm confused how to declare the table in 'Parameter' section of the METHOD2. I have specified the following:
Parameter = WTAB1
Type = Import
Pass value = blank
Optonal = Blank
Typing Method = Type
Associated type = ZSCIW and this is declared in DDIC as a data type with fields ZZLINE(72) and ZZPOS(4)
Default value = blank
METHOD1 (simplified example)
method METHOD1.
Table of individual words from source code
types: begin of wline,
WORD(72),
POSN(4),
end of wline,
wlines type standard table of wline with default key.
data: wx type wlines,
wa like line of wx.
Clear past results
REFRESH: Wx.
Look through source code...
LOOP AT ref_include->lines into wa.
APPEND wa.
ENDLOOP.
Call METHOD2 and pass internal table wa
METHOD2 ( ).
1. How to you define the parameters in METHOD2.
2. What is the coding in METHOD1 to call METHOD2.
Your help will really be appreciated.
Thanks.
SoyabFor funtion module to class
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
for classes
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
for methods
http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
for inheritance
http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
for interfaces
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
Check these links.
http://www.henrikfrank.dk/abapuk.html
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/abap%20objects/abap%20code%20sample%20to%20learn%20basic%20concept%20of%20object-oriented%20programming.doc
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/alv%20grid/abap%20code%20sample%20to%20display%20data%20in%20alv%20grid%20using%20object%20oriented%20programming.doc
Go through the below links,
For Materials:
1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
OO ABAP links:
1) http://www.erpgenie.com/sap/abap/OO/index.htm
2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
go through these links
http://www.erpgenie.com/abap/index.htm
http://sic.fh-lu.de/sic/bic.nsf/(vJobangebote)/EC8AD2AE0349CE92C12572200026FDB8/$File/Intern%20or%20Working%20Student%20as%20ABAB%20OO%20Developer.pdf?Open
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
ABAP_OBJECTS_ENJOY_0 Template for Solutions of ABAP Object Enjoy Course
ABAP_OBJECTS_ENJOY_1 Model Solution 1: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_2 Model Solution 2: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_3 Model Solution 3: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_4 Model Solution 4: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_5 Model Solution 5: ABAP Objects Enjoy Course
DEMO_ABAP_OBJECTS Complete Demonstration for ABAP Objects
DEMO_ABAP_OBJECTS_CONTROLS GUI Controls on Screen
DEMO_ABAP_OBJECTS_EVENTS Demonstration of Events in ABAP Objects
DEMO_ABAP_OBJECTS_GENERAL ABAP Objects Demonstration
DEMO_ABAP_OBJECTS_INTERFACES Demonstration of Interfaces in ABAP Objects
DEMO_ABAP_OBJECTS_METHODS Demonstration of Methods in ABAP Objects
DEMO_ABAP_OBJECTS_SPLIT_SCREEN Splitter Control on Screen
check the below links lot of info and examples r there
http://www.sapgenie.com/abap/OO/index.htm
http://www.geocities.com/victorav15/sapr3/abap_ood.html
http://www.brabandt.de/html/abap_oo.html
Check this cool weblog:
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
For funtion module to class
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
for classes
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
for methods
http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
for inheritance
http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
for interfaces
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
For Materials:
1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
<b>good book on ABAP objects(OOPS)
http://www.esnips.com/doc/bc475662-82d6-4412-9083-28a7e7f1ce09/Abap-Objects---An-Introduction-To-Programming-Sap-Applications</b>
Rewards if useful..............
Minal -
Doubts with control break statements on internal table loops (AT/ENDAT)
Hi, i've had a couple of doubts for a long while which I hope someone can clarify today:
1) I know how to use the AT statements, however, i'm not sure I get correctly what this part of help regarding this commands means:
<i>"The control level structure with internal tables is static. It corresponds exactly to the sequence of columns in the internal table (from left to right). In this context, the criteria according to which you sort the internal table are unimportant."</i>
I've always sorted the internal table before the control break and it works that way. For example:
SORT ITAB BY EBELN EBELP.
LOOP AT ITAB.
AT NEW EBELN.
* Code for the order header
ENDAT.
ENDLOOP.
If I <b>don't</b> sort the internal table, it doesn't work! (i get dupplicated processing). In the example, if i have more than one register with the same EBELN and they're not consecutive, the header gets processed twice. I really don't get that part of the help text.
2) I know this: <i>"At the start of a new control level (i.e. immediately after AT), the following occurs in the output area of the current LOOP statement:
All character type fields (on the right) are filled with "*" after the current control level key.
All other fields (on the right) are set to their initial values after the current control level key."</i>
My doubt is: WHY is that this way? Because sometimes (most times) I need those fields INSIDE the statement! So when that happened i've solved it in one of three ways:
LOOP AT ITAB INTO WA_ITAB.
WA_ITAB_AUX = WA_ITAB.
AT NEW FIELD.
WA_ITAB = WA_ITAB_AUX.
* ...Rest of the code for the first register
ENDAT.
ENDLOOP.
LOOP AT ITAB INTO WA_ITAB.
AT NEW FIELD.
READ TABLE ITAB INDEX SY-TABIX INTO WA_ITAB.
* ...Rest of the code for the first register
ENDAT.
ENDLOOP.
* (Without AT)
LOOP AT ITAB INTO WA_ITAB.
IF WA_ITAB-FIELD <> FIELD_AUX.
FIELD_AUX = WA_ITAB_FIELD.
* ...Rest of the code for the first register
ENDIF.
ENDLOOP.
Is there any problem with this way of coding? Can be done better?
Thank you very much in advance.Hi..,
1)
See if u sort the table on a field on which u r using AT ENDAT .. then all the records which are having the same value for that field will form a group or those reocrds will be at one place.. so when u sort the table for all the records AT ENDAT will get executed onli once..
If u dont sort this table on this field then all these records will be at different places and in between there may be records with different value for this field.. so this AT ENDAT will get executed for each record !!
2)
No u cannot use the Right hand fields of the field in the table .. Because these AT events work as Group based operations... So till that field on which AT ENDAT is working it breaks that record into two groups.. One is the left hand fields including that field.. and right hand fields as another group.. and makes the right hand group as stars ****. Thats y u can observe that even any one field in the left hand group changes the AT ENDAT will get executed !!!!
Hope u understood !!!
regards,
sai ramesh
Maybe you are looking for
-
My ipad mini 3 is asking for a passcode , but i havent set it up yet please help me
I am using a ipad mini 3 when I restart it, its asking for a passcode but I haven't set it up yet so can u hep me?
-
How do I filter a SharePoint list on blanks?
I have a large SharePoint list and want to create a view the shows only rows where a particular column is blank. I know there are some special values like [Today] and [Me]. Is there one for [Blank] or [Null]? How can this be done?
-
LED TV 40L5200U slow powering on
I have a LED 40" and start up takes about 20 to 30 secs before the Toshiba red logo appears. Is this normal? Unit is about 2 years old.
-
Use of between functionality in oracle
what is the use of between functionality in oracle my understanding is if i tell val between a and b then it should be >a and <b whether it will vary with different versions of oracle please clarify thanks in advance
-
Hi GUys, does anyone know if there is an existing BAPI or FM for creating a document in transaction FMBB? Many thanks, Ian