BI Publisher Interactive Template no data found - oracle

Version 11g Release 1 (11.1.1.7)
I have created the data sources in BIP with seperate single data set using a simple select * SQL for each data source.
The view sample data works fine.
The issue comes when trying to create a report template using BIP interactive format (xpt).
I create the data table and when I drag the column from left pane in to data table, a No Data Found error is all I get.
It is random since it works fine for other data sources with select * from same database and since the view sample data works in the data source the the chance the SQL is causing this error is nil.
I have recreated these data sources and error still occurs.
Think this is a bug with BIP?
edit: including SQL and generated xml for a data source, I can't share any names though.
SQL:
SELECT
*
FROM
view;
XML:
<output rootName="DATA_DS" uniqueRowName="false">
<nodeList name="data-structure">
<dataStructure tagName="DATA_DS">
<group name="G_1" label="G_1" source="zzz">
<element name="xxx" value="xxx" label="xxx" dataType="xsd:string" breakOrder=""
fieldOrder="1"/>
<element name="mmm" value="mmm" label="mmm" dataType="xsd:string"
breakOrder="" fieldOrder="2"/>
<element name="yyy" value="yyy" label="yyy" dataType="xsd:string" breakOrder=""
fieldOrder="3"/>
<element name="aaa" value="aaa" label="aaa" dataType="xsd:string" breakOrder=""
fieldOrder="4"/>
<element name="bbb" value="bbb" label="bbb" dataType="xsd:string" breakOrder=""
fieldOrder="5"/>
<element name="ccc" value="ccc" label="ccc" dataType="xsd:long" breakOrder=""
fieldOrder="6"/>
<element name="ddd" value="ddd" label="ddd" dataType="xsd:double" breakOrder=""
fieldOrder="7"/>
<element name="eee" value="eee" label="eee" dataType="xsd:string" breakOrder=""
fieldOrder="8"/>
<element name="fff" value="fff" label="fff" dataType="xsd:long" breakOrder=""
fieldOrder="9"/>
<element name="ggg" value="ggg" label="ggg" dataType="xsd:long" breakOrder=""
fieldOrder="10"/>
<element name="ggg" value="ggg" label="ggg" dataType="xsd:string" breakOrder=""
fieldOrder="11"/>
<element name="hhh" value="hhh" label="hhh" dataType="xsd:long" breakOrder=""
fieldOrder="12"/>
<element name="iii" value="iii" label="iii" dataType="xsd:string" breakOrder=""
fieldOrder="13"/>
<element name="jjj" value="jjj" label="jjj" dataType="xsd:string" breakOrder=""
fieldOrder="14"/>
</group>
</dataStructure>
</nodeList>
</output>
error message when dragging a data column into data table:
xxx
"No data found: /DATA_DS/G_1/xxx"

Thanks to Chandan Vidwani for the help,
The data types in the data set have to be changed from long to double and the error magically goes away. Long can still be used for RTF format.

Related

How can I use XPath to find the minimum/maximum value of an attribute for chooses group in a set of elements?

