cancel
Showing results for 
Search instead for 
Did you mean: 

getting older verion of code

Former Member
0 Kudos

Hi Experts,

please help me in understanding, how much is 'sync to date' option reliable which comes on right of click of DC>DTR>sync-->Sync To date.

What I see is, code can't be checked on the track after syncing we can have only local copy of that date to which it was synced. Is there way to check-in the synced code?

Steps I am following are:

1.creating a DC from track,

2.creating a activity for it.

3.using sync to date option

4.checking in the activity.

But when a remove local copy and create a fresh from track, I see current date code of the date to which it was synced.

please help.

TIA

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Vanita,

When you check in the activity the older DC in the track is overwritten by the changes made in the activity which was checked in. Hence when you check out the dc next time latest DC with the changes in the last activity would be shown instead of actual dc.

Let me know if this is what you wanted to ask?

Regards

Deepak

Former Member
0 Kudos

Hi Deepak,

Thanks For the reply, but unfortunately this not what i am looking for.

I am unable to get the checked-in code. I hope my above thread is clear, let me summarize it again.

Currently we are getting 'NoclassDeffounderror' on our development. But the project doing live from more than a year. Hence what we thought is updating MDMjars as on NWDI which dint help. Now we are trying to get the code from the last but one transport which was of the sep month.

So I am trying the sync the code to sep , but when i check-in and re-created from the track I see dec code only not sep:(.

so, what should I be doing? Can we really depend on sync to date?

Regards,

Vanita kulkarni

Former Member
0 Kudos

Hi,

Ideally it should have over-write your file but as you said it is not happening. Just check whether your activation of the older version of code was successfull.

Also you can take the copy of the file from the older version, then sync the latest code for the current date and then check-out the file and copy the old-code and then check-in activate.

Then delete the DC and create it once again. Hope this works.

If you are doing this also make sure to take the copy of the latest code in your file system in case the old code creates some inconsistency in the CBS build.

Regards,

Manoj

Former Member
0 Kudos

Thanks Deepak,but unfortunately i cam go for copy-paste.That would be risky job as its a live project. Per my knowledge copy-paste sometimes create code read ability issues for tool.

Is there anyway to get older version? Please guide me.

Thanks.

Former Member
0 Kudos

Hi Vanita,

As you said that project was live for more than a year, then the error should not come automatically. Please check if any upgrade to the server / sld has been done.

Getting the sep code : It would not be possible as your track is having the latest code. Only way would be to copy the older files if you have back up and paste it in the checked out dc folder. (but this may lead to incosistency if you are not aware of the changes made form sep to till date)

Suggest you to

1)check the log file and find out the source of the error,

2)check out the dc and do the modification to correct the error

3)check in and activate.

If you have problem finding the issue in your project please share the log file.

Regards

Deepak

shreyas_pandya
Contributor
0 Kudos

Dear Vanita,

Please understand some basic ideas about sync operation...

Sync: Writes the contents of the DTR workspace to the pre-determined area of the local file system.

Before we perform the sync operation there are certain prerequisites that must be kept in mind.

1) A Fresh new DC that is being created for the first time can never get synced to anything, because there are no version histories available of this DC in the DTR workspaces at all.

2) You always sync the Current working version of your DC to an old desired version of the same DC which is also known as the closed version.

OK, so far so good. Now assuming that you were successfully able to sync your current working version

with your desired old version (closed version).

Letu2019s use a nomenclature to categorize the steps that you must have performedu2026

Your DC must have gone through the following sequence of transformation on each progressive step.

1) Assume that, thereu2019s already one Active Version of your code at present in DTR, we call it "A".

2) The version that is currently loaded in your NWDS that is synced with version "A",

and you are modifying this version, so this version becomes your Current Working Version; we call it version "W"

3) Now, You perform the "Sync to Date" operation on your current working version "W",

to get the old desired version (closed version) "D".

4) After the Sync to Date operation is over your Current Working Version "W" has now changed to "D",

Please do not misunderstand here in terminology, now at this point of time "D" has become your current working version.

