Syntax Error In Interface Declaration

Hi,
while activating proxy i am facing "Syntax Error In Interface Declaration" Error. pls guide me to rectify it.
Thanks in Advance.
Regards,
Chandra

Hi ,
XML message interface
<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:p1="http://MYTUTORIAL_CM" name="FlightSeatAvailabilityQuery_Out" targetNamespace="http://MYTUTORIAL_CM">
     <wsdl:documentation>
     Flight seat availability query - Out (only for use in XI Demo)
     </wsdl:documentation>
     <wsdl:types>
          <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://MYTUTORIAL_CM" targetNamespace="http://MYTUTORIAL_CM">
               <xsd:element name="FlightNotFound">
                    <xsd:complexType>
                         <xsd:sequence>
                              <xsd:element name="standard" type="ExchangeFaultData" />
                         </xsd:sequence>
                    </xsd:complexType>
               </xsd:element>
               <xsd:element name="FlightSeatAvailabilityQuery" type="FlightSeatAvailabilityQuery" />
               <xsd:element name="FlightSeatAvailabilityResponse" type="FlightSeatAvailabilityResponse" />
               <xsd:complexType name="FlightSeatAvailabilityQuery">
                    <xsd:annotation>
                         <xsd:appinfo source="http://sap.com/xi/TextID">
                         47ad89c013b311dab948000d604e4c90
                         </xsd:appinfo>
                    </xsd:annotation>
                    <xsd:sequence>
                         <xsd:element name="FlightID" type="FlightID">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   011d0310139e11da948ef4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Flight ID
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                    </xsd:sequence>
               </xsd:complexType>
               <xsd:complexType name="ExchangeLogData">
                    <xsd:annotation>
                         <xsd:appinfo source="http://sap.com/xi/TextID">
                         47a65dd013b311dace53000d604e4c90
                         </xsd:appinfo>
                    </xsd:annotation>
                    <xsd:sequence>
                         <xsd:element name="severity" type="xsd:string" minOccurs="0" />
                         <xsd:element name="text" type="xsd:string" />
                         <xsd:element name="url" type="xsd:string" minOccurs="0" />
                         <xsd:element name="id" type="xsd:string" minOccurs="0" />
                    </xsd:sequence>
               </xsd:complexType>
               <xsd:complexType name="FlightSeatAvailabilityResponse">
                    <xsd:annotation>
                         <xsd:appinfo source="http://sap.com/xi/TextID">
                         47b970a013b311da8619000d604e4c90
                         </xsd:appinfo>
                    </xsd:annotation>
                    <xsd:sequence>
                         <xsd:element name="EconomyMaxSeats" type="xsd:int">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   0b75900013a011daaf1ff4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Maximal Seats Economy Class
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                         <xsd:element name="EconomyFreeSeats" type="xsd:int">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   0b75900113a011dac95cf4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Free Seats Economy Class
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                         <xsd:element name="BusinessMaxSeats" type="xsd:int">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   0b75900213a011dacefcf4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Maximal Seats Business Class
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                         <xsd:element name="BusinessFreeSeats" type="xsd:int">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   0b75900313a011dacc26f4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Free Seats Business Class
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                         <xsd:element name="FirstMaxSetas" type="xsd:int">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   0b75900413a011da8918f4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Maximal Seats First Class
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                         <xsd:element name="FirstFreeSeats" type="xsd:int">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   0b75900513a011da9d26f4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Free Seats First Class
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                    </xsd:sequence>
               </xsd:complexType>
               <xsd:complexType name="FlightID">
                    <xsd:annotation>
                         <xsd:appinfo source="http://sap.com/xi/TextID">
                         47b26bc013b311da99e3000d604e4c90
                         </xsd:appinfo>
                    </xsd:annotation>
                    <xsd:sequence>
                         <xsd:element name="AirlineID">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   a099b780139e11da9a55f4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Airline ID
                                   </xsd:documentation>
                              </xsd:annotation>
                              <xsd:simpleType>
                                   <xsd:restriction base="xsd:string">
                                        <xsd:maxLength value="3" />
                                   </xsd:restriction>
                              </xsd:simpleType>
                         </xsd:element>
                         <xsd:element name="ConnectionID">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   a099b781139e11da830bf4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Connection ID
                                   </xsd:documentation>
                              </xsd:annotation>
                              <xsd:simpleType>
                                   <xsd:restriction base="xsd:string">
                                        <xsd:length value="4" />
                                        <xsd:pattern value="\d+" />
                                   </xsd:restriction>
                              </xsd:simpleType>
                         </xsd:element>
                         <xsd:element name="FlightDate" type="xsd:date">
                              <xsd:annotation>
                                   <xsd:appinfo source="http://sap.com/xi/TextID">
                                   a099b782139e11dac6c0f4d509b6dddf
                                   </xsd:appinfo>
                                   <xsd:documentation xml:lang="EN">
                                   Flight Date
                                   </xsd:documentation>
                              </xsd:annotation>
                         </xsd:element>
                    </xsd:sequence>
               </xsd:complexType>
               <xsd:complexType name="ExchangeFaultData">
                    <xsd:annotation>
                         <xsd:appinfo source="http://sap.com/xi/TextID">
                         47a1a2e013b311da8347000d604e4c90
                         </xsd:appinfo>
                    </xsd:annotation>
                    <xsd:sequence>
                         <xsd:element name="faultText" type="xsd:string" />
                         <xsd:element name="faultUrl" type="xsd:string" minOccurs="0" />
                         <xsd:element name="faultDetail" type="ExchangeLogData" minOccurs="0" maxOccurs="unbounded" />
                    </xsd:sequence>
               </xsd:complexType>
          </xsd:schema>
     </wsdl:types>
     <wsdl:message name="FlightSeatAvailabilityResponse">
          <wsdl:documentation>
          Flight seat availability response (only for use in XI Demo)
          </wsdl:documentation>
          <wsdl:part name="FlightSeatAvailabilityResponse" element="p1:FlightSeatAvailabilityResponse" />
     </wsdl:message>
     <wsdl:message name="FlightSeatAvailabilityQuery">
          <wsdl:documentation>
          Flight seat availability query (only for use in XI Demo)
          </wsdl:documentation>
          <wsdl:part name="FlightSeatAvailabilityQuery" element="p1:FlightSeatAvailabilityQuery" />
     </wsdl:message>
     <wsdl:message name="FlightNotFound">
          <wsdl:documentation>
          Flight not found (only for use in XI Demo)
          </wsdl:documentation>
          <wsdl:part name="FlightNotFound" element="p1:FlightNotFound" />
     </wsdl:message>
     <wsdl:portType name="FlightSeatAvailabilityQuery_Out">
          <wsdl:operation name="FlightSeatAvailabilityQuery_Out">
               <wsdl:output message="p1:FlightSeatAvailabilityQuery" />
               <wsdl:input message="p1:FlightSeatAvailabilityResponse" />
               <wsdl:fault name="FlightNotFound" message="p1:FlightNotFound" />
          </wsdl:operation>
     </wsdl:portType>
     <ifr:properties xmlns:ifr="urn:com-sap:ifr:v2:wsdl">
          <ifr:category>
          ifmmessif
          </ifr:category>
          <ifr:methods>
               <ifr:method name="FlightSeatAvailabilityQuery_Out">
                    <ifr:isSynchron>
                    true
                    </ifr:isSynchron>
                    <ifr:isInbound>
                    false
                    </ifr:isInbound>
                    <ifr:interfaceCategory>
                    outbound
                    </ifr:interfaceCategory>
               </ifr:method>
          </ifr:methods>
          <ifr:messages>
               <ifr:message name="FlightSeatAvailabilityResponse">
                    <ifr:messType>
                    ifmmessage
                    </ifr:messType>
                    <ifr:technicalNamespace>
                    http://MYTUTORIAL_CM
                    </ifr:technicalNamespace>
               </ifr:message>
               <ifr:message name="FlightSeatAvailabilityQuery">
                    <ifr:messType>
                    ifmmessage
                    </ifr:messType>
                    <ifr:technicalNamespace>
                    http://MYTUTORIAL_CM
                    </ifr:technicalNamespace>
               </ifr:message>
               <ifr:message name="FlightNotFound">
                    <ifr:messType>
                    ifmfaultm
                    </ifr:messType>
                    <ifr:technicalNamespace>
                    http://MYTUTORIAL_CM
                    </ifr:technicalNamespace>
               </ifr:message>
          </ifr:messages>
     </ifr:properties>
