RSAU_READ_FILE RFC  call help.

Hi,
I trying to get Audit events from C through SAP RFC SDK. However, i could not able to read table  SYSLOG_IN_TABLE.
following is sample code i am using .
strcpyU(functionname,"RSAU_READ_FILE");
    rfc_char_t * value = new rfc_char_t[500];
     rfc_char_t * value1 = new rfc_char_t[500];
     sprintfU(value,"Agtvra01-test_NSP_00             0000000000000000000000000000000020091106080000200911060800000020091109      2009110923595900                                                        00000          *");
     sprintfU(value1,"Structure: flat & not charlike");
    exporting[0].name = cU("SELECTION");;
    exporting[0].nlen = 9;
    exporting[0].addr = value;
    exporting[0].leng = strlenU(value)*sizeofR(SAP_UC);
    exporting[0].type = RFCTYPE_CHAR;
     /*exporting[1].name = cU("SELECTION_AUDIT");;
    exporting[1].nlen = 15;
    exporting[1].addr = value1;
    exporting[1].leng = strlenU(value1)*sizeofR(SAP_UC);
    exporting[1].type = RFCTYPE_CHAR;*/
   rfc_char_t   * t_name = new rfc_char_t[500];
    strcpyU(t_name,"SYSLOG_IN_TABLE");
     tables[0].name     =  t_name;
    tables[0].nlen     = 15;
    tables[0].ithandle = ItCreate (t_name, 300, 0 , 0);
    tables[0].leng     = 300;
    tables[0].type     = RFCTYPE_CHAR;
     /* issue the RFC call */
   rc = RfcCallReceive (handle,
                        functionname,
                        exporting,
                        importing,
                        tables,
                        &exception_ptr);
   /* check return code */
   switch (rc)
      case RFC_OK:
        break;
      case RFC_EXCEPTION :
      case RFC_SYS_EXCEPTION :
        rfc_error( exception_ptr );
        break;
      default :
        rfc_error (cU("call/receive error"));
       break;
   display_table (tables[0].ithandle);
Please  help me , how to read SYSLOG_IN_TABLE table .

Hello,
           Is your problem solved. I am facing the same situation. Could you help me out, How got the data into  SYSLOG_IN_TABLE.
Thanks in advance for your reply.
Regards,
Darwin.

