Proble with BDC

Hi experts how to create  customer records in xd01?
i.e sales office ,group,division,ales person?
after how to prepare the flat file then upload thn build ITAB?
could u forwad any demo for customer methods in bdc ,lsmw,bapi
sample demo for customer in bdc ,lsmw ,bapi

Hi,
Go through this code
REPORT Z_TABCTL_XD01 NO STANDARD PAGE HEADING LINE-SIZE 132
                                                     LINE-COUNT 60
                                                     MESSAGE-ID Z00.
                    Table/Structure declarations.                    *
TABLES : KNA1.  "Customer master
              Constants declarations.                                *
CONSTANTS : C_MODE   VALUE 'A',
            C_UPDATE VALUE 'S',
            C_X      VALUE 'X',
            C_SESS   TYPE  APQI-GROUPID VALUE 'ZCUSTOMER', "Session Name
            C_XD01   LIKE  TSTC-TCODE   VALUE 'XD01'.
              Variable declarations.                                 *
DATA : V_FNAME(15)  VALUE  SPACE,      " Name of file to be created
       V_FAILREC    TYPE I,            " No of failed records
       V_MSG(255),                     " Message Text
       V_ERRREC     TYPE I,            " No of failed records
       V_LINES      TYPE I,            " No of records
       V_BANKS(15),                    " Table column BANKS
       V_BANKL(15),                    " Table column BANKL
       V_BANKN(15),                    " Table column BANKN
       V_TIDX(2)    TYPE N.            " Table row index
*--             FLAG DECLARATIONS
DATA : FG_DATA_EXIST   VALUE 'X',             " Check for data
       FG_SESSION_OPEN VALUE ' '.             " Check for Session Open
*--              MACRO DEFINITIONS
*-- Macro for BANKS
DEFINE BANKS.
  CLEAR V_BANKS.
  CONCATENATE 'KNBK-BANKS(' &1 ')' INTO V_BANKS.
  CONDENSE V_BANKS.
END-OF-DEFINITION.
*-- Macro for BANKL
DEFINE BANKL.
  CLEAR V_BANKL.
  CONCATENATE 'KNBK-BANKL(' &1 ')' INTO V_BANKL.
  CONDENSE V_BANKL.
END-OF-DEFINITION.
*-- Macro for BANKN
DEFINE BANKN.
  CLEAR V_BANKN.
  CONCATENATE 'KNBK-BANKN(' &1 ')' INTO V_BANKN.
  CONDENSE V_BANKN.
END-OF-DEFINITION.
               Structures / Internal table declarations              *
*-- Structure to hold BDC data
TYPES : BEGIN OF T_BDCTABLE.
        INCLUDE STRUCTURE BDCDATA.
TYPES  END OF T_BDCTABLE.
*-- Structure to trap BDC messages
TYPES : BEGIN OF T_MSG.
        INCLUDE STRUCTURE BDCMSGCOLL.
TYPES : END OF T_MSG.
*-- Structure to trap ERROR messages
TYPES : BEGIN OF T_ERR_MSG,
          MESSAGE(255),
        END OF T_ERR_MSG.
*--Internal table to store flat file data
DATA : BEGIN OF IT_KNA1 OCCURS 0,
         KUNNR LIKE KNA1-KUNNR,
         KTOKD LIKE T077D-KTOKD,
         NAME1 LIKE KNA1-NAME1,
         SORTL LIKE KNA1-SORTL,
         ORT01 LIKE KNA1-ORT01,
         PSTLZ LIKE KNA1-PSTLZ,
         LAND1 LIKE KNA1-LAND1,
         SPRAS LIKE KNA1-SPRAS,
         LZONE LIKE KNA1-LZONE,
       END OF IT_KNA1.
*--Internal table to store bank details
DATA : BEGIN OF IT_BANK OCCURS 0,
         BANKS LIKE KNBK-BANKS,
         BANKL LIKE KNBK-BANKL,
         BANKN LIKE KNBK-BANKN,
       END OF IT_BANK.
*-- Internal table to hold BDC data
DATA: IT_BDCDATA TYPE STANDARD TABLE OF T_BDCTABLE WITH HEADER LINE,
*-- Internal Table to store ALL messages
      IT_MSG     TYPE STANDARD TABLE OF T_MSG WITH HEADER LINE,
*-- Internal Table to store error messages
      IT_ERR_MSG TYPE STANDARD TABLE OF T_ERR_MSG WITH HEADER LINE.
Selection Screen.                                                    *
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_FLNAME(15) OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R_LIST  RADIOBUTTON GROUP GRP1.
SELECTION-SCREEN COMMENT 5(20) TEXT-003.
PARAMETERS : R_SESS  RADIOBUTTON GROUP GRP1.
SELECTION-SCREEN COMMENT 30(20) TEXT-004.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
Event:Initialization                                                 *
INITIALIZATION.
AT Selection Screen.                                                 *
AT SELECTION-SCREEN.
Event: Start-of-Selection                                            *
START-OF-SELECTION.
  V_FNAME = P_FLNAME.
  PERFORM GET_DATA.
  PERFORM GET_BANKDATA.
  PERFORM GENERATE_DATASET.
Event: End-of-Selection                                            *
END-OF-SELECTION.
  IF FG_DATA_EXIST = ' '.
    MESSAGE I010 WITH TEXT-009.
    EXIT.
  ENDIF.
  PERFORM GENERATE_BDCDATA.
  PERFORM DISPLAY_ERR_RECS.
Event: top-of-page
TOP-OF-PAGE.
                      FORM DEFINITIONS                               *
*&      Form  get_data
      Subroutine to get the data from mard
-->  p1        text
<--  p2        text
FORM GET_DATA.
  CALL FUNCTION 'UPLOAD'
   EXPORTING
   CODEPAGE                      = ' '
     FILENAME                       = 'C:\XD01.TXT'
     FILETYPE                       = 'DAT'
   ITEM                          = ' '
   FILEMASK_MASK                 = ' '
   FILEMASK_TEXT                 = ' '
   FILETYPE_NO_CHANGE            = ' '
   FILEMASK_ALL                  = ' '
   FILETYPE_NO_SHOW              = ' '
   LINE_EXIT                     = ' '
   USER_FORM                     = ' '
   USER_PROG                     = ' '
   SILENT                        = 'S'
IMPORTING
   FILESIZE                      =
   CANCEL                        =
   ACT_FILENAME                  =
   ACT_FILETYPE                  =
    TABLES
      DATA_TAB                      = IT_KNA1
