LC Output - problem big batch of 1000+ records

Hi,
I am creating a prototype with LC Output. The calling application will produce big XML file - Batch with more than1000 records.
Example XML data:
<?xml version="1.0" encoding="utf-8"?>
<BATCH>
<formDataRecords>
<LC_KOMA002>
<customerNameAddress>Jensens Biludlejning</customerNameAddress>
<customerNameAddress>Vestergade 21c</customerNameAddress>
<customerNameAddress>7100 Vejle</customerNameAddress>
</LC_KOMA002>
<LC_KOMA002>
<customerNameAddress>Pete Petersen</customerNameAddress>
<customerNameAddress>Vestergade 10</customerNameAddress>
<customerNameAddress>7100 Copenhagen</customerNameAddress>
</LC_KOMA002>
</formDataRecords>
In a setVariables step I extract the XML data to be merged with formTemplate. I extract all all nodes under <formDataRecords> in a new XML variable.
I use this xml as input data to a GeneratePDFOutput (LC Output). The GeneratePDFOutput is set up with 'multiple streams&apos; and &apos;record level&apos; 2 and &apos;Record name&apos; = <LC_KOMA002>. I use the &apos;Output Location URI&apos; to save the pdf with incremental filename xxx1,2,3,4.pdf
The workflow works fine with 500 records - here it produces 500 pdf files with 1 page.
Problem:
When running with 1000 records or more my process does not produce any pdf. The watchedfolder take my XML datafile. But after 3-4 min. it returns this error in the ERROR server log.
2010-08-12 11:52:00,484 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_58] - Abort of action id a10ed08:ce4d:4c596be4:15f4fee invoked while multiple threads active within it.
It seems like GeneratePDFOutput run out of memory in some way when it handles more that 500 records.
I hope that you have ideas to configuration/settings that can be used on the Adobe LC server or CL Output so that it can handle large batch jobs??
I look forward to all you clever solutions - I really want to show the customer Adobe LC can do this one :)
/Thomas Groenbaek, Jyske Bank

Thanks Neal,
You are always a life saver... and wauw you second post, it takes the tough questions to get you out :)
Great info. I have now succesfully produced Batches with 1000 records and 2000 records. This means my GeneratePDFOutput create 1000/2000 PDF with one pages and 1 Big of 1000/2000 pages.
Just want to share with everybody what settings I adjusted on my Adobe LC server:
1) In C:\Adobe\Adobe LiveCycle ES2\jboss\bin\run.bat
set XX:PermSize=512m -XX:MaxPermSize=512m -Xms2048m -Xmx2048m
2) In C:\Adobe\Adobe LiveCycle ES2\jboss\server\lc_turnkey\conf\jboss-service.xml
set <attribute name="TransactionTimeout">900</attribute> Default 300
3) In Home > Services > Applications and Services > Service Management
Find service 'outputservice1.1&apos; and click link to open settings
Changed &apos;Transaction Time out&apos; from default =180 to 900
When I produce batch with 2000 record it produced all 2000 PDF but I had an error right after it finished:
2010-08-13 15:16:43,076 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackLocalException in method: public abstract java.lang.Object com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterLocal.doRequiresNe w(com.adobe.idp.dsc.transaction.TransactionDefinition,com.adobe.idp.dsc.transaction.Transa ctionCallback) throws com.adobe.idp.dsc.DSCException, causedBy:
java.lang.IllegalStateException: [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] The transaction is not active!
Anybody knowing what caused this error and how to solve it
/Thomas Groenbaek

