SAP & Oracle partner and support companies

Loading

Archives 2025

SAP

Payment Processing through IDOCs

Introduction to Electronic Payment Processing

Full electronic payment is an important aspect of electronic commerce. Companies today are moving away from paper checks and manual processing of wire and ACH payments to electronic payments. Almost all the banks today can accept electronic payment instructions from corporate clients. In addition to this, banks also allow for electronic payments for most payment methods such as wires, checks and ACH, as well as local payment methods in some countries. Payment Processing through IDOCs

One way to achieve this integration with banks would be to implement a custom solution by writing customized programs to create payment instructions and files which need to be sent to the banks. However, SAP has provided an easier way to implement this functionality by using an SAP IDoc interface. Most banks today allow for EDI payment processing through Payment IDOCs. SAP has capabilities to convert IDOCs into EDI message types or send the IDOCs directly to the bank through EDI medium electronically. Thus this option is gaining prominence today for SAP payment processing implementations.

IDOC-EDI Configuration

This section contains pointers to the configuration for IDOC-EDI payments.

Payment program configuration for IDOC-EDI payments 

a. You must also configure the output of a printed summary sheet for each payment run; 

b. Select the following forms in the field: FBZP – Paying Company Codes – In EDI Accompanying Sheet Form field – enter F110_EDI_01 

c. In transaction FBZP – Pmt methods in company code – select the payment method in the company code you want – In the form data field: enter Next Form F110_EDI_01 

d. You must also specify the variant as RFFOEDI1 in the payment methods configuration. 

FBZP – Pmt methods in country – select the payment method in the country you want – assign the variant RFFOEDI1 in the payment medium program field

EDI-Compatible Payment Methods It is required that the payment program identifies payment methods with which house banks can be used for EDI, before the payments and bank collection can be carried out using EDI. In this step, we specify the supported EDI payment method for each EDI-capable house bank. 

Financial Accounting – Accounts Receivable and Accounts Payable – Business Transactions – Outgoing Payments – Payment Media – EDI Payment Orders and Debit Memos – Define EDI-Compatible Payment Methods for a House Bank.

External Payment Method Configuration

The payment methods configured in SAP cannot be identified by the bank as to the type of payment that needs to be carried out for a given transaction. Hence banks expect the IDOCs to be populated with bank specific payment codes. This is done using external payment method Configuration.

Financial Accounting – Accounts Receivable and Accounts Payable – Business Transactions – Outgoing Payments – Payment Media – EDI Payment Orders and Debit Memos – Assign EDI Payment Method to External Payment Method. Payment Processing through IDOCs

The external payment method is the bank specific payment code which will be transmitted as an instruction for the type of payment to be carried out (e.g. check, ach etc) to the Bank through the IDOC. 

Processing Remittance Advices through IDOCs 

Current capabilities of SAP allow companies to transmit remittance advice details through IDOCs. As a result many banks provide additional functionality which allows the vendors to view the remittance information on the website once the IDOC has been processed by the bank and the payment has been made. This allows companies to do away with manual printing and processing of payment advice which results in reduction in costs and increased efficiency. Payment Processing through IDOCs.

The indicator commonly used to instruct the bank to display the remittance advice information online is configured as an instruction key in SAP configuration and assigned to the vendor in the vendor master. This setting allows companies to make this capability available for only those vendors who have a high transaction volume. This allows companies to keep their bank processing costs at a minimum. In order to instruct the bank to print online the remittance advice for a vendor payment, special instructions need to be configured in SAP. This is done using instruction key configuration which is country and payment method specific.

Financial Accounting – Accounts Receivable and Accounts Payable – Business Transactions –Outgoing Payments – Payment Media – Data Medium Exchange – Define Instruction Keys 

For each of these instruction keys, instruction text and code word needs to be defined. These details will be provided by the bank with which the implementation team is dealing with.

Financial Accounting – Accounts Receivable and Accounts Payable – Business Transactions – Outgoing Payments – Payment Media – Data Medium Exchange – Define Instructions for Payment Transactions. 

These instruction keys are then assigned in the vendor master for each of the vendors for whom this functionality needs to be activated.

Managing Localizations requirements:

Most countries have rules regarding the payment file formats, bank account numbers and other country specific mandatory data elements that need to be populated in the payment information that is processed by a third party. This information needs to be populated in the IDOC when the payments are generated in SAP. Standard SAP functionality provides for most of the common localizations that exist in different countries. However, care must be taken to match the data in these fields to the requirements provided by the banks. Payment Processing through IDOCs.

This is because often banks might place additional requirements with regards to what information they would like to see for the localizations in the IDOC. In cases where such information cannot be provided for by standard IDOC and bank master data set up, customization might be necessary. This can be achieved by using the user exit EXIT_SAPLIEDP_002 (for PAYEXT) to meet the requirements

IDOC structure

Understanding the payment IDOC structure is the key to a successful implementation. By comparing the 

standard IDOC elements with the format required by the bank, the implementation team can identify the 

customizations that are required for successful payment processing. Once IDOC is generated, the structure 

can be accessed at transaction WE05.

IDOC are split into three main sections Control records – They contain all the information for technical 

processing Data records – Contain the actual application data Status records – Keep the processing records

IDOC Control Record Structure.

The Control Record contains the administration information for technical processing, as well as the IDoc and message type. This information specifies the structure and the content of the next part. Only one control record is generated for one payment run while multiple data records can be generated for the same payment run.

You can also read for :-SAP PO for Beginners Part – 12 – Interface Development – B2B EDI Inbound to XML Proxy to ECC

IDOC Data Record Structure

Data records hold the transactional data which is used by the bank to make the payment. Each data record consists of multiple segments, each of which contains specific data related to the payment being made. This data needs to be populated based on the requirements given by the bank. Attached below are the important segments of the IDOC data record structure and the information populated in them by SAP. The fields commonly used by the banks have been highlighted. Depending on the requirements given by the bank, the standard SAP IDOC may have to be customized to produce the IDOC in the format required by the bank 

Benefits of automated IDOC processing:

Following are some of the benefits of using this approach over manual or custom solution

a)  Minimum technical development required.

b)  Greater automation with straight through payment processing via most banks with minimum manual input can be achieved using this approach.