EXCEPTIONS
   CONVERSION_ERROR              = 1
   INVALID_TABLE_WIDTH           = 2
   INVALID_TYPE                  = 3
   NO_BATCH                      = 4
   UNKNOWN_ERROR                 = 5
   GUI_REFUSE_FILETRANSFER       = 6
   OTHERS                        = 7
  IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  IF IT_KNA1[] IS INITIAL.
    FG_DATA_EXIST = ' '.
  ENDIF.
ENDFORM.                    " get_data
*&      Form  GENERATE_DATASET
      text
-->  p1        text
<--  p2        text
FORM GENERATE_DATASET.
  MESSAGE I010 WITH 'OPENING FILE IN APPLICATION SERVER'.
**--Creating a data set in application server
  OPEN DATASET V_FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
**---Transfering data from internal table to dataset
  MESSAGE I010 WITH 'TRANSFERING DATA FROM INETERAL TABLE TO THE FILE'.
  LOOP AT IT_KNA1.
    TRANSFER IT_KNA1 TO V_FNAME.
  ENDLOOP.
**--Closing the dataset
  MESSAGE I010 WITH 'CLOSING THE FILE'.
  CLOSE DATASET V_FNAME.
ENDFORM.                    " GENERATE_DATASET
*&      Form  BDC_DYNPRO
      text
     -->P_0467   text
     -->P_0468   text
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR IT_BDCDATA.
  IT_BDCDATA-PROGRAM  = PROGRAM.
  IT_BDCDATA-DYNPRO   = DYNPRO.
  IT_BDCDATA-DYNBEGIN = 'X'.
  APPEND IT_BDCDATA.
ENDFORM.
*&      Form  BDC_FIELD
      text
     -->P_0472   text
     -->P_0473   text
FORM BDC_FIELD USING FNAM FVAL.
  IF NOT FVAL IS INITIAL.
    CLEAR IT_BDCDATA.
    IT_BDCDATA-FNAM = FNAM.
    IT_BDCDATA-FVAL = FVAL.
    APPEND IT_BDCDATA.
  ENDIF.
ENDFORM.
*&      Form  GENERATE_BDCDATA
      text
-->  p1        text
<--  p2        text
FORM GENERATE_BDCDATA.
  REFRESH IT_KNA1.
Opening dataset for reading
  OPEN DATASET V_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.
Reading the file from application server
  DO.
    CLEAR:  IT_KNA1,IT_BDCDATA.
    REFRESH IT_BDCDATA.
    READ DATASET V_FNAME INTO IT_KNA1.
    IF SY-SUBRC <> 0.
      EXIT.
    ELSE.
  Populate BDC Data for Initial Screen
      PERFORM : BDC_DYNPRO USING 'SAPMF02D'    '0100',
                BDC_FIELD  USING 'BDC_CURSOR'  'RF02D-KUNNR',
                BDC_FIELD  USING 'BDC_OKCODE'  '/00',
                BDC_FIELD  USING 'RF02D-KUNNR' IT_KNA1-KUNNR,
                BDC_FIELD  USING 'RF02D-KTOKD' IT_KNA1-KTOKD.
  Populate BDC Data for Second Screen
      PERFORM : BDC_DYNPRO USING 'SAPMF02D'    '0110',
                BDC_FIELD  USING 'BDC_CURSOR'  'KNA1-NAME1',
                BDC_FIELD  USING 'BDC_OKCODE'  '/00',
                BDC_FIELD  USING 'KNA1-NAME1'  IT_KNA1-NAME1,
                BDC_FIELD  USING 'KNA1-SORTL'  IT_KNA1-SORTL,
                BDC_FIELD  USING 'KNA1-ORT01'  IT_KNA1-ORT01,
                BDC_FIELD  USING 'KNA1-PSTLZ'  IT_KNA1-PSTLZ,
                BDC_FIELD  USING 'KNA1-LAND1'  IT_KNA1-LAND1,
                BDC_FIELD  USING 'KNA1-SPRAS'  IT_KNA1-SPRAS.
  Populate BDC Data for Third Screen
      PERFORM : BDC_DYNPRO USING 'SAPMF02D'    '0120',
                BDC_FIELD  USING 'BDC_CURSOR'  'KNA1-LZONE',
                BDC_FIELD  USING 'BDC_OKCODE'  '/00',
                BDC_FIELD  USING 'KNA1-LZONE'  IT_KNA1-LZONE.
  Populate BDC Data for Fourth Screen
      PERFORM : BDC_DYNPRO USING 'SAPMF02D'    '0125',
                BDC_FIELD  USING 'BDC_CURSOR'  'KNA1-NIELS',
                BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
  Populate BDC Data for Table control for bank details.
      V_TIDX = '01'.
      LOOP AT IT_BANK.
        BANKS V_TIDX.
        BANKL V_TIDX.
        BANKN V_TIDX.
        PERFORM : BDC_DYNPRO USING 'SAPMF02D'   '0130',
                  BDC_FIELD  USING 'BDC_CURSOR' V_BANKN,
                  BDC_FIELD  USING 'BDC_OKCODE' '=ENTR',
                  BDC_FIELD  USING  V_BANKS     IT_BANK-BANKS,
                  BDC_FIELD  USING  V_BANKL     IT_BANK-BANKL,
                  BDC_FIELD  USING  V_BANKN     IT_BANK-BANKN.
        V_TIDX = V_TIDX + 1.
      ENDLOOP.
      PERFORM : BDC_DYNPRO USING 'SAPMF02D'   '0130',
                BDC_FIELD  USING 'BDC_CURSOR' V_BANKS,
                BDC_FIELD  USING 'BDC_OKCODE' '=UPDA'.
      CALL TRANSACTION C_XD01 USING  IT_BDCDATA
                              MODE   C_MODE
                              UPDATE C_UPDATE
                              MESSAGES INTO IT_MSG.
      IF SY-SUBRC <> 0.
*--In case of error list display
        IF R_LIST = C_X.
          V_ERRREC = V_ERRREC + 1.
          PERFORM FORMAT_MESSAGE.
          IT_ERR_MSG-MESSAGE = V_MSG.
          APPEND IT_ERR_MSG.
          CLEAR : V_MSG,IT_ERR_MSG.
        ENDIF.
*--In case of session log
        IF R_SESS = C_X.
*-- In case of  transaction fails.
          IF FG_SESSION_OPEN = ' '.
            FG_SESSION_OPEN = C_X.
            PERFORM BDC_OPEN_GROUP.
          ENDIF.  "      IF FG_SESSION_OPEN = ' '.
*-- Insert BDC Data..
          PERFORM BDC_INSERT_DATA.
        ENDIF.    "                        IF R_SESS = C_X.
      ENDIF.      "                        IF SY-SUBRC <> 0.
    ENDIF.        "                        IF SY-SUBRC <> 0.
  ENDDO.
