Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

bdc for va41

Former Member
0 Kudos

hi

can any one have sample code for VA41 sales contract(bdc).

i need to develop bdc program for sales contract VA41.

please provide sample code.its urgent.

thanks in advance.

2 REPLIES 2

Former Member
0 Kudos

Hi,

use SHDB to record VA41 and generate a programm.

That's the simplest way.

Regards, Dieter

Former Member
0 Kudos

Hi

see the sample code for MM contracts not SD VA41

but record similar to it using SHDB and do it

REPORT zmm_contract_upload_mat

NO STANDARD PAGE HEADING

LINE-SIZE 255.

  • Standard Include for Selection Screen

INCLUDE bdcrecx1.

  • Internal Table for Upload Data

DATA: BEGIN OF i_con OCCURS 0,

  • Initial Screen

sno(3), " SNo

lifnr(010), " Vendor No

evart(004), " Contract Type

vedat(010), " Contract Creation Date

ekorg(004), " Purchase Orgn

ekgrp(003), " Pur.Group

bukrs(004), " Company Code

  • Header Details Screen

kdatb(010), " Start Date

kdate(010), " End Date

zterm(004), " Payment Terms

ktwrt(020), " Target Value

waers(005), " Currency

  • zbd1t(003), " Payment Days

  • wkurs(012), " Exchange Rate

inco1(003), " Incoterms

  • Item Data

ematn(018), " Material No

ktmng(017), " Quantity

netpr(014), " Price

  • Item Details

  • abmng(017),

  • peinh(005),

  • bprme(003),

  • bpumn(006),

  • bpumz(006),

  • mahn1(004),

  • mahn2(004),

  • mahn3(004),

bednr(010), " Tracking No

  • prsdr(001),

  • repos(001),

END OF i_con.

  • Internal Table for header Data

DATA: BEGIN OF it_header OCCURS 0,

sno(3), " SNo

lifnr(010), " Vendor No

evart(004), " Contract Type

vedat(010), " Contract Creation Date

ekorg(004), " Purchase Orgn

ekgrp(003), " Pur.Group

bukrs(004), " Company Code

kdatb(010), " Start Date

kdate(010), " End Date

zterm(004), " Payment Terms

ktwrt(020), " Target Value

waers(005), " Currency

inco1(003), " Incoterms

END OF it_header.

  • Internal Table for Item Data

DATA: BEGIN OF it_item OCCURS 0,

sno(3), " SNo

ematn(018), " Material No

ktmng(017), " Quantity

netpr(014), " Price

bednr(010), " Tracking No

END OF it_item.

  • Data Variables & Constants

CONSTANTS : c_x VALUE 'X'. " Flag

DATA : v_l(2), " Counter

v_rows LIKE sy-srows, " Rows in TC

v_field(45). " String

  • Parameters

PARAMETERS: p_file LIKE ibipparms-path. " Filename

  • At selection-screen on Value Request for file Name

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  • Get the F4 Values for the File

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

IMPORTING

file_name = p_file.

  • Start of Selection

START-OF-SELECTION.

  • Open the BDC Session

PERFORM open_group.

  • Upload the File into internal Table

CALL FUNCTION 'UPLOAD'

EXPORTING

filename = p_file

filetype = 'DAT'

TABLES

data_tab = i_con

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.

SORT i_con BY sno.

LOOP AT i_con.

MOVE-CORRESPONDING i_con TO it_item.

APPEND it_item.

CLEAR it_item.

AT END OF sno.

READ TABLE i_con INDEX sy-tabix.

MOVE-CORRESPONDING i_con TO it_header.

APPEND it_header.

CLEAR it_header.

ENDAT.

ENDLOOP.

SORT it_header BY sno.

SORT it_item BY sno.

v_rows = sy-srows - 6.

  • Upload the Data from Internal Table

LOOP AT it_header.

PERFORM bdc_dynpro USING 'SAPMM06E' '0200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EKKO-EKGRP'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EKKO-LIFNR'

