Version Control

Does anyone have experience with or best practices for using Version Control with BODS Project and Jobs? If I create a Project in my Local Repo then Export (either to Central Repo or file system), how do I determine the associated “version”? For example, I create and export “Project_A1”. Then, I make some changes and export Project_A2, more changes and another export. So, I then have multiple historical versions of “Project_A”. And, if I make a change and need to roll-back, I can recover the previous version.

How is SAP Lifecycle Management Console used with Data Services?

Hopefully these questions make some sense! Thank you!


CNV_Ben (BOB member since 2002-08-15)

Gosh!!!

I don’t know why everyone ask the difficult question/myterious stuffs to handle with (-:

Okay yes.

I have a question??? How many of you succeeded in retrieving a 2nd oldest version of a job? I think that can be achieved using the concept of labels only!!!

Practically from my BODS ADMIN experience all I would do is take an .ATL File backup and attach it to the PROD Request!!! So that at any given point of time, I can access that Ticket and retrive the old version!!! But I maintained all the job versions in CENTRAL too!!!

Really the method of Central Repo has to grow!!!


ganeshxp :us: (BOB member since 2008-07-17)

You can also ‘get by version’ to get a previous variant of the job. However, labeling makes life easier as you can apply the same label to many jobs in a release whereas the jobs in a release may be at different versions.


Nemesis :australia: (BOB member since 2004-06-09)

I thought get by version would only pull the Object and not ‘Objects and Dependants’

I will try!!!


ganeshxp :us: (BOB member since 2008-07-17)

No, you’re correct. ‘Get by version’ only gets the object you have selected. There’s no way to get the dependent objects of the version :reallymad:


Nemesis :australia: (BOB member since 2004-06-09)

Bingo!!! And you know something about labeling?

You cannot label items half way through. You would have to label right from beginning/first version of the job!!! :cuss:


ganeshxp :us: (BOB member since 2008-07-17)

Well, technically you can label any version you want. You just can’t do it through Designer.


eganjp :us: (BOB member since 2007-09-12)

I never tried for labelling feature also. But well do you mean touching the AL_* tables???


ganeshxp :us: (BOB member since 2008-07-17)

Yes. On a project a while back there were over 800 objects that needed to be labeled for a migration. There was no way I was going to do that through Designer. My eyes would have turned to jello. I had the list so I constructed SQL statements to take care of it. Done in 30 seconds.


eganjp :us: (BOB member since 2007-09-12)

Jim, can you elaborate a little on what you did? What specifically does “labeling” refer to? And, can you provide a set of sample SQL statements you used?

Thank you!


CNV_Ben (BOB member since 2002-08-15)

The process of associating a label (free form text string) with a version of an object (or objects) simply gives us the ability to assign a common identifier to multiple objects. If you needed to go back in time and find all the versions of an object based on something like version “2.1.1” (which would be the label you assigned) you could grab all those versions from the Central Repository. If you are not using a Central Repository then labels do not exist.

INSERT INTO AL_LABEL 
SELECT '<Workflow Name>', 
            0, 
            MAX(version), 
            '<Label to assign>', 
            CONVERT(datetime,'2012-1-23 10:22:00', 120) 
FROM AL_LANG 
WHERE NORMNAME = '<Workflow Name>' 
   AND OBJECT_TYPE = 0 
   AND TYPE = 1;

eganjp :us: (BOB member since 2007-09-12)

Jim, I am adding a Job for the very first time to the Central. Say it has 3 WorkFlows and 3 corresponding Dataflows and have some source and Target tables…

Can you please tell me how to add to Central with Labels applied to all objects?


ganeshxp :us: (BOB member since 2008-07-17)

Never Mind…

I figured it out…

Huh but Ugly. In the Show History, for each items I would add, I would see 2 updates by then. One for adding that object and another for labelling that object. Sigh…


ganeshxp :us: (BOB member since 2008-07-17)

The objects have to be added to the Central Repository using Designer. Once they are in there you can also label them using Designer through the Central Repository dialog by right mouse clicking on the highlighted objects and selecting “Label Latest version” from the popup. Then enter the label you want associated with that version.

That’s the normal way. For a deployment with hundreds of objects I don’t have time to find each object in the Central Repository dialog. Plus I’m really not into repetitive tasks. :slight_smile:

To get this done in a hurry I keep a spreadsheet of object names and what type of object they are. My prior post showed how to apply a label to the latest version of a Workflow. Here is how to do it for a Dataflow:

INSERT INTO AL_LABEL 
SELECT '<Dataflow Name>', 
            1, 
            MAX(version), 
            '<Label to assign>', 
            CONVERT(datetime,'2012-1-23 10:22:00', 120) 
FROM AL_LANG 
WHERE NORMNAME = '<Dataflow Name>' 
   AND OBJECT_TYPE = 1;

The only difference between the Workflow and the Dataflow is the value used for the OBJECT_TYPE column and how you find the latest version. Each object type is different and requires a different set of SQL. I generally deal with seven object types:
[list]DB Function (function, procedure, package)
Dataflow
Function (DS custom function)
Job
Project
Table
Workflow[/list]

My examples are written for a Central Repository hosted in SQL Server. Oracle is slightly different in how strings are converted to date values.


eganjp :us: (BOB member since 2007-09-12)