RFC call results in StORAGE_PARAM_WRONG_SET

I'm in trouble with a RFC call, the process is as following: SAP system A calls a report. This report selects FI documents via LDB SDF. After user selects one or more documents from the list I call a RFC to read the payroll posting results from system B. The call of the RFC takes place for each FI document separatly what means user selects e.g. 10 FI documents, so I have 10 RFC calls with one result list. After each RFC call I add the result table of the RFC to the output table within the report. Before calling the RFC I of course clear all relevant tables again and additionaly I also use the 'FREE' statement within the RFC to set free all the memory, so there is no data stored in internal tables. But when the user selects a great no. of FI documents to read the payroll postings sometimes the RFC cancels in system B telling me that the storage parameters were set wrong. Calling the RFC step by step by selecting the FI document in single mode from the list I don't receive this dump. Do you have an idea what to do to avoid the dump? One problem: I don't have access to system B to test there, I only can do testing in system A and therefore I have no possibility to debugg this.
This is the code of the RFC module:
FUNCTION y_rfc_read_payroll_postings.
*"*"Local interface:
*"  IMPORTING
*"     VALUE(I_AWKEY) TYPE  AWKEY
*"     VALUE(I_CHECKNO) TYPE  XFELD
*"     VALUE(I_TAX) TYPE  XFELD
*"  EXPORTING
*"     VALUE(E_PPDHD) TYPE  PPDHD
*"  TABLES
*"      T_PPDIT STRUCTURE  PPDIT
*"      T_PPOIX STRUCTURE  PPOIX
*"      T_PPDIX STRUCTURE  PPDIX
*"      T_PAYR STRUCTURE  PAYR OPTIONAL
*"      T_HRPAY STRUCTURE  PC209 OPTIONAL
*"      T_REGUTA STRUCTURE  REGUTA OPTIONAL
*"      T_VALUES STRUCTURE  YSHR_RFC_PAYROLL_POSTING OPTIONAL
*"      T_CSKA STRUCTURE  CSKA
*"      RETURN STRUCTURE  BAPIRET2
* local data
  TYPE-POOLS: pptgs.
  TYPES: BEGIN OF type_helpval,
         pernr TYPE p_pernr,
         lgart TYPE lgart,
         rel   TYPE xfeld,
        END OF type_helpval.
  TYPES: BEGIN OF type_cluster,
         pernr TYPE p_pernr,
         seqno TYPE cdseq,
         abrj TYPE pnppabrj,
         abrp TYPE pnppabrp,
         actual TYPE srtza,
         betrg TYPE ppoix-betrg,
         waers TYPE ppoix-waers,
         END OF type_cluster.
  DATA: BEGIN OF lt_ppoix_key OCCURS 0,
         pernr    LIKE ppoix-pernr,
         seqno    LIKE ppoix-seqno,
         actsign  LIKE ppoix-actsign,
         runid    LIKE ppoix-runid,
         postnum  LIKE ppoix-postnum,
        END OF lt_ppoix_key.
  FIELD-SYMBOLS: <payroll> TYPE yshr_rfc_payroll_posting.
  DATA ht_ppoix TYPE TABLE OF ppoix.
  DATA productive_runs LIKE hrpp_pernr_runtab OCCURS 0 WITH HEADER LINE.
  DATA t_rgdir TYPE TABLE OF pc261.
  DATA wa_rgdir TYPE pc261.
  DATA t_helpval TYPE TABLE OF type_helpval.
  DATA t_cluster TYPE TABLE OF type_cluster.
  DATA wa_helpval TYPE type_helpval.
  DATA wa_cluster TYPE type_cluster.
  DATA h_molga TYPE molga.
  DATA h_ltext TYPE t5utz-ltext.
  DATA wa_t512w TYPE t512w.
  DATA wa_return TYPE bapiret2.
  DATA par1 TYPE syst-msgv1.
  DATA par2 TYPE syst-msgv2.
  DATA par3 TYPE syst-msgv3.
  DATA wa_ppoix TYPE ppoix.
  FIELD-SYMBOLS: <wa_ppdit> TYPE ppdit.
  DATA wa_ppdix TYPE ppdix.
  DATA result_tab_us TYPE payus_result.
  DATA result_tab_in TYPE payin_result.
  DATA t_bt TYPE hrpay99_bt.
  DATA t_rt TYPE hrpay99_rt.
  DATA wa_bt TYPE pc209.
  DATA wa_rt TYPE pc207.
  DATA h_time(6) TYPE c.
  DATA t_inter TYPE TABLE OF pay99_international WITH HEADER LINE.
  DATA t_tax TYPE hrpayus_tax.
  DATA wa_tax TYPE pc22t.
  DATA wa_payr TYPE payr.
  DATA wa_reguta TYPE reguta.
  DATA wa_payroll TYPE yshr_rfc_payroll_posting.
  DATA t_ppopx TYPE TABLE OF ppopx.
  DATA wa_ppopx TYPE ppopx.
  DATA wa_t001 TYPE t001.
  FREE: t_ppdit, t_ppoix, t_ppdix, t_payr, t_hrpay, t_reguta,
        t_values, t_helpval, t_cluster, t_ppopx.
* read general information
  SELECT SINGLE * FROM ppdhd INTO e_ppdhd WHERE
                       docnum EQ i_awkey.
  CASE syst-subrc.
* everthing ok, continue
    WHEN 0.
* get the company code and assign US flag
      SELECT SINGLE * FROM t001 INTO wa_t001 WHERE
                                bukrs EQ e_ppdhd-bukrs.
* exit and set err. mess.
    WHEN OTHERS.
      CALL FUNCTION 'BALW_BAPIRETURN_GET2'
        EXPORTING
          type             = 'E'
          cl               = 'HR3PRNA'
          number           = '704'
*         PAR1             = ' '
*         PAR2             = ' '
*         PAR3             = ' '
*         PAR4             = ' '
*         LOG_NO           = ' '
*         LOG_MSG_NO       = ' '
*         PARAMETER        = ' '
*         ROW              = 0
*         FIELD            = ' '
        IMPORTING
          return           = wa_return
      wa_return-field = 'PPDHD'.
      APPEND wa_return TO return.
      EXIT.
  ENDCASE.