c)  Multiple IDOCs can be grouped together as required which reduces payment processing costs.

d)  Standardized format results in reduced time to integrate new countries, company codes and 

payment methods into the existing EDI-IDOC interface.

e)  Increased scalability for handling high payment volumes.

f)   More accurate transfer of data and reduction in data-integration risk with the bank interface

g)  Electronic Remittance Advice functionality supported which results in elimination of paper handling of remittance advice and reduced costs.

Variant in Payment Program 

In order the IDOC to be generated, one important aspect is that program being used for the creation of IDOC – RFFOEDI1 should have a variant. 

After the variant is created, the variant should include the payment method which requires the creation of IDOC and also the check box “generate the SAP IDOC” should be checked.  

Bank Master data management 

For the IDOC payment process to function successfully, there are three types of master data that needs to be created and managed appropriately:  

  • Bank directory  
  • House bank data  
  • Vendor bank data 

Bank directory: 

For every bank that will be used by House bank, Vendor master, Customer master or Business partners, the bank directory need to be defined. The bank directory constitutes several fields such as Bank key and SWIFT code. These fields may be required or optional depending upon country specific requirements. The following is the list of key data in the bank directory. 

Country Code BANKS 

Bank Key BNKA-BANKL 

Bank Number BNKA-BNKLZ (and BNKA-BANKL, if the bank number is selected as the 

bank key) 

SWIFT BNKA-SWIFT (and BNKA-BANKL, if the bank number is selected 

as the bank key) 

Bank Name BNKA-BANKA 

City BNKA-ORT01 

Street BNKA-STRAS 

Branch BNKA-BRNCH 

There are several sources from where the bank directory data can be obtained. The following are three major sources:  

Ready-to-load file provided by third parties (e.g. Thomson Financials)  

BIC File: Country specific format  

Legacy system bank data 

There are several ways to load these bank data into SAP. The following are the loading options corresponding to the above three data sources:  

  • Ready-to-load file: T-code BAUP  
  • BIC file: T-code BIC  
  • Legacy data: LSMW through T-code FI01

House Bank Data: 

Here we link the bank directory data of the house bank with two major components: 

Account data: 

Account number, account currency, control key, and corresponding GL account number against which cash transactions will be posted.

EDI Partner profiles: 

For each bank with which we are setting up the payment processing interface, we need to create a partner profile in SAP. This is done using transaction WE20. To create a partner profile we need to enter the partner number and partner type as “bank” in this transaction. For this partner profile you would need to maintain message types that are determined by the bank. For example, Citibank recommends message types EUPEXR and PAYEXT

You must set up outbound parameters for message types “PAYEXT” using IDoc type “PEXR2002” and for message type “EUPEXR” using IDoc type IDCREF01. For all message types output mode should be “4” (Collect IDocs / Do not start subsystem) and the segment release should be “45A” (field “Seg. Release in IDoc type”).

Once partner profiles are defined, it can be linked to the house bank. Additionally, the payment methods also need to be mapped to EDI partner profile at the house bank level for the automatic payment program to function. Payment Processing through IDOCs.

Vendor Bank Data 

Once the bank directory for a vendor bank is loaded, it can be mapped to the corresponding vendor account number. In the vendor, customer or business partner master, the following data is mandatory:  

  • Bank country  
  • Bank key  
  • Account number

Depending upon the country requirements, additional fields such as Check digits and IBAN number may be mandatory. For example, in almost all west European countries and parts of the middle-east IBAN is mandatory. 

Increasingly, a lot of countries are adapting IBAN for it virtually eliminates the possibility of payment error. IBAN contains all the key bank account details such as Bank Identifier Codes, branch codes, and account numbers. IBAN contains check digits which validates a given combination of country code, routing destination and account number. Hence, if the bank key or account number is wrong, the check digit will invalidate such IBAN, resulting in failure of payment processing at the source itself. For this reason, IBANs have reduced trans-national money transfer errors to under 0.1% of total payments. Payment Processing through IDOCs

In some situation, a vendor may have more than one bank account and depending upon the transaction/currency type, the payment may have to be made to corresponding account. In such case, Bank partner reference number has to be created. In the above figure, we have a partner reference identifier (BnkT field label) for each bank account. At the invoice level, one of these banks can be selected through this partner identifier so that payments will be made to the correct bank account.

Appendix Transactions Description.

FI01 Create Bank directory 

FI12 House Bank account master 

WE20 Maintain Partner profiles 

WE21 Assign file ports to Partner profiles 

XK01 Vendor master creation 

FBZP Maintain Payment program 

WE05 Access IDOC structure 

You may also like

Table Maintenance Generator from SAP RAP – FIORI UI App

Benefits of SAP ERP

SAP

What is SAP Fiori?

SAP Fiori is the user interface or user experience (UX) that supplements and can replace the SAP GUI. This streamlined application uses tiles to encapsulate standard tasks, such as approving purchase requisitions, viewing sales orders, and approving timesheets. What is SAP Fiori? This is still a question worth asking as the UX is evolving and getting more sophisticated since its initial launch in 2013.

you can also read for:Table Maintenance Generator from SAP RAP – FIORI UI App

What is SAP Fiori?

Fiori is a streamlined application, delivering a role-based user experience that can be personalized across all lines of business, tasks, and devices. It uses tiles to encapsulate standard tasks like viewing sales orders or approving timesheets. Based on customer input, SAP devised the SAP Fiori UX with user-friendliness and ease of use in mind. The UX also provides mobile deployment capabilities so users can work without needing access to a computer.

Ultimately, there’s a night and day difference between the SAP GUI and SAP Fiori UX. While the older GUI was bulky and hard to learn or train on, SAP Fiori has the seamless movements and controls you would expect out of any mobile application. The screens are simple, customizable, and modern, and there are none of the unnecessary tabs and fields the previous UX had.

SAP Fiori 2.0