Similar Messages

  • Is there any way to limit the number of RFC calls from xMII to SAP R/3

    Hi All!
    I wanted to know whether the number of simultaneous RFC connections made from xMII to SAP R/3 system can be controlled in any way. Suppose we have a scenario wherein some million Sales Orders or Production Orders are to be updated in SAP R/3 from xMII in a short span of time. For all these updations to take place, multiple RFC calls will be established from xMII to SAP at the same time. This will increase the load on the SAP R/3 system and affect performance of the SAP R/3 system. Is there any check on xMII side to limit the number of RFC calls that can be made to SAP R/3 system?
    Regards
    Anupam

    Anupam,
    If you are using 11.5 just keep in mind that the JCO connection points to a single application server (based upon the SAP Server alias connection settings), but the traffic itself to make a BAPI request is effectively the same as any client user traffic.  There will obviously be limitations on performance and throughput, with network and server constraints added to the number and size of the R/3 requests, but there is no magic formula to plug-in because of all of these variables.
    If you are using 12.0 (or plan to migrate when it goes GA) then taking advantage of the JRA (java resource adapter) and the associated application server pooling that it offers on the NetWeaver side of things will greatly help you in the throughput capacity.
    If you have put some of your xMII application into either test or productive use and are running into issues then I would highly recommend entering the specifics into the customer / partner support portal so that they can help you through any associated problems.
    Regards,
    Jeremy Good

  • 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

  • Best practice on integration message augmentation via user exit or rfc call

    I am looking for documentation that would provide best practices on whether to use user exits to augment the data on an IDOC or to forward the standard SAP produced IDOC to PI where rfc calls are made to augment the data as required for the specific target system.
    I am sure there are pros and cons for both solutions, but I am hesitant to use user exits since we now have moved the knowledge of what a target system wants from the integration layer to the source layer.  If a second target system comes along in the future, the user exit becomes more complicated with additional target specific requirements. 
    Any links to best practice documentation on this subject is greatly appreciated.
    Edited by: Sean Sweeney on Oct 15, 2009 6:59 PM

    Hi Steve,
    Might be trying for solution for a long time, If i understood your question clear let me clarify you few points.
    You are trying to access the bex query which is designed with the exit's in the background based on the logic and trying to call the entire dimensions and key-figures in a single connection. Then you are trying to map those data in the charts.
    Steve, try to make more connections based upon the logic and split them. use the same query but split them by sales per customer group, sales per day, sales per week by making three different connections and try. You can merge the prompts from all connections.
    Hope this Helps!!!
    Sorry if i misunderstood your question.
    --SumanT

  • Error in starting SAP GUI as part of an Java RFC call from a PC

    Hi,
    We are on the 4.6C version of SAP and have the latest basis kernel patches that allow an RFC connection to start the SAP GUI. The program that I am running externally is java using the 3.0.1 JCo. The OS of the PC I am using is Windows XP. The SAPGUI version is 7.10 patch level 11.
    The program seems to be working properly as the command prompt window goes grey as if there is another window being opened but then I get back this error message and I do not see the GUI.
    The message I am getting back is:
    Exception in thread "main" com.sap.conn.jco.JCoException:(136) JCO_ERROR_ILLEGAL_STATE:Launching SAP GUI failed, though it was requested(error message:Communication with SAPGUI timed out)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.startSAPGui(MiddlewareJavaRfc.java:1853)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.connect(MiddlewareJavaRfc.java:1285)
    at com.sap.conn.jco.rt.ClientConnection.connect(ClientConnection.java:661)
    at com.sap.conn.jco.rt.PoolingFactory.init(PoolingFactory.java:103)
    at com.sap.conn.jco.rt.ConnectionManager.createFactory(ConnectionManager.java:171)
    at com.sap.conn.jco.rt.DefaultConnectionManager.createFactory(DefaultConnectionManager.java:44)
    at com.sap.conn.jco.rt.ConnectionManager.getFactory(ConnectionManager.java:160)
    at com.sap.conn.jco.rt.RfcDestination.initializ(RfcDestination.java:766)
    at com.sap.conn.jco.rt.RfcDestination.getSystemID(RfcDestination.java:794)
    at com.sap.conn.jco.rt.RepositoryManager.getRepository(RepositoryManager.java:32)
    at com.sap.conn.jco.rt.RfcDestination.getRepository(RfcDestination.java:865)
    at GISToSAPWO_Test.get_wo_call(GISToSAPWo.java:91)
    at GISToSAPWO_Test.main(GISToSAPWO_Test.java:206)
    I have been all over trying to find the solution to this and have come up empty. Any help will be greatly appreciated. If this is the wrong forum for this please let me know and I will re-post.
    Thank you in advance for any information you can pass on about the issue,
    Mark

    Hi Greetson,
    Thank you in advance for your response. It is greatly appreciated.
    1) In a way yes. I am using the connection setting USE_SAPGUI = 1. This is suppose to start the GUI prior to starting the RFC's program run. If this is not correct please let me know.
    2) The code is part of the JCo and the RFC library from what I have read. If this is not correct please let me know.
    3) I am only testing from my PC at this moment. I have re-installed my SAP GUI and am now at patch level 13 on 7.10.
    4) The application passes in the connection information which includes username and password along with the parameters for the RFC call. I would like the SAP GUI to open without the user having to re-enter his/her username and password. I thought that once the RFC is called using the dialog users credentials that the GUI would then open using the connection. I have used the java pooled connection method and it still does not open the GUI.
    5) The purpose is to pass Equipment objects, Functional Location objects and Leak Id objects to an RFC to open a list screen from IW39, List Maintenance Order transaction, for display of each at one pass, as well as open Excel with data from classification for the Leak Id's.
    Hope this sheds some light on the problem I am having. Please let me know if more information is needed.
    Best regards,
    Mark

  • RFC call from Excel using VBA

    I am trying to do an RFC call from Excel to SAP using VBA. RFC is working fine for most the RFC enabled Function Modules except DDIF_FIELDINFO_GET and DDIF_FIELDLABEL_GET.
    What can be the reason for this?
    Can someonme please help me with a macro code where these FMs are working.
    Also can someone please help me with some tutorial on SAP connection with Excel.
    <REMOVED BY MODERATOR - REQUEST OR OFFER POINTS ARE FORBIDDEN>
    Edited by: Alvaro Tejada Galindo on Nov 12, 2008 9:14 AM

    Hello Jon.
    DDIF_FIELDINFO_GET is not working for me either. But I have used another FM (/ZOPTION/LIVE_DDIF_FIELDINFO):
    Public Sub RFC_FIELDINFO()
    Dim Func As Object
    Dim sapConn As Object
    Dim tblFIELDTAB
    Dim tblFIXED_VALUES
    Dim intRow%
    Dim intCol%
    '* Sub     : Call FM /ZOPTION/LIVE_DDIF_FIELDINFO                         *
    '* Author  : Holger Köhn                                                  *
    '* Created : 23.08.2014                                                   *
    '* Changed :                                                              *
    ThisWorkbook.Sheets("TEST").Activate
    Cells.Select
    Selection.ClearContents
    ThisWorkbook.Sheets("TEST").Range("A1").Select
    '* create RFC-Connection                                                  *
    Set sapConn = CreateObject("SAP.Functions")
    sapConn.Connection.RfcWithDialog = True
    If sapConn.Connection.LogOn(1, False) <> True Then
        MsgBox "Cannot Logon to SAP"
        Exit Sub
    End If
    DoEvents
    '* run FM /ZOPTION/LIVE_DDIF_FIELDINFO                                    *
    Set Func = sapConn.Add("/ZOPTION/LIVE_DDIF_FIELDINFO")
    Func.Exports("TABNAME") = "AUFK"
    Set tblFIELDTAB = Func.Tables("FIELDTAB")
    If Func.Call = False Then
         MsgBox Func.Exception
         Exit Sub
    Else
        Application.ScreenUpdating = False
            For intCol = 1 To tblFIELDTAB.ColumnCount
                ThisWorkbook.Sheets("TEST").Cells(1, intCol).Value = tblFIELDTAB.ColumnName(intCol)
            Next
            If tblFIELDTAB.RowCount > 0 Then
                For intRow = 1 To tblFIELDTAB.RowCount
                    For intCol = 1 To tblFIELDTAB.ColumnCount
                        ThisWorkbook.Sheets("TEST").Cells((intRow + 1), intCol).Value = tblFIELDTAB(intRow, intCol)
                    Next
                Next
                ThisWorkbook.Sheets("TEST").Activate
            End If
            Columns.AutoFit
        Application.ScreenUpdating = True
    End If
    '* clear tblFIELDTAB                                                      *
    Do Until tblFIELDTAB.RowCount = 0
         Call tblFIELDTAB.Rows.Remove(1)
    Loop
    Set sapConn = Nothing
    Set Func = Nothing
    Set tblFIELDTAB = Nothing
    End Sub

  • Passing chinese character from RFC call between unicode & non unicode syst.

    Hi Experts,
    I am making a RFC call from an ABAP in non unicode system to a Function module in Unicode system and filling the itab fields in ABAP by using move statement and using offset in order to populate amount fields correctly from flat structure tables returned by function module. But i am facing problem in getting chinese characters correctly in return from the Remote Function Module.
            CALL FUNCTION 'ZFXX_GET_CLR_OI'
              STARTING NEW TASK W_TASKNAME
              DESTINATION S_RFCDES-LOW
              PERFORMING F3100_GET_RFC_DATA ON END OF TASK
              EXPORTING
                P_WAERS               = P_WAERS             "Screen Curr
                P_AUGDT               = P_AUGDT             "Clearing date
                P_BUKRS               = P_BUKRS             "Comp Code
              TABLES
                T_SEL_TABLE           = T_SEL_TABLE
                T_OUTPUT              = T_MCDATA
                T_ERRORS              = T_EMCDATA
              EXCEPTIONS
                COMMUNICATION_FAILURE = 1
                SYSTEM_FAILURE        = 2
                OTHERS                = 3.
           MOVE : t_mcdata1-line+0(32)   TO t_succs-awsys,
                   t_mcdata1-line+32(4)   TO t_succs-bukrs,
                   t_mcdata1-line+36(10)  TO t_succs-belnr,
                   t_mcdata1-line+46(4)   TO t_succs-gjahr,
                   t_mcdata1-line+50(1)   TO t_succs-shkzg,
                   t_mcdata1-line+51(2)   TO t_succs-bschl,
                   t_mcdata1-line+53(4)   TO t_succs-gsber,
                   t_mcdata1-line+57(16)  TO t_succs-dmbtr,
                   t_mcdata1-line+73(16)  TO t_succs-wrbtr,
                   t_mcdata1-line+89(5)   TO t_succs-pswsl,
                   t_mcdata1-line+94(6)   TO t_succs-vbund,
                   t_mcdata1-line+100(10) TO t_succs-hkont,
                   t_mcdata1-line+110(10) TO t_succs-prctr,
                   t_mcdata1-line+120(16) TO t_succs-dmbe2,
                   t_mcdata1-line+136(20) TO t_succs-txt20.
            APPEND t_succs.
    Can anybody suggest or advice me on it ? Any help or suggestion would be appreciated.
    Thanks in advance,
    Akash

    .

  • RFC calls with SAP table insert - lock tables

    Hi,
    I have an external server program, which is calling a rfc function many times the same time with different transaction types. There are transaction types, which are downloading information from SAP (only send data back to the caller), and there are transaction types which are uploading data to SAP (inserting/updating data on SAP).
    The function calls are synchronous as the server needs to get feedback directly. The parallel work processes for RFC calls are limited, so a system overload can´t happen.
    The problem now is, if the server is down for while and going to be restarted, it´s opening parallel threads and calls the function in SAP at nearly the same time. That means, it will call the function with upload requests (table must be locked), and download requests the same time.
    In the upload requests, the table has to be locked, that it can´t occur that we get wrong entries...
    I can only enqueue the table with just two fields... I know, that is almost like locking the whole table, but it´s not possible to lock it in a different way.
    I tried to use the enqueue function with the parameter WAIT, but it didn´t help, as there where too many parallel calls and after some seconds, they were ending up with an error (Because the table has been locked by another call).
    It seems that it´s trying to lock the table again for all parallel calls at exactly the same time....
    The calls has to be synchronous, as the server needs to get the feedback directly. Any ideas how top solve this, that it handles all incoming calls parallel and waits for the table is unlocked again?
    Thank you for your help!

    Hi,
    thank you for your answer!
    I have investigated something new yesterday:
    I thought at the beginning, that the problem just occurs, when the system work processes are reached. The system has for example set up 15 dialog processes and the external server is calling the function 20 times in parallel. Then we normally need 5 dialog processes more. The system is taking then all 15 dialog processes and the locks got stucked.
    That means, that I´ll maybe only get 4 or 5 uploads, which have really been updated the tables. All the others couldn´t get the table locked for their process.
    But if I now let the server call the function just about 13 times in parallel, nearly all uploads have been updated the table!
    From my point of view, the lock from SAP gets stucked, when the limit of dialog processes is reached. It´s not working in the right way anymore...
    The same is happening, when you set up in the system, that only 10 work proecesses can be used by RFC. If I have more than 10, it´s going to be critical with the locks....
    WEIRD!
    Can anybody help me out of trouble?
    Thank you!

  • Login information for RFC call

    Hi there,
    I would like to know if there is a way to authenticate a user via bsp and get that login information to make the RFC call to different systems.
    i tried the to call an FM via RFC directly from abap and it forces me to login and it works but when i put that code to bsp. I just get a "page cannot be displayed" error.
    I know i can enter an ID and password on sm59 for the connection but i need to let the user login
    I am using this for a user creation tool.. instead of using su01 to create a user it will be done via bsp and would like to reflect the changes done when running the reports from SUIM
    thanks in advance
    Ryan

    Hi Ryan,
    I will assume your RFC Destination already trusted system and using current user logon (see my previous reply).
    However this still prerequisite for the next step.
    Now, please correct me if my understanding is wrong.
    In your reply, you have at least 2 System, right?
    S1 & S2.
    Where S1 has BSP Application (Ex:/ FormRegistration)
    And S2 is where you control the user and Function Module.
    Do you put, generic user for all BSP Service in System S1?
    You can create another BSP Application in System S1 (Ex:/ CallingFM)
    but this time don't put default user in BSP Service.
    And from BSP Application FormRegistration, you create 1 button to call the BSP Application CallingFM.
    I will give you sample code:
    FormRegistration: address:http://systemS1.sap.com/FormRegistration/page1.htm
    HTML Part:
    ===========
    <HTML>
    <input type="button" value="Register the user" onclick="submitUser();">  
    <script>
       function submitUser(){
           document.forms[0].action = 'http://systemS1.sap.com/CallingFM/page1.htm';
           document.forms[0].target = '_new';
            //it will open new window, just put it empty if you don't want to open new window.
           document.forms[0].submit();
    </script>
    </HTML>
    Now, when user click Button "Register the user" it will open the new window.
    But because it doesn't allow you to using default user, it will prompt user id and password.
    After that it will submit the data to CallingFM
    Now in CallingFM we already have the sy-uname = user-B.
    CallingFM: address-> http://systemS1.sap.com/CallingFM/page1.htm
    OnInputProcessing Part:
    =================
    call function 'zcreate_user' destination 'S2'
    Why you need CallingFM BSP application? because you need to re-assign sy-uname in S1 from default user with user-B ID, and use it to connect to System S2, S3, etc.
    Please note: SM59 and User Id must be set before this.
    Because when you call RFC from other destination, SAP will refer to Logon setting in SM59 for that destination.
    Hope this will help you.

  • 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 through BSP - Issue with RFC logon credentials

    Hi everyone,
    I have an BSP application running on a 6.40 which calls a RFC function module on a backend system (4.6c) using a trusted RFC connection.
    The BSP is started with an URL which contains in encoded form the username and password. So we don't use the standard sap-username & sap-password.
    In the first step the user is logged in with the anonym user (user type 'service') which is entered in the SICF. So sy-uname = 'anonym'.
    After a couple of checks and verifications the BSP makes a user switch using 'SUSR_INTERNET_USERSWITCH'. Exporting parameters are the now decoded values from the URL. So after the switch sy-uname is e.g.  'blabla'.
    Now a function module on the backend system is called. What I would now expect is that on the backend system sy-uname is also 'blabla'. But it isn't. The sy-uname is still 'anonym', which isn't very helpful regarding object authority checks.
    Only after an reload of the BSP page and a second RFC call of the function module the sy-uname = 'blabla'.
    I wonder what causes this problem?
    Thanks for your replies & regards
    Kruno

    Hi,
    I solved it.
    Before I execute function 'SUSR_INTERNET_USERSWITCH' I first check if user has a valid backend account by using function module 'BAPI_USER_EXISTENCE_CHECK'.
    And this is the problem. When 'BAPI_USER_EXISTENCE_CHECK' is executed once all other RFC function calls to the backend get the wrong user.
    Why? I don't know yet. Maybe I will get an useful anwer from an OSS note.

  • RFC call on click of button

    Hi,
    I need to make RFC call to  ABAP function module with some input parameters.
    On click of a button, I need to navigate between views based on returned values.
    I have followed steps similar to FlightList example. Created a  model, custom controller and all necessary contexts between them.
    Basic RFC connection seems to be working fine (I tried to populate a table with the return values for testing purposes) as the table header gets the appropriate values based on model... but the actual values are not being returned.
    Please guide me what needs to be done with
    1) ButtonAction() method,       2) DoInit( ) method of the model,     3) ...Bapi_execute( )
    Or give me the steps to start from fresh, whatever is easier...
    Thanks a lot in advance,
    Dil

    Hi
    Steps:
    1. First create an instance for bapi and bind the instance to the bapi node.
      Z<bapi name> zb=new Z<bapi name>();
      wdContext.nodeZ<bapi name>. bind(zb);
    2. Then if u have the import parameter u have to set them by using
        The instance of the above bapi.
        Zb.set<import parameters>;
    3. Then Execute the bapi after setting the import parameters.
    4.  If there is any export parameters, then get the values after execution.
    public void onActionsubmit(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionsubmit(ServerEvent)
    Z<bapi name> zb=new Z<bapi name>();
      wdContext.nodeZ<bapi name>. bind(zb);
    Zb.set<import parameters>;
    try
                   wdContext.nodeZ<bapi name>_Input().currentZ<bapi name>_InputElement().modelObject().execute();
         catch (Exception e)
                   wdComponentAPI.getMessageManager().reportWarning("Exception:"+e);
    // code for getting values from response node
        //@@end
    Hope this helps,
    Regards,
    Arun

  • Multiple RFC calls in same session

    Hi All,
    I'm looking for a way to execute multiple RFCs (one after the other) within the same "session".  The reason I need to execute them within the same session is because the initial RFCs store information in ABAP memory (EXPORT x TO MEMORY ID y) and subsequent ones will use that information (IMPORT x FROM MEMORY ID y) for further processing.  I thought I could do it all as a transactional RFC call but as one of the RFCs invokes the GUI, it seems to cause complications.  I don't think tRFCs are the correct solution because it invovles client interaction from the GUI in one of the calls.
    Has anyone tried to do this with the .NET Connector before?  I've tried reusing the connection but it seems to get reset after the first call.  Please help!
    Tim.

    Hi Tim,
    How are you doing ?
    A session [when using NCo] is the length of time that the connection is open.
    please let me know why the connection is being reset.
    the client number is a mandatory attribute in any connection string, it is a part of a composite key which uniquely identifies the user
    please let me know how you would like to proceed ?
    with respect,
    amit

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

  • RFC CALL VIA EXCEL VBA

    Hello,
    Hope someone call help with the following.
    I am trying to retrieve data from a table within SAP by using the following Excel VBA code.
    Sub retrieve_table_contents()
    Dim R3, MyFunc, App As Object
    Dim SEL_TAB, NAMETAB, TABENTRY, ROW As Object
    Dim Result As Boolean
    Dim iRow, iColumn, iStart, iStartRow As Integer
    iStartRow = 4
    Worksheets(1).Select
    Cells.Clear
    'Create Server object and Setup the connection
    Set R3 = CreateObject("SAP.Functions")
    R3.Connection.System = "QA2"
    R3.Connection.client = "900"
    R3.Connection.user = "mbrough"
    R3.Connection.password = "st34lh"
    R3.Connection.language = "EN"
    If R3.Connection.logon(1, False) <> True Then
       Exit Sub
    End If
    'Call RFC function TABLE_ENTRIES_GET_VIA_RFC
    Set MyFunc = R3.Add("TABLE_ENTRIES_GET_VIA_RFC")
    Dim oParam1 As Object
    Dim oParam2 As Object
    Dim oParam3 As Object
    Dim oParam4 As Object
    Set oParam1 = MyFunc.exports("LANGU")
    Set oParam2 = MyFunc.exports("ONLY")
    Set oParam3 = MyFunc.exports("TABNAME")
    Set oParam4 = MyFunc.Tables("SEL_TAB")
    oParam1.Value = "E"
    oParam2.Value = ""
    oParam3.Value = "LAGP"
    If frmQuery.txtSelect <> "" Then
        oParam4.Rows.Add
        oParam4.Value(1, "ZEILE") = frmQuery.txtSelect
    End If
    Result = MyFunc.CALL
    If Result = True Then
      Set NAMETAB = MyFunc.Tables("NAMETAB")
      Set SEL_TAB = MyFunc.Tables("SEL_TAB")
      Set TABENTRY = MyFunc.Tables("TABENTRY")
    Else
        MsgBox MyFunc.EXCEPTION
        R3.Connection.LOGOFF
        Exit Sub
    End If
    Result = R3.TABLE_ENTRIES_GET_VIA_RFC(EXCEPTION, LANGU:="E", ONLY:="", TABNAME:="LAGP", SEL_TAB:=SEL_TAB, NAMETAB:=NAMETAB, TABENTRY:=TABENTRY)
    'Quit the SAP Application
    R3.Connection.LOGOFF
    If Result <> True Then
      MsgBox (EXCEPTION)
      Exit Sub
    End If
    'Display table header
    iColumn = 1
    For Each ROW In NAMETAB.Rows
        Cells(iStartRow - 1, iColumn) = ROW("FIELDNAME")
    '   For C and N datatypes, explicitly set the cell to TEXT format, otherwise leading zeroes will be lost
    '   when numbers are imported from a SAP text field
        If ROW("INTTYPE") = "C" Or ROW("INTTYPE") = "N" Then
            Range(Cells(iStartRow - 1, iColumn), Cells(iStartRow - 1 + TABENTRY.Rowcount, iColumn)).Select
            Selection.NumberFormat = "@"
        End If
        Cells(iStartRow, iColumn) = ROW("FIELDTEXT")
        iColumn = iColumn + 1
    Next
    Range(Cells(iStartRow - 1, 1), Cells(iStartRow, NAMETAB.Rowcount)).Font.Bold = True
    'Display Contents of the table
    iColumn = 1
    For iRow = iStartRow + 1 To TABENTRY.Rowcount
        For iColumn = 1 To NAMETAB.Rowcount
            iStart = NAMETAB(iColumn, "OFFSET") + 1
    '       If this is the last column, calculate the length differently than the other columns
            If iColumn = NAMETAB.Rowcount Then
                iLength = Len(TABENTRY(iRow, "ENTRY")) - iStart
            Else
                iLength = NAMETAB(iColumn + 1, "OFFSET") - NAMETAB(iColumn, "OFFSET")
            End If
    '       If the fields at the end of the record are blank, then explicitly set the value
            If iStart > Len(TABENTRY(iRow, "ENTRY")) Then
                Cells(iRow, iColumn) = Null
            Else
                Cells(iRow, iColumn) = Mid(TABENTRY(iRow, "ENTRY"), iStart, iLength)
            End If
        Next
    Next
    'Format the Columns
    Range(Cells(iStartRow, 1), Cells(iStartRow + TABENTRY.Rowcount, NAMETAB.Rowcount)).Select
    Selection.EntireColumn.AutoFit
    End Sub
    However when I run the code I get the following exception message. 'SYSTEM_FAILURE' and nothing is returned.
    Does anyone know why this is?
    Thanks,
    Mike

    You can send data from excel to the MII message listener with a simple http post.
    Message format requirments can be found here:
    [http://help.sap.com/saphelp_xmii120/helpdata/en/45/6a86ac88130dece10000000a11466f/content.htm|http://help.sap.com/saphelp_xmii120/helpdata/en/45/6a86ac88130dece10000000a11466f/content.htm]
    Edited by: Christian Libich on Aug 10, 2009 10:14 PM

Maybe you are looking for

  • Could not get IOR from Domino Server while provisioning Lotus Notes

    Hi all, There are two servers that have OIM installed, development server and test server. From development server, we can provision to Lotus Notes just fine. But for test server everytime when provision to Lotus Notes. There will be an exception Not

  • What can I use in place of adobe acrobat?

    What do I need to view sites requiring Adobe Acrobat reader?

  • Why does my hp say it's not genuine?

    My computer is: HP TouchSmart 310-1125y Desktop PC My operating system: Windows 7 home premium Error Message (located at lower right side of screen): " Windows 7---Build 7601---This copy of Windows is not genuine" all i want to know is how do i fix t

  • Advanced Adapter Engine in PI 7.1

    Hi there, Does anyone know if the Advanced Adapter Engine can be installed and run stand alone? i.e. without being connected to an integration engine? Obviously this would be a Non-Central Advanced Adapter Engine. But does it have to be connected to

  • Conecting to Yamaha RX-V1067

    I am about to purchase a new receiver (Yamaha RX-V1067) with Lan/Internet capabilities. The receiver should be cable of accessing the hard drive of LAN- connected PCs and play, amongst others, the MP3 files on the HDD. This works with windows based P