I just have one question to make sure I'm doing it the right way.
When creating a field in an existing DAC, the system automatically adds the prefix "usr". From what I understand, this allows Acumatica to know that the field is specific and that it must be kept during a version upgrade.
When we create a new table / DAC (I've never done this before and I'm going to need to), should we add the prefix "usr" as well? If we don't add it, will the specific DAC be taken into account when upgrading?
Thank you in advance for your advice.
(And sorry for my english...)
Usually your DAC name would be prefaced by your Acumatica registered prefix if you are building a vertical for the marketplace as an ISV. For customizations best practice is to use a 2 digit identifier that is an abbreviation related to the tenant followed by the module. For example MTSVCalc could be a calculation table in the service module for My Tenant. More on naming conventions https://help-2020r1.acumatica.com/Help?ScreenId=ShowWiki&pageid=74ee714c-b70a-4f67-8647-329c5b774b2c
Related
I want to add an entity extension to a customer in shopware 6. I was able to do so with the examples in the documentation of shopware on the PHP side and now I wonder how to display and modify this new "field" in the shopware 6 backend.
I searched a lot and also tried to find a simple plugin where I could get some inspiration from, but unfortunately I'm not able to find.
So again the question 😊 Is there any simple example on how to add an entity extension for customers with field in the admin of shopware 6? Or an example plugin, where I can see how it could be done?
What you're (likely) trying to achieve would be the combination of multiple separate tasks.
If you want to store data in the database you'd need a new custom entity
If you want to associate the new entity with the customer you'll need the entity extension
You'll need to add a new field in the administration
I've linked to examples respectively, but you'll probably need to take the time and invest in studying the documentation regardless.
I also created an example plugin that combines all these steps and adds a new entity with a height field as association to the customer and displays the field in the administration. You can find the repository here.
Not sure if you considered this, but depending on what you are trying to accomplish, the simplest way is probably adding a custom field (this can be done progamatically or even via the admin panel).
The drawback is, that those fields' values are stored as JSON and it has drawbacks when you try to search through them.
I used some of the Hybris reserved Deployment code and then later changed to non-reserved deployment type codes. Do I need to Initialize the system in-order to reflect the changes with new deployment code or just an Update works. There are many items that deployment code has been changed. Why update doesn't work?
When you use a reserved code in your deployment table, you're likely to add the attributes of your object in an existing table. If you have attributes with the same name, it'll surely be a mess in the table (I don't know how hybris will choose the table type for example).
When you run an update with the good deployment code, it will create a new table which is just fine. The other table which has been used by two objects will still remain potentially broken because hybris won't delete any column.
That's why you should initialize your system to have a clean DB. The issue is that you'll lose all your data.
If you need to migrate data it will be probably quite hard because you must have to look on the broken table and distinguish between the attributes that should not be there and the others. So I hope for you that it's just a dev issue!
Actually i would suggest you to do initialize rather than update more likely that the update will not work for you in this case and probably you will get some error messages saying invalid pk xxxxxxxxxxxx because of unknown typecode yyyy.
As you may know the typeCode (deployment code) is an essential operator for the generation process of PKs in Hybris and thanks to it Hybris can ensure the uniquenessity of the PKs, so even if you change the old typeCode with a new one it's very likely that Hybris will still keep the old typeCode somewhere hence PKs already generated will never be consistent with the new typeCode.
So that's why you should never change the typecode of an item once given.
My suggestion is :
To make a backup of your existing data (you can export it from HMC,
you may take a look at alain.janinm's answer here).
Then initialize your System.
Then re-import the data again.
Note : that typecodes between 0 and 10000 are already reserved for hybris
particular items.
I'm using Liferay 6.2.
My need is to add one user in LR, with a specific userID.
Or alternately, update a userID with another value.
The standard addUser service does not provide the possibility to specify the userID, and even the updateUser.
I would like to understand how LR choose the IDs for a new user, and if I can modify it.
thanks!
Like in almost any database driven application they're assigned in sequence. And no, you don't have to choose anything, it'll be taken care of by the framework. It needs to be unique, you can't add another user with the same ID and you must be sure that the user with this id will never be created in future. Thus: If you'd use an id that has already been given out, you'd have a duplicate. If you'd use one that has not yet been given out, you'll have a duplicate some time in future, when the sequence of ids comes to this value and the framework assigns the same id for the second time.
If you have an architecture that relies on a specific ID, your architecture is wrong. Rethink the problem and change the architecture and whatever you've already done to implement it.
LR core services use a CounterService to automatically assign UserId (and plugin developer should do the same)... so all the generating code is properly wrapper in the service methods that creates a number of rows in different tables when creating a user.
I agree with previous comment "If you have an architecture that relies on a specific ID, your architecture is wrong"... by the way you can use a tip.
Do you know Expando in LR? In enables you to add virtual columns on a DB entity... by using it, you can create a virtual column "myExternalId" to table "User_" (entity "User") and store there the ID you need. Then modify your code to use the field myExternalId instead userId.
I have done a change in my DEV environment (which holds all the Unmanaged solutions) on a solution in which there is the Account entity.
I made a few changes on display text for specific fields (ex: I had a field whose display text was 'Primary Contact', now has been changed to 'Billing Contact').
In DEV, the changes do come up OK after publishing all customizations, but is not updated in the target TEST environment under which I imported the solution as Managed.
I made sure to increment the version # of said solution and schema names have not changed.
Any ideas ? Thanks.
EDIT: In my DEV env. I did export/import translations and changed the display strings/localized labels to support french, the new french label has made it to the target, but the english label has not. (??).
The way solutions are handled within CRM 2011/2013 are that unmanaged solutions sit on top of any managed solutions. It's more than likely you have an unmanaged solution with the account entity included and the "Primary Contact" set as the label.
http://i.msdn.microsoft.com/dynimg/IC443916.png
Alternatively, this could be related to the UR you are presently on. Prior to UR12, this was an issue. To remedy, you can either create a brand new managed solution with this label change or update the roll-up. Unfortunately, incrementing an existing solution doesn't update labels appropriately (prior to UR 12).
https://community.dynamics.com/crm/f/117/t/88156.aspx
What is the easiest way to change a field with a whole plethora of dependencies?
In the ‘Company’ section when you add a new call, there a field called ‘Summary’ I want to either amend or replace this with a field that has a drop down menu, but when I looked in to it, that field has some 28 dependencies so if I create a new field, how do I ensure I have got this bit right?
Many thanks
Nick
Not sure there is a quick way to do this - especially when you consider that changes would have to be replicated in any other environment you have deployed to, I would suggest:
Make a new field.
Mark the old field as redundant, e.g. add (REDUNDANT) in front of the name.
Work your way through moving dependencies from the old field to the new. When the old field has no dependencies you know your work is complete.
When you import to any other environment the old field will still exist but will be totally unused.
If the original field was populated perform a data migration to populate the new field.