Using classical text editor for Smart Forms instead of MS Word

In updated system MS Word used as default Smart Forms and SAP Script text editor. In cloud system it is mandatory.

You can configure text editor with two ways. You can run ABAP report RSCPSETEDITOR in t-code SE38 for changing it. Other option using t-code I18N. In this t-code you need to open I18N Menu -> I18N Customizing -> I18N System Parameter. Select smartforms_editor as Parameter and emtpy as Value.

If you haven’t got enough privileges to change configuration, you can manipulate it in debug mode. These configuration saved DB table TCP0I as smartforms_editor and sapscript_editor. You can add break point in NLS_WORD_ENABLE function in t-code SE37. This function called by Smart Forms in first use of editor.

In S/4HANA system you need to add additional break point for running old editor. Add break point to CL_GUI_RTF_EDITOR and CL_GUI_SAPSCRIPT_EDITOR classes constructor below line and bypass the raise exception line.

* is not supported in S4H
  if cl_cos_utilities=>is_s4h( ).
    raise error_cntl_create.
  endif.

Set FQDN on Linux for SAP Server

An example FQDN: myserver.mkysoft.com

Add computer name to /etc/hostname file.

myserver

Add you domain to /etc/resolv.conf.

domain mkysoft.com

Add host name and domain with IP to /etc/hosts.

10.10.1.5  myserver.mkysoft.com myserver

You can check yor configuration with niping tool. This tool can be found n SAPRouter package.

niping -v -H myserver.mkysoft.com

Hostname/Nodeaddr verification:
===============================

Hostname of local computer: myserver                         (NiMyHostName)
FQHN of local computer: myserver.mkysoft.com                 (NiGetOwnFQDN)

Lookup of hostname: myserver                                 (NiHostToAddr)
    --> IP-Addr.: 10.10.1.5
Lookup of IP-Addr.: 10.10.1.5                                (NiAddrToHost)
    --> Hostname: myserver.mkysoft.com

Lookup of hostname: myserver.mkysoft.com                     (NiHostToAddr)
    --> IP-Addr.: 10.10.1.5
Lookup of IP-Addr.: 10.10.1.5                                (NiAddrToHost)
    --> Hostname: myserver.mkysoft.com

Useful reports

ReportDescription
RS_REPAIR_SOURCEABAP Editor Call
RDDIT076Change request/task status
RS_STREE_OBJECTS_TO_REQ_GETAuto adding related objects to request
SPROX_LOG_TRANSP_OBJ_INSERTInsert missing logical objects to request
RFSEPA01Fill BSIS table after enabling line item display in FS00.
SPROX_XSD2WSDLConvert schema (XSD) to WSDL

hybris system requirements

hybris minimum requirements by versions. Preferred DB charset is utf8 and collation is utf8_bin.

JVMDBSolrImageMagickTomcat
2205SapMachine 17.0MySQL 8.0 (jdbc 8.x)8.11.16.7.3-58.5.78
2105SapMachine 11.0MySQL 5.7 (jdbc  5.1.x), 8.0 (jdbc 8.x)Patch 1 <= 8.9.0,
Patch 2 = 8.10
Patch 3 >= 8.10.1
6.7.3-58.5.69
2011SapMachine 11 or Oracle JDK/JRE 11MySQL 5.7 (jdbc  5.1.x), 8.0 (jdbc 8.x)8.66.7.3-58.5.56
2005SapMachine 11MySQL 5.7 (jdbc 5.1.x), 8.0 (jdbc 8.x)8.4.06.7.3-58.5.51
1905SapMachine 11MySQL 5.6, 5.7 (jdbc  5.1.x), 8.0 (jdbc 8.x)7.76.7.3-58.5.40
1811Oracle 8.0 or SAP JVM 8.1MySQL 5.6, 5.7 (jdbc  5.1.x) )7.56.7.3-58.5.40
1808Oracle 8.0 or SAP JVM 8.1MySQL 5.6, 5.7 (jdbc  5.1.x) )7.46.7.3-5

hybris installer failed

