Report de stock agrégé par type de mouvements.
J3RFLVMOBVEDH
A customiser dans SPRO – Gestion des articles …
Report de stock agrégé par type de mouvements.
J3RFLVMOBVEDH
A customiser dans SPRO – Gestion des articles …
Use report RPCO_BS_INT_TEST
Dest RFC = PCO_LA_RINCONADA
Untick « Test mode »
tags are in « Tag Providers » – « Default ».
BD60 : Message type =>FM to generate it
Syntax | Details | Example |
---|---|---|
IF(intarg , arg2, arg3) | Return arg2 if intarg is considered true (not equal to zero), else return arg3. | CAPACITYOVERLOADS@PERLOCRES = IF(“CAPADEMANDUTILPCT@PERLOCRES”> 1,1,0) |
ISNULL(arg1) | Return 1 (= true), if arg1 is set to null. | MARKETINGFORECASTQTY@PERPRODCUST = IF(ISNULL(MARKETINGFORECASTQTY@PERPRODCUST), SALESFORECASTQTY@PERPRODCUST, MARKETINGFORECASTQTY@PERPRODCUST) |
CASE(arg1, default)CASE(arg1, cmp1, value1, cmp2, value2, …, default) | Return value1 if arg1 == cmp1, value2 if arg1 == cmp2, and so on, default if there is no match. | CASE(SELECTEDOPTION@PERPROD, 1, KF1@PERPROD, 2, KF2@PERRPROD,KF@PERPROD) |
ABS(arg) | Returns arg, if arg is positive or zero, else –arg. | IF(ABS(SUPPLYREV@PERPRODFML – CONSENSUSDEMANDREV@PERPRODFML)/CONSENSUSDEMANDREV@PERPRODFML > 0.2,1,0) |
ROUND(double, int) | ROUND(123.456, 0) = 123ROUND(123.456, 1) = 123.5ROUND(-123.456, 1) = -123.5ROUND(123.456, -1) = 120 | KF1@PERPRODLOCSRC = ROUND(KF@ PERPRODLOCSRC, 0) |
ROUNDDOWN(double, int) | ROUNDDOWN(123.456, -1) = 120ROUNDDOWN(-123.456, -1) = -130 | KF1@PERPRODLOCSRC = ROUNDDOWN(KF@ PERPRODLOCSRC, 0) |
FLOOR(double) | FLOOR(35.1) = 35 | KF1@PERPRODLOC = FLOOR(KF@ PERPRODLOC) |
CEIL(double) | CEIL(35.1) = 36 | KF1@PERPRODLOC = CEIL(KF@ PERPRODLOC) |
LTRIM(string)LTRIM(string,string) | Remove a whitespace prefix from a string. The whitespace characters may be specified in an optional argument. | |
RTRIM(string)RTRIM(string,string) | Remove trailing whitespace from a string. The whitespace characters may be specified in an optional argument. | |
TRIM(string)TRIM(string,string) | Remove whitespace from the beginning and end of a string. | |
UPPER(arg1) | Returns arg1 in upper case | KF1@PERPRODCUST = IF(UPPER( »ATTR1 ») = »APPROVED », « KF2@PERPRODCUST », NULL) |
MIN(arg1,arg2,…) | In the case of several input key figures, there is no aggregation; it returns the lowest value of the input key figures. | MINCAPACITY@MTHPRODLOC = MIN(« CAPACITYMORNING@MTHPRODLOC », « CAPACITYAFTERNOON@MTHPRODLOC », « CAPACITYNIGHT@MTHPRODLOC ») |
MAX(arg1,arg2,…) | In the case of several input key figures, there is no aggregation; it returns the highest value of the input key figures. | MAXCAPACITY@MTHPRODLOC = MAX(« CAPACITYMORNING@MTHPRODLOC », « CAPACITYAFTERNOON@MTHPRODLOC », « CAPACITYNIGHT@MTHPRODLOC ») |
Example
Sample configuration for aggregation of standard deviation
Take the sum of the squares; then calculate the square root of the total:
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. |
Key Figure | Calculation Expression |
---|---|
Actuals Price | ACTUALSPRICE@REQUEST = IF(“ACTUALSQTY@REQUEST”=0,0, “ACTUALSREV@REQUEST”/“ACTUALSQTY@REQUEST”) |
Capacity Overloads | CAPACITYOVERLOADS@PERLOCRES = IF(“CAPADEMANDUTILPCT@PERLOCRES”> 1,1,0) |
Capacity Usage | CAPAUSAGE@PERPRODLOCRES = “CAPADEMAND@PERPRODLOCRES”*“(IF(CAPASUPPLYPERDEMAND@PERLOCRES”>1,1, “CAPASUPPLYPERDEMAND@PERLOCRES”)) |
Marketing Forecast Profit | MARKETINGFORECASTPROFIT@PERPRODCUST = “MARKETINGFORECASTREV@PERPRODCUST”- “HMARKETINGFORECASTCOST@PERPRODCUST” |
Marketing Forecast Quantity | MARKETINGFORECASTQTY@PERPRODCUST = IF(ISNULL(« MARKETINGFORECASTQTY@PERPRODCUST »), « SALESFORECASTQTY@PERPRODCUST », « MARKETINGFORECASTQTY@PERPRODCUST ») |
Constrained Versus Consensus Demand Revenue | CONSTRAINEDVSCONSENSUSREV@PERPRODFML = IF(ISNULL(« CONSENSUSDEMANDREV@PERPRODFML »)OR « CONSENSUSDEMANDREV@PERPRODFML »=0,0, IF(ABS(« SUPPLYREV@PERPRODFML » – « CONSENSUSDEMANDREV@PERPRODFML »)/ »CONSENSUSDEMANDREV@PERPRODFML » > 0,2,1,0)) |
Supply Quantity | SUPPLYQTY@PERPRODLOC = IF(« HPROJECTEDINVENTORYQTY@PERPRODLOC »>=0, « DEPENDENTDEMANDQTY@PERPRODLOC », « DEPENDENTDEMANDQTY@PERPRODLOC »+ « HPROJECTEDINVENTORYQTY@PERPRODLOC ») |
Bill Cost per Area Demand Revenue | BILL_COST_PER_AREA@BSCIRTRSCFRCTOUFRUTO2L3AVG_A = IF(isnull(« ASSETAREA5@BSCIRTRSCFRCTOUFRUTO2L3AVG_A ») or « ASSETAREA5@BSCIRTRSCFRCTOUFRUTO2L3AVG_A »=0,0, »BILL_COST5@BSCIRTRSCFRCTOUFRUTO2L3AVG_A »/ »ASSETAREA5@BSCIRT |
Transaction BS22 allow to update the TJ02T table, based on your connection language.
ZXCO1U06 –
BD10 to generate Material Idocs (MATMAS)
BD30 to generate BOM idocs (BOMMAT)
BD21 to process changes pointers. Here is how to set them :
https://blogs.sap.com/2014/03/09/change-pointers-in-r3/
Important :
Introduction:
This document explains how to track the Material Master Data changes using change pointers in SAP R/3 environment.
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 –
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.
Step 6: Create a report which will perform following functions –
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 –
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.
OB52 – Open accounting Period (Usually on a Month to month basis, but EPF is open for 1year Nov to Nov)
OKP1 – Open Controlling Period (Usually opened on a yearly basis
Lot size (& rounding) informations : /SAPAPO/MATLOTSZ
Tables with ‘normal’ product & location ID : /SAPAPO/V_MATLOC
Once in the selection screen, enter « del_execu » in the command bar, and re-run.
Where used : WUF
Suppression ordre converti impossible (Order category BF not getting deleted in APO | SAP Community)
Suppression commandes ventes : /SAPAPO/SDORDER_DEL
Suppression GUID :
Suppression articles
Suppression Sites
Transportation lanes
You can mass delete transportation lanes using the following reports:
1. /SAPAPO/TR_TRPROD_MASSMAINT –> specific for products
2. /SAPAPO/TR_TRM_MASSMAINT –> vehicles on transportation lanes
3. /SAPAPO/TR_TRMCARR_MASSMAINT –> TSPs for means of transport
But before you can use these reports, you first need to go to transaction WUF and choose object type LOCATION. Choose location as an attribute, then execute. In the Transportation Lane dependencies, you need to copy and paste all those in the reports above. Choose delete in the report then execute. After the reports confirm Transportation Lanes deleted, go to WUF. Transportation Lane button dependency should not be there.
À partir de l’adresse <https://answers.sap.com/questions/5167282/mass-deletion-of-transportation-lanes-in-apo.html>