Advertisement
zaheerahmad

employeeEvent dataweave

Dec 18th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.81 KB | None | 0 0
  1. %dw 1.0
  2. %output application/json
  3. skipNullOn = "everywhere"
  4. ---
  5. {
  6. EmployeeEvent: {
  7. EventHeader: {
  8. ID: payload.EmployeeEvent.EventHeader.ID,
  9. Timestamp: payload.EmployeeEvent.EventHeader.Timestamp,
  10. Name: payload.EmployeeEvent.EventHeader.Name,
  11. Cause: payload.EmployeeEvent.EventHeader.Cause,
  12. Source: {
  13. System: payload.EmployeeEvent.EventHeader.Source.System,
  14. User: payload.EmployeeEvent.EventHeader.Source.User
  15. },
  16. State: payload.EmployeeEvent.EventHeader.State,
  17. TrackingID: payload.EmployeeEvent.EventHeader.TrackingID
  18. },
  19. Body: {
  20. Employee: {
  21. Name: {
  22. FirstName: payload.EmployeeEvent.Body.Employee.Name.FirstName,
  23. LastName: payload.EmployeeEvent.Body.Employee.Name.LastName,
  24. MiddleInitial: payload.EmployeeEvent.Body.Employee.Name.MiddleInitial,
  25. Salutation: payload.EmployeeEvent.Body.Employee.Name.Salutation,
  26. Suffix: payload.EmployeeEvent.Body.Employee.Name.Suffix
  27. },
  28. BirthDate: payload.EmployeeEvent.Body.Employee.*BirthDate default [] map ((birthDate , indexOfBirthDate) -> {
  29. DateOfBirth: birthDate.DateOfBirth,
  30. YearOfBirth: birthDate.YearOfBirth,
  31. MonthOfBirth: birthDate.MonthOfBirth,
  32. DayOfBirth: birthDate.DayOfBirth
  33. }),
  34. Gender: payload.EmployeeEvent.Body.Employee.Gender,
  35. ContactInformation: {
  36. Addresses: {
  37. Address: payload.EmployeeEvent.Body.Employee.ContactInformation.Addresses.*Address default [] map ((data , indexOfdata) -> {
  38.  
  39. isPreferred: data.@isPreferred,
  40. AddressKind: data.AddressKind,
  41. Line1: data.Line1,
  42. Line2: data.Line2,
  43. Line3: data.Line3,
  44. CityName: data.CityName,
  45. StateProvinceCode: data.StateProvinceCode,
  46. CountyName: data.CountyName,
  47. CountryCode: data.CountryCode,
  48. PostalCode: data.PostalCode
  49.  
  50. })
  51. },
  52. Emails: {
  53. Email: payload.EmployeeEvent.Body.Employee.ContactInformation.Emails.*Email default [] map ((emailData , indexOfemailData) -> {
  54.  
  55. IsPrimary: emailData.@IsPrimary ,
  56. EmailAddress: emailData.EmailAddress,
  57. EmailKind: emailData.EmailKind
  58. })
  59. },
  60. Phones: {
  61. Phone:payload.EmployeeEvent.Body.Employee.ContactInformation.Phones.*Phone default [] map ((phoneData , indexOfphoneData) -> {
  62.  
  63. IsPrimary: phoneData.@IsPrimary ,
  64. PhoneUseType: phoneData.PhoneUseType,
  65. PhoneNumber: phoneData.PhoneNumber,
  66. Extension: phoneData.Extension,
  67. DialingCountryCode: phoneData.DialingCountryCode
  68.  
  69. })
  70. }
  71. },
  72. EmployeeIDs: {
  73. EmployeeID: payload.EmployeeEvent.Body.Employee.EmployeeIDs.*EmployeeID default [] map ((empIdData , indexOfempIdData) -> {
  74.  
  75. IsPrimary: empIdData.@IsPrimary ,
  76. ID: empIdData.ID ,
  77. Source: empIdData.Source
  78. })
  79. },
  80. Status: payload.EmployeeEvent.Body.Employee.Status,
  81. HireDate: payload.EmployeeEvent.Body.Employee.HireDate,
  82. TerminationDate: payload.EmployeeEvent.Body.Employee.TerminationDate,
  83. PromotionDate: payload.EmployeeEvent.Body.Employee.PromotionDate,
  84. AnniversaryDate: payload.EmployeeEvent.Body.Employee.AnniversaryDate.Date,
  85. ServiceDate: payload.EmployeeEvent.Body.Employee.ServiceDate,
  86. Corporation: {
  87. CorporationID: payload.EmployeeEvent.Body.Employee.Corporation.CorporationID ,
  88. Description: payload.EmployeeEvent.Body.Employee.Corporation.Description,
  89. CountryCode: payload.EmployeeEvent.Body.Employee.Corporation.CountryCode,
  90. FutureOrderDays: payload.EmployeeEvent.Body.Employee.Corporation.FutureOrderDays ,
  91. MaximumOnlineOrderQuantity: payload.EmployeeEvent.Body.Employee.Corporation.MaximumOnlineOrderQuantity ,
  92. GiftCardThresholdAmount: payload.EmployeeEvent.Body.Employee.Corporation.GiftCardThresholdAmount,
  93. ToGoOrderThresholdAmount: payload.EmployeeEvent.Body.Employee.Corporation.ToGoOrderThresholdAmount ,
  94. ToGoLeadTimeMinutes: payload.EmployeeEvent.Body.Employee.Corporation.ToGoLeadTimeMinutes ,
  95. Concept: {
  96. ConceptID: payload.EmployeeEvent.Body.Employee.Corporation.Concept.ConceptID,
  97. Description: payload.EmployeeEvent.Body.Employee.Corporation.Concept.Description
  98. }
  99. },
  100. Department: {
  101. Code: payload.EmployeeEvent.Body.Employee.Department.Code ,
  102. ConceptID: payload.EmployeeEvent.Body.Employee.Department.ConceptID,
  103. Description: payload.EmployeeEvent.Body.Employee.Department.Description
  104. },
  105. HighestEducationLevel: payload.EmployeeEvent.Body.Employee.HighestEducationLevel,
  106. EthnicGroup: payload.EmployeeEvent.Body.Employee.EthnicGroup,
  107. EmployeeLocations: {
  108. EmployeeLocation: payload.EmployeeEvent.Body.Employee.EmployeeLocations.*EmployeeLocation default [] map ((employeeLocation , indexOfEmployeeLocation) -> {
  109. ChangeIndicator: employeeLocation.@ChangeIndicator,
  110. LocationNumber: employeeLocation.Location.LocationID.Number ,
  111. AreaID: employeeLocation.Location.Region.Area.AreaID,
  112. AreaDescription: employeeLocation.Location.Region.Area.Description,
  113. ConceptID: employeeLocation.Location.Region.Corporation.Concept.ConceptID,
  114. ConceptDescription: employeeLocation.Location.Region.Corporation.Concept.Description,
  115. DivisionID: employeeLocation.Location.Region.Division.DivisionID ,
  116. DivisionDescription: employeeLocation.Location.Region.Division.Description,
  117. RegionID: employeeLocation.Location.Region.RegionID ,
  118. RegionDescription: employeeLocation.Location.Region.Description,
  119. Corporation: {
  120. CorporationID: employeeLocation.Location.LocationID.CorporationID ,
  121. Description: employeeLocation.Location.Region.Corporation.Description,
  122. CountryCode: employeeLocation.Location.Region.Corporation.CountryCode,
  123. FutureOrderDays: employeeLocation.Location.Region.Corporation.FutureOrderDays ,
  124. MaximumOnlineOrderQuantity: employeeLocation.Location.Region.Corporation.MaximumOnlineOrderQuantity ,
  125. GiftCardThresholdAmount: employeeLocation.Location.Region.Corporation.GiftCardThresholdAmount ,
  126. ToGoOrderThresholdAmount: employeeLocation.Location.Region.Corporation.ToGoOrderThresholdAmount ,
  127. ToGoLeadTimeMinutes: employeeLocation.Location.Region.Corporation.ToGoLeadTimeMinutes
  128. },
  129. JobCodes: {
  130. JobCode: employeeLocation.JobCodes.*JobCode default [] map ((jobCode , indexOfJobCode) -> {
  131. IsPrimary: jobCode.@IsPrimary ,
  132. ConceptID: jobCode.ConceptID,
  133. Code: jobCode.Code ,
  134. Priority: jobCode.Priority ,
  135. Title: jobCode.Title,
  136. WageRegular: jobCode.Wage.RegularWage ,
  137. WageOvertime: jobCode.Wage.OvertimeWage
  138. })
  139. }
  140. })
  141. },
  142.  
  143. NickName: payload.EmployeeEvent.Body.Employee.NickName
  144. }
  145. }
  146. }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement