How to create a variable length records within an internal table?
Here is what I did in the program:
TYPES : BEGIN OF type_outerface_tbl,
text(1000) TYPE c,
END OF type_outerface_tbl.
DATA: gw_outerface_tbl TYPE type_outerface_tbl,
gi_outerface_tbl TYPE STANDARD TABLE OF type_outerface_tbl.
The internal outerface table is fix length.
I 'APPEND gw_outerface_tbl TO gi_outerface_tbl'
If the TEXT size vary, how do I define the table?
Thank you very much!
Helen
Here is what I modified:
TYPES: BEGIN OF record_header_1,
recty(1) TYPE c,
awkey(20) TYPE c,
doucmnttype(5) TYPE c,
END OF record_header_1.
DATA: gw_record_header_1 TYPE record_header_1,
gi_record_header_1 TYPE STANDARD TABLE OF record_header_1.
TYPES : BEGIN OF type_outerface_tbl,
text TYPE string,
END OF type_outerface_tbl.
DATA: gw_outerface_tbl TYPE type_outerface_tbl,
gi_outerface_tbl TYPE STANDARD TABLE OF type_outerface_tbl.
DATA: lw_line TYPE string.
CONCATENATE gw_record_header_1-recty
',' gw_record_header_1-awkey
',' gw_record_header_1-doucmnttype
INTO lw_line.
APPEND lw_line TO gi_outerface_tbl.
CLEAR lw_line.
I got the following error message:
"LW_LINE" cannot be converted to the line type of 'GI_OUTFERCE_TBL'.
Please advise where I did wrong?
Thank you very much!
Helen
Edited by: Helen on Nov 22, 2008 5:45 PM
Edited by: Helen on Nov 22, 2008 5:47 PM
Similar Messages
-
How to create our own fields in workarea in internal tables
hai
can u help me out in creating our own fields in workarea in an internal table (without header line..................)what kinda theory do u want???
* Internal table with HEADER LINE
DATA : BEGIN OF it_output occurs 0 with header line,
c_icon TYPE icon-id,
bukrs TYPE anla-bukrs,
anln1 TYPE anla-anln1,
anln2 TYPE anla-anln2,
grufl TYPE anla-grufl,
grufl_n TYPE anla-grufl,
leabg TYPE sy-datum,
leabg_n TYPE sy-datum,
message TYPE bapiret2-message,
END OF it_output.
The above declaration is same as the below declaration in relation to the previous thread.
* Data declarations for ty_output
DATA : it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0, " Internal table declaration
is_output TYPE ty_output." Work Area declaration
Please reward for useful answers with appropriate points
Regards
Gopi
" Internal table without HEADER LINE
DATA : BEGIN OF it_output occurs 0,
c_icon TYPE icon-id,
bukrs TYPE anla-bukrs,
anln1 TYPE anla-anln1,
anln2 TYPE anla-anln2,
grufl TYPE anla-grufl,
grufl_n TYPE anla-grufl,
leabg TYPE sy-datum,
leabg_n TYPE sy-datum,
message TYPE bapiret2-message,
END OF it_output.
Message was edited by:
Gopi Narendra -
Count number of records in a internal table
hi
i want to count number of records in internal table
pls let me know how to count the number of records in a internal table.
regards
Arorahi
one way is
data field type i.
Decribe table itab lines field.
write: / field.
displays the no of records in tha internal table
or if u want to write logic.
data:
w_count type i.
loop at itab.
w_count = w_count + 1.
endloop.
write: / w_count.
displays the no of records.
reward points if useful. -
Hi,
How to check if all the records in an internal table are identical.
could you help soonHi,
use the code,
data : begin of itab occurs 0,
matnr like mara-matnr,
maktx like makt-maktx.
end of itab.
parameters : p_matnr like mara-matnr.
start-of-selection.
select * from makt into corresponding fields of table itab
where matnr = p_matnr.
delete adjacent duplicates from itab comparing matnr.
if sy-subrc eq 0.
write : /1 'Entries are identical.' .
endif.
Regards,
Sankar. -
How to deal with variable length data struct in C/JNI
I have another JNI related question. How do you handle variable length
data structures in Java and pointer to a pointer?
Basically, I have a backend in C which has records but we don't know
how many. The API looks like
typedef struct rec_list_s {
int rec_list_cnt;
rec_list_data_t rec_list_data[1];
} rec_list_t;
int rec_list_show(void handle, rec_list_t *list_ptr);
/* Code snippet for rec_list_show */
int rec_list_show(void handle, rec_list_t *list_ptr)
rec_list_t *ptr;
sz = sizeof (rec_list_t) +
((record_count - 1) * sizeof (rec_list_data_t));
ptr = malloc(sz);
/* fill the data */
*list_ptr = ptr;
return (0);
So I need to wrap rec_list_show() in JNI call so I can have Java call
it. How do i pass a pointer to a pointer from Java? I tried in the
native C code for JNI to return the pointer to pointer as a result
and store in a member in the Java class rec_list_t and then I pass
that to JNI call for rec_list_show. The C backend code was fine
since it got the pointer to pointer but Java become unhappy when
the object it was referencing changed memory location (I suspect
the garbage collection becomes unhappy).
So what would be a good way to deal with this kind of code?
Thanks,
Sunay
Edited by: st9 on Aug 30, 2010 5:47 PMI did not imply that you don't know C but you are implying that I don't understand C. Perhaps
google Sunay Tripathi and click I am feeling lucky so that we don't get into teaching C
discussions :) On the other hand, I am definitely looking for someone to teach me Java
otherwise I wouldn't be asking.
Anyway, let me explain again. The sample function rec_list_show() runs on the backend. It
is a different process with a different VM space. It of course knows the size of the array
and what to fill in. As a caller to that API (which is a separate process), I don't know
what that size is but I need to get the size and corresponding data in one shot because
the backend locks the table when its providing me the info to make sure its synchronous.
Now I (the Java process) needs to get that count and data in one shot. Since the C library
underneath me (wrapped around my JNI interface) has private IPC mechanism to copy
the contiguous memory from the backend into my memory space, all I need is to provide
a pointer to a pointer which gets filled in by backend and is available to my process. So
my equivalent C frontend just passes a pointer to a pointer and casts the return value in
rec_list_t. The rec_list_cnt tells it how many members it got. The first member is part of
the struct itself but then following members are right after.
Another way to help you understand this is with this code snippet from front end C program
rec_list_t *ptr, *save_ptr;
rec_list_data_t *data_ptr;
int cnt;
save_ptr = ptr = malloc(sizeof(rec_list_t));
rec_list_show(handle, &ptr);
assert(save_ptr != ptr);
cnt = ptr->rec_list_cnt;
for (i = 0; i < cnt; i++) {
data_ptr = &ptr->rec_list_data;
Notice the assert(). Also notice the for loop. How do I expect to walk more that one
member when rec_list_data is a fixed size array of one member?typedef struct rec_list_s {
int rec_list_cnt;
rec_list_data_t rec_list_data[1];
} rec_list_t;
Anyway, I do understand that Java will not allow me to get a reference to a long and
how Java memory management works. But the JNI native implementation is C
and I was wondering if people have managed to do some tricks there between C
and Java. -
HOW TO CREATE A VARIABLE IN SAP SCRIPT
HI ALL,
CAN ANYONE TELL ME HOW TO CREATE A VARIABLE IN SAP SCRIPT.
THANK YOU,
BYE
TAKE CARE.Hi Ravi,
You can use like this
A text in the editor contains the following DEFINE commands:
/: DEFINE &mysymbol& = 'xxx xxx xxxxx xxxx'
&mysymbol&
/: DEFINE &mysymbol& = 'yyyyy yyy yyyy'
/ &mysymbol&
The printed text appears -
How to create a fixed-width column within an APEX 4 interactive report?
This thread is a follow-up to {message:id=9191195}. Thanks fac586.
Partial success: The following code provided by fac586 limits the column width of the Apex 4 interactive report column as long as the column data contains whitespace within a Firefox 3.6 browser:
<pre class="jive-pre">
<style type="text/css">
th#T_DESCRIPTION {
width: 300px;
td[headers="T_DESCRIPTION"] {
width: 300px;
word-wrap: break-word;
</style>
</pre>
Notes:
1. The code above is put into the HTML header section for the page.
2. T_DESCRIPTION is defined as VARCHAR2(2000).
3. The code above works within the Firefox 3.6.12 browser but does not work within the Internet Explorer 7.0.5730.13 browser.
I tried adding "float: left;":
<pre class="jive-pre">
<style type="text/css">
th#T_DESCRIPTION {
width: 300px;
td[headers="T_DESCRIPTION"] {
width: 300px;
word-wrap: break-word;
<font color="red"> float: left;</font>
</style>
</pre>
Notes:
1. "float: left;" does not require whitespace and successfully splits the column between characters in lieu of whitespace.
2. "float: left;" shrinks the cell height and allows the page background to show through... couldn't determine how to fix this.
3. The code above works within the Firefox 3.6.12 browser but does not work within the Internet Explorer 7.0.5730.13 browser.
I've done some more research, but I still haven't discovered how to create a fixed-width column within an APEX 4 interactive report that displays properly within an Internet Explorer 7 browser.
Any ideas and help will be appreciated.Thanks for your help with this!
<pre class="jive-pre">
what theme are you using?
</pre>
A customized version of theme 15.
<pre class="jive-pre">
Floating a table cell makes no sense (to me anyway).
</pre>
You are correct. I was just trying a different approach ... trying to think out of the box.
<pre class="jive-pre">
Think you'll need to create an example on apex.oracle.com with sample data
if there are any further problems.
</pre>
Great suggestion! The code your provided works in the Firefox 3.6.12 browser, but still doesn't work within my Internet Explorer 7.0.5730.13 browser.
UPDATE:
I have recreated the problem at apex.oracle.com, you can use the following information to check it out:
URL: http://apex.oracle.com/pls/apex/f?p=43543:100::::::
Workspace: IR_FIXED_WIDTH_COLS
Username: GUEST
Password: Thx4help
Application: 43543 - CM_RANDY_SD
Note: Table name is TEST_DATA
The following code provided by fac586 works in both Firefox 3.6 and IE7 using default theme "21. Scarlet" at apex.oracle.com; however, it doesn't work when I use a copy of our customized theme "101. Light Blue":
<pre class="jive-pre">
<style type="text/css">
.apexir_WORKSHEET_DATA {
th#T_DESCRIPTION {
width: 300px;
max-width: 300px;
td[headers="T_DESCRIPTION"] {
max-width: 300px;
word-wrap: break-word;
</style>
<!--[if lt IE 8]>
<style type="text/css">
/* IE is broken */
th#T_DESCRIPTION,
td[headers="T_DESCRIPTION"] {
width: 300px;
</style>
<![endif]-->
</pre>
Any idea what in the theme could be causing the fixed width column to be ignored in IE 7?
Edited by: CM Randy SD on Dec 7, 2010 11:22 AM -
How to create a variable in BEx 7.0
Hi,
Can anyone please tell me how to create a variable in BEx 7.0
In 3.5, when we right click on a characteristic, we used to get an option for restrict.
I cant find any such option in 7.0Hi,
Right click on the characteristic 0CALMONTH in the default values or drag it to char. restriction section and say restrict.Pull the drop down menu in that to select variables. There u will get a create icon.Click on that...then in details tab u can specify whether mandatory,interval and all..
Regards,
Rathy -
How to create Presentation variable for columns and to use it in Narrative?
Hi All,
Anybody know how to create presentation variable for a column (i.e., i need to create it in edit formula section itself). And then, I should use it in Narrative section to display that column value. Is it possible? Or do i need to use any other variable for this requirement? If so please let me know, how to create it? This is very urgent requirement.
Thanks in Advance
ThenmozhiHi Satya,
I just want to create a table that should horizontally display the values like below:
SUID Tag # :123456 Year Mfg: 2007
Description: computer corporation FA ID#: 4576
Model Number: 4569 hESC: #ert
Serial Number: 78945 Flags: c
Department: Hematology
User: thenmozhi
Database: OLAP
I think we can create this type of report using either Narrative or Static Text. But I am not sure whether it is possible or not? And also another thing is that sectioning is applied for SUID Tag # column. So, depending on the dashboard prompt if the SUID Tag # retrieves two or more values.
Then the first value for example 123456 and the values for the other columns related to this SUID Tag # value should display in the first page (i.e., page 1). And if the next value of the SUID Tag # for example say 678901 then the values should move to second page that is like this:
SUID Tag # :678901 Year Mfg: 2008
Description: Computer Manufacturing FA ID#: 4577
Model Number: 4570 hESC: #eth
Serial Number: 78946 Flags: G
Department: Hematology
User: Rehman
Database: OLAP
Thanks
Thenmozhi -
How to create selection variables on the KF
Hi,
i need to create a variable on the CKF and the user is going to give the selections like >90% or <100% in the variable screen before runing the report.on the report should show the values based on the selection.
1.how to create the variables on the CKF.
2. how to restrict the values and give the selections(like >90%,<100%) values in the selections.Hi Venkat,
You can achieve this by the following way:
1. Create a CKF or a local formula(based on which queries it needs to be used)
2. Then go to BEX Query Designer -> View -> Conditions
3. Create New Condition -> select 'New' -> Select your CKF/Local Formula -> Define your Operator ( BT, GT, LT, Top % etc.) -> Create a Formula variable (Ready for input with Processing type as ;manual Input')
4. DO the char. assignement for the condition with your condition definition
4. Execute the report with your values.
This will solve your prob.
Cheers,
VA -
For Mayank Guptha : how to create formula variable in IP
Hi,
How to create formula variable, such that it will appear in the variable screen.Hi,
the variables you create in formula function are local to the function.
Ex., DATA CST_ELMNT TYPE 0COSTELMNT.
DATA QTY TYPE 0QUANTITY.
To get the variables listed in the variable screen you need o create variables at aggregation/filter level for the required characteristics. -
How to create replacement variable
Hi,
Any one has idea how to create replacement variable in bps.
I need to pass one variable value to another.\
Because both the fields are fields to be change. But user does not want to do double entry.
So need to pass one value from another. Is there any way. I can fix this issue.
Thanks
Naman ShahSo far not found any answer so closing
-
How to create the variable variant in process chains for ip
how to create the variable variant in process cahins for ip
Hi venky,
check these links
http://help.sap.com/saphelp_nw70/helpdata/EN/c0/980398e58611d194cc00a0c94260a5/content.htm
http://help.sap.com/saphelp_nw70/helpdata/EN/c0/98038ce58611d194cc00a0c94260a5/content.htm
bhaskar -
How to create dynamic variable in HANA
Hello experts,
Please help me on how to create dynamic variable in calculation view.
Ex: variable automatically should take YTD, or MTD values so that I can directly consume column in BW on hana or BO reporting.Hi ,
Not sure on what are looking for. Have a look on the below blog once, if this is what you are looking out for:
Applying YTD in SAP HANA with SAP BO Analysis Office
Regards,
Krishna Tangudu -
How to delete records from dynamic internal table.
Hi Experts,
Need urgent help!!!
Issue is with Dynamic internal tables.
Below is code written by me :
FORM select_query USING Lw_tabnam
TYPE t682i-kotabnr.
DATA : lw_line TYPE REF TO data,
lw_line1 TYPE REF TO data.
CREATE DATA Lw_line TYPE (lw_TABNAM).
ASSIGN Lw_line->* TO <WA_tbl>.
CREATE DATA LW_LINE TYPE STANDARD TABLE OF (Lw_tabnam)
WITH NON-UNIQUE DEFAULT KEY.
ASSIGN Lw_line->* TO <TBL>.
SELECT * FROM (Lw_tabnam)
INTO CORRESPONDING FIELDS OF TABLE <TBL>
WHERE (t_keys).
Endform.
code is working fine.
here even the table name and where condition are dynamic,everything is fine upto this point.
Now i have to delete some record from <TBL> based on some conditons.
for ex : ( here lc_fieldname is KUNNR)
loop at t_kunnr.
lw_tabix = sy-tabix.
Read table <tbl>
with key (lc_fieldname) = t_kunnr-kunnr ASSIGNING <wa_tbl>.
If sy-subrc = 0.
*Delete
delete <tbl> from <wa_tbl>
delete <tbl> index lw_tabix.
Endif.
Endloop.
The above delete statement doesn't work ,even we can't use index as it gives a syntax error " something related to "index is not allowed in standard table or hash table.
Can you help me ab't how to delete records in Dynamic internal table?
Other option that i am thinking of is to create a static table of type dynamic table.
means, data itab type standard table of <tbl> .I know the syntax is wrong ,however is there any way to do this?
Thanks in advance ,
If you have any suggestion ab't this then do let me know.
bye,
Gaurav.Hi
I wrote this code and it works fine:
DATA LW_TABNAM(10) VALUE 'LFA1'.
DATA : LW_LINES TYPE REF TO DATA,
LW_LINE TYPE REF TO DATA.
FIELD-SYMBOLS: <TABLE> TYPE TABLE,
<WA> TYPE ANY.
CREATE DATA LW_LINES TYPE TABLE OF (LW_TABNAM)
WITH NON-UNIQUE DEFAULT KEY.
ASSIGN LW_LINES->* TO <TABLE>.
CREATE DATA LW_LINE TYPE (LW_TABNAM).
ASSIGN LW_LINE->* TO <WA>.
DO 10 TIMES.
APPEND INITIAL LINE TO <TABLE>.
ENDDO.
SY-TABIX = 4.
DELETE <TABLE> INDEX SY-TABIX.
WRITE SY-SUBRC.
I hope it help you
Max
Maybe you are looking for
-
Songs can't be found on computer or hard drive - disappeared overnight.
I synced my iPod yesterday. Today some songs - that synced successfully yesterday - are now no longer 'able to be found' on my computer's iTunes. I have just subscribed to iTunes Match. Any suggestions? A large number of songs have just... disappeare
-
Need to upgrade my iMac G5 from 10.3.9 but getting very confused
I don't use my iMac that much but I do use it for itunes/ipod and for the internet. More and more programs/downloads I want to use require 10.4 so it is about time I upgrade. I will admit I find the Mac slightly baffling and have resisted upgrading f
-
My new ipod is showing that it is full but I have only loaded about 3gb
My new ipod is showing that it is full but I have only loaded about 3gb
-
Os x maverick is not downloading
I have gone to the app store and clicked to download the OS X Maverick. It does not appear to be downloading. Any suggestions?
-
Outlook 2013 some folders aren't appearing.
Recently upgraded to Office 2013 ProPlus and just noticed in Outlook that some of my folders were missing. They were created while using 2010 ProPlus but no longer there in Office 2013. I have not enable updates for Office 2013 just yet. I read whe