Installing SAP Netware ABAP 7.51 SP02 on CentOS 7 Minimal

You can find great documentation for installing SAP Netware ABAP 7.51 SP02 at Julie blog post. I didn’t use shared OS because of huge disk/ram usage.

Prerequest

Install your favorite text editor

Install nano, vim, etc with yum.

yum install nano
Enable ssh for root

You can open multiple terminal and make copy paste with ssh to your server.

nano /etc/ssh/sshd_config

Remove # for uncomment line “PermitRootLogin yes” or add it if missing.

service sshd restart

Disable firewall

You need to open a lot of port for SAP Netware in firewall. You can disable firewall instead of configuring it.

service firewalld stop
systemctl disable firewalld
Install uuidd package

SAP Netware using uuidd library for generating GUID, install it.

yum install uuidd
Install vmware tools and shared folder

Install open-vm-tools.

yum install open-vm-tools

You can find vmware tools in VMWare Virtual Machine menu as Install VMware Tools. Then you can check /mnt folder for CD which including tools. Copy it to your temp.

cp VMwareTools-10.x.tar.gz /tmp
tar -zxvf VMwareTools-10.x.tar.gz

Install python for tools installer.

yum install python

Change directory to extracted folder then run tools installer.

phyton install vmware-install.pl

Installation

Start installation script with below arguments.

./install.sh -g -s

SOAMANAGER’ı yetkisiz çalıştırmak

SE93 t-code’undan WDYID t-code’unu girerek çalıştırın:

Application parametresine APPL_SOAP_MANAGEMENT
Start Mode parametresine ise BROWSER girerek raporu yürütün.

Exit bulmak

CL_EXITHANDLER class’ının GET_INSTANCE methoduna break point koyarsanız, programlar exit çağırmaya çalıştığında yakalayabilirsiniz.

İki tarih arasındaki gün sayısı

call function ‘DAYS_BETWEEN_TWO_DATES’
exporting
i_datum_bis             = s_date-high
i_datum_von             = s_date-low
i_stgmeth               = 2
importing
e_tage                  = lv_i
exceptions
days_method_not_defined = 1
others                  = 2.

i_stgmeth parametresi ay/yıl içindeki gün sayısını belirmektedir:
1 360 gün üzerinde
2 gerçek gün sayısı

Enhancement bulmak

Raporlar SXV_GET_CLIF_BY_NAME  fonksiyonunu enhancement isimlerini bulmak için kullanmaktadır. Buraya konulacak break point ile istenilen raporda enhancement olup olmadığı kontrol edilebilir.

Split ranges

data : lv_count  type i,
lv_max    type i,
lv_min    type i,

ranges: rng_vbelv for vbfa-vbelv.
ranges: lrng_vbelv for vbfa-vbelv.  "local range.

clear: lv_count, lv_max.
lv_min = 0.
describe table rng_vbelv lines lv_count.
while lv_max lt lv_count.
lv_max = lv_min + 1000.
if lv_max gt lv_count.
lv_max = lv_count.
endif.
refresh lrng_vbelv.
loop at rng_vbelv from lv_min to lv_max.
append rng_vbelv to lrng_vbelv.
endloop.
lv_min = lv_max.
select b~vbeln a~vbelv b~wadat_ist b~kunnr b~ernam b~erzet b~erdat
appending table lt_itab
from vbfa as a
inner join likp as b
on a~vbeln eq b~vbeln
where a~vbelv in lrng_vbelv
order by b~vbeln.
endwhile.

Optimize Ranges


ranges: rng_vbelv for vbfa-vbelv.

*&---------------------------------------------------------------------*
*&      Form  OPTIMIZE_RANGE
*&---------------------------------------------------------------------*
form optimize_range.
data:    lv_lvbelv like vbfa-vbelv,   "önceki
lv_nvbelv like vbfa-vbelv,   "yenisi
lv_vbelv  like vbfa-vbelv,   "yenisi
lv_aralik(1),                "aralık
lv_ltabix like sy-tabix,
lv_ntabix like sy-tabix.

sort rng_vbelv.
clear: lv_lvbelv, lv_nvbelv, lv_aralik.
loop at rng_vbelv.
lv_ntabix = sy-tabix.
lv_nvbelv = rng_vbelv-low.
lv_vbelv = lv_nvbelv - 1.
*    condense lv_vbelv.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input  = lv_vbelv
importing
output = lv_vbelv.

if lv_lvbelv is not initial and lv_lvbelv eq lv_vbelv.
lv_ltabix = lv_ntabix - 1.
read table rng_vbelv index lv_ltabix.
rng_vbelv-option = 'BT'.
rng_vbelv-high   = lv_nvbelv.
modify rng_vbelv index lv_ltabix.
delete rng_vbelv index lv_ntabix.
lv_lvbelv = lv_nvbelv.
continue.
endif.
lv_lvbelv = lv_nvbelv.
endloop.
describe table rng_vbelv lines sy-index.
endform.                    " OPTIMIZE_RANGE