This deck contains the 3 presentations from the Meetup we had at MuleSoft CONNECT in NYC on September 17th, 2019.
- How Global Atlantic integrated SE2's Aurum with Salesforce Sales & Service Cloud to build a single customer view
- B2B X12 Data transformations with DataWeave
- Securing configuration properties in Mule 4
Not a Meetup member yet? Join your local group! https://meetups.mulesoft.com/chapters/
16. Agenda
● What is EDI? What is X12? Why should I care?
● What is DataWeave 2? Do I need it?
● How does MuleSoft help with X12?
● Using X12 and DataWeave 2 together (Demo)
● Q&A
@ManikMagar manik.magar.me
17. What is EDI?
“Electronic Data Interchange (EDI) is the computer-to-computer exchange of
business documents in a standard electronic format between business partners.”
Source: https://www.edibasics.com/what-is-edi/
@ManikMagar manik.magar.me
19. What is X12?
In 1979, the American National Standards Institute (ANSI) chartered the
Accredited Standards Committee (ASC) X12 to develop uniform standards for
interindustry electronic exchange of business transactions-electronic data
interchange (EDI).
Source: http://x12.org/x12org/about/asc-x12-faqs.cfm#a1
@ManikMagar manik.magar.me
20. What is X12?
X12 Standards are continuously evolving. They can be differentiated by release
tag such 004010, where -
● 004 - Version Number
● 01 - Release Number
● 0 - Sub-release Number
Source: http://x12.org/x12org/about/asc-x12-faqs.cfm#a1
@ManikMagar manik.magar.me
21. What is X12?
How do you represent different business transactions with X12?
@ManikMagar manik.magar.me
PO
Invoi
ceInvoi
ceInvoi
ceInvoicePO
POPurcha
se
Order
Delivery
OrderDelivery
OrderDelivery
OrderDelivery
Order
……… many more
22. What is X12?
How do you represent different business transactions with X12?
@ManikMagar manik.magar.me
PO
Invoi
ceInvoi
ceInvoi
ceInvoicePO
POPurcha
se
Order
Delivery
OrderDelivery
OrderDelivery
OrderDelivery
Order
……… many more
X12 Standard defines Transaction Sets to represent different document types.
23. What is X12?
How do you represent different business transactions with X12?
@ManikMagar manik.magar.me
Invoice
Purcha
se
Order
Delivery
/Pickup
Order
850
810
370
Source: http://www.x12.org/x12-work-products/x12-transaction-sets.cfm
27. What is DataWeave 2.0?
@ManikMagar manik.magar.me
● Default expression language of Mule 4
28. What is DataWeave 2.0?
@ManikMagar manik.magar.me
● Default expression language of Mule 4
● More supported data formats such as “application/x-www-form-urlencoded”,
“multipart/*”, application/avro, Newline delimited JSON etc
29. What is DataWeave 2.0?
@ManikMagar manik.magar.me
● Default expression language of Mule 4
● More supported data formats such as “application/x-www-form-urlencoded”,
“multipart/*”, application/avro, Newline delimited JSON etc
● Data extraction without explicit data conversion
30. What is DataWeave 2.0?
@ManikMagar manik.magar.me
● Default expression language of Mule 4
● More supported data formats such as “application/x-www-form-urlencoded”,
“multipart/*”, application/avro, Newline delimited JSON etc
● Data extraction without explicit data conversion
● More functions and operations for data manipulations
31. What is DataWeave 2.0?
@ManikMagar manik.magar.me
● Default expression language of Mule 4
● More supported data formats such as “application/x-www-form-urlencoded”,
“multipart/*”, application/avro, Newline delimited JSON etc
● Data extraction without explicit data conversion
● More functions and operations for data manipulations
32. What is DataWeave 2.0?
@ManikMagar manik.magar.me
● Default expression language of Mule 4
● More supported data formats such as “application/x-www-form-urlencoded”,
“multipart/*”, application/avro, Newline delimited JSON etc
● Data extraction without explicit data conversion
● More functions and operations for data manipulations
● Better memory management
33. What is DataWeave 2.0?
@ManikMagar manik.magar.me
● Default expression language of Mule 4
● More supported data formats such as “application/x-www-form-urlencoded”,
“multipart/*”, application/avro, Newline delimited JSON etc
● Data extraction without explicit data conversion
● More functions and operations for data manipulations
● Better memory management
● ….. Much more
36. MuleSoft X12 Module
@ManikMagar manik.magar.me
● MuleSoft X12 Module (or Connector) makes it easy to integrate with any
system that uses X12 Standards.
37. MuleSoft X12 Module
@ManikMagar manik.magar.me
● MuleSoft X12 Module (or Connector) makes it easy to integrate with any
system that uses X12 Standards.
● It supports read, write, and validate X12 Messages
38. MuleSoft X12 Module
@ManikMagar manik.magar.me
● MuleSoft X12 Module (or Connector) makes it easy to integrate with any
system that uses X12 Standards.
● It supports read, write, and validate X12 Messages
● Supports multiple versions of X12 standards
39. ● MuleSoft X12 Module (or Connector) makes it easy to integrate with any
system that uses X12 Standards.
● It supports read, write, and validate X12 Messages
● Supports multiple versions of X12 standards
● Allows Trading partner based configurations
MuleSoft X12 Module
@ManikMagar manik.magar.me
40. MuleSoft X12 Module
@ManikMagar manik.magar.me
● MuleSoft X12 Module (or Connector) makes it easy to integrate with any
system that uses X12 Standards.
● It supports read, write, and validate X12 Messages
● Supports multiple versions of X12 standards
● Allows Trading partner based configurations
● Optionally, generate Functional Acknowledgements (997 or 999) as per X12
standard.
● Metadata propagation with DataSense for configured schemas
41. MuleSoft X12 Module
@ManikMagar manik.magar.me
● MuleSoft X12 Module (or Connector) makes it easy to integrate with any
system that uses X12 Standards.
● It supports read, write, and validate X12 Messages
● Supports multiple versions of X12 standards
● Allows Trading partner based configurations
● Optionally, generate Functional Acknowledgements (997 or 999) as per X12
standard.
42. MuleSoft X12 Module - How do I?
@ManikMagar manik.magar.me
When receiving X12, How do I -
● know what message types I received?
● are there any errors?
● get functional acknowledgments and write them back?
● see message metadata (datasense)?
● transform X12 to json?
47. AGENDA
● INTRODUCTION
● WHY SECURE INFORMATION
● HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR PROJECTS
● RUN YOUR PROJECT.
● NEXT STEPS ON AUTOMATIC DEPLOYMENTS?
● SUMMARY.
48. ABOUT ME
Edgar Moran
Integration Architect
Sr. Force.com Developer.
Working at Sitetracker as Integration Architect for the last 2.5 years
Twitter: @yucelmoran
Personal Blog: https://yucelmoran.com
49. WHY SECURE INFORMATION
● Is important for companies to keep information confidential
● Keep safe user Id’s and passwords
● General best practice
50. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
1 . Get Mule Secure Configuration Property from Exchange
51. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
2 . Prepare YAML files in your project (dev.yaml / test.yaml / production.yaml)
52. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
3 . Add some attributes in your files (in this sample password and token can be
encrypted)
53. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
4 . Add Global property (application environment ) and Global Configuration property
(to tell what property file pick)
54. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
5 . Add Secure Properties Config
55. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
6 . Specify the files that contains the credentials,
Set a master Key and select the Algorithm and
Encryption modes.
56. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
7. Using secure-properties-tool JAR file to encrypt passwords.
java -jar secure-properties-tool.jar string encrypt AES CBC masterKey
value_to_encrypt
57. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
8. Copy and paste the encrypted values in your YAML file looks like this:
sfdc.password: "![0UfB9Pm8pUfrkLAmNjKg6DAzrawLSPxXzjzACRipA+w=]"
NOTE: enclose the encrypted value with ![]
58. HOW TO ENCRYPT YOUR CREDENTIALS IN YOUR
PROJECTS
9. Finally to see the values you can access them like this:
${secure::sfdc.password}
59. RUN YOU PROJECT AND TEST
Before try to run your project, make sure you have your environment variable set in
Anypoint Studio:
Get the template from here: https://github.com/emoran/mule4-secure-
properties
60. NEXT STEPS ON AUTOMATIC DEPLOYMENTS?
● Setup your prefered source control provider (Bitbucket / GitHub / Azure
DevOPS).
● Decide the CI tool is better for you (Circle CI, Jenkins to mention some I have
used from many many)
● Adjust your project POM.xml / Settings.XML files and CI pipelines
● Start Building and deploying to your environments per selected branch