* read table PPDIT
  SELECT  * FROM  ppdit INTO TABLE t_ppdit
      FOR ALL ENTRIES IN t_cska
      WHERE  docnum  = i_awkey AND
             hkont   = t_cska-kstar.
  CASE syst-subrc.
* everthing ok, continue
    WHEN 0.
* exit and set err. mess.
    WHEN OTHERS.
      par1 = 'PPDIT'.
      par2 = 'document'.
      par3 = i_awkey.
      CALL FUNCTION 'BALW_BAPIRETURN_GET2'
        EXPORTING
          type             = 'E'
          cl               = '5G'
          number           = '58'
          par1             = par1
          par2             = par2
          par3             = par3
*         PAR4             = ' '
*         LOG_NO           = ' '
*         LOG_MSG_NO       = ' '
*         PARAMETER        = ' '
*         ROW              = 0
*         FIELD            = ' '
        IMPORTING
          return           = wa_return
      wa_return-field = 'PPDIT'.
      APPEND wa_return TO return.
      EXIT.
  ENDCASE.
* read table PPDIX
  SELECT * FROM ppdix INTO TABLE t_ppdix
      FOR ALL ENTRIES IN t_ppdit
      WHERE evtyp  EQ e_ppdhd-evtyp AND
            runid  EQ e_ppdhd-runid AND
            docnum EQ e_ppdhd-docnum AND
            doclin =  t_ppdit-doclin.
  CASE syst-subrc.
* everthing ok, continue
    WHEN 0.
* exit and set err. mess.
    WHEN OTHERS.
      par1 = 'PPDIX'.
      par2 = 'runid'.
      par3 = e_ppdhd-runid.
      CALL FUNCTION 'BALW_BAPIRETURN_GET2'
        EXPORTING
          type             = 'E'
          cl               = '5G'
          number           = '58'
          par1             = par1
          par2             = par2
          par3             = par3
*         PAR4             = ' '
*         LOG_NO           = ' '
*         LOG_MSG_NO       = ' '
*         PARAMETER        = ' '
*         ROW              = 0
*         FIELD            = ' '
        IMPORTING
          return           = wa_return
      wa_return-field = 'PPDIX'.
      APPEND wa_return TO return.
      EXIT.
  ENDCASE.
* read detail values on accounting level
  SELECT * FROM ppoix INTO TABLE t_ppoix
                      FOR ALL ENTRIES IN t_ppdix WHERE
                           runid EQ t_ppdix-runid AND
                           tslin EQ t_ppdix-linum.
* read reposted documents from ppopx
  SELECT * FROM ppopx INTO TABLE t_ppopx
                      FOR ALL ENTRIES IN t_ppdix WHERE
                           runid EQ t_ppdix-runid AND
                           tslin EQ t_ppdix-linum.
  IF syst-subrc EQ 0.
* append corresponding lines to T_ppoix
    LOOP AT t_ppopx INTO wa_ppopx.
      MOVE-CORRESPONDING wa_ppopx TO productive_runs.
      CLEAR productive_runs-runid.
      COLLECT productive_runs.
    ENDLOOP.
* get run table
    CALL FUNCTION 'HR_EVAL_PROD_A_RUN_GET_TABLE'
      TABLES
        result_table = productive_runs.
    LOOP AT productive_runs.
      IF productive_runs-runid IS INITIAL.
        DELETE productive_runs.
      ENDIF.
    ENDLOOP.
* fill ppoix-keys for needed ppoix
    LOOP AT productive_runs.
      LOOP AT t_ppopx INTO wa_ppopx.
        IF wa_ppopx-pernr EQ productive_runs-pernr AND
           wa_ppopx-seqno EQ productive_runs-seqno.
* built key
          CLEAR lt_ppoix_key.
          MOVE-CORRESPONDING productive_runs TO lt_ppoix_key.
          lt_ppoix_key-postnum = wa_ppopx-postnum.
          lt_ppoix_key-actsign = 'A'.
          COLLECT lt_ppoix_key.
        ENDIF.
      ENDLOOP.
    ENDLOOP.
* any values to append?
    READ TABLE lt_ppoix_key INDEX 1.
    IF syst-subrc EQ 0.
      SELECT * FROM ppoix INTO TABLE ht_ppoix
               FOR ALL ENTRIES IN lt_ppoix_key
                               WHERE pernr = lt_ppoix_key-pernr
                               AND   seqno = lt_ppoix_key-seqno
                               AND actsign = 'A'
                               AND   runid = lt_ppoix_key-runid
                               AND   postnum = lt_ppoix_key-postnum.
      IF syst-subrc EQ 0.
        LOOP AT t_ppopx INTO wa_ppopx.
          LOOP AT ht_ppoix INTO wa_ppoix WHERE
                  pernr EQ wa_ppopx-pernr AND
                  seqno EQ wa_ppopx-seqno AND
                  postnum EQ wa_ppopx-postnum.
            MOVE-CORRESPONDING wa_ppopx TO wa_ppoix.
            IF wa_ppoix-actsign <> 'A'.
              wa_ppoix-betrg = - wa_ppoix-betrg.
              wa_ppoix-anzhl = - wa_ppoix-anzhl.
            ENDIF.
            APPEND wa_ppoix TO t_ppoix.
            DELETE ht_ppoix.
          ENDLOOP.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ENDIF.
* check for any entries in table T_PPOIX
  READ TABLE t_ppoix INTO wa_ppoix INDEX 1.
  CASE syst-subrc.
* everthing ok, continue
    WHEN 0.
* exit and set err. mess.
    WHEN OTHERS.
      par1 = 'PPOIX'.
      par2 = 'runid'.
      par3 = e_ppdhd-runid.
      CALL FUNCTION 'BALW_BAPIRETURN_GET2'
        EXPORTING
          type             = 'E'
          cl               = '5G'
          number           = '58'
          par1             = par1
          par2             = par2
          par3             = par3
