Error in collect statement(non-key fields must be numeric)...
Error in collect statement(non-key fields must be numeric)...
Hello Experts,
I created an internal table based from a ztable. The structure of the ztable is
as follows:
1. MANDT -> PRIMARY KEY
2. BUKRS -> PRIMARY KEY
3. TXK50 -> PRIMARY KEY
4. ANLKL -> PRIMARY KEY
5. KTANSW -> PRIMARY KEY
6. KOSTL -> PRIMARY KEY
Then the remainder of the fields(around 8 fields) are currency data types(ANBTR).
An error is showing saying 'You can only use the collect command in a table if all of its non-key
fields are numeric(type I,P or F).
I searched the forum and it said that non-keys must be numeric in order for the
collect command to work. But all of my primary keys are non-numeric.
Below is my declaration:
CLASS-DATA: gt_output_acq TYPE hashed TABLE OF zsd_output_acq
WITH UNIQUE KEY bukrs txk50 anlkl
ktansw kostl,
gt_output_ret LIKE gt_output_acq,
wa_output_gen LIKE LINE OF gt_output_acq,
gt_output_net TYPE HASHED TABLE OF zsd_output_net
WITH UNIQUE KEY bukrs txk50 anlkl
ktansw kostl,
wa_output_net LIKE LINE OF gt_output_net,
gt_sort_crit TYPE SORTED TABLE OF t_sort_crit
WITH NON-UNIQUE KEY bukrs kostl,
wa_sort_crit LIKE LINE OF gt_sort_crit.
FIELD-SYMBOLS: <fs_output_acq> LIKE LINE OF gt_output_acq,
<fs_output_ret> LIKE LINE OF gt_output_ret,
<fs_output_net> LIKE LINE OF gt_output_net.
COLLECT <fs_output_acq> INTO gt_output_acq. "Here is the error
Hi Vijay,
Here it is:
CLASS-DATA: gt_output_acq TYPE hashed TABLE OF zsd_output_acq
WITH unique KEY bukrs txk50 anlkl
ktansw kostl,
gt_output_ret LIKE gt_output_acq,
wa_output_gen LIKE LINE OF gt_output_acq,
gt_output_net TYPE hashed TABLE OF zsd_output_net
WITH unique KEY bukrs txk50 anlkl
ktansw kostl,
wa_output_net LIKE LINE OF gt_output_net,
gt_sort_crit TYPE SORTED TABLE OF t_sort_crit
WITH NON-UNIQUE KEY bukrs kostl,
wa_sort_crit LIKE LINE OF gt_sort_crit.
Similar Messages
-
Changing Non key field to Key field in a custom table
Hello Abap gurus:
I have a requirement in which i need to change a non key field in my custom table(Z TABLE) to key field.
For example; i have field sequence as
field 1 key field
field 2 key field
field 3 key field
field 4 non-key field
field 5 non-key field
field 6 non-key field
field 7 non-key field.
i want to change field 7 as key field.
Can i do perform operation??
when i am tryingto perform bove operation it is taking long time to get the table activated.
Could any one please help me in getting this resolved.
regards,
Sravanthi.Use DB Utility (se14) to perform alter table or conversion. The latter is used when atemps to perform first operation fails. Which one is used, really depends on system and current DB table state (i.e. if has any content and what is being adjusted).
The way Max suggested is similar to [conversion process|http://help.sap.com/saphelp_nw04/helpdata/EN/cf/21f1b8446011d189700000e8322d00/content.htm] which system takes care of itself.
Refer [Adjusting Database Structures|http://help.sap.com/saphelp_nw04/helpdata/EN/cf/21f1ab446011d189700000e8322d00/content.htm] and already given link to conversion.
Please also consider potential errors while doing conversion . This can lead to data loss, so you should think of some backup to prevent that.
Regards
Marcin -
How can we protect the ztable non key fields data in sm30 display.
Hi experts,
I have created tablemaintenence generator for one z table, in sm30 user has access to enter the data.
in that maintenence i have to protect the non key field values data like once the user saves his data.than in the edit mode it has to show the nonkey fields data but dont access to edit some nonkey fields... please helpHi
U need to change the screen flow generated by maintenance view generator: here go to Enviroments->Modifications->Screen; doubleclick on your screen and the system take you to screen painter.
Here go to screen flow and in PBO add new module in order to protect the field for the old records: u can use the statament LOOP AT SCREEN./ENDLOOP to do it.
LOOP AT SCREEN.
IF .....
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Max -
Old key field FROMNUMBER is now non-key field
Hi All,
I am getting one issue with NRIV table.When I tried to activate this table from se11 it is giving error as
Program start============================================================
Mass activation
=========================================================================
Process..................: presap_4
User.....................: ABAP1
Date, time...............: 19.02.2007, 12:50:33
Platform.................: CUSTOMER-PRE(620)/ORACLE/WindowsNT/presap
Tool.....................: SE11_OLD/RADMASG0
Log......................: T, ABAP120070219125033
Program parameters:
Input medium..............: Direct object entry
Activation method.........: Activ
Chk. mode.................: O
Version to be activated...: M
Versions to Be Deleted....: Delete only active versions
Lock against paral. exec..: Shared
Parallel mode.............: Switched off
=========================================================================
Start phase 001 **********************************************************
Activation of objects
Activate objects at level 1
Old key field FROMNUMBER is now non-key field
Structure change at field level (convert table NRIV)
Activation of objects
End phase 001 ***********************************************************
Activation of objects
Activate objects at level 1
Old key field FROMNUMBER is now non-key field
Structure change at field level (convert table NRIV)
Activation of objects
End phase 001 ***********************************************************
Start phase 002 **********************************************************
Final log
Following objects not activated/deleted or activated/deleted w. warning:
Table NRIV could not be activated
(E- Structure change at field level (convert table NRIV) )
Final log
End phase 002 ***********************************************************
Start phase 003 **********************************************************
Statistics on activated and deleted objects
Number of objects to be activated............: 1
Objects not activated........................: 1
Activated objects with errors in dependencies: 0
Objects activated with warning...............: 0
Successfully activated objects...............: 0"
Can any one help in this.It is bit urgent.
Thanks,
KrishnaHi Brend,
Thanks for the reply.
But could you tell me how to convert this table and what to convert.
Posibble could you give this with step by step, we are struck with number range issues with this problem and needed with critical.
Thanks for the help in advance.
Krishna -
To pass non key field data to workflow
Hello,
I want to pass data from webdynpro application to workflow. For this i used FM 'SWE_CREATE_EVENT' to trigger the workflow.
I filled the container table with following values
wa_cont-element = 'NAME2'
wa_cont-value = 'James Anderson'.
APPEND wa_cont to it_cont.
wa_cont-element = 'STRAS'
wa_cont-value = 'Hampshire'.
APPEND wa_cont to it_cont.
wa_cont-element = 'PSTLZ'
wa_cont-value = '104010'.
APPEND wa_cont to it_cont.
wa_cont-element = 'ORT01'
wa_cont-value = 'London'.
APPEND wa_cont to it_cont.
wa_cont-element = 'LAND1'
wa_cont-value = 'United Kingdom'.
APPEND wa_cont to it_cont.
Also i created a custom business object 'ZHRADCHO'. In which i decleared
KEY FIELDS as ->
PERNR
SUBTY
ENDDA
BEGDA
METHODS ->
send_data_to_wf
I created Import/Export parameters for this method ->
NAME2 (Import and Export parameter)
STRAS (Import and Export parameter)
PSTLZ (Import and Export parameter)
ORT01 (Import and Export parameter)
LAND1 (Import and Export parameter)
EVENTS ->
CHANGE
In SWDD transaction -> basic data -> binding
I did the following binding
&_EVT_CREATOR& => &_WF_INITIATOR&
&_EVT_OBJECT.PERSONNELNUMBER& => &WA_ZHRAD.PERNR&
&_EVT_OBJECT.SUBTYPE& => &WA_ZHRAD.SUBTY&
&_EVT_OBJECT.ENDDATE& => &WA_ZHRAD.ENDDA&
&_EVT_OBJECT.STARTDATE& => &WA_ZHRAD.BEGDA&
WA_ZHRAD is structure type of custom table ZHRAD in which i want the data. So in the workflow container i created the element of type ZHRAD. How do i get the rest of the fields which i declared in the method. I am able to get the data in the key fields which are binded as above. But if i bind the rest of the fields i get an error. How do i get the data in non-key field elements?
Regards,
Yayati EkboteHello Rick,
I am passing the other values through container only. But my question is, in workflow side, in which parameters will i recieve the values?
In the method of the BO i wrote in the automatically generated program.
swc_get_element container 'C/o ' CO.
swc_set_element container 'C/o ' CO.
swc_get_element container 'StreetHouseNo ' STREETHOUSENO.
swc_set_element container 'StreetHouseNo ' STREETHOUSENO.
Like wise for all non-key parameters.
So in SWDD transaction, which parameters should i bind to get the values in the fields of workflow container?
Regards,
Yayati Ekbote -
Validating non key fields in table maintenance generator
Hi,
I ma using events for table maintenance generator event 05 ,there i want to validate non key fields ......i am throwing error message ....all the non key fields are getting in display mode ...i need them to enable to enter values ....
please suggest
Thanks,
Shailaja Ainala.Hi Shailaja,
Its property of error message, which makes it as non-editable.
You can display either status or info message after validation check.
And finally before saving (before save event) display error message, so that it invalid entries doesnt get saved.
Thanks,
Nisha Vengal. -
Key fields and non-key field of condition table
Hello Gurus,
what is key fields and non-key field of condition table?
thanks very much!Key field
Each condition table contains keys that can be used for creating dependent condition records.
for example let take condition type PR00.
PR00 uses access sequence PR02 .
Access sequence PR02 has following tables associated with it namely 304, 305 & 306
When you create a conditon record for PR00 with transaction VK11 or VK31, you have a button 'key combination' which is nothing but fields associated with tables 304, 305 & 306.
In brief, Condition records are always created using specific keys. Condition tables are used to define the structure of the keys of a condition record.
Non key field
For example take condition table 144 - sales deal basic data.
Table 144 is associated with access sequence PBUD.
If you check the fields associated with this table (click technical view button), there are three fields at bottom which do not have 'key' check mark -KDATU, PLTYP, KSTAF
So, when you create a condition record for PBUD, system does not propose these 3 fields in 'key combination' and hence are non key fields.
Please reward points for good answers as this would help increase the total donation that SAP will make to the United Nations World Food Programme. -
How can we hide the non key field values in the sm30 display
hello experts,
I have to protect the non key field values in the sm30 display , can u help me out wat changes i have to do in the layout.Hello Gopal,
What do you mean by 'protecting' your non-key field value?
1) You want to display it, but make it non-changeable
A - Make the field as output-only in screen, as already answered by a preivous collegue
2) You do not want to display this field at all
A - Goto the DDIC definition of the view (not possible for a table directly), and maintain the required field as a Hidden. After activating, remember to re-generate the maintenance dialogue. Also, please maintain Event 21, in case you want to access/change the value of this field in background.
3) You want to maintain special validations/checks for the field
This can be easily done by introducing your modules within the CHAIN-FIELD commands in the PAI of the generated screens.
Best Regards,
Rekha -
Non key field in Maintainance View
Hi,
I have generated a maintainance view for a Z table. I want to sort data from SM30 by means of a selection screen, for that, in the 'View Flds' tab in the maintainance view, i have entered a 'S' for which ever fields i want to filter the data on.
When i execute the table maintainance, i am able to see only the key fields and not the non-key ones in the selection popup, though i have put a 'S' for both, the key and non-key fields.
Can anyone please let me know how to get the non-key fields on the selection popup when i execute the maintainance view?
Cheers,
Raghav.Not possible via this functionality. A workaround was suggested by Raymond in this thread:
Transaction code for Table Maitainence for table
Thomas -
How to Set Position Cursor Option to Non key fields in Table Maintenance .
Hi,
I have created a Ztable and i am using table maintenance for that table. In TMG ,by default we have position cursor option to key fields only . User wants that position cursor option for non key fields also. Please help me out of this issue .
How to provide Position Cursor option to Non key fields.
Thanks & Regards,
Prasad.Hi Nabheet,
I tried using TYPE S DISPLAY LIKE E and am setting vim_abort_saving as X and sy-subrc as 4. However, this is also not enabling the fields. In this case, the first 2 fields - key fields are getting enabled but not the required ones. The above snapshot is for the same.
lv_date1 = table1-date1.
lv_date2 = table1-date2.
lv_diff = lv_date2 - lv_date1.
IF lv_diff LT 0.
CLEAR: lv_err_msg.
lv_err_msg = text-005.
MESSAGE lv_err_msg TYPE 'S' DISPLAY LIKE lc_e.
vim_abort_saving = lc_x.
sy-subrc = 4. -
Searching non-key fields in table maintainance
Hi..
How to find non-key fields or how can we enble the FIND button in maintaince table ?
Please reply....
Thanks ...Hi,
When you are on the table maintenance screen, you can :
1. Goto menu options. Selection-->By Content
2. Choose the fields you want to search data on and Press enter
3. Enter the operator and the value (you can append or insert a new field here as well )
4. Click on the choose button.
regards,
Advait -
It is possible to assign value range to non key fields in the table?
Hi,
I want to give some range of values to the fields which are non key fields in the table.
is it possible?
can anybody tell me the procedure.
Thanks in Advance,
venkatHI,
It is higjly possible in case of Z-table. but in standard table you can't make any modification.
You assign the value range to the domain of field.
go to SE11 and open the database table.
Select the Data Element of the fieldto which you want assign the range.
Click on its domain .
click on Value Range tab.
Set the range.
Regards,
anirban -
Hi SAP Lords,
I need table where INFNR should be a non-key field.
I have MATNR, WERKS, VKORG,LIFNR,EKORG in hand but just cant find the table to extract INFNR.EBAN Purchase Requisition
EINA Purchasing Info Record: General Data
EINE Purchasing Info Record: Purchasing Organization Data
EIPA Order Price History: Info Record
EKPO Purchasing Document Item
ELBM Vendor Evaluation: Material-Related Item
Nabheet -
Reading data from BSEG table with Non-key fields in where clause
Hi All,
I have to read data from BSEG table based on WBS element field (PROJK). As I'm not passing key fields to WHERE clause system couldnt run the select statement. Since BSEG is a cluster table I cant even create secondary index on PROJK field.
Could you please tell me, how to improve its performance.
Regards
Jaker.SELECT bukrs
belnr
gjahr
shkzg
dmbtr
hkont
lifnr
matnr
werks
menge
meins
ebeln
FROM bseg
INTO TABLE it_bseg
PACKAGE SIZE 10
FOR ALL ENTRIES IN it_final
WHERE bukrs EQ it_final-bukrs
AND belnr EQ it_final-belnr
AND gjahr EQ it_final-gjahr
AND buzei EQ it_final-buzei
AND hkont EQ it_final-hkont
AND werks IN s_werks.
By using package and fetch from BSEG table. gathering all other information to a final internal table.This will reduce the hit to database.And also try to put that data in hashed internal table which is it_bseg....then definetly improve the performance.
<REMOVED BY MODERATOR>
Dara.
Edited by: Alvaro Tejada Galindo on Apr 21, 2008 12:47 PM -
JPA - How to map relation with NON-KEY field.
Hello.
Problem with mapping is NullPointerException when calling EntityManager em.createNativeQuery:
Table1 (Bm_Treeassoc):
MY_ID (Primary Key)
BOOKMARKID (-> MY_ID in Table2)
Text
Table2 (Bm_Bookmark):
MY_ID ( Primary Key)
Text
//CLASS BmTreeassoc
@OneToMany(targetEntity=BmBookmark.class, mappedBy="treeMaster", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private BmTreeassoc treeMaster = null ;
//CLASS BmBookmark
@ManyToOne(targetEntity=BmTreeassoc.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = true)
@JoinColumn(name="MY_ID", referencedColumnName="BOOKMARKID", unique=true)
private ArrayList<BmBookmark> bookmarks = new ArrayList<BmBookmark>() ;
This Leads to the exception.
Mapping form MY_ID to MY_ID instead BOOKMARKID will not throw the exception,
so I assume I have a problem with the KEY Field?
Any ideas?
Kind regards
FrankOK,
after reflecting (after maniacally trying for days).
Here is the answer by myself:
I do not use the mapping stuff at all no more.
I solved my join by using a view:
CREATE VIEW SAPDEMO.VTree
AS SELECT t.TreeID, b.MY_ID, b.CLIENTID, b.Nickname, u.URL
FROM SAPDEMO.BM_TreeAssoc as t
JOIN SAPDEMO.BM_BOOKMARK as B ON t.BookmarkID = b.MY_ID
JOIN SAPDEMO.BM_URL as U ON b.URL = u.MY_ID
Create the entity and then do a:
select * from VTREE where clientid=1 and treeid=446
Works great, simple, fast.
Maybe you are looking for
-
Custom Authentication using WebService
Hi, I am trying to create a way to Authenticate my users after calling a Webservice using Custom Authentication so that they don't have to Log on twice (SSO). Here is a brief description of what I'm trying to do: - End Users Login and get Authenticat
-
Problems in creating a application system
RME-00011: Operation 'open' on ACTIVITY has failed RME-00011: Operation 'INS' on ci_application_systems has failed These are the errors i get when i try and create a application system. Can some plz tell me what to do exactly. Iam all confused. Thank
-
Hi, I have a custom IDoc message type YYY17101[Custom Type]. I need to send IDoc using this message type to 2 different rfc destination. The two RFC are 1. SAP R/3 system 2. XI system My question is which partner profile type i have select to send ID
-
Windows Connection Manager Profile Installer Has Stopped Working
Hi all, I thank all who can help me with this problem beforehand and will do so after. I am an IT technician at a university in South Africa. I am trying to install a custom made VPN program that works perfectly on every other machine but not this on
-
The last 2 days, FireFox has crashed numerous times. What gives?
No further details