ABAP Proxy - Exlcluding XML tags at runtime
Hello,
Scenario: ABAP Proxy is being used to send an XML file to third party from SAP R/3 via SAP PI.
SAP R/3 version - 4.7
SAP PI version - 7.0
Requirement: Based on some conditions certain tags should be omitted and in some case the entire parent tag should be omitted from the XML file.
Can this be acheived by some programming in ABAP.
All structures created under an ABAP proxy message contains a field, CONTROLLER of type PRXCTRLTAB. Can this be used to acheive the above requirement? If yes how?
Please provide some inputs. If this cannot be done in ABAP which the best way to do this and how?
Regards,
Sajith.
Hi,
>>>Requirement: Based on some conditions certain tags should be omitted and in some case the entire parent tag should be omitted from the XML file.
>>Can this be acheived by some programming in ABAP.
yes of course
of you can remove that inside a mapping in PI
Regards,
Michal Krawczyk
Similar Messages
-
Hi,
Is there a way to exclude specific XML tags at runtime. For example: If a value is zero for say tag <amount> , the tag must be excluded else the tag must be present.
Can this be done.
Regards,
RanjithHi,
>>>Requirement: Based on some conditions certain tags should be omitted and in some case the entire parent tag should be omitted from the XML file.
>>Can this be acheived by some programming in ABAP.
yes of course
of you can remove that inside a mapping in PI
Regards,
Michal Krawczyk -
Problem in ABAP Proxy(sometimes XML Messages are not being created)
Hi,
I am trying to send the data from ECC to CRM when post goods issue is done for a delivery from ECC side. I called my proxy method in BADI : DELIVERY_PUBLISH.
And after calling the method, I used commit work also.
But the problem is, some times it is working fine. and some times the XML messages are not getting created. When I go in debug, looks everything is fine.
I am unable to understand why this inconsistency.
Could you please help me out, do I need to take any more precautions.
Thanks,
SandeepYou mean you can't find any message in SXMB_MONI of your ECC or is it XI where you can't see message?
If you have not checked in SXMB_MONI of ECC then may be messages are created but they are going into error and that's why you are not able to see any message in XI. -
ABAP Proxy generation from JAVA
Hi,
Is it possible to generate ABAP proxy classes from JAVA?
If possible then how do we call them during runtime from JAVA?
Here is what I am trying to do.
I have XSD ( Open Travel Standards schemas). I want to generate ABAP proxy classes for these XSDs.
So that I can call these ABAP proxy classes from JAVA during runtime. Real implementation of these methods will be implemented in ABAP.
Thanks,
Amara.hi amara,
check this link
http://help.sap.com/saphelp_nw04/helpdata/en/14/555f3c482a7331e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nwpi71/helpdata/en/3e/e3fb40f17af66fe10000000a1550b0/content.htm
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a068cf2f-0401-0010-2aa9-f5ae4b2096f9
let me know am i reach u r point
bvr -
Unallowed RFC-XML Tag (SOAP_EINVALDOC) - Web Service using ABAP Proxy
Hi there
I am trying to consume a Web Service using ABAP Proxies. I have done the following in the system:
I configured the HTTP and HTTPS Proxy settings.
I created a package with package interfaces SAI_TOOLS and SAPPINT included under the Use Access tab.
I created the proxy classes by using the WSDL provided by the system I'm trying to interface with.
I created my HTTP destination RFC via SM59.
I configured a logical port for the proxy.
I developed the ABAP code for calling the proxy.
In the code the exception CX_AI_SYSTEM_FAULT gets raised with error message <b>"Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b> when I call the method for passing data to the destination system in the proxy class.
I had a look at SM21 and the following message was written in the log:
<b>"SOAP Runtime: SOAP Runtime exception: 111 occurred in method XP_READ_TAG of class CL_SOAP_XP at position 1
SOAP Runtime: Exception message: Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b>. I also looked at SAP Note 919886 which states that it can be dumps in the system, missing configuration or the path prefix of the RFC destination that is incorrect. I cannot find any ST22 entries. The trace file looks as follows:
SAP System ID: DGH
Client: 009
User: COLESKG
System time: 072910
System date: 20070531
SAP Release: 700
Host: hd307c
Operating system: AIX
DB System: ORACLE
Program: ZUK_IPA00003
Processing State: 0
Location: Client
Transport Binding: http://schemas.xmlsoap.org/soap/http
SOAP Application: urn:sap-com:soap:runtime:application:client
SOAP Runtime Protocol: http://www.sap.com/webas/630/soap
/runtime/protocol
SOAP Protocols: <initial>
Request Message: <initial>
Response Message: <initial>
Fault: <initial>
Registry: <initial>
SOAP Roles: <initial>
Trace Level: 3
Logging Level: 2
Monitoring Level: 0
Security Profile: <initial>
WS Security Protocol: <initial>
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to create client application for Proxyclass:
ZES_CO_PROCESS_EMPLOYEE_BATCH LP name: DEFAULT
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application created
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to initialize client application
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Try to initialize application
urn:sap-com:soap:runtime:application:client
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new runtime CL_SOAP_RUNTIME_CLIENT
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Try to register application
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Application registered
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Read type of transport binding from
configuration
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new transport binding type
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() Try to initialize
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() http://schemas.xmlsoap
.org/soap/http initialized
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Try to create request message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Request message created
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Try to create response message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Response message
created
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Try to initialize
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Check transport binding
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Create runtime protocol
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Runtime-intrinsic
Protocol as SENDER with Priority 5
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create trace header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Trace header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create logging header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Logging header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT()
Initialized
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Try to create instance for http://www.sap.com/webas/630/soap
/runtime/session/protocol::http://www.sap.com/webas/630/soap
/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Instance of CL_SOAP_SESSION_PROTOCOL created for http://www.sap.com/webas/630/soap/runtime/session/protocol::http://www.sap.com/webas/630/soap/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Session Protocol
as SENDER with Priority 5
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Try to configure features
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() Try to
create ICF Client for DESTINATION = ALSB
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() ICF
Client created by DESTINATION
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_DESTINATION_URL_PATH() Set
DESTINATION PATH = /SapHRSmartIntegrationWeb/processes/ProcessEmployeeBatch.jpd
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Features configured
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Application urn:sap-com:soap
:runtime:application:client initialized
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application initialized
Trace file opened at 20070531 073030 GMT SAP-REL 700,0,95
Error in module XMLParserGetNextElement:773
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfcpars.c#2 $
Unallowed RFC-XML Tag
Error in module XMLConverterReadTag:3061
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfccnvrt.c#5 $
Unallowed RFC-XML Tag(24)
Error in module ab_soap:4392
Id @(#) $Id: //bas/700_REL/src/krn/rfc/abxrfccal.c#2 $
failed with return code 1
It then must be something in the config. Has anyone got any idea why this message is encountered?
Kind Regards
Gustav Coleske
Message was edited by:
Gustav ColeskeHi,
I have the same problem as described.
Can you give me a little more information about the error you have solved in the proxy.
Thanks for help
John -
Hi XI experts,
Probably a simple question for you guys. I have created an inbound invoice abap proxy in which I have to perform several checks before executing a simple FM. The checks with fields of the INPUT parameter are no problem at all but when check is successfull I have to copy the incoming XML (tag-structure) to the application server. But I don't know where to get my incoming XML ? It's been mapped and pushed to my method EXECUTE_ASYNCHRONOUS INPUT parameter in a generated abap structure that does not have the same fields/tags as the XML...
Basically, what I need is something to just copy the original XML to the application server (in my Abap Proxy).
Thanks for your help !
Kind regards,
Christof.Hi Christof,
attachments are handled only at adapter level, not at mapping.
You could create the attachment at sender adapter side and it would be sent to the receiver proxy, but the attachment would be the original input message and not the mapped one.
If you don't have mapping or if you don't care whether the saved message is the original or the mapped one, go for it.
Best regards,
Henrique. -
How to catch CONVT_NO_NUMBER runtime error in ABAP Proxy
Hi all,
In our abap proxy program, sometimes the CONVT_NO_NUMBER will happen and cause the program dump and then stuck the whole queue. I noticed that this error cannot be caught by CX_ROOT exception class. So, how can I catch this runtime error and avoid the dump of our program?
Thanks,
YiNingHi,
While Executing the proxy,first give \h TC and then execute the proxy then it will automatically got to debugging mode.
I think ur data is worng,if it is wrong then only u will get this type of errors.
Regards,
Phani -
Client Java Proxy - ?xml version="1.0" encoding="UTF-8" tag missing
Hi All,
I have a Java Proxy to File scenario. I am getting the output in the SAP XI but when i check the XML payload <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> is missing from it. Rest of the document is coming fine.
Any idea how to fix it up?
Thanks and Regards,
Anurag Mahendru.Here it is:
Re: ABAP Proxy -> XI - > File on a Website
As I know, this is still on discussion, if the Java Proxy generation will be replaced by web service proxy generation.
But existing Java Proxy applications definitivley will run in PI 7.1 as well.
Regards
Stefan -
INTERNAL - AMF_ERROR in XML -- ABAP proxy scenario
Hi Experts,
Can any one help me to solve this following issue please, it is happening while I am executing the scenario between XML File to ABAP Proxy scenario.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="INTERNAL">AMF_ERROR</SAP:Code>
<SAP:P1>1</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>Error when processing message number 1 in package No object type found for the message. Check that the corresponding process is activated An exception has occurred.</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>.
This XML message has got 5 Lines Header and more than 100 Lin Items, this kind of Header and Lin item message 3 to 4 in one XML, I am using multi mapping. Message mapping shows working fine, OM also shows working fine. BPM is splitting messages to send messages to ABAP Proxy on SNC 7.0. After I have done all with SDN experts support, still I am having the above issue. can any one experties might help to resolve this?
I will appreciate your support.
Thanks & Regards
SanCan you please explain the solution.
Regards,
Rashi -
Tags dont appear in XI from ABAP Proxy!!
Hi,
I have an interface which receives the data from SAP to XI via ABAP proxy. There are some fields in the structure which are mandatory in XI and the values are not been passed from SAP. As a result, the tags dont appear when the message enter XI and this results in the message mapping failure.
As a workaround, we are checking for the existence of this field in the incoming message and assigning some constant value to it.
But is this, the only option? do we have any better approaches to tackle this?
Thanks for all your inputs,
Regards,
Vinayak KamathHi Vinayak,
<i>There are some fields in the structure which are mandatory in XI</i>
In XI, we make the fields mandatory based on the requirement and business rules of the sender side. If u r making it mandatory, that means the sender has requested u to do so. This implies that the sender should send the data according to the specifications it has provided to XI implementer.
So either request the sender to send data according to its specification or change the structure in XI.
If u couldnt do either, handling it in message mapping is good enough.
<i>
do we have any better approaches to tackle this?</i>
U may also configure alerts for the same
<i>[Reward if helpful]</i>
Regards,
Prateek -
ABAP Proxy connection Between PI and SRM for XMLs
Hello Experts,
We are trying to set up ABAP proxy connection between PI 7.1 and SRM so we can send XML from SRM into PI.
Our SRM developer is getting an SLD error (below) and seems like something is not set up right in the SLD. Could you help me out with any kind of blog/documention on setting up an ABAP proxy connection between PI and an ABAP system. Something that talks about what steps we need to take in PI and SRM.
error ...
*We saw the error during debugging. This error is preventing XML output
to be sent to PI.
BBP_BD 002 An SLD system has not been assigned to logical system
Thanks,
MayurThanks all for a quick reply. I also had to take following step to achieve the task.
adding the XI system to the SRM config - SRM Server -->
Technical basic Settings --> Define System Landscape? (also please
associated documentation in that link for XI)
Thanks,
Mayur -
ABAP Proxy viewing of historical web service posts - XML files
Hi there
I have developed a web service that posts via an ABAP proxy. The webservice posts successfully. Where do I see the historical XML files of the posts of my executed webservices?
Kind Regards
Gustav ColeskeHello Torsten,
It seems that the Web Service You are going to consume is a SOAP 1.2 one.
It is apparently making use of the so-called "SOAP Web Method Feature" which is part of the SOAP 1.2 specification (see [Web Method Feature (W3C)|http://www.w3.org/TR/soap12-part2/#WebMethodFeature]).
Unfortunately, SOAP 1.2 is, to the best of my knowledge, not supported as yet by the SOAP Adapter in SAP NW 7.0 / 7.1. That leaves You, in theory, with one of the following options:
- It might be possible to consume that service with the help of Axis framework (see [Using the Axis Framework in the SOAP Adapter|http://help.sap.com/saphelp_nw04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/frameset.htm]). SAP Help states that with the help of the Axis framework SOAP 1.2 can be used. However, there are no further details on that subject, especially whether Web Method feature can be utilised (btw - has anyone tried this?).
- Ask service provider for a SOAP 1.1-compatible WSDL.
- Attempt to reverse engineer the SAP SOAP proxy so that it is capable of consuming a SOAP 1.2 Web Method-based web service (has anyone done this before?).
Would You be so kind to post whether, and how, You were able to consume this web service?
Kind regards
Wiktor Nyckowski -
Hi Experts,
I have a scenario like File to ABAP Proxy. Input file is huge like 60 MB and it's a XML file. Currently, it's consuming large resources in both XI & R/3 system.
I would like to use the option of Recordsets per message using the File Content Conversion. As the Input file being the XML, how the parameters under the File Content Conversion can be handled? Can you please throw some input on this?
Thanks,
Kumar.Hi Kumar,
I guess u cannot use File Content Conversion for an input file which is in XML format. But if ur concern is to handle the large file then, u can go thru the following link which talks abt handling large files...
<a href="/people/alessandro.guarneri/blog/2007/02/21/sap-xi-acting-as-a-huge-file-mover:///people/alessandro.guarneri/blog/2007/02/21/sap-xi-acting-as-a-huge-file-mover
Regards,
Akshay -
Testing SOAP/ XML in ABAP Proxy!
Hi Experts,
In an interview I was asked a question on abap proxy.
In a scenerio where data from file gets into R/3 ztable through abap proxy, when data has already left XI and about to enter r/3, there is some SOAP XML format , and data can be tested/ debugged at this point. I was not sure about the exact point, but surely not the payload in SXMB_MONI.
Can any1 tell me more about this part of Abap proxy testing.The interviewer said, this is popular testing of abap proxy scenerio . I am also sure, I am not asking for how to debug Abap coding in the method endmethod part in SPROXY .
Can any1 help!
Regards,
Arnab.Hi Arnab,
In sproxy choose your interface and
go with menu proxy---> Test interface
follow the link which gives u step by step procedure
XI: Debug your inbound ABAP Proxy implementation
Regds,
Shiva -
ABAP Proxy - elements not filled in return XML
Hi
I have created an ABAP proxy based on Message Types in XI.
In DEV system it returns all values as it should. When I transported it over to the QA system, almost all XML-elements are returned empty.
I know the communication is OK and that the proxy is accessed because one part of the XML is filled (4 out of 100 fields). What I don't understand is why the rest of the fields are returned empty.
If I use the "Test Interface" function, the XML is filled correctly. It's when I test it with an HTTP poster that the problem arise.
Anyone had this problem before?
regards Ole MugaasHi Ole,
1. Try to regenerate (Ctrl+F3) the proxy.
2. Debugg the proxy and see when you are transfering the data what values are being filled up.
3. Aslo make sure that you have not made any changes in the data type structure after importing it into QA system.
Regards,
Sarvesh
Maybe you are looking for
-
How do I change the default paper size in Firefox if Printer Properties does nothing?
I print on different including a receipt printer with roll paper. I had to reset Firefox yesterday because of a bug, and then changed the Printer Properties to be able to print again in the right format on the receipt paper. But now everything I prin
-
Dear all in f.5d Company code 2100: Breakdown calculated for 011151 documents in f.5e Am getting this error Vendor reconciliation acct Post distr G/L acct OrBA OrPB Amount in LC1 ( G/L acct BusA TPBA Amount in LC1 (INR) 90001100
-
How to edit menu down arrows?
In my horizontal menu navigation bar, the down arrows are too far from text. How to edit?
-
Hi Y'all, I have been going through the weblogs for splitting the messages at the message mapping level either by using context or by using the nulti mapping techniques. Also I hear that there is a restriction of not able to use these for Integration
-
ValueHolder vs. Proxy Indirection
Hi all, We have a new project and we must decide what kind of indirection we'll use. I analyzed both indirection types, and noticed that ValueHolder is simpler but kind of 'pollutes' the code, OTOH proxy indirection is transparent but it needs to hav