My updating procedure for a major update

I never run a major update right away. I always wait at least a week or so to see what develops. Most problems I see here are the result either of a specific incompatibility with a third party application or plug-in, or some pre-existing software or hardware issue related to that unique user, which only comes to light due to the stress an update writing many thousands of new files causes. Then, there are occasionally, presumably, as in this instance of font and PDF problems with the 10.6.7 update, bugs in the update itself, which affect the majority of users.
External drives are not that expensive these days. I have two clones on externals and if I'm concerned enough about an update, I can install it on one of these and test it first.
Here's my own updating procedure. Major updates don't come along that often. It's worth going to the trouble to do this.
1. Have a backup so if something does go wrong, you won't be left in big trouble.
2. Verify and if necessary repair the drive from Disk Utility. (To repair, you must be booted from the Install Disc or an external clone.)
3. Disconnect all peripherals except the keyboard and mouse.
4. Download the Combo Update from Apple Downloads. It's generally more reliable to update from the standalone Combo than from Software Update, and the Combo, as it includes all updates from 10.6 onwards, may correct any files that have been corrupted or somehow gone missing.
5. Boot in Safe Boot. Hold the Shift key down at start up. Give it time, it will take longer. (The Safe Boot will also actually check and repair the drive if necessary--and if possible.) Safe Boot loads a stripped down system which may reduce any chance of incompatibility while the update is running. Keep all Applications closed.
6. Repair Permissions from Disk Utility while booted in Safe Boot.
7. Install the update from Safe Boot. Keep all Applications closed.
8. Restart when prompted and give the system up to five minutes to finish the final touches of the update with all Applications closed.
9. Verify the Drive and Repair Permissions again.
10. And then I like to restart again.
One other caution. If you are running updates from Software Update, run them one at a time, never all at once. This gives the system a chance to assimilate each one, especially if restarts are involved, and not choke on them.

Thanks. It's reassuring to know my obsessiveness (or OCD, if you will) is shared by a least one other person. (Must be others; computers draws us like flies to ** )