<foo>
<bar id="1" score="100" group="beginner" />
<bar id="2" score="200" group="beginner" />
<bar id="3" score="300" group="expert" />
...
</foo>
I try use like this, but something wrong (xpath 1.0)
foo/bar[#group='beginner' and not(#score<= preceding-sibling::bar/#score) and not(#score<=following-sibling::bar/#score)]
using xpath 1.0
/foo/bar[#group='beginner'][(not(preceding-sibling::bar[#group='beginner']/#score >= #score) and not(following-sibling::bar[#group='beginner']/#score > #score)) or (not(preceding-sibling::bar[#group='beginner']/#score <= #score) and not(following-sibling::bar[#group='beginner']/#score < #score))]/#score

Negative numbers not indexed numbers without negative symbol in full text catalog

I store a docx file in sql server database that contains negative number like -56653.
I installed Microsoft Filter Pack 2.0 and execute this code:
EXEC sp_fulltext_service 'update_languages';
EXEC sp_fulltext_service 'load_os_resources', 1;
EXEC sp_fulltext_service 'restart_all_fdhosts';
Then rebuild the Full Text Catalog multiple time, When search 56653, the query not found any things, but when search -56653 the query work fine.
SELECT *
FROM Files
WHERE
(CONTAINS([Files].[Content], '"56653"'))
Does somebody know what is the problem?
Finally I found the problem. Full text catalog not indexed content of table which inside a paragraph!
This mean the w:tbl tag move to outside of w:p tag.
<w:p w:rsidR="00E402AA" w:rsidP="00E402AA" w:rsidRDefault="00E402AA">
<w:pPr>
<w:bidi />
<w:spacing w:after="0" w:line="240" w:lineRule="auto" />
<w:jc w:val="both" />
<w:rPr>
<w:bCs />
<w:sz w:val="24" />
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:bCs />
<w:sz w:val="24" />
</w:rPr>
</w:r>
<!-- Start Table -->
<w:tbl>
<w:tblPr>
<w:tblStyle w:val="TableGrid" />
<w:tblW w:w="5000" w:type="pct" />
</w:tblPr>
<w:tr>
<w:tc>
...
</w:tc>
</w:tr>
</w:tbl>
<!-- End Table -->
</w:p>

Using XPath to select events that do not match other criteria in Windows event logs

I am trying to develop a Xpath 1.0 compatible filter abiding by the limitations as noted in the answer to Using XPath starts-with or contains functions to search Windows event logs that will match events with event id of 4771 as long as they do not have a certain computer name. Here is sample xml for a 4771 event I do not want to match/display in event viewer.
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Security-Auditing" Guid="{94849225-5448-4994-A5BA-1E3B0928C30D}" />
<EventID>4771</EventID>
<Version>0</Version>
<Level>0</Level>
<Task>14339</Task>
<Opcode>0</Opcode>
<Keywords>0x8010000000000000</Keywords>
<TimeCreated SystemTime="2017-03-22T20:13:28.105262600Z" />
<EventRecordID>4368371459</EventRecordID>
<Correlation />
<Execution ProcessID="564" ThreadID="1340" />
<Channel>Security</Channel>
<Computer>sample.computer.net</Computer>
<Security />
</System>
<EventData>
<Data Name="TargetUserName">abc$</Data>
<Data Name="TargetSid">S-1-5-21-376469911-3458163162-136990061-477177</Data>
<Data Name="ServiceName">krbtgt/computer.net</Data>
<Data Name="TicketOptions">0x40810010</Data>
<Data Name="Status">0x18</Data>
<Data Name="PreAuthType">2</Data>
<Data Name="IpAddress">::ffff:10.0.0.1</Data>
<Data Name="IpPort">56815</Data>
<Data Name="CertIssuerName" />
<Data Name="CertSerialNumber" />
<Data Name="CertThumbprint" />
</EventData>
</Event>
And here is the unsuccessful filter I have tried. The event is displayed so it is not being properly filtered out, i.e. the targetusername exclusion is not being handled properly.
<QueryList>
<Query Id="0" Path="ForwardedEvents">
<Select Path="ForwardedEvents">*[System[(EventID=4771)]] and *[EventData[Data[#Name='TargetUserName'] and (Data!='abc$')]]</Select>
</Query>
</QueryList>
It appears the (Data!='abc$') portion is being applied to all the Data elements and as long as there is one Data element that does not match the specified value the entire event matches. The intent is that if there is a combination of Data element with a TargetUserName attribute and the value of that element is abc$ then the entire event should not match.
you've correctly understood
*[EventData[Data[#Name='TargetUserName'] and (Data!='abc$')]]
as matching any data element that isn't 'abc$'. What you want is to only consider TargetUserName elements.
*[EventData[Data[#Name='TargetUserName']!='abc$']]
In normal XPath 1.0 environment we can do what you described this way :
*[System/EventID=4771 and EventData/Data[#Name='TargetUserName' and .!='abc$']]
Apparently Windows Event Log's XPath doesn't support any of the following, which left us in a dead-end : ., self::, text(), node(). The closest we can get using XPath might be by assuming that 'TargetUserName', if exists in a given EventData, always appear as the first Data child so we can do as follows :
*[System/EventID=4771 and EventData[Data[1]/#Name='TargetUserName' and Data[1]!='abc$']]

Connect internal numbers on freeswitch

I would like to connect two internal numbers with one, I mean if I call 499 then two phones should ring for example 123, 127.
My .xml files in directory/default looks like this:
<include>
<user id="127" mailbox="127">
<params>
<param name="password" value="xxxx"/>
<param name="vm-password" value="127"/>
</params>
<variables>
<variable name="toll_allow" value="domestic,international,local"/>
<variable name="accountcode" value="127"/>
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_name" value="Extension 127"/>
<variable name="effective_caller_id_number" value="127"/>
<variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
<variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
<variable name="callgroup" value="techsupport"/>
</variables>
similar for 123 and 499 numbers.
How can I change it to make two phones rings(123,127) when someone calls 499?
in your dialplan you should call the bridge application like this.
<extension name="Local_Extension">
<condition field="destination_number" expression="^(1001)$">
<action application="bridge" data="sofia/internal/1001%${server-domain-name},sofia/internal/1002%${server-domain-name},sofia/internal/1003%${server domain-name}"/>
</condition>
</extension>
So if you call to 1001 then it will ring to 1001,1002,1003

Summary table with xForms

I have an xml like the following:
<table1>
<row>
<person>person1</person>
<value>10</value>
</row>
<row>
<person>person2</person>
<value>20</value>
</row>
<row>
<person>person1</person>
<value>5</value>
</row>
</table1>
<summaryTable>
<row>
<person>person1</person>
<value_total/>
</row>
<row>
<person>person2</person>
<value_total/>
</row>
</summaryTable>
With XForms 1 (there is no option to switch to XForms 2), using framework betterform, I want to calculate the values in the summary table, by doing the SUM of the rows in 'table1' that have the same person name. To do that I have the following binds:
<xf:bind id="bind_table1"
nodeset="table1" repeatableElement="row">
<xf:bind id="bind_head_table1" nodeset="head" />
<xf:bind id="bind_row_table1" nodeset="row">
<xf:bind id="bind_person" nodeset="person" type="xf:string" />
<xf:bind id="bind_value" nodeset="value" type="xf:integer" />
</xf:bind>
</xf:bind>
<xf:bind id="bind_summaryTable"
nodeset="summaryTable"
repeatableElement="row">
<xf:bind id="bind_head_summaryTable" nodeset="head" />
<xf:bind id="bind_row_summaryTable" nodeset="row">
<xf:bind id="bind_person_name" nodeset="person_name" type="xf:string" readonly="true"/>
<xf:bind id="bind_value_total" nodeset="value_total" type="xf:integer" readonly="true" calculate="SUM(//table1/row[person/text() = ../person_name/text()]/value)"/>
</xf:bind>
</xf:bind>
What I want to have at the end is the value_total for person1 = 15 and value_total for person2 = 20, but using this 'calculate' expression I'm getting 'NaN'. If I replace the calculate expression to compare with a literal String like:
<xf:bind id="bind_value_total" nodeset="value_total" type="xf:integer" readonly="true" calculate="SUM(//table1/row[person/text() = 'person1']/value)"/>
then I get as value_total 15 (the sum is correctly done). So it seems that the error is in the comparison expression person/text() = ../person_name/text() . Does someone have an idea about how should be the correct expression?
Thanks
Try the context() function in the calculate attribute to refer to the current node, like this:
<xf:bind nodeset="summaryTable/row/value_total" calculate="sum(//table1/row[person/text() = context()/../person/text()]/value)"/>
The context function gives you the current context node. If your bind references a nodeset with multiple nodes, it will be evaluated one time for every node, and that node is what context() returns.
It works for me with XSLTForms, maybe your version of betterForm supports it.

Resources