Abap

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 21

ABAP

Home

What’s New

SAP on Azure

Microsoft and SAP join forces to give customers a trusted path to digital
transformation in the cloud

SAP on Azure

Streamlining business processes with SAP connectors and Azure services

Writing Testable Code for ABAP

This openSAP course creates ripples in SAP community!

ABAPosaurus Takes openSAP Course

Why OpenSAP started ABAP Unit Test course now – My 2 Cents

ABAP Unit Test for Odata Services

Writing Testable Code for abap2xlsx

ABAP in the Cloud

The SAP community is looking forward to see ABAP in the cloud platform and its
benefits.

ABAP and the Cloud - Introducing ABAP 7.52 and ABAP in SAP Cloud Platform by Karl
Kessler - SAP Insider

Overview of ABAP in SAP Cloud Platform by Florian Wahl

ABAP in SAP Cloud Platform – Frequently Asked Questions by by Florian Wahl

New ABAP Programming Model

ABAP app goes web-based with OData and Hana.

About ABAP Programming Model for SAP Fiori - SAP Help

Be prepared for the new ABAP programming model in SAP S/4HANA by Carine Tchoutouo
Djomo

ABAP Programming Model for SAP Fiori – a Tutorial

Interesting Videos

ABAP in Eclipse

ABAP OO Refresher for AgileSE Course

Combinatorial Test Design

Recommended Books
Title

Author

Publisher

ABAP to the Future

Paul Hardy

Rheinwerk Publishing / SAP Press

Design Patterns in ABAP Objects

Kerem Koseoglu

Rheinwerk Publishing / SAP Press

ABAP Unit: Writing and Executing Unit Tests

James Wood, Joseph Rupert

Rheinwerk Publishing / SAP Press

Official ABAP Programming Guidelines

Horst Keller, Wolf Hagen Thümmel

Rheinwerk Publishing / SAP Press

Useful Links for ABAP and Beyond

SAP in General

ABAP Development Community

SAP Product and Solution Road Maps

TCP/IP Ports of All SAP Products

ABAP Language Reference

Reminder: ABAP Built-in Functions

Generic ABAP Types

Predefined ABAP Types

ABAP String Template - Embedded Expressions

New ABAP Syntax

ABAP Language News for Release 7.40

ABAP Language News for Release 7.50

SAP NetWeaver AS for ABAP 7.51 Innovation Package – Available Now!


SAP NetWeaver AS for ABAP 7.52 – Available now!

Open Source

abapGit – so easy

SAPlink – Thankyou

ABAP Open Source projects

SAP Contributions to Open Source

Getting started – Open sourcing ABAP code

dotabap

abap2xlsx – Generate your professional Excel spreadsheet from ABAP

ABAP in Eclipse

Get Started with the ABAP Development Tools for SAP NetWeaver

ADT Feature Availability Matrix for AS ABAP Releases

Useful Keyboard Shortcuts for ABAP in Eclipse

ABAP Doc

Download SAP Development Tools

ABAP in Eclipse – External Debugger Setting

Automatic source code formatting with ABAP in Eclipse

API Development

Usage of the ABAP REST Library - SAP_BASIS 7.40 (Basic REST Handler and REST
Resource class)

HTTP Status Codes

HTTP Methods - RESTful APIs Verbs – REST API Tutorial

ABAP and Swagger/OpenAPI (ABAP-Swagger)

Consuming JSON from external sources (Consuming APIs using HTTP Client)

Calling an external RESTful service from ABAP – HTTP Method GET (Consuming APIs
using REST Client)

Developing a REST API in ABAP (XSLT Transformation)

SAP Gateway, REST and OData (SAP Help)

2485370 - Development of OData V4 services using code based implementation (SAP


Notes about OData v4)

URI Conventions (OData Version 2.0)


DPC Code Related Issues with SADL-Based OData Services. Troubleshooting

Custom MQTT client in ABAP

