viernes, 26 de abril de 2013

2 - Exit Variables BW (Step 2): Ejemplos


 DATA: l_s_range TYPE rsr_s_rangesid.
 
DATA: l_s_var_range LIKE rrrangeexit,
        l_ano         
TYPE i,
        l_mes         
TYPE i,
        aux           
LIKE rrrangeexit-low,
        aux_ano
(4),
        aux_mes
(2).

   
IF i_step '2'.
   
WHEN 'ZVAR_MES_ANT'.
   
READ TABLE i_t_var_range WITH KEY vnam '0DAT' INTO l_s_var_range.

          l_ano 
l_s_var_range-low(4).
          l_mes 
l_s_var_range-low+4(2).

          
if l_mes > 1.
           l_mes 
l_mes 1.
          
elseif l_mes 1.
           
l_mes 12.
           l_ano 
l_ano 1.
          
endif.

          
clear: aux, aux_mes, aux_ano.
          
aux_mes l_mes.
          
if aux_mes <= 9.
           
concatenate '0' aux_mes into aux_mes.
          
endif.
          aux_ano 
l_ano.
          
concatenate aux_ano aux_mes into aux.

          
MOVE aux TO l_s_range-low.
          
CONDENSE l_s_range-low.
          l_s_range
-sign 'I'.
          l_s_range
-opt  'EQ'.
          
APPEND l_s_range TO e_t_range.
  
ENDCASE.
  
ENDIF.



*=======================================================================
*  Determines current month
*                       *=======================================================================
DATA: L_DATUM LIKE SY-DATUM.

WHEN 'ZCMONTH'.
               CLEAR L_S_RANGE.
               L_S_RANGE-LOW  =  SY-DATUM(6).
               L_S_RANGE-SIGN =  'I'.
               L_S_RANGE-OPT  =  'EQ'.
               APPEND L_S_RANGE TO E_T_RANGE.

*=====================================================================
* SCY_CP CHARACTERISTIC - CALENDAR YEAR OF THE CALENDAR PERIOD ENTERED
*=====================================================================

WHEN 'ZCY_CP'.
    CLEAR L_S_RANGE.
    LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZCPUSR1'.

       L_S_RANGE-LOW = LOC_VAR_RANGE-LOW+0(4).
       L_S_RANGE-OPT = 'EQ'.
       APPEND L_S_RANGE TO E_T_RANGE.
    ENDLOOP.


*=====================================================================
* SCY_1_CP CHARACTERISTIC - CALENDAR YEAR - 1 OF THE CAL PERIOD ENTERED
*=====================================================================

WHEN 'ZCY_1_CP'.
    CLEAR L_S_RANGE.
    LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZCPUSR1'.

       ZYEAR         = LOC_VAR_RANGE-LOW+0(4).
       L_S_RANGE-LOW = ZYEAR - 1.
       L_S_RANGE-OPT = 'EQ'.
       APPEND L_S_RANGE TO E_T_RANGE.
    ENDLOOP.


*=====================================================================
* SFY_2_FP CHARACTERISTIC - CALENDAR YEAR - 2 OF THE CAL PERIOD ENTERED
*=====================================================================

WHEN 'ZCY_2_CP'.
    CLEAR L_S_RANGE.
    LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZCPUSR1'.

       ZYEAR         = LOC_VAR_RANGE-LOW+0(4).
       L_S_RANGE-LOW = ZYEAR - 2.
       L_S_RANGE-OPT = 'EQ'.
       APPEND L_S_RANGE TO E_T_RANGE.
    ENDLOOP.



*=====================================================================
*=====================================================================


*Variable 1: Variable del año actual
      
when 'ZCYEAR'.
        
clear l_s_range.
        l_s_range-low      = sy-datum(
4).
        l_s_range-
sign     = 'I'.
        l_s_range-opt      = 
'EQ'.
        
append l_s_range to e_t_range.
        
clear: l_s_range.
*Variable: Variable del ejercicio actual
      
when 'ZV_FISCYEAR'.
        
clear l_s_range.
        l_s_range-low      = sy-datum(
4).  
        l_s_range-
sign     = 'I'.
        l_s_range-opt      = 
'EQ'.
        
append l_s_range to e_t_range.
        
clear: l_s_range.
*Variable: variable dia hoy
      
when 'ZV_SYDATUM'.
        
clear l_s_range.
        
l_s_range-low      = sy-datum.   
        l_s_range-
