Complex datatype in Web Services
The work involved in handling complex datatype as part of the Web Services
(JDev 9.0.3) seems to be very complex and not very well documented. (as
far as I can tell).
Is there an easy way for a Java client to bypass the deserialization altogether
and just get the raw SOAP XML as returned from a Web Service.
From the Raw XML, we could use the regular parsing tools to do whatever
is necessary with the data. For example, I would like to transform the
XML returned by using a simple XSL transformation.
This would bypass the complexity of mapping all elements of an object that
I would not really use in Java anyway. (I would pass the result of the XSL
transformation to a 'C' program (yes I know it's ugly, but I still use 'C' for
processing data...)
I would really appreciate if anybody had experience in doing something like
that.
Thanks.
Hi Denis - I think I might have run into a similar prob. I have been able create and successfully test a web service as long as the input object types are Strings. When I try to do this with a complex data type it fails. "Complex" in this case means an object containing 2 string and 1 double (i.e. not a standard java.lang objects for which serializers are predefined).
Did you encounter the following error message?
[SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to deserialize a 'http://IWidgetConsumer.xsd:Widget' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'. [java.lang.IllegalArgumentException]]
Process exited with exit code 0.
Thanks
X
Similar Messages
-
I have read many posts and alot of documentation and would
just like to confirm that it is NOT possible to pass what you could
consider "complex" data to a web service. Data that is in an array,
ArrayCollection, or even a actionscript class, that I need to pass
to a .net web service (c# or vb.net) does not come out on the other
side. I have tried making the .net web service parameter an object,
array, arraylist, byte array, xml node, etc -- nothing happens.
Am I wrong? If so, could anyone provide some code (on both
the Flex 2.0 and .net web service side) that shows how to take the
complex data sent from Flex to the web service and actually
properly read the data in the web service. The intent would
obviously to update a SQL Server database.
Currently, my Flex web service calls have many many parameter
tags under the <mx:request> tag - each one corresponding to
the input parameter of the .net web service. My intent is to
simplify the input parameters on both sides.
Again, am I waiting for Flex 3.0 or am I just a little
slow?Thank you for your reply. However, I have no problem getting
data into Flex from .net (web service). It is getting data from
Flex back into .net (web service) that I have an issue with. I can
pass simple strings, numbers, bool, etc but it is when I try to
pass ArrayCollections, actionscript classes , etc from Flex to .net
that I can not seem to get it to work. Any help in this area would
be greatly appreciated.
Steve -
Send complex data via web service : discards parts of complex object sent
Hi,
I have to send an object to the server via a web service. The object A (say) that is being sent has a lot of properties. Now A has an array collection of objects of type B which in turn has an array collection of type C and so on..
The problem is some of the data is not a part of the xml data sent out.
I have included the snapshots of the data given to the web service and data sent out as seen in the network monitor below.
Object sent to the web service
xml data sent out as seen
in the request body in the Network monitor
The object in red rectangle above is of type "Slide" which has an object "caption" of type Caption and other simple properties like slideId (int), slideNumber(int) and storyBoardId(int).
The object in the red rectangle is the xml data of "Slide" corresponding to the object in the red rectangle in the image to the left.
Notice that the entire object "caption" has been dropped while the simple properties have been represented.
I am stuck and cant find a solution to this issue or a work around
any pointers would be really helpful.
thanks in advancePosting more images .. have simplified the object a lot but still have the same issue.
1. The request object description as given in the asmx [seen in the browser]
2. The request object's description as given in the wsdl [seen in browser]
3. The object that is being sent to the web service -- as seen in the debugger of Flash builder
4. The object data in xml being sent out of Flex client -- as seen in network monitor of Flash Builder
NOTE : The object data as seen in the network monitor doesnt have the caption" part at all! whereas the debugger shows the caption.
5. The object recieved at the web method of the web service -- as seen in the debugger of visual studio running the service
If anyone has any work around for this pl let me know. -
Complex type in web service request
Hello everybody...
Maybe not the best place, but have to start from somewhere.
Recently, I've started playing with utl_dbws package. I succeeded to call webservice with simple parameter. Now, I'd like to send (and receive) a parameter which is array of string.
I don't know is it possible with anydate type of request or have to create XML request.
Thx in advance for any comment or suggestionHi
did you get a solution for this?
Can you please post the solution for our academic interest.
thanks -
Web service call problem with complex types input
We are trying to call a web service and pass as parameter
some complex types. When invoking the web service everything works
well on flex side, but on the server side the input parameters we
get from flex are not correct - complex type is removed and the
elements of the complex type are sent. See the example:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:WebService id="ws_id" wsdl="link" useProxy="false"
fault="wsFault(event)">
<mx:operation id="op_id" name="op"
result="wsResult(event)">
<mx:request>
<parameters>
<parameter1>{value1}</parameter1>
<parameter2>{value2}</parameter2>
<parameter3>{value3}</parameter3>
<parameter4>
<parameter4_1>{value4_1}</parameter4_1>
<parameter4_2>{value4_2}</parameter4_2>
<parameter4_3>{value4_3}</parameter4_3>
</parameter4>
</parameters>
</mx:request>
</mx:operation>
</mx:WebService>
</mx:Application>
on server side we get this:
<parameters>
<parameter1>{value1}</parameter1>
<parameter2>{value2}</parameter2>
<parameter3>{value3}</parameter3>
<parameter4_1>{value4_1}</parameter4_1>
<parameter4_2>{value4_2}</parameter4_2>
<parameter4_3>{value4_3}</parameter4_3>
</parameters>
Instead of :
<parameters>
<parameter1>{value1}</parameter1>
<parameter2>{value2}</parameter2>
<parameter3>{value3}</parameter3>
<parameter4>
<parameter4_1>{value4_1}</parameter4_1>
<parameter4_2>{value4_2}</parameter4_2>
<parameter4_3>{value4_3}</parameter4_3>
</parameter4>
</parameters>
Any idea how is it possible to send complex type as web
service input from flex ?Hi,
I also have similar type of problem where I need to invoke a Web service with Complex input parameters.
I followed Susan's blog but I stuck at a point where methos getItem is created.
Can anyone tell me how to get that method for my requirement.
If possible can you guys share your solutions here.
Thanks in advance. -
We are trying to call a web service and pass as parameter
some complex
types. When invoking the web service everything works well on
flex
side, but on the server side the input parameters we get from
flex are
not correct - complex type is removed and the elements of the
complex
type are sent. See the example:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:WebService id="ws_id" wsdl="link" useProxy="false"
fault="wsFault(event)">
<mx:operation id="op_id" name="op"
result="wsResult(event)">
<mx:request>
<parameters>
<parameter1>{value1}</parameter1>
<parameter2>{value2}</parameter2>
<parameter3>{value3}</parameter3>
<parameter4>
<parameter4_1>{value4_1}</parameter4_1>
<parameter4_2>{value4_2}</parameter4_2>
<parameter4_3>{value4_3}</parameter4_3>
</parameter4>
</parameters>
</mx:request>
</mx:operation>
</mx:WebService>
</mx:Application>
on server side we get this:
<parameters>
<parameter1>{value1}</parameter1>
<parameter2>{value2}</parameter2>
<parameter3>{value3}</parameter3>
<parameter4_1>{value4_1}</parameter4_1>
<parameter4_2>{value4_2}</parameter4_2>
<parameter4_3>{value4_3}</parameter4_3>
</parameters>
Instead of :
<parameters>
<parameter1>{value1}</parameter1>
<parameter2>{value2}</parameter2>
<parameter3>{value3}</parameter3>
<parameter4>
<parameter4_1>{value4_1}</parameter4_1>
<parameter4_2>{value4_2}</parameter4_2>
<parameter4_3>{value4_3}</parameter4_3>
</parameter4>
</parameters>
Any idea how is it possible to send complex type as web
service input
from flex ?May be wrong, but I don't think the WebService
<request> tag can accept nested parameters, such as what
you're doing with <parameter4>. Each element name in the xml
pair must match a parameter name in the Web Service WSDL. I think
Flex would just ignore <parameter4> and not send it. -
Web Services, Schemas, and the xsi:type attribute
Hi List,
I have several questions reqarding web services, schemas, and the use of the xsi:type
attribute in messages.
Schemas:
Q1: How complex can a web service schema be?
Q2: Is it reasonable for a schema to contain derived types by extension [1]?
Q3: Could you use the International Purchase Order Schema [2] with a web service?
xsi:type
Q1: Is it reasonable for a web service to use the xsi:type attribute in the message(s)?
If I am interpreting Section 4.1.15 of the BasicProfile-1.0a [3] correctly, this
appears to be appropriate in certain circumstances.
Q2: When is it appropriate to use the xsi:type attribute? If a schema contains
derived types by extension [1]? If a schema contains xsd:anyType?
Q3: How does using the xsi:type attribute affect interoperability?
And finally,
Q4: Are there any examples available demonstrating the use of the xsi:type attribute
in messages?
Whew !!!
TIA,
Kent
[1] http://www.w3.org/TR/xmlschema-0/#DerivExt
[2] http://www.w3.org/TR/xmlschema-0/#ipo.xsd
[3] http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.htmlHi Kent,
A few answers inline...
HTH,
Bruce
Kent Kvarfordt wrote:
>
Hi List,
I have several questions reqarding web services, schemas, and the use of the xsi:type
attribute in messages.
Schemas:
Q1: How complex can a web service schema be?There are limits in converting the schema between language
representations, see this section [a] in the docs on roundtripping
generated data types.
[a]
http://edocs.bea.com/wls/docs81/webserv/assemble.html#1074725
Q2: Is it reasonable for a schema to contain derived types by extension [1]?
Q3: Could you use the International Purchase Order Schema [2] with a web service?
xsi:type
Q1: Is it reasonable for a web service to use the xsi:type attribute in the message(s)?
If I am interpreting Section 4.1.15 of the BasicProfile-1.0a [3] correctly, this
appears to be appropriate in certain circumstances.I've not seen this used.
http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html#refinement34259632
>
Q2: When is it appropriate to use the xsi:type attribute? If a schema contains
derived types by extension [1]? If a schema contains xsd:anyType?
Q3: How does using the xsi:type attribute affect interoperability?My thought is that since this is not commonly used, then your risk of
interop failure is high.
>
And finally,
Q4: Are there any examples available demonstrating the use of the xsi:type attribute
in messages?Sorry, I looked and could not find any examples.
>
Whew !!!
TIA,
Kent
[1] http://www.w3.org/TR/xmlschema-0/#DerivExt
[2] http://www.w3.org/TR/xmlschema-0/#ipo.xsd
[3] http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html -
Publish PLSQL as web service wizard
Is there a way to control naming of complex types in web services that are generated by publish PLSQL as web service wizard?
I.E. for a type defined in the database called MY_TEST_TYPE the wizard generates something like MY_CONNECTION_MY_TEST_TYPEUser. I would like to see just MY_TEST_TYPE
I know that this can be edited after the generation, but then benefits of managing 100% generated code would be lost.
ThanksYou may use properties file while generating Java classes via JPublisher wizard. You tell JPublisher wizard to omit schema (omit_schema_names parameter) names for your types, etc. You can read "About Properties Files" in JDeveloper help. Create a properties file and put all options in that file then use that file (somewhere in the wizard dialog - I do not remember) while generating Java classes via JPublisher wizard.
The properties file example
jpub.case=lower
jpub.numbertypes=jdbc
jpub.omit_schema_names
jpub.methods=true
Hope this helps. -
Does ColdFusion support nested complex data types when building Web Services? See example CFCs below. I keep getting a ServiceMethodNotFoundException. In my SubmitNoticeOfAppt.cfc, the cfargument data type is NoticeOfAppointment.CFC which references other CFCs that define complex data types. The complex types are needed to support a really complex XML document that must be NIEM (National Information Exchange Model) compliant. Originally tried passing the NIEM XML doument as a string, but receive deserialization errors, encounter child element. Could get around the error by wrapping the XML string in <![CDATA[ ... ]]>, but this convention is not NIEM compliant.
DocumentIssueDate.cfc
<cfcomponent displayname="DocumentIssueDate" output="false">
<cfproperty name="Date" type="date" required="No">
</cfcomponent>
DocumentAugmentation.cfc
<cfcomponent displayname="DocumentAugmentation" output="false">
<cfproperty name="DocumentIssueDate" type="any" required="No">
</cfcomponent>
DocumentIdentification.cfc
<cfcomponent displayname="DocumentIdentification" output="false">
<cfproperty name="IdentificationID" type="numeric" required="Yes">
<cfproperty name="IdentificationCategoryDescriptionText" type="string" required="No">
</cfcomponent>
NoticeOfAppointment.cfc
<cfcomponent displayname="NoticeOfAppointment" output="false">
<cfproperty name="DocumentIdentification" type="any" required="Yes">
<cfproperty name="DocumentAugmentation" type="any" required="Yes">
</cfcomponent>
SubmitNoticeOfAppt.cfc
<cfcomponent style="document">
<cffunction name="SubmitNoticeOfAppt" returnType="string" output="false" access="remote">
<!---Arguments--->
<cfargument name="NoticeOfApptXml" type="NoticeOfAppointment" required="Yes">
<cfreturn "Notice of Appointment successfully received">
</cffunction>
</cfcomponent>
Sample NoticeOfAppointment.xml (Stripped down, actual message contains almost 200 elements with 20+ complex datatypes)
<NoticeOfAppointment>
<DocumentIdentification>
<IdentificationID>000021199</IdentificationID>
<IdentificationCategoryDescriptionText/>
</DocumentIdentification>
<DocumentAugmentation>
<DocumentIssueDate>
<Date>2011-04-07</Date>
</DocumentIssueDate>
</DocumentAugmentation>
</NoticeOfAppointment>Coldfusion should be able to nest complex data types in your web service (after all, that's what the cfproperty tag was designed for). Unfortunately, I have more experience consuming complex web services than designing them in CF. My Recommendation - inspect your web service WSDL using a tool that will generate the sample SOAP XML that will be needed to consume your web service. You should be able to tell from that XML what the issue is - could be a missing namespace in your XML or strange nesting, etc.
We use SOAPSonar from Crosscheck networks - they have a feww personal version that will allow you to inspect your web service interface and it will even generate the sample XML needed to call it via SOAP.
Hope that helps. -
Some data is missing while returning complex datatype from a web service
Hi
I am returning a complex data type from a web service. complex data type has a super class and some(not all) values from this super class are not being returned to the client. Strange part is that it giving some fields from super class and some values are not returned.
I saw the soap response also it does not show any tag for those fields. but while creating a response i am setting some string values to those fields but i am not getting at client side.
all the serailiastion and deseialization classes where created using ANT tasks and i have checked that all the cedec classes have been created.for what it's worth, the same problem was reported by one of our developers, although the string size was considerably smaller (probably less then 1 MB). According to him, soap clients generated from apache tools could connect fine and process the XML records. JDev hung. We simply changed our use case to return smaller results sets, but perhaps you could also generate your clients with WSDL2Java rather then JDev (if it is a truly a bug in JDev SOAP)? Can you add record parameters to the payload, in order to limit the results and scroll between remaining rows?
-
Creating Complex Datatypes in Application Module Service Interface
HI All,
I need to create the complex datatype as response in Application module service interface(Custom method).
Is there any way to create it.
I am able to create when i have simple datatype as response, Whereas the complex type is not able to create.
Please give me some suggestion.
Thanks
PrabhatHi
I followed the below discussion and got the solution
Create Web Services and return a complex type with ADF
Thanks
Prabhat -
Custom/Complex data types in web services
Hi,
I've read in several articles here on otn that JDev 9.0.3 would have better support for
creating web services with complex datatypes (like java.util.LinkedList), but still (in the 9.0.3 Preview)
theese methods are greyed out on the web service wizard. Am I missing something?
Until now I've worked with Custom Serializers, but they are time consuming and hard to work with.
/MattiasHere are the two articles that will help:
JavaBeans as Web services parameter types:
http://otn.oracle.com/tech/webservices/htdocs/samples/customtype/content.html
Registering Web services custom serializers:
http://otn.oracle.com/tech/webservices/htdocs/samples/serialize/content.html
The new support in JDev 9.0.3 is that JavaBean parameters are now recognized by the JDev publishing wizards whereas in JDev 9.0.2 there was the workaround pointed to by the first article. In 9.0.2 the publishing support was only for primitive data types.
The upside of the custom serializers, is you can re-use your existing serializers if they happen to have been written to Apache SOAP.
Mike. -
Issue with a complex web service models
Hello all,
I have a web service model that has been imported and the strutucture for inbound parameters are complex.
For the inbound parameters in the mode I have an object with a number of feilds as well a another object in it that is an array.
Ex.
DespatchTemplate (0..1)
--> flightID
--> DayOfWeek
--> DespatchTemplateCustomers[] (0..n)
--> customerId
--> pc
--> row
Now I can return this mode no problem and use it in my web dynpro but I having an issue populate the array object in the model. The flightID and DayOfWeek show up in the debugger of the EJB (driver for the web service) but the DespatchTemplateCustomers is always null.
I have tried a number of things and I am stuck.
// Set the flight and dayOfWeel
wdContext.currentCreateDespatchTemplateElement().setFlightId(
wdContext.currentDespatchTemplateElement().getFlightId());
wdContext.currentCreateDespatchTemplateElement().setDayOfWeek(
wdContext.currentDespatchTemplateElement().getDayOfWeek());
// Create the model to use in the creation of the element
ComplexType_DespatchTemplateCustomers model =
new ComplexType_DespatchTemplateCustomers();
ICreateDespatchTemplateCustomersElement customer;
for(int i = 0; i < wdContext.nodeDespatchTemplateCustomer().size(); i++) {
// Create an element
customer = wdContext.nodeCreateDespatchTemplateCustomers).
createCreateDespatchTemplateCustomersElement(model);
// Get the customer data from the UI table
IDespatchTemplateCustomerElement customerElement =
wdContext.nodeDespatchTemplateCustomer().
getDespatchTemplateCustomerElementAt(i);
// Set the flighId and dayOfWeek in the created Element
customer.setCustomerId(customerElement.getCustomerId());
customer.setRow(new Integer(customerElement.getRow()));
// Add the element to the node.
wdContext.nodeCreateDespatchTemplate().
nodeCreateDespatchTemplateCustomers().addElement(customer)
Thanks in advanced,
Derekhi,
no it's too large.
i think i have solved my problem,
originally the name of the web service is setting on v2/SecurityService_
</wsdl:binding>
<wsdl:service name="SecurityService">
<wsdl:port binding="impl:SecurityServiceSoapBinding" name="v2/SecurityService">
<wsdlsoap:address location="http://dev2008:7001/xmlpserver/services/v2/SecurityService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
if i change the name to SecurityService as follow , no error occurs
</wsdl:binding>
<wsdl:service name="SecurityService">
<wsdl:port binding="impl:SecurityServiceSoapBinding" name="SecurityService">
<wsdlsoap:address location="http://dev2008:7001/xmlpserver/services/v2/SecurityService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions> -
Error while returning complex data type in a J2EE web service
Hello,
I am implementing J2EE web service which returns array of custom class object.
I have implemented serializable interface to custom class, and also to session bean.
But it gives the following error:
Serializing object [Lcom.ltitl.j2ee.ejb.classes.ProjectDetails;@2a2289 fails. Nested message: XML Serialization Error. Object of Class [com.ltitl.j2ee.ejb.classes.ProjectDetails] does not have property [ObjId] of type [java.lang.Integer]. Check if the right object is passed to the serialization routine..
As error stated about some property ObjId..I tried including such property in my class. But now it gave exception while deploying stating that ObjId already defined.
Also I want to return multiple arrays of complex custom classes. i tried using vectors but didnt work. What is the method to return arrays of complex custom classes.
Please help..
AbhijeetTrying to create a web service that returns a Collection doesn't seem to be possible in Netweaver. The reason for this is that languages other than Java have difficulty in mapping Collections, amongst others, to their own native equivalents.
There is a discussion on the subject here you may find useful:
http://forum.capescience.com/showthreaded.php?Cat=&Board=webservices&Number=147&page=0&view=collapsed&sb=5&o=&vc=1
The short answer is to use object Arrays instead, or a custom class that contains an array of each type of object you would expect to find in your Vector
Hope this helps
Steve -
How to invoke a Web Service from PL/SQL with Complex Type as input.
Hello,
I am trying to invoke a web service from PL/SQL using the UTL_DBWS package.
The web service expects a complex type as input (defined below):
<xs:complexType name="MsgType">
<xs:sequence>
<xs:element name="sender" type="xs:string"/>
<xs:element name="messageId" type="xs:string"/>
<xs:element name="messageType" type="xs:string"/>
<xs:element name="dateSent" type="xs:date"/>
</xs:sequence>
</xs:complexType>
How to construct input to this in PL/SQL Procedure?
Has any body tried this before?
An exmaple will be helpful.
ThanksDear,
I have read your article, it is useful for me. But I cannot Apply to my case. Please kindly help me. Thank you.
When running, the error occurs:
1:39:31 Execution failed: ORA-20000: soapenv:Server.userException - org.xml.sax.SAXParseException: Attribute name "password" associated with an element type "user" must be followed by the ' = ' character.
My webservice Url: http://abc.com.vn:81/axis/ABC_WS_TEST.jws?wsdl
I make PL/SQL (similiar as your example)
FUNCTION INVOKESENDMT
RETURN VARCHAR2
AS
l_request soap_api.t_request;
l_response soap_api.t_response;
l_return VARCHAR2(32767);
l_url VARCHAR2(32767);
l_namespace VARCHAR2(32767);
l_method VARCHAR2(32767);
l_soap_action VARCHAR2(32767);
l_result_name VARCHAR2(32767);
p_zipcode VARCHAR2(160);
BEGIN
--p_zipcode:='''TEST'' ; ''TEST'';''84912187098'';''84912187098'';''0'';''8118'';''1'';''000001'';''ThuNghiem'';''''';
p_zipcode:='TEST';
-- Set proxy details if no direct net connection.
--UTL_HTTP.set_proxy('myproxy:4480', NULL);
--UTL_HTTP.set_persistent_conn_support(TRUE);
-- Set proxy authentication if necessary.
--soap_api.set_proxy_authentication(p_username => 'TEST',
-- p_password => 'TEST');
l_url := 'http://abc.com.vn:81/axis/ABC_WS_TEST.jws';
l_namespace := 'xmlns="' || l_url || '"';
l_method := 'sendMT';
l_soap_action := l_url || '#sendMT';
l_result_name := 'sendMTResponse';
l_request := soap_api.new_request(p_method => l_method,
p_namespace => l_namespace);
soap_api.add_parameter(p_request => l_request,
p_name => 'user password sender receiver chargedflag servicenumber messagetype messageid textcontent binarycontent',
p_type => 'xsd:string',
p_value => p_zipcode);
l_response := soap_api.invoke(p_request => l_request,
p_url => l_url,
p_action => l_soap_action);
l_return := soap_api.get_return_value(p_response => l_response,
p_name => l_result_name,
p_namespace => l_namespace);
RETURN l_return;
END;
Maybe you are looking for
-
G/L account ,date, wise material stock display
Hi Experts My requirement is I need to display G/L accounts(mseg-sakto) material stock(mara) present on a particular date (budat)range. For this in select-options i am taking sakto as mseg-sakto and datum as bsim-budat. Now i need to apply select que
-
Does anyone know how to set up print so that it comes out double sided with the macbook pro??
-
While loading through External Tables, Japanese characters wrong load
Hi all, I am loading a text file through External Tables. While loading, japanese characters are loading as junk characters. In text file, the characters are showing correctly. My spool file SET ECHO OFF SET VERIFY OFF SET Heading OFF SET LINESIZE 60
-
Trying to report an Adobe error with hopes to fix it
I have a Payroll service who uses Adobe. When I print the checks the line on the bottom of the checks show alphabet letters along with the routing and account numbers, instead of special characters. After many hours online and on the phone with my
-
Post Author: paulhaines CA Forum: Older Products Has anyone yet made Crystal 9 merge modules that included the SP7 update? I see the last one posted in the downloads section is still prior to SP6. We ran into an issue lately where the Crystal 9 view