SAP Gateway Foundation (SAP_GWFND) - Performance Statistics (sap-statistics=true)

Understanding SAP Performance Statistics for SAP Netweaver Gateway service

Application Log

Application Log - Guidelines for Developers (BC-SRV-BAL)

ABAP-Logger: ABAP Logging as painless as any other language

abap-log: Logging library for ABAP

Static Code Inspector (SCI)

Useful tips regarding ABAP code inspector that you may not know

abapOpenChecks – Open source checks SAP Code Inspector / ATC

Best Practices

DSAG Best Practice Guideline for ABAP Development now available in English

150 Executable Statement per Procedure

Test Automation

How to use SAP GUI Scripting inside Python Programming Language

SAP Test Automation - Robot Framework and SAP united!

SAP/PyRFC: PyRFC - The Python RFC Connector

eCATT: The Extended Computer Aided Test Tool

How eCATT Executes the Commands TCD and SAPGUI

Automating OData Service Testing with the eCATT OData Assistant

Continuous Integration

ABAP Continuous Integration with Jenkins

ABAP Continuous Integration with Eclipse

SAP Cloud Platform

Switch “ON” and “OFF” your newly developed capabilities using the Feature Flags
service

Spring Boot Applications in SAP Cloud Platform: Thoughts on Migration to Reactive


Model

How to Guide – Easy group/role mapping between SCP and AD-FS

Object-oriented Programming
A General Purpose ABAP Multiton Class

Using interfaces to standardize your ABAP OO Development

TSW Junctions: An Example of Inversion of control - SAP Blogs

Unit Testing

Working with ABAP Unit Tests

ABAP Test Double Framework – An Introduction

Microservices Architecture

Microservice Integration Patterns

Debugging

ABAP Debugger Scripting: Basics

Useful Tools

Report to copy objects locked in different tasks/TRs into a single TR

Connectivity From Third-Party

SAP S/4HANA Cloud SDK Overview

jConnect Driver Overview

Calling BAPI from Java

Cloud Platform

Introducing the SAP Cloud Platform SDK for service development

SAP Cloud Platform SDK for service development: Overview of Blogs

Installing SAP Cloud Connector into Docker and connecting it to SAP Cloud Platform

SAP UI5

Deploy a Fiori app in SAP Fiori

OAuth

Creating an ABAP Program That Uses OAuth 2.0 Client API

OAuth 2.0 - Constrained Authorization and Single Sign-On for OData Services

Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client
Authentication and Authorization Grants (RFC7522)

IoT

APC - ABAP Push Channels (ABAP 7.51)

ABAP Developer Edition


Newbies Guide: Installing ABAP AS 751 SP02 on Linux

AS ABAP 752 SP01, developer edition, to download

AS ABAP 7.52 SP01, developer edition: Concise installation guide

NetWeaver AS ABAP 7.52 SP 01 Developer Edition on Debian 9 in Parallels Desktop 14

Installing AS ABAP Developer Edition with Hyper-V

How to Enable SSL on NetWeaver Application Server

1. Install Client Certificates

1) Open website you want to connect to e.g. github.com with your browser

2) Export all client certificates in the chain with your browser

3) Go to transaction STRUST

4) Double click node SSL Client (Anonymous)

5) Import certificate exported from 2)

6) Add to Certificate List

7) Repeat until all certificates are added

8) Save

2. Test SSL Connection

1) Create a new ABAP program ZABAPGIT_TEST_SSL and copy source code from here

2) Run the program and try to connect

3) If you see Success, it works then you’re good.

If you see error something like below, please see the next section.

