JCO Table Parameter whith 2 lines...

Hello all.
How to send 2 lines parameters in the same table to call a BAPI.
This is my code ...but not work !
JCO.Table ItemDocCont = function.getTableParameterList().getTable("T_DOCITE");
                 ItemDocCont.setRow(1);
     ItemDocCont.appendRow();
          //item 1
          ItemDocCont.setValue("XXX", "BUKRS");
          ItemDocCont.setValue("1", "BELNR");
          ItemDocCont.setValue("2009", "GJAHR");
          ItemDocCont.setValue("001", "BUZEI");
          ItemDocCont.setValue("TESTE SGTXT ITEM 001", "SGTXT");
          ItemDocCont.setValue("100,00", "WRBTR");
          ItemDocCont.setValue("6154110199", "HKONT");
          ItemDocCont.setValue("0000000000", "AUFPL");
     ItemDocCont.appendRow();
                                           //item 2
          ItemDocCont.setValue("XXX", "BUKRS");
          ItemDocCont.setValue("1", "BELNR");
          ItemDocCont.setValue("2009", "GJAHR");
          ItemDocCont.setValue("002", "BUZEI");
          ItemDocCont.setValue("TESTE SGTXT ITEM 002", "SGTXT");
          ItemDocCont.setValue("100,00-", "WRBTR");
          ItemDocCont.setValue("2113110001", "HKONT");
          ItemDocCont.setValue("0000000000", "AUFPL");
                    mConnection.execute(function);     
thanks in Advance.
Regards.
Taylor

Hey Taylor,
Two small issues: Before changing the data you must set the right row. You did this for the first row, but this is incorrect, because row numbers start with 0. I'd do the following:
ItemDocCont.appendRows(2);
//item 1
ItemDocCont.setRow(0);
ItemDocCont.setValue("XXX", "BUKRS");
ItemDocCont.setRow(1);
//item 2
ItemDocCont.setValue("XXX", "BUKRS");
mConnection.execute(function);
In general it's better to create all the new rows at the same time. In your case with two rows that won't make any difference, but in general the one time allocation provides better performance.
cheers, harald

