Skip to Content

BPC - How to delete record from UJD_DATA_INFO table so to continue with DM Process Chain

Hi all,

I am required to load BPC Master data and associated Transaction data via a BPC Data Manager (DM) prompt in one go (not separate runs). I am nearly there, please help me to complete.

I am running a Process Chain from DM Prompt. The most critical steps of the process chain are:

1) Run Process Type BPCCONVERT - working fine with variant /CPMB/MASTER_CONVERT.

2) Run Process Type BPCMALOAD - working fine with variant /CPMB/MASTER_LOAD

now this is where the problem occurs

3) Run Process Type BPCCONVERT with variant /CPMB/CONVERT (transaction data)

The program dumps because an assertion fails in Class CL_UJD_CLUSTER_WRITER>ADD_INFO when trying to add a record to the table UJD_DATA_INFO because one is already there from the 1st BPCCONVERT above.

If I debug and set the assertion to pass (change sy-subrc from 4 to 0), my Process Chain finishes successfully and I get a Succeeded data package log. The only thing wrong with the log is that the current round is 1 in both cases but log shows details of Master data additions and Transaction data additions - great - just what I want.

What I want to see is call an ABAP program before 3) above and delete the record from UJD_DATA_INFO. For this I need the P&C: Data Manager Service Unique ID and perhaps Package Instance ID.

Please could anyone tell me the class / method to call where I do not have to pass any parameters and it passes back enough so I can create the key to delete the single record in UJD_DATA_INFO.

Thanks very much


Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Feb 07, 2017 at 07:35 PM

    "I am required to load BPC Master data and associated Transaction data via a BPC Data Manager (DM) prompt in one go (not separate runs)" - why do you want to do it in a very complex way? Why not to use a package link with 2 dm packages?

    Add comment
    10|10000 characters needed characters exceeded

  • Feb 08, 2017 at 01:19 PM

    Thanks for answering to me Vadim,

    The BPC experts here just want it done cleaner (without a package link prompt), anyhow I understand exactly what you mean and I now know about Package links but my question is still valid.

    In an ABAP program what CL_UJ.... classes / methods could I use to get instance no, and DATA_ID - P&C: Data Manager Service Unique ID) - this DATA_ID field is really the field that I want to know how is derived (referred to I_FILE_NO and D_FILE_NO in CL_UJD_CLUSTER_WRITER (and READER).

    If you could quickly point me to any resource that would be most appreciated.



    Add comment
    10|10000 characters needed characters exceeded

  • Feb 10, 2017 at 02:24 PM

    Hi Vadim,

    From a front end user perspective a package link may be considered a little cumbersome for users due to the extra prompts. The requirement was for a more stream-Iined approach for running a DM that would have populated both Master and Transaction data. This is based on HR information, i.e. employee Master data & organisational hierarchy designation, together with salary details (transaction data) being loaded from a excel workbook (flat files), and using VBA is automatically placed on the server for my 'custom' Process Chain to upload.

    Here, they did not want the user to run a Master data upload, then check for a 'Succeeded' message, before being able to run the HR transaction data upload. Ok a package link would have run the 1st Master data (and then if failures occurred e.g. the 2nd package in the link would have failed validation e.g. transaction data not loaded because Master data not being present), but this would also have produced 2 logs.

    I have got something working, i.e. my custom chain belongs to a Data Manager package that is an amalgamation of all the existing standard prompts for the Master data and Transaction data (append) from flat files, and my custom chain just calls the 1st standard process types, then calls a custom ABAP program which deletes the last user record on the table UJD_DATA_INFO (the record is 1st written to this table by 1st Master Data load), and then calls the standard process types for the loading of the transaction flat file data which also writes a record to the UJD_DATA_INFO table with a key the same as the 1st part of the chain.

    This is not fool proof. If the user was running a larger Master Data input and then the same user ran another DM package before the 2nd Transaction part of the chain began a problem could occur, because the last record UJD_DATA_INFO record deleted could be the one that the user was running with the other process.

    I could not find out how the BPC Process Chain writes the DATA_ID field to the UJD_DATA_INFO (this is the primary key), so have to look for the last record written for that user.

    The ABAP program just read through the UJD_DATA_INFO table by user and create time stamp equal to today (system data), and deletes the most recent record. (OK, problem is user was running near midnight and record written just before midnight before this ABAP program was called. Also I believe that the UJD_DATA_INFO table should not get that large if BPC housekeeping performed regularly.

    With regard to customisation, if it is to be implemented!!!, should utilise as much of SAP existing software, which of course will be subject to future release change.

    Anyhow Vadim, thanks again for your generous responses, I am still in the process of learning BPC functional requirements so am learning as fast as I can.

    You have already assisted me greatly (multiple work status reset combinations, using front end DM prompt, utilising a SAP class to validate and write work status updates (if passing validation), and displaying the detailed success and error in the package log - sorry folks that's another post).

    Keep posting and replaying.

    Much appreciated


    Add comment
    10|10000 characters needed characters exceeded

    • Just a simple question - what do you want to ask user when running upload? What prompt are you talking about?

      P.S. In general it's better to describe the business requirements then I can propose a better solution.