Closing the dataset
  CLOSE DATASET V_FNAME.
*-- Close the session if opened
  IF FG_SESSION_OPEN = C_X.
    PERFORM BDC_CLOSE_GROUP.
    CALL TRANSACTION 'SM35'.
  ENDIF.
ENDFORM.                    " GENERATE_BDCDATA
*&      Form  BDC_OPEN_GROUP
      text
-->  p1        text
<--  p2        text
FORM BDC_OPEN_GROUP.
  CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
     CLIENT                     = SY-MANDT
  DEST                      = FILLER8
     GROUP                      = C_SESS
  HOLDDATE                  = FILLER8
     KEEP                       = C_X
     USER                       = SY-UNAME
  RECORD                    = FILLER1
IMPORTING
  QID                       =
   EXCEPTIONS
     CLIENT_INVALID            = 1
     DESTINATION_INVALID       = 2
     GROUP_INVALID             = 3
     GROUP_IS_LOCKED           = 4
     HOLDDATE_INVALID          = 5
     INTERNAL_ERROR            = 6
     QUEUE_ERROR               = 7
     RUNNING                   = 8
     SYSTEM_LOCK_ERROR         = 9
     USER_INVALID              = 10
     OTHERS                    = 11
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " BDC_OPEN_GROUP
*&      Form  BDC_INSERT_DATA
      text
-->  p1        text
<--  p2        text
FORM BDC_INSERT_DATA.
  CALL FUNCTION 'BDC_INSERT'
    EXPORTING
      TCODE                  = C_XD01
  POST_LOCAL             = NOVBLOCAL
  PRINTING               = NOPRINT
    TABLES
      DYNPROTAB              = IT_BDCDATA
   EXCEPTIONS
     INTERNAL_ERROR         = 1
     NOT_OPEN               = 2
     QUEUE_ERROR            = 3
     TCODE_INVALID          = 4
     PRINTING_INVALID       = 5
     POSTING_INVALID        = 6
     OTHERS                 = 7
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " BDC_INSERT_DATA
*&      Form  BDC_CLOSE_GROUP
      text
-->  p1        text
<--  p2        text
FORM BDC_CLOSE_GROUP.
  CALL FUNCTION 'BDC_CLOSE_GROUP'
       EXCEPTIONS
            NOT_OPEN    = 1
            QUEUE_ERROR = 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.
ENDFORM.                    " BDC_CLOSE_GROUP
*&      Form  FORMAT_MESSAGE
      text
-->  p1        text
<--  p2        text
FORM FORMAT_MESSAGE.
  CLEAR V_LINES.
  DESCRIBE TABLE IT_MSG LINES V_LINES.
  READ TABLE IT_MSG INDEX V_LINES.
  CLEAR V_MSG.
  CALL FUNCTION 'FORMAT_MESSAGE'
       EXPORTING
            ID        = IT_MSG-MSGID
            LANG      = IT_MSG-MSGSPRA
            NO        = IT_MSG-MSGNR
            V1        = IT_MSG-MSGV1
            V2        = IT_MSG-MSGV2
            V3        = IT_MSG-MSGV3
            V4        = IT_MSG-MSGV4
       IMPORTING
            MSG       = V_MSG
       EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
  IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " FORMAT_MESSAGE
*&      Form  DISPLAY_ERR_RECS
      text
-->  p1        text
<--  p2        text
FORM DISPLAY_ERR_RECS.
  LOOP AT IT_ERR_MSG.
    WRITE: / IT_ERR_MSG-MESSAGE.
  ENDLOOP.
ENDFORM.                    " DISPLAY_ERR_RECS
*&      Form  GET_BANKDATA
      text
-->  p1        text
<--  p2        text
FORM GET_BANKDATA.
  IT_BANK-BANKS = 'AD'.
  IT_BANK-BANKL = '1000'.
  IT_BANK-BANKN = 'S.B A/C'.
  APPEND IT_BANK.
  IT_BANK-BANKS = 'AD'.
  IT_BANK-BANKL = 'CITY'.
  IT_BANK-BANKN = 'CURR. A/C'.
  APPEND IT_BANK.
  IT_BANK-BANKS = 'AD'.
  IT_BANK-BANKL = 'H001'.
  IT_BANK-BANKN = 'S.B A/C'.
  APPEND IT_BANK.
reward points if useful
regards
suman

