Today I want to share some information about Acumatica customization.
Suppose, you want to change your pages not via Acumatica UI, but via Visual Studio. Reasons why you can have such desire can be the following:
1. Visual Studio is faster then Acumatica UI
2. You can put your changes under source control
3. You can easily exchange changes with your co-workers
Let's say you have following situation.
1. You need to make changes to pages ar301000.aspx and pm301000.aspx and pm304000.aspx.
2. You need to add new page AP508000.aspx.
3. You want to include dll, which is named DS.dll.
In order to do this you'll need the following.
1. Create in your Acumatica instance folder CstPublished
2. Inside created folder create folders pages_ar, pages_pm
3. Copy/Paste into folder pages_ar page ar301000.aspx and into pages_pm pages pm301000.aspx and pm304000.aspx.
4. Create new page AP508000.aspx in folder AP
5. Build your dll file
6. Create following file: project.xml, with the following records:
<Customization level="0" description=""> <File AppRelativePath="CstPublished\pages_ar\ar301000.aspx" FileID="0849bd3b-c4ce-473e-8c82-c567112aa96b" /> <File AppRelativePath="CstPublished\pages_ar\ar301000.aspx.cs" FileID="302c4089-6046-4a17-8411-1023315f5535" /> <File AppRelativePath="Pages\AP\AP508000.aspx" FileID="b9e88968-7f36-4cfc-9383-caed8363c269" /> <File AppRelativePath="Pages\AP\AP508000.aspx.cs" FileID="a1ce1918-f569-4ced-8a03-b5571dc26abb" /> <File AppRelativePath="CstPublished\pages_pm\pm301000.aspx" FileID="8c174bf0-3143-4a86-83e9-c82704c9297a" /> <File AppRelativePath="CstPublished\pages_pm\pm301000.aspx.cs" FileID="c435350a-89dc-455c-a9cb-6356987b2889" /> <File AppRelativePath="CstPublished\pages_pm\pm304000.aspx" FileID="65b4f056-859f-463c-99cc-32a9cde11c7d" /> <File AppRelativePath="CstPublished\pages_pm\pm304000.aspx.cs" FileID="46b0d39b-ba12-486a-be7f-6058a37cdca1" /> </Customization>
7. Create folder with the following structure:
7.1 Folder CstPublished which has inside of it folders pages_ar and pages_pm. And pages_ar has all ar files, and pages_pm has changes related to pm pages
7.2 Folder Pages, which has inside of it folder AP, and AP inside of it has AP508000.aspx and AP508000.aspx.cs files
7.3 Put into folder file project.xml
8. Zip it and your deployment is ready.
Some pitfalls which I faced.
1. xml file should be named project.xml
2. FileId is guid, and each FileID should be unique.
3. All file and folder names shouldn't be capital. Not Pages_pm but pages_pm. And not CstPublished\pages_pm\PM304000.aspx but CstPublished\pages_pm\pm304000.aspx
4. If you find other surprises with customization let me know.
Especially for Tony I made a screenshot of my customization folder.