Quirk in slow-moving articles query
hi folks,
this question is for any of you who have written "slow moving articles" queries against the multiprovider pseudo outer join of cubes and characteristics using "constant selection" and "display non posting values." i have used it quite a bit without fail; but i have encounterd a issue with the logic when i added a second characteristic infoprovider into the mix. can anyone explain whats going on and suggest a solution?
<b>Problem statement:</b>
find products at a brand level by distributor which have no sales (for a given time frame and/or territory). allow prompting for date (or date range); territory; and/or brand.
<b>95% soultion:</b>
1) the infocube has brand, distributor, territory, and date characteristics as dimensional components (as well as others, not required for this report)
2) the characteristic distributor is set as an infoprovider (and has territory as an attribute)
3) the characteristic brand is set as an infoprovider
4) the multiprovider combines the cube, distributor, and brand.
5) the query is written in a fashion similar to the example given at '03 tech ed: except there are 2 "number of records" key figures instead of 1; one restricted to the distributor infoprovider (const selection & display values not posted) and the other is restricted on the brand infoprovider (const selection & display values not posted)
<b>The Issue:</b>
it works fine if the variable for brand is left blank and after the report displays utilize the interactive report filter in the navigation block on brand to specify the targeted no-sale item. if we put the target brand in the the initial variable prompt it will show the no-sale items along with the brands that did sell as no-sales. (note: that the only difference between the 2 above scenarios is whether the target brand is requested initially in a variable or as a follow-on navigation step in the report) i know what it is doing to get erroneous results i just don't understand why, both scenarios should result in the same report. my only guess is the differences in the query caches. the examples below show the 2 scenario results.
<u>Example multiprovider data</u>:
Distr....Brand......QtySold
1001....A............10
...........B.............2
...........undefined
1002....undefined
1003....A.............0
...........undefined
1004....undefined
the above table shows the join from the multiprovider with the 2 constant selections. this works! when there are sales the brand and amount will show; also, there is an "undefined" brand for every distributor (from the constant selection) and every distributor appears for the chosen territory (from the distributor constant selct). the correct result shoud be
1002, 1003, and 1004 as they all have zero values for
brand "A"
<u>Scenario 1</u>: search for 0 sales of A, target brand "A" entered into <b>variable prompt</b>
Distr....Brand......QtySold
1001....undefined
1002....undefined
1003....undefined
1004....undefined
in this scenario, the condition gets rid of the "1001 A 10" but keeps the "1001 undefined 0" for an incorrect final result.
<u>Scenario 2</u>: search for 0 sales of A, target brand in follow on <b>navigation</b>
--->step1: initial display
Distr....Brand......QtySold
1001....A............10
...........B.............2
...........undefined
1002....undefined
1003....A.............0
...........undefined
1004....undefined
with the initial run or the query all brands from the cube's transaction display along with the added "undefined" brands from the brand constant selection.
--->step 2: filter on brand A in report.
Distr....Brand......QtySold
1002....undefined
1003....undefined
1004....undefined
when the report filter is run against the brand char in the navigation block the target brand, "A", and the "undefined" brand aggregate so the condidtion takes out the non-zeros correctly.
Any ideas?
yes, i have an aggregate which takes the 250 million transactions in the cube down to 28 million. thats why we average sub minute response. without the aggregate it takes from 8 to 15 minutes.
speed really isn't the issue at this point, its just the fact that executing the report with a filter value versus executing the report without the filter value then filtering that value in the report yield 2 different results.
its like me asking you to tell me all your friends names that start with the letter G. later, i ask you to tell me all your friends names; after you do that i say oh, just tell me the ones that start with G. should be the same list n'est pas? but they are not, the first list has both friends and enemies that start with the letter G and the 2nd (2-step) list is correct.
Similar Messages
-
Report for slow moving material.
Hi friends
I want to create report for slow & fast moving materials..
I have to add following fields in the report
Material, Unit of Measure, Current Stock, Value, Last consumption date, Last movement date...
Now I dont have all these fields toghether in any of the datasources..
What I need to do? Should I create new Datasource with all these fileds..
Has anyone done this kind of report before?
Please suggest..
Regards
SwatiHello,
For slow moving materials , use can use InfoSet to design the same.The infoset will have 0Material on the left hand side and the DSO which holds the transcation data.
or
u can install the standard content 'slow moving material' query and multiprovider 0ic_mc01.
You can get some help from there.
or
try searching in forums with the messgae "slow moving items".you will get useful info.
Regards,
Dhanya -
Slow moving items:repost
Hi,
In this link, in slow moving article on page 12,
<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/bb7eb390-0201-0010-498c-80532df171a5">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/bb7eb390-0201-0010-498c-80532df171a5</a>
is the 1rowcount Kf coming from the infoobject? how does it show the KF values when an IO doesn't have values?
someone can please read it and explain me in simple steps how it's done?
Thanks,Samthe 1ROWKF is a special KF, made available by OLAP (say). You can think of it as having a constant value '1' per row. Since it is a fixed value, it doesn't need to be stored anywhere.
Let us say you have 0Material as the infoobj and 0mattype as its attribute. And this is your master data:-
Material----
type
M01 -
HALB
M02 -
HALB
M03----
FERT
M04----
FERT
If in your report (which has this infoobject), you put the nav attribute MATTYPE in rows, and 1rowKF in columns, you will get
Mattype----
1ROWKF
HALB----
2
FERT -
2
As mentioned, since it is just a counter, it doesn't need to be stored. -
Hi All,
I am trying to generate a slow moving inventory query for materials that are not consumed for a certain period of time. I am using SAP B1 2007 A. Kindly share with me the ideas on how to generate the above query.
Thanks.
Best Regards,
xavierHi Xavier,
You may check these to start:
Slow moving item list
FAST, MEDIUM AND SLOW MOVING GOODS ANALYSIS
Thanks,
Gordon -
SSRS 2008 R2 is extremely slow. The query runs in less than a second in the dataset designer but if you try to view the report it takes over 10 minutes. I have read this is a bug in SSRS 2008 R2. We installed the most recent patches and
service packs. Nothing we've done so far has fixed it and I see that I'm not the only person with this problem. However I don't see any answers either.Hi Kim Sharp,
According to your description that when you view the report it is extremely slow in SSRS 2008 R2 but it is very fast when execute the query in dataset designer, right?
I have tested on my local environment and can‘t reproduce the issue. Obviously, it is the performance issue, rendering performance can be affected by a combination of factors that include hardware, number of concurrent users accessing reports, the amount
of data in a report, design of the report, and output format. If you have parameters in your report which contains many values in the list, the bad performance as you mentioned is an known issue on 2008 R2 and already have the hotfix:
http://support.microsoft.com/kb/2276203
Any issue after applying the update, I recommend you that submit a feedback at https://connect.microsoft.com/SQLServer/
If you don’t have, you can do some action to improve the performance when designing the report. Because how you create and update reports affects how fast the report renders.
Actually, the Report Server ExecutionLog2 view contains reports performance data. You could make use of below query to see where the report processing time is being spent:
After you determine whether the delay time is in data retrieval, report processing, or report rendering:
use ReportServer
SELECT TOP 10 ReportPath,parameters,
TimeDataRetrieval + TimeProcessing + TimeRendering as [total time],
TimeDataRetrieval, TimeProcessing, TimeRendering,
ByteCount, [RowCount],Source, AdditionalInfo
FROM ExecutionLog2
ORDER BY Timestart DESC
Use below methods to help troubleshoot issues according to the above query result :
Troubleshooting Reports: Report Performance
Besides this, you could also follow these articles for more information about this issue:
Report Server Catalog Best Practices
Performance, Snapshots, Caching (Reporting Services)
Similar thread for your reference:
SSRS slow
Any problem, please feel free to ask
Regards
Vicky Liu -
Is it possible to query a report on slow moving inventory items for a given time period?
Ankush,
Not sure what exactly you are looking for here is a query that gives onhand value of all the items that have not been moving for sometime. It is first cut, so there may be a need to revise.
/* Formatted on 2008/05/06 22:49 (Formatter Plus v4.8.8) */
SELECT moh.inventory_item_id, moh.val, mmt.transaction_date
FROM (SELECT a.organization_id, a.inventory_item_id, SUM (transaction_quantity * item_cost) val
FROM mtl_onhand_quantities_detail a, cst_item_costs b
WHERE a.organization_id = b.organization_id
AND a.inventory_item_id = b.inventory_item_id
AND a.organization_id = &org --change to your organization
AND b.cost_type_id = 1 --assuming standard cost, If it is average cost take it out
GROUP BY a.organization_id, a.inventory_item_id) moh
, (SELECT organization_id, inventory_item_id, MAX (transaction_date) transaction_date
FROM mtl_material_transactions c
WHERE organization_id = &org ---change to your organization
GROUP BY organization_id, inventory_item_id) mmt
WHERE moh.inventory_item_id = mmt.inventory_item_id
AND moh.organization_id = mmt.organization_id
AND TRUNC (mmt.transaction_date) <= TRUNC (SYSDATE - 110)
Thanks
Nagamohan -
Slow Moving Items in 0IC_MC01 Performance issue
Hi i am creating slow moving items report (Report which shows materials for which no transaction has been done for last 3 years) on MP 0IC_MC01 in BI7.0.
MP is based on cube 0IC_C03 and Infoobject 0MATERIAL .
In query i put rowcount in coloumn with Infoprovider 0material with constant selection but i dont get the option "Display values not posted" . and Issues value and Recved value .
in rows i put plant , material and material type
n put one condition values for issued and Recid = 0 .
and in filter we have calender year restriction .
But the proble is dere are around 25000 materials for each plant and its taking a lot of time to exceute for multiple plants for 1-2 years , can anyone suggest the best way for this report or how performance of this report can be improved .
Help will be appreciated .Its rather better to use infoset on 0IC_MC01 and Material than using MP. The performance issue is coming because of a join between cube and infoobject, which SAP dont suggest to use.
You ahve to use left outer join to get slow moving items.
http://help.sap.com/saphelp_nw04/Helpdata/EN/67/7e4b3eaf72561ee10000000a114084/content.htm
Thanks...
Shambhu -
Returning a ZERO on Slow-Moving Item without transaction
Hi all,
Via a multi-provider, we have implemented several slow-moving item in our reports, eg we return all the value of some dimensions whether we have transaction or not on these dimension values.
Now for dimension value for which we have no transaction it returns in Bex an empty result on the key figure instead of a zero, is there a way to force BW to put a zero on a slow-moving item without any transaction?
Thanks in advance for your assistance
DavidHallo
FI you go to the Query Designery --> Property Display than you can cusotmioze how to display the zero. You probably have the option Zero Values Display as Blank.
I hope this can help you
Mike -
Slow Moving Item Scenario - Technical content for Queries
Hello
Due to preparations for upgrade to BW 7.30 we would make an analysis of not or seldom used BEx reports (queries, workbooks, etc.)
All of unused objects should be deleted in advance of an upgrade.
I checked if there is a query which shows slow moving items for queries.
Is there any technical content (query) which reports this scenario for BEx objects?
Thanks for any advise.follow steps in this doc:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/11291595-0501-0010-c881-e02c27261b55 -
hey
there is a standard query for Slow moving items based on 0IC_MC01. I need to find out the last goods issue and last goods receipt date on this query.
Any one has any ideas ?
thanks
Laura.Hi Laura
There is a standard query for slow moving items based Multi Provider 0IC_MC01
and query is : Query 0IC_MC01_Q0001 is available as of 3.0B (role: SAP_BW_0ROLE_0003).
But if you get some msg: Redesign Slow Moving Inventory
then do this following
Please change the definition of the MultiProvider 0IC_MC01 and the underlying Query 0IC_MC01_Q0001. These changes are included with SAP BW
1. Administrator Workbench
-> Change definition of 0IC_MC01
-> Activate navigational attributes
0MATERIAL__0DIVISION
0MATERIAL__0MATL_CAT
0MATERIAL__0MATL_GROUP
0MATERIAL__0MATL_TYPE
-> Identification
mark ALL displayed characteristics/navigational attributes
-> Save, check and activate 0IC_MC01
2. BeX Analyzer
-> Change definition of 0IC_MC01_Q0001
-> remove characteristic 0CALMONTH (free characteristics)
-> add characterstics 0MATL_GROUP (rows) and restrict it to
variable 0S_MATG
-> remove calculated key figure 0IC_MC01_CK0003 (columns)
-> add new selection "All materials" accordingly to
example "All customers" (columns)
- use InfoProvider 0MATERIAL instead of 0CUSTOMER
- supress this structural element in the properties
-> add key figures 0ISSVS_VAL and 0RECVS_VAL (columns)
-> Save, check and activate 0IC_MC01_Q0001
The selection "All materials" provides all material numbers that are
stored in BW. So you can identify materials that have had no movements
within in the selected period. These materials show no values in key
figures 0ISSVS_VAL and 0RECVS_VAL.
For information purposes you can also add other key figures.
You can also add other characteristics in the drill down for grouping
purposes, like e.g. 0DIVISION.
If you want to have similar reports with 0PLANT you can also create
a similar MultiProvider/Query with 0MAT_PLANT instead of 0MATERIAL.
Hope you got some idea and help
Atul -
Hi guys,
Regards.We got a requirement:
1).The user inputs the "No. of Days since consumed" and the Customer exit code would calculate the "Result Variable from Current Date" and populate "SLOWMOVDATE".
2).We want the Stockvalue against that "SLOWMOVDATE".
But the system calculates the "SLOWMOVDATE" but am unable to get the stock value against that Particular date..Guys any idea on how i can go about it??(Its a Slow Moving Item report in BW)
Manythanks
ArunI suppose the stock value is restricted KF i.e. it is restricted by "SLOWMOVDATE' or you have set a global filter in the query on "SLOWMOVDATE".
-
FAST, MEDIUM AND SLOW MOVING GOODS ANALYSIS
hai experts
I would like to knowis there any way to find out fast , slow moving or medium goods . in sap b one 8.8Hi Shihabuddin.......
Try this query in Query Generator.......
SELECT T0.[ItemCode], T0.[ItemName], Sum(T1.[Quantity]) FROM OITM T0 LEFT
OUTER JOIN INV1 T1 ON T0.ItemCode = T1.ItemCode
Group By T0.[ItemCode], T0.[ItemName], T1.Quantity
Order By Sum(T1.Quantity)
This will give you the Out of all the items which one is sold most in ascending order......
Regards,
Rahul -
Queries to extract slow moving stock
Hi All,
I have the following queries to extract the item list. May I know how to modify this queries to filter slow moving item where Purchase date are over 90 days older than today date. Example, today is 01/05/15 the report will list only item where purchase date are older than 01/02/15.
SELECT T0.[ItemCode], T1.[ItmsGrpNam], T0.[ItemName], T0.[LastPurDat], T0.[OnHand], T0.[BuyUnitMsr] as 'uom', T0.[LastPurPrc], T0.[OnHand]*T0.[LastPurPrc] as 'Est Stock Value'
FROM [dbo].[OITM] T0 INNER JOIN [dbo].[OITB] T1 ON T0.[ItmsGrpCod] = T1.[ItmsGrpCod]
WHERE T0.[OnHand] >0 AND T1.ItmsGrpNam <> 'SP001-Spare Parts'
Thank you,
AnnieHi,
Try this query:
SELECT T0.[ItemCode], T1.[ItmsGrpNam], T0.[ItemName], T0.[LastPurDat], T0.[OnHand], T0.[BuyUnitMsr] as 'uom', T0.[LastPurPrc], T0.[OnHand]*T0.[LastPurPrc] as 'Est Stock Value'
FROM [dbo].[OITM] T0 INNER JOIN [dbo].[OITB] T1 ON T0.[ItmsGrpCod] = T1.[ItmsGrpCod]
WHERE T0.[OnHand] >0 AND T1.ItmsGrpNam <> 'SP001-Spare Parts' and datediff(day, T0.[LastPurDat],getdate()) > 90
Thanks. -
Slow Moving Customers and BW authorizations.
Hello All,
Am writing a writing a query to track slow moving customers. We are a multi-national company and have enabled authorizations on the following 3 characteristics: Country, Region (East,West & Central) and Districts ( Buckeye, Los Angeles, Ozark etc)
I am using a MP which consists of 0CUSTOMER for the Customer Master and a Custom cube, 'Sales'. The cube has all the 3 characteristics. 0CUSTOMER only has 0SALESDIST and ZSALES_AREA.
When the query is executed by a user, because of the setting in 0ROWCOUNT, the OLAP engine ignores all filter settings, and searches the entire cube for data. When it encounters a record for which the user does not have the appropriate authorizations, it displays an authorization error message and returns back with no data. It does not show the data for which the user is authorized.
Is there a way to fix this ?
Is there way to execute a query that has all the authorizations from a another query that only has a subset of the authorizations ?
Thanks in advance.
Dorothy.Hi Dorothy,
<i><b>I see here its more related to Multiprovider issue rather than authorization issue.</b></i>
In case of multiprovider , one should make sure that restriction of variables are only defined on fields common ie. 0Customer in this case.
In case you want to apply filters which are based on non-common info object then it should be restricted in the key figure part and not general query part.
For more input run a query through RSRT -> Query -> Execute + Debug -> Multiprovider Explain . This will show detailed report of which data target is accessed and which data target is excluded and for what reason.
I hope 0SALESDIST and ZSALES_AREA info objects are not restricted in the query filter/rows/free charc. part, it should be restricted on "Restricted key figure Part"
Hope that helps.
Regards
Mr Kapadia -
Hi,
i am new to MC46. I even dont know if it belongs to MM or other modules. Can anyone answer my questions as below:
1) how is "slow-moving" defined in this code? what is its exact meaning? just means no transfer posting, no GR/GI?
2) what is the definition of consumption? does it mean "sell the goods to the custmer"? If it said 10days since consumption, does this mean there is no movement type 601 took place in the past 10days?
3) is there any relationship between this code and mb51?
points will be rewarded for the help. THanks!!Hi,
Basically MC46 transaction is for finding out the Slow Moving Items. I.e. materials which haven't consumed from inventory in the specified period.
When we say "consumed", the mvt types that the system would consider are 201, 261, 301, 351, 543, 601, 631 and the related mvt types. It will not consider the postings with special stock E (sale order stock).
If there is no consumption posting for a material within the specified period (ex: 40 days), then the system will display the material master creation date for that material. Otherwise it will show the last posting date of any of the above movement types for that particular material.
From the last movement date , we can do a statistical analysis on the material being in inventory for a long period.
Hope this would clarify your query.
Regards,
garun
Message was edited by:
ARUNACHALAM G
Maybe you are looking for
-
XML publisher - page number not displaying
Hi, I am creating a report using xml publisher rtf template ,The result is being displayed in a table if the no of rows are more the table may extend to several pages, I want to display page numbers like 1 of 5 on First page,2 of 5 on 2nd page and so
-
Adobe connect 9: make recording optional?
When meeting room owners start a meeting, it immediately starts recording. In Compliance and Control, the option for mandatory recording is on. How do we make it optional? The only other option in Compliance and Control seems to be to turn recordi
-
Unauthorized creation of paypal credit account
My mother received a statement from Paypal credit starting with $66.00 then it went up to $103.00 the next month. And we keep receiving bills. The problem is she never created a paypal or paypal credit. Somebody must of gotten hold of some credit car
-
Constraint not working in OBIEE 10G Dashboard prompt
Hi All, We are facing a issue in constraint in dashboard prompt. We have two database tables Employee and Calender. Both are joined through time_id key. We have made a report from coloumns of both. We have made dashboard prompt consisting of 3 coloum
-
Shockwave to Javascript - character encoding issue !
Hi ! I have resigned from sending messages from JavaScript to Shockwave movie as I have found all existing methods unreliable (at worst scenario Flash blocker is installed and using localConnection trick with Flash gateway fails). But in the conseque