SSL handshake with github.com:443 failed: SSSLERR_SSL_READ (-


58)SAPCRYPTO:SSL_read()
failedSapSSLSessionStartNB()==SSSLERR_SSL_READSSL:SSL_read() failed
(536875120/0x20001070)=> "received a fatal TLS1.0 protocol version alert message
from the peer"SSL:SSL_get_state()==0x2120 "TLS read server hello A"SSL NI-hdl 99:
local=10.0.0.59:15728 peer=192.30.253.113:443cli SSL session PSE
"/usr/sap/NPL/D00/sec/SAPSSLA.pse"session ciphersuites=HIGH:MEDIUM:+e3DES:!
aNULLClient SSL_CTX 7f26940019d0 pvflags=128 (TLSv1.0)Target
Hostname="github.com">> SecuSSL ErrStack:0x20001070 SAPCRYPTOLIB SSL_readSSL API
errorreceived a fatal TLS1.0 protocol version alert message from the peer0xa0600278
SSL ssl3_read_bytesreceived a fatal TLS1.0 protocol version alert message from the
peer0xa0600278 SSL ssl3_connectreceived a fatal TLS1.0 protocol version alert
message from the peer0xa0600278 SSL ssl3_read_bytesreceived a fatal TLS1.0 protocol
version alert message from the peer<<Also check transaction SMICM -> Goto -> Trace
File -> Display End
3. Check Trace File

1) Go to transaction SMICM

2) Go to menu Goto -> Trace File -> Display End

3) If you see message complaining about TLS version then proceed the next section

[Thr 139804692911872] Target Hostname="github.com"

[Thr 139804692911872] SSL NI-hdl 99: local=10.0.0.59:15728 peer=192.30.253.113:443

[Thr 139804692911872] <<- ERROR:


SapSSLSessionStartNB(sssl_hdl=7f2694001670)==SSSLERR_SSL_READ

[Thr 139804692911872] *** ERROR => SSL handshake with github.com:443 failed:
SSSLERR_SSL_READ (-58)

[Thr 139804692911872] SAPCRYPTO:SSL_read() failed

[Thr 139804692911872]

[Thr 139804692911872] SapSSLSessionStartNB()==SSSLERR_SSL_READ

[Thr 139804692911872] SSL:SSL_read() failed (536875120/0x20001070)

[Thr 139804692911872] => "received a fatal TLS1.0 protocol version alert message
from the peer"

[Thr 139804692911872] SSL:SSL_get_state()==0x2120 "TLS read server hello A"

[Thr 139804692911872] SSL NI-hdl 99: local=10.0.0.59:15728 peer=192.30.253.113:443

[Thr 139804692911872] cli SSL session PSE "/usr/sap/NPL/D00/sec/SAPSSLA.pse"

[Thr 139804692911872] session ciphersuites=HIGH:MEDIUM:+e3DES:!aNULL

[Thr 139804692911872] Client SSL_CTX 7f26940019d0 pvflags=128 (TLSv1.0)

[Thr 139804692911872] Target Hostname="github.com"

[Thr 139804692911872] >> SecuSSL ErrStack:

[Thr 139804692911872] 0x20001070 SAPCRYPTOLIB SSL_read

[Thr 139804692911872] SSL API error

[Thr 139804692911872] received a fatal TLS1.0 protocol version alert message from
the peer

[Thr 139804692911872] 0xa0600278 SSL ssl3_read_bytes

[Thr 139804692911872] received a fatal TLS1.0 protocol version alert message from
the peer

[Thr 139804692911872] 0xa0600278 SSL ssl3_connect

[Thr 139804692911872] received a fatal TLS1.0 protocol version alert message from
the peer
[Thr 139804692911872] 0xa0600278 SSL ssl3_read_bytes

[Thr 139804692911872] received a fatal TLS1.0 protocol version alert message from
the peer

[Thr 139804692911872] <<

[Thr 139804692911872]

[Thr 139804692911872] {00000109} {root-id=000D3A282AC01EE899FB2148C2A4B9FE}


[icxxconn.c 2423]

[Thr 139804692911872] GUI T12_U2540_M0, 001, DEVELOPER, CX360WINSG, time=09:24:28,


