How to pass Itab to "BAPI_SALESORDER_CHANGE"
Requirment : We cancel sales order that have been created but not fulfilled within 7 days.
At present, we do this manually. Can we configure to have the system auto cancel the sales order
after the said period?
selection screen
u2022 Sales organization (P_VKORG like ZSD_REJECT-VKORG)
u2022 Sales office (S_VKBUR for ZSD_REJECT-VKBUR)
u2022 Plant (S_WERKS for ZSD_REJECT-WERKS)
u2022 Sales order type (S_AUART for ZSD_REJECT-AUART)
u2022 Sales order no. (S_VBELN for ZSD_REJECT-VBELN)
u2022 Customer no. (S_KUNNR for ZSD_REJECT-KUNNR)
u2022 Rejection date (S_REJDTE for ZSD_REJECT-REJDATE)
Report format/columns should be as follows:
1. Sales organization (ZSD_REJECT-VKORG)
2. Sales office (ZSD_REJECT-VKBUR)
3. Plant (ZSD_REJECT-WERKS)
4. Customer no. (ZSD_REJECT-KUNNR)
5. Customer name (KNA1-NAME1)
6. Sales order no. (ZSD_REJECT-VBELN)
7. Sales order item (ZSD_REJECT-POSNR)
8. Material no. (VBAP-MATNR)
9. Material description (VBAP-ARKTX)
10. Order quantity (VBAP-KWMENG)
11. Rejected quantity (ZSD_REJECT-REJQTY)
12. Unit of measure (VBAP-VRKME)
13. Rejected net value (ZSD_REJECT-REJVAL)
14. Currency (VBAK-WAERK)
15. Rejection date (ZSD_REJECT-REJDATE)
16. Rejection time (ZSD_REJECT-REJTIME)
17. Rejection user (ZSD_REJECT-REJUSER)
Program : I have created one report & calling bapi BAPI_SALESORDER_CHANGE
TYPES: BEGIN OF t_tab,
vkorg TYPE zsd_reject-vkorg ,
vkbur TYPE zsd_reject-vkbur ,
auart TYPE zsd_reject-auart ,
END OF t_tab.
TYPES: BEGIN OF t_vbak,
vbeln TYPE vbak-vbeln ,
erdat TYPE vbak-erdat ,
waerk TYPE vbak-waerk,
vbtyp TYPE vbak-vbtyp,
auart TYPE vbak-auart,
vkorg TYPE vbak-vkorg ,
vkbur TYPE vbak-vkbur ,
kunnr TYPE vbak-kunnr ,
cmfre TYPE vbak-cmfre ,
gbsta type vpup-gbsta,
costa TYPE vbuk-costa ,
fkstk TYPE vbuk-fkstk,
END OF t_vbak.
TYPES: BEGIN OF t_data,
vbeln TYPE vbak-vbeln ,
waerk TYPE vbak-waerk,
auart TYPE vbak-auart,
vkorg TYPE vbak-vkorg ,
vkbur TYPE vbak-vkbur ,
kunnr TYPE vbak-kunnr ,
cmfre TYPE vbak-cmfre ,
END OF t_data.
TYPES: BEGIN OF t_vbap,
matnr TYPE vbap-matnr ,
vbeln TYPE vbap-vbeln ,
posnr TYPE vbap-posnr,
arktx TYPE vbap-arktx ,
pstyv TYPE vbap-pstyv,
abgru TYPE vbap-abgru,
kwmeng TYPE vbap-kwmeng,
werks TYPE vbap-werks ,
END OF t_vbap.
TABLES *
TABLES : zsd_reject.
INTERNAL TABLES, STRUCTURES & WORK AREAS *
DATA: it_vbak TYPE STANDARD TABLE OF t_vbak WITH HEADER LINE,
it_data TYPE STANDARD TABLE OF t_data WITH HEADER LINE ,
it_vbap TYPE STANDARD TABLE OF t_vbap ,
wa_vbak TYPE t_vbak ,
wa_vbap TYPE t_vbap ,
wa_data TYPE t_data.
PARAMETERS & SELECT-OPTIONS *
DUE TO AN SAP LIMITATION WITH CREATING / CHANGING VARIANTS,
selection screen fields over 45 characters in length should be avoided
SELECTION-SCREEN: BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
PARAMETERS: p_vkorg LIKE zsd_reject-vkorg.
SELECT-OPTIONS: s_vkbur FOR zsd_reject-vkbur,
s_werks FOR zsd_reject-werks,
s_auart FOR zsd_reject-auart,
s_vbeln FOR zsd_reject-vbeln,
s_kunnr FOR zsd_reject-kunnr,
s_rejdte FOR zsd_reject-rejdate.
SELECTION-SCREEN: END OF BLOCK a01.
DATA : p_days TYPE i VALUE 7,
l_checkdate LIKE sy-datum.
START-OF-SELECTION.
l_checkdate = sy-datum - p_days.
SELECT vbak~vbeln
vbak~erdat
vbak~waerk
vbak~vbtyp
vbak~auart
vbak~vkorg
vbak~vkbur
vbak~kunnr
vbak~cmfre
vbup~gbsta
vbuk~costa
vbuk~fkstk
INTO TABLE it_vbak
FROM vbak INNER JOIN vbuk
ON vbakvbeln = vbukvbeln
WHERE vbak~vkorg = p_vkorg
AND vbak~vkbur IN s_vkbur
AND vbak~auart IN s_auart
AND vbak~vbtyp = 'C'
AND vbuk~gbstk NE 'C'.
Requirment :
This checking is only for those order were previously blocked and has been released, which means credit release date not equal to 00.00.0000 and hence program will check rejection logic based on credit release date vs system date > 7 calendar days. For those orders which holding credit release date equals to 00.00.0000 will go through rejection checking
based on order creation date vs system date > 7 calendar days respectively.
LOOP AT it_vbak INTO wa_vbak.
IF NOT wa_vbak-cmfre IS INITIAL.
IF wa_vbak-cmfre > l_checkdate.
DELETE it_vbak FROM wa_vbak.
ENDIF.
ELSE.
IF wa_vbak-erdat > l_checkdate.
DELETE it_vbak FROM wa_vbak.
ENDIF.
ENDIF.
ENDLOOP.
SELECT vbapmatnr vbapvbeln vbapposnr vbaparktx vbap~pstyv
vbapabgru vbapkwmeng vbap~werks INTO TABLE it_vbap
FROM vbap INNER JOIN vbup ON
vbapvbeln = vbupvbeln AND vbapposnr = vbupposnr
FOR ALL entries
IN it_vbak WHERE vbap~vbeln = it_vbak-vbeln AND
gbsta NE 'C'.
I have taken the records in two internal table for header & item it_vbak & it_vbap
now I need to call the BAPI_SALESORDER_CHANGE and pass the internal table to Bapi .
Can anyone please let me know how to pass this into Bapi?
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument =
ORDER_HEADER_IN =
order_header_inx =
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
tables
return =
ORDER_ITEM_IN =
ORDER_ITEM_INX =
PARTNERS =
PARTNERCHANGES =
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
SCHEDULE_LINES =
SCHEDULE_LINESX =
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN =
CONDITIONS_INX =
EXTENSIONIN =
Thanks in advance
Regards
Rahul
Hi,
I am trying to cancel the sales order that have been created but not fulfilled within 7 days.
If this condition is true dump is coming (when I am trying to delete the records from internal table)
if wa_vbak-erdat > l_checkdate.
delete it_vbak from wa_vbak.
endif.
Error analysis
The program attempted to interp 70000200KL " as a number, but since the value contravenes the
this was not possible.
types: begin of t_vbak,
vbeln type vbak-vbeln ,
erdat type vbak-erdat ,
waerk type vbak-waerk,
vbtyp type vbak-vbtyp,
auart type vbak-auart,
vkorg type vbak-vkorg ,
vtweg type vbak-vtweg,
spart type vbak-spart,
vkbur type vbak-vkbur ,
kunnr type vbak-kunnr ,
cmfre type vbak-cmfre ,
gbsta type vpup-gbsta,
costa type vbuk-costa ,
fkstk type vbuk-fkstk,
end of t_vbak.
data : p_days type i value 7,
l_checkdate like sy-datum.
DATA: it_vbak TYPE STANDARD TABLE OF t_vbak WITH HEADER LINE,
it_data TYPE STANDARD TABLE OF t_data WITH HEADER LINE ,
start-of-selection.
l_checkdate = sy-datum - p_days.
select vbak~vbeln
vbak~erdat
vbak~waerk
vbak~vbtyp
vbak~auart
vbak~vkorg
vbak~vtweg
vbak~spart
vbak~vkbur
vbak~kunnr
vbak~cmfre
vbup~gbsta
vbuk~costa
vbuk~fkstk
into corresponding fields of table it_vbak
from vbak inner join vbuk
on vbakvbeln = vbukvbeln
where vbak~vkorg = p_vkorg
and vbak~vkbur in s_vkbur
and vbak~auart in s_auart
and vbak~vbtyp = 'C'
and vbuk~gbstk ne 'C'
and vbak~vbeln = '0000003549'.
sort it_vbak by vbeln.
if not it_vbak[] is initial.
loop at it_vbak into wa_vbak.
if not wa_vbak-cmfre is initial.
if wa_vbak-cmfre > l_checkdate.
delete it_vbak from wa_vbak.
endif.
else.
******Error (short dump here if condition true )***************************
if wa_vbak-erdat > l_checkdate.
delete it_vbak from wa_vbak.
endif.
endif.
endloop.
endif.
Regards
Rahul
Similar Messages
-
How to pass itab values into a smartform
hi everybody,
how can i pass the itab values from a report program to a smartform.
for ex:-
itab-bukrs, itab-lifnr, itab-budat.
can any one tell me where i have to define etc...
thanks
SantosiniHi
you can pass the itab values from a report program to a smartform.
like &itab-bukrs& & itab-lifnr&, & itab-budat&..you open any window and press change editor there you write fields like this.
first you create table type.in that you put all the fields which you want .then in form* interface* you put this table type name .
Edited by: Chaithanya A on Mar 21, 2008 8:17 AM
Edited by: Chaithanya A on Mar 21, 2008 8:17 AM -
Smartforms :How 2 Pass ITAB 2 layout plz look into this
hello Gurus
i need to pass a Internal Table(few selected fields form table LIPS ) with multiple records 2 my Smartforms Layout.
How do i do ? i cant use structure for the same since it can hold only one record .
Any sample code plz.
I have given points 2 u people .
Plz help .
Moni
Message was edited by: md monirujjamanDear Korolev
One small doubt related to this
What will be the data type 4 these Sales order text
Mark no : SO item text
Pack type : SO item text
Line Item Desc:SO item text
Plz help -
What are the paramters to b passed to the bapi_salesorder_change?
what are the paramters to b passed to the bapi_salesorder_change, and how the parameters to b populated?
Check the documentation in SE37.
how to use bapi to change so's schedule line category
Help with BAPI_SALESORDER_CHANGE
Regards,
Amit
Reward all helpful replies. -
How to Pass the internal table data?
DearAll,
How to pass the Data of one internal table on a 1.html page to another html page for output, in BSP Application.
regards.Hi ,
In the onInputProcessing event of the first page , write the following code...
call method NAVIGATION->SET_PARAMETER exporting
name = 'it_filt_cur'
value = it_filt_cur.
Here it_filt_cur is internal table.
NAVIGATION->GOTO_PAGE('next.htm').
In the next page , you can make the internal table as auto in the attributes.
Since you have made the itab as auto transfer , you can directly access the itab in the initialization event of the next page if it is stateless.
Regards,
Laxman Nayak.
Message was edited by: Laxman Nayak -
REUSE_ALV_GRID_DISPLAY , how to pass the 'tick' button to internal table
hi all i have coded:
DATA: BEGIN OF itab OCCURS 0,
vbeln LIKE vbak-vbeln,
posnr LIKE vbap-posnr,
chk(1),
END OF itab.
SELECT vbeln
posnr
FROM vbap
UP TO 20 ROWS
INTO TABLE itab.
x_fieldcat-fieldname = 'CHK'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-col_pos = 1.
x_fieldcat-input = 'X'.
x_fieldcat-edit = 'X'.
x_fieldcat-checkbox = 'X'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'VBELN'.
x_fieldcat-seltext_l = 'VBELN'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-col_pos = 2.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'POSNR'.
x_fieldcat-seltext_l = 'POSNR'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-col_pos = 3.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
l_layout-window_titlebar = 'Popup window'.
x_events-name = slis_ev_end_of_page.
x_events-form = 'END_OF_PAGE'.
APPEND x_events TO it_events.
CLEAR x_events .
x_events-name = slis_ev_top_of_page.
x_events-form = 'TOP_OF_PAGE'.
APPEND x_events TO it_events.
CLEAR x_events .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = l_layout
i_callback_pf_status_set = 'STATUS'
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcat
it_events = it_events
I_SCREEN_START_COLUMN = 10
I_SCREEN_START_LINE = 1
I_SCREEN_END_COLUMN = 50
I_SCREEN_END_LINE = 20
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
itab-chk is a check button, after execute for the second time, i need to get this ticked button to perform upload transaction..how to pass the ticked button inside itab ?just loop at itab and pass X to chk
loop at itab into wa_itab.
wa_itab-chk = 'X'.
modify itab from wa_itab.
endloop. -
How to pass table data to brf plus application through abap program
Dear All,
i have a question related to BRF Plus management through abap program.
In brf plus application end, Field1,field2,field3 these 3 are importing parameters.
Table1->structure1->field4,field5 this is the table,with in one structure is there and 2 fields.
in my abap program, i am getting values of fields let us take field1,field2,field3,field4,field5.
And my question is
1) How to pass fields to BRF Plus application from abap program.
2)How to pass Table data to BRF Plus application from abap program.
3)How to pass Structure data to BRF Plus application from abap program.
4)How to get the result data from BRF Plus application to my abap program.
And finally , how to run FDT_TEMPLATE_FUNCTION_PROCESS.
How do i get the code automatically when calling the function in brf plus application.
Regards
venkata.Hi Prabhu,
Since it is a Custom Fm i cant see it in my system.
Look if u want to bring data in internal table then there could be two ways::
1) your FM should contain itab in CHANGING option , so that u can have internal table of same type and pass through FM,
2) read values one by one and append to internal table.
Thanks
Rohit G -
Performace tuning: how to pass data between different batch job programs?
Hi everyone,
now i have one problem about performance tuning using threading in SAP programs: split one big program into two programs - one is main program and the other is sub program. using batch jobs, we can submit multi jobs of sub program at the same time.
does anybody know how to pass data between different batch jobs? I don't want to use temp files. can ABAP memory can implement this?
thanks!Wei,
Yes we can transfer the data by using
SAP Memory OR ABAP Memory.
Ex: V_count TYPE i.
V_count = 100.
LOOP AT itab.
IF v_count EQ 25.
Here For every batch job
EXPORT data TO MEMORY ID 'ABC'
Function module
JOB_OPEN
JOB_SUBMIT
JOB_CLOSE.
ENDIF.
ENDLOOP .
IN your 2nd program.
INITIALIZATION.
IMPORT data FROM MEMORY IF 'ABC'.
FREE memory if .---When you free the memory you will get recent data.
Don't forget to reward if useful. -
How to pass select option value to function module while using service call
Hi,
I have select-option in my WD application. To collect data based on user input im using service call. How to pass this select option values to my RFC.
rgds
sudhanshuHi,
Thank s for your reply. In fact im doing similar with following variation:
i) collected range values using get_range* method.
ii) separate low and high values as:
read table <field2> index 1 into wa_range.
vert2_low = wa_range-low.
vert2_high = wa_range-high.
(Please note that in RFC I have taken two importing parameter as s_vert_lo and s_vert_hi)
iii) Now setting these RFC attribute as:
lo_el_importing->set_attribute(
EXPORTING
name = `S_VERT_LO`
value = vert2_low ).
and
lo_el_importing->set_attribute(
EXPORTING
name = `S_VERT_HI`
value = vert2_high ).
iv) In RFC im having my query as :
select <fld list> from BUT000 into table itab where vertical in r_vert.
Here, r_vert is a range defined as:
ranges r_vert for <fld refrence>
r_vert-sign = 'I'.
r_vert-option = 'BT'.
r_vert-low = S_VERT_LO.
r_vert-high = S_VERT_HI.
append r_vert.
Issue here is with ranges. if im passing both low and high values it is fine but if only low value being passed it is not giving me any record.
Please suggest.
Rgds
Sudhanshu -
How to pass Text Lines to z-table..?
Hi All..
I have a custome screen, where user inputs text of length 250 Char.
How to pass this value to Z-table, where i have created a Field with CHAR type and 250 Length..???
PavanHi,
Use below logic.
data itab like ztable occurs 0 with header line.
itab-text = screen-text.
append itab.
insert ztable from table itab.
Regards,
Amole
Regards
Amole -
How to pass data between two internal sessions using ABAP memory?
Hi,
How to pass data between two internal sessions using ABAP memory?
It would be fine if you could explain with an example.
And also let me clear about the data passing between two main sessions and two external sessions with specific examples.
Thanks.Hi ,
check the example.
Reading Data Objects from Memory
To read data objects from ABAP memory into an ABAP program, use the following statement:
Syntax
IMPORT <f1> [TO <g 1>] <f 2> [TO <g 2>] ... FROM MEMORY ID <key>.
This statement reads the data objects specified in the list from a cluster in memory. If you do not use the TO <g i > option, the data object <f i > in memory is assigned to the data object in the program with the same name. If you do use the option, the data object <f i > is read from memory into the field <g i >. The name <key> identifies the cluster in memory. It may be up to 32 characters long.
You do not have to read all of the objects stored under a particular name <key>. You can restrict the number of objects by specifying their names. If the memory does not contain any objects under the name <key>, SY-SUBRC is set to 4. If, on the other hand, there is a data cluster in memory with the name <key>, SY-SUBRC is always 0, regardless of whether it contained the data object <f i >. If the cluster does not contain the data object <f i >, the target field remains unchanged.
In this statement, the system does not check whether the structure of the object in memory is compatible with the structure into which you are reading it. The data is transported bit by bit. If the structures are incompatible, the data in the target field may be incorrect.
PROGRAM SAPMZTS1.
DATA TEXT1(10) VALUE 'Exporting'.
DATA ITAB LIKE SBOOK OCCURS 10 WITH HEADER LINE.
DO 5 TIMES.
ITAB-BOOKID = 100 + SY-INDEX.
APPEND ITAB.
ENDDO.
EXPORT TEXT1
TEXT2 FROM 'Literal'
TO MEMORY ID 'text'.
EXPORT ITAB
TO MEMORY ID 'table'.
SUBMIT SAPMZTS2 AND RETURN.
SUBMIT SAPMZTS3.
The first part of this program is the same as the example in the section Saving Data Objects in Memory. In the example, the programs SAPMZTS1 and SAPMZTS2 are called using SUBMIT. You can create and maintain the programs called using the SUBMIT statement by double-clicking their names in the statement. For further information about the SUBMIT statement, refer to Calling Executable Programs (Reports)
Example for SAPMZTS2:
PROGRAM SAPMZTS2.
DATA: TEXT1(10),
TEXT3 LIKE TEXT1 VALUE 'Initial'.
IMPORT TEXT3 FROM MEMORY ID 'text'.
WRITE: / SY-SUBRC, TEXT3.
IMPORT TEXT2 TO TEXT1 FROM MEMORY ID 'text'.
WRITE: / SY-SUBRC, TEXT1.
Example for SAPMZTS3:
PROGRAM SAPMZTS3.
DATA JTAB LIKE SBOOK OCCURS 10 WITH HEADER LINE.
IMPORT ITAB TO JTAB FROM MEMORY ID 'table'.
LOOP AT JTAB.
WRITE / JTAB-BOOKID.
ENDLOOP.
The output is displayed on two successive screens. It looks like this:
and
The program SAPMZTS2 attempts to read a data object TEXT3 from the data cluster "text", which does not exist. TEXT3 therefore remains unchanged. The existing data object TEXT2 is placed in TEXT1. In both cases, SY-SUBRC is 0, since the cluster "text" contains data.
The program SAPMZTS3 reads the internal table ITAB from the cluster "table" into the internal table JTAB. Both tables have the same structure, namely that of the ABAP Dictionary table SBOOK.
Pls. reward if useful..... -
How to pass the data from a input table to RFC data service?
Hi,
I am doing a prototype with VC, I'm wondering how VC pass the data from a table view to a backend data service? For example, I have one RFC in the backend system with a tabel type importing parameter, now I want to pass all the data from an input table view to the RFC, I guess it's possible but I don't know how to do it.
I try to create some events between the input table and data service, but seems there is no a system event can export the whole table to the backend data service.
Thanks for your answer.Thanks for your answer, I tried the solution 2, I create "Submit" button, and ser the mapping scope to be "All data rows", it only works when I select at least one row, otherwise the data would not be passed.
Another question is I have serveral imported table parameter, for each table I have one "submit" event, I want these tables to be submitted at the same time, but if I click the submit button in one table toolbar, I can only submit the table data which has a submit button clicked, for other tables, the data is not passed, how can I achieve it?
Thanks. -
How to pass credentials/saml token exchange to the sharepoint web service ex:lists.asmx when sharepoint has single sign on with claims based authentication
Identity provider here is Oracle identity provider
harika kakkireniHi,
The following materials for your reference:
Consuming List.asmx on a claims based sharepoint site
http://social.technet.microsoft.com/Forums/sharepoint/en-US/f965c1ee-4017-4066-ad0f-a4f56cd0e8da/consuming-listasmx-on-a-claims-based-sharepoint-site?forum=sharepointcustomizationprevious
Sharepoint Claims based authentication and Single Sign on
http://social.technet.microsoft.com/Forums/sharepoint/en-US/2dfc1fdc-abc0-4fad-a414-302f52c1178b/sharepoint-claims-based-authentication-and-single-sign-on?forum=sharepointadminprevious
Sharepoint Claim Based Authentication Web Service issuehttp://social.msdn.microsoft.com/Forums/office/en-US/dd4cc581-863c-439f-938f-948809dd18db/sharepoint-claim-based-authentication-web-service-issue?forum=sharepointgeneralprevious
Best Regards
Dennis Guo
TechNet Community Support -
How to pass a list of parameters to a query?
Hi,
I use OracleXE 10 Database with JDeveloper 11g.
In my project I use a Toplink mapping to get access to the database (Toplink Object Map file). This mapping xml file is called crmMap.xml.
In the crmMap.xml file I define a mapping to a "User table" which has the four columns id (number), title (varchar2), firstName (varchar2) and lastName (varchar2). A title can have the four values Bachelor, Master, Doctor and Professor.
I do define a query in crmMap.xml which has to find all the users that have a special title. I do give the query one parameter called "title" which has the type "java.util.ArrayList". The parameter "title" is a list that has for example the two values "Bachelor" and "Doctor", if I want to find all the users that are Bachelor or Doctor. The query looks like this ...
Select * from User where title in(?title)I do use an EJB Session Bean to call the query. The code looks like this ...
public List<User> findUserByStatus() {
Session session = getSessionFactory().acquireSession();
Vector params = new Vector(1);
List stati = new ArrayList();
stati.add("Doctor");
stati.add("Bachelor");
params.add(stati);
List<User> result = (List<User>)session.executeQuery("findUserByStatus", User.class, params);
session.release();
return result;
}Doing this I get an error, in the line
List<User> result = (List<User>)session.executeQuery("findUserByStatus", User.class, params);while the app is trying to execute the query.
Part of my log
WARNING: ADFc: Invalid column type
java.sql.SQLException: Invalid column type
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:116)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:177)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:233)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:407)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7931)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7511)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8168)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8149)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:229)
at oracle.toplink.internal.databaseaccess.DatabasePlatform.setPrimitiveParameterValue(DatabasePlatform.java:1694)
at oracle.toplink.internal.databaseaccess.DatabasePlatform.setParameterValueInDatabaseCall(DatabasePlatform.java:1684)
at oracle.toplink.platform.database.oracle.Oracle9Platform.setParameterValueInDatabaseCall(Oracle9Platform.java:339)
at oracle.toplink.internal.databaseaccess.DatabasePlatform.setParameterValuesInDatabaseCall(DatabasePlatform.java:1669)
at oracle.toplink.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:649)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:517)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:467)
at oracle.toplink.threetier.ServerSession.executeCall(ServerSession.java:447)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:179)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:250)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:583)
at oracle.toplink.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:467)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:874)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:674)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:835)
at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:445)
at oracle.toplink.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:2260)
at oracle.toplink.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1074)
at oracle.toplink.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1058)
at oracle.toplink.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1032)
at oracle.toplink.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:945)
at de.virtual7.crmTL.model.crmFacadeBean.findUserByStatus(crmFacadeBean.java:720)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:15)
at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:30)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
at $Proxy90.findUserByStatus(Unknown Source)
at de.virtual7.crmTL.model.crmFacade_etlagg_crmFacadeLocalImpl.findUserByStatus(crmFacade_etlagg_crmFacadeLocalImpl.java:838)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:563)
at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2119)
at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:2929)
at oracle.adf.model.bean.DCBeanDataControl.invokeMethod(DCBeanDataControl.java:396)
at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:258)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1441)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2126)
at oracle.adf.model.bean.DCBeanDataControl.invokeOperation(DCBeanDataControl.java:414)
at oracle.adf.model.adapter.AdapterDCService.invokeOperation(AdapterDCService.java:311)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:697)
at oracle.adf.model.binding.DCInvokeAction.refreshInternal(DCInvokeAction.java:46)
at oracle.adf.model.binding.DCInvokeAction.refresh(DCInvokeAction.java:32)
at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:2970)
at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2639)
at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareModel(PageLifecycleImpl.java:110)
at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareModel(FacesPageLifecycle.java:77)
at oracle.adf.controller.v2.lifecycle.Lifecycle$2.execute(Lifecycle.java:135)
at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:190)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java:19)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$PhaseInvokerImpl.startPageLifecycle(ADFPhaseListener.java:229)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$1.after(ADFPhaseListener.java:265)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:69)
at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:51)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:354)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:175)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:181)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:279)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:239)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:196)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:139)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:85)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:257)
at oracle.security.jps.wls.JpsWlsSubjectResolver.runJaasMode(JpsWlsSubjectResolver.java:250)
at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:100)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:65)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
07.09.2009 11:50:16 oracle.adf.controller.faces.lifecycle.FacesPageLifecycle addMessage
WARNUNG: ADFc: EJB Exception: : Lokaler Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink - 11g (11.1.1.0.1) (Build 081030)): oracle.toplink.exceptions.DatabaseException
Interne Exception: java.sql.SQLException: Ungültiger Spaltentyp
Fehlercode:17004
Aufruf:Select * from User where title in(?title)
bind => [[Doctor,Bachelor]]Does anyone know a way how to pass a list of parameters
Thanks BodhyHi,
One alternative way is to create String with , sepearted as pass the string to in clause.For example ,create a string ('Bachelor','Doctor') and pass this string to in clause.
Session session = getSessionFactory().acquireSession();
String params=( 'Bachelor','Doctor);
List<User> result = (List<User>)session.executeQuery("findUserByStatus", User.class, params);
session.release();
This is an alternative way and workaround which can work for Strings .
Or you can use EXpression to build the query to pass the collection as example given below.
Expression addressExpression;
ReadObjectQuery query = new ReadObjectQuery(Employee.class);
ExpressionBuilder emp = query.getExpressionBuilder();
addressExpression =
emp.get("address").get("city").equal(
emp.getParameter("employee").get("address").get("city"));
query.setName("findByCity");
query.setSelectionCriteria(addressExpression);
query.addArgument("employee");
Vector v = new Vector();
v.addElement(employee);
Employee e = (Employee) session.executeQuery(query, v);
Hope this helps.
Regards,
Vinay Kumar -
How to pass multiple values from workbook to planning function ?
Hi,
I have created Planning function in Modeler and it has one parameter(Variable represents = Multiple single values).
When executing the planning function by create planning seq. in the web template : I see value of variable store data like ...
A.) input one value -> V1
B.) input three values -> V1;V2;V3
This function execute completely in web.
However, I want to use the planning function in workbook(Excel).
The value of variable can't input V1;V2;V3... I don't know how to pass multiple values from workbook to parameter(Multiple single values type) in planning function ?
thank you.Hi,
Please see the attached how to document (page no 16).
<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f0881371-78a1-2910-f0b8-af3e184929be">how to</a>
Hope this was helpful
thanks
Maybe you are looking for
-
ok, my former computer crashed and i have a new one. i would like to sync my ipod with the new one, but it wont allow me to with out removing all of the data on it. How can i fix this?
-
RoxMediaDB9 Module has Stopped working
This happens to me constantly when I try to use Roxio Media Manager to transfer files to my 8 hour old Storm. It worked once when I was transfering music. I've tried everything I can think of including un-installing re-installing and so on. I have no
-
CRM On Demand pre Built reports
Hi Does anyone have a list of the fields and formulas used in the Siebel On Demand Sales pre built reports? Thank you Elizabeth [email protected]
-
Documents related to ALE & EDI
Hello Everyone, Can anyone provide me the good document regarding ALE & EDI, which gives me the flow about: 1. How Idoc is created (after triggering through any Transaction or using Program - With & whout Message Control)? 2. Then, how it is passed t
-
Is varchar2(9) or even number(9) bad as a ssn?
Hi All, I just want to question the wisdom of (<INT>) datatypes. If I do ... create table table_0123 ( ssn varchar2(9), ... in tons of tons code (or even in a small piece of code that gets used or modified over and over), won't I be setting my self u