You are on page 1of 8

If you have read my blog about the BW 7.

30: Simple modeling of simple data flows, you have learned already
about one tool, which will ease the work to create a BW data flow. However it might be that you have done this
already and heavily changed the generated objects to suite your needs. Now it comes that you need to create
another data flow, which looks quite similar to the one you have already created. Only the target would be a little
different. Or you need to load from another DataSource in addition. Or from another source system (maybe a
dummy source system? Cf. my BW 7.30: Transport support in BW landscapes). Too bad, that you need to do all
your modifications again!
No because with BW 7.30 there also is the Data Flow Copy Wizard.
And again, we start in the data warehousing workbench RSA1.

Lets display the data flow graphically:

Now, if we want to copy this data flow, we just need to choose Copy data flow instead Display data flow.
Again, you can choose in which direction the objects shall be collected.

The system asks you whether you want to collect also process objects or only data model objects. Why this? The
process objects usually are included in a process chain. And if you intend to copy the process objects, you
should start copying with the process chain. We will try this out later, but for now, lets press No and sneak into
the Wizard itself.

Looking at the step list on the left, it seems like the objects to be copied are divided up into the various object
types. However the order is strange, isnt it? It is by purpose, and you will (hopefully) understand, if you read the
lengthy explanation in above screen shot ;-) Ok, let us start with the first step, number of copies!

I have already chosen two copies, else this step can be skipped. Now what do these replacements mean?
Usually, when copies are performed, the objects are related to the original objects in terms of naming
conventions. At least, for each object to be copied, you need to enter a new name. Now if you are going to create
two copies at a time, you would need to enter two new names for each object. In order to simplify this, you can
enter a placeholder & in the new object name and &VAR& in the description, and the placeholder will be replaced
with what you specify in above screen. It could look like this:

So from an object e.g. ZWQC_& (Sales for &VAR&) two objects can be created with names ZWQC_USA (Sales
for States) and ZWQC_EMEA (Sales for Europe and Asia).

Now the actual copy customizing starts. All following steps have the elements already visible on above screen:
For any original object the target object can be specified in several ways when clicking on the column in the
middle:

You can use the original object uncopied. This means the original object will be included into the copied
data flow. By this, you can, depending on the object that you keep
Add a new load branch to an existing data target

Create a new DataSource for the same source system

Load the same DataSource from another source system

Load an existing DataSource into a new target


If you keep all objects in all steps, you actually do not perform a copy.

You can use a different, already existing object. This will include the specified object into your copied
data flow. You might have created the InfoProvider already, but you want to copy the transformation from an
already existing transformation. For object type source system like shown above, the source system must have
been created before you start the wizard.

You can create a new object as copy of the original object. This is the standard option that you would
like to use, and the one, which is not available for source systems ;-)

You can exclude the object from the further copy process. This means, that also all objects dependent
on the excluded object will be excluded from the copy process. So if you exclude the source system, you will
automatically exclude the DataSource and the corresponding Transformation as well. It will leave only the
DataStore and InfoCube to be tackled and the transformation between.
This gives already an impression how the wizard takes care of the interdependencies between the objects so that
you always will get a consistent copy no matter how complex your data flow is. I have chosen to keep the source
system, and for the InfoProviders, I will copy the cube only:

Then the wizard gives me no choice for messing up with the corresponding transformations in the next step:

This help you will especially appreciate, if it comes to deep copy of process chains. Lets try this out. I exit the
wizard.

Oops, I can save my entries!? That sounds like a useful feature. Indeed, if I would have continued the wizard to
the end and actually performed the copy, my entries were saved automatically. So if I am going to change
something with the original objects and want to propagate this change to the copies I had made, I am offered the
following additional step in the wizard:

Having this, I can very swiftly walk through the steps which carry already my settings from the chosen previous
copy process. I just need to exclude some of the objects whose changes I do not want to copy over (or rather use
the already copied objects). And moreover there is transaction RSCOPY, which shows me which copy processes

I have already undertaken. We will come back to this later, now we wanted to look at the process chain copy. Let
us choose menu process chain -> copy in the process chain maintenance:

Of course we want to use the wizard. This time we are not asked whether we want to collect process objects as
well ;-) Instead, the step list contains some more steps:

Lets fast forward to Process Chains.

The system assumes we want to copy the process chain (how intelligent ;-) and thus confronts us with a popup
where we could change the target object name and description. Having filled it out, the wizard shows us another
chain as well, the subchain of the selected one:

Let us keep that re-use subchain and fast forward to the directly dependent processes

STOP! What is this? I cannot change the source system? Why cant I change the source system? Go on: I
cannot change any of the DataSources, InfoProvider and Transformations! So we tricked ourselves: By not
copying the subchain, we are still referring the original data flow in our copy (in the subchain). The system
ensures that the outcome is consistent so it does not let me choose another data flow. Ok, convinced. I will copy
the subchain as well. Now I am allowed to do my changes concerning the InfoCube as before. Puh.

So these are the directly dependent objects directly dependent on a data flow object. Since I have copied the
InfoCube only, the system proposes me to keep most of the processes, but only create a new DTP for the new
data flow branch plus a data deletion process. We can double click on the original object "0WQ_308_DELDELTA"
to see what it looks like.

It contains both DataStore and InfoCube. If I copy it, the InfoCube would be replaced by my new InfoCube in the
copy. But the DataStore would still be in it. Well, it shall be a copy Also, if I look at the list of processes above, I
see that the InfoPackages and DataStore will be loaded in my new chain as well as in my old chain. Not such a
good idea. Maybe it would be better to copy the data flow only and modify my existing chain such that it drops
and loads the new cube in addition to the old one. So the system does not totally relief me from thinking myself
Ok, let us continue with our chain copy anyhow to see the outcome.

These are the data flow independent processes; we have to choose names for the triggers, alright. There is one
step missing in our example, since we have no such processes in our chain, these are the indirectly dependent
processes, which refer to a directly dependent process in turn.
Let us go to the end and execute.

We choose "In Dialog".

You might also like