W1, program=ZABAPGIT_TEST_SSL, high priority, memory=0, tasks=1, appl info=,
tcode=SADT_START

[Thr 139804692911872] role: Client, protocol: HTTPS, local: 10.0.0.59:15728, peer:


192.30.253.113:443

4. Enable TLS v1.2

1) Go to transaction RZ10

2) Open DEFAULT profile, select Extended maintenance and click Change

3) Add these two parameters:

Over the course of year 2016, a growing number of TLS servers were reconfigured to
abort/reject TLSv1.0 handshakes, or they are requring forward secrecy (PFS) cipher
suites for access. The currently recommended settings for TLSv1.2 interoperability
are (requiring at least CommonCryptoLib 8.4.38, recommending at least 8.4.49):

ssl/ciphersuites = 135:PFS:HIGH::EC_P256:EC_HIGH

ssl/client_ciphersuites = 150:PFS:HIGH::EC_P256:EC_HIGH

For a SAP Solution Manager System 7.[012], please use the following value for
ssl/client_ciphersuites instead:

ssl/client_ciphersuites = 918:PFS:HIGH::EC_P256:EC_HIGH

Source: SAP Note 510007

4) Click Copy and Save (There might be a warning, proceed saving anyway.)

5) Restart server

$ su -l npladm

$ stopsap

$ startsap

$ sapcontrol -nr 00 -function GetProcessList


6) Go back SMICM and see trace file again. If you see two new parameters then they
are configured properly.

[Thr 139810885523200] =================================================

[Thr 139810885523200] = SSL Initialization platform tag=(linuxx86_64_gcc43)

[Thr 139810885523200] = (753_REL,Aug 18 2017,mt,ascii-uc,SAP_UC/size_t/void* =


16/64/64)

[Thr 139810885523200] = resulting Filename = "/usr/sap/NPL/D00/exe/libsapcrypto.so"

[Thr 139810885523200] = disabled FIPS 140-2 crypto kernel

[Thr 139810885523200] = found CommonCryptoLib 8.5.14 (Jul 27 2017) [AES-


NI,CLMUL,SSE3,SSSE3]

[Thr 139810885523200] = current UserID: "npladm", env-var USER="npladm"

[Thr 139810885523200] = found SECUDIR environment variable

[Thr 139810885523200] = using SECUDIR=/usr/sap/NPL/D00/sec

[Thr 139810885523200] = [dpf] ssl/ciphersuites=135:PFS:HIGH::EC_P256:EC_HIGH

[Thr 139810885523200] = NOT creating Envvar


SAPSSL_CIPHERSUITES=135:PFS:HIGH::EC_P256:EC_HIGH

[Thr 139810885523200] = [dpf] ssl/client_ciphersuites=150:PFS:HIGH::EC_P256:EC_HIGH

[Thr 139810885523200] = NOT creating Envvar


SAPSSL_CLIENT_CIPHERSUITES=150:PFS:HIGH::EC_P256:EC_HIGH

[Thr 139810885523200] = Success SapCryptoLib SSL ready!

[Thr 139810885523200] =================================================

7) Test SSL connection again and it should be okay now

References

SAP Note 510007

TLS 1.2 Support in SAP - SCN

Writing Testable Code for ABAP - openSAP

Writing Testable Code for ABAP - openSAP

Week 1 - Introduction to ABAP Unit Testing

Tests vs. Testable Codes

Unit Test Design and Tips

Links

Combinatorial Test Design


DB Rollback

Week 2 - Test-Driven Development

No content

Week 3 - Pair Programming & Writing Testable Code

Pair Programming

Rebate Engine Exercise

Week 4 - Test Isolation Theory and Practice

Test Isolation

Injections

Test Doubles

Week 5 - Dependency Lookup

Dependency Lookup

Week 6 - Working with Legacy Code, Tools and Summary

Legacy Code

Continuous Integration