</wsdl:definitions>
Regards,
Chandra

Similar Messages

  • Generics, syntax error

    hi,
    I have a class :
    *public abstract class Action<M extends Message> { ... }*
    and a subclass :
    *public class ActionValidateConnection extends Action<MessageValidateConnection> { ... }*
    MessageValidateConnection is a class extending Message.
    Until there everything works fine. But it appears that I should add a superclass in between :
    *public abstract class Action<M extends Message> { ... }*
    *public abstract class ActionController<M extends Message> extends Action<M extends Message> { ... }*_
    *public class ActionValidateConnection extends ActionController<MessageValidateConnection> { ... }*
    And I have a syntax error on the declaration of ActionController.
    Can anyone help me with this ? I don't know how to add a class in between ... thanks!

    Hello mathiii,
    please use code tags for posting code and not arbitrary font styles.
    The issue is the "extends Action<M extends Message>". You can't specify a bound here, it should simply be "extends Action<M>".
    With kind regards
    Ben

  • Declaration Syntax error in decl-32.h

    Hi!
    I am using Boroland C/C++ version 4 to interface my instrument through GPIB. I am doing this on a Win95 Platform.
    I have included decl-32.h and borolandc_gpib.obj files in my project. When I try to compile the project it gives an error saying : declaration syntax error in decl-32.h file. There are some 30 errors like this.
    I cant' figure out how to compile and link the language intefaces within Boroland C/C++.

    Be sure to use double-quotes when doing an include statement. For example:
    #include "..\Languages\Borland C\Decl-32.h"
    It may help to start by compiling the examples in C:\program files\national instruments\ni-488.2\languages\borland c
    It may also help to do a search on the web about compiling and linking in Borland C.
    Randy Solomonson
    Applications Engineer
    National Instruments

  • Syntax Error "Method was not declared or inherited in class"

    Dear all,
    I am seeing the following syntax error in one of the standard classes CL_ICCMP_BT_INRHISTRESULT_CN01 which says "Method "XYZ" was not declared or inherited in class". Need help to identify when this error would occur or where I should be checking for this error within the class.
    I checked other systems for the same class, the method XYZ does not exist there too but still the class has no syntax errors!
    Would appreciate your help!
    Thank you.
    Regards,
    Gayathri.

    Hi Gayathri,
    please give detailed information on how and where you get this error.
    CL_ICCMP_BT_INRHISTRESULT_CN01 does not exist in our ECC600 system.
    Regards,
    Clemens

  • Syntax error on keyword "void"; "interface", "class" expected

    When migrating my application for Visual-Age to Web-Sphere 5.1
    The following error occurred:
    Syntax error on keyword "void"; "interface", "class" expected
    for the code:
    * ejbLoad method comment
    * @exception javax.ejb.EJBException The exception description.
    public void ejbLoad() throws javax.ejb.EJBException{
         _initLinks();
    }Thanking you in an advance

    I had missed a closing breacket '}'

  • Declaration syntax error in 9iLite for Palm.

    Hi all..
    I have one problem with my application in C/C++ Codewarrior with odbc for Palm.
    When i compile the application any declaration of the type: class <any class> give me one declaration syntax error, this happen in odbc.h and aboutform.h of msql project.
    The problem is that when i compile msql_r8.mcp no error is generated, but when i treat compile my application with the same include files the error is generated.
    What is wrong?
    Thanks in advance.
    CCRD.

    Be sure to use double-quotes when doing an include statement. For example:
    #include "..\Languages\Borland C\Decl-32.h"
    It may help to start by compiling the examples in C:\program files\national instruments\ni-488.2\languages\borland c
    It may also help to do a search on the web about compiling and linking in Borland C.
    Randy Solomonson
    Applications Engineer
    National Instruments

  • Syntax error while running a driver program

    Hi experts,
                 I have developed a smartforms,in which i have declared the following,
                    ITAB TYPE TABLE OF MARA, in import tab of form interface...
    and in se38 i have declared...
    data: itab like mara occurs 0.
    bujt when i am running this program, i am getting syntax error "ITAB" is neither specified under "TABLES" nor defined as internal tabels..
    plz tell me why this probleming is occuring?and how can i solve this....
    thnks n regards,
    Ashmita.

    in form interface try to declare in tables tab
    or
    global data > types tab and declare global  table using that type.

  • Syntax Error with EXPORT statement in ECC 6

    Hi All,
    I have one issue with EXPORT statement syntax.
    I have declared data like below:
    DATA: BEGIN OF mem_id,
              mandt LIKE sy-mandt,
              uname LIKE sy-uname,
              modno LIKE sy-modno,
            END OF mem_id.
    export the memory id
        EXPORT E_VBKOK XANZPK TEXTTAB XBOLNR TO MEMORY ID MEM_ID.
    When I am checking the syntax error i am getting like "MEM_ID" must be a character-type field (data type C, N, D or T). by "INTERFACE". by "INTERFACE". "INTERFACE". by "INTERFACE". by "INTERFACE".
    I know this statement would be like IMPORT ITAB TO JTAB FROM MEMORY ID 'table'. So I have written like below
    EXPORT E_VBKOK XANZPK TEXTTAB XBOLNR TO MEMORY ID 'MEM_ID'. But still it is throwing an error.
    Can you please let me know how can I resolve this?
    Regards,
    Jyothi CH.

    Hi Jyothi,
    data: l_var type string.
    concatenate '6' '8' into l_var separated by space.
    export l_var to memory id 'BB'.
    Here we have to declare the type(structure) for l_var not for BB
    and in another program
    data:l_var type string.
    import l_var from memory id 'BB'.
    write : l_var.

  • Syntax error in Transformation routine

    Hi Folks,
    We are In SP 17.
    I have migrated standard 0bpartner_attr transfer rules to a transformation with syntax errors.
    I have a routine for a gender, Valid From and Valid To its giving the following erorr.
    E:Field "TRAN_STRUCTURE-VALID_FROM" is unknown. It is neither in one of
    the specified tables nor defined by a "DATA" statement. "DATA"
    statement.
    the following is the routine code for Gender.
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        DATA:
          p_check_master_data_exist
                TYPE RSODSOCHECKONLY READ-ONLY,
    *-    Instance for getting request runtime attributs;
        Available information: Refer to methods of
        interface 'if_rsbk_request_admintab_view'
          p_r_request
                TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
      PRIVATE SECTION.
        TYPE-POOLS: rsd, rstr.
      Rule specific types
        TYPES:
          BEGIN OF tys_SC_1,
         Field: XSEXM Male.
            XSEXM           TYPE C LENGTH 1,
         Field: XSEXF Female.
            XSEXF           TYPE C LENGTH 1,
         Field: XSEXU Unknown.
            XSEXU           TYPE C LENGTH 1,
         Field: RECORD.
            RECORD           TYPE RSARECORD,
          END   OF tys_SC_1.
        TYPES:
          BEGIN OF tys_TG_1,
         InfoObject: 0GENDER Gender.
            GENDER           TYPE /BI0/OIGENDER,
          END   OF tys_TG_1.
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ end of global - insert your declaration only before this line   -
        METHODS
          compute_0GENDER
            IMPORTING
              request                  type rsrequest
              datapackid               type rsdatapid
              SOURCE_FIELDS              type tys_SC_1
            EXPORTING
              RESULT                   type tys_TG_1-GENDER
              monitor                  type rstr_ty_t_monitor
            RAISING
              cx_rsrout_abort
              cx_rsrout_skip_record
              cx_rsrout_skip_val.
        METHODS
          invert_0GENDER
            IMPORTING
              i_th_fields_outbound         TYPE rstran_t_field_inv
              i_r_selset_outbound          TYPE REF TO cl_rsmds_set
              i_is_main_selection          TYPE rs_bool
              i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
              i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
            CHANGING
              c_th_fields_inbound          TYPE rstran_t_field_inv
              c_r_selset_inbound           TYPE REF TO cl_rsmds_set
              c_exact                      TYPE rs_bool.
    ENDCLASS.                    "routine DEFINITION
    $$ begin of 2nd part global - insert your code only below this line  *
    $$ end of rule type
        TYPES:
          BEGIN OF tys_TG_1_full,
         InfoObject: 0BPARTNER Business Partner.
            BPARTNER           TYPE /BI0/OIBPARTNER,
         InfoObject: 0BP_ACTITL1 First Academic Title.
            BP_ACTITL1           TYPE /BI0/OIBP_ACTITL1,
         InfoObject: 0BP_ACTITL2 Second Academic Title.
            BP_ACTITL2           TYPE /BI0/OIBP_ACTITL2,
         InfoObject: 0BP_BTHNAME BP: Person's Name at Birth.
            BP_BTHNAME           TYPE /BI0/OIBP_BTHNAME,
         InfoObject: 0BP_CAT Business Partner Category.
            BP_CAT           TYPE /BI0/OIBP_CAT,
         InfoObject: 0BP_CONS Business Partner (Consolidated/Cleansing).
            BP_CONS           TYPE /BI0/OIBP_CONS,
         InfoObject: 0BP_CONTACT BP: Contact Permission.
            BP_CONTACT           TYPE /BI0/OIBP_CONTACT,
         InfoObject: 0BP_EXTERN BP Number in External System.
            BP_EXTERN           TYPE /BI0/OIBP_EXTERN,
         InfoObject: 0BP_FSTNAME BP: Person's First Name.
            BP_FSTNAME           TYPE /BI0/OIBP_FSTNAME,
         InfoObject: 0BP_GROUP Business Partner Grouping.
            BP_GROUP           TYPE /BI0/OIBP_GROUP,
         InfoObject: 0BP_GRPNAM1 BP: Name 1 (Group).
            BP_GRPNAM1           TYPE /BI0/OIBP_GRPNAM1,
         InfoObject: 0BP_GRPNAM2 BP: Name 2 (Group).
            BP_GRPNAM2           TYPE /BI0/OIBP_GRPNAM2,
         InfoObject: 0BP_GRPTYPE BP: Group Type.
            BP_GRPTYPE           TYPE /BI0/OIBP_GRPTYPE,
         InfoObject: 0BP_LSTNAME BP: Person's Surname.
            BP_LSTNAME           TYPE /BI0/OIBP_LSTNAME,
         InfoObject: 0BP_MAR_STA BP: Marital Status.
            BP_MAR_STA           TYPE /BI0/OIBP_MAR_STA,
         InfoObject: 0BP_MDLNAME BP: Person's Middle Name or Second First
    *Name.
            BP_MDLNAME           TYPE /BI0/OIBP_MDLNAME,
         InfoObject: 0BP_SECNAME BP: Person's Second Surname.
            BP_SECNAME           TYPE /BI0/OIBP_SECNAME,
         InfoObject: 0CHANGEDBY Changed by.
            CHANGEDBY           TYPE /BI0/OICHANGEDBY,
         InfoObject: 0CH_AT Time of Last Change.
            CH_AT           TYPE /BI0/OICH_AT,
         InfoObject: 0CH_ON Last changed on.
            CH_ON           TYPE /BI0/OICH_ON,
         InfoObject: 0CREATEDBY Name of person who created the object.
            CREATEDBY           TYPE /BI0/OICREATEDBY,
         InfoObject: 0CREATEDON Date on which the record was created.
            CREATEDON           TYPE /BI0/OICREATEDON,
         InfoObject: 0CREA_TIME Time Created.
            CREA_TIME           TYPE /BI0/OICREA_TIME,
         InfoObject: 0GENDER Gender.
            GENDER           TYPE /BI0/OIGENDER,
         InfoObject: 0LEGALFORM Legal Status of Organization.
            LEGALFORM           TYPE /BI0/OILEGALFORM,
         InfoObject: 0NAME_ORG1 BP: Organization Name 1.
            NAME_ORG1           TYPE /BI0/OINAME_ORG1,
         InfoObject: 0NAME_ORG2 BP: Organization Name 2.
            NAME_ORG2           TYPE /BI0/OINAME_ORG2,
         InfoObject: 0NAME_ORG3 BP: Organization Name 3.
            NAME_ORG3           TYPE /BI0/OINAME_ORG3,
         InfoObject: 0NAME_ORG4 BP: Organization Name 4.
            NAME_ORG4           TYPE /BI0/OINAME_ORG4,
         InfoObject: 0NATION Nationality.
            NATION           TYPE /BI0/OINATION,
         InfoObject: 0TITLE_SPPL Name Supplement, for example, Noble Title
            TITLE_SPPL           TYPE /BI0/OITITLE_SPPL,
         InfoObject: 0BP_TYPE Partner:Partner Type.
            BP_TYPE           TYPE /BI0/OIBP_TYPE,
         InfoObject: 0GN_PAR_SSY Source System of a Partner.
            GN_PAR_SSY           TYPE /BI0/OIGN_PAR_SSY,
         InfoObject: 0LOGSYS Source System.
            LOGSYS           TYPE RSDLOGSYS,
         InfoObject: 0RECORDMODE BW Delta Process: Record Mode.
            RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0BP_GUID GUID of Business Partner.
            BP_GUID           TYPE /BI0/OIBP_GUID,
         InfoObject: 0BPDATEFROM GP Attributes Valid from.
            BPDATEFROM           TYPE /BI0/OIBPDATEFROM,
         InfoObject: 0BPDATETO GP Attributes Valid to.
            BPDATETO           TYPE /BI0/OIBPDATETO,
         Field: RECORD Data record number.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1_full.
    Additional declaration for transfer rule interface
      DATA:
        g_t_errorlog TYPE rssm_t_errorlog_int,
        RECORD_ALL   LIKE SY-TABIX.
    global definitions from transfer rules
    DATA: gs_cob_pro TYPE rsd_s_cob_pro,
          gt_viobj   TYPE rsd_t_viobj,
          gs_viobj   TYPE rsd_s_viobj.
    DATA:   l_s_errorlog TYPE rssm_s_errorlog_int,
            l_text TYPE string.
    FORM compute_BPDATEFROM
       CHANGING
        RESULT         TYPE tys_TG_1_full-BPDATEFROM
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
      INCLUDE rs_bct_bupa_form_valid_from.
    ENDFORM.                    "BPDATEFROM
    FORM compute_BPDATETO
       CHANGING
        RESULT         TYPE tys_TG_1_full-BPDATETO
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
      INCLUDE rs_bct_bupa_form_valid_to.
    ENDFORM.                    "BPDATETO
    FORM compute_GENDER
       CHANGING
        RESULT         TYPE tys_TG_1_full-GENDER
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    INCLUDE rs_bct_bupa_form_gender.
    ENDFORM.                    "GENDER
    FORM compute_GN_PAR_SSY
       CHANGING
        RESULT         TYPE tys_TG_1_full-GN_PAR_SSY
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    INCLUDE rs_bct_bupa_form_gn_par_ssy.
    ENDFORM.                    "GN_PAR_SSY
    $$ end of 2nd part global - insert your code only before this line   *
          CLASS routine IMPLEMENTATION
    CLASS lcl_transform IMPLEMENTATION.
      METHOD compute_0GENDER.
      IMPORTING
        request     type rsrequest
        datapackid  type rsdatapid
        SOURCE_FIELDS-XSEXM TYPE C LENGTH 000001
        SOURCE_FIELDS-XSEXF TYPE C LENGTH 000001
        SOURCE_FIELDS-XSEXU TYPE C LENGTH 000001
       EXPORTING
         RESULT type tys_TG_1-GENDER
        DATA:
          MONITOR_REC    TYPE rsmonitor.
    *$*$ begin of routine - insert your code only below this line        *-*
      Data:
        l_s_error_log    type rssm_s_errorlog_int,
        l_subrc          type sy-tabix,
        l_abort          type sy-tabix,
        ls_monitor       TYPE rsmonitor,
        ls_monitor_recno TYPE rsmonitors.
    REFRESH:
      monitor,
      monitor_recno.
    Migrated transfer rule call
      Perform compute_GENDER
        CHANGING
          RESULT
          l_subrc
          l_abort.
    *-- Convert Messages in Transformation format
        LOOP AT G_T_ERRORLOG INTO l_s_error_log.
          move-CORRESPONDING l_s_error_log to MONITOR_REC.
          append monitor_rec to MONITOR.
        ENDLOOP.
        IF l_subrc <> 0.
          RAISE EXCEPTION TYPE cx_rsrout_skip_val.
        ENDIF.
        IF l_abort <> 0.
          RAISE EXCEPTION TYPE CX_RSROUT_ABORT.
        ENDIF.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_0GENDER
          Method invert_0GENDER
          This subroutine needs to be implemented only for direct access
          (for better performance) and for the Report/Report Interface
          (drill through).
          The inverse routine should transform a projection and
          a selection for the target to a projection and a selection
          for the source, respectively.
          If the implementation remains empty all fields are filled and
          all values are selected.
      METHOD invert_0GENDER.
    $$ begin of inverse routine - insert your code only below this line-
    ... "insert your code here
    $$ end of inverse routine - insert your code only before this line -
      ENDMETHOD.                    "invert_0GENDER
    ENDCLASS.                    "routine IMPLEMENTATION
    let me know how to correct the above code.
    thanks

    Hi,
    the field tran_structure is no more available. The name changed to source_fields. Additionally there is no datapak available. It is now source_fields_table. You might need to use field symbols to access the fields.
    regards
    Siggi

  • Reg: syntax error

    hi ,
    when i go with syntax check with method ENRICH_COMPONENT_WITH_ED_DATA in the class interface CL_IM_OIH_MIGO_BADI, got syntax error as:
    "The line type of the table "CT_GOCOMP" is not compatible with field symbol type "<FS_OIH_GOCOMP>"."
    pls suggest..how to correct this
    regards
    chandra

    Hi,
    please check the type of "<FS_OIH_GOCOMP>".
    if the parameter of the method requires a table to be passed then the field symbol should be declared as
    field-symbols : <FS_OIH_GOCOMP> type any table.
    otherwise if it requires to be a line type then  the declaration should be as follows
    field-symbols : <FS_OIH_GOCOMP> type any
    if this doesn't work then try giving the
    field-symbols : <FS_OIH_GOCOMP> type/like  CT_GOCOMP.
    hope this helps you
    Regards,
    Siddarth

  • Syntax error before '@' token

    Hey all, uber noob here just starting out. Working with the Stephen Kochan book 'Programming in Objective-C', and having a problem compiling a sample program. I receive the error "syntax error before '@' token" when I try to build and run the following code. I'm sure it's something completely ridiculous, but I can't see it for the life of me and can't find anything on the interwebs.
    (The error is after the last import and before the @interface declaration.)
    Thanks in advance,
    ~Mark
    #import <stdio.h>
    #import <objc/Object.h>
    @interface Fraction: Object
    int numerator;
    int denominator;
    -(void) print;
    -(void) setNumerator: (int) n;
    -(void) setDenominator: (int) d;
    -(int) numerator;
    -(int) denominator;
    @end
    //-- @implementation section --
    @implementation Fraction;
    -(void) print
    printf(" %i/%i ", numerator,denominator);
    -(void) setNumerator: (int) n
    numerator = n;
    -(void) setDenominator: (int) d
    denominator = d;
    -(int) numerator
    return numerator;
    -(int) denominator
    return denominator;
    @end
    //-- program section --
    int main (int argc, const char * argv[])
    Fraction *myFraction = [[Fraction alloc] init];
    [myFraction setNumerator: 1];
    [myFraction setDenominator: 3];
    printf ("The value of myFraction is: %i/%i\n", [myFraction numerator], [myFraction denominator]);
    [myFraction free];
    return 0;
    }

    Ah, you are using the old edition of Kochan and some things have changed. The import statements should just be:
    #import <Foundation/Foundation.h>
    I recommend that you get the 2nd edition of the book. Although the hard copy hasn't been published yet it is available as a pdf from Safari Rough Cuts http://safari.informit.com/9780321605559 ).

  • Syntax Error in Include which is genarated by System

    Hi,
    Good day experts,
    now iam working on EVENTS in IS-U module.
    FUNCTION Module : yfkk_sample_9560 .
    ""Local interface:
    *"  IMPORTING
    *"     REFERENCE(I_FKKOP) TYPE  FKKOP
    *"     REFERENCE(I_FIELDCAT) TYPE  FKKSP_FIELDS
    *"     REFERENCE(I_KEYDATE) TYPE  OP_KEYDATE_KK OPTIONAL
    *"  CHANGING
    *"     REFERENCE(C_FKKOPRU) TYPE  FKKOPRU
    *types:fkksp_fields type table of fkksp_s_fields.
    Example:
    DATA:
       wa_cat TYPE fkksp_s_fields.
    READ TABLE i_fieldcat INTO wa_cat
       WITH KEY orig_field = 'PARTNER_NAME' orig_table = 'FKKOPRU'.
    IF sy-subrc = 0.
       SELECT SINGLE field
         INTO c_fkkopru-partner_name
         FROM table
         WHERE gpart = i_fkkop-gpart.
    ENDIF.
    GETTING CITY1  ********************
       DATA:
            wa_cat type fkksp_s_fields. "#EC *
       DATA: wa_fkkop TYPE fkkop. "#EC *
       DATA: x_haus LIKE ehauisu-haus, "#EC *
             x_actual LIKE regen-actual. "#EC *
       DATA:lv_vkonto TYPE ever-vkonto. "#EC *
       TABLES: ever,eanl,evbs. "#EC *
       DATA: lv_anlage TYPE eanl-anlage, "#EC *
             lv_vstelle TYPE eanl-vstelle. "#EC *
       DATA: yv_vstelle TYPE evbs-vstelle, "#EC *
             lv_haus    TYPE evbs-haus, "#EC *
             yy_addr_data TYPE eadrdat, "#EC *
             y_ehauisu TYPE ehauisu, "#EC *
             x_portion TYPE te420-termschl, "#EC *
             lv_vkont TYPE fkkvkp-vkont. "#EC *
       DATA: t_ever LIKE ever OCCURS 0 WITH HEADER LINE, "#EC *
             t_eanl LIKE eanl OCCURS 0 WITH HEADER LINE, "#EC *
             t_evbs LIKE evbs OCCURS 0 WITH HEADER LINE, "#EC *
             t_iflot LIKE iflot OCCURS 0 WITH HEADER LINE. "#EC *
      DATA: y_anlage TYPE eablg-anlage, "#EC *
            y_ableinh TYPE eablg-ableinh, "#EC *
            y_portion TYPE te422-portion. "#EC *
    ****Getting the city 1 *******************
    *LOOP AT I_FKKOP INTO WA_FKKOP.
       CALL FUNCTION 'ISU_GET_PARTNER_ADDRESS'
         EXPORTING
           x_partnerid        = i_fkkop-gpart
           x_addrnumber       = i_fkkop-emadr
      X_PERSNUMBER       =
        IMPORTING
      Y_NAME             =
      Y_ADDR_LINES       =
          y_addr_data        = yy_addr_data .
    *******Getting the connection object**************
       CALL FUNCTION 'YISU_GETCONNOBJ_VKONTGPART'
         EXPORTING
           i_vkont        = i_fkkop-vkont
           i_gpart        = i_fkkop-gpart
      IMPORTING
        E_BUTOOO       =
        E_FKKVKP       =
         TABLES
           t_ever         = t_ever
           t_eanl         = t_eanl
           t_evbs         = t_evbs
           t_iflot        = t_iflot
       lv_haus = t_evbs-haus.
    Getting the Political Word***************
       CALL FUNCTION 'ISU_DB_EHAUISU_SINGLE'   "#EC *
         EXPORTING
           x_haus          = lv_haus
          X_ACTUAL        = ' '
        IMPORTING
          y_ehauisu       = y_ehauisu
      EXCEPTIONS
       not_found       = 1
       OTHERS          = 2.
       IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.
    ***********Getting the Potion******************
       SELECT SINGLE anlage "#EC *
                     ableinh FROM eablg INTO (y_anlage, y_ableinh) WHERE anlage = t_eanl-anlage.
       IF sy-subrc = 0.
         SELECT SINGLE portion FROM te422 INTO y_portion WHERE termschl = y_ableinh.
       ENDIF.
    ***************Assinging the city1 and political word and portion ***********
       READ TABLE i_fieldcat INTO wa_cat WITH KEY
           orig_field = 'YYCITY1'    orig_table = 'FKKOPRU'
           orig_field = 'YYREGPOLIT' orig_table = 'FKKOPRU'
           orig_field = 'YYPORTION'  orig_table = 'FKKOPRU'.
       IF sy-subrc = 0.
         c_fkkopru-yycity1 = yy_addr_data-city1.
         c_fkkopru-yyregpolit = y_ehauisu-regpolit.
         c_fkkopru-yyportion = y_portion.
       ENDIF.
    ENDFUNCTION.
    Here iam getting the syntax error but activation wont get any error.
    Error is : "FKKSP_FIELDS" is not a pre-defined type or a type from a type group.          
    Plz its very urgent. give me solution for this Error.
    Regards,
    kk

    Hi,
    You need to declare the type group FKKSP in the global include.  i.e.
    TYPE-POOLS FKKSP.
    Regards,
    Dion

  • [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)

  • 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

  • Cannot transport from quality to production due to syntax error

    Hi all,
    I have modified the program in Development system in which i have added on field to the internal table structure. Internal table is declared in the top include of the program. Now the program is transported to the Quality server which ends with the error for top include as"Original object cannot be replaced". But when i check the top include in quality server, the field which i have added is available. Now for transporting to production server, it ends by syntax error saying "The data object ITAB does not have a component called <field>".
    Please guide me for the above error.
    Thanks & Regards
    Akshay Korade

    >
    Akshay Korade wrote:
    > The production system contains the version before the changes and the error comes while transporting to production system. So the changes are not reflected in the production system.
    I've been doing SAP for a while and I can tell you, definitively, that syntax errors do not prevent import.
    >All the includes are activated and free from syntax errors in quality system.
    >Now for transporting to production server, it ends by syntax error saying "The data object ITAB does not have a component called <field>".
    If there are no syntax errors in quality, then where is that syntax error showing?  It must be in production.  It will be an inactive version in production that has the syntax error.  Go into production, try to activate the program.  Activation will fail because of the syntax error.
    You get the syntax error because the defintion has not made it into P.  If you transport the whole program, as R3TR PROG zprog, and have the correct flags set on import to overcome the message "Original object cannot be replaced", then your problem will be solved.
    matt