Similar Messages

  • How to read JCO Table parameter

    Hello
    I am calling Java function from ABAP side (JCO outbound call). Right now, in the java program I can get the import parameter data, but not the table parameter data. I am using the famous example5.java and the ABAP code is like below:
    PARAMETERS: requtext LIKE sy-lisel.
    DATA: echotext LIKE sy-lisel,
          resptext LIKE sy-lisel,
          rfctest TYPE TABLE OF rfctest,
          wa_rfctest TYPE rfctest.
    wa_rfctest-rfcdata1 = requtext.
    wa_rfctest-rfcdata2 = 'Hello World'.
    APPEND wa_rfctest TO rfctest.
    CALL FUNCTION 'STFC_CONNECTION'
      DESTINATION 'JCO'
      EXPORTING
        requtext = requtext
      IMPORTING
        echotext = echotext
        resptext = resptext
      TABLES
        rfctest  = rfctest.
    In the java side it is defined as:
    JCO.MetaData fmeta = new JCO.MetaData("STFC_CONNECTION");
            fmeta.addInfo("REQUTEXT", JCO.TYPE_CHAR, 16,   0,     0,       JCO.IMPORT_PARAMETER, null);
            fmeta.addInfo("ECHOTEXT", JCO.TYPE_CHAR, 255,   255,     0,       JCO.EXPORT_PARAMETER, null);
            fmeta.addInfo("RESPTEXT", JCO.TYPE_CHAR, 255,   512,     0,       JCO.EXPORT_PARAMETER, null);
            fmeta.addInfo("RFCTABLE",     JCO.TYPE_TABLE,     144, 0, 0, 0,                    "RFCTEST");
    Also RFCTEST structure is defined ( omitted here)
    In the handleRequest(JCO.Function function), the following code:
    if (function.getName().equals("STFC_CONNECTION")) {
                    output.setValue(input.getString("REQUTEXT"),"ECHOTEXT");
                    JCO.Table tab = tables.getTable("RFCTABLE");
                    System.out.println("RFCTABLE rows = " + tables.getTable("RFCTABLE").getNumRows());
    I always get 0 rows in the table RFCTABLE. I checked the trace file in the Java side, I can see the table data are indeed passed to Java side, the JCO just can't pass the data through the API.
    Any one has idea of it?
    Thank you very much.
    Jayson

    Andre 
    I have read the function Structure of J_1B_NFE_XML_OUT and i don't find the TableParameter or ExportParameter for this FM.
    How do you actually get your return parameter?
    I don't think here the table type is JCO.Table.
    And  i don't know how to use this Function . So i can't test my assumption.
    JCO.Table tab = function.getImportParameterList().getTable( "XML_ITEM_TAB" );
    normally people use the JCO.Table tab=function.getTableParameterList().getTable();
    But XML_ITEM_TAB is not a Table parameter.
    I don't know if table type from importParmeter can convert themself like that.But you still can try it.
    hope that be helpful!

  • How to process a JCO.Table object line by line

    Hello all.
    I am new to development using JCo. How to process a JCO.Table line by line?! I want to print each line of the table using System.out.println ...
    Thx a lot
    Mike

    Hi Mike,
    here is a sample code for you,
    JCO.Table codes = function.getTableParameterList().getTable("INFO");
    for (int i = 0; i < codes.getNumRows(); i++) {
              codes.setRow(i);
              int tmp = new Integer(codes.getString("POSNN")).intValue();
              String tmpStr = new String(Integer.toString(tmp));
              ret = result.put(tmpStr, codes.getString("VBELN"));
    then using System.out.println(), you can print these values.
    regards,
    Abhijeet

  • How to set  JCO.Table as input parameter

    RunTest.java
    Reservation reservation=new InvReservation();
              reservation.setRSNUM("0001");
              reservation.setMATNR("cellphone");
              reservation.setMENGE(1.0);
              reservation.setLGORT("MAINWH");
              reservation.setWERKS("HQ");
              reservation.setSERNR("AP");
              reservation.setVBELN("SD");
              try{
              Collection col=reservation.confirmReservation();
              for(Iterator it=col.iterator();it.hasNext();){
                   InvReservation invRes=(InvReservation)it.next();
                   System.out.println(invRes.getRSNUM()+"  "+invRes.getMBLNR()+"  "+invRes.getMATNR() +" "
                              +invRes.getMENGE()+" " +invRes.getSERNR()+"  " +invRes.getDMBTR() +"  "
                              +invRes.getZSUBRC()+"  "+invRes.getZEMSG());
              }catch(Exception ex){
                   System.out.println("main: " +ex );
    Reservation.java
    public Collection confirmReservation() throws CustomException{
              Reservation outgoingRes = new InvReservation();
              Collection col=new ArrayList();
                   JCO.Function function = null;
                   JCO.Client client = null;
                   String functionName = "ZMM_OSB_CONFIRM_RESERVATION";
                   try{
                        function = con.createFunction(functionName);
                        client = JCO.getClient(con.getConnectionPool());
                                            if (function != null) {
                             Table codes=function.getTableParameterList().getTable("ZOSB");
              int j=codes.getNumRows();  //it did not enter the for loop
                             for(int i=0;i<codes.getNumRows();i++){
                                  Reservation incomingRes1=new InvReservation();
                                  codes.setRow(i);
                                  incomingRes1.setRSNUM(codes.getString("RSNUM"));
                                  incomingRes1.setMATNR(codes.getString("MATNR"));
                                  incomingRes1.setMENGE(codes.getDouble("MENGE"));
                                  incomingRes1.setLGORT(codes.getString("LGORT"));
                                  incomingRes1.setWERKS(codes.getString("WERKS"));
                                  incomingRes1.setSERNR(codes.getString("SERNR"));
                                  incomingRes1.setVBELN(codes.getString("VBELN"));
                                  col.add(incomingRes1);
                                   System.out.println("RSNUM:" +codes.getString("RSNUM") + 't' +
                                        "MATNR:"+ codes.getString("MATNR") + 't' +
                                        "MENGE:" +codes.getDouble("MENGE") + 't' +
                                        "LGORT:" +codes.getString("LGORT") + 't' +
                                        "WERKS:" +codes.getString("WERKS") + 't' +
                                        "SERNR:" +codes.getString("SERNR") + 't' +
                                        "VBELN:" +codes.getString("VBELN"));
                              System.out.println("after set successful");
                              client.execute(function);     
                              int  count= function.getExportParameterList().getFieldCount();
                             JCO.Field ZSUBRCField=function.getExportParameterList().getField("ZSUBRC");
                             JCO.Field ZEMSGField=function.getExportParameterList().getField("ZEMSG");
                              for(int i=0; i<count; i++) {
                                if(ZSUBRCField.getName().equals("ZSUBRC")){
                                       outgoingRes.setZSUBRC(ZSUBRCField.getString()); 
                                  }else if(ZEMSGField.getName().equals("ZEMSG")){
                                       outgoingRes.setZEMSG(ZEMSGField.getString()); 
                             System.out.println(ZSUBRCField.getName() + ":t" + ZSUBRCField.getString());
                             System.out.println(ZEMSGField.getName() + ":t" + ZEMSGField.getString());
                              Table excodes = function.getTableParameterList().getTable("ZOSBMSEG");
                              for(int i=0;i<excodes.getNumRows();i++){
                                   Reservation outgoingRes1 = new InvReservation();
                                   excodes.setRow(i);
                                   outgoingRes1.setRSNUM(excodes.getString("RSNUM"));
                                   outgoingRes1.setMBLNR(excodes.getString("MBLNR"));
                                   outgoingRes1.setMATNR(excodes.getString("MATNR"));                              
                                   outgoingRes1.setMENGE(excodes.getDouble("MENGE"));
                                   outgoingRes1.setSERNR(excodes.getString("SERNR"));
                                   outgoingRes1.setDMBTR(excodes.getDouble("DMBTR"));
                                   outgoingRes1.setZSUBRC(ZSUBRCField.getString());
                                   outgoingRes1.setZEMSG(ZEMSGField.getString());
                                   col.add(outgoingRes1);
                                   System.out.println("RSNUM:" +excodes.getString("RSNUM") + 't' +
                                              "MBLNR:" +excodes.getString("MBLNR") + 't' +
                                        "MATNR:" +excodes.getString("MATNR") + 't' +
                                        "MENGE:" +excodes.getDouble("MENGE")+ 't' +
                                        "SERNR:" +excodes.getString("SERNR") + 't' +
                                        "MENGE:" +excodes.getDouble("DMBTR") + 't' +
                                        "ZSUBRC:" +ZSUBRCField.getString() + 't' +
                                        "ZEMSG:" +ZEMSGField.getString());
                             System.out.println("all ok");
                   }catch(Exception ex){
                        System.out.println("Caught an exception: n" + ex);
                        throw new CustomException(ex);
                   }finally{
                        if (client != null) {
                             System.out.println("Connection Closed");
                             JCO.releaseClient(client);
                   return col;
    everytime , when i debug, i found that it didnot enter the for loop and the j value always equals =0
    int j=codes.getNumRows();
    and always come up with this
    JCO_ERROR_RESOURCE: Trying to access row values in a table which does not have any rows yet
    Result:
    AFTER CREATEFUNCTION:Name:   ZMM_OSB_CONFIRM_RESERVATION
    Input: 
    null
    Output:
    | PARAMETERS 'OUTPUT'
    ZEMSG
    ZSUBRC
    01234567890123456789012345678901234567890123456789
    0   1
    as stated the input is null...i dunno why i cant set the input table parameter
    Message was edited by:
            yzme yzme
    Message was edited by:
            yzme yzme
    Message was edited by:
            yzme yzme

    new code
    public Collection confirmReservation() throws CustomException{
              // TODO Auto-generated method stub
              Reservation outgoingRes = new InvReservation();
              Collection col=new ArrayList();
                   JCO.Function function = null;
                   JCO.Client client = null;
                   String functionName = "ZMM__CONFIRM_RESERVATION";
                   try{
                        function = con.createFunction(functionName);
                        client = JCO.getClient(con.getConnectionPool());
                        System.out.println("AFTER CREATEFUNCTION:" + function );
                        if (function != null) {
                             JCO.ParameterList tabInput = function.getTableParameterList();
                             JCO.Table inputTable = tabInput.getTable("ZOSBIMSEG");
                             inputTable.appendRow();
                             System.out.println("checking table input:" +this.getRSNUM()+"  " +this.getMATNR()+ ""
                                                 +this.getMENGE()+" " +this.getLGORT()+" " +this.getWERKS() +" "
                                                 +this.getSERNR()+" " +this.getVBELN());
                                                      inputTable.setValue(this.getRSNUM(),"RSNUM");
                             inputTable.setValue(this.getMATNR(),"MATNR");
                             inputTable.setValue(this.getMENGE(),"MENGE");
                             inputTable.setValue(this.getLGORT(),"LGORT");
                             inputTable.setValue(this.getWERKS(),"WERKS");
                             inputTable.setValue(this.getSERNR(),"SERNR");
                             inputTable.setValue(this.getVBELN(),"VBELN");
                                                       System.out.println("after set successful");
                              client.execute(function);     
                              int  count= function.getExportParameterList().getFieldCount();
                             JCO.Field ZSUBRCField=function.getExportParameterList().getField("ZSUBRC");
                             JCO.Field ZEMSGField=function.getExportParameterList().getField("ZEMSG");
                              for(int i=0; i<count; i++) {
                                if(ZSUBRCField.getName().equals("ZSUBRC")){
                                       outgoingRes.setZSUBRC(ZSUBRCField.getString()); 
                                  }else if(ZEMSGField.getName().equals("ZEMSG")){
                                       outgoingRes.setZEMSG(ZEMSGField.getString()); 
                             System.out.println(ZSUBRCField.getName() + ":t" + ZSUBRCField.getString());
                             System.out.println(ZEMSGField.getName() + ":t" + ZEMSGField.getString());
                              Table excodes = function.getTableParameterList().getTable("ZOSBMSEG");
                              for(int i=0;i<excodes.getNumRows();i++){
                                   Reservation outgoingRes1 = new InvReservation();
                                   excodes.setRow(i);
                                   //add here
                                   outgoingRes1.setRSNUM(excodes.getString("RSNUM"));
                                   outgoingRes1.setMBLNR(excodes.getString("MBLNR"));
                                   outgoingRes1.setMATNR(excodes.getString("MATNR"));                              
                                   outgoingRes1.setMENGE(excodes.getDouble("MENGE"));
                                   outgoingRes1.setSERNR(excodes.getString("SERNR"));
                                   outgoingRes1.setDMBTR(excodes.getDouble("DMBTR"));
                                   outgoingRes1.setZSUBRC(ZSUBRCField.getString());
                                   outgoingRes1.setZEMSG(ZEMSGField.getString());
                                   //outgoingRes.setMENGE(java.lang.Double.parseDouble(codes.getString()));
                                   col.add(outgoingRes1);
                                   System.out.println("RSNUM:" +excodes.getString("RSNUM") + 't' +
                                              "MBLNR:" +excodes.getString("MBLNR") + 't' +
                                        "MATNR:" +excodes.getString("MATNR") + 't' +
                                        "MENGE:" +excodes.getDouble("MENGE")+ 't' +
                                        "SERNR:" +excodes.getString("SERNR") + 't' +
                                        "MENGE:" +excodes.getDouble("DMBTR") + 't' +
                                        "ZSUBRC:" +ZSUBRCField.getString() + 't' +
                                        "ZEMSG:" +ZEMSGField.getString());
                             System.out.println("all ok");
                   }catch(Exception ex){
                        System.out.println("Caught an exception: n" + ex);
                        throw new CustomException(ex);
                   }finally{
                        if (client != null) {
                             System.out.println("Connection Closed");
                             JCO.releaseClient(client);
                   return col;
    Just to let's you know something here...
    the input parameter is a table structure...so when i execute this.
    Caught an exception:
    java.lang.NullPointerException
    JCO.ParameterList list = function.getImportParameterList();
                              list.setValue(this.getRSNUM(),"RSNUM");
                              list.setValue(this.getMATNR(),"MATNR");
                              list.setValue(this.getMENGE(),"MENGE");
                              list.setValue(this.getLGORT(),"LGORT");
                              list.setValue(this.getWERKS(),"WERKS");
                              list.setValue(this.getSERNR(),"SERNR");
                              list.setValue(this.getVBELN(),"VBELN");
    so i changed to ....
    it get what i want....
    but again the result of the input is still null
         JCO.ParameterList tabInput = function.getTableParameterList();
                             JCO.Table inputTable = tabInput.getTable("ZOSBIMSEG");
                             inputTable.appendRow();
                             System.out.println("checking table input:" +this.getRSNUM()+"  " +this.getMATNR()+ ""
                                                 +this.getMENGE()+" " +this.getLGORT()+" " +this.getWERKS() +" "
                                                 +this.getSERNR()+" " +this.getVBELN());
                                                      inputTable.setValue(this.getRSNUM(),"RSNUM");
                             inputTable.setValue(this.getMATNR(),"MATNR");
                             inputTable.setValue(this.getMENGE(),"MENGE");
                             inputTable.setValue(this.getLGORT(),"LGORT");
                             inputTable.setValue(this.getWERKS(),"WERKS");
                             inputTable.setValue(this.getSERNR(),"SERNR");
                             inputTable.setValue(this.getVBELN(),"VBELN");
    AFTER CREATEFUNCTION:Name:   ZMM_OSB_CONFIRM_RESERVATION
    Input: 
    null
    Output:
    | PARAMETERS 'OUTPUT'
    | ZEMSG                                            | ZSUBRC |
    |01234567890123456789012345678901234567890123456789|   0   1|
    |                                                  |00000000|

  • How to call a function with generic table parameter

    Hi everybody
    I need to call function module RSAR_ODS_API_GET (from BW). It recive an internal table with request ids and should return in E_T_DATA "unstructured" data from the psa and in E_T_RSFIELDTXT the description of the data structure, I guess
    from sap help only thing I have reggarding how to use the function module is :
    "You can call up the function module RSAR_ODS_API_GET with the list of request IDs given by the function module RSSM_API_REQUEST_GET. The function module RSAR_ODS_API_GET no longer recognizes InfoSources on the interface, rather it recognizes the request IDs instead. With the parameter I_T_SELECTIONS, you can restrict reading data records in the PSA table with reference to the fields of the transfer structure. In your program, the selections are filled and transferred to the parameter I_T_SELECTIONS.
    The import parameter causes the function module to output the data records in the parameter E_T_DATA. Data output is unstructured, since the function module RSAR_ODS_API_GET works generically, and therefore does not recognize the specific structure of the PSA. You can find information on the field in the PSA table using the parameter E_T_RSFIELDTXT."
    unfortunately I when running de report bellow, I get a dump which says:
    Function parameter "E_DATA" is unknown
    in the definition of the interface E_DATA has no type, which  means it can recive any table type, right?
    So I have two questions?
    1) How to get the code working
    2) How do I use the parameter E_T_RSFIELDTXT to parse the data returned in E_DATA
    by debuging RSSM_API_REQUEST_GET for this code I found it try to put an internal table with the struct of the database table /BIC/B0000151000 in E_DATA
    Thanks a lot for any help
    rgds
    my test report is:
    REPORT  ZTEST_PSA_API.
    TABLES: /BIC/B0000151000 .
    TYPE-POOLS: RSSM.
    TYPES: BEGIN OF STC_REQ_LINE,
      sign(1),
             option(2),
             low  TYPE rsa_request,
             high TYPE rsa_request,
             END OF STC_REQ_LINE,
      IT_REQUEST TYPE STC_REQ_LINE OCCURS 0.
    DATA: lit_request TYPE RSSM_T_API_REQUEST_GET WITH HEADER LINE,
          lc_system TYPE RSSM_T_API_LOGSYS,
          lit_request1 TYPE IT_REQUEST WITH HEADER LINE.
    DATA: lc_dtarget_name TYPE RSA_ODSNAME,
          lit_meta_data TYPE RSARC_T_RSFIELDTXT.
    DATA: lt_psa_data LIKE /BIC/B0000151000 OCCURS 0.
    CALL FUNCTION 'RSSM_API_REQUEST_GET'
      EXPORTING
        I_SOURCE    = '2LIS_13_VDITM'
        I_TYP       = 'D'
        I_DATEFROM  = '20060627'
      IMPORTING
        E_T_REQUEST = lit_request[]
        E_T_LOGSYS  = lc_system
        EXCEPTIONS  = 1.
    READ TABLE lit_request.
    lit_request1-sign = 'I'.
    lit_request1-option = 'EQ'.
    lit_request1-low = lit_request-request .
    APPEND lit_request1 .
    break-point .
    CALL FUNCTION 'RSAR_ODS_API_GET'
      EXPORTING
        I_T_REQUEST = lit_request1[]
      IMPORTING
        E_ODSNAME = lc_dtarget_name
        E_T_RSFIELDTXT = lit_meta_data
      TABLES
        E_DATA = lt_psa_data
      EXCEPTIONS
        NO_DATA_FOUND = 1
        PARAMETER_FAILURE = 2
        REQUEST_NOT_AVAILABLE = 3
        NO_REQUEST_FOUND = 4
        NO_FIELDS_TO_ODS = 5
        NO_ODS_FOUND = 6
        PACKAGE_LOCKED_BY_LOADING = 7 .

    Try to pass table parameter without "[]" :
    CALL FUNCTION 'RSAR_ODS_API_GET'
    EXPORTING
    I_T_REQUEST = lit_request1
    IMPORTING
    E_ODSNAME = lc_dtarget_name
    E_T_RSFIELDTXT = lit_meta_data
    TABLES
    E_DATA = lt_psa_data

  • Passing an internal table WITH HEADER LINE to abap object

    Hi. In another thread, it was explained how to pass an internal table to an abap object method. Is it possible to pass an internal table that has a header line, and RETAIN the header line once the table has been passed?
    My problem is, that I can pass the table, update it, but the read buffer is not populated when returning from the object's method. This is the result of being able to pass a STANDARD TABLE type, but not a STANDARD TABLE WITH HEADER LINE.
    This means that I have to read the table into a work area instead of doing a READ TABLE LKNA1 within the method, which is what I need to do.
    Thanks.

    Please check this sample program, notice that it is modifing the internal table and passing it back modified as well as passing the "work area" or "header line" back thru the exporting parameter.
    report zrich_0001.
    *       CLASS lcl_app DEFINITION
    class lcl_app definition.
      public section.
        types: t_t001 type table of t001.
        class-data: it001 type table of t001.
        class-data: xt001 like line of it001.
        class-methods: change_table
                                    exporting ex_wt001 type t001
                                    changing im_t001 type t_t001.
    endclass.
    data: w_t001 type t001.
    data: a_t001 type table of t001 with header line.
    start-of-selection.
      select * into table a_t001 from t001.
      call method lcl_app=>change_table
                 importing
                     ex_wt001 = w_t001
                 changing
                     im_t001  = a_t001[] .
      check sy-subrc  = 0.
    *       CLASS lcl_app IMPLEMENTATION
    class lcl_app implementation.
      method change_table.
        loop at im_t001 into xt001.
          concatenate xt001-butxt 'Changed'
               into xt001-butxt separated by space.
          modify im_t001 from xt001.
        endloop.
        ex_wt001 = xt001.
      endmethod.
    endclass.
    Regards,
    Rich Heilman

  • BADI cant use an internal table with header line

    hi,
         In BADI, we cant use an internal table with header line, and I am calling a function module which requires internal table as import parameter, now, the table I am passing is without a header line, So how to solve this problem ?

    You can use a type and then create an internal table of that type.
    types :
    begin of t_<example>
    *field list
    end of t_<example>
    data :
    gt_<table> type standard table of t_<example>
    pass this to the FM

  • TABLES parameter obsolete, how to solve this?

    Hi,
    I am trying to port a function module from a CRM 4 to a CRM 5 system, and the original module had a TABLES parameter. Unfortunately, the CRM 5 system will not allow me to add a TABLES parameter (they have become obsolete).
    The problem remains that I need to export/change a table full of data, and have not yet figured a way to do this, since (at least when I tried it) I can add EXPORT or CHANGING parameters with a type of the table, but they will be added as a structure of that type.
    Any idea?
    Thanks
    Thomas

    Hi Thomas,
    What kind of a problem are you facing..? I was able to pass an internal table as an exporting parameter to a Functoin Module.
    I tried passing some values stored in an internal table used in an FM to a program.
    Following steps are to be followed.
    1) In SE11, create a table type for a table (I created a table type of KNA1 and its name was ztabtype).
    2) In the EXPORT tab of the FM, specify the parameter of type ztabtype.
    my_tab  TYPE ztabtype 
    3) In the FM, I gave some values to the internal table my_tab.
    4) In the main program, I called the function module, whose name was ZSP_FMOD .
    CALL FUNCTION 'ZSP_FMOD'
    IMPORTING
    MY_TAB = ITAB[].
    where ITAB declaration was as follows.
    data: itab type table of kna1 with header line.
    5) I got the values of internal table by using LOOP....ENDLOOP statement.
    Hope this answer satisfies your query.
    If so, close the thread by awarding points to the useful answers.
    Regards,
    SP.

  • Call same RFC from Web dynpro twice (table parameter passing)

    We have one table on our Iview bind to RFC A output table. We execute the RFC A with input parameters (p1=val1, p2=val2) and the data (task name and chkbox field) gets displayed on Iview table.
    The user will click a select deselect all checkbox to select all rows of the table.
    We want to execute SAME RFC A with input parameters (p1=val3, p2=val4) by passing the Iview table for processing. Please suggest the way to do this.

    Hi Sanjay,
    I am not sure about your requirement. I assume you need to call the same RFC twice, the first time with some simple parameters & the second time with a table parameter. Is this the case? If so:
    You needn't switch data between the contexts. You simply need to check if the RFC is being called when the WD table has some data. If so, add the table parameter to the RFC Input object. Let your WD table be bound to a node 'TableNode' having two attributes - 'task' and 'chk' (chk of type 'boolean'). I assume you need to add the row only if the checkbox has been selected.
    Assuming that your BAPI/RFC uses a table ‘MyTable’ of some type 'ZTAB' and that your RFC call is being done from your view:
    ZTAB table;
    IPrivate<your view>.ITableNodeElement elmt;
    <i>// create an instance of the Input class;</i>
    <BAPI_name>_Input input = new <BAPI_name>_Input ()
    <i>// Populating the RFC Object for the first time call
    i.e when the table node is empty</i>
    if(wdContext.nodeTableNode.size()==0)
    input.setParam1(<some default value>);
    input.setParamN(<some default value>);
    else
    for(int i=0;i<wdContext.nodeTableNode.size();i++)
    elmt = wdContext.nodeTableNode().getTableNodeElementAt(i);
    if(elmt.getChk())
    table = new ZTAB();
    <i>//if you do not know table type of 'MyTable’ , check the function input.add<MyTable> (<table type>)</i>
    table.set<property1>(elmt.getTask());
    <i>// If you need to add more parameters :</i>
    table.set<propertyN>(<your-value>);
    input.add<MyTable>(table);
    wdcontext.node<BAPI_name>_Input().bind(input);
    <i>Now execute the BAPI using the following line</i>
    wdContext.current<BAPI_Name>_InputElement().modelObject().execute();
    wdContext.nodeOutput.invalidate()
    <i>// Refreshes the value in the output node</i>
    Hope this helps,
    Best Regards,
    Nibu.

  • Which all tables suffice all line item GL data requirements

    Please clarify this requirement for Line Item Data from  New GL. my client BMW Inc have configured  New GL in ECC 6.0  if i pull all the records to BW from FAGLFLEXA (Line Item Table) is that sufficient to meet the <b>all line item GL data</b> or is there any other tables missing that also shall be combined to bring the Line item GL  data. Please help me for this if u can check with any of your friends in FICO.  
    2. I have seen that BSEG AND BKPF are used earlier in old FI  versions so what is there now in New GL ECC 6.0 that will suffice for these BSEG AND BKPF  or still i have to pull records by using these tables. for GL Line Item Data.
    If you can help me to give the short  overview of  New GL posting process it would be great.
    Thanks
    Regards
    Soniya Kapoor

    Hi Soniya,
    FAGLFLEXA & FAGLFLEXT would contain all FI line item
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/a8/e26840b151181ce10000000a1550b0/content.htm
    Pls assign points as way to say thanks

  • How to draw horizontal line at the end of table for multiple line items

    Dear Experts,
                       Pls can anyone help me how to draw horizontal line at the end of table for multiple line items . kindly help me regarding this
    Thanks
    Ramesh Manoharan

    Hi
       I tried as per your logic but it is not solving my problem .  when i am gone to table painter it is showing line type 1 and line type 2
      is below format.. if u see here line type 1 bottom line and line type 2 top line both are same..  so how to avoid this ?
                              line type 1
                             line type 2

  • How to pass the JCO Table and Structure in a collection List to frontEnd

    hi,
    I have a BAPI which is returns me a Table and a structure. As i have used JCO I will receive it in JCO Table and JCO Structure. Now the question is that how I should pass both these of these using a collection to the frontend for displaying the data from it.
    Thanks' & Regards,
    Samir

    Hi Samir,
    As you are trying to pass the Table and the Structure in the form of collection to the JSP page, you can create a javabean with the structure similar to that of the table/Structure.
    Lets assume you have a table called Employee with Emp_Name, Emp_Age, Emp_Sal as three columns, create a java class by name Employee which implements Serializable and attributes as Emp_Name, Emp_Age and Emp_Sal. Generate the setters and getters for the same. In your EJB code, create an instance of this Employee class and set the attributes and save it in a HashMap in the form of key value pair, Value being your Employee class instance and key be your Employee Name. Return the HashMap in your EJB code.
    Use the HashMap in your JSP. Get the Iterator for the HashMap and Loop through the keys to get the values.
    Hope this helps.
    Regards,
    Rekha Malavathu

  • Passing table parameter from dynpro for java to sap r/3

    I am sending table parameter from WebDynpro to sap r/3,but the table is not populating.

    Hi,
    In 7.3:
    // models
                RFCModel1 modeloGral = new RFCModel1();
                Zfmfi_Certificado_Ret_Pdf_Input modeloRfc =                          wdContext.currentZfmfi_Certificado_Ret_Pdf_InputElement().modelObject();
                // clean
                if(modeloRfc.getIt_Tipo_Ret_Pobl()!=null && modeloRfc.getIt_Tipo_Ret_Pobl().size()>0){
                               modeloRfc.getIt_Tipo_Ret_Pobl().removeAll(modeloRfc.getIt_Tipo_Ret_Pobl());
                //fill
                IEt_RetencionesElement retElem;
                int cant = wdContext.nodeEt_Retenciones().size();
                for(int i=0; i<cant; i++){
                   retElem = wdContext.nodeEt_Retenciones().getEt_RetencionesElementAt(i);
                   Zfie_Tipo_Retencion_Poblacion retencion = new                                                                            Zfie_Tipo_Retencion_Poblacion(modeloGral);
                                    retencion.setTipo_Ret(retElem.getTipo_Ret());
                                    modeloRfc.addIt_Tipo_Ret_Pobl(retencion);

  • How to create an internal table with header line in smartforms

    Hello Guys,
    I need to append the data in my internal table in smartforms by the problem is an error occurred "a table without header line  and therefore no component called tdline"
    i already declared the data under types declaration tab
    types : begin of ts_tline,
             TDFORMAT type tdformat,
             tdline type tdline,
            end of ts_tline.
    types : it_tline type table of ts_tline.
    and declare these in global data
    WA_TLINE type TS_TLINE
    XT_TLINE type IT_TLINE
    my syntax in program lines :
      LOOP AT  gy_lines INTO WA_PROJ.
        SPLIT wa_proj AT  cl_abap_char_utilities=>cr_lf
           INTO table IT_SPLIT.
        LOOP AT IT_SPLIT.
          MOVE it_split-commentext TO xt_TLINE-tdline.
    an error occured at this part ****
         append xt_TLINE.
        ENDLOOP.
      ENDLOOP.
    what is wrong with my code..it cannot append data to xt_tline.
    Please help.Will reward points
    Thanks in advance
    aVaDuDz

    check this link
    this will help u......
    http://www.****************/Tutorials/Smartforms/SFMain.htm
    reward IF..........
    regards
    Anbu

  • Additional table in MA line item

    All,
    We have a requirement to add an additional table in the line items / line items terms of a master agreement.
    The table should have a condition type, currency and vendor fields.
    I see that the line item cannot be extended.
    I cannot use the line item specifications because of the multiple fields needed (not just an attribute and its value).
    Is there a way I can achieve this?
    Regards,
    Subhasini

    Hi
    You can create a new collection for line items hiding the standard line item collection wherein you can modify the fields as desired.
    Regards
    Mudit Saini

Maybe you are looking for

  • Front end options with Oracle DB

    I have a customer who needs a highly reliable, highly available oracle database. From the DB point of view this is easy, but in the past we've used oracle Forms to give access to the DB to the users. Unfortunately, due to its web-deployed nature, 9iA

  • Creating a recipe book app

    Hey all! I'm putting together a recipe book for my mum but wanted to give it to her as an app on her phone rather than in print. Looking into it, it seems creating an app to just put on one person's phone isn't as straight forward as I'd hoped so I'm

  • How to load the pre-built dashboards?

    Hi all, I am experimenting with OBIEE with BI APPS and DAC on a Oracle 11g database. I managed to do a complete ETL run in the DAC from a Peoplesoft HCM environment. With the HR Workforce module, so that is loaded in to the Oracle database. I have co

  • DVD menu pixelated

    Sorry this is more of a DVD Studio Pro question but I seem to get good responses on this forum so thought I'd ask this one here aswell. I've created a DVD, Exported from FCP 7, converted in Compressor and then made in DVD Studio Pro. I made an SD DVD

  • How to implement PHP code in Edge

    All- I have a site where I need to implement php on a button for a redirect How do i do this in edge? `Z