i this /i is retarded

In a servlet I'm writing I have this code...
out.print(request.getPathTranslated() + "<BR>");
out.print(request.getServerName() + "<BR>");
out.print(this.getServletInfo() + "<BR>");
out.print(this.getServletContext().getRealPath("") + "<BR>");
out.print(this.getServletContext().getServerInfo() + "<BR>");
and I get "undifined variable this"
how can it not know what "this" is?!?!?1

Are you using a third party development environment?
I have found with our development environment that sometimes it doesn't build correctly and we need to delete some files from our hard drives before it will work again.
There is nothing wrong with the code you are showing, but if all else fails you can just delete this from those lines because it isn't neccesary. this is implicit.

Similar Messages

  • Nokia X2-02 Conversation View Default

    This is so retarded, i get a msg come in it opens into conversation view?.... I want normal Inbox view.... that means i have to close message not open it, go to menue messaging inbox? **bleep**???????? ...... Also wants me to reply via convo view its so tiny...... Nokia fix this with update disable Convo view choice??

    Check whether you have these settings..
    Menu-->Messaging-->Message Settings-->General Settings-->Change Message View...INBOX View...

  • NOKIA 5610- 10 PROBLEMS!

    Hello everybody this is my first post. I have a Nokia 5610 I bought 1 month ago and I want to describe the main dis advantages I can see in this phone.. Please comment if you own one with your opinions on what to do. help, or anything to add...
    1. No SECURITY , you cant make the phone ask you for security code when you turn the phone.. This is a major flaw considering ALL my previous cell phones had this.. So if they steal your phone or someone wants to use it there is no barriers.. Really bad.
    2. No InCall timer. This is amazing from nokia how can they release a phone that does not have the option of showing how long you've been talking??? This is really bad, you can choose "call resume" function which shows you the time at the end of the call but its not the same.
    3. NO FLASH as LIGHT! what is this?? I mean how come it has such a great light to be used as flash and you cant use it as flashlight?? how many times you are in a dark situation? I was used to take out my phone and spare some light. (keys, dark stairs, ect.. even shooting video at night.) Well.. not possible.
    4.MICRO USB .. Why??? why didint you just stay with miniUSB?? Why micro?? who uses micro? nobody.. so if you lost that cable its really hard to get and you cant charge it (phone )through a computer so its useless.. This slot is useful just to connect the computer to a PC.. Attention ; The charger is a different slot.
    5. No 3.5mm jack.. so you cant connect your normal headphones you have to connect the nokia ones or use an adapter..
    6.No Auto lock keypad.. You have to manually lock the keypad every time .
    7.No battery warning signal.. There is no absolute sing of the battery telling you its going to finish.. No red line , no sound (MO), no screen message.. (SE) , no nothing.. you just go to sleep and wake up the phone has been with no battery since you who knows... you put it in your pocket go out.. check it a 2 am .. absolutely dead.. with no warning..
    8. No MAPS,..
    9. No searching songs or artist title through the numbers keyboard .. so stupid.. you have a thousand songs and you have to scroll allll the way down .. wouldn't it be quicker to just press the 1st letter??
    10.Cant send SMS from the phonebook menu.. Im sorry but this is really retarded, you see the options of a contact on the phonebook list and theres 10 options but no "send sms" option.
    So prepare to go to SMS menu and then not even scroll but ADD new recipient.. i mean **bleep**??
    The rest is pretty decent.. nice sound , quality of images, interface, speed...
    But nokia please!! cant you release a software update at least??

    Hi there,
    As an ex-user of Nokia 5610 ME..
    1. No SECURITY , you cant make the phone ask you for security code when you turn the phone.. This is a major flaw considering ALL my previous cell phones had this.. So if they steal your phone or someone wants to use it there is no barriers.. Really bad.
    My Reply: This feature is available at the Settings menu which you can change the setting of security.. there's 2 option there, if i'm not mistaken..It requires u to insert the securit code.. and for changes of sim card, it do requires the security phone unlock code.. maybe u might mislook the function there.. check it out..
    2. No InCall timer. This is amazing from nokia how can they release a phone that does not have the option of showing how long you've been talking??? This is really bad, you can choose "call resume" function which shows you the time at the end of the call but its not the same.
    My Reply: Correct me if i'm wrong, do u mean "Call Duration Timer?" If yes, then as the same judgement as above, you might mislook the function which you may edit settings on the "Call Setting"..
    3. NO FLASH as LIGHT! what is this?? I mean how come it has such a great light to be used as flash and you cant use it as flashlight?? how many times you are in a dark situation? I was used to take out my phone and spare some light. (keys, dark stairs, ect.. even shooting video at night.) Well.. not possible.
    My Reply: Ohh yea.. this could be a fair bid to nokia and consumer then.. there's a reason which why nokia doesn't provide the flash light, although 5610 user knew tht its' flash are bright enuff to shine a darkness.. AS consumer, we have the right to choose which is the phone which suits our lifestyle.. hence, for all future buyer on mobile, make a survey on needs and not trend.. coz it will ends up in unsatisfaction like me though..
    4.MICRO USB .. Why??? why didint you just stay with miniUSB?? Why micro?? who uses micro? nobody.. so if you lost that cable its really hard to get and you cant charge it (phone )through a computer so its useless.. This slot is useful just to connect the computer to a PC.. Attention ; The charger is a different slot.
    My Reply: haha... Gosh .. charging through PC is an added advantage.. and i would compliments u a cheers for this comments on Nokia.. Yea.. charging through mobile via USB is a useful features which do think all mobile should have.. Thumbs up !
    5. No 3.5mm jack.. so you cant connect your normal headphones you have to connect the nokia ones or use an adapter..
    My Reply: I'm partly lost here..
    6.No Auto lock keypad.. You have to manually lock the keypad every time .
    My Reply: This feature is available at the Settings menu which you can turns on the Automatic Security Keypad.. Your phone will be locked whenever you shut downs the slide..
    7.No battery warning signal.. There is no absolute sing of the battery telling you its going to finish.. No red line , no sound (MO), no screen message.. (SE) , no nothing.. you just go to sleep and wake up the phone has been with no battery since you who knows... you put it in your pocket go out.. check it a 2 am .. absolutely dead.. with no warning..
    8. No MAPS,..
    My Reply: Ouch.. My fellow bro or sis.. this is the reason as we can see the technology and Nokia always comes out with a New..New..New.. mobile.. the technology never ends.. As mentioned earlier.. Nokia packages its' theme and concept or personality for each phone.. This Nokia 5610 is meant for music lover.. which there's fast key for any music turn on/of.. and its speaker.. As for consumer, we hv to knows wut we want and wut is the budget of any purchase.. Nokia comes out with quite of models which can cope with the consumer needs as of:-GPS; N95 8Gb, Navigator or etc..
    9. No searching songs or artist title through the numbers keyboard .. so stupid.. you have a thousand songs and you have to scroll allll the way down .. wouldn't it be quicker to just press the 1st letter??
    My Reply: Haven't been though this..
    10.Cant send SMS from the phonebook menu.. Im sorry but this is really retarded, you see the options of a contact on the phonebook list and theres 10 options but no "send sms" option.
    My Reply: Correct me if i'm wrong, do u mean tht through contacts, u would like to send a SMS..? If is, then u might miss a step tht makes u think tht u can't send any SMS though contacts.. I'll list down a few step below;-
    1. Go to Contacts or press the "down" key
    2. Choose any of your Pals name / number
    3. Press on the name selected
    4. You'll see your pal's name and number at the full screen
    5. Press again the menu/ option
    6. You'll see the list of option, "Send Message"
    *** For an ex user of Nokia 5610, My main concern is their conponent as off the left/right slide radio on/off button .. In software, there's no issue for me.. nmw, advise as a user, purchase the right phone which caters your personality and needs.. It will gives u the positive bout Nokia technology..
    Anyway, no offence on posting.. All the best to Explore the Music Life.. Cheers..

  • BB8830 - Mac OS 10.5.7 - PocketMac won't work

    I'm going to go mad. I have 400 entries in Address Book and I don't want to do this by hand.
    PocketMac says it did transfer but it doesn't work, no data goes over from computer to BB. I managed to get numbers out of phone to Mac by Bluetooth, but it only works one way (???).
    This is seriously retarded. I've already lost half a day. I need to get iCal and Address Book talking to the BB. Can anyone please help?

    I'm going to go mad. I have 400 entries in Address Book and I don't want to do this by hand.
    PocketMac says it did transfer but it doesn't work, no data goes over from computer to BB. I managed to get numbers out of phone to Mac by Bluetooth, but it only works one way (???).
    This is seriously retarded. I've already lost half a day. I need to get iCal and Address Book talking to the BB. Can anyone please help?

  • New Skype UI is literally painful to look at

    So this is the new:
    and this is the old:
    All this blue is literally making my eyes bleed. Especially that large blob of intense blue in the top left corner. And in the group chat, the names are barely visible (what is this extra light blue on top of white?) without selecting it, which kinda defeats the purpose. Everything about the old layout is more streamlined and easier to see, in the new one messages meld together with no real indication of where ends what. If this really is the "new layout" that will be forced upon us then I'll just switch to something else when there'll be no alternative.
    Oh and I had to add a space to the image links because this site is retarded. So just click on it and remove the space (space in URL is %20). Sorry about that, but image hosting sites are apparently "not allowed in this community".

    The blue dot is too small and not contrasty enough; for people without color deficiencies, RED is better (I would suggest at least two color schemes set by the user's profile: the current one, "high contrast," "color deficient"); The light purple vs light blue vs pale gray in some text area is difficult to distinguish: again, more contrast with the background and more difference from one another is called for.
    And something else I've always wanted: when I go to a thread, at least have the option of ONLY showing articles I've not read yet (that is, just blue dot articles).
    Ed

  • Newest version has NO REFRESH, tool bar does nothing

    Have a little picture of a gear, says refresh tool bar but it does nothing

    this was helpful, but this is a retarded place to have it. Why didn't they just keep it in between or right next to the arrows on the left, like it's always been??? Firefox, PLEASE CHANGE IT BACK for the next upgrade!!!!!!

  • Pearl Flip 8230

    Hey folks,
    So my issues with this phone have been going on since I got it from Virgin, but since I have no other choice but to wait out my contract, I felt the need to vent. So....just have to say, to the Blackberry Support folks reading this, this is in no way directed at you personally. When I talk about how much this phone licks, etc. it's meant for your developers, product managers etc. and not you
    Alright, so, this is without a doubt the worst phone I have ever had in my life. The reasons i got a Blackberry were because it's a Canadian company, heard good things. I was really amped to get this, as I have never had anything close to a smartphone before.
    The keyboard was the first to go (after maybe 3 months). At first, two buttons needed a very hard push, now that has shot up to 5. Sometimes the buttons won't even work. This thing is SLOW too, really slow. It just hangs randomly for no reason. I could be texting, checking email, anything, and it will happen. Even going back & forth between screens is slow & lags. --And this happens when there are very few open (2 or 3).
    The battery life on this thing is retarded too. I really have never seen anything like it. After a conversation or two (no more than 10 minutes) this thing is almost dead. Why would Blackberry even bother putting something like this out?
    On a funny note, the Blackberry symbol on the back of the phone fell apart as well...which is kind of fitting of my view of the company as a whole.
    Anyway, if anyone knows any way at all how I can fix this piece of junk to at least make it bearable, you will be my hero(s) forever.
    And I'm really not trying to start the whole Android / iPhone / Blackberry thing ( I have never had anything Apple or Android) but there is no way at all I would ever buy anything made by RIM again. My next smartphone will definitely be an iPhone or Droid.
    Phew. There. Thanks for reading my lame rant.
    -- 1/2 of my memory is free
    -- v4.6.1.208 (Platform 3.3.0.70
    --  Very few apps installed (I have removed everything several times & it still happens) Right now I have Weather Eye, The Score, Live Messenger, Facebook, YouTube
    -- Battery pulls don't help at all

    Hi,
    I return to my phone service provider (Bell) and I buy the original holster for the Blackberry pearl flip 8230 and the profiles I create works finely.
    The name on the box is : Black Leather Swivel Holster-BB 8230.
    It's look like this http://www.blackberrysource.com/store/catalog.asp?​item=4469
    Good Luck.

  • Help! Trying to download BBM to Blackberry Pearl 8130

    So I was trying to upgrade to the new version of BBM on my Pearl 8130 and I deleted the old version.  Now I can't download any version of BBM.  Sorry if this is a retard question and I'm absolutely missing the correct way to do it.  But every time I try to download BBM, it is only giving me the option to download the newest version and it says my OS is not valid.  PLEASE HELP!!!  I shouldn't have deleted the version I had and I use BBM as a business tool.  Is there a way to get the most updated OS on my (crappy) Pearl?

    PS I know my phone is a piece of **bleep** but I'm 6 months away from getting a new phone.  Either by leaving Telus if they don't give me a new Bold (or other phone by suggestion) for free or by signing up with another company.

  • Thinkpad T400 reboot after post (right before boot)

    After update bios to 2.03 i noticed, that sometimes my thinkpad reboots after post (right after system booting). First I ignored this issue, because i thought it's caused by vista cd in drive, so i was removing it and everything seemd to be fine. But now i know that this is compleatly cd-independed. It happens in almost every second boot, and is independed on boot priority or boot media (cd, usb, hdd). I tried to downgrade bios to 1.20 and 1.23, but it still happening.
    If anyone know what is going on, please let me know. I'm little stressed.
    I noticed one more think. After change to "diagnostic boot" in bios, after reboot I hear beep, which is clearly longer, than when reboot not occurs.
    Message Edited by lucks on 03-02-2009 02:10 AM

    This is still happening... but I think I've noticed some things.
    I think what the problem is, and I'm sure this'll sound retarded, is Arch is restarting "too quickly". I say this because there are some times when reboot works properly. When this happens, I notice all of the hardware shut completely down for about a second. I hear sort of a "click" indicating to me that discs have stopped and power is off, like the very last sound you hear when you completely shut down a computer. Instead of a blank screen, I can tell the monitor is completely shut off. After about a second of this, everything comes back on, the Thinkpad splash screen appears, and then goes away and I am taken to GRUB. Everything is peachy.
    When the reboot fails to work properly, however, I don't get that total shutdown "feeling".. no click sound, and my screen just goes blank, but not totally off. The Thinkpad splash screen reappears sooner, but this is where I hang and eventually get the error I reported in the original post.
    I hope this additional info helps, as this problem is really annoying.

  • @SuppressWarnings annotation causing compiler error

    Anyone know why it is illegal to put a @SuppressWarnings annotation as shown in this example? I know this is a retarded example, and that you could just place the annotation on the method instead of inline with the code, so I am not looking for alternatives. I am just curious why it is illegal in the place shown.
    public class SuppressTest {
         public void addFoo(Object bar) {
              List list = (List<String>) bar;
              @SuppressWarnings("unchecked")
              list.add("foo");
    }

    Here is the correct way, to solve this problem. Maybe this makes clear, why the other way is not supported. The @SuppressWarnings affects only the definition of list.
    Anyway - you should be sure, that the cast, that is suppressed, is correct. And you cannot assure it in this special case, because everyone could call addFoo with nearly everything as parameter.
    public class SuppressTest {
        public void addFoo(Object bar) {
         @SuppressWarnings("unchecked")
         List<String> list = (List<String>) bar;
         list.add("foo");
    }Edited by: yawah on 10.12.2009 07:58

  • IE10 Scrollbar color issue

    I have installed IE10 and I am wondering if there is a way to change the color of the scrollbar.  The light grey is so light it's hard to see.  I have tried a few things and searched around and come up with nothing.  I love the preview otherwise
    and would like to keep it but this one thing might make me use another as I swap back and forth between IE and Comodo Dragon.
    Thanks in advance,
    ~Artt

    Microsoft has degraded our Windows 7 experience
    on purpose by drop-loading this Windows 8-looking IE10 bullshit on our systems via Windows Update.  I've held back for few weeks to give it an honest try, but here I come tonight to complain
    and lo and behold there's already a thread here, right on top.  
    These flat, gray scroll thumbs cause a serious reduction in usability.  When it's difficult to see something it's difficult to see it, no matter how much you practice trying to get used to it. 
    There's no getting used to this.  It causes a long-term, albeit small, reduction in usability.
    It isn't about the color, it's about the style, which of course includes the color.  But those few little extra pixels that define the edge, and the lines within, are
    useful for helping us all spot that control, visually.  That's why they were put there.
    Microsoft, who said it's okay to remove the proper, conformant visual styles from controls in applications you provide for Windows 7 users?  If I'd have wanted Windows 8 I'd have bought it.  You're breaking your own published standards!
    Now we have flat, unrecognizable scrollbar thumbs in IE10 on Windows 7 that depart from standards and are barely visible instead of scrollbars that have the style of all the other applications, as defined by the theme of the
    desktop.  It's clearly a move designed to degrade the user experience for millions of Windows 7 users.
    Do you children on the IE10 team think it's great fun to play "hide the scroll thumb" from all the old Windows 7 users?
    I hope this offends you retards who put extra effort into the coding to specifically avoid adhering to the desktop standards of Windows 7 in order to try to make Windows 7 users like it less, because you sure as hell don't deserve any
    praise for making my computer work day a little more difficult.  If some executive forces you to do stuff like this, you need to tell him or her to kiss your shiny metal...
    You're going to drive your company into the ground trying to manipulate people, instead of just engineering a good and proper product.
    -Noel
    Detailed how-to in my eBooks:  
    Configure The Windows 7 "To Work" Options
    Configure The Windows 8 "To Work" Options
    Yep! IE browser use is on a serious decline. A cool commercial, yet the browser still sucks, unfortunately. Here's hoping IE has the same fate as Netscape. Scrollbars.. uggg!

  • Firefox disables old add-ons without an option to reenable them. This is [cussing] stupid, especially when it's my add-on that disables this retarded functionality in the first place.

    Why is mozilla going the way of apple? There is no reason to take options away from users.
    I should not have to wait for my add-on that disables version checking to be updated to the new version because it fails version checking. Stop treating me (and others like me) like a retard. If I want to run old stuff on my install, let me. It's not mozilla's place to nanny me.

    Add-ons are developed for and tested with specific Firefox versions. If you update Firefox then there is no guarantee that add-ons still works. All add-ons come with an installation file that defines a minimum and maximum Firefox version that the add-on works with.
    If you see disabled, not compatible, extensions in "Tools > Add-ons > Extensions" then click the Tools button at the left side of the Search Bar (or click the "Find Updates" button in older Firefox versions) to do a compatibility check or see if there is an update.

  • Help me on this retard video thingy

    omg i spent so much money on this new ipod and it will not gimme videos i tryed to put the settings on update all videos and when i put the video on replug in my ipod it will not work it says update complete but it will not work plzz help me im soo mad this darn thing wont even do its purpose

    Seriously, how many of these new topics are we going to have!!!!!
    Relax, simply get Videora/iSquint/Podner/tons of other apps and convert your videos. OK.

  • Hi how to improve performence of this program

    Hi all,
    How to improve the performence of this program.....................
    REPORT z03_gil010 NO STANDARD PAGE HEADING LINE-SIZE 130.
                                 INCLUDE                                 *
    INCLUDE: z00_bci010.                   " Gestion des anomalies.
                          Déclaration des données                        *
                       Tables de la bases de données                     *
    TABLES:
            ekpo,        " Poste document d'achat.
            lfa1,        " Base fournisseurs (généralités).
            marc,        " Données division de l'article.
            z03_bw_cmp1,
            eord,        "Répertoire des sources appro. Achats
            eina,        "Fiche infos-achats - données générales
            t024,        "Groupes d'acheteurs
            tvarv.                                              "FAE17345+
                       Déclaration des données internes                  *
    Déclaration de la table interne qui permet de recuperer les mois.
    DATA: BEGIN OF itb_months OCCURS 12.
            INCLUDE STRUCTURE t247.
    DATA: END OF itb_months.
    Table pour récupération d'infos sur les divisions
    DATA: BEGIN OF itb_t001w OCCURS 0,
            werks LIKE t001w-werks,
            fabkl LIKE t001w-fabkl," Clé du calendrier d'entreprise
          END OF itb_t001w.
    Déclaration de la table interne contenant les infos sur l'adresse du
    fournisseur.
    DATA: BEGIN OF itb_adresse OCCURS 0,
            lifnr LIKE lfa1-lifnr,           " Numéro de compte fournisseur.
            name1 LIKE lfa1-name1,                              " Nom 1.
            name2 LIKE lfa1-name2,                              " Nom 2.
            name3 LIKE lfa1-name3,                              " Nom 3.
            name4 LIKE lfa1-name4,                              " Nom 4.
            stras LIKE lfa1-stras,           " N° de rue et nom de la rue.
            pstlz LIKE lfa1-pstlz,           " Code postal.
            ort01 LIKE lfa1-ort01,           " Localité.
            pfach LIKE lfa1-pfach,           " Boîte postale.
            pstl2 LIKE lfa1-pstl2,           " Code de la boîte postale.
            land1 LIKE lfa1-land1,           " Clé de pays.
            landx LIKE t005t-landx,          " Pays.
            spras LIKE lfa1-spras,           " Code langue
    END OF itb_adresse.
    Déclaration d'une table interne pour les informations sur les
    prévisions de commande.
    DATA: BEGIN OF itb_prev_cde OCCURS 0,
            werks LIKE marc-werks,            " Division
            idnlf LIKE eina-idnlf,            " ADDsde ref article frn
            lifnr LIKE eord-lifnr,            " N° fournisseur.
            ekgrp LIKE marc-ekgrp,            " Groupe d'acheteurs
            dispo LIKE marc-dispo,            " Code gestionnaire MRP
            matnr LIKE eord-matnr,            " Article.
            maktx LIKE makt-maktx,            " Désignation article.
            bstmi LIKE marc-bstmi,            " Quantité de commande.
            men00 LIKE plaf-gsmng,            " Quantité du mois en cours M.
            men01 LIKE plaf-gsmng,            " Quantité pour le mois M+1.
            men02 LIKE plaf-gsmng,            " Quantité pour le mois M+2.
            men03 LIKE plaf-gsmng,            " Quantité pour le mois M+3.
            men04 LIKE plaf-gsmng,            " Quantité pour le mois M+4.
            men05 LIKE plaf-gsmng,            " Quantité pour le mois M+5.
            men06 LIKE plaf-gsmng.            " Quantité pour le mois M+6.
    DATA: END OF itb_prev_cde.
    Structure de travail pour les commandes convernant les PFC
    DATA str_pca_pfc  LIKE itb_prev_cde.
    *add sde
    DATA str_eord_pfc  LIKE itb_prev_cde.
    Structure de travail pour les prévisons PFC
    DATA str_prev_pfc LIKE itb_prev_cde.
    Déclaration d'une table interne pour les informations sur le
    portefeuille des commandes d'achat.
    DATA: BEGIN OF itb_pca OCCURS 0,
            werks LIKE ekpo-werks,    " Division
            idnlf LIKE eina-idnlf,     " ADDsde ref article frn
            lifnr LIKE eord-lifnr,    " N° fournisseur.
            ekgrp LIKE marc-ekgrp,    " Groupe d'acheteurs
            dispo LIKE marc-dispo,    " Code gestionnaire MRP
            matnr LIKE eord-matnr,    " Article.
            maktx LIKE makt-maktx,    " Désignation article.
            ebeln LIKE ekes-ebeln,    " Numéro du document d'achat.
            ebelp LIKE ekes-ebelp,    " Numéro de poste du document d'achat.
            slfdt LIKE eket-slfdt,    " Date de livraison statistique
            eindt LIKE ekes-eindt,    " Date de livraison indiquée dans la
                                      " confirmation de la cde.
            menge LIKE ekes-menge,    " Quantité indiquée dans la confirma-
                                      " tion de la commande.
            attdu LIKE eket-wemng,    " Portefeuille fournisseur.
            netpr LIKE ekpo-brtwr,    " Prix net du document d'achat dans
                                      " la devise du document.
            rtard TYPE i,             " Retard en jours ouvres.
            wemng LIKE eket-wemng,    " Quantité de l'entrée de marchandise.
            bldat LIKE mkpf-bldat,    " Date inscrite sur la pièce/sur le
                                      " document.
            qtran LIKE ekes-menge,    " Quantité en transit.
            dtran LIKE ekes-eindt.    " Date du dernier avis de transit.
    DATA: END OF itb_pca.
    DATA: w_i TYPE i,                "Compteur
          w_i_char(1) TYPE c,        "Texte pour récupérer compteur
          w_nm_zone(20) TYPE c,      "Nom zone pour assign au field-symbols
          w_nb_j TYPE i,             "Nb de jours ouvrés jusqu'à fin mois
          w_nb_j_tot TYPE i.         "Nb de jours ouvrés du mois
    FIELD-SYMBOLS:       TYPE ANY.
    Déclaration d'une table contenant les fiches info achat.
    DATA: BEGIN OF itb_eina OCCURS 0,
            matnr LIKE eina-matnr,
            lifnr LIKE eina-lifnr,
            idfnl LIKE eina-idnlf.
    DATA: END OF itb_eina.
    Déclaration d'une table contenant les infos groupe acheteur.
    *DATA: BEGIN OF itb_t024 OCCURS 0,
           ekgrp LIKE t024-ekgrp,
           eknam LIKE t024-eknam,
           ektel LIKE t024-ektel,
           telfx LIKE t024-telfx.
    *DATA: END OF itb_t024.
    Déclaration d'une table pour le transfert du fichier.
    DATA: BEGIN OF itb_transfert OCCURS 0,
            col00(8),                 "division
            col00bis(20),             "Reference article
            col01(18),                "No article
            col02(45),                "libelle article
            col021(17),               "Groupe acheteur
            col022(13),               "gestionnaire
            col03(17),                "qte commandée ou No de commande
            col04(13),                "Mois 1 ou No poste cde
            col05(20),                "Mois 2 ou délai initial
            col06(33),                "Mois 3 ou délai négocié
            col07(13),                "Mois 4 ou qté cdée
            col08(13),                "Mois 5 ou qté attendue
            col09(13),                "Mois 6 ou Montant attendu
            col10(13),                "Mois 7 ou retard
            col11(13),                "qte partielle livree
            col12(13),                "date livraison partielle
            col13(13),                "qté en transit
            col14(13).                "date
    DATA: END OF itb_transfert.
    Déclaration d'une table contenant la liste des fournisseurs.
    DATA: BEGIN OF itb_lifnr OCCURS 0,
            werks LIKE marc-werks,
            idfnl LIKE eina-idnlf,
            lifnr LIKE eord-lifnr,
            ekgrp LIKE marc-ekgrp,
            spras LIKE lfa1-spras,
            eknam LIKE t024-eknam,
            ektel LIKE t024-ektel,
            telfx LIKE t024-telfx.
    DATA: END OF itb_lifnr.
    Déclaration d'une structure pour la selection dans la table MSEG.
    DATA : BEGIN OF itb_mseg OCCURS 0,
             mblnr LIKE mseg-mblnr,
             mjahr LIKE mseg-mjahr,
             ebeln LIKE mseg-ebeln,
             ebelp LIKE mseg-ebelp,
           END OF itb_mseg.
    déclaration d'une structure pour la selection dans EKPO.
    DATA : BEGIN OF itb_ekpo OCCURS 0,
             lifnr LIKE ekko-lifnr,
             ebeln LIKE ekpo-ebeln,
             ebelp LIKE ekpo-ebelp,
             menge LIKE ekpo-menge,
             bpumz LIKE ekpo-bpumz,
             bpumn LIKE ekpo-bpumn,
             matnr LIKE ekpo-matnr,
             werks LIKE ekpo-werks,
             netpr LIKE ekpo-netpr,
             peinh LIKE ekpo-peinh,  "Base de prix FAE17345+
             ekgrp LIKE ekko-ekgrp,   "AFT++
             dispo LIKE marc-dispo,   "AFT++
           END OF itb_ekpo.
    déclaration d'une structure pour la selection dans EKPO.
    DATA : BEGIN OF itb_ekko OCCURS 0,
             ebeln LIKE ekko-ebeln,
             lifnr LIKE ekko-lifnr,
             spras LIKE ekko-spras,
           END OF itb_ekko.
    déclaration d'une structure pour la selection dans EKES.
    DATA : BEGIN OF itb_ekes OCCURS 0,
             ebeln LIKE eket-ebeln,
             ebelp LIKE eket-ebelp,
             ebtyp LIKE ekes-ebtyp,
             eindt LIKE ekes-eindt,
             menge LIKE ekes-menge,
             dabmg LIKE ekes-dabmg,
             etens LIKE ekes-etens,
           END OF itb_ekes.
    déclaration d'une structure pour la selection dans EKET
    DATA : BEGIN OF itb_eket OCCURS 0,
             ebeln LIKE eket-ebeln,
             ebelp LIKE eket-ebelp,
             menge LIKE eket-menge,
             wemng LIKE eket-wemng,
             eindt LIKE eket-eindt,
             slfdt LIKE eket-slfdt,
           END OF itb_eket.
    déclaration d'une structure pour la selection dans MKPF.
    DATA : BEGIN OF itb_mkpf OCCURS 0,
             mblnr LIKE mkpf-mblnr,
             mjahr LIKE mkpf-mjahr,
             bldat LIKE mkpf-bldat,
           END OF itb_mkpf.
    Déclaration d'une structure pour la sélection dans EORD.
    DATA : BEGIN OF itb_eord OCCURS 0,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
             lifnr LIKE eord-lifnr,
             ekgrp LIKE marc-ekgrp,
             dispo LIKE marc-dispo,                             "DE3K924352
             disls LIKE marc-disls,
             bstfe LIKE marc-bstfe,
             bstrf LIKE marc-bstrf,
             bstmi LIKE marc-bstmi,
             bstma LIKE marc-bstma,
           END OF itb_eord.
    DATA : BEGIN OF itb_eordw OCCURS 0.
            INCLUDE STRUCTURE itb_eord.
    DATA : END OF itb_eordw.
    Déclaration d'une structure pour la sélection dans MAKT.
    DATA : BEGIN OF itb_makt OCCURS 0,
             matnr LIKE makt-matnr,
             spras LIKE makt-spras,
             maktx LIKE makt-maktx,
           END OF itb_makt.
    Déclaration d'une structure pour la sélection dans EBAN.
    DATA : BEGIN OF itb_eban OCCURS 0,
             matnr LIKE eban-matnr,
             werks LIKE eban-werks,
             flief LIKE eban-flief,
             lfdat LIKE eban-lfdat,
             menge LIKE eban-menge,
             bsmng LIKE eban-bsmng,
             webaz LIKE eban-webaz,
             ekgrp LIKE eban-ekgrp,
             ebeln LIKE eban-ebeln,
             banfn LIKE eban-banfn,
             bnfpo LIKE eban-bnfpo, "DB3K900702+
           END OF itb_eban.
    Déclaration d'une structure pour la sélection dans PLAF.
    DATA : BEGIN OF itb_plaf OCCURS 0,
             plnum LIKE plaf-plnum, "DB3K900702+
             matnr LIKE plaf-matnr,
             plwrk LIKE plaf-plwrk,
             flief LIKE plaf-flief,
             pedtr LIKE plaf-pedtr,
             gsmng LIKE plaf-gsmng,
             webaz LIKE plaf-webaz,
           END OF itb_plaf.
    Déclaration d'une structure pour la sélection dans MARC.
    DATA : BEGIN OF itb_marc OCCURS 0,
             matnr LIKE marc-matnr,
             werks LIKE marc-werks,
             disls LIKE marc-disls,
             bstrf LIKE marc-bstrf,
             bstmi LIKE marc-bstmi,
             bstma LIKE marc-bstma,
             bstfe LIKE marc-bstfe,
             ekgrp LIKE marc-ekgrp,
             dispo LIKE marc-dispo,
           END OF itb_marc.
    DATA : BEGIN OF itb_marc_eord OCCURS 0,
              matnr LIKE marc-matnr,
              werks LIKE marc-werks,
              strgr LIKE marc-strgr,   "groupe de stratégie planif
           END OF itb_marc_eord.
    DATA : BEGIN OF itb_z03_bw_cmp1 OCCURS 0,
             matnr LIKE z03_bw_cmp1-matnr,
             werks LIKE z03_bw_cmp1-werks,
             pdatu LIKE z03_bw_cmp1-pdatu,
             plnmg LIKE z03_bw_cmp1-plnmg,
           END OF itb_z03_bw_cmp1.
    Begin change BNI <DE3K937051>
    DATA : BEGIN OF itb_z03_bw_cmp2 OCCURS 0,
             matnr LIKE z03_bw_cmp2-matnr,
             werks LIKE z03_bw_cmp2-werks,
             pdatu LIKE z03_bw_cmp2-pdatu,
             plnmg LIKE z03_bw_cmp2-plnmg,
           END OF itb_z03_bw_cmp2.
    *End change BNI
    DATA : BEGIN OF str_index1,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index1.
    DATA : BEGIN OF str_index2,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index2.
    DATA : BEGIN OF str_index3_eord,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index3_eord.
    DATA : BEGIN OF str_index4,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index4.
    DATA : BEGIN OF str_index5,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
    END OF str_index5.
    DATA : BEGIN OF str_index6,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
    END OF str_index6.
    DATA : BEGIN OF str_index7,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
    END OF str_index7.
    Déclaration des variables de debut et de fin de mois.
    DATA: w_debut_mois    LIKE sy-datum,
          w_debut_periode LIKE sy-datum,
          w_fin_mois      LIKE sy-datum,
          w_fin_periode   LIKE sy-datum.
    Déclaration des variables pour les dates.
    DATA: w_date0 LIKE sy-datum,
          w_date1 LIKE sy-datum,
          w_date2 LIKE sy-datum,
          w_date3 LIKE sy-datum,
          w_date4 LIKE sy-datum,
          w_date5 LIKE sy-datum,
          w_date6 LIKE sy-datum,
          w_datejour LIKE sy-datum,                             "FAE15269
          w_dat_da LIKE eban-lfdat,
          w_dat_op LIKE plaf-pedtr,
          w_mois0 LIKE t247-ltx,
          w_mois1 LIKE t247-ltx,
          w_mois2 LIKE t247-ltx,
          w_mois3 LIKE t247-ltx,
          w_mois4 LIKE t247-ltx,
          w_mois5 LIKE t247-ltx,
          w_mois6 LIKE t247-ltx,
          w_lendemain LIKE sy-datum.                            "FAE17345+
    Temoin d'un AR dans la commande d'achat.
    DATA: w_temoin_ar.
    Numéro de la confirmation de la commande
    DATA : w_etens LIKE ekes-etens.
    Déclaration des variables pour le nom des fichiers.
    DATA: w_nom_fichier LIKE rlgrap-filename,
          w_fichier LIKE rlgrap-filename,
          w_racine LIKE rlgrap-filename,
          w_file LIKE rlgrap-filename.
    Déclaration d'une table interne pour le transfert.
    DATA: BEGIN OF itb_trans OCCURS 0,
            w_ligne(320).
    DATA: END OF itb_trans.
    Déclaration d'une variable pour rechercher les enregistrements vides.
    DATA: w_compteur     TYPE i,
          w_compteur1    TYPE i,
          w_compteur2    TYPE i,
          w_retard       TYPE i,          " Retard en jours ouvres.
          w_trouve_pfc   TYPE c, "addsde
          w_trouve_pfs   TYPE c, "+DE3K937051
          w_trouve       TYPE c.
    *Index pour les LOOP
    DATA : w_index_ekpo LIKE sy-tabix,
           w_index_ekes LIKE sy-tabix,
           w_index_eket LIKE sy-tabix,
           w_index_mseg LIKE sy-tabix,
           w_index_eban LIKE sy-tabix,
           w_index_plaf LIKE sy-tabix,
           w_index_pca  LIKE sy-tabix,
           w_index_z03_bw_cmp1 LIKE sy-tabix,
           w_index_z03_bw_cmp2 LIKE sy-tabix."+DE3K937051
    RANGES : r_type_pfs   FOR marc-strgr.
    *fichier sur serveur +EDR231003
    DATA : w_chemin LIKE filename-fileintern,  "nom du fichier
           w_date_fichier(12) TYPE c,          "Date format DD_MM_AA
           w_csv(307) TYPE c.                  "ligne du fichier format CSV
    CONSTANTS: k_imputation_m LIKE eban-knttp VALUE 'M'.        "FAE19001+
                     Description de l écran de sélection                 *
                         Paramètres "UTILISATION"                        *
    Ouverture d'un block de sélection pour le(s) fournisseur(s).
    SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-bl1.
    Sélection division(s)
    SELECT-OPTIONS: s_werks FOR ekpo-werks.
    Sélection fournisseur(s).
    SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr OBLIGATORY.
    Sélection du Groupe d'acheteur
    *SELECT-OPTIONS: s_ekgrp FOR marc-ekgrp.   "-FAE26446
    *SELECT-OPTIONS: s_dispo FOR marc-dispo.   "-FAE26446
    SELECTION-SCREEN END OF BLOCK block1.
    FAE 26446 : ajout
    SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE text-bl3.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETER p_ekgrp RADIOBUTTON GROUP g3.
    SELECTION-SCREEN COMMENT 5(24) text-001 FOR FIELD p_ekgrp.
    SELECT-OPTIONS: s_ekgrp FOR marc-ekgrp.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETER p_dispo RADIOBUTTON GROUP g3.
    SELECTION-SCREEN COMMENT 5(24) text-002 FOR FIELD p_dispo.
    SELECT-OPTIONS: s_dispo FOR marc-dispo.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK block3.
    FAE 26446 : fin ajout
                           Paramètres "SYSTEME"                          *
    Saut de 2 lignes.
    SELECTION-SCREEN: SKIP 2.
    Ouverture d'un block de sélection pour l'adresse physique du fichier.
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-bl2.
    PARAMETERS: p_pc       RADIOBUTTON GROUP rad1 DEFAULT 'X',  "+EDR231003
                p_fic_pc LIKE rlgrap-filename.                  "+EDR231003
    SELECTION-SCREEN SKIP.                                      "+EDR231003
    PARAMETERS     : p_serve   RADIOBUTTON GROUP rad1,          "+EDR231003
                     p_fic_se LIKE filename-fileintern          "+EDR231003
                              DEFAULT 'Z03_PREV_COMMANDES'.     "+EDR231003
    SELECTION-SCREEN END OF BLOCK block2.
                           Logique de traitement                         *
                              INITIALIZATION                             *
    INITIALIZATION.
    Date du jour
      MOVE sy-datum TO w_datejour.                              "FAE15269
    Gestion des anomalies.
      MOVE text-lb1 TO w_lb_traitement.
      PERFORM f930_init USING sy-cprog '30'.
    Fin de la gestions des anomalies.
    Récuperation des mois dans la table interne 'ITB_MONTHS'.
      CALL FUNCTION 'MONTH_NAMES_GET'
           EXPORTING
                language              = sy-langu
           TABLES
                month_names           = itb_months
           EXCEPTIONS
                month_names_not_found = 1
                OTHERS                = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Récupération des differentes periodes.
      PERFORM f100_recuperation_date TABLES itb_months.
    Récupération du debut du mois.
      CONCATENATE sy-datlo(6) '01' INTO w_debut_mois.
      MOVE: w_debut_mois TO w_debut_periode.
    Récupération du dernier jour du mois.
      CALL FUNCTION 'LAST_DAY_OF_MONTHS'
           EXPORTING
                day_in            = sy-datlo
           IMPORTING
                last_day_of_month = w_fin_mois
           EXCEPTIONS
                day_in_no_date    = 1
                OTHERS            = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
                              TOP-OF-PAGE                                *
    TOP-OF-PAGE.
      CALL FUNCTION 'Z_00_BC_TOP_OF_PAGE'
           EXPORTING
                p_linsz   = k_ligne
                p_pagno   = sy-pagno
                p_prog    = sy-cprog
                p_projet  = k_projet
                p_societe = k_societe
                p_sujet   = sy-title.
                              END-OF-PAGE                                *
    END-OF-PAGE.
                            AT SELECTION-SCREEN                          *
    FAE 26446 : ajout
    AT SELECTION-SCREEN ON BLOCK block3.
      IF NOT ( s_ekgrp IS INITIAL )
      AND  NOT ( s_dispo IS INITIAL ).
        MESSAGE e394(z03_mm).
      ENDIF.
      IF p_ekgrp = 'X'.
        IF s_ekgrp IS INITIAL.
          MESSAGE e395(z03_mm).
        ENDIF.
      ELSE.
        IF s_dispo IS INITIAL.
          MESSAGE e396(z03_mm).
        ENDIF.
      ENDIF.
    fae26446 fin ajout
    AT SELECTION-SCREEN ON BLOCK block2.
      IF p_pc = 'X'.
        IF p_fic_pc IS INITIAL.
    *Attention, il n'y a aucune adresse de sauvegarde pour le(s) fichier(s)
          MESSAGE e021(z03_mm).
        ENDIF.
      ELSE.
        IF p_fic_se IS INITIAL.
    *Attention, il n'y a aucune adresse de sauvegarde pour le(s) fichier(s)
          MESSAGE e021(z03_mm).
        ENDIF.
      ENDIF.
    Création du matchcode pour la selection du fichier local.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fic_pc.
      CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
                def_filename     = p_fic_pc
                def_path         = 'C:'
                mask             = text-ma1
                mode             = 'S'
                title            = text-sel
           IMPORTING
                filename         = p_fic_pc
           EXCEPTIONS
                inv_winsys       = 1
                no_batch         = 2
                selection_cancel = 3
                selection_error  = 4
                OTHERS           = 5.
      IF sy-subrc NE 0 AND sy-subrc NE 3.
        MESSAGE e032(z03_mm).
      ENDIF.
                            START-OF-SELECTION                           *
    START-OF-SELECTION.
      PERFORM select_donnees.
    =================================================
    Liste des ARTICLES impactés pour les prévisions *
    =================================================
    ===================================
    PORTEFEUILLE DE COMMANDES D'ACHAT *
    ===================================
    Construction itb_pca à partir de EKKO/EKPO.
      w_index_ekpo  = 1.
      w_index_ekes  = 1.
      w_index_eket  = 1.
      w_index_mseg  = 1.
    SORT itb_ekko BY ebeln.           "-FAE26446
      SORT itb_ekpo BY ebeln ebelp.
      SORT itb_makt BY matnr spras.
      SORT itb_eket BY ebeln ebelp.
      SORT itb_ekes BY ebeln ebelp.
      SORT itb_mseg BY ebeln ebelp.
      SORT itb_mkpf BY mblnr mjahr.
      SORT itb_marc BY matnr werks.                             "+FAE26446
    FAE 26446 remplacement
    LOOP AT itb_ekko.
       LOOP AT itb_ekpo.
               FROM w_index_ekpo.
         IF itb_ekko-ebeln = itb_ekpo-ebeln.
      LOOP AT itb_ekpo.
        READ TABLE itb_marc WITH KEY
           matnr = itb_ekpo-matnr
           werks = itb_ekpo-werks BINARY SEARCH.
        CHECK sy-subrc = 0.
    FAE 26446 fin remplacement
        itb_pca-ebeln = itb_ekpo-ebeln.
        itb_pca-ebelp = itb_ekpo-ebelp.
      itb_pca-lifnr = itb_ekko-lifnr.   "-FAE26446
        itb_pca-lifnr = itb_ekpo-lifnr.                         "+FAE26446
        itb_pca-ekgrp = itb_ekpo-ekgrp.                         "+FAE26446
        itb_pca-dispo = itb_ekpo-dispo.                         "+FAE26446
        itb_pca-matnr = itb_ekpo-matnr.
        itb_pca-werks = itb_ekpo-werks.
      Recherche du libellé article
        READ TABLE itb_makt
                   WITH KEY matnr = itb_ekpo-matnr
                            spras = text-fra
                   BINARY SEARCH.
        IF sy-subrc = 0.
          itb_pca-maktx = itb_makt-maktx.
        ELSE.
          READ TABLE itb_makt
                    WITH KEY matnr = itb_ekpo-matnr
                             spras = text-ang
                    BINARY SEARCH.
          IF sy-subrc = 0.
            itb_pca-maktx = itb_makt-maktx.
          ENDIF.
        ENDIF.
        IF NOT itb_ekpo-bpumn IS INITIAL.
          itb_pca-menge = itb_ekpo-menge * itb_ekpo-bpumz /
                                           itb_ekpo-bpumn.
        ENDIF.
      Sélect° ds la table EKES des dates de livraisons et des qtés
      en transit
        CLEAR w_temoin_ar.
        CLEAR w_etens.
        LOOP AT itb_ekes
                FROM w_index_ekes.
          IF  itb_ekes-ebeln = itb_ekpo-ebeln
          AND itb_ekes-ebelp = itb_ekpo-ebelp.
            IF itb_ekes-ebtyp = text-arn.
              itb_pca-eindt = itb_ekes-eindt.
              w_temoin_ar = 'X'.
            ELSE.
            Si c'est une qté en transit alors on recupere
            la quantité et la date.
              IF itb_ekes-dabmg < itb_ekes-menge.
                itb_pca-qtran = itb_pca-qtran + itb_ekes-menge -
                                itb_ekes-dabmg.
              ENDIF.
              IF itb_ekes-etens > w_etens.
                w_etens = itb_ekes-etens.
                itb_pca-dtran = itb_ekes-eindt.
              ENDIF.
            ENDIF.
          ELSEIF itb_ekes-ebeln > itb_ekpo-ebeln
          OR ( itb_ekes-ebeln = itb_ekpo-ebeln
          AND itb_ekes-ebelp > itb_ekpo-ebelp ).
            w_index_ekes = sy-tabix.
            EXIT.
          ENDIF.
        ENDLOOP.
      S'il n'y a pas d'AR alors récupérat° de la date livraison dans EKET.
        LOOP AT itb_eket
                FROM w_index_eket.
          IF  itb_eket-ebeln = itb_ekpo-ebeln
          AND itb_eket-ebelp = itb_ekpo-ebelp.
            IF w_temoin_ar IS INITIAL.
              itb_pca-eindt = itb_eket-eindt.
            ENDIF.
            itb_pca-slfdt = itb_eket-slfdt.
          Calcul du portefeuille fournisseur à partir de la
          qté commandée et la qté reçue
            itb_pca-attdu = itb_pca-attdu + itb_eket-menge -
                            itb_eket-wemng.
          Calcul du montant du poste
            itb_pca-netpr = itb_ekpo-netpr * itb_pca-attdu.
            IF itb_ekpo-peinh NE 0.
              itb_pca-netpr = itb_pca-netpr / itb_ekpo-peinh.
            ENDIF.
          Calcul quantité réceptionnée.
            itb_pca-wemng = itb_pca-wemng + itb_eket-wemng.
          Calcul du retard en nombre de jours calendaires
          Le calcul du retard  ne doit pas prendre en compte
          le jour de livraison
            ADD 1 TO itb_eket-eindt.
            IF NOT itb_pca-attdu  IS INITIAL
            AND    itb_eket-eindt LT sy-datum.
            Calcul du retard en nombre de jours ouvrés
              CLEAR w_retard.
              CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_PERIOD'
                   EXPORTING
                        date_deb = itb_eket-eindt
                        date_fin = sy-datum
                   IMPORTING
                        jours    = w_retard.
              itb_pca-rtard = itb_pca-rtard + w_retard .
            ENDIF.
          ELSEIF itb_eket-ebeln > itb_ekpo-ebeln
          OR (   itb_eket-ebeln = itb_ekpo-ebeln
          AND    itb_eket-ebelp > itb_ekpo-ebelp ).
            w_index_eket = sy-tabix.
            EXIT.
          ENDIF.
        ENDLOOP.
      Recherche de la derniere date de livraison.
        LOOP AT itb_mseg
                FROM w_index_mseg.
          IF  itb_mseg-ebeln = itb_ekpo-ebeln
          AND itb_mseg-ebelp = itb_ekpo-ebelp.
            READ TABLE itb_mkpf
                       WITH KEY mblnr = itb_mseg-mblnr
                                mjahr = itb_mseg-mjahr
                       BINARY SEARCH.
            IF sy-subrc = 0.
              IF itb_mkpf-bldat > itb_pca-bldat.
                itb_pca-bldat = itb_mkpf-bldat.
              ENDIF.
            ENDIF.
          ELSEIF itb_mseg-ebeln > itb_ekpo-ebeln
          OR (   itb_mseg-ebeln = itb_ekpo-ebeln
          AND    itb_mseg-ebelp > itb_ekpo-ebelp ).
            w_index_mseg = sy-tabix.
            EXIT.
          ENDIF.
        ENDLOOP.
        APPEND itb_pca.
        CLEAR itb_pca.
    FAE26446 suppression parag. suivant
         ELSEIF itb_ekpo-ebeln > itb_ekko-ebeln.
           w_index_ekpo = sy-tabix.
           EXIT.
         ENDIF.
       ENDLOOP.
    Fin FAE26446
      ENDLOOP.
    =========================
    PREVISIONS DE COMMANDES *
    =========================
      SORT itb_eord        BY matnr werks lifnr ekgrp.
      SORT itb_eban        BY matnr werks flief ekgrp.
      SORT itb_plaf        BY matnr plwrk flief.
      SORT itb_z03_bw_cmp1 BY matnr werks.
      SORT itb_z03_bw_cmp2 BY matnr werks."+DE3K937051
      SORT itb_pca         BY matnr werks lifnr.
      w_index_eban = 1.
      w_index_plaf = 1.
      w_index_z03_bw_cmp1 = 1.
      w_index_pca = 1.
      w_index_z03_bw_cmp2 = 1."+DE3K937051
    Remplissage de la table des prévisions de commande.
      LOOP AT itb_eord.
        CLEAR: str_prev_pfc,
               w_trouve.
        MOVE-CORRESPONDING itb_eord TO str_index1.
        MOVE-CORRESPONDING itb_eord TO str_index3_eord.
        MOVE-CORRESPONDING itb_eord TO itb_prev_cde.
      Recherche dans table division/article (MARC) afin de déterminer si
      article PFS (prod fabriqué à stock) ou PFC (Prod fabriqué sur cde)
        AT NEW werks.
          READ TABLE itb_marc_eord
                     WITH KEY matnr = itb_eord-matnr
                              werks = itb_eord-werks
                     BINARY SEARCH.
          IF sy-subrc NE 0.
            CLEAR itb_marc_eord.
          ENDIF.
        ENDAT.
    a - Prévisions pour les PFS : DA + OP *
    *Calcul des quantités de commande.
        IF itb_eord-disls = text-tl1.
          itb_prev_cde-bstmi =  itb_eord-bstfe.
        ELSEIF itb_eord-disls = text-tl2
        OR     itb_eord-disls = text-tl3.
          IF  itb_eord-bstrf NE 0
          AND itb_eord-bstmi = 0
          AND itb_eord-bstma = 0.
            itb_prev_cde-bstmi = itb_eord-bstrf.
          ELSEIF itb_eord-bstrf NE 0
          AND    itb_eord-bstmi NE 0.
            itb_prev_cde-bstmi = itb_eord-bstmi.
          ELSEIF itb_eord-bstrf = itb_eord-bstma
          AND    itb_eord-bstrf NE 0
          AND    itb_eord-bstmi = 0.
            itb_prev_cde-bstmi = itb_eord-bstma.
          ENDIF.
        ENDIF.
      si article PFS (Prod fabriqué à stock) recherche des
      demandes d'achat ou ordres planfiés
        IF itb_marc_eord-strgr IN r_type_pfs.
      Récupérat° calendrier de la division pour calcul correct lors de
      l'ajout de eban-webaz ou plaf-webaz jours ouvrés
          CLEAR w_trouve_pfs ."+DE3K937051
          READ TABLE itb_t001w
                     WITH KEY werks = itb_eord-werks
                     BINARY SEARCH.
          IF sy-subrc = 0.
            LOOP AT itb_eban
                    FROM w_index_eban.
              MOVE-CORRESPONDING itb_eban TO str_index2.
              IF str_index1 = str_index2.
                w_trouve_pfs = 'X'."+DE3K937051
              si qte commandées pour la DA  < quantité de la DA
                IF itb_eban-bsmng < itb_eban-menge.
                ajout de quantité de la DA - qte  commandée pour la DA
                  PERFORM affect_da.
                ENDIF.
              ELSEIF str_index2 > str_index1.
                w_index_eban = sy-tabix.
                EXIT.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ajout des quantité des OP (ordres planifiés)
          LOOP AT itb_plaf
                  FROM w_index_plaf.
            MOVE-CORRESPONDING itb_plaf TO str_index4.
            str_index4-werks = itb_plaf-plwrk.
          str_index4-lifnr = itb_plaf-flief.
            IF str_index4 = str_index3_eord.
            Ajout de webaz jours ouvrés à pedtr
              CALL FUNCTION 'Z_03_MM_ADD_TO_FACTORYDATE'
                   EXPORTING
                        i_date        = itb_plaf-pedtr
                        i_calendar_id = itb_t001w-fabkl
                        i_nb_days     = itb_plaf-webaz
                   IMPORTING
                        o_date        = w_dat_op
                   EXCEPTIONS
                        conv_error    = 1
                        OTHERS        = 2.
              IF sy-subrc
       If forecasts found in Z03_BW_CMP2 for the article
       IF w_trouve_pfs = 'X'."-DE3K937602
    Recalculation prev month M in fct of Nb of wrought days of the month
        IF NOT itb_prev_cde-men00 IS INITIAL.
       one does not hold any more account of the day in progress
          w_lendemain = w_date0 + 1.
          CLEAR:w_nb_j,w_nb_j_tot.         "DE3K938206+
          CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_PERIOD'
               EXPORTING
                    date_deb = w_lendemain
                    date_fin = w_fin_mois
               IMPORTING
                    jours    = w_nb_j.
          CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_MONTH'
               EXPORTING
                    date  = w_lendemain
               IMPORTING
                    jours = w_nb_j_tot.
          itb_prev_cde-men00  = itb_prev_cde-men00 * w_nb_j / w_nb_j_tot
    *CLA DE3K925301 FAE27197
    *to round has the higher entirety
        itb_prev_cde-men00  = ceil( itb_prev_cde-men00 ). "DE3K938206-
        ENDIF.
       ENDIF."-DE3K937602
    *End change BNI
    b - Prévisions pour les PFC (Z03_BW_CMP1 puis rééquilibrage) *
      Recherche des previsions dans Z03_BW_CMP1
      si article PFC (Prod fabriqué sur cde) recherche des prévisions
        IF  NOT itb_marc_eord-strgr IN r_type_pfs.
          CLEAR str_prev_pfc.
          MOVE-CORRESPONDING itb_eord TO str_prev_pfc.
          CLEAR w_trouve_pfc .
          LOOP AT itb_z03_bw_cmp1
                  FROM w_index_z03_bw_cmp1.
            MOVE-CORRESPONDING itb_z03_bw_cmp1 TO str_index7.
            MOVE-CORRESPONDING itb_eord TO str_index6.
            IF str_index6 = str_index7.
          si on trouve des prévisions dans z03_bw_cmp1 pour la source
          d'appro eord alors c'est un article  PFC
              w_trouve_pfc = 'X'.
              CASE itb_z03_bw_cmp1-pdatu+0(6).
                WHEN w_date0+0(6).
                  str_prev_pfc-men00 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date1+0(6).
                  str_prev_pfc-men01 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date2+0(6).
                  str_prev_pfc-men02 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date3+0(6).
                  str_prev_pfc-men03 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date4+0(6).
                  str_prev_pfc-men04 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date5+0(6).
                  str_prev_pfc-men05 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date6+0(6).
                  str_prev_pfc-men06 = itb_z03_bw_cmp1-plnmg.
                WHEN OTHERS.
              ENDCASE.
            ELSEIF str_index7 > str_index6.
              w_index_z03_bw_cmp1 = sy-tabix.
              EXIT.
            ENDIF.
          ENDLOOP.
    *Begin change BNI
        Si des prévisions trouvées dans Z03_BW_CMP1 pour l'article
          IF w_trouve_pfc = 'X'.
          Recalcul prev mois M en fct du nb de jours ouvrés du mois
            IF NOT str_prev_pfc-men00 IS INITIAL.
            on ne tient plus compte du jour en cours
              w_lendemain = w_date0 + 1.
              CLEAR:w_nb_j,w_nb_j_tot.               "DE3K938206+
              CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_PERIOD'
                   EXPORTING
                        date_deb = w_lendemain
                        date_fin = w_fin_mois
                   IMPORTING
                        jours    = w_nb_j.
              CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_MONTH'
                   EXPORTING
                        date  = w_lendemain
                   IMPORTING
                        jours = w_nb_j_tot.
              str_prev_pfc-men00 = str_prev_pfc-men00 * w_nb_j / w_nb_j_tot.
    *CLA DE3K925301 FAE27197
    *arrondir a l'entier supèrieur
              str_prev_pfc-men00 = ceil( str_prev_pfc-men00 ).
            ENDIF.
          Equilibrage PFC : commande/prévision du mois
          Recherche COMMANDES cumulées pour M à M+6
            CLEAR str_pca_pfc.
            LOOP AT itb_pca
                    FROM w_index_pca.
              MOVE-CORRESPONDING itb_pca TO str_index5.
              IF str_index5 = str_index3_eord.
                IF NOT itb_pca-menge IS INITIAL.
                  CASE itb_pca-eindt+0(6).
                    WHEN w_date0+0(6).
                      IF itb_pca-eindt >= w_date0.
                      str_pca_pfc-men00 = str_pca_pfc-men00 + itb_pca-menge.
                      ENDIF.
                    WHEN w_date1+0(6).
                      str_pca_pfc-men01 = str_pca_pfc-men01 + itb_pca-menge.
                    WHEN w_date2+0(6).
                      str_pca_pfc-men02 = str_pca_pfc-men02 + itb_pca-menge.
                    WHEN w_date3+0(6).
                      str_pca_pfc-men03 = str_pca_pfc-men03 + itb_pca-menge.
                    WHEN w_date4+0(6).
                      str_pca_pfc-men04 = str_pca_pfc-men04 + itb_pca-menge.
                    WHEN w_date5+0(6).
                      str_pca_pfc-men05 = str_pca_pfc-men05 + itb_pca-menge.
                    WHEN w_date6+0(6).
                      str_pca_pfc-men06 = str_pca_pfc-men06 + itb_pca-menge.
                  ENDCASE.
                ENDIF."NOT itb_pca-menge IS INITIAL
              ELSEIF str_index5 > str_index3_eord.
                w_index_pca = sy-tabix.
                EXIT.
              ENDIF.
            ENDLOOP."itb_pca
    *. Equilibrer commande / prévision des mois : diminuer la quantité de
    prévision de chaque mois par le portefeuille de commande client du
    mois*. Si ce solde est négatif alors lui donner la valeur 0.
            w_i = 0.
          Ajustement commandes/prévisions pour les mois M à M+6
            WHILE w_i .
            Pour un mois, SI Prévisions > Commandes en cours
              IF .
              Prévisions = Prévisions - Commandes en cours
                 = 0.
              ENDIF.
            On passe au mois suivant
              w_i = w_i + 1.
            ENDWHILE.
            MOVE str_prev_pfc-men00 TO itb_prev_cde-men00.
            MOVE str_prev_pfc-men01 TO itb_prev_cde-men01.
            MOVE str_prev_pfc-men02 TO itb_prev_cde-men02.
            MOVE str_prev_pfc-men03 TO itb_prev_cde-men03.
            MOVE str_prev_pfc-men04 TO itb_prev_cde-men04.
            MOVE str_prev_pfc-men05 TO itb_prev_cde-men05.
            MOVE str_prev_pfc-men06 TO itb_prev_cde-men06.
          ENDIF.  "w_trouve_pfc = 'X'.
        ENDIF.
    *recherche du libellé article

    Hi,
    see this link, useful tips, links and transactions for best performance, by Anji.
    https://forums.sdn.sap.com/click.jspa?searchID=5967263&messageID=4260111
    Regards

  • HT1414 4s iOS 6.1.3 issues. Life is sucky. This is my story

    Dear Reader, Tech Support, or forum Troll,
    About a month ago my iPhone 4s underwent a new software update known as iOS 6.1.3.  This update was ‘highly’ recommended (more like enforced if you ask me) by iPhone’s mothership, Apple.
    Well, since the update, my iPhone 4s has never been the same again. In fact, he (yes it’s a he, so what) has become extremely pitiful and has been showing visible symptoms of mild retardation, amongst other things.
    I have tried to seek therapy from Dr. iTunes, but not even a complete brainwash via restoration has fixed any of these problems.
    I have thought about calling Apple and confronting the mothership about all the issue, but I’m scared because I know they will demand that I pay first.  You see, they threw me to the curb and abandoned me about 6 months ago due to ‘expirational warranty issues’, whatevs.
    So I am writing this forum, whic is on Apple's site (yes awkard I know)  in hopes for some help on the iphone issues, but if you feel the urge to let me know that expirational is not a word, tha'ts cool too.
    You see, I sit here in front of my computer, with a hot cup of coffee and a useless white rectangular box, and I have feelings of bitterness.
    I wouldn’t have been in this predicament if it wasn’t for Apple’s constant nagging of this new software update that I needed to install if I truly loved and cared for my iPhone. It was made quite clear to me that if I chose not to install it, I would run the risk of exposing iphone to security lock screen risk issues, (whatever that means). I know that anyone in my situation would have done the same; I love my iPhone and that lock screen thing sounded scary.
    So here is how the update turned my once cute iPhone into a crazy psycho phone.
    iPhone refuses to power off unless connected to the charger.  I found out about this rebellious behavior on an airplane when iPhone refused to listen to the flight attendant after she asked him to power off. Apparently iPhone thought it was fun to play peak-a-boo by powering on right after I powered it off. Do you have any idea how  terrified I was when iphone wouldn't stay off? Our plane could have broken down,  but thankfully it didn't.
    Since the update, iPhone has become incoherent at least a few times a day;  iit's like he's trying to find himself?! There is a constantly searching for a network or refusing to partake in any network at all. I pay a lot of money every month so iphone can be happy and live about freely in the At&t network. Hey At&t has been good to us. Before this update, we had no issues in our network but now, not even a sim card change can keep iphone content. I've accepted the fact that there will be several times during the day that I will be sending "not delivered !" text messages and that I will have missed calls wtithout ever actually missing calls. 
    Then we have this game iphone likes to play called silence.  He rings when he gets phone calls (when he decides to be in network) and whistle when he gets a text.  But as soon as I to play music, or watch a video,  nothing. I know to use the headphone-chord plug-and-pull technique, but why do I have to resort to that?  I don’t always carry headphones with me, you know.
    And if all that that wasn’t enough, this crazy phone gives up on life way too early. Between 20-30% battery life, he dies, but I know it's all a front because as soon as I plug it up to the charger, it's right back at 20% or wherever it left off before the ‘charge me’ warning cry is displayed. .
    I can’t take this anymore.
    I now have anger issues.
    It cost me $400 to bring iPhone 4s 32gig into my life. And a year and a half later its gone crazy.
    I’m not blaming iPhone for its uselessness, ipad died on me too; got her this past December and 4 months into it, drama queen decides to go into a comatose state for no reason. Knowing that there was no ‘expirational issues’ there I took ipad to Apple’s mother ship and was told that I would have to pay to replace her. Really? NO
    I now have, not one, but two malfunctioning Apple products, one semi-useless and one completely useless one.
    Apple, if you are lurking around reading this, this section is dedicated to you.
    I have been loyal to you and your family of gadgets for years. It was love at first sight when I was introduced to 3gs, and yearh I know it was selfish of me to dump 3gs for 4, but 4 was just so much more prettier, and different.
    And then comes the arrival of 4’s much smarter and faster twin a year later. Well played Apple, well played. 
    I know I was easily influenced by your products; I don’t claim to be perfect and recognize that I have self-control issues when it comes to shiny sparkly objects, but nonetheless, I have always taken great care of each one of those phones. I have always flaunted the service I received when I'd drive over an hour to come to the Apple store. But all that changed 6 months ago when I came crying to you to to help me fix the volume button that just decided to stop working out of the blue.  Remember what you had your people say to me? probably not.  Well let me remind you, I was told that I was no longer entitled to your help because it was 9 days past my warranty expiration date.
    Well I can only take so much iPhone and iPad abuse.
    It is with sincere regret that I have decided to slowly start packing my chargers and accessories and leave this fruit dominated world.  I don’t know where this path will take me, perhaps oh a space ship to a new Galaxy run by little aliens.
    But, being that spaceship airfare is too expensive when purchased out of season, I have no choice but to hang around fruit world for another 6 months. 
    So for the love of technology, someone, anyone,  PLEASE HELP ME!!!!!!!!!!!!!!!!!!!!!!!
    SN: I have lost all my apps and music after my restore and backup. cute, very cute.

    A good read. Have you done anything at all to resolve your problem. Reset? Restore?
    By the way - "your products"... nobody here produced the iPhone, we are all just users. Apple is not here.

Maybe you are looking for

  • AD RMS Issue on MS Office 2013 & Workgroup workstations

    Dear All, I've been trying to test DRM server with an internal database by distributing templates manually while triggering task scheduler on each clients PC's. Below are some of the issue which I'm facing; I'm planning to expand this externally so t

  • Problem in UPDATE statement In Multiple Record Block

    Hi Friends, I have problem in update Statement for updating the record in multiple record data Block. I have two data Block the master block is single Record block and the 2nd data block is Multiple Record data Block. I am inserting the fields like c

  • KM Document iView Vs URL iView

    Hi,   We have uploaded the content(publishing html pages and documents) to the KM folders. Now we have to proceed further by creating iViews.   We are in a confusion to select type of iView<b>(either KM Document iView or URL iView)</b> to create, whi

  • Polling file on cluster environment in weblogic

    Hi All, i am getting one issue while reading a file and deleting at end. while running it on one server it is working fine but while running on cluster it read same file more than nce. how could we restrict that one file is pollled by only one server

  • I can't here music i down loaded to my computer

    why can't i here music i down loaded to my computer?  2 why want my computer tune up?