Conversie van de TransSmart solution van BizTalk 2013 naar 2016.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

TM.Shared.OrderStatus_to_TM.TransSmart.Status.xsl 3.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  2. xmlns:ScriptNS0="http://schemas.microsoft.com/BizTalk/2003/ScriptNS0"
  3. xmlns:ScriptNS1="http://schemas.microsoft.com/BizTalk/2003/ScriptNS1"
  4. xmlns:DateTime="TM.Shared.Components.DateTime"
  5. xmlns:SSO="TM.Shared.Components.SSO"
  6. xmlns:String="TM.Shared.Components.String"
  7. xmlns:s0="http://TM.KLG.com/KLG/OrderStatus/v19A"
  8. xmlns:ns0="http://TM.nShift.messages"
  9. exclude-result-prefixes="s0 ns0 ScriptNS0 ScriptNS1 DateTime SSO String">
  10. <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" indent="yes" />
  11. <!-- region global variable initialization -->
  12. <xsl:variable name="connectionString" select="SSO:GetValue('TM.TransSmart', 'ESBLookupConnectionString')"/>
  13. <xsl:variable name ="sender">
  14. <xsl:choose>
  15. <xsl:when test="/s0:StatusReport/Sender='KLGEUEERSE01'">KLE</xsl:when>
  16. <xsl:when test="/s0:StatusReport/Sender='KLGEUVENLO01'">KLG</xsl:when>
  17. <xsl:otherwise>KLG</xsl:otherwise>
  18. </xsl:choose>
  19. </xsl:variable>
  20. <!-- end region -->
  21. <!-- region templates -->
  22. <xsl:template match="/">
  23. <xsl:apply-templates select="/s0:StatusReport" />
  24. </xsl:template>
  25. <xsl:template match="/s0:StatusReport">
  26. <xsl:variable name="currentDateTime" select="DateTime:GetCurrentDateTime()" />
  27. <xsl:variable name="currentDate" select="DateTime:GetCurrentDate()" />
  28. <ns0:root>
  29. <ns0:status>
  30. <xsl:attribute name="carrier">
  31. <xsl:value-of select="$sender" />
  32. </xsl:attribute>
  33. <xsl:for-each select="Status">
  34. <ns0:shipment>
  35. <ns0:lineNo>
  36. <xsl:number/>
  37. </ns0:lineNo>
  38. <ns0:statusTimeStamp>
  39. <xsl:value-of select="DateTime:FormatDateTime(/s0:StatusReport/TimeStamp, 'yyyy-MM-ddTHH:mm:ss', 'yyyyMMddHHmmss', 'statusTimeStamp')"/>
  40. </ns0:statusTimeStamp>
  41. <ns0:reference>
  42. <xsl:value-of select="ShipmentReference"/>
  43. </ns0:reference>
  44. <xsl:if test="StatusCode='DELIVERED'">
  45. <ns0:deliveryDate>
  46. <xsl:value-of select="DateTime:FormatDateTime(StatusTimeStamp, 'yyyy-MM-ddTHH:mm:ss', 'yyyyMMdd', 'statusTimeStamp')"/>
  47. </ns0:deliveryDate>
  48. <ns0:deliveryTime>
  49. <xsl:value-of select="DateTime:FormatDateTime(StatusTimeStamp, 'yyyy-MM-ddTHH:mm:ss', 'HHmmss', 'statusTimeStamp')"/>
  50. </ns0:deliveryTime>
  51. </xsl:if>
  52. <ns0:shipmentStatus>
  53. <xsl:choose>
  54. <xsl:when test="StatusCode='DELIVERED'">
  55. <xsl:text>DONE</xsl:text>
  56. </xsl:when>
  57. <xsl:when test="StatusCode='DELIVERY' and ReasonCode='TRANSIT'">
  58. <xsl:text>TRNS</xsl:text>
  59. </xsl:when>
  60. <xsl:otherwise>TRNS</xsl:otherwise>
  61. </xsl:choose>
  62. </ns0:shipmentStatus>
  63. <ns0:carrierStatusCode>
  64. <xsl:value-of select="StatusCode"/>
  65. <xsl:text> </xsl:text>
  66. <xsl:value-of select="ReasonCode"/>
  67. </ns0:carrierStatusCode>
  68. </ns0:shipment>
  69. </xsl:for-each>
  70. </ns0:status>
  71. </ns0:root>
  72. </xsl:template>
  73. <!-- end region -->
  74. <xsl:variable name="dbClose" select="ScriptNS0:DBLookupShutdown()"/>
  75. </xsl:stylesheet>