What to Focus on When Writing New Code

http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)

Michael Feathers

The relationship between testability and good design (Article, Video)

How to Install SAP ABAP 7.52 SP01 Ubuntu 16.04 using Hyper-V

1. Follow instructions in this blog to setup Hyper-V, Virtual Switch, and create
virtual machine

With WSL2 coming with Windows 10 update 2004, virtual switch named `WSL` is not
recommended.

Virtual Switch and NAT Creation

New-VMSwitch –SwitchName "NPLSwitch" –SwitchType Internal

New-NetIPAddress –IPAddress 192.168.99.1 -PrefixLength 24 -InterfaceAlias


"vEthernet (NPLSwitch)"

New-NetNat –Name "NPLNetwork" –InternalIPInterfaceAddressPrefix 192.168.99.0/24

8GB of RAM

150GB of virtual hard disk (100GB minimum + 15GB installation files)


2 virtual processors

Turn off Secure Boot

Turn off automatic checkpoints

2. Download Ubuntu Server 16.04 , mount, and install it by referring this guide

Do not connect the virtual switch yet

Choose Guided - use entire disk without LVM (logical volume) when partitioning hard
drive

If choose location other than United States, make sure you update file
/etc/default/locale later

Configure network manually using IP, Subnet, Gateway as defined in 1. Or configure


later by referring this guide.

DNS could be GatewayIP 8.8.8.8 8.8.4.4

Hostname, of course, must be vhcalnplci

Domain name is dummy.nodomain

Choose to install OpenSSH

Create checkpoint

3. Follow the same guide to update & make system ready to install SAP

Setup hosts file on Host OS to point vhcalnplci to the VM IP

192.168.99.10 vhcalnplci vhcalnplci.dummy.nodomain

Start the VM and connect using ssh username@vhcalnplci

No need to install terminator and tree

No need to install VirtualBox or VMWare for guest OS (as we are using Hyper-V)

No need to install gcc, make, and perl

Follow the guide until you start the uuidd service

4. Mount the installation files using ISO

Unrar installation archives into a folder

Make ISO using Infrarecorder (Free)

Connect ISO to the VM

In the VM, follow these instructions to mount

Copy installation files into /media/sf_s4installer (as suggested in here) using cp


-r source/ destination/
Now, you can unmount the ISO

5. Follow the same guide to install SAP by executing install.sh

You should see this if installation completed successfully

You can check the status by

sudo -i -u npladm sapcontrol -nr 00 -function GetProcessList

Copy the installation log and remove the installation directory

Don't forget to create another checkpoint

You can start or stop the SAP by:

# Start SAP

sudo -i -u npladm startsap ALL

# Stop SAP

sudo -i -u npladm stopsap ALL

You can configure auto-start by sudo vim /etc/rc.local and populate with below
content and make it executable by sudo chmod +x /etc/rc.local

#!/bin/sh

sudo -i -u npladm startsap ALL

6. Install license and abapGit

Log on client 000 with user SAP* and password Down1oad

Go to SLICENSE and get a new license from this page

Configure STRUST

Log on client 001 with user DEVELOPER and password Down1oad

Install abapGit

Troubleshooting

Cannot pull with error message NIECONNREFUSED: 411

Turn off Windows Defender Firewall

Installing SAP NW AS ABAP 7.52 SP04 on Ubuntu VM on Microsoft Azure

Create an Ubuntu Server 18.04 LTS VM

Basic Settings

Size: Standard D2s v3 (2 vcpus, 8 GiB memory) should be enoughNo need to allow any
public inbound ports

Disk Settings
Add 2 data disks:

Premium SSD with at least 128 GiB for SAP instance data - to be mounted at /sybase

Standard HDD with at least 16 GiB for installation files - to be mounted at


/media/sf_s4installer

Networking Settings

No public IP is required as we are going to use Bastion

Setup Bastion

Follow this guide to create Bastion Host in the same virtual network as your VM.

