Skip to Content
author's profile photo Former Member
Former Member

help required BDC

Hi All,

I have to make BDC for maintaining customer data in those transaction codes at one go,

XD01

VK11

FD32

JI1D

Can any body suggest me how we can solve that.

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

3 Answers

  • Posted on Aug 12, 2008 at 08:00 AM

    - Try LSMW

    - Or try SHDB

    Regards

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Raymond Giuseppi

      Hi ,

      I created recording for XD01 and program also but when i am executing this BDC program and after that by SM35

      when i am runing the session then its giving some error.

      just clear these thing to me in BDC.

      1. BDC recording sequenceI

      2. The sequence of the fields in the .txt file

      3. The sequence of internal table fields sequence

      all three case the sequence of the fields should be same.

      can you tell me what thing i am doing wrong here.

      This is the my BDC code blow:

      report ZCUST_SNKS01

      no standard page heading line-size 255.

      PARAMETERS:

      group(12) obligatory DEFAULT 'CUST',

      user(12) obligatory DEFAULT SY-UNAME,

      pmode(1) obligatory default 'A'.

      data: session,ctu.

      ctu = 'X'.

      *----


      * Table/Structure declarations. *

      *----


      TABLES : KNA1,KNVV,KNVP. "Customer master

      DATA: BEGIN OF BDCDATA OCCURS 0.

      INCLUDE STRUCTURE BDCDATA.

      DATA: END OF BDCDATA.

      PARAMETER : P_FNAME LIKE RLGRAP-FILENAME

      DEFAULT 'C:\BDC\FINISHED.txt'.

      **----


      **u2022 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

      *

      *

      *----


      *u2022 Structures / Internal table declarations *

      *----


      *

      *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_Itab OCCURS 0,

      bukrs(4), "Company Code

      vkorg(4), "Sales Organization

      vtweg(2), "Distribution Channel

      spart(2), "Division

      ktokd(4), "Customer Account Group

      • zav(1), "checkbox- use central address management

      addr1(35), "Name 1

      addr2(35), "Name 2

      addr3(35), "Name 3

      addr4(35), "Name 4

      SORT1(20), "Search Term 1

      STREET(35), "Street

      STR_SUPPL1(40), "Street 2

      POST_CODE1(10), "City postal code

      CITY1(40), "City

      COUNTRY(3), "Country Key

      REGION(3), "Region (State, Province, County)

      TRANSPZONE(10), "Transportation zone to or from which the goods are delivered

      LANGU(2), "Language Key

      TEL_NUMBER(30), "First telephone no.: dialling code+number

      • FAX_NUMBER(10), "First fax no.: dialling code+number

      SMTP_ADDR(241), "E-Mail Address

      kdkg1(2), "Ideal Truck type

      BEGRU(4), "Authorization Group

      STCDT(2), "Tax Number Type

      FITYP(2), "Tax type

      COUNC(3), "County Code

      CITYC(4), "City Code

      • BANKS(3), "Bank country key

      • BANKL(15), "Bank Key

      • BVTYP(4), "Partner bank type

      name1(35), "first name

      name1235), "Name 1

      AKONT(10), "Reconciliation Account in General Ledger

      ZUAWA(3), "Key for sorting according to assignment numbers

      BEGRU2(4), "Authorization Group

      ZTERM(4), "Terms of payment key

      TOGRU(4), "Tolerance group for the business partner/G/L account

      ZWELS(10), "List of the Payment Methods to be Considered

      • XAUSZ(1), "Indicator for periodic account statements

      bzirk(6), "Sales district

      • awahr(3), "Order probability of the item

      vkbur(4), "Marketing Unit

      vkgrp(3), "Unit Office

      kdgrp(2), "Customer group

      waers(5), "Currency

      konda(2), "Discount zone

      kalks(1), "Pricing procedure assigned to this customer

      versg(1), "Customer statistics group

      kzazu(1), "Order combination indicator

      vwerk(4), "Delivering Plant (Own or External)

      • antlf(1), "Maximum Number of Partial Deliveries Allowed Per Item

      uebto(4), "Overdelivery tolerance limit

      inco1(3), "Inco Terms

      • zterm2(4),

      ktgrd(2), "Account assignment group for this customer

      • parvw(2), "Partner function

      ktonr(10), "Number of an SD business partner

      kvgr1(3), "CE Territory

      kvgr2(3), "Geographical District

      kvgr3(3), "Price Zone

      kvgr4(3), "Demographic Classification

      kvgr5(3), "Size - case wise

      AWAHR(3), "Order probability of the item

      PLTYP(2), "Price list

      LPRIO(2),

      VSBED(2), "Shipping conditions

      ANTLF(1),

      UNTTO(1),

      TAXKD_01(1),

      TAXKD_02(1),

      TAXKD_03(1),

      TAXKD(1),

      kkber(4), "Credit control area

      PARVW(5),

      • check1, "Process data

      • check2, "Process data

      • klimg(20), "Credit limit: Total limit across all control areas

      • klime(20), "Credit limit: Limit for individual control area

      • klimk(20), "Customer's credit limit

      • knkli(10), "Customer's account number with credit limit reference

      • horda(8), "Date of credit horizon

      • ctlpc(5), "Credit management: Risk category

      • sbgrp(3), "Credit representative group for credit management

      • nxtrv(10), "Next internal review

      • tlimit(10), "Transit Limit ( CAS )

      • llimit(10), "LCR LIMIT ( CAS )

      END OF it_Itab.

      **--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

      *include bdcrecx1.

      start-of-selection.

      PERFORM UP_GEN.

      *PERFORM UPLOAD.

      perform open_group.

      PERFORM FILL_BDCDATA.

      perform CLOSE_group.

      &----


      *& Form FILL_BDCDATA

      &----


      FORM FILL_BDCDATA.

      Loop at it_itab.

      perform bdc_dynpro using 'SAPMF02D' '0100'.

      perform bdc_field using 'BDC_CURSOR'

      'USE_ZAV'.

      perform bdc_field using 'BDC_OKCODE'

      '/00'.

      perform bdc_field using 'RF02D-BUKRS'

      IT_ITAB-BUKRS.

      perform bdc_field using 'RF02D-VKORG'

      IT_ITAB-VKORG.

      perform bdc_field using 'RF02D-VTWEG'

      IT_ITAb-VTWEG.

      perform bdc_field using 'RF02D-SPART'

      IT_ITAB-SPART.

      perform bdc_field using 'RF02D-KTOKD'

      IT_ITAB-KTOKD.

      perform bdc_field using 'USE_ZAV'

      'X'.

      perform bdc_dynpro using 'SAPMF02D' '0111'.

      perform bdc_field using 'BDC_OKCODE'

      '=ZUDA'.

      perform bdc_field using 'BDC_CURSOR'

      'SZA1_D0100-TEL_NUMBER'.

      perform bdc_field using 'ADDR1_DATA-NAME1'

      IT_ITAB-NAME1.

      perform bdc_field using 'ADDR1_DATA-NAMEv'

      IT_ITAB-NAMEv.

      perform bdc_field using 'ADDR1_DATA-SORT1'

      IT_ITAB-SORT1.

      perform bdc_field using 'ADDR1_DATA-STREET'

      IT_ITAB-STREET.

      perform bdc_field using 'ADDR1_DATA-POST_CODE1'

      IT_ITAB-POST_CODE1.

      perform bdc_field using 'ADDR1_DATA-COUNTRY'

      IT_ITAB-COUNTRY.

      perform bdc_field using 'ADDR1_DATA-REGION'

      IT_ITAB-REGION.

      perform bdc_field using 'ADDR1_DATA-TRANSPZONE'

      IT_ITAB-TRANSPZONE.

      perform bdc_field using 'ADDR1_DATA-LANGU'

      IT_ITAB-LANGU.

      perform bdc_field using 'SZA1_D0100-TEL_NUMBER'

      IT_ITAB-TEL_NUMBER.

      perform bdc_dynpro using 'SAPLV02Z' '0100'.

      perform bdc_field using 'BDC_CURSOR'

      'KNA1-KDKG1'.

      perform bdc_field using 'BDC_OKCODE'

      '=BACK'.

      perform bdc_field using 'KNA1-KDKG1'

      IT_ITAB-KDKG1.

      perform bdc_dynpro using 'SAPMF02D' '0111'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'BDC_CURSOR'

      'ADDR1_DATA-TIME_ZONE'.

      perform bdc_field using 'ADDR1_DATA-NAME1'

      IT_ITAB-NAME1.

      perform bdc_field using 'ADDR1_DATA-NAME2'

      IT_ITAB-NAMEv.

      perform bdc_field using 'ADDR1_DATA-SORT1'

      IT_ITAB-SORT1.

      perform bdc_field using 'ADDR1_DATA-STREET'

      IT_ITAB-STREET.

      perform bdc_field using 'ADDR1_DATA-POST_CODE1'

      IT_ITAB-POST_CODE1.

      perform bdc_field using 'ADDR1_DATA-COUNTRY'

      IT_ITAB-COUNTRY.

      perform bdc_field using 'ADDR1_DATA-REGION'

      IT_ITAB-REGION.

      perform bdc_field using 'ADDR1_DATA-TRANSPZONE'

      IT_ITAB-TRANSPZONE.

      perform bdc_field using 'ADDR1_DATA-LANGU'

      IT_ITAB-LANGU.

      perform bdc_field using 'SZA1_D0100-TEL_NUMBER'

      IT_ITAB-TEL_NUMBER.

      perform bdc_dynpro using 'SAPMF02D' '0120'.

      perform bdc_field using 'BDC_CURSOR'

      'KNA1-FITYP'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNA1-BEGRU'

      IT_ITAB-BEGRU.

      perform bdc_field using 'KNA1-STCDT'

      IT_ITAB-STCDT.

      perform bdc_field using 'KNA1-FITYP'

      IT_ITAB-FITYP.

      perform bdc_field using 'KNA1-COUNC'

      IT_ITAB-COUNC.

      perform bdc_field using 'KNA1-CITYC'

      IT_ITAB-CITYC.

      perform bdc_dynpro using 'SAPMF02D' '0130'.

      perform bdc_field using 'BDC_CURSOR'

      'KNBK-BANKS(01)'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_dynpro using 'SAPMF02D' '0360'.

      perform bdc_field using 'BDC_CURSOR'

      'KNVK-NAME1(01)'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNVK-NAMEV(01)'

      IT_ITAB-NAMEV.

      perform bdc_field using 'KNVK-NAME1(01)'

      IT_ITAB-NAME1.

      perform bdc_dynpro using 'SAPMF02D' '0210'.

      perform bdc_field using 'BDC_CURSOR'

      'KNB1-ZUAWA'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNB1-AKONT'

      IT_ITAB-AKONT.

      perform bdc_field using 'KNB1-ZUAWA'

      IT_ITAB-ZUAWA.

      perform bdc_field using 'KNB1-BEGRU'

      IT_ITAB-ZUAWA.

      perform bdc_dynpro using 'SAPMF02D' '0215'.

      perform bdc_field using 'BDC_CURSOR'

      'KNB1-ZWELS'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNB1-ZTERM'

      IT_ITAB-ZTERM.

      perform bdc_field using 'KNB1-TOGRU'

      IT_ITAB-TOGRU.

      perform bdc_field using 'KNB1-ZWELS'

      IT_ITAB-ZWELS.

      perform bdc_dynpro using 'SAPMF02D' '0220'.

      perform bdc_field using 'BDC_CURSOR'

      'KNB1-XAUSZ'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNB1-XAUSZ'

      '1'.

      perform bdc_dynpro using 'SAPMF02D' '0310'.

      perform bdc_field using 'BDC_CURSOR'

      'KNVV-VERSG'.

      perform bdc_field using 'BDC_OKCODE'

      '=ZUDA'.

      perform bdc_field using 'KNVV-BZIRK'

      IT_ITAB-BZIRK.

      perform bdc_field using 'KNVV-AWAHR'

      IT_ITAB-AWAHR.

      perform bdc_field using 'KNVV-VKBUR'

      IT_ITAB-VKBUR.

      perform bdc_field using 'KNVV-BEGRU'

      IT_ITAB-BEGRU.

      perform bdc_field using 'KNVV-VKGRP'

      IT_ITAB-VKGRP.

      perform bdc_field using 'KNVV-KDGRP'

      IT_ITAB-KDGRP.

      perform bdc_field using 'KNVV-WAERS'

      IT_ITAB-WAERS.

      perform bdc_field using 'KNVV-KONDA'

      IT_ITAB-KONDA.

      perform bdc_field using 'KNVV-KALKS'

      IT_ITAB-KALKS.

      perform bdc_field using 'KNVV-PLTYP'

      IT_ITAB-PLTYP.

      perform bdc_field using 'KNVV-VERSG'

      IT_ITAB-VERSG.

      perform bdc_dynpro using 'SAPLV02Z' '0200'.

      perform bdc_field using 'BDC_CURSOR'

      'KNVV-KVGR5'.

      perform bdc_field using 'BDC_OKCODE'

      '=BACK'.

      perform bdc_field using 'KNVV-KVGR1'

      IT_ITAB-KVGR1.

      perform bdc_field using 'KNVV-KVGR2'

      IT_ITAB-KVGR2.

      perform bdc_field using 'KNVV-KVGR3'

      IT_ITAB-KVGR3.

      perform bdc_field using 'KNVV-KVGR4'

      IT_ITAB-KVGR4.

      perform bdc_field using 'KNVV-KVGR5'

      IT_ITAB-KVGR5.

      perform bdc_dynpro using 'SAPMF02D' '0310'.

      perform bdc_field using 'BDC_CURSOR'

      'KNVV-BZIRK'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNVV-BZIRK'

      IT_ITAB-BZIRK.

      perform bdc_field using 'KNVV-AWAHR'

      IT_ITAB-AWAHR.

      perform bdc_field using 'KNVV-VKBUR'

      IT_ITAB-VKBUR.

      perform bdc_field using 'KNVV-BEGRU'

      IT_ITAB-BEGRU.

      perform bdc_field using 'KNVV-VKGRP'

      IT_ITAB-VKGRP.

      perform bdc_field using 'KNVV-KDGRP'

      IT_ITAB-KDGRP.

      perform bdc_field using 'KNVV-WAERS'

      IT_ITAB-WAERS.

      perform bdc_field using 'KNVV-KONDA'

      IT_ITAB-KONDA.

      perform bdc_field using 'KNVV-KALKS'

      IT_ITAB-KALKS.

      perform bdc_field using 'KNVV-PLTYP'

      IT_ITAB-PLTYP.

      perform bdc_field using 'KNVV-VERSG'

      IT_ITAB-VERSG.

      perform bdc_dynpro using 'SAPMF02D' '0315'.

      perform bdc_field using 'BDC_CURSOR'

      'KNVV-UEBTO'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNVV-LPRIO'

      IT_ITAB-LPRIO.

      perform bdc_field using 'KNVV-KZAZU'

      'X'.

      perform bdc_field using 'KNVV-VSBED'

      IT_ITAB-VSBED.

      perform bdc_field using 'KNVV-VWERK'

      IT_ITAB-VWERK.

      perform bdc_field using 'KNVV-ANTLF'

      IT_ITAB-ANTLF.

      perform bdc_field using 'KNVV-UNTTO'

      IT_ITAB-UNTTO.

      perform bdc_field using 'KNVV-UEBTO'

      IT_ITAB-UEBTO.

      perform bdc_dynpro using 'SAPMF02D' '0320'.

      perform bdc_field using 'BDC_CURSOR'

      'KNVV-KTGRD'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNVV-INCO1'

      IT_ITAB-INCO1.

      perform bdc_field using 'KNVV-ZTERM'

      IT_ITAB-ZTERM.

      perform bdc_field using 'KNVV-KTGRD'

      IT_ITAB-KTGRD.

      perform bdc_dynpro using 'SAPMF02D' '1350'.

      perform bdc_field using 'BDC_CURSOR'

      'KNVI-TAXKD(04)'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNVI-TAXKD(04)'

      IT_ITAB-TAXKD.

      perform bdc_dynpro using 'SAPMF02D' '0324'.

      perform bdc_field using 'BDC_CURSOR'

      'RF02D-KTONR(05)'.

      perform bdc_field using 'BDC_OKCODE'

      '=VW'.

      perform bdc_field using 'KNVP-PARVW(05)'

      IT_ITAB-PARVW.

      perform bdc_field using 'RF02D-KTONR(05)'

      IT_ITAB-KTONR.

      perform bdc_transaction using 'XD01'.

      • perform close_group.

      endloop.

      ENDFORM.

      ----


      • FORM UP_GEN *

      ----


      • ........ *

      ----


      FORM UP_GEN.

      CALL FUNCTION 'UPLOAD'

      EXPORTING

      FILENAME = 'C:\FINISHED.TXT'

      FILETYPE = 'DAT'

      TABLES

      DATA_TAB = IT_ITAB.

      ENDFORM.

      ----


      • create batchinput session *

      ----


      ----


      • Start new screen *

      ----


      FORM BDC_DYNPRO USING PROGRAM DYNPRO.

      CLEAR BDCDATA.

      BDCDATA-PROGRAM = PROGRAM.

      BDCDATA-DYNPRO = DYNPRO.

      BDCDATA-DYNBEGIN = 'X'.

      APPEND BDCDATA.

      ENDFORM.

      ----


      • Insert field *

      ----


      FORM BDC_FIELD USING FNAM FVAL.

      CLEAR BDCDATA.

      BDCDATA-FNAM = FNAM.

      BDCDATA-FVAL = FVAL.

      APPEND BDCDATA.

      ENDFORM.

      ----


      • create batchinput session *

      ----


      form open_group.

      • open batchinput group

      call function 'BDC_OPEN_GROUP'

      exporting

      client = sy-mandt

      group = group

      user = user.

      endform.

      ----


      • end batchinput session *

      ----


      form close_group.

      • close batchinput group

      call function 'BDC_CLOSE_GROUP'.

      endform.

      ----


      • Start new transaction *

      ----


      form bdc_transaction using tcode.

      call function 'BDC_INSERT'

      exporting

      tcode = tcode

      tables

      dynprotab = bdcdata.

      endform.

      &----


      *& Form UPLOAD

      &----


      • text

      ----


      • --> p1 text

      • <-- p2 text

      ----


      FORM UPLOAD .

      call function 'WS_UPLOAD'

      exporting

      • CODEPAGE = ' '

      filename = P_FNAME

      filetype = 'DAT'

      • HEADLEN = ' '

      • LINE_EXIT = ' '

      • TRUNCLEN = ' '

      • USER_FORM = ' '

      • USER_PROG = ' '

      • DAT_D_FORMAT = ' '

      • IMPORTING

      • FILELENGTH =

      Tables

      data_tab = it_itab

      exceptions

      conversion_error = 1

      file_open_error = 2

      file_read_error = 3

      invalid_type = 4

      no_batch = 5

      unknown_error = 6

      invalid_table_width = 7

      gui_refuse_filetransfer = 8

      customer_error = 9

      no_authority = 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.

  • author's profile photo Former Member
    Former Member
    Posted on Aug 12, 2008 at 03:16 PM

    Hi,

    U need to use session method for this.... first record alll the tocdes which u want ... then use session method ....

    u need to call BDC_INSERT FM , how many tcodes u want to update the data ...

    Raghunath.S

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hi Rashi,

      First you need to create BDC for all transacstions seperately with some test data. Once the BDC code is ready with you, you can create a report program where you give the BDC codes in sequence as you need. For example, First u can call XK01 BDC and from that u can pass the vendor number created using XK01 into VK11 and so on.

      U can use call transaction method for this.

      Hope this solves ur problem.

      Regards,

      Asif Ali Khan

  • Posted on Aug 12, 2008 at 04:50 PM
    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.