Questions Acumatica Test SDK
My name is William I am a recent college graduate with a BA in Finance and a minor in Computer Science. I am currently at my second accounting job and I find a lot of my easier tasks of getting data out of an excel sheet and putting it into an accounting system can be automated with software. I am interested in working on software like that when I have free time from my accounting work. I guess as my first question on the forum I'd like to ask is...
Should I attempt to automate PO/Invoice/Bill creation and data extraction using Acumatica's Test SDK, or for PO/Invoice/Bill creation attempt to automate using import scenarios and for data extraction attempt to do so using selenium and python?
I have already attempted UI automation using selenium and python for PO/Invoice/Bill creation however when it came down to actually adding rows to input the PO/Invoice/Bill line data I could not figure out how to do so.
PS: I have programming experience in Java, Python, SQL, R and am currently learning C# seems pretty similar to Java
@apontew Are you using Acumatica at work or is it just a learning hobby? Either way, props to you for the initiative. I began my journey with Acumatica the same way:
If Excel is your primary "medium" for exchanging data with Acumatica, both data out from Acumatica into Excel and data back into Acumatica from Excel, I would recommend that you look at OData for data extraction and Acumatica Import Scenarios for data import. OData and Import Scenarios are simple tools that won't directly utilize your programming experience, but you can get the job done a lot faster with no "code" to maintain. You can use the built-in Power Query functionality in Excel to pull data from whatever data source and manipulate the data into the structure that you need for the Import Scenario, essentially turning Excel / Power Query into middleware. Even in a true API situation where you need to pass data between Acumatica and another software application, I find that many times (maybe even most of the time), using Excel in the middle to move data gets the job done without having to invest in an API, especially since most of Acumatica's customers are smaller without much appetite for investing in APIs.
That said, if the API route makes more sense for your situation, you still don't need the SDK. You could write a middleware application using whatever language you're most familiar with and still use OData for extracting data from Acumatica, but then use the Acumatica REST APIs to push data back into Acumatica.
I have a similar education background as you, but I majored in Applied Math, Minored in Accounting, and did a Specialization in Computer Programming. My classes were C++, Java, and Perl, but I had a college job working on an open-source project using LAMP (Linux, Apache, MySQL, PHP). I graduated UCLA in 2003. I tried for years to apply my programming knowledge directly to the business world. Eventually I realized that I didn't want to be a software developer. I decided to go in more of a data analysis direction rather than coding. For now that means the Acumatica Reporting Tools, Excel, and Power BI. Maybe someday I'll get into Python / R, but I think to do that I'd have to leave the Acumatica space and go work for bigger companies so that's still a "someday" since I'm happy in the Acumatica ecosystem for the foreseeable future.
Wow thank you Tim that was everything I was looking for and more! The company I work for just recently switched to Acumatica. Before we switched I was getting quite familiar with our legacy accounting systems API and my ideas for accounting process automation started to became a reality. I took a break from working on automation due to our migration to Acumatica getting hectic, but things have returned back to normal and I have recently began doing research again. This is not a very open source field of computer science so I really appreciate your help. My first goal is to build a data pipeline from Acumatica into our CRM system. I will be updating my progress in here!
PS: I am currently enrolled part time in grad school for data science and I am currently a full-time accountant but am working on switching into a more data engineering role in the future.
The Acumatica Test SDK is primarily used for "black box" testing. It is a wrapper for Selenium and is very powerful! If you are familiar with Selenium, then the Test SDK should come naturally. However, it's usually used for TDD and regressions testing, not necessarily data import and export, although possible. I'd recommend creating a simple standalone application or Postman collection using the API's.
Do you have access to the Acumatica Partner Portal and the education courses provided by Acumatica? They are awesome and very helpful. Specifically, the Integration Specialist course goes over the different web services using contract based REST API and the OData services. Highly recommend! My last bit of advice, become very familiar with LINQ, T-SQL and the database structure of Acumatica. I've found once I had a good understanding of the database, everything else in Acumatica started clicking naturally.
Also, StackOverflow with the Acumatica tag is pretty active and has some great people there, also recommended!