I have published a customization project to one tenant (projecthas 3 custom forms and Sales Order Screen customized), and I select the Publish to Multiple Tenant Option and selected the tenant I wanted the customizations to be seen. The 3 custom forms are not seen as expected in my other tenant but the Sales Order Screen customizations are still visible. Any idea why this occurs?
Thanks.
Page 1 / 1
@TharidhiP As per Acumatica Framework, even if you select one tenant and publish, that customization will be published and visible in all other tenants.
.aspx pages customizations are at Instance level, so customizations will be applicable to all the tenants.
I wish they would remove thebutton that makes it seem like you can publish to only one Tenant and replace it with a PUBLISH TO ALL TENANTS button.
I personally always follow Rule #4 in this blog post because of what @Naveen B pointed out:
Maybe I’m overlooking it, or haven’t stumbled across it yet, but it would be nice if Acumatica had a best-practices guide for publishing projects, and some kind of cross reference that indicated whether components in a customization project are instance versus tenant specific.
I have been in customisation conflict purgatory for the last 3 days and this clarified things a lot. A couple of questions though:
The article said “In theory, you can create customizations that only effect one Tenant.” (if you break rule #4) but not how. Is there some fairly counter intuitive trick to bring up the box shown below as I can’t seem to access it. I’m guessing this is where you go to only publish a customisation to a single tenant?
If you don’t publish to a single tenant there is really no way to do User Acceptance Testing on business logic prior to publishing to Live without a separate instance, you can only test data, correct? I guess best practice would say take a database snapshot of live data and set up a separate instance?
Also, I ran some testing after reading the article:
Starting with an instance with two tenants A&B:
Published a customisation to Tenant A => functionality available in both tenant A&B and Customisiation only visible via SM204505 in Tenant A (ie. as described in the article)
Unpublished customisation in Tenant A =>functionality removed from tenant A BUT still available in tenant B
Is the above as you would expect? And, if so, what is the process to remove customisations from all tenants. I tried the above twice. Maybe I didn’t wait long enough and there is some refresh process involved?
It would be great to see a paper that goes into complete detail on all of this. Didn’t see anything like this in the training material for developer accreditation.
Thanks,
John
Depending on your version, you get to the “Publish to Multiple Tenants” dialog box by either clicking the down-arrow next to the PUBLISH button, or from the “...” menu.
Please note that some customization elements impact all tenants (the entire instance), such as screen changes, database changes, and programming changes. Some customization elements only impact the tenant they are published in, such as Generic Inquiries and Dashboards. This is the reason I say that it would be nice if Acumatica had a best-practices guide and a cross-reference explicitly outlining which elements impact a tenant versus entire instance.
Another way to publish to just a single tenant (for those elements that are instance specific) is to log into the tenant you want to publish them in, go into the Customization project, and then do the publish from inside the Customization Project editor. Note that this will publish the current project along with other projects published in that tenant. If the other customization projects are not present in the current tenant, you will get an error. If the tenant contains an old version of a customization project, you could inadvertently apply an old project to the instance.
It would be really nice if Acumatica split customization projects into two different screens/editors/projects: Customizations for a Tenant, and Customizations for the Instance.
Hi,
Thanks so much for the response. A couple of things, in my instance clicking the down arrow next to publish show’s the publish to multiple tenants is greyed out.
Why might this be? I have two tenants in my instance (I think I’m using the right terminology here)
Also, what do you mean by the “...” menu?
Also. more importantly, re your comment:
“Please note that some customization elements impact all tenants (the entire instance), such as screen changes, database changes, and programming changes”
The customisation elements I’m wanting to apply to some tenants but not others are in fact screen changes and programming changes (.dll extension libraries).
So, based on your comment, is it right to conclude that what I’m attempting to acheive (ie. have different screens and business logic for different tenants in the same instance) isn’t actually possible anyway? Is this why the publish to multiple tenants option is greyed out? ie. because what I’m attempting to publish can only ever apply to all tenants?
This stuff feels so fundamental to understanding Acumatica customization across multi tenant environments but wasn’t really covered in any of the developer accreditation material (or if it was I missed it) - I thought the accreditation material was great BTW - I’m not being critical.
Thanks,
John
In 21R2, the “Publish to Multiple Tenants” menu option was moved:
Publish to Multiple Tenants is generally disabled when you are in a single tenant environment, or your user doesn’t have rights to multiple tenants, or you don’t have Customizer rights in the other tenants. There could be other reasons too, but those are the most common (I would assume). It looks like you do have multiple tenants and that you’re logged in as “admin”, so I’m not sure what the issue is your case.
Screen changes are instance wide, so if you add, move, or remove fields on the screen, all tenants that use that screen will be impacted by that change. By default, the programming is instance wide too, but you could get creative with the programming and build in tenant-specific logic if desired.
I see. Thanks for sharing your knowledge, I’m learning a lot
So what you mean by “By default, the programming is instance wide too, but you could get creative with the programming and build in tenant-specific logic if desired”, is that your code would have to do somehow determine the tenant the user is logged in to and then apply different logic on that basis?
I’m not worried about knowing how to determine the tenant logged in to, just to confirm I understand the concept.
Also, I don’t have a … option
Presumably as you say some configuration or Acumatica version issue. I will figure that out along the way, but for now I think the my learning journey is complete (or close to it). Key points as I understand them:
Screens and Code can only be published instance wide, so really for my current requirement at least, understanding how to vary what is published by tenant is somewhat academic (this is a massive time saving tip as you could spend hours attempting to accomplish something that is out of application scope)
The simplest, most robust, way to provide a UAT environment to enable signoff before going live would seem to be to create another instance running the same Acumatica version with a snapshot of live data as opposed to attempting to run two “environments’ in one instance.
If I’m missing something in the above please advise. Otherwise, we have reached a conclusion?
Thanks so much for the tips. Awesome help
John.
...has Acumatica fixed this yet? in 2024R1, they give you the screen where you cn publish to multiple tenant and also the tick boxes to which tenant but it still publishes to all the tenant in the same instance, so what is the purpose of that box?