Payment file duplication in target system in F110 Transaction

Hi All
Payment file duplication in target system. Wherein since the Print Job was scheduled twice by user, the duplication of payment had taken place.The payment medium program u201CRFFOAVIS_FPAYMu201D  is use to control the generation of duplicate payment file at automatic payment run program(F110).User needs an warning message if print job is schedule twice on same date and same identification number.Has Any one  implemented such a scenario.
Thanks!

Hi Vikram,
            Please set up the validation with the help of your abaper in T.Code OB28  with message type E along with message variables co.code and header level tables.
Regards,
Srinivas Muthyala

Similar Messages

  • Payment file duplication in target system at F110 transaction

    Hi All
    Payment file duplication in target system. Wherein since the Print Job was scheduled twice by user, the duplication of payment had taken place.The payment medium program u201CRFFOAVIS_FPAYMu201D is use to control the generation of duplicate payment file at automatic payment run program(F110).User needs an warning message if print job is schedule twice on same date and same identification number.Has Any one implemented such a scenario.
    Thanks!

    Hi
    System usually gives warning message F0417 aaginst the duplicatate print schedule , no need to do anything to get this message..
    Please check print log in additional filed tab in F110 , you will find this warning message in the log.
    Further you can chcek this warning message property if you can change this  from warning to warning plus email or any other option, which will prevent /alert duplicate file processeing.
    Cheers
    Mukta

  • Ueser Exit - Payment file duplication- F110

    Hi All
    Payment file duplication in target system.
    Wherein since the Print Job was scheduled twice by user, the duplication of payment had taken place.
    The payment medium program u201CRFFOAVIS_FPAYMu201D is use to control the generation of duplicate payment file at automatic payment run program(F110).User needs an warning message if print job is schedule twice on same date and same identification number.Has any one implemented such a scenario.Any user exit/ BADI for this scenario.
    Thanks!

    Hi,
    Take a look on the following:
    FDTAX001            Enhancement to Transaction FDTA (event after the download)
    FEDI0002            Function exits for EDI DOCS in FI - Incoming pyt adv.notes
    FEDI0003            Function exits for EDI docs in FI - Save PEXR segments
    FEDI0004            Function exits for EDI docs in FI - particular events
    FEDI0006            Function Exits for EDI-docs in FI: Save IDCR Segments
    RFFOX003            Frame for user exit RFFOX003 (in program RFFOM100)
    Hope it helps.
    Regards
    Rajesh Kumar

  • 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

  • How to Archive Files to Two target systems based on Condition

    Hi All,
    Iam doing Idoc--File Interface.
    we have to send the file to Two Different systems based on the plant condition
    If plant = 123 then send to ABC system ELSE if Plant = 999 then send it to XYZ system.
    And Archive the file to one Archive folder of the any one system. this is working fine correctly.
    Archive means not exactly Archiving, just we are droping one more extra file to Archive folder for refference
    Now i need to construct like this
    If plant = 123 then send to ABC system and Archive to Archive directory ELSE if Plant = 999 then send it to XYZ system and Archive to Archive directory.
    Please suggest me on this
    Regards
    Vamsi

    If Plant = 123 then select the BS1(ABC System)
    Ex: //sapdev/test/ABC/item.txt
    For Archive If Plant = 123 then select the BS1(ABC System) Archive folder
    Ex: //sapdev/test/ABC/Archive/item.txt
    If Plant = 999 then select the BS2(XYZ System)
    Ex: //sapdev/test/XYZ/item.txt
    For Archive If Plant = 123 then select the BS2(XYZ System) Archive folder
    Ex: //sapdev/test/XYZ/Archive/item.txt
    Then this becomes very simple:)
    I m assuming you are already using conditional Receiver determination,now for each receiver just configure an extra interface in Interface determination.
    so you will have 2 interface determination and each one of them will have 2 inbound messages,they can use same interface mapping.
    you already will have 1 conditional receiver determination.
    You can also do this via OS script if you have experience in that.
    Thanks
    Aamir

  • To retain the same file name in target(File) that coming from source system(AS2).

    Hi All,
    I have a requirement to send the two file from the third party system(GXS) to SAP ECC via SAP PI(version - 7.4). We are using AS2 adapter at the sender side to pick the file and using File Adapter to place the file in ECC.
    Its a pass through scenarion(No ESR part is used).
    Requirement:
    We are going to get 2 files ->Example:  one from Axis and another one from ICICI -> each bank file will have a file name ->
    We have to post the file at the target system with the same name as source file name, the source file name could come dynamically(with diff time stamp).
    Please let me know, Is it possible to achieve the above requirement(we have to retain the file name in target that coming from source system) with Sender AS2 adapter, If yes then please suggest the best approach.
    Regards,
    Pradeep Bawlia

    Hi Guys,
    The above requirement is solved now.
    Solution - I used java mapping for extracting the same source file name and assignning the same to the target system.
    Code:
    public class ExtractFileName_ASMA extends AbstractTransformation{
    public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException  
    DynamicConfiguration conf=in.getDynamicConfiguration();
    DynamicConfigurationKey key_AS2FileNmae = DynamicConfigurationKey.create("http://sap.com/xi/XI/AS2/AS2", "AS2Filename");
    DynamicConfigurationKey key_FileNmae = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File", "FileName");
    String As2FileName=conf.get(key_AS2FileNmae);
    conf.put(key_FileNmae, As2FileName);
    try{
    byte b[]=new byte[in.getInputPayload().getInputStream().available()];
    in.getInputPayload().getInputStream().read(b);
    out.getOutputPayload().getOutputStream().write(b);
    catch(Exception e)
    2. Another solution we can use the graphical mapping and need to use the dynamic config UDF at mapping level to acheive this requirement but here is one drawback - we need to do content conversion is this case.
    In case of Java mapping, no need to play with source file.
    WITHOUT USING ESR, WE CAN NOT ACHEIVE THIS REQUIREMENT.
    Regards,
    Pradeep Bawlia

  • BPM was Picking two files but it was not processing 2nd file data in target

    Hi all,
    I have designed scenario for picking two files and i want to merge this files into single structure and send it target.when i am try to testing my bpm was picking two files but it is processing only file it went target system.i have steructe for source like
    source1     target
    root        header
    a           item 0 to unbounded
    b            a
    c            b
                 c
    source2     item1 duplicated structure
    a            a
    b            b
    c            c
    i am getting two source files with the same structure but i have to map it one target structure and i want to map both source fileds to one target structre under item node so i was duplicated item node and mapped a b c fields from both(2 source structures).while testing BPM is picking two file bu in the target i am getting only first file data under item node,whatever i mapped with duplicate structure with second file i am not getting into target file(target is standard proxy structure so cant' create new one item node in that occurance is 0 to unbounded thats y i duplicated node while testing interface mapping its working fine).can anyone suggest solution for this problem.
    Thanks,
    Seshagiri.

    Hi,
    In BPM follow the below steps and hopefully your problem will be solved.
    1.     Configure one sender CC to get the files from your application server, once the files hit the BPM now you need to
                         configure your BPM accordingly.
    2.     Use the Receiver step in BPM to receive the messages. Use the correlation step to get the correct files.
    3.     Use container and append the files, so both the files will be append, this means the message content will
                         have 1header, body, footer, 2header, body, footer.
    4.     If you want to split the message to different receiver then use the fork step else leave it.
    5.     Use the transformation step, the transformation step will call the message mapping. Provide the correct message
                         mapping.
    6.     Now use the sender step to send the message to the receiver-target system. In this step use the split value for each
                          concept if you want to generate two different files.
    7.     Configure 1 receiver CC to generate both the files.
    Hope this helps.
    Cheers,
    Jay

  • Changing Unix file attributes in target host

    Hello,
    I need to transmit a file from a SAP server to a target host in Unix.
    Actually the transmission is OK. I'm using the SAPFTP program.
    Now, my problem is that in the new file on the target system (in Unix) I need to change the file permissons to 777.
    The FM FTP_COMMAND doesn't work because the command chmod is not available through ftp. If I use this, I receipt the message "502 SITE command is not implemented".
    Somebody have another idea to change the Unix file attributes in a remote way from ABAP?
    Best regards!

    Hi Roberto,
    Look at the below BLOG, this explaines about the Commands which we use in FTP ..
    /people/thomas.jung3/blog/2004/11/15/performing-ftp-commands-from-abap
    Regards
    Sudheer

  • How do I consolidate in FDM AFTER all files load to target?

    Hi,
    We are using FDM to import and export out to HFM forecasting data. The files are sent via ETL to the OpenBatch folder and then I am using parallel processing to import, validate, and consolidate the files to the target system, which is HFM. The problem is the performance. As each file is loaded using the batch loader script, it loads and consolidates each file as each file processes. I would like to find a way to load and export all files FIRST to HFM - and then when the last file is encountered (the 12th file), I would like to run a consolidate on the file to HFM so that the consolidation will consolidate all at once and help save some time. Here are the steps I would like to accomplish:
    1. Import, Validate, and Export the first 11 files to HFM
    2. Import, Validate, Export, and Consolidate the 12th file to HFM - the idea is that all previous 11 files will consolidate atone time instead of the out of the box way using the standard BatchLoader script.
    Does anyone know HOW I can make this happen? Out of the box this is not possible without some major script customization. Could someone please give me some sort of idea where I can make this happen? I really appreciate the help. Below is the standard Batch Loader script I am using and I would like to somehow customize:
    Sub webBatchStdParallel()
    'Oracle Hyperion FDM CUSTOM Script:
    'Parallel Processing
    'STANDARD Batch Parallel Processing
    'Declare Local Variables
    Dim lngProcessLevel
    Dim strDelimiter
    Dim blnAutoMapCorrect
    Dim lngParallelProcessCount
    Dim strLoadBalanceServerName
    Dim BATCHENG
    Set BATCHENG = CreateObject("upsWBatchLoaderDM.clsBatchLoader")
    BATCHENG.mInitialize API, SCRIPTENG
    'Initialize variables Variables
    lngProcessLevel = 10                     'Up-To-Consolidate
    strDelimiter = "_"                         'File Name Delimiter
    blnAutoMapCorrect = True                    'Auto Map Correction is On
    lngParallelProcessCount = 2                    'Number of Parallel Processes (Should equal # of Processors)
    strLoadBalanceServerName = "Everest0555"     'Load balance server for parallel process
    'Create the file collection
    Set BATCHENG.PcolFiles = BATCHENG.fFileCollectionCreate(CStr(strDelimiter))
    'Execute a Standard Parallel batch
    BATCHENG.mFileCollectionProcessParallel BATCHENG.PcolFiles, CLng(lngProcessLevel), CLng(lngParallelProcessCount), CStr(strLoadBalanceServerName), , CBool(blnAutoMapCorrect)
    End Sub

    Hi,
    Thanks for all the input so far, I really appreciate it. I have made a lot of progress and added code to the batch loader script.
    Again, What I am trying to do is load 12 forecasting files (Periodic) for each month through FDM and then load to HFM. After the load, I want to kick off the consolidation process to the target system (HFM) AFTER the data has been loaded through FDM to help speed up time by running the consolidation all at once in HFM instead of by each file one by one in FDM. Here is some more info:
    1. I have 12 files loaded to the OpenBatch Folder - Each file is a monthly file.
    2. The 12 files (Starting from November 2010 - Oct 2011) are exported and loaded to HFM. No consolidation takes place.
    3. I want to add a procedure AFTER the load to run consolidation on the last file loaded (Oct. 2011) in HFM so the consolidation will kick off in HFM and consolidate the remaining months in HFM instead of in FDM. I tested manually and the time is increased 10-fold.
    4. I have potentially identified the "ActConsolidate" Method could be used to run the consolidation in the target system. In my code you can see that I have added the ActConsolidate call AFTER the batch load. I was hoping this would run the consolidation directly in HFM by calling the consolidation in HFM. However, when I run the script I keep getting the following error:
    "91 - Object variable or With block variable not set At Line: 52" Apparently I am not calling or setting the object up correctly. Am I missing something? I sincerely appreciate everyones help and will promise to give big kudos to anyone who can help me along. I am almost there. THis is very difficult for me and I know it's a tough scenario because no one seems to have a solution posted anywhere on this forum.
    Below is my code:
    Sub webBatchStdParallelFcst()
    'Oracle Hyperion FDM Custom Script:
    'Created By:     
    'Date Created:     10/4/2010 9:27:32 AM
    'Purpose:
    'STANDARD Batch Parallel Processing and consolidation - Foresacting
    'Declare Local Variables for Batch Processing
    Dim lngProcessLevel
    Dim strDelimiter
    Dim blnAutoMapCorrect
    Dim lngParallelProcessCount
    Dim strLoadBalanceServerName
    Dim BATCHENG
    Set BATCHENG = CreateObject("upsWBatchLoaderDM.clsBatchLoader")
    BATCHENG.mInitialize API, SCRIPTENG
    'Declare Local Variables for consolidation
    Dim strLoc
    Dim strCat
    Dim strStartPer
    Dim strEndPer
    Dim CONSOLENG
    Set CONSOLENG = CreateObject("upsWBlockProcessorDM.clsBlockProcessor")
    'Initialize variables for Batch Processing
    lngProcessLevel = 8                     'Up-To-Load
    strDelimiter = "_"                    'File Name Delimiter
    blnAutoMapCorrect = True               'Auto Map Correction is On
    lngParallelProcessCount = 2               'Number of Parallel Processes (Should equal # of Processors)
    strLoadBalanceServerName = "everest3105"     'Load balance server for parallel process
    'Initialize ActConsolidate Variables
    strLoc = "FORECAST"
    strCat = "FDMPLAN"
    strStartPer = "Oct - 2011"
    strEndPer = "Nov - 2011"
    'Create the file collection
    Set BATCHENG.PcolFiles = BATCHENG.fFileCollectionCreate(CStr(strDelimiter))
    'Execute a Standard Parallel batch
    BATCHENG.mFileCollectionProcessParallel BATCHENG.PcolFiles, CLng(lngProcessLevel), CLng(lngParallelProcessCount), CStr(strLoadBalanceServerName), , CBool(blnAutoMapCorrect)
    'Execute Consolidation on Target System
    CONSOLENG.ActConsolidate strLoc, strCat, strStartPer, strEndPer
    End Sub
    However, I am getting the following error: "91 - Object variable or With block variable not set At Line: 52" I don't understand, the objects appear to be set up properly.

  • F110 Automatic Payment: Create payment file and create remittance

    Hello,
    I'd like to know the steps to create payment file and remittances in Automatic payment process (F110).
    Thanks in advance

    Hello Emanula,
    payment medium entries are customized in "payment method Country details". You have to decide whether you want to use the PMW or the classical paymentprogram.
    The paymentadvices are generated from the paymentprogram by using the parameters from the CC-data of the paymentmethod - Box "Payment advice control".
    At least: Don't forget to maintain the parameters in f110 "Printout/data medium"
    Hope this gives you a help.
    Best regards
       Horst

  • 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.

  • Perform unicode to UTF-8 conversion on F110 bacs payment file in ABAP

    Hi,
    I am facing a conversion issue for the UK BACS payment files.
    The payment run tcode F110 creates a payment file but the file when created on the application server has soem sort of code conversion. If I removed the # value, i can read most of the data.
    The data example is as below-
    #V#O#L#1#0#0#1#5#8#8# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #2#4#3#3#0#9#
    #H#D#R#1#A#2#4#3#3#0#9#S# # #1#2#4#3#3#0#9#0#0#0#0#0#2#0#0#0#1#0#0#0#1# # # # # # # #1#0#1#1#2#
    #H#D#R#2#F#0#2#0#0#0#0#0#1#0#0# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #U#H#L#1# #1#0#1#1#3#9#9#9#9#9#9# # # # #0#0#0#0#0#0#0#0#1# #D#A#I#L#Y# # #0#0#0# # # # # # # #
    This is then transferred to the bank via the FTP UNIX Script but after the conversion which is happening as-
    #Perform unicode to UTF-8 conversion on bacs file
    $a = "iconv -f UNICODE -t UTF-8 $tmpUNI > $tmpASC";
    The need going forward is to bring the details via the interface and then make an uplaod.
    The ABAP code should be able to make the conversion, remove the additional chracters and then send the file across.
    I have searched everywhere but I am not able to find out how to make the same conversion in ABAP.
    We are on ECC6.
    Can someone please help me?
    Regards,
    Archana

    Hi Archana,
    can  you please check SAP notes 1064779 and 1365764 (including the attachment) and see if this helps you ?
    Best regards,
    Nils Buerckel
    SAP AG

  • ** File to IDoc scenario - IDoc not created in target system

    Hi friends,
    We are doing File to IDoc scenario. We made required setting in both application as well as XI system. While test the scenario, the file is picked up and successfully processed in SXMB_MONI, but the inbound IDoc is not created in target system. What could be the problem?
    We are using DEBMAS message type DEBMAS06 IDoc type. We checked the following.
    1) SM59 - Connections are OK both application and XI system
    2) IDX1 - In XI System, we have assigned SAP<R/3> port.
    3) IDX2 - IDoc is imported.
    4) In ID - Sender File - Business Service - Adapter-Specific Identifier - Logical System name is given.
    5) In application system. - Partner Profile maintained correctly.
    6) SM58 - There is no error.
    So, what could be the reason ?
    Kindly reply, friends,
    Thanking you.
    Kind Regards,
    Jeg P.

    Hi,
    Check all the steps ..
    File to IDOC
    Do these configurations in R/3 and in XI...
    SAP XI
    1) RFC Destination (SM59)
    a) Choose create.
    b) Specify the name of the RFC destination
    c) Select connection type as 3 and save
    d) In the technical settings tab enter the details SAP SID/URL and system number#.
    e) Enter the Gateway host as same details above SID/URL.
    f) Gateway service is 3300+system number#.
    g) In the Logon /Security tab, enter the client user & Password details of Destination system.
    h) Test the connection and remote logon.
    2) Create Port (IDX1)
    a) Select create new button
    b) Enter the port name as SAP+SID (The starting char should be SAP)
    c) Enter the destination client.
    d) Enter the RFC Destination created in SAP R/3 towards other system.
    e) Save
    3) Load Meta Data for IDOC (IDX2)
    a) Create new
    b) IDOC Message Type
    c) Enter port created in IDX1.
    SAP R/3
    1) RFC Destination (SM59)
    a) Choose create.
    b) Specify the name of the RFC destination
    c) Select connection type as 3 and save
    d) In the technical settings tab enter the details SAP SID/URL and system number#.
    e) Enter the Gateway host as same details above SID/URL.
    f) Gateway service is 3300+system number#.
    g) In the Logon /Security tab, enter the client user & Password details of Destination system.
    h) Test the connection and remote logon.
    2) Create Port (We21)
    a) First Select Transactional RFC and then click create button
    b) Enter the destination port name as SAP+SID (The starting char should be SAP)
    c) Enter the destination client.
    d) Enter the RFC Destination created in SAP R/3 towards other system.
    e) Save
    3) Create Partner Profile (WE20)
    a) Create New
    b) Create the Partner no. name as same the logical system name of the destination system.
    c) Select Partner type LS
    d) Enter details for Type: US/USER, Agent, and Lang.
    e) Click on the + button to select the message type.
    f) Select Partner no. and LS which ever create above.
    g) Select Message type
    h) Select Process code related to the Message type.
    I) save.
    Thanks,
    Satya

  • After F110 run in the payment file the account holder details are missed

    Hai
    After running the F110 pament run, In the payment file the ACCOUNT HOLDER name is missing . The ACCOUNT HOLDER details must picked up from VENDOR MASTER. This  is happening when ACCOUNT HOLDER and VENDOR  are different. When ACCOUNT HOLDER and VENDOR  are same it is displaying Correctly.The Bottom line is when VENDOR=ACCOUNT HOLDER, in the payment file it is displaying the VENDOR name correctly. But When VENDOR is not= ACCOUNT HOLDER, in the Payment file ACCOUNT HOLDER name is blanked out. The bank requires the name in that field in the payment file.
    Kindly Assist me
    Thanks in advance
    Regards,
    Akash Narayana

    Hello Friends - Can you please give me a little idea on what could be the reason for the below issue.
    We are using the program RFFOJP_T and when payment file is generated, some of the payment details are missing.
    I have executed payment run for 5 payments and only one 1 has come to the file and below 4 are missing.
    The following payment documents/payment orders were not updated
    (Result of the payment document update)
        CoCd Payment document/Payment order
        9770 1400001524
        9770 1400001525
        9770 1400001526
        9770 1400001527
    The accompanying payment media have not been generated
    >
    > Overview of the files generated (DME)
    > Name / File name
    Thanks

  • F110 DME payment file: add a number of lead days to posting and value date

    Hello,
    For an Italian company, the DME payment file (F110) needs to be checked and approved by an accountant after it is created. This takes 3 to 4 days after which the file is sent to the bank. The bank will reject the file if the value date  is three days late (date which the bank uses to process the file on). For fiscal reasons the accounting clerks need the have the same posting date as the value date
    I managed to set the value date in the DME files a couple of days later. The setting I used (FBZP -> bank determination -> value date) adds the number of lead days to the value date on the basis of the posting date as defined by the user in F110. For some reason I cannot set it to 0 days, it always adds up 1 day. Is that a normal effect or have I changed the settings in the wrong way?
    I found another setting in customising ("define value date rules") which seems to have the same functionality. In the help function it is said that the setting does not influence the payment program and that the program manages the value date. Is there another setting? Can this problem be solved without the help of a programmer?
    Thank you very much!
    René
    functional consultant
    Edited by: ConsultantSAINT-OBAIN on Apr 8, 2010 10:24 AM

    Here's a section of code that does exactly that:
    CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
      EXPORTING
        CORRECT_OPTION                     = '+'
        DATE                               = G_WORKAREA3-CREATEDON
        FACTORY_CALENDAR_ID                = L_S_PLANT-FACTCAL_ID
      IMPORTING
    *   DATE                               =
       FACTORYDATE                        = L_FCDATE
      EXCEPTIONS
        CALENDAR_BUFFER_NOT_LOADABLE       = 1
        CORRECT_OPTION_INVALID             = 2
        DATE_AFTER_RANGE                   = 3
        DATE_BEFORE_RANGE                  = 4
        DATE_INVALID                       = 5
        FACTORY_CALENDAR_NOT_FOUND         = 6
        OTHERS                             = 7.
      L_FCDATE = L_FCDATE + L_S_ZLEAD-/BIC/ZLEAD.
      CALL FUNCTION 'FACTORYDATE_CONVERT_TO_DATE'
        EXPORTING
          FACTORYDATE                  = L_FCDATE
          FACTORY_CALENDAR_ID          = L_S_PLANT-FACTCAL_ID
        IMPORTING
          DATE                         = L_DATE
        EXCEPTIONS
          CALENDAR_BUFFER_NOT_LOADABLE = 1
          FACTORYDATE_AFTER_RANGE      = 2
          FACTORYDATE_BEFORE_RANGE     = 3
          FACTORYDATE_INVALID          = 4
          FACTORY_CALENDAR_ID_MISSING  = 5
          FACTORY_CALENDAR_NOT_FOUND   = 6
          OTHERS                       = 7.
    * result value of the routine
      RESULT = L_DATE.

Maybe you are looking for