SAP Fiori 2.0 launched in October 2016 as an update to Fiori adding UX functions that were missing in the first version, e.g. enhanced navigation, multi-application management, and proactive system notifications. Developed as the latest evolution for SAP HANA and S/4HANA, version 2.0 offers a new visual design that can adapt Fiori UIs to corporate identities. Other features introduced in SAP Fiori 2.0 include an Overview Page, which streamlines information flow, List Reports, Object Pages, and a Launchpad for navigating apps. The Launchpad enables querying for apps that may be required for new processes and new ways to organize tools intuitively. A Viewport expands users’ desktops to the right and left. SAP Fiori 3.0 is the new target design being planned from SAP, which evolves the design system to fully support the Intelligent Suite.

The Benefits of Fiori

What are some SAP Fiori benefits? Users report increased productivity with Fiori. Research reveals that Fiori delivers a 64% reduction in time needed to complete a task compared to SAP GUI. It’s simpler and easier to learn, so it drives a strong adoption rate and cuts training time. Employees tend to get less frustrated with Fiori.

SAP Fiori offers more intuitive workflows that feature business logic instead of SAP logic. Users who are not experts in SAP find this easier to use. People can move around in the organization more readily. They don’t have to retrain on SAP to switch roles. The UX also results in improved mobility. In contrast to the mouse-and-keyboard structure of the SAP GUI, Fiori-based applications are usable by mobile employees on a variety of device types.

On the application development side, users of SAP Fiori on HANA find less need to build their own tools. This is partly the result of the expanding Fiori library. In addition, the SAP/Apple partnership provides a range of preset app options.

SAP Fiori Architecture

Developed to meet new enterprise IT criteria, SAP devised Fiori to be available on-demand in the cloud and on-premises. Fiori must also support multiple device form factors. Some architectural principles underpinning Fiori include:

  • Central Access to apps through the SAP Fiori launchpad – supporting personalization, navigation and configuration
  • Security with single sign-on (SSO) as well as role-based authentication and authorization
  • Open Data Protocol (OData), which facilitates secure provisioning and data consumption

Fiori also embeds analytics into apps, if those are required. Developers can engage in custom development, so they are able to design, build and deploy SAP Fiori apps rapidly. They achieve this goal by using Fiori’s enterprise-ready UI development toolkit, which is based on SAPUI5 with support for HTML5 and JavaScript. This makes possible app extensibility, with possible enhancements to apps through the SAP Web IDE and its templates.

As a result of this architecture, SAP Fiori is not tied to a specific device, session, or user. Fiori app users can start a task and save it in an incomplete form. Later, they can resume working on it from a different device. The app automatically saves data asynchronously. Users can even hand off partially completed tasks to one another.

Deployment Options

When it comes to SAP Fiori deployment options, admins have five basic choices: Fiori Front End Server (FES) embedded deployment, FES hub deployment, gateway embedded, gateway hub, and cloud. Each approach suits a specific set of requirements and SAP landscape preferences.

  • FES embedded deployment, where Fiori is embedded in a single SAP landscape, is the simplest deployment option9. It is best for situations where there is a single Fiori instance running.
  • FES hub deployment, which bundles the Fiori UI components, SAP Launchpad and SAP Gateway. Business logic and traditional UIs stay on the back end, so you can integrate multiple back end systems like SAP CRM and SRM.
  • Gateway embedded, where the SAP Gateway is embedded in the back end, which makes it possible to integrate cloud FES instances with a cloud connector.
  • Gateway hub, here SAP Gateway serves as a hub – making it easy to connect the backend with FES in the cloud
  • SAP Fiori Cloud, with FES in the cloud on a standalone basis. It connects to back end systems that are on-premises.

Launchpad Configuration

SAP Fiori Launchpad configuration involves a shell that hosts SAP Fiori apps. At the same time, the shell provides the apps with configuration, navigation, and personalization services, along with embedded support. The result is tile-based information architecture. Each tile represents a business application, which can be launched by the user. Tiles display according to the user’s role and indicate live statuses, such as how the number of open tasks.

SAP GUI vs. Fiori

Ultimately, how can you compare the SAP GUI vs. Fiori? Fiori offers a number of clear benefits over SAP GUI, including better productivity and multi-device task workflows. In architectural terms, Fiori gives you the advantage of RESTful APIs, which are more fluid and easily connected than traditional SAP application integration tools.

Fiori is projected to replace SAP GUI, particularly in organizations that are migrating to HANA and S/4HANA. This is mostly the result of a better UX overall, developed to enhance the new database. The older GUI is comparatively bulky and difficult to learn (or train). Fiori is built in HTML5. As a result, it has the kind of seamless movements and controls you expect from a modern mobile app. The screens are simple and clean in design, matching what users expect from today’s applications.

Moving forward with SAP Fiori

SAP Fiori is simple for users, but behind the scenes, it can be challenging to set up and manage. Configuration and gateways require expertise to navigate the pitfalls of the project as well as being able to identify the additional stakeholders needed for mobilizing your applications. Additionally, if you’re harnessing SAP Fiori as part of a more complex project, such as an SAP HANA migration, an SAP-certified partner like Secure-24 can ease the transition and help optimize your new IT landscape.

What is the difference between SAP and SAP Fiori?

SAP and SAP Fiori are related but distinct components within the SAP ecosystem. Here’s a breakdown of their differences:

  1. SAP: SAP (Systems, Applications, and Products in Data Processing) is a leading enterprise resource planning (ERP) software that provides integrated business solutions to manage various aspects of an organization, such as finance, human resources, sales, procurement, inventory, and more. SAP is a comprehensive suite of applications designed to streamline business processes, enhance efficiency, and provide valuable insights through data analytics.
  2. SAP Fiori: SAP Fiori is a user experience (UX) and design framework developed by SAP to improve the user interface (UI) and user experience of SAP applications. It focuses on providing a modern, intuitive, and consistent user interface across different devices, including desktops, tablets, and smartphones. SAP Fiori aims to make SAP applications more user-friendly, responsive, and visually appealing.

Key differences between SAP and SAP Fiori:

Scope: SAP is the entire suite of ERP applications that cover various business functions, while SAP Fiori is a design framework focused on improving the user experience for SAP applications.

Functionality: SAP offers a wide range of functionalities to manage business processes across departments, while SAP Fiori enhances the user interface and user experience of specific SAP applications.

User Experience: SAP’s traditional user interfaces have been criticized for their complexity and lack of user-friendliness. SAP Fiori addresses these concerns by providing a more modern, streamlined, and intuitive user experience.

