How to show Session Error Records to End Users

Hi all,
I had to populate data using SESSION Method...
I have 1000 records, out of which 750 records where updated correctly but i got 250 error records in it.
i know that error records are stored in Error log/ INCORRECT SESSION in SM35.
Now i want to modify these errounous records and repopulate them.
Questions.
1) We click on ANALYSE in SM35 to determine which sreen and value produced the error. if we have small data we can correct them interactively there only. But for 250 records how we have to correct them and upload 250 errors records.
2) Can we download those error records into a flatfile.
3) Is there any other method to handle such situation.
Regards
Surendar

Vijay,
I got your piece of code.... Its looking really good.
Here my point is once that first validation is done i am doing exit. That means total  process stopped and cotrol comes out of the program. so how can this
IF W_FLAG_ERROR = X. DISPLAY THE ERROR MESSAGE to the user
will be executed ...............
and
bu writing it on the report list or just do LEAVE-LIST PROCESSING and come back to the selection screen. ESLE. CONTINUE PROCESSING ENDIF.
I didn't fallow what u said here can u explain bit clearly plzzzzzz
Nisha....

Similar Messages

  • In call transaction how can we handle error records.

    hai..tellme how can we handle error records in call transaction..we can get error records into one flatfile ok...then we have to execute the same bdc program with dat flat file (error records) once again...is it wright ..

    Hi,
    check this program u will get idea
    seee this prog. its will help u .
    copy and run this prog.
    TYPES : BEGIN OF t_disp ,
    vendorno(9),
    compcc(13),
    purchorg(14),
    accgroup(15),
    title(7),
    name(5),
    country(8),
    ordcurr(14),
    END OF t_disp.
    TYPES : BEGIN OF t_err,
    msgtyp LIKE bdcmsgcoll-msgtyp,
    l_mstring(250),
    END OF t_err.
    DATA: i_disp TYPE STANDARD TABLE OF t_disp,
    wa_disp TYPE t_disp,
    i_err TYPE STANDARD TABLE OF t_err,
    wa_err TYPE t_err.
    data definition
    Batchinputdata of single transaction
    DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    messages of call transaction
    DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
    error session opened (' ' or 'X')
    DATA: e_group_opened.
    message texts
    TABLES: t100.
    PARAMETER : p_file1 LIKE ibipparms-path,
    p_cmode LIKE ctu_params-dismode DEFAULT 'N'.
    "A: show all dynpros
    "E: show dynpro on error only
    "N: do not display dynpro
    *selction screen.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
    program_name = syst-cprog
    dynpro_number = syst-dynnr
    IMPORTING
    file_name = p_file1.
    AT SELECTION-SCREEN ON p_file1.
    IF p_file1 IS INITIAL.
    MESSAGE 'FILE IS NOT FOUND' TYPE 'E'.
    ENDIF.
    START-OF-SELECTION.
    PERFORM f_disp_file1.
    END-OF-SELECTION.
    PERFORM f_disp_errs.
    *& Form F_DISP_FILE1
    text
    --> p1 text
    <-- p2 text
    FORM f_disp_file1 .
    DATA: l_filename1 TYPE string.
    MOVE p_file1 TO l_filename1.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = l_filename1
    filetype = 'ASC'
    has_field_separator = 'X'
    HEADER_LENGTH = 0
    READ_BY_LINE = 'X'
    DAT_MODE = ' '
    CODEPAGE = ' '
    IGNORE_CERR = ABAP_TRUE
    REPLACEMENT = '#'
    CHECK_BOM = ' '
    IMPORTING
    FILELENGTH =
    HEADER =
    TABLES
    data_tab = i_disp
    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 ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    *? prepare BDC data
    DELETE i_disp INDEX 1.
    LOOP AT i_disp INTO wa_disp .
    PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'RF02K-KTOKK'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_field USING 'RF02K-LIFNR'
    wa_disp-vendorno.
    'ztest_1'.
    PERFORM bdc_field USING 'RF02K-BUKRS'
    wa_disp-compcc.
    '0001'.
    PERFORM bdc_field USING 'RF02K-EKORG'
    wa_disp-purchorg.
    '0001'.
    PERFORM bdc_field USING 'RF02K-KTOKK'
    wa_disp-accgroup.
    '0001'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFA1-SPRAS'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_field USING 'LFA1-ANRED'
    wa_disp-title.
    'Mr.'.
    PERFORM bdc_field USING 'LFA1-NAME1'
    wa_disp-name.
    'test name'.
    PERFORM bdc_field USING 'LFA1-SORTL'
    'TEST NAME'.
    PERFORM bdc_field USING 'LFA1-LAND1'
    wa_disp-country.
    'in'.
    PERFORM bdc_field USING 'LFA1-SPRAS'
    'en'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFA1-KUNNR'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFBK-BANKS(01)'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB1-AKONT'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB1-ZTERM'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB5-MAHNA'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFM1-WAERS'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=UPDA'.
    PERFORM bdc_field USING 'LFM1-WAERS'
    wa_disp-ordcurr.
    'inr'.
    PERFORM bdc_transaction USING 'XK01'.
    WRITE:/ WA_DISP-VendorNo,
    WA_DISP-COMPCC,
    WA_DISP-PURCHORG,
    WA_DISP-ACCGROUP,
    WA_DISP-title,
    WA_DISP-name,
    WA_DISP-country,
    WA_DISP-ORDCURR.
    CLEAR: wa_disp.
    REFRESH bdcdata.
    ENDLOOP.
    ENDFORM. " F_DISP_FILE1
    Start new screen *
    FORM bdc_dynpro USING program dynpro.
    CLEAR bdcdata.
    bdcdata-program = program.
    bdcdata-dynpro = dynpro.
    bdcdata-dynbegin = 'X'.
    APPEND bdcdata.
    ENDFORM. "BDC_DYNPRO
    Insert field *
    FORM bdc_field USING fnam fval.
    IF FVAL NODATA.
    CLEAR bdcdata.
    bdcdata-fnam = fnam.
    bdcdata-fval = fval.
    APPEND bdcdata.
    ENDIF.
    ENDFORM. "BDC_FIELD
    *& Form bdc_transaction
    text
    -->P_0322 text
    FORM bdc_transaction USING tcode.
    DATA: l_mstring(480),
    l_subrc LIKE sy-subrc.
    REFRESH messtab.
    CALL TRANSACTION tcode USING bdcdata
    MODE p_cmode
    UPDATE 'L'
    MESSAGES INTO messtab.
    l_subrc = sy-subrc.
    IF SMALLLOG 'X'.
    WRITE: / 'CALL_TRANSACTION',
    TCODE,
    'returncode:'(I05),
    L_SUBRC,
    'RECORD:',
    SY-INDEX.
    LOOP AT messtab.
    SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
    AND arbgb = messtab-msgid
    AND msgnr = messtab-msgnr.
    IF sy-subrc = 0.
    l_mstring = t100-text.
    IF l_mstring CS '&1'.
    REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
    REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
    REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
    REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
    ELSE.
    REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
    REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
    REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
    REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
    ENDIF.
    CONDENSE l_mstring.
    WRITE: / messtab-msgtyp, l_mstring(250).
    *? Send this errors to err internal table
    wa_err-msgtyp = messtab-msgtyp.
    wa_err-l_mstring = l_mstring.
    APPEND wa_err TO i_err.
    ELSE.
    WRITE: / messtab.
    ENDIF.
    CLEAR: messtab, wa_err.
    ENDLOOP.
    SKIP.
    ENDIF.
    ENDFORM. " bdc_transaction
    *& Form f_disp_errs
    text
    --> p1 text
    <-- p2 text
    FORM f_disp_errs .
    SORT i_err BY msgtyp.
    LOOP AT i_err INTO wa_err.
    AT FIRST.
    WRITE : / text-002.
    ULINE.
    ENDAT.
    AT NEW msgtyp.
    IF wa_err-msgtyp = 'S'.
    WRITE : / text-003.
    ULINE.
    ELSEIF wa_err-msgtyp = 'E'.
    WRITE : / text-001.
    ULINE.
    ENDIF.
    ENDAT.
    WRITE : / wa_err-msgtyp, wa_err-l_mstring.
    CLEAR wa_err.
    ENDLOOP.
    ENDFORM. " f_disp_errs
    Regards

  • How to show custom error message in WebADI Excel template?

    Hi,
    I've  created a custom Web ADI integrator and associated it with a 'Procedure' based custom interface.
    WebADI Interface API Returns is set to  "Error Message".
    I'm using  raise_application_error(-20001, "Actual Error Message") for invalid rows,but custom error message from PL/SQL  is not populated on the excel template.
    Instead it is showing "SQL exception occurred during PL/SQL upload".
    Am I missing anything? How to show custom error message from Pl/SQL procedure to WebADI Excel template?
    TIA
    Narasimha

    The custom API errors are visible in the BNE log but not on the Excel.
    BNE Log=>
    12/10/13 2:52 PM Web ADI Upload Job 13008 ERROR          BnePLSQLUpload.doUpload: Exception while uploading to PL/SQL API.  Error Code: 20001, Message: ORA-20001: -Please enter CONTAINER_ID -  Enter PO_NO -
    ORA-06512: at "APPS.XXPO_COSTFACTS_WEBADI_PKG", line 264
    ORA-06512: at line 1
    12/10/13 2:52 PM Web ADI Upload Job 13008 ERROR          BnePLSQLUpload.doUpload: Stack trace: java.sql.SQLException: ORA-20001: -Please enter CONTAINER_ID -  Enter PO_NO -
    ORA-06512: at "APPS.XXPO_COSTFACTS_WEBADI_PKG", line 264
    ORA-06512: at line 1
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
      at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
      at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
      at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
      at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
      at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:202)
      at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1005)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
      at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
      at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3550)
      at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4710)
      at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
      at oracle.apps.bne.integrator.upload.BnePLSQLUpload.doUpload(BnePLSQLUpload.java:284)
      at oracle.apps.bne.integrator.upload.BneSAXUploader.processDeepestLevel(BneSAXUploader.java:2346)
      at oracle.apps.bne.integrator.upload.BneSAXUploader.startElement(BneSAXUploader.java:1182)
      at oracle.xml.parser.v2.XMLContentHandler.startElement(XMLContentHandler.java:181)
      at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1288)
      at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
      at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
      at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:234)
      at oracle.apps.bne.integrator.upload.BneUploader.processUpload(BneUploader.java:301)
      at oracle.apps.bne.integrator.upload.BneAbstractUploader.processUpload(BneAbstractUploader.java:114)
      at oracle.apps.bne.integrator.upload.async.BneAsyncUploadThread.run(BneAsyncUploadThread.java:140)
    12/10/13 2:52 PM AJPRequestHandler-HTTPThreadGroup-5 WARNING        BneOracleWebAppsContext.getTimeZone CLIENT_TIMEZONE_ID has not been set
    12/10/13 2:52 PM AJPRequestHandler-HTTPThreadGroup-5 ERROR          BneOracleWebAppsContext.getExtraJDBCConnection recieved the same connection as the base connection.  There may be transaction problems.
    How to show the same error in the excel template?
    Here is the package:
    CREATE OR REPLACE PACKAGE BODY APPS.XXPO_COSTFACTS_WEBADI_PKG
    AS
       PROCEDURE upload_data (
                              P_CONTAINER_ID IN VARCHAR2
                            , P_SAIL_DATE IN DATE
                            , P_PO_NO IN VARCHAR2                     
                             ) IS
        --declare
        lv_err_msg      VARCHAR2(240);
        lf_err_flag     NUMBER := 0;
        ln_temp         NUMBER;
        BEGIN
        --------------------- checking for mandatory parameters---------------------------
          IF (P_CONTAINER_ID IS NULL) THEN
             lf_err_flag := 1;
             lv_err_msg := lv_err_msg||'-'||'Please enter CONTAINER_ID - ';
          END IF;
          -------------Validation for Sail Date Format----------------------
          IF (P_SAIL_DATE IS NULL) THEN
             lf_err_flag := 1;
             lv_err_msg := lv_err_msg || ' ' || 'Enter Sail Date - ';
          ELSE
             BEGIN
                SELECT 1
                  INTO ln_temp
                  FROM DUAL
                 WHERE P_SAIL_DATE =  TO_DATE (TO_CHAR (P_SAIL_DATE, 'DD-MON-YYYY'), 'DD-MM-YYYY');
             EXCEPTION
                WHEN NO_DATA_FOUND THEN
                   lf_err_flag := 1;
                   lv_err_msg := lv_err_msg || ' Enter Sail date in DD-MON-YYYY Format';
                WHEN OTHERS THEN
                   lf_err_flag := 1;
                   lv_err_msg := lv_err_msg || ' Enter Sail date in DD-MON-YYYY Format'|| SQLERRM;
             END;
          END IF;
          -------------Validation for PO_Number----------------------
          IF (P_PO_NO IS NULL) THEN
             lf_err_flag := 1;
             lv_err_msg := lv_err_msg || ' ' || 'Enter PO_NO - ';
          ELSE
             BEGIN
                SELECT count(1)
                  INTO ln_temp
                  FROM PO_HEADERS
                 WHERE Attribute4 =  P_PO_NO;
             EXCEPTION
                WHEN NO_DATA_FOUND THEN
                   lf_err_flag := 1;
                   lv_err_msg := lv_err_msg || ' No Oracle PO for Biceps PO#'||P_PO_NO;
                WHEN OTHERS THEN
                   lf_err_flag := 1;
                   lv_err_msg := lv_err_msg || ' Error getting the Oracle PO for Bicpes PO#'||P_PO_NO||' Error-' || SQLERRM;
             END;
          END IF;
         -----------------------Insert Record----------------------------
         IF lv_err_msg is NULL THEN
         BEGIN
             INSERT
              INTO XXP2P_HW_COST_FACTORS_STG
                     CONTAINER_ID
                    ,SAIL_DATE
                    ,PO_NO
                    , ERROR_FLAG
                    , ERROR_MSG
                   ,CREATED_BY
                    ,CREATION_DATE
                    ,LAST_UPDATED_BY
                    ,LAST_UPDATE_DATE
                    ,LAST_UPDATE_LOGIN              
                VALUES
                     P_CONTAINER_ID
                    ,P_SAIL_DATE
                    ,P_PO_NO              
                    ,lf_err_flag
                    ,lv_err_msg
                  ,FND_GLOBAL.USER_ID
                    , trunc (sysdate)
                    ,FND_GLOBAL.USER_ID
                    , trunc (sysdate)
                    ,FND_GLOBAL.LOGIN_ID              
                  --  commit;
                  DBMS_OUTPUT.put_line
                    '-' || 'After ap_invoices_interface'
            EXCEPTION
            WHEN OTHERS THEN
              ROLLBACK;
              lf_err_flag := 1;
              lv_err_msg  := lv_err_msg || ' ' || 'error loading CONTAINER_ID-' || P_CONTAINER_ID || SQLERRM;
              raise_application_error(-20001, lv_err_msg);
            END;
        ELSE
              raise_application_error(-20001, lv_err_msg);
        END IF;
      END upload_data;                        
    END XXPO_COSTFACTS_WEBADI_PKG;

  • How to remove save, cancel option when end user runs the workbook in Portal

    Hi,
    how to remove save, cancel option when end user runs the workbook and make some small changes like using page items or increasing rows and columns
    I already made 2 changes
    1) I removed the option in Oracle Enterprise Manager under discoverer viewer of saving
    2) I also removed the option of Allow saving changes made in Viewer when adding workbook to portal
    But still the end user gets options of saving when made small changes to workbook like increasing rows and columns
    Is their any place, I need to make changes?
    Thanks in Advance
    Rowdheer

    Don't use JSP to serve a binary file. It almost implies the use of awful scriptlets and the invocation of both the response writer and the response outputstream which would only lead to IllegalStateException headaches in the server logs.
    Use a Servlet instead. Specify the file name as request parameter and let the servlet read the file and write it to the outputstream of the response.

  • How to show different Look & Feel to different users?

    Hi,
    how to show different Look & Feel to different users?
    Thanks & Regards,
    Venu--

    If you want the user to select then LookAndFeel then Visitor Tools.
    If you want to use code and dynamically change it then http://download.oracle.com/docs/cd/E13155_01/wlp/docs103/javadoc/index.html?com/bea/netuix/laf/PortalLookAndFeel.html
    if you have only a few combinations then you could even create different desktops and direct the user to the appropriate url

  • How many workbooks have been visited by end users per day

    Hi SDN's,
    How many workbooks have been visited by end user per day.Is there any process to knew... Do we have any T-Codes to knew...
    Thanks & Regardz,
    Aluri

    nope... unless you're in 7.0
    the statistics before 7.0 only check queries... workaround would be to have a report on BW statistics filtering on the queries that are in your workbooks... that might give you an "idea", but if there people who run those queries outside of the workbook, it will "affect" your "statistics"

  • How to Customize the Error Message when a user enters a wrong password

    Hi Gurus
    Pls Help out me that
    How to Customize the Error Message when a user enters a  wrong password ?
    I need the Help to Customize the messege ?
    How  we can do
    Pls Tell me indetail

    Firstly many appologies I have given you slightly duff information here, I had been editing the file above for email notification texts not logon / password texts.
    The file you need is actually a portal .par file and can be found in the deployment/pcd directory.  The file you need is called com.sap.portal.runtime.logon.par (with a .bak extension at this time). 
    You need to copy this file to a local machine and unzip the contents.  The files you need to edit are contained in a further jar file which can be found in the \PORTAL-INF\lib directory - it is called umelogonbase.jar.  It too needs to be extracted and the file you need to edit is logonMessages_xx.properties (where the xx is the language code you are using).
    In this file you will find lines like:
    NUMERIC_REQUIRED=Invalid new password (must contain digits)
    You need to identify which texts you wish to modify and edit the text to the right of the equals sign.  Once complete rezip the umelogonbase.jar file and then the com.sap.portal.runtime.logon.par (this time name it without the .bak extension.  Then logon to the portal and upload the new par and you should see your new logon messages.
    Haydn

  • How many workbooks have been visited by end user per day

    <i><b>  Hi SDN's,</b></i>
    How many workbooks have been visited by end user per day.Is there any process to knew...
    <i><b>Thanks & Regardz,
    Aluri</b></i>

    Hi Aluri,
    Statistics are usually not available on workbooks. You can find out how many time a user calls up a particular query (which can be accessed by various workbooks). Because workbooks themseleves do not call up data from the infoproviders.
    You can tell how many times a user has accessed a query by looking at the Statistical queries and objects. Try the following two there is a list of other queries in help that you can go through also:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/68/84353cf261303de10000000a11402f/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/68/84353cf261303de10000000a11402f/frameset.htm

  • How to print the error records and success records in bdc

    how to print the number of error records and success records in bdc

    hai,
    plz refer this program,
    Z_130399130271_A
    REPORT Z_130399130271_A
           NO STANDARD PAGE HEADING LINE-SIZE 325.
    *INCLUDE YVALIDATE.
    *include bdcrecx1.
    INCLUDE YINCLUDE399.
    DATA ITAB LIKE TABLE OF FILE_TABLE WITH HEADER LINE.
    PARAMETERS: DATASET(132) LOWER CASE.
    DATA : RC TYPE I,
    ERR(40) TYPE C,
    SUCCESSCNT TYPE I VALUE 0,
    FAILCOUNT TYPE I VALUE 0.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
      If it is nessesary to change the data section use the rules:
      1.) Each definition of a field exists of two lines
      2.) The first line shows exactly the comment
          '* data element: ' followed with the data element
          which describes the field.
          If you don't have a data element use the
          comment without a data element name
      3.) The second line shows the fieldname of the
          structure, the fieldname must consist of
          a fieldname and optional the character '_' and
          three numbers and the field length in brackets
      4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE  ***
    DATA: BEGIN OF RECORD OCCURS 0,
    data element: LIF16
            LIFNR_001(016),
    data element: KTOKK
            KTOKK_002(004),
    data element: ANRED
            ANRED_003(015),
    data element: NAME1_GP
            NAME1_004(035),
    data element: SORTL
            SORTL_005(010),
    data element: STRAS_GP
            STRAS_006(035),
    data element: PFACH
            PFACH_007(010),
    data element: ORT01_GP
            ORT01_008(035),
    data element: ORT02_GP
            ORT02_009(035),
    data element: LAND1_GP
            LAND1_010(003),
    data element: REGIO
            REGIO_011(003),
    data element: SPRAS
            SPRAS_012(002),
    data element: TELF1
            TELF1_013(016),
    data element: TELF2
            TELF2_014(016),
    data element: BANKS
            BANKS_01_015(003),
    data element: BANKK
            BANKL_01_016(015),
    data element: BANKN
            BANKN_01_017(018),
          END OF RECORD.
    DATA:   BEGIN OF ERRORITAB OCCURS 0,
            LIFNR_001 LIKE LFA1-LIFNR,
            KTOKK_002 LIKE LFA1-KTOKK,
            ANRED_003 LIKE LFA1-ANRED,
            NAME1_004 LIKE LFA1-NAME1,
            SORTL_005 LIKE LFA1-SORTL,
            STRAS_006 LIKE LFA1-STRAS,
            PFACH_007 LIKE LFA1-PFACH,
            ORT01_008 LIKE LFA1-ORT01,
            ORT02_009 LIKE LFA1-ORT02,
            LAND1_010 LIKE LFA1-LAND1,
            REGIO_011 LIKE LFA1-REGIO,
            SPRAS_012 LIKE LFA1-SPRAS,
            TELF1_013 LIKE LFA1-TELF1,
            TELF2_014 LIKE LFA1-TELF2,
            BANKS_01_015 LIKE LFBK-BANKS,
            BANKL_01_016 LIKE LFBK-BANKL,
            BANKN_01_017 LIKE LFBK-BANKN,
            ERRORMSG(60) TYPE C,
            SERIAL TYPE I VALUE '1',
        END OF ERRORITAB.
    End generated data section ***
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR DATASET.
      CALL FUNCTION 'TMP_GUI_FILE_OPEN_DIALOG'
    EXPORTING
        WINDOW_TITLE            = 'select a file '
        DEFAULT_EXTENSION       = 'TXT'
        DEFAULT_FILENAME        = 'ASSIGN5.TXT'
      FILE_FILTER             =
      INIT_DIRECTORY          =
      MULTISELECTION          =
    IMPORTING
      RC                      =
        TABLES
          FILE_TABLE              = ITAB
    EXCEPTIONS
       CNTL_ERROR              = 1
       OTHERS                  = 2
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      READ TABLE ITAB INDEX 1.
      DATASET = ITAB-FILENAME.
      WRITE DATASET.
    START-OF-SELECTION.
    *perform open_dataset using dataset.
    *perform open_group.
      DATA T TYPE STRING.
      T = DATASET.
      IF T EQ ' '.
        MESSAGE E110(ZX).
      ENDIF.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                      = T
      FILETYPE                      = 'ASC'
          HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          DATA_TAB                      = RECORD
    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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      LOOP AT RECORD.
        CLEAR RC.
        CLEAR ERR.
    *read dataset dataset into record.
        IF SY-SUBRC <> 0. EXIT. ENDIF.
        RECORD-KTOKK_002 = '0001'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0100'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RF02K-KTOKK'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RF02K-LIFNR'
                                      RECORD-LIFNR_001.
        PERFORM BDC_FIELD       USING 'RF02K-KTOKK'
                                      RECORD-KTOKK_002.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0110'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFA1-TELX1'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'LFA1-ANRED'
                                      RECORD-ANRED_003.
        PERFORM BDC_FIELD       USING 'LFA1-NAME1'
                                      RECORD-NAME1_004.
        PERFORM BDC_FIELD       USING 'LFA1-SORTL'
                                      RECORD-SORTL_005.
        PERFORM BDC_FIELD       USING 'LFA1-STRAS'
                                      RECORD-STRAS_006.
        PERFORM BDC_FIELD       USING 'LFA1-PFACH'
                                      RECORD-PFACH_007.
        PERFORM BDC_FIELD       USING 'LFA1-ORT01'
                                      RECORD-ORT01_008.
        PERFORM BDC_FIELD       USING 'LFA1-ORT02'
                                      RECORD-ORT02_009.
        PERFORM BDC_FIELD       USING 'LFA1-LAND1'
                                      RECORD-LAND1_010.
        PERFORM BDC_FIELD       USING 'LFA1-REGIO'
                                      RECORD-REGIO_011.
        PERFORM BDC_FIELD       USING 'LFA1-SPRAS'
                                      RECORD-SPRAS_012.
        PERFORM BDC_FIELD       USING 'LFA1-TELF1'
                                      RECORD-TELF1_013.
        PERFORM BDC_FIELD       USING 'LFA1-TELF2'
                                      RECORD-TELF2_014.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0120'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFA1-KUNNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=VW'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFBK-BANKN(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_FIELD       USING 'LFBK-BANKS(01)'
                                      RECORD-BANKS_01_015.
        PERFORM BDC_FIELD       USING 'LFBK-BANKL(01)'
                                      RECORD-BANKL_01_016.
        PERFORM BDC_FIELD       USING 'LFBK-BANKN(01)'
                                      RECORD-BANKN_01_017.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFBK-BANKS(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=UPDA'.
        PERFORM BDC_TRANSACTION USING 'XK01' CHANGING ERR RC.
        DATA: SERIAL TYPE I VALUE 1.
        IF RC <> 0.
          FAILCOUNT = FAILCOUNT + 1.
          CLEAR ERRORITAB.
          ERRORITAB-SERIAL = SERIAL.
          ERRORITAB-LIFNR_001 = RECORD-LIFNR_001.
          ERRORITAB-KTOKK_002 = RECORD-KTOKK_002.
          ERRORITAB-ANRED_003 = RECORD-ANRED_003.
          ERRORITAB-NAME1_004 = RECORD-NAME1_004.
          ERRORITAB-SORTL_005 = RECORD-SORTL_005.
          ERRORITAB-STRAS_006 = RECORD-STRAS_006.
          ERRORITAB-PFACH_007 = RECORD-PFACH_007.
          ERRORITAB-ORT01_008 = RECORD-ORT01_008.
          ERRORITAB-ORT02_009 = RECORD-ORT02_009.
          ERRORITAB-LAND1_010 = RECORD-LAND1_010.
          ERRORITAB-REGIO_011 = RECORD-REGIO_011.
          ERRORITAB-SPRAS_012 = RECORD-SPRAS_012.
          ERRORITAB-TELF1_013 = RECORD-TELF1_013.
          ERRORITAB-TELF2_014 = RECORD-TELF2_014.
          ERRORITAB-BANKS_01_015 = RECORD-BANKS_01_015.
          ERRORITAB-BANKL_01_016 = RECORD-BANKL_01_016.
          ERRORITAB-BANKN_01_017 = RECORD-BANKN_01_017.
          ERRORITAB-ERRORMSG = ERR.
          SERIAL = SERIAL + 1.
          APPEND ERRORITAB.
          MODIFY RECORD TRANSPORTING KTOKK_002.
          DELETE RECORD WHERE KTOKK_002 = '0001'.
        ELSE.
          SUCCESSCNT = SUCCESSCNT + 1.
        ENDIF.
      ENDLOOP.
    display output********************************************************
      SKIP.
      FORMAT COLOR 5 INTENSIFIED OFF.
      WRITE:/ 'No. of records successfully uploaded: '.
      FORMAT COLOR 4 INTENSIFIED OFF.
      WRITE: SUCCESSCNT.
    Displaying the success table******************************************
      IF SUCCESSCNT <> 0.
        SKIP.
        FORMAT COLOR 4 INTENSIFIED OFF.
        WRITE:/ 'Successful Records'.
        FORMAT COLOR 7 INTENSIFIED ON.
        WRITE:/(261) SY-ULINE,
              / SY-VLINE,
                'S.NO',                               007 SY-VLINE,
                'VENDOR ACC.NUM',                     023 SY-VLINE,
                'VENDOR ACC GROUP',                   041 SY-VLINE,
                'TITLE',                              048 SY-VLINE,
                'VENDOR NAME',                        064 SY-VLINE,
                'SORT FIELD',                         076 SY-VLINE,
                'HOUSE NO.& STREET',                  101 SY-VLINE,
                'PO.BOX NO',                          116 SY-VLINE,
                'CITY',                               129 SY-VLINE,
                'DISTRICT',                           141 SY-VLINE,
                'COUNTRY KEY',                        156 SY-VLINE,
                'REGION',                             166 SY-VLINE,
                'LANGUAGE KEY',                       180 SY-VLINE,
                'TELEPHONE NO 1',                     196 SY-VLINE,
                'TELEPHONE NO 2',                     213 SY-VLINE,
                'BANK COUNTRY KEY',                   231 SY-VLINE,
                'BANK KEY',                           241 SY-VLINE,
                'BANK ACC.NO',                        261 SY-VLINE,
                /1(261) SY-ULINE.
        FORMAT COLOR 4 INTENSIFIED ON.
        SERIAL = 1.
       SORT RECORD BY LIFNR_001.
        LOOP AT RECORD.
          WRITE:/ SY-VLINE,
          SERIAL LEFT-JUSTIFIED,          007 SY-VLINE,
          RECORD-LIFNR_001(016),          023 SY-VLINE,
          RECORD-KTOKK_002(004),          041 SY-VLINE,
          RECORD-ANRED_003(015),          048 SY-VLINE,
          RECORD-NAME1_004(035),          064 SY-VLINE,
          RECORD-SORTL_005(010),          076 SY-VLINE,
          RECORD-STRAS_006(035),          101 SY-VLINE,
          RECORD-PFACH_007(010),          116 SY-VLINE,
          RECORD-ORT01_008(035),          129 SY-VLINE,
          RECORD-ORT02_009(035),          141 SY-VLINE,
          RECORD-LAND1_010(003),          156 SY-VLINE,
          RECORD-REGIO_011(003),          166 SY-VLINE,
          RECORD-SPRAS_012(002),          180 SY-VLINE,
          RECORD-TELF1_013(016),          196 SY-VLINE,
          RECORD-TELF2_014(016),          213 SY-VLINE,
          RECORD-BANKS_01_015(003),       231 SY-VLINE,
          RECORD-BANKL_01_016(015),       241 SY-VLINE,
          RECORD-BANKN_01_017(018),       261 SY-VLINE.
          WRITE:/(261) SY-ULINE.
          SERIAL = SERIAL + 1.
        ENDLOOP.
        WRITE:/1(261) SY-ULINE.
      ENDIF.
      SKIP.
      FORMAT COLOR 5 INTENSIFIED OFF.
      WRITE:/ 'No. of records not uploaded: '.
      FORMAT COLOR 4 INTENSIFIED OFF.
      WRITE: FAILCOUNT.
    *Displaying the error table
      IF FAILCOUNT <> 0.
        SKIP.
        FORMAT COLOR 4 INTENSIFIED OFF.
        WRITE:/(320) SY-ULINE,
                'Error Records'.
        FORMAT COLOR 7 INTENSIFIED ON.
        WRITE:/ SY-ULINE, SY-VLINE,
                'S.NO',                               007 SY-VLINE,
                'VENDOR ACC.NUM',                     023 SY-VLINE,
                'VENDOR ACC GROUP',                   041 SY-VLINE,
                'TITLE',                              048 SY-VLINE,
                'VENDOR NAME',                        064 SY-VLINE,
                'SORT FIELD',                         076 SY-VLINE,
                'HOUSE NO.& STREET',                  101 SY-VLINE,
                'PO.BOX NO',                          116 SY-VLINE,
                'CITY',                               129 SY-VLINE,
                'DISTRICT',                           141 SY-VLINE,
                'COUNTRY KEY',                        156 SY-VLINE,
                'REGION',                             166 SY-VLINE,
                'LANGUAGE KEY',                       180 SY-VLINE,
                'TELEPHONE NO 1',                     196 SY-VLINE,
                'TELEPHONE NO 2',                     213 SY-VLINE,
                'BANK COUNTRY KEY',                   231 SY-VLINE,
                'BANK KEY',                           241 SY-VLINE,
                'BANK ACC.NO',                        261 SY-VLINE,
                'ERROR MESSAGE',                      320 SY-VLINE.
        WRITE:/(320) SY-ULINE.
        FORMAT COLOR 4 INTENSIFIED ON.
       SORT ERRORITAB BY LIFNR_001.
        LOOP AT ERRORITAB.
          WRITE:/ SY-VLINE,
                ERRORITAB-SERIAL LEFT-JUSTIFIED,          007 SY-VLINE,
                ERRORITAB-LIFNR_001 ,       023 SY-VLINE,
                ERRORITAB-KTOKK_002,       041 SY-VLINE,
                ERRORITAB-ANRED_003,       048 SY-VLINE,
                ERRORITAB-NAME1_004,       064 SY-VLINE,
                ERRORITAB-SORTL_005,       076 SY-VLINE,
                ERRORITAB-STRAS_006,       101 SY-VLINE,
                ERRORITAB-PFACH_007,       116 SY-VLINE,
                ERRORITAB-ORT01_008,       129 SY-VLINE,
                ERRORITAB-ORT02_009,       141 SY-VLINE,
                ERRORITAB-LAND1_010,       156 SY-VLINE,
                ERRORITAB-REGIO_011,       166 SY-VLINE,
                ERRORITAB-SPRAS_012,       180 SY-VLINE,
                ERRORITAB-TELF1_013,       196 SY-VLINE,
                ERRORITAB-TELF2_014,       213 SY-VLINE,
                ERRORITAB-BANKS_01_015,    231 SY-VLINE,
                ERRORITAB-BANKL_01_016,    241 SY-VLINE,
                ERRORITAB-BANKN_01_017,    261 SY-VLINE,
                ERRORITAB-ERRORMSG,        320 SY-VLINE.
          WRITE:/(320) SY-ULINE.
        ENDLOOP.
        WRITE:/ SY-ULINE.
      ENDIF.
    hope this ll help you..
    regards,
    prema.A

  • How to show  an error Page in Weblogic when the server is down

    Hi ,
    I heard that every container has the facility to show an error page when the server is down and (when the request has arrived at that time ).
    Please tell me how to configure this in BEA weblogic ??
    Thanks .

    Hi,
    From my understanding weblogic dose not provide the thing which you are asking for, reason is given below.
    - An application is deployed only on managed server one (MS-1)
    - Now if the request comes to the server (MS-1) when it was running and then for some reason MS-1 goes down then weblogic server would be able to send any response back to the client as its down.
    - Hence nothing can be done as the request object is been lost when the server goes down or even cant redirect to an error page as for doing that too the server has to be up and running.
    However there are other way round which can help you overcome this issue as shown below
    - Use Clusters with few managed servers in it which gives you high availability and load-balancing.
    - Use any web servers like Apache in front of weblogic servers.
    Using the above things you can also use customized HTTP Error Responses with error-page element in web.xml and create your own error pages which can be re-directed for the web server side also. For more information go through the below links
    Topic: Customizing HTTP Error Responses
    http://download.oracle.com/docs/cd/E13222_01/wls/docs92/webapp/configurejsp.html#wp157884
    Topic: error-page
    http://download.oracle.com/docs/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017571
    Topic: ErrorPage
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/plugins/plugin_params.html#wp1155425
    Hope above information helps you.
    Regards,
    Ravish

  • How to show execution error message from a Process

    hi
    i have a requirement like to display the error messsage returned by the proceure.
    I have a process with point After Submit and validations, where i am calling a procedure which returns the execution status with SUCCESS or FAILURE;
    and if it FAILURE, it will return the error_message also, how can i show this message to the user just like how we are showing the process success message/validation message.
    And i need to stop the process execution there itself once its got failed;
    how can i achieve these two? anyone can give some inputs....
    thanks in advance
    renjish

    paul and denes, thanks for the quick reply...
    i tried the both option the message is coming properly. but the thing is i want to stop the execution there itself where i got the error from the procedure and the page should be remained in the same page.
    currently i have a page 10(customer search screen), from there i called page 102 (customer edit screen) and in the page 102 i attached the process which includes the procedure to update the customer details;
    Normally if update is success, the procedure will return SUCCESS and its navigating to the page 10(customer search screen.). so here if FAILURE is returning by procedure, i need to be in the same page i.e 102(customer edit) by showing the error message..just like a validation message...
    currently whatever the procedure returns either SUCCESS or FAILURE, it goes to previous screen, but i need the method just like how the validation works if it fails.
    hope you got....
    regards
    renjish

  • How to show a error message to user from report.

    I don´t wanna to go in a form builder to create a simple form for just two inputs.
    I have put two inputs into reports parameter screen, but I know that reports is not like forms, I cannot use SET_ITEM_PROPERTY to hide an element or put a runtime message to a label.
    How can I show an error message when I validate an input from user, when some input trigger raise?
    Thanks a lot!

    The SRW.message doesn't show me no alert on report 10g !!!
    is there any restriction that can be made to block the displaying of the alert on the web environnement?
    thanks..

  • BDC session : Error records

    I used a Bapi function module. In that i handled the error message and display as output in alv format but they changed the requirement like
    it has to create a session with those error recrods. is it possible?
    Please help
    Thank you

    Hi Pydi Reddy,
    Session to be created with error records? I couldn't understand, why they want to create a session with error records? do they mean that you have to create a BDC for the same T.Code and once BAPI fails to update those records then BDC should be used for those error records?
    Ask them what exactly they mean to schedule a session with error records.
    Thanks & Regards,
    Faheem.

  • How do I store images uploaded by end users for each record?

    I am writing an application which requires end users to upload an image for each record they add. There could be thousands of images, and they are exclusive to this app. I use a File Browse item in order to let the user choose an image file to upload.
    But all I have managed to achieve at the moment is storing the full pathname of where the image is on the users machine, which means they can see the images they upload but no-one else can! Obviously not practical. I haven't figured out how to actually upload the images to the server and achieve multi-user access from there.
    My questions are, where is the best place to store these images, in the database or in a folder on the server? And what setups do I, or the DBA, need to do for both of these scenarios in order to save the uploaded images and display them.
    Hopefully someone can give advice, or point me to some documentation explaining this procedure. Thanks in anticipation.
    Rick.

    Hi
    The file you upload can be found in APEX_APPLICATION_FILES view. If you are want to store the file as BLOB in your table you can use the code similar to:
                 SELECT BLOB_CONTENT, FILENAME, MIME_TYPE
                 INTO    v_blob, v_actual_name, V_MIME_TYPE
                 FROM   APEX_APPLICATION_FILES
                 WHERE name = :P216_FILE;Or directly insert in your table using
                 INSERT INTO ......... (.....)
                 (SELECT BLOB_CONTENT, FILENAME, MIME_TYPE
                 FROM   APEX_APPLICATION_FILES
                 WHERE name = :P216_FILE);-----
    Zulqarnain
    http://www.maxapex.com
    Low Cost, High Quality Hosting for Oracle Apex

  • How to download session errors

    Hi All,
    I did LSMW for data transfer and uploaded data(bulk) using this. Now session got some errors. Can you suggest me how to download this errors(error log) in a file.

    Suresh:
    Here are the steps to download BDC error messages:
    1 Goto Tcode: SM35, select your required Session, Press 'Log' (F7) button.
    2 It'll lead to a screen 'Batch Input: Log overview', select the Session from the 'Log Overview' tab. Press the 'Display' button on the Application tool bar.
    3 It'll lead to a screen 'Batch Input for Session <your selected Session Name>', put the cursor on the error message of the table control, press ctrl+p.
    4 It'll lead to another screen  'Batch Input for Session <your selected Session Name>', here is an option to download error messages using 'Local File' (ctrlshiftF9) button from the Application tool bar.
    Hope this helps.
    Thanks,
    Murali.

Maybe you are looking for

  • Hard drive data recovery

    After running disk repair using Applecare Techtool deluxe my IMac G5 no longer boots up. I tried to retrieve data from IMac with a friends IBook using Firewire target disk mode but the hard drive did not show up on host IBook, however when I inserted

  • How do I get my hard drive back?

    Hello, I have a duel drive G4 and have just migrated all of my programs and files to my 2nd drive and will use this as the new start up disk. When I finished all my migration and updates I wanted to hide the old drive so it would could be accessed. I

  • Why does the download button for creative cloud keep telling me to download it from a computer?

    I have a dell all in one desktop and everytime I try to click the download button for creative cloud or photoshop, it says "Creative cloud/photoshop is a desktop app, download it from a computer." This doesn't make any sense.

  • Won't SYnc

    Maybe sombody can help me about my Ipod 30 GB 5G Video. Because last week i had a problem with my Hard Disk so i had to reformat it. so eventually all my i-unes files were erased. except for those in my Ipod. And then i saw a topic here about manuall

  • I need to do some work in Arabic language...

    Hi I need to do some work in Arabic language... Write text in Arabic language into a food product label I use Google translator for translation But when I copy and paste into illustrator cs4 which I use now Then the Arabic text comes the wrong way Do