Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Issue at Log data of the DBTABLOG Table.

former_member1716
Active Contributor
0 Kudos

Dear All Experts,

Our requirement here is to find the Log changes for certain Custom table.

When we we tried using SCU3 we were able to get the old value and New Value properly.

Now we have Created a Custom Program to perform the same function of SCU3 for few tables.

In our custom Program All fields are processed properly and the Old Value and New value are returned correctly but there is one field where the Data type is DEC with Length 10 and Decimals 2.

For this field alone we get different values (Values like Hexadecimals) which we find different we are not getting the Old value and New Value properly also we are not able to decipher the obtained value.

Kindly help us on this.

Regards,

4 REPLIES 4

horst_keller
Product and Topic Expert
Product and Topic Expert

Well, a little searching shows that entries in DBTABLOG are written in a proprietary binary format that is understood by SCU3 and other SAP programs. And it also shows that many have tried (and some might have succeeded) to convert the format back to real data. That's what you must do too. Search for a solution or build one yourself.

(E.g. https://archive.sap.com/discussions/thread/486920)

SuhaSaha
Advisor
Advisor
0 Kudos
  • Is using "change documents" not an option? Since you're dealing with custom object, creating change docs shouldn't be a problem
  • Do you realise that if SAP decides to change this "proprietary binary format" your solution might not work anymore
  • "rec/client" is a global parameter & turning it on has a negative impact on the system performance

Did you consider these points beforehand?

BR Suhas

Sandra_Rossi
Active Contributor
0 Kudos

I don't know how it's stored in DBTABLOG, but packed numbers are stored in memory using the Binary-coded decimal format (roughly 2 digits by byte).

Moreover, packed numbers are often used for storing currency amounts, and there's a "floating" decimal point depending on the value of the related currency code.

If you could give examples of "hexadecimal" values, and to which actual values they correspond, then maybe we can help you find the logic to decode.

raymond_giuseppi
Active Contributor

Transaction SCU3 (Report RSVTPROT) is able to generate an ALV Grid, so with class cl_salv_bs_runtime_info you can wrap SCU3 report, prevent display of grid, submit report and return, get the internal table data back in the wrapper program. (Much easier than reverse engineering of the report...)