Maybe you are looking for

  • How to get the URL of the request.

    I am trying to get the URL from where the request is coming to the servlet. If http://www.xx.com/ calls my servlet i want to know that the request is coming from http://www.xx.com/ URL. If i use request.getRequestURL() which is displaying my servlet

  • Cannot package when including own ANE

    I'm an iOS developer and have been tasked with creating an ANE for a customer. I followed the online tutorial and all appears to be well, I've created an ANE with a default and iOS implementation. When trying to include the ANE in the actual mobile p

  • Dimension selection for chart in Design Studio

    Hello everyone,      I have created a data source as shown below. Now i need only sales group dimension to be selected in my chart, i don't want to remove plant and material from my data source as it will give incorrect summation result i.e weighted

  • Want to upgrade to lastest version - help/about Firefox window does not show "upgrade" as in instructions.

    I want to upgrade to latest version but -Help/About Firefox- window does not show "upgrade" as in the instructions. I cannot find an "upgrade" function anywhere else. How do I upgrade? The version I have is -18.0.1- it came with this used computer. I

  • Upgrade to SL using an external DVD drive?

    Hi all: I've got an older mac mini (it's an intel machine), but the internal dvd drive has been broken for a long time. I've been using an external DVD drive when needed. I've been trying to upgrade to SL from 10.5.8, but it just won't work. It gets