Message mapping: Passing data at the node level
Hi,
I have a question/requirement, XI Message Mapping program need to read the incoming xml and map to a diffrerent target structure. Incoming xml has a parent node called Description and it has a value "Frauen Hemd Shoes", we need to map this value to target LongText Field but message mapping is ignoring this data while mapping.
A parent node can't hold the value/data while a child node is present. So is there any workaround to read this data to target str?
<Description>
<ShortName>Shoes</ShortName>
Frauen Hemd Shoes
</Description>
Expected result:
<Comments>
<ShortText>Shoes</ShortText>
<LongText>Frauen Hemd Shoes</LongText>
</Comments>
Please let me any clues to resolve the issue.
thanks,
Laxman
I agree , the soruce structure is not a valid one..
The source structure should look like the below:
<Description ShortName='Shoes'>
Frauen Hemd Shoes
</Description>
where ShortName is attribute for the Element "Description".
You add attribute to the element the same way you add subElement, Just choose attribute instead of subelement.
In this case the Mapping would be
Descriprion -
> LongText (target)
ShortName -
> ShortText (target)
This Should work.
Regards.
Jeet.
Similar Messages
-
How to Restrict the node level in account hierarchy
Hi experts,
I want to restrict the node level in account hierarchy. I attached one example. in that if i click 6000 node again it want to show error message. for one parent node i want to create only two child node. Further if i create means it want to show error msgs and not allow to create the node..
Regards,
gopiHi ,
The component is bp_hier, and method is onnew_node.
IF lv_tree->is_locked( ) = abap_false.
lv_tree->lock( ).
ENDIF.
CHECK lv_tree->is_locked( ) = abap_true.
lv_index = typed_context->accounthierarchy->selected_index.
lv_tree_node = typed_context->accounthierarchy->get_node_by_index( lv_index ).
*key = lv_tree_node->node_key.
CALL METHOD lv_api->get_node_parent
EXPORTING
iv_node_key = key
IMPORTING
ev_parent_node_key = lv_paent_key
* ev_tree_guid =
* lv_parent = lv_tree_node->parent_entity.
* typed_context->accounthierarchy->parent_entity.
CALL METHOD lv_tree_node->get_children
receiving
rt_children = rt_child.
CHECK lv_tree_node IS BOUND.
lv_tree_node->is_leaf = abap_false.
TRY.
lv_proxy_node ?= lv_tree_node.
TRY.
lv_object ?= lv_proxy_node->bo.
CATCH cx_sy_move_cast_error.
lv_mixed_node ?= lv_proxy_node->bo.
lv_object ?= lv_mixed_node->if_bsp_wd_ext_property_access~get_model_node( ).
ENDTRY.
lv_object_name = lv_object->get_name( ).
IF lv_object_name = 'BuilHierarchyNode'.
lv_relation_name = 'BuilHNodeRel'.
ELSEIF lv_object_name = 'BuilHierarchyHeader'.
lv_relation_name = 'BuilHeaderNodeRel'.
ELSE.
RETURN.
ENDIF.
lv_tree_node->get_children( ).
lv_object = lv_object->create_related_entity( lv_relation_name ).
lv_child_node = lv_proxy_node->node_factory->get_proxy(
iv_bo = lv_object
iv_proxy_type = 'CL_BP_HIER_HIERARCHYTREEV_CN05'
iv_parent_proxy = lv_tree_node ).
lv_tree_node->expand_node( ).
typed_context->accounthierarchy->refresh( ).
typed_context->accounthierarchy->deselect_all( ).
lv_child_node->selected = abap_true.
lv_child_node->is_leaf = abap_true.
*accounthierarchy
* selectedhierarchynode
lv_col_wrap = typed_context->selectedhierarchynode->get_collection_wrapper( ).
lv_col_wrap->clear( ).
This is the code.
i wrote . but its not getting. -
ALV Tree - how to put checkbox on the node level?
Hello everyone!
I have an AlvTree and I have special column named SEL. That column contains checkboxes. I want to put additional checkboxes at the node level, I need them to create select all option.
In other words I must somehow create something similar to do_sum option. DO_SUM works for numeric columns, the sum of all rows in current node appears at the top level. So I must do the same but checkbox.
Are there any ideas?
Here is my code of creating the tree.
DATA: g_tree9001 type ref to cl_gui_alv_tree_simple.
" Here I fill fieldcat...
create object g_tree9001
EXPORTING
i_parent = g_doc_cont
i_node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
i_item_selection = 'X'
i_no_html_header = 'X'
i_no_toolbar = ''.
call method g_tree9001->set_table_for_first_display
EXPORTING
i_save = 'A'
is_variant = ls_variant
CHANGING
it_sort = gt_sort9001
it_outtab = gt_tree9001
it_fieldcatalog = gt_treefcat9001.
My output table gt_tree9001 has sthe following structure:
BUKRS, KTEXT, SEL, SWERK.
My sort table gt_sort9001 has 2 rows. Sorting by BUKRS and KTEXT.
My tree looks like this:
BUKRS/KTEXT --- SEL --- SWERK
+bukrs1 ------------------------------
-- ktext1 --- X --- swerk1
-- ktext2 --- X --- swerk2
+bukrs2 ------------------------------
-- ktext3 --- X --- swerk3
I want to get:
BUKRS/KTEXT --- SEL --- SWERK
+bukrs1 ----------X----------------
-- ktext1 --- X --- swerk1
-- ktext2 --- X --- swerk2
+bukrs2 ----------X----------------
-- ktext3 --- X --- swerk3
Appreciate any help!Hi ,
Check the below threads, it may give some idea to get check box in the node .
[LINK1|Check box on left navigation of ALV tree;
[LINK2|Checkbox ALV Tree CL_GUI_ALV_TREE;
Regards,
Saravana.S -
I upgraded our RM Server from 2013 Update 2 to Update 4. During smoke testing, I discovered that the RM approval website would get stuck and display a loading wheel when showing the list of releases. After rebooting the server and uninstalling and reinstalling,
I eventually got it to load the web site just fine, however the windows event log is displaying thousands of instances of the same error (about once a second).
Timestamp: 4/2/2015 2:25:05 PM
Message: Data at the root level is invalid. Line 2, position 1.: \r\n\r\n at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
at System.Xml.Linq.XDocument.Parse(String text, LoadOptions options)
at Microsoft.TeamFoundation.Release.Common.ExtensionMethods.XmlExtensionMethods.ToXDocument(String value, Boolean preserveWhitespace)
at Microsoft.TeamFoundation.Release.Common.Helpers.WebServiceHelper.ExtractWebMethod(String pathInfo, Stream inputStream)
Category: General
Priority: -1
EventId: 0
Severity: Error
Title:
Machine: [Server Name]
Application Domain: /LM/W3SVC/2/ROOT-1-130724725961138960
Process Id: 3448
Process Name: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Win32 Thread Id: 1136
Thread Name:
Extended Properties:
This is quite concerning because it leads me to think something else is wrong. I read somewhere else that .Net Framework 4.5.1 is required for RM, but the system requirements on MSDN don't mention that. Any help greatly appreciated.
Specs:
RM Server: Windows 2012 R2
Release Management 2013 Update 4
Connect to TFS Server 2013 Update 2
We are not using HTTPS:Hi Joe519,
Thanks for your post.
And thank you for sharing the experience here.
All your participation and support are very important to build such harmonious/ pleasant / learning environment for MSDN community.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Report Designer error i VS 2013 - "Data at the root level is invalid."
Hi,
I am trying to create rdlc file programmatically. Using Memory Table as dataset. Here is my code
' For each field in the resultset, add the name to an array listDim m_fields AsArrayList
m_fields = NewArrayList()
Dim i AsIntegerFor i = 0 To tbdataset.Tables(0).Columns.Count - 1
m_fields.Add(tbdataset.Tables(0).Columns(i).ColumnName.ToString)
Next i
'Create Report 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition'http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition' Open a new RDL file stream for writingDim stream AsFileStream
stream = File.OpenWrite("D:\MyTestReport2.rdlc")
Dim writer AsNewXmlTextWriter(stream, Encoding.UTF8)
' Causes child elements to be indented
writer.Formatting = Formatting.Indented
' Report element
writer.WriteProcessingInstruction("xml", "version=""1.0"" encoding=""utf-8""")
writer.WriteStartElement("Report")
writer.WriteAttributeString("xmlns", Nothing, "http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition")
writer.WriteAttributeString("xmlns:rd", "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner")
writer.WriteStartElement("ReportSections")
writer.WriteStartElement("ReportSection")
writer.WriteElementString("Width", "11in")
writer.WriteStartElement("Body")
writer.WriteElementString("Height", "5in")
writer.WriteStartElement("ReportItems")
writer.WriteStartElement("Tablix")
writer.WriteAttributeString("Name", Nothing, "Tablix1")
writer.WriteElementString("Top", ".5in")
writer.WriteElementString("Left", ".5in")
writer.WriteElementString("Height", ".5in")
writer.WriteElementString("Width", (m_fields.Count * 1.5).ToString() + "in")
writer.WriteStartElement("TablixBody")
' Tablix Columns
writer.WriteStartElement("TablixColumns")
ForEach fieldName In m_fields
writer.WriteStartElement("TablixColumn")
writer.WriteElementString("Width", "1.5in")
writer.WriteEndElement() ' TableColumnNext fieldName
writer.WriteEndElement() ' TablixColumns' Header Row
writer.WriteStartElement("TablixRows")
writer.WriteStartElement("TablixRow")
writer.WriteElementString("Height", ".25in")
writer.WriteStartElement("TablixCells")
ForEach fieldName In m_fields
writer.WriteStartElement("TablixCell")
writer.WriteStartElement("CellContents")
writer.WriteStartElement("Textbox")
writer.WriteAttributeString("Name", Nothing, "Header" + fieldName)
' writer.WriteAttributeString("CanGrow", True)' writer.WriteAttributeString("Keeptogether", True)
writer.WriteStartElement("Paragraphs")
writer.WriteStartElement("Paragraph")
writer.WriteStartElement("TextRuns")
writer.WriteStartElement("TextRun")
writer.WriteElementString("Value", fieldName)
writer.WriteStartElement("Style")
writer.WriteElementString("TextDecoration", "Underline")
writer.WriteElementString("PaddingTop", "0in")
writer.WriteElementString("PaddingLeft", "0in")
writer.WriteElementString("LineHeight", ".5in")
''writer.WriteElementString("Width", "1.5in")''writer.WriteElementString("Value", fieldName)
writer.WriteEndElement() ' Style
writer.WriteEndElement() ' TextRun
writer.WriteEndElement() ' TextRuns
writer.WriteEndElement() ' Paragraph
writer.WriteEndElement() ' Paragraphs
writer.WriteEndElement() ' TexBox
writer.WriteEndElement() ' CellContents
writer.WriteEndElement() ' TablixCellNext
writer.WriteEndElement() ' TablixCells
writer.WriteEndElement() ' TablixRow'writer.WriteEndElement() ' TablixRows Do not close Rows tag here colse it after details'End of Headers'Details Rows'writer.WriteStartElement("TablixRows") Since Rows tag in header is not closed not need to open fresh tag
writer.WriteStartElement("TablixRow")
writer.WriteElementString("Height", ".25in")
writer.WriteStartElement("TablixCells")
ForEach fieldName In m_fields
writer.WriteStartElement("TablixCell")
writer.WriteStartElement("CellContents")
writer.WriteStartElement("Textbox")
writer.WriteAttributeString("Name", Nothing, fieldName)
' writer.WriteAttributeString("CanGrow", True)' writer.WriteAttributeString("Keeptogether", True)
writer.WriteStartElement("Paragraphs")
writer.WriteStartElement("Paragraph")
writer.WriteStartElement("TextRuns")
writer.WriteStartElement("TextRun")
'writer.WriteElementString("Value", fieldName)
writer.WriteElementString("Value", "=Fields!" + fieldName + ".Value")
writer.WriteStartElement("Style")
writer.WriteElementString("TextDecoration", "Underline")
writer.WriteElementString("PaddingTop", "0in")
writer.WriteElementString("PaddingLeft", "0in")
writer.WriteElementString("LineHeight", ".5in")
''writer.WriteElementString("Width", "1.5in")''writer.WriteElementString("Value", fieldName)
writer.WriteEndElement() ' Style
writer.WriteEndElement() ' TextRun
writer.WriteEndElement() ' TextRuns
writer.WriteEndElement() ' Paragraph
writer.WriteEndElement() ' Paragraphs
writer.WriteEndElement() ' TexBox
writer.WriteEndElement() ' CellContents
writer.WriteEndElement() ' TablixCellNext
writer.WriteEndElement() ' TablixCells
writer.WriteEndElement() ' TablixRow
writer.WriteEndElement() ' TablixRows'End of Details Rows
writer.WriteEndElement() ' TablixBody
writer.WriteStartElement("TablixRowHierarchy")
writer.WriteStartElement("TablixMembers")
writer.WriteStartElement("TablixMember")
' Group
writer.WriteElementString("KeepWithGroup", "After")
writer.WriteEndElement() ' TablixMember' Detail Group
writer.WriteStartElement("TablixMember")
writer.WriteStartElement("Group")
writer.WriteAttributeString("Name", Nothing, "Details")
writer.WriteEndElement() ' Group
writer.WriteEndElement() ' TablixMember
writer.WriteEndElement() ' TablixMembers
writer.WriteEndElement() ' TablixRowHierarchy
writer.WriteStartElement("TablixColumnHierarchy")
writer.WriteStartElement("TablixMembers")
'writer.WriteStartElement("TablixMember")ForEach fieldName In m_fields
writer.WriteStartElement("TablixMember")
writer.WriteEndElement() ' TablixMemberNext' writer.WriteEndElement() ' TablixMember
writer.WriteEndElement() ' TablixMembers
writer.WriteEndElement() ' TablixColumnHierarchy
writer.WriteElementString("DataSetName", "tbdataset")
writer.WriteEndElement() ' Tablix
writer.WriteEndElement() ' ReportItems
writer.WriteEndElement() ' Body
writer.WriteStartElement("Page")
' Page Header Element
writer.WriteStartElement("PageHeader")
writer.WriteElementString("Height", "1.40cm")
writer.WriteStartElement("ReportItems")
writer.WriteStartElement("Textbox")
writer.WriteAttributeString("Name", Nothing, "Textbox1")
writer.WriteStartElement("Paragraphs")
writer.WriteStartElement("Paragraph")
writer.WriteStartElement("TextRuns")
writer.WriteStartElement("TextRun")
writer.WriteElementString("Value", Nothing, "ABC CHS.")
writer.WriteEndElement() ' TextRun
writer.WriteEndElement() ' TextRuns
writer.WriteEndElement() ' Paragraph
writer.WriteEndElement() ' Paragraphs
writer.WriteEndElement() ' TextBox
writer.WriteEndElement() ' ReportItems
writer.WriteEndElement() ' PageHeader
writer.WriteEndElement() ' Page
writer.WriteEndElement() ' ReportSection
writer.WriteEndElement() ' ReportSections' DataSources
writer.WriteStartElement("DataSources")
writer.WriteStartElement("DataSource")
writer.WriteAttributeString("Name", Nothing, "tbdata")
writer.WriteStartElement("DataSourceReference")
writer.WriteEndElement() ' DataSourceReference
writer.WriteEndElement() ' DataSource
writer.WriteEndElement() ' DataSources'DataSet
writer.WriteStartElement("DataSets")
writer.WriteStartElement("DataSet")
writer.WriteAttributeString("Name", Nothing, "tbdataset")
writer.WriteStartElement("Query")
writer.WriteElementString("DataSourceName", Nothing, "tbdata")
'writer.WriteElementString("CommandText", Nothing, "/* Local Query */")
writer.WriteElementString("CommandText", Nothing, "TableDirect")
writer.WriteEndElement() ' Query'Fields
writer.WriteStartElement("Fields")
ForEach fieldName In m_fields
writer.WriteStartElement("Field")
writer.WriteAttributeString("Name", Nothing, fieldName)
writer.WriteElementString("DataField", fieldName)
writer.WriteElementString("rd:TypeName", fieldName.GetType.ToString)
writer.WriteEndElement() ' FieldNext
writer.WriteEndElement() ' Fields' rd datasetinfo
writer.WriteEndElement() ' DataSet
writer.WriteEndElement() ' DataSets
writer.WriteEndElement() ' Report' Flush the writer and close the stream
writer.Flush()
stream.Close()
'Convert to StreamDim myByteArray AsByte() = System.Text.Encoding.UTF8.GetBytes("D:\MyTestReport2.rdlc")
Dim ms AsNewMemoryStream(myByteArray)
'Supply Stream to ReportViewer
ReportViewer1.LocalReport.LoadReportDefinition(ms)
ReportViewer1.LocalReport.Refresh()When I open rdlc in designer I get following error"Data at the root level is invalid."When I run the aspx I get following error
An error occurred during local report processing.
The definition of the report '' is invalid.
The definition of this report is not valid or supported by this version of Reporting Services.
The report definition may have been created with a later version of Reporting Services, or contain content that is not well-formed or not valid based on Reporting Services schemas.
Details: Data at the root level is invalid. Line 1, position 1.
Can anybody guide me?Hi RACES,
Based on your description, I'm afraid that it is not the correct forum for this issue, but maybe I could help you find a more appropriate forum.
If it is related to the Visual Studio Report Controls, you could select this forum:
https://social.msdn.microsoft.com/Forums/en-US/home?forum=vsreportcontrols
But if it is the SSRS issue, maybe this forum would be better for you:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlreportingservices
Best Regards,
Jack
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Hi there,
All my reports are throwing below error in a sharepoint site configured with Access services. Does anyone have a clue what's causing it?
An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for dataset 'Default'. (rsErrorExecutingCommand)
The SharePoint list query is not valid: Data at the root level is invalid. Line 1, position 1. (rsSPDataProviderError)
Thanks
ManvirHi Manvir,
For troubleshooting your issue, please go to C:\Inetpub\wwwroot\wss\VirtualDirectories\ find your Web Application (represented by a port number), then delete an unknown folder created by sharepoint, namely vti_cnf from all the folders and sub-folders in
your web application.
Reference:
http://forums.asp.net/t/985790.aspx?Data+at+the+root+level+is+invalid+Line+1+position+1
Best Regards,
Eric
TechNet Community Support
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected] -
SSRS Bing Maps - Does it passes data over the internet
Hi,
I am planning to display sensitive data related to clients on SSRS Maps for location based reporting. I would like to know if SSRS maps (Bing Maps) internally makes API calls to external servers for location based data. Does SSRS maps send data, used
to render bubbles/markers on the map, across the network to external servers?
Thanks for your help and time in advance.
Cheers!
A**LEYes, yes it does. It'll send your personal credit card information, and shoot your dog as well.
No. Of course not. The bing maps are little more than images rendered at the appropriate co-ordinates on which you overlay data. You are responsible for positioning and providing that data.
Don't forget to mark helpful posts, and answers. It helps others to find relevant posts to the same question. -
External Context Mapping - Pass data from Child to Parent
Hello,
I have the following scenario:
DCParent Component (contains)
- DCChildComp1 (used DC)
- DCChildComp2 (used DC)
- DCChildComp3 (used DC)
- DCChildComp4 (used DC)
What user enters in DCChildComp1 then needs to be made available to DCParent and all other DCChildComp(n) siblings.
I have looked the posts and blogs in SDN and all of them seem to deal with passing inputField data from Parent to Child. May be I am missing it.
In my case, I need the data to be passed from DCChildComp1 to DCParent ie Child to Parent. Then from DCParent to other DCChildComps.
How should I go about
a. defining the context nodes and Component Interface context nodes in parent vs child vs siblings and
b. how should I map them externally?
Step by step instruction would be helpful.
Thanks in advance,
SK.Thanks for all the help. As I had already seen all the links and blogs you had linked here, I was still confused about how it all came together. Finally, I got it after reading Bertram Ganz's response in this thread [Context Mapping problem;.
when you map a context in the parent comp to an interface context in the used child component you do not define an external context mapping relation. That's normal context mapping as the data context resides in the child component.
I have it working now and I am able to push the changes in the child component's context to the parent.
For those who are interested in how I did it (and those who know a better way to do it
In the child component DC:
Map Child's View Context to Child's Controller Context
Map Child's Controller Context to Child's Interface Controller (make sure the inputEnabled is FALSE - as the child is the data producer and the parent is the data consumer, in my case)
In the parent DC:
Add child DC as a Used DC
Add child Component as a Used Component in the Parent Component
Add Child's Interface Controller as Required Controller in Parent Component
Map Child's Interface Controller Context to Parent's Controller Context
Map Parent's Controller Context to Parent's View Context
No external mapping required per the thread above. Now, any change in the child component's view is visible in the parent component view.
Thanks again very much for the help.
- Siva -
Waring messages for PO Date in the contract creation?
Hi Friends,
Expecting answers with some functional knowledge,
I am developing one webservice to create value contract from dotnet front end,
So user can enter inputs from that front end and he will get SAP generated value contract id.
Here I did validations for all the fields and giving error messages to restrict user to dont give incorrect values.
Now coming to my issue..,
While entering the PO Date in the initial screen of contract creation,
If I enter future date,
The purchase order date lies in the future. Please check
If I enter the past date.,
The purchase order date is in the past. Please check
I will get warning messages like this, so what should i do, I can enter, today's date to avoid these messages,
And I can neglect these two messages to proceed, as they are warings only.
But in my case , Can i process these messages to front end, Is it mandatory.
I want to know the intention of these messages, then i will take good decision on this...,
Thanks,
Naveen.IHi..,
Thanks for your attention..,
After consulting some people on this issue, I got that..,
Mostly PO Date is current date, but in the case of purchage receiving process is late then the date may be in past..,
Similerly, because of some business reason we can create contract before receiving of purchage order, where order should
must get, in this case user can enter future date.
So as if it is not special case user creates contrat with po date as current date, system gives some warning!!
Better to pass this messages to front end if we are using webservices or some thing like other technolgies.
welcome to other comments on this..
Thanks,
Naveen.I -
Changing node data not the node itself.
Dear everyone,
I'm trying to nest DOM hierarchies within another, and I have most of it worked out,
but there are a few niggles.
The first problem is as follows:
My first document is:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WfMessage>
<ATO_ATO>
<ATO_FileLoadedIntoSystem>No</ATO_FileLoadedIntoSystem>
<ATO_RawXML>XML DATA HERE</ATO_RawXML>
</ATO_ATO>
</ProcInstInputData>
</ProcessTemplateExecute>
</WfMessage>
What I want to do is to insert my second XML file between the tags so that
it reads:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WfMessage>
<ATO_ATO>
<ATO_FileLoadedIntoSystem>No</ATO_FileLoadedIntoSystem>
<ATO_RawXML>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
(XML data in here...snipped for brevity)
</ATO_RawXML>
</ATO_ATO>
</ProcInstInputData>
</ProcessTemplateExecute>
</WfMessage>
(By the way, I do need the second root in the nested document- thats the second problem!)
I've come up with some code that comes up with the following XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WfMessage>
<ATO_ATO>
<ATO_FileLoadedIntoSystem>No</ATO_FileLoadedIntoSystem>
(data in here...snipped for brevity) // TAGS AND ROOT MISSING !!!
</ATO_ATO>
</ProcInstInputData>
</ProcessTemplateExecute>
</WfMessage>
Which is nearly what I need when I use the following code:
ATO_document = builder.parse( "D:\\ATO.xml" );
XML_document = builder.parse( "D:\\XML.xml" );
NodeList replacedNodeList = XML_document.getElementsByTagName("ATO_RawXML");
Node foundnode = replacedNodeList.item(0);
if ( foundnode != null )
Node modfiedReplacedDocument = replaceNode(XML_document, ATO_document,
foundnode);}
else
// error message here.
and replaceNode is defined as follows:
public static Node replaceNode(Document replacedDocument, Document
replacingDocument, Node replacedNode)
//Create a documentFragment of the replacingDocument
DocumentFragment docFrag = replacingDocument.createDocumentFragment();
Element rootElement = replacingDocument.getDocumentElement();
docFrag.appendChild(rootElement);
//Import docFrag under the ownership of replacedDocument
Node replacingNode =
((replacedDocument).importNode(docFrag, true));
//In order to replace the node need to retrieve replacedNode's parent
Node replaceNodeParent = replacedNode.getParentNode();
replaceNodeParent.replaceChild(replacingNode, replacedNode);
return replacedDocument;
I've tried using insertBefore functions in the replaced document to
artificially recreate the <ATO_RawXML> tags, but the code
grumbles that the parent element is missing. I'm sure a solution is very
simple
but I am losing my hair over this. Can anyone suggest anything (other than
a lotion to keep my hair in) ?
Best wishes
PaulA XML document should have one declaration in the beginning of the document.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Xml document has two xml declarations.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WfMessage>
<ATO_ATO>
<ATO_FileLoadedIntoSystem>No</ATO_FileLoadedIntoSystem>
<ATO_RawXML>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
(XML data in here...snipped for brevity)
</ATO_RawXML>
</ATO_ATO>
</ProcInstInputData>
</ProcessTemplateExecute>
</WfMessage> -
How to replicate session data at the user level?
Hi all,
my client has users who use laptop/tablet computers in the field with wireless connections. The application requires the users to complete long multi-page forms where the data is only submitted to the EIS layer at the end of the process. The connections regularly drop out which understandably is a cause of some grief. In addition, the users want to be able to switch to another machine in order to complete their session.
The 'switching machine' requirement kills the idea of using persistent cookies and session replication unfortunately. So I am faced with the idea of storing the session data (keyed by user id), in serialized form, either on a stand-alone disk which is accessible by each webserver in the cluster or is the database. The problem with the database idea is the performance hit of traversing the EJB and JDBC layers.
Can anyone suggest the best practice in this case? Or point to an article or tool that covers the problem?
BTW, the app serves a small (<50) and stable base of authenticated users so scalability is not really an issue whereas failover is.
Regards,
Dave.> Is it possible to close a PO at the header level
Po can be closed at Item level and not Header level. You can set Deletion Indicator and further can be archived thru SARA MM_EKKO
or a way to deactivate the PO so that no new items can be added?
You can activate Release strategy and Choose a Proper Release indicatory so that no new changes to be carried out.
Else go for User Exits -
What is the significance of having a compound master data in the planning levels?
In "SAP2" model there is PERPRODCUST as a planning level.
This planning level has PERIOD, PRODUCT, CUSTOMER and PRODUCT-CUSTOMER master data as part of the planning level.
Wouldn't PERIOD, PRODUCT, CUSTOMER be sufficient? Why is the compound master data required to be added to this planning level.
Could someone clarify this for me.
Thank you.I'll attempt:
It depends on if you want to surface the result/value of the compound master data type on the key figures in your planning level. If you do then you'll need to include it in the planning level.
If the question is why would I want a compound master data type, then my attempt at that answer is as follows:
From my understanding, the idea of a compound key figure is that you are able to derive an attribute or attributes that are related to, in this case, two master data types - all without having to 'store' that attribute on the transactional record.
Here is a simplistic example:
Master data on PRODUCT (where PRODID is the key)
PRODID,PRODDESCR,PRODSIZE
P1,Widget A,Big
P2,Widget B,Big
P3,Widget C,Small
P4,Widget D,Small
Master data on CUSTOMER (where CUSTID is the key)
CUSTID,CUSTDESCR,CUSTREGION
C1,Store A,West
C2,Store B,West
C3,Store C,East
C4,Store D,East
Master data on compound MDT PRODUCT-CUSTOMER (where PRODID and CUSTID are the key)
PRODID,CUSTID,SALESREGION
P1,C1,BIG_WEST
P1,C2,BIG_WEST
P1,C3,BIG_EAST
P1,C4,BIG_EAST
P2,C1,BIG_WEST
P2,C2,BIG_WEST
P2,C3,BIG_EAST
P2,C4,BIG_EAST
P3,C1,SMALL_WEST
P3,C2,SMALL_WEST
P3,C3,SMALL_EAST
P3,C4,SMALL_EAST
P4,C1,SMALL_WEST
P4,C2,SMALL_WEST
P4,C3,SMALL_EAST
P4,C4,SMALL_EAST
Finally you have some transactional data for the Key Figure on the planning level (ex: Sales)
PRODID,CUSTID,SALES
P1,C1,10
P3,C4,15
P4,C3,30
P1,C3,20
P2,C2,15
*Note that you don't need to 'store' the sales region attribute on the record
Then on your report, you can pick the SALESREGION and get your aggregated values:
SALESREGION,SALES
BIG_WEST,25
BIG_EAST,20
SMALL_WEST,0
SMALL_EAST,45 -
Message Mapping - NewLine generation in the target field
Hi ,
This is a File to SOAP scenario, where text file is picked by XI and posted to target using webservice in the xml format.In the message mapping, I am supposed perform a logic where 3 fields in the source structured are to be concatenated and sent to the target structure. This fields at the target structure are to be displayed with a newline character.
So if I am sending : abc, 123 and xyz as input and the output should be in one field as follows :
<ns3:OutputField xmlns:ns3=abc
123
xyz</ns3:StreetAddressLine>
I have used this "
" as the seperator in the concat function, hoping this would produce a new line but was hopeless.
Any ideas are appreicated.
Thanks,
RagHi Raghav,
XML will never show new line or space characters.
Try to open the message in notepad or wordpad and then check if you can see the new line character.
-Supriya. -
Message Mapping Nested Structure to key node in JDBC XML SQL Structure
Hello everybody,
I'm facing the next problem, I have the following nested structure
<ns0:MT_Irdoc_ArchivoNested xmlns:ns0="http://ref.pemex.com/PI/FI/ArchivoIrdoc">
<Header id_consecutivo="">
<Transaction/>
<Header2/>
<Header3/>
<Header4/>
<Header5/>
<Detail>
<Transaction/>
<Detail2/>
<Detail3/>
<Detail4/>
<Detail5/>
</Detail>
</Header>
<NombreArchivo/>
</ns0:MT_Irdoc_ArchivoNested>
as you can see, Detail is a nested Node from Header Node, and Detail is with occurrence 0...unbounded, I need to generate a SELECT XML SQL Structure as follows
<StatementName>
<dbTableName action=u201DSELECTu201D>
<table>realDbTableName</table>
<access>
<col1/>
<col2/>
<col3/>
</access>
<key1>
<col4>val4</col4>
<col5>val5</col5>
<col6>val6</col6>
</key1>
</dbTableName>
</StatementName>
now my problem is that col4 and col6 are values mapped from Header fields values, and col5 mus be mapped from Detail2 field of Detail Nested Structure, and Detail is 0...unbounded so it can contain any number of values and must included in the key structure, I tried by mapping the Detail Node to the key1 node, so it will generate n numbers of key1 nodes to include in the query, and the Detail number of nodes are not constant so I can't generate key2, key3, keyn...., so what I need is to create n numbers of instances of key1 node, but the problem is that when the mapping try to generate the second instance of key1 node it gives an error in the fields that comes from Header structure, maybe I'm trying to solve my problem wrong, could anyone give some advices or direction?, thanks in advance.
Regards,
Julio CesarJulio,
After placing the below logic in the mapping editor
Details2 > SplitByValue> col5
Right click on the Details2 node and choose Context. By Default you will see Details, because Details2 is the child of Details node. I want you to choose the Parent of Details node, I believe that would be HeaderID, am I right?
If you don't want to do that then,
Details2 ---> Remove Context > SplitByvalue> col5 will do the trick!
raj. -
Requirement to get Inventory data at the Daily level (non-cumulative KF)
Hello All,
Kindly provide ur suggesstions on the issue mentioned below:
We require the Inventory data at a daily level. Also we require that the non-cumulatve Key Figures such as 0TOTALSTOCK, etc. be available to us in the BW itself, since this is required for further processing.
PS: Right now we are using RSCRM_BAPI to execute the qurey and store the data into a table, but it fails for non-cumulative keyfigures. Kindly suggest if ther are other ways which can suffice the requirement mentioned above.
Thank you.
Regards,
Kunal GandhiAnother one?
You should read this link: https://wiki.sdn.sap.com/wiki/display/HOME/RulesofEngagement
Maybe you are looking for
-
During graphic intensive applications(gaming, netflix, etc), my macbook pro will randomly hard freeze(sometimes it's after a few minutes and other times several hours). I can't access any other applications during this, and I can't force quit using t
-
PDF+ problems displaying foreign characters
I am opening PDF files from a Swedish newspaper in PDF+ application, but the Swedish local vowel variations (åäöÅÄÖ) are not displayed - instead they appear as rectangular boxes with an X inside. Reading on the PDF+ site, they say that for Japanese c
-
hi, i have created Non PO invoice in EBP and posted successfully. idoc message type = BBPIV when it reached to ECC and getting status 51 (reason Application document not posted Payment method and payment terms are mandatory). when i am processing wit
-
I want to preface this by saying, at the moment, I am very unhappy with Verizon support. I called the technical support number, where I was told to enter my account information. I did and was asked what kind of problem I was having. I chose techni
-
Email Icon Notification - Home Screen - Option to remove automatic notification?
I have a need to remove the automatic email notification on the home screen. Would love to know how to remove the option of automatically being notified for every new email but retain the ability to check my emails from the handset. Thanks