Executing a query using API
Hi All
Is there any way to query OIM database using OIM API.
i mean excuting a custom query.
Thank you
sas
To execute a query, you can use the following:
tcDataSet tcDS = new tcDataSet();
tcDS.setQuery(<dbRef>, <queryString>);
tcDS.executeQuery();
<dbRef> -> If executing from adapter, you can use tcDataProvider or if invoking from a scheduled task use 'getDataBase()'
<queryString> -> String containing the query.
As mentioned in earlier replies, using direct queries is not recommended, you should be using APIs instead. tcUserOperationsIntf.findUsers(Map) wil work. Then on the tcResultSet object returned you can use getRowCOunt() to determine # of rows.
Hope this helps.
- Aman
Similar Messages
-
Execute a query using ABAP (XSLT transformation issue)
Hello,
I made the steps from this blog (part I, II and III).
/people/durairaj.athavanraja/blog/2005/12/05/execute-bw-query-using-abap-part-iii
When trying to run the XSLT transformation, I got the message that : XML invalid source file.
I am not sure what are the steps for running a transformation, or running it for this case ,maybe something it's not ok. I just run it, did not provide any information.
Any suggestions ? Did anyone use the function module described in this blog ?
Thank you very much in advance.try giving
CALL TRANSFORMATION (`ID`)
SOURCE meta = meta_data[]
output = <ltable>[]
RESULT XML xml_out
OPTIONS xml_header = 'NO'.
and check - sometimes the codepages configured in the BW system tend to cause an issue... I am not sure if the syntax is right though - but you are basically trying to bypass any encoding that is happening in the query transformation....
http://www.sapetabap.com/ovidentia/index.php?tg=fileman&sAction=getFile&inl=1&id=4&gr=Y&path=ABAP%2FABAPENANGLAIS&file=ABAP-XML+Mapping.pdf&idf=41
Edited by: Arun Varadarajan on May 18, 2009 11:28 PM -
Hello ,
1) I used the function module from this link :
/people/durairaj.athavanraja/blog/2005/12/05/execute-bw-query-using-abap-part-iii
When I run it , I see the metadata correct and this is all. No more data to display.
2) Then I used the code from here :
/people/durairaj.athavanraja/blog/2005/12/05/execute-bw-query-using-abap-part-iii
MOVE: <variable name> TO wa_var-vnam ,
'I' TO wa_var-sign,
'EQ' TO wa_var-opt,
<variable value> TO wa_var-low .
query_variables = var
FUNCTION z_test_query.
FIELD-SYMBOLS: <outtab> TYPE ANY TABLE,
<l_line> TYPE ANY,
<l_field> TYPE ANY.
TYPE-POOLS: rrx1 .
DATA: wa_var TYPE rrx_var ,
var TYPE STANDARD TABLE OF rrx_var ,
xml_out TYPE string ,
breturn TYPE STANDARD TABLE OF bapiret2 ,
rpt_tech_id(50) ,
wa_meta TYPE zbw_query_output_metadata ,
xslt_error TYPE REF TO cx_xslt_exception ,
is_fieldcat TYPE lvc_s_fcat,
it_fieldcat TYPE lvc_t_fcat,
new_table TYPE REF TO data ,
xslt_message TYPE string ,
meta TYPE STANDARD TABLE OF zbw_query_output_metadata . " this structure was created in the previous part
*fill all the variables like below.
MOVE: 'SEM_PSG01/PSG___00000_080_V1' TO rpt_tech_id .
APPEND wa_var TO var .
CLEAR :xml_out .
REFRESH breturn .
CALL FUNCTION 'Z_QUERY_EXECUTE'
EXPORTING
query_name = rpt_tech_id
IMPORTING
xml_out = xml_out
TABLES
return = breturn
meta = meta
EXCEPTIONS
bad_value_combination = 1
user_not_authorized = 2
unknown_error = 3
query_not_found = 4
OTHERS = 5.
CASE sy-subrc .
WHEN 0 .
CLEAR: is_fieldcat, wa_meta .
REFRESH: it_fieldcat .
LOOP AT meta INTO wa_meta.
is_fieldcat-fieldname = wa_meta-fieldname.
is_fieldcat-outputlen = wa_meta-outputlen .
is_fieldcat-datatype = wa_meta-datatype.
is_fieldcat-scrtext_l = wa_meta-scrtext_l.
APPEND is_fieldcat TO it_fieldcat.
CLEAR : is_fieldcat .
ENDLOOP .
IF NOT it_fieldcat[] IS INITIAL .
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = new_table.
ASSIGN new_table->* TO <outtab>.
ENDIF .
TRY .
CALL TRANSFORMATION ('Z_GPS_TR')
SOURCE XML xml_out
RESULT outtab = <outtab>.
CATCH cx_xslt_exception INTO xslt_error.
xslt_message = xslt_error->get_text( ).
ENDTRY.
WHEN 1 .
WHEN 2 .
WHEN OTHERS .
ENDCASE .
{ENDFUNCTION.
'Z_GPS_TR' is my transformation (exactly the code from the blog).
'Z_QUERY_EXECUTE' is the function from 1). I did not use variables for the query parameter.
I see with the debugger that <outtab> is filled corectly, with the values from my query. Still , the function, when is runed normally, does not display anything.
3) If I run only the transformation Z_GPS_TR alone, it says invalid source XM source file.
Please, some suggestion? I don't know hot to proceed.
Many thanks.
Edited by: Ariana D on May 19, 2009 11:40 AMHi All
I able to solve this problem
Regards
Satrajit. -
Error executing a query using a DB-Link
Hi all,
I'm trying to execute a query on a DB using a connection. I created a DB-LINK on the DB. executing the select:
select sysdate from dual@lnk_db_prod;
I get the following error:
Error starting at line 1 in command:
select sysdate from dual@lnk_db_prod
Error at Command Line:1 Column:19
Error report:
SQL Error: ORA-01882: timezone region not found
ORA-02063: preceding line from lnk_db_prod
The error will be return executing any query on a db-link.
It appens if I create a db-link using syntax referencing the SID and using the sintax with the complete connection string. Below the two example of db-link DDL commands:
1.
CREATE DATABASE LINK lnk_db_prod
CONNECT TO prod IDENTIFIED BY prod
USING 'DBPROD';
2.
create database link lnk_db_prod2
connect to prod
identified by prod
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 10.41.54.156)
(Port = 1521)
(CONNECT_DATA = (SID = DBPROD)
Can you help me, please?
bye,
IvanHi,
You would be better off posting / searching on other Oracle forums that deal more specifically with Application Servers. I googled "WebLogic set time_zone" and the first three hits were from our forums:
Default TimeZone
How to fix msg=ORA-01882: timezone region not found
http://kr.forums.oracle.com/forums/thread.jspa?messageID=9400587
I hope one of the these is what you are looking for.
Regards,
Gary Graham
SQL Developer Team -
Executing Select query using JDBC Receiver Adapter
I created couple types in Oracle and also new function instead of procedure
Can I execute the above query using JDBC Receiver Adapter.
select *
from the ( select cast( apr.get_distribut('', '', '', 'hdfcgd', 'CAN') as dsrTable )
from dual );
If possible how my message structure should look like...Hi vikram,
If you use JDBC as Receiver Adapter you can only post the data to the data base I do no think so we can select the records from the data base.
If you use JDBC as Sender hope,we can the select query in the sender communication channel.
Hope I am clear.
Thanks and Regardds,
Chandu. -
Executing Jar application using API
Hi,
Java tutorial [http://java.sun.com/docs/books/tutorial/deployment/jar/apiindex.html] explains how to launch an application bundled in a jar using API.
How can you set the class path of the launched application ?
I tried to have the launched application read a text file that is bundled in the same jar but couldn't.
Thank youHere is a complete example of my problem
c.java launches App.java
import java.io.*;
import java.util.jar.*;
import java.net.*;
import java.lang.reflect.*;
class c
public static void main(String[] args)
URLClassLoader ucl;
URL url;
Class<?> cls;
Method m;
try {
url = new URL ( "jar","","file:/Exec/App.jar!/" );
ucl = new URLClassLoader ( new URL[]{url} );
cls = ucl.loadClass ( "Exec.App" );
m = cls.getMethod ( "main",new Class[]{args.getClass()} );
m.setAccessible(true);
m.invoke ( null,new Object[]{args} );
catch ( Throwable t )
System.out.println("Error launching application\n"+t);
package Exec;
import java.io.InputStream;
public class App
public static void main ( String[] args )
new App().launch();
public void launch()
InputStream is;
byte b[] = new byte[512];
int i;
is = this.getClass().getResourceAsStream ( "Seal.txt" );
try {
i=is.read(b,0,b.length);
System.out.print(new String(b,0,i));
catch ( Throwable t ) {System.out.println(t);}
try { is.close(); } catch (Throwable t) {}
App.jar
META-INF/
META-INF/MANIFEST.MF
Exec/App.class
Seal.txtNotes:
1. Running c.class produces java.lang.NullPointerException
2. If I use is = ClassLoader.getSystemResourceAsStream ( "Seal.txt" ); instead of is = this.getClass().getResourceAsStream ( "Seal.txt" ); and put the jar on the -cp of the command line, it works
Can you please tell me why I am getting the exception ?
Thank you -
Error executing a query using VPD and BC4J
Hi all,
Our team is developing an application using an Oracle DB 9.2.0.4 and BC4J 10g (9.0.5.16.0) as persistence layer.
We also are using the VPD (virtual private database) to have security in the database at row level.
The problem we are facing is that every some time (days) we get a jdbc error when a query (see below) that uses VPD policies is executed. Once the error occurs I execute it from sqlplus without getting any error .. it only occurs from our java application.
To temporary solve this problem, we delete and recreate the VPD policies, then the application continue working fine for some time ...
I'll appreciate any comment / suggestions
Thank in advance.
Eduardo.
ERROR LOG:
oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT CalLocation.ID,
CalLocation.CODE, eo
CalLocation.NAME,
CalLocation.ZIP,
CalLocation.PHONE,
CalLocation.FAX,
CalLocation.ADDRESS1,
CalLocation.ADDRESS2,
CalLocation.URL,
CalLocation.OWNER,
CalLocation.CTY_ID,
CalLocation.DESCRIPTION,
ORefCity.CODE CTY_CODE,
ORefCountry.ID CTR_ID,
ORefCountry.CODE CTR_CODE,
ORefRegion.ID REG_ID,
ORefRegion.CODE REG_CODE
FROM CAL_LOCATIONS CalLocation,
OREF_CITIES ORefCity,
OREF_COUNTRIES ORefCountry,
OREF_REGIONS ORefRegion
WHERE ORefCity.ID = CalLocation.CTY_ID
and ORefCountry.ID = ORefCity.CTR_ID
and ORefRegion.ID = ORefCountry.REG_ID) QRSLT WHERE ( ( (CTY_ID = 867) ) )
## Detail 0 ##
java.sql.SQLException: Io exception: Broken pipe
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:345)
at oracle.jdbc.driver.OracleStatement.open(OracleStatement.java:717)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2605)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:457)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:387)The symptoms we have been getting are quite similar to the bug 3662364 .
I'm going to implement the patch for that bug and see what happend then.
Thank you very much for your help.
Regards,
Eduardo. -
APEX 'crawling' whilst executing a query using CONNECT BY
Hi Folks.
Anyone seen this behaviour before?
I can run this SQL (with the appropriate page item values substitued) in PL/SQL developer and I get the result in less than 0.094 seconds with a COST of 13
SELECT NULL LINK
,a.data_points
,5000 forecast_value
FROM
(SELECT to_char(trunc(add_months((SELECT iag.agreement_start_date
FROM iot_agreement iag
WHERE iag.iot_agreement_id =
:P317_IOT_REBATE_AGREEMENT_ID)
,LEVEL - 1)
,'mm')
,'MON-RR') data_points
FROM dual
CONNECT BY LEVEL <=
trunc(months_between((SELECT iag.agreement_end_date
FROM iot_agreement iag
WHERE iag.iot_agreement_id =
:P317_IOT_REBATE_AGREEMENT_ID)
,(SELECT iag.agreement_start_date
FROM iot_agreement iag
WHERE iag.iot_agreement_id =
:P317_IOT_REBATE_AGREEMENT_ID)))
MINUS
SELECT pkg_ngc_utilities.get_long_traffic_month(imps.traffic_period_id)
FROM iot_mfs_plus_summary imps
WHERE imps.client_master_entity_id = :P317_CLIENT_MASTER_ENTITY_ID
AND imps.home_master_entity_id IN
(SELECT ipy.master_entity_id
FROM iot_party ipy
WHERE ipy.iot_agreement_id = :P317_IOT_REBATE_AGREEMENT_ID
AND ipy.client_side = 0) -- Roaming Partner
AND imps.visited_master_entity_id = imps.client_master_entity_id
AND pkg_ngc_utilities.get_long_traffic_month(imps.traffic_period_id) IN
(SELECT to_char(trunc(add_months((SELECT iag.agreement_start_date
FROM iot_agreement iag
WHERE iag.iot_agreement_id =
:P317_IOT_REBATE_AGREEMENT_ID)
,LEVEL - 1)
,'mm')
,'MON-RR') data_points
FROM dual
CONNECT BY LEVEL <= trunc(months_between ((SELECT iag.agreement_end_date
FROM iot_agreement iag
WHERE iag.iot_agreement_id =
:P317_IOT_REBATE_AGREEMENT_ID) ,
(SELECT iag.agreement_start_date
FROM iot_agreement iag
WHERE iag.iot_agreement_id =
:P317_IOT_REBATE_AGREEMENT_ID)
)))) a
ORDER BY to_date(a.data_points, 'MON-RR')If I use the same query in a Flash Chart the page still only takes a few seconds to display but the chart takes over a minute to display. APEX ADMIN shows the page being served in 2 - 3 seconds.
If I drop the chart and drop the query into a simple report region, the entire page takes over a minute to display.
Has anyone experienced anything similar?
This is the first time I have used CONNECT BY LEVEL in my SQL so that is my main suspect. But please remember, in SQL/Developer the query executes very quickly indeed.
Many thanks
Kind regards
Simon GaddHi Simon,
I had something similar. When my code ran is SQL is took seconds, but took minutes in an ApEx page. There seems to the something strange with the way ApEx and/or the optimizer execute code via ApEx pages.
I gave my code to one of my tuning experts and they added a simple rule to force index use:
select /*+RULE index(r AMS_REQUESTS_IDX4) */
r.requester_name,
r.ams_type_code_name,
d.display_date
from
(select TO_DATE(:P23_CALENDAR_DATE,'YYYYMMDD')-100+rownum display_date from all_objects where rownum < 300) d,
ams_requests_v r
where
trunc(d.display_date) between trunc(r.start_date) and trunc(r.end_date)
and r.approval_status != 'R'
and to_char(d.display_date,'DY') NOT IN ('SAT','SUN')
and d.display_date not in (select trunc(closure_date) from ams_closures)
and (nvl(r.restricted_view_flag,'N') = 'N' or trunc(r.end_date) >= trunc(sysdate))
and r.department_id in ( select
d.department_id
from
ams_departments d
connect by ( PRIOR DEPARTMENT_ID = PARENT_DEPARTMENT_ID)
start with department_id = (
select
department_id
from
ams_departments
where
nvl(terminating_dept_flag,'N') = 'Y'
and level = (select
min(level)
from
ams_departments
where
nvl(terminating_dept_flag,'N') = 'Y'
connect by department_id = prior parent_department_id
start with department_id = :P0_DEPARTMENT_ID)
connect by department_id = prior parent_department_id
start with department_id = :P0_DEPARTMENT_ID))
UNION
select /*+RULE index(r AMS_REQUESTS_IDX4) */
r.requester_name,
r.ams_type_code_name,
d.display_date
from
(select TO_DATE(:P23_CALENDAR_DATE,'YYYYMMDD')-100+rownum display_date from all_objects where rownum < 300) d,
ams_requests_v r
where
trunc(d.display_date) between trunc(r.start_date) and trunc(r.end_date)
and r.approval_status != 'R'
and to_char(d.display_date,'DY') NOT IN ('SAT','SUN')
and d.display_date not in (select trunc(closure_date) from ams_closures)
and nvl(r.restricted_view_flag,'N') = 'Y'
and r.department_id in ( select distinct
d.department_id
from
ams_departments d
connect by ( PRIOR DEPARTMENT_ID = PARENT_DEPARTMENT_ID)
start with department_id in (
select
department_id
from
ams_departments_v
where
:P0_PERSON_ID in (manager_id, deputy_id,administrator_id)))
UNION
select
NULL requester_name,
t.name ams_type_code_name,
trunc(c.closure_date) display_date
from
ams_closures c,
ams_closure_type_codes_v t
where
c.AMS_CLOSURE_TYPE_CODE = t.AMS_CLOSURE_TYPE_CODE
order by 3,1It might be worth you trying something similar.
best regards,
Martin -
How can I execute a query using RSCRMBW_REPORT?
Hi everybody,
I have read the document:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3ba5e590-0201-0010-59b1-cab51fd245b7
and found it is very intersting for my requirement.
I copied the report,and modified it regarding our case.But during the second call,I get runtime error.
I debugged the code, and found the error results from method GET_CUBETYPE() of class CL_RSCRMBW_BAPI.In this method,it tries to create a object which is TYPE REF TO cl_rsd_dta.
CREATE OBJECT lr_dta
EXPORTING
i_infoprov = g_s_status-infocube
But g_s_status-infcube is null.
I am not able to find where this 'infocube' component in this g_s_status struction is filled,even I found,I don't know how I can give this infocube parameter from report which 2 FM are called.
My code is following:
parameters: p_repuid TYPE RSCRMSTATUS-REPORTUID
DEFAULT 'Z_IC_01/Z_COMP_Q003'.
parameters: p_split type BAPI6110DIM-DIM_NAM.
data:name_query TYPE CHAR50,
result_table LIKE RSCRMSTATUS-TABNAME,
it_return LIKE BAPIRET2 OCCURS 2 WITH HEADER LINE,
infocube TYPE CHAR30,
compid TYPE CHAR30.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_repuid.
CALL FUNCTION 'RSZ_COMPONENT_TREE_GET'
EXPORTING
i_title = 'Query auswählen'(031)
IMPORTING
E_INFOCUBE = infocube
E_COMPID = compid
EXCEPTIONS
OTHERS = 1.
IF sy-subrc GT 0.
ENDIF.
concatenate infocube '/' compid into p_repuid.
START-OF-SELECTION.
CALL FUNCTION 'RSCRMBW_REPORT'
EXPORTING
i_mode = 'OPEN'
i_reportuid = p_repuid
I_PACKSIZE = 10000
I_EXECMODE = 'TABLE'
I_EXTRACT = 'ZBWTEST'
I_SPLIT = p_split
I_CLEAREXTRACT = 'X'
TABLES
E_T_RETURN = it_return.
CALL FUNCTION 'RSCRMBW_REPORT'
EXPORTING
i_mode = 'START'
i_reportuid = p_repuid
I_PACKSIZE = 10000
I_EXECMODE = 'TABLE'
I_CLEAREXTRACT = 'X'
TABLES
E_T_RETURN = it_return.
So far this creation of report is only the 2nd step.But I am not sure how step 3 to step 6 should be done so that the report can be execute exactly.
What should I do? Pleas help me!
Thanks in advance
Regards,
Liying
Message was edited by: Liying Wang
Message was edited by: Liying Wang
Message was edited by: Liying WangLiying
Were you able to get a solution to this problem? I am facing the same issue too. The g_s_status-infocube is showing blank.
Regards
Dilip -
How to see generated SQL when execute JPQL query using entity manager?
I want to see generated SQL query in console or in a log file. How do I do that?
I'm using GlassFish if it mattersIf you want to see SQL query that is generated from JPQL in GlassFish console you should do following:
Log on admin console.
Select 'Application Server' from tree, then select Logging tab and Log Levels sub-tab.
Log level for 'Persistence' must be set to FINE or level with more verbosity. -
How to execute a query uses hibernate @Formula or other JPA annotation
Solved ! ^^
This is the code.
1. we can declare types dynamically
2. Internal table dynamically
3. Select querry dynamically
just copy paste this code
Here is the code for your question
DATA:v_fieldname
TYPE fieldname,
l_PROG TYPE string,
v_mess TYPE string,
l_sid TYPE string,
wa_ddfields TYPE dntab.
DATA i_tab TYPE STANDARD TABLE OF string.
DATA:l_str TYPE string,
l_str1 TYPE string.
PARAMETERS matnr type marc-matnr.
end-of-SELECTION.
*build the subroutine pool
APPEND 'PROGRAM subpool.' TO i_tab.
APPEND `LOAD-OF-PROGRAM.` TO i_tab.
APPEND `DATA i_tab1 TYPE TABLE OF vbak.` TO i_tab.
APPEND `DATA l_rows TYPE i.` TO i_tab.
APPEND `select * into table i_tab1 from vbak.` To i_tab.
append 'DESCRIBE TABLE i_tab1 LINES l_rows.' to i_tab.
append 'Write : l_rows .' to i_tab.
GENERATE SUBROUTINE POOL i_tab NAME l_PROG
MESSAGE v_mess
SHORTDUMP-ID l_sid.
IF sy-subrc = 0.
PERFORM ('LOOP_AT_TAB') IN PROGRAM (l_PROG) IF FOUND.
ELSEIF sy-subrc = 4.
MESSAGE v_mess TYPE 'I'.
ELSEIF sy-subrc = 8.
MESSAGE l_sid TYPE 'I'.
ENDIF.
Edited by: vijay wankhade on Jan 1, 2009 5:34 PM
Edited by: vijay wankhade on Jan 1, 2009 5:34 PM -
Problem executing a partition query using occi in c++
i am trying to execute a simple select query which returns a row from the table. The query is
m_stmt->setSQL("select * from table partition(:1) where mdn = :2");
m_stmt->setString(1,"P9329");
//m_stmt->setInt(2,9320496213);
ResultSet * rs = m_stmt->executeQuery();
while(rs->next())
cout<<"the value of preferences is aaaaaaaaaaaa"<< rs->getString(3);
The problems that i am facing are as follows :
1) if i execute the query using the actual values in the select query, it seems to be working fine, but when i try the above method to make it more dynamic (the values shown would be replaced by variables) it is giving me the following errors :
a)if i put the partition value as a position parameter and put the mdn as the direct value in the query then it says the SQL command not ended properly
b) if i put the partition value directly and put the mdn as a position parameter then the error is "Invalid Character "
Any help would be much appreciated..ty in advanceHi Leonard,
Thanks for letting me know that...thats pretty disappointing. Looks like I'll have to change my strategy in my implementation.
Do you know if I can also develop functions using Acrobats SDK library methods such as "PDDocCreate()", "PDDocSave", etc. in OLE [MFC] applications?
The reason why I ask is because I have previously created a plugin that creates a PDF file and embeds a 3D annotation... so this would be the same sort of idea that the 3D Tool Menu Item achieves.
Now, if I were to use the function code within my OLE application, I will have to also include the PIMain.c file in my project as well correct?
I hope this idea is a good one... please let me know if this approach is possible.
Thanks. -
WebCenter Sites Query Content using API
Hi all,
I have created a asset called "TVLContent" and for this asset, I created 2 attributes: "Question" and "Answer".
I need to create a query search using API, to get any content where "Question" or "Answer" attribute contains "Why".
I'm using the line code below, for searching, but doesn't work.
-----Code
Session ses = SessionFactory.getSession();
Condition c1 =ConditionFactory.createCondition("Question", OpTypeEnum.LIKE, "%Why%");
Condition c2 =ConditionFactory.createCondition("Answer", OpTypeEnum.LIKE, "%Why%" );
Query query = new SimpleQuery( "TVLContent", "FAQs", c1.or(c2) , Arrays.asList("name", "id", "Question", "Answer"));
query.getProperties().setIsBasicSearch(true);
AssetDataManager mgr = (AssetDataManager) ses.getManager(AssetDataManager.class.getName());
List<Long> firstResults = new ArrayList<Long>();
for(AssetData data : mgr.read(query)) {
//read data, e.g. data.getAttributeData("Question").getData()
------Code
If I change the query condition to c1 only, the query works fine,
e.g. Query query = new SimpleQuery( "TVLContent", "FAQs", c1 , Arrays.asList("name", "id", "Question", "Answer"));
If I change the query condition to c2 only, the query works fine.
e.g. Query query = new SimpleQuery( "TVLContent", "FAQs", c2 , Arrays.asList("name", "id", "Question", "Answer"));
But when I create a new condition (c1.or(c2)) doesn't work.
e.g. Query query = new SimpleQuery( "TVLContent", "FAQs", c1.or(c2) , Arrays.asList("name", "id", "Question", "Answer"));
How to fix this?
What's the best way to create this query using API?
See below the attribute definition:
Name: Question
Attribute Type: text
Attribute Editor: TVLTextArea
TVLTextArea XML (
<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd">
<PRESENTATIONOBJECT NAME="TEXTAREA">
<TEXTAREA WRAPSTYLE ="SOFT"></TEXTAREA >
</PRESENTATIONOBJECT>
Name: Answer
Attribute Type: text
Attribute Editor: TVLCKEditor
TVLCKEditor XML (
<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd">
<PRESENTATIONOBJECT NAME="TEXTAREA">
<TEXTAREA WRAPSTYLE ="SOFT"></TEXTAREA >
</PRESENTATIONOBJECT>
}Hello,
Can you share the condition which you are trying to pass?
Try something like this example;
Condition condition = ConditionFactory.createCondition( <ATTRIBUTE NAME>, OpTypeEnum.EQUALS, <ATTRIBUTE VALUE> );
List<String> attributes = new ArrayList<String>();
attributes.add(<ATTRIBUTE NAMES>); // add as many as required
SortOrder sortOrder = new SortOrder(<Attribute Name to sortby>, <ORDER - Ascending or Descending>);
Query query = new SimpleQuery( <Asset Type>, null, condition, attributes, Collections.singletonList(sortOrder));
for( AssetData data : assetDataManager.read( query ) ) {
// get all the data as mentioned here: http://docs.oracle.com/cd/E29542_01/doc.1111/e29634/asset_api_tutorial.htm#WBCSD2395
Note: Import correct classes in your template or CSElement.
Regards,
Guddu -
Working with executing query using IExecution
Dear EP friends,
i am trying to executing a query using IQuery, but i am getting com.sapportals.connector.metadata.CapabilityNotSupportedException
exception.
As i digged the error, i found IQuery is deprecated and i need to use IExecution from https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/javadocs/nw04/sp12/j2ee engine/deprecated-list.html
how to work with IExecution??
thanx in advance
regards
kanthaHi Laxmi,
were you able to do this?? I have exactly the same problem.
Please let me know if you have already done this.
Regards,
NArahari -
How to generate mdx query using C#
I am new to mdx query and i am very curious about mdx query generation using c# so i searched for any demo or open source then i found
Ranet.olap, which is providing what i need. After taking the dlls i tried to incorporate them in my code. I am pasting my full
console code which should generate mdx query but it's not doing so, Am i doing something wrong.
using System;
using System.Collections.Generic;
using Microsoft.AnalysisServices.AdomdClient;
using Ranet.Olap.Core.Managers;
using Ranet.Olap.Core.Metadata;
using Ranet.Olap.Core.Types;
namespace MDX
class Program
static void Main(string[] args)
startWork();
public static void startWork()
string connString = "Provider=MSOLAP.3; Data Source=localhost;Initial Catalog=AdventureWorkDW2008R2;Integrated Security=SSPI;";
CubeDef cubes;
AdomdConnection conn = new AdomdConnection(connString);
conn.Open();
cubes = conn.Cubes.Find("AdventureWorkCube");
Ranet.Olap.Core.Managers.MdxQueryBuilder mdx = new Ranet.Olap.Core.Managers.MdxQueryBuilder();
mdx.Cube = cubes.Caption;
List<Ranet.Olap.Core.Wrappers.AreaItemWrapper> listColumn = new List<Ranet.Olap.Core.Wrappers.AreaItemWrapper>();
List<Ranet.Olap.Core.Wrappers.AreaItemWrapper> listRow = new List<Ranet.Olap.Core.Wrappers.AreaItemWrapper>();
List<Ranet.Olap.Core.Wrappers.AreaItemWrapper> listData = new List<Ranet.Olap.Core.Wrappers.AreaItemWrapper>();
//Column area
Dimension dmColumn = cubes.Dimensions.Find("Dim Product");
Microsoft.AnalysisServices.AdomdClient.Hierarchy hColumn = dmColumn.Hierarchies["English Product Name"];
//hierarchy properties
List<PropertyInfo> lPropInfo = new List<PropertyInfo>();
foreach (var prop in hColumn.Properties)
PropertyInfo p = new PropertyInfo();
p.Name = prop.Name;
p.Value = prop.Value;
lPropInfo.Add(p);
Ranet.Olap.Core.Wrappers.AreaItemWrapper areaIColumn = new Ranet.Olap.Core.Wrappers.AreaItemWrapper();
areaIColumn.AreaItemType = AreaItemWrapperType.Hierarchy_AreaItemWrapper;
areaIColumn.Caption = hColumn.Caption;
areaIColumn.CustomProperties = lPropInfo;
listColumn.Add(areaIColumn);
//Rows Area
Dimension dmRow = cubes.Dimensions.Find("Due Date");
Microsoft.AnalysisServices.AdomdClient.Hierarchy hRow = dmRow.Hierarchies["English Month Name"];
List<PropertyInfo> lRowPropInfo = new List<PropertyInfo>();
foreach (var prop in hRow.Properties)
PropertyInfo p = new PropertyInfo(prop.Name,prop.Value);
lRowPropInfo.Add(p);
Ranet.Olap.Core.Wrappers.AreaItemWrapper areaIRow = new Ranet.Olap.Core.Wrappers.AreaItemWrapper();
areaIRow.AreaItemType = AreaItemWrapperType.Hierarchy_AreaItemWrapper;
areaIRow.Caption = hRow.Caption;
areaIRow.CustomProperties = lRowPropInfo;
listRow.Add(areaIRow);
//Measure Area or Data Area
Measure ms = cubes.Measures.Find("Order Quantity");
Ranet.Olap.Core.Wrappers.AreaItemWrapper areaIData = new Ranet.Olap.Core.Wrappers.AreaItemWrapper();
areaIData.AreaItemType = AreaItemWrapperType.Measure_AreaItemWrapper;
areaIData.Caption = ms.Caption;
List<PropertyInfo> lmpropInfo = new List<PropertyInfo>();
foreach (var prop in ms.Properties)
PropertyInfo p = new PropertyInfo(prop.Name, prop.Value);
lmpropInfo.Add(p);
areaIData.CustomProperties = lmpropInfo;
listData.Add(areaIData);
mdx.AreaWrappersColumns = listColumn;
mdx.AreaWrappersRows = listRow;
mdx.AreaWrappersData = listData;
string mdxQuery = mdx.GenerateMdxQuery();
conn.Close();Hi mkm1,
According to your description, you want to use C# code to generate MDX Query. Right?
In Analysis Servcies, we just need to use "Microsoft.AnalysisServices.AdomdClient.dll" to open connection to SSAS database and retrieve data from cube. Here are some sample code about executing MDX query using C#.
Dim objConnection As New AdomdConnection("Data Source=localhost;Initial Catalog=Adventure Works DW 2008;")
Dim objCommand As New AdomdCommand()
Dim objDatatable As New DataTable
Dim strCommand As String
strCommand = "SELECT [Measures].[Internet Sales Amount] ON COLUMNS, "
strCommand = strCommand & " [Date].[Calendar].[Calendar Year] ON ROWS"
strCommand = strCommand & " FROM [Adventure Works]"
objConnection.Open()
objCommand.Connection = objConnection
objCommand.CommandText = strCommand
Dim objDataAdapter As New AdomdDataAdapter(objCommand)
objDataAdapter.Fill(objDatatable)
objConnection.Close()
Since your code is more related to a third party API, we suggest you post your question to Rnet.
Reference:
Microsoft.AnalysisServices.AdomdClient Namespace
If you have any question, please feel free to ask.
Simon Hou
TechNet Community Support
Maybe you are looking for
-
ITunes is not responding!
Ever since this past friday iTunes has not been responding. I will open it, and nothing looks different about it. Except, you can't click on anything (and my computer is not frozen). So, i go down to the task bar, right click on iTunes, and select cl
-
My husband and I are divorcing and we have used his apple ID for our 2 apple tv's. He changed his password and now I no longer have access to the 300 or more movies, tv shows and music. He keeps telling me that , there is no way for us both to hav
-
VERIZON WIRELESS PLAN CHANGES, CONTRACTS, UPGRADES - Lack of Customer Service!
I have been 1 of your customers since August of 2006. I even own a 2nd phone line that I have been using since approximately 2002 Most recently I had inquired with Verizon Customer service about upgrading my cell phone from a BlackBerry to a Droid Ma
-
Installing windows using bootcamp. HELP!! :(
Ok so ive decided i need to install windows onto my mac, to use software important for my university studies, and have opted to use the boot camp method. I started by purchasing and downloading windows 8 directly onto my mac book pro, and as such, ha
-
Does anyone else keep getting this message after downloading iOS7 on iTunes? Please somebody answer me if you can help me or something. Thanks.