How to Fill custom table data using standrad BAPI
Hello Team,
I have some clarification on usage of Standard BAPI : BAPI_Material_savereplica.
I have some custom fields in MARA and MARC tables so i have used BAPIExtensionin and able to pass custom field of MARA and MARC.
My issue is in material master the MARC custom fields of a material are going to update in a Z table along with MARC table.
So can we achieve this functionalioty using BAPI : BAPI_Material_savereplica menas can we upadate custom table by using standarda bapi
Please let me know the available options ..
Hi Some,
You are saying most of the data is resides out of sap, then you try with mapping of those data in sap standard tables if match or if not then develop a custom interface which will read data from outside & will put in your pay roll processor interface,
and normally your SAP data you can interface through PU12.
If you want single interface then you need to develop unique interface program.
All the best.
Similar Messages
-
How to fill or bind data using Value Node in Tree Node
Hi Gurus,
Can anybody help me on how to fill data or bind data using Value Node in Tree Node View. I know how to create Tree Node but not able to show value on the UI in Tree View.
Can u please let if anybody has done it?
Thanks in advance.
Madhusudancontinued...
TRY.
lv_child = me->node_factory->get_proxy(
iv_bo = lv_value_node
iv_parent_proxy = me
iv_proxy_type = 'ZL_CLASS_CN02' ).
lv_child->is_leaf = 'X'.
APPEND lv_child TO rt_children.
CATCH cx_sy_move_cast_error cx_sy_ref_is_initial.
ENDTRY.
In the above code iv_bo , lv_value_node will be the actual object of the second node or leaf node here, which will have the same structure of parent node along with data. After/before this, you would need to build table and refresh in do-prepare_output of IMPL class.In the above code iv_bo , lv_value_node will be the actual object of the second node or leaf node here, which will have the same structure of parent node along with data. After/before this, you would need to buid table and refresh in do-prepare_output of IMPL class.
ztyped_context->resultlist->build_table( ).
IF ztyped_context->resultlist->node_tab IS INITIAL.
ztyped_context->resultlist->refresh( ).
ENDIF.
Also the EH_ONEXPAND has to be implemented and event handled in DO_HANDLE_EVENT. But this expand event has to be delegated to context node directly as CL_BSP_WD_CONTEXT_NODE_TREE will already have the implementation.
ztyped_context->resultlist->expand_node( lv_event->row_key ).
Where in result list is the node ZL_CLASS_CN00.
After typing the whole content , i found this blog :). There are few things i have written more that in the blog. /people/poonam.assudani/blog/2009/06/24/create-a-tree-view-display-in-crm-web-ui
Regards,
Karthik -
How do u select tables data using the EBS web page?
Hi Friends,
I am in EBS 11i web pages url > http://vision.abc.com:8000/
using sysadmin account.
Is there a counter part web based module/menu to display table data ?
Like
select * from fnd_tables;
or
select * from po_vendors;
something like this that allow display of data
Thanks a lotyes but I want a web-based tool that uses URL not like the client server ones. :) which are not allowed by security audit. As a development tools, I believe SQL Developer and TOAD (in addition to SQL*Plus) are what you need (though these are client/server tools).
Oracle Enterprise Manager is a good monitoring tool (but not for development), you as a DBA can use EM and access it through a URL.
I might not necessarily be using sqlplus command. but a stored program like the concurrent fnd programs.There is no standard concurrent request that can help in achieving this. -
Problem in filling Custom segment data using User Exit for ZORDERS05
Hi,
I am using Process Code SD10 to generate the custom Idoc ZORDERS05.
The function module used is IDOC_OUTPUT_ORDRSP.
I am able to succesfully generate the Custom Idoc (VA02->Extras->Header->Edit) but unable to populate the custom segments in the IDOC.
I have tried to write the code in User Exit EXIT_SAPLVEDC_003 -> ZXVEDU15. But still I'm unable to populate the Z segments.
Even though I place a break point in the FM or in the User Exit during the generation of Idoc the control doesn't stop in FM nor in the User Exit.
I am unable to understand how to go about this.
Can anybody please help me with this?
Thanks in Adavance,
Rohan.Okay I under what you are speaking about NACE.
Yes that configuration has been done and I am sucessfully able to generate the IDOC.
But even though I know that in FM IDOC_OUTPUT_ORDRSP, I have to write code in User Exit EXIT_SAPLVEDC_003 to populate the Z segments; I'm unable to understand y the control doesn't pick the FM and Exit.
Right now I have code in the Exit to fill Z segments.
Thanks
Rohan. -
How to upload different views of customer master data using LSMW-IDOC
I need to upload customer master data using LSMW Idoc method for my client. Now customer will have different views like main view, Sales data, Company code data, Partner function data etc. And except main data all other data can be multiple for each customer. We are going to upload data from tab delimited .TXT file. Should I propose different LSMW for upload different views for the customer from different .TXT files? or we can upload all the customer related data (like main view data and partner function data )from a single .TXT file. Kindly suggest which one in convenient and how we can prepare the data file in both cases.
convinient is the method that you can handle.
but as the guy who loads the data you have to load the data like they are available, like it is convinient for others to prepare the data.
In general there is no problem to use an IDOC method to load a customer master with multiple comany codes and several sales orgs in one shot.
the data can be in one source file, but need then to be maintained in a certain way
Example1: all data in 1 structure
GD1 - CC1 - SO1
GD1 - CC2 - SO2
GD1 - CC2 - SO3
in this case the GD (general data) is redundand in each line which has different Company code data or different Sales Org data
Example2: all data in 3 sturcures but one file
GD1
.CC1
.CC2
..SO1
..SO2
..SO3
Example3: data delivered in 3 files - you join the files in LSMW, they must have a common identifier like the old customer number in the beginning of each file
FILE General data:
GD1
GD2
GD3
file Compamy code data:
CC1
CC2
CC3
file Sales org data:
SO1
SO2
SO3
LSMW is flexible and can handle each of this scenarios, are you flexible too? -
How to get pivot table by using dates
Hi,
How to get pivot table by using dates in column.
Below is the sample table and its value is given.
create table sample1
Order_DATE DATE,
order_CODE NUMBER,
Order_COUNT NUMBER
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('30-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),1,232);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('30-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),2,935);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('30-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),3,43);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('30-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),4,5713);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('30-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),5,11346);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('29-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),1,368);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('29-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),2,1380);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('29-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),3,133);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('29-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),4,7109);
Insert into sample1 (Order_DATE,order_CODE,Order_COUNT) values (to_timestamp('29-SEP-12','DD-MON-RR HH.MI.SSXFF AM'),5,14336);
select * from sample1;So how to get the data like below.
order_date
order_code 30-sep-12 29-sep-12
1 232 368
2 935 1380
3 43 133
4 5713 7109
5 11345 14336Using the extra data I inserted in my previous reply:select ORDER_CODE,
SUM(DECODE(extract (month from ORDER_DATE),1,ORDER_COUNT,0)) JAN,
SUM(DECODE(extract (month from ORDER_DATE),2,ORDER_COUNT,0)) FEB,
SUM(DECODE(extract (month from ORDER_DATE),3,ORDER_COUNT,0)) MAR,
SUM(DECODE(extract (month from ORDER_DATE),4,ORDER_COUNT,0)) APR,
SUM(DECODE(extract (month from ORDER_DATE),5,ORDER_COUNT,0)) MAY,
SUM(DECODE(extract (month from ORDER_DATE),6,ORDER_COUNT,0)) JUN,
SUM(DECODE(extract (month from ORDER_DATE),7,ORDER_COUNT,0)) JUL,
SUM(DECODE(extract (month from ORDER_DATE),8,ORDER_COUNT,0)) AUG,
SUM(DECODE(extract (month from ORDER_DATE),9,ORDER_COUNT,0)) SEP,
SUM(DECODE(extract (month from ORDER_DATE),10,ORDER_COUNT,0)) OCT,
SUM(DECODE(extract (month from ORDER_DATE),11,ORDER_COUNT,0)) NOV,
SUM(DECODE(extract (month from ORDER_DATE),12,ORDER_COUNT,0)) DEC
from SAMPLE1
where trunc(order_date, 'YY') = trunc(sysdate, 'YY')
group by order_code
order by order_code;
ORDER_CODE JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
1 0 0 0 0 0 0 0 0 600 600 0 0
2 0 0 0 0 0 0 0 0 2315 2315 0 0
3 0 0 0 0 0 0 0 0 176 176 0 0
4 0 0 0 0 0 0 0 0 12822 12822 0 0
5 0 0 0 0 0 0 0 0 25682 25682 0 0Now a bit of explanation.
1) Whenever you pivot rows to columns, no matter what version of Oracle and no matter what method you use, you have to decide in advance how many columns you are going to have and what the names of the columns are. This is a requirement of the SQL standard.
2) I use the WHERE clause to get just the data for this year
3) With EXTRACT, I get just the month without the year.
4) Using DECODE, I put every month's data into the correct column
5) Once I do all that, I can just GROUP BY order_code while SUMming all the data for each month. -
How to insert one table data into multiple tables by using procedure?
How to insert one table data into multiple tables by using procedure?
Below is the simple procedure. Try the below
CREATE OR REPLACE PROCEDURE test_proc
AS
BEGIN
INSERT ALL
INTO emp_test1
INTO emp_test2
SELECT * FROM emp;
END;
If you want more examples you can refer below link
multi-table inserts in oracle 9i
Message was edited by: 000000 -
How to load Matrix report data into basic table data using ODI
Hi,
How to load Matrix report data into basic table data using oracle Data Integrator ?
Requirement Description:
Following is the matrix report data:
JOB DEPT10 DEPT20
ANALYST 6000
CLERK 1300 1900 Need to convert it into below format:
JOB Dept Salary
ANALYST DEPT10
ANALYST DEPT20 6000
CLERK DEPT10 1300
CLERK DEPT20 1900
Thanks for your help in advance. Let me know if any further explanation is required.Your list seems to be a little restrictive, you can do a lot more with ODI procedures.
If you create new procedure, and add a step. In the 'command on source' tab set you technology and schema as per your source database. Use the unpivot functionality as described in the link, please, rather than using 'SELECT *' use the appropriate column names and alias them for eg:
SELECT job as job,
deptsal as deptsal,
saldesc as saledesc
FROM pivoted_data
UNPIVOT (
deptsal --<-- unpivot_clause
FOR saldesc --<-- unpivot_for_clause
IN (d10_sal, d20_sal, d30_sal, d40_sal) --<-- unpivot_in_clause
Then in your 'command on target' tab set the technology and schema to your target db, then put your INSERT statement for eg:
INSERT INTO job_sales
(job,
deptsal,
saledesc
VALUES
:job,
:deptsal,
:saledesc
Therefore you are using bind variables from source to load data into target.
Obviously if the source and target table are in the same database, then you can have it all in one statement in the 'command on target' as
INSERT INTO job_sales
(job,
deptsal,
saledesc
SELECT job as job,
deptsal as deptsal,
saldesc as saledesc
FROM pivoted_data
UNPIVOT (
deptsal --<-- unpivot_clause
FOR saldesc --<-- unpivot_for_clause
IN (d10_sal, d20_sal, d30_sal, d40_sal) --<-- unpivot_in_clause
also set the log counter as 'Insert' on the tab where your INSERT statement is, so you know how many rows you insert into the table.
Hope this helps.
BUT remember that this feature only came out in Oracle 11g. -
How to create customer master data for walking customer in retail
hi experts !!!!!!
for retail industry e.g books trading industry
how to create customer master data for walking customer in retail
its dummy or one time customer
if i create one time customer then same customer number can i use for every new order and every new customer how ?????
thanksDear Hanumant,
As per my view,,
You can use one time customer functionality to full fill your requirement.
When you create sales order with one time customer system take you to the customer data maintanence screen through that you can maintain the one time customer data.
Same one time customer number you can use for every new order through maintaining different data.
I hope this will help you,
Regards,
Murali.
Edited by: Murali Mohan.Tallapaneni on Dec 19, 2008 6:08 AM -
How to fill internal table with selection screen field.
Hi all,
i am new to sap . pls tell me how to fill internal table with selection screen field.Hi,
Please see the example below:-
I have used both select-options and parameter on the selection-screen.
Understand the same.
* type declaration
TYPES: BEGIN OF t_matnr,
matnr TYPE matnr,
END OF t_matnr,
BEGIN OF t_vbeln,
vbeln TYPE vbeln,
END OF t_vbeln.
* internal table declaration
DATA : it_mara TYPE STANDARD TABLE OF t_matnr,
it_vbeln TYPE STANDARD TABLE OF t_vbeln.
* workarea declaration
DATA : wa_mara TYPE t_matnr,
wa_vbeln TYPE t_vbeln.
* selection-screen field
SELECTION-SCREEN: BEGIN OF BLOCK b1.
PARAMETERS : p_matnr TYPE matnr.
SELECT-OPTIONS : s_vbeln FOR wa_vbeln-vbeln.
SELECTION-SCREEN: END OF BLOCK b1.
START-OF-SELECTION.
* I am adding parameter value to my internal table
wa_mara-matnr = p_matnr.
APPEND wa_mara TO it_mara.
* I am adding select-options value to an internal table
LOOP AT s_vbeln.
wa_vbeln-vbeln = s_vbeln-low.
APPEND wa_vbeln TO it_vbeln.
ENDLOOP.
Regards,
Ankur Parab -
How to fill internal table dynamically
Hi All,
how to fill internal table dynamically.
for example:
begin of itab occurs 0,
empid like pa0000-pernr,
empname like pa0001-ename,
grade(5),
end of itab.
now i want to append dynamically field itab-grade along with rest fields.
is this possible?? if yes kindly let me know how to do that.
Regards,
Kiran IHi kiran,
To fill and create and internal table dynamically you can use this code.
TYPE-POOLS: slis.
DATA: it_fcat TYPE slis_t_fieldcat_alv,
is_fcat LIKE LINE OF it_fcat.
DATA: it_fieldcat TYPE lvc_t_fcat,
is_fieldcat LIKE LINE OF it_fieldcat.
DATA: new_table TYPE REF TO data.
DATA: new_line TYPE REF TO data.
FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,
<l_line> TYPE ANY,
<l_field> TYPE ANY.
is_fieldcat-fieldname = 'FIELD1'.
is_fieldcat-ref_field = 'MATNR'.
is_fieldcat-ref_table = 'MARA'.
APPEND is_fieldcat TO it_fieldcat.
is_fieldcat-fieldname = 'FIELD2'.
is_fieldcat-ref_field = 'SPRPS'.
is_fieldcat-ref_table = 'PA0001'.
APPEND is_fieldcat TO it_fieldcat.
is_fieldcat-fieldname = 'FIELD3'.
is_fieldcat-ref_field = 'BEGDA'.
is_fieldcat-ref_table = 'PA0002'.
APPEND is_fieldcat TO it_fieldcat.
Create a new Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = new_table.
Create a new Line with the same structure of the table.
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.
Test it...
DO 40 times.
ASSIGN COMPONENT 'FIELD1' OF STRUCTURE <l_line> TO <l_field>.
<l_field> = '12345'.
ASSIGN COMPONENT 'FIELD2' OF STRUCTURE <l_line> TO <l_field>.
<l_field> = 'X'.
ASSIGN COMPONENT 'FIELD3' OF STRUCTURE <l_line> TO <l_field>.
<l_field> = '20030101'.
INSERT <l_line> INTO TABLE <l_table>.
ENDDO.
LOOP AT <l_table> ASSIGNING <l_line>.
ASSIGN COMPONENT 'field1' OF STRUCTURE <l_line> TO <l_field>.
WRITE / <l_line>.
ENDLOOP.
regards,
Aashish Garg -
hello all!
i need to display a result set in a html table. I'm kinda confused with how the table will be filled up, since the table will grow depending on the number of records that the DB table has.
here is what i have:
<table border="1">
<th>Row</th><th>Name</th><th>User/Dept</th><th>Use</th><th>Last Update</th><th>Updated By</th><th> </th>
<%
try{Connecting con = new Connecting();
ResultSet rs;
ResultSet rs;
String s[]= new String[10];
int x=0;
%>
<%
con.connect();
rs = con.viewUsers();
x= rs.getRow(); %>
<%while(rs.next()){%>
<%s[x]=rs.getString(1)
%>
<tr>
<td></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%><td></td> <td>
</tr>
</table>
Hey!
Thanks for the hint, i'm getting the table filled, but now my issue is that its not showing the right data.
first the query i'm using:
public ResultSet viewUsers(){
try{
ps = conMsg.prepareStatement("SELECT name + ' '+ lastName as 'Name', userDeptName as 'User/Dept.' , userDeptCategory as 'Use', lastChangedDate + ' ' + lastChangedTime as 'Last Update', lastChangedBy as 'Updated By:' from SystemUser");
rs = ps.executeQuery();
}catch(Exception e){
e.getMessage();
e.printStackTrace();
return rs;
}here is my code inside the jsp page:
<table border="1">
<th>Row</th><th>Name</th><th>User/Dept</th><th>Use</th><th>Last Update</th><th>Updated By</th><th></th>
<%
try{Connecting con = new Connecting();
ResultSet rs;
String s[]= new String[10];
int x=0;
%>
<%
con.connect();
rs = con.viewUsers();
x= rs.getRow(); %>
<tr>
<%while(rs.next()){%>
<%s[x]=rs.getString(1); %>
<td></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%><td></td><a href="#">View</a> <a href="#">Modify</a> <a href="#">Delete</a><td>
</tr>
<%
}catch(Exception e){} %>
</table>
Hey!
Thanks for the hint, i'm getting the table filled, but now my issue is that its not showing the right data.
first the query i'm using:
public ResultSet viewUsers(){
try{
ps = conMsg.prepareStatement("SELECT name + ' '+ lastName as 'Name', userDeptName as 'User/Dept.' , userDeptCategory as 'Use', lastChangedDate + ' ' + lastChangedTime as 'Last Update', lastChangedBy as 'Updated By:' from SystemUser");
rs = ps.executeQuery();
}catch(Exception e){
e.getMessage();
e.printStackTrace();
return rs;
}here is my code inside the jsp page:
<table border="1">
<th>Row</th><th>Name</th><th>User/Dept</th><th>Use</th><th>Last Update</th><th>Updated By</th><th></th>
<%
try{Connecting con = new Connecting();
ResultSet rs;
String s[]= new String[10];
int x=0;
%>
<%
con.connect();
rs = con.viewUsers();
x= rs.getRow(); %>
<tr>
<%while(rs.next()){%>
<%s[x]=rs.getString(1); %>
<td></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%></td> <td><%=s[x]%><td></td><a href="#">View</a> <a href="#">Modify</a> <a href="#">Delete</a><td>
</tr>
<%
}catch(Exception e){} %>
</table>
How to Convert internal table data into text output and send mail in ABAP
Hi All,
Good Morning.
Taking a glance at a code that converts internal table data to an Excel file in ABAP. also checked how to send this excel to mailing list as attachment.
But thought of doing it without excel.
I mean, I have an internal table which contains fields of all types (character,integer,date,time). Since it is only around 4 to 5 rows in it (output),why to convert it to excel. not required!!. Instead I want to send this output to User's mails as Normal mail body with No attachments.
Could anybody please suggest me a way as to how to send internal table data as a mail ( not as an excel or PDF etc).
as of now my findings are, it is quite complex to convert internal table data to email (Text) format. but i believe if there is some way of doing it.
Best Regards
Dileep VT
here's something I have used in the past where we send out information about failed precalculation settings (which are stored in internal table gt_fail)
notice we use gt_text as "mail body"
TRY.
* -------- create persistent send request ------------------------
gv_send_request = cl_bcs=>create_persistent( ).
* -------- create and set document -------------------------------
* create text to be sent
wa_line = text-001.
APPEND wa_line TO gt_text.
CLEAR wa_line.
APPEND wa_line TO gt_text.
LOOP AT gt_fail ASSIGNING <fs_fail>.
MOVE <fs_fail>-retry_count TO gv_count.
CONCATENATE text-002
<fs_fail>-setting_id
text-003
gv_count
INTO wa_line SEPARATED BY space.
APPEND wa_line TO gt_text.
CLEAR wa_line.
ENDLOOP.
APPEND wa_line TO gt_text.
wa_line = text-007.
APPEND wa_line TO gt_text.
* create actual document
gv_document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = gt_text
i_length = '12'
i_subject = 'Failed Precalculation Settings!' ).
* add document to send request
CALL METHOD gv_send_request->set_document( gv_document ).
* --------- set sender -------------------------------------------
gv_sender = cl_sapuser_bcs=>create( sy-uname ).
CALL METHOD gv_send_request->set_sender
EXPORTING
i_sender = gv_sender.
* --------- add recipient (e-mail address) -----------------------
LOOP AT s_email INTO wa_email.
MOVE wa_email-low TO gv_email.
gv_recipient = cl_cam_address_bcs=>create_internet_address(
gv_email ).
CALL METHOD gv_send_request->add_recipient
EXPORTING
i_recipient = gv_recipient
i_express = 'X'.
ENDLOOP.
* ---------- set to send immediately -----------------------------
CALL METHOD gv_send_request->set_send_immediately( 'X' ).
* ---------- send document ---------------------------------------
CALL METHOD gv_send_request->send(
EXPORTING
i_with_error_screen = 'X'
RECEIVING
result = gv_sent_to_all ).
IF gv_sent_to_all = 'X'.
WRITE text-004.
ENDIF.
COMMIT WORK.
* exception handling
CATCH cx_bcs INTO gv_bcs_exception.
WRITE: text-005.
WRITE: text-006, gv_bcs_exception->error_type.
EXIT.
ENDTRY.
with the following declarations
* TABLES *
TABLES:
adr6,
rsr_prec_sett.
* INTERNAL TABLES & WORK AREAS *
DATA:
gt_fail TYPE SORTED TABLE OF rsr_prec_sett
WITH UNIQUE KEY setting_id run_date,
gt_text TYPE bcsy_text,
wa_fail LIKE LINE OF gt_fail,
wa_line(90) TYPE c.
FIELD-SYMBOLS:
<fs_fail> LIKE LINE OF gt_fail.
* VARIABLES *
DATA:
gv_count(4) TYPE n,
gv_send_request TYPE REF TO cl_bcs,
gv_document TYPE REF TO cl_document_bcs,
gv_sender TYPE REF TO cl_sapuser_bcs,
gv_recipient TYPE REF TO if_recipient_bcs,
gv_email TYPE adr6-smtp_addr,
gv_bcs_exception TYPE REF TO cx_bcs,
gv_sent_to_all TYPE os_boolean.
* SELECTION-SCREEN *
SELECT-OPTIONS:
s_email FOR adr6-smtp_addr NO INTERVALS MODIF ID sel.
DATA:
wa_email LIKE LINE OF s_email.
How to Populate Internal table data to Table Control in a Report Program
Dear All,
How to Populate Internal table data to Table Control in a Report Program? It is a pure report program with out any Module pool coding involved, which is just used to display data. Till now it is being displayed in a report. Now the user wants the data to be displayed in a table control. Could someone tell me how to go about with this.
Thanks in Advance,
Joseph Reddy
If you want to use a table control, you will need to create a screen.
In your report....
start-of-selection.
perform get_data. " Get all your data here
call screen 100. " Now present to the user.
Double click on the "100" in your call screen statement. This will forward navigate you to the screen. If you have not created it yet, it will ask you if you want to create it, say yes. Go into screen painter or layout of the screen. Use the table control wizard to help you along the process. It will write the code for you. Since it is an output only table control, it will be really easy with not a lot of code.
A better way to present the data to the user would be to give it in a ALV grid. If you want to go that way, it is a lot easier. Here is a sample of the ALV function module. You don't even have to create a screen.
report zrich_0004
no standard page heading.
type-pools slis.
data: fieldcat type slis_t_fieldcat_alv.
data: begin of imara occurs 0,
matnr type mara-matnr,
maktx type makt-maktx,
end of imara.
* Selection Screen
selection-screen begin of block b1 with frame title text-001 .
select-options: s_matnr for imara-matnr .
selection-screen end of block b1.
start-of-selection.
perform get_data.
perform write_report.
* Get_Data
form get_data.
select mara~matnr makt~maktx
into corresponding fields of table imara
from mara
inner join makt
on mara~matnr = makt~matnr
where mara~matnr in s_matnr
and makt~spras = sy-langu.
endform.
* WRITE_REPORT
form write_report.
perform build_field_catalog.
* CALL ABAP LIST VIEWER (ALV)
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
it_fieldcat = fieldcat
tables
t_outtab = imara.
endform.
* BUILD_FIELD_CATALOG
form build_field_catalog.
data: fc_tmp type slis_t_fieldcat_alv with header line.
clear: fieldcat. refresh: fieldcat.
clear: fc_tmp.
fc_tmp-reptext_ddic = 'Material Number'.
fc_tmp-fieldname = 'MATNR'.
fc_tmp-tabname = 'IMARA'.
fc_tmp-outputlen = '18'.
fc_tmp-col_pos = 2.
append fc_tmp to fieldcat.
clear: fc_tmp.
fc_tmp-reptext_ddic = 'Material'.
fc_tmp-fieldname = 'MAKTX'.
fc_tmp-tabname = 'IMARA'.
fc_tmp-outputlen = '40'.
fc_tmp-col_pos = 3.
append fc_tmp to fieldcat.
endform.
Regards,
Rich Heilman
How to create custom report plugin using child region report metadata
Hi,
I want to ask for help on how to create custom report plugin using child region report metadata. My idea is to create a child region, a classic report and set the condition to never.
Then i will query the child report metadata from apex view and use it to create a custom report like using jquery jq-grid. Any idea how i can create a process that will use the child report
metadata? I dont know how i can create a process just like how apex work, how apex render report, coz i want it to be control using the standard apex report attribute. This plugin will
render according to the child report attribute.
Is there anybody here had ever done this?
Hi Nicolette,
Thanks for the reply. I know where to find the metadata, just asking for idea on how the rendering process will be.
Start from determining column heading, column order until finish rendering the report. The same way how apex
render the classic report.
Previously this imy my rendering process:
FUNCTION GETCOLUMN(P_REGION IN APEX_PLUGIN.T_REGION,
P_PLUGIN IN APEX_PLUGIN.T_PLUGIN,
P_VALUE IN VARCHAR2) RETURN SYS.DBMS_SQL.DESC_TAB2 IS
VSQLHANDLER APEX_PLUGIN_UTIL.T_SQL_HANDLER;
VCOLCOUNT NUMBER;
VCOLNAMES VARCHAR2(2000);
VAJAXIDENTIFIER VARCHAR2(100);
VPAGESIZE TYPEATTR := P_REGION.ATTRIBUTE_04;
VJSCODE VARCHAR2(32767);
BEGIN
VSQLHANDLER := APEX_PLUGIN_UTIL.GET_SQL_HANDLER(P_SQL_STATEMENT => 'select * from s_emp',
P_MIN_COLUMNS => 1,
P_MAX_COLUMNS => 999,
P_COMPONENT_NAME => P_REGION.ID);
VCOLCOUNT := VSQLHANDLER.COLUMN_LIST.COUNT();
FOR I IN 1 .. VCOLCOUNT LOOP
VCOLNAMES := VCOLNAMES || '{name: "' ||
UPPER(VSQLHANDLER.COLUMN_LIST(I).COL_NAME) || '",';
END LOOP;
APEX_PLUGIN_UTIL.FREE_SQL_HANDLER(VSQLHANDLER);
RETURN VSQLHANDLER.COLUMN_LIST;
EXCEPTION
WHEN OTHERS THEN
APEX_PLUGIN_UTIL.FREE_SQL_HANDLER(VSQLHANDLER);
RAISE;
END GETCOLUMN;
So this is how i get the header for my report plugin. The same method is use to get the value / data for each column. This process is work. So now
i want to extend my plugin so that i will use all attributes from the child report to render my plugin. So the column header, column order, all will depend
on the child report. And the column display condition is set, it will also check the condition before render the column. Sounds like i want to reinvent
the normal apex rendering process but this is what i want to achieve.
I need help to find the correct logic for my render process. Don't want too much for starting, just want to render the plugin correctly, same with child report,
same columns alias, column ordering and column conditional display.
Thanks,
akulala
Maybe you are looking for
-
Why can I not open this now I have updated to version 5
I updated to version 5 and promtly lost my google toolbar which I understand may be rectified later but today I could not open mozilla firefox at all either by icon or going into programmes
-
Hi Everyone, I want to call this fm "BDL_SYSTEM_INFO" in a program and display the results. But unfortunately not at all able to do it. Since in the fm it refers to a structure "BDLSYSTINF" and tried to declare this in my prgram but stil get even get
-
JEditorPane isn't generating HyperlinkEvents
Well, at least that is the way it appears. I am working with NetBeans 3.6 with Tomcat 5, andJ2EE1.4.2_01. My Project involves a couple servlets and an applet. The first servlet loads a web page containing the applet. This applet contains a text field
-
After i expand my web browser for the entire computer how do I make it fit screen again
In my web browser page there are two arrows in upper right hand corner. They allow me to make my web page to fit the entire computer screen. After I do that, how do I restore it to a normal web page appearance? Thanks.
-
Transaction MEB1 create vendor agreement
Hello all, I have to do a conversion of vendor rebates using transaction MEB1. Does anybody know if there is way to load this using a BAPI or function module. I have searched through the available BAPI's and IDOC structures to to find an object that