Sample configuration for aggregation of standard deviation
Take the sum of the squares; then calculate the square root of the total:
Calculate the squares:
Square the values:HKF1@PL = PROPAGATEDDEMANDSTDEV@PL ** 2
Sum the squares:HKF1@REQUEST = SUM(HKF1@PL)
Calculate the square root of the total:PROPAGATEDDEMANDSTDEV@REQUEST= HKF1@REQUEST ** 0.5
Example
ISNULL
The ISNULL condition works only when an underlying time series record exists for the planning object.
Imagine that Sales Forecast Quantity and Marketing Forecast Quantity are the stored key figures for planning level PERPROD.
Planning Object
Period
Key Figure: Sales Forecast Qty
Key Figure: Marketing Forecast Qty
P1
Jan 2018
100
P1
Mar 2018
100
With the above data, IF(ISNULL(SALESFCSTQTY),1,0) exhibits the following behavior:
Period
ISNULL Value
Notes
Jan 2018
0
January 2018 has the value “100”.
Feb 2018
Not evaluated
The planning object for the time period February 2018 does not exist.
Mar 2018
1
Though there is no value for Sales Forecast Quantity, the Marketing Forecast Quantity key figure (for the same planning level) has a valid value. Therefore, a record exists in the time series for this planning object.
By default, change pointers are generated for all changes in the material master (no filter by plant).
Filter can be done by Badi BDCP_BEFORE_WRITE for the specific message type to register in change pointer table (BDCP2) only the relevant changes required.
It can be done also filtering in the distribution model but then the plant in this case should be in a mandatory segment to avoid those messages to be sent.
Introduction:
This document explains how to track the Material Master Data changes using change pointers in SAP R/3 environment.
Let us understand by taking following example –
The requirement is to track the Material Master changes in SAP R/3 environment and to send the information to some Legacy system (in form of AL11 Text file), if following fields changes –
If any new Material is created.
If Material is assigned with Dangerous indicator profile
UN Number
Dangerous Good Class
Dangerous Good Packing Group
Master data changes can be distributed with the SMD (Shared Master Data) tool. Changes to the Master Data are written in change documents interface, which in turn logs entries into change pointers.
The following step shows the change pointers settings and how to track the change logs for modified data.
Step 1 – Create Message Type (WE81)
Step 2: Assign Table Fields to Message type (BD52)
Assign table fields to message type which needs to be considered for Change pointers generation.
Step 3: Activate Change Pointers generally (BD61)
Step 4: Activate change pointers corresponding to fields in message type(BD50)
Also check if the data elements of all the required fields has ‘change Document’ field checked (Below screen shot for Material Number)
Step 5: Create a new Part Number and change following fields to test the generation of change logs in table CDHDR, CDPOS, BDCP and BDCPS.
Dangerous indicator profile (Transaction MM02)
UN Number (Transaction DGP3)
Dangerous Good Class (Transaction DGP3)
Dangerous Good Packing Group (Transaction DGP3)
Transaction – MM02
Transaction – DGP3
Step 6: Create a report which will perform following functions –
Read non processed change logs using Function Module CHANGE_POINTERS_READ by passing the Message type name
Create a text file with all the required material information
Transfer that file on the application server (AL11)
And from application server the file is transferred to legacy system using some UNIX Script (this is out of scope of this BOK)
In addition to above FM (change_pointers_Read) you can also see the logs in following Table –
CDHDR (Change Document Header Table)
CDPOS (Change Document Items)
BDCP (Change Pointer table
BDCPS (Change Pointer Status table)
IDOC Generation to send modified records –
In addition to above report you can also create a Function module and create an IDOC’s to send the modified data to legacy system-
Step1 – Create a Function module (e.g. ZTESTFM)
In this you can populate the IDOC segments and use the FM – MASTER IDOC_DISTRIBUTE to create and IDOC
Step2 – Assign Function module to Message Type (Transaction BD60)
Step 7: For the master data that are processed set the change pointer status to ‘Processed’ by setting its value to ‘X’ by calling function module CHANGE_POINTER_STATUS_WRITE.
Delete change pointers
Transaction is BD22 or the standard program RBDCPCLR deletes the obsolete/processed change pointers.