it_header-lifnr.

PERFORM bdc_field USING 'RM06E-EVART'

it_header-evart.

PERFORM bdc_field USING 'RM06E-VEDAT'

it_header-vedat.

PERFORM bdc_field USING 'EKKO-EKORG'

it_header-ekorg.

PERFORM bdc_field USING 'EKKO-EKGRP'

it_header-ekgrp.

  • Company Code Data

PERFORM bdc_dynpro USING 'SAPMM06E' '0514'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EKKO-BUKRS'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTE'.

PERFORM bdc_field USING 'EKKO-BUKRS'

it_header-bukrs.

  • Header Details Data

PERFORM bdc_dynpro USING 'SAPMM06E' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EKKO-INCO1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EKKO-KDATB'

it_header-kdatb.

PERFORM bdc_field USING 'EKKO-KDATE'

it_header-kdate.

PERFORM bdc_field USING 'EKKO-ZTERM'

it_header-zterm.

PERFORM bdc_field USING 'EKKO-KTWRT'

it_header-ktwrt.

PERFORM bdc_field USING 'EKKO-WAERS'

it_header-waers.

  • PERFORM bdc_field USING 'EKKO-ZBD1T'

  • it_header-zbd1t.

  • PERFORM bdc_field USING 'EKKO-WKURS'

  • it_header-wkurs.

PERFORM bdc_field USING 'EKKO-INCO1'

it_header-inco1.

  • Item Data

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EKPO-NETPR(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

v_l = 0.

LOOP AT it_item where sno = it_header-sno.

v_l = v_l + 1.

CLEAR v_field.

CONCATENATE 'EKPO-EMATN(' v_l ')' INTO v_field.

PERFORM bdc_field USING v_field it_item-ematn.

CLEAR v_field.

CONCATENATE 'EKPO-KTMNG(' v_l ')' INTO v_field.

PERFORM bdc_field USING v_field it_item-ktmng.

CLEAR v_field.

CONCATENATE 'EKPO-NETPR(' v_l ')' INTO v_field.

PERFORM bdc_field USING v_field it_item-netpr.

  • Item details

PERFORM bdc_dynpro USING 'SAPMM06E' '0211'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EKPO-BEDNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

  • PERFORM bdc_field USING 'EKPO-ABMNG'

  • i_con-abmng.

  • PERFORM bdc_field USING 'EKPO-PEINH'

  • i_con-peinh.

  • PERFORM bdc_field USING 'EKPO-BPRME'

  • i_con-bprme.

  • PERFORM bdc_field USING 'EKPO-BPUMN'

  • i_con-bpumn.

  • PERFORM bdc_field USING 'EKPO-BPUMZ'

  • i_con-bpumz.

  • PERFORM bdc_field USING 'EKPO-MAHN1'

  • i_con-mahn1.

  • PERFORM bdc_field USING 'EKPO-MAHN2'

  • i_con-mahn2.

  • PERFORM bdc_field USING 'EKPO-MAHN3'

  • i_con-mahn3.

PERFORM bdc_field USING 'EKPO-BEDNR'

it_item-bednr.

  • PERFORM bdc_field USING 'EKPO-PRSDR'

  • i_con-prsdr.

  • PERFORM bdc_field USING 'EKPO-REPOS'

  • i_con-repos.

  • IF v_l = v_rows.

  • v_l = 0.

  • PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

  • PERFORM bdc_field USING 'BDC_OKCODE'

  • '/00'.

  • PERFORM bdc_dynpro USING 'SAPMM06E' '220'.

  • PERFORM bdc_field USING 'BDC_OKCODE'

  • 'P+'.

  • ENDIF.

ENDLOOP.

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RM06E-EBELP'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BU'.

  • Call The Transaction

PERFORM bdc_transaction USING 'ME31K'.

ENDLOOP.

  • Close the BDC Session

PERFORM close_group.

Regards

Anji