sign     = 'I'.
        l_s_range-opt      = 
'EQ'.
        
append l_s_range to e_t_range.
        
clear: l_s_range.





** Variável para obter o mês.ano da variável 0P_KEYDT

      
when 'ZV_CMKEYDT'.            loop at i_t_var_range into loc_var_range
                    
where vnam = '0P_KEYDT'.
            
clear l_s_range.
            
clear: aux_year_n0, mm.
            aux_year_n0 = loc_var_range-low(
4).
            mm = loc_var_range-low+
4(2).

            
concatenate aux_year_n0 mm into l_s_range-low.
            l_s_range-
sign = 'I'.
            l_s_range-opt = 
'EQ'.
            
append l_s_range to e_t_range.
            
exit.
          
endloop.
        
endif.




Variables para o relatorio de FI 1.3. a partir de dadta de vencimento
**** obtem a data de lançamento para n-0, n-1 e n-2. e meses homologos.

      
when 'ZV_KEYDT_N2'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = '0P_KEYDT'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).
          dd = loc_var_range-low+
6(2).

          
concatenate aux_year_n2 '01' '01'  into l_s_range-low.
          
concatenate aux_year_n2  mm   dd   into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_KEYDT_N1'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = '0P_KEYDT'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).
          dd = loc_var_range-low+
6(2).

          
concatenate aux_year_n1 '01' '01'  into l_s_range-low.
          
concatenate aux_year_n1  mm   dd  into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_KEYDT_N0'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = '0P_KEYDT'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).
          dd = loc_var_range-low+
6(2).

          
concatenate aux_year_n0 '01' '01'  into l_s_range-low.
          
concatenate aux_year_n0  mm   dd   into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.


      
when 'ZV_KEYDT_M'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = '0P_KEYDT'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low+
4(2).    "low value e.g.200001
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.


      
when 'ZV_KEYDT'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = '0P_KEYDT'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low.    
"low value e.g.200001
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.



* Conta o nº de meses para os relatorios de RH

      
when 'ZV_COUNTM'.
        
clear: l_s_range, aux_data_h, aux_data_l, l_s_diff_period .
        
loop at i_t_var_range into loc_var_range where vnam = 'ZP_CALMO'.
          
concatenate  loc_var_range-low '01' into aux_data_l.
          
concatenate  loc_var_range-high '01' into aux_data_h.
          
call function 'MONTHS_BETWEEN_TWO_DATES'
            
exporting
              i_datum_bis         = aux_data_h
              i_datum_von         = aux_data_l
*     I_KZ_INCL_BIS       = ' '
     
importing
             e_monate            =  l_s_diff_period.
          
add 1 to l_s_diff_period.
          l_s_range-low  = l_s_diff_period.
          l_s_range-
sign = 'I'.
          l_s_range-opt  = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.





* Variável para o relatórios de RH que vai permitir incluir na data o último dia do mês para recolher os dados do cadastro.

      
when 'ZV_AUXDATA'.
        
clear: l_s_range, aux_data.
        
loop at i_t_var_range into loc_var_range where vnam = 'ZP_CALMO'.
          
concatenate loc_var_range-high '01' into aux_data.
          
call function 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
            
EXPORTING
              day_in            = aux_data
            
IMPORTING
              last_day_of_month = aux_data
            
EXCEPTIONS
              day_in_not_valid  = 
1
              
others            = 2.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'EQ'.
          l_s_range-low = aux_data.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

* Variables que obteñen o día, o mes e o año.(formato fiscal 001.2011)
      
when 'ZP_DAY'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'CAL_DAY'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low+
6(2) .
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.
      
when 'ZP_PERIO'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'CAL_DAY'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low+
4(2).    "low value e.g.200001
          
concatenate '0' l_s_range-low into l_s_range-low.
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.
      
when 'ZP_YEAR'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'CAL_DAY'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low(
4).    "low value e.g.200001
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.





Variable3: Variables que obteñen o día, o mes e o año.(formato CAL 01.2011)
      
when 'ZV_CALDAY'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low+
6(2).    "low value e.g.200001
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_CALMO'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low+
4(2).    "low value e.g.200001
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.
      
when 'ZV_CALYE'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY'.
          
clear l_s_range.
          l_s_range-low      = loc_var_range-low(
4).    "low value e.g.200001
          l_s_range-
sign     = 'I'.
          l_s_range-opt      = 
