Re init cube

Hi
  Can some one tell me the steps to re-init a cube in production environment? 
Thanks
Jay

Hi,
Are u loading the data from ODS or any data sources.
1. If ur data source is ODS or FI/HR/CATS then In the info package-- MENU-- schedular -
Delete the source system assignment.Delete the data in the cube.  Then create a temp. Info package and load data with init option.
2.If ur data sources are Lo's.
deleate the setup table data
Run the statistical set up.
Delete the data in the info cube
load the data with init option.
Thanks & Regards,
Venkata Sharma.

Similar Messages

  • MouseListener Problems - need code solution

    I've been banging my head against the wall the past month or so on this assignment of mine - i've come to the stage where i really some help from a person that really know the java - i have a due date coming up and i really need to output this program.
    I've been thru event handling, but the majority of the code i didnt even have to look at it - im very new to java -doing it for about 6 months or less - did C so that helped a bit. But i can;t make head or tails about mousepressed,mouse pressed,mouse realsed,mouse entered and mouse exited - my code my out put is also blank...
    Can somebody, anybody help me with this coding - im sorry i dont have any dukes, but i promise as soon as i get i will remember the person and give as much as he or she wants.
    im gona paste my entire code assignment here...sorry for this...
    This is my main class : javac ShowRubik.java and java ShowRubik
    please let me know.
    Regards
    RAfiek
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class ShowRubik extends JApplet implements MouseListener {
       Rubik cube;
       private int width = 300, height = 300;
       int count = 0;
       public void init()
         cube = new Rubik(width, height);
         cube.addMouseListener(this); 
         // get content pane and set its layout
         Container container = getContentPane();
         container.setLayout( new BorderLayout() );
         container.add(cube, BorderLayout.CENTER);
       // execute application
       public static void main( String args[] )
          int width=300, height=300;
          if (args.length !=2) {
         width = 300;
         height = 300;
          JFrame applicationWindow = new JFrame("Rubik's Cube Demo");
          applicationWindow.setDefaultCloseOperation(
             JFrame.EXIT_ON_CLOSE );
          ShowRubik appletObject = new ShowRubik();
          appletObject.setWidth(width);
          appletObject.setHeight(height);
          appletObject.init();
          appletObject.start();
          applicationWindow.getContentPane().add(appletObject);
          applicationWindow.setSize(width,height);
          applicationWindow.setVisible(true);
          applicationWindow.show();
       // enables application to specify width of drawing area
       public void setWidth( int newWidth )
          width = newWidth;
       // enables application to specify height of drawing area
       public void setHeight( int newHeight )
          height = newHeight;
    // MouseListener event handlers
       // handle event when mouse released immediately after press
       public void mouseClicked( MouseEvent event )
         if (count == 0){
         cube.Turn(Rubik.LEFT);
         if (count == 1){
         cube.Turn(Rubik.RIGHT);
         if (count == 2){
         cube.Turn(Rubik.UP);
         if (count == 3){
         cube.Turn(Rubik.DOWN);
         if (count == 4){
         cube.Twist(Rubik.LEFT,0);
         if (count == 5){
         cube.Twist(Rubik.RIGHT,1);
         if (count == 6){
         cube.Twist(Rubik.UP,2);
         if (count == 7){
         cube.Twist(Rubik.DOWN,0);
         if (count == 8){
         cube.Twist(Rubik.LEFT,2);
         if (count == 9){
         cube.Twist(Rubik.RIGHT,2);
         if (count == 10){
         cube.Twist(Rubik.UP,0);
         if (count == 11){
         cube.Twist(Rubik.DOWN,1);
         if (count == 12){
         cube.Twist(Rubik.LEFT,2);
         if (count == 13){
         cube.Twist(Rubik.RIGHT,0);
         if (count == 14){
         cube.Twist(Rubik.UP,1);
         if (count == 15){
         cube.Twist(Rubik.DOWN,2);
         if (count == 16){
         cube.Reset();   
         if (count == 17){
         cube.Scramble();
         if (count == 18){
         cube.Reset();   
         count++;
       // handle event when mouse pressed
       public void mousePressed( MouseEvent event )
         repaint();
         show();
       // handle event when mouse released after dragging
       public void mouseReleased( MouseEvent event )
         cube.repaint();
       // handle event when mouse enters area
       public void mouseEntered( MouseEvent event )
         cube.repaint();
       // handle event when mouse exits area
       public void mouseExited( MouseEvent event )
         cube.repaint();
    }My Rubik class
    * Rubik.java
    * Created on 10 May 2004, 01:50
    * @author  Rafiek Buffkins
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.JApplet;
    import java.io.*;
    import java.lang.*;
    import java.util.*;
    public class Rubik extends JPanel
    public static int UP =0;
    public static int DOWN = 1;
    public static int TOP = 0;
    public static int BOTTOM = 1;
    public static int LEFT = 2;
    public static int RIGHT = 3;
    public static int BACK = 4;
    public static int FRONT = 5;
    private Face[] faces = new Face[6];
    private Color[] colorList = new Color[] { Color.YELLOW, Color.BLUE, Color.GREEN, Color.WHITE, Color.ORANGE, Color.RED};
    private int current = 0;
    private int top = 4;
    private int height, width;
    //[6][6][4]
    private int[][][] neighbors = {
                   {     {-1,-1,-1,-1}, {2,0,4,5}, {-1,-1,-1,-1}, {2,0,5,4}, {2,0,1,3}, {2,0,3,1}     },
                   {     {3,0,4,5}, {-1,-1,-1,-1}, {3,0,5,4}, {-1,-1,-1,-1}, {3,0,1,2}, {3,0,2,1}     },
                   {     {-1,-1,-1,-1}, {0,2,5,4}, {-1,-1,-1,-1}, {0,2,4,5}, {0,3,2,1}, {0,3,1,2}     },
                   {     {1,3,4,5}, {-1,-1,-1,-1}, {1,3,5,4}, {-1,-1,-1,-1}, {1,3,2,0}, {1,3,0,2}     },
                   {     {5,4,1,3}, {5,4,2,0}, {5,4,3,1}, {5,4,0,2}, {-1,-1,-1,-1}, {-1,-1,-1,-1}     },
                   {     {4,5,3,1}, {4,5,0,2}, {4,5,1,3}, {4,5,2,0}, {-1,-1,-1,-1}, {-1,-1,-1,-1}     },
    Rubik(int w, int h)
      width = w;
        height = h;
    public void Reset()
        for (int i=0; i<6; i++)
         faces[i] = new Face(i);
        current = 0;
        top = 4;
        repaint();
    public void Turn(int direction)
        for (int i=0; i<3; i++)
         Twist(direction,i);
          repaint();
    public void Twist(int direction, int rowOrCol)
         int front_face = current;
         int top_face = top;
         int left_face = neighbors[top][current][RIGHT];
         int right_face = neighbors[top][current][LEFT];
         int bottom_face = neighbors[top][current][UP];
                 int back_face = neighbors[current][bottom_face][UP];     //trying to create and store faces into arrays and then
                                       //and then change them accordingly
         int face1, face2, face3, face4;
         if((direction==LEFT)||(direction==RIGHT))               //row twisting
              int[] rowCopy = new int[3];
              face1 = current;
              face2 = neighbors[top][face1][direction];          //trying to determine which faces are involved...
              face3 = neighbors[top][face2][direction];          //not sure....
              face4 = neighbors[top][face3][direction];
              rowCopy[0] = faces[face1].getBlocks(rowOrCol,0);     //copy face1
              rowCopy[1] = faces[face1].getBlocks(rowOrCol,1);
              rowCopy[2] = faces[face1].getBlocks(rowOrCol,2);
              for(int j = 0; j<3 ;j++)                    //twisting
                faces[face1].setBlocks(rowOrCol, j, faces[face2].getBlocks(rowOrCol,j));
              for(int j = 0; j<3; j++)
                faces[face2].setBlocks(rowOrCol, j, faces[face3].getBlocks(rowOrCol,j));
              for(int j = 0; j<3; j++)
                faces[face3].setBlocks(rowOrCol, j, faces[face4].getBlocks(rowOrCol,j));
              for(int j = 0; j<3; j++)
                faces[face4].setBlocks(rowOrCol, j, rowCopy[j]);
                                          //if twisting up :
                                       // back become reverse(top)
                                       // bottom become reverse(back)
                                       // front become bottom
                                       // top become front
         else if((direction==UP)||(direction==DOWN))          //trying column twist
           int[] colCopy = new int[3];
           int x, y, i;
         if(direction==UP)                         //twist up
           colCopy[0] = faces[front_face].getBlocks(0,rowOrCol);
           colCopy[1] = faces[front_face].getBlocks(1,rowOrCol);
           colCopy[2] = faces[front_face].getBlocks(2,rowOrCol);
         //front become bottom or bottom changes to front?
         for( i = 0; i<3; i++)
           faces[front_face].setBlocks(i, rowOrCol, faces[bottom_face].getBlocks(i, rowOrCol));
         //bottom become reverse(back)
         y = Math.abs(2 - rowOrCol);
         for( i = 0; i<3; i++)
         x = Math.abs(2-i);
           faces[bottom_face].setBlocks(i, rowOrCol, faces[back_face].getBlocks(x, y));
         //back become reverse(top)
         y = Math.abs(2 - rowOrCol);
         for( i = 0; i<3; i++)
         x = Math.abs(2-i);
           faces[back_face].setBlocks(x, y, faces[top_face].getBlocks(i, rowOrCol));
         // top become front or front become top
         for(i = 0; i<3; i++)
           faces[top_face].setBlocks(i, rowOrCol, colCopy);
                                       //when twisting down
                                       //top become reverse(back)
                                       //back become reverse(bottom)
                                       //bottom become front
                                       //front become top
         if(direction==DOWN)     
         //copy front
         for(i=0; i<3; i++)
         colCopy[i] = faces[front_face].getBlocks(i, rowOrCol);
         //front become top
         for(i = 0; i<3; i++)
         faces[front_face].setBlocks(i, rowOrCol, faces[top_face].getBlocks(i, rowOrCol));
         //top become reverse(back)
         y = Math.abs(2 - rowOrCol);
         for(i = 0; i<3; i++)
         x = Math.abs(2 - i);
         faces[top_face].setBlocks(i, rowOrCol, faces[top_face].getBlocks(x, y));
         //back become reverse(bottom)
         y = Math.abs(2 - rowOrCol);
         for(i = 0; i<3; i++)
         x = Math.abs(2 - i);
         faces[back_face].setBlocks(x, y, faces[bottom_face].getBlocks(i, rowOrCol));
         //bottom become front
         for(i = 0; i<3; i++)
         faces[bottom_face].setBlocks(i, rowOrCol, colCopy[i]);
         //if not middle row or colomn, twist the attached faces of the cube
         if(rowOrCol != 1)
         //row twisting
         //top row
         if((rowOrCol==0)&&(direction==RIGHT))
         faces[top].Rotate(Face.COUNTER);
         if((rowOrCol==0)&&(direction==LEFT))
         faces[top].Rotate(Face.CLOCK);
         //bottom row
         if((rowOrCol==2)&&(direction==RIGHT))
         faces[bottom_face].Rotate(Face.CLOCK);
         if((rowOrCol==2)&&(direction==LEFT))
         faces[bottom_face].Rotate(Face.COUNTER);
         //column twisting
         //left column
         if((rowOrCol==0)&&(direction==UP))
         faces[left_face].Rotate(Face.COUNTER);
         if((rowOrCol==0)&&(direction==DOWN))
         faces[left_face].Rotate(Face.CLOCK);
         //right column
         if((rowOrCol==2)&&(direction==UP))
         faces[right_face].Rotate(Face.CLOCK);
         if((rowOrCol==2)&&(direction==DOWN))
         faces[right_face].Rotate(Face.COUNTER);
         repaint();
    }//close public void twist...
    public void Scramble()
    int dir, slice;
    for (int i=0; i< 1000; i++)
    dir = (int) (Math.random() * 4);
    slice = (int) (Math.random() * 3);
    Twist(dir,slice);
    repaint();
         protected void paintComponent(Graphics g)
         super.paintComponent(g);
         for (int i=0; i<3; i++)
         for (int j=0; j<3; j++)
              g.setColor(getColor(faces[current].getBlocks(i,j)));
              g.fillRect(j*55,i*55,50,50);
         protected Color getColor(int index)
         return colorList[index];
         protected Face getFace(int which)
         int front_face = current;
         int top_face = top;
         int left_face = neighbors[top][current][RIGHT];
         int right_face = neighbors[top][current][LEFT];
         int bottom_face = neighbors[top][current][UP];
         int back_face = neighbors[current][bottom_face][UP];
         if (which == FRONT)
         return faces[front_face];
         else if (which == TOP)
         return faces[top_face];
         else if (which == LEFT)
         return faces[left_face];
         else if (which == RIGHT)
         return faces[right_face];
         else if (which == BOTTOM)
         return faces[bottom_face];
         else /* (which == BACK) */
         return faces[back_face];
    }//close of rubik class
    My face class
    public class Face
      private int side;
      private int[][] blocks = new int[3][3];
      public static int CLOCK = 0;
      public static int COUNTER = 1; 
         public Face(int sideOfCube)
           side = sideOfCube;
           for(int i=0; i<3; i++)
             for(int j=0; j<3; j++)
               blocks[i][j] = sideOfCube;     //Not sure about this....
    public int getBlocks(int i, int j)
       return blocks[i][j];
    public int setBlocks(int i, int j, int colorNum)
         return blocks[i][j] = colorNum;
       public void Rotate(int direction)
         int[][] blocks_old = new int[3][3];
         int x, y;
         for(int i = 0; i<3; i++)
            for(int j = 0;j<3; j++)
              blocks_old[i][j] = blocks[i][j];               //blocks = old_blocks???
            }                              //or blocks_new = blocks??
         if(direction==0)
           for(int i=0; i<3; i++)
               for(int j=0; j<3; j++)
              y = i;
              x = Math.abs(2-j);
              blocks[i][j] = blocks_old[x][y];
         if(direction==1)
            for(int i = 0; i<3; i++)
               for(int j = 0; j<3; j++)
              x = j;
              y = Math.abs(2-i);
              blocks[i][j] = blocks_old[x][y];

    What is your problem here?
    What are the different methods doing:
    mouseEntered(MouseEvent e) is being fired, when the mousepointer entered the current component.
    mouseExited(MouseEvent e) is being fired, when the mousepointer left the current component.
    mousePressed(MouseEvent e) is being fired, when the user presses any of the mousebuttons over the current component
    mouseReleased(MouseEvent e) is being fired, when the user releases the pressed button and
    mouseClicked(MouseEvent e) is being fired, when the user presses and releases any of the mousebuttons.
    the current component in this case is the component, where the mouseListener is registered to.
    Your code throws a NullPointerException, since the array faces is not initialized. "Reset" is missing in the constructor of Rubik.
    when you click the mouse (press and release), the colors changes 18 times, because what is missing in mouseClicked(...) is:
           if (count == 19){
                   count = 0;
           }for your example the Methods mousePressed to mouseExited are not nessessary and could be implemented empty:
         // handle event when mouse pressed
         public void mousePressed( MouseEvent event ) {}So: why are you bangig your head? What do you expect?
    Michael

  • Delta Init DTP DSO- Cube loads all requests

    Hi,
    i've loaded several Full Request to a DSO (Datasource 2LIS_02_ITM).
    I had to to fragment it to 3 months per Full load because otherwise the data volume was too much for the rollback segment.
    Now i want to load these requests from the DSO to a Cube.
    I created a Delta DTP and selected the "All new data by request" option.
    The DTP starts as a Delta Init but selects all open requests at once and crashes with a "ORA-01555: snapshot too old..." error.
    As a workaround i created several Full DTPs that only load part of the data but i really want to understand why the Delta Init doesn't work as expected and documented (to load request by request in a new process).
    thanks
    Carsten

    Hemant Khemani wrote:>
    > Please check if you have selected the option "Get All New Data Request by Request" in the Delta DTP.
    > If you have selected this option then the delta DTP will select only one request (oldest - yet to be updated to the target) from the DSO.
    That's the option i've selected.
    When monitoring the DTP-Request i see in the head data that all requests from the DSO are selected at once.

  • Deleting failed request from DSO leading to delete of INIT of DSO to Cube

    data flows from ds1, ds2 and ds3 to dso1 as delta. the data is then taken from dso1 to cube1 via delta
    data flows from ds3 to dso2 as delta. the data is then taken from dso2 to cube 2 via delta.
    when a data is loaded from ds1 or ds2 or ds3 to dso1.. or when data is loaded from ds3 to dso2.. now if we try to delete this un activiated request from lets say dso1. it gives and error that the init from dso1 to cube1 would be deleted as the data has already been data marted.
    this happens even if the request in dso1 is inactive successful or inactive failed.
    i did an init of ds1,ds2, ds3 to dso1. and also did an init from dso1 to cube1. but the problem persists.
    though if all goes good. like no failures in the load, then all is well.
    but if the load failed. say ds2 to dso1 failed. then when we attempt to delete this request from dso1, it says that it has already been uploaded to cube1 and the init will have to be deleted. here when we checked the datamart sign in dso1, it looks like the newly loaded n unactivated data is somehow assosiated with the dso1tocube1 init.
    any thoughts?

    Please give more info.
    How have you connected DS01 and Cube 1? Transformation or update rules? How have you done the initialization?
    What is the version SAP BW that you are using?
    Have you checked any relevant SAP Notes?
    Thanks,
    Krishnan

  • Re-init of POS cube

    Hello,
    Should it not be possible to delete all data in a standard POS retail cube, delete the init request setting in data package, delete the delta queue AND THEN perform a new delta init?
    This delta init should then pick up all data from the extraction queue..
    Am I right?
    I have problems with this re-init...
    Best regards,
    Fredrik

    Hi Fredrik,
    Yes it is possible to delete the Init request from the POS Retail cube and Intialization for source system in infopackagea also call the transaction RSA7 in your source system and delete the corresponding DataSource's delta queue for the relevant BW system.After that you must request the data again in the DeltaInit mode from BW.
    Hope it helps...
    Best Regards,
    DMK
    *Assign points if it helps...

  • Process Chain Steps to upload into teh Cube for delta init

    Hi All,
    I have all the delta init info package in my Process chain for all the DSO themn i have DSO ACtivation step and third is Furhter Processing....
    It ran Ok for all the DSO but it Did not update the data into the Infocubes... Also all my DSO setting is Update data into the data target,,, >> Set the status to ok automatically..
    Plz let em know what i am missing ...
    Thank you

    Create a info package for the DSO to Cube by going to the 8 Datasource and load the data.
    From the time you start delta you should not face any issues.
    -Vikram

  • Not able to compress the init request for non cummulative cube

    hi sdn
    i'm not able to compress request for stock init( for some plants) in non cummulative cube with a  marker update the  job is cancelled when I see the log it is showing no. of sql lines
    and job terminated.
    what may be the cause of the problem
    ruabne

    You need to restrict the number of the request that you are going to compress for every job. Try also to enlarge TableSpace, in particular the temporary TableSpace, that you can subsequently reduce.
    Consider that any other job, like query from user or other uploads, reduce the speedof the compression.
    Hope it helps.
    Regards

  • Fields added to dso not to the cube- Init question

    Hello,
    I would like to know if i make changes to a dso and cube in production.And i need to make changes just to the dso, added 2 fields, these fields are not added to the cube and the cube has not been changed or modified.Now if i want to init and get historical data as well on the newly added fields in the dso, I will delete the data in DSo, but i would liek to know what about the cube.Can i leave the cubes data in it and just init into the dso and resume deltas from dso to the cube once init is done.
    Please comment.
    Thanks.

    No need to delete data in the DSO or the infocube.
    Assuming you are loading the DSO from R/3.
    Do not delete any initializations from R/3 to DSO .. or from DSO to Infocube.
    Leave it as is.
    After you move the transport which has the additional attributes added to the DSO object and all the transformations to the cube are also Active.
    Now do a full repair load from R/3 to BW for that DSO. You can select the Full repair from the infopackage under the Scheduler Menu option.
    Load the data and activate it.
    There wouldn't be any duplicates in the DSO unless the two characteristics that you added form a key in the DSO structure.
    After loading the data . do a  delta to the infocube. It should load only the delta records from the last run date.

  • Init delta from ods to two cube seperately

    Hello,
    Can we run init seperately two times for the two different cubes from a ODS which is used as an staging ODS?
    ODS1-> for cube1 initialise delta with data transfer
    ODS1-> for Cube2 initialise delta without data transfer
    is it possible to do like this?
    Thanks in advance!
    Points will be assigned!
    Regards
    Ram

    Hi Rakesh,
    I think it should not have been possible to do initializing with data transfer and without data transfer for the same data target.
    I mean init with data transfer to cube 1 and init without data transfer to cube 2 from ODS.
    Not to the same Cube. Will it be possible like this?
    Regagrds
    Ram
    Points will be assigned

  • How to delete init request when load is taking place from ods to Cube

    Dear All,
    I have initiated the init load from ODS to Cube, but the init request was not successfull... Now on clicking the init infopkg i get the short dump error....
    I am trying to acess this infopkg so that i can delete the old init and reschedule it again...
    Now in order to avoid this error i need to delete the init request somehow..... Since data load is happening in BW system only there is no way to go to delta queue and delete the init...
    How can i delete the init request in this case or how do i avoid this dumup error???
    Thanks & Regards,
    Anup

    From se11, go to the table, see the content... from this window mark the check box for relevant entries in the first column and click on Display button (F7)
    enter "/h" in the command prompt and press enter
    Click the top most green button to execute.
    From the debugging screen, double click on variable "CODE" change the value to "DELE" (from "SHOW") and save (by pressing enter in bi7 and by clicking pencil icon in bw 3.x ).
    Press F8
    In the result screen you will find the delete entry in the application bar
    Delete one by one after ensuring the record content.
    Better you can ask any abaper to delete the table entries in the debug mode coz its a production server..else you can call me 9500066350(I prefer you to go along with abaper if you have no option dont wait for calling).

  • What happend to past delta data if we delete Delta INIT from Cube? safe ?

    Hi Friends,
    we have a cube where delta data is loaded daily from ODS.
    So, cube have many delta requests and data is compressed.
    Now have some problem and need to delete Delta INIT from this Cube and run fresh delta INIT again into Cube from ODS. Is that safe ?
    If we do this...is there is any problem with past delta data availble in the Cube?
    Please confirm..
    Thanks
    Tony

    Hi,
    I told you to check this before deleting the init as it very tough to manage it after that.
    Now those delta request are missed and I dont think can be retrieved without doing a full repair with proper selection.
    If you do a new init then there should be no request without a check for data mart status??
    So you found it before deleting the init??Then you should not have deleted the init as I told earlier.
    The only option is too reload the whole histroy again if you are not able to load it through selections in infopackage.
    First do a selective deletion from the cube for the same selections and then schedule the full load for those selections from DSO.make sure these selections cover the whole scenario.
    You cannot do anything else now to correct it.
    If you data is not huge in cube then delete the whole data and reload it.
    Schedule multiple loads from the DSO at the same time through different infopackages.
    this will save time as weill will do the loads in quick time.
    Thanks
    Ajeet

  • Load fail - ODS to Cube - INIT req

    Hi experts..
    Im loading init request from ODS to my cube.The req contains 12 million records in the ODS.I got the following error message in the RSMO.
    Job termination in source system
    Diagnosis
    The background job for data selection in the source system has been terminated. It is very likely that a short dump has been logged in the source system
    Procedure
    Read the job log in the source system. Additional information is displayed here.
    To access the job log, use the monitor wizard (step-by-step analysis)  or the menu path <LS>Environment -> Job Overview -> In Source System
    Error correction:
    Follow the instructions in the job log messages.
    This load is from ODS to CUBE ,and how does the source system is related here..
    Bcos it says error in the source system.????
    How to correct this error????
    thanks & regards
    ragu

    Hi Ragu
    When you are loading from ODS to Cube at that time source system BW Myself system (your own BW system) acts as source system.
    As given in Procedure section ->To access the job log, use the monitor wizard (step-by-step analysis) or the menu path <LS>Environment -> Job Overview -> In Source System->>> Look for job log.
    Also check in ST22 for short dump and let us know the error description in detail.
    Regards
    Pradip

  • Init from ODS to Cube

    Hi,
    When I do an Init from ODS to cube. It extracts from Active data table
    Example /BIC/AZSD_O52P00, say it has 3.5 million records.
    My question can the number of records extracted (not transferred records) can exceed the number of entries than that of /BIC/AZSD_O52P00?
    Thanks in advance.
    Regards
    Ajay

    Hi Ajay,
    It can if you split the records in the update rules between the ODS and the Cube using return tables.
    Bye
    Dinesh

  • DELTA AND INIT TO CUBE Simple

    Please help me with this, I have a bad red delta request coming from billing ods  in bmw cube so i deleted the request, but bmw cube has other green  request coming from order and delivery which is fine green and success.
    now to resolve this i deleted the red delta request of billing  and also deleted every thing from ods and i redo the set up table and did init to billing ods but now when init goes to bmw cube it fails please tell me the exact step to resolve this please tell me how can i set up the delta again so that init from billing ods goes to cube
    help me with navigation step.i do not want to delete the entire data from cube to resolve this
    thanks
    soniya
    soniya

    Let me try to get it.
    Your ODS has delta coming in for a specific fiscal period? Is there no overlap (meaning one billing document coming in as new into the ODS and cube is not changed in the next period)?
    If not, there may be a problem.
    Consider the case where you had a document which came in earlier (successful) request, and is there in the cube (say with a original qty of 25). Now, say your last delta had a change to it (of qty increased by 5, say), and this delta failed to go to the cube. Now you are doing a full load with repair for this period.
    Since you are doing a full load, it will bring a qty of 30; however your cube has the earlier record (with a value 25), so instead of total 30 (correct) you will end up with a value of 55(incorrect).
    The difference here is that your delta which failed had a qty of 5 (incremental amount) for this doc, but now you are bringing the qty of 30 with a full load.
    This is a theortical scenario which can cause inconsistency to your data. If there is no case where an earlier existing record was being changed in the last delta (ie last delta had all new records) then you should be ok.

  • Identify ODS change log request from Cube update rules init routine

    Hello all.
    I need to use a logic in the Start routine of a cube, whcih change log request are move from an ODS when doing a delta.
    Anyone knows if this is possible???
    Thnaks and best regards,
    Alofnso.

    Hello Oscar.
    Basically my requirement is to do a selective deletion of the cube, before I load the new data, but the selective deletion has to be done according to some fields of the data that is going to be load to the cube.
    That´s why I need this.
    Best Regards,
    Alfonso.

Maybe you are looking for