If you are getting error while installing receipt like below, although you have set the parameter, check your maven settings for central repositories URLs start with HTTPS.

********************************************************************************************************
Either platform properties or system environment does not have the required property 'initialpassword.admin' set.
Please make sure to provide it in the recipe or in the system environment.

If you are running recipe using installer application you can set required property via option
-A local_property:initialpassword.admin=property_value

If missing property is initialpassword.admin then you can set it up using
shortcut -A initAdminPassword=admin_password
********************************************************************************************************

Maven disabled HTTP repositories. You can use below sample maven config file at <user-home>\.m2\settings.xml.

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <profiles>
    <profile>
      <id>default</id>
      <repositories>
        <repository>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>default</activeProfile>
  </activeProfiles>
</settings>

Source: https://stackoverflow.com/questions/59972570/why-does-hybris-ship-insecure-http-maven-repository-url-and-why-cant-we-overri

Useful ABAP Functions

Function Description
POPUP_TO_SELECT_MONTHSelect month and year.
GUI_RUNRun command on the client side.
DAYS_BETWEEN_TWO_DATESTotal days between dates.
HRVE_CONVERT_TIME Convert time between 24h and 12h
SEO_CLASS_GET_METHOD_INCLUDESFind includes which are created by class
TH_POPUPSend a message to the user
RP_CALC_DATE_IN_INTERVALAdd or remove days, months, and years to date
HR_EFI_CONVERT_STRING_TO_TABLEConvert string to itab with a given row length
MCS_BIW_DROP_CREATE_TABLEDrop and re-create a database table
CONVERT_DATE_TO_INTERNALConvert string to date with check
ARCHIVFILE_CLIENT_TO_SERVERCopy a file from client to server (upload)
ARCHIVFILE_SERVER_TO_CLIENTCopy a file from server to client (download)
ALINK_CALL_TRANSACTIONCall t-code without authorization.
POPUP_GET_VALUESAsk for values to user.

Split string to lines for displaying

DATA: lv_content TYPE string,
      lv_pos     TYPE i,
      lv_len     TYPE i.
lv_content = 'dummy string'.
lv_pos = 1.
WHILE lv_pos LE strlen( lv_content ).
  lv_len = 80.
  IF lv_pos + lv_len GT strlen( lv_content ).
    lv_len = strlen( lv_content ) - lv_pos.
  ENDIF.
  WRITE lv_content+lv_pos(lv_len).
  lv_pos = lv_pos + 80.
ENDWHILE.



If SOAMANAGER not exists

Some old system hasn’t got SOAMANAGER for configuring/creating logical port or service. We can use below t-codes for same operation.

LPCONFIG
WSCONFIG
WSADMIN

Linux check list

Install tools for operation.

yum install nano wget epel-release

Update

If you update some packages, your config files override with new ones. You can find old files with rpm extension in same directory.

Latest Packages

Some linux distributions update their package with delay. IUS is good option for using latest package. You can get IUS package list here and install them with below command.

Install ius rpm package first:

yum install https://centos7.iuscommunity.org/ius-release.rpm

Use u suffix for Installing package from ius repo. For example use below for installing git 2.x:

yum install git2u

Postgres

Download rpm package, check this list for other versions.
wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Install package.
rpm -i pgdg-centos96-9.6-3.noarch.rpm
yum install postgresql96-server postgresql96-contrib
/usr/pgsql-9.6/bin/postgresql96-setup initdb

Create db and user.

su postgres
createuser --interactive
createdb -O myuser mydb

Run psql for setting password to new user.

psql
ALTER USER mydbuser WITH PASSWORD 'mynewpass';
\q

Proxy

If you need proxy you can use nginx. You need give permission to nginx for accessing http resources.

setsebool httpd_can_network_connect true -P

Check nginx.log with

tail -10f /var/log/nginx/error.log

php & php-fpm

Use IUS for latest release, php72u.

Permissions overwritten after update, check /var/lib/php/fpm permissions.

Java

JRE

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jre-8u181-linux-x64.rpm"
yum localinstall jre-8u181-linux-x64.rpm

JDK

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm"

Firewall

firewalld