RTC 4.0.6 View Component Scope Change History - version-control

My team has recently had an issue where the scope on a component was changed to "Team Private". No person on my team should have the authority to perform this change except myself as the project manager. I'm trying to find a way to view the history of a component to determine who made the change so I can prevent this from happening in the future.
I've tried to find a component history (not the component change set history) in the RTC client and in the browser interface but haven't had any luck. I have direct access to the RTC CCM database on the AIX DB2 server and I can find the row for this component on the SCM.COMPONENT table but the ITEM_ID is in a weird format and I'm not able to correlate it's value with anything on any of the other CCM tables. I tried creating a ER diagram by reverse engineering the SCM via IBM Data Studio but the diagram doesn't display any of the relationship information for the tables (I can do this on a z/OS DB2 database and it works properly so I know the process is correct) so I'm in the dark when it comes to the table relations with the SCM tables.
What are my options for viewing the change history of a component? Is it even possible?
Thanks

The closest source of (temporary) information that might have recorded the change is the event stream of the project.
See for instance "Is there RTC component rename history?":
Yes, there is.
It is captured in the event log for the project area.
Open the feed associated with the project area and you'll see a record of who renamed it, when and
the before/after the rename operation.
FYI, the event log doesn't last forever.
It will eventually be purged. I believe it only shows you the last few hundred events. If there's a lot of activity, the record won't last long.
The events come from the feed management used in all Jazz based products and it doesn't have a way to set the limit.
You can check if that applies to scope changes.
There is an enhancement request to have those logs kept around for a longer or customizable period of time: Enhancement 279808... don't hold your breath though.

Related

Azure DevOps Migration - Moving Project to Another Org

I'm looking to migrate a project from one org to another in Azure DevOps. We've ended up with two or three orgs, and this project that I'm looking to move has all sorts of weird and wonderful work items created and custom fields added. What I'm looking to do is move the project and then see if I can persuade the powers that be that certain things can be dropped but I have an immediate need to move as-is so that reporting and other work isn't impacted.
I have tried to get this to work with the migration tools (and tried to follow the videos) but have hit a dead-end. I think there are two issues potentially. One being the ReflectedWorkItemId. It says that it's not found in User Stories but I'm not sure how to resolve this? Do I go into user stories and add a field called 'ReflectedWorkItemId' and populate it with the work item number and/or add the same field in the destination org process?
It also mentions in the info that it can't find one of the Work Item Types - Processes. There are a few other custom work item types that have been created too but I assume it's given up on the first one. Do I have to create all of the work item types and the custom fields for each work item type in the destination org? Or am I getting the wrong end of the stick with this?
To provide sync as well as migration it is important that the tools knows which items have already been migrated. This is the purpose of the ReflectedWorkItemId field.
The field is not required in either case, however... if you don't have
the field then the system cant be re-run as it will re-copy all
completed work items. If you add the field to the target then it will
only copy those items it cant find. If you add the field to the source
(yes it needs to be the same refname), and set UpdateSoureReflectedId
to true then you can also filter the source, using a query and limit
what you load.
The former prevents duplicates, and the latter allows you to filter
the data load...
This is mentioned in this document. Here is a similar issue you can refer to.
TF201077 that usually happens when the target Project does not have a work item of that name. You can refer to this issue on github for help.

Powerbi and Azure DevOps (online version) reporting when Backlog Level name changes

I'm attempting to utilize Power BI and the Analytics Views provided in Azure DevOps to create reports. I noticed an issue regarding the template(s) used that caused for no data to appear in the datasets in Power BI.
Scenario: If a user uses the Scrum template in Azure DevOps, it calls the Refinement Backlog level of work "Backlog items". If a user goes into change that to "Stories" it changes how the queries grab the group of work items in that level.enter image description here You can easily change the query to match the new name of the backlog level. You cannot add multiple "projects" to that query and see the data in the dataset if other projects are using the default name.
Issue: I attempted to change the name back to the original name of "Backlog items" instead of "Stories" and run the query in the Analytics Views to grab the data from multiple projects with the same "Backlog items" level but nothing appears in that project that was renamed back to the original name.
How to reproduce:
Open a project in Azure DevOps
Access Analytics Views
Under any Backlog query, edit and add additional projects to retrieve data in this view and save
Open Power BI and connect to the recently changed query
In Azure DevOps, access Organization Settings and go to Process
Access the project the above query is located and open the template
Modify the name of the backlog level to something other than "Backlog items"enter image description here
Save and go back to Power BI and refresh data
Actual result - you should not see the data from that project due to the name change
Go back and change the name back to the original name and refresh the dataset in Power BI
Result:
You still do not see the deta in the dataset even though you renamed it back to the original name. Besides 'resetting' the backlog level back to the original default state, is there a way to get it to recognize the original name if you renamed it back? Is there another step to making it recognize the name change? Since it's in the cloud, I waited 24 hours after the name change back to the original name but still didn't work. I noticed the same thing will happen on the Portfolio Backlog level (i.e. Epic).
Besides 'resetting' the backlog level back to the original default
state, is there a way to get it to recognize the original name if you
renamed it back?
I seem to reproduce similar issue like yours and then I use steps below to make it work:
1.Reset the Backlog and refresh the page.
2.Then navigate to the Analytics views, edit the View(the view in your step3) which can't be recognized now.
No matter it's Backlog items backlog or Stories backlog here, delete them all and Verify the view. Then click Save button.
3.Refresh current page and edit the View again, add the Backlog Items backlog back, Verify the view, Save the view. Now refresh the data in Power BI, the data should come back.
Above steps are what I use to work around the issue, hope it helps :)

