Variables in HANA Views
BOE Server, Explorer and Client version 2.8
HANA DB Rlease 21
I created a HANA view with variable. When I tried doing data preview in the studio, I get prompted to select the values. Where as when I tried using in the Exlorer or IDT, the variable is being ignored.
Do I need certain version of BOE software to make use of it?
The latest release from BOE is fix pack 2.8.
thanks for your help
Babu,
Variables has two aspects: development of variables in SAP HANA and second recognition of these variables in BOBJ tools.
Currently HANA view cannot recogonized by BOBJ reporting tools. As per my understanding based on SAP discussion, there is future released planned however not sure on time-line.
If you are using Analysis for Office, you may be able to use macros combine with AO functions to achieve it.
Hope it helps.
Thanks
Similar Messages
-
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 -
Using a variable in a view?
I know that it may not be possible to use a variable within a view, but I'm wondering if there isn't a work-around? If there is a single value---pulled from another table---you wish to reuse in a view that does not use dynamic SQL, how do you do so? I've been toying around with WITH statements, but that's getting me nowhere. I'm using 11r2.
BTW, please do not ask me the standard litany of angry-dba questions (why are you doing this? your database is f*****, RTFM, etc.), this is just for my own curiosity. :)
Thank you
Example for demo purposes only (I know it's not syntactically correct):
variable var_value varchar2(30)
begin
select this_is_just_one_value
int :var_value
from tableX where column1 = 'BOB';
end;
select
numerous_columns
from tableY
where
column5 = :var_value;893968 wrote:
BTW, please do not ask me the standard litany of angry-dba questions (why are you doing this? your database is f*****, RTFM, etc.), this is just for my own curiosity. :)Why are you doing this? your database is f*****! RTFM! Etc!! ;-)
SQL is not a procedural language - so you cannot create a view for example that has a parameter signature. E.g. this is possible in a procedural language:
declare
cursor c( deptID number ) is
select * from emp where deptno = deptID;
begin
open c( 1234 ); --// open SQL cursor using a parameter/variable
--// etc..
close c;
end;This is not possible using a SQL object like a view. As a view is not a procedure. So the same approach as the above using SQL (silly example, but do demonstrates the basics):
// define
create or replace view emp_view as select * from emp;
// use
select * from emp_view where deptno = 1234;The CBO is clever - and it will likely push such a predicate into the emp_view SQL statement.
To parameterise such a view, is ugly. And should only be considered when dealing with issues such as security and data restrictions. A context is created - this can contain a number of name-values. The view can then use a name-value from the context. Oracle's data dictionary views use this approach. -
How can i call another view variables in another view
how can i call another view variables in another view and pass that variables to the function
my situation is i have a view FAC which i need to pass par_id_fac TO THE VIEW AGR.AFTER THAT i what to take start_dt in agr view and par_id_fac from Fac and pass this variables to the function i have check the documentation but does not do what i what,the doc simply talk about creating variables and pass then to function.i what to pass variables from the views and return value to my contractno Variables value
something like if :agr.contract_no is null
and :agr.agr_start_dt is not null then
:agr.contract_no := sms_fapp.get_contract_no(:fac.par_id_fac,:agr.agr_start_dt);
end if;
y view is
<?xml version="1.0" encoding="windows-1252" ?>
<!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
<!---->
<ViewObject
xmlns="http://xmlns.oracle.com/bc4j"
Name="AGR"
Version="11.1.2.60.81"
BindingStyle="OracleName"
CustomQuery="true"
PageIterMode="Full"
UseGlueCode="false"
RowClass="sms1405.AGRRowImpl"
ComponentClass="sms1405.AGRImpl"
DefClass="sms1405.AGRDefImpl">
<DesignTime>
<Attr Name="_isExpertMode" Value="true"/>
<Attr Name="_codeGenFlag2" Value="Access|Def|Coll|Prog|VarAccess"/>
<Attr Name="_isCodegen" Value="true"/>
</DesignTime>
<SQLQuery><![CDATA[SELECT SmsAgreements.ID,
SmsAgreements.FAPP_ID,
SmsAgreements.PAR_ID,
SmsAgreements.SSCH_ID,
SmsAgreements.COSERV_ID,
SmsAgreements.IREA_ID_TERMINATED,
SmsAgreements.IREA_ID_SUSPENDED,
SmsAgreements.SPTYP_ID,
SmsAgreements.CLAIM_BASED_YN,
SmsAgreements.NOTES,
SmsAgreements.SUSPENSION_DT,
SmsAgreements.TERMINATION_DT,
SmsAgreements.SPECIAL_PROJECT_END_DT,
SmsAgreements.CAPITAL_FUNDING_APPROVED,
SmsAgreements.PERIODICAL_PAYMENT_AMOUNT,
SmsAgreements.DATE_CREATED,
SmsAgreements.DATE_MODIFIED,
SmsAgreements.MODIFIED_BY,
SmsAgreements.CREATED_BY,
SmsAgreements.CONTRACT_NO,
SmsAgreements.OFF_ID,
SmsAgreements.DATE_APPROVED,
SmsAgreements.AGR_START_DT,
SmsAgreements.AGR_END_DT,
SmsAgreements.MONTHS_FUNDED,
SmsAgreements.PFRE_ANNUAL_FREQUENCY,
SmsAgreements.FUNDED_NO,
SmsAgreements.REGISTERED_NO,
SmsAgreements.CONTRACT_NAME,
SmsAgreements.OPEX_ALLOCATION,
SmsAgreements.EMERG_ORG_YN,
SmsAgreements.SCHEDULE,
SmsAgreements.PERIODICAL_PAYMENT_AVERAGE,
SmsAgreements.NO_OF_PAYMENTS,
SmsAgreements.ADVANCE_PAYMENT_PERCENT,
SmsAgreements.QUALIFY_NO,
SmsAgreements.ENROLLED_NO,
SmsAgreements.MULTI_YEAR_ALLOCATION,
SmsAgreements.AGR_ID_SOURCE,
SmsAgreements.FYEA_YEAR_ACTIVE,
SmsAgreements.PTYPE_CODE,
SmsAgreements.CONTRACT_VALUE,
SmsAgreements.MAGR_ID,
SmsAgreements.PROG_ID,
SmsAgreements.EMERGENCY_BED_#,
SmsAgreements.drep_id,
SmsAgreements.srep_id,
(select name from sms_offices off where off.id = SmsAgreements.off_id)officeName,
(SELECT PROG.NAME FROM sms_programmes prog where PROG.ID = SMSAGREEMENTS.PROG_ID)programe,
(select prog.code || '.' || bvspro.code || ' ' || bvspro.NAME budget_vote from sms_subsidy_schemes ssch,
sms_budget_vote_sub_programs bvspro,
sms_programmes prog
WHERE bvspro_id = bvspro.ID AND prog.ID = prog_id
and prog.id = SMSAGREEMENTS.PROG_ID)Sub_programme,
(select ssch.NAME from sms_subsidy_schemes ssch where SSCH.ID = SMSAGREEMENTS.SSCH_ID)subsidy,
(SELECT master_contract FROM sms_master_agreements magr WHERE MAGR.ID = SmsAgreements.magr_id)masterContract
FROM SMS_AGREEMENTS SmsAgreements]]></SQLQuery>
<ViewAttribute
Name="ContractNo"
IsPersistent="false"
IsNotNull="true"
PrecisionRule="true"
Precision="20"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="CONTRACT_NO"
SQLType="VARCHAR">
<TransientExpression><![CDATA[CONTRACT_NO]]></TransientExpression>
<DesignTime>
<Attr Name="_DisplaySize" Value="20"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="AgrStartDt"
IsPersistent="false"
PrecisionRule="true"
Type="java.sql.Timestamp"
ColumnType="DATE"
AliasName="AGR_START_DT"
SQLType="DATE">
<RecalcCondition><![CDATA[true]]></RecalcCondition>
<TransientExpression><![CDATA[adf.currentDate]]></TransientExpression>
</ViewAttribute>
</ViewObject>and my FAC view is
<?xml version="1.0" encoding="windows-1252" ?>
<!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
<!---->
<ViewObject
xmlns="http://xmlns.oracle.com/bc4j"
Name="FAC"
Version="11.1.2.60.81"
BindingStyle="OracleName"
CustomQuery="true"
PageIterMode="Full"
UseGlueCode="false">
<DesignTime>
<Attr Name="_isExpertMode" Value="true"/>
</DesignTime>
<SQLQuery><![CDATA[SELECT SmsFacilityVw.PAR_ID_ORG,
SmsFacilityVw.ORGANISATION,
SmsFacilityVw.ORG_KEY,
SmsFacilityVw.C_CODE,
SmsFacilityVw.FACILITY,
SmsFacilityVw.PAR_ID_FAC,
SmsFacilityVw.NPO_REGISTRATION_NO,
SmsFacilityVw.ADDRESS,
SmsFacilityVw.TELNR_WORK,
SmsFacilityVw.ADDRESSLINE,
SmsFacilityVw.Town,
SmsFacilityVw.Suburb,
SmsFacilityVw.PostalCode,
SmsFacilityVw.DSD_REGION,
SmsFacilityVw.SERVICE_DELIVERY_AREA,
SmsFacilityVw.FAXNR,
SmsFacilityVw.EMAIL,
SmsFacilityVw.PAR_TYPE_DEF
FROM SMS_FACILITY_VW SmsFacilityVw]]></SQLQuery>
<ViewAttribute
Name="ParIdOrg"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="38"
Scale="0"
Type="java.math.BigInteger"
ColumnType="NUMBER"
AliasName="PAR_ID_ORG"
Expression="PAR_ID_ORG"
SQLType="NUMERIC"/>
<ViewAttribute
Name="Organisation"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="100"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="ORGANISATION"
Expression="ORGANISATION"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="100"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="OrgKey"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="10"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="ORG_KEY"
Expression="ORG_KEY"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="10"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="CCode"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="30"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="C_CODE"
Expression="C_CODE"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="30"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Facility"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="100"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="FACILITY"
Expression="FACILITY"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="100"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="ParIdFac"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="38"
Scale="0"
Type="java.math.BigInteger"
ColumnType="NUMBER"
AliasName="PAR_ID_FAC"
Expression="PAR_ID_FAC"
SQLType="NUMERIC"/>
<ViewAttribute
Name="NpoRegistrationNo"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="30"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="NPO_REGISTRATION_NO"
Expression="NPO_REGISTRATION_NO"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="30"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Address"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="227"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="ADDRESS"
Expression="ADDRESS"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="227"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="TelnrWork"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="150"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="TELNR_WORK"
Expression="TELNR_WORK"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="150"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Addressline"
IsPersistent="false"
PrecisionRule="true"
Precision="120"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="ADDRESSLINE"
Expression="ADDRESSLINE"
SQLType="VARCHAR"
IsUpdateable="false">
<DesignTime>
<Attr Name="_DisplaySize" Value="120"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Town"
IsPersistent="false"
PrecisionRule="true"
Precision="60"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="TOWN"
Expression="TOWN"
SQLType="VARCHAR"
IsUpdateable="false">
<DesignTime>
<Attr Name="_DisplaySize" Value="60"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Suburb"
IsPersistent="false"
PrecisionRule="true"
Precision="60"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="SUBURB"
Expression="SUBURB"
SQLType="VARCHAR"
IsUpdateable="false">
<DesignTime>
<Attr Name="_DisplaySize" Value="60"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Postalcode"
IsPersistent="false"
PrecisionRule="true"
Precision="4"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="POSTALCODE"
Expression="POSTALCODE"
SQLType="VARCHAR"
IsUpdateable="false">
<DesignTime>
<Attr Name="_DisplaySize" Value="4"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="DsdRegion"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="40"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="DSD_REGION"
Expression="DSD_REGION"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="40"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="ServiceDeliveryArea"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="50"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="SERVICE_DELIVERY_AREA"
Expression="SERVICE_DELIVERY_AREA"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="50"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Faxnr"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="50"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="FAXNR"
Expression="FAXNR"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="50"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Email"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="80"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="EMAIL"
Expression="EMAIL"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="80"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="ParTypeDef"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="12"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="PAR_TYPE_DEF"
Expression="PAR_TYPE_DEF"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="12"/>
</DesignTime>
</ViewAttribute>
<ViewLinkAccessor
Name="AGR"
ViewLink="sms1405.par_facfkViewLink"
Type="oracle.jbo.RowIterator"
IsUpdateable="false"/>
<ViewLinkAccessor
Name="SmsParAddrVwView"
ViewLink="sms1405.parLink"
Type="oracle.jbo.RowIterator"
IsUpdateable="false"/>
<ViewLinkAccessor
Name="DOC"
ViewLink="sms1405.FAC_DOC"
Type="oracle.jbo.RowIterator"
IsUpdateable="false"/>
</ViewObject>Edited by: ADF007 on 2012/08/23 6:10 PMi try this
public class SMS_AGREEMENTSImpl extends EntityImpl {
RowSet newContractNoBeforePost = null;
public static int NUMBER = Types.NUMERIC;
public static int DATE = Types.DATE;
public static int VARCHAR2 = Types.VARCHAR;
protected Object callStoredFunction(int sqlReturnType, String stmt,
Object[] bindVars) {
CallableStatement st = null;
try {
// 1. Create a JDBC CallabledStatement
st = getDBTransaction().createCallableStatement(
"begin ? := "+stmt+";end;",0);
// 2. Register the first bind variable for the return value
st.registerOutParameter(1, sqlReturnType);
if (bindVars != null) {
// 3. Loop over values for the bind variables passed in, if any
for (int z = 0; z < bindVars.length; z++) {
// 4. Set the value of user-supplied bind vars in the stmt
st.setObject(z + 2, bindVars[z]);
// 5. Set the value of user-supplied bind vars in the stmt
st.executeUpdate();
// 6. Return the value of the first bind variable
return st.getObject(1);
catch (SQLException e) {
throw new JboException(e);
finally {
if (st != null) {
try {
// 7. Close the statement
st.close();
catch (SQLException e) {}
protected void doDML(int operation, TransactionEvent e) {
String amDef = "sms1405.sms1405Module";
String config = "sms1405ModuleShared";
String NewContract = null;
ApplicationModule am = Configuration.createRootApplicationModule(amDef, config);
ViewObjectImpl vo = (ViewObjectImpl) am.findViewObject("AGR1");
vo.executeQuery();
Row row = vo.first();
// NewContract = (String)vo
NewContract = (String)row.getAttribute("ContractNo");
SMS_AGREEMENTSImpl newcont = new SMS_AGREEMENTSImpl();
//AGRRowImpl res = new AGRRowImpl();
// NewContract = NewContractNo();
if (operation == 1) {
newcont.setContractNo(NewContractNo());
//res.setContractNo( NewContractNo());
//NewContractNo();
super.doDML(operation, e);
public void postChanges(TransactionEvent TransactionEvent) {
/* Only bother to update references if contractno is a NEW one */
if (getPostState() == STATUS_NEW) {
* Get a rowset of contract related
* to this new partyaddress before calling super
newContractNoBeforePost = (RowSet)getSMS_AGREEMENTS();
super.postChanges(TransactionEvent);
public Date getAgrStartDt() {
return (Date)getAttributeInternal(AGRSTARTDT);
* Sets <code>value</code> as the attribute value for AgrStartDt.
* @param value value to set the AgrStartDt
public void setAgrStartDt(Date value) {
setAttributeInternal(AGRSTARTDT, value);
public String NewContractNo() {
String amDef = "sms1405.sms1405Module";
String config = "sms1405ModuleShared";
String NewContract = null;
ApplicationModule am = Configuration.createRootApplicationModule(amDef, config);
ViewObjectImpl vo = (ViewObjectImpl) am.findViewObject("FAC1");
// vo.setWhereClause("ParIdFac = 38844");
vo.executeQuery();
Row row = vo.first();
Integer par_id = null;
//oracle.jbo.domain.Date today = new oracle.jbo.domain.Date(oracle.jbo.domain.Date.getCurrentDate());
oracle.jbo.domain.Date today = new oracle.jbo.domain.Date();
//FACRowImpl res = new FACRowImpl();
//res.setParIdFac(par_id);
par_id = (Integer)row.getAttribute("ParIdFac");
today = this.getAgrStartDt();
return (String)callStoredFunction(VARCHAR2,
"sms_fapp.get_contract_no(?,?)",
new Object[]{par_id,today});
}at the moment am geting this error
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:415)
at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:477)
at oracle.adf.model.binding.DCControlBinding.reportException(DCControlBinding.java:201)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.reportException(JUCtrlActionBinding.java:2007)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1659)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2169)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:731)
at oracle.jbo.uicli.jui.JUActionBinding.actionPerformed(JUActionBinding.java:193)
at oracle.jbo.uicli.controls.JUNavigationBar.doAction(JUNavigationBar.java:412)
at oracle.jbo.jbotester.NavigationBar.doAction(NavigationBar.java:112)
at oracle.jbo.uicli.controls.JUNavigationBar$NavButton.actionPerformed(JUNavigationBar.java:118)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.NullPointerException
at oracle.jbo.server.EntityImpl.getEntityCache(EntityImpl.java:4665)
at oracle.jbo.server.EntityImpl.saveEventOrigTransAttrVals(EntityImpl.java:729)
at oracle.jbo.server.EntityImpl.saveEventOrigAttrVals(EntityImpl.java:719)
at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:1935)
at sms1405.SMS_AGREEMENTSImpl.setContractNo(SMS_AGREEMENTSImpl.java:998)
at sms1405.SMS_AGREEMENTSImpl.doDML(SMS_AGREEMENTSImpl.java:1628)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6751)
at sms1405.SMS_AGREEMENTSImpl.postChanges(SMS_AGREEMENTSImpl.java:1645)
at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3264)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3067)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2071)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2352)
at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1590)
at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1415)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1428)
... 43 more
## Detail 0 ##
java.lang.NullPointerException
at oracle.jbo.server.EntityImpl.getEntityCache(EntityImpl.java:4665)
at oracle.jbo.server.EntityImpl.saveEventOrigTransAttrVals(EntityImpl.java:729)
at oracle.jbo.server.EntityImpl.saveEventOrigAttrVals(EntityImpl.java:719)
at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:1935)
at sms1405.SMS_AGREEMENTSImpl.setContractNo(SMS_AGREEMENTSImpl.java:998)
at sms1405.SMS_AGREEMENTSImpl.doDML(SMS_AGREEMENTSImpl.java:1628)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6751)
at sms1405.SMS_AGREEMENTSImpl.postChanges(SMS_AGREEMENTSImpl.java:1645)
at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3264)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3067)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2071)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2352)
at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1590)
at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1415)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1428)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2169)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:731)
at oracle.jbo.uicli.jui.JUActionBinding.actionPerformed(JUActionBinding.java:193)
at oracle.jbo.uicli.controls.JUNavigationBar.doAction(JUNavigationBar.java:412)
at oracle.jbo.jbotester.NavigationBar.doAction(NavigationBar.java:112)
at oracle.jbo.uicli.controls.JUNavigationBar$NavButton.actionPerformed(JUNavigationBar.java:118)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) -
Authorization Issue while Data Preview from HANA View
Hi Experts,
We are using BW on HANA. We have created DSOs (info provider) in BW and generated HANA views from there. We have also created analysis authorizations in BW for authorization relevant characteristics. In HANA, we are able to go to the generated analytic view and preview the data from it successfully.
Now I have created a test user and assigned a custom role with below authorizations to this user in HANA:
- bw2hana/../REPORTING role (this role is automatically created by activation of DSO in BW).
- Roles MODELING, MONITORING, CONTENT_ADMIN, USER.
- Multiple system privileges although not needed, like REPO.EXPORT, REPO.IMPORT, etc.
- Analytic Privilege _SYS_BI_CP_ALL
- Package Privilege: REPO.READ for all required packages (tried with ROOT package also).
In BW system also, the test user has analysis authorizations providing access to the relevant info objects.
But when I am trying to preview data for HANA view, I am getting attached error (also listed below):
"Cannot get the data provider outline
SAP DBTech JDBC: [2048]: Column store error: Search table error: [2950] user is not authorized"
I tried to trace the situation is HANA and got below details in 2 trace files:
indexserver_alert_saphana.trc:
[6433]{416977}[66/-1] 2014-10-14 00:59:27.541187 e CalcEngine ceAuthorizationCheck.cpp(02365) : AuthorizationCheckHandler::addAPsToSearchObject: Error during converting SqlAPs to Query entries
indexserver_saphana.31003.075.trc
[6433]{416977}[66/-1] 2014-10-14 00:59:27.541197 i TraceContext TraceContext.cpp(00702) : UserName=TEST_SSO, ApplicationUserName=<<computer name >>, ApplicationName=HDBStudio, ApplicationSource=csns.modeler.datapreview.providers.ResultSetDelegationDataProvider.<init>(ResultSetDelegationDataProvider.java:118);csns.modeler.actions.DataPreviewDelegationAction.getDataProvider(DataPreviewDelegationAction.java:278);csns.modeler.actions.DataPreviewDelegationAction.run(DataPreviewDelegationAction.java:242);csns.modeler.actions.DataPreviewDelegationAction.run(DataPreviewDelegationAction.java:127);csns.modeler.command.handlers.DataPreviewHandler.execute(DataPreviewHandler.java:53);org.eclipse.core.commands
[6433]{416977}[66/-1] 2014-10-14 00:59:27.541187 e CalcEngine ceAuthorizationCheck.cpp(02365) : AuthorizationCheckHandler::addAPsToSearchObject: Error during converting SqlAPs to Query entries
Do you know what this "Error during converting SqlAPs to Query entries" actually means"? How can we resolve this issue? The authorization is working properly for our user ids. But we need to provide restricted access for business users so trying to create test user and custom role.
Thanks
Nitesh GuptaHi Pinaki and Prabhith,
Yes, my issue was resolved. Sorry, missed to updated here.
I was just a beginer for BW on HANA Security at that time and didn't know many small things. The solution was pretty simple.
Whenever you assign analysis authorizations to a user in BW, you also need to generate corresponding HANA authorization. This is done through tcode RS2HANA_CHECK tcode. This tcode converts BW analysis authorizations into HANA analysis authorizations and assign to the HANA user. You can see generated HANA authorization table RS2HANA_AUTH_STR in both BW and HANA.
Once the HANA authorizations are successfully generated for a user, he should be able to see data from Views.
Let me know if this solves issues. Then I will close this thread.
Thanks -
How to pass parameter [bind variable or substitution variable] to a view?
How can I pass a parameter [bind variable or substitution variable] to a view in Oracle?
Some will tell me that this is not necessary, that I can only pass the parameter when I query the view, but I found some case where this cause performance issue. In long view where I use subquery factoring [WITH], it's necessary to pass the parameter many time through different subqueries and not only to the resulting view.
In other database (SQL Server, Access), we can pass parameters through query. I can't find how to do that in Oracle. Can some one tell me what is the approach suggest by Oracle on that subject?
Thank you in advance,
MB
What I can do:
CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")
AS
SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES;
What I want to do:
CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")(prmEMP_ID)
AS
SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE EMPLOYEE_ID IN (:prmEMP_ID);Blais wrote:
How can I pass a parameter [bind variable or substitution variable] to a view in Oracle?
Some will tell me that this is not necessary, that I can only pass the parameter when I query the view, but I found some case where this cause performance issue. In long view where I use subquery factoring [WITH], it's necessary to pass the parameter many time through different subqueries and not only to the resulting view.Yes, there can be performance issues. Views are a form of dynamic SQL and it is hard to predict how they will perform later.
You can't pass parameters to a view. They are not functions. The mechanism to put the values in is what you mentioned, passing the parameter when you query the view.
In other database (SQL Server, Access), we can pass parameters through query. I can't find how to do that in Oracle. Can some one tell me what is the approach suggest by Oracle on that subject? This functionality is not supported.
What I can do:
CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")
AS
SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES;
What I want to do:
CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")(prmEMP_ID)
AS
SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE EMPLOYEE_ID IN (:prmEMP_ID);Include the bind value when you use the view in a SELECT. The value will be applied to the view at run-time, somthing like
CREATE VIEW "HR"."EMP_NAME_VW" ("FIRST_NAME", "LAST_NAME","EMPLOYEE_ID")(prmEMP_ID)
AS SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES;
select *
from emp_name_vw
WHERE EMPLOYEE_ID IN (:prmEMP_ID);To use EMPLOYEE_ID I added it to your list of columns in the view so it can be referenced in the WHERE clause. If you don't want to see that value don't select it from the view. -
WHY HANA VIEW ARE GIVING BAD PERFORMANCE IN DASHBOARD THEN TABLE
Dear Experts ,
I have created a dashboard on top of HANA view.
Scenario 1
HANA view is taking 3 seconds to fetch data in HANA studio .
When we create dashboard on that view, the dashboard is taking around 50sec.
Report has around 10 queries.
Scenario 2
Then we insert data into a table from same above view .
HANA table is taking 10 ms to fetch data in HANA studio .
When we create the same dashboard on that table, the report is taking
around 4 Seconds.
Report has around 10 query.
You may raise finger on dashboard tool. But by only converting view to table dashboard is giving good performance .
Please suggest what should we use Table or View for reporting tool ????
Only performance matter to Users and that's why we have taken HANA.
Thanks
Anupam."When you use attribute view in calculation view, hana will first build the attribute view first it will process all the data from memory in attribute view and then only will proceed with the calculation view."
That's actually completely false.
Attribute views are not materialized in full every time an Analytic View is queried. On the contrary, only the joins/materialization required to fulfill the query are performed. I have rolled out Analytic views with 50+ attribute views joined to them, if every one was built every time the AV was used, that would be a disaster.
An attribute view is fully executed if you query it directly with SQL, but the behavior changes when used in an AV.
Quick observation in good faith of my statement.
Query an analytic view with one column from a joined attribute view (Material - MARA)
SELECT "PAPH1", SUM("VVREV")
FROM "_SYS_BIC"."Main.Analytics.CO/AN_COPA"
WHERE "PERIO_T" = '2013010'
GROUP BY "PAPH1"
Only one join is executed to the fact table
Query an analytic view with one column from a joined attribute view (Material - MARA), plus another column from a joined table (T179T) inside the attribute view (snowflaked dimension).
SELECT "PAPH1", "VTEXT_1", SUM("VVREV")
FROM "_SYS_BIC"."Main.Analytics.CO/AN_COPA"
WHERE "PERIO_T" = '2013010'
GROUP BY "PAPH1", "VTEXT_1"
Only two joins are executed; one to the snowflaked dimension and one to the fact table
So even though I am issuing a query against an AV with a very large number of dimensions, only what is needed is actually executed.
Happy HANA,
Justin -
Hana view column descriptions are not showing in Crystal 2013
Hello All,
I have a hana calculation view which has the column name and label defined perfectly. When I use the HANA view in Crystal Report 2013, the column labels are not showing up in the field explorer even after enabling the show both name and description. Please help.hi
is anyone has answer for this question.
thanks...!!!! -
Help to use presentation variables in title view
Hi,
I am trying to use presentation variables in title view and the presntation variable that I have created is for current month date range (04/01/2012-04/30/2012)
When I am using this variable in the title view in the report it is showing me as (04/01/2012,04/30/2012)
IS there any way to get the date range as 04/01/2012-04/30/2012 instead of comma863997 wrote:
Hi,
I can not create two presenation variables and use becasue I have dashboard prompts setted up and I am using that prompt in my dashboard and report to..So if I create two presentation variables seaperately and use then whenever we change the dates in the prompts the dates in the reprot title will not changeYou absolutely can use two presentation variables and they will change in the Title View if you use them there. Click on this link for the details on how to create the two prompts and use them in your report.
http://oraclebizint.wordpress.com/2008/02/26/oracle-bi-ee-101332-between-prompts-for-date-columns-using-presentation-variables/ -
Best Approach for Reporting on SAP HANA Views
Hi,
Kindly provide information w.r.t the best approach for the reporting on HANA views for the architecture displayed below:
We are on a lookout for information mainly around the following points:
There are two reporting options which are known to us and listed below namely:
Reporting on HANA views through SAP BW (View > VirtualProvider > BEx > BI 4.1)
Reporting on HANA views in ECC using BI 4.1 tools
Which is the best option for reporting (please provide supportive reasons : as in advantages and limitations)?
In case a better approach exists, please let us know of the same.
Best approach for reporting option on a mixed scenario wherein data of BW and HANA views is to be utilized together.Hi Alston,
To be honest I did not understand the architecture that you have figured out in your message.
Do you have HANA instance as far as I understood and one ERP and BW is running on HANA. Or there might be 2 HANA instance and ERP and BW are running independently.
Anyway If you have HANA you have many options to present data by using analytic views. Also you have BW on HANA as EDW. So for both you can use BO and Lumira as well for presenting data.
Check this document as well: http://scn.sap.com/docs/DOC-34403 -
How to share a bind variable across multiple view objects?
Hi, Can someone tell me if it's possible to share a bind variable among multiple view objects within an application module? My web page displays data from different VOs on different regions. But all data should be controlled by the same bind variable, which appears in all queries. How can I achieve this?
Please help.Best to state your JDev version, and technology stack (eg. ADF BC) when posting.
I can think of 2 approaches.
1) Create a parent VO based on SELECT :bindVar FROM dual, then create links between your other VOs and the parent
2) Create a AM client interface method that programatically sets the bind variable in each VO.
Can you specify your use case? This one tends to come up when discussing effective from/to dated queries.
CM. -
Hi Gurus,
We are in the process of building the SAP HANA views. As we know there are multiple options
1) Attribute , Analytic & Calc views
2) Scripted Calculation views and CE functions.
I have read many articles and as per SAP Documentation, they say build the information view with Attribute, analytic and calculation View (Graphical) If it does not suffice they go for scripted calculation view.
Just wanted to understand. Are there any limitations or any issues faced in the projects with scripted calc views. If we look at the John Appleby tips, it suggests that avoid SQL script unless it cannot be done with graphical views.
http://scn.sap.com/community/hana-in-memory/blog/2013/12/29/6-golden-rules-for-new-sap-hana-developers
If we build the views with graphical method, then it seems the parallelism can very well achieved ,means query is split into multiple sub queries and executed in parallel as in Visualize plan.
If we write the Sql script, can this parallel processing achieved or not ? If the requirement can be achieved without writing script which method to choose.
I have included the 10 to 12 attribute views in analytic view then Calculation view; it seems there may be some performance issue which I am going to check. As we know we can use base table directly in calculation view. What is the best method to use .Can we use these base tables in calculation view directly or build the attribute views first, then analytic view and after that build calculation view.
As we know we use the attribute views from re usability perspective. Is there any other reason that we need to use attribute views instead of joining the base tables in calc view .
Regards
Ram RamanathaiahThank you Krishna for the answers. I have gone through those links. But there is nowhere consensus opinion that the way we use the views. Some of the answers conflict each other .When we are starting the project we need to make decision about the best approach we wanted to take. If possible I would like to understand more about this from you and other experts.
1) Build the views with Attribute analytic or calc views or
2) Build the views only with base tables in calc views or
3) Build everything using the SQL script /CE functions.
Regards
Ram -
HANA views call in ABAP ECC 6.0 via secondary connection
Dear Folks,
We have created views in HANA, same views we need to call it in ABAP ECC 6.0(Netweaver 7.3) i.e. via secondary database connection.
So,
1.Is it possible to call HANA vies in ABAP ECC 6.0?
2.Is there any version limitations? or will work fine on ECC 6.0
3. If yes can you give me sample code of abap to access hana as secondary database
Note : I have gone through Mr. Thomas Jung thread.
Regards,
AmolHi Amol,
so, ADBC is available in your system, but you have to make sure that the correct DBSL library for HANA (HDB) is available in your system. You can then just check if you can correctly communicate with the report ADBC_TEST_CONNECTION (using the secondary connection maintained in table DBCON) to your HANA database.
You may have a look at the example on how to select from an external view in report ADBC_QUERY (which selects from a DB table), by using a secondary DB connection to your HANA DB and using the HANA view instead of a DDIC table.
Of course in ADBC you have to take care about the correct type mapping (as you cannot use a DDIC type for definition of your internal table into which you select).
Best,
Jasmin
BTW: One word of precaution, the tasks you try to accomplish is rather cumbersome. We definitively recommend to use a more recent release (e.g. NetWeaver 7.4 SP5 or beyond), however, I think that's not your decision, right? -
How to Figure Type of HANA View in ABAP?
Hi,
Is there a way in ABAP to find out (by looking up some table or calling an FM/method) the type of a HANA view? I have an ABAP system that has a HANA database. Views of different types (calculation, attribute, analytic) have been created in HANA. In my ABAP code, I have the name of the view from which I want to find out the type of the view. Any ideas?
Thanks,
AkshatHi Kumar,
why would you need to know at all?
Anyways, you would have to know the name of the corresponding HANA entity. That is displayed when you open the external view in the ABAP Development Tools in Eclipse.
Additionally, you would have to know to which HANA Transport Container the HANA view belongs, have a look at the HTC (in the ABAP Development Tools in Eclipse). There are two tabs "Overview" and "Content". On the "Content" tab, you can find a list including package, name, and the type information you are looking for.
Cheers,
Jasmin -
Consuming HANA views using ABAP
Hi Experts,
We have ABAP reports in ECC which is taking very long time to process it. So we decided to push down the complex logic to HANA where ever it is taking long time to fetch data.
We have standalone HANA System. So can we use HANA as secondary database??? If yes, how can i consume HANA views in ABAP reports??
Can some one guide me.
Thanks in advance.
Best Regards,
Krishna.Hi Sundar,
Thanks a lot for your valuable inputs.
You need to access the native HANA artefacts (like HANA information views) from your ABAP system using native SQL and ADBC in case HANA is not the primary DB.
- If i want to pass values to the views can we use HANA input parameters in this case as a PLACE HOLDER in Native SQL??? else do i need to create a procedure for it???
Basically ABAP team is optimized the code but still we are hitting with performance. So we want to utilize existing HANA databse as secondary db to push down the complex logic to HANA.
Best Regards,
Krishna
Maybe you are looking for
-
File Open failed Error in Process Chain
Hi, Our process chains are failing at the last step of event trigger.The file is not getting created in the directory as a result of which the BO reports are not getting triggered.Kindly help. Regards, Shalaka
-
Premiere to Color (Native)
Hi all, I'd like to migrate over to Premiere from FCP, before I make the leap I hope I can nail down a workflow that can take me back to FCP for grading in Color on the Native Red files. Has anyone here attempted this workflow yet? Many thanks. J
-
After I upgraded to Firefox 5 my bookmarks disapeared, how do I get them back? Thank you
After I upgraded to Firefox 5 my bookmarks disapeared, how do I get them back? Thank you
-
I am try to create new thin app. Technicality it's not an application, it's web-link to internal Application (IIS) server. But this link has requirements for specific browser (IE9) and Java version. We are replacing all computers from XP to Win 7 and
-
My new Curve 8900 will sometimes 'connect' to my PC via USB cable to the BB Desktop Manager and sometimes it won't. If connected and I take a call I pull the cable from the device but when I re-connect it shows "Disconnected" on the Desktop Manager