How to map an large XML document to the XMLType with TopLink in JDev
Hello!
We need to map an XML document in the Java String to an XMLType column. If the XML document has less than 4000 characters, we have no problems by using the DirectToField mapping. However, once the XML document has more than 4000 characters, using the DirectToField mapping, we got the error: Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column
Then we have tried to use the "Type Conversion" mapping, to map it to the database type (Clob or NClob --oracle.toplink.oraclespecific). we got:
Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-00932: inconsistent datatypes: expected NUMBER got CLOB
Error Code: 932
Any suggestions?
Thanks in advance!
Thanks Matt! It works fine by using DirectToXMLTypeMapping.
However, to get it work is not smooth. In particularly, we use Jdev in our project and Jdev has not included this feature yet. Therefore, I had to use the TopLink Workbench to create the descriptor file and cut&paste to the description file that generated by JDev. And also xdb.jar has to be part of the classpath.
Then I come to an question -- how can we take some features that only provided by the TopLink Workbench into the Jdev environment without having to hack around?
Thanks,
s.c.
Similar Messages
-
Bulk Loader Program to load large xml document
I am looking for a bulk loader database program that will load a very large xml document. The simple bulk loader application available on the oracle site will not load this document due to its size which is approximately 20MG. Please advise asap. Thank you.
From the above document:
Storing XML Data Across Tables
Question
Can XML- SQL Utility store XML data across tables?
Answer
Currently XML-SQL Utility (XSU) can only store to a single table. It maps a canonical representation of an XML document into any table/view. But of course there is a way to store XML with the XSU across table. One can do this using XSLT to transform any document into multiple documents and insert them separately. Another way is to define views over multiple tables (object views if needed) and then do the inserts ... into the view. If the view is inherently non-updatable (because of complex joins, ...), then one can use INSTEAD-OF triggers over the views to do the inserts.
-- I've tried this, works fine. -
Large XML document performance
We are using XDB 9.2.0.4. I am seeing a severe performance degradation when attempting to extract larger XML documents from XDB (somewhere over 3M). Smaller documents appear to be working fine.
I have been reading in the forum that the problem I am running into is most likely related to the storage model being used. ie) There are several repeating elements within the schema.
I have added xdb:storeVarrayAsTable="true" statement to the schema and re-registered. I can see, based on user_nested_tables, that XDB appears to be storing the repeating elements as nested tables vs varrays.
The change to the storage model does not seem to have significantly changed the queries performance.
The schemas I am using can be found at http://www.sasked.gov.sk.ca/xsd/sl/1.x/SLMessage.xsd & http://www.sasked.gov.sk.ca/xsd/sl/1.x/SDSElements.xsd
The schema documentation can be found at http://www.sasked.gov.sk.ca/sds/xml/SchemaDocumentation/SLMessage.html
The element /SL_Message/SL_Event/SL_ObjectData/SL_EventObject is the primary repeating element
I am using a table with an XMLType column
CREATE TABLE XML_SL_MESSAGE
(XML_SL_MESSAGE_ID NUMBER(11) NOT NULL
,DTE_TIMESTAMP TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL
,ORIGINAL_XML_SL_MESSAGE_ID NUMBER(11)
,VALID_SL_MESSAGE_XML sys.XMLType
,INVALID_XML CLOB
,ERROR_MESSAGE VARCHAR2(4000)
) xmltype column valid_sl_message_xml XMLSCHEMA "http://www.sasked.gov.sk.ca/xsd/sl/1.x/SLMessage.xsd" element "SL_Message"
The SQL I am using is attempting to bring the XMLType back as a clob, the query seems to be intensive in both CPU and I/O. (looks like it is the getClobVal function)
select xsm.xml_sl_message_id
,xsm.dte_timestamp
,nvl(xsm.valid_sl_message_xml.getClobVal(),xsm.invalid_xml) as xml_clob
,xsm.error_message
,xsm.original_xml_sl_message_id
from xml_sl_message xsm
where xsm.dte_timestamp > sysdate 1
I guess what I am wondering is what are my options ? Changing the storage model ? Applying Indexes ?
On an unrelated topic, Are there many differences in XDB 9.2.0.5 and 9.2.0.4 ? (I dont believe 10g will be an option here yet)
Thanx in advance
TrentI have applied the 9.2.0.5.0 patches and created the relational table with the following attributes:
CREATE TABLE XML_SL_MESSAGE
(XML_SL_MESSAGE_ID NUMBER(11) NOT NULL
,DTE_TIMESTAMP TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL
,PSE_SYS_USR_ID NUMBER(11) NOT NULL
,ORIGINAL_XML_SL_MESSAGE_ID NUMBER(11)
,VALID_SL_MESSAGE_XML sys.XMLType
,INVALID_XML CLOB
,ERROR_MESSAGE VARCHAR2(4000)
xmltype column valid_sl_message_xml
STORE AS OBJECT RELATIONAL
XMLSCHEMA "http://www.sasked.gov.sk.ca/xsd/sl/1.x/SLMessage.xsd" ELEMENT "SL_Message"
-- 1:1 ----------------------
varray valid_sl_message_xml."XMLDATA"."SL_Event"."SL_ObjectData"."SL_EventObject"
store as table SL_EVENTOBJECT2_TB(
(constraint SL_EVENTOBJECT2_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 2:2 ----------------------
varray "SchoolTerm"
store as table SCHOOLTERM2_TB(
(constraint SCHOOLTERM2_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 3:2 ----------------------
varray "SchoolClass"
store as table SCHOOLCLASS3_TB(
(constraint SCHOOLCLASS3_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 6:2 ----------------------
varray "StudentCourseHistory"
store as table STUDENTCOURSEHISTORY6_TB(
(constraint STUDENTCOURSEHISTORY6_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 7:2 ----------------------
varray "StudentSupplementalMark"
store as table STUDENTSUPPLEMENTALMARK7_TB(
(constraint STUDENTSUPPLEMENTALMARK7_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 8:2 ----------------------
varray "StudentClassMark"
store as table STUDENTCLASSMARK8_TB(
(constraint STUDENTCLASSMARK8_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 9:2 ----------------------
varray "StudentExamRegistration"
store as table STUDENTEXAMREGISTRATION9_TB(
(constraint STUDENTEXAMREGISTRATION9_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 10:2 ----------------------
varray "StudentClassEnrollment"
store as table STUDENTCLASSENROLLMENT10_TB(
(constraint STUDENTCLASSENROLLMENT10_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 11:2 ----------------------
varray "StudentPersonal"
store as table STUDENTPERSONAL11_TB(
(constraint STUDENTPERSONAL11_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 18:2 ----------------------
varray "StudentProgramEnrollment"
store as table STUDENTPROGRAMENROLLMENT18_TB(
(constraint STUDENTPROGRAMENROLLMENT18_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 19:2 ----------------------
varray "StudentSchoolEnrollment"
store as table STUDENTSCHOOLENROLLMENT19_TB(
(constraint STUDENTSCHOOLENROLLMENT19_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 26:1 ----------------------
varray valid_sl_message_xml."XMLDATA"."SL_Response"."SL_ObjectData"."SL_EventObject"
store as table SL_EVENTOBJECT26_TB(
(constraint SL_EVENTOBJECT26_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 27:2 ----------------------
varray "SchoolTerm"
store as table SCHOOLTERM27_TB(
(constraint SCHOOLTERM27_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 28:2 ----------------------
varray "SchoolClass"
store as table SCHOOLCLASS28_TB(
(constraint SCHOOLCLASS28_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 31:2 ----------------------
varray "StudentProgramEnrollment"
store as table STUDENTPROGRAMENROLLMENT31_TB(
(constraint STUDENTPROGRAMENROLLMENT31_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 32:2 ----------------------
varray "StudentExamRegistration"
store as table STUDENTEXAMREGISTRATION32_TB(
(constraint STUDENTEXAMREGISTRATION32_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 33:2 ----------------------
varray "StudentClassEnrollment"
store as table STUDENTCLASSENROLLMENT33_TB(
(constraint STUDENTCLASSENROLLMENT33_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 34:2 ----------------------
varray "StudentPersonal"
store as table STUDENTPERSONAL34_TB(
(constraint STUDENTPERSONAL34_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 41:2 ----------------------
varray "StudentSchoolEnrollment"
store as table STUDENTSCHOOLENROLLMENT41_TB(
(constraint STUDENTSCHOOLENROLLMENT41_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 48:2 ----------------------
varray "StudentClassMark"
store as table STUDENTCLASSMARK48_TB(
(constraint STUDENTCLASSMARK48_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 49:2 ----------------------
varray "StudentCourseHistory"
store as table STUDENTCOURSEHISTORY49_TB(
(constraint STUDENTCOURSEHISTORY49_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 50:2 ----------------------
varray "StudentSupplementalMark"
store as table STUDENTSUPPLEMENTALMARK50_TB(
(constraint STUDENTSUPPLEMENTALMARK50_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 51:1 ----------------------
varray valid_sl_message_xml."XMLDATA"."SL_Response"."SL_Ack"."SL_Error"
store as table SL_ERROR51_TB(
(constraint SL_ERROR51_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
-- 52:1 ----------------------
varray valid_sl_message_xml."XMLDATA"."SL_Request"."SL_Query"."SL_QueryObject"
store as table SL_QUERYOBJECT52_TB(
(constraint SL_QUERYOBJECT52_PK primary key (NESTED_TABLE_ID,ARRAY_INDEX))
tablespace data
ALTER TABLE XML_SL_MESSAGE
ADD (CONSTRAINT XML_SL_MESSAGE_PK PRIMARY KEY
(XML_SL_MESSAGE_ID))
ALTER TABLE XML_SL_MESSAGE
ADD (CONSTRAINT XMLSLMSG_ORIGINAL_XMLSLMSG_UK UNIQUE
(ORIGINAL_XML_SL_MESSAGE_ID))
ALTER TABLE XML_SL_MESSAGE ADD (CONSTRAINT
XMLSLMSG_SYSUSR_FK FOREIGN KEY
(PSE_SYS_USR_ID) REFERENCES PSE_SYS_USR
(PSE_SYS_USR_ID))
ALTER TABLE XML_SL_MESSAGE ADD (CONSTRAINT
XMLSLMSG_ORIGINAL_XMLSLMSG_FK FOREIGN KEY
(ORIGINAL_XML_SL_MESSAGE_ID) REFERENCES XML_SL_MESSAGE
(XML_SL_MESSAGE_ID))
-- Create a unique index for the XML Message id
CREATE UNIQUE INDEX XMLSLMSG_MSGID_UNIQUE ON XML_SL_MESSAGE
((substr(extractValue(valid_sl_message_xml,'//SL_MsgId'),1,255)))
tablespace indx
COMPUTE STATISTICS
Here is the nested table structure of the XMLType table created during the schema registration:
select level
,parent_table_column
from user_nested_tables
connect by prior table_name = parent_table_name
start with parent_table_name = 'SL_Message4724_TAB'
LEVEL PARENT_TABLE_COLUMN
1 "XMLDATA"."SL_Event"."SL_ObjectData"."SL_EventObject"
2 SchoolTerm
2 StudentSchoolEnrollment
3 "StudentInfo"."Name"
3 "StudentInfo"."Demographics"."CountryOfCitizenship"
3 "StudentInfo"."StudentAddress"
3 "StudentInfo"."PhoneNumber"
3 "StudentInfo"."Demographics"."Language"
3 "StudentInfo"."Email"
2 SchoolClass
3 "ClassInfo"."DeptAssignedCourseId"
3 "ClassInfo"."EducatorCertificateNumber"
2 StudentProgramEnrollment
2 StudentClassEnrollment
2 StudentClassMark
2 StudentCourseHistory
2 StudentSupplementalMark
2 StudentExamRegistration
2 StudentPersonal
3 "StudentInfo"."Name"
3 "StudentInfo"."Email"
3 "StudentInfo"."Demographics"."CountryOfCitizenship"
3 "StudentInfo"."StudentAddress"
3 "StudentInfo"."PhoneNumber"
3 "StudentInfo"."Demographics"."Language"
1 "XMLDATA"."SL_Request"."SL_Query"."SL_QueryObject"
1 "XMLDATA"."SL_Response"."SL_ObjectData"."SL_EventObject"
2 SchoolTerm
2 SchoolClass
3 "ClassInfo"."DeptAssignedCourseId"
3 "ClassInfo"."EducatorCertificateNumber"
2 StudentProgramEnrollment
2 StudentClassEnrollment
2 StudentClassMark
2 StudentCourseHistory
2 StudentSupplementalMark
2 StudentExamRegistration
2 StudentPersonal
3 "StudentInfo"."Name"
3 "StudentInfo"."Email"
3 "StudentInfo"."Demographics"."Language"
3 "StudentInfo"."PhoneNumber"
3 "StudentInfo"."StudentAddress"
3 "StudentInfo"."Demographics"."CountryOfCitizenship"
2 StudentSchoolEnrollment
3 "StudentInfo"."Name"
3 "StudentInfo"."Demographics"."Language"
3 "StudentInfo"."PhoneNumber"
3 "StudentInfo"."StudentAddress"
3 "StudentInfo"."Demographics"."CountryOfCitizenship"
3 "StudentInfo"."Email"
1 "XMLDATA"."SL_Response"."SL_Ack"."SL_Error"
52 rows selected.
When I attempt to insert to previously valid XML documents I get a core dump Here are the insert statements:
insert into xml_sl_message (
xml_sl_message_id, dte_timestamp, pse_sys_usr_id, original_xml_sl_message_id, valid_sl_message_xml, invalid_xml,error_message
select xml_sl_message_id, dte_timestamp, pse_sys_usr_id, original_xml_sl_message_id, xmltype(valid_sl_message_clob), invalid_xml,error_message
from xml_sl_message_temp where xml_sl_message_id in (5154,5155)
Here are the details on the exception:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production
ORACLE_HOME = /opt/app/oracle/product/9.2.0
System name: SunOS
Node name: *****
Release: 5.8
Version: Generic_117000-01
Machine: sun4u
Instance name: EDDSDS
Redo thread mounted by this instance: 1
Oracle process number: 76
Unix process pid: 11460, image: oracle@***** (TNS V1-V3)
*** 2004-06-22 09:24:34.603
*** SESSION ID:(29.159) 2004-06-22 09:24:34.602
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x20, PC: [0x101e41830, 0000000101E41830]
*** 2004-06-22 09:24:34.606
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [0000000101E41830] [SIGSEGV] [Address not mapped to object] [0x000000020] [] []
Current SQL statement for this session:
insert into xml_sl_message (
xml_sl_message_id, dte_timestamp, pse_sys_usr_id, original_xml_sl_message_id, valid_sl_message_xml, invalid_xml,error_message
select xml_sl_message_id, dte_timestamp, pse_sys_usr_id, original_xml_sl_message_id, xmltype(valid_sl_message_clob), invalid_xml,error_message
from xml_sl_message_temp where xml_sl_message_id in (5154,5155)
I have tried a couple different storage sections (with different levels of nesting) and still the same problem ..
Is there something wrong with my storage section ?
What is the "return as LOCATOR" clause for? -
Date insertion from large XML document (clob) into relation table very slow
Hi Everybody!
I'm working with Oracle 9.2.0.5 on Microsoft Windows Server 2003 Enterprise Edition.
The server (a test server) is a Pentium 4 2.8 GHz, 1GB of RAM.
I use a procedure called PARITOP_TRAITERXMLRESULTMASSE to insert the data contained in the pXMLDOC clob parameter in the table pTABLENAME. (You can see the format of the XML document below). The first step on this procedure is to verify that the XML document is not empty. If not, the procedure needs to add a node in the document, in every <ROW> tag. This added node is named âRST_IDâ. Itâs the foreign key of each record. I can retrieve the value of each <RST_ID> node in an other table in which the data has been previously added (by the calling procedure). When each of the <ROW> elements has been treated, the PARITOP_INSERTXML procedure is called. This procedure uses DBMS_XMLSAVE.INSERTXML to insert the data contained in the XML document in the specified table.
(Below, you can see the code of my procedures.)
With this information, can you tell me why this treatment is very very very slow with a large XML document and how I can improve it?
Thank you for your help!
Anne-Marie
CREATE OR REPLACE PROCEDURE "PARITOP_TRAITERXMLRESULTMASSE" (
pPRC_ID IN PARITOP_PARC.PRC_ID%TYPE,
pRST_MONDE IN PARITOP_RESULTAT.RST_MONDE%TYPE,
pXMLDOC IN CLOB,
pTABLENAME IN VARCHAR2)
AS
Objectif :Insérer le contenu du XML passé en paramètre (pXMLDOC) à la table passée en paramètre (pTABLENAME)
La table passée en paramètre doit être une table ayant comme clé étrangère le champs "RST_ID" .
(Le noeud RST_ID est donc ajouté à tous les document XML. Ce rst_id est
déterminé à partir de la table PARITOP_RESULTAT grâce à pPRC_ID et
pRstMonde fournis en paramètre)
result_doc CLOB;
XMLDOMDOC XDB.DBMS_XMLDOM.DOMDOCUMENT;
NODE_ROWSET DBMS_XMLDOM.DOMNODE;
NODE_ROW DBMS_XMLDOM.DOMNODE;
vUE_ID PARITOP_RESULTAT.UE_ID%TYPE;
vRST_ID PARITOP_RESULTAT.RST_ID%TYPE;
nodeList DBMS_XMLDOM.DOMNODELIST;
BEGIN
BEGIN
vUE_ID := 0;
vRST_ID := 0;
XMLDOMDOC := DBMS_XMLDOM.NEWDOMDOCUMENT(pXMLDOC);
IF NOT GESTXML_PKG.FN_PARITOP_DOCUMENT_IS_NULL(XMLDOMDOC) THEN
NODE_ROWSET := DBMS_XMLDOM.item(DBMS_XMLDOM.GETCHILDNODES (DBMS_XMLDOM.MAKENODE(XMLDOMDOC)),0);
for i in 0..dbms_xmldom.getLength(DBMS_XMLDOM.getchildnodes(NODE_ROWSET))-1 loop
NODE_ROW := DBMS_XMLDOM.ITEM(DBMS_XMLDOM.GETCHILDNODES(NODE_ROWSET), i) ;
nodeList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(DBMS_XMLDOM.makeelement(NODE_ROW) , 'UE_ID');
IF vUE_ID <> DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0))) THEN
vUE_ID := DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0)));
--on ramasse le rst_id
SELECT RST_ID INTO vRST_ID
FROM PARITOP_RESULTAT RST
WHERE RST.PRC_ID = pPRC_ID
AND RST.UE_ID = vUE_ID
AND RST.RST_MONDE = pRST_MONDE
AND RST_A_SUPPRIMER = 0;
END IF;
GESTXML_PKG.PARITOP_ADDNODETOROW(XMLDOMDOC, NODE_ROW, 'RST_ID', vRST_ID);
end loop;
RESULT_DOC := ' '; --Ã garder, pour ne pas que ca fasse d'erreur lors du WriteToClob.
dbms_xmldom.writeToClob(DBMS_XMLDOM.MAKENODE(XMLDOMDOC), RESULT_DOC);
--Insertion du document XML dans la table "tableName"
GESTXML_PKG.PARITOP_INSERTXML(RESULT_DOC, pTABLENAME);
DBMS_XMLDOM.FREEDOCUMENT( XMLDOMDOC);
end if;
EXCEPTION
[â¦exception treatementâ¦]
END;
END;
The format of a XML clob is :
<ROWSET>
<ROW>
<PRC_ID>193</PRC_ID>
<UE_ID>8781</UE_ID>
<VEN_ID>6223</VEN_ID>
<RST_MONDE>0</RST_MONDE>
<CMP_SELMAN>0</CMP_SELMAN>
<CMP_INDICESELECTION>92.307692307692307</CMP_INDICESELECTION>
<CMP_PVRES>94900</CMP_PVRES>
<CMP_PVAJUSTE>72678.017699115066</CMP_PVAJUSTE>
<CMP_PVAJUSTEMIN>72678.017699115095</CMP_PVAJUSTEMIN>
<CMP_PVAJUSTEMAX>72678.017699115037</CMP_PVAJUSTEMAX>
<CMP_PV>148000</CMP_PV>
<CMP_VALROLE>129400</CMP_VALROLE>
<CMP_PVRESECART>4790</CMP_PVRESECART>
<CMP_PVRHAB>101778.01769911509</CMP_PVRHAB>
<CMP_UTILISE>1</CMP_UTILISE>
<CMP_TVM>1</CMP_TVM>
<CMP_PVA>148000</CMP_PVA>
</ROW>
<ROW>
<PRC_ID>193</PRC_ID>
<UE_ID>8781</UE_ID>
<VEN_ID>6235</VEN_ID>
<RST_MONDE>0</RST_MONDE>
<CMP_SELMAN>0</CMP_SELMAN>
<CMP_INDICESELECTION>76.92307692307692</CMP_INDICESELECTION>
<CMP_PVRES>117800</CMP_PVRES>
<CMP_PVAJUSTE>118080</CMP_PVAJUSTE>
<CMP_PVAJUSTEMIN>118080</CMP_PVAJUSTEMIN>
<CMP_PVAJUSTEMAX>118080</CMP_PVAJUSTEMAX>
<CMP_PV>172000</CMP_PV>
<CMP_VALROLE>134800</CMP_VALROLE>
<CMP_PVRESECART>0</CMP_PVRESECART>
<CMP_PVRHAB>147180</CMP_PVRHAB>
<CMP_UTILISE>1</CMP_UTILISE>
<CMP_TVM>1</CMP_TVM>
<CMP_PVA>172000</CMP_PVA>
</ROW>
</ROWSET>
PARITOP_COMPARABLE TABLE :
RST_ID NUMBER(10) NOT NULL,
VEN_ID NUMBER(10) NOT NULL,
CMP_SELMAN NUMBER(1) NOT NULL,
CMP_UTILISE NUMBER(1) NOT NULL,
CMP_INDICESELECTION FLOAT(53) NOT NULL,
CMP_PVRES FLOAT(53) NULL,
CMP_PVAJUSTE FLOAT(53) NULL,
CMP_PVRHAB FLOAT(53) NULL,
CMP_TVM FLOAT(53) NULL
ROCEDURE PARITOP_INSERTXML (xmlDoc IN clob, tableName IN VARCHAR2)
AS
insCtx DBMS_XMLSave.ctxType;
rowss number;
BEGIN
--permet d'insérer les champs du XML dans la table passée en paramètre.
--il suffit que les champs XML aient le même nom que les champs de la table
BEGIN
insCtx := DBMS_XMLSave.newContext(tableName); -- get context handle
DBMS_XMLSAVE.SETDATEFORMAT( insCtx, 'yyyy-MM-dd HH:mm:ss');--attention, case sensitive
DBMS_XMLSAVE.setIgnoreCase(insCtx, 1);
rowss := DBMS_XMLSAVE.INSERTXML(insCtx , xmlDoc);
DBMS_XMLSave.closeContext(insCtx);
EXCEPTION
[â¦]
END;
END;
PROCEDURE PARITOP_ADDNODETOROW (
XMLDOMDOC DBMS_XMLDOM.DOMDOCUMENT,
NODE_ROW dbms_xmldom.DOMNode,
NOM_NOEUD VARCHAR2,
VALEUR_NOEUD VARCHAR2)
AS
--PERMET D'AJOUTER UN NOEUD AVEC 1 SEULE VALEUR DANS une ROW D'UN XML.
--UTILE SURTOUT POUR LES CLÃS ÃTRANGÃRES
domElemAInserer DBMS_XMLDOM.DOMELEMENT;
NODE dbms_xmldom.DOMNode;
NODE_TMP dbms_xmldom.DOMNode;
BEGIN
domElemAInserer := DBMS_XMLDOM.createElement(XMLDOMDOC, NOM_NOEUD) ;
NODE := DBMS_XMLDOM.MAKENODE(domElemAInserer); --cast
NODE := DBMS_XMLDOM.APPENDCHILD(NODE_ROW,NODE);
NODE_TMP := DBMS_XMLDOM.MAKENODE(DBMS_XMLDOM.CREATETEXTNODE(XMLDOMDOC, VALEUR_NOEUD ) );
NODE := DBMS_XMLDOM.APPENDCHILD(NODE,NODE_TMP );
END;Hi Everybody!
I'm working with Oracle 9.2.0.5 on Microsoft Windows Server 2003 Enterprise Edition.
The server (a test server) is a Pentium 4 2.8 GHz, 1GB of RAM.
I use a procedure called PARITOP_TRAITERXMLRESULTMASSE to insert the data contained in the pXMLDOC clob parameter in the table pTABLENAME. (You can see the format of the XML document below). The first step on this procedure is to verify that the XML document is not empty. If not, the procedure needs to add a node in the document, in every <ROW> tag. This added node is named âRST_IDâ. Itâs the foreign key of each record. I can retrieve the value of each <RST_ID> node in an other table in which the data has been previously added (by the calling procedure). When each of the <ROW> elements has been treated, the PARITOP_INSERTXML procedure is called. This procedure uses DBMS_XMLSAVE.INSERTXML to insert the data contained in the XML document in the specified table.
(Below, you can see the code of my procedures.)
With this information, can you tell me why this treatment is very very very slow with a large XML document and how I can improve it?
Thank you for your help!
Anne-Marie
CREATE OR REPLACE PROCEDURE "PARITOP_TRAITERXMLRESULTMASSE" (
pPRC_ID IN PARITOP_PARC.PRC_ID%TYPE,
pRST_MONDE IN PARITOP_RESULTAT.RST_MONDE%TYPE,
pXMLDOC IN CLOB,
pTABLENAME IN VARCHAR2)
AS
Objectif :Insérer le contenu du XML passé en paramètre (pXMLDOC) à la table passée en paramètre (pTABLENAME)
La table passée en paramètre doit être une table ayant comme clé étrangère le champs "RST_ID" .
(Le noeud RST_ID est donc ajouté à tous les document XML. Ce rst_id est
déterminé à partir de la table PARITOP_RESULTAT grâce à pPRC_ID et
pRstMonde fournis en paramètre)
result_doc CLOB;
XMLDOMDOC XDB.DBMS_XMLDOM.DOMDOCUMENT;
NODE_ROWSET DBMS_XMLDOM.DOMNODE;
NODE_ROW DBMS_XMLDOM.DOMNODE;
vUE_ID PARITOP_RESULTAT.UE_ID%TYPE;
vRST_ID PARITOP_RESULTAT.RST_ID%TYPE;
nodeList DBMS_XMLDOM.DOMNODELIST;
BEGIN
BEGIN
vUE_ID := 0;
vRST_ID := 0;
XMLDOMDOC := DBMS_XMLDOM.NEWDOMDOCUMENT(pXMLDOC);
IF NOT GESTXML_PKG.FN_PARITOP_DOCUMENT_IS_NULL(XMLDOMDOC) THEN
NODE_ROWSET := DBMS_XMLDOM.item(DBMS_XMLDOM.GETCHILDNODES (DBMS_XMLDOM.MAKENODE(XMLDOMDOC)),0);
for i in 0..dbms_xmldom.getLength(DBMS_XMLDOM.getchildnodes(NODE_ROWSET))-1 loop
NODE_ROW := DBMS_XMLDOM.ITEM(DBMS_XMLDOM.GETCHILDNODES(NODE_ROWSET), i) ;
nodeList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(DBMS_XMLDOM.makeelement(NODE_ROW) , 'UE_ID');
IF vUE_ID <> DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0))) THEN
vUE_ID := DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0)));
--on ramasse le rst_id
SELECT RST_ID INTO vRST_ID
FROM PARITOP_RESULTAT RST
WHERE RST.PRC_ID = pPRC_ID
AND RST.UE_ID = vUE_ID
AND RST.RST_MONDE = pRST_MONDE
AND RST_A_SUPPRIMER = 0;
END IF;
GESTXML_PKG.PARITOP_ADDNODETOROW(XMLDOMDOC, NODE_ROW, 'RST_ID', vRST_ID);
end loop;
RESULT_DOC := ' '; --Ã garder, pour ne pas que ca fasse d'erreur lors du WriteToClob.
dbms_xmldom.writeToClob(DBMS_XMLDOM.MAKENODE(XMLDOMDOC), RESULT_DOC);
--Insertion du document XML dans la table "tableName"
GESTXML_PKG.PARITOP_INSERTXML(RESULT_DOC, pTABLENAME);
DBMS_XMLDOM.FREEDOCUMENT( XMLDOMDOC);
end if;
EXCEPTION
[â¦exception treatementâ¦]
END;
END;
The format of a XML clob is :
<ROWSET>
<ROW>
<PRC_ID>193</PRC_ID>
<UE_ID>8781</UE_ID>
<VEN_ID>6223</VEN_ID>
<RST_MONDE>0</RST_MONDE>
<CMP_SELMAN>0</CMP_SELMAN>
<CMP_INDICESELECTION>92.307692307692307</CMP_INDICESELECTION>
<CMP_PVRES>94900</CMP_PVRES>
<CMP_PVAJUSTE>72678.017699115066</CMP_PVAJUSTE>
<CMP_PVAJUSTEMIN>72678.017699115095</CMP_PVAJUSTEMIN>
<CMP_PVAJUSTEMAX>72678.017699115037</CMP_PVAJUSTEMAX>
<CMP_PV>148000</CMP_PV>
<CMP_VALROLE>129400</CMP_VALROLE>
<CMP_PVRESECART>4790</CMP_PVRESECART>
<CMP_PVRHAB>101778.01769911509</CMP_PVRHAB>
<CMP_UTILISE>1</CMP_UTILISE>
<CMP_TVM>1</CMP_TVM>
<CMP_PVA>148000</CMP_PVA>
</ROW>
<ROW>
<PRC_ID>193</PRC_ID>
<UE_ID>8781</UE_ID>
<VEN_ID>6235</VEN_ID>
<RST_MONDE>0</RST_MONDE>
<CMP_SELMAN>0</CMP_SELMAN>
<CMP_INDICESELECTION>76.92307692307692</CMP_INDICESELECTION>
<CMP_PVRES>117800</CMP_PVRES>
<CMP_PVAJUSTE>118080</CMP_PVAJUSTE>
<CMP_PVAJUSTEMIN>118080</CMP_PVAJUSTEMIN>
<CMP_PVAJUSTEMAX>118080</CMP_PVAJUSTEMAX>
<CMP_PV>172000</CMP_PV>
<CMP_VALROLE>134800</CMP_VALROLE>
<CMP_PVRESECART>0</CMP_PVRESECART>
<CMP_PVRHAB>147180</CMP_PVRHAB>
<CMP_UTILISE>1</CMP_UTILISE>
<CMP_TVM>1</CMP_TVM>
<CMP_PVA>172000</CMP_PVA>
</ROW>
</ROWSET>
PARITOP_COMPARABLE TABLE :
RST_ID NUMBER(10) NOT NULL,
VEN_ID NUMBER(10) NOT NULL,
CMP_SELMAN NUMBER(1) NOT NULL,
CMP_UTILISE NUMBER(1) NOT NULL,
CMP_INDICESELECTION FLOAT(53) NOT NULL,
CMP_PVRES FLOAT(53) NULL,
CMP_PVAJUSTE FLOAT(53) NULL,
CMP_PVRHAB FLOAT(53) NULL,
CMP_TVM FLOAT(53) NULL
ROCEDURE PARITOP_INSERTXML (xmlDoc IN clob, tableName IN VARCHAR2)
AS
insCtx DBMS_XMLSave.ctxType;
rowss number;
BEGIN
--permet d'insérer les champs du XML dans la table passée en paramètre.
--il suffit que les champs XML aient le même nom que les champs de la table
BEGIN
insCtx := DBMS_XMLSave.newContext(tableName); -- get context handle
DBMS_XMLSAVE.SETDATEFORMAT( insCtx, 'yyyy-MM-dd HH:mm:ss');--attention, case sensitive
DBMS_XMLSAVE.setIgnoreCase(insCtx, 1);
rowss := DBMS_XMLSAVE.INSERTXML(insCtx , xmlDoc);
DBMS_XMLSave.closeContext(insCtx);
EXCEPTION
[â¦]
END;
END;
PROCEDURE PARITOP_ADDNODETOROW (
XMLDOMDOC DBMS_XMLDOM.DOMDOCUMENT,
NODE_ROW dbms_xmldom.DOMNode,
NOM_NOEUD VARCHAR2,
VALEUR_NOEUD VARCHAR2)
AS
--PERMET D'AJOUTER UN NOEUD AVEC 1 SEULE VALEUR DANS une ROW D'UN XML.
--UTILE SURTOUT POUR LES CLÃS ÃTRANGÃRES
domElemAInserer DBMS_XMLDOM.DOMELEMENT;
NODE dbms_xmldom.DOMNode;
NODE_TMP dbms_xmldom.DOMNode;
BEGIN
domElemAInserer := DBMS_XMLDOM.createElement(XMLDOMDOC, NOM_NOEUD) ;
NODE := DBMS_XMLDOM.MAKENODE(domElemAInserer); --cast
NODE := DBMS_XMLDOM.APPENDCHILD(NODE_ROW,NODE);
NODE_TMP := DBMS_XMLDOM.MAKENODE(DBMS_XMLDOM.CREATETEXTNODE(XMLDOMDOC, VALEUR_NOEUD ) );
NODE := DBMS_XMLDOM.APPENDCHILD(NODE,NODE_TMP );
END; -
XMLTYPE as CLOB storage "inserting large xml document in xml type column"
Hi All,
i have a table containing an xml datatype(non schema based)
i would like to insert a large xml document in it
but an exception is thrown-->"string literal too long"
i tried to use bind variables as a solution"prepared statements as i write in java"
but it didn't work....as xml document is large
when i tried to change the column type to CLOB,it worked but without xml validataion,
although the xml type is mapped to a CLOB in storage, xml type couldn't insert the document
if anyone have a solution plz tell,i needed it urgently
thanks,in advance :-)thx it was very useful :-)
but i am not having any success getting the following statement working using a JDBC connection pool rather than a hard coded URL connection
tempClob = CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);
it works with:
"jdbc:oracle:thin:@server:port:dbname"
Does NOT work with:
datasource.getConnection()
if anyone colud help... -
How do I parse a XML document?
Hello
I have a problem parsing a XML-document like the one below: Can anyone help me with a code example or something to get the tag "<Name>" out so that I get the string "Example5" and "Example3" out.
Thnx for any help!
Jimmy
The XML file looks like this (but without the line in the beginning of each row):
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) -->
<!DOCTYPE ThisExample SYSTEM "C:/example.dtd">
<?xml-stylesheet type="text/xsl" href="first.xslt"?>
<ThisExample>
____<Product>
________<Product_number>no1</Product_number>
________<Number>number1</Number>
____</Product>
____<Product>
________<Product_number>no2</Product_number>
________<Number>number2</Number>
____</Product>
____<Group>
________<Type>EX1</Type>
________<ProductVersionAllowed>Y</ProductVersionAllowed>
________<Preprocess>precmd.csh</Preprocess>
________<Postprocess>echo Finished</Postprocess>
________<Document>
____________<Name>Example1</Name>
____________<Product_number>no1</Product_number>
____________<Ticked_by_default>Y</Ticked_by_default>
________</Document>
________<Document>
____________<Name>Example2</Name>
____________<Product_number>no1</Product_number>
____________<Ticked_by_default>Y</Ticked_by_default>
________</Document>
________<Document>
____________<Name>Example3</Name>
____________<Product_number>no1</Product_number>
____________<Ticked_by_default>Y</Ticked_by_default>
________</Document>
____</Group>
____<Group>
________<Type>EX2</Type>
________<ProductVersionAllowed>N</ProductVersionAllowed>
________<Preprocess>precmd.csh</Preprocess>
________<Postprocess>echo Finished</Postprocess>
________<Document>
____________<Name>Example4</Name>
____________<Product_number>no2</Product_number>
____________<Ticked_by_default>Y</Ticked_by_default>
________</Document>
________<Document>
____________<Name>Example5</Name>
____________<Product_number>no2</Product_number>
____________<Ticked_by_default>Y</Ticked_by_default>
________</Document>
____</Group>
</ThisExample>Thnx :O)
Now it worx!
Just one more thing. Can I get the number of elements there is in a tag? I.e. how many "Document"'s there are in 1 "Group"? I need this because I have too loop through a "Group" and print the name of every "Document".
At the moment I'm doing it like below, but that is not a nice solution, and it realy does not work that well:
Jimmy
int i = 1;
do
node = org.apache.xpath.XPathAPI.selectSingleNode(doc, "/PosttoolControl/Group[position()=" + i + "]/Type");
if (node.getFirstChild().getNodeValue() != null)
type = node.getFirstChild().getNodeValue();
PostToolDocGroupeComboBox.addItem(type);
i++;
} while (node.getFirstChild().getNodeValue() != null); -
Hi everyone again :) Just sitting here trying to load a large XML document (it's ~13Mb). I know that's a massive XML document, but that's the way it is. The problem that I am having is that when I try to load the document I get an out of memory exception.
Frankly, I'm not surprised, but is there a remedy? Any thoughts/ideas/solutions would be greatly appreciated. :)
BenSounds like you are using DOM. The DOM parser you are using must be loading the whole Document tree right away. DOM really eats up memory. There are two possible solutions:
1. Look into using a SAX parser. I don't know what you are doing with the xml, so I can't say whether or not that will work for you.
2. Configure the DOM parser to defer loading nodes until they are requested, or if that option is not available with your parser, get a parser that will defer node loading.
If option 2 sounds like what you need, then I suggest looking into the Apache Xerces parser. I am pretty sure it defers loading. You shouldn't have to change your code to work with the Xerces parser, you just have to make sure you set the proper system properties so that Java will automatically use the Xerces parser. -
How can i send a XML document object over the JMS wire
HI,
does anybody has anyidea about sending the XML Document over the JMS and receiving
it n the other side..
regards,
Akhil
Is this the full stack trace?
Akhil Nagpal wrote:
> HI ,
> Sorry the excepiotn is of deserialization...this is the stack trace...mistake...
>
> weblogic.jms.common.JMSException: Error deserializing object
> at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:140)
> at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:143)
> at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
> at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
> at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
> at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
> ----------- Linked Exception -----------
> weblogic.jms.common.JMSException: Error deserializing object
> at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:140)
> at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:143)
> at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
> at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
> at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
> at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>
>
> Akhil
>
>
> "Akhil Nagpal" <[email protected]> wrote:
>
>>HI,
>> Actually i have created my own class which implements serializable.
>>I set the
>>object of this class in the ObjectMessage and send it across. Sometime
>>i have
>>to send some vector,sometimes string and sometime a XML document. So
>>i can set
>>these type of objects in my custom serializable object and send it. For
>>sending
>>XML , either i can send it as a string or as u said as Document object.
>>But i
>>want to do send it as a Document object. So i have created a an object
>>of "org.jdom.Document"
>>which implement serializable and setting this object into my custom object
>>and
>>sending this custom object in the objectmessage. But then weblogic throws
>>some
>>exceptions which has nothing to do with serialization.I am printing the
>>exception
>>below. (without the object of org.jdom.Document this custom object reaches
>>safely
>>and happily:))...this exception is something related to transactions.....can
>>you
>>or anybody tell me what could be the reason..
>>I am not able to think why this kind of exception comes only when i try
>>to send
>>the jdom's Document object and never in other cases..
>>
>>java.sql.SQLException: XA error: XAER_RMERR : A resource manager error
>>has occured
>>in the transaction branch start() failed o
>>n resource 'oraclePool': XAER_RMERR : A resource manager error has occured
>>in
>>the transaction branch
>>oracle.jdbc.xa.OracleXAException
>> at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:483)
>> at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:190)
>> at weblogic.jdbc.jta.VendorXAResource.start(VendorXAResource.java:41)
>> at weblogic.jdbc.jta.DataSource.start(DataSource.java:569)
>> at weblogic.transaction.internal.ServerResourceInfo.start(ServerResourceInfo.java:1165)
>> at weblogic.transaction.internal.ServerResourceInfo.xaStart(ServerResourceInfo.java:1108)
>> at weblogic.transaction.internal.ServerResourceInfo.enlist(ServerResourceInfo.java:287)
>> at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:391)
>> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1146)
>> at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1101)
>> at weblogic.jdbc.jta.Connection.getXAConn(Connection.java:145)
>> at weblogic.jdbc.jta.Connection.createStatement(Connection.java:204)
>> at weblogic.jdbc.rmi.internal.ConnectionImpl.createStatement(ConnectionImpl.java:130)
>> at weblogic.jdbc.rmi.SerialConnection.createStatement(SerialConnection.java:71)
>> at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:134)
>> at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
>> at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
>> at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
>> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
>> at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>>
>> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1151)
>>
>>
>>any help will be appriciated..
>>Akhil
>>
>>
>>
>>Raj <[email protected]> wrote:
>>
>>>wrap it up as an object message(I think DocumentImpl is Serializable).
>>>This way you
>>>wont be vendor specific and can retrieve it at the other end.
>>>
>>>Akhil Nagpal wrote:
>>>
>>>
>>>>HI Raj,
>>>> thanks for the response..actually we dont want our application
>>>
>>to
>>
>>>be weblogic
>>>
>>>>specific...
>>>> there should be some other way arround....
>>>>
>>>>REgards
>>>>Akhil
>>>>
>>>>"Raj" <[email protected]> wrote:
>>>>
>>>>>There is a weblogic specific XMLMessage similar to ObjectMessage,
>>>>
>>>BytesMEssage
>>>
>>>>>etc.. Try using that to wrap ur XML document and send it across.
>>>>>
>>>>>-Raj
>>>>>
>>>>>"Akhil Nagpal" <[email protected]> wrote:
>>>>>
>>>>>>HI,
>>>>>>does anybody has anyidea about sending the XML Document over the
>>>>>
>>>JMS
>>>
>>>>>>and receiving
>>>>>>it n the other side..
>>>>>>regards,
>>>>>>Akhil
>>>>>
>
-
How can I have a Pages document that is shared with me under my Pages section and not open it with the link?
Try this.
Open the document and select and copy a few pages, say ten pages.
Open a new blank document and paste the pages you copied into that.
Save it with a new name.
Work on those new pages to see if the problem has disappeared.
If this helps, continue breaking up the large file in to smaller chunks and working on them
You can of course later reverse the process and merge the files into one new one.
This suggestion is based on my experiences with large Word files. Breaking it up in to smaller chunks does two things. First, if there is any corruption in the old file, the new copies might escape that. Second, the Mac is faster handling the smaller chunks. -
How do I duplicate a pdf document in the cloud?
How do I duplicate a pdf document in the cloud?
Hi marting82944462,
As mentioned above by Bernd Alheit you will have to download the file on the local disc from the cloud & then upload it again, however you will have to rename the file as the architecture does not support two or more files with a similar name.
In case if you still have any query, please let us know. We will be more than happy to help you.
Regards,
Aadesh -
How do I open a XLSM document on the iMac ?
How do I open a XLSM document on the iMac ? I just get "Import Error".
theislandguy wrote:
How do I open a XLSM document on the iMac ?
Use Microsoft Excel or a compatible app.
I just get "Import Error".
In what app? Or are we playing Twenty Questions?
Excel 2008 should be able to open it, but not play any of the macros. Excel 2011 should be able to open it and play the macros -- unless they contain Win-specific code. OpenOffice/NeoOffice/LibreOffice's Calc should also be able to open it, but the extent to which it will be able to play the macros also depends on the code. -
How to map journal fields and whats is the better process type
/Journal/JournalSuspenseCostCentre NULL
/Journal/JournalBalancingCentre Lookup from Organisation ID
/Journal/JournalMultiCompany u2018Nu2019
/Journal/JournalBatchNumber NULL
/Journal/JournalNumTransactions Total number of /Journal/JournalLine transactions
/Journal/JournalBaseDRTotal Sum of /Journal/JournalLine/JournalLineBaseValue u2013 Debit Values only
/Journal/JournalBaseCRTotal Sum of /Journal/JournalLine/JournalLineBaseValue u2013 Credit Values only
How to map journal fields and whats is the better process type idoc/proxies?please let me know
Journal Line
Multiple journal lines per header:
Schema Element Data
/Journal/JournalLine/JournalLineCostCentre Bank account control Cost Centre
/Journal/JournalLine/JournalLineAccount Bank account control Account Code
/Journal/JournalLine/JournalLineMoneyTotal Transaction Line Amount
/Journal/JournalLine/JournalLineVolume NULL
/Journal/JournalLine/JournalLineDescription Payee Name
/Journal/JournalLine/JournalLineChequeBookReference NULL
/Journal/JournalLine/JournalLineMatchField Cheque Number
NB Contra accounting entries should be posted to:
Schema Element Data
/Journal/JournalLine/JournalLineCostCentre Bank account control Cost Centre
/Journal/JournalLine/JournalLineAccount Bank account control Account Code
/Journal/JournalLine/JournalLineMoneyTotal Transaction Line Amount * -1
/Journal/JournalLine/JournalLineDescription Payee Name
/Journal/JournalLine/JournalLineMatchField Cheque Number
/Journal/JournalPeriod Current General Ledger Period
/Journal/JournalYear Current General Ledger YearIt looks you are new to PI,
you have to develop scenario end to end, by creating source data type and target data type(if you have XSD's not required),then use Graphical mapping (message mapping) to map source and target structures.
Search in sdn for one end to end scenario you will understand easily
Regards,
Raj -
Using an iPad wi-fi 3G. How do I save received email documents in the my device? Really hate having to go through my emails to find a document. And where do I save it?
triplembm wrote:
I downloaded a PDF from an email and have been trying to save the file in my document file. When using Snow Leopard I used to hit Command S and it would ask me where I wanted to save the document. i just got an iMac with Lion and when I hit Command S I get nothing.
Welcome to Lion's new feature: Versions
How do I save a document using Lion?
To save a NEW copy in Preview:
File->Export
You said that you d/l'd a PDF in Mail, so why not just click the "Save" button in Mail?
(Make sure that you click the "Details" button in Mail)
In Mail:
BTW, I'm very happy with Lion. (In regard to all the negative Lion posts, ask yourself if you're more likely post a comment here telling us how happy you are with features of Lion, or to complain about something that's changed). -
How can I send an XML request to the server using servlets
How can I send an XML request to the server using servlets
http://forum.java.sun.com/thread.jspa?threadID=5158333
http://forum.java.sun.com/thread.jspa?threadID=5158705
Crossposting is lame. -
How do I access my external drive over the web with my iPhone. The drive is attached to my Time Machine. I am new to Apple and am trying to get all my stuff working together.
This is not a supported feature of iPhone or Time Capsule.
Maybe you are looking for
-
Invoice without reference to PO in SUS
Dear Experts, As you know SRM does not support creation of invoice without any reference to the Purchase Order. However, I get to see the option of creating manual invoice (invoice without reference to the PO) in SUS. Now, I created a my SUS test sys
-
JAXB v1.0.2 and Webstart
Hi, I'm trying to use JAXB within an app that is started via JNLP and WebStart. If i add all the JAXP jars to the JNLP file the app fails to start when JAXB calls into some xerces code that tries to access java.home. java.security.AccessControlExcept
-
Auto Fill Freezes and Malfunctions
This is the 2nd or 3rd time I have asked up on this problem. No responses previously, although several others wrote to say that they are experiencing the same problem with Safari Auto Fill with Mountain Lion. Here's problem: I have autofill set on Sa
-
Error in computation of Planned Costs
Hi, In Plant maintenance module(PM), while checking out the costs for a particular order planned costs values are getting fetched wrongly. While checking out the prices maintained against the activity type, they were found proper. Also after confirma
-
Moving and splitting photos - catalog questions
Until recently, all my photos were On one disc with one Lightroom catalog. Now there are too many photos for a single disc, so I split them into two discs and created a new catalog to deal with the two different locations. Of course, I immediately lo