Similar Messages

  • Problem with BDC on VA02

    Hi All,
    I am facing a problem with bdc on va02. After hitting enter on the first screen it pops an info message "consider subsequent douments". It doesn't get recorded in recorded. Hence I am not able to run the transaction with no screen mode. Please help me to suppress the info message
    Navin

    Hi Navin,
    These kind of messages and pop ups are precisely the reason why use of BDC for updating transactions is NOT advisable.
    If you were to bypass such messages, you would have to put a check to see why the message appears (in this case probably because the sales document flow for the sales order in table VBFA has some documents) and then write a logic to either handle the message or not.
    Instead i would recommend you use the BAPI functions provided by SAP to change the sales order.
    Have a look the BAPI for sales order change attached to the business object BUS2012. For this goto transaction SWO1 and enter the BUS2012 business object. Then goto methods and look for the "change" method. Double click on the method and look at the BAPI used to implement the method. Go ahead and use this method in your program as against a BDC.
    I am sure it will be a much better option.
    Otherwise if you still want to proceed with a BDC, please debug at the point where the message/pop up appears to ascertain reason for the same and then incorporate the same check in your program to handle the pop up.
    Regards,
    Aditya

  • About updating  long text  in the document item  with bdc of fb02

    HI,
    I have a question about updating  long text  in the document item of sap:
    Can I directly updating the long text information with the fuction save_text?
    The long text is in :
    tcode: fb02 -->input document no ... --> Document overview --> select one document
    long text --> updating the value.
    Becaust I want to update some items in a G/L Account with bdc or other technique, but I found I can't   choose the items in the G/L Account with bdc automatically .That means I can't get the selected items and update them.So I try to update them with the function save_text  directly (I know the doc no,bukrs,fiscal year ,item no which will decide the long text item).
    Who can help me ?Or is there any way to solve the problem? Thanks very much.

    Yes, you can update directly using SAVE_TEXT.
    Check this for the same.
    [update long text in FB02|https://forums.sdn.sap.com/click.jspa?searchID=22194840&messageID=5418662]

  • HT201263 I am not able to restore neither from iTunes nor from iCloud. The proble with iTunes is it says that the backup is corrupted or incompatible. And I am not able to connect to iCloud for restoring. I have IOS 7.0.4 when I have taken the backup.

    I am not able to restore neither from iTunes nor from iCloud. The proble with iTunes is it says that the backup is corrupted or incompatible. And I am not able to connect to iCloud for restoring. I have IOS 7.0.4 when I have taken the backup.
    iCloud does not connect and it says Request Timed out.
    Not Sure how to restore my iPad.
    Please help!!
    Thanks

    my problem is with I cloud not iTunes what's up with apple haven't they got the brains to sort out this prob, that they have to let the "community " know instead of helping to fix the problem without having to go through all the hassle of signing in writing a small blog & then leaving it until someone bored with time to write their blog to at some point fix the prob or not ! oh nearly forgot my prob like
    HRESULT:0X80070570 no clear explanation as to what this means or why in plain English for the not techno phoebes

  • Who can tell me if it right I can not write rfc with bdc?

    Dear experts,
            I want to write a rfc with BDC so that vs.net can use this rfc, but I find it can not be used. who can tell me if it right I can not write rfc with bdc?
    Best Regards,
    Shinny

    Hi Shinny,
    Can you explain what error are you getting a little briefly. Coz you can write BDC in Function Modules.
    Thanks,
    Prashanth

  • Any proble with magnet iPad

    any proble with magnet iPad

    If it was thought that there might be a problem then they wouldn't be included in the iPad - is there a particular issue that you are concerned about ?

  • Issue with BDC of ME22N to change gross price of service.

    Hi,
    I have a requirement where I have to undelete the PO > services tab of the item details > change the gross price to the value thats calculated by the program  for each of the services of the PO > set the deletion indicator to the PO.
    The spec says to use a BDC of ME22N to acheive this but after creating the recording I have had several issues with some PO's that interrupt the BDC because they bejave differently from the recording I did.
    On most cases when im running the BDC in foreground after changing the gross price and pressing enter I get a new windowthat appears asking for the account assingment of service, on this window the G/L account information is ussualy passed automatically then the bdc clicks back and the process continues normally. On other services after changing the gross price and pressing enter I get the account assignment of service window but the G/L information is not passed and when the bdc clicks back the G/L account information gets passed instead of going back and the BDC stops, if I manually click back again the process will continue.
    With single service PO's the process is completing, this issue is happening with PO's that have multiple services.
    I know ME22 should be used for BDC and not ME22N, but the functional insists to correct the issues with the BDC of ME22N. Also I atempted to use BAPI_PO_CHANGE but I dont think this bapi can not update the gross price of each of the services, it can change the net price but this is not my requirement.
    Is there a bapi that can change the gross price of each of the services of the PO?
    Please advice me on this.
    Edited by: bodyboarder1 on Dec 2, 2010 3:33 PM

    Hi
    If you really need a BDC program, try to simulate ME22  instead of ME22N
    Max

  • Issue with BDC processing of F-65 after upgrade to ECC 6.0

    Dear ABAP gurus,
                  We have upgraded our SAP system from version 4.7 to ECC 6.0.            
    We are facing issue when processing BDC sessions for transaction code F-65.
    The screen which appears for Assignment to a profitability segment creates issue when processing BDC for F-65.
    The screen name is SAPLKEAK and the corresponding screen number is 0300.
    This screen displays the characteristic and its corrsponding values. The characteristics and its values are pulled in from FICO Config at runtime when you execute F-65 and all relevant Tcodes of business transaction RFBU.
    We checked for the characteristics maintained for Characteristic group via std. transaction code KEPA. It shows 4 characteristics listed of which 2 are optional and 2 are mandatory. The same settings are available in older version as well as in ECC 6.0. Also validated the assignment of characteristic group to the actual data i.e to the business transaction RFBU via Tcode KE4G.
    When we do recording in SHDB in both the systems, the older version shows it correctly displaying 4 fields(2 optional and 2 mandatory) in the Assignment to a profitability segment screen whereas the new system displays some 12 additional fields. Also none of the fields appear mandatory.
    The issue is we are still not able to identify whether this is a technical issue or functional issue.
    Searched for relevant OSS notes but couldn't find any.
    Anyone of you who have faced this issue, please respond immediately.
    We have this issue to be resolved on high priority.
    Help will be highly appreciated.
    Regards,
    Kavita

    This issue was also posted with an OSS-message to SAP, and the solution was to run this  program SD_PLANVALUE_UPDATE
    Berit

  • Reprint the processed order with BDC call transaction

    Hi Mentors,
    I have a problem with printing the order which is coming in a cockpit program.
    for that i am using the bdc and call transaction 'ZVA31' which is exactly the standard program 'SD70AV1A'.
    but after first processing i am not able to reprint the processed order.
    Below is my bdc code and i am using processing mode 1 at the time of recording.
    FORM ZSD70AV1A_PRINT_BA01 USING p_vbeln TYPE vbeln.
    DATA: wa_ba01 TYPE nast-kschl VALUE 'BA01'.
    perform bdc_dynpro      using 'SD70AV1A' '1000'.
    perform bdc_field       using 'BDC_CURSOR'
    'RG_KSCHL-LOW'.
    perform bdc_field       using 'BDC_OKCODE'
    '=ONLI'.
    perform bdc_field       using 'RG_KSCHL-LOW'
    wa_ba01."wa_ba01."'ba01'.
    perform bdc_field       using 'PM_NSORT'
    '01'.
    perform bdc_field       using 'PM_VERMO'
    '1'.
    perform bdc_field       using 'RG_VBELN-LOW'
    p_vbeln."'513785'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
    '04/03'.
    perform bdc_field       using 'BDC_OKCODE'
    '=&ALL'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
    '04/03'.
    perform bdc_field       using 'BDC_OKCODE'
    '=PROC'.
    CALL TRANSACTION 'ZVA31' USING BDCDATA
    MODE   'A'
    MESSAGES INTO MESSTAB.
    CLEAR BDCDATA[].
    ENDFORM.                    " ZSD70AV1A_PRINT_BA01
    Br,
    Surya

    Solved myself.
    DATA: wa_ba00 TYPE nast-kschl VALUE 'BA00'.
    DATA: p_vermo TYPE kschl.
    DATA: cur_vstat TYPE nast-vstat.
    SELECT SINGLE vstat INTO cur_vstat FROM nast
    WHERE objky = p_vbeln
    AND   kschl = 'BA00'.
    IF sy-subrc = 0 AND cur_vstat = 0.
    p_vermo = '1'."wa_vstat.
    ELSE.
    p_vermo = '2'.
    ENDIF.
    p_vermo is processing status.
    Br,
    Surya

  • Transaction AIAB (Auc Settlement) -  Problem with BDC

    Dear Friends,
              Problem: I am trying to distribute the amount of a asset (Auc) to other assets on line item basis by using BDC for transaction AIAB. I am facing problems when using amount based through BDC.
           Can you please suggest ASAP if any FM or BAPI's available to achive this for transaction AIAB?
    Thanks,
    Ram.

    Hi Ravi,
    Thanks for your valuable reply..
    Everything is fine if i run the transaction in ALLSCREEN mode, but iam facing the problem with the same after running it in NOSCREEN mode 'N'..
    Pls help..

  • Problem With BDC

    Hi,
    I Recorded the Transaction for CN21
    I that I need to create a Network ,
    To create the Network it contains Many Activity and 1 Activity contains many Material Component.
    1 Network----> Many Activities
    1 Activity -
    >Many material Components.
    And the Activity and Material Components are TabCtrl.
    While Recording it will insert only 12 records.
    When We insert the record it overwrites.
    So ,
    How to write a BDC Program for this complex structure and for the Tabctrl.
    Points will be awarded for the solution.
    Regards,
    Jayasimha Jangam

    for table control BDC u have to use page down command for inserting more records...
    use following code :
    REPORT Y730_BDC5 .
    *HANDLING TABLE CONTROL IN BDC
    DATA : BEGIN OF IT_DUMMY OCCURS 0,
           DUMMY(100) TYPE C,
           END OF IT_DUMMY.
    DATA : BEGIN OF IT_XK01 OCCURS 0,
           LIFNR(10) TYPE C,
           BUKRS(4)  TYPE C,
           EKORG(4)  TYPE C,
           KTOKK(4)  TYPE C,
           NAME1(30) TYPE C,
           SORTL(10) TYPE C,
           LAND1(3)  TYPE C,
           SPRAS(2)  TYPE C,
           AKONT(6)  TYPE C,
           FDGRV(2)  TYPE C,
           WAERS(3)  TYPE C,
           END OF IT_XK01,
           BEGIN OF IT_BANK OCCURS 0,
           BANKS(3)  TYPE C,
           BANKL(10) TYPE C,
           BANKN(10) TYPE C,
           KOINH(30) TYPE C,
           LIFNR(10) TYPE C,
           END OF IT_BANK.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       FILENAME                      = 'C:\VENDOR.TXT'
       FILETYPE                      = 'ASC'
    TABLES
       DATA_TAB                      = IT_DUMMY.
    LOOP AT IT_DUMMY.
      IF IT_DUMMY-DUMMY+0(2) = '11'.
        IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
        IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
        IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
        IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
        IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
        IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
        IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
        IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
        IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
        IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
        IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
        APPEND IT_XK01.
      ELSE.
        IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
        IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
        IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
        IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
        IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
        APPEND IT_BANK.
      ENDIF.
    ENDLOOP.
    LOOP AT IT_XK01.
    REFRESH IT_BDCDATA.
    perform bdc_dynpro      using 'SAPMF02K' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-REF_LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  IT_XK01-LIFNR.
    perform bdc_field       using 'RF02K-BUKRS'
                                  IT_XK01-BUKRS.
    perform bdc_field       using 'RF02K-EKORG'
                                  IT_XK01-EKORG.
    perform bdc_field       using 'RF02K-KTOKK'
                                  IT_XK01-KTOKK.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-TELX1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-NAME1'
                                  IT_XK01-NAME1.
    perform bdc_field       using 'LFA1-SORTL'
                                  IT_XK01-SORTL.
    perform bdc_field       using 'LFA1-LAND1'
                                  IT_XK01-LAND1.
    perform bdc_field       using 'LFA1-SPRAS'
                                  IT_XK01-SPRAS.
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-KOINH(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    DATA : FNAM(20) TYPE C,
           IDX      TYPE C.
      MOVE 1 TO IDX.
    LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
      CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKS.
      CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKL.
      CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKN.
      CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-KOINH.
      IDX = IDX + 1.
    ENDLOOP.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-BANKS(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPMF02K' '0210'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-FDGRV'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFB1-AKONT'
                                  IT_XK01-AKONT.
    perform bdc_field       using 'LFB1-FDGRV'
                                  IT_XK01-FDGRV.
    perform bdc_dynpro      using 'SAPMF02K' '0215'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-ZTERM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0220'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB5-MAHNA'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0310'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFM1-WAERS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFM1-WAERS'
                                  IT_XK01-WAERS.
    perform bdc_dynpro      using 'SAPMF02K' '0320'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'WYT3-PARVW(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    CALL TRANSACTION 'XK01' USING IT_BDCDATA
                            MODE  'A'
                           UPDATE 'S'
                         MESSAGES INTO IT_BDCMSGCOLL.
    ENDLOOP.
    FORM BDC_DYNPRO USING PROG SCR.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-PROGRAM = PROG.
      IT_BDCDATA-DYNPRO  = SCR.
      IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND IT_BDCDATA.
    ENDFORM.
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-FNAM = FNAM.
      IT_BDCDATA-FVAL  = FVAL.
      APPEND IT_BDCDATA.
    ENDFORM.
    reward points if useful...

  • Problems with BDC in F110v

    Hi Experts,
    I'm running a BDC involving the structure / screen F110V. I'm using the following line of code to check my program name:
            .....IF F110V-PROGN = 'RFF0AVIS' ....
    However, F110V-PROGN is always a blank string and the condition is never satisfied. Am I checking the correct value off the screen field or is there a correction? How do I check the PROGN field for a particular value?
    Any help would be greatly appreciated. Thanks.

    Hi Santosh,
    Thanks for the quick reply.
    I did, indeed, record a BDC with the said fields so that I could get the field name (PROGN).However I want to execute different logic based on the value of the F110V-PROGN.
    The condition always fails due to the fact that the screen field value is always a blank.
    Any comments? Thanks again.

  • Please help with BDC error

    Hello guys,
    I recently modified a BDC program and I configured it's mode to be 'E' so when errors are present,pop up windows are shown. Unfortunately I can't seem to find the error. I will post below the code. What I did with the code was to clear the value of anep-anbtr to no value. help would really be appreciated. Thanks guys!
    FORM GENERATE_BDC_DATA_ABAA.
      DATA: I_ANBTR LIKE ANEP-ANBTR.
      DATA: C_ANBTR(16), C_ANBTR2(16), C_DMBTR(16).
      PERFORM BDC_DYNPRO USING 'SAPMA01B' '0100'.
      PERFORM BDC_FIELD  USING:
          'BDC_OKCODE' '/00',
          'ANBZ-BUKRS' 'GLOB',
          'ANBZ-ANLN1' IT_REC-ANLN1,
          'ANBZ-ANLN2' IT_REC-ANLN2,
          'ANEK-BLDAT' IT_REC-BLDAT,
          'ANEK-BUDAT' IT_REC-BUDAT,
          'ANBZ-PERID' IT_REC-PERID,
          'ANBZ-BWASL' IT_REC-BWASL.
      PERFORM BDC_DYNPRO USING 'SAPMA01B' '0110'.
      PERFORM BDC_FIELD  USING 'BDC_OKCODE' '/00'.
      PERFORM BDC_FIELD  USING 'ANBZ-DMBTR'  IT_REC-DMBTR.
      PERFORM BDC_FIELD  USING: 'ANBZ-BZDAT' IT_REC-BUDAT,
                                'ANEK-SGTXT' IT_REC-SGTXT.
      "I_ANBTR = '0'.       "IT_REC-DMBTR * -1.
      perform bdc_dynpro      using 'SAPMA01B' '0285'.          " '0600'.
    *AVH
      clear anep-anbtr.
      perform bdc_field       using 'BDC_CURSOR'
                                    'ANEP-ANBTR'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=AUSF'.
    *AVH
      clear anep-anbtr.
      PERFORM BDC_DYNPRO USING 'SAPMA01B' '0285'.               " '0600'.
    *AVH
      clear anep-anbtr.
      PERFORM BDC_FIELD  USING 'BDC_CURSOR' 'ANEP-ANBTR'.
      PERFORM BDC_FIELD  USING 'BDC_OKCODE' '=AUSF'.
      PERFORM BDC_FIELD  USING 'ANEP-ANBTR' '0'.
    *AVH
      clear anep-anbtr.
      PERFORM BDC_DYNPRO USING 'SAPMA01B' '0110'.
      PERFORM BDC_FIELD  USING:
          'BDC_OKCODE' '=UPDA',
          'ANBZ-DMBTR' IT_REC-DMBTR,
          'ANBZ-BZDAT' IT_REC-BUDAT,
          'ANEK-SGTXT' IT_REC-SGTXT.
      PERFORM BDC_DYNPRO USING 'SAPMA01B' '0285'.               " '0600'.
    *AVH
      clear anep-anbtr.
      PERFORM BDC_FIELD  USING:
          'BDC_CURSOR' 'ANEP-ANBTR',
          'BDC_OKCODE' '=AUSF'.
      PERFORM BDC_FIELD  USING 'ANEP-ANBTR' '0'.
    *AVH
      clear anep-anbtr.
      PERFORM BDC_DYNPRO USING 'SAPMA01B' '0285'.               " '0600'.
    *AVH
      clear anep-anbtr.
      PERFORM BDC_FIELD  USING:
          'BDC_CURSOR' 'ANEP-ANBTR',
          'BDC_OKCODE' '=AUSF'.
      PERFORM BDC_FIELD  USING 'ANEP-ANBTR' '0'.
    *AVH
      clear anep-anbtr.
      PERFORM BDC_DYNPRO USING 'SAPMA01B' '0110'.
      PERFORM BDC_FIELD  USING:
          'BDC_OKCODE' '=UPDA'.
    ENDFORM.                    " GENERATE_BDC_DATA_ABAA

    I just know that it has an error because the BDC 'mode' is 'E'. And yes, the program used call transaction. So when I run the program and the transaction that is being called shows up, the ok-code pop up window shows up. If you review my code, what i'm trying to do is to change the value of anep-anbtr in screen 285. Thanks a lot guys...

  • Update the table when Document successfull with BDC

    Hi,
        I am changing the Billing document header and item level using BDC call Transaction. When the document is success fulley saved at that time I have to modify the flag in the table with 'X', when it fails or if it has errors I have to set the Flag as 'F'. Could please any body tell me how can I do this.
    Thanks & Regards
    Venkat

    Hi,
    In the call transaction do the following :
    Data : it_msg type standard table of bdcmsgcoll.
      CALL TRANSACTION VA01 USING it_bdcdata
                       MODE   'N' 
                       UPDATE 'A'
                       MESSAGES INTO it_msg.
    READ TABLE it_msg INTO  wa_msg WITH KEY msgtyp = 'E'
                                              msgtyp = 'W'.
    if sy-subrc eq 0.
    update ZTABLE set flag = `F`
            where <condition>.
    else.
    update ZTABLE set flag = `X`
            where <condition>.
    endif.
    Best regards,
    Prashant
    Message was edited by: Prashant Patil
    Message was edited by: Prashant Patil

  • Help with BDC, user exits and BAPI

    Hello all:
    1) I posted a question before about BDC documentation and people sent me lot of helpful material. Thanks to all of them. I am very new to ABAP coming from VB background and wondering if someone can tell me how to practice one simple BDC program starting from scratch. What do I first need to do to get started? I have Mini WAS 6.20 test version and like to practice BDC programming.
    2) What are user exits and BADI and can anyone provide some documentation and sample code if possible.
    Thanks everyone in advance.
    --Mithun.

    Hai Mithun Dha
    Go through the following Documentation & Example Code
    Just check these links.
    Diff. between LSMW & BDC?
    BDC SESSION
    CALL TRANSACTION
    CALL DIALOG
    What is BDC or batch input
    The Batch Input is a SAP technic that allows automating the input in transactions. It lies on a BDC (Batch Data Commands) scenario.
    BDC functions:
    E BDC_OPEN_GROUP : Opens a session group
    E BDC_CLOSE_GROUP : Closes a session
    E BDC_INSERT : Insert a BDC scenario in the session
    E The ABAP statement "CALL TRANSACTION" is also called to run directly a transaction from its BDC table.
    It runs the program RSBDCSUB in order to launch automatically the session. The session management is done through the transaction code SM35.
    The object itself is maintanable through the transaction SE24.
    BDC methods:
    Method
    Description
    Parameters
    OPEN_SESSION
    Opens a session
    SUBRC (Return Code ? 0 OK)
    SESSIONNAME (Session to be created)
    CLOSE_SESSION
    Closes a session
    None
    RESET_BDCDATA
    Resets the BDC Internal Table...
    None. Normally, for internal purposec
    BDC_DYNPRO
    Handles a new screen
    PROGNAME (Name of the program)
    DYNPRONR (Screen Number)
    BDC_FIELD
    Puts a value on the screen
    FIELDNAME (Name of the field)
    FIELDVALUE (Value to be passed)
    CONSTRUCTOR
    Constructor - Initializes NO_DATA
    NODATA (No data character). The constructor is called automatically when the object is created.
    RUN_SESSION
    Launches a session with RSBDCBTC
    None
    CALL_TRANSACTION
    Calls a transaction with the current BDC Data
    MODE (Display Mode)
    UPDATE (Update Mode)
    TCODE (Transaction to be called)
    BDC_INSERT
    Inserts the BDC scenario in the session
    TCODE (Transaction to be called)
    BDC techniques used in programs:
    1) Building a BDC table and calling a transaction,
    2) Building a session and a set of BDC scenarios and keeping the session available in SM35,
    3) Building a session and lauching the transaction right after closing the session.
    BDC using Call Transaction
    BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP
    program. The process involves building an Internal BDC table containing the screen information needed to
    execute the required transaction and then passing this to the Call transaction command (See code example).
    The full procedure for creating a BDC program is as follows:
    What is the difference between batch input and call transaction in BDC?
    Session method.
    1) synchronous processing.
    2) can tranfer large amount of data.
    3) processing is slower.
    4) error log is created
    5) data is not updated until session is processed.
    Call transaction.
    1) asynchronous processing
    2) can transfer small amount of data
    3) processing is faster.
    4) errors need to be handled explicitly
    5) data is updated automatically
    BATINPUT/DIRECT INPUT
    A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.
    GO THROUGH THIS LINK
    http://www.guidancetech.com/people/holland/sap/abap/zzsni001.htm
    check with this code
    include bdcrecx1.
    tables : mara.
    data : begin of it_mara occurs 0,
    matnr like mara-matnr,
    mbrsh like mara-mbrsh,
    mtart like mara-mtart,
    maktx like makt-maktx,
    meins like mara-meins,
    end of it_mara.
    start-of-selection.
    perform upload_data.
    perform open_group.
    loop at it_mara.
    perform bdc_dynpro using 'SAPLMGMM' '0060'.
    perform bdc_field using 'BDC_CURSOR'
    'RMMG1-MATNR'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'RMMG1-MATNR'
    it_mara-matnr.
    perform bdc_field using 'RMMG1-MBRSH'
    it_mara-mbrsh.
    perform bdc_field using 'RMMG1-MTART'
    it_mara-mtart.
    perform bdc_dynpro using 'SAPLMGMM' '0070'.
    perform bdc_field using 'BDC_CURSOR'
    'MSICHTAUSW-DYTXT(02)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(02)'
    'X'.
    perform bdc_dynpro using 'SAPLMGMM' '4004'.
    perform bdc_field using 'BDC_OKCODE'
    '=BU'.
    perform bdc_field using 'MAKT-MAKTX'
    it_mara-maktx.
    perform bdc_field using 'BDC_CURSOR'
    'MARA-MEINS'.
    perform bdc_field using 'MARA-MEINS'
    it_mara-meins.
    perform bdc_field using 'MARA-MTPOS_MARA'
    'NORM'.
    perform bdc_transaction using 'MM01'.
    endloop.
    perform close_group.
    *& Form upload_data
    text
    --> p1 text
    <-- p2 text
    FORM upload_data .
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    FILENAME = 'c:\mat_bdc.txt'
    FILETYPE = 'ASC'
    TABLES
    DATA_TAB = it_mara.
    IF SY-SUBRC = 0.
    SORT IT_MARA BY MATNR.
    ENDIF.
    ENDFORM. " upload_data
    flat file structure is
    PRANIT_011 CCOUP This is Testing material kg
    PRANIT_012 CCOUP This is Testing material kg
    PRANIT_013 CCOUP This is Testing material kg
    PRANIT_014 CCOUP This is Testing material kg
    PRANIT_015 CCOUP This is Testing material kg
    when your selecting views
    this particular material will belongs to Po/Sales or some other areas .
    when you select basic 1 --it gives description
    select basic 2 -- it gives tax ,amount, base unit of measurement
    BDC TO BAPI
    The steps to be followed are :
    1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
    [for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]
    2. Create a Z program and call the BAPi (same as a Funtion module call).
    2. Now, if you see this BAPi, it has
    -> Importing structures.
    eg: SALESDOCUMENT: this will take the Sales order header data as input.
    -> Tables parameters:
    eg: ORDER_ITEM_IN: this will take the line item data as input.
    Note :
    Only specify fields that should be changed
    Select these fields by entering an X in the checkboxes
    Enter a U in the UPDATEFLAG field
    Always specify key fields when changing the data, including in the checkboxes
    The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
    Maintain quantities and dates in the schedule line data
    Possible UPDATEFLAGS:
    U = change
    D = delete
    I = add
    Example
    1. Delete the whole order
    2. Delete order items
    3. Change the order
    4. Change the configuration
    Notes
    1. Minimum entry:
    You must enter the order number in the SALESDOCUMENT structure.
    You must always enter key fields for changes.
    You must always specify the update indicator in the ORDER_HEADER_INX.
    2. Commit control:
    The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
    For further details... refer to the Function Module documentation for the BAPi.
    For User Exits
    User Exits
    Screen exits are exits that allow you to use a reserved part of the screen (A subscreen) to display or input data.
    It is determined be SAP where the sub screen will be displayed.
    The syntax is: CALL CUSTOMER-SUBSCREEN
    The screen exit is not processed untill the corresponding subscreen has been created in an enhancement project,
    and the project has been activated.
    Note:
    Function codes are only processed in the main screens flow logic
    You are not allowed to enter a name for the subscreens command field
    You are not allowed to define GUI stauses
    You are not allowed to enter a value for Next screen
    The global data of the program is not available for the subscreen. Data for the subscreen is provided by function modules.
    These function modules belongs to the same function group as the subscreen Subscreens are edited with transaction CMOD.
    When you activate a project containg subscreens, the calling screen is regenerated and the subscreen is displayed next
    time you display the calling screen
    The developer must create the subscreen and the corresponding PBO and PAI modules
    How to identify screen exits
    Look after CALL CUSTOMER-SUBSCREEN in the screenprogram of the screen you want to modify.
    Use transaction CMOD menu Utillities -> SAP enhancements to search for screen exits
    MENU EXITS
    Menu exits allow you to add your own functionallity to menus. Menu exits are implemented by SAP, and are reserved menu
    entries in the GUI interface. The developer can add his/her own text and logic for the menu.
    Function codes for menu exits all start with "+"
    Example
    We want to create a new menu item in the Office menu. The text for the menu should be "Run ZTEST", and the menu will
    run report ZTEST.
    Goto transaction SE43 Area Menu Maintenance
    In Area Menu Paramenter type 'S000' (S triple Zero)
    Select Change and ignore all the warning screens
    Expand the office menu. In the buttom of the office tree you will find a menu named "Customer function"
    Double click on the text. In the pop-up screen change the text to "Run ZTEST". Note that the trsnaction code is +C01
    Goto transaction SE93 and create transaction +C01 that calls report ZTEST.
    Now you will se the menu displayed in the office tree. If you delete transaction +C01 again, the new menu will dissapear.
    USER EXITS
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule.
    The code for the function module is writeen by the developer. You are not writing the code directly in the function module,
    but in the include that is implemented in the function module.
    The naming standard of function modules for functionmodule exits is: EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as: CALL CUSTOMER.-FUNCTION <3 digit suffix>
    Example:
    The program for transaction VA01 Create salesorder is SAPMV45A
    If you search for CALL CUSTOMER-FUNCTION i program SAPMV45A you will find ( Among other user exits):
    CALL CUSTOMER-FUNCTION '003'
    exporting
    xvbak = vbak
    xvbuk = vbuk
    xkomk = tkomk
    importing
    lvf_subrc = lvf_subrc
    tables
    xvbfa = xvbfa
    xvbap = xvbap
    xvbup = xvbup.
    The exit calls function module EXIT_SAPMV45A_003
    2. How to find user exits
    Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT
    If you know the Exit name, go to transaction CMOD. Choose menu Utillities->SAP Enhancements.
    Enter the exit name and press enter.
    You will now come to a screen that shows the function module exits for the exit.
    3. Using Project management of SAP Enhancements
    We want to create a project to enahance trasnaction VA01
    Go to transaction CMOD
    Create a project called ZVA01
    Choose the Enhancement assign radio button and press the Change button
    In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an enhancement can only
    be used i 1 project. If the enhancement is allready in use, and error message will be displayed
    Press Save
    Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.
    Now the function module is displayed. Double click on include ZXVVAU04 in the function module
    Insert the following code into the include: E_KUNNR = '2155'.
    Activate the include program. Go back to CMOD and activate the project.
    Goto transaction VA01 and craete a salesorder. Note that Sold-to-party now automatically is "2155"
    Have look at this links
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf
    http://www.sapgenie.com/abap/ole.htm
    http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf
    Creation of Field Exits
    Step by step procedure for creating Field Exits
    There are eight steps to creating a field exit:
    Step 1: Determine Data Element
    Step 2: Go To Field Exit Transaction
    Step 3: Create Field Exit
    Step 4: Create Function Module
    Step 5: Code Function Module
    Step 6: Activate Function Module
    Step 7: Assign Program/Screen
    Step 8: Activate Field Exit
    Step 1: Determine Data Element
    - Before you can begin adding the functionality for a field exit, you must know the corresponding data element.
    - An easy way to determine the data element associated to a particular screen field is to:
    Go the appropriate screen.
    Position the cursor in the appropriate field.
    Press eF1f for field-level help.
    Click on the eTechnical infof pushbutton (or press eF9f) on the help dialog box.
    On this Technical Information dialog box, the data element will be specified if the field is 'painted' from the ABAP/4 Dictionary.
    Step 2: Go To Field Exit Transaction
    - The transaction to create field exits is CMOD.
    - You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.
    - From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.
    - After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.
    NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.
    Step 3: Create Field Exit
    - From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.
    - After choosing this menu path, a dialog box will prompt you for the appropriate data element .
    - Enter the data element name and click the eContinuef pushbutton.
    - Now, you will be able to create the function module associated to the data elementfs field exit.
    Step 4: Create Function Module
    - You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the eContinuef pushbutton.
    - In the eFunction modulef field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:
    FIELD_EXIT_<data element>
    - You can add an identifier (an underscore followed by a single character ).
    - The first function module for a data elementfs field exit must be created without an identifier.
    - To create the function module, click on the eCreatef pushbutton, choose menu path Function module -> Create, or press eF5f.
    - After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing eEnterf, you will be able to go ahead and create the function module.
    - Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.
    Step 5: Code Function Module
    - From the function modulefs attributes screen, click on the eSource codef pushbutton or choose the Goto -> Function module menu path to the code of the function module.
    - Here you will add your desired functionality for the field exit.
    - Remember that field exitfs function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.
    - You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.
    Step 6: Activate Function Module
    - After coding the function module, you must remember to activate it.
    - Use the Function module -> Activate menu path to activate the function module.
    - At this point, you can return to the field exit transaction.
    - You should be able to 'green arrow' back to this transaction.
    - When you return to the field exit transaction, you will see an entry for the newly created field exit.
    - At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.
    - Also, the field exit will not be triggered yet because it is inactive.
    Step 7: Assign Program/Screen
    - This step is only needed if you want to make a field exit local.
    - To make a field exit local, select the field exit and click on the eAssign prog./screenf pushbutton.
    - In the dialog box , indicate the appropriate program name and screen number.
    This information indicates that the field exit is local to the specified screen in the specified program.
    - In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the eFld. Exitf field.
    - If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.
    - If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.
    Step 8: Activate Field Exit
    - The field exit must be active for it to be triggered by the system.
    - Activate the field exit by choosing the Field exit -> Activate menu path.
    - After assigning the field exit to a change request, its status will change to eActivef and it will be triggered automatically on the appropriate screen(s).
    NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers
    Thanks & regards
    Sreenivasulu P

