Vendor family representation in SKU

Hi All,
I've requirement at my client where the vendor's family of products drive number of functions:
It's primarily like the product hierarchy, but it is the vendor's product classification we need to capture
The standard PRODH field we're using to capture the client's internal product classification .
They perform number of functions by this field:
- Rollup reporting by vendor family products
- Customer pricing by line of vendor family products
- Sales out reporting by line of vendor family products
- Rebates by line of vendor family products
We've looked at different options - i.e Vendor sub-range , material group, classification etc. to capture this, however all these do not work for all the requirements without enhancements . So, we're looking for alternative solution someone might have come across to address similar requirement , a hierarchy attribute in material that would fit vendor's product classification and could be used for sales order pricing, purchasing & sales reporting.
The example would be for vendor: HP Corporate > HP Printers > HP Laser Printers.
It's at the HP laser printer level where they would like to perform the functions (without creating new vendors for each level)
Any suggestions.
Ketan

Hi Piyush,
You can use Batch specific UOM.
To help you I have pasted some interesting conversation of SDN related to the Batch Specific UOM.
[1. From PP|Re: Batch specific UOM]
[2. From MM|BATCH SPECIFIC MATERIAL UOM]
[3 From SD.|Re: Batch specific UOM]
Regards,
Shyamal
Edited by: Shyamal Joshi on Aug 5, 2008 10:44 AM

