Documente Academic
Documente Profesional
Documente Cultură
Author:
Budi Rachman
E-mail: budi_rachman@yahoo.com
1. Abstraction
This paper will explain on how to run data transfer from Excel format to SAP easily and
quickly, without creating special ABAP program for uploading the data. The idea was to
create a generic ABAP program that is able to upload data to any SAP transaction. BDC
table will be generated externally, no longer hard coded in ABAP program, in other words
programmable BDC, or in specific name it is called: Programmable Logic Data Interface
(PLDI).
2. Writing a logic
Logic is written in Ms. Excel format using the first two columns, and ended by symbol @.
This file must be save-as using type Text (Tab Delimited). First row of logic file must be
header and it is not logic code. Maximum 35 characters can be used for the first column, and
132 characters for the second column. Other column can be used for documentation or
explanation, if symbol < is used as a first character of first column, it means a comment in
logic column. A logic is a simplified of BDC table (Batch Data Communication). There are
three kinds of logic, logic level-1, logic level-2 and extended logic. Logic level-1 is used to
execute flat data or header data, logic level-2 is used to execute item data, and extended
logic is used to execute extended data or sub-item data.
Name and Value: First row of logic, just a description, cannot be used for logic code.
(program name), (screen number) and (screen field) can be seen from technical
information (HelpTechnical info),
(data): could be constant data or variable data. Symbol = is used for constant data,
and if it is variable data, symbol & is used,
(function code) can be seen by clicking right button mouse or pointing the menu, hold the
line and press F1.
Keywords Description
&<column_number> Always at second column of logic and for executing variable data.
Column number refers to a particular column of data which is to
be executed.
=<constant> Always at second column of logic and for constant data. Only =
or BLANK can be used for empty data.
1
Programmable Logic Data Interface - 2 of 14
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
@
2. Data level-2
It contains header data and item data, one record of SAP transaction may have
several lines of data (e.g. sales order, purchase order etc). Logic level-1 and logic
level-2 are required, logic level-1 to execute header data, and logic level-2 to
execute item data. If first item data is the same row with header data, logic level-1
will execute both of them.
XXXXXXXXXXXXXXXNNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNN
XXXXXXXXXXXXXXXNNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNN
XXXXXXXXXXXXXXXNNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNN
@
Programmable Logic Data Interface - 3 of 14
XXXXXXXXXXXXXXXNNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNNEEEEEEEE
XXXXXXXXXXXXXXXNNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNNEEEEEEEE
XXXXXXXXXXXXXXXNNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNNEEEEEEEE
@
XXXXXXXXXXXXXXXNNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
NNNNNNNNNN
NNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
XXXXXXXXXXXXXXXNNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
NNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
NNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
NNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
XXXXXXXXXXXXXXXNNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
NNNNNNNNNN
#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@
Programmable Logic Data Interface - 4 of 14
5. Weakness
The program cannot do conditional case logic (if then else). Data will be uploaded to SAP
R/3 as it is without additional checking (for some rare cases, additional checking may be
done using this program, special logic is created and dedicated for this checking, and error
analysis in batch mode is used for checking). For complicated data transfer, creating ABAP
program is suggested.
6. Examples
Following are examples for uploading data into R/3.
1. Uploading equipment master, TCODE = IE01.
1 2
1 EQUI001 PT Gaya Motor
2 EQUI002 PT Gaya Motor
3 EQUI003 PT Gaya Motor
10 @
Logic level-1
A B
1 Name Value
2 SAPMIEQ0 0100
3 RM63E-EQUNR &1
4 RM63E-DATSL =05.06.1997
5 RM63E-EQTYP =A
6 RM63E-REFMA =10101010300000
7 SAPMIEQ0 0102
8 EQUI-HERST &2
9 /11
10 @
1 2 3 4 5 6 7 8 9 10 11
1 Vendor Type Porg Grp Material Qty Price Del.Date Plant SL Mat.Grp
2 100031 NB 0450 D10 231000913 2 10000 27.05.97 0451 0010 CO_NOKANB
3 231000914 1 20000 27.05.97 0451 0010 CO_NOKANB
4 231000915 1 30000 27.05.97 0451 0010 CO_NOKANB
5 100032 NB 0450 D10 231000916 2 10000 27.05.97 0451 0010 CO_NOKANB
6 231000917 1 20000 27.05.97 0451 0010 CO_NOKANB
7 231000918 1 30000 27.05.97 0451 0010 CO_NOKANB
8 100033 NB 0450 D10 231000919 2 10000 27.05.97 0451 0010 CO_NOKANB
9 231000920 1 20000 27.05.97 0451 0010 CO_NOKANB
10 231000921 1 30000 27.05.97 0451 0010 CO_NOKANB
11 @
Logic level-1
A B
1 Name Value
Programmable Logic Data Interface - 6 of 14
2 SAPMM06E 100
3 EKKO-LIFNR &1
4 RM06E-BSART &2
5 EKKO-EKORG &3
6 EKKO-EKGRP &4
7 SAPMM06E 121
8 EKPO-EMATN(1) &5
9 EKPO-MENGE(1) &6
10 EKPO-NETPR(1) &7
11 RM06E-EEIND(1) &8
12 EKPO-WERKS(1) &9
13 EKPO-LGORT(1) &10
14 EKPO-MATKL(1) &11
15 @
Logic level-2
A B
1 Name Value
2 SAPMM06E 121
3 EKPO-EMATN(2) &5
4 EKPO-MENGE(2) &6
5 EKPO-NETPR(2) &7
6 RM06E-EEIND(2) &8
7 EKPO-WERKS(2) &9
8 EKPO-LGORT(2) &10
9 EKPO-MATKL(2) &11
10 NP
11 @
1 2 3 4 5 6 7 8 9 10
Document date PstKy Account Amount Tax PstKy Account Amount Tax Cost Ctr
210699 01 B10000 10500 X 01 A11113
21000 01 A11115
31500 1100
210699 01 B10000 10500 X 01 A11113
21000 01 A11115
31500 1200
@
Logic level-1
A B
1 Name Value
2 SAPMF05A 100
3 BKPF-BLDAT &1
4 RF05A-NEWBS &2
5 RF05A-NEWKO &3
6 SAPMF05A 0301
7 BSEG-WRBTR &4
8 BKPF-XMWST &5
9 RF05A-NEWBS &6
Programmable Logic Data Interface - 7 of 14
10 RF05A-NEWKO &7
11 @
Logic level-2
A B
1 Name Value
2 SAPMF05A 0301
3 BSEG-WRBTR &4
4 RF05A-NEWBS &6
5 RF05A-NEWKO &7
6 @
Extended logic
A B
1 Name Value
2 RF05A-NEWBS =50
3 RF05A-NEWKO =811100
4 SAPMF05A 300
5 BSEG-WRBTR =*
6 BSEG-MWSKZ =A5
7 SAPLKACB 0002
8 COBL-KOSTL &10
9 SAPMF05A 300
10 /11
11 @
1 2 3 4
Order type Article no. Date Qty
OR DAG99001
# 02.07.99 4
# 03.07.99 1
DAG99001
# 02.07.99 1
# 03.07.99 1
DAG99001
# 03.07.99 3
DAG99001
# 04.07.99 5
OR DAG99001
# 05.07.99 1
DAG99001
# 06.07.99 2
@
Logic level-1
A B
1 Variable Value
2 SAPMV45A 0101
3 VBAK-AUART &1
Programmable Logic Data Interface - 8 of 14
4 VBAK-VKORG =JP10
5 VBAK-VTWEG =10
6 VBAK-SPART =00
7 VBAK-VKBUR =ST01
8 SAPMV45A 4001
9 KUAGV-KUNNR =13
10 VBKD-BSTKD =XXX
11 VBAP-MATNR(1) &2
12 RV45A-KWMENG(1)
13 SAPMV45A 4001
14 CURSOR VBAP-MATNR(1)
15 PEIN
16 @
Logic level-2
A B
1 Variable Value
2 SAPMV45A 4001
3 VBAP-MATNR(2) &2
4 RV45A-KWMENG(2)
5 SAPMV45A 4001
6 CURSOR VBAP-MATNR(1)
7 PEIN
8 @
Extended logic
A B
1 Variable Value
2 SAPMV45A 4003
3 EIAN
4 SAPMV45A 4003
5 RV45A-ETDAT(2) &3
6 VBEP-WMENG(2) &4
7 @
Data level-2
1 2 3 4 5 6
1 NIK
2 MHHCA9700VH068897 MHHCA9700V MHHCA9700V MHHCA9700V MHHCA9700V
3 MHHCA9700VH068900 MHHCA9700V MHHCA9700V MHHCA9700V MHHCA9700V
4 MHHCA9700VH068917 MHHCA9700V MHHCA9700V MHHCA9700V MHHCA9700V
5 MHHCA9700VH068963 MHHCA9700V MHHCA9700V MHHCA9700V MHHCA9700V
6 @
A B
1 Name Value
2 RIEQUI20 1000
3 %001
4 @
Logic level-2
Programmable Logic Data Interface - 9 of 14
A B
1 Name Value
2 SAPLALDB 2020
3 RSCSEL-SLOW_I(1) &2
4 RSCSEL-SLOW_I(2) &3
5 RSCSEL-SLOW_I(3) &4
6 RSCSEL-SLOW_I(4) &5
7 RSCSEL-SLOW_I(5) &6
8 SIP+
9 @
A B
1 Name Value
2 SAPLALDB 2020
3 /5
4 RIEQUI20 1000
5 /8
6 RIEQUI20 1000
7 /15
8 @
)
KNBK-BVTYP(1) Partner bank type KNBK BVTYP(1 4 CHAR
)
KNBK-BKREF(1) Reference specifications for bank KNBK BKREF(1 20 CHAR
details )
KNBK-XEZER(1) Collection authorization KNBK XEZER(1 1 CHAR
)
KNA1-KNRZA Alternative payer KNA1 KNRZA 10 CHAR
KNA1-XZEMP Payee in document KNA1 XZEMP 1 CHAR
/8 Next screen FUNCTION
SAPMF02D 0340 Unloading point SCREEN
KNVA-ABLAD(1) Unloading point KNVA ABLAD(1 25 CHAR
)
KNVA-KNFAK(1) Customer's logistics calendar KNVA KNFAK(1 2 CHAR
)
KNVA-DEFAB(1) Default unloading point KNVA DEFAB(1 1 CHAR
)
/8 Next screen FUNCTION
SAPMF02D 0370 Foreign trade SCREEN
KNEX-LNDEX(1) Country key KNEX LNDEX(1 3 CHAR
)
KNEX-TDODA(1) TDO date KNEX TDODA(1 8 DATS
)
KNEX-TDOCO(1) Denial_Orders KNEX TDOCO(1 1 CHAR
)
KNEX-SDNDA(1) SDN date KNEX SDNDA(1 8 DATS
)
KNEX-SDNCO(1) Special_Nationals KNEX SDNCO(1 1 CHAR
)
KNEX-DHRDA(1) Boycote date KNEX DHRDA(1 8 DATS
)
KNEX-DHRCO(1) Int. boycott list KNEX DHRCO(1 1 CHAR
)
KNA1-CIVVE ID for mainly non-military use KNA1 CIVVE 1 CHAR
KNA1-MILVE ID for mainly military use KNA1 MILVE 1 CHAR
KNA1-CCC01 Chemical & Biological Weapons KNA1 CCC01 1 CHAR
KNA1-CCC02 Nuclear nonproliferation KNA1 CCC02 1 CHAR
KNA1-CCC03 National security KNA1 CCC03 1 CHAR
KNA1-CCC04 Missile tech KNA1 CCC04 1 CHAR
/8 Next screen FUNCTION
SAPMF02D 0360 Contact person SCREEN
KNVK-NAME1(1) Name 1 KNVK NAME1(1 35 CHAR
)
KNVK-NAMEV(1) First name KNVK NAMEV(1 35 CHAR
)
KNVK-TELF1(1) Telephone KNVK TELF1(1 16 CHAR
)
KNVK-ANRED(1) Form of address KNVK ANRED(1 30 CHAR
)
KNVK-ABTNR(1) Contact person department KNVK ABTNR(1 4 CHAR
)
KNVK-PAFKT(1) Contact person function KNVK PAFKT(1 2 CHAR
)
/8 Next screen FUNCTION
SAPMF02D 0210 Accounting SCREEN
KNB1-AKONT Reconciliation account in general KNB1 AKONT 10 CHAR
ledger
KNB1-ZUAWA Key for sorting according to alloc. KNB1 ZUAWA 3 CHAR
No.
KNB1-KNRZE Head office account number (in KNB1 KNRZE 10 CHAR
branch accounts)
KNB1-BLNKZ Subsidy indicator for determining KNB1 BLNKZ 2 CHAR
the reduction rates
KNB1-BEGRU Authorization group KNB1 BEGRU 4 CHAR
Programmable Logic Data Interface - 12 of 14