How to define complex type with table per record?
Hi,
for one of my tasks I'm dealing with XML export. After short investigation of the postings in the forum I found an acceptable solution:
Re: Convert ABAP to XML and Vice versa
The issue is that I need an XML file like this:
<plant>
<material>
<purchases>data</purchases>
<purchases>data</purchases>
<purchases>data</purchases>
<sales>data</sales>
<sales>data</sales>
<sales>data</sales>
</material>
<next material>
</next material>
</plant>
So here are the questions:
1. Is it possible (and how) to define such deep structured type where for each record (means material) there is at least 1 internal table connected to that record? That would let me use a record-2-DOM conversion and a standard DOM-2-XML renderer.
2. Could anyone please provide a very simple and short example?
Of course, I could write my own XML renderer and achieve what I need (without using DOM, simply write to file all the desired XML tags while looping at my *nested* tables), but if there is a way to define such a structured type and further to fill it with data, it would help me learn a little bit more about abap opportunities and would save me a bit more time to create a renderer.
Many thanks in advance.
Regards,
Ivaylo Mutafchiev
Hi,
You can declare deep structure as below
TYPES : BEGIN OF ty_address,
house(10) TYPE c,
street(10) TYPE c,
END OF ty_address.
TYPES : BEGIN OF ty_itab,
name(10) TYPE c,
age TYPE i,
address TYPE ty_address OCCURS 0,
END OF ty_itab.
DATA : i_address TYPE STANDARD TABLE OF ty_address,
i_itab TYPE STANDARD TABLE OF ty_itab.
DATA : wa_address TYPE ty_address,
wa_itab TYPE ty_itab.
CLEAR : wa_address,
wa_itab.
wa_address-house = 'House1'.
wa_address-street = 'Street1'.
APPEND wa_address TO i_address.
wa_address-house = 'House2'.
wa_address-street = 'Street2'.
APPEND wa_address TO i_address.
wa_itab-name = 'Test'.
wa_itab-age = 10.
wa_itab-address[] = i_address[].
APPEND wa_itab TO i_itab.
Also check structure BSPL_GRID_FIELDCAT field CELL_COLOR
Similar Messages
-
How to define a function with table type parameter
Hello All,
Here is the requirement ..
cursor c is select first_name, last_name , ssn from employee ;
TYPE employee_type IS TABLE OF c%rowtype;
tbl_employee_type employee_type;
I want to pass the parameter to a function the ssn -: tbl_employee_type(1).ssn
how the formal parameter should be declared
===========================
function chk_notnull_blank ( ? ) return boolean is
BEGIN
if ( colname is NOT NULL and colname in ( -8E14, -7E14, -6E14, -5E14, -4E14, -3E14, -2E14, -1E14, -1E9 )) then
RETURN TRUE ;
else
RETURN FALSE ;
end if;
END chk_notnull_blank;
======================
pls advice
thanks/kumarYou cannot define a generic argument in a function,
but you can overload several funtions with the same name and different types of arguments in a package,
in this way (not tested):
create table employees as
select employee_id ssn, first_name, last_name from hr.employees;
create or replace
PACKAGE chk
IS
cursor c is select first_name, last_name , ssn from employees ;
TYPE employee_type IS TABLE OF c%rowtype;
TYPE employee_ssn_type IS TABLE OF employees.ssn%TYPE;
TYPE employee_num_type IS TABLE OF number;
FUNCTION chk_notnull_blank ( colname employees.ssn%TYPE) RETURN boolean;
FUNCTION chk_notnull_blank ( colnames employee_type) RETURN boolean;
FUNCTION chk_notnull_blank ( colnames employee_ssn_type) RETURN boolean;
FUNCTION chk_notnull_blank ( colnames employee_num_type) RETURN boolean;
END chk;
create or replace
PACKAGE BODY chk
IS
FUNCTION chk_notnull_blank ( colname employees.ssn%TYPE) RETURN boolean IS
BEGIN
if ( colname is NOT NULL and colname in ( -8E14, -7E14, -6E14, -5E14, -4E14, -3E14, -2E14, -1E14, -1E9 )) then
RETURN TRUE ;
else
RETURN FALSE ;
END IF;
END chk_notnull_blank;
FUNCTION chk_notnull_blank ( colnames employee_type) RETURN boolean IS
BEGIN
FOR i IN colnames.FIRST .. colnames.LAST LOOP
IF NOT chk_notnull_blank( colnames( i ).ssn )
THEN
RETURN FALSE;
END IF;
END LOOP;
RETURN true;
END chk_notnull_blank;
FUNCTION chk_notnull_blank ( colnames employee_ssn_type) RETURN boolean
IS
BEGIN
FOR i IN colnames.FIRST .. colnames.LAST LOOP
IF NOT chk_notnull_blank( colnames( i ) )
THEN
RETURN FALSE;
END IF;
END LOOP;
RETURN TRUE;
END chk_notnull_blank;
FUNCTION chk_notnull_blank ( colnames employee_num_type) RETURN boolean
IS
BEGIN
FOR i IN colnames.FIRST .. colnames.LAST LOOP
IF NOT chk_notnull_blank( colnames( i ) )
THEN
RETURN FALSE;
END IF;
END LOOP;
RETURN TRUE;
END chk_notnull_blank;
END chk;I assumed in this example that if the argument of the function chk_notnull_blank is of the table (collection) type,
then the function returns true if all table elements pass the check, otherwise it returns false. -
How to print devlievery document with out condition record mess type
Hi,
Actually user want to take the sample print out ( Hard copy ) of the delivery note and other documents for reference, even the message type processed, not processed and even ended with errors also
I have written a program to display the delivery document numbers with check boxses and added one button in application tool bar.
onece user executed the program, he will able to see all the delivery or sales numbers with checkboxes.
now requirement is, users will select check box and click on the print button it should fire printouts in local printer of user location.
for this what we are planning is we want to maintian the entries in NAST by RV_MESSAGE_* function modules and printing the output immedaietly
If any one worked on this kind of requirement, please suggest step by step, how we can print the documents with directly maitaining the message types with out condition records
Thanks in advance.
RajuHi,
Generally if we create any document ( sales or delivery ), based on the condition record message type will be created and with message type details print will be triggered when the medium is 1, date time 4
But in my case i want to take the printout irrespective of the message and condition records
i want to take printout even if the message processed,not processed and ended with error.
is there any way to take the print of the documents by using function modules or updation of NAST table.
Please help me.
Thanks in advance
Raju -
How to specify the type of table in the form parameters
How to specify the type of table in the form parameters. for example, how to specify the type of table "vacancies".
FORM getcertainday
USING
vacancies TYPE STANDARD TABLE
efirstday LIKE hrp9200-zfirst_day
lfristday LIKE hrp9200-zfirst_day.Hi
Are you asking about subroutine program to declare a variable for perform statement etc
if it so check this coding
DATA: NUM1 TYPE I,
NUM2 TYPE I,
SUM TYPE I.
NUM1 = 2. NUM2 = 4.
PERFORM ADDIT USING NUM1 NUM2 CHANGING SUM.
NUM1 = 7. NUM2 = 11.
PERFORM ADDIT USING NUM1 NUM2 CHANGING SUM.
FORM ADDIT
USING ADD_NUM1
ADD_NUM2
CHANGING ADD_SUM.
ADD_SUM = ADD_NUM1 + ADD_NUM2.
PERFORM OUT USING ADD_NUM1 ADD_NUM2 ADD_SUM.
ENDFORM.
FORM OUT
USING OUT_NUM1
OUT_NUM2
OUT_SUM.
WRITE: / 'Sum of', OUT_NUM1, 'and', OUT_NUM2, 'is', OUT_SUM.
ENDFORM.
If your issue is some other can u explain me clearly
Regards
Pavan -
How can I work lsmw with table control using mm01 appl?
Hi
How can I work lsmw with table control using mm01 appl?
Is it difefrent the way we handle table control in BDC?
Thank YouHi
How can I work lsmw with table control using mm01 appl?
Is it difefrent the way we handle table control in BDC?
Thank You -
How to get wage type for every time record
Hi Pros,
I am using DS 0CA_TS_IS_1, it includes report time type (0REPTT), but not have wage type. in CATSDB, I fied fields for attendance/absence type and wage type. but not every time record has wage type. can you please tell me how to get wage type for every time record? what is relation between reporting time type, attendance/absence type and wage typs?Hello,
Can you talk to your HR/T&E functional consultant if they populate these values in CATSDB table using standard way or if there are custom fields that are in CATSDB OR any other table which can be used to meed the requirements
Thanks
Abhishek Shanbhigue -
How to use complex types in a odata url filter
Hello,
I am in the process of building a service that uses a complex data type as input in a query filter. I am not sure how the url will need to be generated and also how to retireve this complex type in the get_entity_set method.
Example:
I have a complex type as below:
Name:
with properties
Firstname
Lastname.
I would like to pass the name as a query filter. an I am not sure how to do this.
Should it be like this:
https://.../service/getdetails?$filter=Name.firstname eq 'John' and Name.Lastname eq 'Smith'
My second question is how do I retireve this filter in the get_entity_set method.Hi Rajesh,
I have done the Scenario using Function import and done the code and working fine.
But here my question is how to retrieve the data when we are using return type is complex..
Give me the sample URI format for the above query.
I have done the code for function import in excute_action method.
Data : ls_entity1 TYPE zcl_zproj_fm_import_mpc=>banks,
lt_entity1 TYPE STANDARD TABLE OF zcl_zproj_fm_import_mpc=>banks.
WHEN 'BankComplex'.
IF it_parameter IS NOT INITIAL.
* Read Function import parameter value
READ TABLE it_parameter INTO ls_parameter WITH KEY name = 'BankCtry'.
IF sy-subrc = 0.
lv_country = ls_parameter-value.
ENDIF.
IF lv_country IS NOT INITIAL.
CALL FUNCTION 'BAPI_BANK_GETLIST'
EXPORTING
bank_ctry = lv_country
max_rows = '100'
* IMPORTING
* RETURN =
TABLES
bank_list = lt_banklist
LOOP AT lt_banklist INTO ls_banklist .
ls_entity1-bankctry = ls_banklist-bank_ctry.
ls_entity1-bankkey = ls_banklist-bank_key.
ls_entity1-bankname = ls_banklist-bank_name.
ls_entity1-city = ls_banklist-city.
APPEND ls_entity1 TO lt_entity1.
ENDLOOP.
* Call methos copy_data_to_ref and export entity set data
copy_data_to_ref( EXPORTING is_data = lt_entity1
CHANGING cr_data = er_data ).
ENDIF.
ENDIF.
Thanks,
Syam -
Defining complex types in ABAP
Hi Folks,
I am new to the ABAP world and has started programming in it for about two weeks now (therefore, two weeks of experience so far ). I have a question regarding definition of complex types in ABAP. Basically what I want to achieve is to define a type which is either mytype1 or mytype2. During the runtime, it should be decided whether complextype is of mytype1 or of mytype2. Maybe to put some more concrete context: I will call a method with an object of type "complextype". Depending how I set this object, this will be of mytype1 or mytype2. Please see the code schema below.
TYPES BEGIN OF mytype1.
TYPES:
TYPES END OF mytype1.
TYPES BEGIN OF mytype2.
TYPES:
TYPES END OF mytype2.
TYPES BEGIN OF complextype.
TYPES:
mytype_name TYPE mytype1,
mytype_name TYPE mytype2.
TYPES END OF complextype.
Is this a correct way to approach? If yes, how can I express this (either mytype1 or mytype2 but only one of them at a certain time) in ABAP types correctly?
I will appreciate any kind of help.
Thanks a million,
Boldbaatar
Edited by: Boldbaatar Tsend-Ayush on Apr 6, 2011 8:24 PMHi,
I think you should use the dynamic data reference .
TYPES BEGIN OF mytype1.
TYPES:
TYPES END OF mytype1.
TYPES BEGIN OF mytype2.
TYPES:
TYPES END OF mytype2.
data: dref_complex type ref to data.
field-sumbols:<fs_any> type any.
if type eq mytype1.
l_type = 'MY_TYPE1'.
elseif type eq mytype2.
l_type = 'MY_TYPE2'.
endif.
create data dref_complex type (l_type).
"In order to access the components of dref_complex , you should assign the same to field symbol
assing dref->* to <fs_any>.
"then u can use ASSIGN COMPONENT to get individual components
Regards
Arshad -
How to get return type as Table of Index by BINAR from Procedure using JDBC
Hi,
We have stored procedure which takes Varchar as input and rerurn muiltiple recored of type Table of index by BINARY
We created the procedure with in a package, its header part like below:
CREATE OR REPLACE PACKAGE emp_pkid_pkg
AS
TYPE r_emp IS RECORD ( employe_profile_id NUMBER
, client_profile_id VARCHAR2(240)
, email VARCHAR2(240)
, terms_acp VARCHAR2(1)
TYPE tp_emp_profile IS TABLE OF r_emp INDEX BY BINARY_INTEGER;
PROCEDURE er_employe_prov_profile ( e_inxid employe_provision_instance.inxid%TYPE
, e_emp_recs OUT tp_emp_profile
END emp_pkid_pkg;
This procedure has body part, wich has origial business logic like below.
CREATE OR REPLACE PACKAGE BODY emp_pkid_pkg
AS
PROCEDURE pr_customer_prov_profile ( e_inxid employe_provision_instance.inxid%TYPE
, e_emp_recs OUT tp_customer_provision_profile
IS
CURSOR c_emp_prov_instance ( c_guid employe_provision_instance.guid%TYPE )
etc ...
END emp_pkid_pkg;
We could execute the below script from oracle client tool and get the response.
DECLARE
e_cust emp_pkid_pkg.tp_emp_profile;
BEGIN
emp_pkid_pkg.er_employe_prov_profile ( 'ef45t6543y98'
, e_cust
FOR i in e_cust.FIRST..e_cust.LAST LOOP
DBMS_OUTPUT.PUT_LINE ( e_cust(i).employe_profile_id
||'#'|| e_cust(i).client_customer_id
||'#'|| e_cust(i).email
||'#'|| e_cust(i).term_acp);
END LOOP;
END;
We have requirement to get the results from procedure usind JDBC callable statement call.
We have tried to call the procedure via JDBC callable statement but it didn't work.
We have constructed it like the following. It was throwing error "java.sql.SQLException: invalid column type: emp_pkid_pkg.tp_emp_profile
CallableStatement cs2 = con.prepareCall("{call emp_pkid_pkg.er_employe_prov_profile(?,?)}");
cs2.registerOutParameter(2, OracleTypes.CURSOR, emp_pkid_pkg.tp_emp_profile);
cs2.setString(1,empId);
Not sure whether I am doing the logic correctly. But i tryed with diff type. Still am getting same error like above.
Please point me to the correct approach.
Thanks
Edited by: 921689 on 18-Mar-2012 17:20>
We have requirement to get the results from procedure usind JDBC callable statement call.
>
Can't be done - the reason has nothing to do with JDBC so you are in the wrong forum.
Repost in the PL/SQL forum and I can give you an example of what you have to do
PL/SQL
First the TYPEs you defined are PL/SQL types so can't be referenced outside PL/SQL; you need to define SQL types.
Second you will need to use a procedure that returns a REF CURSOR or is a PIPELINED procedure. Since your procedure doesn't fall into either category you can't use it with JDBC to do what you want.
If your query was a PIPELINED function then you could simply query it like it was a table. I have a PIPELINED function name 'get_emp' so this works.
select * from table(get_emp(30));Post in the PL/SQL forum and I can give you the code for the procedure. I'm not going to clutter up this forum with inappropriate material. -
How to use simple types for table column names ?
Hi,
can any one tell how to to use simple types for table column names?
It is required in internationalizing of webdynpro applications.
Regards,
RajeshHi,
1: define required column names in <SimpleType>
2:use the following code to get those values
3:bind 'text' property of Column headers to context attributes
4:take a context attribute 'Value' as type of <SimpleType>
5:set these values to context attributes
IWDAttributeInfo objAttrInfo=wdContext.getNodeInfo().getAttribute(IPrivate<ViewName>View.IContextElement.VALUE);
ISimpleTypeModifiable simple=objAttrInfo.getModifiableSimpleType();
Map m=simple.getEnumerationTexts();
Collection c=m.values();
Iterator it=c.iterator();
if(it.hasNext())
wdContext.currentContextElement.set<att1>(it.next().toString);
if(it.hasNext())
wdContext.currentContextElement.set<att2>(it.next().toString);
if(it.hasNext())
wdContext.currentContextElement.set<att3>(it.next().toString);
Regards
LakshmiNarayana -
How to define complex reconciliation rule
i have to do reconciliation with some complex rule but if i see reconciliation rule we can only define simple rule like userid = samAccountName. Please suggest how we can define complex rule.
thanks in adv.http://download.oracle.com/docs/cd/E14049_01/doc.9101/e14061/busrule.htm#BIBJEFCG
-
Hi,
I'm trying to define a new complex type in my .wsdl file of my bpel process project.
I want one of the elements in this complex type to be of the same type as an element defined in one of my partner link's WSDL.
How can I make this connection (what do I define as namespaces) from my .wsdl file to a partner link's wsdl file.
Thank you!!!Thanks Clemens!
I will try the first option.
This is my wsdl b - the wsdl I want to import types from :
<definitions
targetNamespace="http://Images/WebService"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:s0="http://Images/WebService"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<import namespace="http://Images/WebService" location="webServiceFlickr.wsdl"/>
<plnk:partnerLinkType name="webServiceFlickrHttpGet_PL">
<plnk:role name="webServiceFlickrHttpGet_Role">
<plnk:portType name="s0:webServiceFlickrHttpGet"/>
</plnk:role>
</plnk:partnerLinkType>
<plnk:partnerLinkType name="webServiceFlickrSoap_PL">
<plnk:role name="webServiceFlickrSoap_Role">
<plnk:portType name="s0:webServiceFlickrSoap"/>
</plnk:role>
</plnk:partnerLinkType>
<plnk:partnerLinkType name="webServiceFlickrHttpPost_PL">
<plnk:role name="webServiceFlickrHttpPost_Role">
<plnk:portType name="s0:webServiceFlickrHttpPost"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
and this is the beginning of wsdl a - the one I want to import the type into :
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="process10"
targetNamespace="http://xmlns.oracle.com/process10"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:client="http://xmlns.oracle.com/process10"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
<types>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/process10"
xmlns="http://www.w3.org/2001/XMLSchema">
I undestand I need to import the namespace of wsdl b , but can't figure out how,
What do I define instead of XXX ?
xmlns:n1="XXX">
<import namespace="XXX" schemaLocation="XXX"/>
Thank you !! -
How to change stored procedure with Table Valued Parameter
I am not sure how to change the normal stored procedure with Table Value Parameter.Do I have to create a separate Table or do I have to create a datatype. Can you please help me with this
ALTER PROCEDURE [dbo].[uspInsertorUpdateINF]
@dp_id char(32),
@dv_id char(32),
@em_number char(12),
@email varchar(50),
@emergency_relation char(32),
@option1 char(16),
@status char(20),
@em_id char(35),
@em_title varchar(64),
@date_hired datetime
AS
BEGIN
SET NOCOUNT ON;
MERGE [dbo].[em] AS [Targ]
USING (VALUES (@dp_id, @dv_id , @em_number, @email, @emergency_relation, @option1, @status, @em_id, @em_title, @date_hired))
AS [Sourc] (dp_id, dv_id, em_number, email, emergency_relation, option1, status, em_id, em_title, date_hired)
ON [Targ].em_id = [Sourc].em_id
WHEN MATCHED THEN
UPDATE
SET dp_id = [Sourc].dp_id,
dv_id = [Sourc].dv_id,
em_number = [Sourc].em_number,
email = [Sourc].email,
emergency_relation = [Sourc].emergency_relation,
option1 = [Sourc].option1,
status = [Sourc].status,
em_title = [Sourc].em_title,
date_hired = [Sourc].date_hired
WHEN NOT MATCHED BY TARGET THEN
INSERT (dp_id, dv_id, em_number, email, emergency_relation, option1, status, em_id, em_title,date_hired)
VALUES ([Sourc].dp_id, [Sourc].dv_id, [Sourc].em_number, [Sourc].email, [Sourc].emergency_relation, [Sourc].option1, [Sourc].status, [Sourc].em_id, [Sourc].em_title, [Sourc].date_hired);
END;It's not clear how you would change the procedure. But assuming that you want to replace the existing scalar parameters with tabular input, this is how you would do it. You first create a table type:
CREATE TYPE Insertor_type AS TABLE
(dp_id char(32),
dv_id char(32),
em_number char(12),
email varchar(50),
emergency_relation char(32),
option1 char(16),
status char(20),
em_id char(35),
em_title varchar(64),
date_hired datetime)
Then you change the procedure header:
ALTER PROCEDURE [dbo].[uspInsertorUpdateINF] @tvp Insertor_type READONLY AS
And finally you change the USING clause:
USING (SELECT dp_id, dv_id , em_number, email, emergency_relation, option1, status, em_id, em_title, date_hired
FROM @tvp) AS [Sourc] ON [Targ].em_id = [Sourc].em_id
The rest is fine as it is.
Erland Sommarskog, SQL Server MVP, [email protected] -
Complex types with single array type element, marshaling exception
For our JAXRPC web service, we have a complex type, as follows:
<xs:complexType name = "SomeFault">
<xs:sequence>
<xs:element name = "errorMessages" type="some:ErrorMessageWSType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name = "ErrorMessageWSType">
<xs:restriction base = "xs:NMTOKEN">
<xs:enumeration value = "INVALID_1"/>
<xs:enumeration value = "INVALID_2"/>
<xs:enumeration value = "INVALID_3"/>
</xs:restriction>
</xs:simpleType>
We are running into Marshaling exceptions on the server side when the response/fault complex type has a single array type field.
weblogic.wsee.codec.CodecException: Failed to encode
com.bea.xml.XmlException: failed to find a suitable binding type for use in marshalling object "[Lnamespace.type.ErrorMessageWSType;@693767e9". using schema type: t=SomeFault@http://namespace/SOME/v1 java type:namespace.type.ErrorMessageWSType[]
If I change SomeFault, by adding another element, the error goes away.
<xs:complexType name = "SomeFault">
<xs:sequence>
<xs:element name = "errorMessages" type="some:ErrorMessageWSType" maxOccurs="unbounded" />
<xs:element name = "dummyString" type="xsd:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
Am I doing something wrong during the wsdlc code generation or is this a known issue?
<wsdlc srcWsdl="${wsdl.dir}/${wsdl.file.name}"
destJwsDir="${gen.src.dir}/gen-src-jar"
destImplDir="${main.src.dir}"
packageName="${package.prefix}" type="JAXRPC">Any luck with this? I am running into the same error. Apparently, this is not an issue with Java binding, but when invoking remote EJBs, we run into this. I am running 10.1.3.1 and the error is:
<fault>
<bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
<part name="summary">
<summary>
com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB@e26dbf : Could not invoke 'getIdentityInfo'; nested exception is:
org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
</summary>
</part>
<part name="detail">
<detail>
org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
</detail>
</part>
</bindingFault>
</fault -
Returning complex types with arrays (Java / EJB via WSIF)
Hi all,
I'm writing some WSIF bindings for existing EJBs, and I've struck a bit of a problem. Basically I've got complex types that contain arrays, and while instances of these types can be passed to the EJBs, return variables typed similarly cause the following fault:
org.collaxa.thirdparty.apache.wsif.WSIFException: com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB@1a372e0 : Could not invoke 'concatString'; nested exception is:
org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ejbinterfacetest.StringReturnArray' is not compatible; nested exception is:
oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
at com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB.executeRequestResponseOperation(WSIFOperation_EJB.java:1305)
at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:431)
at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:416)
The Java class StringReturnArray is a serializable JavaBean with one property, a String[] called strings. The corresponding complexType (that works when used as a method parameter type) is stringReturnArrayType:
<complexType name="stringArrayType">
<sequence>
<element name="str" type="string" maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="stringReturnArrayType">
<sequence>
<element name="strings" type="tns:stringArrayType" />
</sequence>
</complexType>
and I've type mapped in the binding with
<format:typeMap typeName="typens:stringReturnArrayType" formatType="ejbinterfacetest.StringReturnArray" />
Anyone know why this would be? Is there any way I can get more information out of BPEL or OC4J regarding the fault? (I've already turned the BPEL domain logging to All)
Cheers,
Chris.Any luck with this? I am running into the same error. Apparently, this is not an issue with Java binding, but when invoking remote EJBs, we run into this. I am running 10.1.3.1 and the error is:
<fault>
<bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
<part name="summary">
<summary>
com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB@e26dbf : Could not invoke 'getIdentityInfo'; nested exception is:
org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
</summary>
</part>
<part name="detail">
<detail>
org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
</detail>
</part>
</bindingFault>
</fault
Maybe you are looking for
-
Javax.faces.el.ValueBinding in javax.faces.el has been deprecated
hi jdev experts, am using jdev 11.1.1.5.0 - adfbc-oracledb10g my compiler always. please see this warning. how can i ignore. may i know the reason of occurence warning. here? Warning(4,22): javax.faces.el.ValueBinding in javax.faces.el has been depr
-
Does 23" Apple Cinema Display support sAdobe Color Profile?
i was told the 23" Apple Cinema display does not support sAdobe color profile, can anyone confirm if does or not, thank.
-
Query on rendering the Human Tasks in the customized GUI application.
Hi All, In oracle11g BPEL, Is there any way to render the Human Tasks in the Customized GUI (Weblogic Portal) application rather that using the applications like "Oracle BPM WorkList"?. Does the Oracle11g BPEL supports this ?. My requirement is that,
-
Urgent - pls help - Problem while inserting binary file into Oracle DB
Hi, I am trying to insert binary files into a Blob column in a Oracle 10G table. The binary files would be uploaded by the web users and hence come as multipart request. I use apache commons upload streaming API to handle it. Finally i am getting a i
-
Populating a table in a function module through java
Hi, We have the following requirement.... 1.we have an RFC "z_hr_mantain_masterdata" which is used generically for updating different infotypes. 2.In this RFC we have a table "proposed_values" which expects fval, fname, infotype. 3.we have an iview w