This guide also shows how to connect to your VM using Bastion.

Prepare Your Ubuntu

Update Your Ubuntu

sudo apt update && sudo apt upgrade -y

sudo reboot now

Prepare Ubuntu

Install tmux (Optional)

sudo apt-get install tmux

Set Locale

sudo vim /etc/default/locale

And replace content with the following:

LANG=en_US.UTF-8

Set Hostname

sudo vim /etc/hostname

And replace content with the hostname you wish to use e.g. vhcalnplci

Set Host file

sudo vim /etc/hosts

Add the line below. Replace IP with your VM's private IP address. (Use command ip
addr show to see IP)

172.20.0.4 vhcalnplci vhcalnplci.dummy.nodomain

Check All Again

cat /etc/default/locale
cat /etc/hostname

cat /etc/hosts

Firewall

Verify local firewall. It should be inactive. If not, use command sudo ufw disable
to turn off.

sudo ufw status

Restart

sudo reboot now

Init and Mount Disk

List available disks connected to this VM

sudo fdisk -l | grep "Disk /dev"

You should see your data disks by recognizing their sizes (128GB and 32GB)

Disk /dev/sda: 128 GiB, 137438953472 bytes, 268435456 sectors

Disk /dev/sdc: 16 GiB, 17179869184 bytes, 33554432 sectors

Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors

Disk /dev/sdd: 30 GiB, 32213303296 bytes, 62916608 sectors

Partition disk (replace with your drive path)

sudo parted /dev/sdb

Use following commands to init disk

mklabel gpt

mkpart primary 0GB 32GB

quit

GNU Parted 3.2

Using /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel gpt

(parted) mkpart primary 0GB 32GB

(parted) quit

Information: You may need to update /etc/fstab.

Format disk
sudo mkfs.ext4 /dev/sdb

mke2fs 1.44.1 (24-Mar-2018)

Found a gpt partition table in /dev/sdb

Proceed anyway? (y,N) y

Discarding device blocks: done

Creating filesystem with 8388608 4k blocks and 2097152 inodes

Filesystem UUID: 660c2379-d35f-41dd-861c-b788c513a88c

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000, 7962624

Allocating group tables: done

Writing inode tables: done

Creating journal (65536 blocks): done

Writing superblocks and filesystem accounting information: done

Repeat the same for the other disk (/dev/sda in this case).

Get the disk UUIDs we will use for mounting.

sudo fdisk -l | grep "Disk /dev"

sudo blkid | grep UUID=

Disk /dev/sda: 128 GiB, 137438953472 bytes, 268435456 sectors

Disk /dev/sdc: 16 GiB, 17179869184 bytes, 33554432 sectors

Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors

Disk /dev/sdd: 30 GiB, 32213303296 bytes, 62916608 sectors

/dev/sda: UUID="5772387e-e620-44b2-9027-d28915b45722" TYPE="ext4"

/dev/sdc1: UUID="0256efb8-dd06-4787-8d9d-8796946738ea" TYPE="ext4"


PARTUUID="dcb710c8-01"

/dev/sdb: UUID="660c2379-d35f-41dd-861c-b788c513a88c" TYPE="ext4"

/dev/sdd1: LABEL="cloudimg-rootfs" UUID="bdf328db-9606-49ba-8e44-5e1299ae56f0"


TYPE="ext4" PARTUUID="179b1e79-bd71-4241-9557-8be63cbb8857"

/dev/sdd15: LABEL="UEFI" UUID="54D1-0F3A" TYPE="vfat" PARTUUID="ec4144dd-3a40-4774-


bfc2-73488a3f8e39"

/dev/sdd14: PARTUUID="bddfd6d3-8ef9-40d2-8fda-0083f3e0df9b"
Mount disks

sudo mkdir /media/sf_s4installer

sudo mount UUID="660c2379-d35f-41dd-861c-b788c513a88c" /media/sf_s4installer

