Instance creation on target system.

Hi,
Could anybody tell me when and who creates the DB instance on the target system during the cloning process ? Is this done automatically by adcfgclone.sh ?
Thanks,
Paul

Its done when you issue this command 'perl adcfgclone.pl dbTier'. adcfgclone.pl will prompt for some values required to create the instace and the context file (like SID, domainname, $ORACLE_HOME, $DATA_TOP .. etc).

Similar Messages

  • Bulk Creation of target instances & sync

    In looking through the Extensibility doc it looks like emctl (config agent addtarget) would be used to
    do a bulk create of target instances. Is that correct?
    Using an example of a plug-in to monitor an application server domain and creating target instances
    for each server and cluster (in an automated fashion). The plug-in would be installed on one agent.
    Run and OS job/ program which would make a jmx call to find the clusters and servers then run the
    emctl commands to create the target instances.
    Is that how something like this would be done, or am I missing a more straightforward way?
    Now to keep the OEM target instances in sync with the application server domain, I'm thinking I need
    to periodically compare the emctl listtargets info to what is currently in the application domain.
    This question is just related to trying to "import" the tree of managed items (meaning the target
    instances).

    There are 2 utilities you can use to create target instances: emctl and emcli.
    emctl is local to a specific agent and you must be on a particular agent's host to run its emctl
    With emcli you can install the emcli client wherever you want and it will talk to the OMS to do the instance creation. You'll have to specify which agents you want to put the target instances on, but through a single emcli client you could create target instances on every agent in your enterprise.

  • Model Creation Error:Not authorized to logon to target system(error code 1)

    Hello All,
    I am trying to create a new model in my WebDynpro project.
    I have used "Single Server" to login to the backend.
    But when I try to connect to the backend system I get the following error:
    "Login Failed: You are not authorized to logon to the target system (error code 1)"
    I have an "SAP_ALL" role in the backend. Any idea what could be wrong?
    Thanks and Regards,
    Reena

    Hello Reena,
      The user name or passwd that you specified is not correct. Try by giving the user name in Capital letter; if still its not working take advice from Basis person and get the right to use it.
    Regards
       -Vinod

  • Not been able to export data from  FDQM to target system

    Hi,
    Am not been able to export data from FDQM to my target system which is Hyperion Enterprise 6.4
    I have imported, Validated the mapping but as soon as i click on export after creation of the export file the system throws an error as "*Error: Arguments are of the wrong type, are out of acceptable range, or are in conflict with one* *another*". Also am pasting the error log down below
    ** Begin Enterprise Adapter Runtime Error Log Entry [2009-08-20-16:10:27] **
    ERROR:
    Code.............. 10230
    Description....... Data Load Errors.
    Enterprise API Return Code: ALREADY_LOCKED_RO-.
    Procedure......... clsHPDataManipulation.fDBLoad
    Component......... upsHE6xG4A
    Version........... 100
    Thread............ 6028
    IDENTIFICATION:
    User.............. administrator
    Computer Name..... HYPERION
    ENTERPRISE CONNECTION:
    App Name.......... GCIP_S
    Connect Status.... Connection Open
    GLOBALS:
    Zero-For-No....... True
    INI File Path..... C:\WINDOWS\HypEnt.ini
    NameCat.txt Path.. C:\Hyperion\FDM\GCIP\Outbox\Logs\NameCat.txt
    NameCat Entity....
    NameCat Category..
    NameCat Exists.... False
    Any suggestions any one, what should i do

    Hello,
    Is it possible that the entity that you are loading to in Enterprise is locked? It appears that it may be per the below error. You can only load to unlocked intersections, so I would start by checking the catagory and entity combination for being locked.
    Regards
    JF

  • OS Migration from HP Unix to AIX : Error in Installing Target System

    Hello All,
    I have successfully exported the database of my R3 4.7 source system which is on Oracle 9i and HP Unix.
    Now I am trying to build a target system on AIX with Oracle 10g.
    While Installing Central Instance, in Database parameters screen I didnt get an option for 102 as Oracle Client version but 102 option was there for Oracle server version. Hence I change the value 920 to 102 in oradbpar.xml in my Installation directory and has continued to the next step.
    Now during the installation I am getting an error as :
    FJS-00003 TypeError: linkTarget has no properties (in script InstallationScript_291, line 8977: ???)
    Please help me out in this.
    Also let me know if there is a seperate Installation master for Installing 4.7 ssystems.
    Regards,
    Nirmal.K

    Theres absolutely no problem using oracle client 920 for 4.7 with Oracle 10g....  that said, If you are planning to upgrade the DB you cannot simply import the database into a system with 10g... You need to run the Oracle upgrade either prior or after the copy.
    The Oracle upgrade guide is in SAP Marketplace.
    Also, read Note 830576 - Parameter recommendations for Oracle 10g and apply required changes after the upgrade... also you need to apply the required Opatches
    Regards
    Juan

  • Term of payment does not exist in target system

    Hi Gurus,
    Scenario: Classic, Self service procurment.
    I made a shopping cart with my requirements.
    PR and PO created in the backend system.
    Posted the GR in SRM....and got the message of posted in the backend.
    Posted the invoice in the SRM and message creation completed and found that it has not been posted in the backend (checked the PO history).
    The message found in SRM SLG1...."Term of payment does not exist in target system" for that.
    Checked the vendor conditions and found that terms of payment exist in the backend system for that vendor.
    What could be the problem and how to resolve this issue?
    Thanks in advance
    SG
    Message was edited by:
            SRMGUY

    Hi,
    I am new to SRM.
    We have created new payment term in ECC and replicated to SRM using BBP_UPLOAD_PAYMENT_TERMS. We are able to see in table BBP_PAYTERM and BBP_PAYMENT_TEXT.
    But the non of the payment terms are reflecting into PO in SRM after this.
    I am able to see the payment term in backend in BBP_PD. I am getting the below warning message when I click on Check Button.
    'Term of payment does not exist in the target system'.
    What could be the problem and how to resolve it?
    Thanks in advance.
    Best Regards,
    Siddappa

  • OIM 9031: Best way to handle application/test account on target system.

    Hi Guys,
    I am wonder what will be the best way to handle application account created in target sytem . i.e. I have target system Active Directory and on non-trusted reconciliation, I also fetch application/test account which not going to match to any existing user ,but should be capture for reporting or any future action .
    Any input or idea is most welcome !!
    Cheers,
    Ankit

    There are basically two approaches to handle service accounts.
    Either you model them as a free standing RO very similar to a normal AD account or you use the built in "service account" and associate the account with an already existing AD RO instance. I haven't used the "service account" approach in any customer project yet so I can't really comment on the details of that approach (hopefully someone else will be able to do that).
    Are you sure that you have service accounts in AD that you can't attribute to a specific users? Most organizations require service accounts to be linked to a user or a group of users so that the need for the account to continue existing can be verified by a human. Having live accounts in your AD that no one can say what they do or why they exist is normally a very scary thought for most organizations.
    Hope this helps
    /M

  • The method to provision the OIM System Date to a target System

    Hi,
    I want to provision the OIM System Date(date format : "YYYY-MM-DD HH:MI:SS") to a target System(DB Type:Oracle).
    The Column type in The target System is Date Type.
    I use the process adapter and assign the System Date to the Process Data - Date Type Column - in the target System.
    it doesn't work.
    How do i do?????
    please help me

    - That's simple. You have already created this date type variable in your process form. Now pass it in whichever format it is. In your code for creation in oracle, do a date conversion as required using custom code. This would work if you have written your code and you are not using DBApp Tables connector. Do it as follows:
         SimpleDateFormat input = new SimpleDateFormat("OIM_DATE_FORMAT");
         SimpleDateFormat output = new SimpleDateFormat("ORACLE_DB_DATE_FORMAT");
         Date date = input.parse("Pass form date over here");
         return output.format(date); // Pass this value to Oracle
    - If its DBApp Table connector then connector must take care of this by itself.
    Thanks
    Sunny

  • Cannot provide connect data for database target system CONFIG_DB

    Hello,
    I'm trying to install SP22 in NW04 but I'm getting an error on step 11 Deploy JDDI
    Cannot provide connect data for database target system "CONFIG_DB".
    Cannot connect to database: Cannot create class loaders for DB target system CONFIG_DB.
    ERROR      2008-10-01 17:51:09
               CJSlibModule::writeError_impl()
    MUT-03025  Caught ESAPinstException in Modulecall: ESAPinstException: error text undefined.
    ERROR      2008-10-01 17:51:09 [iaxxinscbk.cpp:289]
               abortInstallation
    MUT-02041  SDM call of deploySdaList ends with returncode 4. See output of logfile C:\Program Files\sapinst_instdir\PATCH\MSS\callSdmViaSapinst.log.
    callSdmViaSapinst.log:
    com.sap.sdm.apiint.serverext.servertype.TargetServiceException: Cannot provide connect data for database target system "CONFIG_DB".
    Additional error message is:
    com.sap.sdm.serverext.servertype.dbsc.DatabaseConnectException: Cannot connect to database: Cannot create class loaders for DB target system CONFIG_DB.
    Additional error message is:
    com.sap.sdm.util.classloaders.SDMClassLoaderException: Cannot create class loader for component com.sap.sdm.serverext.servertype.dbsc.SERVEREXT_DBSC_EXTERN(CONFIG_DB): Referenced loader #0 for component com.sap.sdm.serverext.servertype.dbsc.JDBC_DRIVER(D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\base.jar;D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\util.jar;D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\sqlserver.jar;D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\spy.jar) is not available.
    Additional error message is:
    com.sap.sdm.util.classloaders.SDMClassLoaderException: Cannot create class loader for component com.sap.sdm.serverext.servertype.dbsc.JDBC_DRIVER(D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\base.jar;D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\util.jar;D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\sqlserver.jar;D:\usr\sap/WDA/DVEBMGS00/j2ee\jdbc\spy.jar).
    Additional error message is:
    com.sap.sdm.util.classloaders.SDMClassLoaderException: Cannot create class loader instance: Jar file #1 cannot be read: D:\usr\sap\WDA\DVEBMGS00\j2ee\jdbc\base.jar
    Oct 1, 2008 5:51:08 PM   Info: Summarizing the deployment results:
    Oct 1, 2008 5:51:08 PM   Error: Admitted: D:\Software\parches\del18_al22\J2EE-RUNT-CD\J2EE-ENG\JDD\SYNCLOG.SDA
    Oct 1, 2008 5:51:08 PM   Error: Aborted: D:\Software\parches\del18_al22\J2EE-RUNT-CD\J2EE-ENG\JDD\J2EE_JDDSCHEMA.SDA
    Oct 1, 2008 5:51:08 PM   Error: Admitted: D:\Software\parches\del18_al22\J2EE-RUNT-CD\J2EE-ENG\JDD\COM.SAP.SECURITY.DBSCHEMA.SDA
    Oct 1, 2008 5:51:08 PM   Error: Admitted: D:\Software\parches\del18_al22\J2EE-RUNT-CD\J2EE-ENG\JDD\XML_DAS_SCHEMA.SDA
    Oct 1, 2008 5:51:08 PM   Error: Admitted: D:\Software\parches\del18_al22\J2EE-RUNT-CD\J2EE-ENG\JDD\JMS_JDDSCHEMA.SDA
    Oct 1, 2008 5:51:08 PM   Error: Processing error. Return code: 4
    the spy.jar was there but some how it got deleted.
    Any ideas?
    Thanks

    For others who may be facing the same problem and would like to have a permanent fix, you can download the largest JDBC drivers from http://service.sap.com/msplatforms and refer to note 639702 and if your system is NW7.0 with EHP1 or SR3, you should also refer to note 1109274.

  • Transporting PI/XI object deletions beyond the first target system?

    Hello,
    we're running PI7.0 at the site I'm working at, and our PI transports are controlled via CMS.
    I'm experiencing a problem in transporting Deletions of integration directory objects.
    From Development to the first target Test system, the Deletions are moved through fine. This 'D' --> 'T 'transport forms the first track.
    The second track moves the same transports from 'Q' (after being assembled and approved out of 'T') to 'I' and then to 'M' systems.
    However, beyond the 'T' system, the Deletion objects seem to disappear off the transport!
    Other items on the same transport (eg. object creations or changes), still get transported fine.
    The outcome is that we seem to only be able to delete objects via transport in the first target system, not any follow-on systems.
    Does anyone know what could be causing the problem?
    many thanks
    DaveR

    Hi Marco,
    For Java development, you will still use NWDI until the assembly step. The result will be a software component archive, which can then be moved over to CTS+.
    For XI development, it is possible to use CTS+ instead of of CMS at the transport technology.
    You also might want to take a look into the following document, which highlights the combination of CTS+ and NWDI:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a0d96022-9df5-2910-90b8-8e0580e0987e
    Interesting quote:
    "Usage type DI is by no means invalidated by this [CTS+] scenario: The NWDI is the recommended environment for JAVA-based development."
    Best regards,
    Dennis

  • Error in creation of source system

    Hi Experts,
    We are facing a problem while creation of source system. We are getting an error "You have no authorization for basic types (activity 03)" Kindly help me to resolve this issue.
    Regards,
    Jitendra

    Hi there,
    if you get the error again, please go tcode su53 directly and see for which object the authorization is missing. I understand you have SAP_ALL access but for any authorization issue we normally go to SU53 tcode and verfiy.
    So once you get the object name then go to SU01 and open your id. Go to authorization tab and find for that object and see if '03' activity is assigned to you or not.
    If this step is absolutely fine then we can think of alternative solution.
    Regards,
    Anup

  • Outbound delivery replication in target system

    Hi,
    I want to replicate an outbound delivery in the target system  through IDOC.
    but when i use standard IDOC Message type DESADV alongwith standard output type LALE, then it does'nt get replicated and an Inbound delivery gets created instead in the target system.
    I also used  another alternative of using BAPI with Business object 'LIKP' and  BAPI  BAPI_OUTB_DELIVERY_SAVEREPLICA
    but its not getting triggered may be coz m using the application program and routine in the Nace as RSNASTED only.
    Do i have to use any other program in NACE with Z O/P type for the same if i use BAPI. If so then what shud be the program name and Routine name for the same.
    Please help me to meet the above requirement with the appropriate aaproach.
    A quck reply is highly appreciable.
    Regards,
    Manoj

    Hi Manoj,
    Message type WHSORD is used transmit data to 3rd party whenever Outbound delivery is created in SAP i.e. as Outbound IDoc.
    I am trying to understand the issue and slightly confused.
    Is both sender & target systems are of SAP (SAP to WMS/EWM/SCM).
    Message type SHP_OBDLV_SAVE_REPLICA  which calls the BAPI you have already tried should work as I read from
    below document. 
    [SAP document link|http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/56a89d90-0201-0010-97a7-c5e8dbbb22e2?QuickLink=index&overridelayout=true]
    Please check if it can be useful.
    Regards,
    SG.

  • IDOC/BAPI for Production order creation from Legacy system

    Hi all
    We are using an interface to create Production orders from legacy to SAP. Would you recommend an IDOC or a BAPI to create Production orders. If IDOC or BAPI then could you please mention which one?
    thanks a bunch

    Hi John,
    For your purposes, please use BAPI for production order creation from legacy system. There is no standard inbound IDoc available to use. SAP has an IDoc for outbound interface only (message type LOIPRO).
    If there is an inbound IDoc available, I would recommend to use an IDoc.
    IDoc technology has excellent error handling and will allow you to reprocess an error (if any).
    BAPI is also good approach to use and fast in term of  processing.
    For BAPI approach, you can use BAPI BAPI_PRODORD_CREATE.
    Hope this will help.
    Regards,
    Ferry Lianto

  • How to use FTP_COMMAND to put a file in the target system

    Hi All,
    I have the requirement to put an excel file from apllication server to another remote system for this i am using the function modules
    1) FTP_CONNECT to connect to the sourece as well as the destination systems  --- Here i am able to hit the both systems.
    2) for sending the data to the target system i am using FTP_COMMAND by passing the 'put' statement along with the soruce and destinations  for the command parameter.
    See the bellow code
    CONCATENATE 'put' v_fname '
    ' 'wbrs1\' folder
    into cmd separated by space.
    CALL FUNCTION 'FTP_COMMAND'
      EXPORTING
       HANDLE                = dhdl
        command              = cmd
       COMPRESS              = 'N'
      VERIFY                =
      RFC_DESTINATION       =
    IMPORTING
      FILESIZE              =
      FILEDATE              =
      FILETIME              =
      tables
        data                  = result
    EXCEPTIONS
       TCPIP_ERROR           = 1
       COMMAND_ERROR         = 2
       DATA_ERROR            = 3
       OTHERS                = 4
    Here v_name is the file path and name in the application server suppose say :
    /usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS
    and wbrs1 is the target system and 'Waynesboro DFS' is the folder name i ma passing to the command .
    Also I tried with the following statement
    CONCATENATE 'put' v_fname '
    ' dhost  folder
    into cmd separated by space.
    Here v_name is the file path and name in the application server suppose say :
    /usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS,
    Dhost is wbrs1.wb.na.webdti.com
    And Waynesboro DFS is the folder .
    Here i am getting the error as invalid argument.
    See the bellow messages from result internal table.
    put /usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS
    wbrs1\ Waynesboro DFS
    open /usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS errno 22: Invalid argument
    Please let me know how i can resolve this problem and how can I put this file in the destination system.
    Thanks in advance.
    Regards,
    Venkat

    check this code....here data is transferred from SAP to Informatica box..
    REPORT zfo_phoenix_acc_reconciliation NO STANDARD PAGE HEADING
                                                    MESSAGE-ID zz
                                                    LINE-SIZE  255
                                                    LINE-COUNT 65.
                            PROGRAM DECLARATION
    PROGRAM ID            : ZFO_PHOENIX_ACC_RECONCILIATION
    DESCRIPTION           : Phoneix Account Reconcilation Program-Feed
                            Balance sheet account balances from GL
                            3 files needed to be enhanced. The files are " Master
                  Attribute File" & "Transaction File(GL Balance)". For
                  Master Attribute File, data needs to be retrieved from
                  T001, ZDATSRC_T, SKA1, T003, T856. The corresponding
                  data from all the tables is downloaded into file
                  according to the condition specified. For Transaction
                  File, data needs to be retrieved from ZGEIST based on
                  Ledger(GG), Record Type(0), Fiscal Year, Period(016).
                  Then the current period is used to determine which TSLxx
                  & KSLxx needs to be used. Also, the conditions are
                  specified in specs which have been used accordingly.
                  The final data fetched will need to processed as files
                  which neednot be downloaded to Presentation/Application
                  server. Instead the files are been FTPed to the
                  Informatica Server using FTP. The location where the
                  files need to be located is ERC\GLOBALSAP.
                         TABLES
    TABLES : ADR6.
                         TYPES
    Output File - Master COA(Chart of Account)
    TYPES : BEGIN OF ty_coacode ,
             coa_code(20),         "COA Code
             coa_description(50),  "COA Description
             field11 TYPE x,       "Line Feed
             END OF ty_coacode.
    Output File - Master Account
    TYPES : BEGIN OF ty_acctcode ,
             act_code(20),         "GL Account Number
             act_desc(60),         "GL Account Description
             act_act_flag(1),      "Account marked for deletion indicator
             glact_type(1),        "GL Account type
             fi_line(20),          "Corporate Financial Statement Line
             coa_code(20),         "COA Code
             act_defcode(3),       "Account Defination Code
             field11 TYPE x,       "Line Feed
           END OF ty_acctcode.
    Output File - Master Entity
    TYPES : BEGIN OF ty_entitycode,
             entity_code(12),     "Entity Code
             com_desc(40),        "Company Name
             coa_code(20),        "COA Code
             field11 TYPE x,      "Line Feed
            END OF ty_entitycode.
    Output File - Master Attribute
    TYPES : BEGIN OF ty_attribcode,
             attrib_code(5),       "Attribute Code
             attrib_value(20),     "Attribute Value
             attrib_desc(60),      "Attribute Description
             field11 TYPE x,       "Line Feed
            END OF ty_attribcode.
    Output File - Transaction GL Balance
    TYPES : BEGIN OF ty_glbal,
             gl_reccode(2),        "GL Reconciliation Code
             gl_entity(12),        "GL Entity - Company Code
             gl_accnum(20),        "Gl Group Account Number
             site(4),              "Site
             currency_type(6),     "Transaction Currency Code
             year(4) TYPE n,       "Year
             month(2) TYPE n,      "Month
             as_of_date(8),        "Date Account Balance
             tran_cur_amt(21),     "Transaction Currency Amount
             usd_amount(21),       "USD Amount
             racct(20),            "GL Account Number
             zzbewar(20),          "Consolidation Transaction Type
             zzdatsrc(20),         "Data Source
             zzblart(20),          "Document Type
             rassc(20),          "Trading Partner
             field1(20),           "Attribute field1
             field2(20),           "Attribute field2
             field3(20),           "Attribute field3
             field4(20),           "Attribute field4
             field5(20),           "Attribute field5
             field11 TYPE x,       "Line Feed
           END OF ty_glbal.
    Output File - Control
    TYPES :BEGIN OF ty_globalsap,
            clnt_name(6),          "Client Name
            source_name(12),       "Source Name
            as_of_date(8),         "AS of Date
            time_stamp(6),         "Time Stamp
            time_zone(8),          "Time Zone
            num_of_files(3),       "Number of Files
            num_of_records(9),     "Number of Records
            user_ids(60),          "User ID(s)
            field11 TYPE x,        "Line Feed
           END OF ty_globalsap.
    Int'table to hold ZGEIST Data
    TYPES : BEGIN OF ty_zgeist_data,
              rldnr    TYPE rldnr,      "Ledger
              rrcty    TYPE rrcty,      "Record Type
              rvers    TYPE rvers,      "Version
              ryear    TYPE gjahr,      "Fiscal Year
              rbukrs   TYPE bukrs,      "Company Code
              racct    TYPE racct,      "Account Number
              robjnr   TYPE gobjnr_r,   "Object Number for objects
              cobjnr   TYPE gobjnr_c,   "Object Number for transaction
              sobjnr   TYPE gobjnr_s,   "Object Number for partner
              rtcur    TYPE rtcur,      "Currency Key
              runit    TYPE meins,      "Base Unit of Measure
              drcrk    TYPE shkzg,      "Debit/Credit Indicator
              rpmax    TYPE rpmax,      "Period
              rzzstagr TYPE stagr,      "Statistical key figure
              zzaltkt  TYPE altkt,      "Account Number in Group
              zzdatsrc TYPE zdatsrc,    "Data Source code
              zzbewar  TYPE rmvct,      "Transaction Type
              zzblart  TYPE blart,      "Document Type
              rassc    TYPE rassc,       "Trading Partner
              zzvbund  TYPE rassc,      "Trading Partner
              tslvt    TYPE tslvt9,     "Transactional Currency
              kslvt    TYPE kslvt9,     "Group Currency
            END   OF ty_zgeist_data.
    Int'table to hold ZGEIST Error Data based on conditions
    TYPES : BEGIN OF ty_zgeist_error_data,
              rldnr    TYPE rldnr,      "Ledger
              rrcty    TYPE rrcty,      "Record Type
              rvers    TYPE rvers,      "Version
              ryear    TYPE gjahr,      "Fiscal Year
              rbukrs   TYPE bukrs,      "Company Code
              robjnr   TYPE gobjnr_r,   "Object Number for objects
              cobjnr   TYPE gobjnr_c,   "Object Number for transaction
              sobjnr   TYPE gobjnr_s,   "Object Number for partner
              rtcur    TYPE rtcur,      "Currency Key
              runit    TYPE meins,      "Base Unit of Measure
              drcrk    TYPE shkzg,      "Debit/Credit indicator
              rpmax    TYPE rpmax,      "Period
            END   OF ty_zgeist_error_data.
                         FIELD SYMBOLS
    FIELD-SYMBOLS : <fs> TYPE ANY.
                         CONSTANTS
    DATA : c_selected    TYPE c VALUE 'X',  "Field for constant value 'X'
           c_y           TYPE c VALUE 'Y',  "For Acc marked for deletion
           c_n           TYPE c VALUE 'N',  "For Acc not marked for deletion
           c_a           TYPE c VALUE 'A',  "For GL Account type Asset
           c_l           TYPE c VALUE 'L',  "For GL Account type Liability
           c_q           TYPE c VALUE 'Q',  "For GL Account type Equity
           c_r           TYPE c VALUE 'R',  "For GL Account type Revenue
           c_e           TYPE c VALUE 'E',  "For GL Account type Expense
           c_t           TYPE c VALUE 'T',  "For GL Account type
           c_userid(60)  TYPE c ,
           c_curtp       TYPE curtp VALUE '10', "Currency type
           c_curtp1      TYPE curtp VALUE '30', "Currency type
           c_rassc(5)    TYPE c VALUE 'RASSC',  "Trading Partner
           c_dtsrce(6)   TYPE c VALUE 'DTSRC',  "Data Source
           c_sacct(5)    TYPE c VALUE 'SACCT',  "GL Account
           c_docty(5)    TYPE c VALUE 'DOCTY',  "Document Type
           c_trxtp(5)    TYPE c VALUE 'TRXTP',  "Transaction Type
           c_tradptn(15) TYPE c VALUE 'Trading Partner',  "Trading Partner
           c_datsrc(11)  TYPE c VALUE 'Data Source',      "Data Source
           c_glacc(10)   TYPE c VALUE 'GL Account',       "GL Account
           c_doctyp(13)  TYPE c VALUE 'Document Type',    "Document Type
           c_trantyp(16) TYPE c VALUE 'Transaction Type'. "Transaction Type
                         DATA (Simple Fields)
    DATA: w_cnt1         TYPE i, "No Of records in output file COA Code
          w_cnt2         TYPE i, "No Of records in output file Account
          w_cnt3         TYPE i, "No Of records in output file Entity
          w_cnt4         TYPE i, "No Of records in output file attribute
          w_cnt5         TYPE i, "No Of records in output file GL Balance
          w_tot_recs     TYPE i, "TOtal number of records downloaded
          w_date         LIKE sy-datum, "System date
          w_timediff     LIKE sy-uzeit, "Time Difference to GMT
          w_timezone(10) TYPE c,       "Time Difference to GMT
          w_file_count(3) TYPE n,       "File Count
          w_period TYPE poper,          "To hold Period Value
          w_year LIKE t009b-bdatj,      "To hold Fiscal Year Value
          w_outfile       TYPE char64,  "FTPed file path
          w_hdl           TYPE i.       "Handle for FTP
                         INTERNAL TABLES
    Intenal table for GL Account details
    DATA: BEGIN OF it_gl_detail OCCURS 0,
              saknr      TYPE saknr,
              txt50_skat TYPE txt50_skat,
              xloev      TYPE xloev,
          END OF it_gl_detail.
    DATA: it_company_list LIKE bapi0014_1  OCCURS 0 WITH HEADER LINE,
          it_coacode TYPE STANDARD TABLE OF ty_coacode  WITH HEADER LINE,
          it_acctcode TYPE STANDARD TABLE OF ty_acctcode WITH HEADER LINE,
          it_entitycode TYPE STANDARD TABLE OF ty_entitycode
                                            WITH HEADER LINE,
          it_attribcode TYPE STANDARD TABLE OF ty_attribcode
                                            WITH HEADER LINE,
          it_glbal TYPE STANDARD TABLE OF ty_glbal WITH HEADER LINE,
          it_globalsap TYPE STANDARD TABLE OF ty_globalsap WITH HEADER LINE,
          it_t001 TYPE STANDARD TABLE OF t001 WITH HEADER LINE,
          it_zdatsrc TYPE STANDARD TABLE OF zdatsrc_t WITH HEADER LINE,
          it_ska1 TYPE STANDARD TABLE OF ska1 WITH HEADER LINE,
          it_t003 TYPE STANDARD TABLE OF t003 WITH HEADER LINE,
          it_t856 TYPE STANDARD TABLE OF t856 WITH HEADER LINE,
          it_zgeist_data    TYPE STANDARD TABLE OF ty_zgeist_data
                                 WITH HEADER LINE,
          it_zgeist_data1   TYPE STANDARD TABLE OF ty_zgeist_data
                                 WITH HEADER LINE,
          it_zgeist_data_all TYPE STANDARD TABLE OF zgeist,
          wa_it_zgeist_data1 TYPE ty_zgeist_data,
          wa_it_zgeist_data TYPE zgeist,
          it_zgeist_error_data TYPE STANDARD TABLE OF ty_zgeist_error_data,
          wa_it_zgeist_error_data TYPE ty_zgeist_error_data.
                         SELECTION-SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-009.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-006,
                POSITION POS_LOW.
    PARAMETERS :       P_USER(30) TYPE C LOWER CASE OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-007,
                POSITION POS_LOW.
    PARAMETERS :       P_PWD(30) TYPE C LOWER CASE OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-008,
                POSITION POS_LOW.
    PARAMETERS :       P_HOST(64) TYPE C LOWER CASE OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-010,
                POSITION POS_LOW.
    SELECT-OPTIONS :   S_EMAIL FOR ADR6-SMTP_ADDR NO INTERVALS.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN END OF BLOCK B1.
    -- Password not visible--
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name = 'P_PWD'.
          screen-invisible = '1'.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    I N I T I A L I Z A T I O N                                         *
    INITIALIZATION.
      w_date0(2) = sy-datum4(2).
      w_date2(2) = sy-datum6(2).
      w_date4(4) = sy-datum0(4).
      S_EMAIL-SIGN = 'I'.
      S_EMAIL-OPTION = 'EQ'.
      S_EMAIL-LOW = '[email protected]'.
      APPEND S_EMAIL.
      S_EMAIL-SIGN = 'I'.
      S_EMAIL-OPTION = 'EQ'.
      S_EMAIL-LOW = '[email protected]'.
      APPEND S_EMAIL.
                         START - OF - SELECTION
    START-OF-SELECTION.
    Geting Company Details
      PERFORM get_company_list.
    Geting GL Account Details
      PERFORM get_gl_acc_detail.
    Geting GL Balance Details
      PERFORM get_zgeist_data.
                         END - OF - SELECTION
      PERFORM process_coacode.
      PERFORM process_acctcode.
      PERFORM process_entitycode.
      PERFORM process_attribcode.
      PERFORM process_glbal.
      PERFORM process_ftp_file.
      IF NOT it_zgeist_error_data[] IS INITIAL.
        PERFORM write_error_report.
      ENDIF.
    *&      Form  GET_COMPANY_LIST
               Form to get Company List                                 *
    FORM get_company_list.
      CALL FUNCTION 'BAPI_COMPANY_GETLIST'
        TABLES
          company_list = it_company_list.
    ENDFORM.                    "GET_COMPANY_LIST
    *&      Form  GET_GL_ACC_DETAIL
          Form to get the GL Account details                            *
    FORM get_gl_acc_detail.
      DATA : l_txt50 LIKE skat-txt50,
             l_tabix LIKE sy-tabix.
      SELECT saknr xloev
        INTO TABLE it_gl_detail
        FROM ska1
        WHERE ktopl = 'G001'
        AND   ( saknr GE '1000000000' AND saknr LE '4500000000' ).
      LOOP AT it_gl_detail.
        l_tabix = sy-tabix.
        SELECT SINGLE txt50
          INTO l_txt50
          FROM skat
          WHERE spras = 'EN'
          AND   ktopl = 'G001'
          AND   saknr = it_gl_detail-saknr.
        it_gl_detail-txt50_skat = l_txt50.
        MODIFY it_gl_detail INDEX l_tabix.
        CLEAR l_txt50.
      ENDLOOP.
    ENDFORM.                    "GET_GL_ACC_DETAIL
    *&      Form  PROCESS_COACODE
    Form to Populate COA data to Output internal table  IT_COACODE *
    FORM process_coacode.
      it_coacode-coa_code          =  text-023.     "GLOBAL.
      it_coacode-coa_description   =  text-022.     "Global SAP for ERC
      it_coacode-field11           =  '11'.
      APPEND it_coacode.
      CLEAR it_coacode.
    ENDFORM.                    "PROCESS_COACODE
    *&      Form  PROCESS_ACCTCODE
    Form to Populate Account data to Output Internal table IT_ACCTCODE *
    FORM process_acctcode.
      DATA:l_saknr(10).
      DATA : it_gl_detail2 LIKE it_gl_detail OCCURS 0 WITH HEADER LINE.
      IF NOT it_gl_detail[] IS INITIAL.
        it_gl_detail2[] = it_gl_detail[].
        SORT it_gl_detail2 BY saknr.
        DELETE ADJACENT DUPLICATES FROM it_gl_detail2 COMPARING saknr.
      ENDIF.
      IF NOT it_gl_detail2[] IS INITIAL.
        LOOP AT it_gl_detail2.
          MOVE it_gl_detail2-saknr      TO it_acctcode-act_code.
          MOVE it_gl_detail2-txt50_skat TO it_acctcode-act_desc.
    Check GL Account is marked for deletion or not
          IF it_gl_detail2-xloev     = c_selected.
            it_acctcode-act_act_flag = c_n.
          ELSE.
            it_acctcode-act_act_flag = c_y.
          ENDIF.
    Determine GL Account type based on GL account number
          l_saknr = it_gl_detail2-saknr.
          SHIFT l_saknr LEFT DELETING LEADING '0'.
          IF l_saknr CP '1*'.
            it_acctcode-glact_type = c_a.
          ELSEIF l_saknr CP '2*'.
            it_acctcode-glact_type = c_l.
          ELSEIF l_saknr CP '3*'.
            it_acctcode-glact_type = c_q.
    Start of Addition by C.Ramesh Babu on 11/04/2005   "DR1K907900
          ELSEIF l_saknr CP '4*'.
            it_acctcode-glact_type = c_l.
    End of Addition by C.Ramesh Babu on 11/04/2005   "DR1K907900
          ELSEIF l_saknr CP '5*'.
            it_acctcode-glact_type = c_r.
          ELSEIF l_saknr CP '6*'.
            it_acctcode-glact_type = c_e.
          ELSEIF l_saknr CP '7*'.
            it_acctcode-glact_type = c_t.
          ENDIF.
          it_acctcode-fi_line      = 'CDR'.
          it_acctcode-coa_code     = 'GLOBAL'.
          it_acctcode-act_defcode  = '001'.
          it_acctcode-field11      = '11'.
          APPEND :it_acctcode.
          CLEAR  :it_acctcode,it_gl_detail2.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    "PROCESS_ACCTCODE
    *&      Form  PROCESS_ENTITYCODE
      Form to Populate Entiti data to Output file internal table        *
    FORM process_entitycode.
      IF NOT it_company_list[] IS INITIAL.
        LOOP AT it_company_list.
          SHIFT it_company_list-company LEFT DELETING LEADING '0'.
          MOVE it_company_list-company TO it_entitycode-entity_code.
          MOVE it_company_list-name1   TO it_entitycode-com_desc.
          it_entitycode-coa_code    = 'GLOBAL'.
          it_entitycode-field11     = '11'.
          APPEND it_entitycode.
          CLEAR : it_company_list,it_entitycode.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    "PROCESS_ENTITYCODE
    *&      Form  PROCESS_ATTRIBCODE
        Form to Populate Attribute data to output file internal table   *
    FORM process_attribcode.
    Getting data from T001.
      SELECT * FROM t001 INTO TABLE it_t001.
      LOOP AT it_t001.
        MOVE c_rassc TO it_attribcode-attrib_code.
        MOVE it_t001-bukrs TO  it_attribcode-attrib_value.
        MOVE c_tradptn TO it_attribcode-attrib_desc.
        it_attribcode-field11 = '11'.
        APPEND it_attribcode.
        CLEAR it_attribcode.
      ENDLOOP.
    Getting data from table ZDATSRC_T.
      SELECT * FROM zdatsrc_t INTO TABLE it_zdatsrc.
      LOOP AT it_zdatsrc.
        MOVE c_dtsrce TO it_attribcode-attrib_code.
        MOVE it_zdatsrc-zdatsrc TO  it_attribcode-attrib_value.
        MOVE c_datsrc TO it_attribcode-attrib_desc.
        it_attribcode-field11 = '11'.
        APPEND it_attribcode.
        CLEAR it_attribcode.
      ENDLOOP.
    Getting data from table SKA1.
      SELECT * FROM ska1 INTO TABLE it_ska1.
      LOOP AT it_ska1.
        MOVE c_sacct TO it_attribcode-attrib_code.
        MOVE it_ska1-saknr TO  it_attribcode-attrib_value.
        MOVE c_glacc TO it_attribcode-attrib_desc.
        it_attribcode-field11 = '11'.
        APPEND it_attribcode.
        CLEAR it_attribcode.
      ENDLOOP.
    Getting data from table T003.
      SELECT * FROM t003 INTO TABLE it_t003.
      LOOP AT it_t003.
        MOVE c_docty TO it_attribcode-attrib_code.
        MOVE it_t003-blart TO  it_attribcode-attrib_value.
        MOVE c_doctyp TO it_attribcode-attrib_desc.
        it_attribcode-field11 = '11'.
        APPEND it_attribcode.
        CLEAR it_attribcode.
      ENDLOOP.
    Getting data from table T856.
      SELECT * FROM t856 INTO TABLE it_t856.
      LOOP AT it_t856.
        MOVE c_trxtp TO it_attribcode-attrib_code.
        MOVE it_t856-trtyp TO  it_attribcode-attrib_value.
        MOVE c_trantyp TO it_attribcode-attrib_desc.
        it_attribcode-field11 = '11'.
        APPEND it_attribcode.
        CLEAR it_attribcode.
      ENDLOOP.
    ENDFORM.                    "PROCESS_ATTRIBCODE
    *&      Form  PROCESS_GLBAL
      Form to Populate GL Balance data to Output file internal table    *
    FORM process_glbal.
      DATA : l_ctran_amt(21),
             l_cusd_amt(21).
      LOOP AT it_zgeist_data INTO wa_it_zgeist_data1.
    *Start of change by 501030559 on 11/04/2005
       it_glbal-gl_reccode = '04'.
         it_glbal-gl_reccode = '05'.
    *End of change by 501030559 on11/04/2005
        it_glbal-gl_entity  = wa_it_zgeist_data1-rbukrs.
        it_glbal-gl_accnum  = wa_it_zgeist_data1-zzaltkt.
        it_glbal-site       = 'ERC'.
        it_glbal-currency_type = wa_it_zgeist_data1-rtcur.
        it_glbal-year = w_year.
        it_glbal-month = w_period.
        it_glbal-as_of_date = w_date.
        l_ctran_amt = wa_it_zgeist_data1-tslvt.
    Put sign to left side of the value
        IF l_ctran_amt LT 0.
          TRANSLATE l_ctran_amt USING ' 0'.
          CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
            CHANGING
              value = l_ctran_amt.
        ELSE.
    Trailing Zero's to the value
          SHIFT l_ctran_amt RIGHT DELETING TRAILING space.
          TRANSLATE l_ctran_amt USING ' 0'.
          REPLACE '0' WITH '' INTO l_ctran_amt.
        ENDIF.
        it_glbal-tran_cur_amt = l_ctran_amt.
        l_cusd_amt = wa_it_zgeist_data1-kslvt.
    Put Sign to leftside of the value
        IF l_cusd_amt LT 0.
          TRANSLATE l_cusd_amt USING ' 0'.
          CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
            CHANGING
              value = l_cusd_amt.
        ELSE.
    Trailing Zero's to the value
          SHIFT l_cusd_amt RIGHT DELETING  TRAILING space.
          TRANSLATE l_cusd_amt USING ' 0'.
          REPLACE '0' WITH '' INTO l_cusd_amt.
        ENDIF.
        it_glbal-usd_amount = l_cusd_amt.
        it_glbal-racct   = wa_it_zgeist_data1-racct.
        it_glbal-zzbewar = wa_it_zgeist_data1-zzbewar.
        it_glbal-zzdatsrc = wa_it_zgeist_data1-zzdatsrc.
        it_glbal-zzblart  = wa_it_zgeist_data1-zzblart.
        it_glbal-rassc  = wa_it_zgeist_data1-rassc.
        it_glbal-field11 = '11'.
        APPEND it_glbal.
        CLEAR : wa_it_zgeist_data1, it_glbal.
      ENDLOOP.
    ENDFORM.                    "PROCESS_GLBAL
    *&      Form  PROCESS_GLOBALSAP
       Form to Populate COntrol data to Output file internal table      *
    FORM process_globalsap.
      DATA :l_total(9),
            l_len(3) type c.
    Logic to get Time Zone
      w_timediff  = sy-tzone.
      IF sy-tzone LT '0'.
        w_timediff = sy-tzone * -1.
        CONCATENATE 'GMT-' w_timediff(4) INTO w_timezone.
      ELSE.
        w_timediff = sy-tzone.
        CONCATENATE 'GMT+' w_timediff(4) INTO w_timezone.
      ENDIF.
      LOOP AT S_EMAIL.
        CONCATENATE C_USERID S_EMAIL-LOW ',' INTO C_USERID.
      ENDLOOP.
      l_len = strlen( c_userid ).
      l_len = l_len - 1.
      c_userid = c_userid+0(l_len).
      it_globalsap-clnt_name    = 'ERC'.
      it_globalsap-source_name  = 'GLOBALSAP'.
      it_globalsap-as_of_date   = w_date.
      it_globalsap-time_stamp   = sy-uzeit.
      it_globalsap-time_zone    = w_timezone.
      it_globalsap-num_of_files = w_file_count.
      MOVE w_tot_recs TO l_total.
      SHIFT l_total RIGHT DELETING TRAILING space.
      TRANSLATE l_total USING ' 0'.
      it_globalsap-num_of_records = l_total.
      it_globalsap-user_ids = c_userid.
      it_globalsap-field11  = '11'.
      APPEND it_globalsap.
      CLEAR it_globalsap.
    ENDFORM.                  "PROCESS_GLOBALSAP
    *&      Form  COUNT_RECORDS
    Form to count total number of records Downlaoded                   *
    FORM count_records.
      DESCRIBE TABLE it_coacode    LINES w_cnt1.
      DESCRIBE TABLE it_acctcode   LINES w_cnt2.
      DESCRIBE TABLE it_entitycode LINES w_cnt3.
      DESCRIBE TABLE it_attribcode LINES w_cnt4.
      DESCRIBE TABLE it_glbal      LINES w_cnt5.
      w_tot_recs = w_cnt1 + w_cnt2 + w_cnt3 + w_cnt4 + w_cnt5.
    ENDFORM.                    "COUNT_RECORDS
    *&      Form  get_zgeist_data
    Form used to fetch data from ZGEIST table for the GL BAL file
    FORM get_zgeist_data .
      PERFORM get_period_year.
      SELECT * INTO TABLE it_zgeist_data_all
               FROM zgeist
               WHERE rldnr  EQ 'GG'
               AND   ryear  EQ w_year
               AND   rrcty  EQ 0
               AND   rpmax  EQ '016'
               AND  ( zzaltkt GE '1000000000' AND zzaltkt LE '4500000000' )
               AND   rzzstagr = space.
      sort it_zgeist_data_all by rbukrs rldnr zzaltkt racct
                                 zzdatsrc zzbewar zzblart rtcur rassc.
      LOOP AT it_zgeist_data_all INTO wa_it_zgeist_data.
        IF wa_it_zgeist_data-zzaltkt EQ space.
          wa_it_zgeist_error_data-rldnr = wa_it_zgeist_data-rldnr.
          wa_it_zgeist_error_data-rrcty = wa_it_zgeist_data-rrcty.
          wa_it_zgeist_error_data-rvers = wa_it_zgeist_data-rvers.
          wa_it_zgeist_error_data-ryear = wa_it_zgeist_data-ryear.
          wa_it_zgeist_error_data-rbukrs = wa_it_zgeist_data-rbukrs.
          wa_it_zgeist_error_data-robjnr = wa_it_zgeist_data-robjnr.
          wa_it_zgeist_error_data-cobjnr = wa_it_zgeist_data-cobjnr.
          wa_it_zgeist_error_data-sobjnr = wa_it_zgeist_data-sobjnr.
          wa_it_zgeist_error_data-rtcur = wa_it_zgeist_data-rtcur.
          wa_it_zgeist_error_data-runit = wa_it_zgeist_data-runit.
          wa_it_zgeist_error_data-drcrk = wa_it_zgeist_data-drcrk.
          wa_it_zgeist_error_data-rpmax = wa_it_zgeist_data-rpmax.
          APPEND wa_it_zgeist_error_data TO it_zgeist_error_data.
        ELSE.
          it_zgeist_data1-rbukrs   = wa_it_zgeist_data-rbukrs.
          it_zgeist_data1-rldnr    = wa_it_zgeist_data-rldnr.
          it_zgeist_data1-zzaltkt  = wa_it_zgeist_data-zzaltkt.
          it_zgeist_data1-racct    = wa_it_zgeist_data-racct.
          it_zgeist_data1-zzdatsrc = wa_it_zgeist_data-zzdatsrc.
          it_zgeist_data1-zzbewar  = wa_it_zgeist_data-zzbewar.
          it_zgeist_data1-zzblart  = wa_it_zgeist_data-zzblart.
          it_zgeist_data1-rassc  = wa_it_zgeist_data-rassc.
          it_zgeist_data1-rtcur    = wa_it_zgeist_data-rtcur.
          PERFORM get_tslvt_kslvt_values USING w_period.
          COLLECT it_zgeist_data1.
        ENDIF.
        CLEAR : wa_it_zgeist_data, wa_it_zgeist_error_data,
                it_zgeist_data1.
      ENDLOOP.
      it_zgeist_data[] = it_zgeist_data1[].
    ENDFORM.                    " get_zgeist_data
    *&      Form  write_error_report
    Form used to display error data for the GL BAL fetched data
    FORM write_error_report .
      DATA : l_text(80) TYPE c.
      CASE w_period.
        WHEN '001' OR '01'.
          l_text = text-e01.
        WHEN '002' OR '02'.
          l_text = text-e02.
        WHEN '003' OR '03'.
          l_text = text-e03.
        WHEN '004' OR '04'.
          l_text = text-e04.
        WHEN '005' OR '05'.
          l_text = text-e05.
        WHEN '006' OR '06'.
          l_text = text-e06.
        WHEN '007' OR '07'.
          l_text = text-e07.
        WHEN '008' OR '08'.
          l_text = text-e08.
        WHEN '009' OR '09'.
          l_text = text-e09.
        WHEN '010' OR '10'.
          l_text = text-e10.
        WHEN '011' OR '11'.
          l_text = text-e11.
        WHEN '012' OR '12'.
          l_text = text-e12.
        WHEN '013' OR '13'.
          l_text = text-e13.
        WHEN '014' OR '14'.
          l_text = text-e14.
        WHEN '015' OR '15'.
          l_text = text-e15.
        WHEN '016' OR '16'.
          l_text = text-e16.
      ENDCASE.
      SKIP 2.
      WRITE:/45 text-h01 COLOR COL_HEADING.
      SKIP 2.
      FORMAT COLOR 4.
      WRITE:/(234) sy-uline.
      WRITE:/1   sy-vline,
             2   text-h02,
             9   sy-vline,
             10  text-h03,
             19  sy-vline,
             20  text-h04,
             28  sy-vline,
             29  text-h05,
             41  sy-vline,
             42  text-h06,
             49  sy-vline,
             50  text-h07,
             69  sy-vline,
             70  text-h08,
             89  sy-vline,
             90  text-h09,
             109 sy-vline,
             110 text-h10,
             119 sy-vline,
             120 text-h11,
             130 sy-vline,
             131 text-h12,
             144 sy-vline,
             145 text-h13,
             152 sy-vline,
             153 text-h14,
             234 sy-vline.
      WRITE:/(234) sy-uline.
      FORMAT COLOR OFF.
      LOOP AT it_zgeist_error_data INTO wa_it_zgeist_error_data.
        FORMAT COLOR 2.
        WRITE:/1   sy-vline,
               4   wa_it_zgeist_error_data-rldnr,
               9   sy-vline,
               13  wa_it_zgeist_error_data-rrcty,
               19  sy-vline,
               22  wa_it_zgeist_error_data-rvers,
               28  sy-vline,
               32  wa_it_zgeist_error_data-ryear,
               41  sy-vline,
               42  wa_it_zgeist_error_data-rbukrs,
               49  sy-vline,
               50  wa_it_zgeist_error_data-robjnr,
               69  sy-vline,
               70  wa_it_zgeist_error_data-cobjnr,
               89  sy-vline,
               90  wa_it_zgeist_error_data-sobjnr,
               109 sy-vline,
               112 wa_it_zgeist_error_data-rtcur,
               119 sy-vline,
               123 wa_it_zgeist_error_data-runit,
               130 sy-vline,
               135 wa_it_zgeist_error_data-drcrk,
               144 sy-vline,
               147 wa_it_zgeist_error_data-rpmax,
               152 sy-vline,
               153 l_text,
               234 sy-vline.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/(234) sy-uline.
    ENDFORM.                    " write_error_report
    *&      Form  get_tslvt_kslvt_values
    Form used to get TSLxx & KSLxx values for the period fetched
    FORM get_tslvt_kslvt_values USING period.
    FIELD-SYMBOLS : <f1> TYPE ANY,
                     <f2> TYPE ANY.
    DATA : l_tslvt_val(25) VALUE 'wa_it_zgeist_data-tsl',
            l_kslvt_val(25) VALUE 'wa_it_zgeist_data-ksl',
            l_tslvt TYPE tslvt9,
            l_kslvt TYPE kslvt9,
            l_period TYPE poper.
      clear l_period.
      l_period = period.
      DO l_period TIMES.
          CONCATENATE  l_tslvt_val  l_period+1(2) INTO  l_tslvt_val.
          CONCATENATE   l_kslvt_val l_period+1(2) INTO  l_kslvt_val.
        ASSIGN (l_tslvt_val) TO <f1>.
        l_tslvt = <f1>.
        it_zgeist_data1-tslvt = it_zgeist_data1-tslvt + l_tslvt.
        ASSIGN (l_kslvt_val) TO <f2>.
        l_kslvt = <f2>.
        it_zgeist_data1-kslvt = it_zgeist_data1-kslvt + l_kslvt.
        l_period = l_period - 1.
        clear : l_tslvt, l_kslvt, l_tslvt_val, l_kslvt_val.
        l_tslvt_val = 'wa_it_zgeist_data-tsl'.
        l_kslvt_val = 'wa_it_zgeist_data-ksl'.
        if l_period = 0.
          exit.
        endif.
      ENDDO.
    ENDFORM.                    "get_tslvt_kslvt_values
    *&      Form  process_ftp_file
    Form used to connect & disconnect to Informatica Server using FTP
    Also, used to transfer files to the Informatica location
    -->  p1        text
    <--  p2        text
    FORM process_ftp_file .
      DATA: l_slen     TYPE i,
            l_error,
            l_pwd(30)  TYPE c.
      CONSTANTS: c_dest TYPE rfcdes-rfcdest VALUE 'SAPFTP',
                 c_key  TYPE i              VALUE 26101957.
      l_error = 0.
    connect to ftp server
      l_pwd = p_pwd.
      l_slen = STRLEN( l_pwd ).
      CALL FUNCTION 'HTTP_SCRAMBLE'
        EXPORTING
          SOURCE      = l_pwd
          sourcelen   = l_slen
          key         = c_key
        IMPORTING
          destination = l_pwd.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          text = 'Connect to FTP Server'.
    To Connect to the Server using FTP
      CALL FUNCTION 'FTP_CONNECT'
        EXPORTING
          user            = p_user
          password        = l_pwd
          host            = p_host
          rfc_destination = c_dest
        IMPORTING
          handle          = w_hdl
        EXCEPTIONS
          OTHERS          = 1.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      CLEAR : w_outfile, w_file_count.
      MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_COACODE' TO w_outfile.
      PERFORM download_to_ftp TABLES it_coacode USING w_outfile.
      w_file_count = w_file_count + 1.
      CLEAR : w_outfile.
      MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_ACCTCODE' TO w_outfile.
      PERFORM download_to_ftp TABLES it_acctcode USING w_outfile.
      w_file_count = w_file_count + 1.
      CLEAR : w_outfile.
      MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_ENTITYCODE' TO w_outfile.
      PERFORM download_to_ftp TABLES it_entitycode USING w_outfile.
      w_file_count = w_file_count + 1.
      CLEAR : w_outfile.
      MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_ATTRIBCODE' TO w_outfile.
      PERFORM download_to_ftp TABLES it_attribcode USING w_outfile.
      w_file_count = w_file_count + 1.
      CLEAR : w_outfile.
      MOVE 'ERC/GLOBALSAP/ERC_GLOBALSAP_GLBAL' TO w_outfile.
      PERFORM download_to_ftp TABLES it_glbal USING w_outfile.
      w_file_count = w_file_count + 1.
      CLEAR : w_outfile, w_tot_recs.
      PERFORM count_records.
      PERFORM process_globalsap.
      MOVE 'ERC/GLOBALSAP/C_ERC_GLOBALSAP' TO w_outfile.
      PERFORM download_to_ftp TABLES it_globalsap USING w_outfile.
    To disconnect the FTP
      CALL FUNCTION 'FTP_DISCONNECT'
        EXPORTING
          handle = w_hdl.
    To disconnect the RFC Connection
      CALL FUNCTION 'RFC_CONNECTION_CLOSE'
        EXPORTING
          destination = c_dest
        EXCEPTIONS
          OTHERS      = 1.
    ENDFORM.                    " process_ftp_file
    *&      Form  download_to_ftp
    Form to put the files in the Informatica Location using FTP
    Path is ERC\GLOBALSAP\<filename>
    FORM download_to_ftp TABLES it_tab
                         USING l_string TYPE char64.
      CALL FUNCTION 'FTP_R3_TO_SERVER'
        EXPORTING
          handle         = w_hdl
          fname          = l_string
          character_mode = 'X'
        TABLES
          text           = it_tab[]
        EXCEPTIONS
          tcpip_error    = 1
          command_error  = 2
          data_error     = 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
                RAISING invalid_output_file.
      ENDIF.
    ENDFORM.                    " download_to_ftp
    *&      Form  get_period_year
    Form to fill the Period & Year based on the Sy-datum
    FORM get_period_year .
      DATA : l_month(2) TYPE c,
             l_day(2)   TYPE c,
             l_year(4)  TYPE c.
      l_year  = sy-datum+0(4).
      l_month = sy-datum+4(2).
      l_day   = sy-datum+6(2).
      CASE l_month.
        WHEN '01'.
          IF l_day <= '15'.
            w_period = '12'.
            w_year = l_year - 1.
          ELSE.
            w_period = '1'.
            w_year = l_year.
          ENDIF.
        WHEN '02'.
          IF l_day <= '15'.
            w_period = '1'.
            w_year = l_year.
          ELSE.
            w_period = '2'.
            w_year = l_year.
          ENDIF.
        WHEN '03'.
          IF l_day <= '15'.
            w_period = '2'.
            w_year = l_year.
          ELSE.
            w_period = '3'.
            w_year = l_year.
          ENDIF.
        WHEN '04'.
          IF l_day <= '15'.
            w_period = '3'.
            w_year = l_year.
          ELSE.
            w_period = '4'.
            w_year = l_year.
          ENDIF.
        WHEN '05'.
          IF l_day <= '15'.
            w_period = '4'.
            w_year = l_year.
          ELSE.
            w_period = '5'.
            w_year = l_year.
          ENDIF.
        WHEN '06'.
          IF l_day <= '15'.
            w_period = '5'.
            w_year = l_year.
          ELSE.
            w_period = '6'.
            w_year = l_year.
          ENDIF.
        WHEN '07'.
          IF l_day <= '15'.
            w_period = '6'.
            w_year = l_year.
          ELSE.
            w_period = '7'.
            w_year = l_year.
          ENDIF.
        WHEN '08'.
          IF l_day <= '15'.
            w_period = '7'.
            w_year = l_year.
          ELSE.
            w_period = '8'.
            w_year = l_year.
          ENDIF.
        WHEN '09'.
          IF l_day <= '15'.
            w_period = '8'.
            w_year = l_year.
          ELSE.
            w_period = '9'.
            w_year = l_year.
          ENDIF.
        WHEN '10'.
          IF l_day <= '15'.
            w_period = '9'.
            w_year = l_year.
          ELSE.
            w_period = '10'.
            w_year = l_year.
          ENDIF.
        WHEN '11'.
          IF l_day <= '15'.
            w_period = '10'.
            w_year = l_year.
          ELSE.
            w_period = '11'.
            w_year = l_year.
          ENDIF.
        WHEN '12'.
          IF l_day <= '15'.
            w_period = '11'.
            w_year = l_year.
          ELSE.
            w_period = '12'.
            w_year = l_year.
          ENDIF.
      ENDCASE.
    ENDFORM.                    " get_period_year

  • PI FTP: Process 1 file at a time until it is successfully processed at the target system

    Dear Experts,
    As the title said, I'm required to process 1 file at a time and only process the next file after the previous file has been successfully processed at the target system. The interface scenario is asynchronous FTP to ABAP proxy.
    It is similar with the following link:
    File adapter to pick a single file
    I think there could be 2 feasible solutions:
    1. Configure EOIO at the sender CC. According to this link:
         Queues for Asynchronous Message Processing (SAP Library - SAP NetWeaver Exchange Infrastructure)
         It is stated that "Once the message has been processed successfully in the target system, the Integration Engine executes an implicit database commit."
         In the case of asynchronous FTP to ABAP proxy, will the PI wait for the ABAP proxy to finish processing the file before sending the next one?
    2. Configure locking at the ABAP program in ECC. I could ask the ABAPer to create a locking mechanism to lock the document before it is posted to BAPI. If the reference document is being locked, it will try again for the next second up to a certain times before it gives up.
    Which 1 is actually fits the requirement?
    Thank you,
    Suwandi C.

    Dear Experts,
    Sorry, just 1 more question which I'm curious.
    In NFS adapter we have the option to set the processing sequence to by Name / Date.
    In FTP will it only by Date?
    According to this link:
    https://help.sap.com/saphelp_nw73/helpdata/en/f9/17888f490846a9972628525cc28aac/content.htm
    "Messages are delivered with the same queue names (supplied by the application) in the same sequence that they were sent from the sender system"
    If it is in the same sequence sent by the sender, I guess it is in the Date order for FTP. Is that correct?
    Thank you,
    Suwandi C.