'EQ'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.* fin VARIABLE
*basado en la misma variable de dia, variables del dia 01.01.YYYY hasta DD.MM.YYYY para los anhos n, n-1 y n-2.
      
when 'ZV_DAY1_N2'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).
          dd = loc_var_range-low+
6(2).
          
if mm eq '02' and dd eq '29'.
            dd = 
'28'.
          
endif.
          
concatenate aux_year_n2 '01' '01'  into l_s_range-low.
          
concatenate aux_year_n2  mm   dd   into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_DAY1_N1'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).
          dd = loc_var_range-low+
6(2).
          
if mm eq '02' and dd eq '29'.
            dd = 
'28'.
          
endif.

          
concatenate aux_year_n1 '01' '01'  into l_s_range-low.
          
concatenate aux_year_n1  mm   dd  into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_DAY1_N0'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).
          dd = loc_var_range-low+
6(2).

          
concatenate aux_year_n0 '01' '01'  into l_s_range-low.
          
concatenate aux_year_n0  mm   dd   into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.* fin VARIABLE
*basado en la misma variable de dia, variables del dia 01.01.YYYY hasta DD.MM.YYYY para los anhos n, n-1 y n-2.
      
when 'ZV_MM1_N2'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_CALMONTH'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0.
          aux_year_n2 = loc_var_range-low(
4) - 2.
          aux_year_n1 = loc_var_range-low(
4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).

          
concatenate aux_year_n2 '01'  into l_s_range-low.
          
concatenate aux_year_n2  mm   into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_MM1_N1'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_CALMONTH'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).


          
concatenate aux_year_n1 '01' into l_s_range-low.
          
concatenate aux_year_n1  mm  into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_MM1_N0'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_CALMONTH'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm.
          
aux_year_n2 = loc_var_range-low(4) - 2.
          
aux_year_n1 = loc_var_range-low(4) - 1.
          aux_year_n0 = loc_var_range-low(
4) - 0.
          mm = loc_var_range-low+
4(2).

          
concatenate aux_year_n0 '01' into l_s_range-low.
          
concatenate aux_year_n0  mm  into l_s_range-high.
          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.*basado en variable de dia, variables del dia DD.MM.YYYY hasta DD.MM.YYYY para os anhos n-1 y n-2.
      
when 'ZV_DAY2_N2'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY2'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.

          aux_year_n2 = loc_var_range-low(
4) - 2.
          mm = loc_var_range-low+
4(2).
          dd = loc_var_range-low+
6(2).
          
concatenate aux_year_n2  mm   dd   into l_s_range-low.

          aux_year_n2 = loc_var_range-high(
4) - 2.
          mm = loc_var_range-high+
4(2).
          dd = loc_var_range-high+
6(2).
          
concatenate aux_year_n2  mm   dd   into l_s_range-high.

          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.

      
when 'ZV_DAY2_N1'.
        
loop at i_t_var_range into loc_var_range
                  
where vnam = 'ZV_DAY2'.
          
clear l_s_range.
          
clear: aux_year_n2, aux_year_n1, aux_year_n0, mm, dd.
          
aux_year_n2 = loc_var_range-low(4) - 1.
          
mm = loc_var_range-low+4(2).
          dd = loc_var_range-low+
6(2).
          
concatenate aux_year_n2  mm   dd   into l_s_range-low.

          aux_year_n2 = loc_var_range-high(
4) - 1.
          mm = loc_var_range-high+
4(2).
          dd = loc_var_range-high+
6(2).
          
concatenate aux_year_n2  mm   dd   into l_s_range-high.

          l_s_range-
sign = 'I'.
          l_s_range-opt = 
'BT'.
          
append l_s_range to e_t_range.
          
exit.
        
endloop.




======================================================================
** A partir del mes/año calcula al acumulado anual hasta ese mes
** incluido
*====================================================================

      WHEN 'ZV_FYPCP'.
        CLEAR L_S_RANGE.
       LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = '0RMA_FIP'.
          PERFORM f_fill_ZV_FYPCP USING loc_var_range
                                  CHANGING l_s_range.
          APPEND L_S_RANGE TO E_T_RANGE.
          EXIT.

        ENDLOOP.

*======================================================================
** A partir del mes introducido calcula al acumulado anual hasta ese mes
** incluido
*====================================================================

      WHEN 'ZV_PER3A'.
        CLEAR L_S_RANGE.
        LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZV_PER3'.

          l_s_range-low  = '001'.
          l_s_range-high = LOC_VAR_RANGE-LOW.

          L_S_RANGE-SIGN    = 'I'.
          L_S_RANGE-OPT     = 'BT'.
          APPEND L_S_RANGE TO E_T_RANGE.
          EXIT.
        ENDLOOP.