*         PAR4             = ' '
*         LOG_NO           = ' '
*         LOG_MSG_NO       = ' '
*         PARAMETER        = ' '
*         ROW              = 0
*         FIELD            = ' '
        IMPORTING
          return           = wa_return
      wa_return-field = 'PPOIX'.
      APPEND wa_return TO return.
      EXIT.
  ENDCASE.
  CHECK i_checkno EQ 'X' OR
        i_tax     EQ 'X'.
  CLEAR t_values.
* read payroll results, determine values
  LOOP AT t_ppdit ASSIGNING <wa_ppdit>.
    LOOP AT t_ppdix INTO wa_ppdix WHERE
            evtyp = e_ppdhd-evtyp AND
            runid = e_ppdhd-runid AND
            doclin = <wa_ppdit>-doclin.
      LOOP AT t_ppoix INTO wa_ppoix WHERE
                   runid EQ e_ppdhd-runid AND
                   tslin EQ wa_ppdix-linum.
* append anywhere for checkno
        IF i_checkno EQ 'X'.
          wa_cluster-pernr = wa_ppoix-pernr.
          wa_cluster-seqno = wa_ppoix-seqno.
          wa_cluster-abrj = <wa_ppdit>-abper+0(4).
          wa_cluster-abrp = <wa_ppdit>-abper+4(2).
          wa_cluster-actual = wa_ppoix-actsign.
          wa_cluster-betrg = wa_ppoix-betrg.
          wa_cluster-waers = wa_ppoix-waers.
          IF <wa_ppdit>-abper IS INITIAL.
* write BONDT into field ZUONR
            CALL FUNCTION 'CU_READ_RGDIR'
              EXPORTING
                persnr   = wa_ppoix-pernr
              TABLES
                in_rgdir = t_rgdir.
            READ TABLE t_rgdir INTO wa_rgdir WITH KEY
                             seqnr = wa_ppoix-seqno.
            IF syst-subrc EQ 0.
              <wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
            ENDIF.
          ENDIF.
          APPEND wa_cluster TO t_cluster.
        ENDIF.
        IF i_tax EQ 'X'.
* check if LGART is relevant
          READ TABLE t_helpval INTO wa_helpval WITH KEY
                             pernr = wa_ppoix-pernr
                             lgart = wa_ppoix-lgart.
          CASE syst-subrc.
            WHEN 0.
* relevant or not
              CASE wa_helpval-rel.
                WHEN 'X'.
                  wa_cluster-pernr = wa_ppoix-pernr.
                  wa_cluster-seqno = wa_ppoix-seqno.
                  wa_cluster-abrj = <wa_ppdit>-abper+0(4).
                  wa_cluster-abrp = <wa_ppdit>-abper+4(2).
                  wa_cluster-actual = wa_ppoix-actsign.
                  wa_cluster-betrg = wa_ppoix-betrg.
                  wa_cluster-waers = wa_ppoix-waers.
                  IF <wa_ppdit>-abper IS INITIAL.
                    CALL FUNCTION 'CU_READ_RGDIR'
                      EXPORTING
                        persnr   = wa_ppoix-pernr
                      TABLES
                        in_rgdir = t_rgdir.
                    READ TABLE t_rgdir INTO wa_rgdir WITH KEY
                                     seqnr = wa_ppoix-seqno.
                    IF syst-subrc EQ 0.
                      <wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
                    ENDIF.
                  ENDIF.
                  APPEND wa_cluster TO t_cluster.
* save values
                  MOVE-CORRESPONDING wa_ppoix TO wa_payroll.
                  wa_payroll-betrg = ABS( wa_payroll-betrg ).
                  APPEND wa_payroll TO t_values.
                WHEN ' '.
                  CONTINUE.
              ENDCASE.
            WHEN OTHERS.
* determine values
              CALL FUNCTION 'HR_COUNTRYGROUPING_GET'
                EXPORTING
                  pernr           = wa_ppoix-pernr
*              TCLAS           = 'A'
                  begda           = e_ppdhd-bldat
                  endda           = e_ppdhd-bldat
*              WERKS           =
                IMPORTING
                  molga           = h_molga
                EXCEPTIONS
                  not_found       = 1
                  OTHERS          = 2
              IF sy-subrc NE 0.
                WRITE wa_ppoix-pernr TO par1.
                CALL FUNCTION 'BALW_BAPIRETURN_GET2'
                  EXPORTING
                    type   = 'E'
                    cl     = 'HRPAYBR94'
                    number = '278'
                    par1   = par1
                  IMPORTING
                    return = wa_return.
                wa_return-field = wa_ppoix-pernr.
                APPEND wa_return TO return.
                CONTINUE.
              ENDIF.
              SELECT * FROM  t512w INTO wa_t512w
                     WHERE  molga  = h_molga
                     AND    lgart  = wa_ppoix-lgart
                     AND    endda  GE e_ppdhd-bldat
                     AND    begda  LE e_ppdhd-bldat.
                EXIT.
              ENDSELECT.
              IF syst-subrc EQ 0.
                IF wa_t512w-vklas+77(1) = '2'.
                  wa_helpval-pernr = wa_ppoix-pernr.
                  wa_helpval-lgart = wa_ppoix-lgart.
                  wa_helpval-rel   = 'X'.
                  APPEND wa_helpval TO t_helpval.
                  wa_cluster-pernr = wa_ppoix-pernr.
                  wa_cluster-seqno = wa_ppoix-seqno.
                  wa_cluster-abrj = <wa_ppdit>-abper+0(4).
                  wa_cluster-abrp = <wa_ppdit>-abper+4(2).
                  wa_cluster-actual = wa_ppoix-actsign.
                  wa_cluster-betrg = wa_ppoix-betrg.
                  wa_cluster-waers = wa_ppoix-waers.
                  IF <wa_ppdit>-abper IS INITIAL.
                    CALL FUNCTION 'CU_READ_RGDIR'
                      EXPORTING
                        persnr   = wa_ppoix-pernr
                      TABLES
                        in_rgdir = t_rgdir.
                    READ TABLE t_rgdir INTO wa_rgdir WITH KEY
                                     seqnr = wa_ppoix-seqno.
                    IF syst-subrc EQ 0.
                      <wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
                    ENDIF.
                  ENDIF.
                  APPEND wa_cluster TO t_cluster.
                  MOVE-CORRESPONDING wa_ppoix TO wa_payroll.
                  wa_payroll-betrg = ABS( wa_payroll-betrg ).
                  APPEND wa_payroll TO t_values.
                ELSE.
                  wa_helpval-pernr = wa_ppoix-pernr.
                  wa_helpval-lgart = wa_ppoix-lgart.
                  wa_helpval-rel   = ''.
                  APPEND wa_helpval TO t_helpval.
                ENDIF.
              ENDIF.
          ENDCASE.
        ENDIF.
      ENDLOOP.
    ENDLOOP.
  ENDLOOP.
  SORT t_cluster.
  DELETE ADJACENT DUPLICATES FROM t_cluster.
  LOOP AT t_cluster INTO wa_cluster.
    CLEAR: result_tab_us, result_tab_in.
    CASE wa_t001-land1.
      WHEN 'US'.
        CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
          EXPORTING