sudo mkdir /sybase

sudo mount UUID="5772387e-e620-44b2-9027-d28915b45722" /sybase

Verify mounts. You should see /sybase and /media/sf_s4installer mounted properly.

df

Filesystem 1K-blocks Used Available Use% Mounted on

udev 4044560 0 4044560 0% /dev

tmpfs 812572 684 811888 1% /run

/dev/sdd1 30309264 7644532 22648348 26% /

tmpfs 4062844 24 4062820 1% /dev/shm

tmpfs 5120 0 5120 0% /run/lock

tmpfs 4062844 0 4062844 0% /sys/fs/cgroup

/dev/sdd15 106858 3668 103190 4% /boot/efi

/dev/sdc1 16447292 45084 15547020 1% /mnt

tmpfs 812568 0 812568 0% /run/user/1000

/dev/sda 131062788 33565296 90770224 27% /sybase

/dev/sdb 32765712 13318240 17753368 43% /media/sf_s4installer

Make /sybase auto-remounted at system start

sudo vim /etc/fstab

Add the following line:

UUID=5772387e-e620-44b2-9027-d28915b45722 /sybase ext4 defaults 0 0

Install Required Components

Install csh, libaio, and uuid.

sudo apt install csh libaio1 uuid -y

Start uuid daemon.

sudo systemctl start uuidd

Verify status. It should active (green).

systemctl status uuidd


Copy Installation Files

This assumes you already downloaded installation files from SAP, unrar them and re-
archived it as sap752sp04.tgz and uploaded to your Azure Storage account container.

Install AzCopy

Download binary. (Get the latest link from here)

cd /mnt

sudo wget
https://azcopyvnext.azureedge.net/release20200501/azcopy_linux_amd64_10.4.3.tar.gz

Decompress

sudo tar -xvzf azcopy_linux_amd64_10.4.3.tar.gz

Move binary

sudo mv azcopy_linux_amd64_10.4.3/azcopy /usr/local/bin

sudo chmod +x /usr/local/bin/azcopy

Clean up

sudo rm -r azcopy_linux_amd64_10.4.3

Verify

which azcopy

/usr/local/bin/azcopy

Download Installation Archive

Download archive from Azure Storage container using azcopy with SAS key.

cd /mnt

sudo azcopy copy "<file_url_with_sas_token>" sap752sp04.tgz

Extract Files

sudo tar -xvzf sap752sp04.tgz -C /media/sf_s4installer

Execute Installation

Run the install script

cd /media/sf_s4installer

chmod +x install.sh

sudo ./install.sh -s

Answer `yes` and assign a password to start installation.


Grab and drink a cup of coffee. This will take a while...

The installation is successful when the script finishes with the following
messages:

starting database NPL ...

Log file: /sybase/NPL/startdb.log

parse level 0: identified message 'Database 'master' is now online.'

parse level 1: identified message 'Database 'tempdb' is now online.'

parse level 2: identified message 'Database 'sybsystemprocs' is now online.'

parse level 3: identified message 'Recovery complete.'

Recovery Complete

startdb completed successfully

Starting Startup Agent sapstartsrv

OK

Instance Service on host vhcalnplci started

-------------------------------------------

starting SAP Instance ASCS01

Startup-Log is written to /home/npladm/startsap_ASCS01.log

-------------------------------------------

/usr/sap/NPL/ASCS01/exe/sapcontrol -prot NI_HTTP -nr 01 -function Start

Instance on host vhcalnplci started

Starting Startup Agent sapstartsrv

OK

Instance Service on host vhcalnplci started

-------------------------------------------

starting SAP Instance D00

Startup-Log is written to /home/npladm/startsap_D00.log

-------------------------------------------

/usr/sap/NPL/D00/exe/sapcontrol -prot NI_HTTP -nr 00 -function Start

Instance on host vhcalnplci started

Installation of NPL successful