Device Support: SAP Fiori is designed with responsive design principles, allowing it to adapt and provide an optimal user experience on various devices, including desktops, tablets, and smartphones. Traditional SAP interfaces might not be as well-suited for mobile devices.

Adoption: SAP Fiori is not a separate application or module but a design language and set of guidelines. It can be applied to specific SAP applications to enhance their user experience. SAP customers can choose to adopt SAP Fiori and apply it to their existing SAP applications.

In summary, SAP is the overarching ERP software suite that covers a wide range of business processes, while SAP Fiori is a design framework focused on improving the user experience of specific SAP applications. By incorporating SAP Fiori, SAP aims to make its applications more user-friendly, visually appealing, and accessible across different devices.

You may also like

O DATA Complete Overview Blog Series

abap ale idoc rfc step by step

SAP Fiori

SAP

Profit and Loss Closing T codes


 
1. Capital Investment Projects – Settle Order to AUC 

Accounting -> Investment management -> Internal orders -> Period-end closing -> Single functions -> Settlement ->…  Various

 2. Capital Investment Projects – Settle AUC to asset in service
Accounting -> Investment management -> Fixed assets -> Postings  -> Cap. asset u. const. -> Settle  AIBU

 3. PP/CO Period-End Closing
Logistics -> Production -> Production Control -> Period-end closing ->…

or

Accounting -> Controlling -> Product Cost Controlling -> Cost Object Controlling -> Product Cost by Order -> Period-End Closing -> Single Functions ->…  Various

 4. Internal Order Period-End Closing
Accounting -> Controlling -> Internal Orders -> Period-end closing -> Single functions ->…  Various

5. Cost Center Accounting Period-End Closing
Accounting -> Controlling -> Cost Center Accounting -> Period-end closing -> Single functions ->…  Various

 6. Profitability Analysis Period-End Closing
Accounting -> Controlling -> Profitability Analysis -> Actual Postings -> Cost Center Costs/Process Costs ->…  KEU5, KEG5, CPAE

 7. Lock Controlling Transactions
Accounting -> Controlling -> Cost Center Accounting -> Environment -> Period lock -> Change  OKP1

 8. Reconciliation Ledger
Accounting -> Controlling -> Cost Element Accounting -> Actual postings -> Reconciliation withFI  KALC

 9. Reconciliation Ledger Follow Up Postings
Accounting -> Controlling -> Cost Element Accounting -> Environment -> Reconciliation ledger -> Follow up posting  KAL1

10. Reconciliation Ledger Configuration
IMG -> Controlling -> Overhead Cost Controlling -> Cost and Revenue Element Accounting -> Reconciliation Ledger  Various

11. Post payroll information to accounting
Human Resources -> Payroll -> (Country-specific)  PC00_ M99_ CIPE

12. Configure Payroll for posting to accounting
IMG -> Payroll -> Payroll: (country-specific)  Various Customizing Technical, Organizational and Documentary  Steps

13. Define fiscal year variants
IMG -> Financial Accounting -> Financial Accounting Global Settings -> Fiscal Year -> Maintain Fiscal Year Variant (Maintain Shortened Fisc. Year)  OB29

14. Allocate fiscal year variant to a company code
IMG -> Financial Accounting -> Financial Accounting Global Settings -> Fiscal Year -> Assign Company Code to a Fiscal Year Variant  OB37

15. Define Variants for Open Posting Periods
IMG -> Financial Accounting -> Financial Accounting Global Settings -> Document -> Posting Periods -> Define Variants for Open Posting Periods  OBBO

You can also read for:-sap pp interview questions: Ultimate Guide + Expert Tips (2024)

16. Allocate Posting Period Variant to Company Code
IMG -> Financial Accounting -> Financial Accounting Global Settings -> Document -> Posting Periods -> Assign Variants to Company Code  OBBP

17. Open and Close Posting Periods
Accounting -> Financial accounting -> General ledger  -> Environment -> Current settings -> Open and Close Posting Periods  OB52

18. Carry Forward Balance to New Fiscal Year
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Carry Forward -> Balances  F.16

19. Define Retained Earning account
IMG -> Financial Accounting -> General Ledger Accounting -> Business Transactions -> Closing -> Carrying Forward -> Define Retained Rarnings Account  OB53

20. Schedule Manager
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Schedule Manager  SCMA

21. Subsequent Business Area/Profit Center Adjustment – Calculate
Accounting -> Financial accounting  -> General ledger -> Periodic processing -> Closing -> Regroup -> Balance Sheet Readjustment -> Calculate  F.5D 

22. Subsequent Business Area/Profit Center Adjustment – Post
Accounting -> Financial accounting  -> General ledger -> Periodic processing -> Closing -> Regroup -> Balance Sheet Readjustment -> Post  F.5E

23. Transfer B/S Items to Profit Center Accounting
Accounting -> Enterprise Controlling -> Profit Center Accounting -> Actual Postings -> Period-End Closing -> Transfer Payables/Receivables  1KEK

24. PCA Balance Carried Forward
Accounting -> Enterprise Controlling -> Profit Center Accounting -> Actual Postings -> Period-End Closing -> Carrying Forward of Balances  2KES

25. Profit and Loss Adjustment
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Regroup -> Profit and Loss Adjustment  F.50

26. Run Compact Document Journal
Accounting -> Financial accounting -> General ledger -> Information system -> General Ledger Reports -> Document -> General -> Compact Document Journal 

27. Create Balance Audit Work Files
IMG -> Financial Accounting -> General Ledger Accounting -> Business Transactions -> Closing -> Documenting -> Define Accumulated Work Files for Balance Audit Trail  OBBQ

28. Run Monthly Balance Audit Trail for Open Item Accounts
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Document -> Balance audit trail -> Open item accounts -> Open Item Account Balance Audit Trail from the Document File 

29. Run Monthly Balance Audit Trail for Other Accounts
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Document -> Balance audit trail -> All accounts -> General Ledger from the Document File 

30. Create Extract for Accumulated Open Item Balance Audit Trail
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Document -> Balance audit trail -> Open item accounts -> From balance audit trail -> Extract for Accumulated Open Item Audit Trail 

