Thunder Beta syntax error on transaction {}

There doesn't appear to be a separate beta forum, so I'm reporting this here.
Testing the Thunder Beta, it reports the following as a syntax error:
if (thing) {
     transaction {
          doStuff;
          EntitySave(item);
It reports 'return statement in function' for pretty much all our cfscript transaction statements.
This is the standalone install. I haven't been able to get the Eclipse plugin install working yet.

You can report bugs for ColdFusion Builder 3 on the Adobe Bug Tracker.
-Carl V.

Similar Messages

  • Syntax Error in Transaction /nswo1

    Hi CRM Experts,
    I am finding Syntax error in Transaction /nswo1. Syntax error is:
    program %_JJ_TESTFRAME_OBJTYPE
    "CRMS_ERMS_STRING" must be flat structure. you cannot use internal
    tables, strings,references or structures as compnents.
    Please help me.
    Thanks in advance
    Thanks,
    Rony.

    Hi Shiva ,
    U have to check If there is any Inactive Objects in that program of PA30 ?.Try to Activate all Objects which has modified IN SPAU.
    Regards
    Prabhu

  • Skip first screen & ECC 6 syntax error

    Hi,
    I have program that is in ECC 6 giving syntax error
      call transaction v_tcode using i_bdc options from i_options
                                          messages into i_message
                                          and skip first screen.
    I am getting a syntax error that "The additon AND SKIP FIRST SCREEN" cannot be used with "CALL TRANSACTION USING..."
    Any info how to correct this.
    aRs

    Hi,
    Thanks for your reply.
    The first screen i am calling in my program
        perform bdc_dynpro      using 'SAPMYCTC' '0100'.
        perform bdc_field       using 'BDC_OKCODE' '=ENTR'.
        perform bdc_field       using 'YCTC-CTCNUMBER'
                                      wa_yctc-ctcnumber.
    i am pushing the values to first screen , then i  need to screen skip the first screen
    aRs

  • Syntax Error while Posting Material

    Hi,
    when posting material the system is throwing a message
    Syntax error in program RGIMF000
    in Include RGIMF000
    in Line 1328
    Last changed by SAP*
    Author SAP
    The data object "GLU1" does not have a component called
    "RSPONSORED_CLASS".
    Is there anyway to solve this?
    Regards,
    Ajit

    Please look at the SAP note : 656431
    Hope this helps you ...
    Symptom
    When you post data, the system terminates with a syntax error in program RGIMF000.
    The error indicates that data object GLU1 does not have a component named RSPONSORED_CLASS.
    Reason and Prerequisites
    The cause is for this problem not completely clear yet.
    Probably program RGZZGLUX, which is to be automatically started for the postprocessing after a system copy, has not run completely or has not run at all.
    Solution
    Check your postprocessing logs to see whether or not program RGZZGLUX has run correctly.
    If the program has not run at all or with errors, inform SAP and indicate how to find the log.
    To eliminate the syntax error, call Transaction SE38 and start program RGZZGLUX for generating structure GLU1 and FI-SL programs.
    It takes a maximum of 5 minutes for the program to carry out the generations.
    Make sure that NO ONE is working in the PRODUCTION system at this time, otherwise documents posted then may disappear. If you are using a test system, this should not be a problem since it is only test data.
    If the problems are still not solved after the successful run of program RGZZGLUX, contact SAP Support again.

  • How to check syntax errors in ABAP Queries

    HI Guys,
    How to check syntax errors in ABAP queries, Can please provide the T-Codes.
    Advande thanks to everybody.
    Thanks,
    Gourisankar

    Hi
    with these you can check syntax errors and performance points
    Hi
    these all are doing t he same thing that is checking the program for better performance
    Tools for Performance Analysis
    Run time analysis transaction SE30
    SQL Trace transaction ST05
    Extended Program Check (SLIN)
    Code Inspector ( SCI)
    Run time analysis transaction SE30 :This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
    SQL Trace transaction ST05: The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
    The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on a particular database table of the ABAP program would be mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
    The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
    To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
    Extended Program Check
    This can be called in through transaction SE38 or through transaction SLIN. This indicates possible problems that may cause performance problems.
    Code Inspector (SCI)
    You can call the Code Inspector from the ABAP Editor (SE38), the Function Builder (SE37), the Class Builder (SE24), or as a separate transaction (SCI).
    The Code Inspector indicates possible problems. However, note that, especially with performance issues: There is no rule without exception. If a program passes an inspection, it does not necessarily mean that this program will have no performance problems.
    reward if usefull

  • Methods to solve this syntax error

    Hi friends,
    I am doing a user exit. In that iam including my code in a Include say 'ZXXX' in that i have 2 includes 'ZXX1' and 'ZXX2' ( one for PBO and one for PAI )..... i ve written my codes inside and when iam activating the include it gives me the following error ???? what iam missing / what ive given extra / what should i do???
    Error :
    " EACH ABAP PRORAM CAN CONTAIN ONLY ONE "REPORT" OR "PROGRAM" OR "FUNCTION-POOL" STATEMENT" .................. 
    Expecting ur answers.....(any small idea will surely help me and others too)
    Hope my question is clear .....
    thanks in advance .............................
    Cheers,
    Kripa .,
    Upcoming New Abaper......

    Hi,
    I think its better to tell the whole process which iam doing ( i dont know whether the steps are right as this is the first time iam tryig to implement a user-exit!). So what ever could be the mistake which u encounter in my steps please let me know so that i could correct that!
    My requirement is:
    1. To add a field in ME51N transaction in the valuation tab, Say a field which captures the text 'AAA' which could be given by the user....
    My Understanding and implementation:
    1. Got the user exit name to be 'MEREQ001' ( Tcode SMOD )
    2 Added a field 'ZZXXX' in the table EBAN and activated the table.
    3. From SE80 --> in the  function group XM02,created a screen ( of type subscreen '0111' ) and placed a table field text box of name and attributes of
    'EBAN-ZZXXX' .....
    4. Double clicked the screen '0111' and in that i ve writen some code for its PBO and PAI ......
    5. Code in PBO .......MODULE STATUS_0111.
    MODULE STATUS_0111 OUTPUT.
    SET PF-STATUS 'xxxxxxxx'.
    SET TITLEBAR 'xxx'.
    TABLES : EBAN.
    EBAN-ZZPAYMENT = "TEST PAYMENT".
    ENDMODULE.                 " STATUS_0111  OUTPUT
    6. Code in PAI .......... USER_COMMAND_0111  INPUT
    ***INCLUDE ZXM02I01 .
    *&      Module  USER_COMMAND_0111  INPUT
          text
    MODULE USER_COMMAND_0111 INPUT.
    CLASS-POOL
    An object is created for the class IF_PURCHASE_REQUISITION_ITEM
      CREATE OBJECT IF_PURCHASE_REQUISITION_ITEM.
    As i want to import the value from the subscreen to a value thruogh
    a function GET_DATA
    Creating a reference variable
      DATA : CREF_IF_PR_ITEM TYPE REF TO
      IF_PURCHASE_REQUISITION_ITEM.
    Local variable declaration
      data : l_mereq_item type mereq_item.
    T_NATR_PAY is the new extended field...
      if not CREF_IF_PR_ITEM is initial.
        l_mereq_item = CREF_IF_PR_ITEM->get_data( ).
        if ( ci_ebandb-ZZPAYMENT ne l_mereq_item-ZZPAYMENT ).
          move-corresponding  ci_ebandb to l_mereq_item .
          call method
            CREF_IF_PR_ITEM->set_data( l_mereq_item ).
          ex_changed = 'X'.
        endif.
    *endif.
      ENDMODULE.                 " USER_COMMAND_0111  INPUT
    7. Then i activated .... at that time only i got the syntax error.... hope the question is clear now !!
    note :
    I may be wrong in the way of implememnting the user exit also ..... please correct me if iam wrong and if anyone of u could guide me properly to implement the user exit for the transaction ME51N ... it could be of a great help !!!
    Expecting ur answers !! .......
    Thanks in Advance !!!!
    Revert back if the question is still not clear !!!
    .... kripa ( New upcoming abaper )

  • Syntax error in program "SAPLXRSA " -SENT

    Hi Guys,
    I have done user exit in R/3 datasource when I do the test extraction using RSA3 and geting the data without any error. I've transport the requet to Test Box and tried to do the extraction in TestBox and getting the below SYNTAX Error message. Kindly advise it's very URGET. Thanks in advance.
    ShrtText
    Syntax error in program "SAPLXRSA ".
    What happened?
    Error in ABAP application program.
    The current ABAP program "SAPLRSAP" had to be terminated because one of the
    statements could not be executed.
    This is probably due to an error in the ABAP program.
    In program "SAPLXRSA ", the following syntax error occurred
    in the Include "ZXRSAU01 " in line 21:
    "Field "ZOXPRO0043" is unknown. It is neither in one of the specified t"
    "ables nor defined by a "DATA" statement. "DATA" statement."
    Author and last person to change the Include are:
    Author "SAPCHEOLENG "
    Last changed by "CCEV200 "
    What can you do?
    Please eliminate the error by performing a syntax check
    (or an extended program check) on the program "SAPLXRSA ".
    You can also perform the syntax check from the ABAP/4 Editor.
    If the problem persists, proceed as follows:
    Print out the error message (using the "Print" function)
    and make a note of the actions and input that caused the
    error.
    To resolve the problem, contact your SAP system administrator.
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer
    termination messages, especially those beyond their normal deletion
    date.
    is especially useful if you want to keep a particular message.
    Error analysis
    In program "SAPLXRSA ", the following syntax error occurred:
    "Field "ZOXPRO0043" is unknown. It is neither in one of the specified t"
    "ables nor defined by a "DATA" statement. "DATA" statement."
    How to correct the error
    Probably the only way to eliminate the error is to correct the program.
    If you cannot solve the problem yourself and you wish to send
    an error message to SAP, include the following documents:
    1. A printout of the problem description (short dump)
    To obtain this, select in the current display "System->List->
    Save->Local File (unconverted)".
    2. A suitable printout of the system log
    To obtain this, call the system log through transaction SM21.
    Limit the time interval to 10 minutes before and 5 minutes
    after the short dump. In the display, then select the function
    "System->List->Save->Local File (unconverted)".
    3. If the programs are your own programs or modified SAP programs,
    supply the source code.
    To do this, select the Editor function "Further Utilities->
    Upload/Download->Download".
    4. Details regarding the conditions under which the error occurred
    or which actions and input led to the error.
    System environment
    SAP Release.............. "640"
    Application server....... "hawk"
    Network address.......... "137.132.12.22"
    Operating system......... "HP-UX"
    Release.................. "B.11.23"
    Hardware type............ "ia64"
    Character length......... 8 Bits
    Pointer length........... 64 Bits
    Work process number...... 0
    Short dump setting....... "full"
    Database server.......... "hawk"
    Database type............ "ORACLE"
    Database name............ "QAS"
    Database owner........... "SAPR3"
    Character set............ "en_US.iso88591"
    SAP kernel............... "640"
    Created on............... "Oct 16 2006 20:35:55"
    Created in............... "HP-UX B.11.23 U ia64"
    Database version......... "OCI_920 "
    Patch level.............. "153"
    Patch text............... " "
    Supported environment....
    Database................. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE
    10.2.0.."
    SAP database version..... "640"
    Operating system......... "HP-UX B.11"
    Memory usage.............
    Roll..................... 16128
    EM....................... 12569760
    Heap..................... 0
    Page..................... 65536
    MM Used.................. 1716768
    MM Free.................. 2470608
    SAP Release.............. "640"
    User and Transaction
    Client.............. 220
    User................ "CCEENGG"
    Language key........ "E"
    Transaction......... "RSA3 "
    Program............. "SAPLRSAP"
    Screen.............. "SAPMSSY0 1000"
    Screen line......... 6
    Information on where terminated
    The termination occurred in the ABAP program "SAPLRSAP" in
    "CALL_DATA_CUSTOMER_FUNCTION".
    The main program was "RSFHGEN2 ".
    The termination occurred in line 96 of the source code of the (Include)
    program "LRSAPF06"
    of the source code of program "LRSAPF06" (when calling the editor 960).
    Source Code Extract
    Line
    SourceCde
    66
    CALL FUNCTION BW_BTE_CALL_BW204010_E
    67
    EXPORTING
    68
    I_DATASOURCE = L_DATASOURCE
    69
    I_UPDMODE    = P_UPDMODE
    70
    TABLES
    71
    I_T_SELECT   = P_T_SELECT
    72
    I_T_FIELDS   = P_T_FIELDS
    73
    C_T_DATA     = P_T_DATA
    74
    C_T_MESSAGES = L_T_MESSAGES
    75
    EXCEPTIONS
    76
    OTHERS       = 1.
    77
    DESCRIBE TABLE P_T_DATA LINES L_LINES.
    78
    MESSAGE S408 WITH L_LINES.
    79
    Handle BTE-Exit error messages
    80
    IF SY-SUBRC <> 0.
    81
    P_SUBRC = SY-SUBRC.
    82
    IF 1 = 2. MESSAGE E021 WITH ''. ENDIF.
    83
    MESSAGE_WRITE 'E' 'R3' '021' 'BW_BTE_CALL_BW204010_E' '' '' ''.
    84
    ENDIF.
    85
    IF NOT L_T_MESSAGES IS INITIAL.
    86
    PERFORM WRITE_BTE_EXIT_MESSAGES TABLES   L_T_MESSAGES
    87
    CHANGING P_SUBRC.
    88
    ENDIF.
    89
    ENDIF.
    90
    ENDIF.
    91
    92
    Call Customer-Exit
    93
    DESCRIBE TABLE P_T_DATA LINES L_LINES.
    94
    MESSAGE S407 WITH 'EXIT_SAPLRSAP_001' 'CMOD' L_LINES.
    95
    CLEAR SY-SUBRC.
    >>>>>
    CALL CUSTOMER-FUNCTION '001'
    97
    EXPORTING
    98
    I_DATASOURCE             = L_DATASOURCE
    99
    I_ISOURCE                = L_12B_SOURCE
    100
    I_UPDMODE                = P_UPDMODE
    101
    TABLES
    102
    I_T_SELECT               = P_T_SELECT
    103
    I_T_FIELDS               = P_T_FIELDS
    104
    C_T_DATA                 = P_T_DATA
    105
    C_T_MESSAGES             = L_T_MESSAGES
    106
    EXCEPTIONS
    107
    RSAP_CUSTOMER_EXIT_ERROR = 1
    108
    OTHERS                   = 2.
    109
    DESCRIBE TABLE P_T_DATA LINES L_LINES.
    110
    MESSAGE S408 WITH L_LINES.
    111
    112
    Handle Customer-Exit error messages
    113
    IF SY-SUBRC <> 0.
    114
    P_SUBRC = SY-SUBRC.
    115
    IF 1 = 2. MESSAGE E020 WITH ''. ENDIF.
    Contents of system fields
    Name
    Val.
    SY-SUBRC
    0
    SY-INDEX
    1
    SY-TABIX
    1
    SY-DBCNT
    0
    SY-FDPOS
    0
    SY-LSIND
    0
    SY-PAGNO
    0
    SY-LINNO
    1
    SY-COLNO
    1
    SY-PFKEY
    SY-UCOMM
    SY-TITLE
    Report for the extractor call
    SY-MSGTY
    S
    SY-MSGID
    R3
    SY-MSGNO
    407
    SY-MSGV1
    EXIT_SAPLRSAP_001
    SY-MSGV2
    CMOD
    SY-MSGV3
    100
    SY-MSGV4
    Active Calls/Events
    No.   Ty.          Program                             Include                             Line
    Name
    5 FUNCTION     SAPLRSAP                            LRSAPF06                               96
    CALL_DATA_CUSTOMER_FUNCTION
    4 FORM         SAPLRSAP                            LRSAPF06                               96
    CALL_DATA_CUSTOMER_FUNCTION
    3 FORM         GP3PDR0GQDXJ0ZOA35DPGNCU80M         GP3PDR0GQDXJ0ZOA35DPGNCU80M           274
    PROCESS_DATA_PACKAGE
    2 FORM         GP3PDR0GQDXJ0ZOA35DPGNCU80M         GP3PDR0GQDXJ0ZOA35DPGNCU80M           170
    DATA_TRANSFER
    1 EVENT        RSFHGEN2                            RSFHGEN2                               59
    START-OF-SELECTION

    Hello Raja,
    I think some objects should still lying in the dev. server which are yet to be transported, also try to deactivate and reactivate the project for user exit for BW and transport it .
    Also manually request can be created for transporting object "ZOXPRO0043" into quality environment and transport it .
    Let us know the output for the same.
    Hope that helps.
    Regards
    Kapadia
    ***Assigning points is the way to say thanks in SDN.***

  • [SOLVED] Php.ini syntax error, unexpected '&'

    Hi guys,
    I'm having a trouble setting up a local hosted LAMP, I want to enable the error reporting and display, but it's giving me this error:
    [root@albert albert]# php
    PHP: syntax error, unexpected '&' in /etc/php/php.ini on line 105
    Line 105:
    ; error_reporting
    Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ; this is the 105
    Development Value: E_ALL
    Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
    And when I access to on localhost/phpmyadmin:
    Fatal error: Call to undefined function PMA_DBI_num_rows() in /usr/share/webapps/phpMyAdmin/libraries/navigation/Nodes/Node.class.php on line 408
    When I comment the line 105,106,107, it works as I expected, but I can't see any error output...
    Here it's the entire php.ini:
    [PHP]
    ; About php.ini ;
    ; PHP's initialization file, generally called php.ini, is responsible for
    ; configuring many of the aspects of PHP's behavior.
    ; PHP attempts to find and load this configuration from a number of locations.
    ; The following is a summary of its search order:
    ; 1. SAPI module specific location.
    ; 2. The PHPRC environment variable. (As of PHP 5.2.0)
    ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
    ; 4. Current working directory (except CLI)
    ; 5. The web server's directory (for SAPI modules), or directory of PHP
    ; (otherwise in Windows)
    ; 6. The directory from the --with-config-file-path compile time option, or the
    ; Windows directory (C:\windows or C:\winnt)
    ; See the PHP docs for more specific information.
    ; http://php.net/configuration.file
    ; The syntax of the file is extremely simple. Whitespace and lines
    ; beginning with a semicolon are silently ignored (as you probably guessed).
    ; Section headers (e.g. [Foo]) are also silently ignored, even though
    ; they might mean something in the future.
    ; Directives following the section heading [PATH=/www/mysite] only
    ; apply to PHP files in the /www/mysite directory. Directives
    ; following the section heading [HOST=www.example.com] only apply to
    ; PHP files served from www.example.com. Directives set in these
    ; special sections cannot be overridden by user-defined INI files or
    ; at runtime. Currently, [PATH=] and [HOST=] sections only work under
    ; CGI/FastCGI.
    ; http://php.net/ini.sections
    ; Directives are specified using the following syntax:
    ; directive = value
    ; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
    ; Directives are variables used to configure PHP or PHP extensions.
    ; There is no name validation. If PHP can't find an expected
    ; directive because it is not set or is mistyped, a default value will be used.
    ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
    ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
    ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
    ; previously set variable or directive (e.g. ${foo})
    ; Expressions in the INI file are limited to bitwise operators and parentheses:
    ; | bitwise OR
    ; ^ bitwise XOR
    ; & bitwise AND
    ; ~ bitwise NOT
    ; ! boolean NOT
    ; Boolean flags can be turned on using the values 1, On, True or Yes.
    ; They can be turned off using the values 0, Off, False or No.
    ; An empty string can be denoted by simply not writing anything after the equal
    ; sign, or by using the None keyword:
    ; foo = ; sets foo to an empty string
    ; foo = None ; sets foo to an empty string
    ; foo = "None" ; sets foo to the string 'None'
    ; If you use constants in your value, and these constants belong to a
    ; dynamically loaded extension (either a PHP extension or a Zend extension),
    ; you may only use these constants *after* the line that loads the extension.
    ; About this file ;
    ; PHP comes packaged with two INI files. One that is recommended to be used
    ; in production environments and one that is recommended to be used in
    ; development environments.
    ; php.ini-production contains settings which hold security, performance and
    ; best practices at its core. But please be aware, these settings may break
    ; compatibility with older or less security conscience applications. We
    ; recommending using the production ini in production and testing environments.
    ; php.ini-development is very similar to its production variant, except it's
    ; much more verbose when it comes to errors. We recommending using the
    ; development version only in development environments as errors shown to
    ; application users can inadvertently leak otherwise secure information.
    ; Quick Reference ;
    ; The following are all the settings which are different in either the production
    ; or development versions of the INIs with respect to PHP's default behavior.
    ; Please see the actual settings later in the document for more details as to why
    ; we recommend these changes in PHP's behavior.
    ; display_errors
    Default Value: On
    Development Value: On
    Production Value: Off
    ; display_startup_errors
    Default Value: Off
    Development Value: On
    Production Value: Off
    ; error_reporting
    Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
    Development Value: E_ALL
    Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
    ; html_errors
    Default Value: On
    Development Value: On
    Production value: On
    ; log_errors
    Default Value: Off
    Development Value: On
    Production Value: On
    ; max_input_time
    ; Default Value: -1 (Unlimited)
    ; Development Value: 60 (60 seconds)
    ; Production Value: 60 (60 seconds)
    ; output_buffering
    ; Default Value: Off
    ; Development Value: 4096
    ; Production Value: 4096
    ; register_argc_argv
    ; Default Value: On
    ; Development Value: Off
    ; Production Value: Off
    ; request_order
    ; Default Value: None
    ; Development Value: "GP"
    ; Production Value: "GP"
    ; session.bug_compat_42
    ; Default Value: On
    ; Development Value: On
    ; Production Value: Off
    ; session.bug_compat_warn
    ; Default Value: On
    ; Development Value: On
    ; Production Value: Off
    ; session.gc_divisor
    ; Default Value: 100
    ; Development Value: 1000
    ; Production Value: 1000
    ; session.hash_bits_per_character
    ; Default Value: 4
    ; Development Value: 5
    ; Production Value: 5
    ; short_open_tag
    ; Default Value: On
    ; Development Value: Off
    ; Production Value: Off
    ; track_errors
    ; Default Value: Off
    ; Development Value: On
    ; Production Value: Off
    ; url_rewriter.tags
    ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
    ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
    ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
    ; variables_order
    ; Default Value: "EGPCS"
    ; Development Value: "GPCS"
    ; Production Value: "GPCS"
    ; php.ini Options ;
    ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
    ;user_ini.filename = ".user.ini"
    ; To disable this feature set this option to empty value
    ;user_ini.filename =
    ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
    ;user_ini.cache_ttl = 300
    ; Language Options ;
    ; Enable the PHP scripting language engine under Apache.
    ; http://php.net/engine
    engine = On
    ; This directive determines whether or not PHP will recognize code between
    ; <? and ?> tags as PHP source which should be processed as such. It's been
    ; recommended for several years that you not use the short tag "short cut" and
    ; instead to use the full <?php and ?> tag combination. With the wide spread use
    ; of XML and use of these tags by other languages, the server can become easily
    ; confused and end up parsing the wrong code in the wrong context. But because
    ; this short cut has been a feature for such a long time, it's currently still
    ; supported for backwards compatibility, but we recommend you don't use them.
    ; Default Value: On
    ; Development Value: Off
    ; Production Value: Off
    ; http://php.net/short-open-tag
    short_open_tag = Off
    ; Allow ASP-style <% %> tags.
    ; http://php.net/asp-tags
    asp_tags = Off
    ; The number of significant digits displayed in floating point numbers.
    ; http://php.net/precision
    precision = 14
    ; Output buffering is a mechanism for controlling how much output data
    ; (excluding headers and cookies) PHP should keep internally before pushing that
    ; data to the client. If your application's output exceeds this setting, PHP
    ; will send that data in chunks of roughly the size you specify.
    ; Turning on this setting and managing its maximum buffer size can yield some
    ; interesting side-effects depending on your application and web server.
    ; You may be able to send headers and cookies after you've already sent output
    ; through print or echo. You also may see performance benefits if your server is
    ; emitting less packets due to buffered output versus PHP streaming the output
    ; as it gets it. On production servers, 4096 bytes is a good setting for performance
    ; reasons.
    ; Note: Output buffering can also be controlled via Output Buffering Control
    ; functions.
    ; Possible Values:
    ; On = Enabled and buffer is unlimited. (Use with caution)
    ; Off = Disabled
    ; Integer = Enables the buffer and sets its maximum size in bytes.
    ; Note: This directive is hardcoded to Off for the CLI SAPI
    ; Default Value: Off
    ; Development Value: 4096
    ; Production Value: 4096
    ; http://php.net/output-buffering
    output_buffering = 4096
    ; You can redirect all of the output of your scripts to a function. For
    ; example, if you set output_handler to "mb_output_handler", character
    ; encoding will be transparently converted to the specified encoding.
    ; Setting any output handler automatically turns on output buffering.
    ; Note: People who wrote portable scripts should not depend on this ini
    ; directive. Instead, explicitly set the output handler using ob_start().
    ; Using this ini directive may cause problems unless you know what script
    ; is doing.
    ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
    ; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
    ; Note: output_handler must be empty if this is set 'On' !!!!
    ; Instead you must use zlib.output_handler.
    ; http://php.net/output-handler
    ;output_handler =
    ; Transparent output compression using the zlib library
    ; Valid values for this option are 'off', 'on', or a specific buffer size
    ; to be used for compression (default is 4KB)
    ; Note: Resulting chunk size may vary due to nature of compression. PHP
    ; outputs chunks that are few hundreds bytes each as a result of
    ; compression. If you prefer a larger chunk size for better
    ; performance, enable output_buffering in addition.
    ; Note: You need to use zlib.output_handler instead of the standard
    ; output_handler, or otherwise the output will be corrupted.
    ; http://php.net/zlib.output-compression
    zlib.output_compression = Off
    ; http://php.net/zlib.output-compression-level
    ;zlib.output_compression_level = -1
    ; You cannot specify additional output handlers if zlib.output_compression
    ; is activated here. This setting does the same as output_handler but in
    ; a different order.
    ; http://php.net/zlib.output-handler
    ;zlib.output_handler =
    ; Implicit flush tells PHP to tell the output layer to flush itself
    ; automatically after every output block. This is equivalent to calling the
    ; PHP function flush() after each and every call to print() or echo() and each
    ; and every HTML block. Turning this option on has serious performance
    ; implications and is generally recommended for debugging purposes only.
    ; http://php.net/implicit-flush
    ; Note: This directive is hardcoded to On for the CLI SAPI
    implicit_flush = Off
    ; The unserialize callback function will be called (with the undefined class'
    ; name as parameter), if the unserializer finds an undefined class
    ; which should be instantiated. A warning appears if the specified function is
    ; not defined, or if the function doesn't include/implement the missing class.
    ; So only set this entry, if you really want to implement such a
    ; callback-function.
    unserialize_callback_func =
    ; When floats & doubles are serialized store serialize_precision significant
    ; digits after the floating point. The default value ensures that when floats
    ; are decoded with unserialize, the data will remain the same.
    serialize_precision = 17
    ; open_basedir, if set, limits all file operations to the defined directory
    ; and below. This directive makes most sense if used in a per-directory
    ; or per-virtualhost web server configuration file. This directive is
    ; *NOT* affected by whether Safe Mode is turned On or Off.
    ; http://php.net/open-basedir
    open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/home/albert/Dropbox/bitday/
    ; This directive allows you to disable certain functions for security reasons.
    ; It receives a comma-delimited list of function names. This directive is
    ; *NOT* affected by whether Safe Mode is turned On or Off.
    ; http://php.net/disable-functions
    disable_functions =
    ; This directive allows you to disable certain classes for security reasons.
    ; It receives a comma-delimited list of class names. This directive is
    ; *NOT* affected by whether Safe Mode is turned On or Off.
    ; http://php.net/disable-classes
    disable_classes =
    ; Colors for Syntax Highlighting mode. Anything that's acceptable in
    ; <span style="color: ???????"> would work.
    ; http://php.net/syntax-highlighting
    ;highlight.string = #DD0000
    ;highlight.comment = #FF9900
    ;highlight.keyword = #007700
    ;highlight.default = #0000BB
    ;highlight.html = #000000
    ; If enabled, the request will be allowed to complete even if the user aborts
    ; the request. Consider enabling it if executing long requests, which may end up
    ; being interrupted by the user or a browser timing out. PHP's default behavior
    ; is to disable this feature.
    ; http://php.net/ignore-user-abort
    ;ignore_user_abort = On
    ; Determines the size of the realpath cache to be used by PHP. This value should
    ; be increased on systems where PHP opens many files to reflect the quantity of
    ; the file operations performed.
    ; http://php.net/realpath-cache-size
    ;realpath_cache_size = 16k
    ; Duration of time, in seconds for which to cache realpath information for a given
    ; file or directory. For systems with rarely changing files, consider increasing this
    ; value.
    ; http://php.net/realpath-cache-ttl
    ;realpath_cache_ttl = 120
    ; Enables or disables the circular reference collector.
    ; http://php.net/zend.enable-gc
    zend.enable_gc = On
    ; If enabled, scripts may be written in encodings that are incompatible with
    ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such
    ; encodings. To use this feature, mbstring extension must be enabled.
    ; Default: Off
    ;zend.multibyte = Off
    ; Allows to set the default encoding for the scripts. This value will be used
    ; unless "declare(encoding=...)" directive appears at the top of the script.
    ; Only affects if zend.multibyte is set.
    ; Default: ""
    ;zend.script_encoding =
    ; Miscellaneous ;
    ; Decides whether PHP may expose the fact that it is installed on the server
    ; (e.g. by adding its signature to the Web server header). It is no security
    ; threat in any way, but it makes it possible to determine whether you use PHP
    ; on your server or not.
    ; http://php.net/expose-php
    expose_php = On
    ; Resource Limits ;
    ; Maximum execution time of each script, in seconds
    ; http://php.net/max-execution-time
    ; Note: This directive is hardcoded to 0 for the CLI SAPI
    max_execution_time = 30
    ; Maximum amount of time each script may spend parsing request data. It's a good
    ; idea to limit this time on productions servers in order to eliminate unexpectedly
    ; long running scripts.
    ; Note: This directive is hardcoded to -1 for the CLI SAPI
    ; Default Value: -1 (Unlimited)
    ; Development Value: 60 (60 seconds)
    ; Production Value: 60 (60 seconds)
    ; http://php.net/max-input-time
    max_input_time = 60
    ; Maximum input variable nesting level
    ; http://php.net/max-input-nesting-level
    ;max_input_nesting_level = 64
    ; How many GET/POST/COOKIE input variables may be accepted
    ; max_input_vars = 1000
    ; Maximum amount of memory a script may consume (128MB)
    ; http://php.net/memory-limit
    memory_limit = 128M
    ; Error handling and logging ;
    ; This directive informs PHP of which errors, warnings and notices you would like
    ; it to take action for. The recommended way of setting values for this
    ; directive is through the use of the error level constants and bitwise
    ; operators. The error level constants are below here for convenience as well as
    ; some common settings and their meanings.
    ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
    ; those related to E_NOTICE and E_STRICT, which together cover best practices and
    ; recommended coding standards in PHP. For performance reasons, this is the
    ; recommend error reporting setting. Your production server shouldn't be wasting
    ; resources complaining about best practices and coding standards. That's what
    ; development servers and development settings are for.
    ; Note: The php.ini-development file has this setting as E_ALL. This
    ; means it pretty much reports everything which is exactly what you want during
    ; development and early testing.
    ; Error Level Constants:
    ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0)
    ; E_ERROR - fatal run-time errors
    ; E_RECOVERABLE_ERROR - almost fatal run-time errors
    ; E_WARNING - run-time warnings (non-fatal errors)
    ; E_PARSE - compile-time parse errors
    ; E_NOTICE - run-time notices (these are warnings which often result
    ; from a bug in your code, but it's possible that it was
    ; intentional (e.g., using an uninitialized variable and
    ; relying on the fact it's automatically initialized to an
    ; empty string)
    ; E_STRICT - run-time notices, enable to have PHP suggest changes
    ; to your code which will ensure the best interoperability
    ; and forward compatibility of your code
    ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
    ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
    ; initial startup
    ; E_COMPILE_ERROR - fatal compile-time errors
    ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
    ; E_USER_ERROR - user-generated error message
    ; E_USER_WARNING - user-generated warning message
    ; E_USER_NOTICE - user-generated notice message
    ; E_DEPRECATED - warn about code that will not work in future versions
    ; of PHP
    ; E_USER_DEPRECATED - user-generated deprecation warnings
    ; Common Values:
    ; E_ALL (Show all errors, warnings and notices including coding standards.)
    ; E_ALL & ~E_NOTICE (Show all errors, except for notices)
    ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)
    ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
    ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
    ; Development Value: E_ALL
    ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
    ; http://php.net/error-reporting
    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
    ; This directive controls whether or not and where PHP will output errors,
    ; notices and warnings too. Error output is very useful during development, but
    ; it could be very dangerous in production environments. Depending on the code
    ; which is triggering the error, sensitive information could potentially leak
    ; out of your application such as database usernames and passwords or worse.
    ; It's recommended that errors be logged on production servers rather than
    ; having the errors sent to STDOUT.
    ; Possible Values:
    ; Off = Do not display any errors
    ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
    ; On or stdout = Display errors to STDOUT
    ; Default Value: On
    ; Development Value: On
    ; Production Value: Off
    ; http://php.net/display-errors
    display_errors = Off
    ; The display of errors which occur during PHP's startup sequence are handled
    ; separately from display_errors. PHP's default behavior is to suppress those
    ; errors from clients. Turning the display of startup errors on can be useful in
    ; debugging configuration problems. But, it's strongly recommended that you
    ; leave this setting off on production servers.
    ; Default Value: Off
    ; Development Value: On
    ; Production Value: Off
    ; http://php.net/display-startup-errors
    display_startup_errors = Off
    ; Besides displaying errors, PHP can also log errors to locations such as a
    ; server-specific log, STDERR, or a location specified by the error_log
    ; directive found below. While errors should not be displayed on productions
    ; servers they should still be monitored and logging is a great way to do that.
    ; Default Value: Off
    ; Development Value: On
    ; Production Value: On
    ; http://php.net/log-errors
    log_errors = On
    ; Set maximum length of log_errors. In error_log information about the source is
    ; added. The default is 1024 and 0 allows to not apply any maximum length at all.
    ; http://php.net/log-errors-max-len
    log_errors_max_len = 1024
    ; Do not log repeated messages. Repeated errors must occur in same file on same
    ; line unless ignore_repeated_source is set true.
    ; http://php.net/ignore-repeated-errors
    ignore_repeated_errors = Off
    ; Ignore source of message when ignoring repeated messages. When this setting
    ; is On you will not log errors with repeated messages from different files or
    ; source lines.
    ; http://php.net/ignore-repeated-source
    ignore_repeated_source = Off
    ; If this parameter is set to Off, then memory leaks will not be shown (on
    ; stdout or in the log). This has only effect in a debug compile, and if
    ; error reporting includes E_WARNING in the allowed list
    ; http://php.net/report-memleaks
    report_memleaks = On
    ; This setting is on by default.
    ;report_zend_debug = 0
    ; Store the last error/warning message in $php_errormsg (boolean). Setting this value
    ; to On can assist in debugging and is appropriate for development servers. It should
    ; however be disabled on production servers.
    ; Default Value: Off
    ; Development Value: On
    ; Production Value: Off
    ; http://php.net/track-errors
    track_errors = Off
    ; Turn off normal error reporting and emit XML-RPC error XML
    ; http://php.net/xmlrpc-errors
    ;xmlrpc_errors = 0
    ; An XML-RPC faultCode
    ;xmlrpc_error_number = 0
    ; When PHP displays or logs an error, it has the capability of formatting the
    ; error message as HTML for easier reading. This directive controls whether
    ; the error message is formatted as HTML or not.
    ; Note: This directive is hardcoded to Off for the CLI SAPI
    ; Default Value: On
    ; Development Value: On
    ; Production value: On
    ; http://php.net/html-errors
    html_errors = On
    ; If html_errors is set to On *and* docref_root is not empty, then PHP
    ; produces clickable error messages that direct to a page describing the error
    ; or function causing the error in detail.
    ; You can download a copy of the PHP manual from http://php.net/docs
    ; and change docref_root to the base URL of your local copy including the
    ; leading '/'. You must also specify the file extension being used including
    ; the dot. PHP's default behavior is to leave these settings empty, in which
    ; case no links to documentation are generated.
    ; Note: Never use this feature for production boxes.
    ; http://php.net/docref-root
    ; Examples
    ;docref_root = "/phpmanual/"
    ; http://php.net/docref-ext
    ;docref_ext = .html
    ; String to output before an error message. PHP's default behavior is to leave
    ; this setting blank.
    ; http://php.net/error-prepend-string
    ; Example:
    ;error_prepend_string = "<span style='color: #ff0000'>"
    ; String to output after an error message. PHP's default behavior is to leave
    ; this setting blank.
    ; http://php.net/error-append-string
    ; Example:
    ;error_append_string = "</span>"
    ; Log errors to specified file. PHP's default behavior is to leave this value
    ; empty.
    ; http://php.net/error-log
    ; Example:
    ;error_log = php_errors.log
    ; Log errors to syslog (Event Log on NT, not valid in Windows 95).
    ;error_log = syslog
    ;windows.show_crt_warning
    ; Default value: 0
    ; Development value: 0
    ; Production value: 0
    ; Data Handling ;
    ; The separator used in PHP generated URLs to separate arguments.
    ; PHP's default setting is "&".
    ; http://php.net/arg-separator.output
    ; Example:
    ;arg_separator.output = "&amp;"
    ; List of separator(s) used by PHP to parse input URLs into variables.
    ; PHP's default setting is "&".
    ; NOTE: Every character in this directive is considered as separator!
    ; http://php.net/arg-separator.input
    ; Example:
    ;arg_separator.input = ";&"
    ; This directive determines which super global arrays are registered when PHP
    ; starts up. G,P,C,E & S are abbreviations for the following respective super
    ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty
    ; paid for the registration of these arrays and because ENV is not as commonly
    ; used as the others, ENV is not recommended on productions servers. You
    ; can still get access to the environment variables through getenv() should you
    ; need to.
    ; Default Value: "EGPCS"
    ; Development Value: "GPCS"
    ; Production Value: "GPCS";
    ; http://php.net/variables-order
    variables_order = "GPCS"
    ; This directive determines which super global data (G,P,C,E & S) should
    ; be registered into the super global array REQUEST. If so, it also determines
    ; the order in which that data is registered. The values for this directive are
    ; specified in the same manner as the variables_order directive, EXCEPT one.
    ; Leaving this value empty will cause PHP to use the value set in the
    ; variables_order directive. It does not mean it will leave the super globals
    ; array REQUEST empty.
    ; Default Value: None
    ; Development Value: "GP"
    ; Production Value: "GP"
    ; http://php.net/request-order
    request_order = "GP"
    ; This directive determines whether PHP registers $argv & $argc each time it
    ; runs. $argv contains an array of all the arguments passed to PHP when a script
    ; is invoked. $argc contains an integer representing the number of arguments
    ; that were passed when the script was invoked. These arrays are extremely
    ; useful when running scripts from the command line. When this directive is
    ; enabled, registering these variables consumes CPU cycles and memory each time
    ; a script is executed. For performance reasons, this feature should be disabled
    ; on production servers.
    ; Note: This directive is hardcoded to On for the CLI SAPI
    ; Default Value: On
    ; Development Value: Off
    ; Production Value: Off
    ; http://php.net/register-argc-argv
    register_argc_argv = Off
    ; When enabled, the ENV, REQUEST and SERVER variables are created when they're
    ; first used (Just In Time) instead of when the script starts. If these
    ; variables are not used within a script, having this directive on will result
    ; in a performance gain. The PHP directive register_argc_argv must be disabled
    ; for this directive to have any affect.
    ; http://php.net/auto-globals-jit
    auto_globals_jit = On
    ; Whether PHP will read the POST data.
    ; This option is enabled by default.
    ; Most likely, you won't want to disable this option globally. It causes $_POST
    ; and $_FILES to always be empty; the only way you will be able to read the
    ; POST data will be through the php://input stream wrapper. This can be useful
    ; to proxy requests or to process the POST data in a memory efficient fashion.
    ; http://php.net/enable-post-data-reading
    ;enable_post_data_reading = Off
    ; Maximum size of POST data that PHP will accept.
    ; Its value may be 0 to disable the limit. It is ignored if POST data reading
    ; is disabled through enable_post_data_reading.
    ; http://php.net/post-max-size
    post_max_size = 8M
    ; Automatically add files before PHP document.
    ; http://php.net/auto-prepend-file
    auto_prepend_file =
    ; Automatically add files after PHP document.
    ; http://php.net/auto-append-file
    auto_append_file =
    ; By default, PHP will output a character encoding using
    ; the Content-type: header. To disable sending of the charset, simply
    ; set it to be empty.
    ; PHP's built-in default is text/html
    ; http://php.net/default-mimetype
    default_mimetype = "text/html"
    ; PHP's default character set is set to empty.
    ; http://php.net/default-charset
    ;default_charset = "UTF-8"
    ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
    ; to disable this feature. If post reading is disabled through
    ; enable_post_data_reading, $HTTP_RAW_POST_DATA is *NOT* populated.
    ; http://php.net/always-populate-raw-post-data
    ;always_populate_raw_post_data = On
    ; Paths and Directories ;
    ; UNIX: "/path1:/path2"
    include_path = ".:/usr/share/pear"
    ; Windows: "\path1;\path2"
    ;include_path = ".;c:\php\includes"
    ; PHP's default setting for include_path is ".;/path/to/php/pear"
    ; http://php.net/include-path
    ; The root of the PHP pages, used only if nonempty.
    ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
    ; if you are running php as a CGI under any web server (other than IIS)
    ; see documentation for security issues. The alternate is to use the
    ; cgi.force_redirect configuration below
    ; http://php.net/doc-root
    doc_root =
    ; The directory under which PHP opens the script using /~username used only
    ; if nonempty.
    ; http://php.net/user-dir
    user_dir =
    ; Directory in which the loadable extensions (modules) reside.
    ; http://php.net/extension-dir
    extension_dir = "/usr/lib/php/modules/"
    ; On windows:
    ; extension_dir = "ext"
    ; Whether or not to enable the dl() function. The dl() function does NOT work
    ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
    ; disabled on them.
    ; http://php.net/enable-dl
    enable_dl = Off
    ; cgi.force_redirect is necessary to provide security running PHP as a CGI under
    ; most web servers. Left undefined, PHP turns this on by default. You can
    ; turn it off here AT YOUR OWN RISK
    ; **You CAN safely turn this off for IIS, in fact, you MUST.**
    ; http://php.net/cgi.force-redirect
    ;cgi.force_redirect = 1
    ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
    ; every request. PHP's default behavior is to disable this feature.
    ;cgi.nph = 1
    ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
    ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
    ; will look for to know it is OK to continue execution. Setting this variable MAY
    ; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
    ; http://php.net/cgi.redirect-status-env
    ;cgi.redirect_status_env =
    ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
    ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
    ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
    ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
    ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
    ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
    ; http://php.net/cgi.fix-pathinfo
    ;cgi.fix_pathinfo=1
    ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
    ; security tokens of the calling client. This allows IIS to define the
    ; security context that the request runs under. mod_fastcgi under Apache
    ; does not currently support this feature (03/17/2002)
    ; Set to 1 if running under IIS. Default is zero.
    ; http://php.net/fastcgi.impersonate
    ;fastcgi.impersonate = 1
    ; Disable logging through FastCGI connection. PHP's default behavior is to enable
    ; this feature.
    ;fastcgi.logging = 0
    ; cgi.rfc2616_headers configuration option tells PHP what type of headers to
    ; use when sending HTTP response code. If it's set 0 PHP sends Status: header that
    ; is supported by Apache. When this option is set to 1 PHP will send
    ; RFC2616 compliant header.
    ; Default is zero.
    ; http://php.net/cgi.rfc2616-headers
    ;cgi.rfc2616_headers = 0
    ; File Uploads ;
    ; Whether to allow HTTP file uploads.
    ; http://php.net/file-uploads
    file_uploads = On
    ; Temporary directory for HTTP uploaded files (will use system default if not
    ; specified).
    ; http://php.net/upload-tmp-dir
    ;upload_tmp_dir =
    ; Maximum allowed size for uploaded files.
    ; http://php.net/upload-max-filesize
    upload_max_filesize = 2M
    ; Maximum number of files that can be uploaded via a single request
    max_file_uploads = 20
    ; Fopen wrappers ;
    ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
    ; http://php.net/allow-url-fopen
    allow_url_fopen = On
    ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
    ; http://php.net/allow-url-include
    allow_url_include = Off
    ; Define the anonymous ftp password (your email address). PHP's default setting
    ; for this is empty.
    ; http://php.net/from
    ;from="[email protected]"
    ; Define the User-Agent string. PHP's default setting for this is empty.
    ; http://php.net/user-agent
    ;user_agent="PHP"
    ; Default timeout for socket based streams (seconds)
    ; http://php.net/default-socket-timeout
    default_socket_timeout = 60
    ; If your scripts have to deal with files from Macintosh systems,
    ; or you are running on a Mac and need to deal with files from
    ; unix or win32 systems, setting this flag will cause PHP to
    ; automatically detect the EOL character in those files so that
    ; fgets() and file() will work regardless of the source of the file.
    ; http://php.net/auto-detect-line-endings
    ;auto_detect_line_endings = Off
    ; Dynamic Extensions ;
    ; If you wish to have an extension loaded automatically, use the following
    ; syntax:
    ; extension=modulename.extension
    ; For example, on Windows:
    ; extension=msql.dll
    ; ... or under UNIX:
    ; extension=msql.so
    ; ... or with a path:
    ; extension=/path/to/extension/msql.so
    ; If you only provide the name of the extension, PHP will look for it in its
    ; default extension directory.
    ;extension=bcmath.so
    ;extension=bz2.so
    ;extension=calendar.so
    extension=curl.so
    ;extension=dba.so
    ;extension=enchant.so
    ;extension=exif.so
    ;extension=ftp.so
    ;extension=gd.so
    extension=gettext.so
    ;extension=gmp.so
    ;extension=iconv.so
    ;extension=imap.so
    ;extension=intl.so
    ;extension=ldap.so
    ;extension=mcrypt.so
    ;extension=mssql.so
    ;extension=mysqli.so
    ;extension=mysql.so
    ;extension=odbc.so
    ;extension=openssl.so
    ;extension=pdo_mysql.so
    ;extension=pdo_odbc.so
    ;extension=pdo_pgsql.so
    ;extension=pdo_sqlite.so
    ;extension=pgsql.so
    ;extension=phar.so
    ;extension=posix.so
    ;extension=pspell.so
    ;extension=shmop.so
    ;extension=snmp.so
    ;extension=soap.so
    ;extension=sockets.so
    ;extension=sqlite3.so
    ;extension=sysvmsg.so
    ;extension=sysvsem.so
    ;extension=sysvshm.so
    ;extension=tidy.so
    ;extension=xmlrpc.so
    ;extension=xsl.so
    ;extension=zip.so
    ; Module Settings ;
    [CLI Server]
    ; Whether the CLI web server uses ANSI color coding in its terminal output.
    cli_server.color = On
    [Date]
    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    ;date.timezone =
    ; http://php.net/date.default-latitude
    ;date.default_latitude = 31.7667
    ; http://php.net/date.default-longitude
    ;date.default_longitude = 35.2333
    ; http://php.net/date.sunrise-zenith
    ;date.sunrise_zenith = 90.583333
    ; http://php.net/date.sunset-zenith
    ;date.sunset_zenith = 90.583333
    [filter]
    ; http://php.net/filter.default
    ;filter.default = unsafe_raw
    ; http://php.net/filter.default-flags
    ;filter.default_flags =
    [iconv]
    ;iconv.input_encoding = ISO-8859-1
    ;iconv.internal_encoding = ISO-8859-1
    ;iconv.output_encoding = ISO-8859-1
    [intl]
    ;intl.default_locale =
    ; This directive allows you to produce PHP errors when some error
    ; happens within intl functions. The value is the level of the error produced.
    ; Default is 0, which does not produce any errors.
    ;intl.error_level = E_WARNING
    [sqlite]
    ; http://php.net/sqlite.assoc-case
    ;sqlite.assoc_case = 0
    [sqlite3]
    ;sqlite3.extension_dir =
    [Pcre]
    ;PCRE library backtracking limit.
    ; http://php.net/pcre.backtrack-limit
    ;pcre.backtrack_limit=100000
    ;PCRE library recursion limit.
    ;Please note that if you set this value to a high number you may consume all
    ;the available process stack and eventually crash PHP (due to reaching the
    ;stack size limit imposed by the Operating System).
    ; http://php.net/pcre.recursion-limit
    ;pcre.recursion_limit=100000
    [Pdo]
    ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
    ; http://php.net/pdo-odbc.connection-pooling
    ;pdo_odbc.connection_pooling=strict
    ;pdo_odbc.db2_instance_name
    [Pdo_mysql]
    ; If mysqlnd is used: Number of cache slots for the internal result set cache
    ; http://php.net/pdo_mysql.cache_size
    pdo_mysql.cache_size = 2000
    ; Default socket name for local MySQL connects. If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/pdo_mysql.default-socket
    pdo_mysql.default_socket=
    [Phar]
    ; http://php.net/phar.readonly
    ;phar.readonly = On
    ; http://php.net/phar.require-hash
    ;phar.require_hash = On
    ;phar.cache_list =
    [mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP = localhost
    ; http://php.net/smtp-port
    smtp_port = 25
    ; For Win32 only.
    ; http://php.net/sendmail-from
    ;sendmail_from = [email protected]
    ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
    ; http://php.net/sendmail-path
    ;sendmail_path =
    ; Force the addition of the specified parameters to be passed as extra parameters
    ; to the sendmail binary. These parameters will always replace the value of
    ; the 5th parameter to mail(), even in safe mode.
    ;mail.force_extra_parameters =
    ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
    mail.add_x_header = On
    ; The path to a log file that will log all mail() calls. Log entries include
    ; the full path of the script, line number, To address and headers.
    ;mail.log =
    ; Log mail to syslog (Event Log on NT, not valid in Windows 95).
    ;mail.log = syslog
    [SQL]
    ; http://php.net/sql.safe-mode
    sql.safe_mode = Off
    [ODBC]
    ; http://php.net/odbc.default-db
    ;odbc.default_db = Not yet implemented
    ; http://php.net/odbc.default-user
    ;odbc.default_user = Not yet implemented
    ; http://php.net/odbc.default-pw
    ;odbc.default_pw = Not yet implemented
    ; Controls the ODBC cursor model.
    ; Default: SQL_CURSOR_STATIC (default).
    ;odbc.default_cursortype
    ; Allow or prevent persistent links.
    ; http://php.net/odbc.allow-persistent
    odbc.allow_persistent = On
    ; Check that a connection is still valid before reuse.
    ; http://php.net/odbc.check-persistent
    odbc.check_persistent = On
    ; Maximum number of persistent links. -1 means no limit.
    ; http://php.net/odbc.max-persistent
    odbc.max_persistent = -1
    ; Maximum number of links (persistent + non-persistent). -1 means no limit.
    ; http://php.net/odbc.max-links
    odbc.max_links = -1
    ; Handling of LONG fields. Returns number of bytes to variables. 0 means
    ; passthru.
    ; http://php.net/odbc.defaultlrl
    odbc.defaultlrl = 4096
    ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
    ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
    ; of odbc.defaultlrl and odbc.defaultbinmode
    ; http://php.net/odbc.defaultbinmode
    odbc.defaultbinmode = 1
    ;birdstep.max_links = -1
    [Interbase]
    ; Allow or prevent persistent links.
    ibase.allow_persistent = 1
    ; Maximum number of persistent links. -1 means no limit.
    ibase.max_persistent = -1
    ; Maximum number of links (persistent + non-persistent). -1 means no limit.
    ibase.max_links = -1
    ; Default database name for ibase_connect().
    ;ibase.default_db =
    ; Default username for ibase_connect().
    ;ibase.default_user =
    ; Default password for ibase_connect().
    ;ibase.default_password =
    ; Default charset for ibase_connect().
    ;ibase.default_charset =
    ; Default timestamp format.
    ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
    ; Default date format.
    ibase.dateformat = "%Y-%m-%d"
    ; Default time format.
    ibase.timeformat = "%H:%M:%S"
    [MySQL]
    ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
    ; http://php.net/mysql.allow_local_infile
    mysql.allow_local_infile = On
    ; Allow or prevent persistent links.
    ; http://php.net/mysql.allow-persistent
    mysql.allow_persistent = On
    ; If mysqlnd is used: Number of cache slots for the internal result set cache
    ; http://php.net/mysql.cache_size
    mysql.cache_size = 2000
    ; Maximum number of persistent links. -1 means no limit.
    ; http://php.net/mysql.max-persistent
    mysql.max_persistent = -1
    ; Maximum number of links (persistent + non-persistent). -1 means no limit.
    ; http://php.net/mysql.max-links
    mysql.max_links = -1
    ; Default port number for mysql_connect(). If unset, mysql_connect() will use
    ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
    ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
    ; at MYSQL_PORT.
    ; http://php.net/mysql.default-port
    mysql.default_port =
    ; Default socket name for local MySQL connects. If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/mysql.default-socket
    mysql.default_socket =
    ; Default host for mysql_connect() (doesn't apply in safe mode).
    ; http://php.net/mysql.default-host
    mysql.default_host =
    ; Default user for mysql_connect() (doesn't apply in safe mode).
    ; http://php.net/mysql.default-user
    mysql.default_user =
    ; Default password for mysql_connect() (doesn't apply in safe mode).
    ; Note that this is generally a *bad* idea to store passwords in this file.
    ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
    ; and reveal this password! And of course, any users with read access to this
    ; file will be able to reveal the password as well.
    ; http://php.net/mysql.default-password
    mysql.default_password =
    ; Maximum time (in seconds) for connect timeout. -1 means no limit
    ; http://php.net/mysql.connect-timeout
    mysql.connect_timeout = 60
    ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
    ; SQL-Errors will be displayed.
    ; http://php.net/mysql.trace-mode
    mysql.trace_mode = Off
    [MySQLi]
    ; Maximum number of persistent links. -1 means no limit.
    ; http://php.net/mysqli.max-persistent
    mysqli.max_persistent = -1
    ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
    ; http://php.net/mysqli.allow_local_infile
    ;mysqli.allow_local_infile = On
    ; Allow or prevent persistent links.
    ; http://php.net/mysqli.allow-persistent
    mysqli.allow_persistent = On
    ; Maximum number of links. -1 means no limit.
    ; http://php.net/mysqli.max-links
    mysqli.max_links = -1
    ; If mysqlnd is used: Number of cache slots for the internal result set cache
    ; http://php.net/mysqli.cache_size
    mysqli.cache_size = 2000
    ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
    ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
    ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
    ; at MYSQL_PORT.
    ; http://php.net/mysqli.default-port
    mysqli.default_port = 3306
    ; Default socket name for local MySQL connects. If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/mysqli.default-socket
    mysqli.default_socket =
    ; Default host for mysql_connect() (doesn't apply in safe mode).
    ; http://php.net/mysqli.default-host
    mysqli.default_host =
    ; Default user for mysql_connect() (doesn't apply in safe mode).
    ; http://php.net/mysqli.default-user
    mysqli.default_user =
    ; Default password for mysqli_connect() (doesn't apply in safe mode).
    ; Note that this is generally a *bad* idea to store passwords in this file.
    ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
    ; and reveal this password! And of course, any users with read access to this
    ; file will be able to reveal the password as well.
    ; http://php.net/mysqli.default-pw
    mysqli.default_pw =
    ; Allow or prevent reconnect
    mysqli.reconnect = Off
    [mysqlnd]
    ; Enable / Disable collection of general statistics by mysqlnd which can be
    ; used to tune and monitor MySQL operations.
    ; http://php.net/mysqlnd.collect_statistics
    mysqlnd.collect_statistics = On
    ; Enable / Disable collection of memory usage statistics by mysqlnd which can be
    ; used to tune and monitor MySQL operations.
    ; http://php.net/mysqlnd.collect_memory_statistics
    mysqlnd.collect_memory_statistics = Off
    ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.
    ; http://php.net/mysqlnd.net_cmd_buffer_size
    ;mysqlnd.net_cmd_buffer_size = 2048
    ; Size of a pre-allocated buffer used for reading data sent by the server in
    ; bytes.
    ; http://php.net/mysqlnd.net_read_buffer_size
    ;mysqlnd.net_read_buffer_size = 32768
    [OCI8]
    ; Connection: Enables privileged connections using external
    ; credentials (OCI_SYSOPER, OCI_SYSDBA)
    ; http://php.net/oci8.privileged-connect
    ;oci8.privileged_connect = Off
    ; Connection: The maximum number of persistent OCI8 connections per
    ; process. Using -1 means no limit.
    ; http://php.net/oci8.max-persistent
    ;oci8.max_persistent = -1
    ; Connection: The maximum number of seconds a process is allowed to
    ; maintain an idle persistent connection. Using -1 means idle
    ; persistent connections will be maintained forever.
    ; http://php.net/oci8.persistent-timeout
    ;oci8.persistent_timeout = -1
    ; Connection: The number of seconds that must pass before issuing a
    ; ping during oci_pconnect() to check the connection validity. When
    ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables
    ; pings completely.
    ; http://php.net/oci8.ping-interval
    ;oci8.ping_interval = 60
    ; Connection: Set this to a user chosen connection class to be used
    ; for all pooled server requests with Oracle 11g Database Resident
    ; Connection Pooling (DRCP). To use DRCP, this value should be set to
    ; the same string for all web servers running the same application,
    ; the database pool must be configured, and the connection string must
    ; specify to use a pooled server.
    ;oci8.connection_class =
    ; High Availability: Using On lets PHP receive Fast Application
    ; Notification (FAN) events generated when a database node fails. The
    ; database must also be configured to post FAN events.
    ;oci8.events = Off
    ; Tuning: This option enables statement caching, and specifies how
    ; many statements to cache. Using 0 disables statement caching.
    ; http://php.net/oci8.statement-cache-size
    ;oci8.statement_cache_size = 20
    ; Tuning: Enables statement prefetching and sets the default number of
    ; rows that will be fetched automatically after statement execution.
    ; http://php.net/oci8.default-prefetch
    ;oci8.default_prefetch = 100
    ; Compatibility. Using On means oci_close() will not close
    ; oci_connect() and oci_new_connect() connections.
    ; http://php.net/oci8.old-oci-close-semantics
    ;oci8.old_oci_close_semantics = Off
    [PostgreSQL]
    ; Allow or prevent persistent links.
    ; http://php.net/pgsql.allow-persistent
    pgsql.allow_persistent = On
    ; Detect broken persistent links always with pg_pconnect().
    ; Auto reset feature requires a little overheads.
    ; http://php.net/pgsql.auto-reset-persistent
    pgsql.auto_reset_persistent = Off
    ; Maximum number of persistent links. -1 means no limit.
    ; http://php.net/pgsql.max-persistent
    pgsql.max_persistent = -1
    ; Maximum number of links (persistent+non persistent). -1 means no limit.
    ; http://php.net/pgsql.max-links
    pgsql.max_links = -1
    ; Ignore PostgreSQL backends Notice message or not.
    ; Notice message logging require a little overheads.
    ; http://php.net/pgsql.ignore-notice
    pgsql.ignore_notice = 0
    ; Log PostgreSQL backends Notice message or not.
    ; Unless pgsql.ignore_notice=0, module cannot log notice message.
    ; http://php.net/pgsql.log-notice
    pgsql.log_notice = 0
    [Sybase-CT]
    ; Allow or prevent persistent links.
    ; http://php.net/sybct.allow-persistent
    sybct.allow_persistent = On
    ; Maximum number of persistent links. -1 means no limit.
    ; http://php.net/sybct.max-persistent
    sybct.max_persistent = -1
    ; Maximum number of links (persistent + non-persistent). -1 means no limit.
    ; http://php.net/sybct.max-links
    sybct.max_links = -1
    ; Minimum server message severity to display.
    ; http://php.net/sybct.min-server-severity
    sybct.min_server_severity = 10
    ; Minimum client message severity to display.
    ; http://php.net/sybct.min-client-severity
    sybct.min_client_severity = 10
    ; Set per-context timeout
    ; http://php.net/sybct.timeout
    ;sybct.timeout=
    ;sybct.packet_size
    ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure.
    ; Default: one minute
    ;sybct.login_timeout=
    ; The name of the host you claim to be connecting from, for display by sp_who.
    ; Default: none
    ;sybct.hostname=
    ; Allows you to define how often deadlocks are to be retried. -1 means "forever".
    ; Default: 0
    ;sybct.deadlock_retry_count=
    [bcmath]
    ; Number of decimal digits for all bcmath functions.
    ; http://php.net/bcmath.scale
    bcmath.scale = 0
    [browscap]
    ; http://php.net/browscap
    ;browscap = extra/browscap.ini
    [Session]
    ; Handler used to store/retrieve data.
    ; http://php.net/session.save-handler
    session.save_handler = files
    ; Argument passed to save_handler. In the case of files, this is the path
    ; where data files are stored. Note: Windows users have to change this
    ; variable in order to use PHP's session functions.
    ; The path can be defined as:
    ; session.save_path = "N;/path"
    ; where N is an integer. Instead of storing all the session files in
    ; /path, what this will do is use subdirectories N-levels deep, and
    ; store the session data in those directories. This is useful if you
    ; or your OS have problems with lots of files in one directory, and is
    ; a more efficient layout for servers that handle lots of sessions.
    ; NOTE 1: PHP will not create this directory structure automatically.
    ; You can use the script in the ext/session dir for that purpose.
    ; NOTE 2: See the section on garbage collection below if you choose to
    ; use subdirectories for session storage
    ; The file storage module creates files using mode 600 by default.
    ; You can change that by using
    ; session.save_path = "N;MODE;/path"
    ; where MODE is the octal representation of the mode. Note that this
    ; does not overwrite the process's umask.
    ; http://php.net/session.save-path
    ;session.save_path = "/tmp"
    ; Whether to use cookies.
    ; http://php.net/session.use-cookies
    session.use_cookies = 1
    ; http://php.net/session.cookie-secure
    ;session.cookie_secure =
    ; This option forces PHP to fetch and use a cookie for storing and maintaining
    ; the session id. We encourage this operation as it's very helpful in combating
    ; session hijacking when not specifying and managing your own session id. It is
    ; not the end all be all of session hijacking defense, but it's a good start.
    ; http://php.net/session.use-only-cookies
    session.use_only_cookies = 1
    ; Name of the session (used as cookie name).
    ; http://php.net/session.name
    session.name = PHPSESSID
    ; Initialize session on request startup.
    ; http://php.net/session.auto-start
    session.auto_start = 0
    ; Lifetime in seconds of cookie or, if 0, until browser is restarted.
    ; http://php.net/session.cookie-lifetime
    session.cookie_lifetime = 0
    ; The path for which the cookie is valid.
    ; http://php.net/session.cookie-path
    session.cookie_path = /
    ; The domain for which the cookie is valid.
    ; http://php.net/session.cookie-domain
    session.cookie_domain =
    ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
    ; http://php.net/session.cookie-httponly
    session.cookie_httponly =
    ; Handler used to serialize data. php is the standard serializer of PHP.
    ; http://php.net/session.serialize-handler
    session.serialize_handler = php
    ; Defines the probability that the 'garbage collection' process is started
    ; on every session initialization. The probability is calculated by using
    ; gc_probability/gc_divisor. Where session.gc_probability is the numerator
    ; and gc_divisor is the denominator in the equation. Setting this value to 1
    ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
    ; the gc will run on any give request.
    ; Default Value: 1
    ; Development Value: 1
    ; Production Value: 1
    ; http://php.net/session.gc-probability
    session.gc_probability = 1
    ; Defines the probability that the 'garbage collection' process is started on every
    ; session initialization. The probability is calculated by using the following equation:
    ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
    ; session.gc_divisor is the denominator in the equation. Setting this value to 1
    ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
    ; the gc will run on any give request. Increasing this value to 1000 will give you
    ; a 0.1% chance the gc will run on any give request. For high volume production servers,
    ; this is a more efficient approach.
    ; Default Value: 100
    ; Development Value: 1000
    ; Production Value: 1000
    ; http://php.net/session.gc-divisor
    session.gc_divisor = 1000
    ; After this number of seconds, stored data will be seen as 'garbage' and
    ; cleaned up by the garbage collection process.
    ; http://php.net/session.gc-maxlifetime
    session.gc_maxlifetime = 1440
    ; NOTE: If you are using the subdirectory option for storing session files
    ; (see session.save_path above), then garbage collection does *not*
    ; happen automatically. You will need to do your own garbage
    ; collection through a shell script, cron entry, or some other method.
    ; For example, the following script would is the equivalent of
    ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
    ; find /path/to/sessions -cmin +24 | xargs rm
    ; PHP 4.2 and less have an undocumented feature/bug that allows you to
    ; to initialize a session variable in the global scope.
    ; PHP 4.3 and later will warn you, if this feature is used.
    ; You can disable the feature and the warning separately. At this time,
    ; the warning is only displayed, if bug_compat_42 is enabled. This feature
    ; introduces some serious security problems if not handled correctly. It's
    ; recommended that you do not use this feature on production servers. But you
    ; should enable this on development servers and enable the warning as well. If you
    ; do not enable the feature on development servers, you won't be warned when it's
    ; used and debugging errors caused by this can be difficult to track down.
    ; Default Value: On
    ; Development Value: On
    ; Production Value: Off
    ; http://php.net/session.bug-compat-42
    session.bug_compat_42 = Off
    ; This setting controls whether or not you are warned by PHP when initializing a
    ; session value into the global space. session.bug_compat_42 must be enabled before
    ; these warnings can be issued by PHP. See the directive above for more information.
    ; Default Value: On
    ; Development Value: On
    ; Production Value: Off
    ; http://php.net/session.bug-compat-warn
    session.bug_compat_warn = Off
    ; Check HTTP Referer to invalidate externally stored URLs containing ids.
    ; HTTP_REFERER has to contain this substring for the session to be
    ; considered as valid.
    ; http://php.net/session.referer-check
    session.referer_check =
    ; How many bytes to read from the file.
    ; http://php.net/session.entropy-length
    ;session.entropy_length = 32
    ; Specified here to create the session id.
    ; http://php.net/session.entropy-file
    ; Defaults to /dev/urandom
    ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom
    ; If neither are found at compile time, the default is no entropy file.
    ; On windows, setting the entropy_length setting will activate the
    ; Windows random source (using the CryptoAPI)
    ;session.entropy_file = /dev/urandom
    ; Set to {nocache,private,public,} to determine HTTP caching aspects
    ; or leave this empty to avoid sending anti-caching headers.
    ; http://php.net/session.cache-limiter
    session.cache_limiter = nocache
    ; Document expires after n minutes.
    ; http://php.net/session.cache-expire
    session.cache_expire = 180
    ; trans sid support is disabled by default.
    ; Use of trans sid may risk your users security.
    ; Use this option with caution.
    ; - User may send URL contains active session ID
    ; to other person via. email/irc/etc.
    ; - URL that contains active session ID may be stored
    ; in publicly accessible computer.
    ; - User may access your site with the same session ID
    ; always using URL stored in browser's history or bookmarks.
    ; http://php.net/session.use-trans-sid
    session.use_trans_sid = 0
    ; Select a hash function for use in generating session ids.
    ; Possible Values
    ; 0 (MD5 128 bits)
    ; 1 (SHA-1 160 bits)
    ; This option may also be set to the name of any hash function supported by
    ; the hash extension. A list of available hashes is returned by the hash_algos()
    ; function.
    ; http://php.net/session.hash-function
    session.hash_function = 0
    ; Define how many bits are stored in each character when converting
    ; the binary hash data to something readable.
    ; Possible values:
    ; 4 (4 bits: 0-9, a-f)
    ; 5 (5 bits: 0-9, a-v)
    ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",")
    ; Default Value: 4
    ; Development Value: 5
    ; Production Value: 5
    ; http://php.net/session.hash-bits-per-character
    session.hash_bits_per_character = 5
    ; The URL rewriter will look for URLs in a defined set of HTML tags.
    ; form/fieldset are special; if you include them here, the rewriter will
    ; add a hidden <input> field with the info which is otherwise appended
    ; to URLs. If you want XHTML conformity, remove the form entry.
    ; Note that all valid entries require a "=", even if no value follows.
    ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
    ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
    ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
    ; http://php.net/url-rewriter.tags
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
    ; Enable upload progress tracking in $_SESSION
    ; Default Value: On
    ; Development Value: On
    ; Production Value: On
    ; http://php.net/session.upload-progress.enabled
    ;session.upload_progress.enabled = On
    ; Cleanup the progress information as soon as all POST data has been read
    ; (i.e. upload completed).
    ; Default Value: On
    ; Development Value: On
    ; Production Value: On
    ; http://php.net/session.upload-progress.cleanup
    ;session.upload_progress.cleanup = On
    ; A prefix used for the upload progress key in $_SESSION
    ; Default Value: "upload_progress_"
    ; Development Value: "upload_progress_"
    ; Production Value: "upload_progress_"
    ; http://php.net/session.upload-progress.prefix
    ;session.upload_progress.prefix = "upload_progress_"
    ; The index name (concatenated with the prefix) in $_SESSION
    ; containing the upload progress information
    ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS"
    ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS"
    ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS"
    ; http://php.net/session.upload-progress.name
    ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"
    ; How frequently the upload progress should be updated.
    ; Given either in percentages (per-file), or in bytes
    ; Default Value: "1%"
    ; Development Value: "1%"
    ; Production Value: "1%"
    ; http://php.net/session.upload-progress.freq
    ;session.upload_progress.freq = "1%"
    ; The minimum delay between updates, in seconds
    ; Default Value: 1
    ; Development Value: 1
    ; Production Value: 1
    ; http://php.net/session.upload-progress.min-freq
    ;session.upload_progress.min_freq = "1"
    [MSSQL]
    ; Allow or prevent persistent links.
    mssql.allow_persistent = On
    ; Maximum number of persistent links. -1 means no limit.
    mssql.max_persistent = -1
    ; Maximum number of links (persistent+non persistent). -1 means no limit.
    mssql.max_links = -1
    ; Minimum error severity to display.
    mssql.min_error_severity = 10
    ; Minimum message severity to display.
    mssql.min_message_severity = 10
    ; Compatibility mode with old versions of PHP 3.0.
    mssql.compatability_mode = Off
    ; Connect timeout
    ;mssql.connect_timeout = 5
    ; Query timeout
    ;mssql.timeout = 60
    ; Valid range 0 - 2147483647. Default = 4096.
    ;mssql.textlimit = 4096
    ; Valid range 0 - 2147483647. Default = 4096.
    ;mssql.textsize = 4096
    ; Limits the number of records in each batch. 0 = all records in one batch.
    ;mssql.batchsize = 0
    ; Specify how datetime and datetim4 columns are returned
    ; On => Returns data converted to SQL server settings
    ; Off => Returns values as YYYY-MM-DD hh:mm:ss
    ;mssql.datetimeconvert = On
    ; Use NT authentication when connecting to the server
    mssql.secure_connection = Off
    ; Specify max number of processes. -1 = library default
    ; msdlib defaults to 25
    ; FreeTDS defaults to 4096
    ;mssql.max_procs = -1
    ; Specify client character set.
    ; If empty or not set the client charset from freetds.conf is used
    ; This is only used when compiled with FreeTDS
    ;mssql.charset = "ISO-8859-1"
    [Assertion]
    ; Assert(expr); active by default.
    ; http://php.net/assert.active
    ;assert.active = On
    ; Issue a PHP warning for each failed assertion.
    ; http://php.net/assert.warning
    ;assert.warning = On
    ; Don't bail out by default.
    ; http://php.net/assert.bail
    ;assert.bail = Off
    ; User-function to be called if an assertion fails.
    ; http://php.net/assert.callback
    ;assert.callback = 0
    ; Eval the expression with current error_reporting(). Set to true if you want
    ; error_reporting(0) around the eval().
    ; http://php.net/assert.quiet-eval
    ;assert.quiet_eval = 0
    [COM]
    ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
    ; http://php.net/com.typelib-file
    ;com.typelib_file =
    ; allow Distributed-COM calls
    ; http://php.net/com.allow-dcom
    ;com.allow_dcom = true
    ; autoregister constants of a components typlib on com_load()
    ; http://php.net/com.autoregister-typelib
    ;com.autoregister_typelib = true
    ; register constants casesensitive
    ; http://php.net/com.autoregister-casesensitive
    ;com.autoregister_casesensitive = false
    ; show warnings on duplicate constant registrations
    ; http://php.net/com.autoregister-verbose
    ;com.autoregister_verbose = true
    ; The default character set code-page to use when passing strings to and from COM objects.
    ; Default: system ANSI code page
    ;com.code_page=
    [mbstring]
    ; language for internal character representation.
    ; http://php.net/mbstring.language
    ;mbstring.language = Japanese
    ; internal/script encoding.
    ; Some encoding cannot work as internal encoding.
    ; (e.g. SJIS, BIG5, ISO-2022-*)
    ; http://php.net/mbstring.internal-encoding
    ;mbstring.internal_encoding = EUC-JP
    ; http input encoding.
    ; http://php.net/mbstring.http-input
    ;mbstring.http_input = auto
    ; http output encoding. mb_output_handler must be
    ; registered as output buffer to function
    ; http://php.net/mbstring.http-output
    ;mbstring.http_output = SJIS
    ; enable automatic encoding translation according to
    ; mbstring.internal_encoding setting. Input chars are
    ; converted to internal encoding by setting this to On.
    ; Note: Do _not_ use automatic encoding translation for
    ; portable libs/applications.
    ; http://php.net/mbstring.encoding-translation
    ;mbstring.encoding_translation = Off
    ; automatic encoding detection order.
    ; auto means
    ; http://php.net/mbstring.detect-order
    ;mbstring.detect_order = auto
    ; substitute_character used when character cannot be converted
    ; one from another
    ; http://php.net/mbstring.substitute-character
    ;mbstring.substitute_character = none;
    ; overload(replace) single byte functions by mbstring functions.
    ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
    ; etc. Possible values are 0,1,2,4 or combination of them.
    ; For example, 7 for overload everything.
    ; 0: No overload
    ; 1: Overload mail() function
    ; 2: Overload str*() functions
    ; 4: Overload ereg*() functions
    ; http://php.net/mbstring.func-overload
    ;mbstring.func_overload = 0
    ; enable strict encoding detection.
    ;mbstring.strict_detection = Off
    ; This directive specifies the regex pattern of content types for which mb_output_handler()
    ; is activated.
    ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
    ;mbstring.http_output_conv_mimetype=
    [gd]
    ; Tell the jpeg decode to ignore warnings and try to create
    ; a gd image. The warning will then be displayed as notices
    ; disabled by default
    ; http://php.net/gd.jpeg-ignore-warning
    ;gd.jpeg_ignore_warning = 0
    [exif]
    ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
    ; With mbstring support this will automatically be converted into the encoding
    ; given by corresponding encode setting. When empty mbstring.internal_encoding
    ; is used. For the decode settings

    Hi, everything in the "Quick Reference" section should be commented out with ;
    You should change those settings further down in the php.ini file.
    Example:
    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
    display_errors = Off
    Last edited by adrianx (2013-07-26 12:32:02)

  • Short dump in VF01 - Syntax error in program "RKEAK9RECP3000001"

    Helo all,
    We recently copied our production client to a QA client and when we try to save an SD invoice (VF01), we get a short dump titled - Syntax error in program "RKEAK9RECP3000001".
    The dump long text states:
    "The Dictionary structure or table "K9RECP3000001" is either not active"
    " or does not exist."
    and
    NOTE in case of a SHORT DUMP:
    if the following perform statement should lead to a short dump, then
    the report stated in the short dump is missing (RKEAK9Rsssmmmnnnn)
    Check if table K9Rsssmmmnnn exists. If not it should be transported
    from the original system.
    Regenerate the missing reports by using transaction SE37, entering
    function KEDR_REGENERATE_ALL_REPORTS and pressing button 'Test' and
    'Execute'.
    but I tried to run function KEDR_REGENERATE_ALL_REPORTS in SE37 and the problem persists.
    Maybe I'm not running it correctly - there is no execute option when pressing "Test" so I enter the function and press F8, which takes me to a screen titled "Test function module" and then I execute.
    My suspicion is that table "K9RECP3000001" cannot be created or generated since it it a system specific naming convention K9RSSSCCC0001 in which SSS is system ID (in our case ECP is production and ECQ is QA) ans CCC is client number (300 in prod, and should be 286 in ECQ).
    Has anyone encountered this type of a problem and knows how to fix it?
    Needless to say, I looked at OSS notes, but did not find the solution there.
    Any thought will be appreciated,
    Yoel.

    Shalom Yoel,
    This problem may be caused by the fact that some derivation rules
    that were originally created once in a system have been transported
    into target system without transporting the dependent objects
    as well (the generated tables for the derivation rule entries).
    You can see this by execution of program RKEDRCHECK with only
    parameter 'Check in all clients' marked. You will then get
    inconsistent derivation steps (which refer to a generated table
    table for the rule entries that doesn't exist because it was
    not transported).
    There are two ways to solve the problem:
    1.) If you don't need these steps any more in derivation you can get
        rid of them by executing program RKEDRCHECK with both parameters
        marked ('Check in all clients' and 'Delete inconsistent steps').
    2.) If these steps should remain you have to retransport the missing
        tables from the source system in which these tables have to exist
        (creating transport requests for the customizing of derivation by
        pushing on the 'Transport' icon in the source system in transactions
        KEDR and KEPC).
    For each derivation step,the system generates a program RKEAK9R *
    and a table K9R+ System ID+ Mandant+ a number of five figures
    from the object number in KEDR.
    br, Guido

  • Basis SP 18 to 20, can not logon through SAPGUI - Syntax Error

    Hello Experts,
    We had started ECC6.0 SP18 to SP20 patches and now we are getting Syntax error in program "CL_WB_CROSSREFERENCE==========CP ". for most of the transactions executed.
    1. Job RDDIMPDP is also failing with message
    Program RDDIMPDP is running in client 000                                    
    Context TERNAL_INFOS does not contain any fields                     
    Context TERNAL_INFOS contains errors and could therefore not be generated     
    Context BANK_CTX_JC_REPORT modified                                           
    Internal session terminated with a runtime error (refer to ST22)         
    Job cancelled                                                   
    2. Here are the details of this short dump, as soon as we get the short dump we get message in the status bar saying "Context BANK_CTX_JC_REPORT modified".
    Error in the ABAP Application Program                                                                               
    The current ABAP program "SAPLSEWB" had to be terminated because it has                       
        come across a statement that unfortunately cannot be executed.                                                                               
    The following syntax error occurred in program                                                
         "CL_WB_CROSSREFERENCE==========CP " in include                                               
         "CL_WB_CROSSREFERENCE==========CM005 " in                                                    
        line 7:                                                                               
    ""PROGRAM-" expected, not "PROGNAME_""                                                        
    The include has been created and last changed by:                                             
        Created by: "SAP "                                                                               
    Last changed by: "PEARSONA "                                                                  
        Error in the ABAP Application Program                                                                               
    The current ABAP program "SAPLSEWB" had to be terminated because it has                       
        come across a statement that unfortunately cannot be executed.                                
    Error analysis                                                                               
    The following syntax error was found in the program                                           
         CL_WB_CROSSREFERENCE==========CP :                                                           
        ""PROGRAM-" expected, not "PROGNAME_""                                                        
    Trigger Location of Runtime Error                                                                 
        Program                                 SAPLSEWB                                              
        Include                                 LSEWBU07                                              
        Row                                     837                                                   
        Module type                             (FORM)                                                
        Module Name                             PROGRAM_ACTUALIZE                                     
    Source Code Extract                                                                               
    Line  SourceCde                                                                               
    807 * PROGRAM_ACTUALIZE, ADD_CHILDS und PG_COMPONENT verwendet                                  
      808                                                                               
    809   previous_id = '1'.                                                                        
      810   xtype = 'C'.                                                                               
    811   IF xprogram(4) = 'SAPL' OR xprogram+1 CS '/SAPL'.                                         
      812 *   Funktionsgruppennamen bestimmen                                                         
      813     l_program = xprogram.                                                                   
      814     CALL FUNCTION 'FUNCTION_INCLUDE_SPLIT'                                                  
      815       EXPORTING                                                                               
    816         program   = l_program                                                               
      817       IMPORTING                                                                               
    818         namespace = l_namespace                                                             
      819         group     = l_area                                                                  
      820       EXCEPTIONS                                                                               
    821         OTHERS    = 6.                                                                      
      822     IF sy-subrc = 0.                                                                        
      823       xtype+1(1) = 'F'.                                                                     
      824     ELSE.                                                                               
    825       xtype+1(1) = 'P'.                                                                     
      826     ENDIF.                                                                               
    827   ELSEIF current_treename(3) = 'CP_'.                                                       
      828     xtype+1(1) = 'O'.                                                                       
      829   ELSE.                                                                               
    830     xtype+1(1) = 'P'.                                                                       
      831   ENDIF.                                                                               
    832                                                                               
    833   IF without_crossreference IS INITIAL.                                                     
      834     IF scros_new_where_used_list = 'X' AND index_parallel EQ space.                         
      835 *     neuer Index Verwendungsnachweis                                                       
      836       lprogram = xprogram.                                                                  
    >>>>>       CALL METHOD cl_wb_crossreference=>program_index(                                      
      838         EXPORTING                                                                           
      839           p_name             = lprogram    " Programmname                                   
      840         IMPORTING                                                                           
      841           p_error            = l_error    " Fehler Index wurde nicht aufgebaut              
      842         EXCEPTIONS                                                                          
      843           program_name_empty = 1                                                            
      844           OTHERS             = 2                                                            
      845             ).                                                                               
    846       IF sy-subrc <> 0.                                                                     
      847 *        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno                                  
      848 *                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.                               
      849       ENDIF.                                                                               
    850     ENDIF.                                                                               
    851   ENDIF.                                                                               
    852                                                                   
    3. Tried to generate the program manually through SE38 -> CL_WB_CROSSREFERENCE==========CP  --> but it dumps with same message line 7:                                                                               
    ""PROGRAM-" expected, not "PROGNAME_"" 
    Appreciate your inputs in resolving this issue.
    Raised message with SAP support but didn't hear anything till now - so seeking your experise.
    Best Regards
    Davinder

    Hello Experts,
    Further investigation on system showed that we had implemented SNOTE 1374978 - which seems to be causing the problem.
    Now as Support packages (SPAM) has locked SNOTE transactions also - is there any way that we can deimplement the above sap note from our system.
    Thanks
    Davinder

  • Syntax error while creating a standard order

    Hi All,
    I created a projet in CMOD and than added the enhancement  V45A0002.The components shown as EXIT_SAPMV45A_002(Predefined sold to party when making the standard order),i double click on the exit and entered into the function module.After that i double clicked on the include ZXVVZU04 and entered in and wrote E_KUNNR=100171
    While activating i got error msg 'The last statement is not complete (period missing)." & i have saved inspite the error .After that i tried to create a order and program terminated error came after entering sold to party no. in sales order
    so now i have deactivated the project which i created in CMOD & deleted it aswell,than also i am getting the syntax error while making the order thru VA01.I want to come out of this please.
    I would be great ful if somebody helps me *** out of this syntax error.
    Thanks
    Rishi

    Hi Rishi
    As you are getting message that "The last statement is not complete (period missing)", check in your assigned project in CMOD the last statement , what is the last statement maintained in that project
    Secondly also check the closing period and the current period. as it is giving in the message that "The last statement is not complete (period missing)".So check the  current period and check the period maintained in the CMOD
    It would be better if you take ABAP'ers help . So  post in ABAP forum
    Regards
    Srinath

  • Syntax error when executing a process chain.

    Hi gurus,
    This is a weird problem that we have been facing since yesterday. In the transaction RSPC, we had created a process chain in Feb 09. It ran smoothly till yesterday. However when I try to schedule the process chain now, it gives me a dump stating  Syntax error in program "CL_RSDMD_IOBJ_U_TPL===========CP ".
    This same dump is generated whenever I try to display variant of one of the nodes of Process Chain.
    I tried checking the corresponding programs but in vain. I have no Idea why am I receiving the error.
    If anyone has faced this problem please post the same.
    The following is brief overview of the dump.
    Information on where terminated Termination occurred in the ABAP program
    "CL_RSBK_DTP_DATABASE==========CP" - in "COPY_FROM_DB". The main program was
    "RSPC_MAINTAIN ". 
    In the source code you have the termination point in line 166
    of the (Include) program "CL_RSBK_DTP_DATABASE==========CM003".
    Any help would be appreciated.
    Regards,
    Sree.

    Hi Rayapa,
    There is no Long text as such, however, there is a short text which I have mentioned in my question itself.
    And there is a What Happened
    which is as follows
    Error in the ABAP Application Program
    The current ABAP program "CL_RSBK_DTP_DATABASE==========CP" had to be
    terminated because it has
    come across a statement that unfortunately cannot be executed.
    The following syntax error occurred in program
    "CL_RSDMD_IOBJ_U_TPL===========CP " in include
    "CL_RSDMD_IOBJ_U_TPL===========CM00E " in
    line 4:
    "Field "P_BOOKMODE" is unknown. It is neither in one of the specified t"
    "ables nor defined by a "DATA" statement. "DATA" statement."
    The include has been created and last changed by:
    Created by: "SAP"
    Last changed by: "<My SAP user>"
    Error in the ABAP Application Program
    The current ABAP program "CL_RSBK_DTP_DATABASE==========CP" had to be
    terminated because it has
    come across a statement that unfortunately cannot be executed.
    thnkz n regards,
    Sree.
    Edited by: Sree Nair on Apr 3, 2009 12:10 PM

  • Syntax Error while applying support package stack 8

    I get the following short dump while I was applying support package stack 8.  I'm at the latest saint version 34
    Runtime Errors         SYNTAX_ERROR
    Date and Time          23.07.2009 14:09:27
    Short text
         Syntax error in program "CL_DYNPRO_PROPERTY_BAG========CP ".
    What happened?
         Error in the ABAP application program.
         The current ABAP program "SAPLSCR2" had to be interrupted because it con
         a statement that cannot be executed.
         In the include "CL_DYNPRO_PROPERTY_BAG========CM009 " in the line 176 of
          program "CL_DYNPRO_PROPERTY_BAG========CP " the following syntax
         errors occur:
         "The field "SPROP_C_TAG_CUSTOMPROPERTY" is unknown, but there is a fiel"
         "d with the similar name "SPROP_C_TAG_TOOLTIPTEXT". "SPROP_C_TAG_TOOLTI"
         "PTEXT"."
         Author and last person to change the include are:
         Author "SAP "
         Last changer "SAP "
    Error analysis
         The following syntax error was found in the program
          CL_DYNPRO_PROPERTY_BAG========CP :
         "The field "SPROP_C_TAG_CUSTOMPROPERTY" is unknown, but there is a fiel"
         "d with the similar name "SPROP_C_TAG_TOOLTIPTEXT". "SPROP_C_TAG_TOOLTI"
         "PTEXT"."
    Trigger Location of Runtime Error
         Program                                 SAPLSCR2
         Include                                 LSCR2U47
         Row                                     31
         Module type                             (FUNCTION)
         Module Name                             RS_SCRP_PROP_ADD_TO_PROP_LIST
    1 FUNCTION RS_SCRP_PROP_ADD_TO_PROP_LIST.
    2 *"----
    3 ""Lokale Schnittstelle:
    4 *"  IMPORTING
    5 *"     REFERENCE(P_TEXTFIELD) TYPE  D021S-FNAM OPTIONAL
    6 *"     REFERENCE(P_TOOLTIPTEXT_TEXTELEM) TYPE  CHAR3 OPTIONAL
    7 *"     REFERENCE(P_TOOLTIPTEXT_VARIABLE) TYPE  D021S-FNAM OPTIONAL
    8 *"     REFERENCE(P_KEEPTAB) TYPE  SEU_BOOL OPTIONAL
    9 *"     REFERENCE(P_DISABLEIMPLICITLABELS) TYPE  SEU_BOOL OPTIONAL
    10 *"     REFERENCE(P_BARCODEINPUT) TYPE  SEU_BOOL OPTIONAL
    11 *"  CHANGING
    12 *"     REFERENCE(P_PROP_LIST) TYPE  PROP_LIST
    13 *"----
    14
    15 data: l_prop type prop_line,
    16       l_prop_list type prop_list,
    17       l_string type prop_str.
    18
    19 * Property TextField
    20 * -
    21
    22 if p_textfield is supplied.
    23   clear l_prop_list.
    24   clear l_prop.
    25   l_prop-name   = sprop_c_tag_textfield_name.
    26   l_prop-syntax = sprop_c_syntax_content .
    27   l_prop-value  = p_textfield.
    28   append l_prop to l_prop_list.
    29 * Zusammensetzen eines Strings der Form
    30 * <Name>value_1</Name> ... <Name>value_n</Name>
    >>   call method cl_dynpro_property_bag=>fill_prop_list_into_properties
    32     exporting
    33       prop_list  = l_prop_list
    34     importing
    35       properties = l_string.
    36 * Property-Eintrag zusammensetzen
    37   clear l_prop.
    38   l_prop-name   = sprop_c_tag_textfield.
    39   l_prop-type   = sprop_c_type_string.
    40   l_prop-syntax = sprop_c_syntax_content .
    41   l_prop-value  = l_string.
    42 * Property-Eintrag in PROP_LIST aufnehmen/ersetzen
    43   read table p_prop_list transporting no fields
    44       with key name = l_prop-name.
    45   if sy-subrc = 0.
    46     modify p_prop_list index sy-tabix
    47         from l_prop.
    48   else.
    49     append l_prop to p_prop_list.
    50  endif.
    Can anyone help me?  I now get the same error with executing other transactions as well.

    Hi,
    Please let us know the component which you are trying to apply. Is it BASIS or ABAP or BW and also let us know the version?
    I hope you are applying the BW patch 8, as per SAP's recommendation we need to apply both 8 an 9 patch of BW at the same time. If not we need to apply some notes which you could find in the service market place. Once you apply the notes, you can proceed with the SP application.
    Regards,
    Varadhu

  • Syntax error

    Hi abappers
    I am using the following code in my program.
    i  m getting a syntax error that i do not understand? can any body help me out with this.
    Regards
    Narendiran Rathinavelu
    *& Report  ZTEST_RECUPLOAD
    REPORT  ZTEST_RECUPLOAD.
    *include bdcrecx1.
    ******************Selection screen************************************
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-T01 .
    PARAMETERS P_FILE   TYPE RLGRAP-FILENAME OBLIGATORY.
    PARAMETERS P_SESSN  TYPE APQI-GROUPID DEFAULT 'RECURRING'.
    PARAMETERS P_SESSN2 TYPE APQI-GROUPID DEFAULT 'RECURRING_E'.
    SELECTION-SCREEN END OF BLOCK 1.
    ********************Type declaration**********************************
    *type for data input table
    TYPES : BEGIN OF TY_DATA,
            BUKRS    TYPE T001-BUKRS,         "Company code
            BLART    TYPE BKPF-BLART,         "Document type
           BUDAT    TYPE BKPF-BUDAT,         "Posting date
            DBBDT    TYPE BKDF-DBBDT,         "First run
            DBATR    TYPE BKDF-DBATR,         "Next run
            DBEDT    TYPE BKDF-DBEDT,         "last run
            DBMON    TYPE BKDF-DBMON,         "Run frequency
            DBTAG    TYPE BKDF-DBTAG,         "Run date
           DBZHL    TYPE BKDF-DBZHL,         "no of runs
            XBLNR    TYPE BKPF-XBLNR,         "reference(site)
            BKTXT    TYPE BKPF-BKTXT,         "document header data
           USNAM    TYPE BKPF-USNAM,         "User name
           CPUDT    TYPE BKPF-CPUDT,         "Entry date
            BSCHL_1  TYPE BSEG-BSCHL,         "Posting key 1 item
            HKONT_1  TYPE BSEG-HKONT,         "Account 1 item
            DESC_1   TYPE CHAR40,             "Description vendor/GL 1 item
            MWSKZ_1  TYPE BSEG-MWSKZ,         "Tax code 1 item
           MWSTS1_1 TYPE BSEG-MWSTS,         "Tax Amount 1 item
            MWSTS2_1 TYPE BSEG-MWSTS,         "Amount is local currency 1 item
           MWSTS3_1 TYPE BSEG-MWSTS,         "Amount is foreign currency 1 item
            SGTXT_1  TYPE BSEG-SGTXT,         "Item text 1 item
            ZUONR_1  TYPE BSEG-ZUONR,         "Assignment 1 item
            BSCHL_2  TYPE BSEG-BSCHL,         "Posting key 2 item
            HKONT_2  TYPE BSEG-HKONT,         "Account 2 item
            DESC_2   TYPE CHAR40,             "Description vendor/GL 2 item
            MWSKZ_2  TYPE BSEG-MWSKZ,         "Tax code 2 item
           MWSTS1_2 TYPE BSEG-MWSTS,         "Tax Amount 2 item
            MWSTS2_2 TYPE BSEG-MWSTS,         "Amount is local currency 2 item
           MWSTS3_2 TYPE BSEG-MWSTS,         "Amount is foreign currency 2 item
            KOSTL    TYPE COBL-KOSTL,         "Cost center
            AUFNR    TYPE COBL-AUFNR,         "Internal order number
            SGTXT_2  TYPE BSEG-SGTXT,         "Item text 2 item
            ZUONR_2  TYPE BSEG-ZUONR,         "Assignment 2 item
          END OF TY_DATA.
    *type for data error table
    TYPES : BEGIN OF TY_ERROR,
             BUKRS    TYPE T001-BUKRS,         "Company code
            BLART    TYPE BKPF-BLART,         "Document type
           BUDAT    TYPE BKPF-BUDAT,         "Posting date
            DBBDT    TYPE BKDF-DBBDT,         "First run
            DBATR    TYPE BKDF-DBATR,         "Next run
            DBEDT    TYPE BKDF-DBEDT,         "last run
            DBMON    TYPE BKDF-DBMON,         "Run frequency
            DBTAG    TYPE BKDF-DBTAG,         "Run date
           DBZHL    TYPE BKDF-DBZHL,         "no of runs
            XBLNR    TYPE BKPF-XBLNR,         "reference(site)
            BKTXT    TYPE BKPF-BKTXT,         "document header data
           USNAM    TYPE BKPF-USNAM,         "User name
           CPUDT    TYPE BKPF-CPUDT,         "Entry date
            BSCHL_1  TYPE BSEG-BSCHL,         "Posting key 1 item
            HKONT_1  TYPE BSEG-HKONT,         "Account 1 item
            DESC_1   TYPE CHAR40,             "Description vendor/GL 1 item
            MWSKZ_1  TYPE BSEG-MWSKZ,         "Tax code 1 item
           MWSTS1_1 TYPE BSEG-MWSTS,         "Tax Amount 1 item
            MWSTS2_1 TYPE BSEG-MWSTS,         "Amount is local currency 1 item
           MWSTS3_1 TYPE BSEG-MWSTS,         "Amount is foreign currency 1 item
            SGTXT_1  TYPE BSEG-SGTXT,         "Item text 1 item
            ZUONR_1  TYPE BSEG-ZUONR,         "Assignment 1 item
            BSCHL_2  TYPE BSEG-BSCHL,         "Posting key 2 item
            HKONT_2  TYPE BSEG-HKONT,         "Account 2 item
            DESC_2   TYPE CHAR40,             "Description vendor/GL 2 item
            MWSKZ_2  TYPE BSEG-MWSKZ,         "Tax code 2 item
           MWSTS1_2 TYPE BSEG-MWSTS,         "Tax Amount 2 item
            MWSTS2_2 TYPE BSEG-MWSTS,         "Amount is local currency 2 item
           MWSTS3_2 TYPE BSEG-MWSTS,         "Amount is foreign currency 2 item
            KOSTL    TYPE COBL-KOSTL,         "Cost center
            AUFNR    TYPE COBL-AUFNR,         "Internal order number
            SGTXT_2  TYPE BSEG-SGTXT,         "Item text 2 item
            ZUONR_2  TYPE BSEG-ZUONR,         "Assignment 2 item
          END OF TY_ERROR.
    ********************Data declaration***********************************
    DATA : T_DATA TYPE TABLE OF TY_DATA,   "Table to upload correct entries
           T_ERROR TYPE TABLE OF TY_ERROR. "Table to upload error data
    DATA : W_DATA TYPE TY_DATA,            "workarea for t_data
           W_ERROR TYPE TY_ERROR.          "workarea for t_error
    DATA : T_BDCDATA TYPE TABLE OF BDCDATA,
           W_BDCDATA TYPE BDCDATA.
    DATA : T_SEL_FILE TYPE FILETABLE,
           W_RETURN_CODE TYPE I VALUE '0',
           W_SEL_FILE LIKE LINE OF T_SEL_FILE.
    DATA : T_DATAIN TYPE TABLE OF TY_DATA,
           W_DATAIN TYPE string.
    DATA : W_FILE TYPE STRING.
    ********************At Selection Screen*********************************
    *selection screen validations
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
        EXPORTING
          WINDOW_TITLE            = 'Select File for upload'
       DEFAULT_EXTENSION       =
       DEFAULT_FILENAME        =
          FILE_FILTER             = '*.xls'
       WITH_ENCODING           =
       INITIAL_DIRECTORY       =
       MULTISELECTION          =
        CHANGING
          FILE_TABLE              = T_SEL_FILE
          RC                      = W_RETURN_CODE
       USER_ACTION             =
       FILE_ENCODING           =
        EXCEPTIONS
          FILE_OPEN_DIALOG_FAILED = 1
          CNTL_ERROR              = 2
          ERROR_NO_GUI            = 3
          NOT_SUPPORTED_BY_GUI    = 4
          OTHERS                  = 5
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF W_RETURN_CODE <> -1.
        READ TABLE T_SEL_FILE INTO W_SEL_FILE INDEX 1.
        CLEAR P_FILE.
        MOVE W_SEL_FILE TO P_FILE.
      ENDIF.
    *at selection screen
    AT SELECTION-SCREEN ON P_SESSN.
      IF P_SESSN IS INITIAL.
        P_SESSN = 'RECURRING'.
      ENDIF.
    AT SELECTION-SCREEN ON P_SESSN2.
      IF P_SESSN2 IS INITIAL.
        P_SESSN2 = 'RECURRING_E'.
      ENDIF.
    *********************Start of Selection ****************************
    START-OF-SELECTION.
      OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.
    *error message when file not found.
      IF SY-SUBRC <> 0.
        MESSAGE 'File Not Found' TYPE 'E'.
      ENDIF.
      DO.
        READ DATASET P_FILE INTO w_datain.
        IF SY-SUBRC EQ 0.
          perform pre_process_record using w_datain
                                     changing w_data.
          PERFORM VALIDATE_DATA TABLES T_DATA
                                       T_ERROR
                                USING  W_DATA.
        ELSE.
          EXIT.
        ENDIF.
      ENDDO.
      CLOSE DATASET P_FILE.
    *check if any error has occured.
      IF T_ERROR[] IS NOT INITIAL.
        PERFORM FILL_BDC_TABLE TABLES T_ERROR
                                      T_BDCDATA
                               USING  P_SESSN2.
      ENDIF.
    *Check if any records are present to be uploaded.
      IF T_DATA[] IS NOT INITIAL.
        PERFORM FILL_BDC_TABLE TABLES T_DATA
                                      T_BDCDATA
                               USING  P_SESSN.
      ELSE.
        WRITE :/ 'No Correct Records were found to create session in SM35',
               / 'Please Check the File'.
      ENDIF.
    *&      Form  validate_data
          Sub routine to check correctness of the uploaded data.
         -->P_T_DATA  table to upload correct entries
         -->P_T_ERROR table to upload erroneous entries
         -->P_W_DATA  current record
    FORM VALIDATE_DATA  TABLES   P_T_DATA STRUCTURE  W_DATA
                                 P_T_ERROR STRUCTURE W_ERROR
                        USING    P_W_DATA.
      DATA : L_W_LIFNR TYPE LFA1-LIFNR,
             L_W_SAKNR TYPE SKA1-SAKNR.
      DATA:  L_W_DATA  TYPE TY_DATA,
             L_W_ERROR TYPE TY_ERROR.
      MOVE P_W_DATA TO L_W_DATA.
      DATA : L_FG_ERROR TYPE C,
             L_W_DATE   TYPE SY-DATUM.
      CONSTANTS : C_X       TYPE C VALUE 'X',
                  C_O2CA(4) TYPE C VALUE 'O2CA',
                  C_ZK_1(2) TYPE C VALUE 'ZK',
                  C_ZK_2(2) TYPE C VALUE 'zk',
                  C_NUM(17) TYPE C VALUE '01234567890/.-, ',
                  C_31(2)   TYPE C VALUE '31',
                  C_40(2)   TYPE C VALUE '40'.
      L_FG_ERROR = SPACE.
      DO.
    *check document type is 'ZK'
        IF NOT L_W_DATA-BLART NE C_ZK_1 OR
           L_W_DATA-BLART NE C_ZK_2.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check 1 item text fields are filled by numeric value.
        IF NOT L_W_DATA-SGTXT_1 CO C_NUM.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check 2 item text fields are filled by date.
        MOVE L_W_DATA-SGTXT_2 TO L_W_DATE.
        CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
          EXPORTING
            DATE                      = L_W_DATE
          EXCEPTIONS
            PLAUSIBILITY_CHECK_FAILED = 1
            OTHERS                    = 2.
        IF SY-SUBRC <> 0.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check first posting key is '31'
        IF NOT L_W_DATA-BSCHL_1 EQ C_31.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check second posting key is '40'
        IF NOT L_W_DATA-BSCHL_2 EQ C_40.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check valid Vendor
        SELECT SINGLE LIFNR FROM LFA1 INTO L_W_LIFNR
                            WHERE LIFNR = L_W_DATA-HKONT_1.
        IF SY-SUBRC <> 0.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check valid G/L account.
        SELECT SINGLE SAKNR FROM SKA1 INTO L_W_SAKNR
                            WHERE KTOPL = C_O2CA AND
                                  SAKNR = L_W_DATA-HKONT_2.
        IF SY-SUBRC <> 0.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check 1 item assignment contains numeric value
        IF NOT L_W_DATA-ZUONR_1 CO C_NUM.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check 2 item assigment contains date value
        MOVE L_W_DATA-ZUONR_2 TO L_W_DATE.
        CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
          EXPORTING
            DATE                      = L_W_DATE
          EXCEPTIONS
            PLAUSIBILITY_CHECK_FAILED = 1
            OTHERS                    = 2.
        IF SY-SUBRC <> 0.
          L_FG_ERROR = C_X.
          EXIT.
        ENDIF.
    *check if no error has occured
        IF NOT L_FG_ERROR EQ C_X.
          EXIT.
        ENDIF.
      ENDDO.
    *check error flag and insert error text.
      CASE L_FG_ERROR.
        WHEN C_X.                        "When error has occured.
          APPEND L_W_DATA TO P_T_ERROR.
        WHEN OTHERS.                     "When no error has occured.
          APPEND L_W_DATA TO P_T_DATA.
      ENDCASE.
    ENDFORM.                    " validate_data
    *&      Form  download_error_log
          Sub routine to download the error log
         -->P_T_ERROR  error log
    FORM DOWNLOAD_ERROR_LOG  TABLES   P_T_ERROR STRUCTURE W_ERROR.
      DATA : L_FILENAME TYPE STRING,
             L_PATH     TYPE STRING,
             L_FULLPATH TYPE STRING.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
        EXPORTING
          WINDOW_TITLE         = 'Save the Error log'
        CHANGING
          FILENAME             = L_FILENAME
          PATH                 = L_PATH
          FULLPATH             = L_FULLPATH
        EXCEPTIONS
          CNTL_ERROR           = 1
          ERROR_NO_GUI         = 2
          NOT_SUPPORTED_BY_GUI = 3
          OTHERS               = 4.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CHECK L_FULLPATH IS NOT INITIAL.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = L_FULLPATH
          FILETYPE                = 'ASC'
          WRITE_FIELD_SEPARATOR   = 'X'
        TABLES
          DATA_TAB                = P_T_ERROR
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " download_error_log
    *&      Form  fill_bdc_table
          bdc session is created in SM35
         -->P_T_DATA     correct data
         -->P_T_BDCDATA  bdcdata
         -->P_P_SESSN    session name
    FORM FILL_BDC_TABLE  TABLES   P_T_DATA STRUCTURE W_DATA
                                  P_T_BDCDATA STRUCTURE BDCDATA
                         USING    P_P_SESSN.
      DATA : L_W_DATA TYPE TY_DATA.    "workarea for t_data
      CONSTANTS: C_EUR(3) TYPE C VALUE 'EUR'.
    *open batch
      PERFORM OPEN_GROUP USING P_P_SESSN.
      LOOP AT P_T_DATA INTO L_W_DATA.
    *clear the bdc table
        REFRESH P_T_BDCDATA.
    *initial screen
        PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
                           USING  'SAPMF05A' '0106'.
        PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BKPF-WAERS',
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00',            "enter
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BUKRS' L_W_DATA-BUKRS,   "company code
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBBDT' L_W_DATA-DBBDT,   "first run on
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBATR' L_W_DATA-DBATR,   "next run on
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBEDT' L_W_DATA-DBEDT,   "last run on
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBMON' L_W_DATA-DBMON,   "run frequency
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBTAG' L_W_DATA-DBTAG,   "run date
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BLART' L_W_DATA-BLART,   "document type
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-WAERS' C_EUR,            "currency
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-XBLNR' L_W_DATA-XBLNR,   "reference
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BKTXT' L_W_DATA-BKTXT,   "document header data
                  BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_1,"posting key
                  BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_1."account no
    *second screen (First line item)
        PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
                           USING 'SAPMF05A' '0302'.
        PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWKO',
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00',              "enter
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_1,  "amount in LC
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_1,   "tax code
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_1,   "assignment
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_1,   "item level text
                  BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_2,  "posting key
                  BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_2.  "account no
    *third screen (Second line item)
        PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
                           USING 'SAPMF05A' '0300'.
        PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BSEG-EBELN',
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=AB',              "overview button
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_2,  "amount in LC
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_2,   "tax code
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_2,   "assigment
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_2.   "item text
    *fourth screen (pop up)
        PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
                           USING 'SAPLKACB' '0002'.
        PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'COBL-KOSTL',
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=ENTE',            "ok button
                  BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-KOSTL' L_W_DATA-KOSTL,     "cost center
                  BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-AUFNR' L_W_DATA-AUFNR.     "order number
    *fifth screen
        PERFORM BDC_FIELD TABLES P_T_BDCDATA
                          USING 'SAPMF05A' '0070'.
        PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWBS',
                  BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=BU'.              "save document
        PERFORM BDC_INSERT TABLES P_T_BDCDATA
                            USING 'ZREC_ENTRY'.
      ENDLOOP.
    *close the batch.
      PERFORM CLOSE_GROUP.
    ENDFORM.                    " fill_bdc_table
    *&      Form  bdc_dynpro
          bdc screen insert sub routine
         -->P_T_BDCDATA  BDC table
         -->P_PROGRAM    Program name
         -->P_SCREEN     Screen no
    FORM BDC_DYNPRO  TABLES   P_T_BDCDATA STRUCTURE BDCDATA
                     USING    VALUE(P_PROGRAM)
                              VALUE(P_SCREEN).
      CONSTANTS C_X TYPE C VALUE 'X'.
      DATA L_W_BDCDATA TYPE BDCDATA.
      L_W_BDCDATA-PROGRAM = P_PROGRAM.
      L_W_BDCDATA-DYNPRO = P_SCREEN.
      L_W_BDCDATA-DYNBEGIN = C_X.
      APPEND L_W_BDCDATA TO P_T_BDCDATA.
    ENDFORM.                    " bdc_dynpro
    *&      Form  bdc_field
          bdc field screen routine
         -->P_T_BDCDATA  BDC table
         -->P_FIELD    Field name
         -->P_VALUE      Value
    FORM BDC_FIELD  TABLES   P_T_BDCDATA STRUCTURE BDCDATA
                    USING    VALUE(P_FIELD)
                             VALUE(P_VALUE).
      DATA L_W_BDCDATA TYPE BDCDATA.     "Work area
      L_W_BDCDATA-FNAM = P_FIELD.
      L_W_BDCDATA-FVAL = P_VALUE.
      APPEND L_W_BDCDATA TO P_T_BDCDATA.
    ENDFORM.                    " bdc_field
    *&      Form  open_group
          bdc  open group in sm35
         -->P_P_SESSN  session name
    FORM OPEN_GROUP  USING    P_P_SESSN.
      CONSTANTS C_X TYPE C VALUE 'X'.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          CLIENT              = SY-MANDT
          GROUP               = P_P_SESSN
          KEEP                = C_X
          USER                = SY-UNAME
          PROG                = SY-CPROG
        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.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " open_group
    *&      Form  bdc_insert
          bdc insert in sm35
         -->P_T_BDCDATA  bdcdata table
         -->P_tcode      transaction
    FORM BDC_INSERT  TABLES   P_T_BDCDATA STRUCTURE BDCDATA
                     USING    VALUE(P_TCODE).
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE            = P_TCODE
        TABLES
          DYNPROTAB        = P_T_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.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " bdc_insert
    *&      Form  close_group
          bdc close group in sm35
    FORM CLOSE_GROUP .
      CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
          NOT_OPEN    = 1
          QUEUE_ERROR = 2
          OTHERS      = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " close_group
    *&      Form  pre_process_record
          text
         -->P_W_DATAIN  text
         <--P_W_DATA  text
    FORM pre_process_record  USING    P_W_DATAIN
                             CHANGING P_W_DATA.
    move p_w_datain to p_w_data-bukrs.
    ENDFORM.                    " pre_process_record

    copy paste this code
    *& Report ZTEST_RECUPLOAD
    REPORT ZTEST_RECUPLOAD.
    *include bdcrecx1.
    *******************Selection screen*************************************
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-T01 .
    PARAMETERS P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.
    PARAMETERS P_SESSN TYPE APQI-GROUPID DEFAULT 'RECURRING'.
    PARAMETERS P_SESSN2 TYPE APQI-GROUPID DEFAULT 'RECURRING_E'.
    SELECTION-SCREEN END OF BLOCK 1.
    *********************Type declaration***********************************
    *type for data input table
    TYPES : BEGIN OF TY_DATA,
    BUKRS TYPE T001-BUKRS, "Company code
    BLART TYPE BKPF-BLART, "Document type
    * BUDAT TYPE BKPF-BUDAT, "Posting date
    DBBDT TYPE BKDF-DBBDT, "First run
    DBATR TYPE BKDF-DBATR, "Next run
    DBEDT TYPE BKDF-DBEDT, "last run
    DBMON TYPE BKDF-DBMON, "Run frequency
    DBTAG TYPE BKDF-DBTAG, "Run date
    * DBZHL TYPE BKDF-DBZHL, "no of runs
    XBLNR TYPE BKPF-XBLNR, "reference(site)
    BKTXT TYPE BKPF-BKTXT, "document header data
    * USNAM TYPE BKPF-USNAM, "User name
    * CPUDT TYPE BKPF-CPUDT, "Entry date
    BSCHL_1 TYPE BSEG-BSCHL, "Posting key 1 item
    HKONT_1 TYPE BSEG-HKONT, "Account 1 item
    DESC_1 TYPE CHAR40, "Description vendor/GL 1 item
    MWSKZ_1 TYPE BSEG-MWSKZ, "Tax code 1 item
    * MWSTS1_1 TYPE BSEG-MWSTS, "Tax Amount 1 item
    MWSTS2_1 TYPE BSEG-MWSTS, "Amount is local currency 1 item
    * MWSTS3_1 TYPE BSEG-MWSTS, "Amount is foreign currency 1 item
    SGTXT_1 TYPE BSEG-SGTXT, "Item text 1 item
    ZUONR_1 TYPE BSEG-ZUONR, "Assignment 1 item
    BSCHL_2 TYPE BSEG-BSCHL, "Posting key 2 item
    HKONT_2 TYPE BSEG-HKONT, "Account 2 item
    DESC_2 TYPE CHAR40, "Description vendor/GL 2 item
    MWSKZ_2 TYPE BSEG-MWSKZ, "Tax code 2 item
    ** MWSTS1_2 TYPE BSEG-MWSTS, "Tax Amount 2 item
    MWSTS2_2 TYPE BSEG-MWSTS, "Amount is local currency 2 item
    * MWSTS3_2 TYPE BSEG-MWSTS, "Amount is foreign currency 2 item
    KOSTL TYPE COBL-KOSTL, "Cost center
    AUFNR TYPE COBL-AUFNR, "Internal order number
    SGTXT_2 TYPE BSEG-SGTXT, "Item text 2 item
    ZUONR_2 TYPE BSEG-ZUONR, "Assignment 2 item
    END OF TY_DATA.
    *type for data error table
    TYPES : BEGIN OF TY_ERROR,
    BUKRS TYPE T001-BUKRS, "Company code
    BLART TYPE BKPF-BLART, "Document type
    * BUDAT TYPE BKPF-BUDAT, "Posting date
    DBBDT TYPE BKDF-DBBDT, "First run
    DBATR TYPE BKDF-DBATR, "Next run
    DBEDT TYPE BKDF-DBEDT, "last run
    DBMON TYPE BKDF-DBMON, "Run frequency
    DBTAG TYPE BKDF-DBTAG, "Run date
    * DBZHL TYPE BKDF-DBZHL, "no of runs
    XBLNR TYPE BKPF-XBLNR, "reference(site)
    BKTXT TYPE BKPF-BKTXT, "document header data
    * USNAM TYPE BKPF-USNAM, "User name
    * CPUDT TYPE BKPF-CPUDT, "Entry date
    BSCHL_1 TYPE BSEG-BSCHL, "Posting key 1 item
    HKONT_1 TYPE BSEG-HKONT, "Account 1 item
    DESC_1 TYPE CHAR40, "Description vendor/GL 1 item
    MWSKZ_1 TYPE BSEG-MWSKZ, "Tax code 1 item
    * MWSTS1_1 TYPE BSEG-MWSTS, "Tax Amount 1 item
    MWSTS2_1 TYPE BSEG-MWSTS, "Amount is local currency 1 item
    * MWSTS3_1 TYPE BSEG-MWSTS, "Amount is foreign currency 1 item
    SGTXT_1 TYPE BSEG-SGTXT, "Item text 1 item
    ZUONR_1 TYPE BSEG-ZUONR, "Assignment 1 item
    BSCHL_2 TYPE BSEG-BSCHL, "Posting key 2 item
    HKONT_2 TYPE BSEG-HKONT, "Account 2 item
    DESC_2 TYPE CHAR40, "Description vendor/GL 2 item
    MWSKZ_2 TYPE BSEG-MWSKZ, "Tax code 2 item
    * MWSTS1_2 TYPE BSEG-MWSTS, "Tax Amount 2 item
    MWSTS2_2 TYPE BSEG-MWSTS, "Amount is local currency 2 item
    * MWSTS3_2 TYPE BSEG-MWSTS, "Amount is foreign currency 2 item
    KOSTL TYPE COBL-KOSTL, "Cost center
    AUFNR TYPE COBL-AUFNR, "Internal order number
    SGTXT_2 TYPE BSEG-SGTXT, "Item text 2 item
    ZUONR_2 TYPE BSEG-ZUONR, "Assignment 2 item
    END OF TY_ERROR.
    *********************Data declaration************************************
    DATA : T_DATA TYPE TABLE OF TY_DATA, "Table to upload correct entries
    T_ERROR TYPE TABLE OF TY_ERROR. "Table to upload error data
    DATA : W_DATA type TY_DATA, "workarea for t_data
    W_ERROR TYPE TY_ERROR. "workarea for t_error
    DATA : T_BDCDATA TYPE TABLE OF BDCDATA,
    W_BDCDATA TYPE BDCDATA.
    DATA : T_SEL_FILE TYPE FILETABLE,
    W_RETURN_CODE TYPE I VALUE '0',
    W_SEL_FILE LIKE LINE OF T_SEL_FILE.
    DATA : T_DATAIN TYPE TABLE OF TY_DATA,
    W_DATAIN TYPE string.
    DATA : W_FILE TYPE STRING.
    *********************At Selection Screen**********************************
    *selection screen validations
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
    WINDOW_TITLE = 'Select File for upload'
    * DEFAULT_EXTENSION =
    * DEFAULT_FILENAME =
    FILE_FILTER = '*.xls'
    * WITH_ENCODING =
    * INITIAL_DIRECTORY =
    * MULTISELECTION =
    CHANGING
    FILE_TABLE = T_SEL_FILE
    RC = W_RETURN_CODE
    * USER_ACTION =
    * FILE_ENCODING =
    EXCEPTIONS
    FILE_OPEN_DIALOG_FAILED = 1
    CNTL_ERROR = 2
    ERROR_NO_GUI = 3
    NOT_SUPPORTED_BY_GUI = 4
    OTHERS = 5
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    IF W_RETURN_CODE <> -1.
    READ TABLE T_SEL_FILE INTO W_SEL_FILE INDEX 1.
    CLEAR P_FILE.
    MOVE W_SEL_FILE TO P_FILE.
    ENDIF.
    *at selection screen
    AT SELECTION-SCREEN ON P_SESSN.
    IF P_SESSN IS INITIAL.
    P_SESSN = 'RECURRING'.
    ENDIF.
    AT SELECTION-SCREEN ON P_SESSN2.
    IF P_SESSN2 IS INITIAL.
    P_SESSN2 = 'RECURRING_E'.
    ENDIF.
    *********************Start of Selection ****************************
    START-OF-SELECTION.
    OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.
    *error message when file not found.
    IF SY-SUBRC <> 0.
    MESSAGE 'File Not Found' TYPE 'E'.
    ENDIF.
    DO.
    READ DATASET P_FILE INTO w_datain.
    IF SY-SUBRC EQ 0.
    perform pre_process_record using w_datain
    changing w_data.
    PERFORM VALIDATE_DATA TABLES T_DATA
    T_ERROR
    USING W_DATA.
    ELSE.
    EXIT.
    ENDIF.
    ENDDO.
    CLOSE DATASET P_FILE.
    *check if any error has occured.
    IF T_ERROR[] IS NOT INITIAL.
    PERFORM FILL_BDC_TABLE TABLES T_ERROR
    T_BDCDATA
    USING P_SESSN2.
    ENDIF.
    *Check if any records are present to be uploaded.
    IF T_DATA[] IS NOT INITIAL.
    PERFORM FILL_BDC_TABLE TABLES T_DATA
    T_BDCDATA
    USING P_SESSN.
    ELSE.
    WRITE :/ 'No Correct Records were found to create session in SM35',
    / 'Please Check the File'.
    ENDIF.
    *& Form validate_data
    * Sub routine to check correctness of the uploaded data.
    * -->P_T_DATA table to upload correct entries
    * -->P_T_ERROR table to upload erroneous entries
    * -->P_W_DATA current record
    FORM VALIDATE_DATA TABLES P_T_DATA STRUCTURE W_DATA
    P_T_ERROR STRUCTURE W_ERROR
    USING P_W_DATA structure w_data .
    DATA : L_W_LIFNR TYPE LFA1-LIFNR,
    L_W_SAKNR TYPE SKA1-SAKNR.
    DATA: L_W_DATA TYPE TY_DATA,
    L_W_ERROR TYPE TY_ERROR.
    MOVE P_W_DATA TO L_W_DATA.
    DATA : L_FG_ERROR TYPE C,
    L_W_DATE TYPE SY-DATUM.
    CONSTANTS : C_X TYPE C VALUE 'X',
    C_O2CA(4) TYPE C VALUE 'O2CA',
    C_ZK_1(2) TYPE C VALUE 'ZK',
    C_ZK_2(2) TYPE C VALUE 'zk',
    C_NUM(17) TYPE C VALUE '01234567890/.-, ',
    C_31(2) TYPE C VALUE '31',
    C_40(2) TYPE C VALUE '40'.
    L_FG_ERROR = SPACE.
    DO.
    *check document type is 'ZK'
    IF NOT L_W_DATA-BLART NE C_ZK_1 OR
    L_W_DATA-BLART NE C_ZK_2.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check 1 item text fields are filled by numeric value.
    IF NOT L_W_DATA-SGTXT_1 CO C_NUM.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check 2 item text fields are filled by date.
    MOVE L_W_DATA-SGTXT_2 TO L_W_DATE.
    CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
    EXPORTING
    DATE = L_W_DATE
    EXCEPTIONS
    PLAUSIBILITY_CHECK_FAILED = 1
    OTHERS = 2.
    IF SY-SUBRC <> 0.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check first posting key is '31'
    IF NOT L_W_DATA-BSCHL_1 EQ C_31.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check second posting key is '40'
    IF NOT L_W_DATA-BSCHL_2 EQ C_40.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check valid Vendor
    SELECT SINGLE LIFNR FROM LFA1 INTO L_W_LIFNR
    WHERE LIFNR = L_W_DATA-HKONT_1.
    IF SY-SUBRC <> 0.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check valid G/L account.
    SELECT SINGLE SAKNR FROM SKA1 INTO L_W_SAKNR
    WHERE KTOPL = C_O2CA AND
    SAKNR = L_W_DATA-HKONT_2.
    IF SY-SUBRC <> 0.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check 1 item assignment contains numeric value
    IF NOT L_W_DATA-ZUONR_1 CO C_NUM.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check 2 item assigment contains date value
    MOVE L_W_DATA-ZUONR_2 TO L_W_DATE.
    CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
    EXPORTING
    DATE = L_W_DATE
    EXCEPTIONS
    PLAUSIBILITY_CHECK_FAILED = 1
    OTHERS = 2.
    IF SY-SUBRC <> 0.
    L_FG_ERROR = C_X.
    EXIT.
    ENDIF.
    *check if no error has occured
    IF NOT L_FG_ERROR EQ C_X.
    EXIT.
    ENDIF.
    ENDDO.
    *check error flag and insert error text.
    CASE L_FG_ERROR.
    WHEN C_X. "When error has occured.
    APPEND L_W_DATA TO P_T_ERROR.
    WHEN OTHERS. "When no error has occured.
    APPEND L_W_DATA TO P_T_DATA.
    ENDCASE.
    ENDFORM. " validate_data
    *& Form download_error_log
    * Sub routine to download the error log
    * -->P_T_ERROR error log
    FORM DOWNLOAD_ERROR_LOG TABLES P_T_ERROR STRUCTURE W_ERROR.
    DATA : L_FILENAME TYPE STRING,
    L_PATH TYPE STRING,
    L_FULLPATH TYPE STRING.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
    WINDOW_TITLE = 'Save the Error log'
    CHANGING
    FILENAME = L_FILENAME
    PATH = L_PATH
    FULLPATH = L_FULLPATH
    EXCEPTIONS
    CNTL_ERROR = 1
    ERROR_NO_GUI = 2
    NOT_SUPPORTED_BY_GUI = 3
    OTHERS = 4.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CHECK L_FULLPATH IS NOT INITIAL.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    FILENAME = L_FULLPATH
    FILETYPE = 'ASC'
    WRITE_FIELD_SEPARATOR = 'X'
    TABLES
    DATA_TAB = P_T_ERROR
    EXCEPTIONS
    FILE_WRITE_ERROR = 1
    NO_BATCH = 2
    GUI_REFUSE_FILETRANSFER = 3
    INVALID_TYPE = 4
    NO_AUTHORITY = 5
    UNKNOWN_ERROR = 6
    HEADER_NOT_ALLOWED = 7
    SEPARATOR_NOT_ALLOWED = 8
    FILESIZE_NOT_ALLOWED = 9
    HEADER_TOO_LONG = 10
    DP_ERROR_CREATE = 11
    DP_ERROR_SEND = 12
    DP_ERROR_WRITE = 13
    UNKNOWN_DP_ERROR = 14
    ACCESS_DENIED = 15
    DP_OUT_OF_MEMORY = 16
    DISK_FULL = 17
    DP_TIMEOUT = 18
    FILE_NOT_FOUND = 19
    DATAPROVIDER_EXCEPTION = 20
    CONTROL_FLUSH_ERROR = 21
    OTHERS = 22.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " download_error_log
    *& Form fill_bdc_table
    * bdc session is created in SM35
    * -->P_T_DATA correct data
    * -->P_T_BDCDATA bdcdata
    * -->P_P_SESSN session name
    FORM FILL_BDC_TABLE TABLES P_T_DATA STRUCTURE W_DATA
    P_T_BDCDATA STRUCTURE BDCDATA
    USING P_P_SESSN.
    DATA : L_W_DATA TYPE TY_DATA. "workarea for t_data
    CONSTANTS: C_EUR(3) TYPE C VALUE 'EUR'.
    *open batch
    PERFORM OPEN_GROUP USING P_P_SESSN.
    LOOP AT P_T_DATA INTO L_W_DATA.
    *clear the bdc table
    REFRESH P_T_BDCDATA.
    *initial screen
    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
    USING 'SAPMF05A' '0106'.
    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BKPF-WAERS',
    BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00', "enter
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BUKRS' L_W_DATA-BUKRS, "company code
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBBDT' L_W_DATA-DBBDT, "first run on
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBATR' L_W_DATA-DBATR, "next run on
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBEDT' L_W_DATA-DBEDT, "last run on
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBMON' L_W_DATA-DBMON, "run frequency
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBTAG' L_W_DATA-DBTAG, "run date
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BLART' L_W_DATA-BLART, "document type
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-WAERS' C_EUR, "currency
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-XBLNR' L_W_DATA-XBLNR, "reference
    BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BKTXT' L_W_DATA-BKTXT, "document header data
    BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_1,"posting key
    BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_1."account no
    *second screen (First line item)
    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
    USING 'SAPMF05A' '0302'.
    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWKO',
    BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00', "enter
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_1, "amount in LC
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_1, "tax code
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_1, "assignment
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_1, "item level text
    BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_2, "posting key
    BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_2. "account no
    *third screen (Second line item)
    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
    USING 'SAPMF05A' '0300'.
    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BSEG-EBELN',
    BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=AB', "overview button
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_2, "amount in LC
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_2, "tax code
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_2, "assigment
    BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_2. "item text
    *fourth screen (pop up)
    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
    USING 'SAPLKACB' '0002'.
    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'COBL-KOSTL',
    BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=ENTE', "ok button
    BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-KOSTL' L_W_DATA-KOSTL, "cost center
    BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-AUFNR' L_W_DATA-AUFNR. "order number
    *fifth screen
    PERFORM BDC_FIELD TABLES P_T_BDCDATA
    USING 'SAPMF05A' '0070'.
    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWBS',
    BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=BU'. "save document
    PERFORM BDC_INSERT TABLES P_T_BDCDATA
    USING 'ZREC_ENTRY'.
    ENDLOOP.
    *close the batch.
    PERFORM CLOSE_GROUP.
    ENDFORM. " fill_bdc_table
    *& Form bdc_dynpro
    * bdc screen insert sub routine
    * -->P_T_BDCDATA BDC table
    * -->P_PROGRAM Program name
    * -->P_SCREEN Screen no
    FORM BDC_DYNPRO TABLES P_T_BDCDATA STRUCTURE BDCDATA
    USING VALUE(P_PROGRAM)
    VALUE(P_SCREEN).
    CONSTANTS C_X TYPE C VALUE 'X'.
    DATA L_W_BDCDATA TYPE BDCDATA.
    L_W_BDCDATA-PROGRAM = P_PROGRAM.
    L_W_BDCDATA-DYNPRO = P_SCREEN.
    L_W_BDCDATA-DYNBEGIN = C_X.
    APPEND L_W_BDCDATA TO P_T_BDCDATA.
    ENDFORM. " bdc_dynpro
    *& Form bdc_field
    * bdc field screen routine
    * -->P_T_BDCDATA BDC table
    * -->P_FIELD Field name
    * -->P_VALUE Value
    FORM BDC_FIELD TABLES P_T_BDCDATA STRUCTURE BDCDATA
    USING VALUE(P_FIELD)
    VALUE(P_VALUE).
    DATA L_W_BDCDATA TYPE BDCDATA. "Work area
    L_W_BDCDATA-FNAM = P_FIELD.
    L_W_BDCDATA-FVAL = P_VALUE.
    APPEND L_W_BDCDATA TO P_T_BDCDATA.
    ENDFORM. " bdc_field
    *& Form open_group
    * bdc open group in sm35
    * -->P_P_SESSN session name
    FORM OPEN_GROUP USING P_P_SESSN.
    CONSTANTS C_X TYPE C VALUE 'X'.
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
    CLIENT = SY-MANDT
    GROUP = P_P_SESSN
    KEEP = C_X
    USER = SY-UNAME
    PROG = SY-CPROG
    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.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " open_group
    *& Form bdc_insert
    * bdc insert in sm35
    * -->P_T_BDCDATA bdcdata table
    * -->P_tcode transaction
    FORM BDC_INSERT TABLES P_T_BDCDATA STRUCTURE BDCDATA
    USING VALUE(P_TCODE).
    CALL FUNCTION 'BDC_INSERT'
    EXPORTING
    TCODE = P_TCODE
    TABLES
    DYNPROTAB = P_T_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.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " bdc_insert
    *& Form close_group
    * bdc close group in sm35
    FORM CLOSE_GROUP .
    CALL FUNCTION 'BDC_CLOSE_GROUP'
    EXCEPTIONS
    NOT_OPEN = 1
    QUEUE_ERROR = 2
    OTHERS = 3.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " close_group
    *& Form pre_process_record
    * text
    * -->P_W_DATAIN text
    * <--P_W_DATA text
    FORM pre_process_record USING P_W_DATAIN
    CHANGING P_W_DATA structure w_data.
    move p_w_datain to p_w_data-bukrs.
    ENDFORM. " pre_process_record

  • Syntax error in program SAPLPT_ARQ_REQUEST_UIA

    Hello,
    We are stuck with a BADI implementation.
    The scenario is following :
    1. For ESS leave process we have stopped the standard BADI CL_PT_ARQ_REQ
    2. We have implemented a custome BADI which is a modification of standard BADI CL_PT_ARQ_REQ
    Now in our development box it is working fine but when tried it in our production system then
    we are getting the following error while opening the leave request page :
    A critical error has occured. Processing of the service had to be terminated. Unsaved data has been lost.
    Syntax error in program SAPLPT_ARQ_REQUEST_UIA                  ., error key: RFC_ERROR_SYSTEM_FAILURE
    Please let us know how to resolve the issue.
    Thanks in advance.
    Regards,
    Partha

    Ensure that you have all related transport requests go to PRD.
    Check logs using transaction ST22 and find out more on where this syntax error is coming... you might be able to pin point code which is causing this.
    Rgds

Maybe you are looking for

  • New mail is not being marked as unread

    This just started today. I have my preferences set so that unread mail is in Bold type. I see by the Mail Activity Viewer that new mail is coming in. Mail chimes that I have new email, but SOME of the new email is not in bold type. I say SOME because

  • How to avoid ranges option in the select option.

    Hi All,     In the selection screen, when the user press the extension button usaually we are getting four columns. those columns are 2 sinlge vals, 2 ranges. but as per my requirement, user wants to display only one single val column in that dialog

  • FRM-92101 - java exception - unable to  communicate with runtime process

    We have a Forms application developed in Forms 10.1.2.0.2. One of our forms gives a unusual error. This error comes from any client machine we run the application. Our menu form (menu.fmb), in it's ON-LOGON trirgger, calls a form called login.fmb. Lo

  • Exporting best quality for HDV

    Hi - I've been editing for the first time on HDV 1080i50 in FCP - I want to export as a Quicktime in the best setting possible but not sure what it is. When I go export quicktime hdv1080i it only lets me do medium quality - in the past when I've expo

  • Redo log buffer question

    hi masters, this seems to be very basic, but i would like to know internal of this process. we all know that LGWR writes redo entries to online redo log files on disk. on commit SCN is generated and tagged to transaction. and LGWR writes this to onli