0 - Exit Variables BW // FM


*I_STEP = 1 Call takes place directly before variable entry
*I_STEP = 2 Call takes place directly after variable entry. This step is only started up when the same
*variable is not input ready and could not be filled at I_STEP=1.
*I_STEP = 3 In this call, you can check the values of the variables. Triggering an exception (RAISE)
*causes the variable screen to appear once more. Afterwards, I_STEP=2 is also called again.
*I_STEP = 0 The enhancement is not called from the variable screen. The call can come from 
*the authorization check or from the Monitor.

DATA: l_d_fmname(30) TYPE c.
CASE i_step.

  WHEN 0.
    CONCATENATE 'Z_VAR0_' i_vnam INTO l_d_fmname.
  WHEN 1.
    CONCATENATE 'Z_VAR1_' i_vnam INTO l_d_fmname.
  WHEN 2.
    CONCATENATE 'Z_VAR2_' i_vnam INTO l_d_fmname.
  WHEN 3.
    l_d_fmname = 'Z_VAR3'.

ENDCASE.

TRY.
    CALL FUNCTION l_d_fmname
      EXPORTING
        i_vnam        = i_vnam
        i_vartyp      = i_vartyp
        i_iobjnm      = i_iobjnm
        i_s_cob_pro   = i_s_cob_pro
        i_s_rkb1d     = i_s_rkb1d
        i_periv       = i_periv
        i_t_var_range = i_t_var_range
        i_step        = i_step
      IMPORTING
        e_t_range     = e_t_range
        e_meeht       = e_meeht
        e_mefac       = e_mefac
        e_waers       = e_waers
        e_whfac       = e_whfac
      CHANGING
        c_s_customer  = c_s_customer
      EXCEPTIONS
        OTHERS        = 1.

  CATCH cx_sy_dyn_call_illegal_func.

ENDTRY.

IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgid
          NUMBER sy-msgno
          WITH
          sy-msgv1 sy-msgv2
          sy-msgv3 sy-msgv4
        RAISING ERROR_IN_VARIABLE.
ENDIF.


jueves, 18 de abril de 2013

0RT_PA_TRAN_CONTROL is not on rsa5

Hi,
We are working with 0RT_DS65 ODS from Retail area.
This DSO uses a BI Datasource is called 0RT_PA_TRAN_CONTROL.
We can not found the extractor no RSA5 to active.
If we go to RSA6 we can see the datasource but when we do double click
over system give us an error with "Extract
structure /POSDW/BW_RETAIL_CONTROL is not active".
Is this the normal delivery for this extractor?
We need to install and add-on to use it?
Our system is:
SAP_BASIS 731 0006
SAP_ABA 731 0006
PI_BASIS 731 0006
ST-PI 2008_1_700 0007
BI_CONT 747 0003
SAP_BW 731 0006
Regards



