PowerShell Instead of EDI/Demand Management Add-on?

Hello all,

we are trying to implement an automated order entry system from a commerce website that our biggest customer works with. We were given a crazy quote(around $20K, yes we are cheap) by our consulting firm that included the setup, training hours as well as EDI/Demand Management and a bunch of other licenses.

Short question(Less details): What would be the possible issues of using PS+DMT combination to upload Sales orders and to export BAQs rather than using Epicor EDI add-ons?

Long question(More details):
I’ve recently read all the PowerShell DMT threads Here <3 and was able to create a PS script that uploads orders via DMT. In detail, I’ve created a EDI Order boolean column(in OrderDTL) and I am flagging every line of order that I upload using a csv file via Sales Order Combined in DMT.

We will receive the orders in another csv file from the e-commerce website via a SFTP folder. I am planning on running the script on a timer that will convert that csv file brought by e-commerce to a compatible template to Sales Order Combined and upload via DMT.

I also plan on creating a dashboard for the customer service to see these EDI orders and approve them meaning: Check order details to see if all looks good and use job wizard.

Then for order acknowledgement and shipping notice return files, I will just export a BAQ, again using PS script.

Dear Experts of the community;

Is this something that we can pull off without purchasing any add-ons?

Do any of you do EDI this way?

What could be the possible issues I will be facing?

Am I being naive because this sounds too good to be true?

Thank you all in advance!

One option you could consider is using the Rest API to insert data into a UD table from your website and then using a method directive on the UD table to create the sales order and lines by using the BO widget and the data in the UD table.

I’m sure there are other ways, but this method has been used for creating sales order from an external website.

Good luck,

Andrew.

3 Likes

Hello @OnurCam,

So, the trick with EDI isn’t always just the file format or even the importing of data. There are “issues” you have to handle.

  • What if the part number is wrong? Inactive?
  • What if the price is incorrect?
  • What if the customer or the ship-to address doesn’t exist?
  • And so on…

So DMT will work but it won’t handle all your errors nicely. If you’re on the latest version of Epicor, 10.2.500+, you might be able to write an Epicor function that would do the error checking and then load the order for you. You could certainly call the function from PowerShell and handle error codes as well. There is probably some review of the orders that is done before you would send an ACK. Same for the ASN. It would still be a development effort on your part which may cost you more than you bargain for but it does reduce the dependency on a 3rd-party product like DMT, JitterBit, ServiceConnect, etc. and it would upgrade fairly well.

Food for thought,

Mark “surviving EDI Integrator” W.

2 Likes

The nice thing about Andrew’s suggestion is that you can keep track of which orders were successfully loaded with a status field and then handle errors as needed.

Mark W.

2 Likes

Hello @aclements ,

thank you so much for the advice. I have no knowledge about what Rest API is or how it works but if it is like a temporary table to hold the data until it is checked then I like it.

How would I be able to learn more about Rest API?

Hello @Mark_Wonsil,

Thank you very much for the reply.

What if the part number is wrong? Inactive?
Initally we are going to start with the biggest customer who uses cross reference part numbers when they order with us and we have a list of all their part numbers, so I am assuming that won’t be an issue in the beginning. However, it is a very important issue.

I was thinking once I get the list of errors from DMT, I can move the error file to a shared folder for Customer Service(CS) to check. Management is also going to start pushing customers to update their part number list with exactly how we have it in our database, if they do not want delays with their orders.

What if the price is incorrect?

I was planning on not uploading the price from the customer since we have price lists setup for each customer group. Once the CS rep checks the dashboard for the uploaded orders, they will realize(Hopefully :pray:) that price in the SO and PO don’t match and let the customer know. Or I can have a UD column to upload the PO unit price and have a flag per order line if price don’t match.

What if the customer or the ship-to address doesn’t exist?
We always use OTS addresses so hopefully the address in their PO is correct.

And so on…

The unknown scares me since I told management(sometimes I can’t keep my mouth shut) that it was possible to upload orders without the EDI add-on.

I will only send ACK when the order is checked by a CS rep and approved(by a boolean field in SOEntry).

