Smart Forms Exercises

1.BASIC LSMW EXERCISE

PHASE I – Mapping and Definition

EXAMINE THE TRANSACTION

Create a Financial Document using transaction FB01

DOCUMENT HEADER

Document Date:today

Document Type:SA

Company Code:UKCC

Currency:GBP

FIRST DOCUMENT ITEM (input on the same screen)

Posting key:50

Account:24100

Press Enter

Amount:12

SECOND DOCUMENT ITEM (input on the next screen)

Posting key:40

Account:33300

Press Enter

Amount:12

Press Save

LSMW Set up

Start the LSMW (Transaction LSMW)

Create Project LSMW-xx - Description LSMW Demo

Create SubProject SUBxx - Description First Subproject

Create Object CTxx - Description FI Documents – Call Transaction

Maintain Object Attributes

Standard Batch / Direct Input

Object 100 Financial Documents

Maintain Source Structures

Create the structures GLHEADER and GLITEMS (below GLHEADER)

Maintain Source Fields

GLHEADER

Name / Description / Length / Type / Value
ID / Record Type / 1 / C / H
REF / Reference Number / 9 / C
DATE / Document Date / 10 / DDMY
TYPE / Document Type / 4 / C
CUR / Currency Code / 2 / C

GLITEMS

Name / Description / Length / Type / Value
ID / Record Type / 1 / C / P
KEY / Posting Key / 4 / C
ACCOUNT / G/L Account Number / 10 / C
AMOUNT / Amount in Document Currency / 15 / AMT1
TEXT / Item Text / 6 / C

MAPPING

There are a large number of fields in the object definition! To save time, the following is the list of fields for which we need data.

DOCUMENT HEADER

Field / Meaning / Length
BLART / Document Type / 2
BUKRS / Company Code / 4
BLDAT / Document Date / 8
WAERS / Currency Code / 5
BKTXT / Document Text / 25

DOCUMENT ITEM

Field / Meaning / Length
NEWBS / Posting Key / 2
WRBTR / Amount / 16
NEWKO / G/L Account / 17
SGTXT / Document Text / 50

QUESTIONS

What values did we use in the manual data of the transaction for these fields?

Which source fields map to which target fields?

Look at the source data – which fields will need translating?

What field(s) are not supplied in the source?

PHASE II – Reading, Conversion and Processing

Structure Relations

Assign BGR00 and BBKPF to the Document Header

Assign BBSEG to the Document Item

FIELD MAPPING

TARGET STRUCTURE / TARGET FIELD / SOURCE STRUCTURE / SOURCE FIELD / REMARKS
BBKPF / BLDAT / GLHEADER / DATE / Assign the field as DDMMYYYY
BBKPF / BLART / GLHEADER / TYPE / Translation needed
BBKPF / BUKRS / Constant Value ‘UKCC’
BBKPF / WAERS / GLHEADER / CUR / Translation needed
BBKPF / BKTXT / GLHEADER / REF
BBSEG / NEWBS / GLITEMS / KEY / Translation needed
BBSEG / WRBTR / GLITEMS / AMOUNT
BBSEG / NEWKO / GLITEMS / ACCOUNT
BBSEG / SGTXT / GLITEMS / TEXT

MAINTAIN FIXED VALUES, TRANSLATION RULES

Set up translation rules for the data, note that if you miss any entries, the system will fill in the source value entries when the conversion program runs for the first time.

SPECIFY & ASSIGN FILES

Select Legacy data on the PC. Then:

File:C:\TEMP\LSMW Data.txt

Description:(Your choice)

Check Data for several source structures

Assign the files to the source structures.

READ THE DATA

Display the data to confirm the successful data formatting

CONVERT THE DATA

Display the data to confirm the successful data conversion

START DIRECT INPUT PROGRAM

Use option Program RFBIBL00, then Data Transfer Type C. Note down the document numbers created.

Note that if the program finds any errors, then it will create a batch input session with the name of the LSMW Object. Use SM35 to investigate this.

In case of errors, rerun the appropriate steps.

Look the documents you created via transaction FB03

2.LSMW EXERCISE – ERROR HANDLING

COPY & TEST

Copy the object CTxx created above to CTERRxx, then work with the new object.

Change the file being read to C:\TEMP\LSMW Data errors.txt

Rerun the read and convert processes.

Look at the convert file – can you find any of the errors?