5) And as far as I have understood your problem, you want to Check-In this very version "D" back into the DTR as it is, please clarify on this.

6) Now here comes the interesting part.

The Version "W" is the version with a high probability containing more objects than the old version "D"

7) Because assume that version "D" was created 1 month back than the version "W".

😎 This literally means that version "W" was obtained after the source code has undergone lots of modifications, in which there is always a high probability of new objects being added.

9) If you want your source code exactly to be checked in as it is appearing in the version "D"

Then it will not be so easy. But it is possible, explained in Resolution section in the end.

If you are looking for something like that then you need to consider the following scenario.

Assume that on 01-January-2011 you checked-in a DC containing u201CFile-Au201D in DTR.

After that the same DC went through lots of modifications like u201CFile-Bu201D and u201CFile-Cu201D were added to the same DC later.

So if you come back letu2019s say after a month i.e. on 01-February-2011,

and you feel that the current working version is not consistent and

you want to go back to your old version on 01-January-2011.

So you choose u201CSync to Dateu201D option to go back to 01-January-2011 version.

And indeed, your local source code will get synced as it was on the 01-January-2011 (i.e. DC with u201CFile-Au201D only).

So when you Check-In this entire DC, it will not serve your purpose (purpose explained in step-9).

Because, when you Check-In it will only replace the u201CFile-Au201D present in the repository

with the File-Au201D of your current DC that is synced with old version.

But, it will not delete the u201CFile-Bu201D and u201CFile-Cu201D of the same DC that are still preset in the repository.

Resolution:

1) You have successfully synced your local current working version with the desired old version.

2) Now, take a back up of this synced DC version and remember under which namespace it is residing.

3) Copy the same DC under your Local Development u201CMyComponentsu201D SC.

4) Now right-click remove your track from your current workspace.

5) Go to DTR web UI navigate to your DC path

(http://<host>:<port>/dtr/ws/<Track_Name>/<SC_Name>/dev/inactive/DCs/<Namespace>/<DC_Name>)

6) On the right hand side click on the Delete Resource button to delete the DC

7) Now, navigate to the SCs path

(http://<host>:<port>/dtr/ws/<Track_Name>/<SC_Name>/dev/inactive/SCs/hul.com/NWSC/_comp/TopLevelDCs/)

8) Delete the file <DC_Name>.dcref in the same way by clicking on delete resource.

9) Again import the same development configurations, this time it will not contain the deleted DC.

10) Copy the DC from u201CMyComponentsu201D Local Development and paste it inside the Track SC.

11) Ensure the DC permissions are pointing to Track SC instead of u201CMyComponentu201D SC.

12) Resolve all the dependencies and create a project structure and then right-click your DC and choose u201CAdd to Source Controlu201D option.

13) This action will result in activity creation. This activity will now contain your entire DC source code.

14) Check-In, Activate and Release this activity.

15) Thatu2019s all; you have now successfully Checked-In your old synced version as it is.

My apologies for the long explanation.

I hope my guidance will lead you to the correct path.

Regards,

Shreyas Pandya

Former Member
0 Kudos

Hi Sheryas,

Thanks a ton for your reply. Very kind of you and solution is very helpful. awarded 10points :).

We were not able to get this solution on time, hence created the new track with SCA of required date.

Now, I am in process of deleting unwanted DC's created on track.

I am following SAP note for this. But had doubt and had posted same on SDN. But I guess, you can give more precise ans if you can afford some time on this.

scenario is :

1.DC A is required DC

2.DC B using DC A as used DC is to be deleted.

When i delete DC B without deleting used DC's of it, would cause harm to DC A either during deletion or during un-deploying.

currently deleting used DC's explicitly. Is it really required?

TIA

vanita k

shreyas_pandya
Contributor
0 Kudos

Hi Vanita,

I am honestly glad to know, that my long explanation indeed helped you..(_)..

OK, now back to your question.

"DC A" is added as a dependencies for "DC B"

Here, DC B is said to be dependent on DC A.

