Ad hoc queries in XI on XML messages ?
I often have to get information out of several messages in XI, is there a way of querying a group of XML'S. For the value in a field or multiple fields ? (ie give me the value of <tag_ID> in these 3 messages)
Or searching for a particular message by giving the value required in a particular tag ?(ie. find me message where <tag_id> = RANDOM_DATA)
For example
I have several thousand WPUFIB'S (IDOC TYPE) coming in from our legacy systems, I would like to be able to query all of the messages going through this interface for their site number for instance. So I would know all sites that have posted their WPUFIB'S in any given time frame.
At the moment I am using time stamps and guess work when I wish to look more carefully at a message in XI, instead of being able to find messages immediately.....
thanks
Richard,
You need to have TREX installed to achieve this. TREX basically is a search engine. There are guides and weblogs available in SDN that describe the installation/configuration of TREX with XI.
Also, there is a weblog by Sravya where she has used a custom ABAP report to achieve this. Just search SDN using key words "Payload based search". You will get that.
Good luck.
Regards,
Jai Shankar
Similar Messages
-
How to map a complex XML message onto a flattened XSD for multi line insert
Hi Experts.
I have a webservice in my composite that takes an xml message that contains repeating complex type elements. The XSD is as follows:
<?xml version= '1.0' encoding= 'UTF-8' ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:XxInt003Stg="http://www.somewhere.co.uk/xxx/integration/int003Stage"
targetNamespace="http://www.somewhere.co.uk/xxx/integration/int003Stage" elementFormDefault="qualified">
<xsd:complexType name="InterfaceFileType">
<xsd:sequence>
<xsd:element name="FileName" type="xsd:string"/>
<xsd:element name="FileSource" type="xsd:string"/>
<xsd:element name="FileIdentifier" type="xsd:integer"/>
<xsd:element name="InterfaceInvoices" type="XxInt003Stg:InterfaceInvoicesType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InterfaceInvoicesType">
<xsd:sequence>
<xsd:element name="InterfaceInvoice" type="XxInt003Stg:InterfaceInvoiceType"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InterfaceInvoiceType">
<xsd:sequence>
<xsd:element name="SupplierNumber" type="xsd:string"/>
<xsd:element name="SupplierSite" type="xsd:string"/>
<xsd:element name="InvoiceNumber" type="xsd:string"/>
<xsd:element name="InterfaceInvoiceLines">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="XxInt003Stg:InterfaceInvoiceLinesType">
<xsd:sequence>
<xsd:element name="InterfaceInvoiceLine"
type="XxInt003Stg:InterfaceInvoiceLineType"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InterfaceInvoiceLinesType"/>
<xsd:complexType name="InterfaceInvoiceLineType">
<xsd:sequence>
<xsd:element name="LineAmount" type="xsd:decimal" nillable="false"/>
<xsd:element name="TaxAmount" type="xsd:decimal"/>
<xsd:element name="BusinessEntityReference" type="xsd:string"/>
<xsd:element name="AccountNumber" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="InterfacePayload">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="InterfaceFiles" type="XxInt003Stg:InterfaceFileType"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
When I try to push this through the database adapter after mapping the fields it inserts multiple rows but they are all the same values. I have put a for-each XSLT construct based on the lowest element in the XSD (Invoice Line) and allocated that at various places on the target tree structure but with no success.
The XSLT is as follows:
<xsl:template match="/">
<top:XxInt003InterfaceInvoiceStgCollection>
<top:XxInt003InterfaceInvoiceStg>
<top:fileName>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:FileName"/>
</top:fileName>
<top:fileSource>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:FileSource"/>
</top:fileSource>
<top:fileIdentifier>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:FileIdentifier"/>
</top:fileIdentifier>
<top:supplierNumber>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:SupplierNumber"/>
</top:supplierNumber>
<top:supplierSite>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:SupplierSite"/>
</top:supplierSite>
<top:invoiceNumber>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InvoiceNumber"/>
</top:invoiceNumber>
<xsl:for-each select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InterfaceInvoiceLines/inp1:InterfaceInvoiceLine">
<top:lineAmount>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InterfaceInvoiceLines/inp1:InterfaceInvoiceLine/inp1:LineAmount"/>
</top:lineAmount>
</xsl:for-each>
<top:taxAmount>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InterfaceInvoiceLines/inp1:InterfaceInvoiceLine/inp1:TaxAmount"/>
</top:taxAmount>
<top:businessEntityReference>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InterfaceInvoiceLines/inp1:InterfaceInvoiceLine/inp1:BusinessEntityReference"/>
</top:businessEntityReference>
<top:accountNumber>
<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InterfaceInvoiceLines/inp1:InterfaceInvoiceLine/inp1:AccountNumber"/>
</top:accountNumber>
</top:XxInt003InterfaceInvoiceStg>
</top:XxInt003InterfaceInvoiceStgCollection>
</xsl:template>
I am sure this is just something fundemantal I am doing, is it something to do with the inp1 bit of the XSLT? I get the feeling this should be looping somehow?
Thanks
KeithHi,
as I understand you try to transform 'InterfacePayload' (your XSD - just easier to read here)
InterfacePayload (1:1)
-- InterfaceFiles (1:N)
---- FileName (1:1)
---- FileSource (1:1)
---- FileIdentifier (1:1)
---- InterfaceInvoices (1:1)
------ InterfaceInvoice (1:N)
-------- SupplierNumber (1:1)
-------- SupplierSite (1:1)
-------- InvoiceNumber (1:1)
-------- InterfaceInvoiceLines (1:1)
---------- InterfaceInvoiceLine (1:N)
------------ LineAmount (1:1)
------------ TaxAmount (1:1)
------------ BusinessEntityReference (1:1)
------------ AccountNumber (1:1)
to 'XxInt003InterfaceInvoiceStgCollection' (extracted from your XSLT)
XxInt003InterfaceInvoiceStgCollection (1:1)
-- XxInt003InterfaceInvoiceStg (1:1)
---- fileName (1:1)
---- fileSource (1:1)
---- fileIdentifier (1:1)
---- supplierNumber (1:1)
---- supplierSite (1:1)
---- invoiceNumber (1:1)
---- lineAmount (1:N)
---- taxAmount (1:1)
---- businessEntityReference (1:1)
---- accountNumber (1:1)
In the 'xsl:for-each' construct
+<xsl:for-each select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InterfaceInvoiceLines/inp1:InterfaceInvoiceLine">+
+<top:lineAmount>+
+<xsl:value-of select="/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InterfaceInvoiceLines/inp1:InterfaceInvoiceLine/inp1:LineAmount" />+
+</top:lineAmount>+
+</xsl:for-each>+
- you are asking to iterate through all available 'inp1:InterfaceInvoiceLine' elements in the input XML document
- the value of the element 'top:lineAmount' (for each iteration) is being calculated as all values of available 'inp1:LineAmount' elements in the input XML document together
So, if you have ... lets say
- 4x 'inp1:InterfaceInvoiceLine' element in the input XML document, each containing one 'inp1:LineAmount' element ... with values {1, 2, 3, 4} respectively
- the output will be something like this
<top:lineAmount>1234</top:lineAmount>
<top:lineAmount>1234</top:lineAmount>
<top:lineAmount>1234</top:lineAmount>
<top:lineAmount>1234</top:lineAmount>
Why are you always querying from +/inp1:InterfacePayload/inp1:InterfaceFiles/...+ ?
I think ... all Xpath queries in your XSLT are wrong (they query something else than you think).
e.g.
- putting all file names together into one element (+/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:FileName+)
- putting all file sources together into one element (+/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:FileSource+)
- putting all invoice numbers together into one element (+/inp1:InterfacePayload/inp1:InterfaceFiles/inp1:InterfaceInvoices/inp1:InterfaceInvoice/inp1:InvoiceNumber+)
Best regards,
Martin. -
Ad-hoc Queries..
What are Ad-hoc queries??How do i start working on an ad-hoc query...plz explain stepwise considering a scenario..
Thankx in advance..
shreya.Hi,
Adhoc Query designer means -A Web item that enables you to create and change queries in a Web application on an ad-hoc basis.
use the Ad-hoc Query Designer Web item in the Web Application Designer to structure Web applications in which you create or change queries. The Web item is as a tool for designing ad-hoc queries in a Web environment.
In particular it enables you to:
· Create queries by assigning characteristics from an InfoProvider to rows, columns, filters, and free characteristics, and including key figures from the InfoProvider in the key figure structure of the query.
· Restrict or filter key figures and characteristics
· Use predefined key figure structures and restricted or calculated key figures in the query
· Set or change query properties and key figure/characteristic properties in the query
· Create or change conditions and exceptions
When compared with the BEx Query Designer, the Ad-hoc Query Designer Web item has the following restrictions when creating or changing queries:
· You cannot integrate variables into the query directly.
However, you can use variables in reusable structures, or restricted or calculate key figures, which are used in the Ad-hoc Query Designer
· The query can contain only one structure. This structure has to be the key figure structure and be in the rows or columns of the query.
- You cannot use key figures or key figure structures in the filter.
- You cannot define exception cells, since this requires two structures.
You cannot create the following objects using the Ad-hoc Query Designer Web item:
- Reusable structures
- Reusable restricted key figures
- Reusable calculated key figures
- Local calculated key figures
You can create local, restricted key figures using the Ad-hoc Query Designer Web item.
You can edit existing queries in the Ad-hoc Query Designer Web item, if the queries adhere to the restrictions laid out above The Ad-hoc Query Designer checks these requirements when loading a query. If the query is too complex, the query can be loaded into the Ad-hoc Query Designer but you cannot change it there. You then receive the appropriate message. You can still check and execute the query.
Thanks,
Sankar M -
Weblogic Integration : xml message for event node in a workflow
Hello,
I have the following queries for weblogic 7.0 BPM workflows with event nodes:
1) How does weblogic server choose that an xml message should be delivered to
what all workflow instances, as the xml event does not carry any information regarding
the workflow instance or event node?
2) When an XML message is received, but there are no eligible consumers (workflow
instances) then what happens to the message, is it discarded?
3) Suppose an xml message comes for an event node even before that event before
has been reached in the workflow instance, ie, the event node has not been activated
yet. Is the message persisted to be delivered for processing when the event node
gets activated or is it discarded?
Please reply at an earliest.
Thanks,
ParulHi,
Based on your description what I felt is you are making use of a wait step in which you have choose to wait till BUS2078 event CREATED is occured ... right.. Now can you please clear me that where and how this event will triggered.
or is it some thign like you are making use of event creator step and in this case, When ever you are making use of the eventcreator step and a BOR object inside it make sure that specific BOR object is already instatitaed in the workflow container , if it is instantiated then only it will try to identify the instance or the BOR and it will try to rasie the event.
Regards
Pavan -
XML Message Body Selector in Automation
Hi,
I'm having some trouble implementing a XML Message Body Selector in an automated task. I'm running OSM 7.2.0.7 in a Unix environment and using Design Studio 7.2.1.
I'm sendind in my request to an external system a request tthe following string: OSM-TaskName-%{CARTRIDGE_VERSION}
<Request>
<Header>
<dueDate>20131128</dueDate>
<application>OSM-MSS_Lookup-1.0.0.0.5</application>
</Header>
</Request>
The response of MSS is:
<Response>
<Header>
<dueDate>20131128</dueDate>
<application>OSM-MSS_Lookup-1.0.0.0.5</application>
</Header>
In the selector I've tried different XPath expressions:
Select:
/*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']/text()
*[local-name() ='Responset']/*[local-name()='Header']/*[local-name()='application']/text()
//*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']/text()
/*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']
*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']
//*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']
/Response/Header/application
/Response/Header/application/text()
Compare: OSM-MSS_Lookup-%{CARTRIDGE_VERSION}
I keep getting the following error in the log file for the differente selectors:
####<Nov 28, 2013 10:34:31 AM CST> <Info> <oms> <hostname> <SOM_ManagedServer_1> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'
> <sceadmin> <BEA1-49AB960B7AE5258D5CC8> <0710a255d6bbb54d:-1d6ed94c:142960580fb:-8000-0000000000026363> <1385656471431> <BEA-000000> <api.e:
namespace/version: SOM_Cartridge/1.0.0.0.5
automator type: taskAutomator
plugin JNDI name: MSS_Lookup.automatedtask.somprovisioning.MSS_LookupReceiverBean
plugin class name: oracle.communications.ordermanagement.automation.plugin.XQueryReceiver
run plugin as: oms-automation receiver:
type: external
JMS source: sky/MSS/Product/WebServiceResponseQueue
message [property|body] selector: JMS_BEA_SELECT('xpath', '/*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']')='OSM-MSS_Lookup-1.0.0.0.5'
####<Nov 28, 2013 10:34:31 AM CST> <Warning> <EJB> <hostname> <SOM_ManagedServer_1> <[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <oms-automation> <> <0710a255d6bbb54d:-1d6ed94c:142960580fb:-8000-000000000002650a> <1385656471454> <BEA-010061> <The Message-Driven EJB: MSS_Lookup.automatedtask.somprovisioning.MSS_LookupReceiverBeanMDB is unable to connect to the JMS destination: sky/MSS/Product/WebServiceResponseQueue. The Error was:
javax.jms.InvalidSelectorException: weblogic.messaging.kernel.InvalidExpressionException: Expression : "JMS_BEA_SELECT('xpath', '/*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']')='OSM-MSS_Lookup-1.0.0.0.5'"
Nested exception: javax.jms.InvalidSelectorException: weblogic.messaging.kernel.InvalidExpressionException: Expression : "JMS_BEA_SELECT('xpath', '/*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']')='OSM-MSS_Lookup-1.0.0.0.5'"
I would appreciate any help or ideas.
CheersHi,
Could you confirm on below:
1 ) Are you using multiple automation plug-in external event receivers in the same automation task ?
2 ) And are you having the default Correlation Message property set to 'JSMCorrelationID' in external event receiver?
If your answer for the first question is No, they i would suggest to use Correlation XML Body as
*[local-name() ='Response']/*[local-name()='Header']/*[local-name()='application']
The value of the field(application) in request must match the value of the field in response, in your case it is matching. And you will be reading this correlation id in response processing xquery.
Regards
Srinivas -
Unable to Execute a Report to send PAN XML messages out of SNC
Hi All,
We are unable to Execute a Report /SCA/DM_TIMESERIES_OUT to send Product Activity Notifications in the form of XML messages out of SNC. We have manitained some Planned Reciepts data in SNC and would like to transfer it out to ECC.
Could anyone help in understanding if we have to maintain mandatory settings before executing this report.
Thanks & Regards,
SadiqHi Pravin,
As per the documentation(http://help.sap.com/saphelp_snc70/helpdata/EN/48/6bdb4767a431cbe10000000a42189d/frameset.htm), we have tried both the manual and automatic features to configure the output from SNC in the form of XML messages.
The manual method gave a message "Time series data for selection is empty" and the Automated method could trigger the XML messages on every incoming message from ECC but we are unable to see the Planned Receipts in that XML messages.
Was just wondering if we can see the Planned Receipt info by changing the settings of this report or by using any other simillar report as the PR info is very important for our development.
Thanks & Regards,
Sadiq -
View is not retuning data when creating XML message through workflow
Hi All,
This is a very critical problem for me. I am trying to send an XML message (outbound) through XML gateway. This is done from a custom workflow. The message creation is done from the standard procedure ecx_document.sendDirect. The data for the XML file is taken from two views (whcih are created in a custom schema and have synonym in apps). One view for header and another one for line information (I am creating an XML for a purchase order).
The problem is when the workflow try the first time to create a message, the views are not returning data. So message creation fails. Now, if we restart the workflow after some time, it will work and the message is created. What could be the reason for this sort of a behaviour ?
I am using business events to trigger the workflow. The data in the table/view will be updated by standard POAPPRV workflow activities. The custom workflow is subscribed to a business event raised from POAPPRV workflow, at a certain point. So this will execute when this event is raised from POAPPRV wf. The subscription has a phase value of 99.
Any help on this regard will be much appreciated, as this is a critical issue.
Thanks in advance,
Arun
PS : One more thing : this is happening mostly in the production instance where the number of messages is very high (freqency).Hello,
With the BAPI_EQUI_CREATE you can only create PM equipments not IS-U devices that why there is no IS Tab .
You have to use the dialog transactions IQ01, IQ04 or the MM transaction, where you can create devices through a movement.
There is objecttype DEVICE (SWO1) with the following methods:
-> Device.CreateFromData (Create Equipment Master Record)
-> Device.Create (Create Equipment Master Record)
-> Device.CreateISU (Create IS-U: Modification for IS-U)
Please check whether you can use method Device.CreateISU for your requirement.
Regards
Olivia -
We are currently receiving XML messages from a business partner that goes
through a transformation/parser first to make sure the xml document was
in MISMO form (Mortgage Industry Standard Message Organization). Then the
document is stored in a clob in a table. The document is stored Without
the tags. We are storing these XML messages into a CLOB datatype for
later processing. I want to read the CLOB and then parse out the
individual fields to store into a table. What is the best way to
accomplish this in PL/SQL? Here is one sample record:
<MORTGAGEDATA>
<APPLICATION LoanPurposeType="OTHER">
<LenderCaseIdentifier>3631681</LenderCaseIdentifier>
<LendersBranchIdentifier>2966448</LendersBranchIdentifier>
</APPLICATION>
<PROPERTY PropertyUsageType="Primary">
<Address1>1335 test</Address1>
<City>las cruces</City>
<State>NM</State>
<PostalCode>88001</PostalCode>
</PROPERTY>
<SUBJECTPROPERTY>
<SubjectPropertyEstimatedValueAmount>69000</SubjectPropertyEstimatedValueAmount>
</SUBJECTPROPERTY>
<BORROWERRECONCILEDLIABILITY LiabilityType="HelocSubjectProperty">
<LiabilityUnpaidBalanceAmount>0</LiabilityUnpaidBalanceAmount>
<LiabilityMonthlyPaymentAmount>0</LiabilityMonthlyPaymentAmount>
</BORROWERRECONCILEDLIABILITY>
<BORROWERRECONCILEDLIABILITY LiabilityType="MortgageLoanSubjectProperty">
<LiabilityUnpaidBalanceAmount>0</LiabilityUnpaidBalanceAmount>
</BORROWERRECONCILEDLIABILITY>
<BORROWER>
<FirstName>scooby</FirstName>
<MiddleName/>
<LastName>doo</LastName>
<NameSuffix/>
<MothersMaidenName>velma</MothersMaidenName>
</BORROWER>
</MORTGAGEDATA>
NOTE: I have tried to use DBMS_XMLQUERY and it comes out like this using a
stored procedure called printclob: When I do this the data is put into
one field called xml_app_msg. The problem is how do I reference the
individual fields like FirstName and so on to store in another table? Can
I apply a stylesheet and if so, how?
Or do I create an object type called xml_app_msg with the fields lastname
and so on?
-- The table is raw_xml_msg_tbl and the field with the stored infomation is
xml_app_msg.
set serveroutput on size 50000
declare
queryCtx DBMS_XMLquery.ctxType;
result CLOB;
begin
queryCtx := DBMS_XMLQuery.newContext('select xml_app_msg from raw_xml_msg_tbl where app_id = :APP_ID');
-- DBMS_XMLQuery.clearBindValue(queryCtx);
DBMS_XMLQuery.setBindValue(queryCtx,'APP_ID','LT1001');
-- get the result..!
result := DBMS_XMLQuery.getXML(queryCtx);
-- Now you can use the result to put it in tables/send as messages..
printClobOut(result);
DBMS_XMLQuery.closeContext(queryCtx); -- you must close the query handle..
end;
OUTPUT:
<?xml version = '1.0'?>
<ROWSET>
<ROW num="1">
<XML_APP_MSG><MORTGAGEDATA>
<BORROWER>
<FirstName>Falls</FirstName>
<MiddleName/>
<LastName>Water</LastName>
<NameSuffix/>
<SSN>123-45-6789</SSN>
</BORROWER>
</MORTGAGEDATA>
</XML_APP_MSG>
</ROW>
</ROWSET>
nullI parse the XML doc into a domdocument and then loop through using xpath.valueof to pull the individual values from the nodes and then build a generic insert. It works quite well with a small number of columns. I'm not sure how it would work with a lot of columns. You can get code examples from Steve Muench's book "Developing Oracle XML Applications".
-
XML Message Not Generated in SUS SRM 4.0
Hi !
In Supplier Self Service(SUS) SRM 4.0 we did a
development for ASN creation through file upload .
It's a <b>BSP</b> Application .
Vendor uploaded the file for ASN creation .
Their generated ASN No. which are in Standard tables.
But for Some of them No XML Messages Genrated which
suppose to pass backend SAP R/3 .
Anybody having any idea where exactly these XML
Messages are? We have searched through SXMB_MONI
& checked all qRFCs.
But unable to find their XML messages.
Looking forward your ideas.
Regards
Sachin S M
<b></b>
Message was edited by: Sachin S MHi,
Can you tell me if the next scenario is possible with EBP 5.0 (WAS 6.40) but without XI.
We need to develop an application to allow the supplier to upload an Invoice in XML and save it in EBP.
I was thinking on using a BSP application with an input field to browse local PC and pick up an Invoice XML file. Then post the XML and parse it in the BSP application and save the invoice in EBP.
Do you have any experience on it or some documentation?
We have EBP 5.0 but don't want to install an SAP XI.
Thank you -
XML message as input for webservice gives deserialization error
Hi,
jDeveloper 10.1.3
BPEL PM 10.1.2.0.2
Carrental example
Problem:
For the Business Rule Engine I did the Carrental XML example. Based on the java application that connects to the BR engine, I created a webservice in jDeveloper and deployed it to my localhost AS 10.1.3. The webservice has a testRule method that accepts a String buf as input. For now, the only thing the webservice does is return a 'do nothing' string. This works fine:
When deployed the testpage generates the following SOAP message:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://carrental/types/">
<ns1:testRuleElement>
<ns1:buf>my xml message</ns1:buf>
</ns1:testRuleElement>
</soap:Body>
</soap:Envelope>
The SOAP response is:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://carrental/types/"><env:Body><ns0:testRuleResponseElement><ns0:result>do nothing...</ns0:result></ns0:testRuleResponseElement></env:Body></env:Envelope>
In BPEL Designer I create a new asynchronous process ValidateBR, with a partnerlink for the webservice, based on the following WSDL file:
<definitions
name="Rent"
targetNamespace="http://carrental/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://carrental/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns0="http://carrental/types/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://carrental/types/"
elementFormDefault="qualified" xmlns:tns="http://carrental/types/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/">
<complexType name="testRule">
<sequence>
<element name="buf" type="string" nillable="true"/>
</sequence>
</complexType>
<complexType name="testRuleResponse">
<sequence>
<element name="result" type="string" nillable="true"/>
</sequence>
</complexType>
<complexType name="version">
<sequence/>
</complexType>
<complexType name="versionResponse">
<sequence>
<element name="result" type="string" nillable="true"/>
</sequence>
</complexType>
<element name="testRuleElement" type="tns:testRule"/>
<element name="testRuleResponseElement" type="tns:testRuleResponse"/>
<element name="versionElement" type="tns:version"/>
<element name="versionResponseElement" type="tns:versionResponse"/>
</schema>
</types>
<message name="Rent_testRule">
<part name="parameters" element="tns0:testRuleElement"/>
</message>
<message name="Rent_testRuleResponse">
<part name="parameters" element="tns0:testRuleResponseElement"/>
</message>
<message name="Rent_version">
<part name="parameters" element="tns0:versionElement"/>
</message>
<message name="Rent_versionResponse">
<part name="parameters" element="tns0:versionResponseElement"/>
</message>
<portType name="Rent">
<operation name="testRule">
<input message="tns:Rent_testRule"/>
<output message="tns:Rent_testRuleResponse"/>
</operation>
<operation name="version">
<input message="tns:Rent_version"/>
<output message="tns:Rent_versionResponse"/>
</operation>
</portType>
<binding name="RentSoapHttp" type="tns:Rent">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="testRule">
<soap:operation soapAction="http://carrental//testRule"/>
<input>
<soap:body use="literal" parts="parameters"/>
</input>
<output>
<soap:body use="literal" parts="parameters"/>
</output>
</operation>
<operation name="version">
<soap:operation soapAction="http://carrental//version"/>
<input>
<soap:body use="literal" parts="parameters"/>
</input>
<output>
<soap:body use="literal" parts="parameters"/>
</output>
</operation>
</binding>
<service name="Rent">
<port name="RentSoapHttpPort" binding="tns:RentSoapHttp">
<soap:address location="http://localhost:7780/Rules-rent-context-root/RentSoapHttpPort"/>
</port>
</service>
</definitions>
I defined the process variable inputVariable to be defined based on the carrental.xsd schema. I assign the inputVariable to the 'buf' parameter of the webservice as shown below in the ValidateBR.bpel
<!--
// Oracle JDeveloper BPEL Designer
// Created: Mon Mar 27 16:02:22 CEST 2006
// Author: haanrw
// Purpose: Asynchronous BPEL Process
-->
<process name="ValidateBR" targetNamespace="http://xmlns.oracle.com/ValidateBR" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ns1="http://rules.oracle.com/carrental" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns3="http://carrental/types/" xmlns:ns2="http://carrental/" xmlns:client="http://xmlns.oracle.com/ValidateBR" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"><!-- ================================================================= --><!-- PARTNERLINKS --><!-- List of services participating in this BPEL process --><!-- ================================================================= -->
<partnerLinks><!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="client" partnerLinkType="client:ValidateBR" myRole="ValidateBRProvider" partnerRole="ValidateBRRequester"/>
<partnerLink name="CheckBR" partnerRole="Rent_Role" partnerLinkType="ns2:Rent_PL"/>
</partnerLinks><!-- ================================================================= --><!-- VARIABLES --><!-- List of messages and XML documents used within this BPEL process --><!-- ================================================================= -->
<variables><!-- Reference to the message passed as input during initiation -->
<variable name="inputVariable" messageType="client:ValidateBRRequestMessage"/><!-- Reference to the message that will be sent back to the
requester during callback
-->
<variable name="outputVariable" messageType="client:ValidateBRResponseMessage"/>
<variable name="InvokeValidateBR_testRule_InputVariable" messageType="ns2:Rent_testRule"/>
<variable name="InvokeValidateBR_testRule_OutputVariable" messageType="ns2:Rent_testRuleResponse"/>
</variables><!-- ================================================================= --><!-- ORCHESTRATION LOGIC --><!-- Set of activities coordinating the flow of messages across the --><!-- services integrated within this business process --><!-- ================================================================= -->
<sequence name="main"><!-- Receive input from requestor.
Note: This maps to operation defined in ValidateBR.wsdl
-->
<receive name="receiveInput" partnerLink="client" portType="client:ValidateBR" operation="initiate" variable="inputVariable" createInstance="yes"/><!-- Asynchronous callback to the requester.
Note: the callback location and correlation id is transparently handled
using WS-addressing.
-->
<assign name="Assign_1">
<copy>
<from variable="inputVariable" part="payload" query="/ns1:repository"/>
<to variable="InvokeValidateBR_testRule_InputVariable" part="parameters" query="/ns3:testRuleElement/ns3:buf"/>
</copy>
</assign>
<invoke name="InvokeValidateBR" partnerLink="CheckBR" portType="ns2:Rent" operation="testRule" inputVariable="InvokeValidateBR_testRule_InputVariable" outputVariable="InvokeValidateBR_testRule_OutputVariable"/>
<invoke name="callbackClient" partnerLink="client" portType="client:ValidateBRCallback" operation="onResult" inputVariable="outputVariable"/>
</sequence>
</process>
When I deploy the process and initiate a testinstance from the BPEL console, the assign looks as follows:
<InvokeValidateBR_testRule_InputVariable>
<part name="parameters" >
<testRuleElement>
<buf>
<driver>
<driver-license-number>15-PS-FZ</driver-license-number>
<name>Rob de Haan</name>
<age>39</age>
<vehicle-type>Saab</vehicle-type>
<license-type>B</license-type>
<pre-convictions>0</pre-convictions>
<pre-accidents>0</pre-accidents>
<able-to-drive>true</able-to-drive>
</driver>
</buf>
</testRuleElement>
</part>
</InvokeValidateBR_testRule_InputVariable>
The InvokeValidateBR shows the following error:
<remoteFault>
<part name="code" >
<code>Client</code>
</part>
<part name="summary" >
<summary>when invoking endpointAddress 'http://localhost:7780/Rules-rent-context-root/RentSoapHttpPort', caught exception while handling request: deserialization error: unexpected XML reader state. expected: END but found: START: {http://rules.oracle.com/carrental}driver</summary>
</part>
<part name="detail" >
<detail>AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode: faultString: caught exception while handling request: deserialization error: unexpected XML reader state. expected: END but found: START: {http://rules.oracle.com/carrental}driver faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:caught exception while handling request: deserialization error: unexpected XML reader state. expected: END but found: START: {http://rules.oracle.com/carrental}driver at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221) at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) at org.collaxa.thirdparty.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at org.collaxa.thirdparty.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:226) at org.collaxa.thirdparty.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645) at org.collaxa.thirdparty.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.collaxa.thirdparty.apache.axis.client.Call.invokeEngine(Call.java:2754) at org.collaxa.thirdparty.apache.axis.client.Call.invoke(Call.java:2715) at org.collaxa.thirdparty.apache.axis.client.Call.invoke(Call.java:1737) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.invokeAXISMessaging(WSIFOperation_ApacheAxis.java:2113) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.invokeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1611) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.executeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1083) at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:452) at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:327) at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:189) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:601) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:317) at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:188) at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3408) at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1836) at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75) at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:166) at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:252) at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5438) at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1217) at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:511) at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:335) at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796) at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37) at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125) at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70) at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86) at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123) at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755) at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186) at java.lang.Thread.run(Thread.java:534) {http://xml.apache.org/axis/}hostname:NL-GRH-L120981 </detail>
</part>
</remoteFault>
FYI: the webservice only contains a return "do nothing"
Question:
What is the proper way to assign an XML message to the web service?
Any help would be appreciated.
Rob
Message was edited by:
[email protected]Hi,
Reading only is not possible..
I will be still more clear in my question this time..
I have deployed my bpel. My receiveInputVariable is of type xsd:string.
So when i run the bpel in my console, i will be asked to give input as string data.
So when i go to the XMLView, it will be like this.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://xmlns.oracle.com/Sabari_POC_Appln/DOM_Parser/ConvertToBLOB">
<ns1:process>
<ns1:input></ns1:input>
</ns1:process>
</soap:Body>
</soap:Envelope>
Now, i am going to give my input like this. --- which leads to error.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://xmlns.oracle.com/Sabari_POC_Appln/DOM_Parser/ConvertToBLOB">
<ns1:process>
<ns1:input>
*<?xml version="1.0" encoding="UTF-8"?>*
*<projects>*
*<project id = "BP001">*
*<name>Banking Project</name>*
*<start-date>Jan 10 1999</start-date>*
*<end-date>Jan 10 2003</end-date>*
*</project>*
*<project id = "TP001">*
*<name>Telecommunication Project</name>*
*<start-date>March 20 1999</start-date>*
*<end-date>July 30 2004</end-date>*
*</project>*
*<project id = "PP001">*
*<name>Portal Project</name>*
*<start-date>Dec 10 1998</start-date>*
*<end-date>March 10 2006</end-date>*
*</project>*
*</projects>*
</ns1:input>
</ns1:process>
</soap:Body>
</soap:Envelope>
This xml is not accepted as string input.. so kindly suggest me some other solution.
I also tried.. like.. making my receiveInputVariable of type xsd:anyType, it also dint help. same error occurred.
Thanks,
Sabarisri. N
Edited by: Sabarisri N on Jul 20, 2011 1:03 PM -
Reading the XML message from Xi stored in XML format from a abap program.
Hi Gurus,
My requirement here is to read the data that will be coming from Xi from my custom abap program and updating 2 data base tables. The method is after the data mapping is done a class is generated in abap proxy in which a method is available. Inside the method i am writing the code for getting the Xi data stored as a payload message which can be seen in the transaction SXMB_MONI. My code is given below.
***begin code***
method ZII_PAYROLL_HEADER_IN~PAYROLL_HEADER_IN.
**** INSERT IMPLEMENTATION HERE **** ***
data: ln type i.
DATA: i_items TYPE TABLE OF ZPAYLOAD_WRAPPER_EMPLOYEE_REC3.
*DATA: wa_items type ZPAYLOAD_WRAPPER_EMPLOYEE_TAB5.
data: wa_items type ZPAYLOAD_WRAPPER_EMPLOYEE_REC3.
DATA:PERNR TYPE STRING.
*data: it_ZPAYLOAD_WRAPPER16 TYPE ZPAYLOAD_WRAPPER16.
I_ITEMS[] = INPUT-PAYLOAD_WRAPPER-BODY-XMLDOC-PAYROLL_PERIOD_OVERVIEW-EMPLOYEE_RECORD[].
*I_ITEMS = INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord.
describe table i_items[] lines ln.
endmethod.
**End code***
As per the logic the data stored in the XML message should be avaialble in INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord which i am assigning to a local internal table in the class.
But in my case there is no data coming in
INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord.
But i can see the data transffered from XI in the transaction SXMB_MONI->XML message->inbound message->payload.
Is there any way to read the data stored in the XML message in the transaction SXMB_MONI.
Also why the data is not coming in
INPUT-payloadWrapper-Body-XMLDOC-PayrollPeriodOverview-EmployeeRecord inside the class.
If there is any solution for this problem please post it.You can use function module SXMB_GET_MESSAGE_PAYLOAD.
Code snippet:
DATA: ls_mast TYPE sxmspmast,
ls_msgkey TYPE sxmsmkey,
lv_bin_xml TYPE xstring,
lv_str_xml TYPE string.
* select sxmspmast into ls_mast
ls_msgkey-msgid = ls_mast-msgguid.
ls_msgkey-pid = 'RECEIVER'.
CALL FUNCTION 'SXMB_GET_MESSAGE_PAYLOAD'
EXPORTING
im_msgkey = ls_msgkey
im_archive = ' '
im_version = ls_mast-vers
IMPORTING
ex_msg_bytes = lv_bin_xml
EXCEPTIONS
not_authorized = 1
no_message = 2
internal_error = 3
no_payload = 4
OTHERS = 5.
IF sy-subrc EQ 0.
lv_str_xml = cl_soap_moni_helper=>convert_xstring_to_string( xstring_in = lv_bin_xml ).
ENDIF. -
XI have to break/split XML-File into N times a XML Message
Hello,
Can anyone help with this one. I guess this is not an easy exercise but I need to solve it urgently.
XI gets a XML-file from a system.
This file has N times a element <XBT>.
Every time XI gets such a file the number of <XBT> is different.
XI haves to break this xml into N xml messages according to element ><XBT> in order to send them to Sap sequentially.
For example the following XML file have to split up into 2 xml files (the elements XBT occurs 2 times)
How can this be done?
<mt_BubaBestand>
<b><XBT></b>
<Algemeen>
<Verkooporganisatie>5000</Verkooporganisatie>
<Distributiekanaal>50</Distributiekanaal>
<Productgroep>50</Productgroep>
<Ordernummer>123123</Ordernummer>
<Verkoopgroep/>
<Documentdatum>20061207</Documentdatum>
<Medewerker_nr>e60217</Medewerker_nr>
<Medewerker_naam>Hermans</Medewerker_naam>
<CRM_nr/>
<CIFDedicated/>
<Klantgroep/>
</Algemeen>
<b></XBT></b>
<b><XBT></b>
<Algemeen>
<Verkooporganisatie>5000</Verkooporganisatie>
<Distributiekanaal>50</Distributiekanaal>
<Productgroep>50</Productgroep>
<Ordernummer>123123</Ordernummer>
<Verkoopgroep/>
<Documentdatum>20061207</Documentdatum>
<Medewerker_nr>e60217</Medewerker_nr>
<Medewerker_naam>Hermans</Medewerker_naam>
<CRM_nr/>
<CIFDedicated/>
<Klantgroep/>
</Algemeen>
<b></XBT></b>
</mt_BubaBestand>This is pretty standard procedure if you are posting these messages to R/3. As was pointed out in the weblogs above, when using IDocs you don't need to do any tricky configuration. Just make sure that your XML structure is set correctly (ie: 1 to unbounded, etc) to the limits that you want, and XI will automatically loop the mapping process for each instance of the <XBT> item that it detects in the source message. You mentioned:
<i>For example the following XML file have to split up into 2 xml files (the elements XBT occurs 2 times)</i>
Well, you don't actually split it into two XML files per say, XI just processes the source message straight to multiple IDocs using the IDoc adapter. -
EBP SUS NO PO RESPONSE and Invoice XML MESSAGE CREATED
Hi All,
We have configured EBP - SUS on SRM 7 server with extended classic scenario.PO's are transfering fine from EBP to SUS and are visible in SUS also expected follow on documents are PO response,Confirmation,Invoice.But wen we process the po and confirm all items no po response xml message is created and a local po response is created which is not transferred back to EBP.Later when we create a confirmation for the same po,it is transfered to EBP via serviceack xml message and is visible.
Finally wen v create a invoice it is also created locally and not tranferred to EBP,no xml message is created in this case too.
In XI we are using integration scenario which is based on SRM 5.5 contents.
Any kind of pointers will b appreciated.
Thanks.Hi
Proxies are fine,also i check for events in define transaction type.Here are the values for both response and invoice evrything seems fine.
Description SUS PO Purch.Ord.Rsp
Int. Number Range 01
Ext. Number Range 02
Status Profile
BTrans.Category BUS2232
Description SUS PO Confirmation
Partner Determ.Proc.
Text Schema PCOS
Event Schema
Description SUS Invoice
Int. Number Range 01
Ext. Number Range 02
Status Profile
BTrans.Category BUS2234
Description SUS Invoice
Partner Determ.Proc.
Text Schema SUIV
Event Schema
EVENT DEFINITION
BUS2234 SUS Invoice SUS Invoice
ERROR_OCURRED An Error has Occurred
Any settings tat we need to do to trigger this invoice to create a xml message.Also we regenerated the authorization profiles but had effect on xml creation.
Thanks -
Possibility to transfer additional parameters in outbound XML message
Hi,
is there any possibility to transfer additional parameters in outbound XML message using (BADI: BBP_SAPXML1_OUT_BADI).
Additional parameters are,
1. Communication Method for the Business Partner
2. R/3 Vendor # & logical system for Business Partner
3. Relationship between Business Partner Number and R/3 Vendor Number is BP GUID.
How can we extended the structure in the BADI.
Please give me qucik response.
Thanks & Regards.
SuryaLook for structure which the interface parameters are referring, there you should see some dummy structures referring to INCL_EEW* for e.g. in PO header INCL_EEW_PD_HEADER_SSF_PO. Add additional fields and pass the data accordingly.
Regards, IA -
Handling xml message of size more than 100mb in SAP PI 7.1
Dear Experts,
Is it possible for PI to pick-up and process a XML message of size more than 100 MB in PI 7.1 EHP-1?
If yes, can you please let me know how to handle it?
Thank you.Hi Saravana,
it is not a best practice to more than 100mb..
you can increase below parameters and so that you would be able to process for the best..
u2022 UME Parameters : May be we need to look into the pool size and poolmax wait parameters - UME recommended parameters (like: poolmaxsize=50, poolmaxwait=60000)
u2022 Tuning Parameters: May be we need to look/define the Message Size Limit u201Clike: EO_MSG_SIZE_LIMIT = 0000100u201D under tuning category
u2022 ICM Parameters: May be we need to consider ICM parameters (ex: icm/conn_timeout = 900000. icm/HTTP/max_request_size_KB = 2097152)
Thanks and Regards,
Naveen
Maybe you are looking for
-
Restricting MIGO by Purchasing Group
Has anyone tried and found a way to restrict MIGO to particular purchasing group. There appears to be a opportunity to leverage M_BEST_EKO however efforts thus far have not provided the desired results Regards, Eric
-
Image Quality Difference Among File Formats.
I'm creating a title sequence in After Effects that uses a series of still images. I've been using TIFF formatted images and was pleased with the quality. On the other hand, I've started to try to use Photoshop EPS images because it's easy to create
-
Mac OS X 10.5.7 Server - Problem with SMB-Share
Hi@all, i've following problem with my Mac OS X Server. I want to disable the virtual share points of SMB with Server-Admin. After disabling the virtual share point and saving, the virtual share points are autmotically enabled again. I don't know why
-
Iphone 4s 5.0.1 location services don't work (broken)
Hello, I have an iPhone 4S that orginally came with iOS 5. Initially, the Location Services (GPS) functions were working fine as I played with some apps using them. I think I turned the Location Serivces off to save battery and updated to iOS 5.0.1 d
-
I don't see any plugin support on installing Linux Firefox 8 tar.bz2 package. I've tried symlinking libnpjp2.so and libflashplayer.so to the isntall directory but Firefox doesn't seem to recognize those. I don't find any mention of disabling plugin s