B1i - KeyExpansion no payload in b1i.message
Hi experts,
we create a b1i szenario with keyexpansion. the result of keyexpansion querry for the payload area in b1i.message is missing
Please check some snippets from our xml- & xsl-files:
BETAMETA
<KeyExpansionRule side="R">
<TargetObjectType ObjectTypeId="ItemCount" RequestGenerationRuleLink="/sim.com.sap.b1i.datasync.001/biu.Z.KeyExTest/qry.xsl">
<ObjectKeyList>
<ObjectKey FieldName="manufacturerId" SelectionPath="//KeyExTest/product/manufacturerId"/>
</ObjectKeyList>
</TargetObjectType>
</KeyExpansionRule>
Query - XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sim="urn:com.sap.b1i.sim:entity" sim:force="">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:variable name="key" select="//sim:TargetObjectType/sim:ObjectKeyList/sim:ObjectKey[@FieldName='manufacturerId']/@FieldValue"/>
<xsl:template match="/">
<Envelope>
<Header>
<Action>execsql</Action>
</Header>
<Body>
<BOM>
<BO>
<QueryStatement>
SELECT MAX(ItemCode) AS ItemCount FROM OITM WHERE (ItemCode BETWEEN '99000000' AND '99999999')
</QueryStatement>
</BO>
</BOM>
</Body>
</Envelope>
</xsl:template>
</xsl:stylesheet>
Snippet from transfer-xsl
<xsl:variable name="DB.ItemCount" select="//OITM/row/ItemCount"/>
Snippet from message.xml
I think the entry <DBDataEnrichmentFlag> causes the mistake.
<DBDataEnrichmentFlag xmlns="">false (not relevant)</DBDataEnrichmentFlag>
</Header>
<b1im:Body xmlns:b1im="urn:com.sap.b1i.sim:b1imessage">
<b1im:Payload ObjectTypeId="Z.F.AnySystem_KeyExText" ObjectRole="S">
<KeyExTest xmlns="">
</KeyExTest>
</b1im:Payload>
<b1im:Payload ObjectTypeId="B1.2007_ITM" ObjectRole="R">
<BOM xmlns="">
<BO>
<AdmInfo>
<Object>4</Object>
<Version>2007</Version>
</AdmInfo>
<QueryParams>
<ItemCode>NaN</ItemCode>
</QueryParams>
<Items>
<row>
</row>
</Items>
</BO>
</BOM>
</b1im:Payload>
</b1im:Body>
</B1IMessage>
I hope you can help me!
Tanks!
Hi Sabine,
The object "ItemCount" does not follow the object naming convension of SAP, for B1 object, it shall be Z.B1.2007_ItemCount.
It is recommended to create B1 object via B1iSN Tools.
After creating the object with the correct naming convension:
1. If the key expansion defination (defined in BIU, and a BIU belongs to one BizPackage) was defined after creating the corresponding BizPackage instance:
(1) If the B1iSN patch version is PL07 or higher, the user has to first deactivate the BizPackage instance, modify (but do not need to do any change), save and finally reactivate the BizPackage instance.
(2) If the B1iSN patch version is PL06 or lower, the user has to first delete the BizPackage instance, and then recreate a new BizPackage instance.
2. If the key expansion defination was defined before creating the corresponding BizPackage instance, you can create a csn message and SAP will hlep you.
Regards, yatsea
Similar Messages
-
Unable to read payload from the message object in XI
Hello Guys,
Please help me about my problem in XI version 7.0.im quite new here.
im trying to test my config but error message occured. "Unable to read payload from the message object"
when i checked the comm channel this is the error message :
Error during database connection to the database URL 'jdbc:sqlserver://172.16.40.20:1433;databasename=TRAVEL:SelectMethod=cursor' using the JDBC driver 'com.microsoft.sqlserver.jdbc.SQLServerDriver': 'com.sap.aii.adapter.jdbc.sql.DriverManagerException: Cannot establish connection to URL 'jdbc:sqlserver://172.16.40.20:1433;databasename=TRAVEL:SelectMethod=cursor': com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "TRAVEL:SelectMethod=cursor" requested by the login. The login failed.'
when i tried my login in sql it works...but in this message the login is failed..what shall i do..
Please advice.
Thanks in advance
aVaDuDzHi
Check with the connection string & Authorization of user you have used.
MSSQL string is
jdbc:microsoft:sqlserver://dbhost:1433;databaseName=example;SelectMethod=Cursor
While doing JDBC its good to refer Note 831162 lot of problems can be resolved.
Thanks
Gaurav -
Accessing Payload of completed messages in XI
Hi,
Is there a way to access the payload of a message (errorred out or succeeded) from XI if the message id is known.
PS:please leave out RWB and sxi_monitor transactions. i would like to access these payload in XI mapping.
Thanks and Regards,
Sundararamaprasad.Hi,
i guess you are not clear with my question. i would like to access the payload of someother completed messages.
For example consider you run 5 file to file scenarios. now if i want to access the payload of one of these messges after all these messages have been processed, how can i do it in XI mapping.
Regards,
Sundararamaprasad -
How to get Payload of SOAP Message in Advance Adapter Engine
HI All,
I am wondering if anybody can tell me how to view the Payload of SOAP Sender and Receiver Message in Advance Adapter Engine?
Does Anybody know how to check mapping payload in Advance Adapter Engine because in ABAP you can see the mapping payload under Request Message Mapping but when you use AAE you can't see the Request Message Mapping Payload.
I have a SOAP to RFC Scenario in which I can't see the SOAP Sender and RFC Receiver Mapping Payload.
When I am sending incorrect data to an RFC I am getting this error which is very strange and new to me.
com.sap.engine.interfaces.messaging.api.exception.MessagingException: Unable to split a synchronous message
Any comments would be much appreciated.
Thanks,
IqbalHI All,
I have managed to find Michal's Blog which is talking about getting the mapping payload but unfortunately I don't know how to create Adapter Module so I am wondering if somebody can please provide me EAR file so that I will request the Basis guys to deploy the code and hopefully this will solve my query.
Michal's Blog
As you all probably know while using local Advanced Adapter Engine (AAE) processing in SAP PI 7.1 the message is logged only once (during processing by sender adapter). This is great in terms of performance but what if we need to check the mapping output? Is there a way do do it somehow? It turns out that we don't have such an option in standard yet. Is there any alternative then?
It turns out there is - a simplest adapter module there is...
Local AAE works in such a way that from the sender adapter it executes the receiver adapter so in the outbound message to PI processing you can see the adapter info logs of the receiver adapter and this is what we can use. The idea is to add an adapter module to the receiver adapter which will put the content of the message into the audit log of PI message processing. We can do it by writing a few lines of code:
PI/XI: target message logging with local AAE not possible ? not anymore...
*Please upload the file in any free site or <REMOVED BY MODERATOR>
<READ RULES OF ENGAGEMENT>
Thanks,
Edited by: Prateek Raj Srivastava on Jan 6, 2012 9:10 PM -
How to know the payload size of message
hi can anybody tell me how to know the payload size of message?
Message was edited by:
vvr murtyHi,
To know the size of the input message , i hope we have one option , after copying the test payload from the SXMB_MONI into Message mapping test -- click on test
after come back to design tab in message mappign
click on left side root node and Press CTRL+SHIFT + mouse right click and click on trace -- you can see the size of the message payload.
In SXMB_MONI..
see the payload messges
also see the below link
/people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios
Regards
Chilla -
Transform payload to SOAP message using XSLT
Hello,
I'm working with e-invoice for Finland (called Finvoice) and is supposed to send a soap message as a file via file/ftp adapter.
The output from SAP is an INVOIC idoc that is mapped to a given output structure. This works fine.
The soap envelope is created via xslt transformation.
The Envelope is created correctly but I'm struggling with how to add the payload to the message. It needs to look as shown below, (I'm just showing the essential part).
My problem is that I don't know how to add the doctype part via xslt:
<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE Finvoice SYSTEM "Finvoice.dtd">
I get validation errors when adding this in the xsl. The content of the payload looks good.
Does anyone know how this can be solved?
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<eb:Manifest eb:id="Manifest" eb:version="2.0">
<eb:Reference eb:id="Finvoice" xlink:href="1017000018">
<eb:schema eb:location="http://www.pankkiyhdistys.fi/verkkolasku/finvoice/finvoice.xsd" eb:version="2.0"/>
</eb:Reference>
</eb:Manifest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE Finvoice SYSTEM "Finvoice.dtd">
<?xml-stylesheet type="text/xsl" href="Finvoice.xsl"?>
<Finvoice Version="1.2">
<SellerPartyDetails>
<SellerPartyIdentifier>SellerPartyIdentifier23456789012345</SellerPartyIdentifier>
<SellerOrganisationName>SellerOrganisationName3456789012345</SellerOrganisationName>
// Best regards HanshI,
How to add the the below soap frame thru XSLT mapping.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd">
<SOAP-ENV:Header>
<eb:MessageHeader xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" SOAP-ENV:mustUnderstand="1" eb:version="2.0">
<eb:From>
<eb:PartyId>0037123456678</eb:PartyId>
<eb:Role>Sender</eb:Role>
</eb:From>
<eb:From>
<eb:PartyId>NDEAFIHH</eb:PartyId>
<eb:Role>Intermediator</eb:Role>
</eb:From>
<eb:To>
<eb:PartyId>FI2757800750155448</eb:PartyId>
<eb:Role>Receiver</eb:Role>
</eb:To>
<eb:To>
<eb:PartyId>OKOYFIHH</eb:PartyId>
<eb:Role>Intermediator</eb:Role>
</eb:To>
<eb:CPAId>yoursandmycpa</eb:CPAId>
<eb:ConversationId/>
<eb:Service>Routing</eb:Service>
<eb:Action>ProcessInvoice</eb:Action>
<eb:MessageData>
<eb:MessageId>20081228-010142</eb:MessageId>
<eb:Timestamp>2008-12-28T01:01:42+03:00</eb:Timestamp>
<eb:RefToMessageId/>
<eb:RefToMessageId>XS1027.LPTF82/268</eb:RefToMessageId>
</eb:MessageData>
</eb:MessageHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<eb:Manifest eb:id="Manifest" eb:version="2.0">
<eb:Reference eb:id="Finvoice" xlink:href="XS1027.LPTF82/268">
<eb:Schema eb:location=" http://www.finvoice.info/yrityksen_verkkolasku/ladattavat/Tekniset tiedostot/schemat/Finvoice.xsd" eb:version="2.0"/>
</eb:Reference>
</eb:Manifest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE Finvoice SYSTEM "Finvoice.dtd">
<?xml-stylesheet type="text/xsl" href="Finvoice.xsl"?>
Thanks and Regards,
Hymavathi -
Unable to read payload from the message object
Hi
I have a scenario where i am send request to http receiver and getting the response. When I am testing through WFETCH it is working fine. But when i am testing through XI I am getting the follwoing error
Unable to read payload from the message object
I have tested the XI payload in mapping. I have done all kinds of testing but it is still giving the same error.
One more strange thing is
I have done one BPM scenario where Data is coming from Source to BPM( which is asyn) and then from it will go from BPM to Target (which is sync) But when I am checking the SXMB_MONI... it showing the messages like this
Source to BPM
Target to BPM
Target to BPM.
But i think it should show message like
Source to BPM
BPM to Target
Target to BPM
why i am getting the floHi
Check with the connection string & Authorization of user you have used.
MSSQL string is
jdbc:microsoft:sqlserver://dbhost:1433;databaseName=example;SelectMethod=Cursor
While doing JDBC its good to refer Note 831162 lot of problems can be resolved.
Thanks
Gaurav -
Dear Friends / Experts,
I have a requirement wherein we need to send the alert via email.
Subject / Message Body of the email need to contain the Payload - SalesOrder Number.
Is it possible to achieve this without the use of BPM?
Thanks in Advance
RaghuI need o ensure if the variables in containe of the alert catgory can refer to payload of the message?
no you cannot refer to the payload using the existeing alert container variables....to know what each variable does check this section:
http://help.sap.com/saphelp_nw70/helpdata/EN/d0/d4b54020c6792ae10000000a155106/frameset.htm
Did you forgot to mark this thread as Question??
Regards,
Abhishek. -
What is payload, xi-soap message and xml payload....
can any 1 explains abt What is payload, xi-soap message and xml payload....
Hi Shiva,
see this abstract from messages file:
"The SOAP header of a message contains all the important information that the Integration Server requires to forward the message, while the payload contains the actual business data (such as <PurchaseOrder> in the example above). <b>You can also append an unlimited number of attachments to the message before it is sent. Attachments typically comprise non-XML data, for example, pictures, text documents, or binary data."</b>
Check this link for more info:
http://help.sap.com/saphelp_nw04/helpdata/en/b6/0b733cb7d61952e10000000a11405a/content.htm
Regards,
Subhasha -
How can we attach input payload of failed message in Alert mail
Hi Experts,
Please suggest If by using alert framework (No BPM) can we attach payload of failed message in alert mail.
If yes, Another query...
Scenario: IDoc to File
Requirement: If message fails in PI, need to trigger an alert mail having IDoc number(DOCNUM) in it.
Regards,
RaghavHi,
Thanks for your update Vankata, Please let me know in case message successfully passed receiver determination step and after that if it fails in any other step then how can we proceed for mail including Input payload field values.
Thanks for you suggestions sunil but I need to send mail only when any error happend in PI scenario. While using UDF or RFC lookup concept, I can only send mails independent of PI message failure. I mean to say what if message failed before mapping execution.
One query, Is it possible to handle this kind of scenario requirement where the input field value need to populate in mails ( not using BPM) via Custom modules?
Waiting for more suggestions on this.
Regards,
Raghav
Edited by: RaghavTiwari on Feb 15, 2012 3:55 PM
Edited by: RaghavTiwari on Feb 15, 2012 4:23 PM -
Where is the SOAP Payloads of XI Message in host?
Hi to all,
I'm trying to find the XML documents(SOAP Payloads of XI Message) in PI host.
Anybody knows which file include this files?
Look forward your help!
Thanks!Jean ,
Same query came early morning ...
Information is stored in the table SXMSPMAST (or SXMSPMAST2 ).
This will help you : /people/alessandro.guarneri/blog/2008/09/15/xipi-message-payload-from-java
Regards , -
How to view the payload of a Message if it processed through AAE
Hi All,
Can anybody please tell me how to view the payload if the message processed through Advance Adapter Engine.
I have developed a SOAP to SOAP interface by using Advance Adapter Engine and it is working fine I can see the messages in Runtime Work Bench(RWB) but when I clicked on the Sender and Receiver Adapter I can't see the payload so I am wondering if anyone knows how to view the payload or it is possible to view the payload if the message was processed through Advance Adapter Engine (AAE).
Is there any setting or properties available in NWA to enable or disable the payload of AAE?
Thanks,
IqbalHi All,
Unfortunately I can only see the SOAP Document but no Payload.
here is what I can see
- <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
- <SOAP:Header xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
- <sap:Main xmlns:sap="http://sap.com/xi/XI/Message/30" versionMajor="3" versionMinor="0" soap:mustUnderstand="1">
<sap:MessageClass>ApplicationResponse</sap:MessageClass>
<sap:ProcessingMode>synchronous</sap:ProcessingMode>
<sap:MessageId>75e50f37-9bef-11e0-af98-000027d151a6</sap:MessageId>
<sap:RefToMessageId>7597008d-9bef-11e0-a027-000027d151a6</sap:RefToMessageId>
<sap:TimeSent>2011-06-21T10:15:59Z</sap:TimeSent>
- <sap:Sender>
<sap:Party agency="http://sap.com/xi/XI" scheme="XIParty" />
<sap:Service>Srv_xxxxx__Sender_SOAP_AAE_BS</sap:Service>
</sap:Sender>
- <sap:Receiver>
<sap:Party agency="http://sap.com/xi/XI" scheme="XIParty" />
<sap:Service>Srv_xxxxx_Sender_SOAP_AAE_BS</sap:Service>
</sap:Receiver>
<sap:Interface namespace="urn:xxxxxxxx.com:pi:A_TEST:HTTP_TO_SOAP_AAE">SI_OS_xxxx_Request_AAE</sap:Interface>
</sap:Main>
- <sap:ReliableMessaging xmlns:sap="http://sap.com/xi/XI/Message/30" soap:mustUnderstand="1">
<sap:QualityOfService>BestEffort</sap:QualityOfService>
</sap:ReliableMessaging>
<sap:System xmlns:sap="http://sap.com/xi/XI/Message/30" soap:mustUnderstand="1" />
- <sap:HopList xmlns:sap="http://sap.com/xi/XI/Message/30" soap:mustUnderstand="1">
- <sap:Hop timeStamp="2011-06-21T10:15:59Z" wasRead="false">
<sap:Engine type="AE">af.dgx.dbdgx66</sap:Engine>
<sap:Adapter namespace="http://sap.com/xi/XI/System">XIRA</sap:Adapter>
<sap:MessageId>75e50f37-9bef-11e0-af98-000027d151a6</sap:MessageId>
</sap:Hop>
</sap:HopList>
</SOAP:Header>
- <SOAP:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
- <sap:Manifest xmlns:sap="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink">
- <sap:Payload xlink:type="simple" xlink:href="cid:payload-75e51c499bef11e0a13a000027d151a6atsap.com">
<sap:Name>maindocument</sap:Name>
<sap:Description>main document</sap:Description>
<sap:Type>Application</sap:Type>
</sap:Payload>
</sap:Manifest>
</SOAP:Body>
</SOAP:Envelope>
Do I need to do anything in NWA to enable the payload for Sender and Receiver?
Thanks,
Iqbal -
An Attachement for the payload of the message monitoring.
Hello ,
From the forum links, I found that to access a message payload for the message monitoring, we need to call <u>cl_xms_persist->read_msg_all.</u>
and the export parameter would give the payload message as an attachment.
<i>
But when I tried to find if there is any attachment with the messages I dont see them (size comes with the value 0).</i>
<u> CALL METHOD ex_message->numberofattachments
RECEIVING
size = size.</u>
<b>
Is there any other option available to get a payload for the message?</b>
Thanks a lot.Hi Arjun,
You can see your payload in Tcode SXMB_MONI
SXMB_MONI-->
MONITOR FOR PROCESSED XML MESSAGES-->
click F8 (if required change the date of execution from to select specific message on date range)-->
Double click on the right most 3D button type of box before the flag icon,
Now you will be able to see the Different pipeline Execution steps(7 Steps) that Your message has under gone .Click on any one of them and see your payload in payload folder at each and every step.This helps us in understanding the way your message is undergoing transformations through out its journey from sender to receiver.
VIRTUAL RECIVER..Is actually a part of an annonymous and adressable unit like service to simulate the receiver that is participating in B2B communication.Its jus a mandatory parameter that has to be mntione din Receiver deternination when We test our B2B scenarios using this option in ID part of PI/XI.
Thanks,
Ram. -
PI 7.1 SOAP Adapter - Message Payload for Failed Messages - Where to find
We are exposing a webservice through SAP PI. Occassionaly we have customers calling our webservice and some failure occurs. The error is usually the way that the customer is calling the webservice (missing elements, misnamed tags, bad content in the WS payload..). Generally in these cases we can see the error in communication channel monitoring.
Here is an example:
12/12/11 4:39:07 PM com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: cvc-complex-type.2.4.b: The content of element 'SupplierInvoice' is not complete. One of '{"":Invoice}' is expected. at line 1, column 227
12/12/11 4:39:06 PM request received for a channel
I understand the issue, but it would be extremely helpful to have the full SOAP Envelope and Payload of a request when it fails. The communication channel will show a SUCESSFUL message payload with a link to it. But it does not show a failed one.
Where can I find the FAILED payload that accompanies this message? These failures occurs before any mapping or being seen in RTWB Adapter Engine message monitoring... I did some searching around, but did not find anything offhand. I would greatly appreciate any pointers from anyone who has crossed this bridge.Hi,
When the web service is being called by external application, the first point of contact would be the sender communication channel which converts the SOAP message into XML message and pass to integration engine ( In case of success )
But if the web service call fails due to WSDL validation, Authentication issue, Bad content, invalid content type, you would not see the payload in the sender communication channel or in Adapter engine. You can just see error message in the sender communication channel . I have experienced this many times and i always ask the web service team to provide the SOAP message for validation/investigation purpose. -
Where is stored xml payload of XI messages
Hi to all,
where can I find the XML payload of each XI Message that I see in the SXI_MONITOR? I want to find the table or the FUNCTION MODULE that contains/retries the XML Payload.
Thanks to all!Hi,
The messages are stored in the Table.
SXMSPMAST---->Integration Engine: Message Queue (Master)
SXMSSYERR---->XMS: System Error Error Codes
SXMSCLUP -
>XMB: Property Cluster
SXMSCLUR -
>XMB: Resources Cluster
Regards
San
Maybe you are looking for
-
I recently upgraded to iTunes 7 (from iTunes 6), and purchased a new 80 GB iPod. When I initially connected the iPod, automatic sync was enabled, and all my library material was copied to the iPod, which was fine. However, when next I connected my iP
-
Problem printing the methods due to lack of understanding
Okay, i'm pretty sure i have all my code correct except for the System.out.println's at the top to print the methods below. What am i doing wrong? Its suppose to be a program that prompts for amount of random numbers, the first part sorts/finds the m
-
I want to focus on the "Help" tab at this point. I want to be able to display different information each time the user hits the "next" or "previous" buttons in the "help" section. I figured the easiest way would be to set up an array in the HelpMenu
-
Unused fonts in generated report
Hi, My file turned out too large, so I generated a report and found two fonts that I'm no longer using in the file. How can I take these out of the file? Thanks. Dan
-
Hi, I submitted my first podcast to the iTunes Music Store yesterday. I have the podcast on my .Mac homepage and submitted it through iWeb. I had two podcasts on the website, but only wanted to submit one episode, since they were on different topics,