We are still at 10.2.100.900. I always wanted to update to get the new functions but seeing all the posts about errors during update scares me. I’ll try to find out how hard would it be for us to update now and how long it would take.

I will try to learn more about Rest API it sounds promising, are there any resources you suggest for learning about it?

Again, thank you for the suggestions.

Hi,
The UD tables are tables provided b Epicor for custom requirements, They are not temporary by definition and the data stays in them unless you delete it.

As Mark said, storing the data in the UD table is a great way to validate the data before entering it into Epicor, checling part number, custid etc

Re the Rest API, you need to be on version 10.1.6. or higher.

If your not familiar with Rest, then it’s worth googling it and getting a general understanding of it and its principles.

Epicor Documentation can be found @ Sign In

It’s not a small project, but then again having gone down the EDI route, I’d say it’s definitely easier.

Cheers,

Andrew.

2 Likes

Yep feeling your pain…and I’ve only done outbound invoices!

2 Likes

my opinion: project scale, dependency, robustness and seamless, determines the correct tool.

there is always number of ways to achieve edi order import.

at the end of the day,

  1. how quickly business operations are in sync with your erp/front-end site and validate data integrity
  2. not depending on resource
    2.1 skill available in the market
  3. exception handling and resilience
  4. budget vs roi vs future-proof investment
  5. ability to integrate via edi connectors for b2b/b2c/b2b2c

should be considered and apply the right tool.

do you need universal solution or bespoke solution?

4 Likes

One of the other long term considerations is what if you have other B2B partners that transact with you in a different format? So then you are off redoing another EDI mapping process, needless to say that’s why tools like Tie Kinetix exist it provides an no-code/low-code interface which simplifies the mapping process.

I’m there with @Mark_Wonsil Mark it’s the error handling and exceptions that will kill you. Just saying.

Staging the data for manual review and approval is a sound process.

Finally volume: if you have lots of orders coming that way you better make sure it works or your in for a world of pain. No orders = No money = You better start looking for somewhere else to work…:slight_smile: Worst case scenario

2 Likes

Absolutely agree with the points raised about whether EDI is right tool for the job.

EDI is all about standards and allowing businesses to speak to each other. If its simply a case of getting orders into Epicor from your own e-commerce web site, then its a bit OTT.

I spent a lot of time liasing with third parties trying to get an EDI solution working ( PO and ASN), but found it very arduous, plus sometimes you’ll get business partners who also want there own special tweaks.

If you’ve got a secure FTP site that you can open up to you EDI partners, I would recommend looking at the Visual Studio add on called EDIFabric.

I wrote a quick prototype (less than a day) that was able to process a PO EDI document into a STFP directory, and disseminate int its constituent parts and feed it into the Demand Management.

Not forgetting, its also cheaper.

3 Likes

Bahahahaha. Sometimes. :rofl:

The nice thing about standards is that everyone has their own! :wink:

7 Likes

Nice

2 Likes

and for a long time I thought a VAN was the concept of a vehicle you could stuff a whole heap of people in and a toke or two…Maybe that’s IS really how the concept came about in the 60’s!

2 Likes

We do exactly what your talking about currently. We have had a few issues, cross part not being in the system, price incorrect, but for the most part it works great and fast.

  • What if the part number is wrong? Inactive? - This creates a error file and was a problem at first. What we do is we have an inexpensive folder monitoring software that looks for a error file being created and then we send a email to the order department that will either fix the cross ref and import the order again through DMT or they will fix the cross and manually enter the order.

  • What if the price is incorrect? We do have this problem, our sales order team brings up all orders after import and verifies that the pricing is correct. Not the most efficient…But

  • What if the customer or the ship-to address doesn’t exist? - We have this problem also. This will create a error file and we capture the file and send a email.

A few things that we do to allow easier automation of the DMT import process: We wrote a C# program that runs the runs the DMT with the PowerShell commands and then it also renames and moves the file to a archive folder for future review if necessary.

The same software that we use to monitor the folder for error files we also use to monitor for the csv file from our EDI partner. We run our C# import program when there is a file.

One last thing. In our C# program we have a timer so that if when we get more than one order, we wait a period of time so that we don’t import that file more than once if it has more than 10 lines in it.

2 Likes