-
Notifications
You must be signed in to change notification settings - Fork 17
Does everyone on my team need to use Ninja?
Yes. Either everyone uses AL Object ID Ninja to assign object IDs, or it doesn't really make much sense for anyone to do so.
Imagine this scenario.
Two developers (John and Mary) are working on a common app. John uses Ninja to assign object IDs, but Mary feels she doesn't need to so she keeps assigning her IDs manually. You may feel that Mary would suffer because her PRs (pull requests) would result in ID collision and she would have more manual work, but in reality, it may be that Mary never suffers, and only John does.
For example, John uses Ninja to assign codeunit 50000. Mary then manually assigns codeunit 50000. Mary creates her PR first. Her PR gets built and merged. John completes his work and creates his PR. The build pipeline fails because there is a collision on codeunit 50000, which already exists in the mainline.
Build pipelines cannot know which developer played fair and used Ninja to avoid collisions. Unfortunately, whoever creates their PR first, will get merged. Check issue #45 for more information.
Yes. Ninja watches your workspace in the background, and when it detects an object ID that wasn't assigned by it, it gives you a warning:
When you notice this warning, it is important that you resolve it as soon as possible. This warning tells you that a collision is about to happen.
Important: When you see this warning, and you don't fix it, Ninja will not know that this ID is already in use, and may suggest it to the first developer who requests an ID.
To fix this warning, simply use the Quick fix that is suggested:
This quick fix will store that object ID in the back end.
Depending on how busy your team is, by the time you decide to fix this warning, somebody else could have already had the same ID assigned by Ninja. In that case, applying the quick fix will fail and you will receive an error message informing you of that.
When this happens, simply delete the object ID, and use Ninja to assign the next available ID.