CTM Late Demand Fulfillment

Hi All,
I have the following problem in the CTM application. I have one location with a customer order and a firmed planned order. The firmed planned order has a goods recipe date one month later than the goods issue date of the sales order. When I run the CTM another planned order is created at the goods issue date of the sales order. I expected that the firmed planned order has been taken by CTM to fulfill the demand. 
If have therefore allowed the late demand fulfillment for 100 days and set the strategy to the domino strategy.
Has anybody an idea what parameter I have to set.
Best Regards
Dieter

Hi Dieter,
Please check if the plan order is tied to your SO (t.code /SAPAPO/CTMVIEWER or in the /SAPAPO/RRP3). Also check in CTM profile (tab Supplies) what is your settings in the supply control section (Build Up Safety Stock and Stock is available). They should be active. 
In the Planning Strategy tab what is the scheduling direction and pegging type?
Also check the Planning Strategy (planning mode & delete mode).
Thanks, Marius  

Similar Messages

  • Late Demand Fulfillment with SNP Heuristics

    Hello all,
    It is well known that SNP Heuristics does a bucket level planning and demands in each bucket are treated independent of the future bucket demands while creating the receipt elements. The receipts are created within the bucket unless there are sufficient receipts available in the past buckets that can be used.
    Now, my question is, if we can force Heuristics to have the receipts in future buckets consumed with current bucket demand and not have to create additional receipts within the current bucket during planning run.
    In a nut shell, can we influence heuristics not to plan receipts if there are fixed receipts available in future buckets?
    Please note that settings like fixed pegging, maximum lateness of receipt, and late demand fulfillment do not work for heuristics. I have tested extensively using all of these settings.
    Is there a way we can influence it to look into the future and if there are receipts available in any future bucket, say 30 days or 4 buckets ahead, in a weekly planning situation, it should not plan receipts in the current bucket and consume the receipts of future.
    If any one has done such a thing earlier and can provide pointers, that will be grateful.
    One option that came through discussions is changing standard macros to influence the way receipts are seen by heuristics during bucketed planning. Has someone explored this option? Please revert.
    Thanks and warm regards,
    Chandra

    Hi Dieter,
    Please check if the plan order is tied to your SO (t.code /SAPAPO/CTMVIEWER or in the /SAPAPO/RRP3). Also check in CTM profile (tab Supplies) what is your settings in the supply control section (Build Up Safety Stock and Stock is available). They should be active. 
    In the Planning Strategy tab what is the scheduling direction and pegging type?
    Also check the Planning Strategy (planning mode & delete mode).
    Thanks, Marius  

  • CTM Forecast Demand (FC) and Stock (CC) supply

    Hi Gurus,
    We are testing a simple CTM scenario with FC as our Demand and CC as our stock.
    We have 2 plants and 1 product.
    Material Availability Date is our Demand Prioritization.  Both of our demands have the same Date - a month from the current date.
    We have Procurement Prioritization set up for both PPMs and Tlanes.
    My problem is this:
    At both the locations the Supply (CC) is less than the demand (FC).  When we run CTM, the first demand signal is taking the stock from the second location - even though there is demand at that location that needs the stock.  The first demand signal is not fulfilled and the second is not fulfilled, but we have an unnecessary Purchase Requisition created to partially fulfill the first demand.
    Shouldn't CTM ignore the second location as a source of supply since the location has demand against it's existing stock?  What can I do to prevent CTM from using stock at a location which has demand of it's own?
    thanks in advance,
    sarah

    Hello Dipankar,
    Thank you for your response.  I apologize for not answering sooner - I was testing ATP priroritization.
    We only have MBDAT as our demand prioritization.  I tested with ATP categories but was not able to resolve the issue.
    I have noticed that the issue only happens when there are PPMs assigned to the model.
    IE:
    Model A (all demands are for same date)
    LOC A supply 100 units of product X, supply of 30 units of product Z
    LOC B supply 100 units of product X, supply of 30 units of product Z
    LOC A demand 200 units of product X, demand of 40 units for product Z
    LOC B demand 200 units of product X, demand of 40 units for product Z
    Tlanes maintained between locations for Product X and Product Z
    NO PURCHASE REQS CREATED
    Model B (all demands are for same date)
    LOC A supply 100 units of product X, supply of 1000 units of product Z
    LOC B supply 100 units of product X, supply of 1000 units of product Z
    LOC A demand 200 units of product X, demand of 40 units for product Z
    LOC B demand 200 units of product X, demand of 40 units for product Z
    Tlanes maintained between locations for Product X.
    PPM maintained at LOC A to create Product Z (output) from Product X (input)
    PURCHASE REQ CREATED FOR PRODUCT X FROM LOC B TO LOC A.
    PLANNED ORDER CREATED FOR PRODUCT Y FROM PRODUCT X AT LOC A
    I am not able to figure out why the purchase requisition is created when LOC B has demand of its own.  I am not able to figure out why the purchase requisition is only created when PPMs are in the model.
    Best Regards,
    Sarah

  • Regarding tbale so the report(supply demand fulfilment report

    Dear Members
    Here i got 1 Requirement  to prepare report
    in that they mension that gett the matner value from
    Materil no :(J_3ADBBA-MATNR)
          Requiremnt                              J_3ADBBA-BDART
          Mrp Satus                              J_3ADBBA- J_3ASTAT
           po no                                  J_3ADBBA-AUFNR
    it is Simple ALV Grid report even i don't know where to get these fields from
    Hay is any one tell me that where can i Get the above fields and Tables
    i am working on IDES to solve out this Report
    please Help me Treat it as little Urgent
    note:points will be rewarded for usefull answer

    ANSWER FROM ORACLE SUPPORT
    ==========================
    We do not have a separate script for this. The summarization information displayed in the form is a result of a complicated process where information from multiple cursors is temporarily stored in MTL_SUPPLY_DEMAND_TEMP ONLY when the form is open. When the form is closed, the data in this table is truncated. Please see below:
    INVDVDSD - Troubleshooting Issues With The Inventory Supply/Demand Form [ID 286755.1]
    "How the Data is Gathered to be Displayed in the Form"
    The Form code is responsible only for passing the information about the item to a concurrent manager and then displaying the returned values.
    When the information is passed by the form, it calls the INV Remote Procedure Manager (INV RPC Mgr), which in turn calls a worker to execute the ProC code contained in $INV_TOP/bin/INCTM. The ProC code executes a number of queries (currently 20+) to ascertain the current status of an item from all areas of the transactional system. This information is loaded into the MTL_SUPPLY_DEMAND_TEMP table where it is used by the form to display the data. After the form is closed the data is removed from the table.

  • CTM running issue

    hello
    could somebody help me
    i'am trying to run a CTM ( snp) very light: i have only one demande of 50 units and a stock of 25 units. ( these 2 datas are well taked into account by CTM ( when i run the simulation they appears))
    my issue is that: accordingly to the CTM ; after its running i should get a planned order to cover the 25 missing units : but nothing hapens.
    what would be your advice ( to check, to set-up) as to get my demande covered?
    thanks
    elena

    Hi Elena,
    Please check the following
    1)  Is there any inconsistency of order data (both receipts and requirements)
    between both R/3 and APO systems.  In such case, run delta report to
    clear the inconsistency and retry
    2) Check late demand fulfilment strategy maintained
    3) Under special strategies in CTM profile, check whether the
    field "Balance surplus and shortfall quantity" are maintained
    4) In Global CTM settings, check whether allow shortage is maintained
    Regards
    R. Senthil Mareeswaran.

  • Creating a receipt early when the DC is closed

    Hi,
    We have a DC that would be closed on specific days. We have a time stream created without these days and assigned it as receiving calendar at DC location master in APO.
    For example DC is closed on 04/01. There is forecast on 04/01 and in normal situation when the DC is open on 04/01, when I run DRP, the system creates a purchase req. on 04/01, on the same day as the forecast. How ever when the time stream without 04/01 is assigned to DC as receiving calendar, the system is creating the purchase req. on 04/02 as 04/01 is closed.
    My question is how can I make the system create purchase req. on 03/31, the day before closed day and not after closed day?
    Is there a setting in APO that can help me achieve this? FYI, in location product master, we have maximum earliness of receipt as 100000.
    Thanks.

    Hi,
    Which method are you using for Planning, In CTM there is a functionality of Scheduling direction on Strategies tab. If you select Backward scheduling and no late demand fulfillment then you can have p reqs created before 04/1.
    Thanks,
    Pavan Verma

  • CTM - Safety days Supply

    Hello all,
    I'm working with CTM and I found a problem that I can't solve. If I set the profile to consider for example 8 safety days supply  (I tested with all settings) the system do not consider the safety days of supply for the first 9 days. The system creates the supply with no difference between demand and supply and at the 10th day it start to create supply with 8 days difference from demand. Did anyone know what is happening? I tryed with fixed and time-dependent safety days of supply and I'm working with the SCM 5.0.
    Thanks in advance,
    Marcelo

    Thanks a lot for your help.
    This setting seems to be a very good suggestion. The early demand fulfillment specifies the time that the system have to build up safety stock, but I tested it and this setting seems that doesn't work for safety days of supply. Do you know if there is another setting like this for the days of supply?

  • CTM run in APO

    Dear All,
    I am learning APO.I can do the
    DP & SNP (Network ,Multilevel)
    heuristics Runs on APO 3.1 very well.
    I would like to know how to Run CTM ? What is CTM? and most important what are the settings required for CTM run in APO?
    Can anybody help & guide me.
    I am awaiting for your valuable answer.Many thanks in advance.
    Warm Regards,
    Vishwesh Rajguru

    Waht is CTM
    Capable-to-Match (CTM) functions match a large set of
    prioritized customer demands and forecasts to a set of
    categorized supplies considering the current production
    capacities and transportation capabilities in a multistage
    production environment, as in the semiconductor
    industry. CTM is based on constraint-based propagation
    techniques and goal-oriented programming.
    Preprocessing tools provide a set of categorized supplies
    and prioritized demands as input to the CTM Engine,
    which then performs a fast check of production
    capacities while considering transportation capabilities.
    Prioritize by Demand
    CTM prioritizes demands, such as customer orders
    or forecasts from SAP APO Demand Planning, based
    on such characteristics as customer priority, location,
    and product priority.
    Supply Categorization
    CTM performs supply categorization based on the
    available supply and user-defined inventory limits, such
    as amount of inventory or planned deliveries.
    CTM Engine
    The CTM engine delivers the functions you need to
    control supply and demand. The CTM engine process
    can be divided into two steps. In the first step, the
    CTM engine builds the CTM application model using
    the specified supply network model. In a second phase,
    the CTM engine matches demand to supply considering
    production capacities and transportation capabilities
    and using constraint-based propagation. CTM searches
    before production and after production.
    In before production searches (or most to least), the
    system first searches through all supply categories for
    finished or semifinished products before it resorts to
    ordering production for that item. The search is
    conducted top down. The system first searches the
    production process model for finished products, then
    intermediate products, then raw materials.
    In after production searches (or least to most), the
    system searches for categories after an attempt is made
    to produce the item.
    Time-Dependent Production Processes
    You can define different production processes,
    including product flow, for different time intervals. The
    CTM engine chooses only production processes that
    are valid at the representative time.
    Model Alternative Components
    You can implicitly model alternative components by
    annotating a list of alternatives within the bill of
    material, or you can model alternative components
    explicitly by defining a set of product substitutions for
    a given product.
    Identification of Raw Material
    A special product category identifies material that is
    available in an infinite quantity. But for the consumption
    of this product, a purchase requisition must be
    created.
    Process Flows Based on Demand
    You must select a specific process flow based on the
    set of characteristics of a given demand. For a planning
    process that covers several physical plants, you must
    be able to restrict the production and distribution
    network to a set of allowed plants. In addition, the
    CTM engine can handle the plant substitution rules of
    SAP APO’s Global ATP component.
    Product Substitution Rules
    CTM considers a set of demand characteristics for each
    product and a prioritized list of substitute products
    using Global ATP rules.
    Customization/Settings
    Global customizing settings
    The package size is the key parameter that can improve the performance if you are using the asynchronous liveCache (LC) update.
    In asynchronous update the system creates the orders in the LC after planning the specified number of demands. At the same time, the system continues with the CTM planning for the other demands.
    The performance depends on the amount of planned orders that are created per demand.
    If you set up a package size of 1000 demands, this means that each 1000 demands CTM writes the results to the LC. If there are only 1000 planned orders created for fulfilling these 1000 demands then the package size is too small for an asynchronous run with a good performance because the CTM run needs to stop each 1000 planned orders for triggering the LC writing. This increases then the run time. In case there are 100.000 planned orders created then the package size is too big because the CTM run for creating these 100.000 planned orders needs probably longer than the parallel writing of the results to the LC.
    So the optimal package size makes the planning and writing to LC almost parallel.
    Apart from the package size of the asynchronous LC writing, there are three more areas where packages must be defined.
    - Package Size for Creating Orders. The value indicates how many orders can be created in the LC at one time.
    - Package Size for Creating Pegging Relationships. The value indicates how many pegging relationships can be created in the LC at one time.
    - Package Size for Order Selection. The value indicates for how many location products a LC request can be started at one time (package size for reading orders from LC in a way that CTM can use them for planning).
    It is difficult to give recommendations regarding these package sizes because one needs to play around in a specific situation to improve the performance. So consider the following values as an orientation.
    Regarding the package size of the Order Creation a value smaller than 1000 can be recommended (default value is 500 orders), but also a value up to 5000 can be efficient. In case of performance issues it is recommended to run CTM with different package sizes : 500, 1000, 2500, 5000 and see whether one of these settings can improve the performance.
    Regarding the package size for Creating Pegging Relationships a value bigger than 1000 is recommended. The default value is 5000 pegging relationships.
    The setting for the Order Selection is based on location-products, which implies that if the setting is currently 5000, CTM reads the orders for the first 5000 location-products and sends them in one package from the LC. If the average amount of orders per location-products combination is 10 (each location-product has in average 10 orders) the result is 50.000 orders transferred in the package.
    As this setting depends on the amount of orders existing per location-product, one needs to play again with different settings in case of performance issues. Generally it is recommended to have a value smaller than 10.000.
    3) Planning profile (business improvements)
    Apart from the customizing settings, the performance depends on many other criteria like the Master Data Selection, Order Selection, Selected Demands, Planning Period, Product-Location restrictions.
    If you want to improve the performance you should create a master data selection which contains only the objects in the model which are actively planned by the CTM run.
    You can check whether it is possible to divide your supply chain in separate independent model parts. This covers a big performance improvement potential because the independent parts of the chain can be planned in parallel.
    Then the order selection, especially the size and data requirements, is one of the major areas where you can improve the performance.
    During the deletion of orders in a CTM planning run, several checks that are not always required are run. The parameter 'FAST_DEL' skips some checks of the normal planning run to improve the planning run time. The parameter is activated if you set Value1 of the planning parameter to X. In this case, no information is analysed on pegging, input or output nodes during order selection. Therefore, the parameter can only be reasonably used with the planning mode "Regenerative planning" (Replan all Orders) and the deletion mode "All unfirmed orders" (Delete all Orders that are not firmed). Note that in this case, only the status and the type of the order are analyzed for the deletion decision. This means that all planned orders or purchase requisitions are deleted, if they were not firmed manually (Output fix) and contain at least one location product that is contained in the CTM master data selection. This parameter must not be used if you use a subcontracting scenario. In this case, inconsistencies can occur between the data in APO and the R/3 System because subcontracting purchase requisitions are deleted but not the subcontractor planned order at the subcontractor side.
    Notice that since release SCM 4.0 the parameter 'FAST_DEL' is obsolete and has been replaced with the planning step (Technical Settings tab) End Planning Run after Oder Selection in combination with Do Not Check Order Details.
    CTM run time depends on the number of demands. Consequently if your business need for CTM does not require all demands simultaneously, you can perform CTM runs using a demand selection. You can cut down on run time if you can first reduce the amount of demands considered in the planning run.
    Another factor to take into account is the planning period set for the CTM profile. You can implement a horizon in the work area which includes only those demands that can be planned during the horizon of the CTM run. That is, exclude any periods containing demands which cannot be planned.
    Consider also whether you can meet your business requirements by restricting your demands by product-location. You can experience long run times because in a large supply chain you do not restrict the demands by product-location combination.

  • CTM Control Parameter SSTOCK_MODE

    Hello All,
    We are running CTM with control parameter SSTOCK_MODE with value 1:X, value 2: blank. in this way ctm plans only for safety stock demand, not normal demand.
    However, when we do this, CTM does not see available supply already created and it creates production plan again.  Is there anyone who had the same problem or who can help on that?
    Thanks and regards,
    Jenny

    Hi,
    Why does CTM create an excess of supply when I use the safety stock method?
    Answer:
    The standard safety stock method uses a second run to fulfil the requirements for the safety stock. CTM checks the inventory profile and as soon as there is a need it creates a virtual demand for the second run. With this method CTM creates demands at a certain point of time to maintain safety stock level irrespective of the orders created further down the timeline. Consequently you can get an excess of supply, especially when lotsize settings are being considered.
    For example you can face a situation with no stock at the beginning of
    the planning period and then several big forecasts at the end.
    In this case CTM creates a demand for the safety stock without taking
    into account the following forecasts (which have been supplied in the first run).
    In order to mitigate the creation of excess of supply you can use the control parameter SSTOCK_MODE:
    SSTOCK_MODE
    Do not use in SCM 5.0 or higher. Instead use in CTM profile ->
    Supplies with 'Build Up Safety Stock'
    Do not plan Demands indicator  = SSTOCK_MODE Value1 = X.
    Consider Supply Shortage indicator = SSTOCK_MODE Value2 = X and 1 and 2 Stock is Available indicator = SSTOCK_MODE Value2 = 0 and 2.
    Release APO 3.0A (SP20+) APO 3.10 SCM 4.0 SCM 4.1
    Parameter used in Safety Stock Run (ABAP)
    Parameter has to be set by User
    Value 1 = "", X (Parameter active also if Value 1 not set)
    Value 2 = 0, 1 (previously X) or 2
    Description: Demands and Safety Stock fulfilment can be done in the same CTM run. Applied only if safety stock rebuild active.
    If Value 1 is set the order selection of the normal run is performed but the planning of normal demands is skipped. The safety stock run is performed as usual.
    In the safety stock run, CTM creates virtual demands to trigger building up to the desired safety stock level.
    If Value 2 = 1 or 2 the net calculation of the inventory also takes into account the backlog of normal demands. By default, the safety stock run doesn't take into account the backlog of normal demands, which is determined by the unpegged quantity.
    If value 2 = 0 or 2 , available stock is not blocked for safety stock requirement of the same location product, but is visible to dependent requirements during planning. However stock with a pegging relation is not available and remains untouched.
    The combination of both values can be used to plan normal demands and safety stock in one run. This allows avoiding interval planning in case of time-dependent safety stock. This setting is only suitable if safety stock is considered exclusively for finished products because normal demand counts up against decreasing safety stock level. In this case parameters SSTOCK_EARLYFRAME and SSTOCK_LATEFRAME should be applied.
    Go through the above detail, it may help you.
    Thanks,
    Dipankar

  • Fell short of minimum consumption in CTM

    After running CTM,  one demand (quantity: 1,373 TON) was not fullfilled and the following message  was shown on the CTM Explanation log:
    Fell Short of minimum consumption: Activity 01 / product: 36000001  / location: US01
    I already checked minimum lot size on material master and on the source of supply (PDS), both are 0.
    PDS (production data structure)
    Product     I/O type     material consumption (variable)     Unit
    36021075     Output     1.000                                                 TO
    36000001     Output     136,444                                                 TO
    36000003     Output     4.582                                                 KG
    36021086     Input     1.018,23                                                 TO
    Demand for product 36021075 (quantity: 1,373 TON) not fullfilled due to incapacity of reaching minimum consumption for product 36000001.
    The 36000001 material´s basic unit of measure is TON. When I changed it to KG the demand was fullfilled.
    QUESTION:
    1 - What is the minimum consumption for a material?

    Hi Naveira,
    Please have a look at all the output & input components minimum Lot size. Must be one of the output component is having lot size constraint.
    Hope this helps.
    regards,
    Nawanit

  • Splash page with animated gif only question

    Hello all:
    I have a splash page (index.html) that is designed using an animated gif created in photoshop. The rest of my site is Css/XHTML, but has some divs containing animated gifs. I have two questions;
    1: By using only the animated gif on the splash page, am I limiting or hindering my SEO (google, microsoft, yahoo) ranking opportunities as there is no "content" on the page that the spiders/bots can see? I went ahead and included some "content" but hid it by coloring the type the same as the background color hoping that might do something, but obviously I'm a SEO newbie so any suggestions are more than welcomed. I will include the code at the end of this post, and my site is: http://reynolds-marketing.com.
    2. Is there a way to pre-load the animated gifs on my pages so that they play more smoothly and efficiently?
    TIA for any of your help. Murman
    The code for the splash page:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Reynolds Marketing - The Marketing Resource Source</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta name="description" content="Reynolds Marketing is a marketing services company offering a full spectrum of marketing services including: consultation, creative, production and logistical marketing services headquartered in Temecula, CA." />
    <meta name="keywords" content="Reynolds, Reynolds Marketing, marketing services company, marketing services agency, full spectrum of marketing services, full service marketing agency, marketing consultant, print creative, digital printing, offset printing, website design, website development, digital marketing, digital print on demand, DPOD,Video Production, Video Production, Direct Mail, Temecula, powerpoint presentations" />
    <link rel="shortcut icon" href="http://www.reynolds-marketing.com/favicon.ico"/>
    <!-- ImageReady Styles (index3.psd) -->
    <style type="text/css">
    <!--
    #index_ {
         position:relative;
         left:0px;
         top:0px;
         width:640px;
         height:480px;
         margin-left: auto;
         margin-right: auto;
    -->
    </style>
    <!-- End ImageReady Styles -->
    </head>
    <body bgcolor="#FFFFFF" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" id="index_" style="background-color:#FFFFFF;">
    <p>
      <!-- ImageReady Slices (index3.psd) -->
    <img src="images/index.gif" alt="" width="640" height="480" border="0" usemap="#indexMap" id="index" /></p>
    <p>Reynolds Marketing offers a full spectrum of marketing communications services including: consultation, creative, production and logistical marketing services located in Temecula, California. Our services include marketing consultation, press relations, public relations, copy writing, print creative, direct mail creative, video creative, web creative, interactive creative. Print production, direct mail, video production, web page creation and production. Digital print on demand, fulfillment services, powerpoint presentations, marketing communications, marketing communications conformance. To find out more about our services, please go to <a href="http://www.reynolds-marketing.com/who_we are.html">http://www.reynolds-marketing.com/who_we are.html</a> . </p>
    <p>Site map:<br />
      <a href="http://www.reynolds-marketing.com/index.html">http://www.reynolds-marketing.com/index.html</a><br />
      <a href="http://www.reynolds-marketing.com/who_we_are.html">http://www.reynolds-marketing.com/who_we_are.html</a><br />
      <a href="http://www.reynolds-marketing.com/contact_us.html">http://www.reynolds-marketing.com/contact_us.html</a><br />
      <a href="http://www.reynolds-marketing.com/what_we_do.html">http://www.reynolds-marketing.com/what_we_do.html</a><br />
      <a href="http://www.reynolds-marketing.com/services.html">http://www.reynolds-marketing.com/services.html</a><br />
      <a href="http://www.reynolds-marketing.com/clients.html">http://www.reynolds-marketing.com/clients.html</a><br />
      <a href="http://www.reynolds-marketing.com/projects.html">http://www.reynolds-marketing.com/projects.html</a><br />
      <a href="http://www.reynolds-marketing.com/news.html">http://www.reynolds-marketing.com/news.html</a></p>
    <p>
      <map name="indexMap" id="indexMap">
        <area shape="rect" coords="296,434,342,444" href="who_we_are.html" />
        <area shape="rect" coords="228,451,286,461" href="who_we_are.html" />
        <area shape="rect" coords="296,451,353,461" href="what_we_do.html" />
        <area shape="rect" coords="364,451,416,461" href="contact_us.html" />
      </map>
      <!-- End ImageReady Slices -->
      <script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
      </script>
    </p>
    <script type="text/javascript">
    try {
    var pageTracker = _gat._getTracker("UA-8703884-1");
    pageTracker._trackPageview();
    } catch(err) {}</script>
    </body>
    </html>

    My guess is yes, but that is just my opinion.  I believe the text/background same color idea was really in vogue back in the late 90's and we all heard that it was the kiss of death for SEO that the SE's hated them so much you got de-listed, not sure if that is a fact or not.
    My bigger concern would be how many people you are losing by making them wait to get to where they want to go.  I have told many a client that in some sense, the interent is too big, you have too much competition and people have thin patience for things like splash pages.  The ooo and aaa effect of animated gifs is long dead...again, in my opinion.
    I dont know the answer to your load question...
    Gray

  • Use of periodic lot sizing in SNP heuristics

    I am using APO V5.1.
    I am using the standard APO SNP heuristic, and have periodic lot sizing working OK, with a 2 week periodic type.
    But I want to try and model the fact that certain products are to be produced in 'even' weeks and other products are to be produced in 'odd' weeks.
    I thought that the use of different planning calendars for the different products would help here, but I do not think SNP is recognising the planning calendars.
    Any other ideas on this?...

    hI,
    Wanted to know if you have checked the option and tryed the same in system since the helptext says the same will not be considered by optimizer but will be considerd by heuristic.
    Period Lot Size
    Specifies that a period lot-sizing procedure is used in Supply Network Planning (SNP) and Production Planning and Detailed Scheduling (PP/DS).
    Use
    Use in SNP
    This indicator is only used in heuristic-based planning (and not in optimization-based planning). If you set this indicator, the system groups the demand quantities of several consecutive periods together and creates orders to fulfill the quantity of this combined demand.
    The period type and number of periods can be entered in the accompanying fields Period Type and No. of Periods. You can set the start time for the grouping in the Lot Size Grp. Start field.
    The settings you make in the Lot Size Strategy field govern the period in which the combined demand is placed and the demand fulfillment order is created.
    When calculating lot sizes and creating orders, the system considers all the other lot size settings from the location product master, such as minimum and maximum lot size, rounding value, and rounding profile.
    Now for the solution you are thinking if possible you can divide the plant in two parts if the materials are accounted differntly and keep two different  factory calendars for the same and go ahead.This may be not a good solution but I thought I can share this with you.
    Hope this can help.
    regards,
    kaushik

  • Recognising Revenues based on costs in Service Orders

    We have configured SD Revenue Recognition function (ECC 5.0).  We have warranty maintenance contracts running.  On this basis we have the following scenario and issue.
    The warranty maintenance contracts are created without a billing plan (Reqmt. type SE so that we can settle costs later).  The value of which is transferred to Deferred Revenue Account and is recognised at the end of the contract period (As it bears the retention money with the customer).  Until this step things are working fine.  We use VF44 to recognise revenues.
    However, there are costs incurred (both material & labour) in relation to such contracts.  To track this, we create a Service Order s against the Service Contract for each month.  Later on fulfillment, the orders are settled to the Service Contract.  This is reflecting in the Service Order.  But the finance team wants to recognise the revenues to the extent of costs incurred.  I'm not sure how we can do this.  The following is an example scenario.
    Contract Value : $1000
    Contract period : 1 yr (1.1.2010 to 31.12.2010)
    Contract billed at the start of the year on 1.1.2010 so the amount is moved to Revenue Provision (Deferred Revenue)
    At the end of the year $1000 lying in Deferred Revenue will be moved to Revenue Account through Revenue Recognition (VF44)
    Now, costs incurred as follows which are booked in separate service orders against the contract and on completion, settled to the contract.  There is no definite schedule for these costs.
    Apr 2010 : $100
    Jun 2010 : $200
    Sep 2010 : $500
    Now, the finance team wants to recognise revenue to this extent during the relevant periods.  For eg.
    Apr 2010 :
    Deferred Revenue A/c $100
    To Revenue A/c $100
    Jun 2010 :
    Deferred Revenue A/c $200
    To Revenue A/c $200
    Sep 2010 :
    Deferred Revenue A/c $500
    To Revenue A/c $500
    And at the end of Dec 2010 :
    Deferred Revenue A/c $200
    To Revenue A/c $200
    (for the remaining amount)
    Can anyone guide me how this can be achieved?
    Thanks in advance.
    Ravi.

    Nobody have encountered this scenario?
    If not with SD Revenue Recognition, can I handle this with CO Result Analysis?
    Ravi.
    Edited by: Ravichandran S Iyer on Jul 22, 2010 2:31 PM

  • No Item for Requisition in ASCP Recommendation workbench tree...

    Dear expert,
    I am implementing ASCP unconstrain for OPM modul for make item that own purchased item for it's ingredient. I had setup the general planning atribute correctly for make item (Fin good) and buy item (raw mat). but when i launch the ascp plan, there is no recommendation for purchased item (no list at all) but the recommendation for work order is showing normally... can any body help? I am using R12.1
    regards
    indra.
    Edited by: Indra R Stp on Sep 6, 2010 6:14 PM

    Hi,
    Thanks a lot for your replies....Geert and Sandeep.
    I was just thinking what other standard ways I have to populate this information in the workbench for the Planners. Actually, it's just going to be a Yes/No or 1/0 info. for the planner which he would see in the workbench and then take some decision based on that. On exploring some of the other fields available in the Org items, I found that the workbench does display the planning flexfield info. such as Service level and Late Demands Penalty. Also there's another attribute 'Critical items' which populates a value 'Item Attribute' in the workbench when I check it in Org items and the field remains blank when I uncheck it in Org Items. The latter should always work as all my items are MPS Planned.
    Could there be any downsides if I use the Critical Items item attribute to pass this info for the Planner in the workbench?
    Regards,
    Abhijit

  • Need help in improving performance of prorating quantities to stores for existing orders

    I have a code written to allocate quantities to stores for an existing order. Suppose there is a supplier order with quantity of 100 and this needs to distributed among 4 stores which has a demand of 50,40,30 and 20. Since total demand not equal to available quantity. the available quantity needs to be allocated to stores using an algorithm.
    ALgorithm is like allocating the stores in small pieces of innersize. Innersize is nothing but
    quantity within the pack of packs i.e. pack has 4 pieces and each pieces internally has 10 pieces,
    this 10 is called innersize.
    While allocating, each store is provided quantities of innersize first and this looping continues
    until available quantity is over
    Ex:
    store1=10
    store2=10
    store3=10
    store4=10
    second time:
    store1=10(old)+10
    store2=10(old)+10
    store3=10(old)+10
    store4=10(old)+10--demand fulfilled
    third time
    store1=20(old)+10
    store2=20(old)+10
    -- available quantity is over and hence stopped.
    My code below-
    =================================================
    int prorate_allocation()
      char *function = "prorate_allocation";
      long t_cnt_st;
      int t_innersize;
      int   t_qty_ordered;
      int t_cnt_lp;
      bool t_complete;
      sql_cursor alloc_cursor;
      EXEC SQL DECLARE c_order CURSOR FOR -- cursor to get orders, item in that, inner size and available qty.
      SELECT oh.order_no,
      ol.item,
      isc.inner_pack_size,
      ol.qty_ordered
      FROM ABRL_ALC_CHG_TEMP_ORDHEAD oh,
      ordloc ol,
      item_supp_country isc
      WHERE oh.order_no=ol.order_no
      AND oh.supplier=isc.supplier
      and ol.item=isc.item
      AND     EXISTS (SELECT 1 FROM abrl_alc_chg_details aacd WHERE oh.order_no=aacd.order_no)
            AND     ol.qty_ordered>0;
      char   v_order_no[10];
      char v_item[25];
      double v_innersize;
      char   v_qty_ordered[12];
      char v_alloc_no[11];
      char v_location[10];
      char v_qty_allocated[12];
      int *store_quantities;
      bool *store_processed_flag;
      EXEC SQL OPEN c_order;
      if (SQL_ERROR_FOUND)
      sprintf(err_data,"CURSOR OPEN: cursor=c_order");
      strcpy(table,"ORDHEAD, ORDLOC, ITEM_SUPP_COUNTRY");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      EXEC SQL ALLOCATE :alloc_cursor;
      while(1)
      EXEC SQL FETCH c_order INTO :v_order_no,
      :v_item,
      :v_innersize,
      :v_qty_ordered;
      if (SQL_ERROR_FOUND)
      sprintf(err_data,"CURSOR FETCH: cursor=c_order");
      strcpy(table,"ORDHEAD, ORDLOC, ITEM_SUPP_COUNTRY");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      if (NO_DATA_FOUND) break;
      t_qty_ordered     =atoi(v_qty_ordered);
      t_innersize =(int)v_innersize;
      t_cnt_lp         = t_qty_ordered/t_innersize;
      t_complete =FALSE;
      EXEC SQL SELECT COUNT(*) INTO :t_cnt_st
      FROM abrl_alc_chg_ad ad,
      alloc_header ah
      WHERE ah.alloc_no=ad.alloc_no
      AND   ah.order_no=:v_order_no
      AND   ah.item=:v_item
      AND   ad.qty_allocated!=0;
      if SQL_ERROR_FOUND
                sprintf(err_data,"SELECT: ALLOC_DETAIL, count = %s\n",t_cnt_st);
                strcpy(table,"ALLOC_DETAIL");
                WRITE_ERROR(SQLCODE,function,table,err_data);
                return(-1);
      if (t_cnt_st>0)
      store_quantities=(int *) calloc(t_cnt_st,sizeof(int));
      store_processed_flag=(bool *) calloc(t_cnt_st,sizeof(bool));
      EXEC SQL EXECUTE
      BEGIN
      OPEN :alloc_cursor FOR SELECT ad.alloc_no,
      ad.to_loc,
      ad.qty_allocated
      FROM    alloc_header ah,
      abrl_alc_chg_ad ad
      WHERE   ah.alloc_no=ad.alloc_no
      AND     ah.item=:v_item
      AND     ah.order_no=:v_order_no
      order by ad.qty_allocated desc;
      END;
      END-EXEC;
      while (t_cnt_lp>0)
      EXEC SQL WHENEVER NOT FOUND DO break;
      for(int i=0;i<t_cnt_st;i++)
      EXEC SQL FETCH :alloc_cursor INTO :v_alloc_no,
      :v_location,
      :v_qty_allocated;
      if (store_quantities[i]!=(int)v_qty_allocated)
      store_quantities[i]=store_quantities[i]+t_innersize;
      t_cnt_lp--;
      if (t_cnt_lp==0)
      EXEC SQL CLOSE :alloc_cursor;
      break;
      else
      if(store_processed_flag[i]==FALSE)
      store_processed_flag[i]=TRUE;
      t_cnt_st--;
      if (t_cnt_st==0)
      t_complete=TRUE;
      break;
      if (t_complete==TRUE && t_cnt_lp!=0)
      for (int i=0;i<t_cnt_st;i++)
      store_quantities[i]=store_quantities[i]+v_innersize;
      t_cnt_lp--;
      if (t_cnt_lp==0)
      EXEC SQL CLOSE :alloc_cursor;
      break;
      }/*END OF WHILE*/
      EXEC SQL EXECUTE
      BEGIN
      OPEN :alloc_cursor FOR SELECT ad.alloc_no,
      ad.to_loc,
      ad.qty_allocated
      FROM    alloc_header ah,
      abrl_alc_chg_ad ad
      WHERE   ah.alloc_no=ad.alloc_no
      AND     ah.item=:v_item
      AND     ah.order_no=:v_order_no
      order by ad.qty_allocated desc;
      END;
      END-EXEC;
      EXEC SQL WHENEVER NOT FOUND DO break;
      for (int i=0;i<t_cnt_st;i++)
      EXEC SQL FETCH :alloc_cursor INTO :v_alloc_no,
      :v_location,
      :v_qty_allocated;
      EXEC SQL UPDATE abrl_alc_chg_ad
      SET qty_allocated=:store_quantities[i]
      WHERE to_loc=:v_location
      AND   alloc_no=:v_alloc_no;
      if SQL_ERROR_FOUND
      sprintf(err_data,"UPDATE: ALLOC_DETAIL, location = %s , alloc_no =%s\n", v_location,v_alloc_no);
      strcpy(table,"ALLOC_DETAIL");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      EXEC SQL UPDATE ABRL_ALC_CHG_DETAILS
      SET PROCESSED='Y'
      WHERE LOCATION=:v_location
      AND   alloc_no=:v_alloc_no
      AND PROCESSED IN ('E','U');
      if SQL_ERROR_FOUND
      sprintf(err_data,"UPDATE: ABRL_ALC_CHG_DETAILS, location = %s , alloc_no =%s\n", v_location,v_alloc_no);
      strcpy(table,"ABRL_ALC_CHG_DETAILS");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      EXEC SQL COMMIT;
      EXEC SQL CLOSE :alloc_cursor;
      free(store_quantities);
      free(store_processed_flag);
      }/*END OF IF*/
      }/*END OF OUTER WHILE LOOP*/
      EXEC SQL CLOSE c_order;
      if SQL_ERROR_FOUND
      sprintf(err_data,"CURSOR CLOSE: cursor = c_order");
      strcpy(table,"ORDHEAD, ORDLOC, ITEM_SUPP_COUNTRY");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
    return(0);
    } /* end prorate_allocation*/

    I have a code written to allocate quantities to stores for an existing order. Suppose there is a supplier order with quantity of 100 and this needs to distributed among 4 stores which has a demand of 50,40,30 and 20. Since total demand not equal to available quantity. the available quantity needs to be allocated to stores using an algorithm.
    ALgorithm is like allocating the stores in small pieces of innersize. Innersize is nothing but
    quantity within the pack of packs i.e. pack has 4 pieces and each pieces internally has 10 pieces,
    this 10 is called innersize.
    While allocating, each store is provided quantities of innersize first and this looping continues
    until available quantity is over
    Ex:
    store1=10
    store2=10
    store3=10
    store4=10
    second time:
    store1=10(old)+10
    store2=10(old)+10
    store3=10(old)+10
    store4=10(old)+10--demand fulfilled
    third time
    store1=20(old)+10
    store2=20(old)+10
    -- available quantity is over and hence stopped.
    My code below-
    =================================================
    int prorate_allocation()
      char *function = "prorate_allocation";
      long t_cnt_st;
      int t_innersize;
      int   t_qty_ordered;
      int t_cnt_lp;
      bool t_complete;
      sql_cursor alloc_cursor;
      EXEC SQL DECLARE c_order CURSOR FOR -- cursor to get orders, item in that, inner size and available qty.
      SELECT oh.order_no,
      ol.item,
      isc.inner_pack_size,
      ol.qty_ordered
      FROM ABRL_ALC_CHG_TEMP_ORDHEAD oh,
      ordloc ol,
      item_supp_country isc
      WHERE oh.order_no=ol.order_no
      AND oh.supplier=isc.supplier
      and ol.item=isc.item
      AND     EXISTS (SELECT 1 FROM abrl_alc_chg_details aacd WHERE oh.order_no=aacd.order_no)
            AND     ol.qty_ordered>0;
      char   v_order_no[10];
      char v_item[25];
      double v_innersize;
      char   v_qty_ordered[12];
      char v_alloc_no[11];
      char v_location[10];
      char v_qty_allocated[12];
      int *store_quantities;
      bool *store_processed_flag;
      EXEC SQL OPEN c_order;
      if (SQL_ERROR_FOUND)
      sprintf(err_data,"CURSOR OPEN: cursor=c_order");
      strcpy(table,"ORDHEAD, ORDLOC, ITEM_SUPP_COUNTRY");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      EXEC SQL ALLOCATE :alloc_cursor;
      while(1)
      EXEC SQL FETCH c_order INTO :v_order_no,
      :v_item,
      :v_innersize,
      :v_qty_ordered;
      if (SQL_ERROR_FOUND)
      sprintf(err_data,"CURSOR FETCH: cursor=c_order");
      strcpy(table,"ORDHEAD, ORDLOC, ITEM_SUPP_COUNTRY");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      if (NO_DATA_FOUND) break;
      t_qty_ordered     =atoi(v_qty_ordered);
      t_innersize =(int)v_innersize;
      t_cnt_lp         = t_qty_ordered/t_innersize;
      t_complete =FALSE;
      EXEC SQL SELECT COUNT(*) INTO :t_cnt_st
      FROM abrl_alc_chg_ad ad,
      alloc_header ah
      WHERE ah.alloc_no=ad.alloc_no
      AND   ah.order_no=:v_order_no
      AND   ah.item=:v_item
      AND   ad.qty_allocated!=0;
      if SQL_ERROR_FOUND
                sprintf(err_data,"SELECT: ALLOC_DETAIL, count = %s\n",t_cnt_st);
                strcpy(table,"ALLOC_DETAIL");
                WRITE_ERROR(SQLCODE,function,table,err_data);
                return(-1);
      if (t_cnt_st>0)
      store_quantities=(int *) calloc(t_cnt_st,sizeof(int));
      store_processed_flag=(bool *) calloc(t_cnt_st,sizeof(bool));
      EXEC SQL EXECUTE
      BEGIN
      OPEN :alloc_cursor FOR SELECT ad.alloc_no,
      ad.to_loc,
      ad.qty_allocated
      FROM    alloc_header ah,
      abrl_alc_chg_ad ad
      WHERE   ah.alloc_no=ad.alloc_no
      AND     ah.item=:v_item
      AND     ah.order_no=:v_order_no
      order by ad.qty_allocated desc;
      END;
      END-EXEC;
      while (t_cnt_lp>0)
      EXEC SQL WHENEVER NOT FOUND DO break;
      for(int i=0;i<t_cnt_st;i++)
      EXEC SQL FETCH :alloc_cursor INTO :v_alloc_no,
      :v_location,
      :v_qty_allocated;
      if (store_quantities[i]!=(int)v_qty_allocated)
      store_quantities[i]=store_quantities[i]+t_innersize;
      t_cnt_lp--;
      if (t_cnt_lp==0)
      EXEC SQL CLOSE :alloc_cursor;
      break;
      else
      if(store_processed_flag[i]==FALSE)
      store_processed_flag[i]=TRUE;
      t_cnt_st--;
      if (t_cnt_st==0)
      t_complete=TRUE;
      break;
      if (t_complete==TRUE && t_cnt_lp!=0)
      for (int i=0;i<t_cnt_st;i++)
      store_quantities[i]=store_quantities[i]+v_innersize;
      t_cnt_lp--;
      if (t_cnt_lp==0)
      EXEC SQL CLOSE :alloc_cursor;
      break;
      }/*END OF WHILE*/
      EXEC SQL EXECUTE
      BEGIN
      OPEN :alloc_cursor FOR SELECT ad.alloc_no,
      ad.to_loc,
      ad.qty_allocated
      FROM    alloc_header ah,
      abrl_alc_chg_ad ad
      WHERE   ah.alloc_no=ad.alloc_no
      AND     ah.item=:v_item
      AND     ah.order_no=:v_order_no
      order by ad.qty_allocated desc;
      END;
      END-EXEC;
      EXEC SQL WHENEVER NOT FOUND DO break;
      for (int i=0;i<t_cnt_st;i++)
      EXEC SQL FETCH :alloc_cursor INTO :v_alloc_no,
      :v_location,
      :v_qty_allocated;
      EXEC SQL UPDATE abrl_alc_chg_ad
      SET qty_allocated=:store_quantities[i]
      WHERE to_loc=:v_location
      AND   alloc_no=:v_alloc_no;
      if SQL_ERROR_FOUND
      sprintf(err_data,"UPDATE: ALLOC_DETAIL, location = %s , alloc_no =%s\n", v_location,v_alloc_no);
      strcpy(table,"ALLOC_DETAIL");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      EXEC SQL UPDATE ABRL_ALC_CHG_DETAILS
      SET PROCESSED='Y'
      WHERE LOCATION=:v_location
      AND   alloc_no=:v_alloc_no
      AND PROCESSED IN ('E','U');
      if SQL_ERROR_FOUND
      sprintf(err_data,"UPDATE: ABRL_ALC_CHG_DETAILS, location = %s , alloc_no =%s\n", v_location,v_alloc_no);
      strcpy(table,"ABRL_ALC_CHG_DETAILS");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
      EXEC SQL COMMIT;
      EXEC SQL CLOSE :alloc_cursor;
      free(store_quantities);
      free(store_processed_flag);
      }/*END OF IF*/
      }/*END OF OUTER WHILE LOOP*/
      EXEC SQL CLOSE c_order;
      if SQL_ERROR_FOUND
      sprintf(err_data,"CURSOR CLOSE: cursor = c_order");
      strcpy(table,"ORDHEAD, ORDLOC, ITEM_SUPP_COUNTRY");
      WRITE_ERROR(SQLCODE,function,table,err_data);
      return(-1);
    return(0);
    } /* end prorate_allocation*/

Maybe you are looking for

  • Help Needed In SQL Query

    HI All, Oracle sql clarification required Sample Table: empno empname Job mgr_id hire_date salary deptno 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7900 JAMES CLERK 7698

  • Abobe Acrobat 9 Pro upgrade

    I do not want to rent ADOBE ACROBAT on monthly bases I want to upgrade my Adobe Acrobat 9 Pro were can I do that I just keep getting the option to pay monthly

  • Monitor hooked up to G3 powerbook is extension not mirrored

    My screen went on my G3 powerbook black model. I hooked up a monitior but it is acting as an extension. There is no key on my key pad to change it to mirror plus my apple key does not work. Anyone know how to switch this? Thanks,

  • AS3 Best way to clear an array

    What is the best way to clear an array? (performance and resources) array.length = 0; array = []; array.splice(0);

  • Finding an anomaly in a set of numbers

    Hi, I am trying to find an anomaly in a set of numbers. However, I'm struggling to implement it. Let's say I have the following numbers: 1 2 3 2 1 5 1 The number five would be the anomaly in this case. How would I be able to find this with a piece of