Maybe you are looking for

  • How to get the SharePoint user context available in custom federated search connector?

    Hi, I'm investigating the possibilities for developing a federated search connector for SharePoint 2013 Online. This should allow us to search a customer's database through our custom developed application (both on premise). We intend to develop an r

  • Which API for Additional Assignment Details?

    Hi All I have two segments for the Additional Assignment Details DFF, first 'Mobile Provided' and second 'Food Allowance'. For this i want to pass 'yes' or 'no' for the employees. Which API I can use for this? Regards Rahman

  • Will the internet still work if no 3g network?

    I ordered an Ipad 3g verizon and I live in Sun Valley Idaho where there is no 3g coverage. I have a verizon phone and the internet works. So will the Ipad work too? Just not at 3g speeds? I know I can always connect to wi-fi just want to know if it w

  • MDX Hierarchy Help

    Hi, I want to extarct the hierarchy underneath [LEVEL01, I am writting a following mdx query but it gives my the result of all the nodes under LEVEL01 whereas I want to extract only specific (lets assume A) under [LEVEL01], has anybody worked on extr

  • The Scout CC installer stalls. I am behind a proxy that needs authentication. What can I do?

    The Scout CC installer stalls at the beginning of the process (trying to connect to the server). I am behind a proxy that needs authentication. How can I install Scout CC? Thanks