Skip to Content
Technical Articles

5 Easy Steps to Add New Line Item Fields to FBL1N

Introduction:

A common request from users of FBL1N (Vendor Line Items) is to include additional columns of data in the “Column Set” that can be selected when creating or maintaining a line layout variant. These requests come when neither the base list nor the special fields list have the data needed; i.e., user needs data from another table.

FBL1N – Vendor Line Items (Accounting > Financial Accounting > Accounts Payable > Account)

This blog outlines five easy steps to add fields to structure RFPOSXEXT; thus, adding to the list of fields available in the line layout variants of FBL1N (Vendor Line Items), FLB3N* (G/L Line Items), and FBL5N (Customer Line Items). In addition, the blog shows how to use a BAdI to populate these additional fields with data. This is my preferred method. There are other ways to accomplish the same; namely via a Business Transaction Event (BTE). If you would like to review the BTE approach, then an example is provided in blog “Vendor code addition in FBL3N report using Business Transaction Events (BTE).” There is also a video from Lukman Hakim on the BTE approach: “SAP ABAP : Adding Fields to Transaction FBL1N , FBL3N & FBL5N.”

As you read this, keep in mind that RFPOSX (Line Item Data) is the base structure for line items in transactions FBL1N, FBL3N, and FBL5N. Between RFPOSX and the table entries in T021S (Line Layout Variant Special Fields), structure RFPOSXEXT is generated. RFPOSXEXT is used for displaying line items in these transactions.

* Important FBL3N note: Most companies are using the New GL. In that case, GL account line item display would be done via transaction FAGLL03, not FBL3N. Click here to read documentation on adding fields to FAGLL03.

The below example will demonstrate adding Vendor Name to the Layout Column Set, and then populating it with data from LFA1 (Vendor Master) via a BAdI when Tcode FBL1N is used.

Intended Audience:

SAP Business Analyst, Configuration Specialist, ABAP Programmer

Prerequisites:

For some good background, please read the following OSS Notes:

Steps:

Step 1: Add Append Structure to RFPOSX structure

  • Go to Tcode SE11
  • Enter structure RFPOSX
  • Click on Display button
  • Click on Append Structure button
  • Click on Create icon
  • Provide an Append Name; e.g., ZZADD_FIELDS
  • Click Continue icon
  • Add Component(s). In this example, just one… ZVEND_NAME.
  • Save and Activate

Step 2: Extend structure RFPOSXEXT

  • Go to Tcode SA38 or SE38
  • Execute program RFPOSXEXTEND
  • Click Yes button to extend the structure

  • Confirm the extension worked
    • Go to Tcode SE11
    • Enter structure RFPOSXEXT
    • Click on Display button
    • Search for Component ZVEND_NAME

Once Step 2 is complete, “Vendor Name 1” will now be visible in the layout Column Set; however, even if added to the screen, no data will appear. Steps 3 and 4 are required to populate the ZVEND_NAME field with data.

Step 3: Create an implementation of FI_ITEMS_CH_DATA

  • Go to Tcode SE18
  • Menu > Enhancement Implementation > Create
  • Add Name of enhancement
  • Add Short Text
  • Save/Activate

Step 4: Add code to CHANGE_ITEMS method

Step 5: Update layout(s) in FBL1N to include “Vendor Name 1”

  • Go to transaction FBL1N
  • Execute report
  • Create or update layout to include “Vendor Name 1”
  • Save
  • “Vendor Name” now appears in the report

Conclusion:

If fields from tables other than what can be provided by the Special Fields table (T021S) are needed in FBL1N, then the above steps are simpler and easier than a BTE (in my opinion). As mentioned above, these steps can also be carried out for FBL5N. The steps can also be used for FBL3N if you are not yet using the New GL; otherwise, follow the link above for changing FAGLL03.

Let me know if you liked this blog, and please reply with questions and comments. Thank you.

1 Comment
You must be Logged on to comment or reply to a post.
  • First of all, thank you for this article. It’s pretty clear and easy to implement. It’s all working properly except when running fbl1n in the background. In this scenario the vendor name field won’t get populated. Would you have any advice that would point me in the right direction to sort this out?

    Regards.