The Certification of ISV solutions is a process where technical, functional, documentation & other requirements are checked against important application standards. This process is meant to ensure the end-customer satisfaction in the technical validity of your solution will therefore add some additional marketing value to your product. The overall intensiveness and duration of this process depends on type, size, complexity of solution, and many other factors. These variable are what often preclude us to forecast estimates to answer the most common question: “How long does it takes to certify our solution?”. You as an ISV, can speed up the process significantly by doing some homework beforehand. This is an article on how to best prepare and submit a Certification case to avoid most of the pitfalls that we encounter that slow the process down significantly.
Before we can do anything regarding your Solution, it must be registered by Acumatica. For this purpose, please contact us through email: firstname.lastname@example.org and share the following information:
- Solution Code (Latin Capitals) – The unique solution identification, followed by the version of the solution must be used as the deployment package name.
Note: The version of your solution should contain two square brackets blocks [XX.XXX.XXXX][YY.YY.YY]
where [XX.XXX.XXXX] (mandatory)– minimal build of Acumatica you certify (e.g. 19.105.0032),
and [YY.YY.YY] (optional) – your internal version of the solution/package. Therefore, we expect your customization package to be named as: SolutionCode[XX.XXX.XXXX][YY.YY.YY].zip
- Initials (Latin Capitals, 2-4 letters) – All the Acumatica Objects created by your customization package should be named starting with your solution initials, also in capitals. This includes, by not limited to:
- BLC Extensions
- DAC Extensions (if it is bound Acumatica DAC Extension, name must start with Usr prefix followed be solution initials)
- Public DataViews
- Public Actions
- Webservices’ Endpoints
- Generic Inquiries
- IDs of introduced objects on customized Acumatica screens
- Solution Name – Human readable line, that usually pointing out the ISV/Product owner and purpose of your solution, which will be shown in our Marketplace.
- Focus area – Let us know what your solution’s capabilities are so that we can categorize it appropriately.You may check whether the information about your solution is filled out properly in the Solution Management section of the portal. For this purpose, you should login on the Partner Portal and confirm that everying is correct.
Click Manage ISV Solutions (1), to open the screen.
Please verify that Solution Code (1), Initials (2) and Solution Name (3) specified as you expect. If you would like some items to be corrected, please reach us out.
The requirements for content submission may vary depending on the solution type and other particularities. Here you will find a generalized list of what we are expecting to see in your submission with some notes and comments:
- Solution Objects Excel file (if you customize Acumatica). In this file, it should declare all the introduced objects, referenced entities, and integration scenarios. Why do we need these? Well, this document serves several purposes. First, it provides us a needed reference. We check if everything what is stated in the document meet our requirements and then to what extend those statements correlates with the actual solution. Additionally, it gives us information that will enable us to forecast which solutions could co-exist in one instance and where the potential risks lie (e.g. Two solutions overriding the same Acumatica action). Please take extra care in filling out this spreadsheet. Acumatica has partially automated this process and now we allow you to download a pre-filled file that could save you several hours of parsing the code.
- Integration Scenarios Excel file (if you use Web Services API). Here your solution should be documented in what kind of requests are being used, which entities are involved, what the purpose of a request is, etc. The API requests that are being performed sequentially and interdependent should be grouped into an integration scenario. That will help us to have a basic understanding of what solution is doing. Specifying filtering conditions and the number of requests lets us know in advance whether the solution will comply with our integration requirements.
- Proof of Certification Excel file. This file should include the names and Certification Badge of those team members who took part in the development of the solution. It is mandatory that developers of Certified Solutions should be certified themselves. Ideally, the education and subsequent certification aspect should have taken place before actual development. This shall ensure an increase efficiency of the process and solution quality by understand and using best practices described in the courses. So even if the solution is ready, the certification process won’t be triggered until the developers acquire the necessary and appropriate solution (type) Certification Badges. Badges required for connected solutions can be found here: https://acumatica.litmos.com/home/LearningPath/78762Note: If you only fetch the data from Acumatica, the developers are only required to pass the I300 and I310 courses of this learning path. The badge required for embedded solutions are found here: https://acumatica.litmos.com/home/LearningPath/86186Note: To access this courses Developers should have access to the partner portal. Certification Badge(s) declared in the file will be checked against current status in our internal education tracking system.
- Installation and Configuration guide. Here is where you describe the process of installation and initial configuration until the Ready-to-use state is achieved. We are expecting the format of a step-by-step guide with some screenshots for better understanding. We also recommend adding sections on how to uninstall, upgrade, and maintain your solution. If you are managing credentials or other sensitive data, please add a section in this document, clarifying how you are accomplishing these things (encryption, storage, etc.)
- Customization Package (if you have it). Please ensure that the ZIP file has a name using the following schema: SOLUTIONCODE[XX.XXX.XXXX][YY.YY.YY] where SOLUTIONCODE is Solution code specified in the Solution Manager (see Solution registration), XX.XXX.XXXX – the minimal supported Acumatica build (e.g. 20.101.0032), YY.YY.YY – complimentary ISV version. Please also ensure that all code items are converted into a .DLL prior exporting.
- User guide (if it is needed). If your solution introduces/customizes Acumatica screens beside the included into Customization Package wiki pages we expect a separated file, describing the functionality to the end user. It may be compiled in one document with Installation and Configuration guide.
- Source Code (if you customize Acumatica). This will only apply if your customization deploys custom DLLs. Please provide a ZIP archive of the Visual Studio Solution to make the submission handier and faster. If you are using any third-party DLLs, please don’t forget to attach the list of them specifying the License DLLs distributed with them. Prior to packaging the solution, make sure that you have no warnings – either by Acuminator’s or by Visual Studio’s build-in code analysis tools. If you considering that fixing any warnings cause more issues than benefit or don’t see the solution, please document your explanation and submit it to us as well. Please seek our advice on stackoverflow or create support case.Note: All the solutions submitted for certification will be verified by the latest version of Acuminator. Therefore, we highly recommend using this tool throughout all the development.
- Key functionality verification test. Please provide test scenarios, where you declare the steps that shall be performed by end-user and expected behavior of the solution. If the SalesDemo data does not provide enough of data, please provide the snapshot with all records needed by your solution. In case that solution interacts with third-party systems, please provide credentials for a Sandbox as well. Alternatively, we can set up a meeting and by screen-sharing, we will ask you to perform the actions that shall verify the functionality of the solution.
These include a set of items we are expecting to find in your Solution Certification submission, although under certain circumstances, we may request more information as necessary.
Once all this is completed, you will be ready to submit the case. Here you may save considerable time and some of the back and forth by performing a self-test. Below is the process we prefer:
- Deploy a brand new instance of Acumatica
- Import your Customization Project
- Press Validations in the Customization Projects screen and choose Validate Highlighted Project
- Click on your project to drill down to its item list
- Click File -> Validate Project Prefix
- In the following pop-up window, enter the Initials assigned to your solution in Solution Manager (see Solution registration) and press Save button at the bottom of the window.
- Click enabled button Validate Project Items
If all the validations produced no warnings or exceptions, you may move forward and create new certification case. If some issues appeared during the self-test, please fix them before submission.
Creation Your Certification Case
- As soon as you’ve prepared all the necessary items outlined above, you may finally create your certification case. Login to the Partner Portal and navigate to Partner Program Manage ISV Solutions in the same manner we described earlier.
- Registration. Choose from the list the solution that you want to be certified.
- Change to the Solution/Repository Tab (1) and click Upload Solution (2)
- In the Upload Solution pop-up window, specify Acumatica Build Version (1), and your internal ISV Version (2). This is not maintained by Acumatica and is only needed for your reference.
- Click the Customization Project button (3) and choose the customization package. Similar way you may attach the documentation (4), portal customization or 3rd party application.
- Click the Upload button (5) after you filled all the required fields and verify that the upload finished successfully and the solution with the specific versions appearing in the list.
- Now select this line and click on the Create Certification Case button in the Solution/Repository tab. In the next popup window, select the Contract. If you have more than one Contract available in the selector, please choose the one with the ISV Partner ADN Subscription in the description. After you chose the contract and clicked OK, you would be redirected on the new Case details window.
Note: For further correspondence on the case with the Acumatica Technical Team, please use the Add Comment button in the case or Reply All function of your mail agent on the incoming email from your TAM with the case identifier in the subject. Please make sure that Subject line remain unchanged and the list of recipients contains the email of your technical Account Manager as well as email@example.com. For explicitly uploading any reworked packages, please use the Add Comment button and attach the package in the Files section.
Here is minimalistic checklist of that what we expect to see in the submission:
√ Solution Objects Excel file (if you customize Acumatica)
√ Integration Scenarios Excel file (if you use Web Services API)
√ Proof of Certification Excel file.
√ Installation and Configuration guide.
√ User guide (if it is needed)
√ Customization Package (if you have it).
√ Source Code (if customization package includes solution DLLs).
√ Demo Data for testing (if needed)
We hope that by using this manual and described approach, the certification of your solution will be smooth and take the least amount of time possible.
Any queries related to this post or overall certification process, please don’t hesitate to contact us on firstname.lastname@example.org. We will be more than happy to assist you.
*Note: This article is not meant to replace/reinterpret the official Acumatica ISV Software Certification Guidelines available here.