ERROR HANDLING

There are at least 3 errors.

A missing currency code in the translation table.

A document with financial postings out of balance.

JPY data being incorrectly formatted.

These will all be fixed by setting up ABAP code in the Mapping Step

Make the Processing Points and Global Data Definitions visible by choosing the menu option Extras > Display Variant and pick the correct options.

MISSING CURRENCY CODE

Following the translation of the currency code, test whether this has been successful by testing the value of the converted code. If this is still set to the ‘No Data’ value (BGR00-NODATA – usually ‘/’), then it has failed. Use skip_transaction to omit this data and write out a message.

DOCUMENT OUT OF BALANCE

Define a variable LIKE g_amount in _GLOBAL_DATA to be the net total of the document.

For each document item, maintain the running net total from the amount. Test the converted posting key , if it is ‘50’, then increment, otherwise decrement.

At the processing point _END_OF_TRANSACTION, test the net total. If is not zero,

use skip_transaction to omit this data and write out a message. This processing must be put before transfer_transaction.

Don’t forget to reset the net value for the next record!

Note: SAVE the object following any global data definitions, otherwise the code blocks you write may not syntax check.

CURRENCY FORMATTING

Look at the code created to fill BBSEG-WRBTR. It will not work for currency codes such as JPY which have no decimal places.

Can you think of a way to make this processing work for any (valid) currency code? Hint use the WRITE … TO … format with an addition.

Having implemented and checked the code, rerun the LSMW from the convert step and confirm that the documents all post successfully.

3.LSMW EXERCISE – RECORDING

Strategy – First understand the Transaction

Start up the customer maintenance transaction XD02 – using customer number …., you do not need to supply any other details.

Press the Contact Persons tab, you will see the contacts set up for this customer.

To select details of a particular contact either:

Move your cursor to the contact of interest and press F2. Then change the telephone number,

Save – ignore any warning messages.

OR Type the surname of the contact in the List Search Name box and press enter – what happens to the list?

Then proceed as before.

We shall be using the second technique as we do not know which position in the list our contact of interest is.

LSMW Stage 1 – Record the transaction

Start transaction LSMW

ObjectREC01xx

Then GO TO > RECORDINGS

Create a recording name PHONE01

You will be recording transaction XD02

PLEASE NOTE THAT THE TRANSACTION LOOKS DIFFERENT THAN WHEN YOU RAN IT DIRECTLY – THIS IS QUITE A COMMON FEATURE.

Enter the customer number as above and check the Contact Persons Box

Enter the surname of a contact in the Name box and press Enter, then select the top line, which will be your contact, press Partner Details to process the data, change the phone number and Save.

You will have created the ‘script’ of all the screens and fields that this transaction needs.

The next stage is to assign field names to fields where you will be supplying data. Do this by positioning the cursor on the field and double clicking

FieldSuggested Name

RF02D-KUNNRKUNNR Customer Number

*KNVK-NAME1SURNAMESurname

KNVK-TELF1PHONENew phone number

Do not assign a field name to RF02D-D0360 – this is the Customer Contact Check Box and will be the same for all records.

LSMW Stage 2 – Build up the LSMW

The assumption we are making is that the data on Customer Number and Contact Name has been extracted from SAP, so will be valid . Compared with an LSMW data load, the mapping is extremely simple.

Step 1 Maintain Object Attributes

Object Type and Import Technique – choose Batch Input Recording, using the name of the recording created above.

Step 2 Maintain Source Structures

Create a structure – suggested name PHONE_DATA

Step 3 Maintain Source Fields

Set up the structure – all fields type C

FieldLength

KUNNR10

CUSTNAME35 – Customer Name – this is for reference

PARTNR10 – Partner Number – this is for reference

FIRST_NAME35 – Partner First Name – this is for reference

SUR_NAME35

PHONE16

Step 4 Maintain Structure Relations

This is done for you, but SAVE.

Step 5 Maintain Field Mapping and Conversion Rules

Make the necessary mappings – source to target.

Step 6 Maintain Fixed Values …

Not necessary in this case because of the simplicity of the mapping

Step 7 Specify Files

Legacy Data – On the PC Name : C:\TEMP\PHONES.TXT Tab delimited.

Step 8 Assign Files

This is done for you, but SAVE.

Then work through the remaining steps, verifying the layout and mapping, process the batch input session.