[MUSIC]
Doc Tran: Welcome and thank you for joining us today for Blockchain For
Developers.
Building an Intercompany Transaction Network.
Speaker 2: Because future looking statements are inherently subject to risk
and uncertainty are reminders that you should make any purchasing decisions or
investment decisions based on products that are currently commercially available.
Doc Tran: Intercompany processing is a challenge that is faced by companies of
all sizes worldwide.
We at Salesforce have been looking for a way to automate this process and provide
a scalable and agile solution to adjust to the dynamic regulatory environment.
Today, Salesforce processes over 1600 intercompany transactions every year.
The volume and nature of these transactions is increasing rapidly
as requirements and regulations become more and more complex.
To manage this increasing volume and complexity,
Salesforce had to dedicate 14 FTS, every year, taking up 30 days of work,
and coordination across 7 different departments.
40% of that process is still unfortunately manual in nature.
We looked at Salesforce Blockchain to help deliver a solution that can
manage the complexity of the intercompany transaction process.
With Salesforce Blockchain, we can create a single yet distributed source of truth
that minimizes reconciliation errors, data redundancy and latency of information.
Because Salesforce Blockchain is built on the Customer 360 platform,
we were able to seamlessly incorporate other pre built Salesforce finance apps.
And enable, for example,
features such as workflow to be incorporated across those applications.
Because of the platform, we are also able to provide access to data across
the many apps on the Salesforce platform.
Enabling the users to develop reporting that provides insight across processes.
With Salesforce Blockchain specifically,
we were able to take a process that today took 14 FTEs and
30 days a year of effort down to just 2 employees and
a few hours a year to execute.
This was accomplished principally by embedding cross validation rules within
the blockchain solution.
And automating control checks to ensure accuracy and
completion of the transactions to be processed.
Additional controls to determine key elements are present in apply regulatory
rules, for example, that contract agreements between parties
are in place can also be incorporated into the Blockchain.
We also are able to automate regulatory compliance by
enabling the generation of compliant invoices and
tax reports on demand, all through the Blockchain platform.
The Blockchain platform itself helped us to eliminate the reliance on
multiple sets of ledger's and sub ledger's by entity.
And simplify the infrastructure to one global sub ledger within
the Salesforce Blockchain, allowing us to post a multiple general
ledger's at once regardless of which ERP system those ledger resides in.
Salesforce Blockchain provides us with a scalable solution and simplified
infrastructure support model without compromising our control environment by
ensuring the consistency and accuracy of the global intercompany process.
With that, I'd like to hand it off to Madhu,
who will share with you a demonstration of how this proof of concept works, and
how it's been able to automate our intercompany process.
Thank you.
Madhu Seela: Thank you for the introduction Doc.
My name is Madhu Seela, senior architect on the Salesforce Business Technology team
joining us from San Francisco.
Today I'm going to walk you through what the user sees when using the intercompany
transaction network application built on Salesforce Blockchain.
As Doc touched upon, this application was made to facilitate and settle intercompany
transactions between various Salesforce entities including new acquisitions.
Let's start with setting up an all new trading entity which represents
a new partner in the Blockchain network.
A new business user enters their information into this form, which includes
address, bank detail, currency and the associated ledger's and accounts.
If this were a new acquisition, you would be able to add multiple ledger's, so
journals could be generated and posted to all associated ledgers at once.
Once all trading entities are configured,
we can now establish relationships between them.
By identifying relationships,
these entities can transact with each other by capturing payment terms,
tax requirements, or even trade agreements captured as file attachments.
I want to pause a second and remind you that we just set up a brand new
blockchain partner with relationship rules declaratively with no
code using Salesforce Blockchain out of the box functionality.
Let's look into a transaction.
In this transaction, you can see that we received all transaction details through
a workbook that includes provider and recipient information.
Let's upload the workbook into the Blockchain App.
The Blockchain automatically goes through all the predetermined validation rules and
notifies users of the transaction success or failure.
For this example, there are 11 records where there are 2 transactions failed and
n9 succeeded with a status message for each.
It shows that the 2 failed transactions were because there was no trade agreement
set up between the two entities.
The app allows you to re-upload the corrector workbook and
will only process transactions that have previously failed.
All successful and validated transactions get recorded onto the Blockchain and
goes through netting and settlement process,
ultimately generating journals for the entity ledger consumption.
Let's add some more detail into the transaction,
which are recorded as headers lines and distributions on the blockchain.
As we navigate through the header, you see that an invoice gets generated an eating
and settlement method is determined and the transaction has been inserted.
We are leveraging an in house bank for settling intercompany transaction.
The Salesforce Blockchain platform by nature is immutable and
enables us to be compliant and auditable.
As we navigate through the lines and distributions,
you can see that it has two distributions and they're all going to SFDC Global ERP.
You can see this by looking at the timeline feature to see what happened
behind the scenes of each transaction.
Here you can see the transaction went through four stages from Open to Settle.
From here you can generate a PDF invoice on demand for
tax purposes to meet various government guidelines, which looks like this.
As a final step in the transaction process, you can generate a journal and
post it to multiple ERP ledger's simultaneously through an integration with
the MuleSoft integration platform.
To go a little deeper into how Salesforce Blockchain enabled us to create this
intercompany transaction network from a developer's perspective,
I'm going to hand it over to Sudeep.
Sudeep Verma: Thanks Madhu, for the great demonstration.
Hello, everyone.
I'm Sudeep Verma, senior software engineer from Salesforce Business Technology.
I'm here to talk about how we use Salesforce Blockchain
along with Salesforce platform components to
develop finance intercompany application.
So once you go into your org, go to the setups and
types Blockchain Manager and
this screen pops up and it will be initially empty.
But you need to create a blockchain application with giving by name and
the description.
I'm not going to create a new blockchain application I'm going to showcase what is
we have created already.
Once you create a application in the Blockchain Builder, automatically
a unique namespace is created and the status will be in the draft.
When it is in the draft, there will not be any notes created.
Once you change the status to deployed, fine notes will be created for
your blockchain app.
Then you can create partners who can interact.
So you can create using New and for this app you can select
whatever the members you want the members to be as partners.
Then initially it will be in the pending state.
The partner has to be approved.
So it will be initially in the pending state.
And you can make that member as the founder,
and you can give the domain name as well for
accessing from the external systems.
In Blockchain, you can create distributed objects,
these distributed objects can interact with your Salesforce objects.
So that is the power so you can create this distributed object not only on
the Salesforce platform you can interact from anywhere,
any other applications you can access this distributed object.
So how to create distributed, first basically you create a new,
give the entity label, and initially the entity access will be private, but
if you want to access these entities from outside, you need to make it as public.
And initially, it will be in the draft state, once you need to flip
it to deployed, so that, these objects are getting deployed onto the nodes.
And you can even make the object inactive.
If you feel that this object is no more in use, you can make it inactive.
So I will go into the whatever the distributed objects I have created.
Now you can create for that object, what are the fields inside that object.
So this is my master data, so
I have created certain fields which are required for my POC.
And you have different data types.
Now I'm going to show this is my header.
Intercompany Transaction is my header.
This is my transaction line which is child.
And distributions is the grandchildren, so header child, grandchild.
So now I can show you how this header and grandchild distributed objects
are interlinked, how parent child relationship is established.
Now you can see there is a Related Entity field type or
the data type with which you can link the master
table with the child table using a Related Entity.
Similarly on the distributions now you can see the Related Entity.
So this is, it is linking to header and this is linking to line so
your grandchild is related to your child and the parent.
Once you create these database objects or
the meta data on the Blockchain now you can go into the Integations,
Setups, Integration, External Objects.
And if you click on External Objects,
whatever the metadata you created on the Blockchain,
you can see those objects you can view here on the platform.
On the platform you can see these objects will be created as external objects.
These external objects are a linkage between your platform object and
the Blockchain.
You are basically establishing a relationship between your platform and
the Blockchain using these external objects.
And if you can see, the namespace is prepended for
every object you create and all external objects creates using __x.
And all the fields inside that blockchain objects you can see here.
The important thing which I want to highlight here is the powerful
aspect to it is that you can link your external object to the platform
object like the Trading Entity is my master data which is residing,
is a custom object residing on the platform.
So that's why if you can see all the custom fields will have __c.
And this is why link between your indirect lookup is the data type,
which you can use a link between your blockchain metadata and
platform custom objects.
So you have seen how easy to create Blockchain Application with just clicks,
not code, and it creates fine notes internally.
Now I'm going to open a developer console and
show you the Salesforce platform components which we have created.
So, this is a custom Apex class where we are creating
certain batches of data records, where we are creating
the transaction header lines and distributions.
And you can see in this epics
class we are using SQL queries.
We also using database.insert statements.
Sudeep Verma: We're also using database.update statements.
And we are also scheduling the set of records in a batch and
we are scheduling through system.scheduled batch.
Now I will switch to custom triggers.
So in this custom trigger,
what we are trying to do is we are creating the start date and date period
date whenever the data gets populated into one of our custom staging table.
Now I'm going to show you a process builder.
So if you go into the setups and navigate to the process builder,
then you can create one of the process builder.
Whenever the data gets loaded into the tax log book
staging table, we invoke a process.
So the processes we are loading the data into
this tax log book lenders the records get created.
We are not using any criteria for external ID field.
Basically, we are populating their ID field from the staging table onto
the external ID field.
Now I'm going to show you a custom report.
So if you can see here, this is a custom report.
And we are pulling the fields from the blockchain transaction header lines and
distribution data.
And, this report we can filter by GL date,
ERP system name, and the tax workbook.
Right now I'm pulling the data for the SFDC globally ERP system.
So basically we are pulling this data from the blockchain, and
for that tax logbook, and sending that GL output to the Oracle ERP system.
And we can export this report in any format, especially in Excel or CSV format.
We are exporting in CSV format and sending to the ERP system.
Thanks everyone for your time.
I will now hand it over to Dr. Tran.
Doc Tran: Thank you very much indeed.
Thank you very much Madhu for
sharing with us all the great things about the new project and
also how we were able to execute that in such a quick and efficient manner.
And I thank you for your time and stay safe everyone.
Take care.
[MUSIC]
Speaker 5: OwnBackup Enhanced Sandbox Seeding helps admins and
developers innovate faster and reduce risk with an automated solution.
Identify and anonymize your dream data set.
No manual spreadsheets required.
To find the exact data you want with reusable templates and
built in filters if needed,
turn off automations then instantly seed to your desired destination.
Check out own backup on AppExchange to learn more.