COde changes using BDc ?

Hi All,
         Is it possible to make changes to a code  using BDC recording.. ? If so , how.. I tried doing it, but it comes to the point of opening the program in change mode, but doesnt make any changes in it.. Is it possible in the first place if we have to make same changes in many programs with a static code??
Thanks,
Vasuki

Hi,
For changing programs dynamically use
READ REPORT and INSERT REPORT statements
See the examples in the documentation of the statements
Regards

Similar Messages

  • Problem during uploading data Using BDC

    While I'm trying to upload data for T.Code J1IS using BDC, Value for the field  Net.***.value ( J_1IASSVAL-J_1IVALNDP) is not getting populated on the screen.
    Pls help.

    Hi,
    This is a Currency Field so you need to pass this to a Char field first and then pass to BDCTAB-FVAL.
    " This is a common problem with BDC with other data types even with Date  and Quantity and Numeric types
    Please note while passing values to BDCTAB all the values should be passed in CHAR form only
    Cheerz
    Ram.

  • Change transaction using BDC-problem for large number of lines on screen

    Hi All,
    I am developing BAPI (using BDC) which creates quality notification in SAP which is entered via front end web application. Structure p_qmsm contain 3 lines of task in notification. The code is as given below. To avoid problem of large no of lines on screen,code lines starting with * is used. This actually for pagedown after entering every 2 lines and creates new line. so that 2 lines always push up on screen and there will not be problem for creating large no of lines on screen
    perform bdc_dynpro using 'SAPLIQS0' '7200'.
    perform bdc_field using 'BDC_OKCODE' '=10\TAB11'.
    LOOP AT p_qmsm INTO wa_qmsm.
    *IF wa_qmsm_cntr > 2.
           wa_qmsm_cntr = 2.
           perform bdc_dynpro  using 'SAPLIQS0'                   '7204'.
           perform bdc_field   using 'BDC_OKCODE'                 '=PEND'.
    ENDIF.
    perform bdc_dynpro using 'SAPLIQS0' '7204'.
    perform bdc_field using 'BDC_OKCODE' '/00'.
    CONCATENATE 'VIQMSM-QSMNUM(' wa_qmsm_cntr ')' INTO wm_qmsm_qsmnum.
    CONCATENATE 'VIQMSM-MNGRP(' wa_qmsm_cntr ')' INTO wm_qmsm_mngrp.
    CONCATENATE 'VIQMSM-MNCOD(' wa_qmsm_cntr ')' INTO wm_qmsm_mncod.
    CONCATENATE 'VIQMSM-MATXT(' wa_qmsm_cntr ')' INTO wm_qmsm_matxt.
    perform bdc_field using wm_qmsm_qsmnum wa_qmsm-qsmnum.
    perform bdc_field using wm_qmsm_mngrp wa_qmsm-mngrp.
    perform bdc_field using wm_qmsm_mncod wa_qmsm-mncod.
    perform bdc_field using wm_qmsm_matxt wa_qmsm-matxt.
    wa_qmsm_cntr = wa_qmsm_cntr + 01.
    ENDLOOP.
    CALL TRANSACTION 'IQS2' USING wt_bdc
    MODE 'N' UPDATE 'A'  MESSAGES INTO P_MESSTAB.
    The same code is used in modify mode also. web application is sending all 3 lines in modify mode even if single line is modified. It is already decided to send all rows back from web application to SAP in same sequence. It is working fine if i comment 5 lines which is starting with *. But in modify mode, how can i ensure that correct row is modified? and how can i achieve problem of large no of lines on screen?Please suggest?

    Hi yogesh,
    how can i ensure that correct row is modified?
    1. For this we need to know two things ;
       a) the database table in which the entries are already stored
       b) the sequence in which they are displayed in the transaction.
    2. So before changing any line, we need to compare (the primary key values / important values)
       a) as per the database table and as per the incoming data from web application (using bapi)
      b) if the match is ok, it means that particular row was not modified, else modified.
    how can i achieve problem of large no of lines on screen?
    1. For this I am  not sure about the transaction and its screen. Manytimes for appending row on the screen,
      there is a PLUS + button on the grid toolbar. So for every entry, (inspite of some empty/filled rows already visible on the screen), we should use the + button, and this new row always appears on the top i.e. row number 1.
    hope this helps.
    regards,
    amit m.

  • How to change the property of the fields on screen while using BDC

    Hello,
    I am working on a program where I am using BDC call transaction method to update vendor master data using Fk02. I need to call the transaction in mode 'E'. As per the requirement I don't want user to see all the fields available on that screen. For example on Payment transactions screen I only want user to see fields like Bank key, bank number in the editable mode and rest all the fields on the screen should be greyed out.
    Can you please help with how can i do this.

    Hi,
    I think you can achieve this using transaction variant. Create a transaction variant using SHD0 and grey out the fields which you want. After that in BDC, instead of calling FK02, call the transaction variant you created. you may have to change the BDC recording a bit, but i think you can give it a try?
    Do let me know if it helps you.
    Regards,
    Raghav.

  • Download Data From Excel - VBA Code to SAP Using BDC

    Hi ,
    I am Sudhir Dure, working with Satyam Computers.
    I need help on the below query:
    I have an excel file which download data from Excel to SAP using RFC function & with the help of VBA interface.
    In this VBA code I have used BDC recording of SAP Transaction KE21N to post data into SAP.
    Now I am facing problem to find sub screen (tab page screen ) in SAP from VBA code .
    How to pass BDC Subscreen details from VBA code to SAP using below code?
    BDCTABLE.Rows.Add
    BDCTABLE.Cell(J, "PROGRAM") = PROGRAMNAME
    BDCTABLE.Cell(J, "DYNPRO") = "0200"
    BDCTABLE.Cell(J, "DYNBEGIN") = "X"
    BDCTABLE.Cell(J, "FNAM") = "BDC_OKCODE"
    BDCTABLE.Cell(J, "FVAL") = "=NEXT"
    Thanks,
    Sudhir Dure
    9972097464

    can anyone tell me how to get the PurchaseOrder number and item quantity from the Salesorder...? what are the fields here as given below..??
    For Each oItem In oSalesOrder.items
    wsTemplate.Range(cols(3) & Indexv).Value = oItem.material.material
    'wsTemplate.Range(cols(4) & Indexv).Value = ' I need item quantity here ????
    wsTemplate.Range(cols(1) & Indexv).Value = sapSoNumber
    wsTemplate.Range(cols(2) & Indexv).Value = ' I need purchase order number here>???
    Indexv = (Indexv + 1)
    Next
    reply fast. please .. thanks

  • To change the classification data for a material using BDC

    I have to update clssification data for material in MM02 using BDC so when i record the transaction MM02 using SHDB i am not able to see the value assignment window which i a able to see when i am changing using MM02 transaction directly. So can anyone have an idea regarding this ?
         I have even tried updating classification data using a BAPI BAPI_OBJCL_CHANGE but i am not getting desired results....can anyone suggest me what are the parameters need to be passed to the BAPI. Thanks in advance for your help....

    Hi Nagarjuna,
                       <b>BAPI_OBJCL_CHANGE</b>  :  This BAPI changes an existing classification, or creates the classification if it does not yet exist. The classification is defined by the required entry fields for the object key (ObjectKey), object table (ObjectTable), class name (AllocDetail-Class_Num), and class type (AllocDetail-Class_Type). The default value for the optional date field (KeyDate) is the system date, on which all classifications become valid. The new characteristics and/or values are transferred to different tables according to data type. Numeric, time, and date characteristics are transferred to table AllocValuesNumNew, character and boolean characteristics are transferred to table AllocValuesCharNew, and currency characteristics are transferred to AllocValuesCurrNew.
    The object key (OBJECTKEY) must be transferred in internal format. This means before conversion exits. For example, a material number must be transferred with leading zeros.
    If the BAPI runs without errors, table Return contains no messages of type "E".
    Assignment created:  message CL735
    Assignment changed:  message CL737
    Assignment not changed:  message CL738
    This BAPI only changes the parameters of an existing assignment (or creates a whole new assignment), but it does not delete the assignment to a class and replace it with an assignment to another class. If you want to reassign an object, the old assignments must be read with BAPI_OBJCL_GETCLASSES and deleted with BAPI_OBJCL_DELETE, then the new assignments must be created with BAPI_OBJCL_CREATE.
    The information transferred by this BAPI replaces all old information. An empty field means "delete entry!", not "no change".
    This BAPI does not change the database. To change the database, call BAPI BapiService.TransactionCommit afterwards.
    You can only use this BAPI for objects that are not classes!
    This BAPI only processes assigned values for classification - not for configuration.
    Reward points if helpful.
    Regards,
    Hemant

  • Purchase Info Record Change (ME12) using BDC

    Hi All,
    We are trying to change the Purchase Info Records using BDCs. We have about 20 condition records to change. Not all condition records change all the time. How can we use page control to identify the particular condition records that we want to change.
    Thanks
    Hari

    Hi Krishna,
    The BDC that we are trying to build will have the changes. For ex: When we created the info record (using a BDC) we had 15 condition records. This is coming from an external source.
    Now, there has been a change in the pricing (outside the system). This is communicated from the external system. We need to pinpoint which condition types to update in SAP, based on the values in the external system through the BDC.
    Regards
    Hari

  • How to overcome view changes in bdc session method  using recording ?

    how to overcome view changes in bdc session method  using recording ?
    ex-for mm01 in recording if i selected views basic data1 and basic data2.
    i seheduleded for background for after 3 days .
    if any body changes views by selecting other views also.
    how to overcome this with out programming ?
    is there any settings ?

    Hi,
    I am attaching few threads.Hope these will help you.
    If there are any error records in session, all those error records will get poulated in log .SM35 and after the session is completed , u can see error records which can be corrected and reprocessed again
    We have the structures BDCLD and BDCLM, which will capture the log details inthe session. Firstly, sesssion should be processed. After that log will be created. Then caputure the information into an internal table using BDCLM and BDCLD.
    and refer the link.
    error correction in bdc session
    regards
    Madhu

  • What Message type and Process Code to use for Purchase Order Change in 4.6C

    I like to implement in SAP R/3 4.6C a scenario for Purchase Order Change, via inbound IDoc.
    I have been searching, but could not find what Message Type, Idoc Basic Type and Process Code to use.
    I can not imagine this functionality does not exist in 4.6C.
    Any suggestions for my problem are welcome.

    Hello,
    In this case you should use the message PORDCH and BAPI method BAPI_PO_CHANGE but only exist as of release 4.7.
    Function module    BAPI_IDOC_INPUT1
    Idoc Type              PORDCH01
    Message Type      PORDCH
    So check carefully the following OSS notes:
      [Notes 589066 - BAPI_PO_CHANGE: Incorrect account assignment to network |https://service.sap.com/sap/support/notes/589066] (not be fooled by the description)
    [ Notes 197958 - BAPIs for purchase orders - Missing Functions|https://service.sap.com/sap/support/notes/197958]
    Regards,
    Andrea
    Edited by: Andrea Olivieri on Sep 3, 2009 10:17 AM

  • Creating zone level price change using link codes RMS

    Hi,
    In the RPM module of RMS(Oracle Retail Merchandising System 12), What is the purpose of creating zonel level price change using link codes when it could be done without link codes?. Is there any difference between the two?.
    Thanks in advance.

    Questions about how to do something in an IDE should be directed to that IDE's forums, etc. If the question is about Java code or errors, then post the code and questions here.

  • OIM 10g Changing used Create User Response Code Status

    Hello OIM Experts,
    Using OIM 10g - target system - OID.
    During my implementation, i realized that - there are possibility of user existence during OID provisioning. It should be acceptable.
    Solution : Create User : Response Code :
    USER_ALREADY_EXIST - Set the 'status' to 'C' (instead of 'R').
    However, when i tried doing it... that it is not allowing me - "RESPONSE IS ALREADY USED BY 1 OR MORE TASKS'. Everyone know, this is the limitation with OIM.
    Then i'm planning of setting the status directly into the database without going through the validations. I'm not able to get the exact database table name. Please let me know. [DB TABLE/COLUMN NAME ?? ]
    Any other alternative ?
    Thanks,

    You can change the task status to C for "User already exists" response after clearing the R status for existing task instances in the table.
    Use the following steps:
    - Please take OIM backup
    - Use the task name to look up the task ID present in the MIL table. Note the value of the task definition key (mil_key)
    E.g. select * from mil where mil_name like 'Create%' [Let us say this returns mil_key as 335]
    - Find out the task response key for the response that you intend to change using mil_key and the response code name
    E.g. select * from rsc where mil_key=335 [Lookup the response code that you want to change. Let us say this returns 1638]
    - Use the mil_key value to find task instances corresponding to this task.
    E.g. select * from osi where mil_key=335
    - Update the response code for tasks in osi.
    update osi set rsc_key=1624 where rsc_key in (1638)
    commit
    I am sure you will figure it out.
    All the best,
    Chetan

  • XML queries... Change the code from using Oracle db into MS SQL

    Hi, I am a new begginer in this field. I came accross to an article that focuses in Oracle's XSU approach.
    Currently, i am trying to convert the java code from using Oracle db to MSSQL db. The code has shown below:
    import javax.naming.*;
    import javax.sql.*;
    import java.sql.*;
    import oracle.xml.sql.query.*;
    public class testxml
         public static void main(String args[]) throws SQLException, NamingException
         String tabName = "emp";
         int maxRows = 3;
         Context ctx = new InitialContext ();
         DataSource ds = (DataSource) ctx.lookup ("MyOra");
         Connection conn = ds.getConnection ();
    OracleXMLQuery qu = new OracleXMLQuery (
    conn, "select EMPNO, ENAME from " + tabName);
    qu.setMaxRows (maxRows);
    qu.setRowsetTag ("EMPLOYERS");
    qu.setRowTag ("PERSON");
    String xmlString = qu.getXMLString();
    System.out.println (xmlString);
    conn.close ();
    Currently, i am having difficulties to change the "bold" area that uses Oracle into MS SQL as my current application is using MS SQL as the database.
    Please help and need more advices from all of you. Thank You

    I resolved this issue myself. For the answer please message me.

  • Sample code creating BOM for CS01 using BDC recording.

    Hi,
    Can anyone give me sample coding creating BOM for CS01 using BDC recording.
    I want to display the flat file records,under one (Alternative BOM).
    I m already working on it,but i m getting one A.BOM for each records.
    [       Header data          ]    [      Item Data               ]
    SOFTDRINKS   WIND   1       13            1     ml     l
    SOFTDRINKS   WIND   1       11            1     ml     l
    SOFTDRINKS   WIND   1       15        1     ml     l
    SOFTDRINKS   WIND   1       14       1     ml     l
    Code:
    report ZBOM
           no standard page heading line-size 255.
    *include bdcrecx1.
    *DATA: BEGIN OF bdc OCCURS 0,
          matnr(18),
          werks(4),
          stlan(1),
         END OF BDC.
    *DATA: BEGIN OF BDC1 OCCURS 0,
          idnrk(18),
          MENGE(18),
          MEINS(3),
          postp(1),
          posnr(4),
         END OF bdc1.
    DATA: BEGIN OF BDCDATA OCCURS 0,
             matnr(18),
             werks(4),
             stlan(1),
             idnrk(18),
             MENGE(18),
             MEINS(3),
             postp(1),
             posnr(4),
          END OF BDCDATA.
    data  ibdcdata type standard table of bdcdata WITH  header line.
    *start-of-selection.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = 'C:\Documents and Settings\dilipkumar.b\Desktop\soft.txt'
       FILETYPE                       = 'ASC'
       HAS_FIELD_SEPARATOR            = ','
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            =
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                     =
      HEADER                         =
      TABLES
        DATA_TAB                      = BDCDATA
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *perform open_group.
    loop at bdcdata.
    perform bdc_dynpro      using 'SAPLCSDI' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29N-STLAN'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RC29N-MATNR'
                                  'SOFTDRINKS'.
    perform bdc_field       using 'RC29N-WERKS'
                                  'WIND'.
    perform bdc_field       using 'RC29N-STLAN'
                                  '1'.
    perform bdc_field       using 'RC29N-DATUV'
                                  '16.09.2008'.
    perform bdc_dynpro      using 'SAPLCSDI' '0110'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RC29K-BMENG'
                                  '1'.
    perform bdc_field       using 'RC29K-STLST'
                                  '1'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29K-EXSTL'.
    perform bdc_dynpro      using 'SAPLCSDI' '0111'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29K-LABOR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPLCSDI' '0140'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29P-POSTP(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=FCBU'.
    perform bdc_field       using 'RC29P-IDNRK(001)'
                                  BDCDATA-IDNRK.
    perform bdc_field       using 'RC29P-MENGE(001)'
                                  BDCDATA-MENGE.
    perform bdc_field       using 'RC29P-MEINS(001)'
                                  BDCDATA-MEINS.
    perform bdc_field       using 'RC29P-POSTP(001)'
                                  BDCDATA-POSTP.
    perform bdc_dynpro      using 'SAPLCSDI' '0130'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29P-POSNR'.
    perform bdc_field       using 'RC29P-POSNR'
                                   BDCDATA-POSNR.            "'0010'.
    perform bdc_field       using 'RC29P-IDNRK'
                                  BDCDATA-IDNRK.             "'15'.
    perform bdc_field       using 'RC29P-MENGE'
                                  BDCDATA-MENGE.             "'1'.
    perform bdc_field       using 'RC29P-MEINS'
                                  BDCDATA-MEINS.             "'ml'.
    perform bdc_dynpro      using 'SAPLCSDI' '0131'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29P-POTX1'.
    perform bdc_field       using 'RC29P-SANKA'
                                  'X'.
    *perform bdc_transaction using 'CS01'.
    *perform close_group.
    CALL TRANSACTION 'CS01' USING IBDCDATA MODE 'A' UPDATE 'S'.
    REFRESH IBDCDATA.
    clear ibdcdata.
    endloop.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR iBDCDATA.
      iBDCDATA-PROGRAM  = PROGRAM.
      iBDCDATA-DYNPRO   = DYNPRO.
      iBDCDATA-DYNBEGIN = 'X'.
      APPEND ibDCDATA .
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
    IF FVAL <> NODATA.
        CLEAR iBDCDATA.
        iBDCDATA-FNAM = FNAM.
        iBDCDATA-FVAL = FVAL.
        APPEND iBDCDATA .
    ENDIF.
    ENDFORM.

    Hi,
          I tried with the sample code but i m not getting the required result.
        Can anyone give some other soln.
    Code:
    REPORT  ZBOM2
    no standard page heading line-size 255.
    *include bdcrecx1.
    TYPES: BEGIN OF TY_FLAT,      " structure for flat file
            STRING(200),
           END OF TY_FLAT.
    TYPES: BEGIN OF TY_HEAD,     " structure for header file
            IND(2) TYPE N,
            MATNR(18),
            WERKS(4),
            STLAN(1),
           END OF TY_HEAD.
    TYPES : BEGIN OF TY_ITEM,    "structure for item file
              IND(2) TYPE N,
              POSTP(1),
              IDNRK(18),
              MENGE(13),
              meins(3),
            END OF TY_ITEM.
    TYPES :BEGIN OF TY_FLAT1,   " structure for final file
             MATNR(18),
             WERKS(4),
             STLAN(1),
             posnr(4),
             POSTP(1),
             IDNRK(18),
             MENGE(13),
             meins(3),
           END OF TY_FLAT1.
    INTERNAL TABLE DECLERATIONS:
    DATA : T_FLAT TYPE STANDARD TABLE OF TY_FLAT,
           T_FLAT1 TYPE STANDARD TABLE OF TY_FLAT1,
           T_HEAD TYPE STANDARD TABLE OF TY_HEAD,
           T_ITEM TYPE STANDARD TABLE OF TY_ITEM,
           T_BDCDATA TYPE STANDARD TABLE OF BDCDATA with header line ,
           T_BDCMSG TYPE STANDARD TABLE OF BDCMSGCOLL.
    WORK AREA DECLERATIONS:
    DATA : ST_FLAT TYPE TY_FLAT,
           ST_FLAT1 TYPE TY_FLAT1,
           ST_HEAD TYPE TY_HEAD,
           ST_ITEM TYPE TY_ITEM,
           ST_BDCDATA TYPE BDCDATA,
           ST_BDCMSG TYPE BDCMSGCOLL.
    VARIABLES:
    DATA : FNAM TYPE LOCALFILE,           "rlgrap-filename,
           FTYP TYPE RLGRAP-FILETYPE,
           LF_FNAM TYPE STRING.
    DATA : V_IND(2) TYPE N,                " value 1,
           V_FLD(20),
           V_NO(2) TYPE N.
    *start-of-selection.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = 'C:\Documents and Settings\dilipkumar.b\Desktop\soft.txt'
       FILETYPE                       = 'ASC'
       HAS_FIELD_SEPARATOR            = ','
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            =
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                     =
      HEADER                         =
      TABLES
        DATA_TAB                      = T_FLAT
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT T_FLAT INTO ST_FLAT.
    SPLIT ST_FLAT AT CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
    INTO ST_FLAT1-MATNR ST_FLAT1-WERKS
    ST_FLAT1-STLAN ST_FLAT1-POSTP
    ST_FLAT1-IDNRK ST_FLAT1-MENGE ST_FLAT1-MEINS.
    APPEND ST_FLAT1 TO T_FLAT1.
    CLEAR ST_FLAT1.
    ENDLOOP.
    SORT T_FLAT1 BY MATNR WERKS STLAN POSTP IDNRK MENGE MEINS.
    LOOP AT T_FLAT1 INTO ST_FLAT1.
    MOVE :
    ST_FLAT1-MATNR TO ST_HEAD-MATNR,
    ST_FLAT1-WERKS TO ST_HEAD-WERKS,
    ST_FLAT1-STLAN TO ST_HEAD-STLAN,
    ST_FLAT1-POSTP TO ST_ITEM-POSTP,
    ST_FLAT1-IDNRK TO ST_ITEM-IDNRK,
    ST_FLAT1-MENGE TO ST_ITEM-MENGE,
    ST_FLAT1-MENGE TO ST_ITEM-MEINS.
    AT new STLAN.
      ADD 1 TO V_IND.
    ENDAT.
    MOVE V_IND TO ST_HEAD-IND.
    MOVE V_IND TO ST_ITEM-IND.
    APPEND ST_HEAD TO T_HEAD.
    APPEND ST_ITEM TO T_ITEM.
    CLEAR ST_HEAD.
    CLEAR ST_ITEM.
    ENDLOOP.
    CLEAR V_IND.
    *perform open_group.
    SORT T_ITEM BY IND.
    SORT T_HEAD BY IND.
    DELETE ADJACENT DUPLICATES FROM T_HEAD.
    LOOP AT T_HEAD INTO ST_HEAD.
    perform bdc_dynpro      using 'SAPLCSDI' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29N-STLAN'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RC29N-MATNR'
                                  ST_HEAD-MATNR.
    perform bdc_field       using 'RC29N-WERKS'
                                  ST_HEAD-WERKS.
    perform bdc_field       using 'RC29N-STLAN'
                                  ST_HEAD-STLAN.
    perform bdc_field       using 'RC29N-DATUV'
                                  '16.09.2008'.
    perform bdc_dynpro      using 'SAPLCSDI' '0110'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RC29K-BMENG'
                                  '1'.
    perform bdc_field       using 'RC29K-STLST'
                                  '1'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29K-EXSTL'.
    perform bdc_dynpro      using 'SAPLCSDI' '0111'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29K-LABOR'.
    LOOP AT T_ITEM INTO ST_ITEM WHERE IND = ST_HEAD-IND.
    ADD 1 TO V_NO.
    perform bdc_dynpro      using 'SAPLCSDI' '0140'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29K-MENGE(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=FCBU'.
    perform bdc_dynpro      using 'SAPLCSDI' '0140'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29P-POSNR(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=FCBU'.
    perform bdc_field       using 'RC29P-IDNRK(01)'
                                  ST_ITEM-IDNRK.
    perform bdc_field       using 'RC29P-MENGE(01)'
                                  ST_ITEM-MENGE.
    perform bdc_field       using 'RC29P-MEINS(01)'
                                  ST_ITEM-MEINS.
    perform bdc_field       using 'RC29P-POSTP(01)'
                                  ST_ITEM-POSTP.
    CONCATENATE 'RC29K-IDNRK(' V_NO ')' INTO V_FLD.
    CONDENSE V_FLD.
    PERFORM BDC_FIELD USING V_FLD
    ST_ITEM-IDNRK.
    CONCATENATE 'RC29K-MENGE(' V_NO ')' INTO V_FLD.
    CONDENSE V_FLD.
    PERFORM BDC_FIELD USING V_FLD
    ST_ITEM-MENGE.
    CONCATENATE 'RC29K-MEINS(' V_NO ')' INTO V_FLD.
    CONDENSE V_FLD.
    PERFORM BDC_FIELD USING V_FLD
    ST_ITEM-MEINS.
    CONCATENATE 'RC29K-POSTP(' V_NO ')' INTO V_FLD.
    CONDENSE V_FLD.
    PERFORM BDC_FIELD USING V_FLD
    ST_ITEM-POSTP.
    V_NO = 1.
    ENDLOOP.
    CLEAR V_NO.
    *perform bdc_dynpro      using 'SAPLCSDI' '0130'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'RC29P-POSNR'.
    *perform bdc_field       using 'RC29P-POSNR'
                                  POSNR.
    *perform bdc_field       using 'RC29P-IDNRK'
                                 bdcdata-IDNRK.
    *perform bdc_field       using 'RC29P-MENGE'
                                 bdcdata-MENGE.
    *perform bdc_field       using 'RC29P-MEINS'
                                 bdcdata-MEINS.
    perform bdc_dynpro      using 'SAPLCSDI' '0131'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29P-POTX1'.
    perform bdc_field       using 'RC29P-SANKA'
                                     'X'.
    perform bdc_dynpro      using 'SAPLCSDI' '0133'.
    perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29P-matkl'.
    perform bdc_field       using 'RC29P-SANKA'
                                     'zv01'.
    perform bdc_dynpro      using 'SAPLCSDI' '0140'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RC29N-POSNR(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=FCBU'.
    *perform bdc_transaction using 'CS01'.
    perform close_group.
    CALL TRANSACTION 'CS01' USING t_bdcdata MODE 'A' UPDATE 'S'.
    REFRESH t_bdcdata.
    clear t_bdcdata.
    endloop.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR st_bdcdata.
      st_bdcdata-PROGRAM  = PROGRAM.
      st_bdcdata-DYNPRO   = DYNPRO.
      st_bdcdata-DYNBEGIN = 'X'.
      APPEND st_bdcdata to t_bdcdata .
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
    IF FVAL <> NODATA.
        CLEAR st_bdcdata.
        st_bdcdata-FNAM = FNAM.
        st_bdcdata-FVAL = FVAL.
        APPEND st_bdcdata to t_bdcdata.
    ENDIF.
    ENDFORM.

  • TSW-Ticket Creation & Actualization using BDC

    Hi,
    I am using BDC for Ticket creation using transaction O4TEN.
    After execution of this BDC, Ticket get created and Saved but it does not actualize ticket even if we click actualize button using BDC.
    In real scenario, after ticket creation the status and substatus values should be "C"(Planned) and "6" (Complete) but in this case the status and substatus values are "B"(Checked) and "4"(Positive).
    If we create ticket directly using O4TEN then it actualizes ticket properly.
    I am not able to find out why BDC is not actualizing tickets.
    Any idea?
    Regards,
    Umesh

    Hi,
    I tried BDC for SAVE but still not getting Ticket Key.
    So now I am using FM: OIJ_EL_A_TICKETS_MAINTAIN_N.
    It creates ticket but in Ticket Item table Ticket item field is blank. Purpose is blank.
    Also OIJ_EL_TKT_I_O1 and OIJ_EL_TKT_I_O2 are not populated.
    In header I am passing: TICKET_PURPOSE, TICKET_TYPE, UPDKZ = 'I'
    and In item I am passing: NOMNR, NOMTK, NOMIT, MENGE, MEINS, TIME_ST_LOAD_STA, TIME_ST_LOAD_END, BUDAT UPDKZ = 'I'.
    am I missing something?
    Code is as follows:
    Replace BDC with function module: OIJ_EL_A_TICKETS_MAINTAIN_N
    1) Call FM: OIJ_EL_A_TICKETS_MAINTAIN_N
    2) Call FM: ENQUEUE_E_OIJTKT
    3) Call FM: OIJB_GENERATE_DOCUMENTS_N
    4) Call FM: DEQUEUE_E_OIJTKT
      DATA: ls_tkt_h            TYPE roij_el_ticket_hvb,
            ls_tkt_i            TYPE roij_el_ticket_i_io,
            ls_oijnomi          TYPE oijnomi,
            ls_roijnomiio       TYPE roijnomiio,
            ls_ticket_item      TYPE oij_el_ticket_i,
            ls_ticket_item_o1   TYPE oij_el_tkt_i_o1,
            ls_ticket_item_o2   TYPE oij_el_tkt_i_o2,
            ls_ticket_header_pv TYPE oij_el_ticket_h,
            ls_ticket_header    TYPE oij_el_ticket_h,
            ls_tkt_i_o1         TYPE oij_el_tkt_i_o1,
            ls_tkt_i_o2         TYPE oij_el_tkt_i_o2.
      DATA: lv_time             TYPE sy-uzeit.
      DATA: it_tkt_i            TYPE roij_el_ticket_i_io_t,
            it_tkt_h_evt        TYPE roijte_t,
            it_tkt_h_evt_txt    TYPE oij_txt,
            it_tkt_i_evt        TYPE roijte_t,
            it_tkt_i_evt_txt    TYPE oij_txt,
            it_tkt_i_o1         TYPE roij_el_tkt_i_o1_t,
            it_tkt_i_o2         TYPE roij_el_tkt_i_o2_t,
            it_tkt_err_log      TYPE oij_el_err_log_tt,
            it_tkt_doc_flow     TYPE roij_el_doc_flow_io_t,
            it_return           TYPE bapiret2_t,
            it_oijnomh          TYPE oijnomh_t,
            it_oijnomi          TYPE oijnomi_t,
            it_ticket_item      TYPE STANDARD TABLE OF oij_el_ticket_i,
            it_ticket_item_o1   TYPE STANDARD TABLE OF oij_el_tkt_i_o1,
            it_ticket_item_o2   TYPE STANDARD TABLE OF oij_el_tkt_i_o2.
      ls_tkt_h-ticket_purpose = '1'.
      ls_tkt_h-ticket_type = lv_ticket_type.
      IF lv_ticket_type EQ c_yp2.
      If Ticket type is YP2 then
        ls_tkt_h-yy_mct_cat = fp_mct_cat.
      ENDIF.
      ls_tkt_h-yy_pat_alc = lv_alloc_rule.
      ls_tkt_h-updkz = 'I'.
      ls_tkt_i-nomnr = fp_s_tc1-nomnr.
      ls_tkt_i-nomtk = fp_s_tc1-nomtk.
      ls_tkt_i-nomit = fp_s_tc1-nomit.
      ls_tkt_i-menge = lv_menge.
      ls_tkt_i-meins = fp_s_tc1-units.
      CLEAR ls_oijnomi.
      SELECT SINGLE * FROM oijnomi INTO ls_oijnomi
             WHERE nomtk = fp_s_tc1-nomtk
               AND nomit = fp_s_tc1-nomit.
      IF sy-subrc EQ 0.
        MOVE-CORRESPONDING ls_oijnomi TO ls_roijnomiio.
      ENDIF.
      PERFORM get_timestamp USING    fp_sdate
                                     lv_time
                                     ls_roijnomiio
                            CHANGING ls_tkt_i-time_st_load_sta.
      PERFORM get_timestamp USING    fp_edate
                                     lv_time
                                     ls_roijnomiio
                            CHANGING ls_tkt_i-time_st_load_end.
      CONCATENATE lv_budat(4) lv_budat5(2) lv_budat8(2) INTO ls_tkt_i-budat.
      ls_tkt_i-updkz = 'I'.
      APPEND ls_tkt_i TO it_tkt_i.
      CALL FUNCTION 'OIJ_EL_A_TICKETS_MAINTAIN_N'
        EXPORTING
          is_tkt_header           = ls_tkt_h
        IT_HEADER_EVT           =
        IT_HEADER_EVT_TXT       =
          it_items                = it_tkt_i
        IT_ITM_EVT              =
        IT_ITM_EVT_TXT          =
        IT_ITM_O1               =
        IT_ITM_O2               =
        IT_TKT_ERROR_LOG        =
          it_tkt_doc_flow         = it_tkt_doc_flow
          iv_commit               = 'X'
        IV_LOCK                 =
        IV_ADD_TO_LOG           =
        IV_CALL_TO_OUTPUT       =
        IMPORTING
          es_tkt_header           = ls_tkt_h
        ET_HEADER_EVT           = it_tkt_h_evt
        ET_HEADER_EVT_TXT       = it_tkt_h_evt_txt
          et_items                = it_tkt_i
        ET_ITM_EVT              = it_tkt_i_evt
        ET_ITM_EVT_TXT          = it_tkt_i_evt_txt
          et_itm_o1               = it_tkt_i_o1
          et_itm_o2               = it_tkt_i_o2
        ET_TKT_ERROR_LOG        = it_tkt_err_log
          et_tkt_doc_flow         = it_tkt_doc_flow
          et_return               = it_return
        EXCEPTIONS
          ticket_locked           = 1
          OTHERS                  = 2
      IF sy-subrc NE 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        COMMIT WORK AND WAIT.
    Lock the ticket
    There is no check neccessary if the ticket has already
    been locked by an other user because it has just been
    created.
        CALL FUNCTION 'ENQUEUE_E_OIJTKT'
          EXPORTING
            mode_oij_el_ticket_h = 'E'
            mandt                = sy-mandt
            ticket_key           = ls_tkt_h-ticket_key
            ticket_version       = ls_tkt_h-ticket_version
            ticket_purpose       = ls_tkt_h-ticket_purpose
          EXCEPTIONS
            foreign_lock         = 1
            system_failure       = 2
            OTHERS               = 3.
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'OIJB_GET_NOMINATION_DATA'
        EXPORTING
        ACTIVITY                     =
          is_ticket_header             = ls_tkt_h
          is_ticket_item               = ls_tkt_i
        IV_ADD_TO_LOG                =
        CHANGING
          ct_oijnomh                   = it_oijnomh
          ct_oijnomi                   = it_oijnomi
        RETURN                       =
        EXCEPTIONS
          ticket_data_error            = 1
          no_nomination_selected       = 2
          OTHERS                       = 3
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      ls_ticket_header = ls_tkt_h.
      LOOP AT it_tkt_i  INTO ls_tkt_i.
        MOVE-CORRESPONDING ls_tkt_i TO ls_ticket_item.
        APPEND ls_ticket_item TO it_ticket_item.
      ENDLOOP.
      LOOP AT it_tkt_i_o1 INTO ls_tkt_i_o1.
        MOVE-CORRESPONDING ls_tkt_i_o1 TO ls_ticket_item_o1.
        APPEND ls_ticket_item_o1 TO it_ticket_item_o1.
      ENDLOOP.
      LOOP AT it_tkt_i_o2 INTO ls_tkt_i_o2.
        MOVE-CORRESPONDING ls_tkt_i_o2 TO ls_ticket_item_o2.
        APPEND ls_ticket_item_o2 TO it_ticket_item_o2.
      ENDLOOP.
      CALL FUNCTION 'OIJB_GENERATE_DOCUMENTS_N'
        EXPORTING
          i_ticket_header                = ls_ticket_header
          i_ticket_header_pv             = ls_ticket_header_pv
        I_CLOSE_SHIPMENT               = ' '
        TABLES
          t_ticket_item                  = it_ticket_item
          t_ticket_item_o1               = it_ticket_item_o1
          t_ticket_item_o2               = it_ticket_item_o2
        T_TICKET_ITEM_PV               =
        T_TICKET_ITEM_O1_PV            =
        T_TICKET_ITEM_O2_PV            =
          t_oijnomh                      = it_oijnomh
          t_oijnomi                      = it_oijnomi
        T_DOC_FLOW                     =
        T_ERR_LOG                      =
        T_REVERSAL_DOCS                =
        T_ORIGINAL_DOCS                =
        T_TICKET_SUBITEM               =
        EXCEPTIONS
          error_during_cip_process       = 1
          error_during_checks            = 2
          nomination_lock_error          = 3
          nomination_read_error          = 4
          cip_process_read_error         = 5
          OTHERS                         = 6
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        COMMIT WORK AND WAIT.
      ENDIF.

  • Open Items issues in FB05 using BDC

    Dear All,
    Greetings....
    We are developing TDS process for Nepal Country similar to Indian i.e J1INCHLN, J1INBANK, J1INCERT.  As there is no standard functionality available for Nepal Country in SAP, we have copied the standard above mentioned T-Codes to custom T-codes and modified. Everything is working perfectly except that, when we give Posting date range and execute the J1INCHLN custom program, it will internally call BDC program for FB05. It is calling correctly but while displaying the list of open items in FB05 it is displaying all the open items available for a particular GL account number and not restricting the posting date range.
    But in standard J1INCHLN, when we execute this T-Code by givng posting date range, it will display the list of open items available for the posting date range entered in FB05.
    I have not changed the BDC code and using the std program availble for J1INCHLN. Even though it is not behaving properly. So kindly suggest how to pass the posting date range to FB05 using Call Transaction or restrict the open items..
    Regards
    Gururaj...

    As you said you did modifications.
    First of all compare your codes of posting date in customized program with standard and check if the logic hasn't been hampered.
    If everything is same then do check your recording again ( Check form of BDC whether data is being passed accurately ).
    I hope it helps.
    Happy Coding!!!
    Cheers
    Anup

Maybe you are looking for

  • Deletion or deactivation of Dummy Profit center in ECC 6.0

    Dear Experts,   How do I delete or deactivate dummy pofit center. Regards, David

  • Has no value definition - Session INIT Block.

    Hi, I have a Session initialization block for Fetching Departments from a Security table for the user logging in. One user can have Multiple Departments assigned to him, so i enabled Row-wise initialization in INIT Block. But when a user not assigned

  • Error service-specific error codce 2 when using Oracle 10g on Vista home

    Dear All, I just finished my WS1 DBA course and I wanted to play around with oracle 10g 10.2.0.3 DB on my laptop (Windows vista Home edition). I managed to install the database and right after the installation worked fine but the next day I got the f

  • A beginner to design pattern(Struct,Spring & Hibernate framework)

    Actually I am beginner to MVC2 Approach of complex application incorporated by design pattern as Struct,Spring & Hibernate framework. Currently I am learning JSP Concepts,I have one doubt. (1)What are the things I should grasp even before taking off

  • Custom button or toolbar

    Hello, Anyone knows if it is possible to add a custom toolbar or a custom button to a tollbar in Livecycle Designer? Something like the possibility one has of creating a custom toolbar to Acrobat Reader (using javascript folder). Thank you