Similar Messages

  • Back up discounts from Vendors in consignment purchase

    A retailer purchases stock on consignment from a vendor before the start of the season
    During the season , for slow moving stock the retailer enters into a markdown arrangement with the vendor where for specific SKU the retailer marks down the price by certain percentage which is shared with the vendor.
    For example: If for sports sweat shirt for the XXL sizes the retailer wants to offer a 50 % discount on the product . Of this discount 25% will be shared by the vendor/manufacturer.
    During the settlement of the vendor's liability this additional discount needs to be reduced from the vendor payables.
    How can this be managed .
    Could someone please help

    Hi,
    Create separate condition type for Vendor discount and company discount and assign to separate G/L account though Account Key
    While settlement..compair with vendor discount G/L Account
    Regards
    Vijai Jain

  • MobileSTOR MS2UT + esata + USB + mac pro = never-ending problems

    Hey gang,
    I seemed to have entered a perfect storm here:
    I had purchased the *MobileSTOR MS2UT 2 Bay SATA to eSATA/USB 2.0 RAID 0/1* Enclosure initially for a *dual 800 quicksilver G4* mac that I had, looking for a hardware-based Raid solution for back ups and to not burden the G4 processor. I have replaced the G4 with an early *2008 2.8 dual quad core mac pro*. After two machines and two different PCI sata cards, I've had no luck....
    (website for the above enclosure)
    http://www.sansdigital.com/mobilestor/ms2ut.html
    For starters, in the G4, I had a quality Seritek/1ve2+2 controller that had no problem with two other single drive enclosures, but failed with the MS2UT.
    http://www.firmtek.com/seritek/seritek-1ve2plus2/
    A glib response from Seritek support says that I should use their enclosure. Digging around I find that I need a controller card that can handle a port multiplier enclosure rather than just any serial ata enclosure. Seems silly to me that the user has to dig for this. I mean the USB & FIREWIRE interfaces don't seem to care: it says USB/FIREWIRE on the effing box of both the controller and on the drive, badda-bing, badda boom: it works. Whats with this high maintenance of esata. Well you get roughly 2-3x the performance so Ok, maybe its worth it.
    Well, with the macpro on the horizon,, I give up on the G4, close that unsolved mystery. For the mac pro I figure PCIe, a modern computer, no problem. I get the computer, fish around the internet for an esata PCIe card, then I come across this review of the WiebeTech SilverSATA II which appears to be similar to that of the MobileSTOR:
    http://www.amug.org/amug-web/html/amug/reviews/articles/wiebetech/silver2/
    It appears that the unit has specific tastes as far as having the right card to make it bootable, multiport aware, etc... (the Sonnet Tempo 4+4 card works but its a PCIx card, not PCIe)
    Like I said: install a bootable Mac OS on any USB/firewire drive, plug it into any card, and it works... estata... its russian roulette...
    Ok so I round up some vendors, (firmtek, sonnet, Highpoint) send them emails to see what they think: if their latest cards will work with the MS2UT... They are all over the place.. they think it may work, they dunno... it should work, they haven't tested it... then they try to push their own enclosure hardware on me. I mean see an astrologist or have your palm read.. it seems more likely you'll get a more accurate answer from them, rather than vendors... props to Sonnet, though, they list compatibility right on the page with their controller.
    then 10.6 comes out... and you email vendors about compatibility on that OS, and they don't even email you back.
    So I find this review of the highpoint rocket raid for the mac on the great sight: Barefeats.com
    http://www.barefeats.com/hard119.html
    to make a long story short:
    +KEY FEATURES of the "eSATA for Mac"+
    +1. Dual eSATA ports+
    +2. 32 and 64-bit EFI onboard+
    +3. Able to boot Mac OS X+
    +4. Plug and Play for (Oxford and Silicon Image chipset) external storage+
    enclosures
    +5. 4x PCIe rating+
    +6. Support for Direct Attached and Port Multiplied enclosures+
    +7. RAID 0, 1, 5, and JBOD support using browser-based manager+
    +8. Native support for Snow Leopard+
    +9. Compatible with 2006 - 2009 Mac Pro+
    I should be set, right? WRONG!
    I email highpoint, detailing that I planned to mix both Port multiplied (PM) and direct access (DA) enclosures on the same card at the same time. They say maybe (only describing the PM enclosure, not even mentioning the DA enclosure compatibility as I specified), since its a raid card and I intended to use it with an enclosure with its own raid hardware, however they say they see no issues. Well it shows they don't even know their own hardware: Their docks say that the card supports PM enclosures as well as DA (direct access) enclosures. Their web based software even shows the two as separate categories. What is buried in the manual and not cleared up by tech support or their product page is that YOU CAN'T MIX PM AND DA ENCLOSURES ON THE CARD AT THE SAME TIME!!! I explained more in the paragraph above than any tech support from any company. Unbelievable where support has gone these days.
    I discover the above because I found the card at Fry's believe it not and since they have a generous return policy I tried it out and learned the above the hard way. No dice on the MS2UT with what is perhaps the most forgiving esata card for the mac.
    So more hunting on the web, this time the enclosure's manufacture site: sans digital.
    http://www.sansdigital.com/mobilestor/ms2ut.html
    ...clicking on the accessories tab I find several esata adapter cards... funny that they include ones that don't appear to support PM enclosures... Anyway, I study two that state they supports port multipliers:
    http://www.sansdigital.com/adapters/ha-san-4espcix2.html:
    http://www.sansdigital.com/adapters/ha-dat-4espcie.html
    Ok, I may not get a bootable enclosure.. I just want to get this thing working in esata since cloning my internal raid on the mac pro takes 8 hours using usb, and my main purpose is to maintain a clone so I make my compromise.
    I should be set, right? WRONG!
    reading the fine print on both cards it says:
    *(Please note that the host adapter card is based on Silicon Image chipset, which currently only support up to MAC OS 10.5.1 by Silicon Image.)*
    I do more research, it seems any manufacturer using chips by Silicon Image will have an issue with 10.6 macs! On some websites it says Silicon Image will never release a driver. On firmtek it says they make their own driver and swears that it works. At the Silicon Image website they say they are an OEM provider so don't bother them, and that its up to the vendor to make a compatible driver. Sheesh!!
    I don't get it.. whats the point in having an esata sticker if it appears to come in more flavors than an ice cream shop!
    Oh and it gets better: I go to the sonnet site, thinking they have to have something that works, looking at their latest tempo SATA E4P:
    http://www.sonnettech.com/product/temposatae4p.html
    well, the fine print is EXHAUSTIVE, but again props to Sonnet for making it crystal clear:
    (4) Sonnet Tempo cards are compatible with most external SATA storage. However, external hard drives with USB 2.0/eSATA dual interface based on the Oxford Semiconductor OXU931DS storage controller chip may not be compatible with Mac OS X when connected via SATA. Known issues are kernel panics occurring when the drive is connected, or the drive not being recognized by the operating system.
    +Summary of external SATA storage+
    +• Storage with eSATA alone +
    Compatible
    +• Storage with triple interfaces +
    Compatible
    +• Storage with eSATA plus Firewire 400 and/or 800 +
    Compatible
    +• Storage with port multiplier support (multiple drives) +
    Compatible
    +• Storage with RAID 0, 1, or 5 (multiple drives) +
    Compatible
    +• Storage with eSATA plus USB (based on JMicron 20366) +
    Compatible
    + these compatible drives include, but are not limited to:+
    +- OWC Mercury On-the-Go USB 2.0/eSATA 2.5" portable+
    +• Storage with eSATA plus USB (based on Oxford OXU931DS) +
    +not compatible+
    + these incompatible drives include, but are not limited to:+
    +- Western Digital My Book™ Premium ES Edition™+
    +- Seagate Technology FreeAgent™ Pro+
    +Advanced users note that this card is not yet compatible in full 64-bit boot. Snow Leopard default boots in 32-bit mode, except in an Xserve.+
    So in short: if you have an enclosure that has both USB and esata, but does not use the JMicron 20366, then it will not be recognized by the card. If you have an enclosure with three interfaes: USB, FW and esata, you're fine. Keep in mind too: most manufacturers don't put the source manufacturer of their chipsets on the box. So I ask..
    *HOW IS THE CONSUMER SUPPOSED TO KNOW!*
    I swear, a perfect analogy is if I go to best buy, buy a toshiba DVD player only to discover it doesn't play DVD's that contain movies produced by Sony Pictures..because its not a a Sony/columbia House movie. You think consumers would put up with that crap? UNBELIEVABLE...
    So now I have this really versatile enclosure that apparently can't run on Mac 10.6 with ANY esata controller for the mac. I really like the design of the enclosure, with its hardware based raid that is hot swappable and has a small footprint. However there seems to be no way to get a controller card for this device that will work on a 10.6 mac.
    I guess whats inferred is that you should get an enclosure with the fewest variety of ports, i.e. esata/fw/usb... ironically if it has all three, you are ok, but not if it has usb/esata. Being that USB is the most popular, thats not easy. I'm looking to contact Sans Digital to see if they will exchange it for me, possible for a model with esata/fw800 or an esata only model, if it exists. My last resort is to just use it as a USB drive (my intention was to use it as a clone of my system, with the added security that the enclosure makes a copy of a copy in raid 1), however its like 3x as time consuming than esata.
    If anyone has a working MobileSTOR MS2UT/wiebetech SilverSATA II in a 10.5 mac pro, please respond to me with your config. Thanks for reading!

    Thank you hatter for your reply.
    I'm familiar with OWC, as I've done business with them since 2001, as well as XLR8.
    I have a 2008 mac pro so the 2009 model related problems are not an issue in my situation
    As I stated above I go to reputable vendors for my hardware who have specific mac experience. I look specifically for hardened compatibility so that there is support for things like deep sleep. The Sans Digital enclosure was over $200..it was not cheap. The USB/Esata combo is the most common interface for the enclosure storage market. Having a compatibility issue is a vendor fault, not the buyer. Having minutiae flavors of esata compatability based on chipsets roulette wheel is inexcusable. The enclosure needs that I have is for the medium to be removable and be able to be rebuilt at the hardware level, i.e. at the enclosure's control panel. To the mac its just a drive. The hotswap and back up is transparent to the OS and mac hardware, and allows me to change from raid 0/1 and do back up right from the enclosure interface.
    So far I haven't had problems with USB/Firewire. Meanwhile Esata to me has been nothing but beta testing for vendors and seeing how the chipset manufacturers have gone loosey-goosey on following spec and just dump cheap chinese crap into the market with no pride.
    for comparison:
    USB/FW, PATA, SATA, SCSI
    1) industry standard
    2) native drivers
    3) bootable. Period.
    4) buy a controller card/raid card, plug it in, format, it works even through major OS upgrades.
    5) USB/FW: Hot-swapable. Yes it really does work.
    Esata:
    1) Multiple standards (again, look at the Sonnet website to see the minefield one has to walk through to mate a controller card to an enclosure)
    2) non native drivers. Buying an esata card is like marrying into the vendors family. Plus if you manage to get things working and do an OS upgrade, you are playing russian roulette. If you system boots off it, then get life insurance because you may kill yourself.
    3)Not bootable and no one seems to care to explain why. Whats odd is that some earlier PCIx cards were bootable (like sonnet Temp 4x4) but their PCIe successors aren't. Not sure if this has to do with the host computer BIOS and/or the current chipsets from SI which rely on custom drivers from the vendors. Another lovely example of this are the ODD_SATA ports on the Mac pro: storage only, not bootable. Sure it makes sense now that I've learned it the hard way, however to users of FW/USB and even IDE, one would think that motherboard ports are bootable. Yes I know this is a mac bios thing and its not even considered as part of the feature set of the computer
    4) As I've shown, each controller card seems to be unique, even if its from the same vendor. Even the drivers vary from card to card! Heck even the vendors are unsure as to how compatible their controller cards are with various enclosures. That is proprietary, not industry standard. OS upgrades doesn't seem to provide native driver support for Direct access and/or port multiplying interfaces. The problem with this is that film/video users like myself like to build bullet proof systems, and with raids that I've built from IDE, FW, or USB, I've never had the minutiae of compatibility issues as I've had with esata. I installed an Acard raid controller in my dual 800 back in 2001, installed the drives and forgot about it. it just worked through multiple OS upgrades. Not sure whats gong on with esata.
    5) Can't call it hot swappable if I can't get the **** thing to wok in the first place.
    My analysis is this: Esata is basically a proprietary format to the vendor that sells the hardware, while USB/FW is an industry standard. I bought a quality enclosure that said "esata", I bought a quality controller that said "esata", it didn't work. I had to learn the hard way about DA and PM enclosures and now about chipset conflicts. I've built computers since the late 80's amiga days, hot-rodding that computer well beyond spec and with custom cooling. SCSI terminators and IDE master/slave issues were easy-cheesey because they followed straightforward rules. This esata stuff is just plain sloppy work on the part of vendors and as Danny Glover said I'm getting to old for this **** as far as being a beta tester for hardware.

  • ERS/Self Billing and A/P-A/R

    Hello!
    We have a self billing process wherein we do the Evaluated Receipt Settlement for certain vendors - the set up is that the invoicing party for these vendors is another vendor which is actually our own company for liability reasons. To clarify for the sake of terminology:
    1. Company code A and company code B are both set up in SAP
    2. Vendor X represents the company code B in the Purchasing org and co code A
    3. Vendor Y which actually provides the freight setvices to us has it's invoicing partner set up as X
    For liability and taxation reasons, the company code B is responsible for paying the vendor Y for the services provided to company code A.
    The transaction takes place between in sales org/co code A and the accrual for the services takes place in co code A against the paying partner X for services that are actually provided by Y. We do the ERS process where we self bill in co code A the liability it owes to co code B. That part works fine and creates the A/P in A to B. However, we need to automate the process whereby which this self billing will also create the A/R in company code B from co code A and we want to do the MIRO in B for the invoices received from Y.
    Something similar to the normal inter company transactions where we can create the A/P via the Idocs or any other way of doing it?
    Any clues how we can go about it?
    Appreciate any help/direction? Please respond with any questions you may have?
    Thanks a lot!

    HI ,
    AR module deals with the Customers related transactions,
    predominantly sales/ collection(receipts) related transactions.
    AP module deals with Vendor related transactions-predominantly procurement& payments  related transactions.
    chandra

  • How close is close enough?

    How close is close enough?
    I'm wondering how close is close enough, when trying to match our vendor's colors.
    We have been tasked with matching our vendor who is matching towards Gracol.
    Our vendor has previously been fairly out of spec with their gray balance being overall too red, but they are moving much closer to the Gracol standard.
    We have been using our HP z3100 to match their proof outputs. So far, after having them run out a target for me to profile and match, I now have a Delta E of 1.88 average when comparing our P2P25 G7 target output to theirs.
    Our deep blues and dark Magentas however, are about a max of 7 Delta E off of theirs.
    Comparing their proof sheet to ours is visually very close. It's just in the deep blues where their colors have a slight magenta cast to them.
    My concern is that we are matching our vendor's representation of Gracol and we don't have a real third party P2P25 target from a tightly controlled press sheet for verification as to who is closer to the standard.
    The vendor might be a little too red, but we might be a little too gray balanced. Our three color gray might be too neutral.
    I'm using a spectro with Profilemaker Measure tool for comparing Delta E. I'm also using no RIP, just custom profiles through the RGB printer's internal RIP which doesn't give me much, if any adjustments for calibrating linearity.
    Our company is willing to buy a dedicated RIP so that we can match the vendor better, but my concern is that we might not get much better than the Delta E of 1.88 that we have now, and if we're going to spend that extra $15k, I want to make sure we will be closer.
    There is also the possibility that we can "toy-with" the printer using different paper settings to get a better match to the vendor's linearity by choosing a paper setting which gets us closer to theirs.
    The real main difficulties are trying to speak color management to the people who make the cost decisions and have no comprehension of what we're talking about.
    Does anyone have thoughts on whether I'm doing it the difficult way, or should a new RIP make it easier for us?

    I take it you do not own the HPz3100ps/GP? The gray balance could be critical, especially when you are trying to match a particular color. It would be nice if you spoke about your vendor's printer/proofer. The HP is a 12-cartridge photographic inkjet printer and, often times, a photograph's color gamut is going to be much wider than a graphic arts typical offset press. If their proof is showing warmer grays, then it could be their color gamut is not as wide as yours. I'm not sure which version of the z3100 you're using, but I do know that the z3100ps/GP is a very accurate proofer and because it has an internal spectrometer and RIP, it can calibrate without you having to put out more cash for a third party RIP. If you have the basic z3100, then perhaps you should look at a third party RIP ( you can probably get an upgrade through HP ).

  • BDC Problem , Pls help

    Hi ,
    I am trying to create a BDC for routing opertaions update . During recording for a Screen ( that has subscreens )i get this :
    BDC_SUBSCR SAPLCPDO       1210GENERAL.
    I wanted to know Is there a special way to populate the subscreen fields ? I just copied the bdcdata-fnam = 'bdc_subscr' and fval = SAPLCPDO       1210GENERAL , but it looks like this is not the correct way as i get an error saying No transaction data for screen SAPLCPDO.
    I would appreciate if anyone can let me know how to code for this.
    Thank you very much

    Tamanna,
    If your requirement is how to code BDC program for a transaction which has subscreens in it...then refer to the example program I had created at one of my client places. But this is not for tcode CA02. Sorry I couldn't be of more help.
    * Table declaration
    TABLES:
      wyt3,
      /bay2/u7sxcrecce.
    *& Internal Table Declaration for Bushy Park Legacy data
    DATA : BEGIN OF i_leg OCCURS 0,
      po_nm(15),     " PO No - EBELN
      byrc(2),       " Purchasing group - buyer code - EKGRP
      vendor(10),    " LIFNR
      po_date(6),    " BEDAT
      cur(3),        " currency - WAERS
      zterm(2),      " terms code - ZTERM
      fob(2),        " FOB code - IINCO1
      mat(7),        " material - EMATN
      mat_pck(15),   " material PCK - ematn
      quant(15),     " quantity due - MENGE
      u_meas(2),     " Unit of measure - MEINS
      del_date(6),   " Item delivery date - EINDT
      ven_mat(30),   " Material # used by vendor
      net_pr(17),    " Net price - NETPR
      ship_via(3),   " Ship via
      del_loc(5),    " Delivery location -  ABLAD
      dist_acc(21),  " Distribution account
      txz01(55),     " Purchase Document Text
      recip(5),      " Recipient - WEMPF
      line_cd(3),    " Line code
      comp(2),       " Company
      line_num(4),   " PO line number
      indicator(1),  " Indictor as to what kind of PO's is being converted
      projnbr(30),   " filler
      works(2),      " Legacy works - WERKS
      work_ord(7),   " Work Order Number - AUFNR
      wbs(8),        " Project number - use for WBS x-ref
      cost_elem(7),  " G/L account for Project PO's w/o mat. master - SAKTO
      xref_wbs(23),  " WBS for manual load - SAKTO
      percent(12),   " Mara
    * Filler for NET PRICE
      filler(17),    " Mara - net price
      gl_act(7),     " GL acct for Work Order
      label(3),      " Label
      iwg_warehouse(9),
      cost_cen(5),   " Cost center
      expence_cl(4), " Expence class
      tax_code(2),   " Tax Code
      quan_gr(16),   " Quantity of goods received
      amt_gr(17),    " Amount of goods received
      quan_fi(16),   " Quantity invoiced
      amt_fi(17),    " Amount invoiced
      site(15),      " Site name - Added by Naren Somen
    *  flag(1),       " Indicator for valuted material - N/A
    *  commit_amt(14)," Commitment value
    END OF i_leg.
    *& Internal Table Declaration for SAP data
    DATA : BEGIN OF i_sap OCCURS 0,
              po_nm(15),            " PO No - EBELN
              ekgrp(3),             " Purchasing Group
              lifnr(10),            " Vendor Number
              zterm(4),             " Payment Terms
              werks(4),             " Plant
              txz01(40),            " Text
              netprice(14),         " Price
              commit_amt(14),       " Commitment values
           END OF i_sap.
    DATA: bdcdata LIKE bdcdata          OCCURS 0 WITH HEADER LINE.
    DATA: i_xleg LIKE i_leg OCCURS 0 WITH HEADER LINE.
    DATA: i_wyt3 LIKE wyt3 OCCURS 0 WITH HEADER LINE.
    DATA: p_itab LIKE i_leg OCCURS 0 WITH HEADER LINE.
    * Internal table to store the messages
    DATA: BEGIN OF i_mesage_tab OCCURS 0.
            INCLUDE STRUCTURE bdcmsgcoll .
    DATA END OF i_mesage_tab.
    *Begin of change by Naren Somen
    *Buffer to the hold the records from tab delimited text file
    DATA:  BEGIN OF i_record_buffer,
             record_buffer(4000)   TYPE c.
    DATA:  END OF i_record_buffer.
    *End of change by Naren Somen
    DATA: w_input_rec_count(6) TYPE n," Input File Record Counter
          w_address TYPE p,           " Count of vendor addresses found
          w_flg  TYPE c VALUE 'X',    " BDC Rec Indicator
          w_insert_line(1) TYPE c,    " Insert New Line Item in PO
          w_del_date(10),             " Delivery Date Format Changes
          w_year(4),                  " Year
          w_mon(2),                   " Month
          w_date(2),                  " Date
          w_purgrp(3),                " SAP Purchasing group
          w_vendor(10),               " SAP vendor
          w_payterm(4),               " SAP payment terms
          w_plant(4),                 " SAP plant
          w_acct(10),                 " SAP G/L acct - temp
          w_order(12),                " SAP Work Order Number
          w_aufnr LIKE ekkn-aufnr.    " Work Order
    DATA:  w_input LIKE swaexpdef-expr,
           w1_dec LIKE dfies-decimals,
           w_mul TYPE i,
           w_val TYPE i,
           w_val01 LIKE ekpo-netpr,
           w_netprice(11),                   " Net Price
           w_netprice_hold(11),              " hold variable for net price
           w_netprice1(14),                  " Net Price before dec. point
           w_netprice2(9),                   " Net Price after dec. point
           w_quant TYPE c VALUE '1',         " Quantity
           w_count LIKE sy-tabix,            " Loop Counter
           w_costcenter TYPE kostl,          " Costcenter
           w_glaccount TYPE kstar,           " G/L account
           w_item TYPE bstpo VALUE '0010',   " Line item number
           w_quote(1) TYPE x VALUE '27'.
    DATA: BEGIN OF i_epstp,
             field1(11) TYPE c VALUE 'RM06E-EPSTP',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_epstp.
    DATA: BEGIN OF i_knttp,
             field1(10) TYPE c VALUE 'EKPO-KNTTP',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_knttp.
    DATA: BEGIN OF i_txz01,
             field1(10) TYPE c VALUE 'EKPO-TXZ01',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_txz01.
    DATA: BEGIN OF i_eeind,
             field1(11) TYPE c VALUE 'RM06E-EEIND',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_eeind.
    DATA: BEGIN OF i_netpr,
             field1(10) TYPE c VALUE 'EKPO-NETPR',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_netpr.
    DATA: BEGIN OF i_matkl,
             field1(10) TYPE c VALUE 'EKPO-MATKL',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_matkl.
    DATA: BEGIN OF i_werks,
             field1(10) TYPE c VALUE 'EKPO-WERKS',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_werks.
    DATA: BEGIN OF i_ktext1,
             field1(11) TYPE c VALUE 'ESLL-KTEXT1',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_ktext1.
    DATA: BEGIN OF i_meins,
             field1(10) TYPE c VALUE 'ESLL-MEINS',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
          END OF i_meins.
    DATA: BEGIN OF i_ekpo_meins,
             field1(10) TYPE c VALUE 'EKPO-MEINS',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_ekpo_meins.
    DATA: BEGIN OF i_menge,
             field1(10) TYPE c VALUE 'ESLL-MENGE',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_menge.
    DATA: BEGIN OF i_ekpo_menge,
             field1(10) TYPE c VALUE 'EKPO-MENGE',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_ekpo_menge.
    DATA: BEGIN OF i_tbtwr,
             field1(10) TYPE c VALUE 'ESLL-TBTWR',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_tbtwr.
    DATA: BEGIN OF i_mkntm,
             field1(11) TYPE c VALUE 'RM11K-MKNTM',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_mkntm.
    DATA: BEGIN OF i_kostl,
             field1(10) TYPE c VALUE 'ESKN-KOSTL',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_kostl.
    DATA: BEGIN OF i_sakto,
             field1(10) TYPE c VALUE 'ESKN-SAKTO',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_sakto.
    DATA: BEGIN OF i_bstpo,
             field1(11) TYPE c VALUE 'RM06E-BSTPO',
             field2(1) TYPE c VALUE '(',
             field3(3) TYPE n VALUE 000,
             field4(1) TYPE c VALUE ')',
         END OF i_bstpo.
    DATA: BEGIN OF i_kstar,
             kstar TYPE kstar,
          END OF i_kstar.
    DATA: c_yb(2) VALUE 'YB'.
    DATA: c_partner_counter(3) TYPE c VALUE '002'. "Partner Counter -
    "Naren Somen
    CONSTANTS: c_185(4) TYPE c VALUE '0185',     " System ID - Walker
               c_202(4) TYPE c VALUE '0202',     " System ID - Bushy Park
               c_delimiter(1) TYPE x  VALUE '09'," tab character-Naren Somen
               c_unit(2) TYPE c VALUE 'PU',      " Unit of measure
               c_sq(2) TYPE c VALUE 'SQ',
               c_zero(1) TYPE c VALUE '0',
               c_loop(2) TYPE c VALUE '14',
               c_00(2) TYPE c VALUE '00'.
    *& Input Parameters / Selection Options
    SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-tx1.
    PARAMETERS : p_input  LIKE filename-fileextern OBLIGATORY,  " Input File
                 p_error  LIKE filename-fileextern OBLIGATORY. " Output File
    SELECTION-SCREEN END OF BLOCK bl1.
    SELECTION-SCREEN BEGIN OF BLOCK bl3 WITH FRAME TITLE text-tx3.
    PARAMETERS : p_ekorg LIKE ekko-ekorg OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK bl3.
    SELECTION-SCREEN BEGIN OF BLOCK bl4 WITH FRAME TITLE text-tx4.
    PARAMETERS : p_uname LIKE apqi-userid OBLIGATORY,
                 p_sess LIKE bgr00-group OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK bl4.
    *& Main Program Logic
    START-OF-SELECTION.
      PERFORM open_input_output_files.
      PERFORM create_bdc_session.
      PERFORM write_results.
    END-OF-SELECTION.
    *&      Form  OPEN_INPUT_OUTPUT_FILES
    FORM open_input_output_files.
      PERFORM open_input_file.
      PERFORM open_output_error_file.
    ENDFORM.                    " OPEN_INPUT_OUTPUT_FILES
    *&      Form  CREATE_BDC_SESSION
    FORM create_bdc_session.
      PERFORM open_group.
      i_xleg[] = i_leg[].
      LOOP AT i_leg.
        IF i_leg-po_nm = i_xleg-po_nm.
          SKIP.
        ELSE.
          PERFORM read_xref_tables.
    *-- First screen
          CLEAR w_insert_line.
          PERFORM bdc_dynpro      USING 'SAPMM06E'    '0100'.
          PERFORM bdc_field       USING 'BDC_CURSOR'  'RM06E-BSART'.
          PERFORM bdc_field       USING 'BDC_OKCODE'  '/00'.
          PERFORM bdc_field       USING 'EKKO-LIFNR'  i_sap-lifnr.
          PERFORM bdc_field       USING 'RM06E-BSART' c_yb.
          PERFORM bdc_field       USING 'EKKO-EKORG'  p_ekorg.
          PERFORM bdc_field       USING 'EKKO-EKGRP'  i_sap-ekgrp.
          PERFORM vendor_address.
          IF w_address EQ '3'.
            PERFORM bdc_dynpro      USING 'SAPMSSY0'    '0120'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  '04/02'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=SELV'.
            PERFORM bdc_dynpro      USING 'SAPMSSY0'    '0120'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  '04/02'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=SELV'.
            PERFORM bdc_dynpro      USING 'SAPMSSY0'    '0120'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  '04/02'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=SELV'.
          ENDIF.
          IF w_address EQ '2'.
            PERFORM bdc_dynpro      USING 'SAPMSSY0'    '0120'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  '04/02'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=SELV'.
            PERFORM bdc_dynpro      USING 'SAPMSSY0'    '0120'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  '04/02'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=SELV'.
          ENDIF.
          IF w_address EQ '1'.
            PERFORM bdc_dynpro      USING 'SAPMSSY0'    '0120'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  '04/02'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=SELV'.
          ENDIF.
          PERFORM bdc_dynpro      USING 'SAPMM06E'    '0120'.
          PERFORM bdc_field       USING 'BDC_CURSOR'  'RM06E-EBELP'.
          PERFORM bdc_field       USING 'BDC_OKCODE'  '=KOPF'.
          PERFORM bdc_dynpro      USING 'SAPMM06E'    '0101'.
          PERFORM bdc_field       USING 'BDC_CURSOR'  'EKKO-VERKF'.
          PERFORM bdc_field       USING 'BDC_OKCODE'  'AB'.
          PERFORM bdc_field       USING 'EKKO-VERKF'  i_leg-po_nm.
          PERFORM bdc_field       USING 'EKKO-ZTERM'  i_sap-zterm.
          PERFORM bdc_field       USING 'EKKO-SPRAS'  'EN'.
          PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLXM06'.
          PERFORM record_counter.
          LOOP AT i_xleg WHERE po_nm EQ i_leg-po_nm.
    *        w_count = w_count + 1.
            WRITE: i_leg-del_date TO w_del_date YYMMDD.
            CONCATENATE '20' w_del_date INTO w_del_date.
            MOVE w_del_date(4) TO w_year.
            MOVE w_del_date+4(2) TO w_date.
            MOVE w_del_date+6(2) TO w_mon.
            CONCATENATE w_date '/' w_mon '/' w_year INTO w_del_date.
            PERFORM item_xref_tables.
            IF w_insert_line EQ space.
    *-- Second Screen Line # 1
              PERFORM bdc_dynpro  USING 'SAPMM06E' '0120'.
              PERFORM bdc_field   USING 'BDC_CURSOR'  i_eeind.
              PERFORM bdc_field   USING 'BDC_OKCODE'  '/00'.
    *          PERFORM bdc_field   USING i_bstpo  w_item.
              PERFORM bdc_field   USING i_epstp  'D'.
              PERFORM bdc_field   USING i_knttp  'K'.
              PERFORM bdc_field   USING i_txz01  i_sap-txz01.
              PERFORM bdc_field   USING i_eeind  w_del_date.
              PERFORM bdc_field   USING i_netpr  i_sap-netprice.
              PERFORM bdc_field   USING i_matkl  '25080400'.
              PERFORM bdc_field   USING i_werks  i_sap-werks.
    **-- Second Screen Line # 2 Onwards.
            ELSE.
    *--- Call Insert Line.
              PERFORM line_item_data.
              IF i_epstp-field3 GT c_loop.
                PERFORM bdc_dynpro   USING 'SAPMM06E' '0120'.
                PERFORM bdc_field    USING 'BDC_CURSOR'  'RM06E-EBELP'.
                PERFORM bdc_field    USING 'BDC_OKCODE'  '=NP'.
                PERFORM record_counter.
                PERFORM line_item_data.
              ENDIF.
              PERFORM bdc_dynpro   USING 'SAPMM06E' '0120'.
              PERFORM bdc_field    USING 'BDC_CURSOR'  i_eeind.
              PERFORM bdc_field    USING 'BDC_OKCODE'  '/00'.
    *          PERFORM bdc_field    USING i_bstpo  w_item.
              PERFORM bdc_field    USING i_epstp  'D'.
              PERFORM bdc_field    USING i_knttp  'K'.
              PERFORM bdc_field    USING i_txz01  i_sap-txz01.
              PERFORM bdc_field    USING i_eeind  w_del_date.
              PERFORM bdc_field    USING i_netpr  i_sap-netprice.
              PERFORM bdc_field    USING i_matkl  '25080400'.
              PERFORM bdc_field    USING i_werks  i_sap-werks.
            ENDIF.
            w_insert_line = 'X'.
    *-- Third Screen.
            PERFORM bdc_dynpro      USING 'SAPLMLSP'    '0200'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '/00'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSP'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSL'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSL'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSP'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  'ESLL-TBTWR(01)'.
            PERFORM bdc_field       USING i_ktext1 i_sap-txz01.
            PERFORM bdc_field       USING i_menge  i_xleg-quant.
            PERFORM bdc_field       USING i_meins  'PU'.
            PERFORM bdc_field       USING i_tbtwr  i_sap-netprice.
            PERFORM bdc_dynpro      USING 'SAPLMLSK'    '0200'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  'ESKN-SAKTO(01)'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '/00'.
            PERFORM bdc_field       USING i_mkntm  w_quant.
            PERFORM bdc_field       USING i_kostl  w_costcenter.
            PERFORM bdc_field       USING i_sakto  w_glaccount.
            PERFORM bdc_dynpro      USING 'SAPLMLSK'    '0200'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  'ESLL-INTROW'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=BACK'.
            PERFORM bdc_dynpro      USING 'SAPLMLSP'    '0200'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=ESB'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSP'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSL'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSL'.
            PERFORM bdc_field       USING 'BDC_SUBSCR'  'SAPLMLSP'.
            PERFORM bdc_field       USING 'BDC_CURSOR'  'ESLL-KTEXT1(01)'.
            ENDLOOP.
            PERFORM bdc_dynpro      USING 'SAPMM06E' '0120'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '=BU'.
            PERFORM bdc_transaction USING 'ME21'.
        ENDIF.
      ENDLOOP.
      PERFORM close_group.
    ENDFORM.                    " CREATE_BDC_SESSION
    *&      Form  WRITE_RESULTS
    FORM write_results.
      WRITE: text-tx5, w_input_rec_count.
    ENDFORM.                    " WRITE_RESULTS
    *&      Form  OPEN_INPUT_FILE
    FORM open_input_file.
      OPEN DATASET p_input FOR INPUT IN TEXT MODE.
      IF sy-subrc <> 0.
        MESSAGE e000 WITH p_input.
      ENDIF.
      DO.
        READ DATASET p_input INTO i_record_buffer.
        IF sy-subrc <> 0.
          EXIT.
        ELSE.
          SPLIT i_record_buffer-record_buffer AT  c_delimiter INTO
                                                    i_leg-po_nm
                                                    i_leg-byrc
                                                    i_leg-vendor
                                                    i_leg-po_date
                                                    i_leg-cur
                                                    i_leg-zterm
                                                    i_leg-fob
                                                    i_leg-mat
                                                    i_leg-mat_pck
                                                    i_leg-quant
                                                    i_leg-u_meas
                                                    i_leg-del_date
                                                    i_leg-ven_mat
                                                    i_leg-net_pr
                                                    i_leg-ship_via
                                                    i_leg-del_loc
                                                    i_leg-dist_acc
                                                    i_leg-txz01
                                                    i_leg-recip
                                                    i_leg-line_cd
                                                    i_leg-comp
                                                    i_leg-line_num
                                                    i_leg-indicator
                                                    i_leg-projnbr
                                                    i_leg-works
                                                    i_leg-work_ord
                                                    i_leg-wbs
                                                    i_leg-cost_elem
                                                    i_leg-xref_wbs
                                                    i_leg-percent
                                                    i_leg-filler
                                                    i_leg-gl_act
                                                    i_leg-label
                                                    i_leg-iwg_warehouse
                                                    i_leg-cost_cen
                                                    i_leg-expence_cl
                                                    i_leg-tax_code
                                                    i_leg-quan_gr
                                                    i_leg-amt_gr
                                                    i_leg-quan_fi
                                                    i_leg-amt_fi
    "Added by Naren Somen
                                                    i_leg-site.
    *                                                i_leg-flag
    *                                                i_leg-commit_amt.
          APPEND i_leg.
        ENDIF.
      ENDDO.
      DESCRIBE TABLE i_leg LINES w_input_rec_count.
      CLOSE DATASET p_input.
    ENDFORM.                    " OPEN_INPUT_FILE
    *&      Form  OPEN_OUTPUT_ERROR_FILE
    FORM open_output_error_file.
      OPEN DATASET p_error FOR OUTPUT IN TEXT MODE.
      IF sy-subrc <> 0.
        MESSAGE e001 WITH p_error.
      ENDIF.
    ENDFORM.                    " OPEN_OUTPUT_ERROR_FILE
    *&      Form  OPEN_GROUP
    FORM open_group.
      CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
                client = sy-mandt
                group  = p_sess
                user   = p_uname
                keep   = 'X'.
    ENDFORM.                    " OPEN_GROUP
    *&      Form  BDC_DYNPRO
    FORM bdc_dynpro USING  program  dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = w_flg.
      APPEND bdcdata.
      CLEAR bdcdata.
    ENDFORM.                               " BDC_DYNPRO
    *&      Form  BDC_FIELD
    FORM bdc_field USING fnam fval.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
      CLEAR bdcdata.
    ENDFORM.                               " BDC_FIELD
    *&      Form  BDC_transaction
    FORM bdc_transaction USING tran_code.
      CALL FUNCTION 'BDC_INSERT'
           EXPORTING
                tcode     = tran_code
           TABLES
                dynprotab = bdcdata.
      CLEAR bdcdata.
      REFRESH bdcdata.
    ENDFORM.                               " BDC_TRANSACTION
    *&      Form  CLOSE_GROUP
    FORM close_group.
      CALL FUNCTION 'BDC_CLOSE_GROUP'
           EXCEPTIONS
                not_open    = 0
                queue_error = 0
                OTHERS      = 0.
    ENDFORM.                               " CLOSE_GROUP
    *&      Form  READ_XREF_TABLES
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM read_xref_tables.
      CLEAR i_sap.
      PERFORM convert_pur_group            USING i_leg-byrc.
      PERFORM convert_vendor               USING i_leg-vendor.
      PERFORM convert_payterm              USING i_leg-zterm.
    ENDFORM.                    " READ_XREF_TABLES
    *&      Form  CONVERT_PUR_GROUP
    FORM convert_pur_group USING    p_byrc.
      SELECT SINGLE ekgrp FROM /bay2/u7emxrbuyr
         INTO w_purgrp
         WHERE system_id EQ c_185 AND leginp_cd EQ p_byrc.
      IF sy-subrc EQ 0.
        MOVE w_purgrp TO i_sap-ekgrp.
        CLEAR w_purgrp.
      ENDIF.
    ENDFORM.                    " CONVERT_PUR_GROUP
    *&      Form  CONVERT_VENDOR
    FORM convert_vendor USING    p_vendor.
      DATA : w_venfamily(8) TYPE c,
             w_vendor_temp(7) TYPE c,
             wa_vendor TYPE /bay2/u7pxxrvend,
             wa_vendor1 TYPE /bay2/u7pxxrvend.
      CLEAR: w_vendor, w_venfamily, w_vendor_temp.
    * Select with Full Vendor Number
      SELECT SINGLE * FROM /bay2/u7pxxrvend INTO wa_vendor
          WHERE leg_ven_num EQ p_vendor AND system_id = c_185.
      IF sy-subrc EQ 0.
        IF wa_vendor-ktokk EQ 'YKRD'.
          MOVE wa_vendor-lifnr TO w_vendor.
        ELSE.     " IF YSUP
    * Select the YKRD for corrusponding YSUP from WYT3
          SELECT ekorg lifnr
          INTO (wyt3-ekorg, wyt3-lifnr)
          FROM wyt3
          WHERE
          lifn2 EQ wa_vendor-lifnr.
            SELECT SINGLE lifnr
            INTO w_vendor
            FROM wyt3
            WHERE lifnr EQ wyt3-lifnr AND
                  ekorg EQ wyt3-ekorg AND
                  parvw EQ 'LF'.
            IF sy-subrc EQ 0.
              EXIT.
            ENDIF.
          ENDSELECT.                " SELECT ekorg lifnr
        ENDIF.                      " IF wa_vendor-ktokk EQ 'YKRD'.
      ENDIF.                        " IF SY-SUBRC EQ 0.
      IF w_vendor IS  INITIAL.
    * Select YKRD with Legacy Vendor Family Number
        MOVE p_vendor TO w_vendor_temp.
        CONCATENATE w_vendor_temp '%' INTO w_venfamily.
        SELECT SINGLE * FROM /bay2/u7pxxrvend INTO wa_vendor1
                WHERE leg_ven_num LIKE w_venfamily AND
                ktokk EQ 'YKRD' AND system_id = c_185.
        IF sy-subrc EQ 0.
          MOVE wa_vendor1-lifnr TO w_vendor.
          MOVE w_vendor TO i_sap-lifnr.
        ELSE.
          CONCATENATE p_vendor 'X' INTO i_sap-lifnr.
        ENDIF.
      ELSE.
        MOVE w_vendor TO i_sap-lifnr.
      ENDIF.
    ENDFORM.                    " CONVERT_VENDOR
    *&      Form  CONVERT_PAYTERM
    FORM convert_payterm USING    p_i_leg01_trms_code.
      SELECT SINGLE zterm
      INTO w_payterm
      FROM /bay2/u7emcpterm
      WHERE legpterm EQ p_i_leg01_trms_code AND system_id = c_185.
      IF sy-subrc = 0.
        MOVE w_payterm TO i_sap-zterm.
        CLEAR w_payterm.
      ENDIF.
    ENDFORM.                    " CONVERT_PAYTERM
    *&      Form  CONVERT_PLANT
    FORM convert_plant USING p_works.
      SELECT SINGLE werks FROM /bay2/u7smcpwerk
         INTO w_plant
         WHERE system_id EQ c_185
         AND legwerks EQ p_works.
      IF sy-subrc = 0.
        MOVE w_plant TO i_sap-werks.
      ENDIF.
    ENDFORM.                    " CONVERT_PLANT
    *&      Form  VENDOR_ADDRESS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM vendor_address.
      REFRESH i_wyt3.
      SELECT * FROM wyt3 INTO i_wyt3
      WHERE lifnr EQ i_sap-lifnr
      AND parza = c_partner_counter.
        APPEND i_wyt3.
        CLEAR i_wyt3.
      ENDSELECT.
      DESCRIBE TABLE i_wyt3 LINES w_address.
    ENDFORM.                    " VENDOR_ADDRESS
    *&      Form  ITEM_XREF_TABLES
    FORM item_xref_tables.
      PERFORM convert_plant                USING i_xleg-works.
      PERFORM convert_costcenter           USING i_xleg-cost_cen
    i_xleg-works.
      PERFORM convert_glacc                USING i_xleg-expence_cl.
      MOVE: i_xleg-txz01(40) TO i_sap-txz01,
            i_xleg-po_nm TO i_sap-po_nm,
            i_xleg-filler+3(14) TO i_sap-netprice.
    *        i_xleg-commit_amt TO i_sap-commit_amt.
    ENDFORM.                    " ITEM_XREF_TABLES
    *&      Form  RECORD_COUNTER
    FORM record_counter.
      i_epstp-field3 = 1.
      i_knttp-field3 = 1.
      i_txz01-field3 = 1.
      i_eeind-field3 = 1.
      i_netpr-field3 = 1.
      i_matkl-field3 = 1.
      i_werks-field3 = 1.
      i_ktext1-field3 = 1.
      i_meins-field3 = 1.
      i_menge-field3 = 1.
      i_tbtwr-field3 = 1.
      i_mkntm-field3 = 1.
      i_kostl-field3 = 1.
      i_sakto-field3 = 1.
      i_ekpo_meins-field3 = 1.
      i_ekpo_menge-field3 = 1.
      w_count = 0.
    ENDFORM.
    *&      Form  LINE_ITEM_DATA
    FORM line_item_data.
       i_epstp-field3 = i_epstp-field3 + 1.
       i_knttp-field3 = i_knttp-field3 + 1.
       i_txz01-field3 = i_txz01-field3 + 1.
       i_eeind-field3 = i_eeind-field3 + 1.
       i_netpr-field3 = i_netpr-field3 + 1.
       i_matkl-field3 = i_matkl-field3 + 1.
       i_werks-field3 = i_werks-field3 + 1.
       i_ekpo_menge-field3 = i_ekpo_menge-field3 + 1.
       i_ekpo_meins-field3 = i_ekpo_meins-field3 + 1.
       w_item = w_item + 10.
    ENDFORM.
    *&      Form  CONVERT_COSTCENTER
    FORM convert_costcenter           USING p_costcenter p_works.
       CONCATENATE c_sq p_works p_costcenter c_zero INTO w_costcenter.
    ENDFORM.
    *&      Form  CONVERT_COSTCENTER
    FORM convert_glacc                USING w_expence_cl.
       SELECT SINGLE kstar FROM /bay2/u7sxcrecce INTO i_kstar-kstar WHERE
    leginp_cd EQ w_expence_cl.
       MOVE i_kstar-kstar TO w_glaccount.
    ENDFORM.
    Thanks,

  • Contacts/Calendar not synching

    I sync with Exchange and also have personal contacts/calendar. Outlook has an Exchange mail/calendar account and I have two IMAP mail accounts plus my personal contacts/calendar. I can view both calendars in Outlook 2007 (Exchange & Personal). The problem is that my iPhone peronal calendar doesn't sync with Outlook personal calendar on the PC. If I add a personal calendar item to Outlook or the iPhone, I'd like the two to sync or merge. It's a similar situation with contacts.
    I remember initially that I declined to merge these in iTunes. Is there a way to do the merge after the fact or do I need to try something else?

    Actually, I see there are four calendars in Outlook with non descript names:
    - Calendar (Exchange)
    - Calendar in Personal Folders
    - Home in Personal Folders
    - Home (this is the one I use)
    Unchecking the middle two leaves the relevant calendars. I did a test by adding something to the personal calendar in Outlook and the iPhone then sync'ed. That worked perfectly. But what are the references to "...Personal Folders"?
    Here are my contacts:
    - Contacts
    - Contacts in Personal Folder
    - Vendors
    - Family/Friends
    - Work
    I have contact groups on the iPhone left over from when I used Windows Live Mail. Do contact groups not work with Outlook?
    Any suggestions on why Outlook contacts aren't syncing?
    There's some weird stuff going on with contacts. I have a certain person on the iPhone that I don't see in Outlook. If I select "All Contact Items" and search on the person's name, I see them. Otherwise, they don't show up in Outlook.

  • Foreach Loop only looping once

    Hi,
    Please be patient and bear with me, for I am new to SSIS packages.
    I am using SQL Server 2008 R2 to host the SQL Agent job and the SSIS package.
    I am using Visual Studio 2008 Professional Edition for designing the SSIS package. It is version 9.0.30729, Version 3.5 SP1.
    I am on a Windows 8 machine.
    My Foreach Loop Container seems to iterate only once when it should iterate numerous times, and this issue happens BOTH when I execute the SSIS package from within Visual Studio AND when I run a SQL Agent job to execute the SSIS package.
    For the solution within Visual Studio, I have False for the property Run64BitRuntime.
    In the SSIS pckg in Visual Studio, I have in the Variables pane a number of variables and these following variables pertain to my problem:
    Name: objRs      Scope: the name of the SSIS package     DataType: Object    Value: System.Object
    Name: txtVendorFamilyNumber   Scope: the name of the SSIS package  DataType: String   Value: 111111
    The value "111111" that I entered into the txtVendorFamilyNumber variable in the Variable Pane is NOT a realistic value as there are no vendor family numbers that have the value 111111. I will populate dynamically the real vendor family numbers
    from within the SSIS package.
    When I imported the SSIS package to SQL Server 2008 R2, via the ellipsis button for the Protection Level I chose the "Rely on server storage and roles for access control" choice.
    Concerning the flow of the SSIS package, going down within Visual Studio from the beginning of the flow of the SSIS package, eventually I have an Execute SQL Task. In its General tab, it has "1252" for CodePage property, "Full result set"
    for ResultSet property, "OLE DB" for ConnectionType property, "Direct input" for SQL Source Type property, "False" for BypassPrepare property, and the following for the SQLStatement property:
         select txtVendorFamilyNumber from tmpVendorFamily  where VendorID = (select min(VendorID) from tmpVendorFamily)
    In the tmpVendorFamily table on SQL Server 2008 R2, there are 379 rows of results for the SELECT statement above (starting with the values 100110, 100115, 100120, 100130, through the LAST row's value 106370.
    In the Parameter Mapping tab of the Execute SQL Task Editor, I have nothing. In the Expressions tab of the Execute SQL Task Editor, I have nothing.
    In the Result Set tab of the Execute SQL Task Editor, I have the value 0 for Result Name property and I have the value User::objRs as the value in the Variable Name property.
    This Execute SQL Task has a green arrow (Constraint evaluation operation, Success in Value drop down) to the Foreach Loop Container.
    In the Foreach Loop Editor, in the Collection tab, I have "Foreach ADO Enumerator" as the value in the Enumerator property. In the drop down for ADO Object Source Variable, I have chosen the User::objRs, and I have the radio button "Rows in
    the first table" selected.
    In the Foreach Loop Editor, in the Expressions tab, I have nothing.
    In the Foreach Loop Editor, in the Variable Mappings tab, I have "User::txtVendorFamilyNumber" for the Variable property and I have the value "0" for the Index property.
    So in the Foreach Loop, I first have a Script Task with the ReadOnly variable User::txtVendorFamilyNumber and with the ReadWrite variable User::TESTING_OnlyTesting that I created with a package scope, string datatype, and no default value. This Script Task
    has the following code for testing purposes:
    Dim strFullVerbiage As String
    strFullVerbiage = "The value is: "
    Dts.Variables("User::TESTING_OnlyTesting").Value = strFullVerbiage + Dts.Variables("User::txtVendorFamilyNumber").Value.ToString()
    Dts.TaskResult = ScriptResults.Success
    I have next in the Foreach Loop Container a Send Mail task. In the Expressions tab of the Send Mail Task Editor, I have for the Message Source property the following:
          @[User::TESTING_OnlyTesting]
    The remaining tasks (including FTP Tasks) in the Foreach Loop Container are disabled for now as I am trying to figure out why the Foreach Loop only iterates the FIRST time, only iterates once.
    When I run on SQL Server 2008 R2 the SELECT statement from the Execute SQL Task, I get 379 rows of results. The default value 111111 that I entered into the Variable Pane for the txtVendorFamilyNumber variable does NOT exist in any of these 379 rows of results.
    The 1st row of results has for the txtVendorFamilyNumber column the value 100110. Then the subsequent rows of results have the values 100115, 100120, 100130, et cetera, ending with the value 106370 in the last row of results.
    I imported the SSIS package into Integration Services on SQL Server 2008 R2. When I imported to Integration Services, in the Import Package editor for the Protection Level I chose the "Rely on server storage and roles for access control" choice
    because there are FTP Tasks and we needed to use this "Rely on server storage and roles for access control" choice.
    I created a SQL Agent job that executes this SSIS package.
    When I run the SQL Agent job, no error happens and I get only ONE email with the value 100110 for the vendor family number in it. I should get 379 emails total, the 2nd email showing 100115, the 3rd email showing 100120, et cetera.
    When I was testing while executing the SSIS package from within Visual Studio, I did NOT have the Send Mail task and I only had enabled one Script Task that had the ReadOnly variable User::txtVendorFamilyNumber and the following lines of code:
    MsgBox(CType(Dts.Variables("User::txtVendorFamilyNumber").Value, String))
    Dts.TaskResult = ScriptResults.Success
    Executing the SSIS package with only this Script Task enabled within the Foreach Loop Container, I would get the ONE message box showing 100110 but I would not get any message box for a SECOND ITERATION of the loop.
    Since my txtVendorFamilyNumber in the Variables Pane has the default hard-coded value 111111 that does NOT exist in the result set of the Execute SQL Task that feeds the Foreach Loop, and since the first and only email sent shows the value 100110 when I
    run the SQL Agent job that runs the SSIS package that is set up to send an email from within the Foreach Loop Container, the FIRST LOOP seems to run correctly and shows correctly the 1st value 100110 in the 379 rows of results that populate the Foreach Loop
    Container. Why does the Foreach Loop Container NOT loop more than once?
    Could anybody give me any suggestions as to what the problem might be?
    I thank you in advance for your consideration of my problem. I have been reading and reading on the Internet to try to find a solution but I have not solved yet my problem with the Foreach loop only iterating once.
    Thanks much to you.

    Gregarious greetings Arthur,
    I very much appreciate your reply.
    This morning I figured out my problem with the help of a fellow employee.
    In my original post higher up, I had typed about the SELECT statement in the Execute SQL Task that is just before the Foreach Loop Container and that populates the User::objRs, and this SELECT statement was in the old DTS package in an old ActiveX script
    task. The SELECT statement was in an old DTS package in an old ActiveX script task and I am creating a new SSIS package to replace the old DTS package so that we can move from the old version of SQL Server to a new SQL Server 2008 R2 server. Here is that
    SELECT statement:
     select txtVendorFamilyNumber from tmpVendorFamily  where VendorID = (select min(VendorID) from tmpVendorFamily)
    That SELECT statement above returns ONLY ONE result. I had not noticed it. That SELECT statement fills the objRs result set. The green arrow goes from the Execute SQL Task that has the SELECT statement down to the Foreach Loop Container that loops over the
    result set. Since the SELECT statement that fills the result set only has one row of results, the Foreach Loop only looped once.
    So for the Execute SQL Task that populates the result set User::objRs, I changed the SELECT statement to be the following:
    --In the Utilities DB, this tmpVendorFamily table
    --has only two columns named VendorID and txtVendorFamilyNumber.  
    SELECT DISTINCT txtVendorFamilyNumber
    FROM Utilities.dbo.tmpVendorFamily
    ORDER BY txtVendorFamilyNumber
    Now the Foreach Loop will loop 379 times since the SELECT statement immediately above yields 379 rows of results.
    So the Foreach Loop Container was fine. Its Collection tab has the "Foreach ADO Enumerator" for the Enumerator and has the "User::objRs" for the ADO Object Source Variable. Its Variable Mappings tab has "User::txtVendorFamilyNumber"
    for the Variable and has "0" for the Index.
    My problem was the SELECT statement in the Execute SQL Task that immediately precedes the Foreach Loop Container and that fills the User::objRs result set. The SELECT statement yielded only ONE row of results. When I corrected this morning that SELECT statement
    so that it correctly yields 379 rows of results, the Foreach Loop Container loops 379 rows.
    Thanks again for replying and trying to help. I very much appreciate it.
    I consider this thread that I created to be closed since I figured out this morning how I needed to correct the SELECT statement in the Execute SQL Task that fills the result set on which the Foreach Loop loops.
    Misko_Hviezdoslav   27-JAN-2015

  • APO Contract Mfg Supply Modeling to Account for a Hong Kong Location

    Who knows the best practice with regard to the Hong Kong SC design into which we are forced for taxation reasons, and which can cause the replication plants (in HK) to match the number of CM's in China? Have you run into this?
    The situation is multiple contract manufacturers in China, ten. We desire that a Vendor, not a Plant object in APO, represents the CM. ( A vendor object represents the vendor in ECC). We have one plant in HK through which all DC supply signals pass; we have this HK plant positioned to allow a Goods Receipt into a company code (taxation) AND to backflush the sub-con components earlier, a very important WIP-removal step prior to the 8 to 10 week ocean transit to the US or Europe. With many different DC's sending supply signals through the one HK plant and from that plant sent to one of many CMs as a sub-con PO, the subsequent deployment of containerloads back to the correct DC becomes a big problem. One tendency is to match a HK plant for each CM. We do not desire this approach due to the creation of many Plant (configurable) locations. I have been attempting to crack the code on this for some time and without success.
    Do you know of a better solution or do you have a contact with whom I can discuss the best method for addressing this problem?
    Craig.Dionne

    would this help?? :-
    If a subcontractor processes the same product for multiple plants, it is not sufficient to use the location type vendor, since the system cannot distinguish between these plants and would mix up the receipts and requirements of the plants. In this case, you use the location type subcontractor.
    You create an individual location with the type subcontractor for each plant-vendor combination. You assign the plant for which the subcontracting occurs and the vendor in which the subcontracting takes place to this location.
    Planning takes place in the location with the type subcontractor for the relevant plant-vendor combination. You can create a location with the type subcontractor for as many plant-vendor combinations as you like.
    You create the location with the type subcontractor manually in the location master data maintenance in SAP APO. This location type is not integrated with SAP R/3.

  • Adding multiple addresses

    Is there a way to add multiple addresses to an outgoing email at one time from your contacts?

    David,
    I keep my Address Book on iCloud. If I type the name of the group into the "to" box on my iPhone, it does not imediately recognize the address. However, if I type the group name and then move on to another field (like subject), it seems to figure it out.
    Just so you know, I have not had time to test it as I will need to create a "fake" group and send a couple of e-mails using that method....... I did not want to bother any of my vendors, family members, customers, etc    If you have a chance to test this, please let us know. Otherwise I will try to remember to squeeze this into my "to-do" list for tomorrow....... well, I guess it would be later today at this point.
    If someone has tried this already and knows whether it works or not, would you please let David and me know?
    Hope it helps,
    Bill
     MacBook Pro (15-inch Late 2011), Mac OS X (10.8.2)
     MacBook Pro, Mac OS X (10.7.5), 15in, 8GB RAM
     Mac Pro, Mac OS X (10.7.4), Dual 3.2GHz Xenons- MANY upgrades
     Mac Pro, OS X Mountain Lion (10.8.2), Mid-'12, 12-Core, 64GB RAM
     iPad, iOS 5.1.1
     iPad 2, iOS 6
     iPhone 4, iOS 6
     iPhone 4S, iOS 6

  • Difference between "account group" and "reconciliation account"

    Hello,
    I am new to SAP and I would like to understand the difference between the "account group" and the "reconciliation account" that appear both in the vendor master records.
    From what I read, "account group" is just a classification but has no "accounting" impact whereas "reconciliation account" (goods suppliers, overhead expenses suppliers...) do have an accounting impact.
    However I am not sure so I would like a confirmation on that and if possible examples so I could really understand.
    Thank you.

    Hi,
    The account group is a way to divide vendors into groups for reporting later on.
    The account group is also the link to the number range and the field selection functionality.
    Please refer the below link for more clarity.
    http://help.sap.com/saphelp_46c/helpdata/en/53/c98647ca3711d2b494006094b9114a/frameset.htm
    Account group
    The reconciliation account is the account is the account which is posted to at invoice receipt stage where the vendor account represents the sub ledger and the reconcilation account the ledger.
    Reconciliation Account
    http://sapdocs.info/sap/fico/reconciliation-accounts-and-special-gl-indicator/
    Hope it helps you.
    Thanks.

  • BD59 for message Cremas

    Hi,
    I want to add filter object type for vendor number (LIFNR) for message type Cremas. I added already LIFNR with segment type E1LFA1M in BD59. But when I launch BD64 and I do not see vendor number in the filter set.
    What happens? Is it because of vendor number represents as a key field thus unable to be used. Other non key fields have no problem. This is  just my assumption.
    Very appreciate of any helpful reply.
    Thanks !
    Chika

    For type E and W, the relevant message is normally returned and the variables are then stored in SY-MSGV1 to V4, if available. Not all messages have variables.
    In case of an Abort (A) you will get a pop-up with the message. In case of Short Dump (type X), ypu will get an overview page in which will be explained what the problem triggered.

  • Contol events

    hi all,
    this is my interbal table ....
         DATA: begin of t_ekpo1 occurs 0,
          banfn like eban-banfn,
          ebeln like ekpo-ebeln,
          ebelp like ekpo-ebelp,
          werks like ekpo-werks,
          matnr like ekpo-matnr,
          menge like ekpo-menge,
          txz01 like ekpo-txz01,
          meins like ekpo-meins,
          zzissue_date like ekpo-zzissue_date,
          s_menge(13) type c,
          quan(13) type c,
          end of t_ekpo1.
    i am using control break event at the field...
    at new banfn.
    write:/ t_ekpo1-banfn.
    endat.
    write: t_ekpo1-ebeln.
    if i am doing so then it writes only one item if there are 4 0r 5 0r 6.
    but if i write
    at new banfn.
    write:/ t_ekpo1-banfn.
    endat.
    write:/ t_ekpo1-ebeln.
    the diffrence betwee the two statement is of '/' . if i removw this it is not writting the value...but if it is there it writes...
    so plz help on this...
    regards
    parul

    Program ID   : ZHIPMENT                                              *
    Author       :                                                       *
    Date         :                                                       *
    Run Mode     : Online \ Background                                   *
    Frequency    : ANY TIME                                              *
    Special run  ]                                                       *
    instructions ]                                                       *
    Issue #      : ?                                                     *
    Copied From  :                                                       *
    Called From  :                                                       *
    Transaction  :                                                       *
    Input        :                                                       *
    Output       :                                                       *
    Description  :                                                       *
                     M O D I F I C A T I O N    L O G                    *
    User ID|Date    |Issue #   |Transport |Description of change         *
    USER ID|DD/MM/YY|????-???? |CCDK9A1???|Initial Development           *
    REPORT ZHIPMENT NO STANDARD PAGE HEADING LINE-SIZE 175
    tables: eban,
            ekko,
            ekpo,
            eket,
            ekbe.
                         Data Declaration                               *
    *Internal table for purchase requistion
    Data: begin of itab occurs 0,
             ekgrp like eban-ekgrp,  "purchasing group
             werks like eban-werks,  "plant
             flief like eban-flief,  "vendor#
             reswk like eban-reswk,  "supplying plant
             meins like eban-meins,  "Sku#
             TXZ01 like eban-TXZ01,  "product name
             banfn like eban-banfn,  "purchase requistion
             bnfpo like eban-bnfpo,  "item#
             quan(13) type c,        "open quantity
             frgdt like eban-frgdt,  "release date
             lfdat like eban-lfdat,   "Delivery date
             ebeln like eban-ebeln,
             matnr like eban-matnr,
         end of itab.
    *Internal table for purchase order
    Data: begin of itab1 occurs 0,
             ekgrp like ekko-ekgrp,  "purchasing group
             lifnr like ekko-lifnr,  "vendor#
             reswk like ekko-reswk,  "supplying plant
             bsart like ekko-bsart,
             ebeln like ekko-ebeln,  "purchase order
             werks like ekpo-werks,  "plant
             matnr like ekpo-matnr,
             menge like ekpo-menge,
             TXZ01 like ekpo-TXZ01,  "product name
             ebelp like ekpo-ebelp,  "item#
             meins like ekpo-meins,  "Sku#
             eindt like eket-eindt,
             s_menge like ekbe-menge,
             quan(10) type c,        "open quantity
             ship_quan(10) type c,   "ship quantity
             unship_quan(10) type c, "unship quantity
             ZzISSUE_DATE like ekpo-ZZISSUE_DATE,
          end of itab1.
    Data: begin of itab_req occurs 0,
             ekgrp like eban-ekgrp,  "purchasing group
             werks like eban-werks,  "plant
             flief like eban-flief,  "vendor#
             reswk like eban-reswk,  "supplying plant
             meins like eban-meins,  "Sku#
             TXZ01 like eban-TXZ01,  "product name
             banfn like eban-banfn,  "purchase requistion
             bnfpo like eban-bnfpo,  "item#
             quan(13) type c,         "open quantity
             frgdt like eban-frgdt, "release date
             lfdat like eban-lfdat,   "Delivery date
             matnr like eban-matnr,
         end of itab_req.
    DATA: Begin of t_ekko occurs 0,
              ekgrp like ekko-ekgrp,
              ebeln like ekko-ebeln,
              lifnr like ekko-lifnr,
              reswk like ekko-reswk,
              bsart like ekko-bsart,
            end of t_ekko.
    DATA: begin of t_ekpo occurs 0,
          ebeln like ekpo-ebeln,
          ebelp like ekpo-ebelp,
          werks like ekpo-werks,
          matnr like ekpo-matnr,
          menge like ekpo-menge,
          txz01 like ekpo-txz01,
          meins like ekpo-meins,
          zzissue_date like ekpo-zzissue_date,
          end of t_ekpo.
    DATA: begin of t_ekpo1 occurs 0,
          banfn like eban-banfn,
          ebeln like ekpo-ebeln,
          ebelp like ekpo-ebelp,
          werks like ekpo-werks,
          matnr like ekpo-matnr,
          menge like ekpo-menge,
          txz01 like ekpo-txz01,
          meins like ekpo-meins,
          zzissue_date like ekpo-zzissue_date,
          s_menge(13) type c,
          quan(13) type c,
          ship_quan(13) type c,
          unship_quan(13) type c,
          end of t_ekpo1.
    DATA: begin of t_ekbe occurs 0,
             menge like ekbe-menge,
          end of t_ekbe.
    DATA: w_menge like eban-menge,
          w_bsmng like eban-bsmng.
    data: x_menge like ekbe-menge,
          x1_menge type p decimals 2.
    DATA : BEGIN OF zheadtab OCCURS 5.     "text header
            INCLUDE STRUCTURE tline.
    DATA : END OF zheadtab.
    DATA : pagno  LIKE sy-pagno.
    DATA : name   LIKE sy-repid.
    data: xmenge like ekbe-menge.
                           Selection screen                             *
    SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-S01.
    SELECT-OPTIONS : S_ekgrp FOR eban-ekgrp,
                     s_matnr for eban-matnr,
                     s_werks for eban-werks,
                     s_bsart for eban-bsart,
                     s_lfdat for eban-lfdat,
                     s_frgdt for eban-frgdt,
                     s_flief for eban-flief,
                     s_reswk for eban-reswk.
    SELECTION-SCREEN END OF BLOCK A.
    SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-S02.
    PARAMETERS : P_both  RADIOBUTTON GROUP A.   "For both Po and Pur req.
    PARAMETERS : P_req   RADIOBUTTON GROUP A Default 'X' . "For Pur equsit'n
    PARAMETERS : P_order RADIOBUTTON GROUP A. "For Purchase order
    SELECTION-SCREEN END OF BLOCK B.
    TOP-OF-PAGE.
    PERFORM 100_top_of_page.
                           Start-of-selection                           *
    START-OF-SELECTION.
      if P_req eq 'X'.
        perform get_purchase_data .
        loop at itab_req.
          if itab_req-quan gt 0.
            write:/1   itab_req-ekgrp,
                   5   itab_req-werks,
                   12  itab_req-flief,
                   23  itab_req-reswk,
                   29  itab_req-meins,
                   33  itab_req-TXZ01,
                   72  itab_req-banfn,
                   97  itab_req-bnfpo,
                   109 itab_req-quan,
                   154 itab_req-frgdt,
                   166 itab_req-lfdat.
          endif.
        endloop.
      endif.
      if P_order eq 'X'.
        perform get_requistion_data .
        check sy-subrc eq 0.
        loop at itab_req.
    *value collected for recieved quantity
    select sum( menge ) into (xmenge) from ekbe   where ebeln = itab1-ebeln
                        and   ebelp = itab1-ebelp
                        and   werks in s_werks
                        and   vgabe eq '1'.
          check sy-subrc eq 0.
    *S_menge is the value for goods recieved quantity
          move xmenge to itab1-S_menge.
    *value calculated for po open quantity
          itab1-quan = itab1-menge - itab1-S_menge.
          if itab1-quan gt 0.
    *value collected for shipped quantity goods issued(x_menge)
    select sum( menge ) into (x_menge) from ekbe   where ebeln = itab1-ebeln
                        and   ebelp = itab1-ebelp
                        and   werks in s_werks
                        and   vgabe eq '6'.
            check sy-subrc eq 0.
    *value calculated for shipped quantity
            itab1-ship_quan = x_menge - itab1-S_menge.
    *value calculated for unshipped quantity
    *which is equl to the ordered quantity(ekpo-menge)
    *and the goods issued (x_menge)
            itab1-unship_quan = itab1-menge - x_menge.
            write:/1 itab1-ekgrp,
                   5 itab1-werks,
                   12 itab1-lifnr,
                   23 itab1-reswk,
                   29 itab1-meins,
                   33 itab1-txz01,
                   86 itab1-ebeln,
                   97 itab1-ebelp,
                   109 itab1-quan,
                   126 itab1-ship_quan,
                   140 itab1-unship_quan,
                   154 itab1-zzissue_date,
                   165 itab1-eindt.
          endif.
        endloop.
      endif.
      if P_both eq 'X'.
        select * from eban into corresponding fields of table itab
                                             where ekgrp in s_ekgrp
                                             And   matnr in s_matnr
                                             and   werks in s_werks
                                             and   bsart in s_bsart
                                             and   lfdat in s_lfdat
                                             and   frgdt in s_frgdt
                                             and   flief in s_flief
                                             and   reswk in s_reswk
                                             and   ebakz NE 'X'
                                             and   loekz NE 'X'.
        loop at itab.
          select * from ekpo into corresponding fields of table t_ekpo
                         where ebeln = itab-ebeln.
          loop at t_ekpo.
            move t_ekpo-ebeln to t_ekpo1-ebeln.
            move t_ekpo-ebelp to t_ekpo1-ebelp.
            move t_ekpo-werks to t_ekpo1-werks.
            move t_ekpo-matnr to t_ekpo1-matnr.
            move t_ekpo-menge to t_ekpo1-menge.
            move t_ekpo-txz01 to t_ekpo1-txz01.
            move t_ekpo-meins to t_ekpo1-meins.
            move t_ekpo-zzissue_date to t_ekpo1-zzissue_date.
            move itab-banfn to t_ekpo1-banfn.
    *value collected for recieved quantity
    select sum( menge ) into (xmenge) from ekbe where ebeln = t_ekpo1-ebeln
                        and   ebelp = t_ekpo1-ebelp
                        and   werks in s_werks
                        and   vgabe eq '1'.
          check sy-subrc eq 0.
    *S_menge is the value for goods recieved quantity
          move xmenge to t_ekpo1-S_menge.
    *value calculated for po open quantity
          t_ekpo1-quan = t_ekpo-menge - t_ekpo1-S_menge.
         if itab1-quan gt 0.
    *value collected for shipped quantity goods issued(x_menge)
    select sum( menge ) into (x_menge) from ekbe where ebeln = t_ekpo1-ebeln
                        and   ebelp = t_ekpo1-ebelp
                        and   werks in s_werks
                        and   vgabe eq '6'.
            check sy-subrc eq 0.
    *value calculated for shipped quantity
            t_ekpo1-ship_quan = x_menge - t_ekpo1-S_menge.
    *value calculated for unshipped quantity
    *which is equl to the ordered quantity(ekpo-menge)
    *and the goods issued (x_menge)
            t_ekpo1-unship_quan = t_ekpo1-menge - x_menge.
            append t_ekpo1.
          endloop.
        endloop.
        sort t_ekpo1 by banfn ebeln ebelp.
        loop at t_ekpo1.
          at new banfn.
            write:/72 t_ekpo1-banfn.
          endat.
          write:/86 t_ekpo1-ebeln .
        endloop.
      endif.
    *&      Form  100_top_of_page
          text
    -->  p1        text
    <--  p2        text
    FORM 100_top_of_page .
      DATA : xdat1(10) TYPE c,
             xdat2(10) TYPE c.
      DATA prog_nm LIKE sy-repid.
      prog_nm = sy-repid.
      WRITE : s_lfdat-low  TO xdat1 DD/MM/YYYY,
              s_lfdat-high TO xdat2 DD/MM/YYYY.
      MOVE 'H1' TO zheadtab-tdformat.
      CONCATENATE   'Shipment Report Between'
                    xdat1
                    'and'
                    xdat2
                    INTO zheadtab-tdline SEPARATED BY space.
      APPEND zheadtab.
      CALL FUNCTION 'Z_HEADER'
        EXPORTING
          datum      = sy-datum
          pagno      = sy-pagno
          prog_title = sy-title
          repid      = prog_nm
          uname      = sy-uname
          uzeit      = sy-uzeit
        TABLES
          zheadtab   = zheadtab.
      format  intensified on.
      WRITE :/1 'Pur',
              5 'Plant',
              12 'Vendor',
              23 'Sup',
              29 'Sku#',
              33 'Product Name',
              72 'Purchase',
              86 'Purchase',
              97 'item',
              109 'Open',
              126 'shipped ',
              140 'unshipped ',
              154 'Release',
              165 'Delivery'.
      write:/1  'Grp',
             23 'Plant',
             72 'Requistion',
             86 'order',
             109 'Quan',
             126 'quan',
             140 'quan',
             154 'Date',
             165 'Date'.
      Uline.
    ENDFORM.                    " 100_top_of_page
    *&      Form  get_purchase_data
          text
    -->  p1        text
    <--  p2        text
    FORM get_purchase_data .
      select * from eban into corresponding fields of table itab
                                           where ekgrp in s_ekgrp
                                           And   matnr in s_matnr
                                           and   werks in s_werks
                                           and   bsart in s_bsart
                                           and   lfdat in s_lfdat
                                           and   frgdt in s_frgdt
                                           and   flief in s_flief
                                           and   reswk in s_reswk
                                           and   ebakz NE 'X'
                                           and   loekz NE 'X'.
      sort itab by werks matnr.
      loop at itab.
        move itab to itab_req.
        w_menge = eban-menge.
        w_bsmng = eban-bsmng.
        itab-quan = ( w_menge - w_bsmng ).
        itab_req-quan = itab-quan.
        append itab_req.
      endloop.
    ENDFORM.                    " get_purchase_data
    *&      Form  get_requistion_data
          text
    -->  p1        text
    <--  p2        text
    FORM get_requistion_data .
      select ekkoekgrp ekkolifnr ekkoreswk ekkobsart ekko~ebeln
               ekpowerks ekpomatnr ekpomenge ekpoTXZ01 ekpo~ebelp
               ekpomeins eketeindt eketebeln ekpoZZISSUE_DATE
               into corresponding fields of table itab1
               from ekko inner join ekpo
               on ekkoebeln = ekpoebeln
               inner join eket
               on  eketebeln = ekkoebeln
               and eketebelp = ekpoebelp
               where  ekko~bsart in s_bsart
               and eket~eindt in s_lfdat
               and ekko~ekgrp in s_ekgrp
               and ekpo~matnr in s_matnr
               and ekpo~werks in s_werks
               and ekpo~loekz NE 'X'
               and ekpo~elikz ne 'X'.
    ENDFORM.                    " get_requistion_data
    plz if someone can help on this
    regards
    parul

  • If a mobile represents a user and a mac represents a family...

    I've read these posts to death.  Apple needs to get it together on this one.  Lots of family's have a phone each but fewer ipads and macs.  I would safely say most.  I would also say most families want to pool their photos (yes flamers I'm sure you are different, but I'm speaking for "most" people right now). 
    Apple, why is it so hard to have multiple photo streams (apple id's running on different phones) automatically dl into a single mac? 
    I dont want some buggy, difficult to use work around.  I want a bonafided apple quality, easy to use, works out of the box FIX to this.  It's been to **** long and it should have worked right from the start!  I want a preferences box to pop up and say, "good morning!  I noticed you have a couple iphones that talk to this mac, would you like to automatically import both photo streams into iphoto?"
    Apple, please fix this. 
    Thanks in advance!
    Chris Faith

    Tell that to Apple via http://www.apple.com/feedback/icloud.html and  http://www.apple.com/feedback/iphoto.html
    OT

  • Can I merge several different Verizon plans (different family members each have own plans) into one plan (i.e. can I take over all their lines), if all lines on all plans are on Edge?

    I was originally told by Verizon that if I joined, I can eventually take over the lines of various family members.  Now that I've joined, and my family members all upgraded their phones and are on Edge, Verizon is telling us that we can't merge into one plan (because Edge lines can't be transferred to another account).
    Is this true, and, if so, what is my recourse since I was lied to.

    Well, yes and no (as far as being lied to).  I asked on several occasions (I have the chat transcripts to prove it) if there would be any issue if the lines were all already on Edge, and was told each time that under no circumstances would there be any issue.  The latest being today (I know it's after the fact, but I wanted proof that this is what the chat people are saying).  I asked "I have currently have an account with 3 phones on Edge.  My brother and his wife, and my parents, also have plans all on Edge.  I would like to 'take over' their lines.  I want to make sure there is no issue with the Edge plan and that I can simply 'take over' their lines with no problems."  I was told "Yes. That would be correct."  Again, this is what I was told in the past as well (my original post didn't make clear the timing of the chats and upgrades to Edge..).  Every time I chatted I mentioned that the accounts were going to be on Edge or (later on) were already on Edge.  Even before my family members upgraded to Edge, not one single chat or phone representative (and my brother asked the same thing in a store) mentioned NOT to upgrade to Edge because it couldn't be transferred.  Everyone just said yep, no problem.  The ONLY reason I even joined Verizon (I was on Straight Talk) was because of the More Everything and Edge plans (we wanted a family plan with 6 people and over 10GB so we'd each save $25/line).  Otherwise I never would have joined Verizon and my family wouldn't have upgraded either.

Maybe you are looking for