-----> Answer
since BI_CONT 7.X7 POSDM has been extracted to own software Add-on
software component RTLPOSDM 100_7XX. Therefore the /POSDW/* code is not
included anymore, if you don't include the Addon component RTLPOSDM.

Please refer to the following information in note 1678780 (Chapter 5)
and following notes regarding
Release Restrictions for SAP NW 7.0 BI CONT Addon 7.X7:
BI_CONT 707: 1722869
BI_CONT 737: 1722870
BI_CONT 747: 1722871
Upgrade to BI Cont Addon 7.X7 is only possible as soon as dedicated
POS DM software component version is available and can be included intothe upgrade process.

POSDM 1.0 (RTLPOSDM 100_7XX) as add-on to BI CONT 7.X7 is in Rampup
currently.
Therefore Ramp Up nomination and acceptance is required to receive
clearance for software download.
It is planned to be generally available in second quarter 2013.

Please navigate to the following path in service market place:

1. Goto http://service.sap.com/swdc
2. Goto "Ramp-Up Releases and Beta Software" > Installation and
Upgrade

3. Find and click SAP POSDM 1.0
4. Choose the link "Product Availability, Maintenance Dates & Supported
Platforms"
5. A New Window would open-up showing the PAM for POSDM1.0.

2LIS_40_S278 ---> 2lis_03_bx

Este extractor tiene que ser substituido por el 2lis_03_bx.
Para el cubo 0RT_C01 la nueva trasformacion queda:

Rutina inicial:

*$*$ begin of global - insert your declaration only below this line  *-*

    DATA: l_tabix TYPE sy-tabix,
    wa_source_package TYPE _ty_s_sc_1.

*$*$ end of global - insert your declaration only before this line   *-*




*$*$ begin of routine - insert your code only below this line        *-*
*ABB 18.04.2013
* Antigo codigo
** only movements from to evaluated stocks are concerned
** if stock-category is not intitial -> Delete from data-packag
*  LOOP AT DATA_PACKAGE.
** purchase value is intitial -> Delete from data-packag
*    IF Not DATA_PACKAGE-STOCKCAT IS INITIAL.
*      DELETE DATA_PACKAGE.
*    ENDIF.
*  ENDLOOP.
* Novo codigo
** only movements from to evaluated stocks are concerned
** if stock-category is not intitial -> Delete from data-packag
    LOOP AT source_package
    INTO wa_source_package.
      l_tabix = sy-tabix.
      IF not wa_source_package-STOCKCAT IS INITIAL.
        DELETE source_package INDEX l_tabix.
      ENDIF.
    ENDLOOP.
*ABB 18.04.2013

*--  fill table "MONITOR" with values of structure "MONITOR_REC"






Mapeamento de caracteristicas:
Tiempo:  PSTNG_DATE es la fecha de referencia
0RT_PROMO:   CLEAR RESULT.


0MATERIAL  Material 0MATERIAL  Material
0MAT_PLANT  Material do centro 0MATERIAL  Material
0PLANT  Plant 0PLANT  Plant
0RT_MAT_PRM  Nº material agrupado à ação de promoção Retail 0MATERIAL  Material
0RT_PROMO  Promoção Promoção (inicial)



Mapeamento:

0CPTSTREBU  Entrada estoque avaliado total / UM base 0CPQUABU  BW: quantidade
0CPTSTREPV  Entrada em estoque avaliado total / valor de com 0CPPVLC  BW: valor de co
0RTTSTREST  Entrada estoque avaliado total / valor de venda 0CPSTLC  BW: valor de ve
0RTTSTRESV  Entrada estoque avaliado total / valor de venda 0CPSVLC  BW: valor de ve

Logistic extraction

Notas a tener en cuenta:

Note 353042 - Howto: Activate transaction key (PROCESSKEY)
Note 352344 -> Process key + reversals in Inventory Management(Consulting note). 

Para Retail: 
Note 533577 - Incorr cost val diff during revaluatn not affecting margins
Note 1688943 - RMA: 2LIS_40_REVAL returns incorrect transaction key
Note 600460 - Reval at retail updte:2LIS_40_REVAL, 2LIS_03_BF, 2LIS_03_UM

Problemas típicos:
Valores a cero en 2lis_03_BF
Activar la determinación del process KEY: MCB_
Activar el flag de BW en la BF11



 

viernes, 15 de marzo de 2013

OLAP Variable for infopackage

Para seleccionar de forma automática todos los centros de coste para una empresa sin tener que ponerlos uno a uno en el infopackage.
Ej. 0CO_OM_CCA_XX


Crear una query
Poner el centro de coste en las filas, mostrar sola la key y quitar los subtotales
poner un filtro para la sociedad que se pretende filtrar.
Crear una variable para el centro de coste, tipo replacement path//multiple single values//mandatory
Utilizar esta variable en el infopackage (tipo 7)



martes, 12 de marzo de 2013

Process chains Tables

Table Description


RSEVENTHEAD Header for the event chain

RSPC_BUFFER Shared Buffer for Processes

RSPC_MONITOR Monitor individual process chains

RSPCCHAIN Process chain

RSPCCHAINATTR Attributes for a Process Chain

RSPCCHAINEVENTS Multiple Events with Process Chains

RSPCCHAINT Texts for Chain -> Text - Chain-ID

RSPCLOGS Application Logs for the Process Chains

RSPCLOGCHAIN Cross-Table Log ID / Chain ID

RSPCPROCESSLOG Logs for the Chain Runs

RSPCRUNVARIABLES Variables for Process Chains for Runtime

RSPCVARIANT* Generic Variant-Storage

RSEVENTCHAIN Event Chain Processing Event Table

RSEVENTHEADT Header for the Event Chain

RSPCCOMMANDLOG System Command Execution Logs