Now, if you want to delete the "DC B"

Then, you need not worry about anything.

Go ahead and simply delete that "DC B"

Always remember one rule.

While deleting a DC, please check whether that DC is being used as a dependency to any other DC or not?

If it YES, THEN,

You can't simply delete that DC, because some other DC requires it.

IF NO THEN,

You can straight away delete that DC without worrying.

Regards,

Shreyas Pandya

Former Member
0 Kudos

Hi Shreyas,

first of all thanks alot for all your helpful inputs.

yes,the DC's i want to delete are not being used by any other DC's. Infact, Dc's to be deleted are interdependent.

But what i see now is , i am not able to create few of the DC's which are present on track. I see below issue.

Can you please help me on this?

Cannot sync http://.. /dev/inactive/DCs/sap.com/TestGP/_comp/. The path does not seem to exist on the server.

com.sap.tc.devconf.SyncException: Cannot sync http://.. /dev/inactive/DCs/sap.com/TestGP/_comp/. The path does not seem to exist on the server.

at com.sap.tc.devconf.impl.VFSHandler.syncLocalPath(VFSHandler.java:293)

at com.sap.tc.devconf.impl.DCProxy.syncSources(DCProxy.java:905)

at com.sap.tc.devconf.impl.DCProxy.syncAsSources(DCProxy.java:761)

at com.sap.tc.devconf.impl.DevelopmentConfiguration.syncAsSources(DevelopmentConfiguration.java:4948)

at com.sap.tc.devconf.impl.DevelopmentComponentNode.syncAsSources(DevelopmentComponentNode.java:955)

at com.sap.ide.eclipse.component.provider.actions.dc.DcCreateProjectAction$1.syncSelectedDCs(DcCreateProjectAction.java:443)

at com.sap.ide.eclipse.component.provider.actions.dc.DcCreateProjectAction$1.execute(DcCreateProjectAction.java:237)

at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:71)

at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1595)

at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:85)

at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)

shreyas_pandya
Contributor
0 Kudos

Dear Vanita,

The error clearly says that resource doesn't exist on the server.

This error comes in a situation, when the resource is currently present in your local NWDS, but it has been deleted from the DTR.

Please open the DTR and compare whether all the objects that are present your local resources are also available in the DTR or not?

To give you an example.

you have one "DC A" loaded in your Track in NWDS.

So, in the DTR Web UI, you need to compare all the files that are present in that DC, with all the files that are present in your local DC.

I request you to please mention the step-by-step actions that you perform to explain your queries.

It will help in getting the solutions quicker.

Let me know about your findings.

Regards,

Shreyas Pandya

Former Member
0 Kudos

Hi Shreyas,

But that DC is very much existing in DTR. I dnt see option of folder deletion in DTR(http://<host><port?/dt).Is that may be because of acces issue?.

let me know , i f my thread is not clear.

I need to delete those DC"s. which i can see on server and on NWDS. but sync exception is coming while creating. And even after deleting _comp and .dcref files DC is not getting deleted.

~ Thanks

Vanita Kulkarni

shreyas_pandya
Contributor
0 Kudos

OK,

Understood you point.

1) First of all Remove your Track from NWDS, you can load it later once you are done with the DC deletion.

2) Go to the DTR Web UI, delete the DCs that you want.

3) If you are unable to see the Delete option please get the "NWDI.Administrator" UME role assigned to the User ID using which you need to perform the Delete operation.

Regards,

Shreyas Pandya

ErvinSzolke
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi,

small addition (I did not read the whole thread, just reflecting to the availibility of delete feature in DTR webui): the delete feature is only available as of EHP1 as far as I know (let it be 700 or >= 710).

If you are on a lower release then DTR webui has no such feature, however of course you can do the deletion using the DTR console. I mean the tool located in "/usr/sap/<SID>/SYS/global/com.sap.dtr.console". Here you find "run.bat"

