Modify SOAP Namespace for ABAP WS
Hi Experts,
I need to modify namespace on the web service, I have to provide this WS from an ABAP AS 7.0 SP10 (we don't have XI or PI infrastructure) but the request generated from SAP WSDL is like this:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
<soap:Body>
<urn:GetExAvailability>
</urn:GetExAvailability>
is it possible to change this name space urn="urn:sap-com:document:sap:soap:functions:mc-style" and the prefix "urn" before "GetEx..."?
From Service Definition in the transaction SE80 the SOAP NameSpace is read only, but the customer that have to use this WS, use a request(that they can't modify) like this:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetExAvailability xmlns="http://www.aaaaaa.de/">
</GetExAvailability>
Any help would be greatly appreciated.
Thanks!
Regards,
Max.
Hi Max,
we are facing a similar problem and would like to change a namespace from "urn:sap-com:document:sap:soap:functions:mc-style" to "urn:sap-com:document:sap:rfc:functions"
Did you find a solution to the problem?
I found the explanations on how the the different namespaces work, but there is no documentation on where this namespace is configured or how to change it.
Any help would be greatly appreciated.
Thanks,
Fabian
Similar Messages
-
How modify SOAP Namespace on ABAP WS
Hi Experts,
I need to modify namespace on the web service, I have to provide this WS from an ABAP AS 7.0 SP10 (we don't have XI or PI infrastructure) and the request generated from SAP WSDL is like this:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
<soap:Body>
<urn:GetExAvailability>
</urn:GetExAvailability>
is it possible to change the namespace urn="urn:sap-com:document:sap:soap:functions:mc-style" with customer namespace and cancel the prefix "urn" before the WS name "GetExAv..."?
From Service Definition in the transaction SE80 the SOAP NameSpace is read only, but the customer that have to call this WS, can olnly post a request(they say that can't modify their standards) like this:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetExAvailability xmlns="http://www.customercompany.de/">
</GetExAvailability>
Any help would be greatly appreciated.
Thanks!
Regards,
Max.Hi Max,
we are facing a similar problem and would like to change a namespace from "urn:sap-com:document:sap:soap:functions:mc-style" to "urn:sap-com:document:sap:rfc:functions"
Did you find a solution to the problem?
I found the explanations on how the the different namespaces work, but there is no documentation on where this namespace is configured or how to change it.
Any help would be greatly appreciated.
Thanks,
Fabian -
Changing SOAP Namespace for Web Service
Hi Experts,
Got a requirement to modify the SOAP namespace for a BAPI program exposed as a web service on SAP.
The fieldd denoting the SOAP namespace is accessible via transaction SE80 and navigating under: Package Name>Enterprise Services>Service Definitions> and double clicking on the exposed web service and selecting "Properties".
The SAP SOAP namespace provided by default is: urn:sap-com:document:sap:rfc:functions
Is anyone aware of a means to modify this namespace on the web service? Any help would be greatly appreciated. Thanks!
Regards,
Lionelhi tan,
Although the SOAP Runtime is generally designed for RFC-type calls, it can also be used to access Web Services that are not implemented in a Web AS. For example, the Google search engine offers some services using SOAP, which can be accessed from the SAP Web AS.
Naming Conventions
The SOAP Runtime offers three methods of representing the original ABAP names (everything in upper case and separated by underscores) as data types in XML. Each method is associated with a different XML namespace:
urn:sap-com:document:sap:rfc:functions this is the canonical representation, which means that all names in the XML document are represented as they are in ABAP on a 1:1 basis. For repeating groups (such as the rows of a table), an XML element with the tag name item is generated (in writing) and expected (in parsing).
urn:sap-com:document:sap:soap:functions:uc-style this naming convention is similar to the first one, with the difference that instead of item, the name of the structure of the table row is generated or expected.
urn:sap-com:document:sap:soap:functions:mc-style this third convention also involves conversion of the upper case ABAP names to mixed case (both upper and lower case), according to the following algorithm: All characters except the first one are implicitly in lower case, and the underscore acts as a Shift key to effect an upper case character. RFC_SYSTEM_INFO thus becomes RfcSystemInfo. The addition of an initial underscore makes the first character lower case: RFCSYSTEM_INFO thus becomes rfcSystemInfo. An underscore character is transferred by adding an additional underscore: RFC__SYSTEM_INFO thus becomes Rfc_systemInfo.
When using the SOAP Runtime caller side, note the following points regarding the naming convention:
If the called Web Service is implemented in the Web AS 6.20, always use the namespace convention urn:sap-com:document:sap:rfc:functions. The namespace for the SOAP method must also be set according to this convention. To do this, specify the importing parameter nsvalue of the method set_method in the class CSoapDocument.
Setting the namespace of the naming convention for the SOAP method does NOT automatically mean that the SOAP Runtime also sets the naming convention for serialized SOAP messages. As a developer, you must ensure that the naming conventions are followed. To do this, you can use the methodsset_tag_name_format and set_item_name_format:
The method set_tag_name_format of the class CSoapDokument can be used to control the upper case or mixed case naming convention for tags that correspond to ABAP data types. To activate the normal ABAP format (upper case), use the value CSoapConstants=>ic_tagfmt_default for the importing parameter format. To switch to the mixed format, use the value CSoapConstants=>ic_tagfmt_mixcase.
The method set_item_name_format of the class CSoapDokument is used to control the use of the tag name for repeating groups in ABAP data types (table rows). To implement the structure name of the table row, set the value CSoapConstants=>ic_itemfmt_default for the importing parameter format. To use item as a tag, set the value CSoapConstants=>ic_itemfmt_useitem.
All names passed to the API must be in a format that is expected by the server side. This affects the importing parameter name of both the methods set_method and add_parameter of the class CSoapDocument. The SOAP Runtime caller side does not perform any conversion of these names. The document class on the calling side does NOT take into account the namespace you have selected here.
You should only implement the mixed case naming convention where it is necessary. This particularly applies when calling external Web Services, over the structure of which you have no control.
Sending the SOAP Header in the Call
The SOAP Framework does not provide general support for the handling of SOAP Header elements.
However, for calling external Web services, it is sometimes sufficient to be able to send simple Header entries as part of the request. In this special case, you can use the class CSoapDocumentHeader.
An instance of the class can be filled using the methods set_header_as_string or set_header_as_dataref. Using the method add_header, it can then be added to an instance of the class CSoapDocument, and is then serialized as a part of the document instance when the call is made.
regards
karthik
dont forgrt to reward me points if it helps u -
Modify SOAP header in ABAP for 3rd party WSDL
Hi SDN,
I want to consume a 3rd party WSDL in ABAP. I have created the proxy through SE80, and created the logical port through LPCONFIG. The WSDL I'm using needs me to include some authentication (developer key, and password) in the header portion of the SOAP message. Example below.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://api.channeladvisor.com/webservices/">
<soapenv:Header>
<web:APICredentials>
<web:DeveloperKey>XXX</web:DeveloperKey>
<web:Password>XXX</web:Password>
</web:APICredentials>
</soapenv:Header>
<soapenv:Body>
<web:DoesSkuExist>
<web:accountID>XXX</web:accountID>
<web:sku></web:sku>
</web:DoesSkuExist>
</soapenv:Body>
</soapenv:Envelope>
How can I edit the SOAP header to include this information so that this WSDL will work when I call it? There must be a better way than hardcoding the SOAP call and using an HTTP client call.
I've looked in google and SDN and haven't been able to find a good answer to this problem.
Thanks guys.Have a search in SDN for "if_wsprotocol_ws_header" - there are several postings and examples and if you goto SE24 and look at the documentation attached to IF_WSPROTOCOL you can get to the example referred to in some of the SDN postings. I also found "real" examples in SAP e.g. function group FITP_SABRE_WS, and I got it to work OK (eventually) after browsing some of these.
Jonathan -
JCAPS 5.12 - modifying SOAP header for webservice Invocation
I am trying to call an external web service from JCAPS 5.1.2 and need to set a token in the SOAP header. I am able to do this in other client implementations, however, the methods to modify the header don't seem to be exposed within JCAPS 5.1.2 or I do not know how to find the methods.
Has anyone tried this before?Hi Experts,
I'm trying to protect a web service deployed in jcaps 5.1.1, using SAML assertions against an Access Manager 7/7.1, the web services clients are both, web and standalone applications, I also have read netbeans tutorials, that expose how to implement identity webservices using AppServer 9.1 + AccessManager 7.1 using the SAML Holder of key and other security mechanisms, but this implementation requiere modifications to the server.policy file to add support to SOAP message security providers and HttpServlet message security providers, the addition of a library called amwebservicesprovider.jar to the classpath suffix (this library implements the jsr-196 java Authentication Service Provider Interface for Containers) and aditional configuration required in the AM side that is not detailed in the tutorials.
Could someone guide me on how to protect the acces to a web services deployed in the jcaps logicalhost based on AM roles assigned to users?
Any help is aprecciated
Juan -
Can we edit SOAP Header for an Outbound ABAP Proxy message?
Hi,
Can we add some information such as dynamic configuration to the SOAP header for the outbound ABAP Proxy from ABAP report in SAP Application System?
Regards,
Praveen Gujjeti.Hi Praveen, have you found soulution for this? Can you share it with me?
From here http://help.sap.com/saphelp_nw70/helpdata/EN/d6/49543b1e49bc1fe10000000a114084/content.htm
The help described that:
Set logging in the message header. This means that this message is logged even if logging is deactivated explicitly in the configuration. The logging information is part of the message header:
¡ <SAP:Logging>1</SAP:Logging>
Activates logging explicitly.
¡ <SAP:Logging>0</SAP:Logging>
Deactivates logging explicitly.
So it means that we can edit SOAP header for outbound ABAP proxy. But i haven't find the correct method to do that. -
Web Dynpro for ABAP iVIew's Namespace parameter
Hi Gurus,
I am trying to create Web Dynpro for ABAP iVIew in portal
There I have confusion while giving namespace
say I m trying to create iView for standard WD4ABAP Application
which lies in SICF at below location
/default_host/sap/bc/webdynpro/sap/CNP_LIGHT_TEST
when I test it from here (SICF) Its running.
But when I create a iVIew for it I have given following parameter
Application Name : CNP_LIGHT_TEST
and for namespace I hav tried all possible combinations as below
/default_host/sap/bc/webdynpro/sap/
/default_host/sap/bc/webdynpro/sap
/sap/bc/webdynpro/sap/
/sap/bc/webdynpro/sap
/sap
/sap/
But i m unable to run it
Its giving Portal Runtime Error
Plz guide me
Points will be Awarded for ans !!Hi,
you give the namespace as ''sap'.
Because that is the root node.
Suppose if you want to see that go to SICF transaction and observe that.
sap will be the root node
and remaining will be down of that.
Thanks & Regards,
Lokesh -
How to create a node with attributes at runtime in webdynpro for ABAP?
Hi Experts,
How to create a node with attributes at runtime in webdynpro for ABAP? What classes or interfaces I should use? Please provide some sample code.
I have checked IF_WD_CONTEXT_NODE_INFO and there is ADD_NEW_CHILD_NODE method. But this is not creating any node. I this this creates only a "node info" object.
I even check IF_WD_CONTEXT_NODE but i could not find any method that creates a node with attribute.
Please help!
Thanks
GopalHi
I am getting the following error while creating a dynamic context node with 2 attributes. Please help me resolve this problem.
Note
The following error text was processed in the system PET : Line types of an internal table and a work area not compatible.
The error occurred on the application server FMSAP995_PET_02 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: IF_WD_CONTEXT_NODE~GET_STATIC_ATTRIBUTES_TABLE of program CL_WDR_CONTEXT_NODE_VAL=======CP
Method: GET_REF_TO_TABLE of program CL_SALV_WD_DATA_TABLE=========CP
Method: EXECUTE of program CL_SALV_WD_SERVICE_MANAGER====CP
Method: APPLY_SERVICES of program CL_SALV_BS_RESULT_DATA_TABLE==CP
Method: REFRESH of program CL_SALV_BS_RESULT_DATA_TABLE==CP
Method: IF_SALV_WD_COMP_TABLE_DATA~MAP_FROM_SOURCE_DATA of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_COMP_TABLE_DATA~MAP_FROM_SOURCE of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_COMP_TABLE_DATA~UPDATE of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_VIEW~MODIFY of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_COMPONENT~VIEW_MODIFY of program CL_SALV_WD_A_COMPONENT========CP
My code is like the following:
TYPES: BEGIN OF t_type,
CARRID TYPE sflight-carrid,
CONNID TYPE sflight-connid,
END OF t_type.
Data: i_struc type table of t_type,
dyn_node type ref to if_wd_context_node,
rootnode_info type ref to if_wd_context_node_info,
i_node_att type wdr_context_attr_info_map,
wa_node_att type line of wdr_context_attr_info_map.
wa_node_att-name = 'CARRID'.
wa_node_att-TYPE_NAME = 'SFLIGHT-CARRID'.
insert wa_node_att into table i_node_att.
wa_node_att-name = 'CONNID'.
wa_node_att-TYPE_NAME = 'SFLIGHT-CONNID'.
insert wa_node_att into table i_node_att.
clear i_struc. refresh i_struc.
select carrid connid into corresponding fields of table i_struc from sflight where carrid = 'AA'.
rootnode_info = wd_context->get_node_info( ).
rootnode_info->add_new_child_node( name = 'DYNFLIGHT'
attributes = i_node_att
is_multiple = abap_true ).
dyn_node = wd_context->get_child_node( 'DYNFLIGHT' ).
dyn_node->bind_table( i_struc ).
l_ref_interfacecontroller->set_data( dyn_node ).
I am trying to create a new node. That is
CONTEXT
- DYNFLIGHT
CARRID
CONNID
As you see above I am trying to create 'DYNFLIGHT' along with the 2 attributes which are inside this node. The structure of the node that is, no.of attributes may vary based on some condition. Thats why I am trying to create a node dynamically.
Also I cannot define the structure in the ABAP dictionary because it changes based on condition
Message was edited by: gopalkrishna baliga -
Web Dynpro for ABAP iView can't work
Hi guys,
I've developed an application in web dynpro for abap, it can be accessed from this url:
http://pekax110.aaa.com:8001/sap/bc/webdynpro/sap/zsfa_test
But when I created an Web Dynpro iview, set the parameters as follows:
System: SAP_CRM
namespace: sap
application: ZSFA_TEST
The WAS setting of the System is:
Web AS Host Name: pekax110.aaa.com:8001
Web AS Protocol: http
I add to iview to an portal role, and assign this role to one user. When I open the iview with the user, the iview reports error:
Portal Runtime Error
An exception occurred while processing a request for :
iView : pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test
Component Name : com.sap.portal.appintegrator.sap.WebDynpro
Exception in SAP Application Integrator occured: Unable to parse template '<System.Access.WAS.protocol>://<System.Access.WAS.hostname>/sap/bc/webdynpro/<WebDynproNamespace>/<WebDynproApplication>/;sap-ext-sid=<ESID[url_ENCODE]>?sap-wd-configId=<WebDynproConfiguration>&sap-ep-iviewid=<IView.ShortID>&sap-ep-pcdunit=<IView.PCDUnit.ShortID>&sap-client=<System.client>&sap-language=<Request.Language>&sap-accessibility=<User.Accessibility[SAP_BOOL]>&sap-rtl=<LAF.RightToLeft[SAP_BOOL]>&sap-ep-version=<Portal.Version[url_ENCODE]>&<ProducerInfo>&sap-explanation=<User.Explanation[SAP_BOOL]>&<StylesheetIntegration[IF_true PROCESS_RECURSIVE]>&<Authentication>&<DynamicParameter[PROCESS_RECURSIVE]>&<ForwardParameters[QUERYSTRING]>&<ApplicationParameter[PROCESS_RECURSIVE]>'; the problem occured at position 240. Cannot process expression <IView.PCDUnit.ShortID> because Unable to get PCD Unit pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test.
Exception id: 09:51_22/10/06_0011_19338950
See the details for the exception ID in the log file
The default trace files shows:
#1.5#001125C948FE006A000000590009002E0004205C95299DFF#1161481918454#com.sap.portal.sapapplication#sap.com/irj#com.sap.portal.sapapplication#yangxm#3905##PEKAX119_PGD_19338950#yangxm#a0de4330616a11db83a9001125c948fe#SAPEngine_Application_Thread[impl:3]_8##0#0#Error#1#/System/Server#Java###Content pass of Application Integrator failed.
Component Name: 'com.sap.portal.appintegrator.sap.WebDynpro',
Context Name (iView): 'pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test',
Top Layer: 'WebDynpro/TopLayer',
Producer ID (FPN): 'null',
System Alias: 'SAP_CRM',
[EXCEPTION]
#1#com.sapportals.portal.appintegrator.ApplicationIntegratorException: Unable to parse template '<System.Access.WAS.protocol>://<System.Access.WAS.hostname>/sap/bc/webdynpro/<WebDynproNamespace>/<WebDynproApplication>/;sap-ext-sid=<ESID[url_ENCODE]>?sap-wd-configId=<WebDynproConfiguration>&sap-ep-iviewid=<IView.ShortID>&sap-ep-pcdunit=<IView.PCDUnit.ShortID>&sap-client=<System.client>&sap-language=<Request.Language>&sap-accessibility=<User.Accessibility[SAP_BOOL]>&sap-rtl=<LAF.RightToLeft[SAP_BOOL]>&sap-ep-version=<Portal.Version[url_ENCODE]>&<ProducerInfo>&sap-explanation=<User.Explanation[SAP_BOOL]>&<StylesheetIntegration[IF_true PROCESS_RECURSIVE]>&<Authentication>&<DynamicParameter[PROCESS_RECURSIVE]>&<ForwardParameters[QUERYSTRING]>&<ApplicationParameter[PROCESS_RECURSIVE]>'; the problem occured at position 240. Cannot process expression <IView.PCDUnit.ShortID> because Unable to get PCD Unit pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test
at com.sapportals.portal.appintegrator.layer.AbstractIntegrationLayer.processTemplate(AbstractIntegrationLayer.java:453)
at com.sapportals.portal.appintegrator.layer.URLTemplateProcessLayer.processLayer(URLTemplateProcessLayer.java:33)
at com.sapportals.portal.appintegrator.LayerProcessor.processActionPass(LayerProcessor.java:159)
at com.sapportals.portal.appintegrator.AbstractIntegratorComponent.doActionPass(AbstractIntegratorComponent.java:67)
at com.sapportals.portal.appintegrator.AbstractIntegratorComponent.doOnPOMReady(AbstractIntegratorComponent.java:53)
at com.sapportals.portal.prt.component.AbstractPortalComponent.handleEvent(AbstractPortalComponent.java(Compiled Code))
at com.sapportals.portal.prt.pom.ComponentNode.handleEvent(ComponentNode.java(Compiled Code))
at com.sapportals.portal.prt.pom.PortalNode.fireEventOnNode(PortalNode.java(Compiled Code))
at com.sapportals.portal.prt.pom.PortalNode.processEventQueue(PortalNode.java(Compiled Code))
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:652)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java(Compiled Code))
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code))
Caused by: com.sapportals.portal.appintegrator.template_processor.TemplateParserException: Unable to parse template '<System.Access.WAS.protocol>://<System.Access.WAS.hostname>/sap/bc/webdynpro/<WebDynproNamespace>/<WebDynproApplication>/;sap-ext-sid=<ESID[url_ENCODE]>?sap-wd-configId=<WebDynproConfiguration>&sap-ep-iviewid=<IView.ShortID>&sap-ep-pcdunit=<IView.PCDUnit.ShortID>&sap-client=<System.client>&sap-language=<Request.Language>&sap-accessibility=<User.Accessibility[SAP_BOOL]>&sap-rtl=<LAF.RightToLeft[SAP_BOOL]>&sap-ep-version=<Portal.Version[url_ENCODE]>&<ProducerInfo>&sap-explanation=<User.Explanation[SAP_BOOL]>&<StylesheetIntegration[IF_true PROCESS_RECURSIVE]>&<Authentication>&<DynamicParameter[PROCESS_RECURSIVE]>&<ForwardParameters[QUERYSTRING]>&<ApplicationParameter[PROCESS_RECURSIVE]>'; the problem occured at position 240. Cannot process expression <IView.PCDUnit.ShortID> because Unable to get PCD Unit pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test
at com.sapportals.portal.appintegrator.template_processor.TemplateProcessor.processWholeTagExpression(TemplateProcessor.java:156)
at com.sapportals.portal.appintegrator.template_processor.compiler.TemplateCompiler.processWholeTagExpression(TemplateCompiler.java:54)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseSimpleExpression(TemplateParser.java:234)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseComponenedExpression(TemplateParser.java:188)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseComponenedExpressionEx(TemplateParser.java:210)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseComponenedExpression(TemplateParser.java:193)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseComponenedExpressionEx(TemplateParser.java:210)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseComponenedExpression(TemplateParser.java:193)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseTagExpression(TemplateParser.java:170)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parseTemplateExpressionPart(TemplateParser.java:97)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parse(TemplateParser.java:89)
at com.sapportals.portal.appintegrator.template_processor.TemplateParser.parse(TemplateParser.java:83)
at com.sapportals.portal.appintegrator.template_processor.TemplateProcessor.processImpl(TemplateProcessor.java:406)
at com.sapportals.portal.appintegrator.template_processor.TemplateProcessor.process(TemplateProcessor.java:373)
at com.sapportals.portal.appintegrator.template_processor.TemplateProcessor.process(TemplateProcessor.java:385)
at com.sapportals.portal.appintegrator.template_processor.TemplateProcessorService.processTemplate(TemplateProcessorService.java:53)
at com.sapportals.portal.appintegrator.template_processor.TemplateProcessorService.processTemplate(TemplateProcessorService.java:104)
at com.sapportals.portal.appintegrator.layer.AbstractIntegrationLayer.processTemplate(AbstractIntegrationLayer.java:439)
... 32 more
Caused by: com.sapportals.portal.appintegrator.template_processor.context.ContextException: Unable to get PCD Unit pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test
at com.sapportals.portal.appintegrator.template_processor.context.IViewWrapper.getPCDUnit(IViewWrapper.java:156)
at com.sapportals.portal.appintegrator.template_processor.context.IViewWrapper.access$000(IViewWrapper.java:28)
at com.sapportals.portal.appintegrator.template_processor.context.IViewWrapper$1.getTerminal(IViewWrapper.java:79)
at com.sapportals.portal.appintegrator.template_processor.TemplateProcessor.processWholeTagExpression(TemplateProcessor.java:152)
... 49 more
Caused by: com.sapportals.portal.pcd.gl.PermissionControlException: Access denied (Object(s): portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test)
at com.sapportals.portal.pcd.gl.PcdFilterContext.filterLookup(PcdFilterContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.basicContextLookup(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.basicContextLookup(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.basicContextLookup(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.basicContextLookup(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.basicContextLookup(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.proxyLookupLink(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.proxyLookup(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdProxyContext.lookup(PcdProxyContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdGlContext.lookup(PcdGlContext.java(Compiled Code))
at com.sapportals.portal.pcd.gl.PcdURLContext.lookup(PcdURLContext.java(Compiled Code))
at javax.naming.InitialContext.lookup(InitialContext.java(Compiled Code))
at javax.naming.InitialContext.lookup(InitialContext.java(Compiled Code))
at com.sapportals.portal.appintegrator.template_processor.context.IViewWrapper.getPCDUnit(IViewWrapper.java:148)
... 52 more
#1.5#001125C948FE006A0000005B0009002E0004205C9529A580#1161481918456#com.sap.portal.portal#sap.com/irj#com.sap.portal.portal#yangxm#3905##PEKAX119_PGD_19338950#yangxm#a0de4330616a11db83a9001125c948fe#SAPEngine_Application_Thread[impl:3]_8##0#0#Error#1#/System/Server#Java###Exception ID:09:51_22/10/06_0011_19338950
[EXCEPTION]
#1#com.sapportals.portal.prt.component.PortalComponentException: Error in service call of Portal Component
Component : pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test
Component class : com.sapportals.portal.sapapplication.SAPApplicationIntegratorComponent
User : yangxm
at com.sapportals.portal.prt.core.PortalRequestManager.handlePortalComponentException(PortalRequestManager.java:969)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:343)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:646)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java(Compiled Code))
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code))
Caused by: com.sapportals.portal.prt.runtime.PortalRuntimeException: Exception in SAP Application Integrator occured: Unable to parse template &\#39;<System.Access.WAS.protocol>://<System.Access.WAS.hostname>/sap/bc/webdynpro/<WebDynproNamespace>/<WebDynproApplication>/;sap-ext-sid=<ESID[url_ENCODE]>?sap-wd-configId=<WebDynproConfiguration>&sap-ep-iviewid=<IView.ShortID>&sap-ep-pcdunit=<IView.PCDUnit.ShortID>&sap-client=<System.client>&sap-language=<Request.Language>&sap-accessibility=<User.Accessibility[SAP_BOOL]>&sap-rtl=<LAF.RightToLeft[SAP_BOOL]>&sap-ep-version=<Portal.Version[url_ENCODE]>&<ProducerInfo>&sap-explanation=<User.Explanation[SAP_BOOL]>&<StylesheetIntegration[IF_true PROCESS_RECURSIVE]>&<Authentication>&<DynamicParameter[PROCESS_RECURSIVE]>&<ForwardParameters[QUERYSTRING]>&<ApplicationParameter[PROCESS_RECURSIVE]>&\#39;; the problem occured at position 240. Cannot process expression <IView.PCDUnit.ShortID> because Unable to get PCD Unit pcd:portal_content/cn.com.dimension.lenovo.xmyang/roles/cn.com.dimension.lenovo.test2cgd/cn.com.dimension.lenovo.zsfa_test
at com.sapportals.portal.appintegrator.AbstractIntegratorComponent.doContentPass(AbstractIntegratorComponent.java:121)
at com.sapportals.portal.appintegrator.AbstractIntegratorComponent.doContent(AbstractIntegratorComponent.java:96)
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
... 31 more
Can anybody help me out, thank you very much!
Best Regards,
Xiaoming Yanghi Xiaoming Yang ,
i am facing the same error . can you please tell me how you have solved this ??
regards
Sujay Kulkarni -
XSLT Mapping: Namespace for prefix 'ns0' has not been declared
Hello, I am working on a synchronous SOAP call and having some trouble with the response message. The web service has its own namespace and I am trying to convert this to my custom data type in PI. PI wants the message to be in format of having ns0 prefix and namespace like we have defined (http://foo for example).
I have an XSLT mapping (see below) which works fine with my test response payload (pulled from SXMB_MONI source) on this online XSLT test site:
http://www.freeformatter.com/xsl-transformer.html
However when I import this archive to PI and test with operation mapping it always says "Namespace for prefix 'ns0' has not been declared."
This is very confusing because when I test it online, I see both prefix and namespace declaration perfectly. Is there a way to see the results in the PI test tool? After this XSLT java error it doesn't give me the output even in Trace Level All mode.
Please advise on this issue or if you know an easier way (such as altering my datatype/message type to match the inbound SOAP message). I tried working with the 3rd party WSDL but the response message types show a different root level node than what PI is receiving so I gave up to make my own matching datatype. I just have to solve this last inbound namespace issue and should be finished.
FYI I have refreshed all PI caches and activated all objects.
Thanks for your ideas!
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://foo"
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<xsl:element name="ns0:{local-name()}">
<xsl:apply-templates select="@* | node()" />
</xsl:element>
</xsl:template>
<xsl:template match="/">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@* | node()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>Some additional info, here is an example payload which goes through the XSLT mapping perfectly, but in PI I get the error about missing ns0 declaration.
XML input:
<bar xmlns='http://irrelevantnamespace'
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<foo/>
</bar>
XSLT mapped output using test tool and XSL above:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:bar xmlns:ns0="http://foo">
<foo />
</ns0:bar> -
XSLT Problem with soap namespace
Hi there,
I have a problem transforming an XML doc with soap elements, using XSLT (Xalan).
Here's the input:
<?xml version = "1.0" encoding = "ISO-8859-1"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.ean.nl">
<testthis>123456</testthis>
</soap:Envelope>and here's the XSL:
<?xml version="1.0"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="soap:Envelope">
<Orders>
<H01>
<xsl:value-of select="testthis"/>
</H01>
</Orders>
</xsl:template>
</xsl:transform>I expect to get something like:
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<H01>123456<H01>
<Orders>But instead I get:
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<H01/>
</Orders>I've tried a lot of things and I'm probably overseeing something stupid, but I'm stuck.
It seems as if anything without soap: namespace cannot be processed by my XSL (when I add it in the input XML and XSL it works).
Any help would be greatly appreciated.
Greetings,
ErikYes, I found it!
The following XSL for the same XML doc works!
<?xml version="1.0"?>
<xsl:transform xmlns:ean="http://www.ean.nl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="soap:Envelope">
<Orders>
<H01>
<xsl:value-of select="ean:testthis"/>
</H01>
</Orders>
</xsl:template>
</xsl:transform>Thanks, you pointed me in the right direction :-)
Erik -
hi to all!
We have a namespace in our system, and my manager wants me to research on how to update a namespace, as what I've researched, I need to go to se03 then change namespace, I did that and I transported it last friday,,, however up to now, It did not have any changes....
My question is, how to update our existing namespace?
Thanks!
Edited by: christopher mancuyas on Sep 22, 2008 12:00 PMFor modifying a namespace you need a key . This key is in the hands of the company that creates the application.
There are two keys one for creating the namespace and other for modyfiing the code. You need to insert the second code and activate in the system.
http://help.sap.com:80/saphelp_nw04s/helpdata/en/bd/ddbe08ac5c11d2850e0000e8a57770/frameset.htm
Often the namespace is created by SAP others non. It's difficult change code from namespaces of other companies -
Tools to upload data into SRM 7.0 with webdynpro for ABAP
Hi,
Webdynpro for abap is used in SRM70.
I need to load data in SRM70 (product category...).
ECATT is not working with web dynpro for abap.
What other tools can i use to load data in SRM70 ? LSMW ?
I would like to avoid to create a Z program to load data into SRM70...
Thanks,
Kind regards,
YannHello Yann.
welcome . we read your wonderful threads and they are useful to coomunity forever.
I am not aware much.
Product category is a permanent data right . i think we may not frequently change the data right.
Does your business want very frequent update on product category?
I believe if we make frequent changes/modify of data we may use LSMW .
i think your zprogram is a best method to upload the product category.
As you aware we can not change the product category as per standard.For eg. If i create a local product category /hierarchy .Even i can not rename them.
category/hierarchy creation are one time activity in SRM.
please correct me.
regards
Muthu -
How to integrate WebDynpro for ABAP application with SAPEnterprisePortal7.0
Hi WebDynpro for ABAP Experts,
We developed an WebDynpro for ABAP application on R/3, and now we are planning to show this as an iview on SAP Portal EP7.0 (SAP j2EE Engine--Java stack). is it possible to integrate this application with portal?
If so can you proviode me the way how can we achieve this?
ADV Thanks
Regards
PhaniHi Alex,
Thanks for your response.
I already created the system object R/3 Backend.
Actually some WebDynpro java applications/iViews are currently running on Portal. and the developers developed these in NWDS and deployed the .sca files on the Portal server and we created Webdynpro for java iViews.
but now the requirement is creation of webDynpro for ABAP views.
The developers developed WebDynpro for ABAP on the R/3 system. So what are the parameter values we need to give at teh time of creation of WebDynpro for ABAP iview like the Namespace, Application name etc which are mandatory values and how the Portal server detects the application, this means no need to deploy the application on the Portal server?
Shall we need to maintain any JCo Destinations or not?
Pl share your ideas.
ADV Thanks
Regards
Phani -
Hi All,
In my client portal there is no iview template of type "SAP WebDynpro iview" .
I created one from the list of PAR templates of type com.sap.portal.appintegrator.sap.WebDynpro
and embedded it in a webdynpro proxy page
i have given the following parameters.
Application
Application Namespace
configuration name
platform 'webdynpro for ABAP'
WebDynpro client 'plain HTML'
system
But at runtime when i login with the end user it gives a blank page.
Please advise.
Thanks,
VVWhat happens when you try to test the same application you put in the iView from SE80. Sounds like the developer of the application might have forgotten to embed their default view in the window. A very common mistake on older support packge levels before the workbench started embedding the default view automatically.
Maybe you are looking for
-
Cflocation not working when code is part of a query
I've got a template page that runs a query based on the page name in the url. The query gets all the code for that page from the database. No problems there. The data is mostly html and the page displays wonderfully. The trouble I'm having is that an
-
My desktop apps are signed out and I can't sync my preferences
Hi, I tried to log out and in from adobe manager and fron adobe cloud website but indesign and illustrator are still in a "not signed in" status and won't sync my preferences. Any ideas? Thanks a lot
-
Hi experts, there is some screen-exit for HEADER of ME51N?? I've found only MEREQ001, but it has a screen exit only for item requisition... Thanks. Alexandere
-
I can't seem to figure out how to copy my music library from my iPod to my new PC. I have a lot of music from CD that I don't want to reload and would just like to move to my new PC. Dell Windows XP Pro
-
Slideshow mistakenly believes computer is not authroized for Itunes
When I opt for doing a slideshow and request to use a playlist from my Itunes application, iPhoto claims my computer is not authroized to play those tunes. I have not problem using Itunes indepently (it knows the computer is authroized). Can anyone s