Custom data bean collection
I want to make available in Data Control Palette a custom collection data control. I proceeded like samples in [a]http://www.oracle.com/technology/products/jdev/collateral/papers/10g/ADFBindingPrimer/ADFBindingIntro.zip[a] from doc. Oracle ADF Data Binding Primer and ADF/Struts Overview but I didn't obtain same result (look for CommissionPlan+CommissionService).
That are my files which I made to construct my custom data collection control:
1)The child java bean:
package tdb.zero.model;
public class PersonBean
String name;
String pren;
public PersonBean()
public PersonBean(String s1, String s2)
{setName(s1);setPren(s2);
public String getName()
return name;
public void setName(String name)
this.name = name;
public String getPren()
return pren;
public void setPren(String pren)
this.pren = pren;
} and the descriptive file of the bean:
<?xml version='1.0' encoding='windows-1252'?>
<JavaBean
id="PersonBean"
xmlns="http://xmlns.oracle.com/adfm/beanmodel"
version="9.0.5.15.88"
BeanClass="tdb.zero.model.PersonBean" >
<Contents >
<Attribute
Name="name"
IsUpdateable="true"
AttrLoad="Each"
IsQueriable="false"
IsVisible="true"
IsPersistent="false"
IsUnique="false"
IsNotNull="false"
PrecisionRule="true"
DiscrColumn="false"
SourceName="name"
Type="java.lang.String" >
</Attribute>
<Attribute
Name="pren"
IsUpdateable="true"
AttrLoad="Each"
IsQueriable="false"
IsVisible="true"
IsPersistent="false"
IsUnique="false"
IsNotNull="false"
PrecisionRule="true"
DiscrColumn="false"
SourceName="pren"
Type="java.lang.String" >
</Attribute>
</Contents>
</JavaBean>2) the collection:
package tdb.zero.model;
import java.util.ArrayList;
import tdb.zero.model.PersonBean;
public class AgendaBean
private ArrayList agenda= new ArrayList(10);
public AgendaBean()
agenda.add(new PersonBean("twew","pdske"));
agenda.add(new PersonBean("peter","george"));
agenda.add(new PersonBean("raddsu","iosxdnel"));
agenda.add(new PersonBean("paz","raz"));
public void setAgenda(ArrayList agenda)
this.agenda = agenda;
public ArrayList getAgenda()
return agenda;
}I generated this AgendaBean class as custom data control and the xml is:
<?xml version='1.0' encoding='windows-1252' ?>
<JavaBean
id="AgendaBean"
xmlns="http://xmlns.oracle.com/adfm/beanmodel"
version="10.1.2.18.73"
BeanClass="tdb.zero.model.AgendaBean" >
<Contents >
<AccessorAttribute
id="agenda"
BeanClass="tdb.zero.model.PersonBean"
IsCollection="true"
Type="java.util.ArrayList" >
</AccessorAttribute>
</Contents>
</JavaBean>The DataControls.dcx is:
<?xml version='1.0' encoding='windows-1252' ?>
<DataControlConfigs
id="DataControls"
xmlns="http://xmlns.oracle.com/adfm/configuration"
version="10.1.2.18.73" >
<Contents >
<DataControl
id="AgendaBeanDataControl"
SubType="DCJavaBean"
SupportsFindMode="false"
SupportsTransactions="false"
FactoryClass="oracle.adf.model.generic.DataControlFactoryImpl"
Definition="tdb.zero.model.AgendaBean"
BeanClass="tdb.zero.model.AgendaBean" >
</DataControl>
</Contents>
</DataControlConfigs>In Control Data Palette I have no acces to name and pren attributes of collection agenda.
I receive the error:
Wrong node type found. Expected a node of type oracle.adf.dt.navigator.nodes.BeanModelXmlNode , but found type oracle.bali.xml.addin.XMLSourceNode. You need to create your data control in a seperate project.
. What that means? What I have to do things works?
null
I found a solution reading the doc. above.
You don't have to manual describe an xml file for structure of the child bean (members of the collection).
Since introspection of the AgendaBean only tells us that the property is of type Collection, this additional "Bean class" metadata property lets us record the specific kind of bean that will be in the collection at runtime, tdb.zero.model.PersonBean. I had to set this property manually, using the Property Inspector. Once you tie the PersonBean bean into the AgendaBean by setting this BeanClass property, JDeveloper 10g creates the PersonBean.xml metadata file as well to record metadata about that bean as well. Strange is that automatically generated xml contains same data as the before xml file made by hand by me.
Now, the problem is how to make the collection class to keep the current row indicator trace. If I post something to my current row, the row pointer is resetted to the first. I want this pointer to mantain its position.
Similar Messages
-
Oracle Receviables customer data collection test
Hi
Oracle Receviables customer data data collection test note:245256.1
how can i find which script(sql) i have to use to get this output
ThanksRun this test from "Oracle Diagnostics Tool" responsibility.
Note: 358831.1 - eBusiness Suite Diagnostics Execution Instructions
https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=358831.1 -
No Data in Reports Details in Custom date range
Hello, iTunes U Public Site Manager Admins.
As the iTunes U Public Site Manager admin, I've been trying to access our institution's iTunes U Reports Details for a couple of days. (I send a monthly report of usage to our course/collection contributors.) When I custom the date range, under Details, there is zero entry; "No data available in table" message is shown.
This feature had been working well since Apple iTunes U added this enhancement on August 13, 2013. The report Details showed the exact stats for Browse, Subscribe, Download, Stream, and Enclosure for each course/collection in the custom date range.
Now under "Details", the data is shown only when the date range is Last 30 Days. It shows no data in custom date range when the Calendar is used to select a Start Date and End Date.
Has anyone else noticed this problem?
Thanks.
Q. WangErik.
I used your suggestion and it worked very well. This is how I did it.
Export the range of data that includes Feb. 1-Feb. 28, 2014 as .tsv file.
Open that file in Excel.
Add a blank column next to the Date column. Use function =Month() to just extract the month into the new column. Fill down the whole column. Then copy and paste special (value) into the same column (I have over 26,000 rows of data in the file.) Converting to Value will allow for the next step of PivotTable.
Create a PivotTable for the 26,000 rows of data. Use Month as the Report filter, iTunes_ID as the Row Labels, Select Browse, Subscribe, etc. as the Sum Values. (The result is a summary table with about 200 rows.)
I then do a Vlookup to my premade Master file to add Category (course, collection, resources) and Instructor Name to each of the 200 rows.
That will do it for my monthly report.
Thanks for your tip again. I did not know the .tsv file would have DATE for each item.
Sincerely,
Q. Wang -
Custom Data Processing Extension and Parameters
Hello,
I have successfully implemented a custom data processing extension. Now I'm trying to add parameters, but the documentation is very weak on this topic. Also all examples of custam data processing extensions I have found so far are working without parameter support. Using a search engine I have found a custom data processing extension's sequence diagram during report execution. The related article also gives some hints about the IDbCommandAnalysis interface.
The GetParameters implementation creates a parameter collection based on the current command text and returns this collection. So far no problem.
My question is how to implement the IDbCommand's CreateParameter method and Parameters property? In CreateParameter I just return a new instance of my IDataParameter implementation, and the Parameters property returns a new parameter collection based on the current command text.
Is this ok so? At least this is the first implementation which seems to work in the data designer. If I share an instance variable for GetParameters and Parameters I will either get all parameters twice or BIDS will crash when pressing the execute button in the dataset designer - depending on my actual implementation.
What I'm still missing is how to get the parameters added automaticall to the dataset's properties parameter register?
thanx in advance and kind regards, GeraldI think that finally (after some days of trying) I could make it work. The dataset and report parameters are reflecting the command text's parameters now (BTW: to answer my last question - the dataset's properties are updated after pressing the refresh button only). The road to success was not to use the same member variable for the collections returned by IDbCommandAnalysis:GetParameters() and IDbCommand:Parameter and not to fill the latter one with the command text's parameters (see partial source code below).
public sealed class MyCommand : IDbCommand, IDbCommandAnalysis
private string m_commandText;
private MyParameterCollection m_parameters = new MyParameterCollection();
public string CommandText
get { return this.m_commandText; }
set { SetCommandText(value); }
public IDataParameterCollection Parameters
get { return m_parameters; }
public IDataParameter CreateParameter()
return new MyParameter();
public IDataParameterCollection GetParameters()
return GetParameterCollection();
private void SetCommandText(string commandText)
m_commandText = commandText;
private MyParameterCollection GetParameterCollection()
// ... create parameter collection based on m_commandText
Still there are some open questions:
How can I update the report parameter's properties? Now the parameter's data type is always string, but I'd like to assign the right data type. I'd also like to tag the parameters as hidden and supply a non-queried default value. Is this possible? How?
Although I my implementation of IDbCommandAnalysis:GetParameters() returns a collection containing the parameter names and values the "prompt query parameters" dialog (after pressing the query designer's execute button in the toolbar) shows a "<blank>" value for the parameters. What could be the problem?
Thanx in advance and regards,
Gerald -
Issue with creating array of custom data type - WebLogic Integration
Hi,
We are doing WebLogic integration with Siebel for which from Siebel side we have generated java wrapper class which has all the methods, input\outputs defined and in\out params are serialized along with get\set methods. Following are the details of the input\output args.
Account_EMRIO.java
public class Account_EMRIO implements Serializable, Cloneable, SiebelHierarchy {
protected String fIntObjectFormat = null;
protected String fMessageType = "Integration Object";
protected String fMessageId = null;
protected String fIntObjectName = "Account_EMR";
protected String fOutputIntObjectName = "Account_EMR";
protected ArrayList <AccountIC> fintObjInst = null;
Above class also includes constructors\overloaded constructor\getters\setters
public AccountIC getfintObjInst() {
if(fintObjInst != null) {
return (AccountIC)fintObjInst.clone();
}else{
return null;
public void setfintObjInst(AccountIC val) {
if(val != null) {
if(fintObjInst == null) {
fintObjInst = new ArrayList<AccountIC>();
fintObjInst.add(val);
For the nested user defined data type AccountIC, it is defined in another java class as below
AccountIC.java
public class AccountIC implements Serializable, Cloneable, SiebelHierarchy {
protected String fname = null;
protected String fParent_Account_Id= null;
protected String fPrimary_Organization = null;
With the above, I was able to get all the AccountIC in the wsdl correctly and using this I was able to set the input param in the client
WSDL:
<xs:complexType name="accountEMRIO">
<xs:sequence>
<xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
<xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
<xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
<xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
<xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
<xs:element name="fintObjInst" type="tns:accountIC" minOccurs="0"/>
</xs:sequence>
<xs:complexType name="accountIC">
<xs:sequence>
<xs:element name="fName" type="xs:string" minOccurs="0"/>
<xs:element name="fParent_Account_Id" type="xs:string" minOccurs="0"/>
<xs:element name="fPrimary_Organization" type="xs:string" minOccurs="0"/>
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Now, I wanted to make slight difference in getter method of class Account_EMRIO method getfintObjInst so that an array of AccountIC is retured as output.
public ArrayList<AccountIC> getfintObjInst() {
if(fintObjInst != null) {
return (ArrayList<AccountIC>)fintObjInst.clone();
}else{
return null;
With the above change, once the wsdl is generated, I am no longer getting fintObjInst field for AccountIC due to which I am unable to get the array list of accountIC
WSDL:
<xs:complexType name="accountEMRIO">
<xs:sequence>
<xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
<xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
<xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
<xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
<xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
The issue that I am facing here is, we have a custom data type(AccountIC) which has several fields in it. In the output I need a array of AccountIC. In the java bean, when this type was defined as
protected ArrayList <AccountIC> fintObjInst = null; I was unable to get a array of AccountIC. this gets complicated as inside a AccountIC there is array of contacts as well and all the time I am getting just the first records and not a array.
To summarize: How to get xsd:list or maxoccurs property for a field in WSDL for the user defined\custom datatype?
Can someone help me with this.
Thanks,
Sudha.can someone help with this??
-
Hello,
I've posted a project at some commercial sites to find someone to help me doing it, but couldn't find any. I thought that it might be impossible doing this type of projects. The following is what was posted expecting someone could help/lead me doing it myself or at least providing any valuable hints, Thank you in advance.
Looking for an Oracle expert to do the software part of a project.
A data to be populated in Oracle database, but unfortunately Oracle doesn't support the required data type to hold it.
An expert has to create custom data type with all required procedures/functions to manipulate the data(Read/Update/Insert/Delete), and provide a method to incorporate the solution in Oracle developer suite to model it.(To use it inside designer tools)
The solution should allow someone to Create a column in a table to hold (for example) three bits in every row(record), mostly used in the project is three bits, but need the solution to be open and customizable to any number from one up to 21. Viewing/entering the data in a record could be as binary string. Saving in a table physically should be in sampling way to save space.
The functions/procedures for manipulating the data should be based on record level and block level(several records of one column with start/end points). For record manipulations a binary string should be used, and for block manipulations a sampled structure should be used.
Thank you for your time.
Platforms:
Oracle Database 9i and above.
Oracle Developer Suite 9i and above.
*/not sure what exactly do you mean by custom data type in SQL? if you mean if there is a user defined data type in oracle thru PL/SQL yes there is. by using the %Type you need not to declare the variable data type explicitly. all you need to do is associate the variable to the column name of the table and use the %Type. see this example below.
SQL> declare
2 vEmpno emp.empno%Type;
3 begin
4 select empno
5 into vEmpno
6 from emp
7 where ename = 'FORD';
8 dbms_output.put_line('employee no: '||vEmpno);
9 end;
10 /
employee no: 7902
PL/SQL procedure successfully completed
SQL> or if you are looking for a collection of data types see this link about OBJECT TYPES -
Call Oracle procedure with custom data type within Java and Hibernate
I have a custom date TYPE in Oracle
like
CREATE TYPE DATEARRAY AS TABLE OF DATE;
and I have a Oracle function also
like
CREATE OR REPLACE FUNCTION doesContain (list DATEARRAY, val VARCHAR2) RETURN NUMBER
IS
END doesContain;
In my Java class,
I have a collection which contain a list of java.util.Date objects
When I call Oracle function "doesContain", how to pass my java collection to this Oracle function ...
anyone can provide solutions?
Please !!!
Thanks,
PulikkottilVu,
First of all you need to define your types as database types, for example:
create or replace type T_ID as table of number(5)Then you need to use the "oracle.sql.ARRAY" class. You can search this forum's archives for the term "ARRAY" in order to find more details and you can also find some samples via the JDBC Web page at the OTN Web site.
Good Luck,
Avi. -
Liquid: Sort Webapp items by custom date
I would like to be able to sort a list of web app items by a custom date. It is a list of events that have dates associated with them. They all get released on the same day, but they have unique event dates to each of them for when the event actually happens.
This is what I have so far:
{module_webapps render="collection" filter="classified" collection="warroadEvents" id="17654" itemId="122469" hideEmptyMessage="true" sortType="datereverse" template=""}
{% for event in warroadEvents.items %}
{% assign todaysDate = globals.site.dateNow | date %}
{% assign eventDate = event.['Event Date'] %}
{% assign dateOrder = todaysDate | minus: myDate %}
<div class="col-xxs buffer event-callout">
<a href="{{event.url}}"><img src="{{event.['banner image']}}?Action=thumbnail&Width=825&Height=275" alt="{{event.name}}" class="img-responsive"></a>
<a href="{{event.['e-split url']}}" target="_blank" class="ticket float-right" style="margin-top: 1.5em;">
<img src="/_images/layout/buy tickets com.PNG" alt="" class="ticketimage">
</a>
<h2>{{event.name}}</h2>
<p><strong>{{event.['Event Date'] | date:"dddd"}}, {{event.['Event Date'] | date:"MMMM d"}}: {{event.['Start Time']}}</strong></p>
<h4><a href="{{event.url}}">View More Details</a></h4>
</div>
{% endfor %}
I have created 3 variables. One that stores today's date, another that stores the event date from the web app item, and a third that subtracts the two to find the difference. I think I am part of the way there. I am not sure how to re-sort my for loop so that the date that is coming up soonest shows up first and so on.Custom filter solutions are one of the big limitations with this stuff at the moment.
Basically you cant.
While you could wrap the items in an if..... And do date matching and comparing and not show them etc you will not be able to sort or order them based on that.
And with anything you do you can only do it in a scope of a total of 500 items or per pagination page. Per pagination page stuff creates an issue where it will show say 24 per page and lets say 3 on each page do not match you get 24 render pagination still but 21 shown on a page. It creates some funky results a bit.
I have been going on about this for a while now and that we need some core changes to Liquid to make it a bit more viable in the scope of how BC spits out data. For now though you cant do what your doing really. -
How Customer link to Collection Segment
Dear All,
I created, customer open item.
I created one Business partner and all config for collection management.
I transferred data to collection Management.
But in the worklist not data is showing, can you plz guide me where I am doing wrong.
I am not able to understand one this, how the BP link to Customer.
Thanks
PrakashHi,
I have seen you SDN when i am seaching for Collection Management Configuration Steps.Kindly provide me the Collection Management Configuration Steps as i am facing somany problems in configuring that.
Kindly provide me the configuration steps for Collection Management Configuration.
It would be a great help if u forward the Collection Management Configuration Steps.
Thanks in Advance
Kishore -
How can I have custom data annotation attribute alter the Target of a migration?
I want to create custom data annotation attributes in order to alter the database accordingly.
To have this custom attribute apply, I want to create a
custom MigrationOperation/SqlServerMigrationSqlGenerator in order to execute the database related changes.
Now I need to get the migration Target (SQL Server: [__MigrationHistory table].[Target]) altered so that a manual/automatic migration will recognize the custom attribute and apply the custom MigrationOperation (and its inverse operation).
How can I achieve this?
I guess custom model based conventions may have to do something with this, but I'm not sure, though.
Still people out there alive using the keyboard?
Working with SQL Server/Visual Studio/Office/Windows and their poor keyboard support they seem extinct...Hello,
>>Very strange... I've altered my Configuration file according to your amendments, but still no exception is thrown. Why doesn't it throw at my machine? I don't get it ...
I am wondering if the order of the steps makes difference, my steps are follow:
With your project, I comment out the TestMigrationConfiguration and replace it with a manual generated one and register the TestSqlGenerator in it.
Then it throws the exception. I merge all separate classes to one as below which could generate the error, please have a try:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Infrastructure.Annotations;
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Model;
using System.Data.Entity.Migrations.Utilities;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Data.Entity.SqlServer;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
namespace P200150121
class Program
static void Main(string[] args)
using (MyContext ctx = new MyContext())
ctx.t1.Add(new T1() { Name = "Test" });
ctx.SaveChanges();
public class T1
public int ID { get; set; }
[Required]
[MaxLength(100)]
[Test("de-DE")]
public string Name { get; set; }
[Required]
public bool IsConfirmed { get; set; }
public class MyContext : DbContext
public DbSet<T1> t1 { get; set; }
static MyContext()
Database.SetInitializer<MyContext>(new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
protected override void OnModelCreating(DbModelBuilder modelBuilder)
modelBuilder.Conventions.Add(new AttributeToColumnAnnotationConvention<TestAttribute, string>("TestAnnotation", (property, attributes) => attributes[0].CultureInfo.Name));
//internal abstract class TestMigrationConfiguration : DbConfiguration
// public TestMigrationConfiguration()
// SetMigrationSqlGenerator("System.Data.SqlClient", () => new TestSqlGenerator());
internal sealed class Configuration : DbMigrationsConfiguration<MyContext>
public Configuration()
AutomaticMigrationsEnabled = true;
SetSqlGenerator("System.Data.SqlClient", new TestSqlGenerator());
protected override void Seed(P200150121.MyContext context)
// This method will be called after migrating to the latest version.
// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data. E.g.
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" },
// new Person { FullName = "Brice Lambson" },
// new Person { FullName = "Rowan Miller" }
internal class TestSqlGenerator : SqlServerMigrationSqlGenerator
protected override void Generate(ColumnModel column, IndentedTextWriter writer)
try
AnnotationValues values = null;
System.IO.File.AppendAllText("New Text Document.txt", column.Name + " Is GetValue : " + column.Annotations.TryGetValue("TestAnnotation", out values) + "\r\n");
if (values != null)
throw new Exception(string.Format("oldValue1='{0}', newValue1='{1}'", values.OldValue, values.NewValue));
values = column.Annotations["TestAnnotation"];
throw new Exception(string.Format("oldValue1='{0}', newValue1='{1}'", values.OldValue, values.NewValue));
catch (KeyNotFoundException)
base.Generate(column, writer);
[AttributeUsage(AttributeTargets.Property)]
public class TestAttribute : Attribute
private CultureInfo _cultureInfo = CultureInfo.CurrentCulture;
public CultureInfo CultureInfo { get { return _cultureInfo; } }
public TestAttribute()
public TestAttribute(string cultureName)
_cultureInfo = new CultureInfo(cultureName);
public TestAttribute(int lcid)
_cultureInfo = new CultureInfo(lcid);
Regards.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
PO Custom Data tab size incorrect after EHP4 installation
Hello,
We have previously enlarged the size of the custom data tab on PO transaction ME23N (via modification) in order to accommodate a comprehensive overview of the many custom fields we have. The screen we changed is as follows:
Program: SAPLMEGUI
Screen: 1227
Original size:
- Lines/columns Occupied 5 / 100
Mainten. 5 / 100
Modified size:
- Lines/columns Occupied 23 / 160
Mainten. 23 / 160
It worked out fine in our ECC6.0 Release 700 (SP17).
Recently we upgraded to Release 701 (SP03). We have made the same modification to the same screen as mentioned above. However, the screen was not resized as we had expected. Its size stays as 5/100. So the user has to scroll through a very short subscreen in order to see all custom fields.
Have anyone of you experienced this ( or any UI related issues) after installing enhancement pack 4 of ECC 6?
Any of your suggestions are appreciated.Sap has provide a sample in OSS [ Note 407975 - MM06E005: Collective note: Examples for implementation|https://service.sap.com/sap/support/notes/407975] - compare with yours
Regards,
Raymond -
I've updated a custom data type and redeployed my component; however, I'm not seeing the update take. What do I need to do to see the update? Restart the server?
Thanks
Dan Stremkowski
Thrivent FinancialHi there,
you can use your own classes as service method argument or return type. But you should not forget to do a type mapping on both the service and client side.
I can tell you, how I am sending and receiving my own datatype called "FileBean" which is a simple JavaBean with getter() and setter() methods for the properties.
I'm using axis for deployment and tomcat as the web server, where my service runs on (currently only local but in future this will be remote).
Service class: "InstallationService.java"
Bean class: "FileBean.java"
Client class: "FileSaving.java"
My deploy.wsdd file has the following entry:
<beanMapping qname="myNS:FileBean"
xmlns:myNS="http://packageDelarationBackwards"
languageSpecificType="java:packageDeclaration.FileBean"/>
...The method header in my service:
public FileBean storeAttachments(FileBean file)The important part of my Client:
QName qnFileBean = new QName("http://packageDelcarationBackwards", "FileBean");
call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
call.setOperationName(new QName("InstallationService","storeAttachments"));
call.setReturnType(qnFileBean);
call.registerTypeMapping(
FileBean.class,
qnFileBean,
new BeanSerializerFactory(FileBean.class, qnFileBean),
new BeanDeserializerFactory(FileBean.class, qnFileBean));
....After deploying the service and starting the server I can send my "FileBean", work with it and give it back.
Hope this helped. If you need more information, just let me know.
Steffi -
Custom data service & bindings
Hi,
Let's assume I have two tables A and B.
I want to implement a custom data service method in table A on a row level (ViewRowImpl) which creates a new row in the table B. Right after the row creation I want to open up a dialog and edit the newly created row.
But, instead of editing the newly created row, my dialog opens up with the currently selected row from the jspx page.
I don't know how the inform my binding layer of a newly created row and to setup its currency to the new row.
I understand that I can not access the BindingContext from the custom data service (is this right?) but what would be the right solution?
Thanks,
KresimirThank you Frank,
maybe I misunderstood the ADF model concept.
Namely I try to push the data logic as much as possible into ADF Model (ViewRowImpl or AM) layer and expose it through as custom data service methods to the application. But when doing it this way, I need to access the binding layer in order to propagate the changes from the model layer. So when I create a new row in my data service methods, I want to be able to navigate the ADF binding iterator to exactly that row and not to any other row which is currently selected. The operation like first(), next(), execute() which are defined on the model layer are doing exactly the same thing.
Of course I can write my data operations in the ViewController layer with help of beans and DataControl operation; is this the preferred way how to do it?
Kresimir
(btw. excellent book you wrote) -
SSRS Custom Data Processing Extension Error
I am using Custom Data Processing Extension to call a stored procedure. Iam getting following error when creating a dataset in report designer using the extension. I wrote the code in c#.
could not update a list of fields for the query. verify that you can connect to the data source and that your query syntax is correct.(Details-Object reference not set to an instance of an object.)
Here is my code
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using Microsoft.ReportingServices.DataProcessing;
using System.Diagnostics;
using System.Text.RegularExpressions;
namespace DataBaseDPE
public class DBConnection:Microsoft.ReportingServices.DataProcessing.IDbConnectionExtension
private string mconnstring;
private string localname = "Database Connection";
private ConnectionState mState = ConnectionState.Open;
public DBConnection()
Debug.WriteLine("DataSetConnection: Default Constructor");
public DBConnection(string Dconnection)
Debug.WriteLine("DataSetConnection Constructor overloaded with Connection String ");
mconnstring = Dconnection;
public Microsoft.ReportingServices.DataProcessing.IDbTransaction BeginTransaction()
return (null);
public string ConnectionString
get
return mconnstring;
set
mconnstring = value;
public int ConnectionTimeout
get
return 0;
public ConnectionState State
get
return mState;
public void Open()
mState = ConnectionState.Open;
return;
public void Close()
mState = ConnectionState.Closed;
return;
public Microsoft.ReportingServices.DataProcessing.IDbCommand CreateCommand()
return new DBCommand(this);
public string LocalizedName
get
return localname;
set
localname = value;
public void SetConfiguration(string configuration)
try
SqlConnection sqlconn = new SqlConnection("Data Source=localhost;Initial Catalog=AdventureWorks2000;Integrated Security=True;");
catch (Exception e)
throw new Exception(e.Message, null);
public void Dispose()
public string Impersonate
{ get; set; }
public bool IntegratedSecurity
{ get; set; }
public string Password
{ get; set; }
public string UserName
{ get; set; }
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.ReportingServices.DataProcessing;
using System.Data.SqlClient;
namespace DataBaseDPE
public class DBCommand : Microsoft.ReportingServices.DataProcessing.IDbCommand
DBConnection mconnection = null;
private string mCmdText;
private int mCmdTimeOut = 30;
private CommandType CmdType;
public DBCommand()
public DBCommand(string CmdText)
mCmdText = CmdText;
public DBCommand(DBConnection aConnection)
mconnection = aConnection;
public void Cancel()
throw new NotImplementedException();
public string CommandText
get
return mCmdText;
set
mCmdText = value;
public int CommandTimeout
get
return mCmdTimeOut;
set
mCmdTimeOut = value;
public CommandType CommandType
get
return CmdType;
set
CmdType = value;
public IDataParameter CreateParameter()
return (null);
public class MySqlDataReader:Microsoft.ReportingServices.DataProcessing.IDataReader
private System.Data.IDataReader sourceDataReader;
private System.Data.DataTable dt;
private System.Data.DataSet ds;
private int fieldCount = 0;
private string fieldName;
private int fieldOrdinal;
private Type fieldType;
private object fieldValue;
private int currentRow = 0;
public MySqlDataReader(System.Data.IDataReader datareader)
this.sourceDataReader = datareader;
public MySqlDataReader(System.Data.DataTable dt)
// TODO: Complete member initialization
this.dt = dt;
public MySqlDataReader(System.Data.DataSet ds)
// TODO: Complete member initialization
this.ds = ds;
public int FieldCount
get
fieldCount = ds.Tables[0].Columns.Count;
return fieldCount;
public Type GetFieldType(int i)
fieldType =
ds.Tables[0].Columns[i].DataType;
return fieldType;
public string GetName(int i)
fieldName = ds.Tables[0].Columns[i].ColumnName;
return fieldName;
public int GetOrdinal(string name)
fieldOrdinal =
ds.Tables[0].Columns[name].Ordinal;
return fieldOrdinal;
public object GetValue(int i)
fieldValue =
ds.Tables[0].Rows[this.currentRow][i];
return fieldValue;
public bool Read()
currentRow++;
if (currentRow >= ds.Tables[0].Rows.Count)
return (false);
else
return (true);
public void Dispose()
public IDataReader ExecuteReader(CommandBehavior behavior)
string query = "SampleSP";
SqlConnection readerconn = new SqlConnection("Data Source=localhost;Initial Catalog=AdventureWorks2000;Integrated Security=SSPI");
SqlCommand readercmd = new SqlCommand(query);
readerconn.Open();
readercmd = readerconn.CreateCommand();
readercmd.CommandText = query;
readercmd.CommandType = System.Data.CommandType.StoredProcedure;
readerconn.Close();
SqlDataAdapter adapter = new SqlDataAdapter(query,readerconn);
readerconn.Open();
adapter.SelectCommand = readercmd;
System.Data.DataTable dt = new System.Data.DataTable();
adapter.Fill(dt);
System.Data.DataSet ds = new System.Data.DataSet();
adapter.Fill(ds);
return new MySqlDataReader(ds);
public IDataParameterCollection Parameters
get { return (null); }
public IDbTransaction Transaction
get
return (null);
set
throw new NotImplementedException();
public void Dispose()
Please help me, Thanks in advanceSorry why do you need a Data Processing Extension for that? Cant you directly call the procedure
from SSRS dataset? Whats the RDBMS which holds this procedure?
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
Custom data types for Web Service services
Instead of language primitives (int, double) or Strings, is it possible to define custom data types (i.e. classes) for use in a service method argument or as a service return type? For example, if I create a class called MyClass then could I use it as an argument n a service as follows: someServiceMethod( MyClass myClassInstance). A service returning the custom type might look like this: MyClass getTheClassServiceMethod(String someString). Are either of these ideas possible?
Hi there,
you can use your own classes as service method argument or return type. But you should not forget to do a type mapping on both the service and client side.
I can tell you, how I am sending and receiving my own datatype called "FileBean" which is a simple JavaBean with getter() and setter() methods for the properties.
I'm using axis for deployment and tomcat as the web server, where my service runs on (currently only local but in future this will be remote).
Service class: "InstallationService.java"
Bean class: "FileBean.java"
Client class: "FileSaving.java"
My deploy.wsdd file has the following entry:
<beanMapping qname="myNS:FileBean"
xmlns:myNS="http://packageDelarationBackwards"
languageSpecificType="java:packageDeclaration.FileBean"/>
...The method header in my service:
public FileBean storeAttachments(FileBean file)The important part of my Client:
QName qnFileBean = new QName("http://packageDelcarationBackwards", "FileBean");
call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
call.setOperationName(new QName("InstallationService","storeAttachments"));
call.setReturnType(qnFileBean);
call.registerTypeMapping(
FileBean.class,
qnFileBean,
new BeanSerializerFactory(FileBean.class, qnFileBean),
new BeanDeserializerFactory(FileBean.class, qnFileBean));
....After deploying the service and starting the server I can send my "FileBean", work with it and give it back.
Hope this helped. If you need more information, just let me know.
Steffi
Maybe you are looking for
-
Ipod does not work with new usb
i got my computer cleaned and a usb 2.0 pci card put in and now my ipod does not work with it, can anyone help
-
Acrobat 7 Professional - Unknown Error (Unknown Exception)
For some reason, when I run preflight in Acrobat 7 Pro, after letting me preflight a few times or less, the program gives me an Unknown Error (Unknown Exception) error window on the first page of preflighting and stops completely. I have to quit the
-
Hi Friends, While printing the Invoice, it's not picking the additional VAT tax which is supposed to print after all individual Item values, then the VAT and finally the Total.... Eg. Net Amount x VAT y
-
File To Mail Scenario With An Attachment
Hi All, I Want to Implement a FileXI--Mail Scenario With An Attachment I Want to Send a Text File From the File System As An Attachment to the Mail. Can We Do this With out Doing JAVA Or XSLT Mappings in this ??? Please Give me the Steps That I Have
-
Hi All, I am trying to change lead status when saving. I have configured action profile as follows: Created new action in action profile Processing type: Method Call Method Used: Complete_document ( Am I using right Method?) Processing Parameters: PR