cancel
Showing results for 
Search instead for 
Did you mean: 

Decision table data not visible in BRF+

Former Member
0 Kudos

  Hi Experts,

We are facing an issue in BRF+. The custom decision tables show no data when we open the tables in workbench. We have a program reading
data for these tables using cl_fdt_factory class. When we run the program it is selecting data even though the table don’t show any data in workbench.

    

I debugged the generated class method PROCESS_PURE as mentioned in few threads on SDN. I do see all the values hardcoded in the class
method. 

So have we lost the data actually or there is still chance of data recovery ? if yes please let us know how?

Thanks in advance.   

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Hi,

do you have versioning activated in your BRFplus object namely the decision table?

If yes did you check if older versions can be displayed?

Maybe it is just a dispaly problem as you can still access the data using the BRFplus API

BR

Christian

Former Member
0 Kudos

Hi Christian,

thanks for your reply. Versioning is not on.

One thing I noticed though is that last changed by shows DDIC user.

BR,

Mrugesh.

carsten_ziegler
Active Contributor
0 Kudos

DDIC user often means an import has happened. Imports overwrite objects.

0 Kudos

Hi Mrugesh,

what surprises me is that if the data was overwritten and you have no versioning switched on that you can still fetch the data using the BRFplus API. Anyway if that is the case maybe you can save the data this way:

  1. Create a new decision table with the same columns as the orginal one
  2. Read the data out of the original decision table using the API (according to your first post you already have a program to do so)
  3. Write the data into the new decision table using again the API

BR

Christian

Former Member
0 Kudos

thanks both for your inputs,

We did some more analysis. Yes there was an transport. There was change in one of our table and along with that table the application was saved in the transport. even though there were no changes in other tables the data was wiped out of all the tables including the table which was changed.

When we are running the Factory methods to read the data; we get the data from process_pure method. But the method was last generated in august 2014. So i think the method not re-generating has saved us lot of effort .

Just one thing we would like to know is that does transporting application mean that all the tables will regenerate with data refresh even though we haven't made any change?  

carsten_ziegler
Active Contributor
0 Kudos

I assume you have transported and now there is an inactive version. he active version is still in the system and returns you correct results when the rules get evaluated.

In the BRFplus workbench you can switch between active and inactive version. Maybe you try this.

You can transport single objects and complete applications. So it depends on what you did.

Former Member
0 Kudos

Did some more analysis to develop my understanding of this issue. I have mentioned my findings below. As I am not a BRF expert, these finding may seem very obvious. Still no harm in sharing

  1. When a BRF+ function is called to run a business rule
    (in our case decision table) generated class method process_pure is called. This method has table values hard coded in it.
  2. When We change the table content and activate the table
    the current generated class is delinked from function of decision table
  3. If we immediately open the function in workbench we can
    observe that there is no class linked to it
     
  4. The class is regenerated / refreshed once the function is
    executed for the first time after change.
  5. Now this new class has the latest values after change. The
    user used to run API will appear in version history of class and not the DDIC
    user.
  6. In production though what happened was bit different from
    the scenario above which talks about manual changes in table data
  7. Even though the transports re-activated tables wiping
    out  data; it did not delink the class from function
  8. Hence the subsequent API runs did not regenerate the
    class and data was retained in the class methods  

Experts; please correct me if i am wrong

Message was edited by: Mrugesh Phatak

carsten_ziegler
Active Contributor
0 Kudos

Are transports to production OK?

Did you check the transsport protocol?

Are objects that got imported active?

Answers (0)