*       CLUSTERID                          = 'RU'
            employeenumber                     = wa_cluster-pernr
            sequencenumber                     = wa_cluster-seqno
*       READ_ONLY_BUFFER                   = ' '
*       READ_ONLY_INTERNATIONAL            = ' '
*       ARC_GROUP                          = ' '
            check_read_authority               = ''
            filter_cumulations                 = ''
*       CLIENT                             =
*     IMPORTING
*       VERSION_NUMBER_PAYVN               =
*       VERSION_NUMBER_PCL2                =
          CHANGING
            payroll_result                     = result_tab_us
          EXCEPTIONS
            illegal_isocode_or_clusterid       = 1
            error_generating_import            = 2
            import_mismatch_error              = 3
            subpool_dir_full                   = 4
            no_read_authority                  = 5
            no_record_found                    = 6
            versions_do_not_match              = 7
            error_reading_archive              = 8
            error_reading_relid                = 9
            OTHERS                             = 10
      WHEN OTHERS.
        CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
          EXPORTING
*       CLUSTERID                          = 'RU'
            employeenumber                     = wa_cluster-pernr
            sequencenumber                     = wa_cluster-seqno
*       READ_ONLY_BUFFER                   = ' '
*       READ_ONLY_INTERNATIONAL            = ' '
*       ARC_GROUP                          = ' '
            check_read_authority               = ''
            filter_cumulations                 = ''
*       CLIENT                             =
*     IMPORTING
*       VERSION_NUMBER_PAYVN               =
*       VERSION_NUMBER_PCL2                =
          CHANGING
            payroll_result                     = result_tab_in
          EXCEPTIONS
            illegal_isocode_or_clusterid       = 1
            error_generating_import            = 2
            import_mismatch_error              = 3
            subpool_dir_full                   = 4
            no_read_authority                  = 5
            no_record_found                    = 6
            versions_do_not_match              = 7
            error_reading_archive              = 8
            error_reading_relid                = 9
            OTHERS                             = 10
    ENDCASE.
    IF sy-subrc NE 0.
      CLEAR wa_return.
      wa_return-field = wa_ppoix-pernr.
      CASE syst-subrc.
        WHEN '1'.
          wa_return-message = 'ILLEGAL_ISOCODE_OR_CLUSTERID'.
        WHEN '2'.
          wa_return-message = 'ERROR_GENERATING_IMPORT'.
        WHEN '3'.
          wa_return-message = 'IMPORT_MISMATCH_ERROR'.
        WHEN '4'.
          wa_return-message = 'SUBPOOL_DIR_FULL'.
        WHEN '5'.
          wa_return-message = 'NO_READ_AUTHORITY'.
        WHEN '6'.
          wa_return-message = 'NO_RECORD_FOUND'.
        WHEN '7'.
          wa_return-message = 'VERSIONS_DO_NOT_MATCH'.
        WHEN '8'.
          wa_return-message = 'ERROR_READING_ARCHIVE'.
        WHEN '9'.
          wa_return-message = 'ERROR_READING_RELID'.
        WHEN OTHERS.
          wa_return-message = 'OTHERS'.
      ENDCASE.
      APPEND wa_return TO return.
      CONTINUE.
    ELSE.
      CASE wa_t001-land1.
        WHEN 'US'.
          t_inter = result_tab_us-inter.
        WHEN OTHERS.
          t_inter = result_tab_in-inter.
      ENDCASE.
      APPEND t_inter.
      t_tax = result_tab_us-nat-tax.
      LOOP AT t_inter.
        t_bt = t_inter-bt.
        t_rt = t_inter-rt.
      ENDLOOP.
      LOOP AT t_values ASSIGNING <payroll> WHERE
                                       pernr EQ wa_cluster-pernr.
        CLEAR wa_rt.
        LOOP AT t_rt INTO wa_rt WHERE
                     lgart EQ <payroll>-lgart.
          wa_rt-betrg = ABS( wa_rt-betrg ).
          IF wa_rt-betrg EQ <payroll>-betrg AND NOT
             wa_rt-cntr1 IS INITIAL.
            IF wa_t001-land1 EQ 'US'.
              LOOP AT t_tax INTO wa_tax WHERE
                    cntr1 EQ wa_rt-cntr1.
                EXIT.
              ENDLOOP.
              IF syst-subrc EQ 0.
                <payroll>-cntr1 = wa_tax-cntr1.
                <payroll>-taxau = wa_tax-taxau.
* determine long text
                SELECT SINGLE ltext FROM  t5utz INTO h_ltext
                       WHERE  taxau  = wa_tax-taxau.
                IF syst-subrc EQ 0.
                  <payroll>-ltext = h_ltext.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
* check table BT abd determine check no.
      IF i_checkno EQ 'X'.
        LOOP AT t_bt INTO wa_bt.
          APPEND wa_bt TO t_hrpay.
          CASE wa_bt-zlsch.
* check
            WHEN  'C'.
              SELECT * FROM payr INTO wa_payr WHERE
                             rzawe = 'C' AND
                             laufd = wa_bt-dtadt AND
                             pernr = wa_cluster-pernr AND
                             seqnr = wa_cluster-seqno AND
                             btznr = wa_bt-btznr.
                EXIT.
              ENDSELECT.
              IF syst-subrc EQ 0.