Similar Messages

  • Suggested procedure for safe updating of Safari to v. 3.2

    If your Safari keeps crashing, or if you are updating Safari (or just have):
    N.B. Never delete Safari, never run it under Rosetta, don't use proxy settings.
    (If you prefer to download updates via Software Update in the Apple menu (which would ensure that the correct version for your Mac was being downloaded), it is not recommended to allow SU to install major (or even minor) updates automatically. Set Software Update to just download the updater without immediately installing it. There is always the possibility that the combined download and install (which can be a lengthy process) might be interrupted by a power outage or your cat walking across the keyboard, and an interrupted install will almost certainly cause havoc. Once it is downloaded, you can install at a time that suits you. You should make a backup copy of the updater on a CD in case you ever need a reinstall.
    Safari 3.2 for download can be found here:
    http://www.apple.com/safari/download/
    Make sure you download the correct version for your system.
    Also, observe the standard procedure for installing software: repair permissions and close all applications, install, then repair permissions again.)
    Input Managers and other plug-ins from third parties can do as much harm as good. They use a security loophole to reach right into your applications' code and change that code as the application starts up. If Safari is crashing, the very first thing to do is clear out your InputManagers folders (both in your own Library and in the top-level Library), log out and log back in, and try again.
    So, disable all third party add-ons before updating Safari, as they may not have been updated yet for the new version. Add them back one by one. If something goes awry, remove it again and check on the software manufacturer's website for news of an update to match your version of Safari.
    Remember: Tiger up to 10.4.10 used Safari 2.0.4 or, if you downloaded it, Safari 3.0.3 beta. Safari 10.4.11 used Safari 3.0.4 which was not a beta and which was updated to v.3.1.2, and now both Tiger and Leopard uses Safari 3.2. If Safari 3.2 is not the fastest browser you have ever used, then something is wrong!
    (Trying to revert to a previous version of Safari can have repercussions, as Safari 3.x uses a completely different webkit on which other applications like iChat, Mail, Dashboard Widgets etc also rely, but if you really want to do this post back in a new thread for instructions on the safe way to do so.)
    Most errors reported here after an update are due to an unrepaired or undetected inherent fault in the system, and/or a third party ad-on. Add-ons that have been frequently mentioned here, among others, for causing such problems are Piclens, Saft, AcidSearch and Pithhelmet. If you have them, trash them and go the developer's sites to see if new versions are available for Safari 3.2.
    You should also ensure that you have downloaded and installed the correct version for your Mac of Security Updates up to 2008-007, which is required for Safari 3.2. Like all security updates, these require a restart and a permission repair. Note that 2008-007 is a combo update: if you have missed a couple of updates this one will suffice.
    To reiterate, Input Managers reach right into an application and alter its code. This puts the behavior of the affected application outside the control and responsibility of its developers: a recipe for problems. That's not to say that issues absolutely will ensue as a result of Input Managers, but you, as a user, must decide. If the functionality of a specific Input Manager or set thereof is really important to you, you may well choose to assume the associated risk.
    Again, the advice is to remove all Input Managers from the following directories:
    • Hard Disk/Library/InputManagers
    • Home/Library/InputManagers
    especially prior to system updates and updates to Safari (they can always be added back one-by-one later).
    Please do not respond to this post if you are having difficulties, or ask your questions in somebody else's thread, but start your own thread where your particular problem can get the full attention it deserves.

    Bump.
    Upgrading PithHelmet stopped my crashing.

  • Update my app. What is the correct procedure for updating an app/folio?

    I designed a folio in Indesign CS6 and created an app of the folio in adobe dps and succesfully uploaded it to the app store. Now I want to update my app. What is the correct procedure for updating an app/folio?

    no, just update your content and recreate the Single Edition App. Your certificate should still be valid so there is not need to recreate these.
    ... your App ID absolutely need to be the exact same one you used for the first version if you want to make sure this is an update.

  • What is the procedure for a hard boot of my iPod touch 4th generation without itunes, and without computer, and without iPod data screen.?

    What is the procedure for a hard boot of my iPod touch 4th generation
    without iTunes, and without computer, and without iPod data screen?
    6 months after purchase I updated my iPod touch as recommend by iTunes.
    It has not worked since that day.  It frozen (disabled) with a "connect to
    iTunes" icon displayed...that is the only thing it does.  itunes does not
    recognize the iPod.  My Windows7 computer recognizes an Apple device. 
    Other computers recognize the devise but if iTunes resided on that
    computer it did not recognize the iPod
    I suffered a setback with deep depression and am just now getting out of it enough to do something.  The depression prohibited me from taking action.
    I have done every procedure recommended from Apple help and external
    sources.  I did this thoroughly with help for other owners and IT experts,
    Apple employees etc etc.  I and associates have perform reboots utilizing a
    number procedure using only button on the iPod.  These were unsuccessful
    also have performed.
    Please do not ask me to do the usual.
    Online I saw  a process using the buttons on the iPod to completely
    reformat 
    the iPod.  It was NOT the hold buttons for 10 sec let go of one wait 8 sec
    etc.  I can not find the process now...a friend showed it to me in passing
    I have lost contact with him.  This is the procedure, I believe, that with
    enable me to update and use the iPod. 

    You need an internet connection and likely a computer with iTunes but an iPhone, iPad or iPod touch with the FindMy iPhone App may work by:
    If you previously turned on FIndMyiPod on the iPod in Settings>iCloud and wifi is on and connected go to iCloud: Find My iPhone, sign in and go to FIndMyiPhone and use Remote Wipe to erase the contents of your device. If you have been using iCloud to back up, you may be able to restore the most recent backup to reset the passcode after the device has been erased.
    You can also wipe the iOS device by installing the FindMyiPhone app on another iOS device and using that app to wipe the device.
    Otherwise
    Disabled
    Place the iOS device in Recovery Mode and then connect to your computer and restore via iTunes. The iPod will be erased.
    iOS: Forgot passcode or device disabled
    If recovery mode does not work try DFU mode.                        
    How to put iPod touch / iPhone into DFU mode « Karthik's scribblings        
    For how to restore:                                                             
    iTunes: Restoring iOS software
    To restore from backup see:
    iOS: Back up and restore your iOS device with iCloud or iTunes       
    If you restore from iCloud backup the apps will be automatically downloaded. If you restore from iTunes backup the apps and music have to be in the iTunes library since synced media like apps and music are not included in the backup of the iOS device that iTunes makes.
    You can redownload most iTunes purchases by:           
    Downloading past purchases from the App Store, iBookstore, and iTunes Store        
    If problem what happens or does not happen and when in the instructions? When you successfully get the iPod in recovery mode and connect to computer iTunes should say it found an iPod in recovery mode.
    Yo may have to go to an Apple store or a friend's house with an internet connection and iTunes.

  • Error in pricing procedure for PO

    Dear users,
    I have run into a problem in pricing procedure for PO.
    In the access sequence for pricing, the second access has condition based on country of customer (third party Sales order process) and third access has condition based on Info record.
    When the PO is created, the system sees the record for second access, but does not insert it. In the analysis, it gives the message that "condition record found but not set (108(VE)). Instead it puts the price from Info Record (third access).
    However, when i update the pricing in the PO in the conditions tab, it finds the record  in second access and puts it.
    The condition record was created before the PO, and i have tested multiple times after the creation of condition record in MEK1.
    Any ideas why this would happen?
    Thanks
    Nitin

    Hi
    In the Access sequence maintain the Table sequence as exclusive for the Second access... This will ensure that if the Condition record is found it will adopt that.
    Please check if your PO Qulaifies for the Second access or not.
    Whether it is a third party Sales order & Check the Customer data & Country
    Thanks & Regards
    Kishore

  • Stored Procedure for restrict to close documents

    Hi,
    I want to create a Stored Procedure for restrict to close sales orders for some users, because in Standard Authorizations you have one option to restrict to close, but I need that some users can close quotations and also this users can´t close sales orders. I have this query :
    F @object_type='17' AND (@transaction_type='a' or @transaction_type='U' )
    BEGIN
    IF EXISTS (
    SELECT T0.DOCENTRY FROM adoc T0 WHERE T0.[ObjType] = '17'
    AND T0.[UserSign] = '1' AND    T0.[DocStatus] = 'C'   AND
    T0.DOCENTRY= @list_of_cols_val_tab_del )
    BEGIN
    SELECT @Error = 1, @error_message = 'You are not permitted to close Sales Orders'
    END
    END
    But It doesn´t work. I need help!!!
    Thanks

    Hi Jose,
    You have to correct your transaction type parameters.  When you perform close or cancel operations on document; the trasnsaction notification receives parameters u201CCu201D for Cancel and u201CLu201D for Close. So instead of checking add u201CAu201D or update u201CUu201D;  you have to modify your transaction type filters for cancel u201CCu201D or close u201CLu201D.  It will go like belowu2026
    IF @object_type='17' AND (@transaction_type='C' or @transaction_type='L')
    Please try above and let me know the results.
    Thanks & Regards,
    Nitin
    Manager, SAP Business One
    Greytrix
    It's time to think outside the box.
    Email: sap at greytrix.com | Web: www.greytrix.com
    u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026
    Development Partners for SAP B1

  • Procedures for implementing a snapshot scenario with custom DataSources

    Hi Gurus,
    I have checked the How To paper ([How to Handle Inventory Management Scenarios in BW (NW2004)|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/f83be790-0201-0010-4fb0-98bd7c01e328]). However, only SAP standard BW objects are mentioned in the paper e.g. InfoCube (0IC_C03), Material Stock InfoSource (2LIS_03_BX), Material movements IS (2LIS_03_BF) and Revaluations IS (0LIS_03_UM).
    On the contrary, I need to handle custom DataSources for the Snapshot scenario. Are there any differences in the implementation methodology? Which additional aspects should I take into consideration? For example, the load sequence, delta type, etc.
    Could you please list out the step-by-step procedures for such an implementation?
    Thanks in advance!
    Regards,
    Meng

    Hi Meng,
    You can approach this in two ways.
    1) If the volume of data is not much, you can derive the balance at query level, as follows.
    User enters the date, based on this restrict your key figure to display all values less than this date.
    2) If the volume of data is high, then you will have issues with performance if you are calculating the balance in the front end. In this case, you can model this with 'Non cumulative' key figure.  Again there are 2 ways of approaching this back end solution based on the volume of data. ( Say in one case you have 2 years of history in your DSO and in the second case, you have  5 years of history ).
    A) For example, If there are only 2 years of history
    Create a non cumulative Key figure 'ZBALANCE' with inflow and outflow, in a cube.
    Map this to your credit and debit as + and - respectively and map the calender day to posting date.
    Just initialise the dataload with data transfer and start loading the delta as normal.
    You will be able to see the balances for each and every calday in your reporting.
    This approach is straight forward and simple.
    Compress the cube for getting the better performance.
    B) If there are 5 years of history and you are not interested in loading all the 5 years data in getting the balance
    Here you want to have the initial balance, continue delta and would like to load 2 years of history.
    The cube and non cumulative KF are created as mentioned above.
    For generating initial balance, you have to create another DSO without calander day and ZBalance mapped to credits and debits in additive mode. Load your DSO data into this new DSO to generate initial balance. This balance will be loaded to your cube as initial balance. ( Like 2LIS_03_BX ).
    You have to compress this request with marker update ( Must ).
    Load your historical data for 2 years from the original DSO. Compress without marker update ( Must ).
    initialise without data transfer from DSO to cube and load deltas normally.
    Compress the delta requests normally for performance reasons.
    Please read the 'Inventory document' in detail.
    Please let me know, if any of the information is still not clear.
    Thanks,
    Krishnan

  • Procedure for multiple DB Links

    Hi Everybody,
    Hope everyone is doing fine. I am working on oracle 11g R2. I have one scenario on which i need your help guys. We need to have one one stored procedure which has comma seprated Database Links as IN parameter. This procedure has one update statement. So whatever multiple database links we will pass, this update statement needs to run only on those databases . Can you please help for options we can do to solve this scneario?
    It will something like this:
    CREATE OR REPLACE PROCEDURE TEST_SP(DB_LINKS_IN VARCHAR2, E_MGR_IN VARCHAR2, E_ID_IN NUMBER)
    AS
    V_SQL VARCHAR2(400);
    BEGIN
    V_SQL: = 'UPDATE EMPLOYEE@'||DB_LINKS_IN
    SET EMP_MANAGER='||''''||E_MGR_IN||''''||'
    WHERE EMP_ID ='||E_ID_IN||;
    EXECUTE IMMEDIATE (V_SQL);
    END TEST SP;
    Above update statement needs to run in loop for Database links coming as comma seprated value from IN parameter DB_LINKS_IN. Can you please help in how to modify above procedure for DB links coming as comma seprated value?
    I will greatly appreciate your comments and responses.
    Regards
    Dev

    You could try the following steps:
    1. Create type
    CREATE OR REPLACE TYPE MYSTRTABLETYPE AS TABLE OF VARCHAR2 (255);
    2. Create function to parse comma-delimited list of db links:
    CREATE OR REPLACE FUNCTION IN_STRLIST( P_STRING IN VARCHAR2 ) RETURN MyStrTableType
    AS
    L_STRING VARCHAR2(32000) DEFAULT P_STRING || ',';
    L_DATA MyStrTableType := MyStrTableType();
    N NUMBER;
    BEGIN
    LOOP
    EXIT WHEN L_STRING IS NULL;
    N := INSTR( L_STRING, ',' );
    L_DATA.EXTEND;
    L_DATA(L_DATA.COUNT) :=
    LTRIM( RTRIM( SUBSTR( L_STRING, 1, N-1 ) ) );
    L_STRING := SUBSTR( L_STRING, N+1 );
    END LOOP;
    RETURN L_DATA;
    END;
    3. Modify your procedure as follows:
    CREATE OR REPLACE PROCEDURE TEST_SP(DB_LINKS_IN VARCHAR2, E_MGR_IN VARCHAR2, E_ID_IN NUMBER)
    AS
    V_DB_LINK MYSTRTABLETYPE := MYSTRTABLETYPE ();
    V_SQL VARCHAR2(400);
    BEGIN
    V_DB_LINK := IN_STRLIST(DB_LINKS_IN);
    for i in 1..V_DB_LINK.count
    loop
    V_SQL: = 'UPDATE EMPLOYEE@'||V_DB_LINK(i)||
    ' SET EMP_MANAGER='||''''||E_MGR_IN||''''||
    ' WHERE EMP_ID ='||E_ID_IN||;
    EXECUTE IMMEDIATE (V_SQL);
    end loop;
    END TEST SP;
    Please note I have not tested the code. Also you might want to consider using bind variables for the EMP_ID and EMP_MANAGER values.

  • Stored Procedures for Simple SQL statements

    Hi Guys,
    We are using Oracle 10g database and Web logic for frontend.
    The Product is previously developed in DotNet and SQL Server and now its going to develop into Java (Web Logic) and Oracle 10g database.
    Since the project is developed in SQL Server, there are lot many procedures written for simple sql queries. Now I would like to gather your suggestions / pointers on using procedures for simple select statements or Inserts from Java.
    I have gathered some list for using PL/SQL procedure for simple select queries like
    Cons
    If we use procedures for select statements there are lot many Ref Cursors opened for Simple select statements (Open cursors at huge rate)
    Simple select statements are much faster than executing them from Procedure
    Pros
    Code changes for modifying select query in PL/SQL much easier than in Java
    Your help in this regard is more valuable. Please post your points / thoughts here.
    Thanks & Regards
    Srinivas
    Edited by: Srinivas_Reddy on Dec 1, 2009 4:52 PM

    Srinivas_Reddy wrote:
    Cons
    If we use procedures for select statements there are lot many Ref Cursors opened for Simple select statements (Open cursors at huge rate)No entirely correct. All SQLs that hit the SQL engine are stored as cursors.
    On the client side, you have an interface that deals with this SQL cursor. It can be a Java class, a Delphi dataset, or a PL/SQL refcursor.
    Yes, cursors are created/opened at a huge rate by the SQL engine. But is is capable of doing that. What you need to do to facilitate that is send it SQLs that uses bind variables. This enables the SQL engine to simply re-use the existing cursor for that SQL.
    Simple select statements are much faster than executing them from ProcedureAlso not really correct. SQL performance is SQL performance. It has nothing to do with how you create the SQL on the client side and what client interface you use. The SQL engine does not care whether you use a PL/SQL ref cursor or a Java class as your client interface. That does not change the SQL engine's performance.
    Yes, this can change the performance on the client side. But that is entirely in the hands of the developer and how the developer selected to use the available client interfaces to interface with the SQL cursor in the SQL engine.
    Pros
    Code changes for modifying select query in PL/SQL much easier than in JavaThis is not a pro merely for ref cursors, but using PL/SQL as the abstraction layer for the data model implemented, and having it provide a "business function" interface to clients, instead of having the clients dealing with the complexities of the data model and SQL.
    I would seriously consider ref cursors in your environment. With PL/SQL servicing as the interface, there is a single place to tune SQL, and a single place to update SQL. It allows one to make data model changes without changing or even recompiling the client. It allows one to add new business logical and processing rules, again without having to touch the client.

  • How to create procedure for header table and  item table

    Hi,
    Can anyone help me to understand how to write SQLscript procedure for looping item table inside header table?
    I fetch records from sales header table ( order number ) and using that order number to loop sales item table,thereafter I need to perform business logic.
    Any example similar above requirement would be helpful
    thanks
    Sourav

    Hi Folks,
    This is my use case
    1) Select fact records from tables (say A,B,C,D ) with suitable Joins and certain Where conditions
        SELECT ordid FROM TABLES A,B,C,D on join condition where ....
    2) Using above header records , I have to select each and every item level data from different tables ( say X,Y,Z ) and perform calculation to derive new columns to update a new table ( Zreport )
    UPDATE TABLE ZREPORT
    SET col1 = ( Select qty  FROM TABLE X WHERE ordid = A.ordid
    UPDATE TABLE ZREPORT
    SET col2 = ( Select price FROM TABLE y WHERE ordid = B.ordid.
    and so on for other columns..
    3) Zreport table will be used for reporting.
    I would like to know the best way to achieve this to gain performance.
    Appreciate the help!
    Thanks
    Sourav

  • I need step-by-step procedure for ESS/MSS Security??

    Hi, I need step by step procedure for ESS/MSS security. I know the Structural .Authorization , but i dont know how this ESS/MSS security is. Could you please help me with any step by step notes of your personal. Please i dont want any best practices from help.sap.com. I already gone through those links, but i didnt get how to maintain security for ESS/MSS.

    Hi @mehdijon 
    I can help. There is no full feature software and driver available from HP, but the OS X v10.9 Mavericks driver for your printer is available through Apple Software Update (ASU).
    With this driver you can still print and scan, you just wont have HP software to scan from. Scanning to the computer from the printer control panel is only available when using HP Scan software, thus it will not work because there is no HP scan software as apart of the Apple Software Update driver.
    Instead, you can scan using,
    Method one: Scan from the Print & Scan window   
    Method two: Scan from Apple Preview
    Method three: Scan from Apple Image Capture 
    I hope this helps. If you have any additional questions are have any difficulty using any of these methods, please let me know what method you are trying and what the issue/error is. You may also find the following document helpful; OS X v10.9 Mavericks: Installing and Using the Printer on a Mac
    Please click the Thumbs up icon below to thank me for responding.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Please click “Accept as Solution” if you feel my post solved your issue, it will help others find the solution.
    Sunshyn2005 - I work on behalf of HP

  • New ALchemy settings for some major games for Win7 (64-bit)...

    [color="#ff0000"]Update 2/0/0 - Added Sid Meier's Civilization V: Ok this game is so hard to find in the registry because it uses a completely radically new type of installer that basically is a hybrid installer based on pulling the steam client game updates for Civ V and the data from the actual Civ V install DVD. The definiti've install location is similar to other steam apps are installed @ location C:\Program Files (x86)\Steam\steamapps\common\sid meier's civilization v. (The blue part is common for the majority of all steam installed games locations. Finding this for Civ V was not so easy, however.
    Here is the actual entry you should add to your ALchemy.ini file and is the ONLY location that points to the aforementioned correct install path in the entire HKLM tree that is valid. This is truly a very very unique and bizarre and radically new way to find and detect correct install path strings without resorting to using the GAMEUX path (which is different on everyones computer). This path is indentical for all Civ V installs and therefore the most valid. The ALchemy team needs to address these new radical ways that game companies are injecting the install string into the registry in the future or ALchemy will start to break big time. Notice its the Uninstall path that actually functions as the only correct static install path for the game. Its a dual use path. Very clever!
    [Sid Meier's Civilization V]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mi crosoft\Windows\CurrentVersion\Uninstall\Steam App 8930\InstallLocation
    SubDir=
    Duration=5
    Preset=
    GamePath=
    RootDirInstallOption=FALSE
    Buffers=4
    MaxVoiceCount=28
    DisableDirectMusic=FALSE
    [color="#ff0000"]Update 2/0/0 - Added Star Wars Galaxies Trading Card Game: A nice game if you have SWG that uses gorgeous sound while playing. Here is the ALchemy.ini addition.
    [Star Wars Galaxies Trading Card Game]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wind ows\CurrentVersion\App Paths\SWGTCGGame.exe\Path
    Preset=
    GamePath=
    SubDir=
    RootDirInstallOption=FALSE
    Buffers=4
    Duration=25
    MaxVoiceCount=28
    DisableDirectMusic=FALSE
    [color="#ff0000"]Update 2/0/0 - Added Star Trek Online: The only correct and static install path for this wonderful game.
    [Star Trek Online]
    RegPath=HKEY_CURRENT_USER\Software\Cryptic\Star Trek Online\InstallLocation
    Preset=
    GamePath=
    SubDir=
    RootDirInstallOption=FALSE
    Buffers=4
    Duration=25
    MaxVoiceCount=28
    DisableDirectMusic=FALSE
    [color="#ff0000"]Update 2/0/0 - Added A few oldies but goodies: Some older games I have managed to get to work with ALchemy. The sound in these older games is UNREAL in how good they sound now!
    [Fallout Tactics]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\4 Degrees East\Fallout Tactics\ProgramFolder
    Preset=
    GamePath=
    SubDir=
    RootDirInstallOption=FALSE
    Buffers=4
    Duration=25
    MaxVoiceCount=28
    DisableDirectMusic=FALSE
    [UFO Afterlight]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AL TAR\UFO Afterlight\Path
    Preset=
    GamePath=
    SubDir=
    RootDirInstallOption=FALSE
    Buffers=4
    Duration=25
    MaxVoiceCount=28
    DisableDirectMusic=FALSE
    [UFO Extraterrestrials]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Tr i Synergy\UFO Extraterrestrials\installed to
    Preset=
    GamePath=
    SubDir=
    RootDirInstallOption=FALSE
    Buffers=4
    Duration=25
    MaxVoiceCount=28
    DisableDirectMusic=FALSE
    The original post:
    I was playing around with the D:\Program Files (x86)\Creative\ALchemy\ALchemy.ini file to force ALchemy to run with all the games on my computer. After I changed the reg paths in this .ini file all the games I had on my computer started working with ALchemy running in Windows 7 64-bit. Windows 7 registry paths for some major game titles I play are NOT in the standard location that the ALchemy.ini file has them as which is why they never get registered. I run a 64-bit version of Windows 7 so the path is slightly different then the default ones in the .ini file. Here is what I added/changed and all these games now register with ALchemy and work! Game heading bolds are my addition in this post and not how they look like in the .ini file to help see the game titles better.
    I tend to shy away from any GAMEUX registry strings (for example: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\GameUX\S--5-2-837354825-494596859-745999896-00\{AFF227C-B0BB-49A5-8DFF-E87FDB864D}\ConfigApplicationPath) as they may be different for one computer to the next as they look identical to a SID string which changes radically as it is created when the game is installed. The strings should be static so they would appear identical on my computer as they would on yours. Having a string in the install path that looks like above just gives me the creeps that it is not valid. Since I only have my computer to compare this against I am not positi've of this. Just to be sure stay away from GameUX strings that are alphanumeric in nature as they can change from computer to computer or reinstall to reinstall making ALchemy fail. More on this at the bottom of this post.
    [Cabal]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mi crosoft\Windows\CurrentVersion\Uninstall\CABAL Online_is\InstallLocation
    Preset=
    [Dragon Age Origins]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bi oWare\Dragon Age\Path
    Preset=
    [Dungeons & Dragons Online: Eberron Unlimited]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Tu rbine\DDO\InstallLocation
    Preset=
    [Sid Meier's Civilization IV]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Fi raxis Games\Sid Meier's Civilization 4\INSTALLDIR
    Duration=5
    Preset=
    [Sid Meier's Civilization IV: Beyond the Sword]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Fi raxis Games\Sid Meier's Civilization 4 - Beyond the Sword\INSTALLDIR
    Duration=5
    Preset=
    [Sid Meier's Civilization IV: Warlords]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Fi raxis Games\Sid Meier's Civilization 4 - Warlords\INSTALLDIR
    Duration=5
    Preset=
    [Sid Meier's Pirates!]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\At ari\Sid Meier's Pirates!\INSTALL_PATH
    Preset=
    [Star Wars Galaxies]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wind ows\CurrentVersion\App Paths\SwgClient_r.exe\Path
    Preset=
    [Wizard0]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Ki ngsIsle Entertainment, Inc.\Wizard0\InstallPath
    Preset=
    [World of Warcraft]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bl izzard Entertainment\World of Warcraft\InstallPath
    Duration=0
    Preset=
    I left the Preset= in all of them to have default settings. You can change or add the additional options to your pleasure but I find the defaults to work just fine. Here are all the settings for the options from the top of the .ini file.
    ;Creative ALchemy titles
    ;Format/Options:
    ;? [TITLE]
    ;? RegPath <-- registry path containing string to executable or executable's directory (use this when available; alternati've is GamePath)
    ;? GamePath <-- Directory to look for app (use if RegPath can't be used)
    ;? Buffers <-- #buffers to use (default is 4)
    ;? Duration <-- buffer duration (default is 25)
    ;? DisableDirectMusic <-- disable DirectMusic support (default is False)
    ;? MaxVoiceCount <-- maximum number of voices to support (default is 28)
    ;? SubDir <-- subdirectory offset off of path pointed to by RegPath for library support (default is empty string)
    ;? RootDirInstallOption <-- option to install translator support in both RegPath and SubDir directories (default is False)
    Notice if you do a clean reinstall of your games in Windows 7 the game paths are in actuality in the reg path of \Wow6432Node and not just the raw HKLM\Software location due to the way the 64-bit architecture restructures its registry keys to work with 32-bit games (as many of these still are in fact).
    The duration and such you can play with but I just left the settings as they were and changed the executable path location that ALchemy needs to find and work with the game is all. If you reinstall Star Wars Galaxies the new Station Launcher will put the game folder under its location and therefore it may be different in your registry. SWG (and Cabal to some extent) is the only game in this list that specifically points to an abnormal location in the registry for the install path due to the way it is launched from a voicechat type of application (The Station Launcher). But at least it works this way, so I don't care too much. I even got my classic game Sid Meier's Pirates! to work with ALchemy, yay! For Cabal I used the uninstall location for the true install path. I assume as long as the path is valid, it will work and it shows up in the ALchemy window, yay!
    [color="#ff0000"]Please verify these paths in your registry do in fact have these valid regitry entries using regedit or regedt32 and not just modify the .ini file as I have shown above.
    GameUX strings
    There is one game I can not find any verifiable path for in the registry and that's Sid Meier's Colonization =(? If anyone has a clue where this path is stored or how to edit the .ini file to reflect the correct location and work with ALchemy please let me know! I have tried this location:
    [Sid Meier's Colonization]
    RegPath=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wind ows\CurrentVersion\GameUX\S--5-2-837354825-494596859-745999896-00\{AFF227C-B0BB-49A5-8DFF-E87FDB864D}\ConfigApplicationPath
    Preset=
    ...but it does not seem to like the GameUX registry path at all and won't detect it. Probably because its a specialized SID (in other words, the SID will be different on my computer then it is on yours) and ALchemy does not know how to transpose SID registry entries for it to work. GameUX is basically the registry location for all your Games as they are stored under the Start > Game location of your desktop. So if anyone can figure out how to include Direct3D games that are older but do not have a valid installation registry entry please let us know! Of course I could just use the full true path in this .ini file but I am not sure how that would look like and I don't want to break ALchemy for the games it does work with. So I stuck with just valid registry entries.
    I own an X-Fi XtremeGamer sound card with version .4.02 of ALchemy running on Windows 7 64-bit as of this post.

    ?pmc64 wrote:
    Why are you adding new games to alchemy No new games use eax and surround sound should work properly without it. The alchemy team doesnt need to do anything for the future of the program because it's for legacy games. You really don't? need to add wow6432node because it should read it anyways on 64 bit systems. At least it does with the 6 games i have installed. That steam regpath will work on any steam game. you just need to change the app number. About the only games that I have that need it are the old gold source games and far cry because for some reason the original reg path isnt on there. You really should update your alchemy version to 43.06 because the previous versions have problems with windows 7 and some games wont work right unless you change a .dll file to a older one.
    A few things about your post.
    ) Alchemy does not automatically detect the registry path settings as you have been misled for a lot of games you have to manually tell it where it goes. Hence this post.
    2) You are completely missing the point of ALchemy, which is to add the depth of audio in games (yes even new ones) which is lacking without them using just EAX.
    3) ALchemy is for new games not just legacy ones. hence why I have added the keys for both.
    4) I have had numerous ppl tell thank me for posting this thread and their games now are read by ALchemy. If you choose to not follow this thread its you choice. No worries =)
    5) My updater does not show any version besides 4.02 and I dont look for something even newer in some obscure forum post or whatnot. Official beta drivers from Creative tend to be less then stellar in performace (if any indicitation is by how their li've drivers are its even worse in their beta flavors). When I do the auto update it returns:
    Status: No updates are necessary for your Creative product.
    Your system already has the latest versions installed.

  • What is procedure for creating new vendor and material master data in ABAP

    What is procedure for creating new vendor and material master data in ABAP .

    see below code which is used for creation of vendor master as well as extension...
    *& Report  ZFC_VENDOR_CREATE                                           *
    REPORT  ZFC_VENDOR_CREATE  LINE-SIZE 100
                               NO STANDARD PAGE HEADING
                               MESSAGE-ID ZZ.
                         TABLES
    TABLES : SSCRFIELDS.   " Fields on selection screens
                         CONSTANTS
    DATA : C_SPLIT TYPE C VALUE '#'.  " Used for Has Separator in GUI_UPLAOD
                         TYPES
    Int'table to hold Vendor Master Data
    TYPES : BEGIN OF TY_VENDOR_MASTER,
              FLAG  TYPE C,               " Update Flag
              LIFNR TYPE LIFNR,           " Vendor Number
              BUKRS TYPE BUKRS,           " Company Code
              KTOKK TYPE KTOKK,           " Account Group
              ANRED TYPE ANRED,           " Title
              NAME1 TYPE NAME1_GP,        " Name1
              NAME2 TYPE NAME2_GP,        " Name2
              SORTL TYPE SORTL,           " Search Term 1
              SORT2 TYPE AD_SORT2UL,      " Search Term 2
              STRAS TYPE STRAS_GP,        " Street
              PSTLZ TYPE PSTLZ,           " Postal Code
              ORT01 TYPE ORT01_GP,        " City
              REGIO TYPE REGIO,           " Region
              LAND1 TYPE LAND1_GP,        " Country
              SPRAS TYPE SPRAS,           " Language
              VBUND TYPE RASSC,           " Trading Partner
              BANKS TYPE BANKS,           " Country
              BANKL TYPE BANKK,           " Bank Key
              BANKN TYPE BANKN,           " Bank Account
              BKONT TYPE BKONT,           " Bank Control Key
              BANKA TYPE BANKA,           " Name of Bank
              AKONT TYPE AKONT,           " Reconciliation Account
              FDGRV TYPE FDGRV,           " Cash Management Group
              ZTERM TYPE DZTERM,          " Payment Terms
              REPRF TYPE REPRF,           " Check Double Invoice
              ZWELS TYPE DZWELS,          " Payment Methods
              XPORE TYPE XPORE,           " Pay all items separately
            END   OF TY_VENDOR_MASTER,
    Int'table to hold Vendor Extend Data
            BEGIN OF TY_VENDOR_EXTEND,
              FLAG  TYPE C,               " Update Flag
              LIFNR     TYPE LIFNR,           " Vendor Number
              BUKRS     TYPE BUKRS,           " Company Code
              KTOKK     TYPE KTOKK,           " Account Group
              REF_LIFNR TYPE LIFNR,           " Reference Vendor Number
              REF_BUKRS TYPE BUKRS,           " Reference Company Code
              AKONT     TYPE AKONT,           " Reconciliation Account
              FDGRV     TYPE FDGRV,           " Cash Management Group
              ZTERM     TYPE DZTERM,          " Payment Terms
              REPRF     TYPE REPRF,           " Check Double Invoice
              ZWELS     TYPE DZWELS,          " Payment Methods
              XPORE TYPE XPORE,           " Pay all items separately
            END   OF TY_VENDOR_EXTEND,
    Int'table to hold Error Records Data
            BEGIN OF TY_ERROR,
              MSG(200) TYPE C,                " To hold Message
              LIFNR    TYPE LIFNR,            " Vendor Number
              BUKRS    TYPE BUKRS,            " Company Code
            END   OF TY_ERROR.
                         DATA (Simple Fields)
    DATA : W_COUNT TYPE I,               " Variable to hold count of Records
           W_SUCC_REC TYPE I,            " No. of Success Records
           W_SUCC_REC1 TYPE I,           " No. of Updated Records
           W_ERR_REC TYPE I,             " No. of Error Records
           w_noupdate_rec type i.        " No. of Records not Changed
                         INTERNAL TABLES
    Int'table to hold uploaded data from File
    DATA : IT_VENDOR_MASTER    TYPE STANDARD TABLE OF TY_VENDOR_MASTER,
           WA_IT_VENDOR_MASTER TYPE TY_VENDOR_MASTER,
           IT_VENDOR_EXTEND    TYPE STANDARD TABLE OF TY_VENDOR_EXTEND,
           WA_IT_VENDOR_EXTEND TYPE TY_VENDOR_EXTEND,
           WA_IT_BDCDATA       TYPE BDCDATA,
           IT_BDCDATA          TYPE STANDARD TABLE OF BDCDATA,
           WA_IT_MESSTAB       TYPE BDCMSGCOLL,
           IT_MESSTAB          TYPE STANDARD TABLE OF BDCMSGCOLL,
           IT_ERROR            TYPE STANDARD TABLE OF TY_ERROR,
           WA_IT_ERROR         TYPE TY_ERROR,
           it_error_fk01       type standard table of ty_error,
           wa_it_error_fk01    type ty_error,
           it_error_fk02       type standard table of ty_error,
           wa_it_error_fk02    type ty_error,
           it_succ_rec1        type standard table of ty_error,
           wa_it_succ_rec1     type ty_error,
           it_noupdate         type standard table of ty_error,
           wa_it_noupdate      type ty_error.
                         FLAGS
    DATA : FL_FLAG1 TYPE C,          " Flag to check error upload file
           FL_FLAG2 TYPE C,          " Flag to hold value
           FL_FLAG3 TYPE C,          " Flag to hold value
           FL_FLAG4 TYPE C.          " Flag to hold value
                         SELECTION-SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-001,
                POSITION POS_LOW.
    PARAMETERS :       P_FILE(128) DEFAULT 'C:\UPLOAD.TXT' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-002,
                POSITION POS_LOW.
    PARAMETERS :       P_VENMAS RADIOBUTTON GROUP R1 DEFAULT 'X'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-003,
                POSITION POS_LOW.
    PARAMETERS :       P_VENEXT RADIOBUTTON GROUP R1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-004,
                POSITION POS_LOW.
    PARAMETERS :       P_MODE(1) DEFAULT 'N'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-005,
                POSITION POS_LOW.
    PARAMETERS :       P_GROUP(12) DEFAULT 'ZFC_VENDOR_C' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-016,
                POSITION POS_LOW.
    PARAMETERS :       P_GROUP1(12) DEFAULT 'ZFC_VENDOR_U' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN END OF BLOCK B1.
                         AT SELECTION-SCREEN ON
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    Form to get file path for upload of data
      PERFORM GET_FILE_PATH.
    AT SELECTION-SCREEN ON BLOCK B1.
    Form to Validate data specified on Selection Screen
      CHECK SSCRFIELDS-UCOMM EQ 'ONLI'.
      PERFORM VALIDATE_DATA.
                         START - OF - SELECTION
    START-OF-SELECTION.
      IF P_VENMAS = 'X'.
    Form to upload data from Presentation Server for Vendor Master
        PERFORM UPLOAD_DATA TABLES IT_VENDOR_MASTER.
        IF FL_FLAG1 NE 'X'.
          SORT IT_VENDOR_MASTER BY LIFNR BUKRS KTOKK.
          DELETE IT_VENDOR_MASTER WHERE LIFNR = ' '
                                  AND   BUKRS = ' '
                                  AND   KTOKK = ' '.
    Form to process data for Vendor Master
          PERFORM INSERT_VENDOR_MASTER_DATA.
        ENDIF.
      ELSEIF P_VENEXT = 'X'.
    Form to upload data from Presentation Server for Vendor Extend
        PERFORM UPLOAD_DATA TABLES IT_VENDOR_EXTEND.
        IF FL_FLAG1 NE 'X'.
          SORT IT_VENDOR_EXTEND BY LIFNR BUKRS KTOKK.
          DELETE IT_VENDOR_EXTEND WHERE LIFNR = ' '
                                  AND   BUKRS = ' '
                                  AND   KTOKK = ' '.
    Form to process data for Vendor Master
          PERFORM CHK_AND_INS_VENDOR_EXTEND_DATA.
        ENDIF.
      ENDIF.
                         END - OF - SELECTION
    END-OF-SELECTION.
      IF FL_FLAG1 NE 'X'.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O01.           " Total Number of records read :
        FORMAT COLOR OFF.
        WRITE:40 W_COUNT.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O02.           " Total Number of Success records :
        FORMAT COLOR OFF.
        WRITE:40 W_SUCC_REC.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O07.           " Total Number of Updated records :
        FORMAT COLOR OFF.
        WRITE:40 W_SUCC_REC1.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O08.           " Total Number of Unchanged records :
        FORMAT COLOR OFF.
        WRITE:40 W_noupdate_REC.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O03.           " Total Number of Error records :
        FORMAT COLOR OFF.
        WRITE:40 W_ERR_REC.
        if not it_succ_rec1 is initial.
          skip 1.
          perform display_changed_report.
        endif.
        if not it_noupdate is initial.
          skip 1.
          perform display_nochange_report.
        endif.
        IF NOT IT_ERROR IS INITIAL.
          SKIP 3.
    Form to display error data
          PERFORM DISPLAY_ERROR_REPORT.
        ENDIF.
        IF FL_FLAG2 = 'X'.
          SKIP 2.
          FORMAT COLOR 4.
          WRITE:/2 TEXT-O04.        " BDC Session Name for Creation (FK01) :
          FORMAT COLOR OFF.
          WRITE:40 P_GROUP.
          perform display_error_report_fk01.
        ENDIF.
        IF FL_FLAG3 = 'X'.
          SKIP 2.
          FORMAT COLOR 4.
          WRITE:/2 TEXT-O09.        " BDC Session Name for Updation (FK02) :
          FORMAT COLOR OFF.
          WRITE:40 P_GROUP1.
          perform display_error_report_fk02.
        ENDIF.
      ENDIF.
    *&      Form  GET_FILE_PATH
    This form is used to get the specified path for uploading of data from
    flat file with the help of F4 function key
    FORM GET_FILE_PATH .
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = ' '
        IMPORTING
          FILE_NAME     = P_FILE.
    ENDFORM.                    " GET_FILE_PATH
    *&      Form  VALIDATE_DATA
    This form is used to validate the data given by user on the Selection
    Screen and the appropriate message is been displayed when an wrong
    entry is inputted
    FORM VALIDATE_DATA .
      IF SY-BATCH EQ 'X'.
        CLEAR SSCRFIELDS-UCOMM.
        MESSAGE E001(ZZ) WITH TEXT-011.
        " Excel file not to be used in Batch Mode
      ENDIF.
      IF P_MODE NE 'A' AND P_MODE NE 'N' AND P_MODE NE 'E'.
        MESSAGE E001(ZZ) WITH TEXT-012.
        " Session Mode should be either A or N or E
      ENDIF.
    ENDFORM.                    " VALIDATE_DATA
    *&      Form  UPLOAD_DATA
    This form is used to upload data from Presentation Server for either
    Vendor Master or Vendor Extend
    FORM UPLOAD_DATA TABLES P_IT_VENDOR.
      DATA : L_FILENAME TYPE STRING,
             L_FILETYPE TYPE CHAR10 VALUE 'ASC',
             L_HEADER_LENGTH TYPE I VALUE 0,
             L_READ_BY_LINE TYPE CHAR01 VALUE 'X'.
      MOVE P_FILE TO L_FILENAME.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                = L_FILENAME
          FILETYPE                = L_FILETYPE
          HEADER_LENGTH           = L_HEADER_LENGTH
          READ_BY_LINE            = L_READ_BY_LINE
          HAS_FIELD_SEPARATOR     = C_SPLIT
        TABLES
          DATA_TAB                = P_IT_VENDOR
        EXCEPTIONS
          FILE_OPEN_ERROR         = 1
          FILE_READ_ERROR         = 2
          NO_BATCH                = 3
          GUI_REFUSE_FILETRANSFER = 4
          INVALID_TYPE            = 5
          NO_AUTHORITY            = 6
          UNKNOWN_ERROR           = 7
          BAD_DATA_FORMAT         = 8
          HEADER_NOT_ALLOWED      = 9
          SEPARATOR_NOT_ALLOWED   = 10
          HEADER_TOO_LONG         = 11
          UNKNOWN_DP_ERROR        = 12
          ACCESS_DENIED           = 13
          DP_OUT_OF_MEMORY        = 14
          DISK_FULL               = 15
          DP_TIMEOUT              = 16
          OTHERS                  = 17.
      IF SY-SUBRC <> 0.
       MESSAGE I001(ZZ) WITH TEXT-006 L_FILENAME.
    MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        FL_FLAG1 = 'X'.
      ELSEIF P_IT_VENDOR[] IS INITIAL.
        MESSAGE I001(ZZ) WITH TEXT-014.   " Uploaded File contains no data
        FL_FLAG1 = 'X'.
      ENDIF.
    ENDFORM.                    " UPLOAD_DATA
    *&      Form  INSERT_VENDOR_MASTER_DATA
    This form is used to process BDC data for Vendor Master
    FORM INSERT_VENDOR_MASTER_DATA .
      DATA : L_LIFNR TYPE LIFNR.
      CLEAR : L_LIFNR.
      sort it_vendor_master by flag.
      LOOP AT IT_VENDOR_MASTER INTO WA_IT_VENDOR_MASTER.
        W_COUNT = W_COUNT + 1.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = WA_IT_VENDOR_MASTER-LIFNR
          IMPORTING
            OUTPUT = WA_IT_VENDOR_MASTER-LIFNR.
        if wa_it_vendor_master-flag = 'A'.
        SELECT SINGLE LIFNR
               FROM LFB1
               INTO L_LIFNR
               WHERE LIFNR = WA_IT_VENDOR_MASTER-LIFNR
               AND   BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        IF SY-SUBRC EQ 0.
          WA_IT_ERROR-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
          WA_IT_ERROR-MSG   = TEXT-015.
          APPEND WA_IT_ERROR TO IT_ERROR.
          W_ERR_REC = W_ERR_REC + 1.
          CLEAR : WA_IT_ERROR, L_LIFNR.
        ELSE.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_MASTER.
          PERFORM CALL_TRANSACTION.
        ENDIF.
        CLEAR : WA_IT_VENDOR_MASTER.
        elseif wa_it_vendor_master-flag = 'C'.
          IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
            PERFORM CLOSE_BDC_SESSION.
            fl_flag4 = 'X'.
          ENDIF.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_MASTER.
          PERFORM CALL_TRANSACTION_FK02.
          CLEAR : WA_IT_VENDOR_MASTER.
        elseif wa_it_vendor_master-flag = 'N'.
          WA_IT_noupdate-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_noupdate-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
          WA_IT_noupdate-MSG   = TEXT-018.
          APPEND WA_IT_noupdate TO IT_noupdate.
          W_noupdate_REC = W_noupdate_REC + 1.
          CLEAR : WA_IT_noupdate, WA_IT_VENDOR_MASTER.
        endif.
      ENDLOOP.
      IF FL_FLAG3 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
    ENDFORM.                    " INSERT_VENDOR_MASTER_DATA
    *&      Form  POPULATE_BDC_DATA_VEN_MASTER
    This form is used to populate BDC data of Vendor Master
    FORM POPULATE_BDC_DATA_VEN_MASTER .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = WA_IT_VENDOR_MASTER-ZTERM
        IMPORTING
          OUTPUT = WA_IT_VENDOR_MASTER-ZTERM.
      IF WA_IT_VENDOR_MASTER-REPRF = 'Y'.
        WA_IT_VENDOR_MASTER-REPRF = 'X'.
      ENDIF.
      IF WA_IT_VENDOR_MASTER-XPORE = 'Y'.
        WA_IT_VENDOR_MASTER-XPORE = 'X'.
      ENDIF.
      if wa_it_vendor_master-flag = 'A'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
               BDC_FIELD  USING 'RF02K-KTOKK' WA_IT_VENDOR_MASTER-KTOKK,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      elseif wa_it_vendor_master-flag = 'C'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
               BDC_FIELD  USING 'BDC_OKCODE'  '=MALL',
               BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-D0110' 'X',
               BDC_FIELD  USING 'RF02K-D0120' 'X',
               BDC_FIELD  USING 'RF02K-D0130' 'X',
               BDC_FIELD  USING 'RF02K-D0210' 'X',
               BDC_FIELD  USING 'RF02K-D0215' 'X',
               BDC_FIELD  USING 'RF02K-D0220' 'X',
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      endif.
      perform :BDC_DYNPRO USING 'SAPMF02K' '0110',
               BDC_FIELD  USING 'LFA1-ANRED'  WA_IT_VENDOR_MASTER-ANRED,
               BDC_FIELD  USING 'LFA1-NAME1'  WA_IT_VENDOR_MASTER-NAME1,
               BDC_FIELD  USING 'LFA1-NAME2'  WA_IT_VENDOR_MASTER-NAME2,
               BDC_FIELD  USING 'LFA1-SORTL'  WA_IT_VENDOR_MASTER-SORTL,
               BDC_FIELD  USING 'LFA1-STRAS'  WA_IT_VENDOR_MASTER-STRAS,
               BDC_FIELD  USING 'LFA1-ORT01'  WA_IT_VENDOR_MASTER-ORT01,
               BDC_FIELD  USING 'LFA1-PSTLZ'  WA_IT_VENDOR_MASTER-PSTLZ,
               BDC_FIELD  USING 'LFA1-LAND1'  WA_IT_VENDOR_MASTER-LAND1,
               BDC_FIELD  USING 'LFA1-REGIO'  WA_IT_VENDOR_MASTER-REGIO,
               BDC_FIELD  USING 'LFA1-SPRAS'  WA_IT_VENDOR_MASTER-SPRAS,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00',
               BDC_DYNPRO USING 'SAPMF02K' '0120',
               BDC_FIELD  USING 'LFA1-VBUND'  WA_IT_VENDOR_MASTER-VBUND,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00',
               BDC_DYNPRO USING 'SAPMF02K' '0130',
               BDC_FIELD  USING 'LFBK-BANKS(01)'  WA_IT_VENDOR_MASTER-BANKS,
               BDC_FIELD  USING 'LFBK-BANKL(01)'  WA_IT_VENDOR_MASTER-BANKL,
               BDC_FIELD  USING 'LFBK-BANKN(01)'  WA_IT_VENDOR_MASTER-BANKN,
               BDC_FIELD  USING 'BDC_OKCODE'  '=BANK',
               BDC_DYNPRO USING 'SAPLBANK' '0100',
               BDC_FIELD  USING 'BNKA-BANKA'  WA_IT_VENDOR_MASTER-BANKA,
               BDC_FIELD  USING 'BDC_OKCODE'  '=ENTR',
               BDC_DYNPRO USING 'SAPMF02K' '0130',
               BDC_FIELD  USING 'BDC_OKCODE'  '=ENTR',
               BDC_DYNPRO USING 'SAPMF02K' '0210',
               BDC_FIELD  USING 'LFB1-AKONT'  WA_IT_VENDOR_MASTER-AKONT,
               BDC_FIELD  USING 'LFB1-FDGRV'  WA_IT_VENDOR_MASTER-FDGRV,
               BDC_FIELD  USING 'BDC_OKCODE'  '=/00',
               BDC_DYNPRO USING 'SAPMF02K' '0215',
               BDC_FIELD  USING 'LFB1-ZTERM'  WA_IT_VENDOR_MASTER-ZTERM,
               BDC_FIELD  USING 'LFB1-REPRF'  WA_IT_VENDOR_MASTER-REPRF,
               BDC_FIELD  USING 'LFB1-ZWELS'  WA_IT_VENDOR_MASTER-ZWELS,
               BDC_FIELD  USING 'LFB1-XPORE'  WA_IT_VENDOR_MASTER-XPORE,
               BDC_FIELD  USING 'BDC_OKCODE'  '=UPDA'.
    ENDFORM.                    " POPULATE_BDC_DATA_VEN_MASTER
    *&      Form  BDC_DYNPRO
    This form is used to move data to BDCDATA int'table
    FORM BDC_DYNPRO  USING PROGRAM TYPE BDC_PROG
                           DYNPRO  TYPE BDC_DYNR.
      CLEAR WA_IT_BDCDATA.
      WA_IT_BDCDATA-PROGRAM  = PROGRAM.
      WA_IT_BDCDATA-DYNPRO   = DYNPRO.
      WA_IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND WA_IT_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
    This form is used to move data to BDCDATA int'table
    FORM BDC_FIELD  USING FNAM TYPE ANY
                          FVAL TYPE ANY.
      CLEAR WA_IT_BDCDATA.
      WA_IT_BDCDATA-FNAM = FNAM.
      WA_IT_BDCDATA-FVAL = FVAL.
      APPEND WA_IT_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  CALL_TRANSACTION
    This form is used to Call FK01 for processing of data either for
    Vendor Master or Vendor Extend. The error records are inserted to
    Session which can be processed using SM35
    FORM CALL_TRANSACTION .
      DATA : L_OPTION TYPE CTU_PARAMS,
             L_SUBRC TYPE SYSUBRC.
      REFRESH IT_MESSTAB.
      CLEAR IT_MESSTAB.
      L_OPTION-DEFSIZE = 'X'.
      L_OPTION-DISMODE = P_MODE.
      L_OPTION-UPDMODE = 'S'.
      CALL TRANSACTION 'FK01'
           USING IT_BDCDATA
           MESSAGES INTO IT_MESSTAB
           OPTIONS FROM L_OPTION.
      L_SUBRC = SY-SUBRC.
      IF L_SUBRC = 0.
        W_SUCC_REC = W_SUCC_REC + 1.
      ELSE.
        IF FL_FLAG2 NE 'X'.
          PERFORM OPEN_BDC_SESSION.
          FL_FLAG2 = 'X'.
        ENDIF.
        PERFORM BDC_INSERT.
        W_ERR_REC = W_ERR_REC + 1.
        PERFORM ERROR_RECORD_DATA.
      ENDIF.
    ENDFORM.                    " CALL_TRANSACTION
    *&      Form  OPEN_BDC_SESSION
    Form used to open session for Error out Records
    FORM OPEN_BDC_SESSION .
      DATA : L_USERID TYPE APQ_MAPN,      " Variable to hold user-id
             L_GROUP TYPE APQ_GRPN.       " Variable to hold value
      MOVE P_GROUP TO L_GROUP.
      MOVE SY-UNAME TO L_USERID.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          CLIENT              = SY-MANDT
          GROUP               = L_GROUP
          KEEP                = SPACE
          USER                = L_USERID
        EXCEPTIONS
          CLIENT_INVALID      = 1
          DESTINATION_INVALID = 2
          GROUP_INVALID       = 3
          GROUP_IS_LOCKED     = 4
          HOLDDATE_INVALID    = 5
          INTERNAL_ERROR      = 6
          QUEUE_ERROR         = 7
          RUNNING             = 8
          SYSTEM_LOCK_ERROR   = 9
          USER_INVALID        = 10
          OTHERS              = 11.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-008.              " Unable to open BDC Session
      ENDIF.
    ENDFORM.                    " OPEN_BDC_SESSION
    *&      Form  BDC_INSERT
    This form is used to insert error records to a Session method
    FORM BDC_INSERT .
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE            = 'FK01'
        TABLES
          DYNPROTAB        = IT_BDCDATA
        EXCEPTIONS
          INTERNAL_ERROR   = 1
          NOT_OPEN         = 2
          QUEUE_ERROR      = 3
          TCODE_INVALID    = 4
          PRINTING_INVALID = 5
          POSTING_INVALID  = 6
          OTHERS           = 7.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-009.             " Unable to Insert Data to BDC Session
      ENDIF.
    ENDFORM.                    " BDC_INSERT
    *&      Form  ERROR_RECORD_DATA
    This form is used to process the messages for the error records which
    will be displayed on the output report
    FORM ERROR_RECORD_DATA .
      DATA : L_LINES TYPE I,
             L_MSG(200) TYPE C.
      DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
      READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
      IF SY-SUBRC = 0.
        CLEAR L_MSG.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = WA_IT_MESSTAB-MSGID
            LANG      = SY-LANGU
            NO        = WA_IT_MESSTAB-MSGNR
            V1        = WA_IT_MESSTAB-MSGV1
            V2        = WA_IT_MESSTAB-MSGV2
            V3        = WA_IT_MESSTAB-MSGV3
            V4        = WA_IT_MESSTAB-MSGV4
          IMPORTING
            MSG       = L_MSG
          EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
        IF SY-SUBRC = 0.
          WA_IT_ERROR_fk01-MSG = L_MSG.
        ENDIF.
        IF P_VENMAS = 'X'.
          WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_ERROR_fk01 TO IT_ERROR_fk01.
        CLEAR WA_IT_ERROR_fk01.
      ENDIF.
    ENDFORM.                    " ERROR_RECORD_DATA
    *&      Form  CLOSE_BDC_SESSION
    Form used to close session of the Error Records
    FORM CLOSE_BDC_SESSION .
      CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
          NOT_OPEN    = 1
          QUEUE_ERROR = 2
          OTHERS      = 3.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-010.             " Unable to Close BDC Session
      ENDIF.
    ENDFORM.                    " CLOSE_BDC_SESSION
    *&      Form  CHK_AND_INS_VENDOR_EXTEND_DATA
    This form is used to process BDC data for Vendor Extend
    FORM CHK_AND_INS_VENDOR_EXTEND_DATA .
      DATA : L_LIFNR TYPE LIFNR.
      CLEAR : L_LIFNR, fl_flag4.
      sort it_vendor_extend by flag.
      LOOP AT IT_VENDOR_EXTEND INTO WA_IT_VENDOR_EXTEND.
        W_COUNT = W_COUNT + 1.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = WA_IT_VENDOR_EXTEND-REF_LIFNR
          IMPORTING
            OUTPUT = WA_IT_VENDOR_EXTEND-REF_LIFNR.
        if wa_it_vendor_extend-flag = 'A'.
        SELECT SINGLE LIFNR
               FROM LFB1
               INTO L_LIFNR
               WHERE LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR
               AND   BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
        IF SY-SUBRC NE 0.
          WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR.
          WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
          WA_IT_ERROR-MSG   = TEXT-007.
          APPEND WA_IT_ERROR TO IT_ERROR.
          W_ERR_REC = W_ERR_REC + 1.
          CLEAR : WA_IT_ERROR, L_LIFNR.
        ELSE.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              INPUT  = WA_IT_VENDOR_EXTEND-LIFNR
            IMPORTING
              OUTPUT = WA_IT_VENDOR_EXTEND-LIFNR.
          SELECT SINGLE LIFNR
                 FROM LFB1
                 INTO L_LIFNR
                 WHERE LIFNR = WA_IT_VENDOR_EXTEND-LIFNR
                 AND   BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
          IF SY-SUBRC EQ 0.
            WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
            WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
            WA_IT_ERROR-MSG   = TEXT-015.
            APPEND WA_IT_ERROR TO IT_ERROR.
            W_ERR_REC = W_ERR_REC + 1.
            CLEAR : WA_IT_ERROR, L_LIFNR.
          ELSE.
            REFRESH IT_BDCDATA.
            CLEAR IT_BDCDATA.
            PERFORM POPULATE_BDC_DATA_VEN_EXTEND.
            PERFORM CALL_TRANSACTION.
          ENDIF.
        ENDIF.
        CLEAR : WA_IT_VENDOR_EXTEND.
        elseif wa_it_vendor_extend-flag = 'C'.
          IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
            PERFORM CLOSE_BDC_SESSION.
            fl_flag4 = 'X'.
          ENDIF.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_extend.
          PERFORM CALL_TRANSACTION_FK02.
           CLEAR : WA_IT_VENDOR_EXTEND.
        elseif wa_it_vendor_extend-flag = 'N'.
          WA_IT_noupdate-LIFNR = WA_IT_VENDOR_extend-LIFNR.
          WA_IT_noupdate-BUKRS = WA_IT_VENDOR_extend-BUKRS.
          WA_IT_noupdate-MSG   = TEXT-019.
          APPEND WA_IT_noupdate TO IT_noupdate.
          W_noupdate_REC = W_noupdate_REC + 1.
          CLEAR : WA_IT_noupdate, WA_IT_VENDOR_EXTEND.
        endif.
      ENDLOOP.
      IF FL_FLAG2 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
      if fl_flag3 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
    ENDFORM.                    " CHK_AND_INS_VENDOR_EXTEND_DATA
    *&      Form  POPULATE_BDC_DATA_VEN_EXTEND
    This form is used to populate BDC data of Vendor Extend
    FORM POPULATE_BDC_DATA_VEN_EXTEND .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = WA_IT_VENDOR_EXTEND-ZTERM
        IMPORTING
          OUTPUT = WA_IT_VENDOR_EXTEND-ZTERM.
      IF WA_IT_VENDOR_EXTEND-REPRF = 'Y'.
        WA_IT_VENDOR_EXTEND-REPRF = 'X'.
      ENDIF.
      IF WA_IT_VENDOR_extend-XPORE = 'Y'.
        WA_IT_VENDOR_extend-XPORE = 'X'.
      ENDIF.
      if wa_it_vendor_extend-flag = 'A'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_EXTEND-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_EXTEND-BUKRS,
               BDC_FIELD  USING 'RF02K-KTOKK' WA_IT_VENDOR_EXTEND-KTOKK,
               BDC_FIELD  USING 'RF02K-REF_LIFNR'
                                          WA_IT_VENDOR_EXTEND-REF_LIFNR,
               BDC_FIELD  USING 'RF02K-REF_BUKRS'
                                          WA_IT_VENDOR_EXTEND-REF_BUKRS,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      elseif wa_it_vendor_extend-flag = 'C'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_extend-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_extend-BUKRS,
               BDC_FIELD  USING 'RF02K-D0210' 'X',
               BDC_FIELD  USING 'RF02K-D0215' 'X',
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      endif.
      perform :BDC_DYNPRO USING 'SAPMF02K' '0210',
               BDC_FIELD  USING 'LFB1-AKONT'  WA_IT_VENDOR_EXTEND-AKONT,
               BDC_FIELD  USING 'LFB1-FDGRV'  WA_IT_VENDOR_EXTEND-FDGRV,
               BDC_FIELD  USING 'BDC_OKCODE'  '=/00',
               BDC_DYNPRO USING 'SAPMF02K' '0215',
               BDC_FIELD  USING 'LFB1-ZTERM'  WA_IT_VENDOR_EXTEND-ZTERM,
               BDC_FIELD  USING 'LFB1-REPRF'  WA_IT_VENDOR_EXTEND-REPRF,
               BDC_FIELD  USING 'LFB1-ZWELS'  WA_IT_VENDOR_EXTEND-ZWELS,
               BDC_FIELD  USING 'LFB1-XPORE'  WA_IT_VENDOR_extend-XPORE,
               BDC_FIELD  USING 'BDC_OKCODE'  '=UPDA'.
    ENDFORM.                    " POPULATE_BDC_DATA_VEN_EXTEND
    *&      Form  DISPLAY_ERROR_REPORT
    This form is used to display the error records on the output screen
    FORM DISPLAY_ERROR_REPORT .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O05.            " Error List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O06.            " Error List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H03,              " Error Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_ERROR INTO WA_IT_ERROR.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_ERROR-LIFNR,
               17  SY-VLINE,
               18  WA_IT_ERROR-BUKRS,
               31  SY-VLINE,
               32  WA_IT_ERROR-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_ERROR.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    ENDFORM.                    " DISPLAY_ERROR_REPORT
    *&      Form  CALL_TRANSACTION_FK02
    Form used to Call Transaction FK02
    form CALL_TRANSACTION_FK02 .
      DATA : L_OPTION TYPE CTU_PARAMS,
             L_SUBRC TYPE SYSUBRC.
      REFRESH IT_MESSTAB.
      CLEAR IT_MESSTAB.
      L_OPTION-DEFSIZE = 'X'.
      L_OPTION-DISMODE = P_MODE.
      L_OPTION-UPDMODE = 'S'.
      CALL TRANSACTION 'FK02'
           USING IT_BDCDATA
           MESSAGES INTO IT_MESSTAB
           OPTIONS FROM L_OPTION.
      L_SUBRC = SY-SUBRC.
      IF L_SUBRC = 0.
        W_SUCC_REC1 = W_SUCC_REC1 + 1.
        WA_IT_succ_rec1-MSG = Text-017.
        IF P_VENMAS = 'X'.
          WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_succ_rec1 TO IT_succ_rec1.
      ELSE.
        IF FL_FLAG3 NE 'X'.
          PERFORM OPEN_BDC_SESSION_fk02.
          FL_FLAG3 = 'X'.
        ENDIF.
        PERFORM BDC_INSERT_fk02.
        W_ERR_REC = W_ERR_REC + 1.
        PERFORM ERROR_RECORD_DATA1.
      ENDIF.
    endform.                    " CALL_TRANSACTION_FK02
    *&      Form  OPEN_BDC_SESSION_fk02
    Form used to Open session for FK02
    form OPEN_BDC_SESSION_fk02 .
      DATA : L_USERID TYPE APQ_MAPN,      " Variable to hold user-id
             L_GROUP TYPE APQ_GRPN.       " Variable to hold value
      MOVE P_GROUP1 TO L_GROUP.
      MOVE SY-UNAME TO L_USERID.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          CLIENT              = SY-MANDT
          GROUP               = L_GROUP
          KEEP                = SPACE
          USER                = L_USERID
        EXCEPTIONS
          CLIENT_INVALID      = 1
          DESTINATION_INVALID = 2
          GROUP_INVALID       = 3
          GROUP_IS_LOCKED     = 4
          HOLDDATE_INVALID    = 5
          INTERNAL_ERROR      = 6
          QUEUE_ERROR         = 7
          RUNNING             = 8
          SYSTEM_LOCK_ERROR   = 9
          USER_INVALID        = 10
          OTHERS              = 11.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-008.              " Unable to open BDC Session
      ENDIF.
    endform.                    " OPEN_BDC_SESSION_fk02
    *&      Form  BDC_INSERT_fk02
    Form used to insert data into BDC session using FK02
    form BDC_INSERT_fk02 .
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE            = 'FK02'
        TABLES
          DYNPROTAB        = IT_BDCDATA
        EXCEPTIONS
          INTERNAL_ERROR   = 1
          NOT_OPEN         = 2
          QUEUE_ERROR      = 3
          TCODE_INVALID    = 4
          PRINTING_INVALID = 5
          POSTING_INVALID  = 6
          OTHERS           = 7.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-009.             " Unable to Insert Data to BDC Session
      ENDIF.
    endform.                    " BDC_INSERT_fk02
    *&      Form  display_changed_report
    Form to display Updated Vendor data
    form display_changed_report .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O10.          " Updated List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O11.          " Updated List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_succ_rec1 INTO WA_IT_succ_rec1.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_succ_rec1-LIFNR,
               17  SY-VLINE,
               18  WA_IT_succ_rec1-BUKRS,
               31  SY-VLINE,
               32  WA_IT_succ_rec1-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_succ_rec1.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_changed_report
    *&      Form  display_nochange_report
    Form to display No Changed data for Vendors
    form display_nochange_report .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O12.       " No Changes List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O13.       " No Changes List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_noupdate INTO WA_IT_noupdate.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_noupdate-LIFNR,
               17  SY-VLINE,
               18  WA_IT_noupdate-BUKRS,
               31  SY-VLINE,
               32  WA_IT_noupdate-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_noupdate.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_nochange_report
    *&      Form  ERROR_RECORD_DATA1
    Form to get Error Message for Changed Vendors
    form ERROR_RECORD_DATA1 .
      DATA : L_LINES TYPE I,
             L_MSG(200) TYPE C.
      DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
      READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
      IF SY-SUBRC = 0.
        CLEAR L_MSG.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = WA_IT_MESSTAB-MSGID
            LANG      = SY-LANGU
            NO        = WA_IT_MESSTAB-MSGNR
            V1        = WA_IT_MESSTAB-MSGV1
            V2        = WA_IT_MESSTAB-MSGV2
            V3        = WA_IT_MESSTAB-MSGV3
            V4        = WA_IT_MESSTAB-MSGV4
          IMPORTING
            MSG       = L_MSG
          EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
        IF SY-SUBRC = 0.
          WA_IT_ERROR_fk02-MSG = L_MSG.
        ENDIF.
        IF P_VENMAS = 'X'.
          WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_ERROR_fk02 TO IT_ERROR_fk02.
        CLEAR WA_IT_ERROR_fk02.
      ENDIF.
    endform.                    " ERROR_RECORD_DATA1
    *&      Form  display_error_report_fk01
    Form to display Error Report for Master Vendors (FK01)
    form display_error_report_fk01 .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O05.     " Error List for Vendor Master (FK01)
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O06.     " Error List for Vendor Master Extended (FK01)
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_ERROR_fk01 INTO WA_IT_ERROR_fk01.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_ERROR_fk01-LIFNR,
               17  SY-VLINE,
               18  WA_IT_ERROR_fk01-BUKRS,
               31  SY-VLINE,
               32  WA_IT_ERROR_fk01-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_ERROR_fk01.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_error_report_fk01
    *&      Form  display_error_report_fk02
    Form to display Error Report for changed Vendors (FK02)
    form display_error_report_fk02 .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O14.     " Error List for Vendor Master (FK02)
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O15.     " Error List for Vendor Master Extended (FK02)
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number

  • Procedure for installing OS (Leopard) in a new hard drive unit.

    I am running a Powerbook about two years old under the latest version of Tiger, and I want to do some renovation and increase the performance of it before installing Leopard, such as buying an additional 1gb of ram (resulting in the max of 2gb of ram), and also change my hard drive from a 100gb 5400 rpm, to a new seagate 100gb 7200 rpm.
    My question come to this: if I have my Leopard DVD, and I have finished installing the hardware on my Powerbook. What comes next to install the DVD: (just as a note, I wish to have a clean install of my OS)
    - I will probably install the ram under Tiger, and make sure that it is recognized, etc.., and then move forward to the hard drive change.
    - should I insert the DVD (under Tiger), shut down my laptop, perform the change of hard drive and then press the "Power button" followed by the boot command key, and it must be immediately recognized?
    - or, should I proceed to change the hard drive and after it has been physically installed, when I turn "ON" my laptop, I should be able to insert the DVD and press the boot command key?
    - Which is the best procedure for what I am trying to achieve? are both of these possible? is there any difference or preference whatsoever? I will appreciate any feedback or warning on any preparation that should be made to the hard drive when it is new. Should it be pre-formatted? or will it work straight out of the box in order to initiate the installation process.
    first time doing this type of hardware changes, and I'll appreciate any recommendations or thoughts on this.
    for reference, I am planing on buying these products:
    *1.0GB PC2700 DDR SODIMM 200 Pin Memory Module 128x64 CL 2.5
    *100GB 2.5" Seagate Momentus 7200.1 7200RPM ATA Notebook drive
    Initially I am thinking on buying these over at OWC.
    thanks,

    orlandold:
    Your plan to install the RAM and test it with Tiger is fine, although not necessary. You can install it at the same time you install your HDD. Either way will be fine.
    Once your new HDD is installed, follow these directions:
    (Note: they are written for Tiger and earlier, but should work fine)
    Formatting, Partitioning Zeroing a Hard Disk Drive
    Warning! This procedure will destroy all data on your Hard Disk Drive. Be sure you have an up-to-date, tested backup of at least your Users folder and any third party applications you do not want to re-install before attempting this procedure.
    Boot from the install CD holding down the "C" key.
    Select language
    Go to the Utilities menu (Tiger & later) Installer menu (Panther & earlier) and launch Disk Utility.
    Select your HDD (manufacturer ID) in left side bar.
    Select Partition tab in main panel. (You are about to create a single partition volume.)
    Select number of partition in pull-down menu above Volume diagram.
    (Note 1: One partition is normally preferable for an internal HDD.)
    Type in name in Name field (usually Macintosh HD)
    Select Volume Format as Mac OS Extended (Journaled)
    Click Partition button at bottom of panel.
    Select Erase tab
    Select the sub-volume (indented) under Manufacturer ID (usually Macintosh HD).
    Check to be sure your Volume Name and Volume Format are correct.
    Optional: Select on Security Options button (Tiger & later) Options button (Panther & earlier).
    Select Zero all data. (This process will map out bad blocks on your HDD. However, it could take several hours. If you want a quicker method, don't go to Security Options and just click the Erase button.)
    Click OK.
    Click Erase button
    Quit Disk Utility.
    Installation Process
    Open Installer and begin installation.
    Choose to Customize and deselect Foreign Language Translations and Additional Printer drivers.
    Check box to install X11 (Tiger) BSD Subsystems (Panther & earlier).
    Proceed with installation.
    After installation computer will restart for setup.
    After setup, reboot computer.
    Go to Applications > Utilities > Disk Utility.
    Select your HDD (manufacturer ID) in left side bar.
    Select First Aid in main panel.
    Click Repair Disk Permissions.
    Connect to Internet.
    Download and install Mac OS X 10.4.11 Combo update (PPC).
    Computer will restart after updates.
    Go to Applications > Utilities > Disk Utility.
    Select your HDD (manufacturer ID) in left side bar.
    Select First Aid in main panel.
    Click Repair Disk Permissions.
    Please do post back with further questions or comments.
    Cheers
    cornelius

  • Procedure for delta upload of material

    Hi,
    I have done the in itail upload of all the materials from MM to SRM  and now I want to replicate the remaining 50 materails which are newly added in MM .Please let me know the procedure for the same and the configs required for the same.
    Thanks,
    Manu
    Edited by: Manu Agrawal on Jan 29, 2009 11:32 AM

    Hi Manu
    R3AR2- Create a request and select mara table selection condition
    and run this request via R3AR4 and monitor via R3AR3.
    I will update you if any delta option down load option is available in r/3 crm* tables.
    regards
    Muthu

Maybe you are looking for