Skip to Content

Char relationship method to invoke SQLScript procedure does not get triggered

Hello Experts,

I am on SAPKW74014 and trying to implement the char relationships via the SQLScript procedure on a direct update DSO.

Have created the following :

1) Created a class that implements the IF_RSPLS_CR_EXIT_HDB interface and CL_RSPLS_CR_EXIT_BASE as super class.

2) Implemented the 2 GET_SQLSCRIPT* methods.

a) in the *INFO method passing the schema name, name of procedure to derive chars and the structure name.

b) in the *PARAMETERS methods have passed a structure whose name have assigned in *INFO method and that i have locally created in BW. this is similar to the structure of the table type created in HANA.

3) created a derive procedure in HANA and is activated successfully. The procedure contains input, output parameters and logic is simple fiscal period to calendar mapping.

4) The "allow_non_readonly_sqlscript" is set to true and "enable_sqlscript_cmd" is set to on in DBACOCKPIT.

5) Created a CR that references the class.

With the above configuration in place, a save from input form do not trigger either of the *GET_SQLSCRIPT methods.

So what is it am missing ? How do I invoke the procedure as part of the CR trigger ? Any other settings to check ?

Thanks,

Pankaj

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

1 Answer

  • Best Answer
    Jul 01, 2016 at 10:10 PM

    Hello Experts,

    To further analyze this, have created 2 CRs. Both contain the identical SQLScript setup, only that one of it contains a ABAP back up code. So when the input form runs with the CR having ABAP backup, the ABAP DERIVE method gets execute and the char derivation happens correctly. In either case, the SQL methods do not get invoke. To understand the root cause, i performed the ST12 trace for runs when the either CR was active and tried to compare the 2 traces.

    In the debugging got to know that there are 2 standard classes *CR_CONTROLLER and *CR_MAPPER which has a DERIVE_ALL method and that is executed at run time. These 2 classes also have a DERIVE_HDB method that holds the downstream code to trigger the SQL methods from the CR Exit class.

    Now, there is another class CL_RSPLS_BUFFER_B which has a _INIT_CR_CONTROLLER method getting invoke and which has an input parameter I_STORE that holds the key to let system decide whether to run via ABAP or HDB procedure. For my runs, the I_STORE always holds the value A meaning; to run via ABAP and hence DERIVE_ALL is run. For the SQL method's invoke I_STORE should have a value of T.

    So basically the question is how to control the I_STORE parameter ?

    Please feel free to let me know in case I should be looking at some thing more specific from the ST12 traces apart from the above and/or in general anything more useful in this matter.

    Thanks,

    Pankaj

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Gregor,

      We implemented the "disable_string_length_checks" parameter from the note 2285769, however now we run in to a different error types as depicted in below pic. The errors are very diverse.

      Any way I can systematically trouble shoot it.

      Also this time somehow, the flow did not stop at the CL_RSPLS_BUFFER_B classes' method _CR_DERIVE; so interestingly the run is skipping the CR setup completely.

      Thanks,

      Pankaj

      pic6.jpg (317.3 kB)