Enabled and troubleshoot Manage Purchase Contract Fiori app in S/4 HANA 1610

This blog will help in enabling and troubleshooting the issues with Manage Purchase Contract fiori app in S/4 HANA 1610 FPS01

Manage Purchase Contract

Steps to enable

* Ensure the software component UIS4HOP1 200 – SP 0001 is installed.
* Ensure the backend component S4CORE 101 – SP 0001 is installed.

* Enable the below SICF services

* MM_PCTR_ST_MTS1

* Enable the below ODATA services

* MM_PUR_OA_MAINTAIN_SRV 0001

* Assign the business role SAP_BR_PURCHASER to

* the business catalog SAP_PRC_BC_PURCHASER_PUC
* the business group SAP_PRC_BCG_PURCHASER_PUC

* Assign the respective users to the business role SAP_BR_PURCHASER

Troubleshooting

Issue 1:

* Go to Manage purchase contracts app
* Enter a supplier number which has data and click on to go button
* From the search results, choose one of the records and click on to that purchase contract

Some of the purchase contracts will open and some will not open. It will throw an error “Could not open the app”.

This issue can be resolved by applying the note 2477887. But after applying this note, some contracts will open the UI5 app and some will open both the UI5 app and also the GUI for HTML app and then close the UI5 app. This behavior of opening both type of apps and retaining only GUI for HTML app happens when the chosen contract has multiple account lines or multiple conditions or item category other than “Standard”.

Issue 2:

* Go to Manage purchase contracts app
* Enter a supplier number which has data and click on to go button
* From the search results, choose one of the records and click on to that purchase contract
* The object page will load.
* Click on to the delete button in the object page.

The purchase contract will not be deleted in the backend. And at times, when you navigate from object page to worklist page, it will show the status of purchase contracts as VAE instead of original status.

Both of these issues can be resolved by applying the notes 2530601,2426585,2502907

Issue 3:

Another issue which is related to delete is.

* Open a particular purchase contract object page by choosing one of the purchase contract in the work list.
* In the object page, go to items tab

At times, it will show the items that are in blocked and deleted status in the backend. And you will be able to change the quantity of these items in and these quantities will reflect in Fiori app but not in the backend.

This issue can be resolved by applying the note 2519875

But post this,this functionality may work correctly for some users and not for others. This issue can be resolved by applying the note 2512783

I recommend to proactively apply these notes to eliminate these issues and save your time.

  http://bit.ly/2DRhbgC #SAP #SAPCloud #AI

Comparing Publish-Subscribe Messaging and Message Queuing

Building the data pipelines that move data from where it is created to all of the different places that it is processed is a fundamental part of designing and implementing data-driven applications. Messaging is a critical technology for connecting data in this environment.

In the data processing domain, messaging is the transmission of data records from one system to another via an intermediate system. In contrast to direct connections, where senders know the receivers to which data will be sent and connect directly to each receiver, messaging solutions decouple the sending of data from data consumption. Senders do not know which receivers will see that data or when they will see it. https://goo.gl/dMcz43 #DataIntegration #ML

Another approach to get the number of records stored in a table in HANA DB

Still used the old way SELECT COUNT(*) to get total number of records stored in a table? If you are using HANA database, there is another approach to achieve the same. In HANA there is a metadata table m_tables which stores the related information: You can find its definition in SAP help. You can use the following ABAP code to access this HANA table from ABAP server: class CL_CRM_HOME_TABLE_SIZE_TOOL definition public final create public . public section. TYPES: BEGIN OF ty_size, table_name TYPE char256, record_count TYPE int4, table_size TYPE int4, END OF ty_size. TYPES: tt_size TYPE TABLE OF ty_size with key table_name. class-methods GET_SIZE importing !IT_INPUT type STRING_TABLE returning value(RT_RESULT) type tt_size . protected section. private section. ENDCLASS. CLASS CL_CRM_HOME_TABLE_SIZE_TOOL IMPLEMENTATION. METHOD get_size. DATA(lv_in) = REDUCE string( INIT x TYPE string FOR IN it_input NEXT x = SWITCH #( x WHEN space THEN |’{ }’| ELSE x && ’,’ && |’{ }’| ) ). TRY. DATA(lo_sql_con) = cl_sql_connection=>get_connection( ). DATA(lo_stmt) = lo_sql_con->create_statement( ). DATA: lv_stmt TYPE string. lv_stmt = |select table_name, record_count, table_size from m_tables where table_name in ({ lv_in })|. DATA(lo_res) = lo_stmt->execute_query( lv_stmt ). GET REFERENCE OF rt_result INTO DATA(lr_data). lo_res->set_param_table( lr_data ). lo_res->next_package( ). lo_res->close( ). CATCH cx_sql_exception INTO DATA(cx_root). WRITE:/ ‘Error:’, cx_root->get_text( ). RETURN. ENDTRY. ENDMETHOD. ENDCLASS.

Consumer report: REPORT zsize. DATA: lt_input TYPE String_table. lt_input = VALUE #( ( CONV string( ‘TADIR’ ) ) ( CONV string( ‘TFDIR’ ) ) ). DATA(lt_size) = cl_crm_home_table_size_tool=>get_size( lt_input ). cl_demo_output=>display_data( lt_size ).

Result: http://bit.ly/2DOQpWr #SAP #SAPCloud #AI