SAP & Oracle partner and support companies

Loading

Blog

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

SAP

Adobe Forms. Part 20. XML Integration – An Offline Scenario – 1

In real-time business scenarios, Adobe Forms provide immense flexibility and are highly effective for automating complex business processes. Previously, I demonstrated how to use JavaScript for dynamic layout changes and validations in Adobe Forms, as well as the implementation of Interactive Adobe Forms in different scenarios. Recently, I developed Adobe Forms using an XML schema to enhance functionality, allowing seamless data binding from an XML file while supplying driver data via XML. These forms are widely used when data is provided in XML format and needs to be converted into a PDF.

PDF to XML Conversion:

Functions of Adobe Document Services (ADS)

ADS enables the creation of PDFs and other print-ready documents using XML form templates and existing system data. Additionally, it allows extraction of user-entered data from interactive PDF forms for rendering and further processing.

Interaction with ADS

To simplify integration, SAP provides a single programmatic interface known as the PDF Document Object (or PDF Object). This allows developers to interact with ADS efficiently.

PDF Object in SAP

SAP offers both Java and ABAP versions of the PDF Object. In ABAP, SAP provides two key interfaces:

  • IF_FP (Form Interface): Handles form-related functions.
  • IF_FP_PDF_OBJECT (PDF Object Interface): Manages PDF-related operations.

Business Scenario:

This article uses an offline scenario as its business example, where a client can fill out bank information and submit it back to have it changed in the customer master.

  • The form already has the SAP customer number and invoice number entered.
  • The customer receives the form via email. The client fills out the form and returns it.
  • The client master is updated after the data from the PDF form is obtained.
  • Web Dynpro development, which is utilized for online scenarios for interactive Adobe forms, is not necessary for this.

Process Flow Diagram:

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?