31. Run Accumulated Open Item Balance Audit Trail
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Document -> Balance audit trail -> Open item accounts -> From balance audit trail -> Accts Detailed Listing from Open Item Account Accumulated Audit Trail 

32. Create Extract for Accumulated Balance Audit Trail for Other Accounts
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Document -> Balance audit trail -> All accounts -> From balance audit trail -> Extract for the Accumulated Historical Balance Audit Trail 33. Run Accumulated Balance Audit Trail for Other Accounts
Accounting -> Financial accounting -> General ledger -> Periodic processing -> Closing -> Document -> Balance audit trail -> All accounts -> From balance audit trail -> Account Details from Historical Accumulated Balance Audit Trail

you may be interested in this blog here:-

Don’t Fear the Update: Navigating the Challenges of how to implement sap note

Five Top Technology Investment Drivers for 2024

How many dollars worth of RSU does Salesforce typically offer an MTS (experienced hire) on joining?

Integration cloud system to HANA Cloud Platform using Cloud Connector

SAP

SAP’s Travel Manager

Describe SAP’s “Travel Manager.”

SAP’s “Travel Manager” gives staff members access to a summary of all things related to travel, including itineraries, reimbursement requests, and travel plans. It will enable him or her to produce:

Based on the workflow design, a “travel request” informing the company of an upcoming business trip is sent to the internal travel office for additional processing and approval.

You can also read for :When Did I First Hear About SAP? A Journey Through Discovery

The object travel plan is used by the employee (or the company’s appointed travel agency) to arrange the specifics of the trip. The system assists in scheduling the mode of transportation by retrieving the travel preferences from the “infotype.”

The system configures the allowable travel expenses, which vary per nation. When an employee submits a trip reimbursement claim to the internal travel office, this arrangement facilitates the processing of the reimbursement. The employee manually enters the travel expenses into the system once a trip is finished, or they can be taken from the travel plans and adjusted at a later time. Again, SAP provides the flexibility so that travel expenses can either be submitted by employees or by the travel office’s representative.

The travel plan, travel details, settlement rules, and reimbursement records (for prior payments) are the factors that the system uses to calculate the total amount that must be paid for the reimbursement settlement of the expenses. After  receives the settlement data, the payment is made via FI-AP’s

Tcode: TRIP

YOU MAY BE INTERESTED IN

10 Real-World SAP ABAP Programming Examples (with Code!)

SAP ALE IDoc Configuration Steps: Streamlining Communication

Top SAP ABAP Interview Questions (2024)

SAP

Just a key and two clicks for ALV consistency check

ALV consistency check. I recollect when one of my leaders surveyed my most memorable deliverable in the ALV report; it was over in 1 moment. He came and clicked something and showed the irregularities in my report. Requested that I fix them and get back to him for the audit. I was so astounded. I gave my earnest exertion for over seven days for the turn of events, and somebody tracked down issues in it in 1 minute or less. Huh!!!

There we had leads like him who showed us how to fish. My lead believed I should discover that stunt forever. He maintained that I should get the issue settled and ask him, how he sorted it out. I did it according to his arrangement. He was glad to share that squeezing Movement + RIGHT Double tap on a region in the ALV Matrix Control in which no table lines are shown (scroll right or base to find the compartment space) would get the job done.

ALV Consistency

Execute your report. Look down or right to discover some unfilled space in the holder. The regions set apart with stars above are your place to keep your cursor. At the same time press SHIFT and Double tap your right mouse button. Check, the irregularities. You wouldn’t believe how canny this basic consistency check is. It would get many issues, which we would miss if we somehow managed to physically check the code.

Commonly, that’s what engineers feel assuming the report is shown effectively, they are great. Assuming your report is simply to show, you may be fine. Be that as it may, assuming you have some activity in your report, for example, drill down or exchange call or some other activity. Your report could dump in some situation at run time. One of our report used to dump underway framework for just a few specific obscure cases and we couldn’t reproduce it. SHIFT + Double tap got the job done. It pin-pointed the issue which we believed was great to overlook.

SAPYard ALV Consistency
www.sapyard.com ALV Consistency Check

The above report yield looks great. Be that as it may, see the irregularity. It looks minor yet it isn’t right. The field name is ‘MATNR’ however designer has wrongly named it in the field list as ‘MATERIAL’. Right the field index and your consistency really take a look at passes.

www.sapyard.com ALV Consistency

See one more illustration of the irregularity report.

www.sapyard.com ALV Consistency

Companions, this is a basic stunt and has been referenced in each other ABAP discussion. Yet, when you come for a survey, you find your young weapons having issues in their reports. We advance by sharing. Pass this straightforward data to your young companions, and I’m certain, they would see the value in it.

Refreshed April seventh, 2016: One more simple choice to check the consistency of an ALV yield. On account of Naimesh for his post.

On the ALV yield report, type “&SOS” at the order region on top.

YOU MAY BE INTERESTED IN

O DATA Complete Overview Blog Series

abap ale idoc rfc step by step

SAP

Why are developers so fond of ‘REUSE_ALV_GRID_DISPLAY’?

Is it that hard to NOT utilize FM ‘REUSE_ALV_GRID_DISPLAY’ to show ALV? Or on the other hand is it human instinct to remain in our usual range of familiarity? ABAPers who are dependent on this FM, have the code scrap prepared in their vault to reuse in each and every other report, so they don’t really focus to look on some other option.

SAP delivered the class ‘CL_SALV_TABLE’ over 10 years prior yet it couldn’t arrive at the personalities of the vast majority of those FM cherishing ABAPers. SAP has different classes to show the ALV however plant strategy is one of the least difficult to execute. Truth be told, I find manufacturing plant strategy takes even less lines of code than the famous ‘REUSE_ALV_GRID_DISPLAY’.

Web is overwhelmed with instructional exercises of how to involve this class ‘CL_SALV_TABLE’ for ALV show. So I would rather not add another instructional exercise. Here, I would just give the functioning code scrap which can be utilized in any task. Trust with this instant arrangement, some old fashioned ABAPers would take a dunk in this class strategy to show the ALV..

Pronounce a technique in your report class with the underneath code passing your last inward table ( for fledgling you can duplicate it into a subroutine and call it in your program).