* store period in a field to find correlation later
                wa_payr-znme4+0(4) = wa_cluster-abrj.
                wa_payr-znme4+4(2) = wa_cluster-abrp.
              ELSE.
                CLEAR wa_payr.
                wa_payr-pernr = wa_cluster-pernr.
                wa_payr-rwbtr = wa_cluster-betrg.
                wa_payr-waers = wa_cluster-waers.
                APPEND wa_payr TO t_payr.
              ENDIF.
              APPEND wa_payr TO t_payr.
* bank transfer
            WHEN OTHERS.
              h_time = wa_bt-dtati+0(5).
              h_time+5(1) = 'P'.
              SELECT * FROM reguta INTO wa_reguta WHERE
                             laufd = wa_bt-dtadt AND
                             laufi = h_time.
                EXIT.
              ENDSELECT.
              IF syst-subrc EQ 0.
                APPEND wa_reguta TO t_reguta.
              ENDIF.
          ENDCASE.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFUNCTION.

Hi Sudhir,
These settings need to be done by basis people. Anyhow, you can go to the tcode RZ11 and put in these parameters mentioned in the error message. There will be documentation available for these parameters. Try to see if the defaults are not met for any of these parameters. If you find something strange, report it to the basis. The documentations in this are very helpful. Hope this helps.
Thanks and Regards
Subray Hegde

