How to handle duplicate nodes in xslt mapping
Hi,
in my scenario that i have a source mapped to the canonical structure and from canonical to target.
source structure
<empid>
<national_id>
canonical structure
<id> 0 to unbounded
<id>
<type>
the mapping from source to canonical
is like i have duplicated the canonical structure and then mapped
id -
empid
type--- assigned a constant employee
id -
national_id
type--- assigned a constant National
i have used xslt mapping using stylus studio and mapping from source to canonical is not the problem
when i mapped the canonical to target there is a problem
the node id is visible once in the canonical when the structure is a source
but there is a dupicate node in the structure but not visible. how to procedue with the mapping for canonical to target
kindly help me
with regards
pradeep N
hi,
Udo Martens.
<b>source xml</b>
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Materail_fileReceive xmlns:ns0="http://www.aprilbiztec.in/MM_MultiFile">
<Emp_ID>12</Emp_ID>
<National_ID>91</National_ID>
</ns0:Materail_fileReceive>
<b>canonical xml</b>
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Materail_file xmlns:ns0="http://www.aprilbiztec.in/MM_MultiFile"><Material><ID>12</ID><Type>Employee</Type></Material><Material><ID>91</ID><Type>National</Type></Material></ns0:Materail_file>
<b>source to canonical mapping is</b>
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.aprilbiztec.in/MM_MultiFile">
<xsl:template match="/">
<ns0:Materail_file xmlns:ns0="http://www.aprilbiztec.in/MM_MultiFile">
<Material>
<ID>
<xsl:value-of select="ns0:Materail_fileReceive/Emp_ID"/>
</ID>
<Type>Employee</Type>
</Material>
<Material>
<ID>
<xsl:value-of select="ns0:Materail_fileReceive/National_ID"/>
</ID>
<Type>National</Type>
</Material>
</ns0:Materail_file>
</xsl:template>
i want the<b> canonical to target mapping</b> where my target structure is similar to that of my source
kindly help.
regards
pradeep N.
Similar Messages
-
How to do java conjunction with XSLT Mapping...?
Hi,
I Got a doubt while doing the XSLT mapping......
I have created the
Data Types
Message Types
and
Message Interfaces
Now my doubt is where i have to write the XSLT and Java code and how to create Message Mapping and Interface Mappings...
Please help me...
Best Regards
Ravi Shankar BHi
I have created a XSLT mapping with java conjunction... i have created a ZIP file and i have palced java class file, java file and xsl file in that ZIP file... I have imported this archive into imported archives... but when i am testing the application i got the follwoing exceptions
<b>Details
com.sap.engine.services.ejb.exceptions.BaseRemoteException:
Exception in method transform.
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:182)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
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:37)
at java.security.AccessController.doPrivileged(Native
Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Caused by: java.lang.UnsupportedClassVersionError:
DATEandTIME/Date_Time (Unsupported major.minor version
49.0)
at java.lang.ClassLoader.defineClass0(Native
Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
at com.sap.engine.lib.xsl.xpath.functions.XFFunctionAvailable.execute(XFFunctionAvailable.java:24)
at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:110)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:54)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:41)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:49)
at com.sap.engine.lib.xsl.xslt.XSLIf.process(XSLIf.java:28)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:457)
at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:391)
at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:392)
at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:234)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:131)
... 10 more
; nested exception is:
java.lang.UnsupportedClassVersionError:
DATEandTIME/Date_Time (Unsupported major.minor version
49.0)
com.sap.engine.services.ejb.exceptions.BaseRemoteException:
Exception in method transform.
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:182)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
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:37)
at java.security.AccessController.doPrivileged(Native
Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Caused by: java.lang.UnsupportedClassVersionError:
DATEandTIME/Date_Time (Unsupported major.minor version
49.0)
at java.lang.ClassLoader.defineClass0(Native
Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
at com.sap.engine.lib.xsl.xpath.functions.XFFunctionAvailable.execute(XFFunctionAvailable.java:24)
at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:110)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:54)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:41)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:49)
at com.sap.engine.lib.xsl.xslt.XSLIf.process(XSLIf.java:28)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:457)
at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:391)
at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:392)
at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:234)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:131)
... 10 more
; nested exception is:
java.lang.UnsupportedClassVersionError:
DATEandTIME/Date_Time (Unsupported major.minor version
49.0)</b>
Please help me....
Best Regards
Ravi Shankar B
Message was edited by: RaviShankar B -
How to handle duplicate price creation while using RV_CONDITION_COPY
Hi,
I using FM RV_CONDITION_COPY in my BAPI to create the price but if the same record is being passed again either with same validation date or different validation dates then system pops up a window with message "The validity period of the condition created overlaps with conditions with shorter validity periods. These conditions will be deleted when you save." and other detail. This screen is same as when we try to create price using VK11.
Does anybody know how to handle this issue.
Thanks and Regards,
Seemathis may helps you.
Look at the below thread ....
Check if the below code can help you:
U can try like this
CONSTANTS:
CON_A(1) TYPE C VALUE 'A',
CON_B(1) TYPE C VALUE 'B',
CON_C TYPE C VALUE 'C',
CON_D TYPE C VALUE 'D',
CON_E TYPE C VALUE 'E',
CON_F TYPE C VALUE 'F',
CON_G TYPE C VALUE 'G',
CON_K TYPE C VALUE 'K',
CON_T TYPE C VALUE 'T',
CON_S(1) TYPE C VALUE 'S',
CON_V LIKE T681A-KAPPL VALUE 'V',
CON_X TYPE C VALUE 'x',
CON_XX TYPE C VALUE 'X',
CON_T074 LIKE T681-KOTABNR VALUE '074',
CON_PREF LIKE T685A-KSCHL VALUE 'PREF',
CON_ULTIMO LIKE RV13A-DATAB VALUE '99991231',
CON_DATA_LOG_NAME(8) TYPE C VALUE 'PREF',
CON_ERROR_LOG_NAME(8) TYPE C VALUE 'ERROR',
CON_CUSTOM_LOG_NAME(8) TYPE C VALUE 'P_CUSTOM'.
Verkaufsmengeneinheit
PERFORM f3_vkme_ermitteln.
Hauswährung
IF t001w-werks NE cstmat-werks.
PERFORM f3_waehrung_ermitteln USING cstmat-werks.
ENDIF.
pro Zollgebiet Konditionssatz anlegen
LOOP AT t_matwerte.
CHECK t_matwerte-noupd_cond IS INITIAL.
CLEAR: komk,
komp,
komg,
w_komv.
REFRESH w_komv.
Schlüssel füllen
komg-werks = w_marc-werks.
komg-matnr = w_marc-matnr.
komg-gzolx = t_matwerte-gzolx.
komg-land1 = t001w-land1. "101298
Preisinfo füllen
w_komv-kappl = 'V '.
w_komv-kschl = con_pref.
IF t_matwerte-kp = kp_max.
w_komv-kpein = 1.
MOVE kp_max TO w_komv-kbetr.
ELSE.
w_komv-kpein = pm_peinh.
COMPUTE w_komv-kbetr = t_matwerte-kp * pm_peinh / hlp_ameng.
ENDIF.
IF w_komv-kbetr = 0.
COMPUTE w_komv-kbetr = 1 / 100 * -1.
ENDIF.
w_komv-waers = t001-waers.
w_komv-kmein = hlp_ame.
APPEND w_komv.
CHECK f3_kz_update_cond IS INITIAL OR
NOT pm_simu IS INITIAL.
IF NOT pm_mdmps IS INITIAL.
MOVE komg-werks TO bg_kond-werks.
MOVE komg-matnr TO bg_kond-matnr.
MOVE komg-gzolx TO bg_kond-gzolx.
MOVE w_komv-kpein TO bg_kond-kpein.
MOVE w_komv-kbetr TO bg_kond-kbetr.
MOVE w_komv-kmein TO bg_kond-kmein.
MOVE w_komv-waers TO bg_kond-waers.
*{ REPLACE D20K904946 1
APPEND bg_kond.
Siemens: Fehlerkorektur SAP-Standard
READ TABLE BG_KOND TRANSPORTING NO FIELDS
WITH KEY WERKS = BG_KOND-WERKS
MATNR = BG_KOND-MATNR
GZOLX = BG_KOND-GZOLX
BINARY SEARCH.
INSERT BG_KOND INDEX SY-TABIX.
*} REPLACE
ENDIF.
CHECK f3_kz_update_cond IS INITIAL.
CALL FUNCTION 'RV_CONDITION_COPY'
EXPORTING
application = con_v
condition_table = con_t074 "Konditionstabelle
condition_type = con_pref "Konditionsart
date_from = sy-datlo "Von jetzt an
date_to = con_ultimo "Bis Ultimo
enqueue = 'X' "Sperren ist besser
i_komk = komk
i_komp = komp
key_fields = komg "Schlüssel
maintain_mode = 'A' "Lieber A als B
no_authority_check = 'X' "X wie nix
keep_old_records = ' '
OVERLAP_CONFIRMED = 'X'
IMPORTING
e_komk = komk
e_komp = komp
new_record = i_new_record
TABLES
copy_records = w_komv
EXCEPTIONS
enqueue_on_record = 01
invalid_application = 02
invalid_condition_number = 03
invalid_condition_type = 04
no_authority_ekorg = 05
no_authority_kschl = 06
no_authority_vkorg = 07
no_selection = 08
table_not_valid = 09.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
MESSAGE A???
ENDCASE.
CALL FUNCTION 'RV_CONDITION_SAVE'.
CALL FUNCTION 'RV_CONDITION_RESET'.
ENDLOOP. -
How to handle duplicate messages in J2SE File scenario
Hi,
Is there any way to handle processing of duplicate messages in J2SE File adapter scenario?
Here is the scenario ,
Steps :
1. Engine picks up a message and checks the size of it.
2. Before reaching the checking interval , the adapter(file) was terminated unfortunately.
3. J2SE engine was restarted.
4. Previous file was again picked up and sent as the first time with one msgID.
5. After sometime, same file was picked up with a new msgID
6. System gets only ONE configrmation that file has been successfully transfered.
So we find two messages containing the same file.
I have checked in J2SE doc, there is a parameter called "db.exactlyOnceErrorInPendingState" which is related to DB.
Is there any similar parameter to handle the duplicate messages in FIle Adapter scenarios of J2SE Engine.
Please help me in this regard as it seems to be a new thing in J2SE AE.
Regards,
Soorya.Hi swarup,
But using OS command how can we rename /archive that file?
Module means any Custom Module or wat?
Following are the channel configurations used in File To File scenario.
File Sender :
version=30
mode=XMB2FILE
XI.httpPort=58201
XI.httpService=/test
XI.ReceiverAdapterForService=test_rcv
file.numberOfMessageTypes=1
XI.Interface=MI_test_out
XI.InterfaceNamespace=http://nestle.com/test
file.type=BIN
file.targetDir=/test_inb
file.targetFilename=unusedbutreq
file.writeMode=fromHeader.ext
file.createDir=0
file.nestleName=initial
file.writeMode=fromHeader.ext
file.nestleEXT=test
file.nestleFileOverwrite=False
File Receiver :
version=30
mode=FILE2XMB
XI.TargetURL=http://localhost:58201/test
XI.NestleTargetURL=http://localhost:58201/test
file.type=BIN
file.checkFileModificationInterval=300000
file.pollInterval=300
file.processingMode=archiveWithTimestamp
file.archiveDir=/test_out/arc
XI.QualityOfService=EO
file.numberOfMessageTypes=1
file.messageAttributes=name
XI.SenderService=test_snd
XI.Interface=MI_test_out
XI.InterfaceNamespace=http://nestle.com/test
XI.ReceiverService=test_rcv
file.nestleBadMsgDir=/test_out/bad
file.sourceDir=/test_out
file.sourceFilename=.
Do the needful help asap.
Regards,
Prakash. -
Declaring a Node object throws null...how to handle if Node doesnt exist
Hello all,
I am parsing an xml document that looks like the following:
<item>
<title>
</title>
<link>
</link>
<description>
</description>
<pubDate>
</pubDate>
<geo:lat>
</geo:lat>
<geo:long>
</geo:long>
</item>Now every item may or may not contain the two geo nodes.
<geo:lat> and <geo:lon>
When I declare those two nodes and they are not present:
Node geoLonNode = geoLatNode.getNextSibling().getNextSibling();//ERROR HERE.
String geoLonText = geoLonNode.getTextValue();I get a null pointer exception.
How can I handle this exception.
Is there a way to test for null before declaring the Node obj?
Basically what I am trying to do is to output the xml to a html table.
I imagine this would be simple, I am just at a loss.
TIA!Nevermind...as I said it was probably easy and it was.
Long day!
if(geoLatNode.getNextSibling().getNextSibling() != null)
Node geoLonNode = geoLatNode.getNextSibling().getNextSibling()
String geoLonText = geoLonNode.getTextValue();
}Thanks for looking. -
How to handle Hirarchy structures in MESSAGE MAPPING
Hi...
I'm getting data from a file.. and that is contain Hierarchy structure.. but i want to load it to a plain structure.. for this how can we map the source fields to target fields..
here my source structure is...
HEADER :
--DATE
--COMPANY
--LINE_ITEM_1:
-----CUSTOMER_NO
-----LINE_ITEM2:
ORDER_NO
MATERIAL_NO
QUANTITY
PRICE
DELIVARYDATE
-----LINE_ITEM2
ORDER_NO
MATERIAL_NO
QUANTITY
PRICE
DELIVARYDATE
-----CUSTOMER_NO
-----LINE_ITEM2
ORDER_NO
MATERIAL_NO
QUANTITY
PRICE
DELIVARYDATE
-----LINE_ITEM2----
ORDER_NO
MATERIAL_NO
QUANTITY
PRICE
DELIVARYDATE
this structure i want to map it to a plin structure..
regards
JainHi,
removeContext:- Deletes all context changes in a queue.
For Eg:-
<RootNode>
<Node1>
Value1
Value2
</Node1>
<Node2>
Value3
Value4
</Node2>
</RootNode>
When removeContext not used:-
<RootNode>
Value1
Value2
</RootNode>
When removeContext used:-
<RootNode>
Value1
Value2
Value3
Value4
</RootNode>
Refer [https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9202d890-0201-0010-1588-adb5e89a6638]
Hope this helps.
Regards,
Ambili -
How to handle duplicate Primary Key entries in the Source data
This is my first experience with ODI.
I receive Source data from the customer that includes a one letter designation, ACTION_CODE, in each record of data as to the disposition of the record:
‘R’ represents Re-issue in which case I’m to modify the corresponding Target record based on the Primary Key.
‘N’ represents an Insert in which case I’m to insert a new record into the Target.
‘D’ represents a delete in which case I’m to delete the record with the corresponding Primary Key from the Target.
The Source data comes in an XML file and the Target is an Oracle DB.
I have chosen the IKM Oracle Incremental Update (MERGE) Knowledge Module.
I filter ACTION_CODE to just collect records that are ‘N’ or ‘R’ and I exclude the ACTION_CODE from the mapping but since within the same Source
set there may be an ‘N’ and ‘R’ with the same primary key I receive Primary Key errors.
Should I alter CKM to not check for duplicates in the Source?
Is there a better way?Ganesh,
Identifying Duplicates is a logical activity. More or less it need Manual intervention to judge both the records means common. if few unique paramenters like Telephone, Pincode, SSN, passport no etc can be used on filters for searching the records. Currently there are no automatic method to identify the duplicates. In MDM 5.5 SP04 which is next release there will be auto de-duplicate facility based on tresholeds and matching criteria that you will setup.
I hope i have answered your query transparently. if you have any queries futher you can reply here.
Regards
Veera -
How to remoce CDATA tag from XSLT mapping
Hi Sharma,
Please remove all CDATA elements from your code and execute so that you will get expected output. Because CDATA term we will use while writing
DTD for your source xml, so this is not required in XSL Program. check below code....
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<DlrDiscItemWise>
<DlrDiscItemWiseXML>
<xsl:text disable-output-escaping="yes"></xsl:text>
<xsl:copy-of select="."/>
<xsl:text disable-output-escaping="yes"></xsl:text>
<xsl:text disable-output-escaping="yes"></xsl:text>
</DlrDiscItemWiseXML>
</DlrDiscItemWise>
</xsl:template>
</xsl:stylesheet>
thanks,
madhuThanks Madhusudan, but i doubt it wil work by removing all CDATA tags. I removed and this is the response. Please check
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<DlrDiscItemWise>
<DlrDiscItemWiseXML>
<xsl:text disable-output-escaping="yes"></xsl:text>
<xsl:copy-of select="."/>
<xsl:text disable-output-escaping="yes"></xsl:text>
<xsl:text disable-output-escaping="yes"></xsl:text>
</DlrDiscItemWiseXML>
</DlrDiscItemWise>
</xsl:template>
</xsl:stylesheet>
result
<?xml version="1.0" encoding="UTF-8"?><DlrDiscItemWise><DlrDiscItemWiseXML><ns0:MT_DlrDis_Sender xmlns:ns0="http://MTSINDIA/TC/DealerDiscount"><ITEM><nDlrAddEdit>1</nDlrAddEdit><nItemCode>1001000080</nItemCode><nItemDisc>15</nItemDisc><dtDiscFromdt>11/May/2010</dtDiscFromdt><dtDiscToDt>31/Dec/2010</dtDiscToDt><nItemAddDisc/><dtAddDiscFromDt/><dtAddDiscToDt/><nDlrTypeCode/><nItemDisQtyMulti/><nItemDiscQtyFree/><sItemDiscPerAmt/><sItemDiscType/><nDlrCode>1001</nDlrCode><nCircleCode>4</nCircleCode></ITEM></ns0:MT_DlrDis_Sender></DlrDiscItemWiseXML></DlrDiscItemWise>
But in target structure I am not able to see it as single string.
Please suggest -
How to insert new line break in XSLT mapping
Hi experts,
I am doing file to mail scenario, i am sending the text file as an attachment using reciever mail adapter.
I did everything, i can able to send the mail with text file attachment, but with in the file i got multiple rows, i need to put line break in XSLT mapping.
I did use following statement but it is inserting small rectangle between the records, the records are not separating with new lines, all are in one line.
<xsl:text>*#xA;</xsl:text>
note: in real coding replace * with &
Can anyone suggest me how to insert new line in XSLT mapping.
My XSLT mapping as look like:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://www.Coj.co.za/SapIsuToABSA/DirectDebitFile">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="break"><br/></xsl:variable>
<xsl:variable name="space"> </xsl:variable>
<xsl:variable name="newline"><xsl:text></xsl:text></xsl:variable>
<xsl:template match="/">
<ns1:Mail xmlns:ns1="http://sap.com/xi/XI/Mail/30">
<Subject>Please Check Attached Direct Debit File</Subject>
<From>S@za</From>
<To>P@za</To>
<Content_Type>text/plain</Content_Type>
<Content>
<xsl:for-each select="MT_SapIsuToABSA_DirectDebitFile/DirectDebitRec/Body">
<xsl:value-of select="Space1"/>
<xsl:value-of select="Cust_AccNo"/>
<xsl:value-of select="Reserve_1"/>
<xsl:value-of select="Cust_Name"/>
<xsl:value-of select="Cust_Name1"/>
<xsl:value-of select="Cust_Bank_AccNo"/>
<xsl:value-of select="Space2"/>
<xsl:value-of select="Cust_Bank_BranchNo"/>
<xsl:value-of select="Reserve_2"/>
<xsl:value-of select="Space3"/>
<xsl:value-of select="Cust_AccNo_1"/>
<xsl:value-of select="Space4"/>
<xsl:value-of select="Reserve_3"/>
<xsl:value-of select="Deduction_Amnt"/>
<xsl:value-of select="Space5"/>
<xsl:value-of select="Reserve_4"/>
<xsl:value-of select="Space6"/>
<xsl:value-of select="Action_Date"/>
<xsl:value-of select="Space7"/>
<xsl:value-of select="Reserve_5"/>
<xsl:text>*#xA;</xsl:text>
note: in real coding replace * with &
</xsl:for-each>
</Content>
</ns1:Mail>
</xsl:template>
</xsl:stylesheet>
Kind regards,
PraveenHi,
I think <xsl:text>#xa;</xsl:text> should do the trick, but depending on which OS (ux or win), the "new line" chars sequence is different (win would require a CRLF like <xsl:text>#xd;*#xa;</xsl:text>)
Chris
-> &
Edited by: Christophe PFERTZEL on Apr 14, 2010 2:16 PM -
Graphical Mapping Vs XSLT mapping Vs Java Mapping Vs ABAP Mapping
Hi Experts,
I have a question regarding different message mapping options available in XI namely
Graphical Mapping
XSLT mapping
Java Mapping
ABAP Mapping
Q1: Which amoung the above mappings is the best and why?
Q2: On what cases Graphical, XSLT, Java and ABAP Mapping should be used?
Q3: Is it true that graphical and XSLT mappings are converted into Java class internally?
Kindly help!
Thanks
Gopal
Message was edited by:
gopalkrishna baligaHi,
There is no hard and fast rule for using the mapping techniques.
Graphical Mapping is used for simple mapping cases. When, the logic for your mapping is simple and straight forward and it does not involve mult hiearchical mapping requirement. and context handling.
Java and XSLT mapping are used when graphical mapping cannot help you.
When the choice is between Java And XSLT, XSLT is simpler than java mapping and easier. But, it has its drawbacks. XSLT can lead to a bad perfrormance if the Source XML is huge.
Java Mapping uses 2 types of parsers. DOM and SAX. DOM is easier to use with lots of classes to help you create nodes and elements, but , DOM is very processor intensive.
SAX parser is something that parses your XML one after the other, and so is not processor intensive. But, it is not exaclty easy to develop either.
For further info on each of the mapping, refer to these links,
Graphical Mapping,
http://help.sap.com/saphelp_nw04/helpdata/en/6d/aadd3e6ecb1f39e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
XSLT Mapping
http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm
http://www.w3.org/TR/xslt20/
Java Mapping
http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/content.htm
DOM parser API
http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html
Also, check this thread for more info,
Different types of Mapping in XI
Am not sure about XSLT , but , yes graphical mapping is converted into java classes internally and these classes use SAX parsing as well.
Regards,
Bhavesh -
Preserving spaces in XSLT Mapping
Hi ,
My source structure has a field
<field1> aaaa1234</field1>
whens this field is transformed by using a XSLT mapping the output is as follows
<field1>aaaa1234</field1>
This output is visible in the interface mapping itself.
The leading spaces are truncated. Can any one suggest me on how to preserve leading spaces during XSLT mapping?
Thanks
VasSHi,
Refer this link
http://www.w3.org/TR/xslt20/Overview.html#element-preserve-space
Regards
Suraj -
Please explain XSLT mapping from initial
Hi Experts,
I have Altova XMLspy but I dont know how to use it for doing XSLT mapping.
Can anyone of you please explain a simple XSLT mapping in Altova so that I can try.I have checked many blogs related to XSLT mapping but didnt find my answers.
If you can guide me with a simple xslt mapping it would be great.
Thanks,
RaviHi Ravi
Please check the below links.
XSLT Tutorial
http://www.altova.com/documents/XMLSpyTutorial.pdf
http://www.altova.com/documents/2013/xmlspytutorialstd.pdf
http://xml-xslt-dtd-xsd.wonderhowto.com/how-to/use-xmlspy-for-xml-editing-217876/
Regards
Osman -
How to delete duplicate bookmarks?
I have a lot of duplicate bookmarks in Firefox and the number keeps on adding on. There are few answers regarding this on Support pages but none of them work. Neither the add-ons mentioned there(sad such trivial and basic things need add-ons) .
As there's no good way to sync Chrome and Firefox bookmarks I often end up manually importing in either browser from the other and after that I end up having tones of duplicates. I can deal with this in Chrome but have not figured out how to do this in Firefox. I think Sync ought to handle this.
Anyway, any quick solution regarding this? Preferably without an add-on (sigh!! one more thing to slow down the browser).Firefox doesn't allow duplicate bookmarks to be saved. A user can override that feature by copying a bookmark to a different folder, or by saving a "dupe" bookmark manually, by dragging the "dupe" to a different folder from the original.
I'm not sure how Sync handles duplicates, as I have so many "dupes" from the days before Firefox 3.0 when the saving of "dupes" was removed from the "Bookmark this page" button and menu items.
As far as "importing" bookmarks from another browser, Firefox ''will'' import duplicates.
Sorry, the only way I know of finding and deleting duplicate bookmarks is via an extension. Bookmark Duplicate Detector was the last extension that I used, in years past. -
How to Count schedule lines in IDoc ORDERS05 using XSLT Mapping
Hi Experts,
In a Scenario where we are sending Purchase order (ORDERS05) to SAP SNC using XSLT Mapping,
where in we need to count the no. of schedule lines against the Purchase Order line.
As in Schedule line segment there is no such provision, so it needs to be handle in XSLT mapping to count the schedule lines.
Can you all please guide me how to go about the same.
Regards,
Nitin PHi Satish,
Thank you very much for the reply,
as there is only Quantity and other information is maintained against schedule lines how we can count the schedule line repeatation against PO line ? Is that very simple as you suggested or some other consideration also needs to be taken.
Please clarify the same and let me also know if there are some standard documents also for the same.
Regards,
Nitin P -
XSLT Mapping - replacing attribute value of a specific node
Hi,
I want to replace the value of an attribute for a specific node. Can you please tell me how this can be achieved using XSLT coding?
The input file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope">
<EnvelopeVersion>2.0</EnvelopeVersion>
<Header>
<MessageDetails>
<Class>IR-PAYE-MOV</Class>
<Qualifier>request</Qualifier>
<Function>submit</Function>
<CorrelationID/>
<Transformation>XML</Transformation>
<GatewayTimestamp/>
</MessageDetails>
<SenderDetails>
<IDAuthentication>
<SenderID>isv142</SenderID>
<Authentication>
<Method>MD5</Method>
<Value>1L2xFE8WqHHI5iVMGhixAg==</Value>
</Authentication>
</IDAuthentication>
</SenderDetails>
</Header>
<GovTalkDetails>
<Keys>
<Key Type="TaxOfficeNumber">123</Key>
<Key Type="TaxOfficeReference">MD345</Key>
</Keys>
<ChannelRouting>
<Channel>
<URI>0142</URI>
</Channel>
</ChannelRouting>
</GovTalkDetails>
<Body>
<IRenvelope xmlns="http://www.govtalk.gov.uk/taxation/PAYE/MOV/09-10/1">
<IRheader>
<Keys>
<Key Type="TaxOfficeNumber">123</Key>
<Key Type="TaxOfficeReference">MD345</Key>
</Keys>
<PeriodEnd>2009-09-29</PeriodEnd>
<DefaultCurrency>GBP</DefaultCurrency>
<IRmark Type="generic">03Bfkipk6UDWSXLj77ObBVoK894=</IRmark>
<Sender>Company</Sender>
</IRheader>
<InYearMovements>
<EmployerName>form p60</EmployerName>
<P46 Statement="A">
<Name>
<Fore>Smith</Fore>
<Sur>John</Sur>
</Name>
<Address>
<Line>Sterling Residency</Line>
<Line>Gehde</Line>
<Line>Hedge End</Line>
<Line>Southampton</Line>
<PostCode>12345678</PostCode>
</Address>
<WorksNumber>20090030</WorksNumber>
<NINO>NP258719D</NINO>
<BirthDate>1985-07-11</BirthDate>
<Gender>male</Gender>
<StartDate>2009-04-20</StartDate>
<TaxCodeInUse>647L</TaxCodeInUse>
</P46>
</InYearMovements>
</IRenvelope>
</Body>
</GovTalkMessage>
I want to replace the value 'http://www.govtalk.gov.uk/taxation/PAYE/MOV/09-10/1' of attribute xmlns belonging to the node 'IRenvelope' with the value 'http://www.govtalk.gov.uk/taxation/PAYE/MOV/10-11/1'
So the output of the mapping should be:
<?xml version="1.0" encoding="UTF-8"?>
<GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope">
<EnvelopeVersion>2.0</EnvelopeVersion>
<Header>
<MessageDetails>
<Class>IR-PAYE-MOV</Class>
<Qualifier>request</Qualifier>
<Function>submit</Function>
<CorrelationID/>
<Transformation>XML</Transformation>
<GatewayTimestamp/>
</MessageDetails>
<SenderDetails>
<IDAuthentication>
<SenderID>isv142</SenderID>
<Authentication>
<Method>MD5</Method>
<Value>1L2xFE8WqHHI5iVMGhixAg==</Value>
</Authentication>
</IDAuthentication>
</SenderDetails>
</Header>
<GovTalkDetails>
<Keys>
<Key Type="TaxOfficeNumber">123</Key>
<Key Type="TaxOfficeReference">MD345</Key>
</Keys>
<ChannelRouting>
<Channel>
<URI>0142</URI>
</Channel>
</ChannelRouting>
</GovTalkDetails>
<Body>
<IRenvelope xmlns="http://www.govtalk.gov.uk/taxation/PAYE/MOV/10-11/1">
<IRheader>
<Keys>
<Key Type="TaxOfficeNumber">123</Key>
<Key Type="TaxOfficeReference">MD345</Key>
</Keys>
<PeriodEnd>2009-09-29</PeriodEnd>
<DefaultCurrency>GBP</DefaultCurrency>
<IRmark Type="generic">03Bfkipk6UDWSXLj77ObBVoK894=</IRmark>
<Sender>Company</Sender>
</IRheader>
<InYearMovements>
<EmployerName>form p60</EmployerName>
<P46 Statement="A">
<Name>
<Fore>Smith</Fore>
<Sur>John</Sur>
</Name>
<Address>
<Line>Sterling Residency</Line>
<Line>Gehde</Line>
<Line>Hedge End</Line>
<Line>Southampton</Line>
<PostCode>12345678</PostCode>
</Address>
<WorksNumber>20090030</WorksNumber>
<NINO>NP258719D</NINO>
<BirthDate>1985-07-11</BirthDate>
<Gender>male</Gender>
<StartDate>2009-04-20</StartDate>
<TaxCodeInUse>647L</TaxCodeInUse>
</P46>
</InYearMovements>
</IRenvelope>
</Body>
</GovTalkMessage>
Thanks & Regards,
Aditi NaikHi,
You get name of an attribute by this code
<xsl:for-each select="@*">
<xsl:text>Value of </xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:text> is </xsl:text><xsl:value-of select="."/>
</xsl:for-each>
Change value by providing new value in <xsl:value-of select="."/>
Regards
suraj
Maybe you are looking for
-
I had to get a new hard drive for my macbook pro ,and unfortunatly i lost all my music ,but It is on my ipad...The problem is when I go to sync my ipad .The itunes on my computer wants to delete all the music on my ipad and replace it with the music
-
Hello some questions on SAP DMS:- - can versions of same document be shown graphically. ? - can links be created for documents. can we make sure that links are not broken when document is moved ?(links to document on 1st location shall not be broken)
-
I began this crazy fiasco on Friday (it's now Monday). My phone didn't have enough storage to update to iOS8 via wifi, so I connected to my laptop. Thankfully I backed up my phone to iCloud & even saved pics manually onto my laptop before beginning
-
I tried to install Moonlight plugin version 3.9.9 (4 preview) on the latest version of Firefox. Error message is: "Novell Moonlight could not be installed because it is not compatible with with Firefox 6.0.2". There isn't any versions of Moonlight th
-
Time machine is very slow....
After upgrading to ML, time machine seems very slow. I usually make back up once a week. First back up took nearly a day, but completed successfully.