Save this code scrap and begin reusing it with certainty..

Strategy display_alv_report .

DATA:
lr_alv TYPE REF TO cl_salv_table,
lr_columns TYPE REF TO cl_salv_columns_table,
lr_column TYPE REF TO cl_salv_column,
lr_functions TYPE REF TO cl_salv_functions_list,
lr_display TYPE REF TO cl_salv_display_settings,
lr_layout TYPE REF TO cl_salv_layout,
lr_sorts TYPE REF TO cl_salv_sorts,
ls_key TYPE salv_s_layout_key.

* Check to make sure the internal table has data.
IF lines( it_final ) > 0.

TRY.
* Create ALV instance
* This is the factory method we were talking about
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = lr_alv
CHANGING
t_table = it_final.

* Get functions object
lr_functions = lr_alv->get_functions( ).

* Set all the functions
lr_functions->set_all( ).

* Get column object
lr_columns = lr_alv->get_columns( ).

* These are optional functions
* If you want to change the description of columns, call and set as shown below
* CALL METHOD lr_columns->get_column
* EXPORTING
* columnname = 'NETWR_PO'
* RECEIVING
* value = lr_column.

* Important to mention. If you want to give custom short text, then make
* Medium text and long text blank (important trick). Similarly applicable for med and long text overriding.
* CALL METHOD lr_column->set_short_text
* EXPORTING
* value = ' '.
* CALL METHOD lr_column->set_medium_text
* EXPORTING
* value = 'PO Srv Net Val'.
* CALL METHOD lr_column->set_long_text
* EXPORTING
* value = ' '.
*
* Optimize the columns
* lr_columns->set_optimize( ).

* Get sort column
* lr_sorts = lr_alv->get_sorts( ).
* lr_sorts->clear( ).

* Sort table
* lr_sorts->add_sort( columnname = 'AUFNR' ).

* Get Layout
lr_layout = lr_alv->get_layout( ).

ls_key-report = sy-repid.
* Set Layout
lr_layout->set_key( ls_key ).
lr_layout->set_default( ' ' ).
lr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).

* Optional, if there is a layout from selection screen use it
* IF NOT p_layout IS INITIAL.
* lr_layout->set_initial_layout( p_layout ).
* ENDIF.

* Get Display setting
lr_display = lr_alv->get_display_settings( ).

lr_display->set_striped_pattern( cl_salv_display_settings=>true ).

* Display the ALV
lr_alv->display( ).

* Catch exceptions
CATCH cx_salv_msg.
WRITE: 'Error displaying grid CX_SALV_MSG!'.

CATCH cx_salv_not_found.
WRITE: 'Error displaying grid CX_SALV_NOT_FOUND!'.

CATCH cx_salv_data_error.
WRITE: 'Error displaying grid CX_SALV_DATA_ERROR!'.

CATCH cx_salv_existing.
WRITE: 'Error displaying grid CX_SALV_EXISTING!'.

ENDTRY.

ELSE.

WRITE: 'There is no data to display!'.

ENDIF.

ENDMETHOD. " DISPLAY_ALV_REPORT

If you do not want to display certain fields of the final table, we can set it to invisible.

Hide some fields or make them Invisible.

lr_column->set_visible( value if_salv_c_bool_sap=>false ).

Or

CALL METHOD lr_column->set_visible
EXPORTING
value = if_salv_c_bool_sap=>false.

Updated 12/26/2018

To put header data on top of the ALV, you can utilize the underneath piece.

Underneath capability would put the header.

lr_alv->set_top_of_list( lr_content ).

Check the reference snippet to build the header content.

*&---------------------------------------------------------------------*
*&      Form  built_header
*&---------------------------------------------------------------------*
FORM built_header CHANGING cr_content TYPE REF TO cl_salv_form_element.

  DATA: lr_grid   TYPE REF TO cl_salv_form_layout_grid,
        lv_row    TYPE i,
        lv_fdate  TYPE char10,
        lv_tdate  TYPE char10,
        lwa_error TYPE ty_error,
        lv_head   TYPE string VALUE 'Report of Dunned Accounts with No POSID',
        lv_text   TYPE string,
        lr_grid_1 TYPE REF TO cl_salv_form_layout_grid,
        lr_text   TYPE REF TO cl_salv_form_text,
        lr_label  TYPE REF TO cl_salv_form_label.

  lv_row = lines( it_error ).

  lv_row = lv_row + 2.

  CREATE OBJECT lr_grid.

  lr_grid->create_header_information(
    row    = 1
    column = 1
    text    = lv_head
    tooltip = lv_head ).

  lr_grid->add_row( ).

  lr_grid_1 = lr_grid->create_grid( row    = lv_row
                                          column = 1 ).

  lr_label =  lr_grid_1->create_label(
                      row     = 1
                      column  = 1
                      text    = 'Dunning Run Date:'(015)
                      tooltip = 'Dunning Run Date:'(015) ).

  IF s_id IS NOT INITIAL.

    lr_label =  lr_grid_1->create_label(
                      row     = 2
                      column  = 1
                      text    = 'Dunning Run ID:'(016)
                      tooltip = 'Dunning Run ID:'(016) ).
  ENDIF.

  CLEAR lv_text.

  IF s_date-high IS NOT INITIAL.
    WRITE s_date-low TO lv_fdate.
    WRITE s_date-high TO lv_tdate.
    CONCATENATE lv_fdate 'to' lv_tdate INTO lv_text SEPARATED BY space.
  ELSE.
    WRITE s_date-low TO lv_fdate.
    lv_text = lv_fdate.
  ENDIF.


  lr_text = lr_grid_1->create_text(
                    row     = 1
                    column  = 2
                    text    = lv_text    " s_date-low
                    tooltip = lv_text ). " s_date ).

  CLEAR lv_text.

  IF s_id IS NOT INITIAL.
    IF s_id-high IS NOT INITIAL.
      CONCATENATE s_id-low 'to' s_id-high INTO lv_text SEPARATED BY space.
    ELSE.
      lv_text = s_id-low.
    ENDIF.

    lr_text = lr_grid_1->create_text(
                      row     = 2
                      column  = 2
                      text    = lv_text      " s_id-low
                      tooltip = lv_text ).   "s_id ).

  ENDIF.

  CLEAR lv_row.
  lv_row = 2.
  LOOP AT it_error INTO lwa_error.
    lv_row = lv_row + 1.

    lr_label =  lr_grid_1->create_label(
                      row     = lv_row
                      column  = 1
                      text    = 'Dunning Lock Error:'(017)
                      tooltip = 'Dunning Lock Error:'(017) ).

    lr_text = lr_grid_1->create_text(
                      row     = lv_row
                      column  = 2
                      text    = lwa_error-message
                      tooltip = lwa_error-message ).
  ENDLOOP.

  lr_label->set_label_for( lr_text ).

  cr_content = lr_grid.