Similar Messages

  • SAP adapter giving the merged result set (First RFC call data + Second RFC call data) for second RFC call

    I have a WCF Adapter service to call a SAP RFC. When I call the RFC first time, it gives me correct no of result set but when I call this RFC second time immediately after first call, it gives me merged result set (First Result set + Second Result Set).
    e.g. We have a RFC which receives vendor number and blank object of result set as parameter and gives back the list of purchase orders as Response in object of result set for that vendor.
    Suppose, we have a vendor "a" and vendor "b". For vendor "a" there are 5 purchase orders and for vendor "b", we have 4 purchase orders in SAP. When I call the WCF adapter service for this RFC for vendor "a",
    it gives me 5 purchase orders. Immediately after first call, when I call WCF service for vendor "b", it gives me 9 (5+4) purchase order records which is wrong.
    In brief, one RFC call is affected by its previous call.
    For each new WCF request, a new object of result set is created, connection is opened, rfc is executed and connection is closed.
    Can anybody have any idea on this?
    Thanks.
    Thanks, Nishant Gupta

    Hi,
    Please refer to the document
    http://seroter.wordpress.com/biztalk-and-wcf-part-vii-about-the-biztalk-adapter-pack/

  • Program making a RFC call to Function Module not working in background

    Hi All,
    I have an ABAP Program which is used to do a reconciliation check between the R/3 and BI system for Invoice Data. Please find below the details of the program flow:
    1.     Program counts the number of records in the DSO table and aggregates the Net_Value based on the date range (passed as parameters)
    2.     Program calls a Function Module (RFC Call) which counts the number of records in the R/3 table and aggregates the Net_Value for the same date range
    3.     Function Module Passes back the count values and aggregated Net_Value to the program
    4.     Program compares the count and aggregated Net_Value from EDWH and MSP systems and sends an email mentioning whether the counts match or not
    However we are facing an issue.
    Whenever, we execute the program in dialog mode, it works fine and fetches results within 5-6 minutes. However if we schedule the program to run in background (parameters through a variant), it gives no results even after running for over 3-4 hours. We tried figuring it out yesterday but could not come to any conclusion. Since there is a RFC call being to the function module, we were wondering if we need to specify some other parameter as well.
    Thanks & Regards
    Dharmendra

    RFC Call is a procedure for executing remote enables function modules. It is done via the 'Remote Enabled' radio button on the function module's attribute screen.

  • RFC Call not returning in normal exec;retunrs in debugger

    Hi all
    i m sorry for posting it twice,due to my ignorance
    i first posted it in wrong forum
    i had a requirement to invoke a RFC Async and recieve the results in my program with a condition that the name and parameters of RFC are determined runtime.
    To meet this requirement, i generated a the RFC call and return form code dynamically and called that code from my program via a subroutine.
    The problem i am facing is that, whenever i execute my program in debug mode the RFCs are called and the parameters are returned( perform on end of task edition is used)
    via subroutine, but when i execute the code via F8 the program goes in indefinite wait for return parameters.I am calling 2-3 RFcs at same time, and all of them are on local host.
    the Functions are working well and the RFC destination is also working well.
    But this amalgum of my program and dynamic calls is not going through.
    I read in documentation that if we change the program context or the roll area then the results are not recieved by main program. by the way i am using WAIT to receive the results.
    For the moment if i consider, my program context or roll area is getting changed because of dynamic code generation then also the dynamically generated code is the one containing the RFC call and its revieve subroutine, therefore there shall be no problem with that, the other thought i am getting is that in debugger implict commit work happens, is the program working because of that in debugger?? i dont know....
    Can any one help me with this, in the above long paragraph if anyone gets confused..i can again try to restate my problem.
    One more thing..i have checked the ST22 and SM50 for any abnormalities, couold not find one.
    thanks in advance
    praveen

    WAIT statement also triggers a DB commit like debugger.
    Are you using WAIT UNTIL <condition>?
    Regards
    Sridhar

  • RFC call failed: JCO.Server could not find server function 'SET_SLD_DATA'

    Hi, All
    the system is PI 7.0 EHP1 oraclei Win2003 server, I configured SLD but I run RZ70, having error "RFC call failed: JCO.Server could not find server function 'SET_SLD_DATA' ". I know there are lot of tread about this error, but none of themsolve my problem. all JCO, RFC connections and SDL DATA supplier(VA) seem OK. error message in SM21 is "Could not send SLD data"
    detail from SM21
    The system could not send the data that has been collected automatical
    for the System Landscape Directory (SLD). Check whether the gateway
    configured in transaction RZ70 has been started and whether the SLD
    bridge has been registered with this gateway.
    You can use transaction SM59 to check this in the sending system for t
    implemented RFC destinations. The RFC destinations have the standard
    names "SLD_UC" for Unicode sending systems and "SLD_NUC" for non-Unico
    sending systems. If a different RFC destination has been entered in
    RZ70, check this destination instead.
    You can use the Gateway Monitor to check the target gateways. In ABAP
    systems, this monitor is started with transaction SMGW, or you can use
    the external SAP program "gwmon". Check whether the specified gateway
    has an active registration.
    OF COURSE I checked  RFC of  SLD_UC and SMGW
    any different ideas
    Regards
    ABH

    Hi
    Please check the following notes are implemented
    Note 906454                           
    Note 907729
    You may be aware but if you are not --->RZ70 creates the required SLD* RFCs during runtime - therefore if you have defined these RFCs manually first using the same namespace you can get RFC conflicts which result in a failed submission    
    Please also check the user in the RFC is known to both systems and has required authorization to write to SLD
    Generally with SLD you have to install or select a suitable gateway to handle incoming data supply traffic
    Also the gateway you are using has be known to SLD and reflected in RZ70 - i.e these defintions have to be the same
    It is also recommended to delete all references to SLD_* RFCs in data supplier and target SLD
    after a failed submission attempt to allow RZ70 to recreate these consistently once the above has been checked
    Best wishes
    Stuart

  • RFC calls keep old buffer tables PS and PSINFO

    Hello!
    I have written a BSP application for an R/3 system which is release 4.6c.  For that reason, we have a stand-alone WebAS which must make RFC's to the core R/3 system to retrieve and update HR data.
    Originally the RFC destination to connect to the core R/3 system from WebAS was not a trusted connection, but we ran into problems with structural authorizations where the RFC was not returning all of the data for the actual user.  We found that the problem was related to the fact that the RFC destination was using a hard-coded user ID to make the connection to the R/3 HR system.  That particular user ID was being used as SY-UNAME in a routine used by structural authorizations, and it wasn't finding the correct data for the User ID that was entered as the RFC user.  Therefore, we made the change on the RFC destination in WebAS so that now we have the "Current User" checkbox checked, the hard-coded user ID and password has been removed, and now the "Trusted System" radio button is selected.  Those changes resolved our issue with structural authorizations because now the routine has the actual user ID as SY-UNAME instead of the generic RFC user ID.
    I'm not sure if the RFC trusted connection is part of this issue or not, but I wanted to provide that information.
    Here is the actual issue...  Several of the RFC's update different HR infotypes, and most of these use function module HR_INFOTYPE_OPERATION to insert new HR infotype records or modify existing ones, etc.  We started receiving short dumps and getting strange results, and I was able to track it down to the fact that the PS and PSINFO buffer tables are not being refreshed.  I was expecting that these tables would be "clean" everytime I make a new RFC call.  However, this is not the case.  I watched this in debugger, and I see that the PS and PSINFO tables are still filled from the last RFC whenever I make a subsequent RFC!  When it finally gets to the point that dialog HR_MAINTAIN_MASTER_DATA is called, it still has the old data in these tables, so it tries to process the infotypes AGAIN.  This is very bad!  For one thing, the previous RFC which used HR_INFOTYPE_OPERATION might have been for an applicant number (TCLAS = 'B') and the current RFC might be for an employee number (TCLAS = 'A').  We have seen this happen, and it resulted in a short dump (it's a long story - just trust me when I say that it is causing a lot of problems!).
    I was able to resolve the issue in one of my function modules by adding a call to function module HR_PSBUFFER_INITIALIZE at the beginning of the function module.  However, I don't want to have to add this to the beginning of every function module that I write.  Also, I think that this is a problem which needs to actually be solved instead of using a band-aid like this.
    This is what I want to know - Why are these buffer tables still filled from the last RFC whenever I make the next RFC?  Is this because it is set up as a "trusted" connection?  Is this related to the fact that my BSP application is stateful instead of stateless?  Does something need to be changed on my RFC destination configuration so that each RFC starts out with "clean" buffer tables?
    Thanks in advance for whatever advice you can offer me!
    Shannon

    I don't think this has anything to do with the trusted connection. It is because your application is stateful.  If you watch in the process overview in your system you will see that with a stateful application, no only does your BSP session state remain between calls, but also you should see a thread per user for the RFC connection. 
    That means that the Session state is also still alive on your R/3 4.6C system for a period of time as well (RFC keep alive time).  We have used this to our advantage before when building BSP applications (caching of data in Global Data of a Function Group).
    However you have the opposite problem.  It sounds like you would want to call the HR_PSBUFFER_INIT at the start of each transaction.  If you writting this as a Classic Dynpro Transaction would you not do the same? 
    You might try calling RFC_CONNECTION_CLOSE as well.  This should close the connection and end the state on the R/3 side.  However you will have the performance overhead of reestablishing a new connection on the next call.  But RFC connections seem to be very efficient.  I doubt you would notice any performance difference.

  • How to set the language for a RFC call ?

    Hi,
    when calling from BSP (WAS620) to our R3 using RFC the results (units, ...) are always in DE. How do the call to get the results in EN?
    Language in RFC Destination/Logon&Security does not have an effect.
    thx for your support.

    Martin,
    I am not sure whether this is a logon problem.
    If you run the function module in transaction SE37 then you will get PC because there are some exits associated to it.
    When you call it from "outside", then the internal value is returned to the caller.
    The same happens when using BAPI from languages like Java or .Net
    The material field - in particular - is well-known for this behaviour.
    Hope someone else could testify because I haven't crossed the problem myself.
    Check this thread for instance:
    sap.net connector error
    If you have a doubt, then set an external breakpoint in the remote system for the RFC user. Then, check the content of the <i>sy-langu</i> field.
    Best regards,
    Guillaume
    Message was edited by:
            Guillaume GARCIA

  • XI RFC call failing

    Hello,
       I am setting up a very simple scenario where I am making a sychronous RFC call to a BAPI in R/3 (Version 4.6c) from an XI Sandbox (Version 7.0).
       I have the RFC Communication channel properly configured, or so I think, and have verified everything else as well. I initiate the message from the Runtime Workbench and it shows with status "Successful" in the Message Monitoring section. However, when I look in SXMB_MONI transaction I am unable to find a response message from the BAPI coming back in the payload. I notice that even though the scenario is synchronous, the "Type" column in the SXMB_MONI transaction results shows it as "Asynchronous". Also, in the message details there is a Payload (which I am sending when I create and send the message from the RWB), in every step, until the Call Adapter step. After that there is no payload in the Call Adapter or the Response steps, just the SOAP Body with the Manifest.
       In the message details I see that the <SAP:Processing Mode> entry is set to "Asynchronous" rather than "Synchronous".
       Does anyone have any idea why this is so?
    Thanks,
    Murtaza.
    Message was edited by:
            Murtaza Madraswala

    Hi Amitabha,
       I looked in the location you suggested and got a list of "Success" messages. These are listed below for you to look at:
    Time Stamp Status Description
    2007-06-18 15:17:54 Success Message successfully received by messaging system. Profile: XI URL: http://camapox1:50100/MessagingSystem/receive/AFW/XI Credential (User): XIISUSER
    2007-06-18 15:17:54 Success Using connection RFC_http://sap.com/xi/XI/System. Trying to put the message into the receive queue.
    2007-06-18 15:17:54 Success Message successfully put into the queue.
    2007-06-18 15:17:54 Success The message was successfully retrieved from the receive queue.
    2007-06-18 15:17:54 Success The message status set to DLNG.
    2007-06-18 15:17:54 Success Delivering to channel: GeneratedReceiverChannel_RFC
    2007-06-18 15:17:54 Success MP: entering
    2007-06-18 15:17:54 Success MP: processing local module localejbs/RfcAFBean
    2007-06-18 15:17:54 Success RFC adapter received an asynchronous message. Attempting to send tRFC for Z_SD_RFC_ATP_WRAPPER with TID XIlc32S1tf4Togkm0mRWaHRG
    2007-06-18 15:17:55 Success MP: leaving
    2007-06-18 15:17:55 Success The message was successfully delivered to the application using connection RFC_http://sap.com/xi/XI/System.
    2007-06-18 15:17:55 Success The message status set to DLVD.
       The problem that I am seeing is that this is posted under the list of Asychronous Received Messages. Thats something I am just unable to understand. I have a Synchronous Outbound Interface defined and an RFC Communication Channel, which is Synchronous as far as I know. So why is the processing mode for the message being chosen as Asynch? Which config setting have I missed that is causing this problem? I am just unable to find the answer so far.
       I appreciate your help. Please let me know if you have any clues.
    Thanks,
    Murtaza.

  • How to loop through single XML File and send multiple RFC calls?

    I am looking for the best approach to use for making multiple RFC calls (can be sequential) using a single XML file of data.  I have been attempting to get a BPM loop working, but to no avail.  My RFC only accepts a single set of delivery input and I have been told to try to work with it as is.
    input xml sample:
    <?xml version="1.0" encoding="UTF-8"?>
    <ProofOfDelivery>
       <POD>
          <delivery_number>1</delivery_number>
          <carrier_name>UPS</carrier_name>
       </POD>
       <POD>
          <delivery_number>2</delivery_number>
          <carrier_name>UPS</carrier_name>
       </POD>
    </ProofOfDelivery>
    I need to make a synchronous RFC call for each set of POD data.
    Thanks in advance!

    Thanks for the inputs.
    I tried with a BPM and multi-mapping transformation before a ForEach block.  I am getting this error:
    Work item 000000028028: Object FLOWITEM method EXECUTE cannot be executed
    Error during result processing of work item 000000028029
    com/sap/xi/tf/_ProofOfDeliveryMultiMapping_com.sap.aii.utilxi.misc.api.BaseRuntimeExceptionRuntim
    Error: Exception CX_MERGE_SPLIT occurred (program: CL_MERGE_SPLIT_SERVICE========CP, include: CL_
    Probably because I am not making/using the container objects properly.  Here is a screenshot of my BPM.  Can anyone spot my issue or point me to an example on this sort of container use?
    [http://kdwendel.brinkster.net/images/bpm.jpg|http://kdwendel.brinkster.net/images/bpm.jpg]
    Thanks

  • URGENT - RFC Call from EP6.0

    Hi folks,
    We are creating a custom iView for creating and editing employee competency appraisals.  While creating a new appraisal, we call an RFC to validate whether an appraisal should be allowed to be created for that particular employee, based on the employee's Job Competency Profile.
    When we log onto R/3 and test the function we get RETURNCODE (of type SY-SUBRC) = 1.  This is the expected result, meaning that the appraisal can not be created because the competency is not in the employee's profile.
    However, when we log onto the portal with the same user, and submit the exact same parameters to the RFC call, we get a RETURNCODE=0, and the appraisal is created.
    Has any of you experts out there ever run into a similar problem?  Any assistance you can provide would be most appreciated.
    Thank you,
    Dan

    Hi Dan,
    Sorry for the late reply!
    do u got solution for that?
    Otherwise, try with this!
    Just intialize the variable in java with 0 or 1,
    otherwise define 2 constants one is for having the value 0 and one is for having 1 and then check with the ouput value u r getting from r/3 to java.
    Generally, whatever the value u will get to the export parameter will be passed to the variable on java side.
    Just check it and let me know the status.
    Regards,
    Sireesha.

  • Sync RFC call from BPM - message expired

    Hi guys,
    I have a scenario with BPM where I'm doing a sync RFC call to ECC and then I want to process the result. However, the processing of BAPI take approx 5 minutes and my messages get expired after 3 minutes.
    How to resolve this issue?
    Thanks a lot,
    Olian

    Hello,
    Problem might be at BAPI end.  Please check BAPI by executing with your set of inputs. If BAPI goes for exception for yoru set of input values.. you may not get response from R3. So you might have error..
    secondly.. Please post the error in the communication channel and errro in the SXMB_Moni as well.
    Thanks,
    subbu

  • XI Webservice scenario SOAP - RFC Call

    Hi,
    i have the following scenario: Request --> XI   RFC-call --> R/3
                                              XI --> Response
    First I have test this scenario with the HTTP-request and it works (the result was correct). After this I changed the configuration and test the scenario with the SOAP-request. But when I try this scenario, the rfc call works also, but I get the response, that we send empty request parameter (I_EQUIPMENT).
    SOAP Request:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
       <soapenv:Header/>
       <soapenv:Body>
          <ns0:RFC_GET_EQUIPMENT_DATA>
             <I_EQUIPMENT>xxxxx</I_EQUIPMENT>
          </ns0:RFC_GET_EQUIPMENT_DATA>
       </soapenv:Body>
    </soapenv:Envelope>
    HTTP Request:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:RFC_GET_EQUIPMENT_DATA xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
       <I_EQUIPMENT>xxxxx</I_EQUIPMENT>
    </ns0:RFC_GET_EQUIPMENT_DATA>
    Thanks for helping,
    Markus

    Hi,
    I hope following docs will help
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
    /people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009
    /people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
    Thanks,
    Tuhin

  • System error during RFC call BAPI_FIXACCOUNT_GETLIST

    Hi Gurus,
    Below are the error and steps when i perform Payroll Posting to Accounting. To enable communication between distributed systems, the appropriate method have been specified in ALE Customizing for the objects of the following tables. (Basis -> Application Link Enabling (ALE) -> Modelling and Implementing Business Processes -> Maintain Distribution Model and Distribute Views.)
    However, error still exists as shown below:-
    1.     Run TCode PC00_M99_CIPE
    2.     Encountered Error as shown below:
    Communication error with system QAS, function FI_ACCT_DET_HR
    Message no. 3G404
    Diagnosis
    The function module "FI_ACCT_DET_HR" has been called remotely in system "QAS". As a result, an error occurred when creating the connection or during communication.
    Procedure
    Check that the ALE distribution model is correctly maintained.
    Account determination could not be performed
    Message no. 3G361
    Diagnosis
    The account could not be determined for one of the following reasons:
    No destination could be found in the ALE distribution model for the AcctngEmplyeeExpnses.Check method.
    A system or communication error occurred when executing the function FI_ACCT_DET_HR in the target system.
    System error during RFC call BAPI_FIXACCOUNT_GETLIST:  / CPIC-CALL: 'ThSAPCMINIT' Unknown serv ice
    Message no. KI012
    3.      Check in SM21: NiConnect Unsuccessful, Return Code: -0003
                        Communication error, CPIC return code 020, SAP return code 665
    Please advice. Thanks in advance.
    Best Regards,
    Fung

    Hi,
    Probably because of timeout, it is unable to execute the request ..so it is aborted.
    btw, is it a synchronous call ? what is the message size ? the given data to RFC is correct and valid structure ? check the mapping .for this use the data from SXMB_MONI and test it
    Check this blog for timeout errors-
    /people/michal.krawczyk2/blog/2006/06/08/xi-timeouts-timeouts-timeouts
    Regards,
    moorthy

  • Performance issue due to RFC calls. (R/3 to R/3 system)

    Hi,
    My application face serious performance problem because of RFC calls (R/3 system to R/3 system).
    1)is there any transaction code for doing performance analysis on RFC calls in R/3 system?
    2)How far large volume of Data Transfer (mainly due to internal tables) in a RFC call affects the performance? is there any limit for data transfer size at a time in a RFC call? if so how to calculate for best performance?
    Thanks and regards,
    Prakash.

    Hi Andreas,
    Suppose an RFC enabled Fm having an internal table as importing parameter.During execution of this Fm with 4000 enteries for the internal table results in performance degrading.is there any way to improve the performance?.
    Thanks and regards,
    Prakash.

  • Dynamic RFC call

    Hi,
    In a general scenario, all RFC destinations are defined in SM59, and programs call other system, by using the following method.
    Call function 'ABC' destination dest.
    I want to try and make a dynamic call, to another system, without making an SM59 entry.
    Background:
    I have some scheduled programs running on one system, to fetch system related data from different systems and create a report. Thus I do not have to logon to each system and get data myself. For this, I have created RFC destinations on SM59, for all those systems, using my login id and password, and have told in the program to use those RFC destinations. Since I am a dialog user, I fear that someone who has access to SM59, may use my RFC destination to remotely login to the destination system. So, I want to make an RFC call, without specifying the ID/ password in SM59, but through the calling program.
    I know that if I don't give the ID/ password in SM59, the program will prompt for password, upon execution. But that is not I want. I want to specify the ID and password in the calling program selection screen and then execute the program to get the result.
    Thanks,
    Juwin.

    Hi,
    Solved it myself.
    In the program...
    *l_destin = Build a dummy name for destination
    *Use selection screen parameters to create RFC destination
      call function 'RFC_MODIFY_R3_DESTINATION'
        exporting
          destination                = l_destin
          action                     = 'I'
    *....additional parameters.....
    *Call actual RFC function
      call function 'ZABC'
        destination l_destin.
    *Delete the temporary destination
      call function 'RFC_MODIFY_R3_DESTINATION'
        exporting
          destination                = l_destin
          action                     = 'D'
    *....additional parameters.....
    This way, I do not create a RFC destination in SM59, and so others cannot use it. The RFC destination is created only for a split of a second, to faciliate the call.
    Thanks,
    Juwin.

Maybe you are looking for

  • L1940T

    I have a HP L1940T and my new computer (laptop) does not have a VGA or DVI input for a monitor. It has only a HDMI or USB connections. I tried using the USB upstream connector from the monitor to the laptop USB port, but my laptop could not detect it

  • Not able to edit video levels?????

    I just startet a new project. I want to edit the gamma and output tolerance, but get absolutly no reaction. I tried in older project, and here it works fine. Then I tried to start a new project with the same videofiles, and then I have the problem ag

  • Difference between HR programing & other module programming

    Hi What are difference between HR programming & other module programming? This is one of interview questions from IBM. Any body can answer for me? WIth Regards,Jaheer.

  • HT5538 when i potr my number form viva to zain imassge and face time is not working

    please help When i port my number from viva carrer to zain carrer in kuwait the iMessage and Face Time stopped i asked my carrer they told me the ploblem from apple. thanks <Personal Information Edited By Host>

  • HitTests Dont Work HELP????

    Ive got this script. when u press a button u can create a movie clip called man. when u press another button u can create one called enemy. thay both create at different sides of the seane and thay walk past each other. but when thay touch each other