{
    "id": 4756,
    "date": "2023-11-13T17:04:56",
    "date_gmt": "2023-11-13T17:04:56",
    "guid": {
        "rendered": "http:\/\/100.28.163.57\/?p=4756"
    },
    "modified": "2024-03-08T11:42:23",
    "modified_gmt": "2024-03-08T11:42:23",
    "slug": "acucustomizationutil-in-action-a-real-life-example",
    "status": "publish",
    "type": "post",
    "link": "https:\/\/sprinterra.com.ua\/en\/acucustomizationutil-in-action-a-real-life-example\/",
    "title": {
        "rendered": "Acumatica Customization in Action: A Real-Life Example. Part III"
    },
    "content": {
        "rendered": "<div data-elementor-type=\"wp-post\" data-elementor-id=\"4756\" class=\"elementor elementor-4756\" data-elementor-post-type=\"post\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-701bf837 e-flex e-con-boxed e-con e-parent\" data-id=\"701bf837\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7dfaf033 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"7dfaf033\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Acumatica Customization in Action: A Real-Life Example. Part III<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33b6c718 elementor-align-center elementor-widget elementor-widget-post-info\" data-id=\"33b6c718\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-7693618 elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-user\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom\">\n\t\t\t\t\t\t\t\t\t\tAleksej Slusar\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-663091d elementor-inline-item\" itemprop=\"datePublished\">\n\t\t\t\t\t\t<a href=\"https:\/\/sprinterra.com.ua\/en\/2023\/11\/13\/\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-calendar\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date\">\n\t\t\t\t\t\t\t\t\t\t<time>November 13, 2023<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-db2e804 elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-clock\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-time\">\n\t\t\t\t\t\t\t\t\t\t<time>5:04 pm<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-6bbf3c93 e-flex e-con-boxed e-con e-parent\" data-id=\"6bbf3c93\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-26e4fd8b elementor-widget elementor-widget-text-editor\" data-id=\"26e4fd8b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul><li><a href=\"http:\/\/100.28.163.57\/acumatica-customization-utility-tool-sprinterra-is-pioneering-efficient-development-workflows\/\">Acumatica Customization. Part I: Acumatica Customization Utility Tool<\/a> <\/li><li><a href=\"http:\/\/100.28.163.57\/acumatica-customization-automating-enhancement-development-workflow-part-ii\/\">Acumatica Customization. Part II: Automating &amp; Enhancement Development Workflow<\/a><\/li><li>Acumatica Customization. Part III: ACUCustomizationUtil in Action<\/li><\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1d44d3 elementor-widget elementor-widget-text-editor\" data-id=\"e1d44d3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>In this section, we&#8217;re diving into a hands-on example of creating an Acumatica customization project using ACUCustomizationUtil.<\/p><p>Initialize the Project Repository: Start by creating and then cloning the project repository to the designated root directory.<\/p><ol><li aria-level=\"1\"><b>Set Environment Variables: <\/b>Depending on the project&#8217;s needs, establish relevant user or system environment variables.<\/li><li aria-level=\"1\"><b>Organize Folder Structure: <\/b>Construct the required directory structure for your customization.<\/li><li aria-level=\"1\"><b>Prepare Configuration File: <\/b>Copy the acu.json file to the root of your project. Modify its content to fit the project\u2019s specific needs.<\/li><li aria-level=\"1\"><b>ERP Version Validation: <\/b>Ensure you have the required ERP version. If it&#8217;s missing, download and initiate the ERP installation process.<\/li><li aria-level=\"1\"><b>Verify Acumatica Instance: <\/b>Confirm the presence of the appropriate version of Acumatica. If it&#8217;s not installed, take steps to install the required Acumatica site.<\/li><li aria-level=\"1\"><b>Solution Creation: <\/b>Develop a solution tailored for the customization extensions library.<\/li><li aria-level=\"1\"><b>Package Handling: <\/b>Craft, adjust settings for, and roll out the customization package.<\/li><li aria-level=\"1\"><b>Source Code Extraction: <\/b>Retrieve the customization package&#8217;s source code.<\/li><li aria-level=\"1\"><b>Commit Your Work: <\/b>Finalize your changes and commit them to the project repository.<\/li><\/ol>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a75543a elementor-widget elementor-widget-text-editor\" data-id=\"a75543a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>For context, let&#8217;s break down the specifics we&#8217;re working with:<\/p><table><tbody><tr><td><p>Variable name<\/p><\/td><td><p>Value<\/p><\/td><\/tr><tr><td><p>Repository Name<\/p><\/td><td><p>ACUProject<\/p><\/td><\/tr><tr><td><p>Project Name<\/p><\/td><td><p>ACUProject<\/p><\/td><\/tr><tr><td><p>ERP &amp; Acumatica Base Path<\/p><\/td><td><p>C:\\Acumatica<\/p><\/td><\/tr><tr><td><p>Customization Project Base Path<\/p><\/td><td><p>C:\\Acumatica\/project<\/p><\/td><\/tr><tr><td><p>Environment Variable for Base Path<\/p><\/td><td><p>%ACUBASEDIR%<\/p><\/td><\/tr><tr><td><p>ERP version<\/p><\/td><td><p>23.105.0016<\/p><\/td><\/tr><\/tbody><\/table>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45577945 elementor-widget elementor-widget-text-editor\" data-id=\"45577945\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p><b>Project\u2019s Directory Structure:<\/b><\/p><p><i>\u00a0PowerShell\u00a0<\/i><\/p><p><i>\u00a0ACUProject<\/i><\/p><p><i>\u251c\u2500\u2500\u2500cst\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 customization project\u00a0 source code<\/i><\/p><p><i>\u251c\u2500\u2500\u2500pkg\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 customization packages<\/i><\/p><p><i>\u2514\u2500\u2500\u2500src\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 C# project &#8211; extension library<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u2514\u2500\u2500\u2500ACUProject<\/i><\/p><p><i>.gitignore<\/i><\/p><p><i>acu.json<\/i><\/p><p><i>Directory.Build.props<\/i><\/p><p><i>ACUProject.sln<\/i><\/p><p><i>README.md<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1325c270 elementor-widget elementor-widget-text-editor\" data-id=\"1325c270\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>For the sake of this example, we&#8217;ll operate under the assumption that the ERP and Acumatica instances are not installed on your system. If you find yourself needing to perform installation check steps, detailed instructions can be found in the<a href=\"https:\/\/github.com\/Acumatica\/ACUCustomizationUtil\/blob\/develop\/doc\/ACUUserGuide.md\" target=\"_blank\" rel=\"noopener\"> User&#8217;s Guide<\/a>.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a17252 elementor-widget elementor-widget-heading\" data-id=\"7a17252\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Repository Creation & Cloning  \n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b43c4ae elementor-widget elementor-widget-text-editor\" data-id=\"b43c4ae\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Now that you have your project&#8217;s repository set up in your preferred version control system (such as GitHub or Bitbucket), the next step is to clone it to your local PC. Here&#8217;s how you do it:<\/p><p><i>PS C:\\Acumatica&gt; cd C:\\Acumatica\\project<\/i><\/p><p><i>PS C:\\Acumatica\\project&gt; git clone &#8211;progress `<\/i><\/p><p><i>-v https:\/\/you.username@url.to.you.repository\/repository.project\/acuproject.git ACUProject<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bdba186 elementor-widget elementor-widget-heading\" data-id=\"bdba186\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Setting Up Environment Variables\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c4fa96 elementor-widget elementor-widget-text-editor\" data-id=\"8c4fa96\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Before diving into the coding process, it&#8217;s essential to set up the appropriate environment variables. This will make certain processes more straightforward and ensure that everything runs smoothly. Let&#8217;s set up the <b>ACUBASEDIR<\/b> system variable:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a336f75 elementor-widget elementor-widget-image\" data-id=\"a336f75\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"617\" height=\"587\" src=\"https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-1.png\" class=\"attachment-large size-large wp-image-4758\" alt=\"Setting Up Environment Variables\" srcset=\"https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-1.png 617w, https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-1-300x285.png 300w\" sizes=\"(max-width: 617px) 100vw, 617px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2947575 elementor-widget elementor-widget-heading\" data-id=\"2947575\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Create a Folder Structure for Customization\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-955687c elementor-widget elementor-widget-text-editor\" data-id=\"955687c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Open PowerShell and run the following commands:<\/p><p><i>PS C:&gt; cd C:\\Acumatica\\project<\/i><\/p><p><i>PS C:\\Acumatica\\project&gt; mkdir cst<\/i><\/p><p><i>PS C:\\Acumatica\\project&gt; mkdir pkg<\/i><\/p><p><i>PS C:\\Acumatica\\project&gt; mkdir src<\/i><\/p><p><i>PS C:\\Acumatica\\project&gt; tree<\/i><\/p><p><i>ACUProject<\/i><\/p><p><i>\u251c\u2500\u2500\u2500cst<\/i><\/p><p><i>\u251c\u2500\u2500\u2500pkg<\/i><\/p><p>\u2514\u2500\u2500\u2500src<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a83e610 elementor-widget elementor-widget-heading\" data-id=\"a83e610\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Creating a Configuration File\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-794e77c elementor-widget elementor-widget-text-editor\" data-id=\"794e77c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Copy the acu.json file from the ACUCustomizationUtil installation directory and edit it according to our requirements:<\/p><p><i>{<\/i><\/p><p><i>\u00a0\u00a0&#8220;erp&#8221;: {\u00a0\u00a0\u00a0\u00a0<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;erpVersion&#8221;: &#8220;23.105.0016&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;installationFileName&#8221;: &#8220;AcumaticaERPInstall.msi&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;destinationDirectory&#8221;: &#8220;%ACUBASEDIR%\\\\erp&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;url&#8221;: null<\/i><\/p><p><i>\u00a0\u00a0},<\/i><\/p><p><i>\u00a0\u00a0&#8220;site&#8221;: {<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;instanceName&#8221;: &#8220;23.105.0016&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;instancePath&#8221;: &#8220;%ACUBASEDIR%\\\\instance\\\\23.105.0016\\\\Site&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;sqlServerName&#8221;: &#8220;localhost&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;dbName&#8221;: &#8220;23.105.0016DB&#8221;,\u00a0<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;acumaticaAdminName&#8221;: &#8220;admin&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;acumaticaAdminPassword&#8221;: &#8220;123&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;dbConnectionString&#8221;: null,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;acumaticaToolPath&#8221;: null,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;iisAppPool&#8221;: null,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;iisWebSite&#8221;: null<\/i><\/p><p><i>\u00a0\u00a0},<\/i><\/p><p><i>\u00a0\u00a0&#8220;pkg&#8221;: {<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;url&#8221;: &#8220;http:\/\/localhost\/23.105.0016\/api\/ServiceGate.asmx&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;login&#8221;: &#8220;admin&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;password&#8221;: &#8220;123&#8221;,\u00a0\u00a0\u00a0\u00a0<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;pkgName&#8221;: &#8220;ACUProject&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;pkgDirectory&#8221;: &#8220;pkg&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;tenant&#8221;: null<\/i><\/p><p><i>\u00a0\u00a0},<\/i><\/p><p><i>\u00a0\u00a0&#8220;src&#8221;: {<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;pkgSourceDirectory&#8221;: &#8220;cst&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;pkgLevel&#8221;: &#8220;0&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;msBuildSolutionFile&#8221;: &#8220;ACUProject.sln&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;msBuildTargetDirectory&#8221;: &#8220;src\\\\ACUProject\\\\bin\\\\Release&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;msBuildAssemblyName&#8221;: &#8220;ACUProject.dll&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;makeMode&#8221;: null,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;pkgDescription&#8221;: null<\/i><\/p><p><i>\u00a0\u00a0}<\/i><\/p><p><i>}<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1604c5c8 elementor-widget elementor-widget-heading\" data-id=\"1604c5c8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Downloading and Installing ERP\n\n\n<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e5fcf60 elementor-widget elementor-widget-text-editor\" data-id=\"1e5fcf60\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Run the following commands to install ERP:\u00a0<\/p><p><i>PS C:\\Acumatica\\project&gt; cd ACUProject<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu erp download<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu erp install<\/i><\/p><p>\u00a0<\/p><p>Let&#8217;s check that ERP is installed<\/p><p><i>C:\\Acumatica<\/i><\/p><p><i>\u2514\u2500\u2500\u2500erp<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u2514\u2500\u2500\u250023.105.0016<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2514\u2500\u2500\u2500Acumatica ERP<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-745abf9 elementor-widget elementor-widget-heading\" data-id=\"745abf9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Install Acumatica Instance\n\n\n\n<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8cfeb0f elementor-widget elementor-widget-text-editor\" data-id=\"8cfeb0f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>To install Acumatica instance, run the following commands:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu site install<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-192c12f elementor-widget elementor-widget-heading\" data-id=\"192c12f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Setting Up the Extension Library Project\n\n<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-714bd52 elementor-widget elementor-widget-text-editor\" data-id=\"714bd52\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>While the process of creating a project for customization is comprehensively outlined in the<a href=\"https:\/\/github.com\/Acumatica\/ACUCustomizationUtil\/blob\/develop\/doc\/ACUProjectReference.md\" target=\"_blank\" rel=\"noopener\"> Project Setup Manual<\/a>, it&#8217;s essential to highlight a few important aspects for seamless integration:<\/p>\n<p>1.The project is created as a .NET Framework 4.8.x class library<\/p>\n<p>2. The **Directory.Build.props** file contains the **SiteDir** variable, its value must contain the full physical path to Acumatica instance:<\/p>\n<p><b><i>Directory.Build.props file<\/i><\/b><\/p>\n<p><i>&lt;Project&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;PropertyGroup&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TargetFramework&gt;net48&lt;\/TargetFramework&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;SiteDir&gt;C:\\Acumatica\\instance\\23.105.0016\\Site&lt;\/SiteDir&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/PropertyGroup&gt;<\/i><\/p>\n<p><i>&lt;\/Project&gt;<\/i><\/p>\n<p>3. The **$(SiteDir)** variable will be used in the future when describing paths to referenced resources from an Acumatica instance:<\/p>\n<p><b><i>Project file<\/i><\/b><\/p>\n<p><i>&nbsp;&nbsp;&lt;ItemGroup&gt;&nbsp;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Reference Include=&#8221;PX.Common, Version=1.0.0.0, Culture=neutral&#8221;&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;SpecificVersion&gt;False&lt;\/SpecificVersion&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HintPath&gt;$(SiteDir)\\Bin\\PX.Common.dll&lt;\/HintPath&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Reference&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Reference Include=&#8221;PX.Data, Version=1.0.0.0, Culture=neutral&#8221;&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;SpecificVersion&gt;False&lt;\/SpecificVersion&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HintPath&gt;$(SiteDir)\\Bin\\PX.Data.dll&lt;\/HintPath&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Reference&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Reference Include=&#8221;PX.Objects, Version=1.0.0.0, Culture=neutral&#8221;&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;SpecificVersion&gt;False&lt;\/SpecificVersion&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HintPath&gt;$(SiteDir)\\Bin\\PX.Objects.dll&lt;\/HintPath&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Reference&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&lt;\/ItemGroup&gt;<\/i><\/p>\n<p>4. Add the Before Build rule to the project file, which is necessary for versioning when building the project.<\/p>\n<p><b>Project file<\/b><\/p>\n<p><i>&lt;Target Name=&#8221;BeforeBuild&#8221;&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;ItemGroup&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;AssemblyAttributes Include=&#8221;AssemblyVersion&#8221;&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;_Parameter1&gt;$(Version)&lt;\/_Parameter1&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/AssemblyAttributes&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;\/ItemGroup&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;MakeDir Directories=&#8221;$(IntermediateOutputPath)&#8221; \/&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;WriteCodeFragment Language=&#8221;C#&#8221; OutputFile=&#8221;$(IntermediateOutputPath)Version.cs&#8221;&nbsp; AssemblyAttributes=&#8221;@(AssemblyAttributes)&#8221; \/&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;ItemGroup&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Compile Include=&#8221;$(IntermediateOutputPath)Version.cs&#8221; \/&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;\/ItemGroup&gt;<\/i><\/p>\n<p><i>&lt;\/Target&gt;<\/i><\/p>\n<p>5. Add an event handler to the Post Build project file that copies the build file to the Bin Acumatica instance directory.<\/p>\n<p><b>Project file<\/b><\/p>\n<p><i>&lt;PropertyGroup&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;PostBuildEvent&gt;<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xcopy \/F \/Y $(TargetPath) $(SiteDir)\\Bin\\<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xcopy \/F \/Y $(TargetDir)$(TargetName).pdb $(SiteDir)\\Bin\\<\/i><\/p>\n<p><i>&nbsp;&nbsp;&nbsp; &lt;\/PostBuildEvent&gt;<\/i><\/p>\n<p><i>&lt;\/PropertyGroup&gt;<\/i><\/p>\n<p>6. NuGet package Acuminator must be installed for the project:<\/p>\n<p><b>Project file<\/b><\/p>\n<p><i>&lt;ItemGroup&gt;<\/i><\/p>\n<p><i>&nbsp;&lt;Analyzer Include=&#8221;..\\..\\packages\\Acuminator.Analyzers.3.1.2\\analyzers\\dotnet\\cs\\Acuminator.Analyzers.dll&#8221; \/&gt;<\/i><\/p>\n<p><i>&nbsp;&lt;Analyzer Include=&#8221;..\\..\\packages\\Acuminator.Analyzers.3.1.2\\analyzers\\dotnet\\cs\\Acuminator.Utilities.dll&#8221; \/&gt;<\/i><\/p>\n<p><i>&lt;\/ItemGroup&gt;<\/i><\/p>\n<p>7. Solution file (ACUProject.sln) should be moved to the root project folder and edit the Extension Library project path.<\/p>\n<p>8. Acumatica instance is NOT plugged into the solution. This is done as a bookmark for a future solution to remove the dependency of the project on Acumatica instance.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c876e34 elementor-widget elementor-widget-text-editor\" data-id=\"c876e34\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>After all the steps care complete, the folder should look like this:<\/p><p><i>PowerShell<\/i><\/p><p><i>C:\\Acumatica\\project\\ACUProject<\/i><\/p><p><i>\u251c\u2500\u2500\u2500cst<\/i><\/p><p><i>\u2502 \u00a0 \u251c\u2500\u2500\u2500Bin<\/i><\/p><p><i>\u2502 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 ACUProject.dll<\/i><\/p><p><i>\u2502 \u00a0 \u2502<\/i><\/p><p><i>\u2502 \u00a0 \u2514\u2500\u2500\u2500_project<\/i><\/p><p><i>\u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ProjectMetadata.xml<\/i><\/p><p><i>\u251c\u2500\u2500\u2500pkg<\/i><\/p><p><i>\u2502 \u00a0 \u00a0 \u00a0 ACUProject.zip<\/i><\/p><p><i>\u251c\u2500\u2500\u2500src<\/i><\/p><p><i>\u2502\u00a0 \u00a0 \u2514\u2500\u2500\u2500ACUProject<\/i><\/p><p><i>\u2502\u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 ACUProject.csproj<\/i><\/p><p><i>\u2502\u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 packages.config<\/i><\/p><p><i>\u2502\u00a0 \u00a0 \u00a0 \u00a0 \u2514\u2500\u2500\u2500Properties<\/i><\/p><p><i>\u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 AssemblyInfo.cs<\/i><\/p><p><i>\u2502 \u00a0 .gitignore<\/i><\/p><p><i>\u2502 \u00a0 acu.json<\/i><\/p><p><i>\u2502 \u00a0 ACUProject.sln<\/i><\/p><p><i>\u2502 \u00a0 Directory.Build.props<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e1fb703 elementor-widget elementor-widget-heading\" data-id=\"1e1fb703\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Create and Configure a Customization Package\n\n\n\n<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e08cc0 elementor-widget elementor-widget-text-editor\" data-id=\"3e08cc0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Creating a Customization Package:<\/p><ol><li aria-level=\"1\">In your browser, navigate to<a href=\"http:\/\/localhost\/23.105.0016\" target=\"_blank\" rel=\"noopener\"> http:\/\/localhost\/23.105.0016<\/a> and log in.<\/li><li aria-level=\"1\">Access the &#8220;Customization Projects&#8221; window.<\/li><li aria-level=\"1\">Remove any demo projects present. Make sure to save changes by clicking the &#8220;Save&#8221; button.<\/li><li aria-level=\"1\">Create a new project, naming it as &#8220;ACUProject&#8221; to align with configuration requirements.<\/li><\/ol>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a208409 elementor-widget elementor-widget-image\" data-id=\"a208409\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"372\" src=\"https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-2-1024x476.png\" class=\"attachment-large size-large wp-image-4759\" alt=\"Create a new project\" srcset=\"https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-2-1024x476.png 1024w, https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-2-300x139.png 300w, https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-2-768x357.png 768w, https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-2.png 1026w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66060ca elementor-widget elementor-widget-text-editor\" data-id=\"66060ca\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ol>\n \t<li aria-level=\"1\" value=\"5\">Open your new project in the customization editor. Navigate to the &#8220;Files&#8221; section.<\/li>\n \t<li aria-level=\"1\">Click on the &#8220;+&#8221; icon and add the extension library assembly (ACUProject.dll) to the project.<\/li>\n<\/ol>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1fe4736 elementor-widget elementor-widget-image\" data-id=\"1fe4736\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"380\" src=\"https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-3-1024x486.png\" class=\"attachment-large size-large wp-image-4760\" alt=\"adding the extension library assembly\" srcset=\"https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-3-1024x486.png 1024w, https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-3-300x142.png 300w, https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-3-768x364.png 768w, https:\/\/sprinterra.com.ua\/wp-content\/uploads\/2023\/11\/ACUCustomizationUtil-in-action-3.png 1035w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-400f19f elementor-widget elementor-widget-text-editor\" data-id=\"400f19f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ol>\n \t<li value=\"7\" aria-level=\"1\">Publish the customization project.<\/li>\n<\/ol>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdb3b74 elementor-widget elementor-widget-heading\" data-id=\"cdb3b74\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Obtaining Customization Package Source Code & Building Packages\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7896a88 elementor-widget elementor-widget-text-editor\" data-id=\"7896a88\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>To extract the source code from the customization package, run the following command:\u00a0<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu src get<\/i><\/p><p>The <b><i>cst <\/i><\/b>directory for the customization source code now looks like this:<\/p><p><i>C:\\Acumatica\\project\\ACUProject<\/i><\/p><p><i>\u251c\u2500\u2500\u2500cst<\/i><\/p><p><i>\u2502 \u00a0 \u251c\u2500\u2500\u2500Bin<\/i><\/p><p><i>\u2502 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 ACUProject.dll<\/i><\/p><p><i>\u2502 \u00a0 \u2502<\/i><\/p><p><i>\u2502 \u00a0 \u2514\u2500\u2500\u2500_project<\/i><\/p><p><i>\u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ProjectMetadata.xml<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79d8c02 elementor-widget elementor-widget-heading\" data-id=\"79d8c02\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Building Customization Packages\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c3a3e73 elementor-widget elementor-widget-text-editor\" data-id=\"c3a3e73\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>To initiate the building of customization packages, run the following commands in your PowerShell terminal:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu src buld<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu src make<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu src make &#8211;mode QA<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cc8f33c elementor-widget elementor-widget-heading\" data-id=\"cc8f33c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Verifying the Package Build\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4bf77e elementor-widget elementor-widget-text-editor\" data-id=\"c4bf77e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Once executed, inspect the <b><i>pkg <\/i><\/b>directory. If everything went as planned, you should see two files:<\/p><ul><li aria-level=\"1\">&#8211; ACUProject.zip: This is the routine customization package for daily development activities.<\/li><li aria-level=\"1\">&#8211; ACUProject[23.105.0016][23303.2047].zip: A specialized customization package for testing purposes. Notably, it embeds both the ERP version and the build version in its filename.<\/li><\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bed831f elementor-widget elementor-widget-heading\" data-id=\"bed831f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Publishing the Customization to Acumatica Instance\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f83634d elementor-widget elementor-widget-text-editor\" data-id=\"f83634d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Now, it&#8217;s crucial to validate that the constructed customization can be effortlessly integrated into the Acumatica instance. Execute the following commands:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu pkg upload<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu pkg publish<\/i><\/p><p>A successful execution signifies the package&#8217;s successful upload and publication to the Acumatica instance. Now you&#8217;re on the right track!<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e00011 elementor-widget elementor-widget-heading\" data-id=\"4e00011\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Uploading Your Project to the Repository\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d78f30 elementor-widget elementor-widget-text-editor\" data-id=\"8d78f30\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Now that your project is set up, it&#8217;s time to push it to the repository. But first, you want to ensure that certain files or directories don&#8217;t get included. To do that, create a <b><i>.gitignore<\/i><\/b> file in the project&#8217;s root folder. This file specifies patterns of files and folders that should be ignored when committing to the repository.<\/p><p>Here&#8217;s what you should add to your<b><i> .gitignore:<\/i><\/b><\/p><p><i>acu-log*.txt<\/i><\/p><p><i>\/pkg\/*.zip<\/i><\/p><p><i>bin<\/i><\/p><p><i>obj<\/i><\/p><p><i>Debug<\/i><\/p><p><i>Release<\/i><\/p><p><i>.vs<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-24afda2 elementor-widget elementor-widget-heading\" data-id=\"24afda2\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Review and Commit Your Changes\n\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6b3de3 elementor-widget elementor-widget-text-editor\" data-id=\"b6b3de3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Before you push to the repository, it&#8217;s essential to double-check the files you&#8217;re about to commit. Using the <b><i>git status<\/i><\/b> \u00a0command will give you an overview of these files:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; git status<\/i><\/p><p><i>On branch develop<\/i><\/p><p><i>Your branch is up to date with &#8216;origin\/develop&#8217;.<\/i><\/p><p>\u00a0<\/p><p><i>Changes to be committed:<\/i><\/p><p><i>\u00a0\u00a0(use &#8220;git restore &#8211;staged &lt;file&gt;&#8230;&#8221; to unstage)<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0modified: \u00a0 .gitignore<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 ACUProject.sln<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 Directory.Build.props<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 acu.json<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 cst\/Bin\/ACUProject.dll<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 cst\/_project\/ProjectMetadata.xml<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 pkg\/ACUProject.zip<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 src\/ACUProject\/ACUProject.csproj<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 src\/ACUProject\/Properties\/AssemblyInfo.cs<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new file: \u00a0 src\/ACUProject\/packages.config<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a14affe elementor-widget elementor-widget-text-editor\" data-id=\"a14affe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Once you&#8217;re sure everything is in order, commit and push your changes:\u00a0<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; git commit -i &#8220;Add customization project &amp; configuration&#8221;<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; git push origin develop -f<\/i><\/p><p>Congratulations! You&#8217;ve successfully created a new customization project and automated its setup using the ACUCustomizationUtil utility.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c3d620 elementor-widget elementor-widget-heading\" data-id=\"5c3d620\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Project Deployment from a Repository\n\n\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1fec5b elementor-widget elementor-widget-text-editor\" data-id=\"d1fec5b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Once your customization project is set up, its configuration saved, and its files committed to the repository, reinstating the environment becomes a breeze.<\/p><p>Notice the difference?<\/p><p>The detailed instructions we walked through for project creation contrasts with the brief steps for project deployment. Let&#8217;s dive into this streamlined process:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-316d311 elementor-widget elementor-widget-text-editor\" data-id=\"316d311\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h4><b>Cloning the Repository<\/b><\/h4>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aaf5b22 elementor-widget elementor-widget-text-editor\" data-id=\"aaf5b22\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>To kick off the deployment, start with cloning the repository.<\/p><p>Go to the root folder of your customization projects, open PowerShell and run the command:<\/p><p><i>PS C:\\Acumatica&gt; cd C:\\Acumatica\\project<\/i><\/p><p><i>PS C:\\Acumatica\\project&gt; git clone &#8211;progress `<\/i><\/p><p><i>\u00a0-v https:\/\/you.username@url.to.you.repository\/repository.project\/acuproject.git ACUProject<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e173aca elementor-widget elementor-widget-text-editor\" data-id=\"e173aca\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h4><b>Setting Up User or System Environment Variables<\/b><\/h4>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38e02b3 elementor-widget elementor-widget-text-editor\" data-id=\"38e02b3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Before diving into the setup, it&#8217;s crucial to verify the <b><i>acu.json<\/i><\/b> configuration file. Does it reference any environment variables, such as <b><i>%ACUBASEDIR%<\/i><\/b>, within its path parameters? If so, you&#8217;ll need to establish these variables. Their values should also be clearly documented in the repository&#8217;s readme file for easy reference.<\/p><p>If these values aren&#8217;t explicitly mentioned, you can deduce them from the <b><i>Directory.Build.props<\/i><\/b> file. Ensure that the<b><i> SiteDir<\/i><\/b> parameter aligns with the <b><i>site.instancePath\u00a0 <\/i><\/b>in the <b><i>acu.json<\/i><\/b> configuration file.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50b5aca elementor-widget elementor-widget-text-editor\" data-id=\"50b5aca\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>For instance, if we consider the scenario:<\/p><p><b>Directory.Build.props<\/b><\/p><p><i>&lt;Project&gt;<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&lt;PropertyGroup&gt;<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;TargetFramework&gt;net48&lt;\/TargetFramework&gt;<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;SiteDir&gt;C:\\Acumatica\\instance\\23.105.0016\\Site&lt;\/SiteDir&gt;<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&lt;\/PropertyGroup&gt;<\/i><\/p><p><i>&lt;\/Project&gt;<\/i><\/p><p><br \/><br \/><\/p><p><b>acu.json<\/b><\/p><p><i>{<\/i><\/p><p><i>\u00a0\u00a0&#8230;<\/i><\/p><p><i>\u00a0\u00a0&#8220;site&#8221;: {<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8230;<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8220;instancePath&#8221;: &#8220;%ACUBASEDIR%\\\\instance\\\\23.105.0016\\\\Site&#8221;,<\/i><\/p><p><i>\u00a0\u00a0\u00a0\u00a0&#8230;<\/i><\/p><p><i>\u00a0\u00a0},\u00a0\u00a0<\/i><\/p><p><i>\u00a0\u00a0&#8230;<\/i><\/p><p><i>}<\/i><\/p><p>\u00a0<\/p><p>the value of the environment variable will be:<\/p><p>***%ACUBASEDIR% = C:\\Acumatica***<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-387457e elementor-widget elementor-widget-heading\" data-id=\"387457e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Install ERP\n\n\n\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c64e596 elementor-widget elementor-widget-text-editor\" data-id=\"c64e596\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Check the availability and, if necessary, install the appropriate ERP version:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu erp download<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu erp install<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2afeef9 elementor-widget elementor-widget-heading\" data-id=\"2afeef9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Install Acumatica instance\n\n\n\n\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af39b90 elementor-widget elementor-widget-text-editor\" data-id=\"af39b90\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Check availability and install Acumatica instance if necessary:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu site install<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e277ff6 elementor-widget elementor-widget-heading\" data-id=\"e277ff6\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Constructing and Packaging the Extension Library\n\n\n\n\n\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6886170 elementor-widget elementor-widget-text-editor\" data-id=\"6886170\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Begin by compiling your extension library project, then move on to generating a customization package. Execute the following commands:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu src build<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu src make<\/i><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa48b3a elementor-widget elementor-widget-heading\" data-id=\"aa48b3a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Uploading & Publishing\n\n\n\n\n\n\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f586a6 elementor-widget elementor-widget-text-editor\" data-id=\"2f586a6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Now, it&#8217;s time to get your package onto the Acumatica instance. Use these commands to both upload and then publish the package:<\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu pkg upload<\/i><\/p><p><i>PS C:\\Acumatica\\project\\ACUProject&gt; acu pkg publish<\/i><\/p><p>That&#8217;s it. After executing all the commands successfully, developers are equipped with an environment primed for customization project development. It is a convenient and swift process, don&#8217;t you agree?<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bacfb77 elementor-widget elementor-widget-heading\" data-id=\"bacfb77\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Wrapping Up: A Journey of Innovation and Challenges\n\n\n\n\n\n\n\n\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dcf8b05 elementor-widget elementor-widget-text-editor\" data-id=\"dcf8b05\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Despite its seemingly straightforward functionality, the ACUCustomizationUtil utility is quite a complex tool. This is <a href=\"http:\/\/100.28.163.57\/team\/\">our team<\/a>&#8216;s third iteration of such a utility, and we are still exploring all possible scenarios of interaction between the utility, the user, Acumatica instance, and the operating system.\u00a0<\/p><p>More time was invested in crafting the current version than we initially anticipated. This was mainly due to a shift in our approach to implementation &#8211; we transitioned from utilizing PowerShell scripts to relying on pure C#. This shift also brought about new challenges. For instance, we had to wrap the call of any *.exe file in C# code, intercept the message stream from this file, and then format it to provide a display of progress.\u00a0\u00a0<\/p><p>However, every challenge was an opportunity for growth. Our commitment to this utility development underscores its exceptional\u00a0 value. At Sprinterra, ACUCustomizationUtil isn&#8217;t just a theoretical asset \u2013 it&#8217;s a proven tool in our <a href=\"http:\/\/100.28.163.57\/case-study\/?cat=acumatica\">Acumatica projects<\/a>. By automating processes, we&#8217;ve cut development time and minimized errors.<\/p><p>We are committed to refining the code, fixing minor bugs, and incorporating improvements down the road. And, of course, we look forward to sharing our findings and successes with the community in the future.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-1b448597 e-flex e-con-boxed e-con e-parent\" data-id=\"1b448597\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-4c9d0a83 e-con-full e-flex e-con e-parent\" data-id=\"4c9d0a83\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64ef6fff elementor-widget elementor-widget-heading\" data-id=\"64ef6fff\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Subscribe To Our Newsletter<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4114569f elementor-widget elementor-widget-text-editor\" data-id=\"4114569f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Get the latest insights on exponential technologies delivered straight to you<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-28ca1c78 e-con-full e-flex e-con e-parent\" data-id=\"28ca1c78\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b51ab elementor-button-align-stretch elementor-widget elementor-widget-form\" data-id=\"5b51ab\" data-element_type=\"widget\" data-settings=\"{&quot;button_width&quot;:&quot;33&quot;,&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<form class=\"elementor-form\" method=\"post\" name=\"Newsletter\" action=\"\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"4756\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"5b51ab\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"\" \/>\n\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-recaptcha_v3 elementor-field-group elementor-column elementor-field-group-field_3c1728f elementor-col-100 recaptcha_v3-bottomright\">\n\t\t\t\t\t<div class=\"elementor-field\" id=\"form-field-field_3c1728f\"><div class=\"elementor-g-recaptcha\" data-sitekey=\"6LcPSUIqAAAAAP_gg-Sk43ooUGStBTbNpoX7b7u-\" data-type=\"v3\" data-action=\"Form\" data-badge=\"bottomright\" data-size=\"invisible\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-recaptcha_v3 elementor-field-group elementor-column elementor-field-group-field_7e3766e elementor-col-100 recaptcha_v3-bottomright\">\n\t\t\t\t\t<div class=\"elementor-field\" id=\"form-field-field_7e3766e\"><div class=\"elementor-g-recaptcha\" data-sitekey=\"6LcPSUIqAAAAAP_gg-Sk43ooUGStBTbNpoX7b7u-\" data-type=\"v3\" data-action=\"Form\" data-badge=\"bottomright\" data-size=\"invisible\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-name elementor-col-33\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-name\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tFull Name\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[name]\" id=\"form-field-name\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Adam Smith\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email elementor-col-33 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-email\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tEmail Address\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"email\" name=\"form_fields[email]\" id=\"form-field-email\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"examples@gmail.com\" required=\"required\" aria-required=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-33 e-form__buttons\">\n\t\t\t\t\t<button class=\"elementor-button elementor-size-sm\" type=\"submit\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Yes!<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>Acumatica Customization. Part I: Acumatica Customization Utility Tool Acumatica Customization. Part II: Automating &amp; Enhancement Development Workflow Acumatica Customization. Part III: ACUCustomizationUtil in Action In this section, we&#8217;re diving into a hands-on example of creating an Acumatica customization project using ACUCustomizationUtil. Initialize the Project Repository: Start by creating and then cloning the project repository to [&hellip;]<\/p>",
        "protected": false
    },
    "author": 8,
    "featured_media": 3279,
    "comment_status": "closed",
    "ping_status": "closed",
    "sticky": false,
    "template": "elementor_header_footer",
    "format": "standard",
    "meta": {
        "_acf_changed": false,
        "footnotes": ""
    },
    "categories": [
        34
    ],
    "tags": [
        47,
        48,
        49,
        50,
        51,
        52,
        53,
        55,
        56,
        57,
        58,
        59,
        61
    ],
    "class_list": [
        "post-4756",
        "post",
        "type-post",
        "status-publish",
        "format-standard",
        "has-post-thumbnail",
        "hentry",
        "category-acumatica",
        "tag-acumatica-cloud-xrp-platform",
        "tag-acumatica-customization",
        "tag-acumatica-development",
        "tag-acumatica-erp",
        "tag-acumatica-functionality",
        "tag-acumatica-implementation",
        "tag-acumatica-localization",
        "tag-acumatica-modules",
        "tag-acumatica-partner",
        "tag-acumatica-platform",
        "tag-acumatica-solutions",
        "tag-acumatica-support",
        "tag-acumatica-upgrades"
    ],
    "acf": [],
    "_links": {
        "self": [
            {
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/posts\/4756",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/users\/8"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/comments?post=4756"
            }
        ],
        "version-history": [
            {
                "count": 0,
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/posts\/4756\/revisions"
            }
        ],
        "wp:featuredmedia": [
            {
                "embeddable": true,
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/media\/3279"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/media?parent=4756"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/categories?post=4756"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/sprinterra.com.ua\/en\/wp-json\/wp\/v2\/tags?post=4756"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}