(if this is unix, then please do not forget to replace the ";" by ":" inside the run.bat else it'll not be runnable on unix).

Best Regards,

Ervin

shreyas_pandya
Contributor
0 Kudos

Dear Vanita,

That's a very nice and helpful input given by Ervin, please consider it if it is applicable in your scenario.

Dear Ervin,

We are really lucky to have an expert like you in here.

Regards,

Shreyas Pandya

Former Member
0 Kudos

Thanks Ervin.

Hi Sheryas,

I am sorry being not able to understand ervi's solution. I am doing deletion from DTR by deleting _comp and .dcref files. I still have DC"s which are not present on server but are present on NWDS.I am not able to udnerstand what should be doing with those.

I am sorry:(

shreyas_pandya
Contributor
0 Kudos

Dear Vanita,

Do not worry.

1) If those DC are not appearing on the Server in DTR Web UI, that means you were successfully able to delete those DCs.

2) Also make sure that you had deleted the relevant .dcref file from the below mentioned path

(http://<host>:<port>/dtr/ws/<Track_Name>/<SC_Name>/dev/inactive/SCs/<SC Namespace>/<Track_SC>/_comp/TopLevelDCs/)

2) Now you just have to re import your Track once again (means delete/remove your track from your NWDS and import it once again)

3) It will not show those DCs that were not appearing in the server now.

The reason for those DCs appearing in your local machine is because your Local Code is not in Sync with the code which is in DTR Server.

Let me know about your findings.

Regards,

Shreyas Pandya

Former Member
0 Kudos

Hi Shreyas,

Thanks a ton for your help. I have deleted those DC's from new track without trying to create those.it is working.

Awarding few more points to you thanks again.

My next thread is on SDA importing into NWDS without downloading sapmake_util/SDM GUI .If you an clue let me know.

Regards,

Vanita.

Answers (1)

Answers (1)

ErvinSzolke
Product and Topic Expert
Product and Topic Expert
0 Kudos

fyi, moved to NWDI forum

Former Member
0 Kudos

Hi,

As you are trying to enhance the already developed SCA, Did you import that SCA while you created the track for that component? If this is not then the libraries and classes which are present in the old SCA can not be retrieved for your new developments.

Regards,

Vamshi.

Former Member
0 Kudos

Hi Vamshi,

I am not importing SCA. I am working on the same track.

@Ervin,

Thanks for moving it NWDI forum.

I will provide the log files,please check and help me.

Former Member
0 Kudos

Hi,

I hope you have the SCA of your custom component. Then you can unzip it and find then import the libs to your NWDS.

This will remove the no classdef found error.

Regards,

Vamshi.

Former Member
0 Kudos

Please Check the Log file.

#com.sap.tc.webdynpro.sessionmanagement#sap.com/tcwddispwda#com.sap.tc.webdynpro.sessionmanagement.ExceptionHandler.handleThrowable#SAPEngine_Application_Thread[impl:3System/UserInterface#Java###Exception occured during processing of Web Dynpro application . The causing exception is nested.

[EXCEPTION]

#2#bhi.com/crtcstreq_wd/Create_Customer_App#java.lang.NoClassDefFoundError: com/sap/mdm/commands/CommandException

at bhi.com.CreateCstReqComp.CreateConnection(CreateCstReqComp.java:1641)

at bhi.com.CreateCstReqComp.wdDoInit(CreateCstReqComp.java:164)

at bhi.com.wdp.InternalCreateCstReqComp.wdDoInit(InternalCreateCstReqComp.java:896)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)

at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)

at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)

at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)

at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:756)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:291)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:733)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:668)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)

at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)

at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:73)

at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:860)

at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.create(AbstractApplicationProxy.java:220)

at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1289)

at com.sap.portal.pb.PageBuilder.createPage(PageBuilder.java:356)

at com.sap.portal.pb.PageBuilder.init(PageBuilder.java:549)

at com.sap.portal.pb.PageBuilder.wdDoInit(PageBuilder.java:193)

at com.sap.portal.pb.wdp.InternalPageBuilder.wdDoInit(InternalPageBuilder.java:150)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)

at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)

at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)

at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)

at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:756)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:291)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)

at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)