on 10-30-2007 4:21 PM
Hello everyone,
I've a question about the record mode in transfer rule:
eg: I've ODS which has 2 records:
sales order / item / char1 /char2 / Date
2001 / 10 / A / B / 9999-12-31
2002 / 10 / E / F / 9999-12-31
(sales order, item, char1 and char2 are keys)
I've data in extraction:
2002 / 10 / E / F / 2007-09-20
2002 / 10 / E / F/ 9999-12-31
If I create transfer rule for 0RECORDMODE
IF TRAN_STRUCTURE-Date < SYST-DATUM.
RESULT = 'D'.
ENDIF.
What result will I get in ODS?
I mean I will get:
2001 / 10 / A / B / 9999-12-31
2002 / 10 / E / F / 9999-12-31
or I will get 2001 / 10 / A / B / 9999-12-31
since the transfer rule will assigne 'D' to all records which have key
2002 / 10 / E / F.
Thanks a lot for all idea.
Regards
Juan
Juan,
> I've data in extraction:
> 2002 / 10 / E / F / 2007-09-20
> 2002 / 10 / E / F/ 9999-12-31
>
This data looks like delta enabled extract. Why are you using a delta enabled load into an ODS? You could, but that is really not necessary. In any case, are you deleting the "old snapshot" record in the transfer rules or update rules?
>
> What result will I get in ODS?
> I mean I will get:
> 2001 / 10 / A / B / 9999-12-31
> 2002 / 10 / E / F / 9999-12-31
>
> or I will get 2001 / 10 / A / B / 9999-12-31
> since the transfer rule will assigne 'D' to all
> records which have key
> 2002 / 10 / E / F.
>
It is hard to tell with 100% confidence because you are trying to load delta enabled extract into an ODS. I suspect you will have the following two records:
2001 / 10 / A / B / 9999-12-31
2002 / 10 / E / F / 9999-12-31
If I were in your place, I would simply conduct an easy experiment in the development system by creating two CSV files and loading them via flat file upload interface.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Sudhi,
Thanks for your reply.
> This data looks like delta enabled extract. Why are
> you using a delta enabled load into an ODS? You
> could, but that is really not necessary. In any case,
> are you deleting the "old snapshot" record in the
> transfer rules or update rules?
In our case, we have a lot of records but only few rows, so we decide to take an ODS.
Why is not necessary, the delta load into ODS? could you please explain more clear?
> If I were in your place, I would simply conduct an
> easy experiment in the development system by creating
> two CSV files and loading them via flat file upload
> interface.
Yes, I will try it.
A delta load that sends two records for every change (one snapshot for before change and another for after change) is helpful if the data is going directly into a cube. InfoCube data is never deleted and never overwritten. So if you have a record like this
CHAR KF
A 5
and if the key figure value changes to 8, then you need two records to go into the cube like this:
CHAR KF
A -5
A 8
The cube will now have 3 records; the original record, second record negating the original record and the third one with the new value.
ODS data is always overwritten - so there is no need for the before change snapshot.
Hello Sudhi,
I knew that but in our case, I'd like to load only the changed or new records from ECC5 but not all records since the volume is important.
Therefore, I take delta loading to ODS and I should be sure delta works well.
Regards,
Juan
> A delta load that sends two records for every change
> (one snapshot for before change and another for after
> change) is helpful if the data is going directly into
> a cube. InfoCube data is never deleted and never
> overwritten. So if you have a record like this
>
> CHAR KF
> A 5
>
> and if the key figure value changes to 8, then you
> need two records to go into the cube like this:
>
> CHAR KF
> A -5
> A 8
>
> The cube will now have 3 records; the original
> record, second record negating the original record
> and the third one with the new value.
>
> ODS data is always overwritten - so there is no need
> for the before change snapshot.
Hi Juan,
If date is not in keyfields, then you no need to use Recordmode = D to delete rocords from ODS. Latest one overwrites existing one.
Yes you can have multiple records in CUBE, after load compress with Zero record deletion.
Hope it Helps
Srini
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Srini,
Yes, I agree with that.
We have only an ODS as InfoProvider in this case.
If a record is deleted in R/3, how can I load it to ODS in order to delete this record in ODS? (The extractor is generic extractor, thus I should define delta rule myself ).
Thanks for you help
Juan
> Hi Juan,
>
> If date is not in keyfields, then you no need to
> use Recordmode = D to delete rocords from ODS.
> Latest one overwrites existing one.
>
> Yes you can have multiple records in CUBE, after
> load compress with Zero record deletion.
>
> Hope it Helps
> Srini
Hi Srini
That seems very interesting.
But how can I map record mode in ODS since I can't add record mode in ODS?
Thank you very much.
Juan
> Hi Juan,
>
> Better way : In your ODS date field is there and
> is filling with latest date.
>
> Now load data from ODS to same ODS(called loop back)
> and map only record mode, and write a simple routine,
> like if date is less than system date then Mark D.
> You can delete old records.
>
> Hope it Helps
> Srini
Hi Srini
Your answer is quite helpful.
I have one more question, please:
My ods is loaded with delta mode. If a record is new for this ODS, your methode works well. Therefore, if a record exist already in this ODS, but the date is changed. I mean the key is the same but date is updated. In this case, the old record is set to 'X' and new one is set to ' ' in change log. Thus this record have a date less than system date, but BW will not mark 'D' to this record because it's not a new record but a record updated. In this case, how can I delete it?
Hope my question is clear.
Thanks
Juan
> Hi Juan,
>
> Better way : In your ODS date field is there and
> is filling with latest date.
>
> Now load data from ODS to same ODS(called loop back)
> and map only record mode, and write a simple routine,
> like if date is less than system date then Mark D.
> You can delete old records.
>
> Hope it Helps
> Srini
Hi Juan,
If i undestood correctly, date you are talking about is filling in update rules of ODS(before loading into ODS). in this case our condition works. We no need to bother about ODS change log, which comes into picture once data is activated, in activation Deletion marked records(RECORD Mode = D) will be deleted.
If i didnt understand correctly, please eloborate bit... its been long time(post created on 30 Sep...)... )
Hope it Helps
Srini
Hi Srini,
Thanks to your response rapide.
The field Date is in datasource.
In fact, when loading init, everything is OK.
But the second load with Delta has problem,.
eg:
Record had been loading in INIT:
10 (key) red 9999-12-31
and later, this record is modified in R/3
10(key) red 2007-09-30
That means this record is valid to 2007-09-30. We should thus delete it from ODS.
Therefore, with our routine, this record is only updated to:
10(key) red 2007-09-30
and it is always in ODS.
It seems that because it is a updated record but not new record, so when loading in delta, BW doesn't take it and then can't delete it with the routine.
That's why my question.
Is it clear?
Thank for your help.
Juan
> Hi Juan,
>
> If i undestood correctly, date you are talking
> about is filling in update rules of ODS(before
> loading into ODS). in this case our condition works.
> We no need to bother about ODS change log, which
> comes into picture once data is activated, in
> activation Deletion marked records(RECORD Mode = D)
> will be deleted.
>
> If i didnt understand correctly, please eloborate
> bit... its been long time(post created on 30
> Sep...)... )
>
> Hope it Helps
> Srini
Hi Srini,
an example:
in INIT loading, I've loaded a record likes:
order no. color DateValidTo
10 red 9999-12-31
Few days later, this sales order has been modified in R/3. I loaded it to BW in Delta:
order no. color DateValidTo
10 red 2007-09-15
I want to delete this record in BW since its date (DateValidTo) is less than Today.
But, with our routine, it can't be deleted.
I suppose that because it's not a new record, but just a record updated.
I hope you understand my problem now.
Best wishes
Juan
Juan,
It can be deleted. Why not..?
I think your routine is : If date to < loaddate(current date) mark record mode = D.
right..? here cant you make it <b>date to <= loaddate</b>..?
Then wat is the problem..?
For before image you will get date : 9999-12-31 and
after image you will get date : 2007-09-15.
so if current date is : 2007-09-15 and condition is delete records where load is less than or equal to Todate.(RECORDMODE = D)
Srini
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.