Kentico Import Tool inconsistent/buggy when updating documents

I've had a number of problems using the provided Kentico Import Toolkit, namely when using the "Import new and overwrite existing pages" option to update my existing/already imported pages. I'm using a custom SQL query to import and have had a profile saved for each import I've needed (client has article based site so a few tables of similar information) to try and keep each as consistent as possible between imports.
Here's the problems I've encountered thus far (in no particular order):
the tool tries to guess which fields from the query correlates to the fields of the page type in Kentico for you, which is a nice idea, but seems poorly implemented. If I'm not very careful and reload the profiles every time I import I've had instances where fields changed inexplicably when testing imports because the tool thought it knew which field I wanted
this is more the problem when importing/reimporting multiple times in a session and choosing to go back and load the same profile (without reloading)
the NodeAlias field is only seemingly required on update/reimport rather than on initial import. I'm sure there's an internal cleaning of the document's title to generate a NodeAlias and this is generated fine when importing documents while NOT providing the NodeAlias. After importing the items initially and wishing to update however the NodeAlias is seemingly required as you'll get errors with text asking it be included. This implies to me that there's matching of the NodeAlias along with the given ID field, which should be fine in theory but isn't specifically mentioned anywhere in the tool as best I can tell.
I've had instances where reimporting items will change/strip their NodeAliasPath. I've gotten around this by specifically setting the NodeAliasPath (which only shows after selecting "Show Advanced Columns") but like NodeAlias path before it, I'd think the tool should be smart enough to know to keep the path if not specifically given for updated items.
it seems very odd that in order to match on ID for previous items you have to provide the name of the new column instead of the old one. My example: client was using just a field named 'id' and the new one is 'OriginalID' to clearly differentiate it from the Kentico derived ID fields. To match the items I have to use 'OriginalID' rather than 'id'
A couple of notes/niceties or potential updates along with the above:
it would be nice if there were some way to select if the page should
be published or not through a single query. Currently having the
"Automatically publish pages under workflow" toggle checked seems to always publish
the items. I have an instance where the client has old documents in
the provided DB dump that they don't want visible on the site but
want preserved in the DB if they change their mind later. Currently I
have to perform 2 imports, 1 for the unpublished and a second for the
published items, to accommodate this, which is quite cumbersome
I'll likely edit/add to this as I get responses. This isn't really a specific problem (as I managed a workaround to the NodeAliasPath stripping problem, which inspired this post initially) but more just me asking if these are bugs,if I'm not using the software as intended, etc.
You've stated all the problems you're having/experiencing and possibilities why they are happening but didn't ask a particular question. If you suspect they are bugs, then I'd go to directly to Kentico Support and report the issues there since these are things that have been part of the KIT for as long as I have worked with it.

Content merging AEM

We're looking for a solution on how to best deal with the situation where multiple authors are working on the same page. If the first author pushes in the content, the second should have a way to merge it when he tries to publish. Launches appears to be a way to take care of this but it doesn't seem to be handling content merging. Is there any way an author can view the diff(and or do merge) of the content that might have been pushed by another author while they were working concurrently ?
Please help with any pointers.
Page modifications happen in real time to the underlying structure. They also happen at as small a level as possible.i.e. If you go into a text area and modify the text there, the text node is changed on the server, you aren't saving the entire page.
The only way that person A could interfere with what person B is doing is if they were working on the exact same area of the page. Which, honestly is a process issue. I say this because the answer to your question is that there is nothing out of the box to handle this type of scenario and if you are on 6.0 or higher and looking at the JCR3. JCR3 handles this far worse than the older version did. Last time I checked it didn't support nodes at all
Adding to what Bailey said, AEM OOB allow multiple users to edit same page in real time, though if multiple users are working on same node will be a reason of conflict. Such cases can be managed by defining a process like:
1. Take a lock of page and edit page or
2. Create versions of page and publish versions

Play Framework form with history

I'm working on an application using Play 2.0.4 in Scala, and one of the features I was asked to implement is to build a form that remembers all of the edit history. Basically, there should be a button next to every field that shows the details of every change, because the app users may want to rollback or use the edit history information later.
The first idea pops up in my mind is to assign a hidden div to every field that appends every change, and only shows the div when users click on the corresponding button. This doesn't sound very hard, but I feel like it may make the HTML a mess (since each user has his own record, each record has many fields). Or I could make a copy of the database and store all the changes inside, with the primary keys changed to be both the id of the form, and the edit time.
Thoughts? Am I overthinking the problem? Is there a more elegant way to store all of the edit history? We estimate that there would only be around 200 people in the company using it, so I guess I can let efficiency slide a little...
Thanks in advance.
I would normalize and persist the record in the database. This would allow you to have history on changes by having a history table for each section that they with to rollback.
This would allow manageability of restorations based on sets of data and significant changes can be tracked. Managing each field separately would be very cumbersome and least pragmatic.