This is a demo that shows you how to create a mobile app to interact with Dynamics SL to provide a “Contact Free” payment solution to help protect your employees and customers during COVID 19. The intended user of this example app would be a customer service rep, sales person, or field service rep who needs to collect payment from a customer (handy for collecting a deposit or down payment before delivery, installation, or service work to be done).
This demo uses Catalina’s API to search customers in SL and then lets the user to request a payment from a customer by generating a link and emailing it to the chosen customer. That customer then can click on the link and pay the amount which automatically creates a payment in SL’s AR.
Check out the video of the demo on our Youtube channel here:
Below is a screenshot of the Android app from the above demo. First you can search for a customer by a keyword. That search will then bring back a list of results. You can then click on the customer you want to request funds for. The app will automatically fill in the email address of the customer (from the Customer record in Dynamics SL). You can change the email address if you want. You then enter a requested payment amount and hit submit. Once you do this, Catalina’s SLQuickCollect will send off an email to the customer with a link which will then allow them to make a PCI compliant secure payment. Once authorization occurs, SLQuickCollect will then create a payment in Dynamics SL automatically.
As mentioned below, if you want to have starter code on creating an Android App (with Visual Studio and Xamarin), you can check out an example on our Github here (NOTE: I would only consider this a starter. This is in no means something finished but enough to get you started)
Getting paid by your customers can sometimes be difficult. Catalina’s payment portal allows users to login and manage their account and pay their invoices. But customers still need to login.
To reduce the barrier of entry for customers to pay, Catalina has come up with SLQuickCollect. SLQuickCollect allows you to send out a link via email or SMS which the customer clicks on. They are then sent to a payment page without any login required. They simply pay (Credit Card or ACH). Once that payment is authorized and captured, SLQuickCollect creates the payment in Dynamics SL.
The above shows how you can request for an amount not tied to any invoice. This is especially handy if you need to capture a deposit against a sales order, service call, etc. This payment would go into the SL “Payment Entry” screen.
The demo shows how you can request a payment from the sales order screen for a deposit amount. This would then send a link to the user via email. The user would click on the link and pay.
The request payment allows you to decide an amount to charge for a deposit for the order. It also has a handy percentage calculator to take out the guess work.
NOTE: SLQuickCollect also has the ability to send out a simple link to pay for an invoice and have that payment applied to one or more invoices through the “Payment Application Screen”
Catalina’s SLQuickCollect is a way to send a request for payment to your customer as an email with a link to click to pay. Your customer simply clicks on it and pays (no need for a portal login or anything). The payment works through a PCI compliant payment processor and is automatically integrated back into Dynamic SL’s AR.
There are many ways to create SLQuickCollect links. One of which is calling a stored procedure by passing a few parameters.
The stored procedure is called: xct_spSLPaddInvoicePaymentRequest
The parameters to this proc is:
@batNbr: The batch number of the invoice you want to send
@refNbr: The invoice number you want to send
@CustID: The customer who the link is going to be going to
@paymentEmailList: A delimited list of email addresses the link will be sent to
@siteID: (optional) For which configuration site to use (defaults to ‘SLPAY’)
@setupID: (optional) The PayFabric setupID you are to send. If not passed, the default will be used from SLQuickCollect’s configuration
@deviceID: (optional) The PayFabric deviceID you are to send. If not passed, the default will be used from SLQuickCollect’s configuration
You can call this stored procedure from most anything. You could call it from a trigger when an invoice is created. You can call it from a SL screen. Or even another application all together (like maybe excel that has a list of invoices to send)
Here is an example of how I added a button on the Invoice and Memo screen to send a SLQuickCollect link for a particular invoice.
Below, you can see where I created a button “Send SLQuickLink” that will take the current invoice on the screen and send a payment request link to the customer.
Below is the code behind the click event of the button. This will look at the current batNbr, refNbr (invoice number), custID, and get the email tied to the customer to send the link to that customer’s email.
Private Sub bPayLink_Click()
Dim SQLStr As String
Dim Csr_temp As Integer
Dim sCustID As String
Dim recfound As Integer
Dim maintflg As Integer
sCustID = GetObjectValue("ccustid")
SQLStr = "Customer_All " + SParm(sCustID)
serr = SqlFetch1(Csr_temp, SQLStr, bCustomer, LenB(bCustomer))
Dim lsSQL As String
Dim liCursor As Integer
lsSQL = "xct_spSLPaddInvoicePaymentRequest" & SParm(ThisScreen.cbatnbr.Text) & SParm(ThisScreen.crefnbr.Text) & SParm(ThisScreen.ccustid.Text) & SParm(bCustomer.EMailAddr) & SParm("SLPAY")
Call sql(liCursor, lsSQL)
Call SqlFree(liCursor)
MsgBox ("SLQuickLink Sent to CustID " + ThisScreen.ccustid.Text + " for invoice " + ThisScreen.crefnbr.Text)
End Sub
If you need EDI integration between your trading partners and Dynamics SL, you can use Catalina’s API for SL to get data in and out of Dynamics SL. One of the simplest of transactions is order management. If you have a trading partner that needs to send you PO’s so that you can then fulfill, the most common documents used are:
Inbound Documents
850: This is a purchase order to fulfill
Outbound Documents
855: An immediate response sent back to your trading partner acknowledging that you received the transaction
997: An acknowledgement that you have received the transaction and often when you will pass back a reference number for your internal order number
856: A shipper notification that notes what has shipped on the PO when a shipper is generated
The key to this is a data mapping layer that allows you to translate the inbound EDI documents and transform it into something that the Catalina API can understand. The reverse is true when data needs to be sent from SL out to your trading partner. The Catalina API will retrieve the data and then the translation will transform that data into an EDI document to send back to your customer.
If you have questions or need assistance with EDI integration with DynamicsSL, you can contact Catalina at [email protected]
Get programming samples for Catalina’s API for Dynamics SL, see demos of Catalina products, check out special projects in IOT, urban gardening, robotics, and much more.
Many of Catalina Technology’s stored procedures accept a field called @parms that is an XML field for configurable parameters to be passed. An example of this is below.
You can see that there is a parameter getting passed called “@parms”. In that is a XML string that contains one or more parameter. In this case, there is a single parameter called “ADDRID” and it is getting passed the value of “C%” so that it can return all addresses that start with a “C”
COVID-19 has made sending out invoices and getting paid has become a challenge. Catalina’s Account Central is a customer portal, for Dynamics SL, that allows customers to review statements, pay invoices or against their account, and manage their customer account in SL. All payments are through a PCI compliant payment processor. And all transactions are completely integrated with Dynamics SL
Because of COVID-19, sending out invoices and getting paid has become a challenge. Catalina’s SLQuickCollect allows you to get paid quicker by lowering the barrier of entry for customers to pay. We can simply send out a request for payment link to the customer via email. All they have to do is click on the link and make a payment through a PCI Compliant payment page (no Payment Portal login required.)
There are several ways that you can send out a link:
Add a button to most any screen in SL
Invoice and Memo: Send a link to pay the invoice
Sales Order Management Screen: Most likely to do a payment entry to collect a down payment
Shipper Screen
Any other screen that you might want to request payment
Automatically send links out when invoices are generated in SL
Add a button on Catalina’s Account Central or Order Central products
Having a Continuity of Operations Plan is very important for businesses to continue to perform essential functions under a broad range of circumstances. The term Continuity of Operations Plan (COOP) is mostly attributed to the Federal Government which mandates a plan to keep the government running when faced with different crisis (financial, war, terrorist attacks, natural disasters, even nuclear attacks).
In the business world, we hopefully don’t have to worry about things like nuclear attacks, but we still need to be prepared so that we can be operational when “disaster” strikes. This could be any number of things: loss of key personnel, data loss, hacker breach, regional natural disasters (hurricane, earthquake, etc.), or what we have today with a global pandemic that is forcing businesses to shut down offices, implement work at home orders, and reduction of staff.
When you have less support staff to do your day-to-day processing of AR, AP, and other tasks, it becomes difficult to get paid by your customers and pay your vendors. Utilizing automation can help reduce your risk of downtime during crisis times. And it can increase productivity when you aren’t operating in crisis mode.
In the Accounts Receivable realm, Catalina Technology has automation tools that allow businesses to create customer portals so that the customer can login, view their statements, pay invoices, apply credit memos, and other AR functionality. Account Central also allows your remote workers to login and manage their customers, send out invoices, and pay for their customers without having to be in the office.
Because Catalina’s tools are web based, your infrastructure needs are minimal. You don’t have to have complex VPN’s setup, access to terminal server, or the SL thick client. All the user needs is a web browser. Security also insures that payments captured are PCI compliant to protect your customer’s identity and payment information.
Catalina also has other integration tools that allow you to integrate with best of breed cloud based solutions for procurement, ecommerce, CRM, human resources, time tracking, and many more. This will allow you give your employees and customers access to cloud based tools and apps no matter where they are working. Catalina’s integration tools will then make sure that the data synchronizes between SL and cloud.
Regardless of what you do to plan for crisis, having a plan is important. Most businesses get caught off guard even from the smallest of emergencies. Creating a plan, understanding your weak points, and having ways to maintain operations during an emergency is very important. The federal government also has some pointers and planning ideas here on ready.gov: https://www.ready.gov/business-continuity-plan
Brian Wharton founded Catalina Technology (www.catalinatechnology.com) to extend enterprise systems to the web over 20 years ago. Catalina is a leader in integration and API development for ERP solutions.
Catalina Technology is a developer of an extremely comprehensive software API which enables the back office ERP to integrate to many 3rd party and custom solutions for CRM (Dynamics CRM and Salesforce), helpdesk and support, time and expense management, 3PL integration, EDI replacement, and more.