ENDFORM.                    " built_header

Kindly let us know, assuming we want to give further explanation on this subject.

YOU MAY LIKE THIS

Comprehensive Blog Series on ABAP on Cloud

Business Object Processing Framework (BOPF)

SAP Business Workflow

SAP ABAP Interview Questions Real time Expectations

Proxy in SAP Abap: Seamless Communication

SAP

Is data element WDY_BOOLEAN and Flag (Char1) same for Web Dynpro ALV?

Both wdy_boolean and flag are data elements of type char1.  Does it mean both are same?

Straight talk today. Allow me to show both of the results of a similar Web Dynpro ALV which has three fields, to make my point. Three sections in an ALV are: Plant, Plant Name and a one-person banner saying ‘Set’.

a) Let us initially characterize the information component as ‘Banner for the one-person field ‘Set’ in the setting definition. Check out at the result in ALV.

2
3

b) Presently, let us characterize the information component as WDY_BOOLEAN for a similar one-person field ‘Set’. Mark the result ALV once more.

4
52

Do you see the distinction?
The subsequent result shows that the “Set” field is shown as a checkbox.

Did it light something?
Thus, at whatever point you really want a checkbox in an intelligent ALV, just set the field as WDY_BOOLEAN, and you are good to go to get a checkbox as a result. Isn’t it cool?

Kindly leave your message below, and we would be glad to answer.

To get such down-to-earth issues and goals directly to your inbox, kindly buy in. We regard your security and view safeguarding it in a serious way.

On the off chance that you enjoyed this post, if it’s not too much trouble, hit the offer button at the left half of your screen.

Many thanks for your time!!

YOU MAY LIKE THIS

Unsupervised Learning in 2024: Unveiling the Hidden Gems of Your Data

Can I become full stack developer in 3 months?

AI and Machine Learning in SAP: A Practical Guide

Leveraging SAP HANA for Advanced Analytics

SAP

Adobe Interactive Forms. Part 23. How to Hide the Fields and Acquired Space Dynamically using JavaScript in Adobe Form

PREQ: Should be aware of basics of Adobe Form.

Transaction code: SFP

Enter the interface name and click on create.

Enter the description and save it.

Create the custom importing parameters variables by clicking the import button on the left side and click on create button on right side and save and activate it. We have declared three parameters of same type of CHAR20.

Now go back to the main screen of SFP and choose the option Form and create it by adding the interface which we had created previously.

On the left side expand import section of interface and drag and drop all the importing variables IV_NAME1, IV_NAME2 and IV_NAME3 to context.

Let’s create the Layout of form which is available next to Context button.

Switch to design view and click on Hierarchy part. Select the content area of a form and click on object (right side) after that click on Subform and choose content type: Flowed

Now here we will design the form using Subform and wrap every object like text fields, text box, Buttons and tables etc. in it.

Here we will create 4 Subforms in content area.

Now select the Subform and inert the text fields and rename the default name of Text Fields to:

Name1, Name2 and Name3

 

Do the binding of all three text fields from the importing parameter variables (IV_NAME1, IV_NAME2 and IV_NAME3) by clicking on the the binding > Data Binding > choose the field

After the we will hide the field Name2 of subform2 using JavaScript. Select the subform2 and go to Palettes > Script Editor

You will get the below screen

Choose the event Initialize and language JavaScript and write the below code.

if( this.Name2.rawValue == null )

{              this.presence = ‘hidden’

}

We are hiding the field Name2 if its empty.

Always use the same field name (Name2) in script which is defined in the subform and it’s a case sensitive also otherwise it won’t work.

Check save and activate it.

Let’s test our form.

Case 1: Press F8 and pass all the importing values.

Press F8 and press on print preview.

Here script won’t hide Name2 as have passed the value in IV_NAME2. 

Case 2:  IV_NAME2 =   ‘ ‘.

Press F8 and don’t pass the value in IV_NAME2.

This time JavaScript code gets executed to hide the field Name2 and removed the space also.

If you see below fields has shifted to up and adjusted the space automatically. This is only possible if you wrap the fields in Subform. 

Hope you were able to get a fair idea about this interesting topic. If you have any doubts, queries or suggestions for us, please put your comments below. I will be happy to respond you.

YOU MAY LIKE THIS

SAP ABAP Checkpoint Group – Chase the Mysterious SAP Issues with a Smile

Best Practices for SAP ABAP Development: A Comprehensive Guide

4 Useful Tips on ABAP and ABAP on HANA

SAP

SAP Interactive Adobe Forms. Part 22. Handle Different Paper Size templates into single Adobe Form

SAP Adobe is still a niche area. With S/4HANA eventually almost all forms will be converted to Adobe. So, if you have not started learning SAP Adobe, it is high time you did it. Put this in your new year resolutions. 

This article presents an intriguing method for combining different paper sizes into a single format. While most other countries use A4 paper size, we have a legal need for US-based countries to use LETTER paper size in various roll-outs for different countries. In order to meet this need, we typically need to maintain multiple forms and design two distinct  templates, one for the US and one for the other countries.Having a single Global Form Template that works for  both A4 and letter sizes would be very beneficial.

SAP HANA ABAP Programming

Before we move forward with this tutorial, we have a quick announcement to make. A new batch of ABAP Programming on SAP HANA is commencing on 18th Jan 2020. If ABAP on HANA is in your kitty list, do take a look into the course content and enroll for the same.

Steps to create Template:

  • Create Adobe form with 2 master Pages – LetterMaster and A4Master