Similar Messages

  • Split the file in the batches of 1000 records

    Hi,
    I need to read a fixed length file from SAP system and then have to send the file which is combination of a huge number of records (e.g 100000) in the batches of 1000 records each to the target system.The target system which is a third party has a constraint of accepting only 1000 records in a file.
    What is the best approach we may use here to split the file in the batches of 1000 records and then send the file to the target.
    Kindly suggest.
    Thank You.
    Regards,
    Indu Khurana.

    The adapter will will take care this and split the input file (message) into smaller message batches (set to the number of records defined by you, say 1000).  Each of these smaller batches will be processed as per your design and configuration.  For example a straight through sender and receiver will have the sender splitting the input file into batches of 1000 messages which will be delivered to your receiver.  You could also add a timestamp or the like to stop the file being overwritten at the destination.
    Regards,
    Mike

  • Update 1 million records in batches of 1000

    Hello,
    I have to update 1 million records in groups of 1000. This is the best code I've got but it takes about 1hr and 15 minutes. (I'm also doing a commit every 5k for rollback purposes.) Does anybody have any better ideas?
    thanks,
    -Kevin
    set time on
    spool c:\testrowbatch.log
    declare
    vrow_id varchar2(15);
    pcount number:=0;
    icount number:=0;
    vbnum number:=1;
    CURSOR cs_01 is
    select row_id from eim_activity where if_row_batch_num = '10';
    BEGIN
    OPEN cs_01;
    LOOP
    FETCH cs_01 INTO vrow_id;
    IF cs_01%NOTFOUND THEN
    dbms_output.put_line('End of Data');
    CLOSE cs_01;
    END IF;
    Update eim_activity set if_row_batch_num = vbnum where row_id = vrow_id;
    icount:=icount + 1;
    pcount:=pcount + 1;
    IF icount = 5000 THEN
    commit;
    icount:=0;
    CLOSE cs_01;
    OPEN cs_01;
    END IF;
    IF pcount = 1000 THEN
    vbnum := vbnum +1;
    pcount:=0;
    end if;
    END LOOP;
    commit;
    end;

    There are three problems with commiting inside the loop, particularly when you are updating the table that you have created the cursor on.
    First, as everyone pointed out, it makes it slower.
    Second, you run a serious risk of getting an ora 1555 Snapshot too old error. In which case you may not be able to reliably restart the procedure.
    Third, it actually takes more rollback doing it that way than doing it in a single transaction.
    The problem with Todd's approach is that you will update some records multiple times, whether you commit or not. You will set if_row_batch_num = 10 for 1000 records during the 10th iteration of the loop. These records will then be found in a subsequent iteration.
    If you are doing this in PL/SQL just to increment the variable for every 1000 records, then this single update will solve that problem. It will be faster than your procedure, it will only update each row once per run, and it will always be an all or nothing update. You will still set if_row_batch_num = 10 for 1000 existing records.
    UPDATE eim_activity
    SET if_row_batch_num = FLOOR(rownum/1001) +1
    WHERE if_row_batch_num = 10;TTFN
    John

  • Call RFC Function Module and return 1000 records at a time

    I would like to call a Remote Enabled Function Module from a non SAP system.  This function module will select data from the database and return it to the calling program.
    Suppose there are 100,000 records that need to be returned, but the calling module would like the data in chunks of 1000 records.  Therefore the calling program would call the FM 100 times. 
    How do I code the function module to know on each subsequent call to grab the next chunk of 1000 records? 
    Let me know if additional information is needed.
    Thanks,
    Aaron

    Hello,
    Here is how you can go for this issue:
    1. Create one RFC function module with following parameter. These parameters are with respective of chunking logic.
         Import: Package Size
         Export: Total number of records
         Changing: chunk count
    Implement following logic:
    1. First of you need to know how many chunks you need to fetch for that get the count of total number of records. This is one  
        time activity so you better maintain one flag import parameter will be set to 'X' only first call.
    2. Get the number of chunk using total number of records / chunk size for e.g. 1000 / 100 so chunk count = 10.
    3. Define internal chunk counter in function module which will be used to locate the correct chunk depending on the chunk
        counter value sent from calling program.
    4. Send first call with package size 100 and chunk count = 1, execute select statement and increment internal
        chunk count check if chunk count = internal chunk count in current case chunk count = 1 so exit select statement and return
        with first chunk.
    5. Send second call with package size 100 and chunk count = 2. Execute select statement and check chunk count with internal
        chunk counter, in current case it will be 1 so skip that data and go for next chunk of 100 records increment internal chunk  
        counter. In this case it will match with external chunk count = 2. load output table with that data and return to calling program.
    6. Repeat step 4 until you reach last chunk.
    You need to use SELECT...ENDSELECT with PACKAGE SIZE addition so for every loop it will return number of records mentioned in package size.
    Hope this helps.
    Thanks,
    Augustin.

  • Mapping problem with compressed key update record

    Hi, could you please advise?
    I'm getting the following problem:
    About a week ago replicat abened with "Error in mapping" error. I found in discard file some record looking like:
    filed1 = NULL
    field2 =
    field3 =
    field4 =
    field5 =
    datefield = -04-09 00:00:00
    field6 =
    field8 =
    field9 = NULL
    field10 =
    Where filed9 = @GETENV("GGHEADER", "COMMITTIMESTAM"), field10 = = @GETENV("GGHEADER", "COMMITTIMESTAM"), others are table fields mapped by USEDEFAULTS
    So I got Mapping problem with compressed key update record at 2012-06-01 15:44
    I guess I need to mention that extract failed in 5 minuts before it with: VAM function VAMRead returned unexpected result: error 600 - VAM Client Report <[CFileInfo::Read] Timeout expired after 10 retries with 1000 ms delay, waiting to read transaction log or backup files. To increase the number of retries, use SETENV (GGS_CacheRetryCount = n) in Extract parameter file. To control retry delay time, use SETENV (GGS_CacheRetryDelay = n). handle: 0000000000000398 ReadFile GetLastError:997 Wait GetLastError:997>.
    I don't know if it has ther same source as data corruption, could you tell me if it is?
    Well, I created new extract, starting 2012-06-01 15:30 to check if there was something with extract at the time, but got the same error.
    If I run extract beging at 15:52 it starts and works.
    But well, I got another one today. Data didn't look that bad, but yet one column came with null value:( And I'm using it as a key column, so I got Mapping problem with compressed key update record again:(
    I'm replicating from SQL Server 2008 to Oracle 11g.
    I'm actually using NOCOMPRESSUPDATES in Extract.
    CDC is enabled for all tables replicated. The only thing is that it is enabled not by ADD TRANDATA command, but by SQL Server sys.sp_cdc_enable_table, does it matter?
    Could you please advise why does it happen?

    Well, the problem begins somewhere in extract or before extract, may be in transaction log, I don't know:(
    Here are extract parameters:
    EXTRACT ETCHECK
    TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT
    SOURCEDB TEST, USERID **, PASSWORD *****
    exttrail ./dirdat/ec
    NOCOMPRESSUPDATES
    NOCOMPRESSDELETES
    TABLE tst.table1, COLS (field1, field2, field3, field4, field5, field6, field7, field8 );
    TABLE tst.table2, COLS (field1, field2, field3, field4 );
    Data pump:
    EXTRACT DTCHECK
    SOURCEDB TEST, USERID **, PASSWORD *****
    RMTHOST ***, MGRPORT 7809
    RMTTRAIL ./dirdat/dc
    TABLE tst.table1;
    TABLE tst.table2;
    Replicat:
    REPLICAT rtcheck
    USERID tst, PASSWORD ***
    DISCARDFILE ./dirrpt/rtcheck.txt, PURGE
    SOURCEDEFS ./dirdef/sourcei.def
    HANDLECOLLISIONS
    UPDATEDELETES
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    MAP dbo.TPROCPERIODCONFIRMSTAV, TARGET R_019_000001.TPROCPERIODCONFIRMSTAV, COLMAP (USEDEFAULTS , field5 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed6= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (filed1, field2, field3);
    Rpt file for replicat:
    Oracle GoldenGate Delivery for Oracle
    Version 11.1.1.1 OGGCORE_11.1.1_PLATFORMS_110421.2040
    Windows x64 (optimized), Oracle 11g on Apr 22 2011 00:34:07
    Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
    Starting at 2012-06-05 12:49:38
    Operating System Version:
    Microsoft Windows Server 2008 R2 , on x64
    Version 6.1 (Build 7601: Service Pack 1)
    Process id: 2264
    Description:
    ** Running with the following parameters **
    REPLICAT rtcheck
    USERID tst, PASSWORD ***
    DISCARDFILE ./dirrpt/rtcheck.txt, PURGE
    SOURCEDEFS ./dirdef/sourcei.def
    HANDLECOLLISIONS
    UPDATEDELETES
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    MAP dbo.TPROCPERIODCONFIRMSTAV, TARGET R_019_000001.TPROCPERIODCONFIRMSTAV, COLMAP (USEDEFAULTS , field5 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed6= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (filed1, field2, field3);
    CACHEMGR virtual memory values (may have been adjusted)
    CACHEBUFFERSIZE: 64K
    CACHESIZE: 512M
    CACHEBUFFERSIZE (soft max): 4M
    CACHEPAGEOUTSIZE (normal): 4M
    PROCESS VM AVAIL FROM OS (min): 1G
    CACHESIZEMAX (strict force to disk): 881M
    Database Version:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE     11.2.0.1.0     Production
    TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    Database Language and Character Set:
    NLS_LANG = "AMERICAN_AMERICA.CL8MSWIN1251"
    NLS_LANGUAGE = "AMERICAN"
    NLS_TERRITORY = "AMERICA"
    NLS_CHARACTERSET = "CL8MSWIN1251"
    For further information on character set settings, please refer to user manual.
    ** Run Time Messages **
    Opened trail file ./dirdat/dc000000 at 2012-06-05 12:49:39
    2012-06-05 12:58:14 INFO OGG-01020 Processed extract process RESTART_ABEND record at seq 0, rba 925 (aborted 0 records).
    MAP resolved (entry tst.table1):
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    2012-06-05 12:58:14 WARNING OGG-00869 No unique key is defined for table table1. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
    Using the following default columns with matching names:
    field1=field1, field2=field2, field3=field3, field4=field4, field5=field5, field6=field6, field7=field7, field8=field8
    Using the following key columns for target table R_019_000001.TCALCULATE: field3.
    2012-06-05 12:58:14 WARNING OGG-01431 Aborted grouped transaction on 'tst.table1', Mapping error.
    2012-06-05 12:58:14 WARNING OGG-01003 Repositioning to rba 987 in seqno 0.
    2012-06-05 12:58:14 WARNING OGG-01151 Error mapping from tst.table1 to tst.table1.
    2012-06-05 12:58:14 WARNING OGG-01003 Repositioning to rba 987 in seqno 0.
    Source Context :
    SourceModule : [er.main]
    SourceID : [er/rep.c]
    SourceFunction : [take_rep_err_action]
    SourceLine : [16064]
    ThreadBacktrace : [8] elements
    : [C:\App\OGG\replicat.exe(ERCALLBACK+0x143034) [0x00000001402192B4]]
    : [C:\App\OGG\replicat.exe(ERCALLBACK+0x11dd44) [0x00000001401F3FC4]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x000000014009F102]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x00000001400B29CC]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x00000001400B8887]]
    : [C:\App\OGG\replicat.exe(releaseCProcessManagerInstance+0x25250) [0x000000014028F200]]
    : [C:\Windows\system32\kernel32.dll(BaseThreadInitThunk+0xd) [0x000000007720652D]]
    : [C:\Windows\SYSTEM32\ntdll.dll(RtlUserThreadStart+0x21) [0x000000007733C521]]
    2012-06-05 12:58:14 ERROR OGG-01296 Error mapping from tst.table1 to tst.table1.
    * ** Run Time Statistics ** *
    Last record for the last committed transaction is the following:
    Trail name : ./dirdat/dc000000
    Hdr-Ind : E (x45) Partition : . (x04)
    UndoFlag : . (x00) BeforeAfter: A (x41)
    RecLength : 249 (x00f9) IO Time : 2012-06-01 15:48:56.285333
    IOType : 115 (x73) OrigNode : 255 (xff)
    TransInd : . (x03) FormatType : R (x52)
    SyskeyLen : 0 (x00) Incomplete : . (x00)
    AuditRBA : 44 AuditPos : 71176199289771
    Continued : N (x00) RecCount : 1 (x01)
    2012-06-01 15:48:56.285333 GGSKeyFieldComp Len 249 RBA 987
    Name: DBO.TCALCULATE
    Reading ./dirdat/dc000000, current RBA 987, 0 records
    Report at 2012-06-05 12:58:14 (activity since 2012-06-05 12:58:14)
    From Table tst.table1 to tst.table1:
    # inserts: 0
    # updates: 0
    # deletes: 0
    # discards: 1
    Last log location read:
    FILE: ./dirdat/dc000000
    SEQNO: 0
    RBA: 987
    TIMESTAMP: 2012-06-01 15:48:56.285333
    EOF: NO
    READERR: 0
    2012-06-05 12:58:14 ERROR OGG-01668 PROCESS ABENDING.
    Discard file:
    Oracle GoldenGate Delivery for Oracle process started, group RTCHECK discard file opened: 2012-06-05 12:49:39
    Key column filed3 (0) is missing from update on table tst.table1
    Missing 1 key columns in update for table tst.table1.
    Current time: 2012-06-05 12:58:14
    Discarded record from action ABEND on error 0
    Aborting transaction on ./dirdat/dc beginning at seqno 0 rba 987
    error at seqno 0 rba 987
    Problem replicating tst.table1 to tst.table1
    Mapping problem with compressed key update record (target format)...
    filed1 = NULL
    field2 =
    field3 =
    field4 =
    field5 =
    datefield = -04-09 00:00:00
    field6 =
    field8 =
    field9 = NULL
    field10 =
    Process Abending : 2012-06-05 12:58:14

  • Bulk collect limit 1000 is looping only 1000 records out of 35000 records

    In below code I have to loop around 35000 records for every month of the year starting from Aug-2010 to Aug-2011.
    I am using bulk collect with limit clause but the problem is:
    a: Limit clause is returning only 1000 records.
    b: It is taking too much time to process.
    CREATE OR REPLACE PACKAGE BODY UDBFINV AS
    F UTL_FILE.FILE_TYPE;
    PV_SEQ_NO NUMBER(7);
    PV_REC_CNT NUMBER(7) := 0;
    PV_CRLF VARCHAR2(2) := CHR(13) || CHR(10);
    TYPE REC_PART IS RECORD(
    PART_NUM PM_PART_HARSH.PART_NUM%TYPE,
    ON_HAND_QTY PM_PART_HARSH.ON_HAND_QTY%TYPE,
    ENGG_PREFIX PM_PART_HARSH.ENGG_PREFIX%TYPE,
    ENGG_BASE PM_PART_HARSH.ENGG_BASE%TYPE,
    ENGG_SUFFIX PM_PART_HARSH.ENGG_SUFFIX%TYPE);
    TYPE TB_PART IS TABLE OF REC_PART;
    TYPE REC_DATE IS RECORD(
    START_DATE DATE,
    END_DATE DATE);
    TYPE TB_MONTH IS TABLE OF REC_DATE;
    PROCEDURE MAIN IS
    /* To be called in Scheduler Programs Action */
    BEGIN
    /* Initializing package global variables;*/
    IFMAINT.V_PROG_NAME := 'FULL_INVENTORY';
    IFMAINT.V_ERR_LOG_TAB := 'UDB_ERR_FINV';
    IFMAINT.V_HIST_TAB := 'UDB_HT_FINV';
    IFMAINT.V_UTL_DIR_NAME := 'UDB_SEND';
    IFMAINT.V_PROG_TYPE := 'S';
    IFMAINT.V_IF_TYPE := 'U';
    IFMAINT.V_REC_CNT := 0;
    IFMAINT.V_DEL_INS := 'Y';
    IFMAINT.V_KEY_INFO := NULL;
    IFMAINT.V_MSG := NULL;
    IFMAINT.V_ORA_MSG := NULL;
    IFSMAINT.V_FILE_NUM := IFSMAINT.V_FILE_NUM + 1;
    IFMAINT.LOG_ERROR; /*Initialize error log table, delete prev. rows*/
    /*End of initialization section*/
    IFMAINT.SET_INITIAL_PARAM;
    IFMAINT.SET_PROGRAM_PARAM;
    IFMAINT.SET_UTL_DIR_PATH;
    IFMAINT.GET_DEALER_PARAMETERS;
    PV_SEQ_NO := IFSMAINT.GENERATE_FILE_NAME;
    IF NOT CHECK_FILE_EXISTS THEN
    WRITE_FILE;
    END IF;
    IF IFMAINT.V_BACKUP_PATH_SEND IS NOT NULL THEN
    IFMAINT.COPY_FILE(IFMAINT.V_UTL_DIR_PATH,
    IFMAINT.V_FILE_NAME,
    IFMAINT.V_BACKUP_PATH_SEND);
    END IF;
    IFMAINT.MOVE_FILE(IFMAINT.V_UTL_DIR_PATH,
    IFMAINT.V_FILE_NAME,
    IFMAINT.V_FILE_DEST_PATH);
    COMMIT;
    EXCEPTION
    WHEN IFMAINT.E_TERMINATE THEN
    IFMAINT.V_DEL_INS := 'N';
    IFMAINT.LOG_ERROR;
    ROLLBACK;
    UTL_FILE.FCLOSE(F);
    IFMAINT.DELETE_FILE(IFMAINT.V_UTL_DIR_PATH, IFMAINT.V_FILE_NAME);
    RAISE_APPLICATION_ERROR(IFMAINT.V_USER_ERRCODE, IFMAINT.V_ORA_MSG);
    WHEN OTHERS THEN
    IFMAINT.V_DEL_INS := 'N';
    IFMAINT.V_MSG := 'ERROR IN MAIN PROCEDURE ||IFMAINT.V_PROG_NAME';
    IFMAINT.V_ORA_MSG := SUBSTR(SQLERRM, 1, 255);
    IFMAINT.V_USER_ERRCODE := -20101;
    IFMAINT.LOG_ERROR;
    ROLLBACK;
    UTL_FILE.FCLOSE(F);
    IFMAINT.DELETE_FILE(IFMAINT.V_UTL_DIR_PATH, IFMAINT.V_FILE_NAME);
    RAISE_APPLICATION_ERROR(IFMAINT.V_USER_ERRCODE, IFMAINT.V_ORA_MSG);
    END;
    PROCEDURE WRITE_FILE IS
    CURSOR CR_PART IS
    SELECT A.PART_NUM, ON_HAND_QTY, ENGG_PREFIX, ENGG_BASE, ENGG_SUFFIX
    FROM PM_PART_HARSH A;
    lv_cursor TB_PART;
    LV_CURR_MONTH NUMBER;
    LV_MONTH_1 NUMBER := NULL;
    LV_MONTH_2 NUMBER := NULL;
    LV_MONTH_3 NUMBER := NULL;
    LV_MONTH_4 NUMBER := NULL;
    LV_MONTH_5 NUMBER := NULL;
    LV_MONTH_6 NUMBER := NULL;
    LV_MONTH_7 NUMBER := NULL;
    LV_MONTH_8 NUMBER := NULL;
    LV_MONTH_9 NUMBER := NULL;
    LV_MONTH_10 NUMBER := NULL;
    LV_MONTH_11 NUMBER := NULL;
    LV_MONTH_12 NUMBER := NULL;
    lv_month TB_MONTH := TB_MONTH();
    BEGIN
    IF CR_PART%ISOPEN THEN
    CLOSE CR_PART;
    END IF;
    FOR K IN 1 .. 12 LOOP
    lv_month.EXTEND();
    lv_month(k).start_date := ADD_MONTHS(TRUNC(SYSDATE, 'MM'), - (K + 1));
    lv_month(k).end_date := (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -K) - 1);
    END LOOP;
    F := utl_file.fopen(IFMAINT.V_UTL_DIR_NAME, IFMAINT.V_FILE_NAME, 'W');
    IF UTL_FILE.IS_OPEN(F) THEN
    /*FILE HEADER*/
    utl_file.put_line(F,
    RPAD('$CUD-', 5, ' ') ||
    RPAD(SUBSTR(IFMAINT.V_PANDA_CD, 1, 5), 5, ' ') ||
    RPAD('-136-', 5, ' ') || RPAD('000000', 6, ' ') ||
    RPAD('-REDFLEX-KA-', 13, ' ') ||
    RPAD('00000000-', 9, ' ') ||
    RPAD(IFMAINT.V_CDS_SPEC_REL_NUM, 5, ' ') ||
    RPAD('CD', 2, ' ') ||
    RPAD(TO_CHAR(SYSDATE, 'MMDDYY'), 6, ' ') ||
    LPAD(IFSMAINT.V_FILE_NUM, 2, 0) ||
    RPAD('-', 1, ' ') || RPAD(' ', 9, ' ') ||
    RPAD('-', 1, ' ') || RPAD(' ', 17, ' ') ||
    RPAD('CD230', 5, ' ') ||
    RPAD(TO_CHAR(SYSDATE, 'MMDDYY'), 6, ' ') ||
    LPAD(IFSMAINT.V_FILE_NUM, 2, 0) ||
    LPAD(PV_REC_CNT, 8, 0) || RPAD(' ', 5, ' ') ||
    RPAD('00000000', 8, ' ') || RPAD('CUD', 3, ' ') ||
    RPAD(IFMAINT.V_CDS_SPEC_REL_NUM, 5, ' ') ||
    RPAD(IFMAINT.V_GEO_SALES_AREA_CD, 3, ' ') ||
    RPAD(IFMAINT.V_FRANCHISE_CD, 2, ' ') ||
    RPAD(IFMAINT.V_DSP_REL_NUM, 9, ' ') ||
    RPAD('00136REDFLEX', 12, ' ') || RPAD(' ', 1, ' ') ||
    RPAD('KA', 2, ' ') || RPAD('000000', 6, ' ') ||
    RPAD('00D', 3, ' ') ||
    RPAD(IFMAINT.V_VENDOR_ID, 6, ' ') ||
    RPAD(IFSMAINT.V_FILE_TYPE, 1, ' ') ||
    RPAD('>', 1, ' ') || PV_CRLF);
    /*LINE ITEMS*/
    OPEN CR_PART;
    FETCH CR_PART BULK COLLECT
    INTO lv_cursor limit 1000;
    FOR I IN lv_cursor.FIRST .. lv_cursor.LAST LOOP
    SELECT SUM(A.BILL_QTY)
    INTO LV_CURR_MONTH
    FROM PD_ISSUE A, PH_ISSUE B
    WHERE A.DOC_TYPE IN ('CRI', 'RRI', 'RSI', 'CSI')
    AND A.DOC_NUM = B.DOC_NUM
    AND B.DOC_DATE BETWEEN TRUNC(SYSDATE, 'MM') AND SYSDATE
    AND A.PART_NUM = LV_CURSOR(i).PART_NUM;
    FOR J IN 1 .. 12 LOOP
    SELECT SUM(A.BILL_QTY)
    INTO LV_MONTH_1
    FROM PD_ISSUE A, PH_ISSUE B
    WHERE A.DOC_TYPE IN ('CRI', 'RRI', 'RSI', 'CSI')
    AND A.DOC_NUM = B.DOC_NUM
    AND B.DOC_DATE BETWEEN lv_month(J).start_date and lv_month(J)
    .end_date
    AND A.PART_NUM = LV_CURSOR(i).PART_NUM;
    END LOOP;
    utl_file.put_line(F,
    RPAD('IL', 2, ' ') ||
    RPAD(TO_CHAR(SYSDATE, 'RRRRMMDD'), 8, ' ') ||
    RPAD(LV_CURSOR(I).ENGG_PREFIX, 6, ' ') ||
    RPAD(LV_CURSOR(I).ENGG_BASE, 8, ' ') ||
    RPAD(LV_CURSOR(I).ENGG_SUFFIX, 6, ' ') ||
    LPAD(LV_CURSOR(I).ON_HAND_QTY, 7, 0) ||
    LPAD(NVL(LV_CURR_MONTH, 0), 7, 0) ||
    LPAD(LV_MONTH_1, 7, 0) || LPAD(LV_MONTH_2, 7, 0) ||
    LPAD(LV_MONTH_3, 7, 0) || LPAD(LV_MONTH_4, 7, 0) ||
    LPAD(LV_MONTH_5, 7, 0) || LPAD(LV_MONTH_6, 7, 0) ||
    LPAD(LV_MONTH_7, 7, 0) || LPAD(LV_MONTH_8, 7, 0) ||
    LPAD(LV_MONTH_9, 7, 0) || LPAD(LV_MONTH_10, 7, 0) ||
    LPAD(LV_MONTH_11, 7, 0) ||
    LPAD(LV_MONTH_12, 7, 0));
    IFMAINT.V_REC_CNT := IFMAINT.V_REC_CNT + 1;
    END LOOP;
    CLOSE CR_PART;
    /*TRAILER*/
    utl_file.put_line(F,
    RPAD('$EOF-', 5, ' ') || RPAD('320R', 4, ' ') ||
    RPAD(SUBSTR(IFMAINT.V_PANDA_CD, 1, 5), 5, ' ') ||
    RPAD(' ', 5, ' ') ||
    RPAD(IFMAINT.V_GEO_SALES_AREA_CD, 3, ' ') ||
    RPAD(TO_CHAR(SYSDATE, 'MM-DD-RR'), 6, ' ') ||
    LPAD(IFSMAINT.V_FILE_NUM, 2, 0) ||
    LPAD(IFMAINT.V_REC_CNT, 8, 0) || 'H' || '>' ||
    IFMAINT.V_REC_CNT);
    utl_file.fclose(F);
    IFMAINT.INSERT_HISTORY;
    END IF;
    END;
    FUNCTION CHECK_FILE_EXISTS RETURN BOOLEAN IS
    LB_FILE_EXIST BOOLEAN := FALSE;
    LN_FILE_LENGTH NUMBER;
    LN_BLOCK_SIZE NUMBER;
    BEGIN
    UTL_FILE.FGETATTR(IFMAINT.V_UTL_DIR_NAME,
    IFMAINT.V_FILE_NAME,
    LB_FILE_EXIST,
    LN_FILE_LENGTH,
    LN_BLOCK_SIZE);
    IF LB_FILE_EXIST THEN
    RETURN TRUE;
    END IF;
    RETURN FALSE;
    EXCEPTION
    WHEN OTHERS THEN
    RETURN FALSE;
    END;
    END;

    Try this:
    OPEN CR_PART;
    loop
    FETCH CR_PART BULK COLLECT
    INTO lv_cursor limit 1000;
    exit when CR_PART%notfound;
    FOR I IN lv_cursor.FIRST .. lv_cursor.LAST LOOP
    SELECT SUM(A.BILL_QTY)
    INTO LV_CURR_MONTH
    FROM PD_ISSUE A, PH_ISSUE B
    WHERE A.DOC_TYPE IN ('CRI', 'RRI', 'RSI', 'CSI')
    AND A.DOC_NUM = B.DOC_NUM
    AND B.DOC_DATE BETWEEN TRUNC(SYSDATE, 'MM') AND SYSDATE
    AND A.PART_NUM = LV_CURSOR(i).PART_NUM;
    FOR J IN 1 .. 12 LOOP
    SELECT SUM(A.BILL_QTY)
    INTO LV_MONTH_1
    FROM PD_ISSUE A, PH_ISSUE B
    WHERE A.DOC_TYPE IN ('CRI', 'RRI', 'RSI', 'CSI')
    AND A.DOC_NUM = B.DOC_NUM
    AND B.DOC_DATE BETWEEN lv_month(J).start_date and lv_month(J)
    .end_date
    AND A.PART_NUM = LV_CURSOR(i).PART_NUM;
    END LOOP;
    utl_file.put_line(F,
    RPAD('IL', 2, ' ') ||
    RPAD(TO_CHAR(SYSDATE, 'RRRRMMDD'), 8, ' ') ||
    RPAD(LV_CURSOR(I).ENGG_PREFIX, 6, ' ') ||
    RPAD(LV_CURSOR(I).ENGG_BASE, 8, ' ') ||
    RPAD(LV_CURSOR(I).ENGG_SUFFIX, 6, ' ') ||
    LPAD(LV_CURSOR(I).ON_HAND_QTY, 7, 0) ||
    LPAD(NVL(LV_CURR_MONTH, 0), 7, 0) ||
    LPAD(LV_MONTH_1, 7, 0) || LPAD(LV_MONTH_2, 7, 0) ||
    LPAD(LV_MONTH_3, 7, 0) || LPAD(LV_MONTH_4, 7, 0) ||
    LPAD(LV_MONTH_5, 7, 0) || LPAD(LV_MONTH_6, 7, 0) ||
    LPAD(LV_MONTH_7, 7, 0) || LPAD(LV_MONTH_8, 7, 0) ||
    LPAD(LV_MONTH_9, 7, 0) || LPAD(LV_MONTH_10, 7, 0) ||
    LPAD(LV_MONTH_11, 7, 0) ||
    LPAD(LV_MONTH_12, 7, 0));
    IFMAINT.V_REC_CNT := IFMAINT.V_REC_CNT + 1;
    END LOOP;
    end loop;
    CLOSE CR_PART;

  • Commit after every 1000 records

    Hi dears ,
    i have to update or insert arround 1 lakhs records every day incremental basis,
    while doing it , after completing all the records commit happens, In case some problem in between all my processed records are getting rollbacked,
    I need to commit it after every frequency of records say 1000 records.
    Any one know how to do it??
    Thanks in advance
    Regards
    Raja

    Raja,
    There is an option in the configuration of a mapping in which you can set the Commit Frequency. The Commit Frequency only applies to non-bulk mode mappings. Bulk mode mappings commit according the bulk size (which is also an configuration setting of the mapping).
    When you set the Default Operating Mode to row based and Bulk Processing Code to false, Warehouse Builder uses the Commit Frequency parameter when executing the package. Warehouse Builder commits data to the database after processing the number of rows specified in this parameter.
    If you set Bulk Processing Code to true, set the Commit Frequency equal to the Bulk Size. If the two values are different, Bulk Size overrides the commit frequency and Warehouse Builder implicitly performs a commit for every bulk size.
    Regards,
    Ilona

  • SapScript - Output a big letter as "watermark"

    I have a problem with output a big letter as watermark with SapScipt. The letter is much to big. only 2/3 will print. Followig sequence (roh data, is it PCL?) arrive the printer (behind SapScript):
    IN02GROSSBST                                                              
    MT0000000240                                                              
    BCBC_ESC  000000000003                  000 00003                         
    BS%0B                                                                     
    FCHELVE   100  00084XSF101SF011110000056D X                               
    SW00056                                                                 
    ST0618663IN;SP1;SD1,21,2,1,4,780,5,0,6,0,7,4148;SS;PA950,2000;DT*;FT3,15
    ST0215221,45;PW.01;CF2,0;LBM*;                                            
    MT0833800240                                                              
    BCBC_ESC  000000000003                  000 00003                         
    BS%0A                                                                     
    Can everyone declare me the parameters and attributes?
    This characterstring is find in ABAP - report, too.
        z_string_grossb_01(56) VALUE
            'IN;SP1;SD1,21,2,1,4,780,5,0,6,0,7,4148;SS;PA950,2000;',
          z_string_grossb_02(28) VALUE
             'DT*;FT3,15,45;PW.01;CF2,0;LB',
          z_string_grossb_03(02) VALUE
          z_typ_grossbuchstabe(92),
    *&      Form  Sondertyp_Grossbuchstabe
          text
    FORM sondertyp_grossbuchstabe.
    Bei bestimmten Konstellationen der Materialnummer wird ein
    schraffierter Grossbuchstabe über die ganze Seite angedruckt.
      CLEAR z_typ_grossbuchstabe.
      IF caufvd-matnr+11(1) = 'M'.
        CONCATENATE z_string_grossb_01   z_string_grossb_02
                    caufvd-matnr+11(1)   z_string_grossb_03
                    INTO   z_typ_grossbuchstabe.
      ELSE.
        IF caufvd-matnr+6(1) = 'D' OR
           caufvd-matnr+6(1) = 'H' OR
           caufvd-matnr+6(1) = 'S' OR
           caufvd-matnr+6(1) = 'T'.
          CONCATENATE z_string_grossb_01   z_string_grossb_02
                      caufvd-matnr+6(1)    z_string_grossb_03
                      INTO   z_typ_grossbuchstabe.
        ENDIF.
      ENDIF.
    ENDFORM.                    "Sondertyp_Grossbuchstabe
    What I have to do, to minimize the big letter until to fit in page?
    Thanks for support!
    Karl-Heinz Beinemann
    <MOVED BY MODERATOR TO THE CORRECT FORUM>
    Edited by: Alvaro Tejada Galindo on Dec 18, 2008 10:20 AM

    A different approach for printing a watermark would be creating a second main window and uploading an image with the desired watermark sized appropriately.

  • Batch process 1000 images.

    I have a batch of 1000 images that all need to be processed with the exact same levels adjustments and the exact same crop command. I recorded the necssary actions in photoshop, and I can now open up approximately 20 of my images and batch apply the actions to all 20 images automatically. The trouble is that I have 1000 images to process like this, and I can't open all 1000 in photoshop at once; it just kills my machine. I don't want to do the whole 1000 in little batches of 20 either. I'll be getting a new pile of 1000 images to process like this every day or two, so I need a way to do the whole 1000 automatically without user intervention.
    Is such a thing possible?
    I'm a software develoeper by profession, so if doing this sort of massive batch processing requires any command line work or scripting then I would totally be up for that.
    Many thanks,
    -Patrick

    I think the work's already been done for you.
    Check out File - Scripts - Image Processor.  I think it's in that submenu (can't check at this moment, my Photoshop's busy with a 3D render).  If it's not there, look in File - Automate.
    -Noel

  • Premiere Elements 12 output problem

    I am having problems outputting my project. Different errors messages.  One says transcoding error.  Another time it says export error.  Other times it crashes. And then the program won't even open. 
    Any suggestions?
    bwatson9

    Steve,
    First, thank you for your prompt response.  This is the first time I have used Premiere Elements 12.  I don't seem to have a manual for the software.
    The product was bought with my new computer.  I am using windows 8.1 (64-bit) with Intel Core i7-4770 CPU @ 3.40GHz.  I have 12 GB of installed RAM.  I have 1TB hard drive of which this is the first project I done. 
    I have checked to make sure that I am getting all Windows and Microsoft Updates.  I even manually went to Windows Update and installed the optional updates.
    The project is a 20 min. video using mostly photos and 2 small video clips.  The project is saved in its own folder.
    When I go to the timeline in Expert view I do see an orange-yellow line above the timeline.  It runs the whole length of the project.
    I understand from reading the FAQ's that each photo cannot be larger than 1000 x 750 pixels.  I will check that and reduce their size.  Is there anything else that I need to do?
    Where can I find a manual?
    Thanks,
    bwatson9
    Date: Sun, 23 Mar 2014 06:31:03 -0700
    From: [email protected]
    To: [email protected]
    Subject: Premiere Elements 12 output problem
        Re: Premiere Elements 12 output problem
        created by Steve Grisetti in Premiere Elements - View the full discussion
    A lot depends on a lot.
    What operating system are you using? What processor do you have and how much RAM and how much free space is on your hard drive?
    How long is your project? What model of camcorder is your video coming from and what format and resolution is it?
    Have you ensured that your project file is saved to its own folder, with no other project files in this folder?
    When you add your video to your timeline in Expert view, do you see a yellow-orange line above the clips, along the top of the timeline? This indicates a mismatch between project settings and video specs.
    If you are on a Windows computer, have you set up your computer to get both Windows and Microsoft Updates -- and have you manually gone to Windows Update and ensured you have even the optional updates that don't install automatically?
    When did you last run Disk Cleanup and Disk Defragmenter?
         Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at http://forums.adobe.com/message/6234402#6234402
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/6234402#6234402
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/6234402#6234402. In the Actions box on the right, click the Stop Email Notifications link.
               Start a new discussion in Premiere Elements at Adobe Community
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/thread/416458?tstart=0.

  • Free sales order  Problem When Batch split

    Please help the following questions:
    At present free delivery (sales orders types: FD) is applied in our company, but found a strange problem, when the creation of delivery order, if carried out the Batch split, the records will be appear in the VF04, I would like to ask how to avoid this. We require that these delivery notes will not appear in the VF04.
    Notes: IF not carried out the Batch split the records will not be appear in the VF04

    Now  The   problem  is  sloved  , the  reason  is   if we  excute  the batch split  ,the  item category chang from "kln" to  ''tan'',
    the  tan  item category  determine that  the record  appear  in vfo4, after we  configed  "delivery  item  determine ",now  it is ok,
    the  record  will not appear  in vf04  .  thanks all  the same.

  • Dynamic Parameter only showing 1000 records when Crystal report is run.

    I have created a crystal report using ODBC access to a table that has 3000 records.  I created a dynamic parameter to pull a list of all the Customer ID's in a customer table and the parameter will only show the 1st 1000 records.  In addition I cannot type in the customer ID that I would like.  Version of Crystal - Crystal 11.

    Oh, darn. So sorry. Looks like I hyperlinked the wrong URL (You'd think I got that down by now...). Anyhow here is the correct link:
    1218588 - How to increase the number of values in a dynamic parameter list in Crystal Reports?
    And in case the link does not work, or I goofed again, here is a copy of the resolution:
    Resolution
    CAUTION
    The following resolution involves editing the registry. Using the Registry Editor incorrectly can cause serious problems that may require you to reinstall the Microsoft Windows operating system. Use the Registry Editor at your own risk. For information on how to edit the registry key, view the 'Changing Keys and Values' online Help topic in the Registry Editor (Regedit.exe). It is strongly recommended that you make a backup copy of the registry files before you edit the registry.
    To increase the maximum number of values available in a dynamic parameter list of values, set the registry key: MaxRowsetRecords, to a value greater than 1,000.
    Open the Microsoft Registry Editor, and navigate to the path corresponding to the version of Crystal Reports used:
    Crystal Reports XI:
    -  HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.0\Crystal Reports\DatabaseOptions\LOV
    Crystal Reports XI R2:
    -  HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.5\Crystal Reports\DatabaseOptions\LOV
    Crystal Reports 2008:
    -  HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\Crystal Reports\DatabaseOptions\LOV
    Crystal Reports 2011:
    -  HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions\LOV
    Crystal Reports 2013:
    -  HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions\LOV
    Crystal Reports for Visual Studio 2010:
    -  HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\DatabaseOptions\LOV
    NOTES:
    -  Add the key: LOV, if it is not present.
    -  For 64 bit version of Microsoft Windows, the registry path will be slightly different, it will start with:
          HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\...
       But the rest of the registry path is the same.
    Add the String value: MaxRowsetRecords
    Set the value of: MaxRowsetRecords to the maximum number of values to display in the List of Values.
    For example, a value of 2000 will return up to 2000 values in the lowest level of a dynamic cascading parameter.
    IMPRTANT NOTES:
    - The higher the number of values is, the longer it will take the see the dynamic parameter prompt screen. In brief, it impact the performance.
    - The value 0 (Unlimited) will not work with BusinessObjects Enterprise XI or Crystal Reports Server XI, you must specify another value.
    After making changes to the registry, close and reopen Crystal Reports, or restart the Crystal Reports services for the BusinessObjects platforms.
    - Ludek

  • To create a table control in se51 to display 1000 records from ITAB toscr

    Hi Sapall.
    here i have got a requirement just to display the records from itab to table created in se51.
    can any body help me in this.
    regards.
    Vrma.

    Hi,
    There is no problem with 1000 records you can use table control.
    please follow this link to get idea about the table control.
    saptechnical dot com/Tutorials/ABAP/TableControl/Demo.htm
    Regards
    Bikas

  • Graphic output problems in most programs - triangles ...

    - often at scrolling in the Finder
    - it appears spontaniously and dissappers/flicker if mouse is moving ...
    - in some programs it is permanent for example 3D Coat
    - different often and strong in different programs - in some there is no problem (5% - for example ZBrush)
    - Mountain Lion does not fix it - only some changes - for example Quicktime (not Fullscreen) a big triangle in the down left
    - little greeen/red pionts, like defect Pixels, in little groups are appearing too! - Photoshop, Final Cut Video Output...

    A screenshot give you a copy of what is actually sitting in the screen buffer.
    So this is not an "output" problem. That stuff has been messed up in the screen buffer.
    to draw the mouse cursor, the area around the pointer must be re-constructed. That is why moving the mouse cursor seems to "repair" it.

  • Macbook mini DVI to DVI output problems

    hi
    I've been using a samsung syncmaster 22" with my macbook for about a year now with no problems using the mini DVI to DVI connection
    then earlier this week i used a different DVI cable to plug my playstation 3 into the screen, when i plugged the computer DVI cable back into the screen lots of red/pink pixels have taken over the screen and when the desk is nudged red lines flash up
    i thought it might be either the DVI cable or the mini DVI to DVI adapter and replaced both to no avail, i have also tested all the cables on other screens/with other computers, and tested the screen with my playstation. Screen and cables all work fine so i think it must be some kind of output problem, but cant work out what it could be seeing as nothing would have happened to the port on the actual computer whilst changing connections on the samsung screen
    sorry for the long winded post, really wanna know what the problem is here

    Hi cbeth,
    welcome to macbook forum.
    For your friend macbook, try to press F7 back and forth to switch between mirror and expanded mode.
    Try to update your macbook hardware firmware and software using software updater and repair permission after that...application/utilities/disk utility/repair permission.
    Also reset your PRAM and PMU.
    Open your friend system preference / display and try to compare and set yours similar to hers, including resolution, color depth, refresh rate.
    Good Luck.

Maybe you are looking for

  • Calendar sharing color issue

    This is an issue that is strange.  It just doesn't make any sense. I have Droid X running 2.3.  I am running Google Calendar with shared Calendar. In the Month view, every calendar event is represented in the color blue. In the Weekly view, every cal

  • Replacing w530 US keyboard with UK one

    I have bought a w530 in the US and wish to replace the keyboard with a proper UK one. The original US one was not backlit - can I just replace with a UK backlit one? Is the backlighting built into the keyboard? Does it matter which I buy of these two

  • Image details lost when save as TIF

    How do you keep all the image details of an image file when you save it as a TIF? I lose half of mine.

  • Edge Commons - Interactive Svg Map

    Hi folks! I've watched the extraordinary video tutorial of the very talented guys from EdgeDocks (http://edgedocks.com) about how to build an Interactive Svg Graphic with Adobe Illustrator and Adobe Edge Animate: http://www.youtube.com/watch?v=4UEB6g

  • Mail is very slow

    Maybe this has been addressed before and someone can point me to the thread, but here is my problem. Downloading mail is VERY VERY slow (just about unusable). I have tried MANY options (IMAP,POP, Mac Mail, Entourage). I have tried different mail serv