Accessing Container

Hi all,
I have a problem with Object type: Absence, Event: Requested.
When a leave request is created the event Request is no longer triggered.
When looking at the event trace there is no events for Absence. This used to work before and I am not sure where to look for the problem.
Looking at transactions SWEHR1 and SWEHR2 for the event linkage the following entries are there:
Ob: P
Infotype: 2001
Updat: REQ
Obj type: Absence
Event: Requested
Does any one have elements from Business Object method
I am having some difficulties in accessing container elements in my business object methods.
Thanks,
Manosh.

Hi,
if you want to do something with the value of the importing paramter of the business object, you also have to declare a data element with the same datatype.
E.G. method X with importing parameter Abc with data type reference t000-mandt
In the ABAP of the business object:
data abc type mandt.
swc_get_element container 'Abc' abc.
Reward points if found helpful....
Cheers,
Venkoji Babu.

Similar Messages

  • Accessing container variables from ccBPM in Message Mapping?

    Hello Friends,
    I have created a ccBPM and require to send response messages to the sending system at different points as the message proceeds from one state to another. I do not want to create multiple message mapping stating different status in every message mapping. The message mapping remains the same only the status is changing. So I am thinking if I can access container elements in ccBPM at message mapping then I should be able to use only one message mapping.  Is it possible at all?
    Let me know if you have other solutions. Let me know if I am not clear?
    Thanks & Regards,
    Anand Patil

    Hi Abhishek,
    Your suggestion to use Parameterized Mapping did solve my issue. I was looking something like this. Thanks.
    Now I have only one Message Mapping and it is used in multiple places. Thanks a lot
    Best regards,
    Anand Patil

  • Error while accessing container element _ALERT_LOGICAL_SYSTEM

    Hi,
    Getting below error in SLG1 T.Code, I, am getting E-Mail but without any ALERT ID, MESSAGE ID and Interface name pls suggest for the same to solve.
    "Error while accessing container element ALERTLOGICAL_SYSTEM" ERROR IN SLG1
    Rgds,
    MFH

    Did you checked this thread: Alerts problem and log
    Regards,
    Abhishek.

  • Accessing container variable of BPM in Message Mapping function

    Hi,
    I have a scenario in BPM where i have a container variable that is used as a loop counter.I want to access that counter defined , every time when i go around the loop and perform certain actions based on that counter. so how can i access that variable in my message Mapping function.

    Hi Sudharshan,
    check these links, hope they give you the required information (i think there is some problem with SDN site, check these links after a while)
    Re: How to use Container Variable across Maps
    Container object in Message Mapping
    Copy value of container (abstract interface) to an other container
    Regards
    Vishnu

  • Accessing container element in the User Defined Function

    Hi All,
    I am accessing a container element in the user defined function.
    But it is not working. Actually i want to split a message(1800 records) into a batch of 200.
    But it goes in a infinite loop.
    Please can you tell me where i am wrong.
    Smita
    The code is :
    public void SplitMsg(String[] a,ResultList result,Container container){
    Object container1;
    String counter;
    int i,j=0;
    container1 = container.getParameter("value");
    if( container1 == null){
    counter  =  "0";
    else {     
         counter = container.toString();
         j = Integer.valueOf(counter).intValue();
    for ( i = j ; i <= j + 199 ; i++){
         if ( i  >= a.length){
              container.setParameter("value","9999999");
              break;
         result.addValue(a<i>);
         j += 200;
         counter = Integer.toString(j);
         container.setParameter("value", counter);

    Here is another way to accomplish what you wanted.
    For the target mapping, use this sequence for mapping
    Source element -> removeContext -> Your User-defined Function -> Target Element
    When defining User-Defined Function, select "Cache Queue" option.
    Since you are using removeContext before calling the UserDefined function, your input to the user defined function will be a String array without ResultList.CC.
    Now manipulate the array the way you want it, and build the ResultList result.
    After every 200 records, use method
    void addContextChange().
    This will insert the ResultList.CC at the appropriate places.
    Use Display Queue in the Mapping Editor to see the debug values.

  • Error code -17306 while accessing container from TestStand

    Hi,
    I am getting an error -17306 while accessing the TestStand container present in Station Globals using invoke node property object. Please find below the code snippet.
    Thanks,
    Neha

    Hi
    I am not sure too, how to obtain sequence context from TS application manager. However, did you try using the lookupstring as "StationGlobals.UUT1.Name" or as "FileGlobals.UUT1.Name"?
    I think, the reference to globals will include Station Globals and File Globals. so, you might have to be specific in the lookup string.
    the error says the name of the variable or property is not valid.
    also, you wired "0" which means do not create the variable if not found. is that what you wanted to configure?

  • Can I access WorkFlow Container Data After Archiving?

    Hello .....
    I am tasked to Archive thousands of old WorkFlows that are cluttering up our system and are beginning to cause performance issues.
    I have managed to Archive some WorkFlows in our DEV system with Tcode SARA.
    My question is .... Can I still access container data for Archived WF's?  I can see logs that indicate successful Archive but our Managers still want to be able to see the container data.  is it possible or is it gone?  tahnk you in advance.
    Dan Avis

    Hello,
    Your archiving isn't successful until you've tested it out - and answered your own question.
    But as far as I can recall (I'll check) - yes, the container values are present. So far I haven't been able to find anything that was missing.
    regards
    Rick Bakker
    hanabi technology

  • BE on 365 w/ Access 2013

    need a sanity check from those that are further along on this:
    1: Made a web database, just tables only, via Access 2013 which defacto is at 365 teamsite... let's call Wdb
    Opening then a local traditional database - Lets call Local.accdb, and selecting the option to link to a Sharepoint List - - - that Wdb is not displayed/available so therefore the tables/lists inside are not either....  that's the first sanity check
    point.  whether there is any way to link to Wdb.
    Part deux:  With a traditional db i.e. Local.accdb; with local not-split tables - then one can export/split to sharepoint lists - appearantly as long as there are no Look Up type fields....
    C: SP lists are only available to a classic FE link only if they are not inside an Access container on SP (i.e. not Wdb)...and so if you had more than 1 classic FE application at the same 365 account one has to be sure that no 2 tables have the same name....because
    all tables/lists on SP are co-mingled - - perhaps they can be segregated into folders - am not an SP admin and so inexperienced on that point.....
    4: after the split to SP (part deux above) there is a link to a list "User Info" that SP throws in....what is that for? and does it offer a feature to design around/with?
    As an aside ; have watched A.Kallal's youtube on this which I remember as publishing via 2010 while here am exclusively in A2013..... the goal, via A2013, is linking a classic FE to the cloud BE.....
    experienced advice most welcomed on this.....

    1/. A Web 2013 db is not a sharepoint list but a SQL Azure database. You will need to link to this via standard remote linking techniques using ODBC with connection strings like
    gstrConn1 = "ODBC;Description=mydb;DRIVER=SQL Server Native Client 11.0;SERVER=xxxxxxxxxx.database.windows.net;" _
    & "UID=db_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_ExternalWriter;database=db_xxxxxxxxxxxxxxxxxx;" _
    & "Encrypt=yes;Pwd=xxxxxxxxxxxxxx;"
    deux/. You can also export to a Azure SQL Server. (ODBC Database)
    C/. As i understand it you can link to any lsit that you have permissions for.
    4/. (shouldn't this be iv??? as you already used this form! lol) not sure about this never used this feature.
    With A2013 linking with ODBC to the SQL Server database as in 1/ above works well. a desktop system will work and share with the cloud.
    Good luck
    Brian, ProcessIT- Hawke&#39;s Bay, New Zealand

  • Checking Multiline Container Value in BPM

    Hi ,
    We have scenario where we need to check the container value in BPM.
    Could you please anybody let me know how we check the conditions for a conatiner.
    Madhu

    Hi Madhusudhan,
    You can use the following threads and see if it helps:
    Accessing container variable of BPM in Message Mapping function
    Copy value of container (abstract interface) to an other container
    Container object in Message Mapping
    Specially check out the Michal's blog mentioned in the last thread. It might be useful.
    PS : Please reward points if useful.
    Thanks and Regards,
    Sanjeev.

  • Having trouble restricting access to virtual multihosting entry

    Hi,
    I've created a new proxy instance with all default settings. I'm trying to use virtual multihosting with an ACL to restrict access to this virtual multihost. I'm having troubles and am not able to block it. I thought I could use a template to impose this, but perhaps I'm wrong. Here's how I've done it:
    I've created a single template called "testing-access", containing:
    http://testing\.mydomain\.com/.*
    I've then added a single Virtual Multihost entry as follows:
    Source Hostname (alias): testing
    Source Domain Name: mydomain.com
    Destination URL Prefix: http://testing2.mydomain.com
    Use This Template: testing-access
    At this stage, the virtual multihost works. I can access testing2.mydomain.com via testing.mydomain.com.
    Now I go to implement the ACL to, for testing purposes only, Deny all access to this virtual multihost. Remember this just testing to learn how to apply an ACL to a virtual multihost. Later, my intention is to block all http access (by way of Deny applied to http://.* resource ACL) via the proxy, except for the virtual multihosts. These virtual multihosts will also include access control based on different IP addresses. The thought is to have a different template for each virtual multihost then apply a set of ACE Allow conditions for the template's ACL.
    I go into Administer Access Control, select the "The template 'testing-access'" resource. I then click on Edit and add the ACL as follows:
    Action: Deny
    Users/Groups: anyone
    From Host: anyplace
    Rights: all
    Extra: N/A
    Continue: enabled
    I restart the server instance then attempt to access the virtual multihost, which I can. I cannot understand why this is not being blocked.
    I've tried changing Continue to be disabled but that hasn't helped either. It seems as though the ACL for http://.* (which incidentally by default has no ACL) is taking precedence. I've also tried adding to the template without success: http://testing2\.mydomain\.com/.*
    If I were to add an ACL to http://.* resource to Deny it blocks all http://.* requests. This is no good because effectively what I would like to do is block all http://.* access EXCEPT for those virtual multihosts I add. Each virtual multihost will need to have its own ACL to restrict based on IP. This is why I created a template for the one above. The objective would be to add several Allow ACEs depending on host, such that only those who are on this ACL can access the URL in the template (a virtual multihost, remember), anything else is blocked via the http://.*
    I only did the test at the top to learn how to successfully implement an ACL on a reverse multihost, by applying a Deny for everyone via the template ACL.
    Any ideas?

    In the case structure you can replace the 'success' button with the vi that you want to run. If you set the properties of the vi to 'show front panel when called' it will open and run when a log-in is successful.
    There are other ways to do this, this is one of the more simple ways.
    Ian

  • Taking a container element into a graphical mapping

    Hi experts,
    I need to take a simple container string value from a container step into a graphical mapping in my BPM.
    Does anybody knows how to do that?
    Regards
    Gonzalo

    Hi,
    Check the discussions
    Accessing container variable of BPM in Message Mapping function
    Re: How to use Container Variable across Maps
    Thanks!

  • Free Goods Determination

    Hello All,
                   Can any one please explain the process of Free Goods Determination with both exclusive/inclusive and the config settings .
    Thanks in advance
    Regards

    Hello Manoj
    <b>Please find the detailed explanation on Free goods below –</b></b>
    <b>Free goods</b> play a large role in price negotiations with your customers. As a result, free goods are determined to be placed in sales document automatically. In retail, chemical industry or consumer goods industry, it is common to provide discounts in the form of free goods.
    a.     <b>Inclusive Bonus Quantities –</b> Free goods can be part of order quantity not included in the invoice (billing). This is called inclusive bonus quantity. The ordered goods and the free goods both involve the same material. The quantity units of the free goods and the ordered goods must be the same.
    b.     <b>Exclusive Bonus Quantities –</b> Free goods that take the form of extra goods that are free of charge are called exclusive bonus quantities. In this case, the extra bonus quantities are not typically included in the invoice (billing). This can either be an additional quantity of the goods ordered or it can be another article. The exclusive free of goods appear in the SD document as an individual ‘free of charge’ item.
    Both types of free goods are treated in the same way in the sales order. The material that has been ordered is entered as a main item (TAN) and the free item (TANN) is automatically displayed as a sub item. The item category determines how the item is controlled later in the business process.
    The system re-reads the free goods master record in the sales order if the quantities in the main item change or if the pricing date changes. The system then deletes the sub items and re-creates them. Any manual changes to the free goods quantity are lost.
    <b>Note:</b> If pricing is re-run in the sales order, it does not affect the free goods determination.
    The condition technique is used for free goods. Free goods are generally regarded as a supplement to the pricing agreement for a material. You can define master records for free goods at any level such as material, customer/material, price list category/currency/material or customer hierarchy/material. The transaction code is VBN1 and condition type – NA00 which automatically gets converted into R100 during sales document processing.
    You can restrict a free goods condition master record for one level in many ways –
    a.     Validity period: the condition is only valid within this period
    b.     Lowest quantity: the condition comes into affect when this quantity has been exceeded.
    c.     Delivery control:
    d.     Calculation type:
    e.     Scales
    You can process different master data with the same key for inclusive and exclusive bonus quantities at the same time. You only need to press a button to switch between two types of discount. When you enter an exclusive bonus quantity, an extra entry line appears where you can enter the free material if it is not the same as the ordered material.
    When you specify a calculation rule, you decide how the system determines the free goods quantity in the sales order from the additional and document quantities.
    a.     The free goods quantity is the quantity that is calculated from the discount quantity (not the minimum quantity)
    b.     Additional quantity is the quantity delivered free of charge
    c.     Document quantity is the quantity entered by the person creating the sales order.
    three calculation rules are provided by the system i.e.
    <b>a.     Prorated –</b> the system calculates the free goods in right proportion to document the quantity. For example – if 20 units are offered for free for 100 units in the condition record and the customer orders 162 units, then the system calculates 162 * 20/100 (rounded off) as free goods.
    <b>b.     Related to units –</b> 20 units are given for free for every 100 units ordered. In the above case the customer would only get 20 units free as he placed an order for 162 units.
    <b>c.     Whole units –</b> the customer would not get any free goods if he doesn’t match the exact quantity proposed. That is, in the above case, the customer doesn’t get any free goods as the ordered quantity did not match 100 units. Anything below or over the mark will not be qualified for a free good.
    Calculation rules are stored in the system in the form of ABAP/4 code. You can also define your own rules by using transaction code VOFM (system modifications).
    The free goods determination procedure contains a list of condition types for the free goods. One access sequence is assigned to each condition type and each access sequence contains one ore more accesses and each access contains exactly one table. This represents the search key that the system uses to search for valid condition records.
    The free goods determination procedure is assigned to sales area + document pricing procedure + customer pricing procedure just as in the case of pricing procedure assignment as free goods are generally regarded as a supplement to the pricing agreement for a material.
    If the search is successful, the system generates a sub item for free goods in the document. The item category is assigned with the item category usage FREE.
    You can activate an analysis of the free goods determination in the sales document. The system then displays detailed information on how the free goods were determined.
    <b>Reward points if helpful</b>
    Regards
    Sai

  • Problem with binding in h:dataTable

    Hi
    I have a problem with h:dataTable, where the table rows are bound to objects (Bean$Line) nested within a backing bean (Bean).
    JSP:
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <html>
      <f:view>
        <head>
          <link href="styles.css" rel="stylesheet" type="text/css"/>
          <title>Sandbox</title>
        </head>
        <body>
          <h:form>
            <h:dataTable value="#{bean.lines}" var="line">
              <h:column>
                <h:outputText value="#{line.id}"/>
              </h:column>
              <h:column>
                <!-- using value = line.lineSelected here works (assuming boolean property Line.lineSelected) --/>
                <h:selectBooleanCheckbox binding="#{line.lineSelected}"/>
              </h:column>
            </h:dataTable>
          </h:form>
        </body>
      </f:view>
    </html>Bean:
    package com.test;
    import java.util.ArrayList;
    import java.util.List;
    import javax.faces.component.UISelectBoolean;
    public final class Bean {
      private final List<Line> lines;
      public Bean() {
        lines = new ArrayList<Line>();
        lines.add(new Line("one"));
        lines.add(new Line("two"));
        lines.add(new Line("three"));
      public List<Line> getLines() {
        return lines;
       * Nested class in order to access containing class
       * properties etc.
      public static class Line {
        //private boolean lineSelected = false;
        private UISelectBoolean lineSelected;
        private String id;
        public Line(String id) {
          this.id = id;
        /*public boolean isLineSelected() {
          return lineSelected;
        public void setLineSelected(boolean lineSelected) {
          this.lineSelected = lineSelected;
        public UISelectBoolean getLineSelected() {
          return lineSelected;
        public void setLineSelected(UISelectBoolean lineSelected) {
          this.lineSelected = lineSelected;
        public String getId() {
          return id;
        public void setId(String id) {
          this.id = id;
      } // Line
    }The setup works when I use value="#{line.lineSelected}" (assuming the property is defined as boolean in Bean$Line) but as soon as I use a binding, I get the following exception:
    com.sun.rave.web.ui.appbase.ApplicationException: javax.servlet.ServletException: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'line' resolved to null
    at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.cleanup(ViewHandlerImpl.java:594)
    at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:325)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
    faces_config:
    <faces-config version="1.2"
                  xmlns="http://java.sun.com/xml/ns/javaee"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
      <application>
        <locale-config>
          <default-locale>en_GB</default-locale>
          <supported-locale>en_GB</supported-locale>     
        </locale-config>
      </application>
      <managed-bean>
        <managed-bean-name>bean</managed-bean-name>
        <managed-bean-class>com.test.Bean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
    </faces-config>What am I missing here?
    Help much appreciated
    Lance

    Guys
    Thanks a lot, both of your replies are immensely instructive. Maybe a little background on what I'm trying to do. In the table, I have header rows with dependent line rows. When a check box is ticked in the header, I want the corresponding check boxes in the dependent lines to be checked automatically (in slave fashion and ideally without using JavaScript). My idea was to update the bound components (for the lines) from within the Bean (in response to change on the header). However, given there's only a single component for each column in the table, this of course doesn't make sense.
    I'm trying to get to the typical MVC workflow of a) user updates a View component, b) Controller detects the change and updates the Model, c) The Model fires a property change event, which the View detects and updates appropriately. What's the way to achieve this in JSF (by design)?
    Here's a simple fragment (which does not work):
            <h:dataTable value="#{bean.lines}" var="line">
              <h:column>
                <h:outputText value="#{line.id}"/>
              </h:column>
              <h:column>
                <!-- (1) This is the master and (2) should refresh on update here --/>
                <h:selectBooleanCheckbox onchange="submit()" value="#{line.lineSelected}"/>
              </h:column>
              <h:column>
                <!-- (2) This is the slave and I want this to update in response to a change of (1) above --/>
                <h:selectBooleanCheckbox value="#{line.slaveSelected}"/>
              </h:column>
            </h:dataTable>In the setter method for lineSelected, I'm setting slaveSelected to the new value but the View is not refreshing based on this. How do I get the View to update (each dependent line) based on the new values for slaveSelected?
    Thanks again
    Lance

  • A Way to List Oracle Server Instances

    Hello:
    I'm trying to find if there is a way to enumerate the Oracle instances that exist on a given physical machine. I want to do this programatically (C++). Of course, this is easy with SQL Server since there is the SQLDMOServer2 COM interface through which you can call "ListInstalledInstances()".
    Is there anyway to do this for Oracle? I realize that there probably won't be any kind of interface built into Windows MDAC components...but is there any option at all? So far, all of the documentation I have seen gives plenty of examples of using "OraSession" and so on. But, you have to know what you are looking for / connecting to first. What I really need is a way to first enumerate the Oracle Instances that are available and then a way to enumerate the Databases in each.
    Any help would be appreciated.

    Fair enough. In the end, what I am after is a listing
    of all databases (meaning the names of the files that
    belong to each Oracle database). I am assuming
    (perhaps incorrectly...I'm new to Oracle) that each
    Oracle instance has certain databases associated with
    it (even though it can only mount one at a time).Your assumption is basically incorrect.
    An Oracle instance is simply the set of programs running per the directives in the initialization file provided at start time.
    The initialization file, in turn tells the instance a) what the initial memory requirements are, and b) where to find the control file - which in turn contains a list of all the data files in the database.
    An Oracle database can contain any number of schemas, or named collections of database objects (tables, views, etc.) Each Oracle database contains one master catalog, called the SYS Schema, and any number of application-related catalogs or schemas. All schemas (catalogs, or SQL Server 'databases') are available while the database is open.
    Ideally there is only one database instance on a server, and the database it accesses contains all the data for a large number of applications in several schemas. (However, idealism rarely works these days - many applications are not written with an understanding of Oracle architecture.)
    Each Oracle database is controlled by, but is independent of, the instance software.
    The software is stored in an ORACLE_HOME. An Oracle Home contains one set of software. An ORACLE_HOME is essentially the unit of software maintenance - you patch or upgrade the software in one ORACLE_HOME. Oracle supports the idea of several ORACLE_HOMEs on a single machine, allowing you to have several versions (full versions or simply patch versions) of Oracle on the same machine.
    An upgrade of an Oracle database, may, in some cases be as simple as starting the software in the new ORACLE_HOME referencing the existing initialization file (by complete path), and running the 'master catalog upgrade' script - usually catupg.sql ...
    A database is independent of the software and the instance.
    The database consists of a set of files:
    - initialization file (init???.ora or spfile???.ora) which points to
    - the log/core directories (that contain traces), and
    - the archive log directory (for backups of the redo log files), and
    - the control file which points to the redo log files and the data files.
    The very rough equivalent to SQL Server database files would be Oracle tablespace data files. A tablespace is a logical construct, in many ways resembling a disk LVM, to which you can map (add) physical files. The physical files may be placed anywhere, and may be entire raw devices or individual files on a file system.
    Tables, indexes, and other storage consuming things (generically called segments) are assigned to tablespaces, and therefore stored in the data files. However, a tablespace may contain any number of segments, so there is no simple map available unless enforced manually by the DBA.
    In answer to your question, you would need to:
    1) determine all the ORACLE_HOMEs on the machine (from the Windows registry or *nix oratab [assuming reliable DBA]);
    2) for each ORACLE_HOME, determine all the initialization (init???.ora and/or spfile???.ora) files;
    3) for each initialization file, determine the control file;
    4) for each control file, determine all the data files, redo log files and archive log files (if using rman)
    Note that, except for the init???.ora, all of the files referenced are 'binary' and must be opened carefully.
    I'd strongly encourage you become more familiar with the Oracle Architecture before attempting much more. It diverges a LOT more once you get into transactions, and a very large chunk of your existing SQL Server experience will lead you down a path of very poorly performing Oracle applications.

  • Urgent need for Free Goods configuration

    Hi,
         i need a document which have steps to configure free goods.
    i created a condition record using VBN3 using condition NA00 but free goods doesn't come.
    Requirement is
    Customer buys 10 items whose item catg is TAN and 1 item is free.  so cust pays only for 9 items.
    free good is not coming as sub item. i got stuck. please help .
    anybody plz send document which have steps to configure.
    my email id is [email protected]
    Thanks
    Afsar

    Free Goods Determination in Sales Order
    Free goods has the following limitations:
    - Free goods can only be supported on a 1:1 ratio. This means that an order item can lead to a free goods item. Agreements in the following form are not supported: ‘With material 1, material 2 and material 3 are free of charge‘ or ‘If material 1 and material 2 are ordered at the same time, then material 3 is free of charge‘.
    - Free goods are not supported in combinations with material structures (for example, product selection, BOM, variants with BOM explosion).
    - Free goods are only supported for sales orders with document category C (for example, not quotations).
    - Free goods are not supported for deliveries without reference to a sales order.
    - Free goods cannot be used in make-to-order production, third-party order processing and scheduling agreements.
    - If you defined a free goods for variants in a generic article (only SAP Retail), you can only process the variants in the purchase order and goods receipt individually (as single articles). In other words, you cannot process them using the generic article matrix.
    4.6x
    Not all Sales Order can be used for free goods determination.  You have to check the SD document category if it does not work.  Only category 'C' are supported.  Check transaction VOV8.
    Assume that you want to configure an inclusive FREE goods routine.  Customers must order a minumum quantity of 5 before any free goods can be assign.  For every quantity of 3, the customer will be given 1 free goods.
    WC07 - Maintain Number Range Intervals
    e.g.
    No   From number       To number
    01    0000010000         0000099999
    IMG -> Sales and Distribution -> Basic Functions -> Free Goods ->
    Maintain Access Sequences
    New Entries
    Acsq
    NA00
    Save
    Maintain Condition Types
    New Entries
    Ctyp   Name             AcSq
    FREE  Free Goods    NA00
    Save
    Maintain Pricing Procedures
    Procedures
    New Entries
    Procedure   Description
    FREE           Free Goods
    Select Procedure FREE then click Control data
    Step   Cntr   Ctyp
    10       10      FREE
    V/N6 - Activate Free Goods Determination
    Assign Order Type OR with Document Procedure A with Procedure FREE
    VBN1 - Create free goods determination
    e.g.  FREE inclusive
    Material  Min qty   From   are free good   Calc Rule   Free Goods
                           5           3                1                      1                1
    In this example, if you create a Sales Order for a quantity of 10, SAP will prompt you 7 as the customer order qty and 3 will be free.  Customer only pay for the 7 quantity.
    Free goods –
    Free goods play a large role in price negotiations with your customers. As a result, free goods are determined to be placed in sales document automatically. In retail, chemical industry or consumer goods industry, it is common to provide discounts in the form of free goods.
    Inclusive Bonus Quantities – Free goods can be part of order quantity not included in the invoice (billing). This is called inclusive bonus quantity. The ordered goods and the free goods both involve the same material. The quantity units of the free goods and the ordered goods must be the same.
    Exclusive Bonus Quantities – Free goods that take the form of extra goods that are free of charge are called exclusive bonus quantities. In this case, the extra bonus quantities are not typically included in the invoice (billing). This can either be an additional quantity of the goods ordered or it can be another article. The exclusive free of goods appear in the SD document as an individual ‘free of charge’ item.
    Both types of free goods are treated in the same way in the sales order. The material that has been ordered is entered as a main item (TAN) and the free item (TANN) is automatically displayed as a sub item. The item category determines how the item is controlled later in the business process.
    The system re-reads the free goods master record in the sales order if the quantities in the main item change or if the pricing date changes. The system then deletes the sub items and re-creates them. Any manual changes to the free goods quantity are lost.
    Note: If pricing is re-run in the sales order, it does not affect the free goods determination.
    The condition technique is used for free goods. Free goods are generally regarded as a supplement to the pricing agreement for a material. You can define master records for free goods at any level such as material, customer/material, price list category/currency/material or customer hierarchy/material. The transaction code is VBN1 and condition type – NA00 which automatically gets converted into R100 during sales document processing.
    You can restrict a free goods condition master record for one level in many ways –
    a. Validity period: the condition is only valid within this period
    b. Lowest quantity: the condition comes into affect when this quantity has been exceeded.
    c. Delivery control:
    d. Calculation type:
    e. Scales
    You can process different master data with the same key for inclusive and exclusive bonus quantities at the same time. You only need to press a button to switch between two types of discount. When you enter an exclusive bonus quantity, an extra entry line appears where you can enter the free material if it is not the same as the ordered material.
    When you specify a calculation rule, you decide how the system determines the free goods quantity in the sales order from the additional and document quantities.
    a. The free goods quantity is the quantity that is calculated from the discount quantity (not the minimum quantity)
    b. Additional quantity is the quantity delivered free of charge
    c. Document quantity is the quantity entered by the person creating the sales order.
    Three calculation rules are provided by the system i.e.
    Prorated – the system calculates the free goods in right proportion to document the quantity. For example – if 20 units are offered for free for 100 units in the condition record and the customer orders 162 units, then the system calculates 162 * 20/100 (rounded off) as free goods.
    Related to units – 20 units are given for free for every 100 units ordered. In the above case the customer would only get 20 units free as he placed an order for 162 units.
    Whole units – the customer would not get any free goods if he doesn’t match the exact quantity proposed. That is, in the above case, the customer doesn’t get any free goods as the ordered quantity did not match 100 units. Anything below or over the mark will not be qualified for a free good.
    Calculation rules are stored in the system in the form of ABAP/4 code. You can also define your own rules by using transaction code VOFM (system modifications).
    The free goods determination procedure contains a list of condition types for the free goods. One access sequence is assigned to each condition type and each access sequence contains one ore more accesses and each access contains exactly one table. This represents the search key that the system uses to search for valid condition records.
    The free goods determination procedure is assigned to sales area + document pricing procedure + customer pricing procedure just as in the case of pricing procedure assignment as free goods are generally regarded as a supplement to the pricing agreement for a material.
    If the search is successful, the system generates a sub item for free goods in the document. The item category is assigned with the item category usage FREE.
    You can activate an analysis of the free goods determination in the sales document. The system then displays detailed information on how the free goods were determined.
    Reward points if useful
    Message was edited by:
            SHESAGIRI GEDILA

Maybe you are looking for