Hierarchy of Adobe Form with 2 master Pages
  • Set Paper Type of LetterMaster page as ‘LETTER’

Go to Object Palette->Select “Master page” tab->Select ‘paper type” as Letter

  • Set paper Type of A4Master page as ‘A4’.

Go to Object Palette->Select “Master page” tab->Select ‘paper type” as A4

  • Create 2 body pages – LetterDetails and A4Details and create a text field in each body page

If we try to generate output with this template, we would see 2 pages. But our business requirement is to show only one page – either Letter or A4.

How can we achieve it? A conditional flag can come to our rescue.

For that, we have to declare a flag containing identifier for both paper sizes and based on that flag, we have to hide/ display the relevant pages.

  • Declare an import parameter in Form interface as IV_PAPER_TYPE with type BOOLEAN.
  • In Driver program, we have to pass the value of the above flag as :

When LETTER is needed, set IV_PAPER_TYPE = ‘X’

When A4 is needed, set IV_PAPER_TYPE = ‘-‘

  • Drag and drop the import parameter From Interface to Form Context.
  • On LetterDetails Page, add the following Java script in INITIALIZATION event to hide the LetterDetails page based on flag value relevant to A4:
 if( $record.FLAGS_DYNAMIC_CONTENT.IV_PAPERTYPE_FLAG.value == "-" )
 {
 	this.presence = "hidden";
 }
  • On A4Details Page, add the following Java script in INITIALIZATION event to hide the A4Details page based on flag value relevant to LETTER :
  if( $record.FLAGS_DYNAMIC_CONTENT.IV_PAPERTYPE_FLAG.value == "X" )
 {
 	this.presence = "hidden";
 }

Here is the Main Trick

We need to link the Body pages with the respective Master pages so that when Form processing runs, Life Cycle Designer should trigger the correct page.

  • Set the pagination of LetterDetails page with LetterMaster page
Select required page from drop-down list in “Place”
  • Set the pagination of A4Details page with A4Master page
Select required page from drop-down list in “Place”

Testing :

Execute the driver program and set the Paper Size as LETTER

Execute the driver program and set the Paper Size as A4

I hope you’ll be able to apply this tip to your project at some point. This tip is useful if your organization operates globally using a single SAP system. It’s not necessary to make duplicate forms. All of your templates can be used with a single form. We used two templates in this example, but you can use more than two.

YOU MAY LIKE THIS

SAP ABAP Checkpoint Group – Chase the Mysterious SAP Issues with a Smile

Best Practices for SAP ABAP Development: A Comprehensive Guide

4 Useful Tips on ABAP and ABAP on HANA

SAP

Adobe Forms. Part 21. Display Rich Texts from UI App on Adobe Forms

SAP One technology that merits greater recolonization than it currently receives is Adobe Form. You can use Adobe to accomplish any demand you can think of. The use of Adobe Forms’ Rich Texts Integration will be demonstrated in this article. To put it briefly, the Adobe Form should be dynamic in order to carry out one or more of the following tasks using texts:

  1. Can be hard coded in the form, 
  2. Can be maintained in a standard text in SAP and displayed in forms using include texts
  3. Maintain in a UI App with required formatting (Font type-Bold, Italic / different Headings / Bullet points/Numbering) and integrate on Adobe Form.

The first two are easy to understand. According to SAPYard, it is putting something that is not easily found online. Thus, we will focus on point 3.

Prerequisites:

  • Basic familiarity with Java scripts and Adobe forms.
  • fundamental understanding of SAPUI5 and Web Dynpro ABAP (to construct a FormattedText Editor).
  • comprehension of XSLT conversion.
  • strong ABAP knowledge.

Business requirement:

In output forms (AR Correspondences / FSCM Dunning Letters / Billing Invoices etc.), there are lot of text information which is customized based on company code or output types. Business would be interested to maintain these texts outside the Form with desired formatting so that in future, if any related texts need to be changed, business can maintain by themselves and would be updated in forms without doing any form enhancements.

Solution Design:

Implementation Steps:

Make a custom SAPUI5 or Web Dynpro application (you can choose) with the following buttons to  change and save the text in the database, formattedTextEdit UI element, and selection fields:

FormattedText Editor in WD ABAP

FormattedText Editor in SAPUI5

  • Create a Data Base table ZPB_TEXT_HTML which will save Formatted text as HTML as follow
  • Create XSLT transformation ZPB_TEST_FORMATTED_TEXT using  STRANS T-code and type “XSLT program”. Sample used is as follow:

Please note that ADS can’t identify normal HTML tags. ADS can only identify XHTML tags so we would need to transform the HTML tags into XHTML and that’s why XSLT transformation becomes very handy for these string replacement operation. You can also use regular expression and other ways to transform.

Bold tag in HTML from formatted text in UI          :        <strong> </strong>

Bold tag in XHTML identified by ADS : <b></b>

  • In transaction SFP, create the Adobe form interface ZPB_RICH_TEXT_INTERFACE.
  • For HTML documents, create global data:
  • Create an optional input parameter LS_HEADER which will contain input data from calling program.
  • In code initialization, perform following steps:
    1. Select HTML text from DB table.
    2. Get HTML text for header section and transform using XSLT transformation.
    3. Update transformed text into Global data for header text.

In transaction SFP, create Adobe Form ZPB_RICH_TEXT_FORM and pass the interface above. Import parameters and drag Interface Global data into Form Context. In Form layout, create a text field “txtHeader” in detail view and set it’s property as:

  • Since the text field may include many lines (entried from a UI application), we need surround it in a flowing subform and set its height to “Expand to fit” as seen below:
  • Since field format has been set to “Rich Text“, we need to write java script to bind the XHTML text. Select text field, go to script editor and select “initialize” event :
  • Create a test program to call the adobe form and generate PDFs:

Testing:

If you encounter similar requirements in your project, I hope this post will provide you with a basic understanding of how to address them. I wanted to offer the solution we used in our project, although there may be other options as well.

YOU MAY LIKE THIS

SAP ABAP Checkpoint Group – Chase the Mysterious SAP Issues with a Smile

Best Practices for SAP ABAP Development: A Comprehensive Guide

4 Useful Tips on ABAP and ABAP on HANA

× How can I help you?