Properties.store(OutputStream) destroys order and comments of *.properties

Hi!
After searching for hours in different forums I have come to the point, that either
1)I'm not good in searching forums
2)This problem has not been discussed yet
no 1 seems much more likely...
So, here it it is:
I'm trying to implement a kind of property-loader which loads keys from a text file (in my case called *.properties file) into the java.util.properties class, manipulates it, and then stores it again.
Apart from my manipulation, I want the *.properties file to stay exactly the same.
As I have it now store(FileOutputStream) seems to changes many things in the file: It adds the date, deletes the comments, changes the order of the keys
Here is the test code:
public class IoTestMain {
     public static void main(String[] args)
         Properties properties = new Properties();
         try {
             properties.load(new FileInputStream("C:\\eclipse\\workspace\\IoTest\\iotest\\filename.properties"));
             properties.setProperty("Test1","1");            
         } catch (IOException e) {
              e.printStackTrace();
         try {
             properties.store(new FileOutputStream("C:\\eclipse\\workspace\\IoTest\\iotest\\filename.properties"),null);
         } catch (IOException e) {
              e.printStackTrace();
}This changes my "beautiful" filename.properties file from
[filestart]
Test2=1
#comment
!comment
Test1=2
[fileend]
to that:
[filestart]
#Wed Sep 14 12:23:10 CEST 2005
Test1=1
Test2=1
[fileend]
I'd like to have a properties file with comments and defined order. Does someone have suggestions?
Regards
Phil

Properties is not meant to keep the order of it's entries or comments. It's a very simple tools for very simple requirements. It provides only the very simple function of mapping keys to strings, no fancy "keep the format when storing" and no "remember the comments to write it back".
Ceci hinted at java.util.prefs.Preferences as the prefered way to store user preferences ('though I've never used it, so I can't comment on it).

Similar Messages

  • Can i pre order and purchase an iPhone 6 from the canada apple store online and have the phone shipped to ontario using a master card from another country?

    can i pre order and purchase an iPhone 6 from the canada apple store online and have the phone shipped to ontario using a master card from another country?

    No

  • Reserved for Store Pickup, No pre-order and Ship to Store!

    I'm reading all these discussions and my head is exploding. I was up @ 4am yesterday banging away like you all.
    My criteria was this; I was eligible for upgrade @ $199 with the activation fee waived (sweet). I wanted to pick the phone up at my Apple store because I trust it more then brown.
    When I clicked the pre-order link, there was NO option to have it sent to the store, it could only be sent to my house. Let me repeat that, NO option to send anywhere but house. It even says it "Pre-order your iPhone 4 from the Apple Online Store and we’ll ship it free — directly to your door and ready to use."
    So I went to the reserve in store process. There was NO WAY TO PAY for it up front. Let me repeat that; NO WAY TO PAY for the reserved phone. So I received my confirmation email and said there is a phone waiting for me on the 24th!
    I called 2 Apple stores and chatted online with 3 Apple support people and they ALL, every single 1 of them, said the same exact thing. The only way to pickup in the store is to go through the reservation process. The store will have 2 lines, reserved and general. The reserved will be there all day for you to pick up.
    So, does anyone have some proof that you pre-ordered it, paid for it and have it sent to your Apple store, not your home to pick up?

    timmayb wrote:
    I got to the page state,"iPhone is reserved for pickup." Please bring government issued ID, debit or credit card...... No email received. Do I really have one on hold????
    This time for this phone things are very confusing. I preordered yesterday for in store pickup got through the verification process saw that all my data and cell plan info were correct. Then at the end I got the message "see you at the store". Bring picture id. Nothing else, no confirming email as of today, nothing showing under my account in the on line store. I just came from the store that I picked for my phone to go to and there is nothing in their system either. So I went down to the AT&T store in that mall and preordered it there, no issues. It's just as well since I'm ordering it under my wife's number to get the discount and would have to go there any way to make the switch. I've read other posts from people that saw the same thing on line that I did when they ordered, "see you at the store" but no other confirmation. I'm going to assume that it means the order did not go through. So keep that in mind if you got what I did.

  • If i order iphone 5s online, can i cancel the order and purchase in store?

    If I am able to order the iphone 5S online Friday and then am able to later in the day Friday locate on in a store locally, can I cancel the online order and immeidately have my eligible upgrade available so I can purchase it in store?

    Yep, you shouldn't have any problems doing that.

  • HT5312 The option to send an email to reset your security questions and answers will not be available if a rescue email address is not provided. You will need to contact iTunes Store support in order to do so.

    The option to send an email to reset your security questions and answers will not be available if a rescue email address is not provided. You will need to contact iTunes Store support in order to do so.

    Apple ID security issues -
    Call Apple Care and ask for the Account Security Team. They can assist you with your issue.

  • HT3702 can I order and pay online for an Ipad air and have someone else picking it up in a store? what documentation must he present?

    can I order and pay online for an Ipad air and have someone else picking it up in a store? what documentation must he present?

    http://store.apple.com/us/browse/home/personal_pickup
    Suggest you call the Apple Store.
     Cheers, Tom

  • Can I cancel my online order and buy my MacBook at a store?

    Hi. I recently ordered a MacBook with 4GB of RAM online. I have some free time tomorrow and would rather cancel the online order (which has not yet shipped) and go to the Apple store 45mins from me and buy it there. I have some questions:
    1. Can you buy the 4GB RAM MacBook in the store, or is it online only?
    2. Can I use the financing card (Baraclay, I think?) to purchase the MacBook in person even if I do not have a physical copy? If so, how?
    3. How long will it take to erase the credit charge on the financing card if I do cancel my order?
    Thanks.

    I'd much prefer to have correct answers in threads so I decided to do some detective work for you. I decided to make two phone calls this morning, one to the "manager on the floor" at an Apple Retail Store and the other to the Apple Online Store Sales & Support group. Both people I spoke with were aware of my intentions on the phone call and that I would be quoting them in this thread.
    If I buy a computer online, can I return/exchange it at the store?
    It depends. If the machine is a standard configuration (has a part number that starts with MBxxx/A) and is not damaged, then yes we can accept it as a return/exchange in store. If it has a customer configuration (has a part number that stars with Zxxx) then no, we are unable to offer an exchange/refund at the store for that unit. If it is DOA we can coordinate a service/replacement with AppleCare.
    Can I upgraded to 4GB of RAM in-store?
    Absolutely, we stock RAM specifically for this upgrade and charge the same price as online. You're responsible to buy the computer and the RAM upgrade first and then we will install it for you.
    Can I use the Barclay's card, even if I don't have it my possession?
    Unfortunately not, we must have the physical card in order to verify the legitimacy of the transaction.
    Are all sales final? (I asked anyways, despite the link provided was for an iTunes purchase and we're talking about MacBooks)
    Absolutely not, you have 14-days to return/exchange the product if you're not satisfied. Best part, we don't charge a restocking fee anymore.
    When does Apple bill my credit card? (phone call into AOS)
    We bill the card when the unit ships. However, the order must be cancelled prior to its status being changed into "prepared for shipment" as this means we've already allocated the part for shipment and at which point it cannot be cancelled.
    Hopefully that clears things up. I figured not much had changed since I use to work for Apple, but rather than being smug about it I wanted to hear it "from the staff at the Apple Store." As with anything you read on the Internet, take it for what it's worth.

  • HT5622 Apple store doesn't let me change my region , it saids I have pending bank order , and need to complete my pending bank order . How can I cancel my bank order ? Or change my region? It's been like this for 3weeks already and I cannot update any of

    Apple store doesn't let me change my region , it saids I have pending bank order , and need to complete my pending bank order . How can I cancel my bank order ? Or change my region? It's been like this for 3 weeks already and I cannot update any of my apps .
    Thanks

    I account the same problem.
    I can't cancel pendding orders and can't change my region.

  • Where is the best place to store Contacts in order to later print labels and such?

    Where is the best place to store contacts in order to later print labels etc?

    I found this excellent article last week describing how to print labels from your Mac's Contacts application:
    How-to: Print customized address labels for holiday card envelopes ...

  • Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are

    Vendor batch No.  : Transaction ZJPMPU322
    (Background)     
    There are "vendor batch" and "batch" fields in Goods-in-order and Goods-in-plan lists (transaction ZJPMPU322). Values for these fields are retrieved from inbound delivery document (transaction VL33N). After core 7.0 upgrade, "vendor batch" is not copied from "batch" in inbound delivery document any more so that nothing appears in the vendor batch field in the lists.
    (Change request)
    Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are retrieved from "batch" in inbound delivery document ONLY IF "vendor batch" is blank in the inbound delivery document.
    (Current design)
    Batch is retrieved from LIPS-CHARG
    Vendor batch is retrieved from LIPS-LICHN
    (If there is no record in LIPS, blank will be printed out for both fields)
    (After change)
    Batch is retrieved from LIPS-CHARG
    Vendor batch is retrieved from LIPS-LICHN only if LIPS-LICHN is not blank.
    If LIPS-LICHN is blank, vendor batch is retrieved from LIPS-CHARG.
    (If there is no record in LIPS, blank will be printed out for both fields. If both LIPS-CHARG and LIPS-LICHN are blank, blank will be printed out for both fields),
    Following is the program:
    REPORT zjpmrpu322  MESSAGE-ID  zjpm001
                  NO STANDARD PAGE HEADING
                            LINE-COUNT  50
                            LINE-SIZE  255.
    *&   Development ID: PU_DD_322_LJP                                     *
    *&   Report        : ZJPMRPU322                                        *
    *&   The Purpose of this program is to print the  Goods-in-order list  *
    *&   and the Goods in plan list for raw materials, materials purchase  *
    *&   etc at the Sasayama plant, Japan.                                 *
    *&   Change Log:                                                       *
    *&   Init    Who              Date        Text                         *
    *&   PV      P V R S Varma    07-May-2003  Initial Version             *
    *&   DU      D.Usui           2004/02/26   CR No. 1432                 *
    *&   DU      D.Usui           2004/03/08   CR No. 1447                 *
    *&   DU      D.Usui           2004/05/06   CR No. 1591                 *
                            Constants
    CONSTANTS:
    c_werks   LIKE ekpo-werks VALUE 'JP01',    "Plant code - Sasayama plant
    c_id      LIKE thead-tdid VALUE 'F02',     "Text ID for Info record
    c_object  LIKE thead-tdobject VALUE 'EKPO',"Object of text for info rec
    *c_zzjp_r1 LIKE marc-zzjp_re1 VALUE 'GMP',  "Goods in plan- Domestic
    *c_zzjp_r2 LIKE marc-zzjp_re1 VALUE 'GMPI', "Import sales order document
    c_plus    TYPE c VALUE '',                "Holding '' sign
    c_spras   LIKE makt-spras VALUE 'J',       "Language key Japan
    *c_device(7)    type c value 'PRINTER',    "Device type
    c_form(16)     TYPE c VALUE 'ZJPMPU305',  "Form name
    c_ele_gmp(4)   TYPE c VALUE 'GMP',        "GMP Text element
    c_ele_gmpi(4)  TYPE c VALUE 'GMPI',       "GMPI Text element
    add begin CR1432
    c_ele_bgmp(4)  TYPE c VALUE 'BGMP',       "BGMP
    c_ele_bgmpi(5) TYPE c VALUE 'BGMPI',      "BGMPI
    add end CR1432
    c_function(3)  TYPE c VALUE 'SET',        "Function
    c_type(4)      TYPE c VALUE 'BODY',       "Window area in main window
    c_win_head(7)  TYPE c VALUE 'HEADING',    "Heading window
    c_win_shead(7) TYPE c VALUE 'SUBHEAD',    "sub heading window
    c_win_fot1(7)  TYPE c VALUE 'FOOTER1',    "Footer 1 window
    c_win_main(4)  TYPE c VALUE 'MAIN',       "Main window
    c_comd(8)      TYPE c VALUE 'NEW-PAGE',   "New-page command
    c_zar TYPE ekko-bsart VALUE 'ZAR',
    c_x            TYPE c VALUE 'X',          "Indicator for print options
    c_f            TYPE c VALUE 'F',          "Indicator for Purchase Order
    add begin CR1591
    Deletion indicator in purchasing document
    c_loekz(1)     TYPE c VALUE 'L',
    For ranges tables
    c_sign_i(1)    TYPE c VALUE 'I',          "Sign(include)
    c_op_eq(2)     TYPE c VALUE 'EQ',         "Option(=)
    Confirmation category
    c_ebtyp_ab(2)  TYPE c VALUE 'AB',         "Order acknowledgment
    add end CR1591
    c_la(2)        TYPE c VALUE 'LA'.         "Indicator for Inbound deliver
                          Database Tables
                        Vaiables / Internal tables                       *
    Internal table to store PO information
    Not used after CR1591
    DATA: BEGIN OF t_purc OCCURS 0,
             ebeln LIKE eket-ebeln, "Purchasing Document Number
             ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
             eindt LIKE eket-eindt, "Item delivery date
             menge LIKE eket-menge, "Scheduled quantity
             charg LIKE eket-charg, "Batch number
             matnr LIKE ekpo-matnr, "Material code
             werks LIKE ekpo-werks, "Plant
             meins LIKE ekpo-meins, "Unit of measure
             lifnr LIKE ekko-lifnr, "Vendor number
          END OF t_purc.
    Internal table to store material description.
    DATA: BEGIN OF t_makt OCCURS 0,
            matnr LIKE makt-matnr,  "Material code
            maktx LIKE makt-maktx,  "Material description
          END OF t_makt.
    Internal table for storage of final EKET data
    DATA: BEGIN OF t_eket OCCURS 0,
             ebeln LIKE eket-ebeln, "Purchasing Document Number
             ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
             ebelp_ex(6) TYPE n,    "Extended ebelp with length 6
             eindt LIKE eket-eindt, "Item delivery date
             menge LIKE eket-menge, "Scheduled quantity
             dabmg LIKE ekes-dabmg, " Delivered Quantity
             charg LIKE eket-charg, "Batch number
             matnr LIKE ekpo-matnr, "Material code
             werks LIKE ekpo-werks, "Plant
             maktx LIKE makt-maktx, "Material Description-- jp check
             etens LIKE ekes-etens, "Sequence Number
             meins LIKE ekpo-meins, "Unit of measure
             lifnr LIKE ekko-lifnr, "Vendor number
             vbeln LIKE ekes-vbeln,
             vbelp LIKE ekes-vbelp,
             vpnam(40) TYPE c,      "Vendor product name
          END OF t_eket.
    Internal table for extraction of data from EKES
    Not used after CR1591
    DATA: BEGIN OF t_ekes OCCURS 0,
             ebeln LIKE ekes-ebeln, "Purchasing Document Number
             ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
             etens LIKE ekes-etens, "Sequence No
             eindt LIKE ekes-eindt, "Item delivery date
             menge LIKE ekes-menge, "Scheduled Quantity
             dabmg LIKE ekes-dabmg, " delivered quantity
             vbeln LIKE ekes-vbeln,
             vbelp LIKE ekes-vbelp,
             mark TYPE c,
          END OF t_ekes.
    Internal table for extraction of data from EKES
    Not used after CR1591
    DATA: BEGIN OF t_ekes_temp OCCURS 0,
             ebeln LIKE ekes-ebeln, "Purchasing Document Number
             ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
             etens LIKE ekes-etens, "Sequence No
             eindt LIKE ekes-eindt, "Item delivery date
             menge LIKE ekes-menge, "Scheduled Quantity
          END OF t_ekes_temp.
    Internal table for storing data from MLGN table.
    DATA: BEGIN OF t_mlgn OCCURS 0,
             matnr LIKE mlgn-matnr, "material code
             lhmg1 LIKE mlgn-lhmg1, "Standard pallet size
             lhme1 LIKE mlgn-lhme1, "Unit of measure
             lety1 LIKE mlgn-lety1, "tower
             ltkze LIKE mlgn-ltkze, "Storage location
          END OF t_mlgn.
    Internal table for storing data from MARM table.
    DATA: BEGIN OF t_marm OCCURS 0,
             matnr LIKE marm-matnr, "material code
             umrez LIKE marc-zzjp_cas_size, "Std package unit
             meins LIKE ekpo-meins, "alternate unit
          END OF t_marm.
    Internal table for storing data from MARC table.
    DATA: BEGIN OF t_marc OCCURS 0,
             matnr LIKE marc-matnr,               "Material code
             zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
             zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
             zzjp_aprn     LIKE marc-zzjp_aprn,   "Apperance
             zzjp_re1     LIKE marc-zzjp_re1,     "Heading
          END OF t_marc.
    Internal table for storing data from lfa1 table.
    DATA: BEGIN OF t_lfa1 OCCURS 0,
             lifnr LIKE lfa1-lifnr, "Vendor code
             name1 LIKE lfa1-name1, "Vendor name
          END OF t_lfa1.
    Internal table for Storing data from LIPS table.
    DATA: BEGIN OF t_lips OCCURS 0,
             vbeln LIKE lips-vbeln, "Delivery document no
             posnr LIKE lips-posnr, "Item number for Delivery document
             charg LIKE lips-charg, "Batch number
             lichn LIKE lips-lichn, "Vendor Batch number
          END OF t_lips.
    Internal table for storing the final display data.
    DATA: BEGIN OF t_display OCCURS 0,
            g_checkbox  type  c,       "check box for selection of records
             ebeln LIKE ekes-ebeln,      "Purchasing Document Number
             ebelp LIKE ekes-ebelp,      "Item Number of Purchasing Document
             etens LIKE ekes-etens,      "Sequence No
             eindt LIKE eket-eindt,      "Item delivery date
             menge LIKE eket-menge,      "Scheduled Quantity
             vpnam(40) TYPE c,          "Vendor product name
             lifnr LIKE ekko-lifnr,      "Vendor code
             name1 LIKE lfa1-name1,      "Vendor name
             meins LIKE ekpo-meins,      "Unit of measure
             matnr LIKE ekpo-matnr,      "Material Number
             maktx LIKE makt-maktx,     "Material Description-- jp check
             charg LIKE lips-charg,      "Batch number
             lichn LIKE lips-lichn,      "Vendor Batch number
             lhmg1 LIKE mlgn-lhmg1,     "standard pallet size
             lhme1 LIKE mlgn-lhme1,      "Unit of standard pallet
             lety1 LIKE mlgn-lety1,     "tower
             ltkze LIKE mlgn-ltkze,      "Storage location
             umrez LIKE marc-zzjp_cas_size,      "Std package unit
             meinh LIKE ekpo-meins,      "alternate unit
             zzjp_nyu_sop LIKE marc-zzjp_nyu_sop,      "Product Std number
             zzjp_dos_frm LIKE marc-zzjp_dos_frm,      "Dosage form
             zzjp_aprn     LIKE marc-zzjp_aprn,          "Apperance
             zzjp_re1     LIKE marc-zzjp_re1,           "Heading
             std_pac_no(13) TYPE n,            "Std receipt package no
             tot_std_pt(13) TYPE n,             "Total no of std pallets
    add begin CR1447
    Add new field 'Goods-in-order','Item' for goods in plan list
             vbeln like ekes-vbeln,     "Goods-in-order
             vbelp like ekes-vbelp,     "Item
    add end CR1447
          END OF t_display.
    Internal table for storing the final display data -Goods in order list
    DATA: BEGIN OF t_display1 OCCURS 0,
             ebeln LIKE ekes-ebeln,      "Purchasing Document Number
             ebelp LIKE ekes-ebelp,      "Item Number of Purchasing Document
             etens LIKE ekes-etens,      "Sequence No
             eindt LIKE eket-eindt,      "Item delivery date
             menge LIKE eket-menge,      "Scheduled Quantity
             vpnam(40) TYPE c,          "Vendor product name
             lifnr LIKE ekko-lifnr,      "Vendor code
             name1 LIKE lfa1-name1,      "Vendor name
             meins LIKE ekpo-meins,      "Unit of measure
             matnr LIKE ekpo-matnr,      "Material Number
             maktx LIKE makt-maktx,     "Material Description-- jp check
             charg LIKE lips-charg,      "Batch number
             lichn LIKE lips-lichn,      "Vendor Batch number
             lhmg1 LIKE mlgn-lhmg1,     "standard pallet size
             lhme1 LIKE mlgn-lhme1,      "Unit of standard pallet
             lety1 LIKE mlgn-lety1,     "tower
             ltkze LIKE mlgn-ltkze,      "Storage location
             umrez LIKE marc-zzjp_cas_size,      "Std package unit
             meinh LIKE ekpo-meins,      "alternate unit
             zzjp_nyu_sop LIKE marc-zzjp_nyu_sop,      "Product Std number
             zzjp_dos_frm LIKE marc-zzjp_dos_frm,      "Dosage form
             zzjp_aprn     LIKE marc-zzjp_aprn,          "Apperance
             zzjp_re1     LIKE marc-zzjp_re1,           "Heading
             std_pac_no(13) TYPE n,            "Std receipt package no
             tot_std_pt(13) TYPE n,             "Total no of std pallets
          END OF t_display1.
    Internal table for storing the final display data - Goods in plan list
    DATA: BEGIN OF t_display2 OCCURS 0,
             ebeln LIKE ekes-ebeln,      "Purchasing Document Number
             ebelp LIKE ekes-ebelp,      "Item Number of Purchasing Document
             etens LIKE ekes-etens,      "Sequence No
             eindt LIKE eket-eindt,      "Item delivery date
             menge LIKE eket-menge,      "Scheduled Quantity
             name1 LIKE lfa1-name1,      "Vendor name
             meins LIKE ekpo-meins,      "Unit of measure
             matnr LIKE ekpo-matnr,      "Material Number
             maktx LIKE makt-maktx,     "Material Description-- jp check
             charg LIKE lips-charg,      "Batch number
             lichn LIKE lips-lichn,      "Vendor Batch number
             lhmg1 LIKE mlgn-lhmg1,     "standard pallet size
             lety1 LIKE mlgn-lety1,     "tower
             ltkze LIKE mlgn-ltkze,      "Storage location
             tot_std_pt(13) TYPE n,             "Total no of std pallets
    add begin CR1447
    Add new field 'Goods-in-order','Item' for goods in plan list
             vbeln like ekes-vbeln,     "Goods-in-order
             vbelp like ekes-vbelp,     "Item
    add end CR1447
          END OF t_display2.
    add begin CR1591
    RANGES: r_matnr FOR mara-matnr,   "for p_matnr
            r_ebeln FOR ekpo-ebeln.   "for p_ebeln
    add end CR1591
    DATA: line TYPE i.            " line number
    DATA: g_checkbox  TYPE  c.       "check box for selection of records
    DATA: g_tab LIKE sy-index.    "variable to hold index
    DATA  g_tabix LIKE sy-tabix.  "holder for table index
    Printing Options.
    DATA: lw_pr_options LIKE itcpo.
    *lw_pr_options-tddest = 'SA03'.      " Print Device Name
    lw_pr_options-tdpreview = 'X'.      " Print Preview
    lw_pr_options-tdnewid = 'X'.        " New Request
    lw_pr_options-tdlifetime = 2.       " Retention in Spool
                            Selection Screen                             *
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
    SELECT-OPTIONS:
      s_date  FOR sy-datum DEFAULT sy-datum. " Search period.
    PARAMETERS:
      p_matnr LIKE mara-matnr,               " Material code
      p_ebeln LIKE ekpo-ebeln.               " Purchase Document No
    SELECTION-SCREEN END OF BLOCK blk1.
                       Selection Screen Checks                           *
    AT SELECTION-SCREEN.
      IF ( s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( p_ebeln IS INITIAL ).
        MESSAGE e000 WITH 'Entry Must in atleast one of the Fields'(t00).
      ENDIF.
      IF ( NOT p_matnr IS INITIAL ) AND
         ( s_date IS INITIAL )      AND
         ( p_ebeln IS INITIAL ).
        MESSAGE e000 WITH 'Date should also be Entered'(t01).
      ENDIF.
    del begin CR1591
    This check is not found in original FS
    IF ( NOT p_matnr IS INITIAL ) AND
        ( s_date IS INITIAL ) AND
        ( NOT p_ebeln IS INITIAL ).
       MESSAGE e000 WITH 'Date should also be Entered'(t01).
    ENDIF.
    del end CR1591
                   Validations for Data selection                        *
    del begin CR1591
    Waste check
    IF ( NOT s_date IS INITIAL ) AND
        ( p_matnr IS INITIAL ) AND
        ( p_ebeln IS INITIAL ).
       PERFORM f_check_date_in_eket.
    ENDIF.
    IF ( NOT s_date IS INITIAL ) AND
        ( NOT p_matnr IS INITIAL ) AND
        ( p_ebeln IS INITIAL ).
       PERFORM f_check_matnr_in_plant.
       PERFORM f_check_matnr_in_ekpo.
       PERFORM f_check_date_in_eket.
       PERFORM f_check_matnr_in_plant.
       PERFORM f_check_matnr_in_ekpo.
    ENDIF.
    IF ( NOT s_date IS INITIAL ) AND
        ( NOT p_matnr IS INITIAL ) AND
        ( NOT p_ebeln IS INITIAL ).
       PERFORM f_check_matnr_in_plant.
       PERFORM f_check_matnr_in_ekpo.
       PERFORM f_check_date_in_eket.
       PERFORM f_check_ebeln_in_ekpo.
       PERFORM f_check_werks_in_ekpo.
    ENDIF.
    IF ( NOT p_ebeln IS INITIAL ) AND
        ( NOT s_date IS INITIAL ) AND
        ( p_matnr IS INITIAL ).
       PERFORM f_check_date_in_eket.
       PERFORM f_check_ebeln_in_ekpo.
       PERFORM f_check_werks_in_ekpo.
    ENDIF.
    IF ( NOT p_ebeln IS INITIAL ) AND
        ( s_date IS INITIAL ) AND
        ( p_matnr IS INITIAL ).
       PERFORM f_check_ebeln_in_ekpo.
       PERFORM f_check_werks_in_ekpo.
    ENDIF.
    del end CR1591
                         Data selection from Tables                      *
    START-OF-SELECTION.
      SET PF-STATUS 'SELECT'.
    add begin CR1591
    Set ranges tables
      PERFORM set_ranges.
    add end CR1591
    mod begin CR1591
    **Selection of PO data from EKET into internal table t_purc.
    PERFORM f_select_eket.
    **Selection of corresponding PO data for EKET from EKES into t_ekes.
    PERFORM f_select_ekes.
    **Selection of material desc from MAKT table into T_makt.
    PERFORM f_select_makt.
    **Copy the contents of t_purc and t_makt into t_eket table.
    PERFORM f_move_eket.
    **Replace the corresponding entries of t_eket with t_ekes.
    PERFORM f_update_eket.
    Selection of PO data from EKET into internal table T_EKET.
      PERFORM f_select_eket2.
    Selection of corresponding PO data from EKES appending to T_EKET.
      PERFORM f_select_ekes2.
    Selection of material desc from MAKT table into T_MAKT.
      PERFORM f_select_makt2.
    mod end CR1591
    *Selection of vendor product name.
      PERFORM f_select_vpnam.
    del begin CR1591
    No need
    **copy t_eket-ebelp into temporary variable.
    PERFORM f_copy_ebelp.
    del end CR1591
    *selection of data from MLGN table into t_mlgn internal table
      PERFORM f_select_mlgn.
    *selection of data from marm table into t_marm internal table
      PERFORM f_select_marm.
    *selection of data from marc table into t_marc internal table
      PERFORM f_select_marc.
    *selection of data from lfa1 table into t_lfa1 internal table
      PERFORM f_select_lfa1.
    *Selection of data from LIPS table into t_lips internal table
      PERFORM f_select_lips.
    del begin CR1591
    Don't display list screen when no data exists
    *END-OF-SELECTION.
    del end CR1591
    *lines = sy-linno - 1.
    *Collection of data into the final display internal table t_Display
      PERFORM f_collect_final.
    *Display the contents of t_display as a simple List
      PERFORM f_list_display.
    AT USER-COMMAND.
      PERFORM f_select_layout.
      INCLUDE zjpmipu315.
      INCLUDE zjpmipu316.
    *&      Form  f_check_MATNR_in_plant
         This Routine is to check if the the selected material code is
         available in the plant 'JP01'.
    FORM f_check_matnr_in_plant.
      DATA: l_matnr LIKE mara-matnr.
      SELECT matnr UP TO 1 ROWS FROM marc
                       INTO l_matnr
                       WHERE
                       matnr = p_matnr AND
                       werks = c_werks.
      ENDSELECT.
      IF l_matnr IS INITIAL.
        MESSAGE e000 WITH
        'The material is not available in '(t02)  c_werks 'plant'(t20).
      ENDIF.
    ENDFORM.                    " f_check_MATNR_in_plant
    *&      Form  f_check_EBELN_in_EKPO
          This Routine is to check if the Purchase order number selected
          is existing or not and if it exists, check if it is related to
          the plant 'JP01'.
    FORM f_check_ebeln_in_ekpo.
      DATA: l_ebeln LIKE ekpo-ebeln.
      SELECT ebeln UP TO 1 ROWS FROM ekpo
                    INTO l_ebeln
                    WHERE
                    ebeln = p_ebeln AND
                    werks = c_werks.
      ENDSELECT.
      IF l_ebeln IS INITIAL.
        MESSAGE e000 WITH
        'PO not available or not related to '(t03) c_werks 'plant'(t21).
      ENDIF.
    ENDFORM.                    " f_check_EBELN_in_EKPO
    *&      Form  f_check_matnr_in_ekko
          This routine is to check if any PO exist for the selected
          Material code.
    FORM f_check_matnr_in_ekpo.
      DATA: l_matnr LIKE ekpo-matnr.
      SELECT matnr UP TO 1 ROWS FROM ekpo
                       INTO l_matnr
                       WHERE
                       matnr = p_matnr.
      ENDSELECT.
      IF l_matnr IS INITIAL.
        MESSAGE e000 WITH
        'PO does not exist for the material no'(t04) p_matnr.
      ENDIF.
    ENDFORM.                    " f_check_matnr_in_ekpo
    *&      Form  f_check_date_in_eket
          This routine is to check if any purchase order exists
          with the selected
    FORM f_check_date_in_eket.
      DATA: l_eindt LIKE eket-eindt.
      SELECT eindt UP TO 1 ROWS FROM eket
                       INTO l_eindt
                       WHERE
                       eindt IN s_date.
      ENDSELECT.
      IF l_eindt IS INITIAL.
        MESSAGE e000 WITH
       'No PO exist with the selected delivery date '(t05).
      ENDIF.
    ENDFORM.                    " f_check_date_in_eket
    *&      Form  f_check_werks_in_ekpo
          This Routine is to check if the selected purchase order
          is associated with the plant JP01
    FORM f_check_werks_in_ekpo.
      DATA: l_ebeln LIKE ekpo-ebeln.
      SELECT ebeln UP TO 1 ROWS FROM ekpo
                       INTO l_ebeln
                       WHERE
                       werks = c_werks.
      ENDSELECT.
      IF l_ebeln IS INITIAL.
        MESSAGE e000 WITH
        'The selected P0 is not relevant to '(t06) c_werks 'plant'(t22).
      ENDIF.
    ENDFORM.                    " f_check_werks_in_ekpo
    *&      Form  f_select_eket
          Routine to collect data from EKET, EKPO, MAKT, EKKO tables
          using inner join and store the data into internal table
          t_PURC. The data selection is based on the selection screen's
          input.
    FORM f_select_eket.
      IF ( NOT s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( NOT s_date-low IS INITIAL ) AND
         ( NOT p_matnr IS INITIAL ) AND
         ( p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~matnr = p_matnr AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( NOT s_date-low IS INITIAL ) AND
         ( NOT p_matnr IS INITIAL ) AND
         ( NOT p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~matnr = p_matnr AND
                ekpo~ebeln = p_ebeln AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( NOT p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                ekpo~ebeln = p_ebeln AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( NOT s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( NOT p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~ebeln = p_ebeln AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ENDIF.
    IF sy-subrc <> 0.
       MESSAGE s000 WITH 'Data not found'(t07).
       LEAVE LIST-PROCESSING.
    ELSE.
      SORT t_purc.
    ENDIF.
    ENDFORM.                    " f_select_eket
    *&      Form  f_select_makt
          Routine to select the material description for all the
          materials present in T_purc table
    FORM f_select_makt.
      DATA: l_t_makt(4) TYPE c VALUE 'MAKT'.
      SELECT
          matnr
          maktx
      FROM
          makt
      INTO TABLE t_makt
          FOR ALL ENTRIES IN t_purc
      WHERE
         matnr = t_purc-matnr AND
         spras = c_spras.
      IF sy-subrc <> 0.
        MESSAGE s000 WITH
          'Relevant data not found in'(t09) l_t_makt 'table'(t23).
      ELSE.
        SORT t_makt.
      ENDIF.
    ENDFORM.                    " f_select_makt
    *&      Form  f_move_eket
          Routine to join data in T_PURC and T_MAKT tables into
          internal table T_MAKT.
    FORM f_move_eket.
      LOOP AT t_purc.
        t_eket-ebeln = t_purc-ebeln.
        t_eket-ebelp = t_purc-ebelp.
        t_eket-eindt = t_purc-eindt.
        t_eket-menge = t_purc-menge.
        t_eket-charg = t_purc-charg.
        t_eket-matnr = t_purc-matnr.
        t_eket-werks = t_purc-werks.
        t_eket-meins = t_purc-meins.
        t_eket-lifnr = t_purc-lifnr.
        READ TABLE t_makt WITH KEY matnr = t_purc-matnr
                                         BINARY SEARCH.
        IF sy-subrc = 0.
          t_eket-maktx = t_makt-maktx.
        ENDIF.
        APPEND t_eket.
        CLEAR t_eket.
      ENDLOOP.
    ENDFORM.                    " f_move_eket
    *&      Form  f_select_ekes
          Routine to select EKES data for all corresponding entries
          of T_EKET.
    FORM f_select_ekes.
      DATA: l_tabix TYPE i.
    IF NOT s_date IS INITIAL.
       SELECT
               ebeln
               ebelp
               etens
               eindt
               menge
        INTO   TABLE t_ekes
         FROM
               ekes
        WHERE
               eindt IN s_date.
    ELSE.
      DESCRIBE TABLE t_purc LINES l_tabix.
      IF l_tabix GT 0.
        SELECT
                ebeln
                ebelp
                etens
                eindt
                menge
                dabmg
                vbeln
                vbelp
         FROM
                ekes
         INTO   TABLE t_ekes
               FOR ALL ENTRIES IN t_eket
                FOR ALL ENTRIES IN t_purc
         WHERE
                ebeln = t_purc-ebeln AND
                ebelp = t_purc-ebelp AND
                eindt IN s_date.
              AND ebeln eq p_ebeln.
           and matnr in p_matnr.
      ENDIF.
      CLEAR l_tabix.
      IF NOT s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
        SELECT
                ekes~ebeln
                ekes~ebelp
                ekes~etens
                ekes~eindt
                ekes~menge
                ekes~dabmg
       APPENDING TABLE t_ekes
          FROM ekes
         WHERE
                eindt IN s_date AND
                ebeln EQ p_ebeln AND
                ebtyp EQ c_la.
      ELSEIF NOT s_date IS INITIAL AND p_ebeln IS INITIAL.
        SELECT
                    ekes~ebeln
                    ekes~ebelp
                    ekes~etens
                    ekes~eindt
                    ekes~menge
                    ekes~dabmg
           APPENDING TABLE t_ekes
              FROM ekes
             WHERE
                    eindt IN s_date AND
               ebeln EQ p_ebeln AND
                    ebtyp EQ c_la.
      ELSEIF s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
        SELECT
                    ekes~ebeln
                    ekes~ebelp
                    ekes~etens
                    ekes~eindt
                    ekes~menge
                    ekes~dabmg
           APPENDING TABLE t_ekes
              FROM ekes
             WHERE
               eindt IN s_date AND
                    ebeln EQ p_ebeln AND
                    ebtyp EQ c_la.
      ENDIF.
      IF sy-subrc = 0.
        SORT t_ekes.
      ENDIF.
      IF NOT t_ekes[] IS INITIAL.
        t_ekes_temp[] = t_ekes[].
        SORT t_ekes_temp BY ebeln ebelp.
        DELETE ADJACENT DUPLICATES FROM t_ekes_temp COMPARING ebeln ebelp.
        LOOP AT t_ekes_temp.
          READ TABLE t_purc WITH KEY ebeln = t_ekes_temp-ebeln
                                     ebelp = t_ekes_temp-ebelp.
          IF sy-subrc NE 0.
            CLEAR t_purc.
            SELECT SINGLE
                  eket~ebeln
                  eket~ebelp
                  eket~eindt
                  eket~menge
                  eket~charg
                  ekpo~matnr
                  ekpo~werks
                  ekpo~meins
                  ekko~lifnr
           INTO  CORRESPONDING FIELDS OF t_purc
          FROM
                   (  ( eket  INNER JOIN  ekko  ON
                    eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                    eketebelp = ekpoebelp  AND
                    ekpoebeln = ekkoebeln )
        WHERE
                 eket~ebeln = t_ekes_temp-ebeln
          AND    eket~ebelp = t_ekes_temp-ebelp
          AND    ekpo~elikz NE c_x
          AND    ekko~bstyp EQ c_f
          AND    ekko~bsart NE c_zar.
            IF sy-subrc EQ 0.
              APPEND t_purc.
              CLEAR t_purc.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      REFRESH: t_ekes_temp, t_ekes.
      CLEAR: t_ekes_temp, t_ekes.
    Once the header is filled up get the details from EKES
      SELECT ebeln ebelp  etens eindt menge dabmg vbeln vbelp
                         INTO TABLE t_ekes
                         FROM ekes
                         FOR ALL ENTRIES IN t_purc
                   WHERE ebeln EQ t_purc-ebeln.
    Mark the entries as 'X' which falls in the date range
      LOOP AT t_ekes.
        IF t_ekes-eindt IN s_date.
          t_ekes-mark = 'X'.
          MODIFY t_ekes INDEX sy-tabix TRANSPORTING mark.
        ENDIF.
      ENDLOOP.
      SORT t_ekes BY ebeln ebelp ASCENDING mark DESCENDING.
    Delete the entries from eket if no entries in EKES falls in the period
      LOOP AT t_purc.
        l_tabix = sy-tabix.
        READ TABLE t_ekes WITH KEY ebeln = t_purc-ebeln
                                   ebelp = t_purc-ebelp.
        IF sy-subrc EQ 0.
          IF t_ekes-mark NE 'X'.
            DELETE t_purc INDEX l_tabix.
          ENDIF.
        ENDIF.
      ENDLOOP.
    delete the entries from EKES which do not fall in the specified period
      DELETE t_ekes WHERE mark NE 'X'.
    ENDFORM.                    " f_select_ekes
    *&      Form  f_update_eket
          Routine to substitute relevant t_eket entries  with that of
          t_ekes entries.It does not modify the remaining entries for
          for which the corresponding values in t_ekes doesnot  exist.
    FORM f_update_eket.
      DATA: BEGIN OF lt_temp_eket OCCURS 0,
               ebeln LIKE eket-ebeln, "Purchasing Document Number
               ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
               eindt LIKE eket-eindt, "Item delivery date
               menge LIKE eket-menge, "Scheduled quantity
               dabmg LIKE ekes-dabmg,  " Delivered quantity
               matnr LIKE ekpo-matnr, "Material code
               maktx LIKE makt-maktx, "Material Description-- jp check
               etens LIKE ekes-etens, "Sequence Number
               meins LIKE ekpo-meins, "Unit of measure
               lifnr LIKE ekko-lifnr, "Vendor number
               charg LIKE eket-charg, " Batch number   Added by PD 08/08/03
               vbeln LIKE ekes-vbeln,
               vbelp LIKE ekes-vbelp,
            END OF lt_temp_eket,
            l_menge LIKE ekes-menge.
      LOOP AT t_eket.
        LOOP AT t_ekes WHERE ebeln = t_eket-ebeln
                        AND  ebelp = t_eket-ebelp.
    Added by PD 08/08/03
          MOVE t_eket-charg TO lt_temp_eket-charg.
    addition ends
          MOVE t_eket-ebeln TO lt_temp_eket-ebeln.
          MOVE t_eket-ebelp TO lt_temp_eket-ebelp.
          MOVE t_eket-meins TO lt_temp_eket-meins.
          CLEAR l_menge.
          l_menge = t_ekes-menge - t_ekes-dabmg.
          IF l_menge LE 0.
            CONTINUE.
          ELSE.
            MOVE l_menge TO lt_temp_eket-menge.
          ENDIF.
          MOVE t_ekes-eindt TO lt_temp_eket-eindt.
          MOVE t_ekes-etens TO lt_temp_eket-etens.
          MOVE t_eket-lifnr TO lt_temp_eket-lifnr.
          MOVE t_eket-maktx TO lt_temp_eket-maktx.
          MOVE t_eket-matnr TO lt_temp_eket-matnr.
          MOVE t_ekes-vbeln TO lt_temp_eket-vbeln.
          MOVE t_ekes-vbelp TO lt_temp_eket-vbelp.
          APPEND lt_temp_eket.
          CLEAR lt_temp_eket.
          CLEAR t_ekes.
        ENDLOOP.
        IF sy-subrc NE 0.
    Added by PD 08/08/03
          MOVE t_eket-charg TO lt_temp_eket-charg.
    addition ends
          MOVE t_eket-ebeln

    Dear
    Problem No 1 : we are working in a process industries with three plants each of them have three order type. we have define MRP group in "OPPR" then assign each MRP group to Orde types in "OPPE". Now the problem is whn i convert plan order in process order for any material systme automaticaly pick the order type PIi01.
    Answer :
    1.Please check the OPPR -Plant and MRP group -Select Order Type Button -Check what Order Type you have assinged here ( PI01( May be the default Process Order Type )
    2.If you are maintaing MRP group ( 0001 or 0002) , did you asisng the same in MRP1 view ?? because
    3.Did you maintain the similar Order type in OPKP -Define Production Scheduling Profile ? -This has highest priority .
    4.Did you maintain correct order type in OPJH-Maintain Order Type ??
    Refer the expert comments on the same issue : Strategy group to define production order type
    Problem No 2: 2nd Problem is system system is not creating plan order for prrevios dates. say i enter PIR for month of november from first november to 30th november and run MRP on 29th the sytem create plan order on 30th of november with exception message 30.
    Answer : You can plan the order in back dated , if you maitain Satrt date in the Past optiuon in OPU3/OPU5-Define Scheduling parameters .Goto OPU3 -Select the Order Type -Double click -Maintain 90-60 days in the Start Date in the past in Scheduling Control and Details scheduling tab .
    Hope it helps
    regards
    JH

  • Properties.store produces question marks

    Hi all,
    I'm using java 1.4. My code needs to write a property file, with some user input that contains international chars. The code needs to handle input in all languages, regardless of the system global locale or encoding settings.
    I'm using:
    props.setProperty("x", "<some international string>");
    props.store(myFileStream);I expected the output to be something like:
    x=\u1234\u4321...
    But the output in the file is:
    x=?????
    On the other hand, if I manually create the prop file like so:
    x=\u1234\u4321...
    Then the following code works as needed:
    props.load(myFileStream)
    props.getProperty("x")How do I make Properties.store behave as expected?

    I can't reproduce this here:
    this SSCCE:
    package snippet;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Properties;
    public class SSCCE {
         public static void main(final String[] args) throws IOException {
              Properties prop = new Properties()
              prop.put("foo", "&#3585;&#3586;&#3587;");
              FileOutputStream os = new FileOutputStream("foo.properties");
              prop.store(os, "foo");
              os.close();
    }Produces this output for me:
    #foo
    #Thu Oct 22 16:14:45 CEST 2009
    foo=\u0E01\u0E02\u0E03Where do you get your String from? Is it in the .java source file? If so, do you compile your code with the correct source encoding?
    Edit: and do you use an OutputStream or a Writer? I.e. what type is myFileStream?

  • MAKE TO ORDER AND VARAINT CONFIGURATION

    Hi firends,
    What is the difference between MAKE TO ORDER and  VARAINT CONFIGURATION   PROCESS, in which scenarios we are using both topics. Can any one explain about steps for make to order and variant configuration. i need complete process.

    PLS REFER LIN BELOW
    Make-to-Order (MTO)
    Purpose
    The planning strategies explained in this section are designed for the production of a material for a specific individual sales order. In other words, you do not want to produce finished products until you receive a sales order. This means that make-to-order strategies always support a very close customer-vendor relationship, because your sales orders are closely linked to production.
    The same relationship exists between the sales order and production that exists in a make-to-order environment. Make-to-order is also used in the following environments.
    Production using variant configuration
    Assemble-to-order
    Prerequisites
    Choose a make-to-order strategy, if:
    The materials are segregated. In other words, they are uniquely assigned to specific sales orders.
    Costs must be tracked at sales order level and not on material level.
    Make-to-order strategies should always be combined with lot-size key EX (lot-for-lot. Rounding values should not be used. If you maintain rounding values, they have no effect due to the make-to-order properties of these strategies.
    Process Flow
    There are extensive options that enable you to procure components especially for specific sales order items.
    You may, however, want to use a different planning strategy to procure components without sales orders. This allows you to keep your replenishment lead time to a minimum. You can do this by:
    Planning on the basis of the finished product (see Planning Without Final Assembly (50) or Planning with a Planning Material (60))
    Planning at component level (see Strategies for Planning Components)
    Using consumption-based or Kanban-controlled components
    Customer stock can exist on any BOM level. See Stockkeeping at Different BOM Levels for more information.
    Because production is closely linked to sales orders, this results in a customer section in the stock/requirements list.
    Unplanned goods receipts (such as returns) cannot, as a rule, be used for other sales orders, even if they are in working order, unless they are adapted to meet a customer's needs.
    In the basic make-to-order strategy, Make-to-Order Production (20), no specific product structures are required. This means that it does not matter if the material has a BOM or not. The material can be produced in-house, or it can be procured externally. No planning is involved in this strategy.
    Planning Without Final Assembly (50) and Planning with a Planning Material (60) do require a specific product structure (i.e. a BOM, which means materials are always produced in-house). These planning strategies assume that you want to plan procurement (production or purchasing) of your components by planning the finished products. This means that you need to have a fairly stable demand for your finished products. If, however, you can plan more easily at component level than at finished product level, see Strategies for Planning Components.
    Make to order production
    1. Make to order production means that the materials (finished products) are not stored in the warehouse but produced especially for a particular sales order or a sales order item. An individual customer requirement is generated from the sales order item and transferred to materials planning (MM/PP). You can use materials planning to plan requirements. Once this has been done, production is carried out. After the product has been manufactured, you post it by goods receipt to sales orders stock specifically for this sales order item. As soon as the delivery is due, you can enter the delivery in SD and post goods issue which reduces the sales order stock and then a billing document can be entered.
    2. The item category in the sales document is found using the sale document type and the item category group from the material master found on the tab page sales org 2 i.e.
    a. sales document type – OR
    b. item category group – 0001
    c. item category - TAK
    3. MTO without assembly processing – the requirement quantity (planned independent requirements), delivery date and configuration specifications are transferred from the sales order to materials planning as an individual customer requirement. A planned order is generated using a planning run where the bills of material are exploded and dependant requirements (i.e. multi-level BOM) for the assemblies and components are generated. As soon as the production starts, a production order is created from the planned order. The system returns the confirmed quantity and delivery date from the production order to the sales order.
    4. MTO with assembly processing – in this case the individual components for the final product have already been produced. You only need to assemble the components according to the customer’s wishes. In this process, you only need a one level BOM and generation of dependent requirements is not necessary. In this case no planning run is generated and a production order is created directly from the sales order. The system returns the confirmed quantity and the delivery date from the production order to the schedule lines in the sales order. Any changes made to the confirmed schedule lines or the delivery date is immediately visible in the sales order and/or in the production order.
    5. After production department has finished making the material, goods receipt is posted in the sales order stock i.e. special stock which can only be used for a specific sales order. After posting goods issue for outbound delivery, the sales order stock is reduced accordingly.
    6. Make-to-order production is a process in which a product is individually manufactured for a particular customer. In contrast to mass production for an unspecified market where a material is manufactured many times, in make-to-order production a material is created only once though the same or a similar production process might be repeated at a later time.
    7. You can use make-to-order production: (a) For branches of industry or products where a small quantity of products with a large number of different characteristics are manufactured (b) When a product has to be assembled particularly for a sales order.
    8. Stock keeping is not usually carried out for products that are made to order. In companies using make-to-order production, the demand program only determines the production area, in which various variant types are produced. Depending on how you track the costs associated with make-to-order production, there are two ways to process make-to-order items during sales order processing.
    (a) Make to order using sales order
    (b) Make to order using project system (not relevant for SD application)
    9. for make to order production using the sales order, all costs and revenues involved for an order item are held collectively at that item. A particular rule is used that can be changed manually to transfer costs to profitability analysis.
    10. make to order production is largely a production planning configuration. It is also controlled by the requirements type, which is determined by three things
    the strategy group (MRP 3) in MMR
    the MRP group (MRP1) in MMR
    the item category and MRP type (MRP 1)
    11. Make-to-order production is controlled by the requirements type. The requirements type is determined on the basis of the MRP group (MRP1) and the strategy group (MRP3) in the material master record. In addition, a plant must be assigned for make-to-order items in the sales order.
    VARIENT CONFIGURATION
    Variant configuration is for manufacturing complex products in which customer determines the features of the product. Objective of variant configuration is to react quickly to customers' requirements.
    Here it needs not to create separate material for each variant of a product. When companies introduce variant configuration this often goes beyond a business process re-engineering project.
    1 Variant configuration offers an opportunity to restructure product structures for which then processes are defined. This has a direct impact to the core areas such as marketing and product data management.
    2 Advantages of VC
    · No need to Create separate material master for each variant combination.
    · Super BOM and Super Routing is enough for representing all possible Variants and Operations.
    · Able to react more flexible to customer demands.
    · Increase Information exchange between sales, engineering and production.
    3 What is Configurable Material?
    · A material with different features or characteristics and options is known as configurable material. Example: PC, Car.
    · Configurable materials are either created in a material type that allows the configuration (n the standard system, the material type KMAT) or they are given the indicator Configurable in the material master record.
    4 Master Data used for VC
    Following Objects are used as Master data for Variant configuration.
    1. Super BOM
    2. Super Routing
    3. Characteristic
    4. Class
    5. Object Dependencies
    6. Configuration Profile
    7. SD Condition records
    4.1 Super BOM
    Super BOM Contains all the components for producing configurable product. It contains both variant as well as non-variant parts required for producing configurable product.
    4.1.1 Super BOM configuration
    Super BOM can be created either one of the following methods.
    · Create BOM with class Item of 200-class type that contains all characteristic of a configurable material.
    · Create BOM with all possible materials as its components. Then assign /define dependencies to each component.
    The different between these two methods is
    · BOM with class item, no need to assign or define object dependencies. Instead of that each material is classified in material master itself using class 200.
    · For both cases all characteristics are assigned to class 300 which is again assigned to KMAT material in order to trigger configuration in configuration profile.
    4.1.2 Super BOM with Class Item
    Class items used to control the selection of variant parts in a BOM. Variant parts are classified in a class, and the class is entered in the BOM as a class item. When you configure the material, the class is replaced by a suitable variant part.
    4.1.3 Advantages of using Class Item in BOM
    · Only one item for the class is enough, instead of several items for the individual variant parts.
    · No need to create and assign selection conditions.
    · Able to classify additional objects in the class at any time, without having to change the BOM.
    4.1.4 Steps involved in super BOM with Class
    – Define all Characteristics and its Values assign it to Class with type 200.
    – Assign characteristic Values to materials by Classification material
    – Assign class 200 with material instead of assigning all BOM items.
    – Create and Assign class 300 (with same characteristics) with configurable product using configuration profile.
    4.1.5 Super BOM with Material Components
    This bill of material (BOM) of a configurable material contains all the components that are required to manufacture the material. The BOM contains components that are only used in specific variants (variant parts), as well as components that are used in all variants (non-variable parts).
    4.1.6 Steps involved in super BOM with Material Components
    – Define all Characteristics and its values assign it to Class with type 300.
    – Assign Class with configurable material in Configuration profile.
    – BOM is created with all variant and non-variant items.
    – Define interdependency between objects (Characteristic, BOM item, Routing Operation etc…) by using Object Dependencies.
    – Assign class 300 with configurable product using configuration profile.
    4.2 Super Routing
    A configurable routing describes the production process for all variants of a product. Instead of creating a routing for each variant of a product, you can create operations for one routing, or a "super" routing.
    It is possible to maintain Object dependencies for following in super routing:
    · Sequences
    · Operations/sub-operations
    · Production resource/tool assignments
    The routing is configured by system, when order is created for KMAT material.
    4.3 Characteristic
    Characteristic is used to define the features of a configurable material. To enable to use characteristics to configure a material, assign the material to a class of class type 300. The customer can choose from among different options for each characteristic.
    · Characteristics describe the properties of objects. The values of a characteristic specify these properties.
    · Value assignment to characteristic may be single value or multiple value with required entry or restrict able entry.
    · In characteristic it is also possible to use table name and its field name in order to change the Object quantity or values. I.e. BOM item quantity or Operation time, which is known as ‘reference characteristic’.
    · In Restriction screen allowed Class types are entered i.e. for what are the class this characteristic may used. In general for Variant configuration class 200 and 300 are used.
    · It is also possible to assign Dependency to characteristic values maintained in Characteristic.
    4.4 Variant Class
    · In Variant configuration, Class is used to hold the characteristics that describe about configurable material. Class type to determine which object types can be classified.
    · Class is used in variant configuration if the class has a class type that supports variant configuration. In Customizing for Classification, the Variant class type indicator must be set for the class type. In the standard system, this is class type 300.
    4.5 Dependencies
    · Dependencies restricts the combinations of options i.e. characteristic that are not allowed. It also select exactly the right BOM components and operations to produce a variant.
    · It also describe the interdependencies between characteristics and characteristic values
    · It control which components are selected from a bill of material (BOM) and which operations are selected from a task list
    · It also changes the values of fields in BOM items and operations during configuration.
    4.5.1 Global and Local Dependencies
    Global dependencies have the following properties:
    · They are independent of any object.
    · They are identified by a name that you assign, and are maintained and managed centrally.
    · If you change a global dependency, the change affects all the objects where the dependency is used
    Local dependencies have the following properties:
    · They are only available to the object for which you create them
    · You cannot use the central maintenance functions on these dependencies, and you cannot allocate them to other objects
    · They are identified by a number assigned by the system, not an external name
    Local dependencies are only used where certain dependency will not be needed elsewhere
    The differences between global and local dependencies are as follows:
    · Global dependencies are created centrally and can be assigned to several objects.
    · Local dependencies are created for one object and can only be used with this object
    4.5.2 Declarative and Procedural Dependency
    · In Declarative dependencies the result are explained logically
    · Declarative dependencies are easier to trace than procedural dependencies, because the point in time when the dependency is processed and the sequence in which the dependencies are processed are not relevant.
    · Example for Declarative dependency:
    - Constraint
    - Actions
    - Preconditions (provided that they contain no non-declarative expressions)
    - Selection conditions (provided that they contain no non-declarative expressions)
    · In Procedural Dependency result depends on the processing sequence and the point in time when the dependency is processed.
    - Procedures
    - Preconditions (only if they contain non-declarative expressions)
    - Selection conditions (only if they contain non-declarative expressions)
    4.5.3 Dependencies Types
    The SAP System supports the following types of dependencies:
    · Preconditions
    · Selection conditions
    · Procedures
    · Actions (obsolete)
    · Constraints
    4.5.4 Preconditions
    Preconditions can be allocated to the following objects:
    · A characteristic that you want to hide
    · A characteristic value that you want to hide
    Preconditions are used to hide characteristics and characteristic values that are not allowed and thereby ensure that the configuration of an object is consistent. In the precondition, it is also possible define the circumstances under which a characteristic or value is hidden.
    A precondition is fulfilled if the condition you enter is either true or not violated.
    4.5.5 Selection Conditions
    Selection conditions used to ensure that all the objects relevant to a variant are selected:
    · Selection conditions determine which variants require a specific component or operation
    · Selection conditions determine when it is mandatory to assign a value to a characteristic
    Selection conditions may allocate to the following objects:
    · Characteristics
    · BOM items
    · Operations in task lists
    · Sub-operations
    · Sequences of operations
    · Production resources/tools (PRTs)
    A selection condition is fulfilled if the condition in it is unambiguously true.
    4.5.6 Procedure
    Procedures can be assigned to the following objects:
    · The characteristic value that triggers the procedure
    · The characteristic that triggers the procedure
    · The configuration profile of the configurable object
    Procedure is used for following purposes.
    · A procedure is used to infer a value for a characteristic, you enter the variable $SELF before the characteristic.
    · Procedures can overwrite values that are set by other procedures.
    · Procedures are always used for pricing (see Variant Conditions).
    Processing Sequences of Procedure
    If an object has more than one procedure, a processing sequence is used to define the point when the procedure is processed.
    4.5.7 Action
    Actions are used to infer characteristic values. An action is processed as soon as the characteristic to which it is assigned has a value. It is not possible to overwrite the characteristic values that are set by an action.
    The following Objects can assign to action:
    · The characteristic value that triggers the action
    · The characteristic that triggers the action
    · The configuration profile of the configurable object
    · Configuration profile
    · BOM items – to change the quantity
    · Operations in task lists – to change the standard values
    Since Action is lead to serious system performance problems, it is replaced by Procedure and Constraint.
    4.5.8 Constraint
    This dependency type is mainly for intensively interactive configuration tasks and for configuration tasks in which you need to take into account the dependencies between the characteristics of several objects. The main purpose of a constraint is to monitor the consistency of a configuration.
    Constraints have the following distinguishing features:
    · Constraints are used to describe the dependencies between completely different objects and their characteristics.
    · Constraints are used to store information on which conditions must be fulfilled if the configuration is to be consistent.
    · Constraints are not directly allocated to individual objects. They are grouped together to form dependency nets and allocated to a configurable material in the configuration profile.
    · In constraints, you enter objects in their general form of expression, without using $SELF, $ROOT, or $PARENT to identify objects. As a rule, you refer to objects in constraints by entering the class to which the objects are allocated.
    · Constraints are declarative dependencies. The processing sequence of constraints and the point in time when constraints are processed is not relevant.
    · Constraints are not processed in a specific order. You cannot determine when a specific constraint is used.
    In any processing situation, a constraint is only processed once. If a value that is relevant to the constraint is changed, the constraint is triggered again.
    4.5.8.1 Structure of Constraints
    There are four sections in a constraint. Each part is identified by a keyword. A colon follows the keyword. Each section ends with a period.
    OBJECTS:
    In this section, you enter the objects that are relevant to the constraint. You must enter the relevant objects in all constraints. You can also define variables for objects or characteristics.
    CONDITION:
    The condition entered here must be fulfilled in order for the constraint to be used. You do not need to enter a condition in a constraint. You can leave out the keyword CONDITION: if required. However, if you enter the keyword you must enter a condition.
    RESTRICTIONS:
    In this section, you enter the relation that must exist between the objects and characteristics if the configuration is to be consistent. You must enter a restriction in a constraint.
    INFERENCES:
    In this section, you enter the characteristics for which characteristic values are to be inferred. The main purpose of constraints is to check the consistency of a configuration. Usually, values are only inferred if you make an entry in this section.
    For reasons of performance, only use constraints to infer values if it is really necessary. Constraints are grouped together to form dependency nets. The dependency net is allocated to a configurable material in the configuration profile.
    4.5.9 Dependency Net:
    Constraints are grouped together in dependency nets. For this reason, the variant configuration menu does not support a function for creating constraints directly. So that only constraints are defined within a dependency net.
    5 Configuration Profile
    The configuration profile for a material controls the configuration process in sales order. Configurable profile also used to define central settings for configuring the object. Using this profile it is possible to hide some of the characteristic value defined during characteristic creation. We can assign any number profile for a configurable material in which selection is based on either priority or manual selection during configuration.
    By defining a filter in the configuration profile, possible to determine the scope of the BOM items to improve system performance when exploding the BOM. The filter is active in high-level configuration, in result-oriented BOMs, and in SET processing.
    5.1 Filters in Configurable Profile
    Following objects can be used as filter:
    · Object type
    Class, material, document, text
    In the standard system, all object types are selected and therefore exploded in the configuration. Deselect the object types that you do not want to be displayed.
    · Item category, for example, stock or non-stock item
    All item categories in the configuration are exploded in the standard system. Remove the selection for the item categories you do not want to be displayed.
    · Item status
    You maintain the status of a BOM item in maintain BOM dependent on its usage.
    All items are displayed regardless of their item status in the standard system. However, only the items with this status are displayed when you select specific item statuses. Items are not displayed that do not have the selected status.
    · Sort string
    You can assign sort strings for BOM items in maintain BOM. You can restrict the display of the BOM items by using these sort strings.
    Only items that carry sort strings are checked and only those that match are displayed. Items that have no sort string are always displayed.
    5.2 Component availability in the configuration profile
    The availability check is just a snapshot, telling that whether the materials required are in stock at this moment. Several users can access the same material at once. This means that supply problems can sometimes be overlooked.
    Example: Only 2 pieces of a material are in stock, but the material is used in 3 BOMs. The availability check does not detect a supply problem. The availability check for all 3 BOMs shows 2 pieces in stock.
    5.3 Process Overview
    There are different processes for configurable materials in sales documents. These processes can be defined on the Configuration initial screen tab in the configuration profile, by choosing the Configuration parameter tab.
    The Process are described in the following scenarios:
    Planned/Production orders
    This processing type is used to describe variant products whose configurable materials are assembled using planned and production orders. The bill of material (BOM) can have single-level, multi-level, or no explosion.
    Sales Order (SET)
    This processing type is used to describe variant products that comprise salable configurable materials. These products are supplied together, but are not assembled in a production order. Only sales-relevant BOM items are exploded in the sales order.
    Order BOM.
    You use this processing type if you want to make customer-specific changes to the BOM of a material that you configure in the sales order. In the sales order, you assign values to the characteristics of the header material, but the BOM is not exploded in the sales order.
    6 Material Variant and Planning Material
    6.1 Material Variant
    · Material Variant is an material that can arises from individual Configuration of a configurable product and can be kept in stock
    · For variants that are required frequently, we can create material variants, which can be produced without a sales order and kept in stock. When a sales order is received, it is possible to check whether the variant required is in stock, so that it can deliver immediately.
    · For material variants, a separate material master record is created with a material type that is kept in stock.
    · Separate BOM and routing for a material variant, or you can link the material variant to the BOM and routing of the configurable material. The correct BOM items and operations are determined from the characteristic values assigned to the variant.
    6.2 Planning Material
    · Planning Material is a material, which contains all the non-variant parts.
    · By using planning material all non-variants are procured / produced before sales order.
    · It is also possible for Planing the Planning Materials without reference to any sales requirement.
    · Planning material is planned separately using strategy 65 and produced before sales order creation.
    7 Planing in VC
    The following strategies are used for planning configurable materials and its variant parts.
    Make to Order production of Variants
    – Make to Order for Material Variant. - 26
    – Planning Variants without final Assembly- 55
    – Planning Variants with planning Material - 65
    – Make to order with configurable material.- 25
    – Characteristic Planning with dependent requirement - 56 and
    – Assembly Processing with Characteristic Planning - 89
    8 Variant Configuration: (Object Diagram)
    9 Variant Pricing and Surcharges
    9.1 Sales BOM
    A bill of material (BOM) describes the different components that together create a product. A BOM for a bicycle, for example, consists of all the parts that make up the bicycle: the frame, the saddle, wheels, and so on.
    When you enter the material number of a bill of materials that is relevant for sales order processing, the system displays the material that describes the whole bill of materials as a main item. The individual components are displayed as lower-level items.
    There are two ways to process a bill of materials in Sales. Once you have entered a bill of material in a sales order, the system runs pricing, inventory control, and delivery processing at: Main item level if the material is assembled, or - Component level if the material is not assembled.
    9.2 Processing at Main Item Level (ERLA)
    If you want the system to carry out pricing, inventory control, and delivery processing at main item level, enter ERLA in the Item category group field of the Sales: sales org. 2 screen in the material master record of the finished product. This means that the components only function as text items and are not relevant for delivery.
    9.3 Processing at Component Level (LUMF)
    If you want the system to carry out pricing, inventory control, and delivery processing at the component level, enter LUMF in the Item category group field of the Sales: sales org. 2 screen in the material master record of the finished product. In this case, only the components are relevant for delivery. During processing the system automatically creates a delivery group. The latest delivery date among all the components becomes the delivery date for the entire delivery group.
    10 Configuration of VC
    10.1 Production Planning and Control
    10.1.1 Creating Material
    Use
    The purpose of this activity is to create the material masters for the materials required in this scenario.
    Procedure
    Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Materials Management ® Material Master ® Material ® Create (General) ® Immediately
    Transaction Code MM01
    In Material Master of KMAT material following settings are maintained:
    · Configurable material indicator in Basic Data must set.
    · MRP type is PD.
    · Lot size – EX ( Lot for lot size)
    · Availability check – 02
    · Planning Strategy 25 is entered in MRP 3 screen view.
    · Item category group 0002 or 0004 is to be given in sales view.
    10.1.2 Creating Bill of Material
    Purpose:
    · The purpose of this activity is to create bills of material (BOMs) for the configurable material which is known as ‘super BOM’
    · Super BOM comprise all the variant as well as non-variant parts required for producing configurable material.
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Production ® Master Data ® Bills of Material ® Bill of Material ® Material BOM ® Create
    Transaction Code CS01
    · The Create Material BOM: initial screen appears. On this screen, data that identifies the bill of material are maintained as well effectivity data.
    · In the Material field, the configurable material for which super BOM need to create is entered.
    · Plant and BOM usage is entered. In general BOM usage 1 for production and 3 is for Universal.
    · In Component screen list of variant and non-variant parts are entered along with that quantity is entered based on Base qty. of the configurable material.
    · It is also possible to enter a class as a BOM component with item category ‘class Item’. This class must hold all characteristics and also classified with each material.
    · Class type 200 and 300 can be used as a class item.
    Following Procedure is followed for assigning class with BOM as a class Item.
    · Enter the item category for class items in BOM.
    · Make entries in the fields that identify the class
    – Class types
    – Class
    · Enter the quantity.
    - Enter a unit of measure if appropriate.
    - The system determines the unit of measure from the additional data of the class.
    - If a unit of measure without a dimension is maintained in the additional data of the class, you cannot change this unit.
    10.1.3 Creating Characteristic
    Purpose:
    · Characteristic is created with possible values.
    · It is also possible to use table name and its field name in order to change the Object quantity or values. Ie BOM item quantity or Operation time. This is known as ‘Reference characteristic’.
    · For changing BOM quantity Characteristic is created with table name STOP-MENGE is used.
    · For Variant pricing purpose SDCOM-VKOND is used.
    · Characteristics allow describing and distinguishing between objects, such as length, color, or weight within the classification system.
    Procedure
    SAP Menu Logistic->Centralfunction->Environment->classification->Chracteristics
    Transaction Code CT04
    · From the classification menu, choose Characteristics.
    · Enter data on the initial screen.
    · In the Characteristic field, enter a name for new characteristic
    · Enter a change number if you want to create the characteristic using engineering change management.
    · To do this, choose processing type Create characteristic.
    · You can also copy the data of an existing characteristic. Use the pushbutton Create by copying. Enter the name of a characteristic you want to copy.
    · Confirm the entries.
    · On the Basic data tab page enter the most important control data for the characteristic.
    · You must maintain the basic data for all characteristics. All other screens are optional.
    · In the formatting data for value assignment, whether a characteristic is single-value, multiple-value, or retractable is defined. It is not possible change the value assignment indicator once it has set. It applies wherever the characteristic is used.
    · The data type of the characteristic determines which values can be entered for the characteristic. I can any one of the following
    - Characters
    - Numeric
    - Time format/Date format
    - Currency format and
    - User defined data type.
    · For numeric characteristic it need to maintain that whether interval values to a numeric characteristic, or only individual values need to be maintain in Basic Data screen itself.
    · Languages in which characteristic want to describe are entered.
    · Choose the tab page Values.
    · Enter values in the entry fields. Enter each value in a separate field.
    · The values must match the format that you defined on the Basic Data screen. You can enter up to the number of characters that you defined in the format.
    · If your characteristic is an alphanumeric characteristic, enter a language-dependent value description. You can enter up to 30 characters.
    · It is not possible to enter a language-dependent description for numeric values
    · It is also possible to define one value as a default value. This value then appears as a default in characteristic value assignment functions
    · Additional value indicator determines that whether values that are not defined as allowed values can be assigned to a characteristic
    · The following value check strategies are available in value maintenance screen.
    - Allowed Values:
    - Check Tables
    - Function module
    - Catalog character
    · Allowed values permits only values defined in characteristics maintenance are used to check a characteristic value
    · Check table permits only values entered in characteristics maintenance is used to check a value
    · Function module entered is used to check characteristic values.
    · Value catalog entered is used to check characteristic values
    · Documents, such as drawings or photographs, with characteristics can be linked in additional data screen. Before link a document to a characteristic, it must create a document info record in the document management system.
    · In this screen it also possible to restrict or hidden or displaying only allowed values to characteristic.
    · It is possible to that characteristic can be only assigned to particular class type by assigning type in restriction screen.
    · To change a characteristic selects the pushbutton Change in characteristics after entering the characteristic. To display the characteristic chooses the pushbutton Display.
    10.1.4 Creating Class:
    Purpose:
    · A class is used to hold the characteristics that describe a configurable material. By linking the class to the configurable material, you allow the material to be configured using the characteristics of the class.
    Procedure
    SAP Menu Logistic->Central function->Environment->classification->Class
    Transaction Code CL01
    · Class holds all characteristics describe configurable material.
    · Class with class type 300 is used in configuration profile.
    · On basic Data screen class description, its status is entered. Status determines:
    · whether a class can be maintained
    · whether objects can be allocated to a class
    · whether the class can be used for selecting objects
    · Class group is used to group together related classes and also for finding classes quickly via a matchcode.
    · ‘Same Classification ‘indicator determines whether system check for identical characteristic values. In this case, where several objects are assigned that have the same values for all characteristics to the same class. Depends upon indicator system give warning or error message or no message.
    · Keyword string is used for finding a class via matchcode.The description entered on the basic data screen serves as the first keyword
    · On characteristic screen list characteristic which has to attach with configurable material is entered.
    · Using document tab screen it is possible to assign documents related to configurable object.
    · On additional data screen whether or not this class can be used as a class component in bills of material. If it is yes then Unit of measure in which stocks of the material are managed. The system converts all the quantities you enter in other units of measure (alternative units of measure) to the base unit of measure and resulting item category which will replace this class item in BOM (i.e. Stock, Non-stock item etc…).
    10.1.5 Creating Dependency
    Purpose
    Dependency describes the interdependencies between characteristics and characteristic values and it controls which components to be selected from a bill of material (BOM) and which operations to be selected from a task list. It also changes the field values in BOM items and operations during configuration.
    Procedure
    SAP Menu Logistic->Central function->Variant Configuration->dependency->Single Dependency->Create Dependency
    Transaction Code CU01
    · From the variant configuration menu, choose Dependency -> Single dependency-> Create
    · In initial screen name of the dependency is entered. If dependency need to create for a specific date, enter a change number. It is also possible to create dependency by copying from existing dependency.
    · On basic data screen the following data are required to enter
    - A language-dependent description for the dependency
    - Also possible to enter descriptions in different languages by choosing Descriptions.
    - Long texts for the dependency, choose Extras -> Documentation.
    - In the standard R/3 System, the status ‘In preparation’ when a dependency is created first time. The status is set to ‘Released’ when the source code is syntactically correct.
    - Finally suitable dependency type is selected.
    · In Dependency editor the source code for the dependency is entered. Once the source code is syntactically correct, the source code is saved.
    · Now the status of the dependency is turns to ‘Released’. Save the Dependency and exit.
    10.1.6 Changing Bill of Material (Assign Dependencies)
    Purpose:
    By assigning dependencies to BOM components, it is possible to restrict the selection of irrelevant variant parts.i.e correct BOM components are get selected at result of configuration. It is also possible to change the component quantity depends upon characteristic value changed.
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Production ® Master Data ® Bills of Material ® Bill of Material ® Material BOM ® Change
    Transaction Code CS02
    · Dependencies are assigned with respect to characteristic for each variant part.
    · Dependencies are created either locally within object or globally which can be assigned to any objects.
    · In BOM General Item overview screen choose the component in which dependency need to assign and choose menu path Extras -> Dependency -> assignment of dependency for assignment.
    · It also possible to enter dependency directly in BOM itself by choosing Extras -> Dependency -> dependency editor.
    10.1.7 Creating Configuration Profile
    Purpose
    · Configuration profile used for assigning configurable material with variant class (300) and also used to maintain some central settings.
    · It is possible to assign more than one configurable profile for one KMAT material.
    · The selection of profile depends upon either by priority or by manual selection.
    · It is also possible to assign dependencies to configurable profile.
    · Class with type 300, which hold the entire characteristics of KMAT material, are assigned to each profile
    Procedure:
    Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Production ® Master Data ® Material Master ® Environment ® Configuration Profile ® Create
    Transaction Code CU41
    · From the Variant Configuration menu, choose Configuration profile->Create.
    · A dialog box will be displayed. The object name is entered. Confirm your entries.
    · On profile overview screen the following data need to be entered.
    · Profile name and the class type of classes used for configuration. In Customizing for the Classification System, the class type must be defined as a variant class type.
    · Choose Goto -> Class assignments or the ‘Class assignment ’ pushbutton to assign the object to a class.
    · In the classification screen, names of the classes are entered.
    · It is possible to restrict allowed characteristic values for the configurable object if required.
    · Release of profile is possible only if configurable object is assigned to a class. To go to the detail screen, where you define further settings, choose the Profile detail pushbutton or double-click on the profile.
    10.1.7.1 Optional Settings on the Profile Overview
    · Organizational Areas
    You can specify organizational areas for configuration. If you restrict a profile to specific organizational areas, you only see the characteristics that are relevant to your area when you configure the object.
    You can change how characteristics are displayed according to organizational area for your user on the value assignment screen.
    · Priority of Configuration Profiles
    You can create several configuration profiles for a configurable material. The profile with the lowest number has the highest priority.
    If you define several profiles for an object, you see a dialog box for selecting a profile when you start configuration. The profile with the highest priority is at the top of the list.
    The priority is also relevant if you use Application Link Enabling (ALE) or intermediate documents (IDocs) to run configuration, rather than dialog mode. In this case, the profile with the highest priority is selected for the object. Profiles that have no priority are at the top of the list, because they automatically have priority 0.
    10.1.7.2 Profile Detail
    · Configuration Profiles for Materials
    The configuration profile has several screens. Depending on what you enter for the BOM explosion and configuration process, fields are shown or hidden.
    The parameters you maintain for a material apply to the material as a header material in a BOM structure. You cannot define separate settings for use of a configurable material as an assembly in a BOM.
    - By choosing the Assignments pushbutton, you can assign dependencies to the configuration profile. You also see this pushbutton on the basic data tab, once at least one dependency is assigned.
    · Basic Data Tab
    - In the basic data, click on the profile overview data.
    - If configuration process need to starts with a Start logo, documents are assigned such, as a graphic showing the product you want to configure, to the variant class.
    - Configuration Initial Screen Tab
    · Configuration parameters
    - The parameters for BOM explosion and the configuration process in the sales order are specified here.
    - BOM application must be entered, if BOM explosion ‘None’ is selected rather than single and multi level explosion is selected.
    - By entering a level of detail for a multi-level configuration, system performance will be improved.
    - It is also possible to define a filter and set the indicator for an availability check on assemblies.
    10.1.8 Changing Configuration Profile: Add User Interface Settings
    Purpose
    Settings for the configuration editor in user interface.
    - An interface design is used to group characteristics together on the value assignment screen.
    - Here it also possible to define object-specific settings for functions in the configuration editor. These settings are defaults for configuration, and can be overwritten for your user in the configuration editor.
    - For all configuration parameters except BOM explosion ‘None’, manually select the screens for the configuration editor and define which screen configuration starts with. The start screen must be one of the allowed screens.
    - The indicator for the configuration browser independently of the other start screens can be selected, because the browser is an additional screen section.
    Configuration Profiles for Objects Other than Materials
    - Object-specific settings for displaying characteristics and characteristic values in the configuration editor can be defined. These settings are defaults for configuration, and can be overwritten for your user in the configuration editor.
    Procedure
    Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Production ® Master Data ® Material Master ® Environment ® Configuration Profile ® Change
    Transaction Code CU42
    10.1.9 Configuration Simulation
    Purpose:
    · Configuration simulation is used to check the configuration model. In the configuration simulation, the whether or not Object structure is created correctly and dependencies are working fine is checked.
    · Simulation of Sales/Engineering
    - The configuration parameters in the configuration profile apply. Whether the configuration is simulated from the sales point of view or the engineering point of view is defined.
    - If select Sales & distribution is selected the configuration in a sales document will be simulated (sales order or quotation), so the BOM explosion depends on the settings in the configuration profile.
    - If Engineering is selected, the configuration in order BOM processing will be simulated. The configuration and BOM explosion depend on the configuration parameters in the same way as when maintaining an order BOM. For example, we cannot configure the header material, because the configuration is copied from the sales order.
    · Simulation of a Planned Order
    - On the characteristic value assignment screen, we can choose Planned order to display the components that are determined in material requirements planning (MRP) according to the characteristic values assigned. This is especially relevant to assemblies whose BOMs are exploded in MRP, not in Sales & distribution (for example, assemblies with the BOM explosion setting None in their configuration profile).
    Procedure:
    SAP R/3 menu Logistics ® Production ® Master Data ® Bills of Material ® Environment ® Variant Configuration ® Environment ® Configuration Simulation
    Transaction Code CU50
    · On the initial screen of the configuration simulation, select BOM to display the entire structure on the result screen.
    · If you have created more than one configuration profile for a material, you see a dialog box. Select a profile and choose Continue. If you want to call detailed information on the profile, choose Profile Detail or double-click on the profile.
    · To display the task list of an assembly on the result screen, select the assembly and choose View ® Objects ® Task list.
    · You see the operations or activities in the task list that was selected for the assembly during configuration.
    · Operations that have been changed by dependencies have an information icon next to them. You can display changes by choosing Information.
    · To return to the BOM explosion, choose View ® Objects ® BOM
    10.2 Sales and Distribution
    10.2.1 Creating Condition Records - VA00
    Purpose:
    The purpose of this activity is to create condition records for VA00.
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Sales and Distribution ® Master Data ® Conditions ® Select Using Condition Type ® Create
    Transaction Code VK11
    · Create price for each value of the characteristics by select using condition type VA00.
    · Create the Price for the condition type that represents these types of the standard-delivered condition type for this functionality is “VA00.”
    · Condition type VA00 requires as key fields the sales Organization, distribution channel, and material number of the configurable.
    · Condition type PR00 used to maintain base price of the configurable material.
    · Using VA01it is also possible to maintain Surcharges and discounts.
    10.2.2 Condition records for Variant Price and Surcharges
    Purpose
    Condition records allow you to store and retrieve pricing data in the system. All the pricing elements of your daily business - the prices, discounts, and surcharges for freight and taxes - that you want to use for automatic pricing must be stored in the system as condition records. You can define as many condition records as you want for the different pricing elements for any validity period.
    You create condition records for all the pricing elements that the system takes into account during automatic pricing. During document processing, the system transfers data from the condition records and determines the amounts for individual pricing elements (prices, discounts and surcharges) and the final amount for the sales document
    Procedure
    10.2.2.1 Create a characteristic for the Pricing
    - Create Pricing characteristic like CAR_Pricing and go to additional data tab give SDCOM table name VKOND field name.
    SAP Menu Logistic->Centralfunction->Environment->classification->Chracteristics
    Transaction Code CT04
    10.2.2.2 Assign the characteristic to the class
    Assign given characteristics to class, In variant configuration, a class is used to hold the characteristics that describe a configurable material. By linking the class to the configurable material, it allows the material to be configured using the characteristics of the class. In the standard R/3 System, the class type for configurable material is 300.
    SAP Menu Logistic->Central function->Environment->classification->Class
    Transaction Code CL01
    10.2.2.3 Create a dependency that triggers the price
    A Dependency is a rule that defines how the different options and option values, represented by characteristics and characteristic values, relate to one another. To create a dependency, follow the menu path
    SAP Menu Logistic->Central_function->VariantConfiguration->dependency->Single Dependency->Create Dependency
    Transaction Code CU01
    10.2.2.4 Assign the dependency to the characteristic value that triggers the price
    For example eCar2002, the value “V8” refers to the engine selected by the customer. Therefore, the dependency must be linked to the value “V8” of the characteristic that represents the engine type. To do this, go to the master data record of the characteristic CAR_ENGINE
    SAP Menu Logistic->Centralfunction->Environment->classification->Chracteristics
    Transaction Code CT04
    Go to the “Values” tab. From there, select the“V8” entry and use the menu path Extras Object dependencies Assignments, which brings you to the screenshot to the right; if you have created a global dependency, you can link it to the characteristic value.2 Once the dependency has been assigned, the information on this screen, such as the description (“Engine price”), will default to the information entered when you created the characteristic.
    10.2.2.5 Create variant price
    Create price for each value of the characteristics using condition type (or transaction VK11). Create the Price for the condition type that represents these types of the standard-delivered condition type for this functionality is “VA00.” Condition type VA00 requires as key fields the sales Organization, distribution channel, and material number of the configurable.
    In the same way using condition type VA01 is also used to maintain prices for surcharges and discounts.
    10.2.2.6 Creating the output condition records for sales
    Output types are used to represent various forms of output in the SAP system. Examples of output types in Sales and Distribution processing are order confirmations, freight lists, and invoices. You use the output type to control how the output should be transmitted, for example whether an order confirmation should be sent via EDI, or be printed
    10.2.3 Creating Output Condition Records: Sales
    Purpose:
    Output types are used to represent various forms of output in the SAP system. Examples of output types in Sales and Distribution processing are order confirmations, freight lists, and invoices. You use the output type to control how the output should be transmitted, for example whether an order confirmation should be sent via EDI, or be printed
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Sales and Distribution ® Master Data ® Output ® Sales Document ® Create
    Transaction Code VV11
    · Choose Edit >Key combination
    · Select the key combination for which condition records are to be created.
    · Choose Enter.
    · Enter the appropriate key for each condition record, according to the key combination you selected.
    · For transmission medium 1 (Print output) or 7, you can maintain the communication data. To do this, choose Communication.
    · Save the condition records.
    10.2.3.1 Creating Output Condition Records: Billing
    Purpose
    The purpose of this activity is to create output condition records for billing. Output types are used to represent various forms of output in the SAP system. Examples of output types in Sales and Distribution processing are order confirmations, freight lists, and invoices. You use the output type to control how the output should be transmitted, for example whether an order confirmation should be sent via EDI, or be printed
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu Logistics ® Sales and Distribution ® Master Data ® Output ® Billing Document ® Create
    Transaction Code VV31
    Enter an output type.
    · Choose Edit >Key combination
    · Select the key combination for which condition records are to be created.
    · Choose Enter.
    · Enter the appropriate key for each condition record, according to the key combination you selected.
    · For transmission medium 1 (Print output) or 7, you can maintain the communication data. To do this, choose Communication.
    · Save the condition records.
    10.2.4 Order BOM
    Purpose:
    Products that are made to order in plant engineering and construction and mechanical engineering are generally very complex and are specific to one customer. For this reason, you cannot define a BOM entirely in advance. Once you have created your sales order, you need to make manual changes to the BOM by creating an order BOM especially for the sales order, without changing the original BOM.
    The sales order, sales order item, and material number identify an order BOM. In variant configuration, you can work with 2 types of order BOM. The difference is in the way they are saved.
    Knowledge based order BOM
    The order BOM is saved as a copy of the super BOM with manual changes and dependencies.
    Result Oriented BOM
    The configuration result is saved as an order BOM, with manual changes but without dependencies.
    Procedure (For knowledge based BOM)
    SAP Menu Logistics ® Production Planning ® Master Data ® Bills of Material -> Order BOM Maintain (Multi-Level)Transaction Code CU51
    · The Create Order BOM: initial screen appears.
    · Enter the sales order number, the order item, the material number and the BOM usage
    · If you want to use material BOM, or an existing order BOM to copy from, go to step 4. If you want to create an order BOM without a reference, click and go to step 7
    · You cannot use a configurable BOM as a reference
    · Click on copy order BOM or Click on copy material BOM
    · The Copy material BOM or Copy order BOM dialog box appears
    · Enter the data required and click . The item overview appears, for the bill of material you are using as a reference.
    · Enter new items and alter items if necessary. Entering items in order BOMs is similar to entering items in material BOMs. However, you
    Create a Material - KMAT type with Item category (002)
    Create Characteristics in CT04 - Zbike, where in values mention the Color of the bile like Red, Blue etc
    Create another characteristics in CT04 - ZPrice, where directly go the additional data tab and maintain the table SDCOM and field VKOND (ABAP Dictionary it will ask for)
    Assign these two characteristics to a Class in CL01 – Zbike class (Type 300) in characteristics tab page.
    Then go to CU41 Configuration profile select the material and enter the description click on the class assignment ie assign Zbikclass.
    Now go back to CT04 - enter Zbike -go to values- select Red- go to extras - Other Dependencies - Select Procedure enter in front 10 write - $self.ZPrice='Red' and save
    Now go back go to extras - Other Dependencies - assignments and assign relationship ( by default it will come just save)
    Now select Blue- go to extras - Other Dependencies - Editor - Select Procedure enter in front of 10 write - $self. ZPrice='Blue' and save
    Now go back go to extras - Other Dependencies - assignments and assign relationship ( by default it will come just save)
    Now go to VK11 - Enter VA00 (Condition)(For Std RVA001 Pricing Procedure) - enter variant Red and Blue give the rates accordingly and create the sales order.

  • App store reports Pinball HD and 11 other apps cannot be purchased at this time.....

    App store reports "Pinball HD and 11 other apps cannot be purchased at this time"..... This occurs whenever I log into the app store. I have already purchased this app (and presumably the 11 others as well).  I believe this started when it showed up as an app I should update (for free).
    My wife and I share this iPad and we have apps purchased under two different store accounts on this machine. I have tried to log off and sign in with her account and then check updates but with either account I am told that all apps are up to date. All of our credit card info is current. Any clues?

    Already on Automatic..... :(
    This is an iPad 1 - I've had it since it first came out (ordered directly from Apple). Lots of apps and purchases over the years. My wife got her own WiFi only iPad shortly after mine as she fell in love with it and I don't share well. ;) This only started about 7-10 days ago. I did not update to iOs 5.1 until last night so this predates that. My concern is that when the iPad 3 arrives next Friday that this will transfer over.
    Ever since my wife received her own iPad our purchases are pretty much separate.

  • TS1702 Hello I would like to report game loft order and chaos that's I but rune stones buy my visa around 300 usd and runes was on sale but thy don't add the rune stones it's 5700 Rune stones  I report to game loft 6 time and thy ignore me I'm here to Com

    Hello I would like to report game loft order and chaos that's I but rune stones buy my visa around 300 usd and runes was on sale but thy don't add the rune stones it's 5700 Rune stones  I report to game loft 6 time and thy ignore me I'm here to Complaint that to iTunes I wish you help me for this complaint cause this game loft always ignore people only take moony and no replay . Ty

    You are not addresing Apple here. Were are all just users like yourself. Contact Apple/iTunes by:
    How to report/refund an issue with your iTunes Store, App Store, Mac App Store, or iBooks Store purchase

  • Joining Sales Orders and Delivery Notes in Query

    Hi Experts
    Please could someone provide me with the correct SQL syntax for joining tables ORDR, RDR1, ODLN and DLN1 in a query?
    I need to show a list of the (rows of all open sales orders) and (closed sales order (which have a delivery note) between certain dates).
    Thanks
    Jon

    Hi Gordon
    Thanks for your help.  Could you help me a little further?  I am writing the query to show me a mixture of (Open Order rows which contain item code 'C&P') and (closed orders between 2 dates which also contain C&P) - both need to have the customer having property 54 set as 'Y'
    Working with what you sent me it almost works but for some reason I cannt fathom it won't show the open orders only the closed.  I think it may have some do with my last JOIN
    This is what I have:
    SELECT T0.DocNum 'Delivery No', T0.DocDate 'Delivery Date',  T3.Quantity 'Delivery Quantity', T1.DocNum 'S/O No', T1.DocDate 'SO Date', T1.DocStatus, T3.ItemCode, T3.Dscription, T2.Quantity 'SO Quantity', T2.Quantity-T3.Quantity 'Balance Quantity', T2.LineTotal'C&P Price After Discount', T2.DiscPrcnt, T2.Project, T4.QryGroup54'Carriage Deal', t2.freetxt, t1.comments
    FROM DBO.DLN1 T3
    INNER JOIN DBO.ODLN T0 ON T3.DOCENTRY = T0.DOCENTRY LEFT JOIN DBO.RDR1 T2 ON T3.BaseENTRY = T2.DOCENTRY AND T2.ItemCode = T3.ItemCode LEFT JOIN DBO.ORDR T1 ON T2.DOCENTRY = T1.DOCENTRY INNER JOIN OCRD T4 ON T0.CardCode = T4.CardCode
    WHERE (T2.ItemCode LIKE 'C&P%%' AND T1.DocStatus='O' and t4.qrygroup54='Y')  or (T2.[ItemCode] LIKE 'C&P%%' AND T1.[DocStatus] = 'C' and T4.QryGroup54='Y' and (T0.DocDate Between '[%0]' and '[%1]'))
    Thanks
    Jon

Maybe you are looking for

  • I can't figure out how to resize my picture for my home or lock screens.

    I can't figure out how to resize my picture for my home or lock screens. It shouldn't be his difficult. Any suggestions? I'm running the latest software. Thanks.

  • Video not downloading from itunes

    I purchased a TV series from itunes and I am having a problem downloading the individual shows from the season.  I went in and deleted all the other videos i have previously purchased on my ipad, and i have restarted the download several times.  Any

  • TNS Listener crashes on XP constantly

    Hi I have Oracle 9i 9.2.0.1 installed on winxp. Everything was working fine for many weeks until a few days ago when suddenly the TNS listener crashes after each connection to the db, and I have to manually restart the tns listener service each time.

  • IPhone 6 stuck on iTunes icon while doing iOS 8.1 update

    Brand new iPhone 6 just set up out of the box - was working fine - then did iOS 8.1 update and the phone is now stuck on a black screen with the red iTunes icon in the centre, a graphic of a lightning cable coming up to the icon, and an arrow indicat

  • Problem with Eclipse 3 and Lomboz 213

    Hi, I am pretty new in working with Eclipse, and i?ve been trying to create a small j2ee aplication just to try, but I?m having problems when trying to create an EJB, everything goes fine (I created a component with a method, then I added this module