Maybe you are looking for

  • About to install Win XP

    OK, I've printed out and RTFM about using Bootcamp, but given the huge number of problems I see on the forum I would like to ask some final advice before starting the process. I have OSX 1.5.2 My Mac Pro has 3 hard drives right now. One is for OSX, o

  • What kind of cable connects video iPod to tv?

    I can't find specific info on this other than the AV Monster cables on the apple site. I don't have the cable to connect my iPod to a tv yet and am wondering where to find it and what kind to get? I assume it plugs into the headphone jack output, but

  • Getting Error - Single-row subquery returns more than 1 row (Help Needed)

    I have the following SQL. It selects several rows of data. This data reflects changed records. I want to update PS_UNI_TEXTBK_SKEW for the values selected. Any ideas. For updating I used: update ps_uni_textbk_skew s set (s.ssr_txbdtl_title, s.ssr_txb

  • Redwood dashboards/scorecards loading very slow

    Hi all, We  have Redwood 8.0 on NW 7.3  , we are observing huge performance issues   while accessing DASHBOARDS & SCORECARDS. JCS_JOB0 and JCS_JOBDEF tables have huge selects like millions... We have message with Redwood team   and they are taking ti

  • Import adjusted photos from camera raw into Lr5

    I like using Bridge to import my photos but also like to use LR5. After I organize and edit in camera raw I want to import (ADD) the adjusted photos into LR5. Problem is the adjustments dont import into LR. The original raw DNG is imported without th