Reinstall

In case, the installation failed and you want to reinstall, you need to do some
clean up before executing the script again.

Remove directory /sapmnt - rm -rf /sapmnt

Remove everything in /sybase - rm -rf /sybase/*

Remove directory /usr/sap - rm -rf /usr/sap

Remove all sap users i.e. sapadm, npladm, sybnpl - sudo userdel <username>

You may need to kill running process by such user first - sudo kill -s 15 <process
id>

Delete last lines beginning with sap in /etc/services

aaa

Check Server Statuses

sudo -i -u npladm sapcontrol -nr 00 -function GetProcessList

You should see everything in GREEN like below then everything is ready.

GetProcessList

OK

name, description, dispstatus, textstatus, starttime, elapsedtime, pid

disp+work, Dispatcher, GREEN, Running, 2020 05 11 10:13:59, 0:48:15, 57594

igswd_mt, IGS Watchdog, GREEN, Running, 2020 05 11 10:13:59, 0:48:15, 57595

gwrd, Gateway, GREEN, Running, 2020 05 11 10:14:00, 0:48:14, 57614

icman, ICM, GREEN, Running, 2020 05 11 10:14:00, 0:48:14, 57615

Start the Server

sudo -i -u npladm startsap ALL

Stop the Server

sudo -i -u npladm stopsap ALL

Auto-start at System Start

By default, the SAP servers are not started when you start the VM. To make them
started automatically, follow steps below.

sudo vim /etc/rc.local

Input the following content

#!/bin/sh
sudo -i -u npladm startsap ALL

Make it executable

sudo chmod +x /etc/rc.local

Try to stop and start the VM and check if the SAP servers have been started
properly.

Install License

Follow Post-Installation Steps in this guide to register a new license key file.

Install abapGit

Before you can push/pull codes from Git repositories like GitHub. You need to
install server's certificates on SAP server trust store.

Download Certificates

Go to GitHub and view site's certificates.

Download all certificates in the chain as Base-64 format (.cer).

Install Certificates

Go to transaction STRUST.

Click Import certificate icon.

Select the certificate that you saved and click Add to Certificate List.

Repeat the same until you imported all certificates and see them in the list. Click
Save.

Install abapGit

Create the package $ABAPGIT and create the program ZABAPGIT.

Copy the source codes from GitHub and activate the program.

Execute the program and click Install abapGit repo to sync abapGit with GitHub.

Click Continue and follow until finish.

You may choose NOT to override ZABAPGIT program first. Once you import everything
else then you Pull the repo again and choose to override. This make the
import/upgrade goes smoother.

Don't forget to restart the program to recompile after the import/update.

References

How to Install SAP ABAP 7.52 SP01 Ubuntu 16.04 using Hyper-V - chairat.me

AS ABAP 752 SP04, developer edition: NOW AVAILABLE - SAP Blogs

AS ABAP 7.52 SP04, Developer Edition: Concise Installation Guide - SAP Blogs
Installing SAP NetWeaver Developer Edition on an Ubuntu desktop VM – the non-
concise guide - SAP Blogs

Partitioning, Formatting, and Mounting a Hard Drive in Linux Ubuntu 18.04 (2020) -
medium.com

Create an Azure Bastion host using the portal - Microsoft Docs

Connect to a Windows virtual machine using Azure Bastion - Microsoft Docs

Start up commands - Ask Ubuntu

Useful Commands

List all running processes - ps -aux

List all processes on specific user - ps -U tom

Kill a process - sudo kill -s 15 2358 (SIGTERM) or sudo kill -9 3553 (SIGKILL)

List all local users - cut -d: -f1 /etc/passwd

Delete a user - sudo userdel username

References:

Ubuntu Linux Stop a Process - nixCraft

How to check running process in Ubuntu Linux using command line - nixCraft

A command to list all users? And how to add, delete, modify users? - AskUbuntu

You might also like